##// END OF EJS Templates
switch ipy_render.py to use Itpl notation
vivainio -
Show More
@@ -1,50 +1,62 b''
1 #!/usr/bin/env python
1 #!/usr/bin/env python
2
2
3 """ IPython extension: Render templates from variables and paste to clipbard """
4
3 import IPython.ipapi
5 import IPython.ipapi
4
6
5 ip = IPython.ipapi.get()
7 ip = IPython.ipapi.get()
6
8
7 from string import Template
9 from string import Template
8 import sys
10 import sys
9
11
12 from IPython.Itpl import itplns
13
10 def toclip_w32(s):
14 def toclip_w32(s):
11 """ places contents of s to clipboard
15 """ Places contents of s to clipboard
12
16
13 Needs pyvin32 to work:
17 Needs pyvin32 to work:
14 http://sourceforge.net/projects/pywin32/
18 http://sourceforge.net/projects/pywin32/
15 """
19 """
16 import win32clipboard as cl
20 import win32clipboard as cl
17 import win32con
21 import win32con
18 cl.OpenClipboard()
22 cl.OpenClipboard()
19 cl.EmptyClipboard()
23 cl.EmptyClipboard()
20 cl.SetClipboardText( s )
24 cl.SetClipboardText( s )
21 cl.CloseClipboard()
25 cl.CloseClipboard()
22
26
23 try:
27 try:
24 import win32clipboard
28 import win32clipboard
25 toclip = toclip_w32
29 toclip = toclip_w32
26 except ImportError:
30 except ImportError:
27 def toclip(s): pass
31 def toclip(s): pass
28
32
29
33
30 def render(tmpl):
34 def render(tmpl):
31 """ Render a template (as specified in string.Template docs) from ipython variables
35 """ Render a template (Itpl format) from ipython variables
32
36
33 Example:
37 Example:
34
38
35 $ import ipy_render
39 $ import ipy_render
36 $ my_name = 'Bob' # %store this for convenience
40 $ my_name = 'Bob' # %store this for convenience
37 $ t_submission_form = "Submission report, author: $my_name" # %store also
41 $ t_submission_form = "Submission report, author: $my_name" # %store also
38 $ render t_submission_form
42 $ render t_submission_form
39
43
40 => returns "Submission report, author: Bob" and copies to clipboard on win32
44 => returns "Submission report, author: Bob" and copies to clipboard on win32
45
46 Template examples (Ka-Ping Yee's Itpl library):
41
47
48 Here is a $string.
49 Here is a $module.member.
50 Here is an $object.member.
51 Here is a $functioncall(with, arguments).
52 Here is an ${arbitrary + expression}.
53 Here is an $array[3] member.
54 Here is a $dictionary['member'].
42 """
55 """
43
56
44 s = Template(tmpl)
57 res = itplns(tmpl, ip.user_ns)
45 res = s.substitute(ip.user_ns)
46 toclip(res)
58 toclip(res)
47 return res
59 return res
48
60
49 ip.to_user_ns('render')
61 ip.to_user_ns('render')
50 No newline at end of file
62
@@ -1,6567 +1,6567 b''
1 2007-04-20 Ville Vainio <vivainio@gmail.com>
1 2007-04-20 Ville Vainio <vivainio@gmail.com>
2
2
3 * Extensions/ipy_render.py: added extension for easy
3 * Extensions/ipy_render.py: added extension for easy
4 interactive text template rendering (todo - add a better
4 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
5 renderer than string.Template)
5 'Iptl' template notation,
6
6
7 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
7 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
8 safer & faster 'import' completer.
8 safer & faster 'import' completer.
9
9
10 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
10 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
11 and _ip.defalias(name, command).
11 and _ip.defalias(name, command).
12
12
13 * Extensions/ipy_exportdb.py: New extension for exporting all the
13 * Extensions/ipy_exportdb.py: New extension for exporting all the
14 %store'd data in a portable format (normal ipapi calls like
14 %store'd data in a portable format (normal ipapi calls like
15 defmacro() etc.)
15 defmacro() etc.)
16
16
17 2007-04-19 Ville Vainio <vivainio@gmail.com>
17 2007-04-19 Ville Vainio <vivainio@gmail.com>
18
18
19 * upgrade_dir.py: skip junk files like *.pyc
19 * upgrade_dir.py: skip junk files like *.pyc
20
20
21 * Release.py: version number to 0.8.1
21 * Release.py: version number to 0.8.1
22
22
23 2007-04-18 Ville Vainio <vivainio@gmail.com>
23 2007-04-18 Ville Vainio <vivainio@gmail.com>
24
24
25 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
25 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
26 and later on win32.
26 and later on win32.
27
27
28 2007-04-16 Ville Vainio <vivainio@gmail.com>
28 2007-04-16 Ville Vainio <vivainio@gmail.com>
29
29
30 * iplib.py (showtraceback): Do not crash when running w/o readline.
30 * iplib.py (showtraceback): Do not crash when running w/o readline.
31
31
32 2007-04-12 Walter Doerwald <walter@livinglogic.de>
32 2007-04-12 Walter Doerwald <walter@livinglogic.de>
33
33
34 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
34 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
35 sorted (case sensitive with files and dirs mixed).
35 sorted (case sensitive with files and dirs mixed).
36
36
37 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
37 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
38
38
39 * IPython/Release.py (version): Open trunk for 0.8.1 development.
39 * IPython/Release.py (version): Open trunk for 0.8.1 development.
40
40
41 2007-04-10 *** Released version 0.8.0
41 2007-04-10 *** Released version 0.8.0
42
42
43 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
43 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
44
44
45 * Tag 0.8.0 for release.
45 * Tag 0.8.0 for release.
46
46
47 * IPython/iplib.py (reloadhist): add API function to cleanly
47 * IPython/iplib.py (reloadhist): add API function to cleanly
48 reload the readline history, which was growing inappropriately on
48 reload the readline history, which was growing inappropriately on
49 every %run call.
49 every %run call.
50
50
51 * win32_manual_post_install.py (run): apply last part of Nicolas
51 * win32_manual_post_install.py (run): apply last part of Nicolas
52 Pernetty's patch (I'd accidentally applied it in a different
52 Pernetty's patch (I'd accidentally applied it in a different
53 directory and this particular file didn't get patched).
53 directory and this particular file didn't get patched).
54
54
55 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
55 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
56
56
57 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
57 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
58 find the main thread id and use the proper API call. Thanks to
58 find the main thread id and use the proper API call. Thanks to
59 Stefan for the fix.
59 Stefan for the fix.
60
60
61 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
61 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
62 unit tests to reflect fixed ticket #52, and add more tests sent by
62 unit tests to reflect fixed ticket #52, and add more tests sent by
63 him.
63 him.
64
64
65 * IPython/iplib.py (raw_input): restore the readline completer
65 * IPython/iplib.py (raw_input): restore the readline completer
66 state on every input, in case third-party code messed it up.
66 state on every input, in case third-party code messed it up.
67 (_prefilter): revert recent addition of early-escape checks which
67 (_prefilter): revert recent addition of early-escape checks which
68 prevent many valid alias calls from working.
68 prevent many valid alias calls from working.
69
69
70 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
70 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
71 flag for sigint handler so we don't run a full signal() call on
71 flag for sigint handler so we don't run a full signal() call on
72 each runcode access.
72 each runcode access.
73
73
74 * IPython/Magic.py (magic_whos): small improvement to diagnostic
74 * IPython/Magic.py (magic_whos): small improvement to diagnostic
75 message.
75 message.
76
76
77 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
77 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
78
78
79 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
79 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
80 asynchronous exceptions working, i.e., Ctrl-C can actually
80 asynchronous exceptions working, i.e., Ctrl-C can actually
81 interrupt long-running code in the multithreaded shells.
81 interrupt long-running code in the multithreaded shells.
82
82
83 This is using Tomer Filiba's great ctypes-based trick:
83 This is using Tomer Filiba's great ctypes-based trick:
84 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
84 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
85 this in the past, but hadn't been able to make it work before. So
85 this in the past, but hadn't been able to make it work before. So
86 far it looks like it's actually running, but this needs more
86 far it looks like it's actually running, but this needs more
87 testing. If it really works, I'll be *very* happy, and we'll owe
87 testing. If it really works, I'll be *very* happy, and we'll owe
88 a huge thank you to Tomer. My current implementation is ugly,
88 a huge thank you to Tomer. My current implementation is ugly,
89 hackish and uses nasty globals, but I don't want to try and clean
89 hackish and uses nasty globals, but I don't want to try and clean
90 anything up until we know if it actually works.
90 anything up until we know if it actually works.
91
91
92 NOTE: this feature needs ctypes to work. ctypes is included in
92 NOTE: this feature needs ctypes to work. ctypes is included in
93 Python2.5, but 2.4 users will need to manually install it. This
93 Python2.5, but 2.4 users will need to manually install it. This
94 feature makes multi-threaded shells so much more usable that it's
94 feature makes multi-threaded shells so much more usable that it's
95 a minor price to pay (ctypes is very easy to install, already a
95 a minor price to pay (ctypes is very easy to install, already a
96 requirement for win32 and available in major linux distros).
96 requirement for win32 and available in major linux distros).
97
97
98 2007-04-04 Ville Vainio <vivainio@gmail.com>
98 2007-04-04 Ville Vainio <vivainio@gmail.com>
99
99
100 * Extensions/ipy_completers.py, ipy_stock_completers.py:
100 * Extensions/ipy_completers.py, ipy_stock_completers.py:
101 Moved implementations of 'bundled' completers to ipy_completers.py,
101 Moved implementations of 'bundled' completers to ipy_completers.py,
102 they are only enabled in ipy_stock_completers.py.
102 they are only enabled in ipy_stock_completers.py.
103
103
104 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
104 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
105
105
106 * IPython/PyColorize.py (Parser.format2): Fix identation of
106 * IPython/PyColorize.py (Parser.format2): Fix identation of
107 colorzied output and return early if color scheme is NoColor, to
107 colorzied output and return early if color scheme is NoColor, to
108 avoid unnecessary and expensive tokenization. Closes #131.
108 avoid unnecessary and expensive tokenization. Closes #131.
109
109
110 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
110 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
111
111
112 * IPython/Debugger.py: disable the use of pydb version 1.17. It
112 * IPython/Debugger.py: disable the use of pydb version 1.17. It
113 has a critical bug (a missing import that makes post-mortem not
113 has a critical bug (a missing import that makes post-mortem not
114 work at all). Unfortunately as of this time, this is the version
114 work at all). Unfortunately as of this time, this is the version
115 shipped with Ubuntu Edgy, so quite a few people have this one. I
115 shipped with Ubuntu Edgy, so quite a few people have this one. I
116 hope Edgy will update to a more recent package.
116 hope Edgy will update to a more recent package.
117
117
118 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
118 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
119
119
120 * IPython/iplib.py (_prefilter): close #52, second part of a patch
120 * IPython/iplib.py (_prefilter): close #52, second part of a patch
121 set by Stefan (only the first part had been applied before).
121 set by Stefan (only the first part had been applied before).
122
122
123 * IPython/Extensions/ipy_stock_completers.py (module_completer):
123 * IPython/Extensions/ipy_stock_completers.py (module_completer):
124 remove usage of the dangerous pkgutil.walk_packages(). See
124 remove usage of the dangerous pkgutil.walk_packages(). See
125 details in comments left in the code.
125 details in comments left in the code.
126
126
127 * IPython/Magic.py (magic_whos): add support for numpy arrays
127 * IPython/Magic.py (magic_whos): add support for numpy arrays
128 similar to what we had for Numeric.
128 similar to what we had for Numeric.
129
129
130 * IPython/completer.py (IPCompleter.complete): extend the
130 * IPython/completer.py (IPCompleter.complete): extend the
131 complete() call API to support completions by other mechanisms
131 complete() call API to support completions by other mechanisms
132 than readline. Closes #109.
132 than readline. Closes #109.
133
133
134 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
134 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
135 protect against a bug in Python's execfile(). Closes #123.
135 protect against a bug in Python's execfile(). Closes #123.
136
136
137 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
137 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
138
138
139 * IPython/iplib.py (split_user_input): ensure that when splitting
139 * IPython/iplib.py (split_user_input): ensure that when splitting
140 user input, the part that can be treated as a python name is pure
140 user input, the part that can be treated as a python name is pure
141 ascii (Python identifiers MUST be pure ascii). Part of the
141 ascii (Python identifiers MUST be pure ascii). Part of the
142 ongoing Unicode support work.
142 ongoing Unicode support work.
143
143
144 * IPython/Prompts.py (prompt_specials_color): Add \N for the
144 * IPython/Prompts.py (prompt_specials_color): Add \N for the
145 actual prompt number, without any coloring. This allows users to
145 actual prompt number, without any coloring. This allows users to
146 produce numbered prompts with their own colors. Added after a
146 produce numbered prompts with their own colors. Added after a
147 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
147 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
148
148
149 2007-03-31 Walter Doerwald <walter@livinglogic.de>
149 2007-03-31 Walter Doerwald <walter@livinglogic.de>
150
150
151 * IPython/Extensions/igrid.py: Map the return key
151 * IPython/Extensions/igrid.py: Map the return key
152 to enter() and shift-return to enterattr().
152 to enter() and shift-return to enterattr().
153
153
154 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
154 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
155
155
156 * IPython/Magic.py (magic_psearch): add unicode support by
156 * IPython/Magic.py (magic_psearch): add unicode support by
157 encoding to ascii the input, since this routine also only deals
157 encoding to ascii the input, since this routine also only deals
158 with valid Python names. Fixes a bug reported by Stefan.
158 with valid Python names. Fixes a bug reported by Stefan.
159
159
160 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
160 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
161
161
162 * IPython/Magic.py (_inspect): convert unicode input into ascii
162 * IPython/Magic.py (_inspect): convert unicode input into ascii
163 before trying to evaluate it as a Python identifier. This fixes a
163 before trying to evaluate it as a Python identifier. This fixes a
164 problem that the new unicode support had introduced when analyzing
164 problem that the new unicode support had introduced when analyzing
165 long definition lines for functions.
165 long definition lines for functions.
166
166
167 2007-03-24 Walter Doerwald <walter@livinglogic.de>
167 2007-03-24 Walter Doerwald <walter@livinglogic.de>
168
168
169 * IPython/Extensions/igrid.py: Fix picking. Using
169 * IPython/Extensions/igrid.py: Fix picking. Using
170 igrid with wxPython 2.6 and -wthread should work now.
170 igrid with wxPython 2.6 and -wthread should work now.
171 igrid.display() simply tries to create a frame without
171 igrid.display() simply tries to create a frame without
172 an application. Only if this fails an application is created.
172 an application. Only if this fails an application is created.
173
173
174 2007-03-23 Walter Doerwald <walter@livinglogic.de>
174 2007-03-23 Walter Doerwald <walter@livinglogic.de>
175
175
176 * IPython/Extensions/path.py: Updated to version 2.2.
176 * IPython/Extensions/path.py: Updated to version 2.2.
177
177
178 2007-03-23 Ville Vainio <vivainio@gmail.com>
178 2007-03-23 Ville Vainio <vivainio@gmail.com>
179
179
180 * iplib.py: recursive alias expansion now works better, so that
180 * iplib.py: recursive alias expansion now works better, so that
181 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
181 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
182 doesn't trip up the process, if 'd' has been aliased to 'ls'.
182 doesn't trip up the process, if 'd' has been aliased to 'ls'.
183
183
184 * Extensions/ipy_gnuglobal.py added, provides %global magic
184 * Extensions/ipy_gnuglobal.py added, provides %global magic
185 for users of http://www.gnu.org/software/global
185 for users of http://www.gnu.org/software/global
186
186
187 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
187 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
188 Closes #52. Patch by Stefan van der Walt.
188 Closes #52. Patch by Stefan van der Walt.
189
189
190 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
190 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
191
191
192 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
192 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
193 respect the __file__ attribute when using %run. Thanks to a bug
193 respect the __file__ attribute when using %run. Thanks to a bug
194 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
194 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
195
195
196 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
196 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
197
197
198 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
198 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
199 input. Patch sent by Stefan.
199 input. Patch sent by Stefan.
200
200
201 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
201 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
202 * IPython/Extensions/ipy_stock_completer.py
202 * IPython/Extensions/ipy_stock_completer.py
203 shlex_split, fix bug in shlex_split. len function
203 shlex_split, fix bug in shlex_split. len function
204 call was missing an if statement. Caused shlex_split to
204 call was missing an if statement. Caused shlex_split to
205 sometimes return "" as last element.
205 sometimes return "" as last element.
206
206
207 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
207 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
208
208
209 * IPython/completer.py
209 * IPython/completer.py
210 (IPCompleter.file_matches.single_dir_expand): fix a problem
210 (IPCompleter.file_matches.single_dir_expand): fix a problem
211 reported by Stefan, where directories containign a single subdir
211 reported by Stefan, where directories containign a single subdir
212 would be completed too early.
212 would be completed too early.
213
213
214 * IPython/Shell.py (_load_pylab): Make the execution of 'from
214 * IPython/Shell.py (_load_pylab): Make the execution of 'from
215 pylab import *' when -pylab is given be optional. A new flag,
215 pylab import *' when -pylab is given be optional. A new flag,
216 pylab_import_all controls this behavior, the default is True for
216 pylab_import_all controls this behavior, the default is True for
217 backwards compatibility.
217 backwards compatibility.
218
218
219 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
219 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
220 modified) R. Bernstein's patch for fully syntax highlighted
220 modified) R. Bernstein's patch for fully syntax highlighted
221 tracebacks. The functionality is also available under ultraTB for
221 tracebacks. The functionality is also available under ultraTB for
222 non-ipython users (someone using ultraTB but outside an ipython
222 non-ipython users (someone using ultraTB but outside an ipython
223 session). They can select the color scheme by setting the
223 session). They can select the color scheme by setting the
224 module-level global DEFAULT_SCHEME. The highlight functionality
224 module-level global DEFAULT_SCHEME. The highlight functionality
225 also works when debugging.
225 also works when debugging.
226
226
227 * IPython/genutils.py (IOStream.close): small patch by
227 * IPython/genutils.py (IOStream.close): small patch by
228 R. Bernstein for improved pydb support.
228 R. Bernstein for improved pydb support.
229
229
230 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
230 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
231 DaveS <davls@telus.net> to improve support of debugging under
231 DaveS <davls@telus.net> to improve support of debugging under
232 NTEmacs, including improved pydb behavior.
232 NTEmacs, including improved pydb behavior.
233
233
234 * IPython/Magic.py (magic_prun): Fix saving of profile info for
234 * IPython/Magic.py (magic_prun): Fix saving of profile info for
235 Python 2.5, where the stats object API changed a little. Thanks
235 Python 2.5, where the stats object API changed a little. Thanks
236 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
236 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
237
237
238 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
238 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
239 Pernetty's patch to improve support for (X)Emacs under Win32.
239 Pernetty's patch to improve support for (X)Emacs under Win32.
240
240
241 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
241 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
242
242
243 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
243 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
244 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
244 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
245 a report by Nik Tautenhahn.
245 a report by Nik Tautenhahn.
246
246
247 2007-03-16 Walter Doerwald <walter@livinglogic.de>
247 2007-03-16 Walter Doerwald <walter@livinglogic.de>
248
248
249 * setup.py: Add the igrid help files to the list of data files
249 * setup.py: Add the igrid help files to the list of data files
250 to be installed alongside igrid.
250 to be installed alongside igrid.
251 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
251 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
252 Show the input object of the igrid browser as the window tile.
252 Show the input object of the igrid browser as the window tile.
253 Show the object the cursor is on in the statusbar.
253 Show the object the cursor is on in the statusbar.
254
254
255 2007-03-15 Ville Vainio <vivainio@gmail.com>
255 2007-03-15 Ville Vainio <vivainio@gmail.com>
256
256
257 * Extensions/ipy_stock_completers.py: Fixed exception
257 * Extensions/ipy_stock_completers.py: Fixed exception
258 on mismatching quotes in %run completer. Patch by
258 on mismatching quotes in %run completer. Patch by
259 JοΏ½rgen Stenarson. Closes #127.
259 JοΏ½rgen Stenarson. Closes #127.
260
260
261 2007-03-14 Ville Vainio <vivainio@gmail.com>
261 2007-03-14 Ville Vainio <vivainio@gmail.com>
262
262
263 * Extensions/ext_rehashdir.py: Do not do auto_alias
263 * Extensions/ext_rehashdir.py: Do not do auto_alias
264 in %rehashdir, it clobbers %store'd aliases.
264 in %rehashdir, it clobbers %store'd aliases.
265
265
266 * UserConfig/ipy_profile_sh.py: envpersist.py extension
266 * UserConfig/ipy_profile_sh.py: envpersist.py extension
267 (beefed up %env) imported for sh profile.
267 (beefed up %env) imported for sh profile.
268
268
269 2007-03-10 Walter Doerwald <walter@livinglogic.de>
269 2007-03-10 Walter Doerwald <walter@livinglogic.de>
270
270
271 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
271 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
272 as the default browser.
272 as the default browser.
273 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
273 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
274 As igrid displays all attributes it ever encounters, fetch() (which has
274 As igrid displays all attributes it ever encounters, fetch() (which has
275 been renamed to _fetch()) doesn't have to recalculate the display attributes
275 been renamed to _fetch()) doesn't have to recalculate the display attributes
276 every time a new item is fetched. This should speed up scrolling.
276 every time a new item is fetched. This should speed up scrolling.
277
277
278 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
278 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
279
279
280 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
280 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
281 Schmolck's recently reported tab-completion bug (my previous one
281 Schmolck's recently reported tab-completion bug (my previous one
282 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
282 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
283
283
284 2007-03-09 Walter Doerwald <walter@livinglogic.de>
284 2007-03-09 Walter Doerwald <walter@livinglogic.de>
285
285
286 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
286 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
287 Close help window if exiting igrid.
287 Close help window if exiting igrid.
288
288
289 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
289 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
290
290
291 * IPython/Extensions/ipy_defaults.py: Check if readline is available
291 * IPython/Extensions/ipy_defaults.py: Check if readline is available
292 before calling functions from readline.
292 before calling functions from readline.
293
293
294 2007-03-02 Walter Doerwald <walter@livinglogic.de>
294 2007-03-02 Walter Doerwald <walter@livinglogic.de>
295
295
296 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
296 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
297 igrid is a wxPython-based display object for ipipe. If your system has
297 igrid is a wxPython-based display object for ipipe. If your system has
298 wx installed igrid will be the default display. Without wx ipipe falls
298 wx installed igrid will be the default display. Without wx ipipe falls
299 back to ibrowse (which needs curses). If no curses is installed ipipe
299 back to ibrowse (which needs curses). If no curses is installed ipipe
300 falls back to idump.
300 falls back to idump.
301
301
302 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
302 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
303
303
304 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
304 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
305 my changes from yesterday, they introduced bugs. Will reactivate
305 my changes from yesterday, they introduced bugs. Will reactivate
306 once I get a correct solution, which will be much easier thanks to
306 once I get a correct solution, which will be much easier thanks to
307 Dan Milstein's new prefilter test suite.
307 Dan Milstein's new prefilter test suite.
308
308
309 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
309 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
310
310
311 * IPython/iplib.py (split_user_input): fix input splitting so we
311 * IPython/iplib.py (split_user_input): fix input splitting so we
312 don't attempt attribute accesses on things that can't possibly be
312 don't attempt attribute accesses on things that can't possibly be
313 valid Python attributes. After a bug report by Alex Schmolck.
313 valid Python attributes. After a bug report by Alex Schmolck.
314 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
314 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
315 %magic with explicit % prefix.
315 %magic with explicit % prefix.
316
316
317 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
317 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
318
318
319 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
319 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
320 avoid a DeprecationWarning from GTK.
320 avoid a DeprecationWarning from GTK.
321
321
322 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
322 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
323
323
324 * IPython/genutils.py (clock): I modified clock() to return total
324 * IPython/genutils.py (clock): I modified clock() to return total
325 time, user+system. This is a more commonly needed metric. I also
325 time, user+system. This is a more commonly needed metric. I also
326 introduced the new clocku/clocks to get only user/system time if
326 introduced the new clocku/clocks to get only user/system time if
327 one wants those instead.
327 one wants those instead.
328
328
329 ***WARNING: API CHANGE*** clock() used to return only user time,
329 ***WARNING: API CHANGE*** clock() used to return only user time,
330 so if you want exactly the same results as before, use clocku
330 so if you want exactly the same results as before, use clocku
331 instead.
331 instead.
332
332
333 2007-02-22 Ville Vainio <vivainio@gmail.com>
333 2007-02-22 Ville Vainio <vivainio@gmail.com>
334
334
335 * IPython/Extensions/ipy_p4.py: Extension for improved
335 * IPython/Extensions/ipy_p4.py: Extension for improved
336 p4 (perforce version control system) experience.
336 p4 (perforce version control system) experience.
337 Adds %p4 magic with p4 command completion and
337 Adds %p4 magic with p4 command completion and
338 automatic -G argument (marshall output as python dict)
338 automatic -G argument (marshall output as python dict)
339
339
340 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
340 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
341
341
342 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
342 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
343 stop marks.
343 stop marks.
344 (ClearingMixin): a simple mixin to easily make a Demo class clear
344 (ClearingMixin): a simple mixin to easily make a Demo class clear
345 the screen in between blocks and have empty marquees. The
345 the screen in between blocks and have empty marquees. The
346 ClearDemo and ClearIPDemo classes that use it are included.
346 ClearDemo and ClearIPDemo classes that use it are included.
347
347
348 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
348 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
349
349
350 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
350 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
351 protect against exceptions at Python shutdown time. Patch
351 protect against exceptions at Python shutdown time. Patch
352 sumbmitted to upstream.
352 sumbmitted to upstream.
353
353
354 2007-02-14 Walter Doerwald <walter@livinglogic.de>
354 2007-02-14 Walter Doerwald <walter@livinglogic.de>
355
355
356 * IPython/Extensions/ibrowse.py: If entering the first object level
356 * IPython/Extensions/ibrowse.py: If entering the first object level
357 (i.e. the object for which the browser has been started) fails,
357 (i.e. the object for which the browser has been started) fails,
358 now the error is raised directly (aborting the browser) instead of
358 now the error is raised directly (aborting the browser) instead of
359 running into an empty levels list later.
359 running into an empty levels list later.
360
360
361 2007-02-03 Walter Doerwald <walter@livinglogic.de>
361 2007-02-03 Walter Doerwald <walter@livinglogic.de>
362
362
363 * IPython/Extensions/ipipe.py: Add an xrepr implementation
363 * IPython/Extensions/ipipe.py: Add an xrepr implementation
364 for the noitem object.
364 for the noitem object.
365
365
366 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
367
367
368 * IPython/completer.py (Completer.attr_matches): Fix small
368 * IPython/completer.py (Completer.attr_matches): Fix small
369 tab-completion bug with Enthought Traits objects with units.
369 tab-completion bug with Enthought Traits objects with units.
370 Thanks to a bug report by Tom Denniston
370 Thanks to a bug report by Tom Denniston
371 <tom.denniston-AT-alum.dartmouth.org>.
371 <tom.denniston-AT-alum.dartmouth.org>.
372
372
373 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
373 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
374
374
375 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
375 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
376 bug where only .ipy or .py would be completed. Once the first
376 bug where only .ipy or .py would be completed. Once the first
377 argument to %run has been given, all completions are valid because
377 argument to %run has been given, all completions are valid because
378 they are the arguments to the script, which may well be non-python
378 they are the arguments to the script, which may well be non-python
379 filenames.
379 filenames.
380
380
381 * IPython/irunner.py (InteractiveRunner.run_source): major updates
381 * IPython/irunner.py (InteractiveRunner.run_source): major updates
382 to irunner to allow it to correctly support real doctesting of
382 to irunner to allow it to correctly support real doctesting of
383 out-of-process ipython code.
383 out-of-process ipython code.
384
384
385 * IPython/Magic.py (magic_cd): Make the setting of the terminal
385 * IPython/Magic.py (magic_cd): Make the setting of the terminal
386 title an option (-noterm_title) because it completely breaks
386 title an option (-noterm_title) because it completely breaks
387 doctesting.
387 doctesting.
388
388
389 * IPython/demo.py: fix IPythonDemo class that was not actually working.
389 * IPython/demo.py: fix IPythonDemo class that was not actually working.
390
390
391 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
391 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
392
392
393 * IPython/irunner.py (main): fix small bug where extensions were
393 * IPython/irunner.py (main): fix small bug where extensions were
394 not being correctly recognized.
394 not being correctly recognized.
395
395
396 2007-01-23 Walter Doerwald <walter@livinglogic.de>
396 2007-01-23 Walter Doerwald <walter@livinglogic.de>
397
397
398 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
398 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
399 a string containing a single line yields the string itself as the
399 a string containing a single line yields the string itself as the
400 only item.
400 only item.
401
401
402 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
402 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
403 object if it's the same as the one on the last level (This avoids
403 object if it's the same as the one on the last level (This avoids
404 infinite recursion for one line strings).
404 infinite recursion for one line strings).
405
405
406 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
407
407
408 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
408 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
409 all output streams before printing tracebacks. This ensures that
409 all output streams before printing tracebacks. This ensures that
410 user output doesn't end up interleaved with traceback output.
410 user output doesn't end up interleaved with traceback output.
411
411
412 2007-01-10 Ville Vainio <vivainio@gmail.com>
412 2007-01-10 Ville Vainio <vivainio@gmail.com>
413
413
414 * Extensions/envpersist.py: Turbocharged %env that remembers
414 * Extensions/envpersist.py: Turbocharged %env that remembers
415 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
415 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
416 "%env VISUAL=jed".
416 "%env VISUAL=jed".
417
417
418 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
418 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
419
419
420 * IPython/iplib.py (showtraceback): ensure that we correctly call
420 * IPython/iplib.py (showtraceback): ensure that we correctly call
421 custom handlers in all cases (some with pdb were slipping through,
421 custom handlers in all cases (some with pdb were slipping through,
422 but I'm not exactly sure why).
422 but I'm not exactly sure why).
423
423
424 * IPython/Debugger.py (Tracer.__init__): added new class to
424 * IPython/Debugger.py (Tracer.__init__): added new class to
425 support set_trace-like usage of IPython's enhanced debugger.
425 support set_trace-like usage of IPython's enhanced debugger.
426
426
427 2006-12-24 Ville Vainio <vivainio@gmail.com>
427 2006-12-24 Ville Vainio <vivainio@gmail.com>
428
428
429 * ipmaker.py: more informative message when ipy_user_conf
429 * ipmaker.py: more informative message when ipy_user_conf
430 import fails (suggest running %upgrade).
430 import fails (suggest running %upgrade).
431
431
432 * tools/run_ipy_in_profiler.py: Utility to see where
432 * tools/run_ipy_in_profiler.py: Utility to see where
433 the time during IPython startup is spent.
433 the time during IPython startup is spent.
434
434
435 2006-12-20 Ville Vainio <vivainio@gmail.com>
435 2006-12-20 Ville Vainio <vivainio@gmail.com>
436
436
437 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
437 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
438
438
439 * ipapi.py: Add new ipapi method, expand_alias.
439 * ipapi.py: Add new ipapi method, expand_alias.
440
440
441 * Release.py: Bump up version to 0.7.4.svn
441 * Release.py: Bump up version to 0.7.4.svn
442
442
443 2006-12-17 Ville Vainio <vivainio@gmail.com>
443 2006-12-17 Ville Vainio <vivainio@gmail.com>
444
444
445 * Extensions/jobctrl.py: Fixed &cmd arg arg...
445 * Extensions/jobctrl.py: Fixed &cmd arg arg...
446 to work properly on posix too
446 to work properly on posix too
447
447
448 * Release.py: Update revnum (version is still just 0.7.3).
448 * Release.py: Update revnum (version is still just 0.7.3).
449
449
450 2006-12-15 Ville Vainio <vivainio@gmail.com>
450 2006-12-15 Ville Vainio <vivainio@gmail.com>
451
451
452 * scripts/ipython_win_post_install: create ipython.py in
452 * scripts/ipython_win_post_install: create ipython.py in
453 prefix + "/scripts".
453 prefix + "/scripts".
454
454
455 * Release.py: Update version to 0.7.3.
455 * Release.py: Update version to 0.7.3.
456
456
457 2006-12-14 Ville Vainio <vivainio@gmail.com>
457 2006-12-14 Ville Vainio <vivainio@gmail.com>
458
458
459 * scripts/ipython_win_post_install: Overwrite old shortcuts
459 * scripts/ipython_win_post_install: Overwrite old shortcuts
460 if they already exist
460 if they already exist
461
461
462 * Release.py: release 0.7.3rc2
462 * Release.py: release 0.7.3rc2
463
463
464 2006-12-13 Ville Vainio <vivainio@gmail.com>
464 2006-12-13 Ville Vainio <vivainio@gmail.com>
465
465
466 * Branch and update Release.py for 0.7.3rc1
466 * Branch and update Release.py for 0.7.3rc1
467
467
468 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
468 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
469
469
470 * IPython/Shell.py (IPShellWX): update for current WX naming
470 * IPython/Shell.py (IPShellWX): update for current WX naming
471 conventions, to avoid a deprecation warning with current WX
471 conventions, to avoid a deprecation warning with current WX
472 versions. Thanks to a report by Danny Shevitz.
472 versions. Thanks to a report by Danny Shevitz.
473
473
474 2006-12-12 Ville Vainio <vivainio@gmail.com>
474 2006-12-12 Ville Vainio <vivainio@gmail.com>
475
475
476 * ipmaker.py: apply david cournapeau's patch to make
476 * ipmaker.py: apply david cournapeau's patch to make
477 import_some work properly even when ipythonrc does
477 import_some work properly even when ipythonrc does
478 import_some on empty list (it was an old bug!).
478 import_some on empty list (it was an old bug!).
479
479
480 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
480 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
481 Add deprecation note to ipythonrc and a url to wiki
481 Add deprecation note to ipythonrc and a url to wiki
482 in ipy_user_conf.py
482 in ipy_user_conf.py
483
483
484
484
485 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
485 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
486 as if it was typed on IPython command prompt, i.e.
486 as if it was typed on IPython command prompt, i.e.
487 as IPython script.
487 as IPython script.
488
488
489 * example-magic.py, magic_grepl.py: remove outdated examples
489 * example-magic.py, magic_grepl.py: remove outdated examples
490
490
491 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
491 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
492
492
493 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
493 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
494 is called before any exception has occurred.
494 is called before any exception has occurred.
495
495
496 2006-12-08 Ville Vainio <vivainio@gmail.com>
496 2006-12-08 Ville Vainio <vivainio@gmail.com>
497
497
498 * Extensions/ipy_stock_completers.py: fix cd completer
498 * Extensions/ipy_stock_completers.py: fix cd completer
499 to translate /'s to \'s again.
499 to translate /'s to \'s again.
500
500
501 * completer.py: prevent traceback on file completions w/
501 * completer.py: prevent traceback on file completions w/
502 backslash.
502 backslash.
503
503
504 * Release.py: Update release number to 0.7.3b3 for release
504 * Release.py: Update release number to 0.7.3b3 for release
505
505
506 2006-12-07 Ville Vainio <vivainio@gmail.com>
506 2006-12-07 Ville Vainio <vivainio@gmail.com>
507
507
508 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
508 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
509 while executing external code. Provides more shell-like behaviour
509 while executing external code. Provides more shell-like behaviour
510 and overall better response to ctrl + C / ctrl + break.
510 and overall better response to ctrl + C / ctrl + break.
511
511
512 * tools/make_tarball.py: new script to create tarball straight from svn
512 * tools/make_tarball.py: new script to create tarball straight from svn
513 (setup.py sdist doesn't work on win32).
513 (setup.py sdist doesn't work on win32).
514
514
515 * Extensions/ipy_stock_completers.py: fix cd completer to give up
515 * Extensions/ipy_stock_completers.py: fix cd completer to give up
516 on dirnames with spaces and use the default completer instead.
516 on dirnames with spaces and use the default completer instead.
517
517
518 * Revision.py: Change version to 0.7.3b2 for release.
518 * Revision.py: Change version to 0.7.3b2 for release.
519
519
520 2006-12-05 Ville Vainio <vivainio@gmail.com>
520 2006-12-05 Ville Vainio <vivainio@gmail.com>
521
521
522 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
522 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
523 pydb patch 4 (rm debug printing, py 2.5 checking)
523 pydb patch 4 (rm debug printing, py 2.5 checking)
524
524
525 2006-11-30 Walter Doerwald <walter@livinglogic.de>
525 2006-11-30 Walter Doerwald <walter@livinglogic.de>
526 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
526 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
527 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
527 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
528 "refreshfind" (mapped to "R") does the same but tries to go back to the same
528 "refreshfind" (mapped to "R") does the same but tries to go back to the same
529 object the cursor was on before the refresh. The command "markrange" is
529 object the cursor was on before the refresh. The command "markrange" is
530 mapped to "%" now.
530 mapped to "%" now.
531 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
531 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
532
532
533 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
533 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
534
534
535 * IPython/Magic.py (magic_debug): new %debug magic to activate the
535 * IPython/Magic.py (magic_debug): new %debug magic to activate the
536 interactive debugger on the last traceback, without having to call
536 interactive debugger on the last traceback, without having to call
537 %pdb and rerun your code. Made minor changes in various modules,
537 %pdb and rerun your code. Made minor changes in various modules,
538 should automatically recognize pydb if available.
538 should automatically recognize pydb if available.
539
539
540 2006-11-28 Ville Vainio <vivainio@gmail.com>
540 2006-11-28 Ville Vainio <vivainio@gmail.com>
541
541
542 * completer.py: If the text start with !, show file completions
542 * completer.py: If the text start with !, show file completions
543 properly. This helps when trying to complete command name
543 properly. This helps when trying to complete command name
544 for shell escapes.
544 for shell escapes.
545
545
546 2006-11-27 Ville Vainio <vivainio@gmail.com>
546 2006-11-27 Ville Vainio <vivainio@gmail.com>
547
547
548 * ipy_stock_completers.py: bzr completer submitted by Stefan van
548 * ipy_stock_completers.py: bzr completer submitted by Stefan van
549 der Walt. Clean up svn and hg completers by using a common
549 der Walt. Clean up svn and hg completers by using a common
550 vcs_completer.
550 vcs_completer.
551
551
552 2006-11-26 Ville Vainio <vivainio@gmail.com>
552 2006-11-26 Ville Vainio <vivainio@gmail.com>
553
553
554 * Remove ipconfig and %config; you should use _ip.options structure
554 * Remove ipconfig and %config; you should use _ip.options structure
555 directly instead!
555 directly instead!
556
556
557 * genutils.py: add wrap_deprecated function for deprecating callables
557 * genutils.py: add wrap_deprecated function for deprecating callables
558
558
559 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
559 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
560 _ip.system instead. ipalias is redundant.
560 _ip.system instead. ipalias is redundant.
561
561
562 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
562 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
563 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
563 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
564 explicit.
564 explicit.
565
565
566 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
566 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
567 completer. Try it by entering 'hg ' and pressing tab.
567 completer. Try it by entering 'hg ' and pressing tab.
568
568
569 * macro.py: Give Macro a useful __repr__ method
569 * macro.py: Give Macro a useful __repr__ method
570
570
571 * Magic.py: %whos abbreviates the typename of Macro for brevity.
571 * Magic.py: %whos abbreviates the typename of Macro for brevity.
572
572
573 2006-11-24 Walter Doerwald <walter@livinglogic.de>
573 2006-11-24 Walter Doerwald <walter@livinglogic.de>
574 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
574 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
575 we don't get a duplicate ipipe module, where registration of the xrepr
575 we don't get a duplicate ipipe module, where registration of the xrepr
576 implementation for Text is useless.
576 implementation for Text is useless.
577
577
578 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
578 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
579
579
580 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
580 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
581
581
582 2006-11-24 Ville Vainio <vivainio@gmail.com>
582 2006-11-24 Ville Vainio <vivainio@gmail.com>
583
583
584 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
584 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
585 try to use "cProfile" instead of the slower pure python
585 try to use "cProfile" instead of the slower pure python
586 "profile"
586 "profile"
587
587
588 2006-11-23 Ville Vainio <vivainio@gmail.com>
588 2006-11-23 Ville Vainio <vivainio@gmail.com>
589
589
590 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
590 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
591 Qt+IPython+Designer link in documentation.
591 Qt+IPython+Designer link in documentation.
592
592
593 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
593 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
594 correct Pdb object to %pydb.
594 correct Pdb object to %pydb.
595
595
596
596
597 2006-11-22 Walter Doerwald <walter@livinglogic.de>
597 2006-11-22 Walter Doerwald <walter@livinglogic.de>
598 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
598 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
599 generic xrepr(), otherwise the list implementation would kick in.
599 generic xrepr(), otherwise the list implementation would kick in.
600
600
601 2006-11-21 Ville Vainio <vivainio@gmail.com>
601 2006-11-21 Ville Vainio <vivainio@gmail.com>
602
602
603 * upgrade_dir.py: Now actually overwrites a nonmodified user file
603 * upgrade_dir.py: Now actually overwrites a nonmodified user file
604 with one from UserConfig.
604 with one from UserConfig.
605
605
606 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
606 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
607 it was missing which broke the sh profile.
607 it was missing which broke the sh profile.
608
608
609 * completer.py: file completer now uses explicit '/' instead
609 * completer.py: file completer now uses explicit '/' instead
610 of os.path.join, expansion of 'foo' was broken on win32
610 of os.path.join, expansion of 'foo' was broken on win32
611 if there was one directory with name 'foobar'.
611 if there was one directory with name 'foobar'.
612
612
613 * A bunch of patches from Kirill Smelkov:
613 * A bunch of patches from Kirill Smelkov:
614
614
615 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
615 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
616
616
617 * [patch 7/9] Implement %page -r (page in raw mode) -
617 * [patch 7/9] Implement %page -r (page in raw mode) -
618
618
619 * [patch 5/9] ScientificPython webpage has moved
619 * [patch 5/9] ScientificPython webpage has moved
620
620
621 * [patch 4/9] The manual mentions %ds, should be %dhist
621 * [patch 4/9] The manual mentions %ds, should be %dhist
622
622
623 * [patch 3/9] Kill old bits from %prun doc.
623 * [patch 3/9] Kill old bits from %prun doc.
624
624
625 * [patch 1/9] Fix typos here and there.
625 * [patch 1/9] Fix typos here and there.
626
626
627 2006-11-08 Ville Vainio <vivainio@gmail.com>
627 2006-11-08 Ville Vainio <vivainio@gmail.com>
628
628
629 * completer.py (attr_matches): catch all exceptions raised
629 * completer.py (attr_matches): catch all exceptions raised
630 by eval of expr with dots.
630 by eval of expr with dots.
631
631
632 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
632 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
633
633
634 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
634 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
635 input if it starts with whitespace. This allows you to paste
635 input if it starts with whitespace. This allows you to paste
636 indented input from any editor without manually having to type in
636 indented input from any editor without manually having to type in
637 the 'if 1:', which is convenient when working interactively.
637 the 'if 1:', which is convenient when working interactively.
638 Slightly modifed version of a patch by Bo Peng
638 Slightly modifed version of a patch by Bo Peng
639 <bpeng-AT-rice.edu>.
639 <bpeng-AT-rice.edu>.
640
640
641 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
641 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
642
642
643 * IPython/irunner.py (main): modified irunner so it automatically
643 * IPython/irunner.py (main): modified irunner so it automatically
644 recognizes the right runner to use based on the extension (.py for
644 recognizes the right runner to use based on the extension (.py for
645 python, .ipy for ipython and .sage for sage).
645 python, .ipy for ipython and .sage for sage).
646
646
647 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
647 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
648 visible in ipapi as ip.config(), to programatically control the
648 visible in ipapi as ip.config(), to programatically control the
649 internal rc object. There's an accompanying %config magic for
649 internal rc object. There's an accompanying %config magic for
650 interactive use, which has been enhanced to match the
650 interactive use, which has been enhanced to match the
651 funtionality in ipconfig.
651 funtionality in ipconfig.
652
652
653 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
653 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
654 so it's not just a toggle, it now takes an argument. Add support
654 so it's not just a toggle, it now takes an argument. Add support
655 for a customizable header when making system calls, as the new
655 for a customizable header when making system calls, as the new
656 system_header variable in the ipythonrc file.
656 system_header variable in the ipythonrc file.
657
657
658 2006-11-03 Walter Doerwald <walter@livinglogic.de>
658 2006-11-03 Walter Doerwald <walter@livinglogic.de>
659
659
660 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
660 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
661 generic functions (using Philip J. Eby's simplegeneric package).
661 generic functions (using Philip J. Eby's simplegeneric package).
662 This makes it possible to customize the display of third-party classes
662 This makes it possible to customize the display of third-party classes
663 without having to monkeypatch them. xiter() no longer supports a mode
663 without having to monkeypatch them. xiter() no longer supports a mode
664 argument and the XMode class has been removed. The same functionality can
664 argument and the XMode class has been removed. The same functionality can
665 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
665 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
666 One consequence of the switch to generic functions is that xrepr() and
666 One consequence of the switch to generic functions is that xrepr() and
667 xattrs() implementation must define the default value for the mode
667 xattrs() implementation must define the default value for the mode
668 argument themselves and xattrs() implementations must return real
668 argument themselves and xattrs() implementations must return real
669 descriptors.
669 descriptors.
670
670
671 * IPython/external: This new subpackage will contain all third-party
671 * IPython/external: This new subpackage will contain all third-party
672 packages that are bundled with IPython. (The first one is simplegeneric).
672 packages that are bundled with IPython. (The first one is simplegeneric).
673
673
674 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
674 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
675 directory which as been dropped in r1703.
675 directory which as been dropped in r1703.
676
676
677 * IPython/Extensions/ipipe.py (iless): Fixed.
677 * IPython/Extensions/ipipe.py (iless): Fixed.
678
678
679 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
679 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
680
680
681 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
681 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
682
682
683 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
683 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
684 handling in variable expansion so that shells and magics recognize
684 handling in variable expansion so that shells and magics recognize
685 function local scopes correctly. Bug reported by Brian.
685 function local scopes correctly. Bug reported by Brian.
686
686
687 * scripts/ipython: remove the very first entry in sys.path which
687 * scripts/ipython: remove the very first entry in sys.path which
688 Python auto-inserts for scripts, so that sys.path under IPython is
688 Python auto-inserts for scripts, so that sys.path under IPython is
689 as similar as possible to that under plain Python.
689 as similar as possible to that under plain Python.
690
690
691 * IPython/completer.py (IPCompleter.file_matches): Fix
691 * IPython/completer.py (IPCompleter.file_matches): Fix
692 tab-completion so that quotes are not closed unless the completion
692 tab-completion so that quotes are not closed unless the completion
693 is unambiguous. After a request by Stefan. Minor cleanups in
693 is unambiguous. After a request by Stefan. Minor cleanups in
694 ipy_stock_completers.
694 ipy_stock_completers.
695
695
696 2006-11-02 Ville Vainio <vivainio@gmail.com>
696 2006-11-02 Ville Vainio <vivainio@gmail.com>
697
697
698 * ipy_stock_completers.py: Add %run and %cd completers.
698 * ipy_stock_completers.py: Add %run and %cd completers.
699
699
700 * completer.py: Try running custom completer for both
700 * completer.py: Try running custom completer for both
701 "foo" and "%foo" if the command is just "foo". Ignore case
701 "foo" and "%foo" if the command is just "foo". Ignore case
702 when filtering possible completions.
702 when filtering possible completions.
703
703
704 * UserConfig/ipy_user_conf.py: install stock completers as default
704 * UserConfig/ipy_user_conf.py: install stock completers as default
705
705
706 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
706 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
707 simplified readline history save / restore through a wrapper
707 simplified readline history save / restore through a wrapper
708 function
708 function
709
709
710
710
711 2006-10-31 Ville Vainio <vivainio@gmail.com>
711 2006-10-31 Ville Vainio <vivainio@gmail.com>
712
712
713 * strdispatch.py, completer.py, ipy_stock_completers.py:
713 * strdispatch.py, completer.py, ipy_stock_completers.py:
714 Allow str_key ("command") in completer hooks. Implement
714 Allow str_key ("command") in completer hooks. Implement
715 trivial completer for 'import' (stdlib modules only). Rename
715 trivial completer for 'import' (stdlib modules only). Rename
716 ipy_linux_package_managers.py to ipy_stock_completers.py.
716 ipy_linux_package_managers.py to ipy_stock_completers.py.
717 SVN completer.
717 SVN completer.
718
718
719 * Extensions/ledit.py: %magic line editor for easily and
719 * Extensions/ledit.py: %magic line editor for easily and
720 incrementally manipulating lists of strings. The magic command
720 incrementally manipulating lists of strings. The magic command
721 name is %led.
721 name is %led.
722
722
723 2006-10-30 Ville Vainio <vivainio@gmail.com>
723 2006-10-30 Ville Vainio <vivainio@gmail.com>
724
724
725 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
725 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
726 Bernsteins's patches for pydb integration.
726 Bernsteins's patches for pydb integration.
727 http://bashdb.sourceforge.net/pydb/
727 http://bashdb.sourceforge.net/pydb/
728
728
729 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
729 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
730 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
730 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
731 custom completer hook to allow the users to implement their own
731 custom completer hook to allow the users to implement their own
732 completers. See ipy_linux_package_managers.py for example. The
732 completers. See ipy_linux_package_managers.py for example. The
733 hook name is 'complete_command'.
733 hook name is 'complete_command'.
734
734
735 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
735 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
736
736
737 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
737 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
738 Numeric leftovers.
738 Numeric leftovers.
739
739
740 * ipython.el (py-execute-region): apply Stefan's patch to fix
740 * ipython.el (py-execute-region): apply Stefan's patch to fix
741 garbled results if the python shell hasn't been previously started.
741 garbled results if the python shell hasn't been previously started.
742
742
743 * IPython/genutils.py (arg_split): moved to genutils, since it's a
743 * IPython/genutils.py (arg_split): moved to genutils, since it's a
744 pretty generic function and useful for other things.
744 pretty generic function and useful for other things.
745
745
746 * IPython/OInspect.py (getsource): Add customizable source
746 * IPython/OInspect.py (getsource): Add customizable source
747 extractor. After a request/patch form W. Stein (SAGE).
747 extractor. After a request/patch form W. Stein (SAGE).
748
748
749 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
749 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
750 window size to a more reasonable value from what pexpect does,
750 window size to a more reasonable value from what pexpect does,
751 since their choice causes wrapping bugs with long input lines.
751 since their choice causes wrapping bugs with long input lines.
752
752
753 2006-10-28 Ville Vainio <vivainio@gmail.com>
753 2006-10-28 Ville Vainio <vivainio@gmail.com>
754
754
755 * Magic.py (%run): Save and restore the readline history from
755 * Magic.py (%run): Save and restore the readline history from
756 file around %run commands to prevent side effects from
756 file around %run commands to prevent side effects from
757 %runned programs that might use readline (e.g. pydb).
757 %runned programs that might use readline (e.g. pydb).
758
758
759 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
759 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
760 invoking the pydb enhanced debugger.
760 invoking the pydb enhanced debugger.
761
761
762 2006-10-23 Walter Doerwald <walter@livinglogic.de>
762 2006-10-23 Walter Doerwald <walter@livinglogic.de>
763
763
764 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
764 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
765 call the base class method and propagate the return value to
765 call the base class method and propagate the return value to
766 ifile. This is now done by path itself.
766 ifile. This is now done by path itself.
767
767
768 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
768 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
769
769
770 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
770 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
771 api: set_crash_handler(), to expose the ability to change the
771 api: set_crash_handler(), to expose the ability to change the
772 internal crash handler.
772 internal crash handler.
773
773
774 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
774 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
775 the various parameters of the crash handler so that apps using
775 the various parameters of the crash handler so that apps using
776 IPython as their engine can customize crash handling. Ipmlemented
776 IPython as their engine can customize crash handling. Ipmlemented
777 at the request of SAGE.
777 at the request of SAGE.
778
778
779 2006-10-14 Ville Vainio <vivainio@gmail.com>
779 2006-10-14 Ville Vainio <vivainio@gmail.com>
780
780
781 * Magic.py, ipython.el: applied first "safe" part of Rocky
781 * Magic.py, ipython.el: applied first "safe" part of Rocky
782 Bernstein's patch set for pydb integration.
782 Bernstein's patch set for pydb integration.
783
783
784 * Magic.py (%unalias, %alias): %store'd aliases can now be
784 * Magic.py (%unalias, %alias): %store'd aliases can now be
785 removed with '%unalias'. %alias w/o args now shows most
785 removed with '%unalias'. %alias w/o args now shows most
786 interesting (stored / manually defined) aliases last
786 interesting (stored / manually defined) aliases last
787 where they catch the eye w/o scrolling.
787 where they catch the eye w/o scrolling.
788
788
789 * Magic.py (%rehashx), ext_rehashdir.py: files with
789 * Magic.py (%rehashx), ext_rehashdir.py: files with
790 'py' extension are always considered executable, even
790 'py' extension are always considered executable, even
791 when not in PATHEXT environment variable.
791 when not in PATHEXT environment variable.
792
792
793 2006-10-12 Ville Vainio <vivainio@gmail.com>
793 2006-10-12 Ville Vainio <vivainio@gmail.com>
794
794
795 * jobctrl.py: Add new "jobctrl" extension for spawning background
795 * jobctrl.py: Add new "jobctrl" extension for spawning background
796 processes with "&find /". 'import jobctrl' to try it out. Requires
796 processes with "&find /". 'import jobctrl' to try it out. Requires
797 'subprocess' module, standard in python 2.4+.
797 'subprocess' module, standard in python 2.4+.
798
798
799 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
799 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
800 so if foo -> bar and bar -> baz, then foo -> baz.
800 so if foo -> bar and bar -> baz, then foo -> baz.
801
801
802 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
802 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
803
803
804 * IPython/Magic.py (Magic.parse_options): add a new posix option
804 * IPython/Magic.py (Magic.parse_options): add a new posix option
805 to allow parsing of input args in magics that doesn't strip quotes
805 to allow parsing of input args in magics that doesn't strip quotes
806 (if posix=False). This also closes %timeit bug reported by
806 (if posix=False). This also closes %timeit bug reported by
807 Stefan.
807 Stefan.
808
808
809 2006-10-03 Ville Vainio <vivainio@gmail.com>
809 2006-10-03 Ville Vainio <vivainio@gmail.com>
810
810
811 * iplib.py (raw_input, interact): Return ValueError catching for
811 * iplib.py (raw_input, interact): Return ValueError catching for
812 raw_input. Fixes infinite loop for sys.stdin.close() or
812 raw_input. Fixes infinite loop for sys.stdin.close() or
813 sys.stdout.close().
813 sys.stdout.close().
814
814
815 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
815 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
816
816
817 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
817 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
818 to help in handling doctests. irunner is now pretty useful for
818 to help in handling doctests. irunner is now pretty useful for
819 running standalone scripts and simulate a full interactive session
819 running standalone scripts and simulate a full interactive session
820 in a format that can be then pasted as a doctest.
820 in a format that can be then pasted as a doctest.
821
821
822 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
822 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
823 on top of the default (useless) ones. This also fixes the nasty
823 on top of the default (useless) ones. This also fixes the nasty
824 way in which 2.5's Quitter() exits (reverted [1785]).
824 way in which 2.5's Quitter() exits (reverted [1785]).
825
825
826 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
826 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
827 2.5.
827 2.5.
828
828
829 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
829 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
830 color scheme is updated as well when color scheme is changed
830 color scheme is updated as well when color scheme is changed
831 interactively.
831 interactively.
832
832
833 2006-09-27 Ville Vainio <vivainio@gmail.com>
833 2006-09-27 Ville Vainio <vivainio@gmail.com>
834
834
835 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
835 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
836 infinite loop and just exit. It's a hack, but will do for a while.
836 infinite loop and just exit. It's a hack, but will do for a while.
837
837
838 2006-08-25 Walter Doerwald <walter@livinglogic.de>
838 2006-08-25 Walter Doerwald <walter@livinglogic.de>
839
839
840 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
840 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
841 the constructor, this makes it possible to get a list of only directories
841 the constructor, this makes it possible to get a list of only directories
842 or only files.
842 or only files.
843
843
844 2006-08-12 Ville Vainio <vivainio@gmail.com>
844 2006-08-12 Ville Vainio <vivainio@gmail.com>
845
845
846 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
846 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
847 they broke unittest
847 they broke unittest
848
848
849 2006-08-11 Ville Vainio <vivainio@gmail.com>
849 2006-08-11 Ville Vainio <vivainio@gmail.com>
850
850
851 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
851 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
852 by resolving issue properly, i.e. by inheriting FakeModule
852 by resolving issue properly, i.e. by inheriting FakeModule
853 from types.ModuleType. Pickling ipython interactive data
853 from types.ModuleType. Pickling ipython interactive data
854 should still work as usual (testing appreciated).
854 should still work as usual (testing appreciated).
855
855
856 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
856 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
857
857
858 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
858 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
859 running under python 2.3 with code from 2.4 to fix a bug with
859 running under python 2.3 with code from 2.4 to fix a bug with
860 help(). Reported by the Debian maintainers, Norbert Tretkowski
860 help(). Reported by the Debian maintainers, Norbert Tretkowski
861 <norbert-AT-tretkowski.de> and Alexandre Fayolle
861 <norbert-AT-tretkowski.de> and Alexandre Fayolle
862 <afayolle-AT-debian.org>.
862 <afayolle-AT-debian.org>.
863
863
864 2006-08-04 Walter Doerwald <walter@livinglogic.de>
864 2006-08-04 Walter Doerwald <walter@livinglogic.de>
865
865
866 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
866 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
867 (which was displaying "quit" twice).
867 (which was displaying "quit" twice).
868
868
869 2006-07-28 Walter Doerwald <walter@livinglogic.de>
869 2006-07-28 Walter Doerwald <walter@livinglogic.de>
870
870
871 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
871 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
872 the mode argument).
872 the mode argument).
873
873
874 2006-07-27 Walter Doerwald <walter@livinglogic.de>
874 2006-07-27 Walter Doerwald <walter@livinglogic.de>
875
875
876 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
876 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
877 not running under IPython.
877 not running under IPython.
878
878
879 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
879 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
880 and make it iterable (iterating over the attribute itself). Add two new
880 and make it iterable (iterating over the attribute itself). Add two new
881 magic strings for __xattrs__(): If the string starts with "-", the attribute
881 magic strings for __xattrs__(): If the string starts with "-", the attribute
882 will not be displayed in ibrowse's detail view (but it can still be
882 will not be displayed in ibrowse's detail view (but it can still be
883 iterated over). This makes it possible to add attributes that are large
883 iterated over). This makes it possible to add attributes that are large
884 lists or generator methods to the detail view. Replace magic attribute names
884 lists or generator methods to the detail view. Replace magic attribute names
885 and _attrname() and _getattr() with "descriptors": For each type of magic
885 and _attrname() and _getattr() with "descriptors": For each type of magic
886 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
886 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
887 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
887 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
888 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
888 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
889 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
889 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
890 are still supported.
890 are still supported.
891
891
892 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
892 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
893 fails in ibrowse.fetch(), the exception object is added as the last item
893 fails in ibrowse.fetch(), the exception object is added as the last item
894 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
894 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
895 a generator throws an exception midway through execution.
895 a generator throws an exception midway through execution.
896
896
897 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
897 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
898 encoding into methods.
898 encoding into methods.
899
899
900 2006-07-26 Ville Vainio <vivainio@gmail.com>
900 2006-07-26 Ville Vainio <vivainio@gmail.com>
901
901
902 * iplib.py: history now stores multiline input as single
902 * iplib.py: history now stores multiline input as single
903 history entries. Patch by Jorgen Cederlof.
903 history entries. Patch by Jorgen Cederlof.
904
904
905 2006-07-18 Walter Doerwald <walter@livinglogic.de>
905 2006-07-18 Walter Doerwald <walter@livinglogic.de>
906
906
907 * IPython/Extensions/ibrowse.py: Make cursor visible over
907 * IPython/Extensions/ibrowse.py: Make cursor visible over
908 non existing attributes.
908 non existing attributes.
909
909
910 2006-07-14 Walter Doerwald <walter@livinglogic.de>
910 2006-07-14 Walter Doerwald <walter@livinglogic.de>
911
911
912 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
912 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
913 error output of the running command doesn't mess up the screen.
913 error output of the running command doesn't mess up the screen.
914
914
915 2006-07-13 Walter Doerwald <walter@livinglogic.de>
915 2006-07-13 Walter Doerwald <walter@livinglogic.de>
916
916
917 * IPython/Extensions/ipipe.py (isort): Make isort usable without
917 * IPython/Extensions/ipipe.py (isort): Make isort usable without
918 argument. This sorts the items themselves.
918 argument. This sorts the items themselves.
919
919
920 2006-07-12 Walter Doerwald <walter@livinglogic.de>
920 2006-07-12 Walter Doerwald <walter@livinglogic.de>
921
921
922 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
922 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
923 Compile expression strings into code objects. This should speed
923 Compile expression strings into code objects. This should speed
924 up ifilter and friends somewhat.
924 up ifilter and friends somewhat.
925
925
926 2006-07-08 Ville Vainio <vivainio@gmail.com>
926 2006-07-08 Ville Vainio <vivainio@gmail.com>
927
927
928 * Magic.py: %cpaste now strips > from the beginning of lines
928 * Magic.py: %cpaste now strips > from the beginning of lines
929 to ease pasting quoted code from emails. Contributed by
929 to ease pasting quoted code from emails. Contributed by
930 Stefan van der Walt.
930 Stefan van der Walt.
931
931
932 2006-06-29 Ville Vainio <vivainio@gmail.com>
932 2006-06-29 Ville Vainio <vivainio@gmail.com>
933
933
934 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
934 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
935 mode, patch contributed by Darren Dale. NEEDS TESTING!
935 mode, patch contributed by Darren Dale. NEEDS TESTING!
936
936
937 2006-06-28 Walter Doerwald <walter@livinglogic.de>
937 2006-06-28 Walter Doerwald <walter@livinglogic.de>
938
938
939 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
939 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
940 a blue background. Fix fetching new display rows when the browser
940 a blue background. Fix fetching new display rows when the browser
941 scrolls more than a screenful (e.g. by using the goto command).
941 scrolls more than a screenful (e.g. by using the goto command).
942
942
943 2006-06-27 Ville Vainio <vivainio@gmail.com>
943 2006-06-27 Ville Vainio <vivainio@gmail.com>
944
944
945 * Magic.py (_inspect, _ofind) Apply David Huard's
945 * Magic.py (_inspect, _ofind) Apply David Huard's
946 patch for displaying the correct docstring for 'property'
946 patch for displaying the correct docstring for 'property'
947 attributes.
947 attributes.
948
948
949 2006-06-23 Walter Doerwald <walter@livinglogic.de>
949 2006-06-23 Walter Doerwald <walter@livinglogic.de>
950
950
951 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
951 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
952 commands into the methods implementing them.
952 commands into the methods implementing them.
953
953
954 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
954 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
955
955
956 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
956 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
957 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
957 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
958 autoindent support was authored by Jin Liu.
958 autoindent support was authored by Jin Liu.
959
959
960 2006-06-22 Walter Doerwald <walter@livinglogic.de>
960 2006-06-22 Walter Doerwald <walter@livinglogic.de>
961
961
962 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
962 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
963 for keymaps with a custom class that simplifies handling.
963 for keymaps with a custom class that simplifies handling.
964
964
965 2006-06-19 Walter Doerwald <walter@livinglogic.de>
965 2006-06-19 Walter Doerwald <walter@livinglogic.de>
966
966
967 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
967 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
968 resizing. This requires Python 2.5 to work.
968 resizing. This requires Python 2.5 to work.
969
969
970 2006-06-16 Walter Doerwald <walter@livinglogic.de>
970 2006-06-16 Walter Doerwald <walter@livinglogic.de>
971
971
972 * IPython/Extensions/ibrowse.py: Add two new commands to
972 * IPython/Extensions/ibrowse.py: Add two new commands to
973 ibrowse: "hideattr" (mapped to "h") hides the attribute under
973 ibrowse: "hideattr" (mapped to "h") hides the attribute under
974 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
974 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
975 attributes again. Remapped the help command to "?". Display
975 attributes again. Remapped the help command to "?". Display
976 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
976 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
977 as keys for the "home" and "end" commands. Add three new commands
977 as keys for the "home" and "end" commands. Add three new commands
978 to the input mode for "find" and friends: "delend" (CTRL-K)
978 to the input mode for "find" and friends: "delend" (CTRL-K)
979 deletes to the end of line. "incsearchup" searches upwards in the
979 deletes to the end of line. "incsearchup" searches upwards in the
980 command history for an input that starts with the text before the cursor.
980 command history for an input that starts with the text before the cursor.
981 "incsearchdown" does the same downwards. Removed a bogus mapping of
981 "incsearchdown" does the same downwards. Removed a bogus mapping of
982 the x key to "delete".
982 the x key to "delete".
983
983
984 2006-06-15 Ville Vainio <vivainio@gmail.com>
984 2006-06-15 Ville Vainio <vivainio@gmail.com>
985
985
986 * iplib.py, hooks.py: Added new generate_prompt hook that can be
986 * iplib.py, hooks.py: Added new generate_prompt hook that can be
987 used to create prompts dynamically, instead of the "old" way of
987 used to create prompts dynamically, instead of the "old" way of
988 assigning "magic" strings to prompt_in1 and prompt_in2. The old
988 assigning "magic" strings to prompt_in1 and prompt_in2. The old
989 way still works (it's invoked by the default hook), of course.
989 way still works (it's invoked by the default hook), of course.
990
990
991 * Prompts.py: added generate_output_prompt hook for altering output
991 * Prompts.py: added generate_output_prompt hook for altering output
992 prompt
992 prompt
993
993
994 * Release.py: Changed version string to 0.7.3.svn.
994 * Release.py: Changed version string to 0.7.3.svn.
995
995
996 2006-06-15 Walter Doerwald <walter@livinglogic.de>
996 2006-06-15 Walter Doerwald <walter@livinglogic.de>
997
997
998 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
998 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
999 the call to fetch() always tries to fetch enough data for at least one
999 the call to fetch() always tries to fetch enough data for at least one
1000 full screen. This makes it possible to simply call moveto(0,0,True) in
1000 full screen. This makes it possible to simply call moveto(0,0,True) in
1001 the constructor. Fix typos and removed the obsolete goto attribute.
1001 the constructor. Fix typos and removed the obsolete goto attribute.
1002
1002
1003 2006-06-12 Ville Vainio <vivainio@gmail.com>
1003 2006-06-12 Ville Vainio <vivainio@gmail.com>
1004
1004
1005 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1005 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1006 allowing $variable interpolation within multiline statements,
1006 allowing $variable interpolation within multiline statements,
1007 though so far only with "sh" profile for a testing period.
1007 though so far only with "sh" profile for a testing period.
1008 The patch also enables splitting long commands with \ but it
1008 The patch also enables splitting long commands with \ but it
1009 doesn't work properly yet.
1009 doesn't work properly yet.
1010
1010
1011 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1011 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1012
1012
1013 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1013 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1014 input history and the position of the cursor in the input history for
1014 input history and the position of the cursor in the input history for
1015 the find, findbackwards and goto command.
1015 the find, findbackwards and goto command.
1016
1016
1017 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1017 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1018
1018
1019 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1019 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1020 implements the basic functionality of browser commands that require
1020 implements the basic functionality of browser commands that require
1021 input. Reimplement the goto, find and findbackwards commands as
1021 input. Reimplement the goto, find and findbackwards commands as
1022 subclasses of _CommandInput. Add an input history and keymaps to those
1022 subclasses of _CommandInput. Add an input history and keymaps to those
1023 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1023 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1024 execute commands.
1024 execute commands.
1025
1025
1026 2006-06-07 Ville Vainio <vivainio@gmail.com>
1026 2006-06-07 Ville Vainio <vivainio@gmail.com>
1027
1027
1028 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1028 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1029 running the batch files instead of leaving the session open.
1029 running the batch files instead of leaving the session open.
1030
1030
1031 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1031 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1032
1032
1033 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1033 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1034 the original fix was incomplete. Patch submitted by W. Maier.
1034 the original fix was incomplete. Patch submitted by W. Maier.
1035
1035
1036 2006-06-07 Ville Vainio <vivainio@gmail.com>
1036 2006-06-07 Ville Vainio <vivainio@gmail.com>
1037
1037
1038 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1038 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1039 Confirmation prompts can be supressed by 'quiet' option.
1039 Confirmation prompts can be supressed by 'quiet' option.
1040 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1040 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1041
1041
1042 2006-06-06 *** Released version 0.7.2
1042 2006-06-06 *** Released version 0.7.2
1043
1043
1044 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1044 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1045
1045
1046 * IPython/Release.py (version): Made 0.7.2 final for release.
1046 * IPython/Release.py (version): Made 0.7.2 final for release.
1047 Repo tagged and release cut.
1047 Repo tagged and release cut.
1048
1048
1049 2006-06-05 Ville Vainio <vivainio@gmail.com>
1049 2006-06-05 Ville Vainio <vivainio@gmail.com>
1050
1050
1051 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1051 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1052 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1052 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1053
1053
1054 * upgrade_dir.py: try import 'path' module a bit harder
1054 * upgrade_dir.py: try import 'path' module a bit harder
1055 (for %upgrade)
1055 (for %upgrade)
1056
1056
1057 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1057 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1058
1058
1059 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1059 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1060 instead of looping 20 times.
1060 instead of looping 20 times.
1061
1061
1062 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1062 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1063 correctly at initialization time. Bug reported by Krishna Mohan
1063 correctly at initialization time. Bug reported by Krishna Mohan
1064 Gundu <gkmohan-AT-gmail.com> on the user list.
1064 Gundu <gkmohan-AT-gmail.com> on the user list.
1065
1065
1066 * IPython/Release.py (version): Mark 0.7.2 version to start
1066 * IPython/Release.py (version): Mark 0.7.2 version to start
1067 testing for release on 06/06.
1067 testing for release on 06/06.
1068
1068
1069 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1069 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1070
1070
1071 * scripts/irunner: thin script interface so users don't have to
1071 * scripts/irunner: thin script interface so users don't have to
1072 find the module and call it as an executable, since modules rarely
1072 find the module and call it as an executable, since modules rarely
1073 live in people's PATH.
1073 live in people's PATH.
1074
1074
1075 * IPython/irunner.py (InteractiveRunner.__init__): added
1075 * IPython/irunner.py (InteractiveRunner.__init__): added
1076 delaybeforesend attribute to control delays with newer versions of
1076 delaybeforesend attribute to control delays with newer versions of
1077 pexpect. Thanks to detailed help from pexpect's author, Noah
1077 pexpect. Thanks to detailed help from pexpect's author, Noah
1078 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1078 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1079 correctly (it works in NoColor mode).
1079 correctly (it works in NoColor mode).
1080
1080
1081 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1081 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1082 SAGE list, from improper log() calls.
1082 SAGE list, from improper log() calls.
1083
1083
1084 2006-05-31 Ville Vainio <vivainio@gmail.com>
1084 2006-05-31 Ville Vainio <vivainio@gmail.com>
1085
1085
1086 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1086 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1087 with args in parens to work correctly with dirs that have spaces.
1087 with args in parens to work correctly with dirs that have spaces.
1088
1088
1089 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1089 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1090
1090
1091 * IPython/Logger.py (Logger.logstart): add option to log raw input
1091 * IPython/Logger.py (Logger.logstart): add option to log raw input
1092 instead of the processed one. A -r flag was added to the
1092 instead of the processed one. A -r flag was added to the
1093 %logstart magic used for controlling logging.
1093 %logstart magic used for controlling logging.
1094
1094
1095 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1096
1096
1097 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1097 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1098 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1098 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1099 recognize the option. After a bug report by Will Maier. This
1099 recognize the option. After a bug report by Will Maier. This
1100 closes #64 (will do it after confirmation from W. Maier).
1100 closes #64 (will do it after confirmation from W. Maier).
1101
1101
1102 * IPython/irunner.py: New module to run scripts as if manually
1102 * IPython/irunner.py: New module to run scripts as if manually
1103 typed into an interactive environment, based on pexpect. After a
1103 typed into an interactive environment, based on pexpect. After a
1104 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1104 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1105 ipython-user list. Simple unittests in the tests/ directory.
1105 ipython-user list. Simple unittests in the tests/ directory.
1106
1106
1107 * tools/release: add Will Maier, OpenBSD port maintainer, to
1107 * tools/release: add Will Maier, OpenBSD port maintainer, to
1108 recepients list. We are now officially part of the OpenBSD ports:
1108 recepients list. We are now officially part of the OpenBSD ports:
1109 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1109 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1110 work.
1110 work.
1111
1111
1112 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1112 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1113
1113
1114 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1114 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1115 so that it doesn't break tkinter apps.
1115 so that it doesn't break tkinter apps.
1116
1116
1117 * IPython/iplib.py (_prefilter): fix bug where aliases would
1117 * IPython/iplib.py (_prefilter): fix bug where aliases would
1118 shadow variables when autocall was fully off. Reported by SAGE
1118 shadow variables when autocall was fully off. Reported by SAGE
1119 author William Stein.
1119 author William Stein.
1120
1120
1121 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1121 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1122 at what detail level strings are computed when foo? is requested.
1122 at what detail level strings are computed when foo? is requested.
1123 This allows users to ask for example that the string form of an
1123 This allows users to ask for example that the string form of an
1124 object is only computed when foo?? is called, or even never, by
1124 object is only computed when foo?? is called, or even never, by
1125 setting the object_info_string_level >= 2 in the configuration
1125 setting the object_info_string_level >= 2 in the configuration
1126 file. This new option has been added and documented. After a
1126 file. This new option has been added and documented. After a
1127 request by SAGE to be able to control the printing of very large
1127 request by SAGE to be able to control the printing of very large
1128 objects more easily.
1128 objects more easily.
1129
1129
1130 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1131
1131
1132 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1132 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1133 from sys.argv, to be 100% consistent with how Python itself works
1133 from sys.argv, to be 100% consistent with how Python itself works
1134 (as seen for example with python -i file.py). After a bug report
1134 (as seen for example with python -i file.py). After a bug report
1135 by Jeffrey Collins.
1135 by Jeffrey Collins.
1136
1136
1137 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1137 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1138 nasty bug which was preventing custom namespaces with -pylab,
1138 nasty bug which was preventing custom namespaces with -pylab,
1139 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1139 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1140 compatibility (long gone from mpl).
1140 compatibility (long gone from mpl).
1141
1141
1142 * IPython/ipapi.py (make_session): name change: create->make. We
1142 * IPython/ipapi.py (make_session): name change: create->make. We
1143 use make in other places (ipmaker,...), it's shorter and easier to
1143 use make in other places (ipmaker,...), it's shorter and easier to
1144 type and say, etc. I'm trying to clean things before 0.7.2 so
1144 type and say, etc. I'm trying to clean things before 0.7.2 so
1145 that I can keep things stable wrt to ipapi in the chainsaw branch.
1145 that I can keep things stable wrt to ipapi in the chainsaw branch.
1146
1146
1147 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1147 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1148 python-mode recognizes our debugger mode. Add support for
1148 python-mode recognizes our debugger mode. Add support for
1149 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1149 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1150 <m.liu.jin-AT-gmail.com> originally written by
1150 <m.liu.jin-AT-gmail.com> originally written by
1151 doxgen-AT-newsmth.net (with minor modifications for xemacs
1151 doxgen-AT-newsmth.net (with minor modifications for xemacs
1152 compatibility)
1152 compatibility)
1153
1153
1154 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1154 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1155 tracebacks when walking the stack so that the stack tracking system
1155 tracebacks when walking the stack so that the stack tracking system
1156 in emacs' python-mode can identify the frames correctly.
1156 in emacs' python-mode can identify the frames correctly.
1157
1157
1158 * IPython/ipmaker.py (make_IPython): make the internal (and
1158 * IPython/ipmaker.py (make_IPython): make the internal (and
1159 default config) autoedit_syntax value false by default. Too many
1159 default config) autoedit_syntax value false by default. Too many
1160 users have complained to me (both on and off-list) about problems
1160 users have complained to me (both on and off-list) about problems
1161 with this option being on by default, so I'm making it default to
1161 with this option being on by default, so I'm making it default to
1162 off. It can still be enabled by anyone via the usual mechanisms.
1162 off. It can still be enabled by anyone via the usual mechanisms.
1163
1163
1164 * IPython/completer.py (Completer.attr_matches): add support for
1164 * IPython/completer.py (Completer.attr_matches): add support for
1165 PyCrust-style _getAttributeNames magic method. Patch contributed
1165 PyCrust-style _getAttributeNames magic method. Patch contributed
1166 by <mscott-AT-goldenspud.com>. Closes #50.
1166 by <mscott-AT-goldenspud.com>. Closes #50.
1167
1167
1168 * IPython/iplib.py (InteractiveShell.__init__): remove the
1168 * IPython/iplib.py (InteractiveShell.__init__): remove the
1169 deletion of exit/quit from __builtin__, which can break
1169 deletion of exit/quit from __builtin__, which can break
1170 third-party tools like the Zope debugging console. The
1170 third-party tools like the Zope debugging console. The
1171 %exit/%quit magics remain. In general, it's probably a good idea
1171 %exit/%quit magics remain. In general, it's probably a good idea
1172 not to delete anything from __builtin__, since we never know what
1172 not to delete anything from __builtin__, since we never know what
1173 that will break. In any case, python now (for 2.5) will support
1173 that will break. In any case, python now (for 2.5) will support
1174 'real' exit/quit, so this issue is moot. Closes #55.
1174 'real' exit/quit, so this issue is moot. Closes #55.
1175
1175
1176 * IPython/genutils.py (with_obj): rename the 'with' function to
1176 * IPython/genutils.py (with_obj): rename the 'with' function to
1177 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1177 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1178 becomes a language keyword. Closes #53.
1178 becomes a language keyword. Closes #53.
1179
1179
1180 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1180 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1181 __file__ attribute to this so it fools more things into thinking
1181 __file__ attribute to this so it fools more things into thinking
1182 it is a real module. Closes #59.
1182 it is a real module. Closes #59.
1183
1183
1184 * IPython/Magic.py (magic_edit): add -n option to open the editor
1184 * IPython/Magic.py (magic_edit): add -n option to open the editor
1185 at a specific line number. After a patch by Stefan van der Walt.
1185 at a specific line number. After a patch by Stefan van der Walt.
1186
1186
1187 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1187 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1188
1188
1189 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1189 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1190 reason the file could not be opened. After automatic crash
1190 reason the file could not be opened. After automatic crash
1191 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1191 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1192 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1192 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1193 (_should_recompile): Don't fire editor if using %bg, since there
1193 (_should_recompile): Don't fire editor if using %bg, since there
1194 is no file in the first place. From the same report as above.
1194 is no file in the first place. From the same report as above.
1195 (raw_input): protect against faulty third-party prefilters. After
1195 (raw_input): protect against faulty third-party prefilters. After
1196 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1196 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1197 while running under SAGE.
1197 while running under SAGE.
1198
1198
1199 2006-05-23 Ville Vainio <vivainio@gmail.com>
1199 2006-05-23 Ville Vainio <vivainio@gmail.com>
1200
1200
1201 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1201 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1202 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1202 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1203 now returns None (again), unless dummy is specifically allowed by
1203 now returns None (again), unless dummy is specifically allowed by
1204 ipapi.get(allow_dummy=True).
1204 ipapi.get(allow_dummy=True).
1205
1205
1206 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1206 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1207
1207
1208 * IPython: remove all 2.2-compatibility objects and hacks from
1208 * IPython: remove all 2.2-compatibility objects and hacks from
1209 everywhere, since we only support 2.3 at this point. Docs
1209 everywhere, since we only support 2.3 at this point. Docs
1210 updated.
1210 updated.
1211
1211
1212 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1212 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1213 Anything requiring extra validation can be turned into a Python
1213 Anything requiring extra validation can be turned into a Python
1214 property in the future. I used a property for the db one b/c
1214 property in the future. I used a property for the db one b/c
1215 there was a nasty circularity problem with the initialization
1215 there was a nasty circularity problem with the initialization
1216 order, which right now I don't have time to clean up.
1216 order, which right now I don't have time to clean up.
1217
1217
1218 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1218 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1219 another locking bug reported by Jorgen. I'm not 100% sure though,
1219 another locking bug reported by Jorgen. I'm not 100% sure though,
1220 so more testing is needed...
1220 so more testing is needed...
1221
1221
1222 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1222 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1223
1223
1224 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1224 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1225 local variables from any routine in user code (typically executed
1225 local variables from any routine in user code (typically executed
1226 with %run) directly into the interactive namespace. Very useful
1226 with %run) directly into the interactive namespace. Very useful
1227 when doing complex debugging.
1227 when doing complex debugging.
1228 (IPythonNotRunning): Changed the default None object to a dummy
1228 (IPythonNotRunning): Changed the default None object to a dummy
1229 whose attributes can be queried as well as called without
1229 whose attributes can be queried as well as called without
1230 exploding, to ease writing code which works transparently both in
1230 exploding, to ease writing code which works transparently both in
1231 and out of ipython and uses some of this API.
1231 and out of ipython and uses some of this API.
1232
1232
1233 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1233 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1234
1234
1235 * IPython/hooks.py (result_display): Fix the fact that our display
1235 * IPython/hooks.py (result_display): Fix the fact that our display
1236 hook was using str() instead of repr(), as the default python
1236 hook was using str() instead of repr(), as the default python
1237 console does. This had gone unnoticed b/c it only happened if
1237 console does. This had gone unnoticed b/c it only happened if
1238 %Pprint was off, but the inconsistency was there.
1238 %Pprint was off, but the inconsistency was there.
1239
1239
1240 2006-05-15 Ville Vainio <vivainio@gmail.com>
1240 2006-05-15 Ville Vainio <vivainio@gmail.com>
1241
1241
1242 * Oinspect.py: Only show docstring for nonexisting/binary files
1242 * Oinspect.py: Only show docstring for nonexisting/binary files
1243 when doing object??, closing ticket #62
1243 when doing object??, closing ticket #62
1244
1244
1245 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1246
1247 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1247 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1248 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1248 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1249 was being released in a routine which hadn't checked if it had
1249 was being released in a routine which hadn't checked if it had
1250 been the one to acquire it.
1250 been the one to acquire it.
1251
1251
1252 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1252 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1253
1253
1254 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1254 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1255
1255
1256 2006-04-11 Ville Vainio <vivainio@gmail.com>
1256 2006-04-11 Ville Vainio <vivainio@gmail.com>
1257
1257
1258 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1258 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1259 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1259 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1260 prefilters, allowing stuff like magics and aliases in the file.
1260 prefilters, allowing stuff like magics and aliases in the file.
1261
1261
1262 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1262 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1263 added. Supported now are "%clear in" and "%clear out" (clear input and
1263 added. Supported now are "%clear in" and "%clear out" (clear input and
1264 output history, respectively). Also fixed CachedOutput.flush to
1264 output history, respectively). Also fixed CachedOutput.flush to
1265 properly flush the output cache.
1265 properly flush the output cache.
1266
1266
1267 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1267 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1268 half-success (and fail explicitly).
1268 half-success (and fail explicitly).
1269
1269
1270 2006-03-28 Ville Vainio <vivainio@gmail.com>
1270 2006-03-28 Ville Vainio <vivainio@gmail.com>
1271
1271
1272 * iplib.py: Fix quoting of aliases so that only argless ones
1272 * iplib.py: Fix quoting of aliases so that only argless ones
1273 are quoted
1273 are quoted
1274
1274
1275 2006-03-28 Ville Vainio <vivainio@gmail.com>
1275 2006-03-28 Ville Vainio <vivainio@gmail.com>
1276
1276
1277 * iplib.py: Quote aliases with spaces in the name.
1277 * iplib.py: Quote aliases with spaces in the name.
1278 "c:\program files\blah\bin" is now legal alias target.
1278 "c:\program files\blah\bin" is now legal alias target.
1279
1279
1280 * ext_rehashdir.py: Space no longer allowed as arg
1280 * ext_rehashdir.py: Space no longer allowed as arg
1281 separator, since space is legal in path names.
1281 separator, since space is legal in path names.
1282
1282
1283 2006-03-16 Ville Vainio <vivainio@gmail.com>
1283 2006-03-16 Ville Vainio <vivainio@gmail.com>
1284
1284
1285 * upgrade_dir.py: Take path.py from Extensions, correcting
1285 * upgrade_dir.py: Take path.py from Extensions, correcting
1286 %upgrade magic
1286 %upgrade magic
1287
1287
1288 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1288 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1289
1289
1290 * hooks.py: Only enclose editor binary in quotes if legal and
1290 * hooks.py: Only enclose editor binary in quotes if legal and
1291 necessary (space in the name, and is an existing file). Fixes a bug
1291 necessary (space in the name, and is an existing file). Fixes a bug
1292 reported by Zachary Pincus.
1292 reported by Zachary Pincus.
1293
1293
1294 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1295
1295
1296 * Manual: thanks to a tip on proper color handling for Emacs, by
1296 * Manual: thanks to a tip on proper color handling for Emacs, by
1297 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1297 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1298
1298
1299 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1299 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1300 by applying the provided patch. Thanks to Liu Jin
1300 by applying the provided patch. Thanks to Liu Jin
1301 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1301 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1302 XEmacs/Linux, I'm trusting the submitter that it actually helps
1302 XEmacs/Linux, I'm trusting the submitter that it actually helps
1303 under win32/GNU Emacs. Will revisit if any problems are reported.
1303 under win32/GNU Emacs. Will revisit if any problems are reported.
1304
1304
1305 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1305 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1306
1306
1307 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1307 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1308 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1308 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1309
1309
1310 2006-03-12 Ville Vainio <vivainio@gmail.com>
1310 2006-03-12 Ville Vainio <vivainio@gmail.com>
1311
1311
1312 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1312 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1313 Torsten Marek.
1313 Torsten Marek.
1314
1314
1315 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1315 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1316
1316
1317 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1317 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1318 line ranges works again.
1318 line ranges works again.
1319
1319
1320 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1320 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1321
1321
1322 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1322 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1323 and friends, after a discussion with Zach Pincus on ipython-user.
1323 and friends, after a discussion with Zach Pincus on ipython-user.
1324 I'm not 100% sure, but after thinking about it quite a bit, it may
1324 I'm not 100% sure, but after thinking about it quite a bit, it may
1325 be OK. Testing with the multithreaded shells didn't reveal any
1325 be OK. Testing with the multithreaded shells didn't reveal any
1326 problems, but let's keep an eye out.
1326 problems, but let's keep an eye out.
1327
1327
1328 In the process, I fixed a few things which were calling
1328 In the process, I fixed a few things which were calling
1329 self.InteractiveTB() directly (like safe_execfile), which is a
1329 self.InteractiveTB() directly (like safe_execfile), which is a
1330 mistake: ALL exception reporting should be done by calling
1330 mistake: ALL exception reporting should be done by calling
1331 self.showtraceback(), which handles state and tab-completion and
1331 self.showtraceback(), which handles state and tab-completion and
1332 more.
1332 more.
1333
1333
1334 2006-03-01 Ville Vainio <vivainio@gmail.com>
1334 2006-03-01 Ville Vainio <vivainio@gmail.com>
1335
1335
1336 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1336 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1337 To use, do "from ipipe import *".
1337 To use, do "from ipipe import *".
1338
1338
1339 2006-02-24 Ville Vainio <vivainio@gmail.com>
1339 2006-02-24 Ville Vainio <vivainio@gmail.com>
1340
1340
1341 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1341 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1342 "cleanly" and safely than the older upgrade mechanism.
1342 "cleanly" and safely than the older upgrade mechanism.
1343
1343
1344 2006-02-21 Ville Vainio <vivainio@gmail.com>
1344 2006-02-21 Ville Vainio <vivainio@gmail.com>
1345
1345
1346 * Magic.py: %save works again.
1346 * Magic.py: %save works again.
1347
1347
1348 2006-02-15 Ville Vainio <vivainio@gmail.com>
1348 2006-02-15 Ville Vainio <vivainio@gmail.com>
1349
1349
1350 * Magic.py: %Pprint works again
1350 * Magic.py: %Pprint works again
1351
1351
1352 * Extensions/ipy_sane_defaults.py: Provide everything provided
1352 * Extensions/ipy_sane_defaults.py: Provide everything provided
1353 in default ipythonrc, to make it possible to have a completely empty
1353 in default ipythonrc, to make it possible to have a completely empty
1354 ipythonrc (and thus completely rc-file free configuration)
1354 ipythonrc (and thus completely rc-file free configuration)
1355
1355
1356 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1356 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1357
1357
1358 * IPython/hooks.py (editor): quote the call to the editor command,
1358 * IPython/hooks.py (editor): quote the call to the editor command,
1359 to allow commands with spaces in them. Problem noted by watching
1359 to allow commands with spaces in them. Problem noted by watching
1360 Ian Oswald's video about textpad under win32 at
1360 Ian Oswald's video about textpad under win32 at
1361 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1361 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1362
1362
1363 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1363 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1364 describing magics (we haven't used @ for a loong time).
1364 describing magics (we haven't used @ for a loong time).
1365
1365
1366 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1366 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1367 contributed by marienz to close
1367 contributed by marienz to close
1368 http://www.scipy.net/roundup/ipython/issue53.
1368 http://www.scipy.net/roundup/ipython/issue53.
1369
1369
1370 2006-02-10 Ville Vainio <vivainio@gmail.com>
1370 2006-02-10 Ville Vainio <vivainio@gmail.com>
1371
1371
1372 * genutils.py: getoutput now works in win32 too
1372 * genutils.py: getoutput now works in win32 too
1373
1373
1374 * completer.py: alias and magic completion only invoked
1374 * completer.py: alias and magic completion only invoked
1375 at the first "item" in the line, to avoid "cd %store"
1375 at the first "item" in the line, to avoid "cd %store"
1376 nonsense.
1376 nonsense.
1377
1377
1378 2006-02-09 Ville Vainio <vivainio@gmail.com>
1378 2006-02-09 Ville Vainio <vivainio@gmail.com>
1379
1379
1380 * test/*: Added a unit testing framework (finally).
1380 * test/*: Added a unit testing framework (finally).
1381 '%run runtests.py' to run test_*.
1381 '%run runtests.py' to run test_*.
1382
1382
1383 * ipapi.py: Exposed runlines and set_custom_exc
1383 * ipapi.py: Exposed runlines and set_custom_exc
1384
1384
1385 2006-02-07 Ville Vainio <vivainio@gmail.com>
1385 2006-02-07 Ville Vainio <vivainio@gmail.com>
1386
1386
1387 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1387 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1388 instead use "f(1 2)" as before.
1388 instead use "f(1 2)" as before.
1389
1389
1390 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1391
1391
1392 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1392 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1393 facilities, for demos processed by the IPython input filter
1393 facilities, for demos processed by the IPython input filter
1394 (IPythonDemo), and for running a script one-line-at-a-time as a
1394 (IPythonDemo), and for running a script one-line-at-a-time as a
1395 demo, both for pure Python (LineDemo) and for IPython-processed
1395 demo, both for pure Python (LineDemo) and for IPython-processed
1396 input (IPythonLineDemo). After a request by Dave Kohel, from the
1396 input (IPythonLineDemo). After a request by Dave Kohel, from the
1397 SAGE team.
1397 SAGE team.
1398 (Demo.edit): added an edit() method to the demo objects, to edit
1398 (Demo.edit): added an edit() method to the demo objects, to edit
1399 the in-memory copy of the last executed block.
1399 the in-memory copy of the last executed block.
1400
1400
1401 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1401 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1402 processing to %edit, %macro and %save. These commands can now be
1402 processing to %edit, %macro and %save. These commands can now be
1403 invoked on the unprocessed input as it was typed by the user
1403 invoked on the unprocessed input as it was typed by the user
1404 (without any prefilters applied). After requests by the SAGE team
1404 (without any prefilters applied). After requests by the SAGE team
1405 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1405 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1406
1406
1407 2006-02-01 Ville Vainio <vivainio@gmail.com>
1407 2006-02-01 Ville Vainio <vivainio@gmail.com>
1408
1408
1409 * setup.py, eggsetup.py: easy_install ipython==dev works
1409 * setup.py, eggsetup.py: easy_install ipython==dev works
1410 correctly now (on Linux)
1410 correctly now (on Linux)
1411
1411
1412 * ipy_user_conf,ipmaker: user config changes, removed spurious
1412 * ipy_user_conf,ipmaker: user config changes, removed spurious
1413 warnings
1413 warnings
1414
1414
1415 * iplib: if rc.banner is string, use it as is.
1415 * iplib: if rc.banner is string, use it as is.
1416
1416
1417 * Magic: %pycat accepts a string argument and pages it's contents.
1417 * Magic: %pycat accepts a string argument and pages it's contents.
1418
1418
1419
1419
1420 2006-01-30 Ville Vainio <vivainio@gmail.com>
1420 2006-01-30 Ville Vainio <vivainio@gmail.com>
1421
1421
1422 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1422 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1423 Now %store and bookmarks work through PickleShare, meaning that
1423 Now %store and bookmarks work through PickleShare, meaning that
1424 concurrent access is possible and all ipython sessions see the
1424 concurrent access is possible and all ipython sessions see the
1425 same database situation all the time, instead of snapshot of
1425 same database situation all the time, instead of snapshot of
1426 the situation when the session was started. Hence, %bookmark
1426 the situation when the session was started. Hence, %bookmark
1427 results are immediately accessible from othes sessions. The database
1427 results are immediately accessible from othes sessions. The database
1428 is also available for use by user extensions. See:
1428 is also available for use by user extensions. See:
1429 http://www.python.org/pypi/pickleshare
1429 http://www.python.org/pypi/pickleshare
1430
1430
1431 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1431 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1432
1432
1433 * aliases can now be %store'd
1433 * aliases can now be %store'd
1434
1434
1435 * path.py moved to Extensions so that pickleshare does not need
1435 * path.py moved to Extensions so that pickleshare does not need
1436 IPython-specific import. Extensions added to pythonpath right
1436 IPython-specific import. Extensions added to pythonpath right
1437 at __init__.
1437 at __init__.
1438
1438
1439 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1439 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1440 called with _ip.system and the pre-transformed command string.
1440 called with _ip.system and the pre-transformed command string.
1441
1441
1442 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1442 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1443
1443
1444 * IPython/iplib.py (interact): Fix that we were not catching
1444 * IPython/iplib.py (interact): Fix that we were not catching
1445 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1445 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1446 logic here had to change, but it's fixed now.
1446 logic here had to change, but it's fixed now.
1447
1447
1448 2006-01-29 Ville Vainio <vivainio@gmail.com>
1448 2006-01-29 Ville Vainio <vivainio@gmail.com>
1449
1449
1450 * iplib.py: Try to import pyreadline on Windows.
1450 * iplib.py: Try to import pyreadline on Windows.
1451
1451
1452 2006-01-27 Ville Vainio <vivainio@gmail.com>
1452 2006-01-27 Ville Vainio <vivainio@gmail.com>
1453
1453
1454 * iplib.py: Expose ipapi as _ip in builtin namespace.
1454 * iplib.py: Expose ipapi as _ip in builtin namespace.
1455 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1455 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1456 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1456 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1457 syntax now produce _ip.* variant of the commands.
1457 syntax now produce _ip.* variant of the commands.
1458
1458
1459 * "_ip.options().autoedit_syntax = 2" automatically throws
1459 * "_ip.options().autoedit_syntax = 2" automatically throws
1460 user to editor for syntax error correction without prompting.
1460 user to editor for syntax error correction without prompting.
1461
1461
1462 2006-01-27 Ville Vainio <vivainio@gmail.com>
1462 2006-01-27 Ville Vainio <vivainio@gmail.com>
1463
1463
1464 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1464 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1465 'ipython' at argv[0]) executed through command line.
1465 'ipython' at argv[0]) executed through command line.
1466 NOTE: this DEPRECATES calling ipython with multiple scripts
1466 NOTE: this DEPRECATES calling ipython with multiple scripts
1467 ("ipython a.py b.py c.py")
1467 ("ipython a.py b.py c.py")
1468
1468
1469 * iplib.py, hooks.py: Added configurable input prefilter,
1469 * iplib.py, hooks.py: Added configurable input prefilter,
1470 named 'input_prefilter'. See ext_rescapture.py for example
1470 named 'input_prefilter'. See ext_rescapture.py for example
1471 usage.
1471 usage.
1472
1472
1473 * ext_rescapture.py, Magic.py: Better system command output capture
1473 * ext_rescapture.py, Magic.py: Better system command output capture
1474 through 'var = !ls' (deprecates user-visible %sc). Same notation
1474 through 'var = !ls' (deprecates user-visible %sc). Same notation
1475 applies for magics, 'var = %alias' assigns alias list to var.
1475 applies for magics, 'var = %alias' assigns alias list to var.
1476
1476
1477 * ipapi.py: added meta() for accessing extension-usable data store.
1477 * ipapi.py: added meta() for accessing extension-usable data store.
1478
1478
1479 * iplib.py: added InteractiveShell.getapi(). New magics should be
1479 * iplib.py: added InteractiveShell.getapi(). New magics should be
1480 written doing self.getapi() instead of using the shell directly.
1480 written doing self.getapi() instead of using the shell directly.
1481
1481
1482 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1482 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1483 %store foo >> ~/myfoo.txt to store variables to files (in clean
1483 %store foo >> ~/myfoo.txt to store variables to files (in clean
1484 textual form, not a restorable pickle).
1484 textual form, not a restorable pickle).
1485
1485
1486 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1486 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1487
1487
1488 * usage.py, Magic.py: added %quickref
1488 * usage.py, Magic.py: added %quickref
1489
1489
1490 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1490 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1491
1491
1492 * GetoptErrors when invoking magics etc. with wrong args
1492 * GetoptErrors when invoking magics etc. with wrong args
1493 are now more helpful:
1493 are now more helpful:
1494 GetoptError: option -l not recognized (allowed: "qb" )
1494 GetoptError: option -l not recognized (allowed: "qb" )
1495
1495
1496 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1496 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1497
1497
1498 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1498 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1499 computationally intensive blocks don't appear to stall the demo.
1499 computationally intensive blocks don't appear to stall the demo.
1500
1500
1501 2006-01-24 Ville Vainio <vivainio@gmail.com>
1501 2006-01-24 Ville Vainio <vivainio@gmail.com>
1502
1502
1503 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1503 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1504 value to manipulate resulting history entry.
1504 value to manipulate resulting history entry.
1505
1505
1506 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1506 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1507 to instance methods of IPApi class, to make extending an embedded
1507 to instance methods of IPApi class, to make extending an embedded
1508 IPython feasible. See ext_rehashdir.py for example usage.
1508 IPython feasible. See ext_rehashdir.py for example usage.
1509
1509
1510 * Merged 1071-1076 from branches/0.7.1
1510 * Merged 1071-1076 from branches/0.7.1
1511
1511
1512
1512
1513 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1513 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1514
1514
1515 * tools/release (daystamp): Fix build tools to use the new
1515 * tools/release (daystamp): Fix build tools to use the new
1516 eggsetup.py script to build lightweight eggs.
1516 eggsetup.py script to build lightweight eggs.
1517
1517
1518 * Applied changesets 1062 and 1064 before 0.7.1 release.
1518 * Applied changesets 1062 and 1064 before 0.7.1 release.
1519
1519
1520 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1520 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1521 see the raw input history (without conversions like %ls ->
1521 see the raw input history (without conversions like %ls ->
1522 ipmagic("ls")). After a request from W. Stein, SAGE
1522 ipmagic("ls")). After a request from W. Stein, SAGE
1523 (http://modular.ucsd.edu/sage) developer. This information is
1523 (http://modular.ucsd.edu/sage) developer. This information is
1524 stored in the input_hist_raw attribute of the IPython instance, so
1524 stored in the input_hist_raw attribute of the IPython instance, so
1525 developers can access it if needed (it's an InputList instance).
1525 developers can access it if needed (it's an InputList instance).
1526
1526
1527 * Versionstring = 0.7.2.svn
1527 * Versionstring = 0.7.2.svn
1528
1528
1529 * eggsetup.py: A separate script for constructing eggs, creates
1529 * eggsetup.py: A separate script for constructing eggs, creates
1530 proper launch scripts even on Windows (an .exe file in
1530 proper launch scripts even on Windows (an .exe file in
1531 \python24\scripts).
1531 \python24\scripts).
1532
1532
1533 * ipapi.py: launch_new_instance, launch entry point needed for the
1533 * ipapi.py: launch_new_instance, launch entry point needed for the
1534 egg.
1534 egg.
1535
1535
1536 2006-01-23 Ville Vainio <vivainio@gmail.com>
1536 2006-01-23 Ville Vainio <vivainio@gmail.com>
1537
1537
1538 * Added %cpaste magic for pasting python code
1538 * Added %cpaste magic for pasting python code
1539
1539
1540 2006-01-22 Ville Vainio <vivainio@gmail.com>
1540 2006-01-22 Ville Vainio <vivainio@gmail.com>
1541
1541
1542 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1542 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1543
1543
1544 * Versionstring = 0.7.2.svn
1544 * Versionstring = 0.7.2.svn
1545
1545
1546 * eggsetup.py: A separate script for constructing eggs, creates
1546 * eggsetup.py: A separate script for constructing eggs, creates
1547 proper launch scripts even on Windows (an .exe file in
1547 proper launch scripts even on Windows (an .exe file in
1548 \python24\scripts).
1548 \python24\scripts).
1549
1549
1550 * ipapi.py: launch_new_instance, launch entry point needed for the
1550 * ipapi.py: launch_new_instance, launch entry point needed for the
1551 egg.
1551 egg.
1552
1552
1553 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1553 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1554
1554
1555 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1555 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1556 %pfile foo would print the file for foo even if it was a binary.
1556 %pfile foo would print the file for foo even if it was a binary.
1557 Now, extensions '.so' and '.dll' are skipped.
1557 Now, extensions '.so' and '.dll' are skipped.
1558
1558
1559 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1559 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1560 bug, where macros would fail in all threaded modes. I'm not 100%
1560 bug, where macros would fail in all threaded modes. I'm not 100%
1561 sure, so I'm going to put out an rc instead of making a release
1561 sure, so I'm going to put out an rc instead of making a release
1562 today, and wait for feedback for at least a few days.
1562 today, and wait for feedback for at least a few days.
1563
1563
1564 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1564 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1565 it...) the handling of pasting external code with autoindent on.
1565 it...) the handling of pasting external code with autoindent on.
1566 To get out of a multiline input, the rule will appear for most
1566 To get out of a multiline input, the rule will appear for most
1567 users unchanged: two blank lines or change the indent level
1567 users unchanged: two blank lines or change the indent level
1568 proposed by IPython. But there is a twist now: you can
1568 proposed by IPython. But there is a twist now: you can
1569 add/subtract only *one or two spaces*. If you add/subtract three
1569 add/subtract only *one or two spaces*. If you add/subtract three
1570 or more (unless you completely delete the line), IPython will
1570 or more (unless you completely delete the line), IPython will
1571 accept that line, and you'll need to enter a second one of pure
1571 accept that line, and you'll need to enter a second one of pure
1572 whitespace. I know it sounds complicated, but I can't find a
1572 whitespace. I know it sounds complicated, but I can't find a
1573 different solution that covers all the cases, with the right
1573 different solution that covers all the cases, with the right
1574 heuristics. Hopefully in actual use, nobody will really notice
1574 heuristics. Hopefully in actual use, nobody will really notice
1575 all these strange rules and things will 'just work'.
1575 all these strange rules and things will 'just work'.
1576
1576
1577 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1577 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1578
1578
1579 * IPython/iplib.py (interact): catch exceptions which can be
1579 * IPython/iplib.py (interact): catch exceptions which can be
1580 triggered asynchronously by signal handlers. Thanks to an
1580 triggered asynchronously by signal handlers. Thanks to an
1581 automatic crash report, submitted by Colin Kingsley
1581 automatic crash report, submitted by Colin Kingsley
1582 <tercel-AT-gentoo.org>.
1582 <tercel-AT-gentoo.org>.
1583
1583
1584 2006-01-20 Ville Vainio <vivainio@gmail.com>
1584 2006-01-20 Ville Vainio <vivainio@gmail.com>
1585
1585
1586 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1586 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1587 (%rehashdir, very useful, try it out) of how to extend ipython
1587 (%rehashdir, very useful, try it out) of how to extend ipython
1588 with new magics. Also added Extensions dir to pythonpath to make
1588 with new magics. Also added Extensions dir to pythonpath to make
1589 importing extensions easy.
1589 importing extensions easy.
1590
1590
1591 * %store now complains when trying to store interactively declared
1591 * %store now complains when trying to store interactively declared
1592 classes / instances of those classes.
1592 classes / instances of those classes.
1593
1593
1594 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1594 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1595 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1595 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1596 if they exist, and ipy_user_conf.py with some defaults is created for
1596 if they exist, and ipy_user_conf.py with some defaults is created for
1597 the user.
1597 the user.
1598
1598
1599 * Startup rehashing done by the config file, not InterpreterExec.
1599 * Startup rehashing done by the config file, not InterpreterExec.
1600 This means system commands are available even without selecting the
1600 This means system commands are available even without selecting the
1601 pysh profile. It's the sensible default after all.
1601 pysh profile. It's the sensible default after all.
1602
1602
1603 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1603 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1604
1604
1605 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1605 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1606 multiline code with autoindent on working. But I am really not
1606 multiline code with autoindent on working. But I am really not
1607 sure, so this needs more testing. Will commit a debug-enabled
1607 sure, so this needs more testing. Will commit a debug-enabled
1608 version for now, while I test it some more, so that Ville and
1608 version for now, while I test it some more, so that Ville and
1609 others may also catch any problems. Also made
1609 others may also catch any problems. Also made
1610 self.indent_current_str() a method, to ensure that there's no
1610 self.indent_current_str() a method, to ensure that there's no
1611 chance of the indent space count and the corresponding string
1611 chance of the indent space count and the corresponding string
1612 falling out of sync. All code needing the string should just call
1612 falling out of sync. All code needing the string should just call
1613 the method.
1613 the method.
1614
1614
1615 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1615 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1616
1616
1617 * IPython/Magic.py (magic_edit): fix check for when users don't
1617 * IPython/Magic.py (magic_edit): fix check for when users don't
1618 save their output files, the try/except was in the wrong section.
1618 save their output files, the try/except was in the wrong section.
1619
1619
1620 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1620 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1621
1621
1622 * IPython/Magic.py (magic_run): fix __file__ global missing from
1622 * IPython/Magic.py (magic_run): fix __file__ global missing from
1623 script's namespace when executed via %run. After a report by
1623 script's namespace when executed via %run. After a report by
1624 Vivian.
1624 Vivian.
1625
1625
1626 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1626 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1627 when using python 2.4. The parent constructor changed in 2.4, and
1627 when using python 2.4. The parent constructor changed in 2.4, and
1628 we need to track it directly (we can't call it, as it messes up
1628 we need to track it directly (we can't call it, as it messes up
1629 readline and tab-completion inside our pdb would stop working).
1629 readline and tab-completion inside our pdb would stop working).
1630 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1630 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1631
1631
1632 2006-01-16 Ville Vainio <vivainio@gmail.com>
1632 2006-01-16 Ville Vainio <vivainio@gmail.com>
1633
1633
1634 * Ipython/magic.py: Reverted back to old %edit functionality
1634 * Ipython/magic.py: Reverted back to old %edit functionality
1635 that returns file contents on exit.
1635 that returns file contents on exit.
1636
1636
1637 * IPython/path.py: Added Jason Orendorff's "path" module to
1637 * IPython/path.py: Added Jason Orendorff's "path" module to
1638 IPython tree, http://www.jorendorff.com/articles/python/path/.
1638 IPython tree, http://www.jorendorff.com/articles/python/path/.
1639 You can get path objects conveniently through %sc, and !!, e.g.:
1639 You can get path objects conveniently through %sc, and !!, e.g.:
1640 sc files=ls
1640 sc files=ls
1641 for p in files.paths: # or files.p
1641 for p in files.paths: # or files.p
1642 print p,p.mtime
1642 print p,p.mtime
1643
1643
1644 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1644 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1645 now work again without considering the exclusion regexp -
1645 now work again without considering the exclusion regexp -
1646 hence, things like ',foo my/path' turn to 'foo("my/path")'
1646 hence, things like ',foo my/path' turn to 'foo("my/path")'
1647 instead of syntax error.
1647 instead of syntax error.
1648
1648
1649
1649
1650 2006-01-14 Ville Vainio <vivainio@gmail.com>
1650 2006-01-14 Ville Vainio <vivainio@gmail.com>
1651
1651
1652 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1652 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1653 ipapi decorators for python 2.4 users, options() provides access to rc
1653 ipapi decorators for python 2.4 users, options() provides access to rc
1654 data.
1654 data.
1655
1655
1656 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1656 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1657 as path separators (even on Linux ;-). Space character after
1657 as path separators (even on Linux ;-). Space character after
1658 backslash (as yielded by tab completer) is still space;
1658 backslash (as yielded by tab completer) is still space;
1659 "%cd long\ name" works as expected.
1659 "%cd long\ name" works as expected.
1660
1660
1661 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1661 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1662 as "chain of command", with priority. API stays the same,
1662 as "chain of command", with priority. API stays the same,
1663 TryNext exception raised by a hook function signals that
1663 TryNext exception raised by a hook function signals that
1664 current hook failed and next hook should try handling it, as
1664 current hook failed and next hook should try handling it, as
1665 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1665 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1666 requested configurable display hook, which is now implemented.
1666 requested configurable display hook, which is now implemented.
1667
1667
1668 2006-01-13 Ville Vainio <vivainio@gmail.com>
1668 2006-01-13 Ville Vainio <vivainio@gmail.com>
1669
1669
1670 * IPython/platutils*.py: platform specific utility functions,
1670 * IPython/platutils*.py: platform specific utility functions,
1671 so far only set_term_title is implemented (change terminal
1671 so far only set_term_title is implemented (change terminal
1672 label in windowing systems). %cd now changes the title to
1672 label in windowing systems). %cd now changes the title to
1673 current dir.
1673 current dir.
1674
1674
1675 * IPython/Release.py: Added myself to "authors" list,
1675 * IPython/Release.py: Added myself to "authors" list,
1676 had to create new files.
1676 had to create new files.
1677
1677
1678 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1678 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1679 shell escape; not a known bug but had potential to be one in the
1679 shell escape; not a known bug but had potential to be one in the
1680 future.
1680 future.
1681
1681
1682 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1682 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1683 extension API for IPython! See the module for usage example. Fix
1683 extension API for IPython! See the module for usage example. Fix
1684 OInspect for docstring-less magic functions.
1684 OInspect for docstring-less magic functions.
1685
1685
1686
1686
1687 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1687 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1688
1689 * IPython/iplib.py (raw_input): temporarily deactivate all
1689 * IPython/iplib.py (raw_input): temporarily deactivate all
1690 attempts at allowing pasting of code with autoindent on. It
1690 attempts at allowing pasting of code with autoindent on. It
1691 introduced bugs (reported by Prabhu) and I can't seem to find a
1691 introduced bugs (reported by Prabhu) and I can't seem to find a
1692 robust combination which works in all cases. Will have to revisit
1692 robust combination which works in all cases. Will have to revisit
1693 later.
1693 later.
1694
1694
1695 * IPython/genutils.py: remove isspace() function. We've dropped
1695 * IPython/genutils.py: remove isspace() function. We've dropped
1696 2.2 compatibility, so it's OK to use the string method.
1696 2.2 compatibility, so it's OK to use the string method.
1697
1697
1698 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1698 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1699
1699
1700 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1700 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1701 matching what NOT to autocall on, to include all python binary
1701 matching what NOT to autocall on, to include all python binary
1702 operators (including things like 'and', 'or', 'is' and 'in').
1702 operators (including things like 'and', 'or', 'is' and 'in').
1703 Prompted by a bug report on 'foo & bar', but I realized we had
1703 Prompted by a bug report on 'foo & bar', but I realized we had
1704 many more potential bug cases with other operators. The regexp is
1704 many more potential bug cases with other operators. The regexp is
1705 self.re_exclude_auto, it's fairly commented.
1705 self.re_exclude_auto, it's fairly commented.
1706
1706
1707 2006-01-12 Ville Vainio <vivainio@gmail.com>
1707 2006-01-12 Ville Vainio <vivainio@gmail.com>
1708
1708
1709 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1709 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1710 Prettified and hardened string/backslash quoting with ipsystem(),
1710 Prettified and hardened string/backslash quoting with ipsystem(),
1711 ipalias() and ipmagic(). Now even \ characters are passed to
1711 ipalias() and ipmagic(). Now even \ characters are passed to
1712 %magics, !shell escapes and aliases exactly as they are in the
1712 %magics, !shell escapes and aliases exactly as they are in the
1713 ipython command line. Should improve backslash experience,
1713 ipython command line. Should improve backslash experience,
1714 particularly in Windows (path delimiter for some commands that
1714 particularly in Windows (path delimiter for some commands that
1715 won't understand '/'), but Unix benefits as well (regexps). %cd
1715 won't understand '/'), but Unix benefits as well (regexps). %cd
1716 magic still doesn't support backslash path delimiters, though. Also
1716 magic still doesn't support backslash path delimiters, though. Also
1717 deleted all pretense of supporting multiline command strings in
1717 deleted all pretense of supporting multiline command strings in
1718 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1718 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1719
1719
1720 * doc/build_doc_instructions.txt added. Documentation on how to
1720 * doc/build_doc_instructions.txt added. Documentation on how to
1721 use doc/update_manual.py, added yesterday. Both files contributed
1721 use doc/update_manual.py, added yesterday. Both files contributed
1722 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1722 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1723 doc/*.sh for deprecation at a later date.
1723 doc/*.sh for deprecation at a later date.
1724
1724
1725 * /ipython.py Added ipython.py to root directory for
1725 * /ipython.py Added ipython.py to root directory for
1726 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1726 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1727 ipython.py) and development convenience (no need to keep doing
1727 ipython.py) and development convenience (no need to keep doing
1728 "setup.py install" between changes).
1728 "setup.py install" between changes).
1729
1729
1730 * Made ! and !! shell escapes work (again) in multiline expressions:
1730 * Made ! and !! shell escapes work (again) in multiline expressions:
1731 if 1:
1731 if 1:
1732 !ls
1732 !ls
1733 !!ls
1733 !!ls
1734
1734
1735 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1735 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1736
1736
1737 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1737 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1738 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1738 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1739 module in case-insensitive installation. Was causing crashes
1739 module in case-insensitive installation. Was causing crashes
1740 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1740 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1741
1741
1742 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1742 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1743 <marienz-AT-gentoo.org>, closes
1743 <marienz-AT-gentoo.org>, closes
1744 http://www.scipy.net/roundup/ipython/issue51.
1744 http://www.scipy.net/roundup/ipython/issue51.
1745
1745
1746 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1746 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1747
1747
1748 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1748 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1749 problem of excessive CPU usage under *nix and keyboard lag under
1749 problem of excessive CPU usage under *nix and keyboard lag under
1750 win32.
1750 win32.
1751
1751
1752 2006-01-10 *** Released version 0.7.0
1752 2006-01-10 *** Released version 0.7.0
1753
1753
1754 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1754 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1755
1755
1756 * IPython/Release.py (revision): tag version number to 0.7.0,
1756 * IPython/Release.py (revision): tag version number to 0.7.0,
1757 ready for release.
1757 ready for release.
1758
1758
1759 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1759 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1760 it informs the user of the name of the temp. file used. This can
1760 it informs the user of the name of the temp. file used. This can
1761 help if you decide later to reuse that same file, so you know
1761 help if you decide later to reuse that same file, so you know
1762 where to copy the info from.
1762 where to copy the info from.
1763
1763
1764 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1764 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1765
1765
1766 * setup_bdist_egg.py: little script to build an egg. Added
1766 * setup_bdist_egg.py: little script to build an egg. Added
1767 support in the release tools as well.
1767 support in the release tools as well.
1768
1768
1769 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1769 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1770
1770
1771 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1771 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1772 version selection (new -wxversion command line and ipythonrc
1772 version selection (new -wxversion command line and ipythonrc
1773 parameter). Patch contributed by Arnd Baecker
1773 parameter). Patch contributed by Arnd Baecker
1774 <arnd.baecker-AT-web.de>.
1774 <arnd.baecker-AT-web.de>.
1775
1775
1776 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1776 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1777 embedded instances, for variables defined at the interactive
1777 embedded instances, for variables defined at the interactive
1778 prompt of the embedded ipython. Reported by Arnd.
1778 prompt of the embedded ipython. Reported by Arnd.
1779
1779
1780 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1780 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1781 it can be used as a (stateful) toggle, or with a direct parameter.
1781 it can be used as a (stateful) toggle, or with a direct parameter.
1782
1782
1783 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1783 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1784 could be triggered in certain cases and cause the traceback
1784 could be triggered in certain cases and cause the traceback
1785 printer not to work.
1785 printer not to work.
1786
1786
1787 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1788
1788
1789 * IPython/iplib.py (_should_recompile): Small fix, closes
1789 * IPython/iplib.py (_should_recompile): Small fix, closes
1790 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1790 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1791
1791
1792 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1792 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1793
1794 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1794 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1795 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1795 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1796 Moad for help with tracking it down.
1796 Moad for help with tracking it down.
1797
1797
1798 * IPython/iplib.py (handle_auto): fix autocall handling for
1798 * IPython/iplib.py (handle_auto): fix autocall handling for
1799 objects which support BOTH __getitem__ and __call__ (so that f [x]
1799 objects which support BOTH __getitem__ and __call__ (so that f [x]
1800 is left alone, instead of becoming f([x]) automatically).
1800 is left alone, instead of becoming f([x]) automatically).
1801
1801
1802 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1802 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1803 Ville's patch.
1803 Ville's patch.
1804
1804
1805 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1805 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1806
1806
1807 * IPython/iplib.py (handle_auto): changed autocall semantics to
1807 * IPython/iplib.py (handle_auto): changed autocall semantics to
1808 include 'smart' mode, where the autocall transformation is NOT
1808 include 'smart' mode, where the autocall transformation is NOT
1809 applied if there are no arguments on the line. This allows you to
1809 applied if there are no arguments on the line. This allows you to
1810 just type 'foo' if foo is a callable to see its internal form,
1810 just type 'foo' if foo is a callable to see its internal form,
1811 instead of having it called with no arguments (typically a
1811 instead of having it called with no arguments (typically a
1812 mistake). The old 'full' autocall still exists: for that, you
1812 mistake). The old 'full' autocall still exists: for that, you
1813 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1813 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1814
1814
1815 * IPython/completer.py (Completer.attr_matches): add
1815 * IPython/completer.py (Completer.attr_matches): add
1816 tab-completion support for Enthoughts' traits. After a report by
1816 tab-completion support for Enthoughts' traits. After a report by
1817 Arnd and a patch by Prabhu.
1817 Arnd and a patch by Prabhu.
1818
1818
1819 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1819 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1820
1820
1821 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1821 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1822 Schmolck's patch to fix inspect.getinnerframes().
1822 Schmolck's patch to fix inspect.getinnerframes().
1823
1823
1824 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1824 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1825 for embedded instances, regarding handling of namespaces and items
1825 for embedded instances, regarding handling of namespaces and items
1826 added to the __builtin__ one. Multiple embedded instances and
1826 added to the __builtin__ one. Multiple embedded instances and
1827 recursive embeddings should work better now (though I'm not sure
1827 recursive embeddings should work better now (though I'm not sure
1828 I've got all the corner cases fixed, that code is a bit of a brain
1828 I've got all the corner cases fixed, that code is a bit of a brain
1829 twister).
1829 twister).
1830
1830
1831 * IPython/Magic.py (magic_edit): added support to edit in-memory
1831 * IPython/Magic.py (magic_edit): added support to edit in-memory
1832 macros (automatically creates the necessary temp files). %edit
1832 macros (automatically creates the necessary temp files). %edit
1833 also doesn't return the file contents anymore, it's just noise.
1833 also doesn't return the file contents anymore, it's just noise.
1834
1834
1835 * IPython/completer.py (Completer.attr_matches): revert change to
1835 * IPython/completer.py (Completer.attr_matches): revert change to
1836 complete only on attributes listed in __all__. I realized it
1836 complete only on attributes listed in __all__. I realized it
1837 cripples the tab-completion system as a tool for exploring the
1837 cripples the tab-completion system as a tool for exploring the
1838 internals of unknown libraries (it renders any non-__all__
1838 internals of unknown libraries (it renders any non-__all__
1839 attribute off-limits). I got bit by this when trying to see
1839 attribute off-limits). I got bit by this when trying to see
1840 something inside the dis module.
1840 something inside the dis module.
1841
1841
1842 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1842 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1843
1843
1844 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1844 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1845 namespace for users and extension writers to hold data in. This
1845 namespace for users and extension writers to hold data in. This
1846 follows the discussion in
1846 follows the discussion in
1847 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1847 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1848
1848
1849 * IPython/completer.py (IPCompleter.complete): small patch to help
1849 * IPython/completer.py (IPCompleter.complete): small patch to help
1850 tab-completion under Emacs, after a suggestion by John Barnard
1850 tab-completion under Emacs, after a suggestion by John Barnard
1851 <barnarj-AT-ccf.org>.
1851 <barnarj-AT-ccf.org>.
1852
1852
1853 * IPython/Magic.py (Magic.extract_input_slices): added support for
1853 * IPython/Magic.py (Magic.extract_input_slices): added support for
1854 the slice notation in magics to use N-M to represent numbers N...M
1854 the slice notation in magics to use N-M to represent numbers N...M
1855 (closed endpoints). This is used by %macro and %save.
1855 (closed endpoints). This is used by %macro and %save.
1856
1856
1857 * IPython/completer.py (Completer.attr_matches): for modules which
1857 * IPython/completer.py (Completer.attr_matches): for modules which
1858 define __all__, complete only on those. After a patch by Jeffrey
1858 define __all__, complete only on those. After a patch by Jeffrey
1859 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1859 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1860 speed up this routine.
1860 speed up this routine.
1861
1861
1862 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1862 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1863 don't know if this is the end of it, but the behavior now is
1863 don't know if this is the end of it, but the behavior now is
1864 certainly much more correct. Note that coupled with macros,
1864 certainly much more correct. Note that coupled with macros,
1865 slightly surprising (at first) behavior may occur: a macro will in
1865 slightly surprising (at first) behavior may occur: a macro will in
1866 general expand to multiple lines of input, so upon exiting, the
1866 general expand to multiple lines of input, so upon exiting, the
1867 in/out counters will both be bumped by the corresponding amount
1867 in/out counters will both be bumped by the corresponding amount
1868 (as if the macro's contents had been typed interactively). Typing
1868 (as if the macro's contents had been typed interactively). Typing
1869 %hist will reveal the intermediate (silently processed) lines.
1869 %hist will reveal the intermediate (silently processed) lines.
1870
1870
1871 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1871 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1872 pickle to fail (%run was overwriting __main__ and not restoring
1872 pickle to fail (%run was overwriting __main__ and not restoring
1873 it, but pickle relies on __main__ to operate).
1873 it, but pickle relies on __main__ to operate).
1874
1874
1875 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1875 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1876 using properties, but forgot to make the main InteractiveShell
1876 using properties, but forgot to make the main InteractiveShell
1877 class a new-style class. Properties fail silently, and
1877 class a new-style class. Properties fail silently, and
1878 mysteriously, with old-style class (getters work, but
1878 mysteriously, with old-style class (getters work, but
1879 setters don't do anything).
1879 setters don't do anything).
1880
1880
1881 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1881 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1882
1882
1883 * IPython/Magic.py (magic_history): fix history reporting bug (I
1883 * IPython/Magic.py (magic_history): fix history reporting bug (I
1884 know some nasties are still there, I just can't seem to find a
1884 know some nasties are still there, I just can't seem to find a
1885 reproducible test case to track them down; the input history is
1885 reproducible test case to track them down; the input history is
1886 falling out of sync...)
1886 falling out of sync...)
1887
1887
1888 * IPython/iplib.py (handle_shell_escape): fix bug where both
1888 * IPython/iplib.py (handle_shell_escape): fix bug where both
1889 aliases and system accesses where broken for indented code (such
1889 aliases and system accesses where broken for indented code (such
1890 as loops).
1890 as loops).
1891
1891
1892 * IPython/genutils.py (shell): fix small but critical bug for
1892 * IPython/genutils.py (shell): fix small but critical bug for
1893 win32 system access.
1893 win32 system access.
1894
1894
1895 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1895 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1896
1896
1897 * IPython/iplib.py (showtraceback): remove use of the
1897 * IPython/iplib.py (showtraceback): remove use of the
1898 sys.last_{type/value/traceback} structures, which are non
1898 sys.last_{type/value/traceback} structures, which are non
1899 thread-safe.
1899 thread-safe.
1900 (_prefilter): change control flow to ensure that we NEVER
1900 (_prefilter): change control flow to ensure that we NEVER
1901 introspect objects when autocall is off. This will guarantee that
1901 introspect objects when autocall is off. This will guarantee that
1902 having an input line of the form 'x.y', where access to attribute
1902 having an input line of the form 'x.y', where access to attribute
1903 'y' has side effects, doesn't trigger the side effect TWICE. It
1903 'y' has side effects, doesn't trigger the side effect TWICE. It
1904 is important to note that, with autocall on, these side effects
1904 is important to note that, with autocall on, these side effects
1905 can still happen.
1905 can still happen.
1906 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1906 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1907 trio. IPython offers these three kinds of special calls which are
1907 trio. IPython offers these three kinds of special calls which are
1908 not python code, and it's a good thing to have their call method
1908 not python code, and it's a good thing to have their call method
1909 be accessible as pure python functions (not just special syntax at
1909 be accessible as pure python functions (not just special syntax at
1910 the command line). It gives us a better internal implementation
1910 the command line). It gives us a better internal implementation
1911 structure, as well as exposing these for user scripting more
1911 structure, as well as exposing these for user scripting more
1912 cleanly.
1912 cleanly.
1913
1913
1914 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1914 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1915 file. Now that they'll be more likely to be used with the
1915 file. Now that they'll be more likely to be used with the
1916 persistance system (%store), I want to make sure their module path
1916 persistance system (%store), I want to make sure their module path
1917 doesn't change in the future, so that we don't break things for
1917 doesn't change in the future, so that we don't break things for
1918 users' persisted data.
1918 users' persisted data.
1919
1919
1920 * IPython/iplib.py (autoindent_update): move indentation
1920 * IPython/iplib.py (autoindent_update): move indentation
1921 management into the _text_ processing loop, not the keyboard
1921 management into the _text_ processing loop, not the keyboard
1922 interactive one. This is necessary to correctly process non-typed
1922 interactive one. This is necessary to correctly process non-typed
1923 multiline input (such as macros).
1923 multiline input (such as macros).
1924
1924
1925 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1925 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1926 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1926 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1927 which was producing problems in the resulting manual.
1927 which was producing problems in the resulting manual.
1928 (magic_whos): improve reporting of instances (show their class,
1928 (magic_whos): improve reporting of instances (show their class,
1929 instead of simply printing 'instance' which isn't terribly
1929 instead of simply printing 'instance' which isn't terribly
1930 informative).
1930 informative).
1931
1931
1932 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1932 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1933 (minor mods) to support network shares under win32.
1933 (minor mods) to support network shares under win32.
1934
1934
1935 * IPython/winconsole.py (get_console_size): add new winconsole
1935 * IPython/winconsole.py (get_console_size): add new winconsole
1936 module and fixes to page_dumb() to improve its behavior under
1936 module and fixes to page_dumb() to improve its behavior under
1937 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1937 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1938
1938
1939 * IPython/Magic.py (Macro): simplified Macro class to just
1939 * IPython/Magic.py (Macro): simplified Macro class to just
1940 subclass list. We've had only 2.2 compatibility for a very long
1940 subclass list. We've had only 2.2 compatibility for a very long
1941 time, yet I was still avoiding subclassing the builtin types. No
1941 time, yet I was still avoiding subclassing the builtin types. No
1942 more (I'm also starting to use properties, though I won't shift to
1942 more (I'm also starting to use properties, though I won't shift to
1943 2.3-specific features quite yet).
1943 2.3-specific features quite yet).
1944 (magic_store): added Ville's patch for lightweight variable
1944 (magic_store): added Ville's patch for lightweight variable
1945 persistence, after a request on the user list by Matt Wilkie
1945 persistence, after a request on the user list by Matt Wilkie
1946 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1946 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1947 details.
1947 details.
1948
1948
1949 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1949 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1950 changed the default logfile name from 'ipython.log' to
1950 changed the default logfile name from 'ipython.log' to
1951 'ipython_log.py'. These logs are real python files, and now that
1951 'ipython_log.py'. These logs are real python files, and now that
1952 we have much better multiline support, people are more likely to
1952 we have much better multiline support, people are more likely to
1953 want to use them as such. Might as well name them correctly.
1953 want to use them as such. Might as well name them correctly.
1954
1954
1955 * IPython/Magic.py: substantial cleanup. While we can't stop
1955 * IPython/Magic.py: substantial cleanup. While we can't stop
1956 using magics as mixins, due to the existing customizations 'out
1956 using magics as mixins, due to the existing customizations 'out
1957 there' which rely on the mixin naming conventions, at least I
1957 there' which rely on the mixin naming conventions, at least I
1958 cleaned out all cross-class name usage. So once we are OK with
1958 cleaned out all cross-class name usage. So once we are OK with
1959 breaking compatibility, the two systems can be separated.
1959 breaking compatibility, the two systems can be separated.
1960
1960
1961 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1961 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1962 anymore, and the class is a fair bit less hideous as well. New
1962 anymore, and the class is a fair bit less hideous as well. New
1963 features were also introduced: timestamping of input, and logging
1963 features were also introduced: timestamping of input, and logging
1964 of output results. These are user-visible with the -t and -o
1964 of output results. These are user-visible with the -t and -o
1965 options to %logstart. Closes
1965 options to %logstart. Closes
1966 http://www.scipy.net/roundup/ipython/issue11 and a request by
1966 http://www.scipy.net/roundup/ipython/issue11 and a request by
1967 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1967 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1968
1968
1969 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1969 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1970
1970
1971 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1971 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1972 better handle backslashes in paths. See the thread 'More Windows
1972 better handle backslashes in paths. See the thread 'More Windows
1973 questions part 2 - \/ characters revisited' on the iypthon user
1973 questions part 2 - \/ characters revisited' on the iypthon user
1974 list:
1974 list:
1975 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1975 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1976
1976
1977 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1977 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1978
1978
1979 (InteractiveShell.__init__): change threaded shells to not use the
1979 (InteractiveShell.__init__): change threaded shells to not use the
1980 ipython crash handler. This was causing more problems than not,
1980 ipython crash handler. This was causing more problems than not,
1981 as exceptions in the main thread (GUI code, typically) would
1981 as exceptions in the main thread (GUI code, typically) would
1982 always show up as a 'crash', when they really weren't.
1982 always show up as a 'crash', when they really weren't.
1983
1983
1984 The colors and exception mode commands (%colors/%xmode) have been
1984 The colors and exception mode commands (%colors/%xmode) have been
1985 synchronized to also take this into account, so users can get
1985 synchronized to also take this into account, so users can get
1986 verbose exceptions for their threaded code as well. I also added
1986 verbose exceptions for their threaded code as well. I also added
1987 support for activating pdb inside this exception handler as well,
1987 support for activating pdb inside this exception handler as well,
1988 so now GUI authors can use IPython's enhanced pdb at runtime.
1988 so now GUI authors can use IPython's enhanced pdb at runtime.
1989
1989
1990 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1990 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1991 true by default, and add it to the shipped ipythonrc file. Since
1991 true by default, and add it to the shipped ipythonrc file. Since
1992 this asks the user before proceeding, I think it's OK to make it
1992 this asks the user before proceeding, I think it's OK to make it
1993 true by default.
1993 true by default.
1994
1994
1995 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1995 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1996 of the previous special-casing of input in the eval loop. I think
1996 of the previous special-casing of input in the eval loop. I think
1997 this is cleaner, as they really are commands and shouldn't have
1997 this is cleaner, as they really are commands and shouldn't have
1998 a special role in the middle of the core code.
1998 a special role in the middle of the core code.
1999
1999
2000 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2000 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2001
2001
2002 * IPython/iplib.py (edit_syntax_error): added support for
2002 * IPython/iplib.py (edit_syntax_error): added support for
2003 automatically reopening the editor if the file had a syntax error
2003 automatically reopening the editor if the file had a syntax error
2004 in it. Thanks to scottt who provided the patch at:
2004 in it. Thanks to scottt who provided the patch at:
2005 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2005 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2006 version committed).
2006 version committed).
2007
2007
2008 * IPython/iplib.py (handle_normal): add suport for multi-line
2008 * IPython/iplib.py (handle_normal): add suport for multi-line
2009 input with emtpy lines. This fixes
2009 input with emtpy lines. This fixes
2010 http://www.scipy.net/roundup/ipython/issue43 and a similar
2010 http://www.scipy.net/roundup/ipython/issue43 and a similar
2011 discussion on the user list.
2011 discussion on the user list.
2012
2012
2013 WARNING: a behavior change is necessarily introduced to support
2013 WARNING: a behavior change is necessarily introduced to support
2014 blank lines: now a single blank line with whitespace does NOT
2014 blank lines: now a single blank line with whitespace does NOT
2015 break the input loop, which means that when autoindent is on, by
2015 break the input loop, which means that when autoindent is on, by
2016 default hitting return on the next (indented) line does NOT exit.
2016 default hitting return on the next (indented) line does NOT exit.
2017
2017
2018 Instead, to exit a multiline input you can either have:
2018 Instead, to exit a multiline input you can either have:
2019
2019
2020 - TWO whitespace lines (just hit return again), or
2020 - TWO whitespace lines (just hit return again), or
2021 - a single whitespace line of a different length than provided
2021 - a single whitespace line of a different length than provided
2022 by the autoindent (add or remove a space).
2022 by the autoindent (add or remove a space).
2023
2023
2024 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2024 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2025 module to better organize all readline-related functionality.
2025 module to better organize all readline-related functionality.
2026 I've deleted FlexCompleter and put all completion clases here.
2026 I've deleted FlexCompleter and put all completion clases here.
2027
2027
2028 * IPython/iplib.py (raw_input): improve indentation management.
2028 * IPython/iplib.py (raw_input): improve indentation management.
2029 It is now possible to paste indented code with autoindent on, and
2029 It is now possible to paste indented code with autoindent on, and
2030 the code is interpreted correctly (though it still looks bad on
2030 the code is interpreted correctly (though it still looks bad on
2031 screen, due to the line-oriented nature of ipython).
2031 screen, due to the line-oriented nature of ipython).
2032 (MagicCompleter.complete): change behavior so that a TAB key on an
2032 (MagicCompleter.complete): change behavior so that a TAB key on an
2033 otherwise empty line actually inserts a tab, instead of completing
2033 otherwise empty line actually inserts a tab, instead of completing
2034 on the entire global namespace. This makes it easier to use the
2034 on the entire global namespace. This makes it easier to use the
2035 TAB key for indentation. After a request by Hans Meine
2035 TAB key for indentation. After a request by Hans Meine
2036 <hans_meine-AT-gmx.net>
2036 <hans_meine-AT-gmx.net>
2037 (_prefilter): add support so that typing plain 'exit' or 'quit'
2037 (_prefilter): add support so that typing plain 'exit' or 'quit'
2038 does a sensible thing. Originally I tried to deviate as little as
2038 does a sensible thing. Originally I tried to deviate as little as
2039 possible from the default python behavior, but even that one may
2039 possible from the default python behavior, but even that one may
2040 change in this direction (thread on python-dev to that effect).
2040 change in this direction (thread on python-dev to that effect).
2041 Regardless, ipython should do the right thing even if CPython's
2041 Regardless, ipython should do the right thing even if CPython's
2042 '>>>' prompt doesn't.
2042 '>>>' prompt doesn't.
2043 (InteractiveShell): removed subclassing code.InteractiveConsole
2043 (InteractiveShell): removed subclassing code.InteractiveConsole
2044 class. By now we'd overridden just about all of its methods: I've
2044 class. By now we'd overridden just about all of its methods: I've
2045 copied the remaining two over, and now ipython is a standalone
2045 copied the remaining two over, and now ipython is a standalone
2046 class. This will provide a clearer picture for the chainsaw
2046 class. This will provide a clearer picture for the chainsaw
2047 branch refactoring.
2047 branch refactoring.
2048
2048
2049 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2049 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2050
2050
2051 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2051 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2052 failures for objects which break when dir() is called on them.
2052 failures for objects which break when dir() is called on them.
2053
2053
2054 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2054 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2055 distinct local and global namespaces in the completer API. This
2055 distinct local and global namespaces in the completer API. This
2056 change allows us to properly handle completion with distinct
2056 change allows us to properly handle completion with distinct
2057 scopes, including in embedded instances (this had never really
2057 scopes, including in embedded instances (this had never really
2058 worked correctly).
2058 worked correctly).
2059
2059
2060 Note: this introduces a change in the constructor for
2060 Note: this introduces a change in the constructor for
2061 MagicCompleter, as a new global_namespace parameter is now the
2061 MagicCompleter, as a new global_namespace parameter is now the
2062 second argument (the others were bumped one position).
2062 second argument (the others were bumped one position).
2063
2063
2064 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2064 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2065
2065
2066 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2066 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2067 embedded instances (which can be done now thanks to Vivian's
2067 embedded instances (which can be done now thanks to Vivian's
2068 frame-handling fixes for pdb).
2068 frame-handling fixes for pdb).
2069 (InteractiveShell.__init__): Fix namespace handling problem in
2069 (InteractiveShell.__init__): Fix namespace handling problem in
2070 embedded instances. We were overwriting __main__ unconditionally,
2070 embedded instances. We were overwriting __main__ unconditionally,
2071 and this should only be done for 'full' (non-embedded) IPython;
2071 and this should only be done for 'full' (non-embedded) IPython;
2072 embedded instances must respect the caller's __main__. Thanks to
2072 embedded instances must respect the caller's __main__. Thanks to
2073 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2073 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2074
2074
2075 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2075 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2076
2076
2077 * setup.py: added download_url to setup(). This registers the
2077 * setup.py: added download_url to setup(). This registers the
2078 download address at PyPI, which is not only useful to humans
2078 download address at PyPI, which is not only useful to humans
2079 browsing the site, but is also picked up by setuptools (the Eggs
2079 browsing the site, but is also picked up by setuptools (the Eggs
2080 machinery). Thanks to Ville and R. Kern for the info/discussion
2080 machinery). Thanks to Ville and R. Kern for the info/discussion
2081 on this.
2081 on this.
2082
2082
2083 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2083 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2084
2084
2085 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2085 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2086 This brings a lot of nice functionality to the pdb mode, which now
2086 This brings a lot of nice functionality to the pdb mode, which now
2087 has tab-completion, syntax highlighting, and better stack handling
2087 has tab-completion, syntax highlighting, and better stack handling
2088 than before. Many thanks to Vivian De Smedt
2088 than before. Many thanks to Vivian De Smedt
2089 <vivian-AT-vdesmedt.com> for the original patches.
2089 <vivian-AT-vdesmedt.com> for the original patches.
2090
2090
2091 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2091 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2092
2092
2093 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2093 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2094 sequence to consistently accept the banner argument. The
2094 sequence to consistently accept the banner argument. The
2095 inconsistency was tripping SAGE, thanks to Gary Zablackis
2095 inconsistency was tripping SAGE, thanks to Gary Zablackis
2096 <gzabl-AT-yahoo.com> for the report.
2096 <gzabl-AT-yahoo.com> for the report.
2097
2097
2098 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2098 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2099
2099
2100 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2100 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2101 Fix bug where a naked 'alias' call in the ipythonrc file would
2101 Fix bug where a naked 'alias' call in the ipythonrc file would
2102 cause a crash. Bug reported by Jorgen Stenarson.
2102 cause a crash. Bug reported by Jorgen Stenarson.
2103
2103
2104 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2104 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2105
2105
2106 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2106 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2107 startup time.
2107 startup time.
2108
2108
2109 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2109 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2110 instances had introduced a bug with globals in normal code. Now
2110 instances had introduced a bug with globals in normal code. Now
2111 it's working in all cases.
2111 it's working in all cases.
2112
2112
2113 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2113 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2114 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2114 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2115 has been introduced to set the default case sensitivity of the
2115 has been introduced to set the default case sensitivity of the
2116 searches. Users can still select either mode at runtime on a
2116 searches. Users can still select either mode at runtime on a
2117 per-search basis.
2117 per-search basis.
2118
2118
2119 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2119 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2120
2120
2121 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2121 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2122 attributes in wildcard searches for subclasses. Modified version
2122 attributes in wildcard searches for subclasses. Modified version
2123 of a patch by Jorgen.
2123 of a patch by Jorgen.
2124
2124
2125 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2125 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2126
2126
2127 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2127 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2128 embedded instances. I added a user_global_ns attribute to the
2128 embedded instances. I added a user_global_ns attribute to the
2129 InteractiveShell class to handle this.
2129 InteractiveShell class to handle this.
2130
2130
2131 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2131 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2132
2132
2133 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2133 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2134 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2134 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2135 (reported under win32, but may happen also in other platforms).
2135 (reported under win32, but may happen also in other platforms).
2136 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2136 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2137
2137
2138 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2138 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2139
2139
2140 * IPython/Magic.py (magic_psearch): new support for wildcard
2140 * IPython/Magic.py (magic_psearch): new support for wildcard
2141 patterns. Now, typing ?a*b will list all names which begin with a
2141 patterns. Now, typing ?a*b will list all names which begin with a
2142 and end in b, for example. The %psearch magic has full
2142 and end in b, for example. The %psearch magic has full
2143 docstrings. Many thanks to JΓΆrgen Stenarson
2143 docstrings. Many thanks to JΓΆrgen Stenarson
2144 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2144 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2145 implementing this functionality.
2145 implementing this functionality.
2146
2146
2147 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2147 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2148
2148
2149 * Manual: fixed long-standing annoyance of double-dashes (as in
2149 * Manual: fixed long-standing annoyance of double-dashes (as in
2150 --prefix=~, for example) being stripped in the HTML version. This
2150 --prefix=~, for example) being stripped in the HTML version. This
2151 is a latex2html bug, but a workaround was provided. Many thanks
2151 is a latex2html bug, but a workaround was provided. Many thanks
2152 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2152 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2153 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2153 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2154 rolling. This seemingly small issue had tripped a number of users
2154 rolling. This seemingly small issue had tripped a number of users
2155 when first installing, so I'm glad to see it gone.
2155 when first installing, so I'm glad to see it gone.
2156
2156
2157 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2157 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2158
2158
2159 * IPython/Extensions/numeric_formats.py: fix missing import,
2159 * IPython/Extensions/numeric_formats.py: fix missing import,
2160 reported by Stephen Walton.
2160 reported by Stephen Walton.
2161
2161
2162 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2162 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2163
2163
2164 * IPython/demo.py: finish demo module, fully documented now.
2164 * IPython/demo.py: finish demo module, fully documented now.
2165
2165
2166 * IPython/genutils.py (file_read): simple little utility to read a
2166 * IPython/genutils.py (file_read): simple little utility to read a
2167 file and ensure it's closed afterwards.
2167 file and ensure it's closed afterwards.
2168
2168
2169 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2169 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2170
2170
2171 * IPython/demo.py (Demo.__init__): added support for individually
2171 * IPython/demo.py (Demo.__init__): added support for individually
2172 tagging blocks for automatic execution.
2172 tagging blocks for automatic execution.
2173
2173
2174 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2174 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2175 syntax-highlighted python sources, requested by John.
2175 syntax-highlighted python sources, requested by John.
2176
2176
2177 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2177 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2178
2178
2179 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2179 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2180 finishing.
2180 finishing.
2181
2181
2182 * IPython/genutils.py (shlex_split): moved from Magic to here,
2182 * IPython/genutils.py (shlex_split): moved from Magic to here,
2183 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2183 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2184
2184
2185 * IPython/demo.py (Demo.__init__): added support for silent
2185 * IPython/demo.py (Demo.__init__): added support for silent
2186 blocks, improved marks as regexps, docstrings written.
2186 blocks, improved marks as regexps, docstrings written.
2187 (Demo.__init__): better docstring, added support for sys.argv.
2187 (Demo.__init__): better docstring, added support for sys.argv.
2188
2188
2189 * IPython/genutils.py (marquee): little utility used by the demo
2189 * IPython/genutils.py (marquee): little utility used by the demo
2190 code, handy in general.
2190 code, handy in general.
2191
2191
2192 * IPython/demo.py (Demo.__init__): new class for interactive
2192 * IPython/demo.py (Demo.__init__): new class for interactive
2193 demos. Not documented yet, I just wrote it in a hurry for
2193 demos. Not documented yet, I just wrote it in a hurry for
2194 scipy'05. Will docstring later.
2194 scipy'05. Will docstring later.
2195
2195
2196 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2196 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2197
2197
2198 * IPython/Shell.py (sigint_handler): Drastic simplification which
2198 * IPython/Shell.py (sigint_handler): Drastic simplification which
2199 also seems to make Ctrl-C work correctly across threads! This is
2199 also seems to make Ctrl-C work correctly across threads! This is
2200 so simple, that I can't beleive I'd missed it before. Needs more
2200 so simple, that I can't beleive I'd missed it before. Needs more
2201 testing, though.
2201 testing, though.
2202 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2202 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2203 like this before...
2203 like this before...
2204
2204
2205 * IPython/genutils.py (get_home_dir): add protection against
2205 * IPython/genutils.py (get_home_dir): add protection against
2206 non-dirs in win32 registry.
2206 non-dirs in win32 registry.
2207
2207
2208 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2208 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2209 bug where dict was mutated while iterating (pysh crash).
2209 bug where dict was mutated while iterating (pysh crash).
2210
2210
2211 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2212
2212
2213 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2213 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2214 spurious newlines added by this routine. After a report by
2214 spurious newlines added by this routine. After a report by
2215 F. Mantegazza.
2215 F. Mantegazza.
2216
2216
2217 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2217 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2218
2218
2219 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2219 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2220 calls. These were a leftover from the GTK 1.x days, and can cause
2220 calls. These were a leftover from the GTK 1.x days, and can cause
2221 problems in certain cases (after a report by John Hunter).
2221 problems in certain cases (after a report by John Hunter).
2222
2222
2223 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2223 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2224 os.getcwd() fails at init time. Thanks to patch from David Remahl
2224 os.getcwd() fails at init time. Thanks to patch from David Remahl
2225 <chmod007-AT-mac.com>.
2225 <chmod007-AT-mac.com>.
2226 (InteractiveShell.__init__): prevent certain special magics from
2226 (InteractiveShell.__init__): prevent certain special magics from
2227 being shadowed by aliases. Closes
2227 being shadowed by aliases. Closes
2228 http://www.scipy.net/roundup/ipython/issue41.
2228 http://www.scipy.net/roundup/ipython/issue41.
2229
2229
2230 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2230 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2231
2231
2232 * IPython/iplib.py (InteractiveShell.complete): Added new
2232 * IPython/iplib.py (InteractiveShell.complete): Added new
2233 top-level completion method to expose the completion mechanism
2233 top-level completion method to expose the completion mechanism
2234 beyond readline-based environments.
2234 beyond readline-based environments.
2235
2235
2236 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2236 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2237
2237
2238 * tools/ipsvnc (svnversion): fix svnversion capture.
2238 * tools/ipsvnc (svnversion): fix svnversion capture.
2239
2239
2240 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2240 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2241 attribute to self, which was missing. Before, it was set by a
2241 attribute to self, which was missing. Before, it was set by a
2242 routine which in certain cases wasn't being called, so the
2242 routine which in certain cases wasn't being called, so the
2243 instance could end up missing the attribute. This caused a crash.
2243 instance could end up missing the attribute. This caused a crash.
2244 Closes http://www.scipy.net/roundup/ipython/issue40.
2244 Closes http://www.scipy.net/roundup/ipython/issue40.
2245
2245
2246 2005-08-16 Fernando Perez <fperez@colorado.edu>
2246 2005-08-16 Fernando Perez <fperez@colorado.edu>
2247
2247
2248 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2248 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2249 contains non-string attribute. Closes
2249 contains non-string attribute. Closes
2250 http://www.scipy.net/roundup/ipython/issue38.
2250 http://www.scipy.net/roundup/ipython/issue38.
2251
2251
2252 2005-08-14 Fernando Perez <fperez@colorado.edu>
2252 2005-08-14 Fernando Perez <fperez@colorado.edu>
2253
2253
2254 * tools/ipsvnc: Minor improvements, to add changeset info.
2254 * tools/ipsvnc: Minor improvements, to add changeset info.
2255
2255
2256 2005-08-12 Fernando Perez <fperez@colorado.edu>
2256 2005-08-12 Fernando Perez <fperez@colorado.edu>
2257
2257
2258 * IPython/iplib.py (runsource): remove self.code_to_run_src
2258 * IPython/iplib.py (runsource): remove self.code_to_run_src
2259 attribute. I realized this is nothing more than
2259 attribute. I realized this is nothing more than
2260 '\n'.join(self.buffer), and having the same data in two different
2260 '\n'.join(self.buffer), and having the same data in two different
2261 places is just asking for synchronization bugs. This may impact
2261 places is just asking for synchronization bugs. This may impact
2262 people who have custom exception handlers, so I need to warn
2262 people who have custom exception handlers, so I need to warn
2263 ipython-dev about it (F. Mantegazza may use them).
2263 ipython-dev about it (F. Mantegazza may use them).
2264
2264
2265 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2265 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2266
2266
2267 * IPython/genutils.py: fix 2.2 compatibility (generators)
2267 * IPython/genutils.py: fix 2.2 compatibility (generators)
2268
2268
2269 2005-07-18 Fernando Perez <fperez@colorado.edu>
2269 2005-07-18 Fernando Perez <fperez@colorado.edu>
2270
2270
2271 * IPython/genutils.py (get_home_dir): fix to help users with
2271 * IPython/genutils.py (get_home_dir): fix to help users with
2272 invalid $HOME under win32.
2272 invalid $HOME under win32.
2273
2273
2274 2005-07-17 Fernando Perez <fperez@colorado.edu>
2274 2005-07-17 Fernando Perez <fperez@colorado.edu>
2275
2275
2276 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2276 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2277 some old hacks and clean up a bit other routines; code should be
2277 some old hacks and clean up a bit other routines; code should be
2278 simpler and a bit faster.
2278 simpler and a bit faster.
2279
2279
2280 * IPython/iplib.py (interact): removed some last-resort attempts
2280 * IPython/iplib.py (interact): removed some last-resort attempts
2281 to survive broken stdout/stderr. That code was only making it
2281 to survive broken stdout/stderr. That code was only making it
2282 harder to abstract out the i/o (necessary for gui integration),
2282 harder to abstract out the i/o (necessary for gui integration),
2283 and the crashes it could prevent were extremely rare in practice
2283 and the crashes it could prevent were extremely rare in practice
2284 (besides being fully user-induced in a pretty violent manner).
2284 (besides being fully user-induced in a pretty violent manner).
2285
2285
2286 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2286 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2287 Nothing major yet, but the code is simpler to read; this should
2287 Nothing major yet, but the code is simpler to read; this should
2288 make it easier to do more serious modifications in the future.
2288 make it easier to do more serious modifications in the future.
2289
2289
2290 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2290 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2291 which broke in .15 (thanks to a report by Ville).
2291 which broke in .15 (thanks to a report by Ville).
2292
2292
2293 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2293 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2294 be quite correct, I know next to nothing about unicode). This
2294 be quite correct, I know next to nothing about unicode). This
2295 will allow unicode strings to be used in prompts, amongst other
2295 will allow unicode strings to be used in prompts, amongst other
2296 cases. It also will prevent ipython from crashing when unicode
2296 cases. It also will prevent ipython from crashing when unicode
2297 shows up unexpectedly in many places. If ascii encoding fails, we
2297 shows up unexpectedly in many places. If ascii encoding fails, we
2298 assume utf_8. Currently the encoding is not a user-visible
2298 assume utf_8. Currently the encoding is not a user-visible
2299 setting, though it could be made so if there is demand for it.
2299 setting, though it could be made so if there is demand for it.
2300
2300
2301 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2301 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2302
2302
2303 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2303 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2304
2304
2305 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2305 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2306
2306
2307 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2307 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2308 code can work transparently for 2.2/2.3.
2308 code can work transparently for 2.2/2.3.
2309
2309
2310 2005-07-16 Fernando Perez <fperez@colorado.edu>
2310 2005-07-16 Fernando Perez <fperez@colorado.edu>
2311
2311
2312 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2312 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2313 out of the color scheme table used for coloring exception
2313 out of the color scheme table used for coloring exception
2314 tracebacks. This allows user code to add new schemes at runtime.
2314 tracebacks. This allows user code to add new schemes at runtime.
2315 This is a minimally modified version of the patch at
2315 This is a minimally modified version of the patch at
2316 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2316 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2317 for the contribution.
2317 for the contribution.
2318
2318
2319 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2319 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2320 slightly modified version of the patch in
2320 slightly modified version of the patch in
2321 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2321 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2322 to remove the previous try/except solution (which was costlier).
2322 to remove the previous try/except solution (which was costlier).
2323 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2323 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2324
2324
2325 2005-06-08 Fernando Perez <fperez@colorado.edu>
2325 2005-06-08 Fernando Perez <fperez@colorado.edu>
2326
2326
2327 * IPython/iplib.py (write/write_err): Add methods to abstract all
2327 * IPython/iplib.py (write/write_err): Add methods to abstract all
2328 I/O a bit more.
2328 I/O a bit more.
2329
2329
2330 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2330 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2331 warning, reported by Aric Hagberg, fix by JD Hunter.
2331 warning, reported by Aric Hagberg, fix by JD Hunter.
2332
2332
2333 2005-06-02 *** Released version 0.6.15
2333 2005-06-02 *** Released version 0.6.15
2334
2334
2335 2005-06-01 Fernando Perez <fperez@colorado.edu>
2335 2005-06-01 Fernando Perez <fperez@colorado.edu>
2336
2336
2337 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2337 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2338 tab-completion of filenames within open-quoted strings. Note that
2338 tab-completion of filenames within open-quoted strings. Note that
2339 this requires that in ~/.ipython/ipythonrc, users change the
2339 this requires that in ~/.ipython/ipythonrc, users change the
2340 readline delimiters configuration to read:
2340 readline delimiters configuration to read:
2341
2341
2342 readline_remove_delims -/~
2342 readline_remove_delims -/~
2343
2343
2344
2344
2345 2005-05-31 *** Released version 0.6.14
2345 2005-05-31 *** Released version 0.6.14
2346
2346
2347 2005-05-29 Fernando Perez <fperez@colorado.edu>
2347 2005-05-29 Fernando Perez <fperez@colorado.edu>
2348
2348
2349 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2349 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2350 with files not on the filesystem. Reported by Eliyahu Sandler
2350 with files not on the filesystem. Reported by Eliyahu Sandler
2351 <eli@gondolin.net>
2351 <eli@gondolin.net>
2352
2352
2353 2005-05-22 Fernando Perez <fperez@colorado.edu>
2353 2005-05-22 Fernando Perez <fperez@colorado.edu>
2354
2354
2355 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2355 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2356 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2356 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2357
2357
2358 2005-05-19 Fernando Perez <fperez@colorado.edu>
2358 2005-05-19 Fernando Perez <fperez@colorado.edu>
2359
2359
2360 * IPython/iplib.py (safe_execfile): close a file which could be
2360 * IPython/iplib.py (safe_execfile): close a file which could be
2361 left open (causing problems in win32, which locks open files).
2361 left open (causing problems in win32, which locks open files).
2362 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2362 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2363
2363
2364 2005-05-18 Fernando Perez <fperez@colorado.edu>
2364 2005-05-18 Fernando Perez <fperez@colorado.edu>
2365
2365
2366 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2366 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2367 keyword arguments correctly to safe_execfile().
2367 keyword arguments correctly to safe_execfile().
2368
2368
2369 2005-05-13 Fernando Perez <fperez@colorado.edu>
2369 2005-05-13 Fernando Perez <fperez@colorado.edu>
2370
2370
2371 * ipython.1: Added info about Qt to manpage, and threads warning
2371 * ipython.1: Added info about Qt to manpage, and threads warning
2372 to usage page (invoked with --help).
2372 to usage page (invoked with --help).
2373
2373
2374 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2374 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2375 new matcher (it goes at the end of the priority list) to do
2375 new matcher (it goes at the end of the priority list) to do
2376 tab-completion on named function arguments. Submitted by George
2376 tab-completion on named function arguments. Submitted by George
2377 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2377 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2378 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2378 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2379 for more details.
2379 for more details.
2380
2380
2381 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2381 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2382 SystemExit exceptions in the script being run. Thanks to a report
2382 SystemExit exceptions in the script being run. Thanks to a report
2383 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2383 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2384 producing very annoying behavior when running unit tests.
2384 producing very annoying behavior when running unit tests.
2385
2385
2386 2005-05-12 Fernando Perez <fperez@colorado.edu>
2386 2005-05-12 Fernando Perez <fperez@colorado.edu>
2387
2387
2388 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2388 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2389 which I'd broken (again) due to a changed regexp. In the process,
2389 which I'd broken (again) due to a changed regexp. In the process,
2390 added ';' as an escape to auto-quote the whole line without
2390 added ';' as an escape to auto-quote the whole line without
2391 splitting its arguments. Thanks to a report by Jerry McRae
2391 splitting its arguments. Thanks to a report by Jerry McRae
2392 <qrs0xyc02-AT-sneakemail.com>.
2392 <qrs0xyc02-AT-sneakemail.com>.
2393
2393
2394 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2394 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2395 possible crashes caused by a TokenError. Reported by Ed Schofield
2395 possible crashes caused by a TokenError. Reported by Ed Schofield
2396 <schofield-AT-ftw.at>.
2396 <schofield-AT-ftw.at>.
2397
2397
2398 2005-05-06 Fernando Perez <fperez@colorado.edu>
2398 2005-05-06 Fernando Perez <fperez@colorado.edu>
2399
2399
2400 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2400 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2401
2401
2402 2005-04-29 Fernando Perez <fperez@colorado.edu>
2402 2005-04-29 Fernando Perez <fperez@colorado.edu>
2403
2403
2404 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2404 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2405 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2405 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2406 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2406 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2407 which provides support for Qt interactive usage (similar to the
2407 which provides support for Qt interactive usage (similar to the
2408 existing one for WX and GTK). This had been often requested.
2408 existing one for WX and GTK). This had been often requested.
2409
2409
2410 2005-04-14 *** Released version 0.6.13
2410 2005-04-14 *** Released version 0.6.13
2411
2411
2412 2005-04-08 Fernando Perez <fperez@colorado.edu>
2412 2005-04-08 Fernando Perez <fperez@colorado.edu>
2413
2413
2414 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2414 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2415 from _ofind, which gets called on almost every input line. Now,
2415 from _ofind, which gets called on almost every input line. Now,
2416 we only try to get docstrings if they are actually going to be
2416 we only try to get docstrings if they are actually going to be
2417 used (the overhead of fetching unnecessary docstrings can be
2417 used (the overhead of fetching unnecessary docstrings can be
2418 noticeable for certain objects, such as Pyro proxies).
2418 noticeable for certain objects, such as Pyro proxies).
2419
2419
2420 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2420 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2421 for completers. For some reason I had been passing them the state
2421 for completers. For some reason I had been passing them the state
2422 variable, which completers never actually need, and was in
2422 variable, which completers never actually need, and was in
2423 conflict with the rlcompleter API. Custom completers ONLY need to
2423 conflict with the rlcompleter API. Custom completers ONLY need to
2424 take the text parameter.
2424 take the text parameter.
2425
2425
2426 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2426 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2427 work correctly in pysh. I've also moved all the logic which used
2427 work correctly in pysh. I've also moved all the logic which used
2428 to be in pysh.py here, which will prevent problems with future
2428 to be in pysh.py here, which will prevent problems with future
2429 upgrades. However, this time I must warn users to update their
2429 upgrades. However, this time I must warn users to update their
2430 pysh profile to include the line
2430 pysh profile to include the line
2431
2431
2432 import_all IPython.Extensions.InterpreterExec
2432 import_all IPython.Extensions.InterpreterExec
2433
2433
2434 because otherwise things won't work for them. They MUST also
2434 because otherwise things won't work for them. They MUST also
2435 delete pysh.py and the line
2435 delete pysh.py and the line
2436
2436
2437 execfile pysh.py
2437 execfile pysh.py
2438
2438
2439 from their ipythonrc-pysh.
2439 from their ipythonrc-pysh.
2440
2440
2441 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2441 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2442 robust in the face of objects whose dir() returns non-strings
2442 robust in the face of objects whose dir() returns non-strings
2443 (which it shouldn't, but some broken libs like ITK do). Thanks to
2443 (which it shouldn't, but some broken libs like ITK do). Thanks to
2444 a patch by John Hunter (implemented differently, though). Also
2444 a patch by John Hunter (implemented differently, though). Also
2445 minor improvements by using .extend instead of + on lists.
2445 minor improvements by using .extend instead of + on lists.
2446
2446
2447 * pysh.py:
2447 * pysh.py:
2448
2448
2449 2005-04-06 Fernando Perez <fperez@colorado.edu>
2449 2005-04-06 Fernando Perez <fperez@colorado.edu>
2450
2450
2451 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2451 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2452 by default, so that all users benefit from it. Those who don't
2452 by default, so that all users benefit from it. Those who don't
2453 want it can still turn it off.
2453 want it can still turn it off.
2454
2454
2455 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2455 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2456 config file, I'd forgotten about this, so users were getting it
2456 config file, I'd forgotten about this, so users were getting it
2457 off by default.
2457 off by default.
2458
2458
2459 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2459 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2460 consistency. Now magics can be called in multiline statements,
2460 consistency. Now magics can be called in multiline statements,
2461 and python variables can be expanded in magic calls via $var.
2461 and python variables can be expanded in magic calls via $var.
2462 This makes the magic system behave just like aliases or !system
2462 This makes the magic system behave just like aliases or !system
2463 calls.
2463 calls.
2464
2464
2465 2005-03-28 Fernando Perez <fperez@colorado.edu>
2465 2005-03-28 Fernando Perez <fperez@colorado.edu>
2466
2466
2467 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2467 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2468 expensive string additions for building command. Add support for
2468 expensive string additions for building command. Add support for
2469 trailing ';' when autocall is used.
2469 trailing ';' when autocall is used.
2470
2470
2471 2005-03-26 Fernando Perez <fperez@colorado.edu>
2471 2005-03-26 Fernando Perez <fperez@colorado.edu>
2472
2472
2473 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2473 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2474 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2474 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2475 ipython.el robust against prompts with any number of spaces
2475 ipython.el robust against prompts with any number of spaces
2476 (including 0) after the ':' character.
2476 (including 0) after the ':' character.
2477
2477
2478 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2478 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2479 continuation prompt, which misled users to think the line was
2479 continuation prompt, which misled users to think the line was
2480 already indented. Closes debian Bug#300847, reported to me by
2480 already indented. Closes debian Bug#300847, reported to me by
2481 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2481 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2482
2482
2483 2005-03-23 Fernando Perez <fperez@colorado.edu>
2483 2005-03-23 Fernando Perez <fperez@colorado.edu>
2484
2484
2485 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2485 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2486 properly aligned if they have embedded newlines.
2486 properly aligned if they have embedded newlines.
2487
2487
2488 * IPython/iplib.py (runlines): Add a public method to expose
2488 * IPython/iplib.py (runlines): Add a public method to expose
2489 IPython's code execution machinery, so that users can run strings
2489 IPython's code execution machinery, so that users can run strings
2490 as if they had been typed at the prompt interactively.
2490 as if they had been typed at the prompt interactively.
2491 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2491 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2492 methods which can call the system shell, but with python variable
2492 methods which can call the system shell, but with python variable
2493 expansion. The three such methods are: __IPYTHON__.system,
2493 expansion. The three such methods are: __IPYTHON__.system,
2494 .getoutput and .getoutputerror. These need to be documented in a
2494 .getoutput and .getoutputerror. These need to be documented in a
2495 'public API' section (to be written) of the manual.
2495 'public API' section (to be written) of the manual.
2496
2496
2497 2005-03-20 Fernando Perez <fperez@colorado.edu>
2497 2005-03-20 Fernando Perez <fperez@colorado.edu>
2498
2498
2499 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2499 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2500 for custom exception handling. This is quite powerful, and it
2500 for custom exception handling. This is quite powerful, and it
2501 allows for user-installable exception handlers which can trap
2501 allows for user-installable exception handlers which can trap
2502 custom exceptions at runtime and treat them separately from
2502 custom exceptions at runtime and treat them separately from
2503 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2503 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2504 Mantegazza <mantegazza-AT-ill.fr>.
2504 Mantegazza <mantegazza-AT-ill.fr>.
2505 (InteractiveShell.set_custom_completer): public API function to
2505 (InteractiveShell.set_custom_completer): public API function to
2506 add new completers at runtime.
2506 add new completers at runtime.
2507
2507
2508 2005-03-19 Fernando Perez <fperez@colorado.edu>
2508 2005-03-19 Fernando Perez <fperez@colorado.edu>
2509
2509
2510 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2510 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2511 allow objects which provide their docstrings via non-standard
2511 allow objects which provide their docstrings via non-standard
2512 mechanisms (like Pyro proxies) to still be inspected by ipython's
2512 mechanisms (like Pyro proxies) to still be inspected by ipython's
2513 ? system.
2513 ? system.
2514
2514
2515 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2515 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2516 automatic capture system. I tried quite hard to make it work
2516 automatic capture system. I tried quite hard to make it work
2517 reliably, and simply failed. I tried many combinations with the
2517 reliably, and simply failed. I tried many combinations with the
2518 subprocess module, but eventually nothing worked in all needed
2518 subprocess module, but eventually nothing worked in all needed
2519 cases (not blocking stdin for the child, duplicating stdout
2519 cases (not blocking stdin for the child, duplicating stdout
2520 without blocking, etc). The new %sc/%sx still do capture to these
2520 without blocking, etc). The new %sc/%sx still do capture to these
2521 magical list/string objects which make shell use much more
2521 magical list/string objects which make shell use much more
2522 conveninent, so not all is lost.
2522 conveninent, so not all is lost.
2523
2523
2524 XXX - FIX MANUAL for the change above!
2524 XXX - FIX MANUAL for the change above!
2525
2525
2526 (runsource): I copied code.py's runsource() into ipython to modify
2526 (runsource): I copied code.py's runsource() into ipython to modify
2527 it a bit. Now the code object and source to be executed are
2527 it a bit. Now the code object and source to be executed are
2528 stored in ipython. This makes this info accessible to third-party
2528 stored in ipython. This makes this info accessible to third-party
2529 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2529 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2530 Mantegazza <mantegazza-AT-ill.fr>.
2530 Mantegazza <mantegazza-AT-ill.fr>.
2531
2531
2532 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2532 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2533 history-search via readline (like C-p/C-n). I'd wanted this for a
2533 history-search via readline (like C-p/C-n). I'd wanted this for a
2534 long time, but only recently found out how to do it. For users
2534 long time, but only recently found out how to do it. For users
2535 who already have their ipythonrc files made and want this, just
2535 who already have their ipythonrc files made and want this, just
2536 add:
2536 add:
2537
2537
2538 readline_parse_and_bind "\e[A": history-search-backward
2538 readline_parse_and_bind "\e[A": history-search-backward
2539 readline_parse_and_bind "\e[B": history-search-forward
2539 readline_parse_and_bind "\e[B": history-search-forward
2540
2540
2541 2005-03-18 Fernando Perez <fperez@colorado.edu>
2541 2005-03-18 Fernando Perez <fperez@colorado.edu>
2542
2542
2543 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2543 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2544 LSString and SList classes which allow transparent conversions
2544 LSString and SList classes which allow transparent conversions
2545 between list mode and whitespace-separated string.
2545 between list mode and whitespace-separated string.
2546 (magic_r): Fix recursion problem in %r.
2546 (magic_r): Fix recursion problem in %r.
2547
2547
2548 * IPython/genutils.py (LSString): New class to be used for
2548 * IPython/genutils.py (LSString): New class to be used for
2549 automatic storage of the results of all alias/system calls in _o
2549 automatic storage of the results of all alias/system calls in _o
2550 and _e (stdout/err). These provide a .l/.list attribute which
2550 and _e (stdout/err). These provide a .l/.list attribute which
2551 does automatic splitting on newlines. This means that for most
2551 does automatic splitting on newlines. This means that for most
2552 uses, you'll never need to do capturing of output with %sc/%sx
2552 uses, you'll never need to do capturing of output with %sc/%sx
2553 anymore, since ipython keeps this always done for you. Note that
2553 anymore, since ipython keeps this always done for you. Note that
2554 only the LAST results are stored, the _o/e variables are
2554 only the LAST results are stored, the _o/e variables are
2555 overwritten on each call. If you need to save their contents
2555 overwritten on each call. If you need to save their contents
2556 further, simply bind them to any other name.
2556 further, simply bind them to any other name.
2557
2557
2558 2005-03-17 Fernando Perez <fperez@colorado.edu>
2558 2005-03-17 Fernando Perez <fperez@colorado.edu>
2559
2559
2560 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2560 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2561 prompt namespace handling.
2561 prompt namespace handling.
2562
2562
2563 2005-03-16 Fernando Perez <fperez@colorado.edu>
2563 2005-03-16 Fernando Perez <fperez@colorado.edu>
2564
2564
2565 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2565 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2566 classic prompts to be '>>> ' (final space was missing, and it
2566 classic prompts to be '>>> ' (final space was missing, and it
2567 trips the emacs python mode).
2567 trips the emacs python mode).
2568 (BasePrompt.__str__): Added safe support for dynamic prompt
2568 (BasePrompt.__str__): Added safe support for dynamic prompt
2569 strings. Now you can set your prompt string to be '$x', and the
2569 strings. Now you can set your prompt string to be '$x', and the
2570 value of x will be printed from your interactive namespace. The
2570 value of x will be printed from your interactive namespace. The
2571 interpolation syntax includes the full Itpl support, so
2571 interpolation syntax includes the full Itpl support, so
2572 ${foo()+x+bar()} is a valid prompt string now, and the function
2572 ${foo()+x+bar()} is a valid prompt string now, and the function
2573 calls will be made at runtime.
2573 calls will be made at runtime.
2574
2574
2575 2005-03-15 Fernando Perez <fperez@colorado.edu>
2575 2005-03-15 Fernando Perez <fperez@colorado.edu>
2576
2576
2577 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2577 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2578 avoid name clashes in pylab. %hist still works, it just forwards
2578 avoid name clashes in pylab. %hist still works, it just forwards
2579 the call to %history.
2579 the call to %history.
2580
2580
2581 2005-03-02 *** Released version 0.6.12
2581 2005-03-02 *** Released version 0.6.12
2582
2582
2583 2005-03-02 Fernando Perez <fperez@colorado.edu>
2583 2005-03-02 Fernando Perez <fperez@colorado.edu>
2584
2584
2585 * IPython/iplib.py (handle_magic): log magic calls properly as
2585 * IPython/iplib.py (handle_magic): log magic calls properly as
2586 ipmagic() function calls.
2586 ipmagic() function calls.
2587
2587
2588 * IPython/Magic.py (magic_time): Improved %time to support
2588 * IPython/Magic.py (magic_time): Improved %time to support
2589 statements and provide wall-clock as well as CPU time.
2589 statements and provide wall-clock as well as CPU time.
2590
2590
2591 2005-02-27 Fernando Perez <fperez@colorado.edu>
2591 2005-02-27 Fernando Perez <fperez@colorado.edu>
2592
2592
2593 * IPython/hooks.py: New hooks module, to expose user-modifiable
2593 * IPython/hooks.py: New hooks module, to expose user-modifiable
2594 IPython functionality in a clean manner. For now only the editor
2594 IPython functionality in a clean manner. For now only the editor
2595 hook is actually written, and other thigns which I intend to turn
2595 hook is actually written, and other thigns which I intend to turn
2596 into proper hooks aren't yet there. The display and prefilter
2596 into proper hooks aren't yet there. The display and prefilter
2597 stuff, for example, should be hooks. But at least now the
2597 stuff, for example, should be hooks. But at least now the
2598 framework is in place, and the rest can be moved here with more
2598 framework is in place, and the rest can be moved here with more
2599 time later. IPython had had a .hooks variable for a long time for
2599 time later. IPython had had a .hooks variable for a long time for
2600 this purpose, but I'd never actually used it for anything.
2600 this purpose, but I'd never actually used it for anything.
2601
2601
2602 2005-02-26 Fernando Perez <fperez@colorado.edu>
2602 2005-02-26 Fernando Perez <fperez@colorado.edu>
2603
2603
2604 * IPython/ipmaker.py (make_IPython): make the default ipython
2604 * IPython/ipmaker.py (make_IPython): make the default ipython
2605 directory be called _ipython under win32, to follow more the
2605 directory be called _ipython under win32, to follow more the
2606 naming peculiarities of that platform (where buggy software like
2606 naming peculiarities of that platform (where buggy software like
2607 Visual Sourcesafe breaks with .named directories). Reported by
2607 Visual Sourcesafe breaks with .named directories). Reported by
2608 Ville Vainio.
2608 Ville Vainio.
2609
2609
2610 2005-02-23 Fernando Perez <fperez@colorado.edu>
2610 2005-02-23 Fernando Perez <fperez@colorado.edu>
2611
2611
2612 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2612 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2613 auto_aliases for win32 which were causing problems. Users can
2613 auto_aliases for win32 which were causing problems. Users can
2614 define the ones they personally like.
2614 define the ones they personally like.
2615
2615
2616 2005-02-21 Fernando Perez <fperez@colorado.edu>
2616 2005-02-21 Fernando Perez <fperez@colorado.edu>
2617
2617
2618 * IPython/Magic.py (magic_time): new magic to time execution of
2618 * IPython/Magic.py (magic_time): new magic to time execution of
2619 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2619 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2620
2620
2621 2005-02-19 Fernando Perez <fperez@colorado.edu>
2621 2005-02-19 Fernando Perez <fperez@colorado.edu>
2622
2622
2623 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2623 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2624 into keys (for prompts, for example).
2624 into keys (for prompts, for example).
2625
2625
2626 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2626 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2627 prompts in case users want them. This introduces a small behavior
2627 prompts in case users want them. This introduces a small behavior
2628 change: ipython does not automatically add a space to all prompts
2628 change: ipython does not automatically add a space to all prompts
2629 anymore. To get the old prompts with a space, users should add it
2629 anymore. To get the old prompts with a space, users should add it
2630 manually to their ipythonrc file, so for example prompt_in1 should
2630 manually to their ipythonrc file, so for example prompt_in1 should
2631 now read 'In [\#]: ' instead of 'In [\#]:'.
2631 now read 'In [\#]: ' instead of 'In [\#]:'.
2632 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2632 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2633 file) to control left-padding of secondary prompts.
2633 file) to control left-padding of secondary prompts.
2634
2634
2635 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2635 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2636 the profiler can't be imported. Fix for Debian, which removed
2636 the profiler can't be imported. Fix for Debian, which removed
2637 profile.py because of License issues. I applied a slightly
2637 profile.py because of License issues. I applied a slightly
2638 modified version of the original Debian patch at
2638 modified version of the original Debian patch at
2639 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2639 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2640
2640
2641 2005-02-17 Fernando Perez <fperez@colorado.edu>
2641 2005-02-17 Fernando Perez <fperez@colorado.edu>
2642
2642
2643 * IPython/genutils.py (native_line_ends): Fix bug which would
2643 * IPython/genutils.py (native_line_ends): Fix bug which would
2644 cause improper line-ends under win32 b/c I was not opening files
2644 cause improper line-ends under win32 b/c I was not opening files
2645 in binary mode. Bug report and fix thanks to Ville.
2645 in binary mode. Bug report and fix thanks to Ville.
2646
2646
2647 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2647 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2648 trying to catch spurious foo[1] autocalls. My fix actually broke
2648 trying to catch spurious foo[1] autocalls. My fix actually broke
2649 ',/' autoquote/call with explicit escape (bad regexp).
2649 ',/' autoquote/call with explicit escape (bad regexp).
2650
2650
2651 2005-02-15 *** Released version 0.6.11
2651 2005-02-15 *** Released version 0.6.11
2652
2652
2653 2005-02-14 Fernando Perez <fperez@colorado.edu>
2653 2005-02-14 Fernando Perez <fperez@colorado.edu>
2654
2654
2655 * IPython/background_jobs.py: New background job management
2655 * IPython/background_jobs.py: New background job management
2656 subsystem. This is implemented via a new set of classes, and
2656 subsystem. This is implemented via a new set of classes, and
2657 IPython now provides a builtin 'jobs' object for background job
2657 IPython now provides a builtin 'jobs' object for background job
2658 execution. A convenience %bg magic serves as a lightweight
2658 execution. A convenience %bg magic serves as a lightweight
2659 frontend for starting the more common type of calls. This was
2659 frontend for starting the more common type of calls. This was
2660 inspired by discussions with B. Granger and the BackgroundCommand
2660 inspired by discussions with B. Granger and the BackgroundCommand
2661 class described in the book Python Scripting for Computational
2661 class described in the book Python Scripting for Computational
2662 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2662 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2663 (although ultimately no code from this text was used, as IPython's
2663 (although ultimately no code from this text was used, as IPython's
2664 system is a separate implementation).
2664 system is a separate implementation).
2665
2665
2666 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2666 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2667 to control the completion of single/double underscore names
2667 to control the completion of single/double underscore names
2668 separately. As documented in the example ipytonrc file, the
2668 separately. As documented in the example ipytonrc file, the
2669 readline_omit__names variable can now be set to 2, to omit even
2669 readline_omit__names variable can now be set to 2, to omit even
2670 single underscore names. Thanks to a patch by Brian Wong
2670 single underscore names. Thanks to a patch by Brian Wong
2671 <BrianWong-AT-AirgoNetworks.Com>.
2671 <BrianWong-AT-AirgoNetworks.Com>.
2672 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2672 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2673 be autocalled as foo([1]) if foo were callable. A problem for
2673 be autocalled as foo([1]) if foo were callable. A problem for
2674 things which are both callable and implement __getitem__.
2674 things which are both callable and implement __getitem__.
2675 (init_readline): Fix autoindentation for win32. Thanks to a patch
2675 (init_readline): Fix autoindentation for win32. Thanks to a patch
2676 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2676 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2677
2677
2678 2005-02-12 Fernando Perez <fperez@colorado.edu>
2678 2005-02-12 Fernando Perez <fperez@colorado.edu>
2679
2679
2680 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2680 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2681 which I had written long ago to sort out user error messages which
2681 which I had written long ago to sort out user error messages which
2682 may occur during startup. This seemed like a good idea initially,
2682 may occur during startup. This seemed like a good idea initially,
2683 but it has proven a disaster in retrospect. I don't want to
2683 but it has proven a disaster in retrospect. I don't want to
2684 change much code for now, so my fix is to set the internal 'debug'
2684 change much code for now, so my fix is to set the internal 'debug'
2685 flag to true everywhere, whose only job was precisely to control
2685 flag to true everywhere, whose only job was precisely to control
2686 this subsystem. This closes issue 28 (as well as avoiding all
2686 this subsystem. This closes issue 28 (as well as avoiding all
2687 sorts of strange hangups which occur from time to time).
2687 sorts of strange hangups which occur from time to time).
2688
2688
2689 2005-02-07 Fernando Perez <fperez@colorado.edu>
2689 2005-02-07 Fernando Perez <fperez@colorado.edu>
2690
2690
2691 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2691 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2692 previous call produced a syntax error.
2692 previous call produced a syntax error.
2693
2693
2694 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2694 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2695 classes without constructor.
2695 classes without constructor.
2696
2696
2697 2005-02-06 Fernando Perez <fperez@colorado.edu>
2697 2005-02-06 Fernando Perez <fperez@colorado.edu>
2698
2698
2699 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2699 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2700 completions with the results of each matcher, so we return results
2700 completions with the results of each matcher, so we return results
2701 to the user from all namespaces. This breaks with ipython
2701 to the user from all namespaces. This breaks with ipython
2702 tradition, but I think it's a nicer behavior. Now you get all
2702 tradition, but I think it's a nicer behavior. Now you get all
2703 possible completions listed, from all possible namespaces (python,
2703 possible completions listed, from all possible namespaces (python,
2704 filesystem, magics...) After a request by John Hunter
2704 filesystem, magics...) After a request by John Hunter
2705 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2705 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2706
2706
2707 2005-02-05 Fernando Perez <fperez@colorado.edu>
2707 2005-02-05 Fernando Perez <fperez@colorado.edu>
2708
2708
2709 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2709 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2710 the call had quote characters in it (the quotes were stripped).
2710 the call had quote characters in it (the quotes were stripped).
2711
2711
2712 2005-01-31 Fernando Perez <fperez@colorado.edu>
2712 2005-01-31 Fernando Perez <fperez@colorado.edu>
2713
2713
2714 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2714 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2715 Itpl.itpl() to make the code more robust against psyco
2715 Itpl.itpl() to make the code more robust against psyco
2716 optimizations.
2716 optimizations.
2717
2717
2718 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2718 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2719 of causing an exception. Quicker, cleaner.
2719 of causing an exception. Quicker, cleaner.
2720
2720
2721 2005-01-28 Fernando Perez <fperez@colorado.edu>
2721 2005-01-28 Fernando Perez <fperez@colorado.edu>
2722
2722
2723 * scripts/ipython_win_post_install.py (install): hardcode
2723 * scripts/ipython_win_post_install.py (install): hardcode
2724 sys.prefix+'python.exe' as the executable path. It turns out that
2724 sys.prefix+'python.exe' as the executable path. It turns out that
2725 during the post-installation run, sys.executable resolves to the
2725 during the post-installation run, sys.executable resolves to the
2726 name of the binary installer! I should report this as a distutils
2726 name of the binary installer! I should report this as a distutils
2727 bug, I think. I updated the .10 release with this tiny fix, to
2727 bug, I think. I updated the .10 release with this tiny fix, to
2728 avoid annoying the lists further.
2728 avoid annoying the lists further.
2729
2729
2730 2005-01-27 *** Released version 0.6.10
2730 2005-01-27 *** Released version 0.6.10
2731
2731
2732 2005-01-27 Fernando Perez <fperez@colorado.edu>
2732 2005-01-27 Fernando Perez <fperez@colorado.edu>
2733
2733
2734 * IPython/numutils.py (norm): Added 'inf' as optional name for
2734 * IPython/numutils.py (norm): Added 'inf' as optional name for
2735 L-infinity norm, included references to mathworld.com for vector
2735 L-infinity norm, included references to mathworld.com for vector
2736 norm definitions.
2736 norm definitions.
2737 (amin/amax): added amin/amax for array min/max. Similar to what
2737 (amin/amax): added amin/amax for array min/max. Similar to what
2738 pylab ships with after the recent reorganization of names.
2738 pylab ships with after the recent reorganization of names.
2739 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2739 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2740
2740
2741 * ipython.el: committed Alex's recent fixes and improvements.
2741 * ipython.el: committed Alex's recent fixes and improvements.
2742 Tested with python-mode from CVS, and it looks excellent. Since
2742 Tested with python-mode from CVS, and it looks excellent. Since
2743 python-mode hasn't released anything in a while, I'm temporarily
2743 python-mode hasn't released anything in a while, I'm temporarily
2744 putting a copy of today's CVS (v 4.70) of python-mode in:
2744 putting a copy of today's CVS (v 4.70) of python-mode in:
2745 http://ipython.scipy.org/tmp/python-mode.el
2745 http://ipython.scipy.org/tmp/python-mode.el
2746
2746
2747 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2747 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2748 sys.executable for the executable name, instead of assuming it's
2748 sys.executable for the executable name, instead of assuming it's
2749 called 'python.exe' (the post-installer would have produced broken
2749 called 'python.exe' (the post-installer would have produced broken
2750 setups on systems with a differently named python binary).
2750 setups on systems with a differently named python binary).
2751
2751
2752 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2752 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2753 references to os.linesep, to make the code more
2753 references to os.linesep, to make the code more
2754 platform-independent. This is also part of the win32 coloring
2754 platform-independent. This is also part of the win32 coloring
2755 fixes.
2755 fixes.
2756
2756
2757 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2757 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2758 lines, which actually cause coloring bugs because the length of
2758 lines, which actually cause coloring bugs because the length of
2759 the line is very difficult to correctly compute with embedded
2759 the line is very difficult to correctly compute with embedded
2760 escapes. This was the source of all the coloring problems under
2760 escapes. This was the source of all the coloring problems under
2761 Win32. I think that _finally_, Win32 users have a properly
2761 Win32. I think that _finally_, Win32 users have a properly
2762 working ipython in all respects. This would never have happened
2762 working ipython in all respects. This would never have happened
2763 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2763 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2764
2764
2765 2005-01-26 *** Released version 0.6.9
2765 2005-01-26 *** Released version 0.6.9
2766
2766
2767 2005-01-25 Fernando Perez <fperez@colorado.edu>
2767 2005-01-25 Fernando Perez <fperez@colorado.edu>
2768
2768
2769 * setup.py: finally, we have a true Windows installer, thanks to
2769 * setup.py: finally, we have a true Windows installer, thanks to
2770 the excellent work of Viktor Ransmayr
2770 the excellent work of Viktor Ransmayr
2771 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2771 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2772 Windows users. The setup routine is quite a bit cleaner thanks to
2772 Windows users. The setup routine is quite a bit cleaner thanks to
2773 this, and the post-install script uses the proper functions to
2773 this, and the post-install script uses the proper functions to
2774 allow a clean de-installation using the standard Windows Control
2774 allow a clean de-installation using the standard Windows Control
2775 Panel.
2775 Panel.
2776
2776
2777 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2777 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2778 environment variable under all OSes (including win32) if
2778 environment variable under all OSes (including win32) if
2779 available. This will give consistency to win32 users who have set
2779 available. This will give consistency to win32 users who have set
2780 this variable for any reason. If os.environ['HOME'] fails, the
2780 this variable for any reason. If os.environ['HOME'] fails, the
2781 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2781 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2782
2782
2783 2005-01-24 Fernando Perez <fperez@colorado.edu>
2783 2005-01-24 Fernando Perez <fperez@colorado.edu>
2784
2784
2785 * IPython/numutils.py (empty_like): add empty_like(), similar to
2785 * IPython/numutils.py (empty_like): add empty_like(), similar to
2786 zeros_like() but taking advantage of the new empty() Numeric routine.
2786 zeros_like() but taking advantage of the new empty() Numeric routine.
2787
2787
2788 2005-01-23 *** Released version 0.6.8
2788 2005-01-23 *** Released version 0.6.8
2789
2789
2790 2005-01-22 Fernando Perez <fperez@colorado.edu>
2790 2005-01-22 Fernando Perez <fperez@colorado.edu>
2791
2791
2792 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2792 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2793 automatic show() calls. After discussing things with JDH, it
2793 automatic show() calls. After discussing things with JDH, it
2794 turns out there are too many corner cases where this can go wrong.
2794 turns out there are too many corner cases where this can go wrong.
2795 It's best not to try to be 'too smart', and simply have ipython
2795 It's best not to try to be 'too smart', and simply have ipython
2796 reproduce as much as possible the default behavior of a normal
2796 reproduce as much as possible the default behavior of a normal
2797 python shell.
2797 python shell.
2798
2798
2799 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2799 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2800 line-splitting regexp and _prefilter() to avoid calling getattr()
2800 line-splitting regexp and _prefilter() to avoid calling getattr()
2801 on assignments. This closes
2801 on assignments. This closes
2802 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2802 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2803 readline uses getattr(), so a simple <TAB> keypress is still
2803 readline uses getattr(), so a simple <TAB> keypress is still
2804 enough to trigger getattr() calls on an object.
2804 enough to trigger getattr() calls on an object.
2805
2805
2806 2005-01-21 Fernando Perez <fperez@colorado.edu>
2806 2005-01-21 Fernando Perez <fperez@colorado.edu>
2807
2807
2808 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2808 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2809 docstring under pylab so it doesn't mask the original.
2809 docstring under pylab so it doesn't mask the original.
2810
2810
2811 2005-01-21 *** Released version 0.6.7
2811 2005-01-21 *** Released version 0.6.7
2812
2812
2813 2005-01-21 Fernando Perez <fperez@colorado.edu>
2813 2005-01-21 Fernando Perez <fperez@colorado.edu>
2814
2814
2815 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2815 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2816 signal handling for win32 users in multithreaded mode.
2816 signal handling for win32 users in multithreaded mode.
2817
2817
2818 2005-01-17 Fernando Perez <fperez@colorado.edu>
2818 2005-01-17 Fernando Perez <fperez@colorado.edu>
2819
2819
2820 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2820 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2821 instances with no __init__. After a crash report by Norbert Nemec
2821 instances with no __init__. After a crash report by Norbert Nemec
2822 <Norbert-AT-nemec-online.de>.
2822 <Norbert-AT-nemec-online.de>.
2823
2823
2824 2005-01-14 Fernando Perez <fperez@colorado.edu>
2824 2005-01-14 Fernando Perez <fperez@colorado.edu>
2825
2825
2826 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2826 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2827 names for verbose exceptions, when multiple dotted names and the
2827 names for verbose exceptions, when multiple dotted names and the
2828 'parent' object were present on the same line.
2828 'parent' object were present on the same line.
2829
2829
2830 2005-01-11 Fernando Perez <fperez@colorado.edu>
2830 2005-01-11 Fernando Perez <fperez@colorado.edu>
2831
2831
2832 * IPython/genutils.py (flag_calls): new utility to trap and flag
2832 * IPython/genutils.py (flag_calls): new utility to trap and flag
2833 calls in functions. I need it to clean up matplotlib support.
2833 calls in functions. I need it to clean up matplotlib support.
2834 Also removed some deprecated code in genutils.
2834 Also removed some deprecated code in genutils.
2835
2835
2836 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2836 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2837 that matplotlib scripts called with %run, which don't call show()
2837 that matplotlib scripts called with %run, which don't call show()
2838 themselves, still have their plotting windows open.
2838 themselves, still have their plotting windows open.
2839
2839
2840 2005-01-05 Fernando Perez <fperez@colorado.edu>
2840 2005-01-05 Fernando Perez <fperez@colorado.edu>
2841
2841
2842 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2842 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2843 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2843 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2844
2844
2845 2004-12-19 Fernando Perez <fperez@colorado.edu>
2845 2004-12-19 Fernando Perez <fperez@colorado.edu>
2846
2846
2847 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2847 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2848 parent_runcode, which was an eyesore. The same result can be
2848 parent_runcode, which was an eyesore. The same result can be
2849 obtained with Python's regular superclass mechanisms.
2849 obtained with Python's regular superclass mechanisms.
2850
2850
2851 2004-12-17 Fernando Perez <fperez@colorado.edu>
2851 2004-12-17 Fernando Perez <fperez@colorado.edu>
2852
2852
2853 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2853 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2854 reported by Prabhu.
2854 reported by Prabhu.
2855 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2855 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2856 sys.stderr) instead of explicitly calling sys.stderr. This helps
2856 sys.stderr) instead of explicitly calling sys.stderr. This helps
2857 maintain our I/O abstractions clean, for future GUI embeddings.
2857 maintain our I/O abstractions clean, for future GUI embeddings.
2858
2858
2859 * IPython/genutils.py (info): added new utility for sys.stderr
2859 * IPython/genutils.py (info): added new utility for sys.stderr
2860 unified info message handling (thin wrapper around warn()).
2860 unified info message handling (thin wrapper around warn()).
2861
2861
2862 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2862 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2863 composite (dotted) names on verbose exceptions.
2863 composite (dotted) names on verbose exceptions.
2864 (VerboseTB.nullrepr): harden against another kind of errors which
2864 (VerboseTB.nullrepr): harden against another kind of errors which
2865 Python's inspect module can trigger, and which were crashing
2865 Python's inspect module can trigger, and which were crashing
2866 IPython. Thanks to a report by Marco Lombardi
2866 IPython. Thanks to a report by Marco Lombardi
2867 <mlombard-AT-ma010192.hq.eso.org>.
2867 <mlombard-AT-ma010192.hq.eso.org>.
2868
2868
2869 2004-12-13 *** Released version 0.6.6
2869 2004-12-13 *** Released version 0.6.6
2870
2870
2871 2004-12-12 Fernando Perez <fperez@colorado.edu>
2871 2004-12-12 Fernando Perez <fperez@colorado.edu>
2872
2872
2873 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2873 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2874 generated by pygtk upon initialization if it was built without
2874 generated by pygtk upon initialization if it was built without
2875 threads (for matplotlib users). After a crash reported by
2875 threads (for matplotlib users). After a crash reported by
2876 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2876 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2877
2877
2878 * IPython/ipmaker.py (make_IPython): fix small bug in the
2878 * IPython/ipmaker.py (make_IPython): fix small bug in the
2879 import_some parameter for multiple imports.
2879 import_some parameter for multiple imports.
2880
2880
2881 * IPython/iplib.py (ipmagic): simplified the interface of
2881 * IPython/iplib.py (ipmagic): simplified the interface of
2882 ipmagic() to take a single string argument, just as it would be
2882 ipmagic() to take a single string argument, just as it would be
2883 typed at the IPython cmd line.
2883 typed at the IPython cmd line.
2884 (ipalias): Added new ipalias() with an interface identical to
2884 (ipalias): Added new ipalias() with an interface identical to
2885 ipmagic(). This completes exposing a pure python interface to the
2885 ipmagic(). This completes exposing a pure python interface to the
2886 alias and magic system, which can be used in loops or more complex
2886 alias and magic system, which can be used in loops or more complex
2887 code where IPython's automatic line mangling is not active.
2887 code where IPython's automatic line mangling is not active.
2888
2888
2889 * IPython/genutils.py (timing): changed interface of timing to
2889 * IPython/genutils.py (timing): changed interface of timing to
2890 simply run code once, which is the most common case. timings()
2890 simply run code once, which is the most common case. timings()
2891 remains unchanged, for the cases where you want multiple runs.
2891 remains unchanged, for the cases where you want multiple runs.
2892
2892
2893 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2893 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2894 bug where Python2.2 crashes with exec'ing code which does not end
2894 bug where Python2.2 crashes with exec'ing code which does not end
2895 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2895 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2896 before.
2896 before.
2897
2897
2898 2004-12-10 Fernando Perez <fperez@colorado.edu>
2898 2004-12-10 Fernando Perez <fperez@colorado.edu>
2899
2899
2900 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2900 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2901 -t to -T, to accomodate the new -t flag in %run (the %run and
2901 -t to -T, to accomodate the new -t flag in %run (the %run and
2902 %prun options are kind of intermixed, and it's not easy to change
2902 %prun options are kind of intermixed, and it's not easy to change
2903 this with the limitations of python's getopt).
2903 this with the limitations of python's getopt).
2904
2904
2905 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2905 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2906 the execution of scripts. It's not as fine-tuned as timeit.py,
2906 the execution of scripts. It's not as fine-tuned as timeit.py,
2907 but it works from inside ipython (and under 2.2, which lacks
2907 but it works from inside ipython (and under 2.2, which lacks
2908 timeit.py). Optionally a number of runs > 1 can be given for
2908 timeit.py). Optionally a number of runs > 1 can be given for
2909 timing very short-running code.
2909 timing very short-running code.
2910
2910
2911 * IPython/genutils.py (uniq_stable): new routine which returns a
2911 * IPython/genutils.py (uniq_stable): new routine which returns a
2912 list of unique elements in any iterable, but in stable order of
2912 list of unique elements in any iterable, but in stable order of
2913 appearance. I needed this for the ultraTB fixes, and it's a handy
2913 appearance. I needed this for the ultraTB fixes, and it's a handy
2914 utility.
2914 utility.
2915
2915
2916 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2916 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2917 dotted names in Verbose exceptions. This had been broken since
2917 dotted names in Verbose exceptions. This had been broken since
2918 the very start, now x.y will properly be printed in a Verbose
2918 the very start, now x.y will properly be printed in a Verbose
2919 traceback, instead of x being shown and y appearing always as an
2919 traceback, instead of x being shown and y appearing always as an
2920 'undefined global'. Getting this to work was a bit tricky,
2920 'undefined global'. Getting this to work was a bit tricky,
2921 because by default python tokenizers are stateless. Saved by
2921 because by default python tokenizers are stateless. Saved by
2922 python's ability to easily add a bit of state to an arbitrary
2922 python's ability to easily add a bit of state to an arbitrary
2923 function (without needing to build a full-blown callable object).
2923 function (without needing to build a full-blown callable object).
2924
2924
2925 Also big cleanup of this code, which had horrendous runtime
2925 Also big cleanup of this code, which had horrendous runtime
2926 lookups of zillions of attributes for colorization. Moved all
2926 lookups of zillions of attributes for colorization. Moved all
2927 this code into a few templates, which make it cleaner and quicker.
2927 this code into a few templates, which make it cleaner and quicker.
2928
2928
2929 Printout quality was also improved for Verbose exceptions: one
2929 Printout quality was also improved for Verbose exceptions: one
2930 variable per line, and memory addresses are printed (this can be
2930 variable per line, and memory addresses are printed (this can be
2931 quite handy in nasty debugging situations, which is what Verbose
2931 quite handy in nasty debugging situations, which is what Verbose
2932 is for).
2932 is for).
2933
2933
2934 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2934 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2935 the command line as scripts to be loaded by embedded instances.
2935 the command line as scripts to be loaded by embedded instances.
2936 Doing so has the potential for an infinite recursion if there are
2936 Doing so has the potential for an infinite recursion if there are
2937 exceptions thrown in the process. This fixes a strange crash
2937 exceptions thrown in the process. This fixes a strange crash
2938 reported by Philippe MULLER <muller-AT-irit.fr>.
2938 reported by Philippe MULLER <muller-AT-irit.fr>.
2939
2939
2940 2004-12-09 Fernando Perez <fperez@colorado.edu>
2940 2004-12-09 Fernando Perez <fperez@colorado.edu>
2941
2941
2942 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2942 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2943 to reflect new names in matplotlib, which now expose the
2943 to reflect new names in matplotlib, which now expose the
2944 matlab-compatible interface via a pylab module instead of the
2944 matlab-compatible interface via a pylab module instead of the
2945 'matlab' name. The new code is backwards compatible, so users of
2945 'matlab' name. The new code is backwards compatible, so users of
2946 all matplotlib versions are OK. Patch by J. Hunter.
2946 all matplotlib versions are OK. Patch by J. Hunter.
2947
2947
2948 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2948 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2949 of __init__ docstrings for instances (class docstrings are already
2949 of __init__ docstrings for instances (class docstrings are already
2950 automatically printed). Instances with customized docstrings
2950 automatically printed). Instances with customized docstrings
2951 (indep. of the class) are also recognized and all 3 separate
2951 (indep. of the class) are also recognized and all 3 separate
2952 docstrings are printed (instance, class, constructor). After some
2952 docstrings are printed (instance, class, constructor). After some
2953 comments/suggestions by J. Hunter.
2953 comments/suggestions by J. Hunter.
2954
2954
2955 2004-12-05 Fernando Perez <fperez@colorado.edu>
2955 2004-12-05 Fernando Perez <fperez@colorado.edu>
2956
2956
2957 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2957 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2958 warnings when tab-completion fails and triggers an exception.
2958 warnings when tab-completion fails and triggers an exception.
2959
2959
2960 2004-12-03 Fernando Perez <fperez@colorado.edu>
2960 2004-12-03 Fernando Perez <fperez@colorado.edu>
2961
2961
2962 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2962 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2963 be triggered when using 'run -p'. An incorrect option flag was
2963 be triggered when using 'run -p'. An incorrect option flag was
2964 being set ('d' instead of 'D').
2964 being set ('d' instead of 'D').
2965 (manpage): fix missing escaped \- sign.
2965 (manpage): fix missing escaped \- sign.
2966
2966
2967 2004-11-30 *** Released version 0.6.5
2967 2004-11-30 *** Released version 0.6.5
2968
2968
2969 2004-11-30 Fernando Perez <fperez@colorado.edu>
2969 2004-11-30 Fernando Perez <fperez@colorado.edu>
2970
2970
2971 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2971 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2972 setting with -d option.
2972 setting with -d option.
2973
2973
2974 * setup.py (docfiles): Fix problem where the doc glob I was using
2974 * setup.py (docfiles): Fix problem where the doc glob I was using
2975 was COMPLETELY BROKEN. It was giving the right files by pure
2975 was COMPLETELY BROKEN. It was giving the right files by pure
2976 accident, but failed once I tried to include ipython.el. Note:
2976 accident, but failed once I tried to include ipython.el. Note:
2977 glob() does NOT allow you to do exclusion on multiple endings!
2977 glob() does NOT allow you to do exclusion on multiple endings!
2978
2978
2979 2004-11-29 Fernando Perez <fperez@colorado.edu>
2979 2004-11-29 Fernando Perez <fperez@colorado.edu>
2980
2980
2981 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2981 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2982 the manpage as the source. Better formatting & consistency.
2982 the manpage as the source. Better formatting & consistency.
2983
2983
2984 * IPython/Magic.py (magic_run): Added new -d option, to run
2984 * IPython/Magic.py (magic_run): Added new -d option, to run
2985 scripts under the control of the python pdb debugger. Note that
2985 scripts under the control of the python pdb debugger. Note that
2986 this required changing the %prun option -d to -D, to avoid a clash
2986 this required changing the %prun option -d to -D, to avoid a clash
2987 (since %run must pass options to %prun, and getopt is too dumb to
2987 (since %run must pass options to %prun, and getopt is too dumb to
2988 handle options with string values with embedded spaces). Thanks
2988 handle options with string values with embedded spaces). Thanks
2989 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2989 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2990 (magic_who_ls): added type matching to %who and %whos, so that one
2990 (magic_who_ls): added type matching to %who and %whos, so that one
2991 can filter their output to only include variables of certain
2991 can filter their output to only include variables of certain
2992 types. Another suggestion by Matthew.
2992 types. Another suggestion by Matthew.
2993 (magic_whos): Added memory summaries in kb and Mb for arrays.
2993 (magic_whos): Added memory summaries in kb and Mb for arrays.
2994 (magic_who): Improve formatting (break lines every 9 vars).
2994 (magic_who): Improve formatting (break lines every 9 vars).
2995
2995
2996 2004-11-28 Fernando Perez <fperez@colorado.edu>
2996 2004-11-28 Fernando Perez <fperez@colorado.edu>
2997
2997
2998 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2998 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2999 cache when empty lines were present.
2999 cache when empty lines were present.
3000
3000
3001 2004-11-24 Fernando Perez <fperez@colorado.edu>
3001 2004-11-24 Fernando Perez <fperez@colorado.edu>
3002
3002
3003 * IPython/usage.py (__doc__): document the re-activated threading
3003 * IPython/usage.py (__doc__): document the re-activated threading
3004 options for WX and GTK.
3004 options for WX and GTK.
3005
3005
3006 2004-11-23 Fernando Perez <fperez@colorado.edu>
3006 2004-11-23 Fernando Perez <fperez@colorado.edu>
3007
3007
3008 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3008 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3009 the -wthread and -gthread options, along with a new -tk one to try
3009 the -wthread and -gthread options, along with a new -tk one to try
3010 and coordinate Tk threading with wx/gtk. The tk support is very
3010 and coordinate Tk threading with wx/gtk. The tk support is very
3011 platform dependent, since it seems to require Tcl and Tk to be
3011 platform dependent, since it seems to require Tcl and Tk to be
3012 built with threads (Fedora1/2 appears NOT to have it, but in
3012 built with threads (Fedora1/2 appears NOT to have it, but in
3013 Prabhu's Debian boxes it works OK). But even with some Tk
3013 Prabhu's Debian boxes it works OK). But even with some Tk
3014 limitations, this is a great improvement.
3014 limitations, this is a great improvement.
3015
3015
3016 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3016 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3017 info in user prompts. Patch by Prabhu.
3017 info in user prompts. Patch by Prabhu.
3018
3018
3019 2004-11-18 Fernando Perez <fperez@colorado.edu>
3019 2004-11-18 Fernando Perez <fperez@colorado.edu>
3020
3020
3021 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3021 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3022 EOFErrors and bail, to avoid infinite loops if a non-terminating
3022 EOFErrors and bail, to avoid infinite loops if a non-terminating
3023 file is fed into ipython. Patch submitted in issue 19 by user,
3023 file is fed into ipython. Patch submitted in issue 19 by user,
3024 many thanks.
3024 many thanks.
3025
3025
3026 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3026 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3027 autoquote/parens in continuation prompts, which can cause lots of
3027 autoquote/parens in continuation prompts, which can cause lots of
3028 problems. Closes roundup issue 20.
3028 problems. Closes roundup issue 20.
3029
3029
3030 2004-11-17 Fernando Perez <fperez@colorado.edu>
3030 2004-11-17 Fernando Perez <fperez@colorado.edu>
3031
3031
3032 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3032 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3033 reported as debian bug #280505. I'm not sure my local changelog
3033 reported as debian bug #280505. I'm not sure my local changelog
3034 entry has the proper debian format (Jack?).
3034 entry has the proper debian format (Jack?).
3035
3035
3036 2004-11-08 *** Released version 0.6.4
3036 2004-11-08 *** Released version 0.6.4
3037
3037
3038 2004-11-08 Fernando Perez <fperez@colorado.edu>
3038 2004-11-08 Fernando Perez <fperez@colorado.edu>
3039
3039
3040 * IPython/iplib.py (init_readline): Fix exit message for Windows
3040 * IPython/iplib.py (init_readline): Fix exit message for Windows
3041 when readline is active. Thanks to a report by Eric Jones
3041 when readline is active. Thanks to a report by Eric Jones
3042 <eric-AT-enthought.com>.
3042 <eric-AT-enthought.com>.
3043
3043
3044 2004-11-07 Fernando Perez <fperez@colorado.edu>
3044 2004-11-07 Fernando Perez <fperez@colorado.edu>
3045
3045
3046 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3046 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3047 sometimes seen by win2k/cygwin users.
3047 sometimes seen by win2k/cygwin users.
3048
3048
3049 2004-11-06 Fernando Perez <fperez@colorado.edu>
3049 2004-11-06 Fernando Perez <fperez@colorado.edu>
3050
3050
3051 * IPython/iplib.py (interact): Change the handling of %Exit from
3051 * IPython/iplib.py (interact): Change the handling of %Exit from
3052 trying to propagate a SystemExit to an internal ipython flag.
3052 trying to propagate a SystemExit to an internal ipython flag.
3053 This is less elegant than using Python's exception mechanism, but
3053 This is less elegant than using Python's exception mechanism, but
3054 I can't get that to work reliably with threads, so under -pylab
3054 I can't get that to work reliably with threads, so under -pylab
3055 %Exit was hanging IPython. Cross-thread exception handling is
3055 %Exit was hanging IPython. Cross-thread exception handling is
3056 really a bitch. Thaks to a bug report by Stephen Walton
3056 really a bitch. Thaks to a bug report by Stephen Walton
3057 <stephen.walton-AT-csun.edu>.
3057 <stephen.walton-AT-csun.edu>.
3058
3058
3059 2004-11-04 Fernando Perez <fperez@colorado.edu>
3059 2004-11-04 Fernando Perez <fperez@colorado.edu>
3060
3060
3061 * IPython/iplib.py (raw_input_original): store a pointer to the
3061 * IPython/iplib.py (raw_input_original): store a pointer to the
3062 true raw_input to harden against code which can modify it
3062 true raw_input to harden against code which can modify it
3063 (wx.py.PyShell does this and would otherwise crash ipython).
3063 (wx.py.PyShell does this and would otherwise crash ipython).
3064 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3064 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3065
3065
3066 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3066 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3067 Ctrl-C problem, which does not mess up the input line.
3067 Ctrl-C problem, which does not mess up the input line.
3068
3068
3069 2004-11-03 Fernando Perez <fperez@colorado.edu>
3069 2004-11-03 Fernando Perez <fperez@colorado.edu>
3070
3070
3071 * IPython/Release.py: Changed licensing to BSD, in all files.
3071 * IPython/Release.py: Changed licensing to BSD, in all files.
3072 (name): lowercase name for tarball/RPM release.
3072 (name): lowercase name for tarball/RPM release.
3073
3073
3074 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3074 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3075 use throughout ipython.
3075 use throughout ipython.
3076
3076
3077 * IPython/Magic.py (Magic._ofind): Switch to using the new
3077 * IPython/Magic.py (Magic._ofind): Switch to using the new
3078 OInspect.getdoc() function.
3078 OInspect.getdoc() function.
3079
3079
3080 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3080 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3081 of the line currently being canceled via Ctrl-C. It's extremely
3081 of the line currently being canceled via Ctrl-C. It's extremely
3082 ugly, but I don't know how to do it better (the problem is one of
3082 ugly, but I don't know how to do it better (the problem is one of
3083 handling cross-thread exceptions).
3083 handling cross-thread exceptions).
3084
3084
3085 2004-10-28 Fernando Perez <fperez@colorado.edu>
3085 2004-10-28 Fernando Perez <fperez@colorado.edu>
3086
3086
3087 * IPython/Shell.py (signal_handler): add signal handlers to trap
3087 * IPython/Shell.py (signal_handler): add signal handlers to trap
3088 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3088 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3089 report by Francesc Alted.
3089 report by Francesc Alted.
3090
3090
3091 2004-10-21 Fernando Perez <fperez@colorado.edu>
3091 2004-10-21 Fernando Perez <fperez@colorado.edu>
3092
3092
3093 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3093 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3094 to % for pysh syntax extensions.
3094 to % for pysh syntax extensions.
3095
3095
3096 2004-10-09 Fernando Perez <fperez@colorado.edu>
3096 2004-10-09 Fernando Perez <fperez@colorado.edu>
3097
3097
3098 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3098 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3099 arrays to print a more useful summary, without calling str(arr).
3099 arrays to print a more useful summary, without calling str(arr).
3100 This avoids the problem of extremely lengthy computations which
3100 This avoids the problem of extremely lengthy computations which
3101 occur if arr is large, and appear to the user as a system lockup
3101 occur if arr is large, and appear to the user as a system lockup
3102 with 100% cpu activity. After a suggestion by Kristian Sandberg
3102 with 100% cpu activity. After a suggestion by Kristian Sandberg
3103 <Kristian.Sandberg@colorado.edu>.
3103 <Kristian.Sandberg@colorado.edu>.
3104 (Magic.__init__): fix bug in global magic escapes not being
3104 (Magic.__init__): fix bug in global magic escapes not being
3105 correctly set.
3105 correctly set.
3106
3106
3107 2004-10-08 Fernando Perez <fperez@colorado.edu>
3107 2004-10-08 Fernando Perez <fperez@colorado.edu>
3108
3108
3109 * IPython/Magic.py (__license__): change to absolute imports of
3109 * IPython/Magic.py (__license__): change to absolute imports of
3110 ipython's own internal packages, to start adapting to the absolute
3110 ipython's own internal packages, to start adapting to the absolute
3111 import requirement of PEP-328.
3111 import requirement of PEP-328.
3112
3112
3113 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3113 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3114 files, and standardize author/license marks through the Release
3114 files, and standardize author/license marks through the Release
3115 module instead of having per/file stuff (except for files with
3115 module instead of having per/file stuff (except for files with
3116 particular licenses, like the MIT/PSF-licensed codes).
3116 particular licenses, like the MIT/PSF-licensed codes).
3117
3117
3118 * IPython/Debugger.py: remove dead code for python 2.1
3118 * IPython/Debugger.py: remove dead code for python 2.1
3119
3119
3120 2004-10-04 Fernando Perez <fperez@colorado.edu>
3120 2004-10-04 Fernando Perez <fperez@colorado.edu>
3121
3121
3122 * IPython/iplib.py (ipmagic): New function for accessing magics
3122 * IPython/iplib.py (ipmagic): New function for accessing magics
3123 via a normal python function call.
3123 via a normal python function call.
3124
3124
3125 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3125 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3126 from '@' to '%', to accomodate the new @decorator syntax of python
3126 from '@' to '%', to accomodate the new @decorator syntax of python
3127 2.4.
3127 2.4.
3128
3128
3129 2004-09-29 Fernando Perez <fperez@colorado.edu>
3129 2004-09-29 Fernando Perez <fperez@colorado.edu>
3130
3130
3131 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3131 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3132 matplotlib.use to prevent running scripts which try to switch
3132 matplotlib.use to prevent running scripts which try to switch
3133 interactive backends from within ipython. This will just crash
3133 interactive backends from within ipython. This will just crash
3134 the python interpreter, so we can't allow it (but a detailed error
3134 the python interpreter, so we can't allow it (but a detailed error
3135 is given to the user).
3135 is given to the user).
3136
3136
3137 2004-09-28 Fernando Perez <fperez@colorado.edu>
3137 2004-09-28 Fernando Perez <fperez@colorado.edu>
3138
3138
3139 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3139 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3140 matplotlib-related fixes so that using @run with non-matplotlib
3140 matplotlib-related fixes so that using @run with non-matplotlib
3141 scripts doesn't pop up spurious plot windows. This requires
3141 scripts doesn't pop up spurious plot windows. This requires
3142 matplotlib >= 0.63, where I had to make some changes as well.
3142 matplotlib >= 0.63, where I had to make some changes as well.
3143
3143
3144 * IPython/ipmaker.py (make_IPython): update version requirement to
3144 * IPython/ipmaker.py (make_IPython): update version requirement to
3145 python 2.2.
3145 python 2.2.
3146
3146
3147 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3147 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3148 banner arg for embedded customization.
3148 banner arg for embedded customization.
3149
3149
3150 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3150 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3151 explicit uses of __IP as the IPython's instance name. Now things
3151 explicit uses of __IP as the IPython's instance name. Now things
3152 are properly handled via the shell.name value. The actual code
3152 are properly handled via the shell.name value. The actual code
3153 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3153 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3154 is much better than before. I'll clean things completely when the
3154 is much better than before. I'll clean things completely when the
3155 magic stuff gets a real overhaul.
3155 magic stuff gets a real overhaul.
3156
3156
3157 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3157 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3158 minor changes to debian dir.
3158 minor changes to debian dir.
3159
3159
3160 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3160 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3161 pointer to the shell itself in the interactive namespace even when
3161 pointer to the shell itself in the interactive namespace even when
3162 a user-supplied dict is provided. This is needed for embedding
3162 a user-supplied dict is provided. This is needed for embedding
3163 purposes (found by tests with Michel Sanner).
3163 purposes (found by tests with Michel Sanner).
3164
3164
3165 2004-09-27 Fernando Perez <fperez@colorado.edu>
3165 2004-09-27 Fernando Perez <fperez@colorado.edu>
3166
3166
3167 * IPython/UserConfig/ipythonrc: remove []{} from
3167 * IPython/UserConfig/ipythonrc: remove []{} from
3168 readline_remove_delims, so that things like [modname.<TAB> do
3168 readline_remove_delims, so that things like [modname.<TAB> do
3169 proper completion. This disables [].TAB, but that's a less common
3169 proper completion. This disables [].TAB, but that's a less common
3170 case than module names in list comprehensions, for example.
3170 case than module names in list comprehensions, for example.
3171 Thanks to a report by Andrea Riciputi.
3171 Thanks to a report by Andrea Riciputi.
3172
3172
3173 2004-09-09 Fernando Perez <fperez@colorado.edu>
3173 2004-09-09 Fernando Perez <fperez@colorado.edu>
3174
3174
3175 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3175 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3176 blocking problems in win32 and osx. Fix by John.
3176 blocking problems in win32 and osx. Fix by John.
3177
3177
3178 2004-09-08 Fernando Perez <fperez@colorado.edu>
3178 2004-09-08 Fernando Perez <fperez@colorado.edu>
3179
3179
3180 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3180 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3181 for Win32 and OSX. Fix by John Hunter.
3181 for Win32 and OSX. Fix by John Hunter.
3182
3182
3183 2004-08-30 *** Released version 0.6.3
3183 2004-08-30 *** Released version 0.6.3
3184
3184
3185 2004-08-30 Fernando Perez <fperez@colorado.edu>
3185 2004-08-30 Fernando Perez <fperez@colorado.edu>
3186
3186
3187 * setup.py (isfile): Add manpages to list of dependent files to be
3187 * setup.py (isfile): Add manpages to list of dependent files to be
3188 updated.
3188 updated.
3189
3189
3190 2004-08-27 Fernando Perez <fperez@colorado.edu>
3190 2004-08-27 Fernando Perez <fperez@colorado.edu>
3191
3191
3192 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3192 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3193 for now. They don't really work with standalone WX/GTK code
3193 for now. They don't really work with standalone WX/GTK code
3194 (though matplotlib IS working fine with both of those backends).
3194 (though matplotlib IS working fine with both of those backends).
3195 This will neeed much more testing. I disabled most things with
3195 This will neeed much more testing. I disabled most things with
3196 comments, so turning it back on later should be pretty easy.
3196 comments, so turning it back on later should be pretty easy.
3197
3197
3198 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3198 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3199 autocalling of expressions like r'foo', by modifying the line
3199 autocalling of expressions like r'foo', by modifying the line
3200 split regexp. Closes
3200 split regexp. Closes
3201 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3201 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3202 Riley <ipythonbugs-AT-sabi.net>.
3202 Riley <ipythonbugs-AT-sabi.net>.
3203 (InteractiveShell.mainloop): honor --nobanner with banner
3203 (InteractiveShell.mainloop): honor --nobanner with banner
3204 extensions.
3204 extensions.
3205
3205
3206 * IPython/Shell.py: Significant refactoring of all classes, so
3206 * IPython/Shell.py: Significant refactoring of all classes, so
3207 that we can really support ALL matplotlib backends and threading
3207 that we can really support ALL matplotlib backends and threading
3208 models (John spotted a bug with Tk which required this). Now we
3208 models (John spotted a bug with Tk which required this). Now we
3209 should support single-threaded, WX-threads and GTK-threads, both
3209 should support single-threaded, WX-threads and GTK-threads, both
3210 for generic code and for matplotlib.
3210 for generic code and for matplotlib.
3211
3211
3212 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3212 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3213 -pylab, to simplify things for users. Will also remove the pylab
3213 -pylab, to simplify things for users. Will also remove the pylab
3214 profile, since now all of matplotlib configuration is directly
3214 profile, since now all of matplotlib configuration is directly
3215 handled here. This also reduces startup time.
3215 handled here. This also reduces startup time.
3216
3216
3217 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3217 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3218 shell wasn't being correctly called. Also in IPShellWX.
3218 shell wasn't being correctly called. Also in IPShellWX.
3219
3219
3220 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3220 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3221 fine-tune banner.
3221 fine-tune banner.
3222
3222
3223 * IPython/numutils.py (spike): Deprecate these spike functions,
3223 * IPython/numutils.py (spike): Deprecate these spike functions,
3224 delete (long deprecated) gnuplot_exec handler.
3224 delete (long deprecated) gnuplot_exec handler.
3225
3225
3226 2004-08-26 Fernando Perez <fperez@colorado.edu>
3226 2004-08-26 Fernando Perez <fperez@colorado.edu>
3227
3227
3228 * ipython.1: Update for threading options, plus some others which
3228 * ipython.1: Update for threading options, plus some others which
3229 were missing.
3229 were missing.
3230
3230
3231 * IPython/ipmaker.py (__call__): Added -wthread option for
3231 * IPython/ipmaker.py (__call__): Added -wthread option for
3232 wxpython thread handling. Make sure threading options are only
3232 wxpython thread handling. Make sure threading options are only
3233 valid at the command line.
3233 valid at the command line.
3234
3234
3235 * scripts/ipython: moved shell selection into a factory function
3235 * scripts/ipython: moved shell selection into a factory function
3236 in Shell.py, to keep the starter script to a minimum.
3236 in Shell.py, to keep the starter script to a minimum.
3237
3237
3238 2004-08-25 Fernando Perez <fperez@colorado.edu>
3238 2004-08-25 Fernando Perez <fperez@colorado.edu>
3239
3239
3240 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3240 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3241 John. Along with some recent changes he made to matplotlib, the
3241 John. Along with some recent changes he made to matplotlib, the
3242 next versions of both systems should work very well together.
3242 next versions of both systems should work very well together.
3243
3243
3244 2004-08-24 Fernando Perez <fperez@colorado.edu>
3244 2004-08-24 Fernando Perez <fperez@colorado.edu>
3245
3245
3246 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3246 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3247 tried to switch the profiling to using hotshot, but I'm getting
3247 tried to switch the profiling to using hotshot, but I'm getting
3248 strange errors from prof.runctx() there. I may be misreading the
3248 strange errors from prof.runctx() there. I may be misreading the
3249 docs, but it looks weird. For now the profiling code will
3249 docs, but it looks weird. For now the profiling code will
3250 continue to use the standard profiler.
3250 continue to use the standard profiler.
3251
3251
3252 2004-08-23 Fernando Perez <fperez@colorado.edu>
3252 2004-08-23 Fernando Perez <fperez@colorado.edu>
3253
3253
3254 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3254 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3255 threaded shell, by John Hunter. It's not quite ready yet, but
3255 threaded shell, by John Hunter. It's not quite ready yet, but
3256 close.
3256 close.
3257
3257
3258 2004-08-22 Fernando Perez <fperez@colorado.edu>
3258 2004-08-22 Fernando Perez <fperez@colorado.edu>
3259
3259
3260 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3260 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3261 in Magic and ultraTB.
3261 in Magic and ultraTB.
3262
3262
3263 * ipython.1: document threading options in manpage.
3263 * ipython.1: document threading options in manpage.
3264
3264
3265 * scripts/ipython: Changed name of -thread option to -gthread,
3265 * scripts/ipython: Changed name of -thread option to -gthread,
3266 since this is GTK specific. I want to leave the door open for a
3266 since this is GTK specific. I want to leave the door open for a
3267 -wthread option for WX, which will most likely be necessary. This
3267 -wthread option for WX, which will most likely be necessary. This
3268 change affects usage and ipmaker as well.
3268 change affects usage and ipmaker as well.
3269
3269
3270 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3270 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3271 handle the matplotlib shell issues. Code by John Hunter
3271 handle the matplotlib shell issues. Code by John Hunter
3272 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3272 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3273 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3273 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3274 broken (and disabled for end users) for now, but it puts the
3274 broken (and disabled for end users) for now, but it puts the
3275 infrastructure in place.
3275 infrastructure in place.
3276
3276
3277 2004-08-21 Fernando Perez <fperez@colorado.edu>
3277 2004-08-21 Fernando Perez <fperez@colorado.edu>
3278
3278
3279 * ipythonrc-pylab: Add matplotlib support.
3279 * ipythonrc-pylab: Add matplotlib support.
3280
3280
3281 * matplotlib_config.py: new files for matplotlib support, part of
3281 * matplotlib_config.py: new files for matplotlib support, part of
3282 the pylab profile.
3282 the pylab profile.
3283
3283
3284 * IPython/usage.py (__doc__): documented the threading options.
3284 * IPython/usage.py (__doc__): documented the threading options.
3285
3285
3286 2004-08-20 Fernando Perez <fperez@colorado.edu>
3286 2004-08-20 Fernando Perez <fperez@colorado.edu>
3287
3287
3288 * ipython: Modified the main calling routine to handle the -thread
3288 * ipython: Modified the main calling routine to handle the -thread
3289 and -mpthread options. This needs to be done as a top-level hack,
3289 and -mpthread options. This needs to be done as a top-level hack,
3290 because it determines which class to instantiate for IPython
3290 because it determines which class to instantiate for IPython
3291 itself.
3291 itself.
3292
3292
3293 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3293 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3294 classes to support multithreaded GTK operation without blocking,
3294 classes to support multithreaded GTK operation without blocking,
3295 and matplotlib with all backends. This is a lot of still very
3295 and matplotlib with all backends. This is a lot of still very
3296 experimental code, and threads are tricky. So it may still have a
3296 experimental code, and threads are tricky. So it may still have a
3297 few rough edges... This code owes a lot to
3297 few rough edges... This code owes a lot to
3298 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3298 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3299 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3299 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3300 to John Hunter for all the matplotlib work.
3300 to John Hunter for all the matplotlib work.
3301
3301
3302 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3302 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3303 options for gtk thread and matplotlib support.
3303 options for gtk thread and matplotlib support.
3304
3304
3305 2004-08-16 Fernando Perez <fperez@colorado.edu>
3305 2004-08-16 Fernando Perez <fperez@colorado.edu>
3306
3306
3307 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3307 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3308 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3308 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3309 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3309 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3310
3310
3311 2004-08-11 Fernando Perez <fperez@colorado.edu>
3311 2004-08-11 Fernando Perez <fperez@colorado.edu>
3312
3312
3313 * setup.py (isfile): Fix build so documentation gets updated for
3313 * setup.py (isfile): Fix build so documentation gets updated for
3314 rpms (it was only done for .tgz builds).
3314 rpms (it was only done for .tgz builds).
3315
3315
3316 2004-08-10 Fernando Perez <fperez@colorado.edu>
3316 2004-08-10 Fernando Perez <fperez@colorado.edu>
3317
3317
3318 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3318 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3319
3319
3320 * iplib.py : Silence syntax error exceptions in tab-completion.
3320 * iplib.py : Silence syntax error exceptions in tab-completion.
3321
3321
3322 2004-08-05 Fernando Perez <fperez@colorado.edu>
3322 2004-08-05 Fernando Perez <fperez@colorado.edu>
3323
3323
3324 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3324 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3325 'color off' mark for continuation prompts. This was causing long
3325 'color off' mark for continuation prompts. This was causing long
3326 continuation lines to mis-wrap.
3326 continuation lines to mis-wrap.
3327
3327
3328 2004-08-01 Fernando Perez <fperez@colorado.edu>
3328 2004-08-01 Fernando Perez <fperez@colorado.edu>
3329
3329
3330 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3330 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3331 for building ipython to be a parameter. All this is necessary
3331 for building ipython to be a parameter. All this is necessary
3332 right now to have a multithreaded version, but this insane
3332 right now to have a multithreaded version, but this insane
3333 non-design will be cleaned up soon. For now, it's a hack that
3333 non-design will be cleaned up soon. For now, it's a hack that
3334 works.
3334 works.
3335
3335
3336 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3336 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3337 args in various places. No bugs so far, but it's a dangerous
3337 args in various places. No bugs so far, but it's a dangerous
3338 practice.
3338 practice.
3339
3339
3340 2004-07-31 Fernando Perez <fperez@colorado.edu>
3340 2004-07-31 Fernando Perez <fperez@colorado.edu>
3341
3341
3342 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3342 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3343 fix completion of files with dots in their names under most
3343 fix completion of files with dots in their names under most
3344 profiles (pysh was OK because the completion order is different).
3344 profiles (pysh was OK because the completion order is different).
3345
3345
3346 2004-07-27 Fernando Perez <fperez@colorado.edu>
3346 2004-07-27 Fernando Perez <fperez@colorado.edu>
3347
3347
3348 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3348 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3349 keywords manually, b/c the one in keyword.py was removed in python
3349 keywords manually, b/c the one in keyword.py was removed in python
3350 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3350 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3351 This is NOT a bug under python 2.3 and earlier.
3351 This is NOT a bug under python 2.3 and earlier.
3352
3352
3353 2004-07-26 Fernando Perez <fperez@colorado.edu>
3353 2004-07-26 Fernando Perez <fperez@colorado.edu>
3354
3354
3355 * IPython/ultraTB.py (VerboseTB.text): Add another
3355 * IPython/ultraTB.py (VerboseTB.text): Add another
3356 linecache.checkcache() call to try to prevent inspect.py from
3356 linecache.checkcache() call to try to prevent inspect.py from
3357 crashing under python 2.3. I think this fixes
3357 crashing under python 2.3. I think this fixes
3358 http://www.scipy.net/roundup/ipython/issue17.
3358 http://www.scipy.net/roundup/ipython/issue17.
3359
3359
3360 2004-07-26 *** Released version 0.6.2
3360 2004-07-26 *** Released version 0.6.2
3361
3361
3362 2004-07-26 Fernando Perez <fperez@colorado.edu>
3362 2004-07-26 Fernando Perez <fperez@colorado.edu>
3363
3363
3364 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3364 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3365 fail for any number.
3365 fail for any number.
3366 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3366 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3367 empty bookmarks.
3367 empty bookmarks.
3368
3368
3369 2004-07-26 *** Released version 0.6.1
3369 2004-07-26 *** Released version 0.6.1
3370
3370
3371 2004-07-26 Fernando Perez <fperez@colorado.edu>
3371 2004-07-26 Fernando Perez <fperez@colorado.edu>
3372
3372
3373 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3373 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3374
3374
3375 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3375 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3376 escaping '()[]{}' in filenames.
3376 escaping '()[]{}' in filenames.
3377
3377
3378 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3378 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3379 Python 2.2 users who lack a proper shlex.split.
3379 Python 2.2 users who lack a proper shlex.split.
3380
3380
3381 2004-07-19 Fernando Perez <fperez@colorado.edu>
3381 2004-07-19 Fernando Perez <fperez@colorado.edu>
3382
3382
3383 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3383 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3384 for reading readline's init file. I follow the normal chain:
3384 for reading readline's init file. I follow the normal chain:
3385 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3385 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3386 report by Mike Heeter. This closes
3386 report by Mike Heeter. This closes
3387 http://www.scipy.net/roundup/ipython/issue16.
3387 http://www.scipy.net/roundup/ipython/issue16.
3388
3388
3389 2004-07-18 Fernando Perez <fperez@colorado.edu>
3389 2004-07-18 Fernando Perez <fperez@colorado.edu>
3390
3390
3391 * IPython/iplib.py (__init__): Add better handling of '\' under
3391 * IPython/iplib.py (__init__): Add better handling of '\' under
3392 Win32 for filenames. After a patch by Ville.
3392 Win32 for filenames. After a patch by Ville.
3393
3393
3394 2004-07-17 Fernando Perez <fperez@colorado.edu>
3394 2004-07-17 Fernando Perez <fperez@colorado.edu>
3395
3395
3396 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3396 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3397 autocalling would be triggered for 'foo is bar' if foo is
3397 autocalling would be triggered for 'foo is bar' if foo is
3398 callable. I also cleaned up the autocall detection code to use a
3398 callable. I also cleaned up the autocall detection code to use a
3399 regexp, which is faster. Bug reported by Alexander Schmolck.
3399 regexp, which is faster. Bug reported by Alexander Schmolck.
3400
3400
3401 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3401 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3402 '?' in them would confuse the help system. Reported by Alex
3402 '?' in them would confuse the help system. Reported by Alex
3403 Schmolck.
3403 Schmolck.
3404
3404
3405 2004-07-16 Fernando Perez <fperez@colorado.edu>
3405 2004-07-16 Fernando Perez <fperez@colorado.edu>
3406
3406
3407 * IPython/GnuplotInteractive.py (__all__): added plot2.
3407 * IPython/GnuplotInteractive.py (__all__): added plot2.
3408
3408
3409 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3409 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3410 plotting dictionaries, lists or tuples of 1d arrays.
3410 plotting dictionaries, lists or tuples of 1d arrays.
3411
3411
3412 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3412 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3413 optimizations.
3413 optimizations.
3414
3414
3415 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3415 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3416 the information which was there from Janko's original IPP code:
3416 the information which was there from Janko's original IPP code:
3417
3417
3418 03.05.99 20:53 porto.ifm.uni-kiel.de
3418 03.05.99 20:53 porto.ifm.uni-kiel.de
3419 --Started changelog.
3419 --Started changelog.
3420 --make clear do what it say it does
3420 --make clear do what it say it does
3421 --added pretty output of lines from inputcache
3421 --added pretty output of lines from inputcache
3422 --Made Logger a mixin class, simplifies handling of switches
3422 --Made Logger a mixin class, simplifies handling of switches
3423 --Added own completer class. .string<TAB> expands to last history
3423 --Added own completer class. .string<TAB> expands to last history
3424 line which starts with string. The new expansion is also present
3424 line which starts with string. The new expansion is also present
3425 with Ctrl-r from the readline library. But this shows, who this
3425 with Ctrl-r from the readline library. But this shows, who this
3426 can be done for other cases.
3426 can be done for other cases.
3427 --Added convention that all shell functions should accept a
3427 --Added convention that all shell functions should accept a
3428 parameter_string This opens the door for different behaviour for
3428 parameter_string This opens the door for different behaviour for
3429 each function. @cd is a good example of this.
3429 each function. @cd is a good example of this.
3430
3430
3431 04.05.99 12:12 porto.ifm.uni-kiel.de
3431 04.05.99 12:12 porto.ifm.uni-kiel.de
3432 --added logfile rotation
3432 --added logfile rotation
3433 --added new mainloop method which freezes first the namespace
3433 --added new mainloop method which freezes first the namespace
3434
3434
3435 07.05.99 21:24 porto.ifm.uni-kiel.de
3435 07.05.99 21:24 porto.ifm.uni-kiel.de
3436 --added the docreader classes. Now there is a help system.
3436 --added the docreader classes. Now there is a help system.
3437 -This is only a first try. Currently it's not easy to put new
3437 -This is only a first try. Currently it's not easy to put new
3438 stuff in the indices. But this is the way to go. Info would be
3438 stuff in the indices. But this is the way to go. Info would be
3439 better, but HTML is every where and not everybody has an info
3439 better, but HTML is every where and not everybody has an info
3440 system installed and it's not so easy to change html-docs to info.
3440 system installed and it's not so easy to change html-docs to info.
3441 --added global logfile option
3441 --added global logfile option
3442 --there is now a hook for object inspection method pinfo needs to
3442 --there is now a hook for object inspection method pinfo needs to
3443 be provided for this. Can be reached by two '??'.
3443 be provided for this. Can be reached by two '??'.
3444
3444
3445 08.05.99 20:51 porto.ifm.uni-kiel.de
3445 08.05.99 20:51 porto.ifm.uni-kiel.de
3446 --added a README
3446 --added a README
3447 --bug in rc file. Something has changed so functions in the rc
3447 --bug in rc file. Something has changed so functions in the rc
3448 file need to reference the shell and not self. Not clear if it's a
3448 file need to reference the shell and not self. Not clear if it's a
3449 bug or feature.
3449 bug or feature.
3450 --changed rc file for new behavior
3450 --changed rc file for new behavior
3451
3451
3452 2004-07-15 Fernando Perez <fperez@colorado.edu>
3452 2004-07-15 Fernando Perez <fperez@colorado.edu>
3453
3453
3454 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3454 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3455 cache was falling out of sync in bizarre manners when multi-line
3455 cache was falling out of sync in bizarre manners when multi-line
3456 input was present. Minor optimizations and cleanup.
3456 input was present. Minor optimizations and cleanup.
3457
3457
3458 (Logger): Remove old Changelog info for cleanup. This is the
3458 (Logger): Remove old Changelog info for cleanup. This is the
3459 information which was there from Janko's original code:
3459 information which was there from Janko's original code:
3460
3460
3461 Changes to Logger: - made the default log filename a parameter
3461 Changes to Logger: - made the default log filename a parameter
3462
3462
3463 - put a check for lines beginning with !@? in log(). Needed
3463 - put a check for lines beginning with !@? in log(). Needed
3464 (even if the handlers properly log their lines) for mid-session
3464 (even if the handlers properly log their lines) for mid-session
3465 logging activation to work properly. Without this, lines logged
3465 logging activation to work properly. Without this, lines logged
3466 in mid session, which get read from the cache, would end up
3466 in mid session, which get read from the cache, would end up
3467 'bare' (with !@? in the open) in the log. Now they are caught
3467 'bare' (with !@? in the open) in the log. Now they are caught
3468 and prepended with a #.
3468 and prepended with a #.
3469
3469
3470 * IPython/iplib.py (InteractiveShell.init_readline): added check
3470 * IPython/iplib.py (InteractiveShell.init_readline): added check
3471 in case MagicCompleter fails to be defined, so we don't crash.
3471 in case MagicCompleter fails to be defined, so we don't crash.
3472
3472
3473 2004-07-13 Fernando Perez <fperez@colorado.edu>
3473 2004-07-13 Fernando Perez <fperez@colorado.edu>
3474
3474
3475 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3475 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3476 of EPS if the requested filename ends in '.eps'.
3476 of EPS if the requested filename ends in '.eps'.
3477
3477
3478 2004-07-04 Fernando Perez <fperez@colorado.edu>
3478 2004-07-04 Fernando Perez <fperez@colorado.edu>
3479
3479
3480 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3480 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3481 escaping of quotes when calling the shell.
3481 escaping of quotes when calling the shell.
3482
3482
3483 2004-07-02 Fernando Perez <fperez@colorado.edu>
3483 2004-07-02 Fernando Perez <fperez@colorado.edu>
3484
3484
3485 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3485 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3486 gettext not working because we were clobbering '_'. Fixes
3486 gettext not working because we were clobbering '_'. Fixes
3487 http://www.scipy.net/roundup/ipython/issue6.
3487 http://www.scipy.net/roundup/ipython/issue6.
3488
3488
3489 2004-07-01 Fernando Perez <fperez@colorado.edu>
3489 2004-07-01 Fernando Perez <fperez@colorado.edu>
3490
3490
3491 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3491 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3492 into @cd. Patch by Ville.
3492 into @cd. Patch by Ville.
3493
3493
3494 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3494 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3495 new function to store things after ipmaker runs. Patch by Ville.
3495 new function to store things after ipmaker runs. Patch by Ville.
3496 Eventually this will go away once ipmaker is removed and the class
3496 Eventually this will go away once ipmaker is removed and the class
3497 gets cleaned up, but for now it's ok. Key functionality here is
3497 gets cleaned up, but for now it's ok. Key functionality here is
3498 the addition of the persistent storage mechanism, a dict for
3498 the addition of the persistent storage mechanism, a dict for
3499 keeping data across sessions (for now just bookmarks, but more can
3499 keeping data across sessions (for now just bookmarks, but more can
3500 be implemented later).
3500 be implemented later).
3501
3501
3502 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3502 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3503 persistent across sections. Patch by Ville, I modified it
3503 persistent across sections. Patch by Ville, I modified it
3504 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3504 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3505 added a '-l' option to list all bookmarks.
3505 added a '-l' option to list all bookmarks.
3506
3506
3507 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3507 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3508 center for cleanup. Registered with atexit.register(). I moved
3508 center for cleanup. Registered with atexit.register(). I moved
3509 here the old exit_cleanup(). After a patch by Ville.
3509 here the old exit_cleanup(). After a patch by Ville.
3510
3510
3511 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3511 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3512 characters in the hacked shlex_split for python 2.2.
3512 characters in the hacked shlex_split for python 2.2.
3513
3513
3514 * IPython/iplib.py (file_matches): more fixes to filenames with
3514 * IPython/iplib.py (file_matches): more fixes to filenames with
3515 whitespace in them. It's not perfect, but limitations in python's
3515 whitespace in them. It's not perfect, but limitations in python's
3516 readline make it impossible to go further.
3516 readline make it impossible to go further.
3517
3517
3518 2004-06-29 Fernando Perez <fperez@colorado.edu>
3518 2004-06-29 Fernando Perez <fperez@colorado.edu>
3519
3519
3520 * IPython/iplib.py (file_matches): escape whitespace correctly in
3520 * IPython/iplib.py (file_matches): escape whitespace correctly in
3521 filename completions. Bug reported by Ville.
3521 filename completions. Bug reported by Ville.
3522
3522
3523 2004-06-28 Fernando Perez <fperez@colorado.edu>
3523 2004-06-28 Fernando Perez <fperez@colorado.edu>
3524
3524
3525 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3525 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3526 the history file will be called 'history-PROFNAME' (or just
3526 the history file will be called 'history-PROFNAME' (or just
3527 'history' if no profile is loaded). I was getting annoyed at
3527 'history' if no profile is loaded). I was getting annoyed at
3528 getting my Numerical work history clobbered by pysh sessions.
3528 getting my Numerical work history clobbered by pysh sessions.
3529
3529
3530 * IPython/iplib.py (InteractiveShell.__init__): Internal
3530 * IPython/iplib.py (InteractiveShell.__init__): Internal
3531 getoutputerror() function so that we can honor the system_verbose
3531 getoutputerror() function so that we can honor the system_verbose
3532 flag for _all_ system calls. I also added escaping of #
3532 flag for _all_ system calls. I also added escaping of #
3533 characters here to avoid confusing Itpl.
3533 characters here to avoid confusing Itpl.
3534
3534
3535 * IPython/Magic.py (shlex_split): removed call to shell in
3535 * IPython/Magic.py (shlex_split): removed call to shell in
3536 parse_options and replaced it with shlex.split(). The annoying
3536 parse_options and replaced it with shlex.split(). The annoying
3537 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3537 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3538 to backport it from 2.3, with several frail hacks (the shlex
3538 to backport it from 2.3, with several frail hacks (the shlex
3539 module is rather limited in 2.2). Thanks to a suggestion by Ville
3539 module is rather limited in 2.2). Thanks to a suggestion by Ville
3540 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3540 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3541 problem.
3541 problem.
3542
3542
3543 (Magic.magic_system_verbose): new toggle to print the actual
3543 (Magic.magic_system_verbose): new toggle to print the actual
3544 system calls made by ipython. Mainly for debugging purposes.
3544 system calls made by ipython. Mainly for debugging purposes.
3545
3545
3546 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3546 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3547 doesn't support persistence. Reported (and fix suggested) by
3547 doesn't support persistence. Reported (and fix suggested) by
3548 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3548 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3549
3549
3550 2004-06-26 Fernando Perez <fperez@colorado.edu>
3550 2004-06-26 Fernando Perez <fperez@colorado.edu>
3551
3551
3552 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3552 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3553 continue prompts.
3553 continue prompts.
3554
3554
3555 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3555 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3556 function (basically a big docstring) and a few more things here to
3556 function (basically a big docstring) and a few more things here to
3557 speedup startup. pysh.py is now very lightweight. We want because
3557 speedup startup. pysh.py is now very lightweight. We want because
3558 it gets execfile'd, while InterpreterExec gets imported, so
3558 it gets execfile'd, while InterpreterExec gets imported, so
3559 byte-compilation saves time.
3559 byte-compilation saves time.
3560
3560
3561 2004-06-25 Fernando Perez <fperez@colorado.edu>
3561 2004-06-25 Fernando Perez <fperez@colorado.edu>
3562
3562
3563 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3563 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3564 -NUM', which was recently broken.
3564 -NUM', which was recently broken.
3565
3565
3566 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3566 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3567 in multi-line input (but not !!, which doesn't make sense there).
3567 in multi-line input (but not !!, which doesn't make sense there).
3568
3568
3569 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3569 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3570 It's just too useful, and people can turn it off in the less
3570 It's just too useful, and people can turn it off in the less
3571 common cases where it's a problem.
3571 common cases where it's a problem.
3572
3572
3573 2004-06-24 Fernando Perez <fperez@colorado.edu>
3573 2004-06-24 Fernando Perez <fperez@colorado.edu>
3574
3574
3575 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3575 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3576 special syntaxes (like alias calling) is now allied in multi-line
3576 special syntaxes (like alias calling) is now allied in multi-line
3577 input. This is still _very_ experimental, but it's necessary for
3577 input. This is still _very_ experimental, but it's necessary for
3578 efficient shell usage combining python looping syntax with system
3578 efficient shell usage combining python looping syntax with system
3579 calls. For now it's restricted to aliases, I don't think it
3579 calls. For now it's restricted to aliases, I don't think it
3580 really even makes sense to have this for magics.
3580 really even makes sense to have this for magics.
3581
3581
3582 2004-06-23 Fernando Perez <fperez@colorado.edu>
3582 2004-06-23 Fernando Perez <fperez@colorado.edu>
3583
3583
3584 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3584 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3585 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3585 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3586
3586
3587 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3587 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3588 extensions under Windows (after code sent by Gary Bishop). The
3588 extensions under Windows (after code sent by Gary Bishop). The
3589 extensions considered 'executable' are stored in IPython's rc
3589 extensions considered 'executable' are stored in IPython's rc
3590 structure as win_exec_ext.
3590 structure as win_exec_ext.
3591
3591
3592 * IPython/genutils.py (shell): new function, like system() but
3592 * IPython/genutils.py (shell): new function, like system() but
3593 without return value. Very useful for interactive shell work.
3593 without return value. Very useful for interactive shell work.
3594
3594
3595 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3595 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3596 delete aliases.
3596 delete aliases.
3597
3597
3598 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3598 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3599 sure that the alias table doesn't contain python keywords.
3599 sure that the alias table doesn't contain python keywords.
3600
3600
3601 2004-06-21 Fernando Perez <fperez@colorado.edu>
3601 2004-06-21 Fernando Perez <fperez@colorado.edu>
3602
3602
3603 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3603 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3604 non-existent items are found in $PATH. Reported by Thorsten.
3604 non-existent items are found in $PATH. Reported by Thorsten.
3605
3605
3606 2004-06-20 Fernando Perez <fperez@colorado.edu>
3606 2004-06-20 Fernando Perez <fperez@colorado.edu>
3607
3607
3608 * IPython/iplib.py (complete): modified the completer so that the
3608 * IPython/iplib.py (complete): modified the completer so that the
3609 order of priorities can be easily changed at runtime.
3609 order of priorities can be easily changed at runtime.
3610
3610
3611 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3611 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3612 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3612 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3613
3613
3614 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3614 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3615 expand Python variables prepended with $ in all system calls. The
3615 expand Python variables prepended with $ in all system calls. The
3616 same was done to InteractiveShell.handle_shell_escape. Now all
3616 same was done to InteractiveShell.handle_shell_escape. Now all
3617 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3617 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3618 expansion of python variables and expressions according to the
3618 expansion of python variables and expressions according to the
3619 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3619 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3620
3620
3621 Though PEP-215 has been rejected, a similar (but simpler) one
3621 Though PEP-215 has been rejected, a similar (but simpler) one
3622 seems like it will go into Python 2.4, PEP-292 -
3622 seems like it will go into Python 2.4, PEP-292 -
3623 http://www.python.org/peps/pep-0292.html.
3623 http://www.python.org/peps/pep-0292.html.
3624
3624
3625 I'll keep the full syntax of PEP-215, since IPython has since the
3625 I'll keep the full syntax of PEP-215, since IPython has since the
3626 start used Ka-Ping Yee's reference implementation discussed there
3626 start used Ka-Ping Yee's reference implementation discussed there
3627 (Itpl), and I actually like the powerful semantics it offers.
3627 (Itpl), and I actually like the powerful semantics it offers.
3628
3628
3629 In order to access normal shell variables, the $ has to be escaped
3629 In order to access normal shell variables, the $ has to be escaped
3630 via an extra $. For example:
3630 via an extra $. For example:
3631
3631
3632 In [7]: PATH='a python variable'
3632 In [7]: PATH='a python variable'
3633
3633
3634 In [8]: !echo $PATH
3634 In [8]: !echo $PATH
3635 a python variable
3635 a python variable
3636
3636
3637 In [9]: !echo $$PATH
3637 In [9]: !echo $$PATH
3638 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3638 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3639
3639
3640 (Magic.parse_options): escape $ so the shell doesn't evaluate
3640 (Magic.parse_options): escape $ so the shell doesn't evaluate
3641 things prematurely.
3641 things prematurely.
3642
3642
3643 * IPython/iplib.py (InteractiveShell.call_alias): added the
3643 * IPython/iplib.py (InteractiveShell.call_alias): added the
3644 ability for aliases to expand python variables via $.
3644 ability for aliases to expand python variables via $.
3645
3645
3646 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3646 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3647 system, now there's a @rehash/@rehashx pair of magics. These work
3647 system, now there's a @rehash/@rehashx pair of magics. These work
3648 like the csh rehash command, and can be invoked at any time. They
3648 like the csh rehash command, and can be invoked at any time. They
3649 build a table of aliases to everything in the user's $PATH
3649 build a table of aliases to everything in the user's $PATH
3650 (@rehash uses everything, @rehashx is slower but only adds
3650 (@rehash uses everything, @rehashx is slower but only adds
3651 executable files). With this, the pysh.py-based shell profile can
3651 executable files). With this, the pysh.py-based shell profile can
3652 now simply call rehash upon startup, and full access to all
3652 now simply call rehash upon startup, and full access to all
3653 programs in the user's path is obtained.
3653 programs in the user's path is obtained.
3654
3654
3655 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3655 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3656 functionality is now fully in place. I removed the old dynamic
3656 functionality is now fully in place. I removed the old dynamic
3657 code generation based approach, in favor of a much lighter one
3657 code generation based approach, in favor of a much lighter one
3658 based on a simple dict. The advantage is that this allows me to
3658 based on a simple dict. The advantage is that this allows me to
3659 now have thousands of aliases with negligible cost (unthinkable
3659 now have thousands of aliases with negligible cost (unthinkable
3660 with the old system).
3660 with the old system).
3661
3661
3662 2004-06-19 Fernando Perez <fperez@colorado.edu>
3662 2004-06-19 Fernando Perez <fperez@colorado.edu>
3663
3663
3664 * IPython/iplib.py (__init__): extended MagicCompleter class to
3664 * IPython/iplib.py (__init__): extended MagicCompleter class to
3665 also complete (last in priority) on user aliases.
3665 also complete (last in priority) on user aliases.
3666
3666
3667 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3667 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3668 call to eval.
3668 call to eval.
3669 (ItplNS.__init__): Added a new class which functions like Itpl,
3669 (ItplNS.__init__): Added a new class which functions like Itpl,
3670 but allows configuring the namespace for the evaluation to occur
3670 but allows configuring the namespace for the evaluation to occur
3671 in.
3671 in.
3672
3672
3673 2004-06-18 Fernando Perez <fperez@colorado.edu>
3673 2004-06-18 Fernando Perez <fperez@colorado.edu>
3674
3674
3675 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3675 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3676 better message when 'exit' or 'quit' are typed (a common newbie
3676 better message when 'exit' or 'quit' are typed (a common newbie
3677 confusion).
3677 confusion).
3678
3678
3679 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3679 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3680 check for Windows users.
3680 check for Windows users.
3681
3681
3682 * IPython/iplib.py (InteractiveShell.user_setup): removed
3682 * IPython/iplib.py (InteractiveShell.user_setup): removed
3683 disabling of colors for Windows. I'll test at runtime and issue a
3683 disabling of colors for Windows. I'll test at runtime and issue a
3684 warning if Gary's readline isn't found, as to nudge users to
3684 warning if Gary's readline isn't found, as to nudge users to
3685 download it.
3685 download it.
3686
3686
3687 2004-06-16 Fernando Perez <fperez@colorado.edu>
3687 2004-06-16 Fernando Perez <fperez@colorado.edu>
3688
3688
3689 * IPython/genutils.py (Stream.__init__): changed to print errors
3689 * IPython/genutils.py (Stream.__init__): changed to print errors
3690 to sys.stderr. I had a circular dependency here. Now it's
3690 to sys.stderr. I had a circular dependency here. Now it's
3691 possible to run ipython as IDLE's shell (consider this pre-alpha,
3691 possible to run ipython as IDLE's shell (consider this pre-alpha,
3692 since true stdout things end up in the starting terminal instead
3692 since true stdout things end up in the starting terminal instead
3693 of IDLE's out).
3693 of IDLE's out).
3694
3694
3695 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3695 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3696 users who haven't # updated their prompt_in2 definitions. Remove
3696 users who haven't # updated their prompt_in2 definitions. Remove
3697 eventually.
3697 eventually.
3698 (multiple_replace): added credit to original ASPN recipe.
3698 (multiple_replace): added credit to original ASPN recipe.
3699
3699
3700 2004-06-15 Fernando Perez <fperez@colorado.edu>
3700 2004-06-15 Fernando Perez <fperez@colorado.edu>
3701
3701
3702 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3702 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3703 list of auto-defined aliases.
3703 list of auto-defined aliases.
3704
3704
3705 2004-06-13 Fernando Perez <fperez@colorado.edu>
3705 2004-06-13 Fernando Perez <fperez@colorado.edu>
3706
3706
3707 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3707 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3708 install was really requested (so setup.py can be used for other
3708 install was really requested (so setup.py can be used for other
3709 things under Windows).
3709 things under Windows).
3710
3710
3711 2004-06-10 Fernando Perez <fperez@colorado.edu>
3711 2004-06-10 Fernando Perez <fperez@colorado.edu>
3712
3712
3713 * IPython/Logger.py (Logger.create_log): Manually remove any old
3713 * IPython/Logger.py (Logger.create_log): Manually remove any old
3714 backup, since os.remove may fail under Windows. Fixes bug
3714 backup, since os.remove may fail under Windows. Fixes bug
3715 reported by Thorsten.
3715 reported by Thorsten.
3716
3716
3717 2004-06-09 Fernando Perez <fperez@colorado.edu>
3717 2004-06-09 Fernando Perez <fperez@colorado.edu>
3718
3718
3719 * examples/example-embed.py: fixed all references to %n (replaced
3719 * examples/example-embed.py: fixed all references to %n (replaced
3720 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3720 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3721 for all examples and the manual as well.
3721 for all examples and the manual as well.
3722
3722
3723 2004-06-08 Fernando Perez <fperez@colorado.edu>
3723 2004-06-08 Fernando Perez <fperez@colorado.edu>
3724
3724
3725 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3725 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3726 alignment and color management. All 3 prompt subsystems now
3726 alignment and color management. All 3 prompt subsystems now
3727 inherit from BasePrompt.
3727 inherit from BasePrompt.
3728
3728
3729 * tools/release: updates for windows installer build and tag rpms
3729 * tools/release: updates for windows installer build and tag rpms
3730 with python version (since paths are fixed).
3730 with python version (since paths are fixed).
3731
3731
3732 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3732 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3733 which will become eventually obsolete. Also fixed the default
3733 which will become eventually obsolete. Also fixed the default
3734 prompt_in2 to use \D, so at least new users start with the correct
3734 prompt_in2 to use \D, so at least new users start with the correct
3735 defaults.
3735 defaults.
3736 WARNING: Users with existing ipythonrc files will need to apply
3736 WARNING: Users with existing ipythonrc files will need to apply
3737 this fix manually!
3737 this fix manually!
3738
3738
3739 * setup.py: make windows installer (.exe). This is finally the
3739 * setup.py: make windows installer (.exe). This is finally the
3740 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3740 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3741 which I hadn't included because it required Python 2.3 (or recent
3741 which I hadn't included because it required Python 2.3 (or recent
3742 distutils).
3742 distutils).
3743
3743
3744 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3744 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3745 usage of new '\D' escape.
3745 usage of new '\D' escape.
3746
3746
3747 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3747 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3748 lacks os.getuid())
3748 lacks os.getuid())
3749 (CachedOutput.set_colors): Added the ability to turn coloring
3749 (CachedOutput.set_colors): Added the ability to turn coloring
3750 on/off with @colors even for manually defined prompt colors. It
3750 on/off with @colors even for manually defined prompt colors. It
3751 uses a nasty global, but it works safely and via the generic color
3751 uses a nasty global, but it works safely and via the generic color
3752 handling mechanism.
3752 handling mechanism.
3753 (Prompt2.__init__): Introduced new escape '\D' for continuation
3753 (Prompt2.__init__): Introduced new escape '\D' for continuation
3754 prompts. It represents the counter ('\#') as dots.
3754 prompts. It represents the counter ('\#') as dots.
3755 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3755 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3756 need to update their ipythonrc files and replace '%n' with '\D' in
3756 need to update their ipythonrc files and replace '%n' with '\D' in
3757 their prompt_in2 settings everywhere. Sorry, but there's
3757 their prompt_in2 settings everywhere. Sorry, but there's
3758 otherwise no clean way to get all prompts to properly align. The
3758 otherwise no clean way to get all prompts to properly align. The
3759 ipythonrc shipped with IPython has been updated.
3759 ipythonrc shipped with IPython has been updated.
3760
3760
3761 2004-06-07 Fernando Perez <fperez@colorado.edu>
3761 2004-06-07 Fernando Perez <fperez@colorado.edu>
3762
3762
3763 * setup.py (isfile): Pass local_icons option to latex2html, so the
3763 * setup.py (isfile): Pass local_icons option to latex2html, so the
3764 resulting HTML file is self-contained. Thanks to
3764 resulting HTML file is self-contained. Thanks to
3765 dryice-AT-liu.com.cn for the tip.
3765 dryice-AT-liu.com.cn for the tip.
3766
3766
3767 * pysh.py: I created a new profile 'shell', which implements a
3767 * pysh.py: I created a new profile 'shell', which implements a
3768 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3768 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3769 system shell, nor will it become one anytime soon. It's mainly
3769 system shell, nor will it become one anytime soon. It's mainly
3770 meant to illustrate the use of the new flexible bash-like prompts.
3770 meant to illustrate the use of the new flexible bash-like prompts.
3771 I guess it could be used by hardy souls for true shell management,
3771 I guess it could be used by hardy souls for true shell management,
3772 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3772 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3773 profile. This uses the InterpreterExec extension provided by
3773 profile. This uses the InterpreterExec extension provided by
3774 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3774 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3775
3775
3776 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3776 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3777 auto-align itself with the length of the previous input prompt
3777 auto-align itself with the length of the previous input prompt
3778 (taking into account the invisible color escapes).
3778 (taking into account the invisible color escapes).
3779 (CachedOutput.__init__): Large restructuring of this class. Now
3779 (CachedOutput.__init__): Large restructuring of this class. Now
3780 all three prompts (primary1, primary2, output) are proper objects,
3780 all three prompts (primary1, primary2, output) are proper objects,
3781 managed by the 'parent' CachedOutput class. The code is still a
3781 managed by the 'parent' CachedOutput class. The code is still a
3782 bit hackish (all prompts share state via a pointer to the cache),
3782 bit hackish (all prompts share state via a pointer to the cache),
3783 but it's overall far cleaner than before.
3783 but it's overall far cleaner than before.
3784
3784
3785 * IPython/genutils.py (getoutputerror): modified to add verbose,
3785 * IPython/genutils.py (getoutputerror): modified to add verbose,
3786 debug and header options. This makes the interface of all getout*
3786 debug and header options. This makes the interface of all getout*
3787 functions uniform.
3787 functions uniform.
3788 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3788 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3789
3789
3790 * IPython/Magic.py (Magic.default_option): added a function to
3790 * IPython/Magic.py (Magic.default_option): added a function to
3791 allow registering default options for any magic command. This
3791 allow registering default options for any magic command. This
3792 makes it easy to have profiles which customize the magics globally
3792 makes it easy to have profiles which customize the magics globally
3793 for a certain use. The values set through this function are
3793 for a certain use. The values set through this function are
3794 picked up by the parse_options() method, which all magics should
3794 picked up by the parse_options() method, which all magics should
3795 use to parse their options.
3795 use to parse their options.
3796
3796
3797 * IPython/genutils.py (warn): modified the warnings framework to
3797 * IPython/genutils.py (warn): modified the warnings framework to
3798 use the Term I/O class. I'm trying to slowly unify all of
3798 use the Term I/O class. I'm trying to slowly unify all of
3799 IPython's I/O operations to pass through Term.
3799 IPython's I/O operations to pass through Term.
3800
3800
3801 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3801 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3802 the secondary prompt to correctly match the length of the primary
3802 the secondary prompt to correctly match the length of the primary
3803 one for any prompt. Now multi-line code will properly line up
3803 one for any prompt. Now multi-line code will properly line up
3804 even for path dependent prompts, such as the new ones available
3804 even for path dependent prompts, such as the new ones available
3805 via the prompt_specials.
3805 via the prompt_specials.
3806
3806
3807 2004-06-06 Fernando Perez <fperez@colorado.edu>
3807 2004-06-06 Fernando Perez <fperez@colorado.edu>
3808
3808
3809 * IPython/Prompts.py (prompt_specials): Added the ability to have
3809 * IPython/Prompts.py (prompt_specials): Added the ability to have
3810 bash-like special sequences in the prompts, which get
3810 bash-like special sequences in the prompts, which get
3811 automatically expanded. Things like hostname, current working
3811 automatically expanded. Things like hostname, current working
3812 directory and username are implemented already, but it's easy to
3812 directory and username are implemented already, but it's easy to
3813 add more in the future. Thanks to a patch by W.J. van der Laan
3813 add more in the future. Thanks to a patch by W.J. van der Laan
3814 <gnufnork-AT-hetdigitalegat.nl>
3814 <gnufnork-AT-hetdigitalegat.nl>
3815 (prompt_specials): Added color support for prompt strings, so
3815 (prompt_specials): Added color support for prompt strings, so
3816 users can define arbitrary color setups for their prompts.
3816 users can define arbitrary color setups for their prompts.
3817
3817
3818 2004-06-05 Fernando Perez <fperez@colorado.edu>
3818 2004-06-05 Fernando Perez <fperez@colorado.edu>
3819
3819
3820 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3820 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3821 code to load Gary Bishop's readline and configure it
3821 code to load Gary Bishop's readline and configure it
3822 automatically. Thanks to Gary for help on this.
3822 automatically. Thanks to Gary for help on this.
3823
3823
3824 2004-06-01 Fernando Perez <fperez@colorado.edu>
3824 2004-06-01 Fernando Perez <fperez@colorado.edu>
3825
3825
3826 * IPython/Logger.py (Logger.create_log): fix bug for logging
3826 * IPython/Logger.py (Logger.create_log): fix bug for logging
3827 with no filename (previous fix was incomplete).
3827 with no filename (previous fix was incomplete).
3828
3828
3829 2004-05-25 Fernando Perez <fperez@colorado.edu>
3829 2004-05-25 Fernando Perez <fperez@colorado.edu>
3830
3830
3831 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3831 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3832 parens would get passed to the shell.
3832 parens would get passed to the shell.
3833
3833
3834 2004-05-20 Fernando Perez <fperez@colorado.edu>
3834 2004-05-20 Fernando Perez <fperez@colorado.edu>
3835
3835
3836 * IPython/Magic.py (Magic.magic_prun): changed default profile
3836 * IPython/Magic.py (Magic.magic_prun): changed default profile
3837 sort order to 'time' (the more common profiling need).
3837 sort order to 'time' (the more common profiling need).
3838
3838
3839 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3839 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3840 so that source code shown is guaranteed in sync with the file on
3840 so that source code shown is guaranteed in sync with the file on
3841 disk (also changed in psource). Similar fix to the one for
3841 disk (also changed in psource). Similar fix to the one for
3842 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3842 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3843 <yann.ledu-AT-noos.fr>.
3843 <yann.ledu-AT-noos.fr>.
3844
3844
3845 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3845 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3846 with a single option would not be correctly parsed. Closes
3846 with a single option would not be correctly parsed. Closes
3847 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3847 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3848 introduced in 0.6.0 (on 2004-05-06).
3848 introduced in 0.6.0 (on 2004-05-06).
3849
3849
3850 2004-05-13 *** Released version 0.6.0
3850 2004-05-13 *** Released version 0.6.0
3851
3851
3852 2004-05-13 Fernando Perez <fperez@colorado.edu>
3852 2004-05-13 Fernando Perez <fperez@colorado.edu>
3853
3853
3854 * debian/: Added debian/ directory to CVS, so that debian support
3854 * debian/: Added debian/ directory to CVS, so that debian support
3855 is publicly accessible. The debian package is maintained by Jack
3855 is publicly accessible. The debian package is maintained by Jack
3856 Moffit <jack-AT-xiph.org>.
3856 Moffit <jack-AT-xiph.org>.
3857
3857
3858 * Documentation: included the notes about an ipython-based system
3858 * Documentation: included the notes about an ipython-based system
3859 shell (the hypothetical 'pysh') into the new_design.pdf document,
3859 shell (the hypothetical 'pysh') into the new_design.pdf document,
3860 so that these ideas get distributed to users along with the
3860 so that these ideas get distributed to users along with the
3861 official documentation.
3861 official documentation.
3862
3862
3863 2004-05-10 Fernando Perez <fperez@colorado.edu>
3863 2004-05-10 Fernando Perez <fperez@colorado.edu>
3864
3864
3865 * IPython/Logger.py (Logger.create_log): fix recently introduced
3865 * IPython/Logger.py (Logger.create_log): fix recently introduced
3866 bug (misindented line) where logstart would fail when not given an
3866 bug (misindented line) where logstart would fail when not given an
3867 explicit filename.
3867 explicit filename.
3868
3868
3869 2004-05-09 Fernando Perez <fperez@colorado.edu>
3869 2004-05-09 Fernando Perez <fperez@colorado.edu>
3870
3870
3871 * IPython/Magic.py (Magic.parse_options): skip system call when
3871 * IPython/Magic.py (Magic.parse_options): skip system call when
3872 there are no options to look for. Faster, cleaner for the common
3872 there are no options to look for. Faster, cleaner for the common
3873 case.
3873 case.
3874
3874
3875 * Documentation: many updates to the manual: describing Windows
3875 * Documentation: many updates to the manual: describing Windows
3876 support better, Gnuplot updates, credits, misc small stuff. Also
3876 support better, Gnuplot updates, credits, misc small stuff. Also
3877 updated the new_design doc a bit.
3877 updated the new_design doc a bit.
3878
3878
3879 2004-05-06 *** Released version 0.6.0.rc1
3879 2004-05-06 *** Released version 0.6.0.rc1
3880
3880
3881 2004-05-06 Fernando Perez <fperez@colorado.edu>
3881 2004-05-06 Fernando Perez <fperez@colorado.edu>
3882
3882
3883 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3883 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3884 operations to use the vastly more efficient list/''.join() method.
3884 operations to use the vastly more efficient list/''.join() method.
3885 (FormattedTB.text): Fix
3885 (FormattedTB.text): Fix
3886 http://www.scipy.net/roundup/ipython/issue12 - exception source
3886 http://www.scipy.net/roundup/ipython/issue12 - exception source
3887 extract not updated after reload. Thanks to Mike Salib
3887 extract not updated after reload. Thanks to Mike Salib
3888 <msalib-AT-mit.edu> for pinning the source of the problem.
3888 <msalib-AT-mit.edu> for pinning the source of the problem.
3889 Fortunately, the solution works inside ipython and doesn't require
3889 Fortunately, the solution works inside ipython and doesn't require
3890 any changes to python proper.
3890 any changes to python proper.
3891
3891
3892 * IPython/Magic.py (Magic.parse_options): Improved to process the
3892 * IPython/Magic.py (Magic.parse_options): Improved to process the
3893 argument list as a true shell would (by actually using the
3893 argument list as a true shell would (by actually using the
3894 underlying system shell). This way, all @magics automatically get
3894 underlying system shell). This way, all @magics automatically get
3895 shell expansion for variables. Thanks to a comment by Alex
3895 shell expansion for variables. Thanks to a comment by Alex
3896 Schmolck.
3896 Schmolck.
3897
3897
3898 2004-04-04 Fernando Perez <fperez@colorado.edu>
3898 2004-04-04 Fernando Perez <fperez@colorado.edu>
3899
3899
3900 * IPython/iplib.py (InteractiveShell.interact): Added a special
3900 * IPython/iplib.py (InteractiveShell.interact): Added a special
3901 trap for a debugger quit exception, which is basically impossible
3901 trap for a debugger quit exception, which is basically impossible
3902 to handle by normal mechanisms, given what pdb does to the stack.
3902 to handle by normal mechanisms, given what pdb does to the stack.
3903 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3903 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3904
3904
3905 2004-04-03 Fernando Perez <fperez@colorado.edu>
3905 2004-04-03 Fernando Perez <fperez@colorado.edu>
3906
3906
3907 * IPython/genutils.py (Term): Standardized the names of the Term
3907 * IPython/genutils.py (Term): Standardized the names of the Term
3908 class streams to cin/cout/cerr, following C++ naming conventions
3908 class streams to cin/cout/cerr, following C++ naming conventions
3909 (I can't use in/out/err because 'in' is not a valid attribute
3909 (I can't use in/out/err because 'in' is not a valid attribute
3910 name).
3910 name).
3911
3911
3912 * IPython/iplib.py (InteractiveShell.interact): don't increment
3912 * IPython/iplib.py (InteractiveShell.interact): don't increment
3913 the prompt if there's no user input. By Daniel 'Dang' Griffith
3913 the prompt if there's no user input. By Daniel 'Dang' Griffith
3914 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3914 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3915 Francois Pinard.
3915 Francois Pinard.
3916
3916
3917 2004-04-02 Fernando Perez <fperez@colorado.edu>
3917 2004-04-02 Fernando Perez <fperez@colorado.edu>
3918
3918
3919 * IPython/genutils.py (Stream.__init__): Modified to survive at
3919 * IPython/genutils.py (Stream.__init__): Modified to survive at
3920 least importing in contexts where stdin/out/err aren't true file
3920 least importing in contexts where stdin/out/err aren't true file
3921 objects, such as PyCrust (they lack fileno() and mode). However,
3921 objects, such as PyCrust (they lack fileno() and mode). However,
3922 the recovery facilities which rely on these things existing will
3922 the recovery facilities which rely on these things existing will
3923 not work.
3923 not work.
3924
3924
3925 2004-04-01 Fernando Perez <fperez@colorado.edu>
3925 2004-04-01 Fernando Perez <fperez@colorado.edu>
3926
3926
3927 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3927 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3928 use the new getoutputerror() function, so it properly
3928 use the new getoutputerror() function, so it properly
3929 distinguishes stdout/err.
3929 distinguishes stdout/err.
3930
3930
3931 * IPython/genutils.py (getoutputerror): added a function to
3931 * IPython/genutils.py (getoutputerror): added a function to
3932 capture separately the standard output and error of a command.
3932 capture separately the standard output and error of a command.
3933 After a comment from dang on the mailing lists. This code is
3933 After a comment from dang on the mailing lists. This code is
3934 basically a modified version of commands.getstatusoutput(), from
3934 basically a modified version of commands.getstatusoutput(), from
3935 the standard library.
3935 the standard library.
3936
3936
3937 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3937 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3938 '!!' as a special syntax (shorthand) to access @sx.
3938 '!!' as a special syntax (shorthand) to access @sx.
3939
3939
3940 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3940 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3941 command and return its output as a list split on '\n'.
3941 command and return its output as a list split on '\n'.
3942
3942
3943 2004-03-31 Fernando Perez <fperez@colorado.edu>
3943 2004-03-31 Fernando Perez <fperez@colorado.edu>
3944
3944
3945 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3945 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3946 method to dictionaries used as FakeModule instances if they lack
3946 method to dictionaries used as FakeModule instances if they lack
3947 it. At least pydoc in python2.3 breaks for runtime-defined
3947 it. At least pydoc in python2.3 breaks for runtime-defined
3948 functions without this hack. At some point I need to _really_
3948 functions without this hack. At some point I need to _really_
3949 understand what FakeModule is doing, because it's a gross hack.
3949 understand what FakeModule is doing, because it's a gross hack.
3950 But it solves Arnd's problem for now...
3950 But it solves Arnd's problem for now...
3951
3951
3952 2004-02-27 Fernando Perez <fperez@colorado.edu>
3952 2004-02-27 Fernando Perez <fperez@colorado.edu>
3953
3953
3954 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3954 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3955 mode would behave erratically. Also increased the number of
3955 mode would behave erratically. Also increased the number of
3956 possible logs in rotate mod to 999. Thanks to Rod Holland
3956 possible logs in rotate mod to 999. Thanks to Rod Holland
3957 <rhh@StructureLABS.com> for the report and fixes.
3957 <rhh@StructureLABS.com> for the report and fixes.
3958
3958
3959 2004-02-26 Fernando Perez <fperez@colorado.edu>
3959 2004-02-26 Fernando Perez <fperez@colorado.edu>
3960
3960
3961 * IPython/genutils.py (page): Check that the curses module really
3961 * IPython/genutils.py (page): Check that the curses module really
3962 has the initscr attribute before trying to use it. For some
3962 has the initscr attribute before trying to use it. For some
3963 reason, the Solaris curses module is missing this. I think this
3963 reason, the Solaris curses module is missing this. I think this
3964 should be considered a Solaris python bug, but I'm not sure.
3964 should be considered a Solaris python bug, but I'm not sure.
3965
3965
3966 2004-01-17 Fernando Perez <fperez@colorado.edu>
3966 2004-01-17 Fernando Perez <fperez@colorado.edu>
3967
3967
3968 * IPython/genutils.py (Stream.__init__): Changes to try to make
3968 * IPython/genutils.py (Stream.__init__): Changes to try to make
3969 ipython robust against stdin/out/err being closed by the user.
3969 ipython robust against stdin/out/err being closed by the user.
3970 This is 'user error' (and blocks a normal python session, at least
3970 This is 'user error' (and blocks a normal python session, at least
3971 the stdout case). However, Ipython should be able to survive such
3971 the stdout case). However, Ipython should be able to survive such
3972 instances of abuse as gracefully as possible. To simplify the
3972 instances of abuse as gracefully as possible. To simplify the
3973 coding and maintain compatibility with Gary Bishop's Term
3973 coding and maintain compatibility with Gary Bishop's Term
3974 contributions, I've made use of classmethods for this. I think
3974 contributions, I've made use of classmethods for this. I think
3975 this introduces a dependency on python 2.2.
3975 this introduces a dependency on python 2.2.
3976
3976
3977 2004-01-13 Fernando Perez <fperez@colorado.edu>
3977 2004-01-13 Fernando Perez <fperez@colorado.edu>
3978
3978
3979 * IPython/numutils.py (exp_safe): simplified the code a bit and
3979 * IPython/numutils.py (exp_safe): simplified the code a bit and
3980 removed the need for importing the kinds module altogether.
3980 removed the need for importing the kinds module altogether.
3981
3981
3982 2004-01-06 Fernando Perez <fperez@colorado.edu>
3982 2004-01-06 Fernando Perez <fperez@colorado.edu>
3983
3983
3984 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3984 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3985 a magic function instead, after some community feedback. No
3985 a magic function instead, after some community feedback. No
3986 special syntax will exist for it, but its name is deliberately
3986 special syntax will exist for it, but its name is deliberately
3987 very short.
3987 very short.
3988
3988
3989 2003-12-20 Fernando Perez <fperez@colorado.edu>
3989 2003-12-20 Fernando Perez <fperez@colorado.edu>
3990
3990
3991 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3991 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3992 new functionality, to automagically assign the result of a shell
3992 new functionality, to automagically assign the result of a shell
3993 command to a variable. I'll solicit some community feedback on
3993 command to a variable. I'll solicit some community feedback on
3994 this before making it permanent.
3994 this before making it permanent.
3995
3995
3996 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3996 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3997 requested about callables for which inspect couldn't obtain a
3997 requested about callables for which inspect couldn't obtain a
3998 proper argspec. Thanks to a crash report sent by Etienne
3998 proper argspec. Thanks to a crash report sent by Etienne
3999 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3999 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4000
4000
4001 2003-12-09 Fernando Perez <fperez@colorado.edu>
4001 2003-12-09 Fernando Perez <fperez@colorado.edu>
4002
4002
4003 * IPython/genutils.py (page): patch for the pager to work across
4003 * IPython/genutils.py (page): patch for the pager to work across
4004 various versions of Windows. By Gary Bishop.
4004 various versions of Windows. By Gary Bishop.
4005
4005
4006 2003-12-04 Fernando Perez <fperez@colorado.edu>
4006 2003-12-04 Fernando Perez <fperez@colorado.edu>
4007
4007
4008 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4008 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4009 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4009 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4010 While I tested this and it looks ok, there may still be corner
4010 While I tested this and it looks ok, there may still be corner
4011 cases I've missed.
4011 cases I've missed.
4012
4012
4013 2003-12-01 Fernando Perez <fperez@colorado.edu>
4013 2003-12-01 Fernando Perez <fperez@colorado.edu>
4014
4014
4015 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4015 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4016 where a line like 'p,q=1,2' would fail because the automagic
4016 where a line like 'p,q=1,2' would fail because the automagic
4017 system would be triggered for @p.
4017 system would be triggered for @p.
4018
4018
4019 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4019 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4020 cleanups, code unmodified.
4020 cleanups, code unmodified.
4021
4021
4022 * IPython/genutils.py (Term): added a class for IPython to handle
4022 * IPython/genutils.py (Term): added a class for IPython to handle
4023 output. In most cases it will just be a proxy for stdout/err, but
4023 output. In most cases it will just be a proxy for stdout/err, but
4024 having this allows modifications to be made for some platforms,
4024 having this allows modifications to be made for some platforms,
4025 such as handling color escapes under Windows. All of this code
4025 such as handling color escapes under Windows. All of this code
4026 was contributed by Gary Bishop, with minor modifications by me.
4026 was contributed by Gary Bishop, with minor modifications by me.
4027 The actual changes affect many files.
4027 The actual changes affect many files.
4028
4028
4029 2003-11-30 Fernando Perez <fperez@colorado.edu>
4029 2003-11-30 Fernando Perez <fperez@colorado.edu>
4030
4030
4031 * IPython/iplib.py (file_matches): new completion code, courtesy
4031 * IPython/iplib.py (file_matches): new completion code, courtesy
4032 of Jeff Collins. This enables filename completion again under
4032 of Jeff Collins. This enables filename completion again under
4033 python 2.3, which disabled it at the C level.
4033 python 2.3, which disabled it at the C level.
4034
4034
4035 2003-11-11 Fernando Perez <fperez@colorado.edu>
4035 2003-11-11 Fernando Perez <fperez@colorado.edu>
4036
4036
4037 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4037 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4038 for Numeric.array(map(...)), but often convenient.
4038 for Numeric.array(map(...)), but often convenient.
4039
4039
4040 2003-11-05 Fernando Perez <fperez@colorado.edu>
4040 2003-11-05 Fernando Perez <fperez@colorado.edu>
4041
4041
4042 * IPython/numutils.py (frange): Changed a call from int() to
4042 * IPython/numutils.py (frange): Changed a call from int() to
4043 int(round()) to prevent a problem reported with arange() in the
4043 int(round()) to prevent a problem reported with arange() in the
4044 numpy list.
4044 numpy list.
4045
4045
4046 2003-10-06 Fernando Perez <fperez@colorado.edu>
4046 2003-10-06 Fernando Perez <fperez@colorado.edu>
4047
4047
4048 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4048 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4049 prevent crashes if sys lacks an argv attribute (it happens with
4049 prevent crashes if sys lacks an argv attribute (it happens with
4050 embedded interpreters which build a bare-bones sys module).
4050 embedded interpreters which build a bare-bones sys module).
4051 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4051 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4052
4052
4053 2003-09-24 Fernando Perez <fperez@colorado.edu>
4053 2003-09-24 Fernando Perez <fperez@colorado.edu>
4054
4054
4055 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4055 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4056 to protect against poorly written user objects where __getattr__
4056 to protect against poorly written user objects where __getattr__
4057 raises exceptions other than AttributeError. Thanks to a bug
4057 raises exceptions other than AttributeError. Thanks to a bug
4058 report by Oliver Sander <osander-AT-gmx.de>.
4058 report by Oliver Sander <osander-AT-gmx.de>.
4059
4059
4060 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4060 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4061 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4061 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4062
4062
4063 2003-09-09 Fernando Perez <fperez@colorado.edu>
4063 2003-09-09 Fernando Perez <fperez@colorado.edu>
4064
4064
4065 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4065 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4066 unpacking a list whith a callable as first element would
4066 unpacking a list whith a callable as first element would
4067 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4067 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4068 Collins.
4068 Collins.
4069
4069
4070 2003-08-25 *** Released version 0.5.0
4070 2003-08-25 *** Released version 0.5.0
4071
4071
4072 2003-08-22 Fernando Perez <fperez@colorado.edu>
4072 2003-08-22 Fernando Perez <fperez@colorado.edu>
4073
4073
4074 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4074 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4075 improperly defined user exceptions. Thanks to feedback from Mark
4075 improperly defined user exceptions. Thanks to feedback from Mark
4076 Russell <mrussell-AT-verio.net>.
4076 Russell <mrussell-AT-verio.net>.
4077
4077
4078 2003-08-20 Fernando Perez <fperez@colorado.edu>
4078 2003-08-20 Fernando Perez <fperez@colorado.edu>
4079
4079
4080 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4080 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4081 printing so that it would print multi-line string forms starting
4081 printing so that it would print multi-line string forms starting
4082 with a new line. This way the formatting is better respected for
4082 with a new line. This way the formatting is better respected for
4083 objects which work hard to make nice string forms.
4083 objects which work hard to make nice string forms.
4084
4084
4085 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4085 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4086 autocall would overtake data access for objects with both
4086 autocall would overtake data access for objects with both
4087 __getitem__ and __call__.
4087 __getitem__ and __call__.
4088
4088
4089 2003-08-19 *** Released version 0.5.0-rc1
4089 2003-08-19 *** Released version 0.5.0-rc1
4090
4090
4091 2003-08-19 Fernando Perez <fperez@colorado.edu>
4091 2003-08-19 Fernando Perez <fperez@colorado.edu>
4092
4092
4093 * IPython/deep_reload.py (load_tail): single tiny change here
4093 * IPython/deep_reload.py (load_tail): single tiny change here
4094 seems to fix the long-standing bug of dreload() failing to work
4094 seems to fix the long-standing bug of dreload() failing to work
4095 for dotted names. But this module is pretty tricky, so I may have
4095 for dotted names. But this module is pretty tricky, so I may have
4096 missed some subtlety. Needs more testing!.
4096 missed some subtlety. Needs more testing!.
4097
4097
4098 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4098 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4099 exceptions which have badly implemented __str__ methods.
4099 exceptions which have badly implemented __str__ methods.
4100 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4100 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4101 which I've been getting reports about from Python 2.3 users. I
4101 which I've been getting reports about from Python 2.3 users. I
4102 wish I had a simple test case to reproduce the problem, so I could
4102 wish I had a simple test case to reproduce the problem, so I could
4103 either write a cleaner workaround or file a bug report if
4103 either write a cleaner workaround or file a bug report if
4104 necessary.
4104 necessary.
4105
4105
4106 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4106 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4107 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4107 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4108 a bug report by Tjabo Kloppenburg.
4108 a bug report by Tjabo Kloppenburg.
4109
4109
4110 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4110 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4111 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4111 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4112 seems rather unstable. Thanks to a bug report by Tjabo
4112 seems rather unstable. Thanks to a bug report by Tjabo
4113 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4113 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4114
4114
4115 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4115 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4116 this out soon because of the critical fixes in the inner loop for
4116 this out soon because of the critical fixes in the inner loop for
4117 generators.
4117 generators.
4118
4118
4119 * IPython/Magic.py (Magic.getargspec): removed. This (and
4119 * IPython/Magic.py (Magic.getargspec): removed. This (and
4120 _get_def) have been obsoleted by OInspect for a long time, I
4120 _get_def) have been obsoleted by OInspect for a long time, I
4121 hadn't noticed that they were dead code.
4121 hadn't noticed that they were dead code.
4122 (Magic._ofind): restored _ofind functionality for a few literals
4122 (Magic._ofind): restored _ofind functionality for a few literals
4123 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4123 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4124 for things like "hello".capitalize?, since that would require a
4124 for things like "hello".capitalize?, since that would require a
4125 potentially dangerous eval() again.
4125 potentially dangerous eval() again.
4126
4126
4127 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4127 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4128 logic a bit more to clean up the escapes handling and minimize the
4128 logic a bit more to clean up the escapes handling and minimize the
4129 use of _ofind to only necessary cases. The interactive 'feel' of
4129 use of _ofind to only necessary cases. The interactive 'feel' of
4130 IPython should have improved quite a bit with the changes in
4130 IPython should have improved quite a bit with the changes in
4131 _prefilter and _ofind (besides being far safer than before).
4131 _prefilter and _ofind (besides being far safer than before).
4132
4132
4133 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4133 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4134 obscure, never reported). Edit would fail to find the object to
4134 obscure, never reported). Edit would fail to find the object to
4135 edit under some circumstances.
4135 edit under some circumstances.
4136 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4136 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4137 which were causing double-calling of generators. Those eval calls
4137 which were causing double-calling of generators. Those eval calls
4138 were _very_ dangerous, since code with side effects could be
4138 were _very_ dangerous, since code with side effects could be
4139 triggered. As they say, 'eval is evil'... These were the
4139 triggered. As they say, 'eval is evil'... These were the
4140 nastiest evals in IPython. Besides, _ofind is now far simpler,
4140 nastiest evals in IPython. Besides, _ofind is now far simpler,
4141 and it should also be quite a bit faster. Its use of inspect is
4141 and it should also be quite a bit faster. Its use of inspect is
4142 also safer, so perhaps some of the inspect-related crashes I've
4142 also safer, so perhaps some of the inspect-related crashes I've
4143 seen lately with Python 2.3 might be taken care of. That will
4143 seen lately with Python 2.3 might be taken care of. That will
4144 need more testing.
4144 need more testing.
4145
4145
4146 2003-08-17 Fernando Perez <fperez@colorado.edu>
4146 2003-08-17 Fernando Perez <fperez@colorado.edu>
4147
4147
4148 * IPython/iplib.py (InteractiveShell._prefilter): significant
4148 * IPython/iplib.py (InteractiveShell._prefilter): significant
4149 simplifications to the logic for handling user escapes. Faster
4149 simplifications to the logic for handling user escapes. Faster
4150 and simpler code.
4150 and simpler code.
4151
4151
4152 2003-08-14 Fernando Perez <fperez@colorado.edu>
4152 2003-08-14 Fernando Perez <fperez@colorado.edu>
4153
4153
4154 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4154 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4155 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4155 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4156 but it should be quite a bit faster. And the recursive version
4156 but it should be quite a bit faster. And the recursive version
4157 generated O(log N) intermediate storage for all rank>1 arrays,
4157 generated O(log N) intermediate storage for all rank>1 arrays,
4158 even if they were contiguous.
4158 even if they were contiguous.
4159 (l1norm): Added this function.
4159 (l1norm): Added this function.
4160 (norm): Added this function for arbitrary norms (including
4160 (norm): Added this function for arbitrary norms (including
4161 l-infinity). l1 and l2 are still special cases for convenience
4161 l-infinity). l1 and l2 are still special cases for convenience
4162 and speed.
4162 and speed.
4163
4163
4164 2003-08-03 Fernando Perez <fperez@colorado.edu>
4164 2003-08-03 Fernando Perez <fperez@colorado.edu>
4165
4165
4166 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4166 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4167 exceptions, which now raise PendingDeprecationWarnings in Python
4167 exceptions, which now raise PendingDeprecationWarnings in Python
4168 2.3. There were some in Magic and some in Gnuplot2.
4168 2.3. There were some in Magic and some in Gnuplot2.
4169
4169
4170 2003-06-30 Fernando Perez <fperez@colorado.edu>
4170 2003-06-30 Fernando Perez <fperez@colorado.edu>
4171
4171
4172 * IPython/genutils.py (page): modified to call curses only for
4172 * IPython/genutils.py (page): modified to call curses only for
4173 terminals where TERM=='xterm'. After problems under many other
4173 terminals where TERM=='xterm'. After problems under many other
4174 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4174 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4175
4175
4176 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4176 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4177 would be triggered when readline was absent. This was just an old
4177 would be triggered when readline was absent. This was just an old
4178 debugging statement I'd forgotten to take out.
4178 debugging statement I'd forgotten to take out.
4179
4179
4180 2003-06-20 Fernando Perez <fperez@colorado.edu>
4180 2003-06-20 Fernando Perez <fperez@colorado.edu>
4181
4181
4182 * IPython/genutils.py (clock): modified to return only user time
4182 * IPython/genutils.py (clock): modified to return only user time
4183 (not counting system time), after a discussion on scipy. While
4183 (not counting system time), after a discussion on scipy. While
4184 system time may be a useful quantity occasionally, it may much
4184 system time may be a useful quantity occasionally, it may much
4185 more easily be skewed by occasional swapping or other similar
4185 more easily be skewed by occasional swapping or other similar
4186 activity.
4186 activity.
4187
4187
4188 2003-06-05 Fernando Perez <fperez@colorado.edu>
4188 2003-06-05 Fernando Perez <fperez@colorado.edu>
4189
4189
4190 * IPython/numutils.py (identity): new function, for building
4190 * IPython/numutils.py (identity): new function, for building
4191 arbitrary rank Kronecker deltas (mostly backwards compatible with
4191 arbitrary rank Kronecker deltas (mostly backwards compatible with
4192 Numeric.identity)
4192 Numeric.identity)
4193
4193
4194 2003-06-03 Fernando Perez <fperez@colorado.edu>
4194 2003-06-03 Fernando Perez <fperez@colorado.edu>
4195
4195
4196 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4196 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4197 arguments passed to magics with spaces, to allow trailing '\' to
4197 arguments passed to magics with spaces, to allow trailing '\' to
4198 work normally (mainly for Windows users).
4198 work normally (mainly for Windows users).
4199
4199
4200 2003-05-29 Fernando Perez <fperez@colorado.edu>
4200 2003-05-29 Fernando Perez <fperez@colorado.edu>
4201
4201
4202 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4202 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4203 instead of pydoc.help. This fixes a bizarre behavior where
4203 instead of pydoc.help. This fixes a bizarre behavior where
4204 printing '%s' % locals() would trigger the help system. Now
4204 printing '%s' % locals() would trigger the help system. Now
4205 ipython behaves like normal python does.
4205 ipython behaves like normal python does.
4206
4206
4207 Note that if one does 'from pydoc import help', the bizarre
4207 Note that if one does 'from pydoc import help', the bizarre
4208 behavior returns, but this will also happen in normal python, so
4208 behavior returns, but this will also happen in normal python, so
4209 it's not an ipython bug anymore (it has to do with how pydoc.help
4209 it's not an ipython bug anymore (it has to do with how pydoc.help
4210 is implemented).
4210 is implemented).
4211
4211
4212 2003-05-22 Fernando Perez <fperez@colorado.edu>
4212 2003-05-22 Fernando Perez <fperez@colorado.edu>
4213
4213
4214 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4214 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4215 return [] instead of None when nothing matches, also match to end
4215 return [] instead of None when nothing matches, also match to end
4216 of line. Patch by Gary Bishop.
4216 of line. Patch by Gary Bishop.
4217
4217
4218 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4218 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4219 protection as before, for files passed on the command line. This
4219 protection as before, for files passed on the command line. This
4220 prevents the CrashHandler from kicking in if user files call into
4220 prevents the CrashHandler from kicking in if user files call into
4221 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4221 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4222 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4222 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4223
4223
4224 2003-05-20 *** Released version 0.4.0
4224 2003-05-20 *** Released version 0.4.0
4225
4225
4226 2003-05-20 Fernando Perez <fperez@colorado.edu>
4226 2003-05-20 Fernando Perez <fperez@colorado.edu>
4227
4227
4228 * setup.py: added support for manpages. It's a bit hackish b/c of
4228 * setup.py: added support for manpages. It's a bit hackish b/c of
4229 a bug in the way the bdist_rpm distutils target handles gzipped
4229 a bug in the way the bdist_rpm distutils target handles gzipped
4230 manpages, but it works. After a patch by Jack.
4230 manpages, but it works. After a patch by Jack.
4231
4231
4232 2003-05-19 Fernando Perez <fperez@colorado.edu>
4232 2003-05-19 Fernando Perez <fperez@colorado.edu>
4233
4233
4234 * IPython/numutils.py: added a mockup of the kinds module, since
4234 * IPython/numutils.py: added a mockup of the kinds module, since
4235 it was recently removed from Numeric. This way, numutils will
4235 it was recently removed from Numeric. This way, numutils will
4236 work for all users even if they are missing kinds.
4236 work for all users even if they are missing kinds.
4237
4237
4238 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4238 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4239 failure, which can occur with SWIG-wrapped extensions. After a
4239 failure, which can occur with SWIG-wrapped extensions. After a
4240 crash report from Prabhu.
4240 crash report from Prabhu.
4241
4241
4242 2003-05-16 Fernando Perez <fperez@colorado.edu>
4242 2003-05-16 Fernando Perez <fperez@colorado.edu>
4243
4243
4244 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4244 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4245 protect ipython from user code which may call directly
4245 protect ipython from user code which may call directly
4246 sys.excepthook (this looks like an ipython crash to the user, even
4246 sys.excepthook (this looks like an ipython crash to the user, even
4247 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4247 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4248 This is especially important to help users of WxWindows, but may
4248 This is especially important to help users of WxWindows, but may
4249 also be useful in other cases.
4249 also be useful in other cases.
4250
4250
4251 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4251 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4252 an optional tb_offset to be specified, and to preserve exception
4252 an optional tb_offset to be specified, and to preserve exception
4253 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4253 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4254
4254
4255 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4255 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4256
4256
4257 2003-05-15 Fernando Perez <fperez@colorado.edu>
4257 2003-05-15 Fernando Perez <fperez@colorado.edu>
4258
4258
4259 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4259 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4260 installing for a new user under Windows.
4260 installing for a new user under Windows.
4261
4261
4262 2003-05-12 Fernando Perez <fperez@colorado.edu>
4262 2003-05-12 Fernando Perez <fperez@colorado.edu>
4263
4263
4264 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4264 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4265 handler for Emacs comint-based lines. Currently it doesn't do
4265 handler for Emacs comint-based lines. Currently it doesn't do
4266 much (but importantly, it doesn't update the history cache). In
4266 much (but importantly, it doesn't update the history cache). In
4267 the future it may be expanded if Alex needs more functionality
4267 the future it may be expanded if Alex needs more functionality
4268 there.
4268 there.
4269
4269
4270 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4270 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4271 info to crash reports.
4271 info to crash reports.
4272
4272
4273 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4273 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4274 just like Python's -c. Also fixed crash with invalid -color
4274 just like Python's -c. Also fixed crash with invalid -color
4275 option value at startup. Thanks to Will French
4275 option value at startup. Thanks to Will French
4276 <wfrench-AT-bestweb.net> for the bug report.
4276 <wfrench-AT-bestweb.net> for the bug report.
4277
4277
4278 2003-05-09 Fernando Perez <fperez@colorado.edu>
4278 2003-05-09 Fernando Perez <fperez@colorado.edu>
4279
4279
4280 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4280 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4281 to EvalDict (it's a mapping, after all) and simplified its code
4281 to EvalDict (it's a mapping, after all) and simplified its code
4282 quite a bit, after a nice discussion on c.l.py where Gustavo
4282 quite a bit, after a nice discussion on c.l.py where Gustavo
4283 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4283 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4284
4284
4285 2003-04-30 Fernando Perez <fperez@colorado.edu>
4285 2003-04-30 Fernando Perez <fperez@colorado.edu>
4286
4286
4287 * IPython/genutils.py (timings_out): modified it to reduce its
4287 * IPython/genutils.py (timings_out): modified it to reduce its
4288 overhead in the common reps==1 case.
4288 overhead in the common reps==1 case.
4289
4289
4290 2003-04-29 Fernando Perez <fperez@colorado.edu>
4290 2003-04-29 Fernando Perez <fperez@colorado.edu>
4291
4291
4292 * IPython/genutils.py (timings_out): Modified to use the resource
4292 * IPython/genutils.py (timings_out): Modified to use the resource
4293 module, which avoids the wraparound problems of time.clock().
4293 module, which avoids the wraparound problems of time.clock().
4294
4294
4295 2003-04-17 *** Released version 0.2.15pre4
4295 2003-04-17 *** Released version 0.2.15pre4
4296
4296
4297 2003-04-17 Fernando Perez <fperez@colorado.edu>
4297 2003-04-17 Fernando Perez <fperez@colorado.edu>
4298
4298
4299 * setup.py (scriptfiles): Split windows-specific stuff over to a
4299 * setup.py (scriptfiles): Split windows-specific stuff over to a
4300 separate file, in an attempt to have a Windows GUI installer.
4300 separate file, in an attempt to have a Windows GUI installer.
4301 That didn't work, but part of the groundwork is done.
4301 That didn't work, but part of the groundwork is done.
4302
4302
4303 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4303 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4304 indent/unindent with 4 spaces. Particularly useful in combination
4304 indent/unindent with 4 spaces. Particularly useful in combination
4305 with the new auto-indent option.
4305 with the new auto-indent option.
4306
4306
4307 2003-04-16 Fernando Perez <fperez@colorado.edu>
4307 2003-04-16 Fernando Perez <fperez@colorado.edu>
4308
4308
4309 * IPython/Magic.py: various replacements of self.rc for
4309 * IPython/Magic.py: various replacements of self.rc for
4310 self.shell.rc. A lot more remains to be done to fully disentangle
4310 self.shell.rc. A lot more remains to be done to fully disentangle
4311 this class from the main Shell class.
4311 this class from the main Shell class.
4312
4312
4313 * IPython/GnuplotRuntime.py: added checks for mouse support so
4313 * IPython/GnuplotRuntime.py: added checks for mouse support so
4314 that we don't try to enable it if the current gnuplot doesn't
4314 that we don't try to enable it if the current gnuplot doesn't
4315 really support it. Also added checks so that we don't try to
4315 really support it. Also added checks so that we don't try to
4316 enable persist under Windows (where Gnuplot doesn't recognize the
4316 enable persist under Windows (where Gnuplot doesn't recognize the
4317 option).
4317 option).
4318
4318
4319 * IPython/iplib.py (InteractiveShell.interact): Added optional
4319 * IPython/iplib.py (InteractiveShell.interact): Added optional
4320 auto-indenting code, after a patch by King C. Shu
4320 auto-indenting code, after a patch by King C. Shu
4321 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4321 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4322 get along well with pasting indented code. If I ever figure out
4322 get along well with pasting indented code. If I ever figure out
4323 how to make that part go well, it will become on by default.
4323 how to make that part go well, it will become on by default.
4324
4324
4325 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4325 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4326 crash ipython if there was an unmatched '%' in the user's prompt
4326 crash ipython if there was an unmatched '%' in the user's prompt
4327 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4327 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4328
4328
4329 * IPython/iplib.py (InteractiveShell.interact): removed the
4329 * IPython/iplib.py (InteractiveShell.interact): removed the
4330 ability to ask the user whether he wants to crash or not at the
4330 ability to ask the user whether he wants to crash or not at the
4331 'last line' exception handler. Calling functions at that point
4331 'last line' exception handler. Calling functions at that point
4332 changes the stack, and the error reports would have incorrect
4332 changes the stack, and the error reports would have incorrect
4333 tracebacks.
4333 tracebacks.
4334
4334
4335 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4335 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4336 pass through a peger a pretty-printed form of any object. After a
4336 pass through a peger a pretty-printed form of any object. After a
4337 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4337 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4338
4338
4339 2003-04-14 Fernando Perez <fperez@colorado.edu>
4339 2003-04-14 Fernando Perez <fperez@colorado.edu>
4340
4340
4341 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4341 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4342 all files in ~ would be modified at first install (instead of
4342 all files in ~ would be modified at first install (instead of
4343 ~/.ipython). This could be potentially disastrous, as the
4343 ~/.ipython). This could be potentially disastrous, as the
4344 modification (make line-endings native) could damage binary files.
4344 modification (make line-endings native) could damage binary files.
4345
4345
4346 2003-04-10 Fernando Perez <fperez@colorado.edu>
4346 2003-04-10 Fernando Perez <fperez@colorado.edu>
4347
4347
4348 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4348 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4349 handle only lines which are invalid python. This now means that
4349 handle only lines which are invalid python. This now means that
4350 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4350 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4351 for the bug report.
4351 for the bug report.
4352
4352
4353 2003-04-01 Fernando Perez <fperez@colorado.edu>
4353 2003-04-01 Fernando Perez <fperez@colorado.edu>
4354
4354
4355 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4355 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4356 where failing to set sys.last_traceback would crash pdb.pm().
4356 where failing to set sys.last_traceback would crash pdb.pm().
4357 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4357 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4358 report.
4358 report.
4359
4359
4360 2003-03-25 Fernando Perez <fperez@colorado.edu>
4360 2003-03-25 Fernando Perez <fperez@colorado.edu>
4361
4361
4362 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4362 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4363 before printing it (it had a lot of spurious blank lines at the
4363 before printing it (it had a lot of spurious blank lines at the
4364 end).
4364 end).
4365
4365
4366 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4366 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4367 output would be sent 21 times! Obviously people don't use this
4367 output would be sent 21 times! Obviously people don't use this
4368 too often, or I would have heard about it.
4368 too often, or I would have heard about it.
4369
4369
4370 2003-03-24 Fernando Perez <fperez@colorado.edu>
4370 2003-03-24 Fernando Perez <fperez@colorado.edu>
4371
4371
4372 * setup.py (scriptfiles): renamed the data_files parameter from
4372 * setup.py (scriptfiles): renamed the data_files parameter from
4373 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4373 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4374 for the patch.
4374 for the patch.
4375
4375
4376 2003-03-20 Fernando Perez <fperez@colorado.edu>
4376 2003-03-20 Fernando Perez <fperez@colorado.edu>
4377
4377
4378 * IPython/genutils.py (error): added error() and fatal()
4378 * IPython/genutils.py (error): added error() and fatal()
4379 functions.
4379 functions.
4380
4380
4381 2003-03-18 *** Released version 0.2.15pre3
4381 2003-03-18 *** Released version 0.2.15pre3
4382
4382
4383 2003-03-18 Fernando Perez <fperez@colorado.edu>
4383 2003-03-18 Fernando Perez <fperez@colorado.edu>
4384
4384
4385 * setupext/install_data_ext.py
4385 * setupext/install_data_ext.py
4386 (install_data_ext.initialize_options): Class contributed by Jack
4386 (install_data_ext.initialize_options): Class contributed by Jack
4387 Moffit for fixing the old distutils hack. He is sending this to
4387 Moffit for fixing the old distutils hack. He is sending this to
4388 the distutils folks so in the future we may not need it as a
4388 the distutils folks so in the future we may not need it as a
4389 private fix.
4389 private fix.
4390
4390
4391 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4391 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4392 changes for Debian packaging. See his patch for full details.
4392 changes for Debian packaging. See his patch for full details.
4393 The old distutils hack of making the ipythonrc* files carry a
4393 The old distutils hack of making the ipythonrc* files carry a
4394 bogus .py extension is gone, at last. Examples were moved to a
4394 bogus .py extension is gone, at last. Examples were moved to a
4395 separate subdir under doc/, and the separate executable scripts
4395 separate subdir under doc/, and the separate executable scripts
4396 now live in their own directory. Overall a great cleanup. The
4396 now live in their own directory. Overall a great cleanup. The
4397 manual was updated to use the new files, and setup.py has been
4397 manual was updated to use the new files, and setup.py has been
4398 fixed for this setup.
4398 fixed for this setup.
4399
4399
4400 * IPython/PyColorize.py (Parser.usage): made non-executable and
4400 * IPython/PyColorize.py (Parser.usage): made non-executable and
4401 created a pycolor wrapper around it to be included as a script.
4401 created a pycolor wrapper around it to be included as a script.
4402
4402
4403 2003-03-12 *** Released version 0.2.15pre2
4403 2003-03-12 *** Released version 0.2.15pre2
4404
4404
4405 2003-03-12 Fernando Perez <fperez@colorado.edu>
4405 2003-03-12 Fernando Perez <fperez@colorado.edu>
4406
4406
4407 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4407 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4408 long-standing problem with garbage characters in some terminals.
4408 long-standing problem with garbage characters in some terminals.
4409 The issue was really that the \001 and \002 escapes must _only_ be
4409 The issue was really that the \001 and \002 escapes must _only_ be
4410 passed to input prompts (which call readline), but _never_ to
4410 passed to input prompts (which call readline), but _never_ to
4411 normal text to be printed on screen. I changed ColorANSI to have
4411 normal text to be printed on screen. I changed ColorANSI to have
4412 two classes: TermColors and InputTermColors, each with the
4412 two classes: TermColors and InputTermColors, each with the
4413 appropriate escapes for input prompts or normal text. The code in
4413 appropriate escapes for input prompts or normal text. The code in
4414 Prompts.py got slightly more complicated, but this very old and
4414 Prompts.py got slightly more complicated, but this very old and
4415 annoying bug is finally fixed.
4415 annoying bug is finally fixed.
4416
4416
4417 All the credit for nailing down the real origin of this problem
4417 All the credit for nailing down the real origin of this problem
4418 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4418 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4419 *Many* thanks to him for spending quite a bit of effort on this.
4419 *Many* thanks to him for spending quite a bit of effort on this.
4420
4420
4421 2003-03-05 *** Released version 0.2.15pre1
4421 2003-03-05 *** Released version 0.2.15pre1
4422
4422
4423 2003-03-03 Fernando Perez <fperez@colorado.edu>
4423 2003-03-03 Fernando Perez <fperez@colorado.edu>
4424
4424
4425 * IPython/FakeModule.py: Moved the former _FakeModule to a
4425 * IPython/FakeModule.py: Moved the former _FakeModule to a
4426 separate file, because it's also needed by Magic (to fix a similar
4426 separate file, because it's also needed by Magic (to fix a similar
4427 pickle-related issue in @run).
4427 pickle-related issue in @run).
4428
4428
4429 2003-03-02 Fernando Perez <fperez@colorado.edu>
4429 2003-03-02 Fernando Perez <fperez@colorado.edu>
4430
4430
4431 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4431 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4432 the autocall option at runtime.
4432 the autocall option at runtime.
4433 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4433 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4434 across Magic.py to start separating Magic from InteractiveShell.
4434 across Magic.py to start separating Magic from InteractiveShell.
4435 (Magic._ofind): Fixed to return proper namespace for dotted
4435 (Magic._ofind): Fixed to return proper namespace for dotted
4436 names. Before, a dotted name would always return 'not currently
4436 names. Before, a dotted name would always return 'not currently
4437 defined', because it would find the 'parent'. s.x would be found,
4437 defined', because it would find the 'parent'. s.x would be found,
4438 but since 'x' isn't defined by itself, it would get confused.
4438 but since 'x' isn't defined by itself, it would get confused.
4439 (Magic.magic_run): Fixed pickling problems reported by Ralf
4439 (Magic.magic_run): Fixed pickling problems reported by Ralf
4440 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4440 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4441 that I'd used when Mike Heeter reported similar issues at the
4441 that I'd used when Mike Heeter reported similar issues at the
4442 top-level, but now for @run. It boils down to injecting the
4442 top-level, but now for @run. It boils down to injecting the
4443 namespace where code is being executed with something that looks
4443 namespace where code is being executed with something that looks
4444 enough like a module to fool pickle.dump(). Since a pickle stores
4444 enough like a module to fool pickle.dump(). Since a pickle stores
4445 a named reference to the importing module, we need this for
4445 a named reference to the importing module, we need this for
4446 pickles to save something sensible.
4446 pickles to save something sensible.
4447
4447
4448 * IPython/ipmaker.py (make_IPython): added an autocall option.
4448 * IPython/ipmaker.py (make_IPython): added an autocall option.
4449
4449
4450 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4450 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4451 the auto-eval code. Now autocalling is an option, and the code is
4451 the auto-eval code. Now autocalling is an option, and the code is
4452 also vastly safer. There is no more eval() involved at all.
4452 also vastly safer. There is no more eval() involved at all.
4453
4453
4454 2003-03-01 Fernando Perez <fperez@colorado.edu>
4454 2003-03-01 Fernando Perez <fperez@colorado.edu>
4455
4455
4456 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4456 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4457 dict with named keys instead of a tuple.
4457 dict with named keys instead of a tuple.
4458
4458
4459 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4459 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4460
4460
4461 * setup.py (make_shortcut): Fixed message about directories
4461 * setup.py (make_shortcut): Fixed message about directories
4462 created during Windows installation (the directories were ok, just
4462 created during Windows installation (the directories were ok, just
4463 the printed message was misleading). Thanks to Chris Liechti
4463 the printed message was misleading). Thanks to Chris Liechti
4464 <cliechti-AT-gmx.net> for the heads up.
4464 <cliechti-AT-gmx.net> for the heads up.
4465
4465
4466 2003-02-21 Fernando Perez <fperez@colorado.edu>
4466 2003-02-21 Fernando Perez <fperez@colorado.edu>
4467
4467
4468 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4468 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4469 of ValueError exception when checking for auto-execution. This
4469 of ValueError exception when checking for auto-execution. This
4470 one is raised by things like Numeric arrays arr.flat when the
4470 one is raised by things like Numeric arrays arr.flat when the
4471 array is non-contiguous.
4471 array is non-contiguous.
4472
4472
4473 2003-01-31 Fernando Perez <fperez@colorado.edu>
4473 2003-01-31 Fernando Perez <fperez@colorado.edu>
4474
4474
4475 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4475 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4476 not return any value at all (even though the command would get
4476 not return any value at all (even though the command would get
4477 executed).
4477 executed).
4478 (xsys): Flush stdout right after printing the command to ensure
4478 (xsys): Flush stdout right after printing the command to ensure
4479 proper ordering of commands and command output in the total
4479 proper ordering of commands and command output in the total
4480 output.
4480 output.
4481 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4481 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4482 system/getoutput as defaults. The old ones are kept for
4482 system/getoutput as defaults. The old ones are kept for
4483 compatibility reasons, so no code which uses this library needs
4483 compatibility reasons, so no code which uses this library needs
4484 changing.
4484 changing.
4485
4485
4486 2003-01-27 *** Released version 0.2.14
4486 2003-01-27 *** Released version 0.2.14
4487
4487
4488 2003-01-25 Fernando Perez <fperez@colorado.edu>
4488 2003-01-25 Fernando Perez <fperez@colorado.edu>
4489
4489
4490 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4490 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4491 functions defined in previous edit sessions could not be re-edited
4491 functions defined in previous edit sessions could not be re-edited
4492 (because the temp files were immediately removed). Now temp files
4492 (because the temp files were immediately removed). Now temp files
4493 are removed only at IPython's exit.
4493 are removed only at IPython's exit.
4494 (Magic.magic_run): Improved @run to perform shell-like expansions
4494 (Magic.magic_run): Improved @run to perform shell-like expansions
4495 on its arguments (~users and $VARS). With this, @run becomes more
4495 on its arguments (~users and $VARS). With this, @run becomes more
4496 like a normal command-line.
4496 like a normal command-line.
4497
4497
4498 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4498 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4499 bugs related to embedding and cleaned up that code. A fairly
4499 bugs related to embedding and cleaned up that code. A fairly
4500 important one was the impossibility to access the global namespace
4500 important one was the impossibility to access the global namespace
4501 through the embedded IPython (only local variables were visible).
4501 through the embedded IPython (only local variables were visible).
4502
4502
4503 2003-01-14 Fernando Perez <fperez@colorado.edu>
4503 2003-01-14 Fernando Perez <fperez@colorado.edu>
4504
4504
4505 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4505 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4506 auto-calling to be a bit more conservative. Now it doesn't get
4506 auto-calling to be a bit more conservative. Now it doesn't get
4507 triggered if any of '!=()<>' are in the rest of the input line, to
4507 triggered if any of '!=()<>' are in the rest of the input line, to
4508 allow comparing callables. Thanks to Alex for the heads up.
4508 allow comparing callables. Thanks to Alex for the heads up.
4509
4509
4510 2003-01-07 Fernando Perez <fperez@colorado.edu>
4510 2003-01-07 Fernando Perez <fperez@colorado.edu>
4511
4511
4512 * IPython/genutils.py (page): fixed estimation of the number of
4512 * IPython/genutils.py (page): fixed estimation of the number of
4513 lines in a string to be paged to simply count newlines. This
4513 lines in a string to be paged to simply count newlines. This
4514 prevents over-guessing due to embedded escape sequences. A better
4514 prevents over-guessing due to embedded escape sequences. A better
4515 long-term solution would involve stripping out the control chars
4515 long-term solution would involve stripping out the control chars
4516 for the count, but it's potentially so expensive I just don't
4516 for the count, but it's potentially so expensive I just don't
4517 think it's worth doing.
4517 think it's worth doing.
4518
4518
4519 2002-12-19 *** Released version 0.2.14pre50
4519 2002-12-19 *** Released version 0.2.14pre50
4520
4520
4521 2002-12-19 Fernando Perez <fperez@colorado.edu>
4521 2002-12-19 Fernando Perez <fperez@colorado.edu>
4522
4522
4523 * tools/release (version): Changed release scripts to inform
4523 * tools/release (version): Changed release scripts to inform
4524 Andrea and build a NEWS file with a list of recent changes.
4524 Andrea and build a NEWS file with a list of recent changes.
4525
4525
4526 * IPython/ColorANSI.py (__all__): changed terminal detection
4526 * IPython/ColorANSI.py (__all__): changed terminal detection
4527 code. Seems to work better for xterms without breaking
4527 code. Seems to work better for xterms without breaking
4528 konsole. Will need more testing to determine if WinXP and Mac OSX
4528 konsole. Will need more testing to determine if WinXP and Mac OSX
4529 also work ok.
4529 also work ok.
4530
4530
4531 2002-12-18 *** Released version 0.2.14pre49
4531 2002-12-18 *** Released version 0.2.14pre49
4532
4532
4533 2002-12-18 Fernando Perez <fperez@colorado.edu>
4533 2002-12-18 Fernando Perez <fperez@colorado.edu>
4534
4534
4535 * Docs: added new info about Mac OSX, from Andrea.
4535 * Docs: added new info about Mac OSX, from Andrea.
4536
4536
4537 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4537 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4538 allow direct plotting of python strings whose format is the same
4538 allow direct plotting of python strings whose format is the same
4539 of gnuplot data files.
4539 of gnuplot data files.
4540
4540
4541 2002-12-16 Fernando Perez <fperez@colorado.edu>
4541 2002-12-16 Fernando Perez <fperez@colorado.edu>
4542
4542
4543 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4543 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4544 value of exit question to be acknowledged.
4544 value of exit question to be acknowledged.
4545
4545
4546 2002-12-03 Fernando Perez <fperez@colorado.edu>
4546 2002-12-03 Fernando Perez <fperez@colorado.edu>
4547
4547
4548 * IPython/ipmaker.py: removed generators, which had been added
4548 * IPython/ipmaker.py: removed generators, which had been added
4549 by mistake in an earlier debugging run. This was causing trouble
4549 by mistake in an earlier debugging run. This was causing trouble
4550 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4550 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4551 for pointing this out.
4551 for pointing this out.
4552
4552
4553 2002-11-17 Fernando Perez <fperez@colorado.edu>
4553 2002-11-17 Fernando Perez <fperez@colorado.edu>
4554
4554
4555 * Manual: updated the Gnuplot section.
4555 * Manual: updated the Gnuplot section.
4556
4556
4557 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4557 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4558 a much better split of what goes in Runtime and what goes in
4558 a much better split of what goes in Runtime and what goes in
4559 Interactive.
4559 Interactive.
4560
4560
4561 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4561 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4562 being imported from iplib.
4562 being imported from iplib.
4563
4563
4564 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4564 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4565 for command-passing. Now the global Gnuplot instance is called
4565 for command-passing. Now the global Gnuplot instance is called
4566 'gp' instead of 'g', which was really a far too fragile and
4566 'gp' instead of 'g', which was really a far too fragile and
4567 common name.
4567 common name.
4568
4568
4569 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4569 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4570 bounding boxes generated by Gnuplot for square plots.
4570 bounding boxes generated by Gnuplot for square plots.
4571
4571
4572 * IPython/genutils.py (popkey): new function added. I should
4572 * IPython/genutils.py (popkey): new function added. I should
4573 suggest this on c.l.py as a dict method, it seems useful.
4573 suggest this on c.l.py as a dict method, it seems useful.
4574
4574
4575 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4575 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4576 to transparently handle PostScript generation. MUCH better than
4576 to transparently handle PostScript generation. MUCH better than
4577 the previous plot_eps/replot_eps (which I removed now). The code
4577 the previous plot_eps/replot_eps (which I removed now). The code
4578 is also fairly clean and well documented now (including
4578 is also fairly clean and well documented now (including
4579 docstrings).
4579 docstrings).
4580
4580
4581 2002-11-13 Fernando Perez <fperez@colorado.edu>
4581 2002-11-13 Fernando Perez <fperez@colorado.edu>
4582
4582
4583 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4583 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4584 (inconsistent with options).
4584 (inconsistent with options).
4585
4585
4586 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4586 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4587 manually disabled, I don't know why. Fixed it.
4587 manually disabled, I don't know why. Fixed it.
4588 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4588 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4589 eps output.
4589 eps output.
4590
4590
4591 2002-11-12 Fernando Perez <fperez@colorado.edu>
4591 2002-11-12 Fernando Perez <fperez@colorado.edu>
4592
4592
4593 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4593 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4594 don't propagate up to caller. Fixes crash reported by François
4594 don't propagate up to caller. Fixes crash reported by François
4595 Pinard.
4595 Pinard.
4596
4596
4597 2002-11-09 Fernando Perez <fperez@colorado.edu>
4597 2002-11-09 Fernando Perez <fperez@colorado.edu>
4598
4598
4599 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4599 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4600 history file for new users.
4600 history file for new users.
4601 (make_IPython): fixed bug where initial install would leave the
4601 (make_IPython): fixed bug where initial install would leave the
4602 user running in the .ipython dir.
4602 user running in the .ipython dir.
4603 (make_IPython): fixed bug where config dir .ipython would be
4603 (make_IPython): fixed bug where config dir .ipython would be
4604 created regardless of the given -ipythondir option. Thanks to Cory
4604 created regardless of the given -ipythondir option. Thanks to Cory
4605 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4605 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4606
4606
4607 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4607 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4608 type confirmations. Will need to use it in all of IPython's code
4608 type confirmations. Will need to use it in all of IPython's code
4609 consistently.
4609 consistently.
4610
4610
4611 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4611 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4612 context to print 31 lines instead of the default 5. This will make
4612 context to print 31 lines instead of the default 5. This will make
4613 the crash reports extremely detailed in case the problem is in
4613 the crash reports extremely detailed in case the problem is in
4614 libraries I don't have access to.
4614 libraries I don't have access to.
4615
4615
4616 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4616 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4617 line of defense' code to still crash, but giving users fair
4617 line of defense' code to still crash, but giving users fair
4618 warning. I don't want internal errors to go unreported: if there's
4618 warning. I don't want internal errors to go unreported: if there's
4619 an internal problem, IPython should crash and generate a full
4619 an internal problem, IPython should crash and generate a full
4620 report.
4620 report.
4621
4621
4622 2002-11-08 Fernando Perez <fperez@colorado.edu>
4622 2002-11-08 Fernando Perez <fperez@colorado.edu>
4623
4623
4624 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4624 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4625 otherwise uncaught exceptions which can appear if people set
4625 otherwise uncaught exceptions which can appear if people set
4626 sys.stdout to something badly broken. Thanks to a crash report
4626 sys.stdout to something badly broken. Thanks to a crash report
4627 from henni-AT-mail.brainbot.com.
4627 from henni-AT-mail.brainbot.com.
4628
4628
4629 2002-11-04 Fernando Perez <fperez@colorado.edu>
4629 2002-11-04 Fernando Perez <fperez@colorado.edu>
4630
4630
4631 * IPython/iplib.py (InteractiveShell.interact): added
4631 * IPython/iplib.py (InteractiveShell.interact): added
4632 __IPYTHON__active to the builtins. It's a flag which goes on when
4632 __IPYTHON__active to the builtins. It's a flag which goes on when
4633 the interaction starts and goes off again when it stops. This
4633 the interaction starts and goes off again when it stops. This
4634 allows embedding code to detect being inside IPython. Before this
4634 allows embedding code to detect being inside IPython. Before this
4635 was done via __IPYTHON__, but that only shows that an IPython
4635 was done via __IPYTHON__, but that only shows that an IPython
4636 instance has been created.
4636 instance has been created.
4637
4637
4638 * IPython/Magic.py (Magic.magic_env): I realized that in a
4638 * IPython/Magic.py (Magic.magic_env): I realized that in a
4639 UserDict, instance.data holds the data as a normal dict. So I
4639 UserDict, instance.data holds the data as a normal dict. So I
4640 modified @env to return os.environ.data instead of rebuilding a
4640 modified @env to return os.environ.data instead of rebuilding a
4641 dict by hand.
4641 dict by hand.
4642
4642
4643 2002-11-02 Fernando Perez <fperez@colorado.edu>
4643 2002-11-02 Fernando Perez <fperez@colorado.edu>
4644
4644
4645 * IPython/genutils.py (warn): changed so that level 1 prints no
4645 * IPython/genutils.py (warn): changed so that level 1 prints no
4646 header. Level 2 is now the default (with 'WARNING' header, as
4646 header. Level 2 is now the default (with 'WARNING' header, as
4647 before). I think I tracked all places where changes were needed in
4647 before). I think I tracked all places where changes were needed in
4648 IPython, but outside code using the old level numbering may have
4648 IPython, but outside code using the old level numbering may have
4649 broken.
4649 broken.
4650
4650
4651 * IPython/iplib.py (InteractiveShell.runcode): added this to
4651 * IPython/iplib.py (InteractiveShell.runcode): added this to
4652 handle the tracebacks in SystemExit traps correctly. The previous
4652 handle the tracebacks in SystemExit traps correctly. The previous
4653 code (through interact) was printing more of the stack than
4653 code (through interact) was printing more of the stack than
4654 necessary, showing IPython internal code to the user.
4654 necessary, showing IPython internal code to the user.
4655
4655
4656 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4656 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4657 default. Now that the default at the confirmation prompt is yes,
4657 default. Now that the default at the confirmation prompt is yes,
4658 it's not so intrusive. François' argument that ipython sessions
4658 it's not so intrusive. François' argument that ipython sessions
4659 tend to be complex enough not to lose them from an accidental C-d,
4659 tend to be complex enough not to lose them from an accidental C-d,
4660 is a valid one.
4660 is a valid one.
4661
4661
4662 * IPython/iplib.py (InteractiveShell.interact): added a
4662 * IPython/iplib.py (InteractiveShell.interact): added a
4663 showtraceback() call to the SystemExit trap, and modified the exit
4663 showtraceback() call to the SystemExit trap, and modified the exit
4664 confirmation to have yes as the default.
4664 confirmation to have yes as the default.
4665
4665
4666 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4666 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4667 this file. It's been gone from the code for a long time, this was
4667 this file. It's been gone from the code for a long time, this was
4668 simply leftover junk.
4668 simply leftover junk.
4669
4669
4670 2002-11-01 Fernando Perez <fperez@colorado.edu>
4670 2002-11-01 Fernando Perez <fperez@colorado.edu>
4671
4671
4672 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4672 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4673 added. If set, IPython now traps EOF and asks for
4673 added. If set, IPython now traps EOF and asks for
4674 confirmation. After a request by François Pinard.
4674 confirmation. After a request by François Pinard.
4675
4675
4676 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4676 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4677 of @abort, and with a new (better) mechanism for handling the
4677 of @abort, and with a new (better) mechanism for handling the
4678 exceptions.
4678 exceptions.
4679
4679
4680 2002-10-27 Fernando Perez <fperez@colorado.edu>
4680 2002-10-27 Fernando Perez <fperez@colorado.edu>
4681
4681
4682 * IPython/usage.py (__doc__): updated the --help information and
4682 * IPython/usage.py (__doc__): updated the --help information and
4683 the ipythonrc file to indicate that -log generates
4683 the ipythonrc file to indicate that -log generates
4684 ./ipython.log. Also fixed the corresponding info in @logstart.
4684 ./ipython.log. Also fixed the corresponding info in @logstart.
4685 This and several other fixes in the manuals thanks to reports by
4685 This and several other fixes in the manuals thanks to reports by
4686 François Pinard <pinard-AT-iro.umontreal.ca>.
4686 François Pinard <pinard-AT-iro.umontreal.ca>.
4687
4687
4688 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4688 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4689 refer to @logstart (instead of @log, which doesn't exist).
4689 refer to @logstart (instead of @log, which doesn't exist).
4690
4690
4691 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4691 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4692 AttributeError crash. Thanks to Christopher Armstrong
4692 AttributeError crash. Thanks to Christopher Armstrong
4693 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4693 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4694 introduced recently (in 0.2.14pre37) with the fix to the eval
4694 introduced recently (in 0.2.14pre37) with the fix to the eval
4695 problem mentioned below.
4695 problem mentioned below.
4696
4696
4697 2002-10-17 Fernando Perez <fperez@colorado.edu>
4697 2002-10-17 Fernando Perez <fperez@colorado.edu>
4698
4698
4699 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4699 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4700 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4700 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4701
4701
4702 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4702 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4703 this function to fix a problem reported by Alex Schmolck. He saw
4703 this function to fix a problem reported by Alex Schmolck. He saw
4704 it with list comprehensions and generators, which were getting
4704 it with list comprehensions and generators, which were getting
4705 called twice. The real problem was an 'eval' call in testing for
4705 called twice. The real problem was an 'eval' call in testing for
4706 automagic which was evaluating the input line silently.
4706 automagic which was evaluating the input line silently.
4707
4707
4708 This is a potentially very nasty bug, if the input has side
4708 This is a potentially very nasty bug, if the input has side
4709 effects which must not be repeated. The code is much cleaner now,
4709 effects which must not be repeated. The code is much cleaner now,
4710 without any blanket 'except' left and with a regexp test for
4710 without any blanket 'except' left and with a regexp test for
4711 actual function names.
4711 actual function names.
4712
4712
4713 But an eval remains, which I'm not fully comfortable with. I just
4713 But an eval remains, which I'm not fully comfortable with. I just
4714 don't know how to find out if an expression could be a callable in
4714 don't know how to find out if an expression could be a callable in
4715 the user's namespace without doing an eval on the string. However
4715 the user's namespace without doing an eval on the string. However
4716 that string is now much more strictly checked so that no code
4716 that string is now much more strictly checked so that no code
4717 slips by, so the eval should only happen for things that can
4717 slips by, so the eval should only happen for things that can
4718 really be only function/method names.
4718 really be only function/method names.
4719
4719
4720 2002-10-15 Fernando Perez <fperez@colorado.edu>
4720 2002-10-15 Fernando Perez <fperez@colorado.edu>
4721
4721
4722 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4722 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4723 OSX information to main manual, removed README_Mac_OSX file from
4723 OSX information to main manual, removed README_Mac_OSX file from
4724 distribution. Also updated credits for recent additions.
4724 distribution. Also updated credits for recent additions.
4725
4725
4726 2002-10-10 Fernando Perez <fperez@colorado.edu>
4726 2002-10-10 Fernando Perez <fperez@colorado.edu>
4727
4727
4728 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4728 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4729 terminal-related issues. Many thanks to Andrea Riciputi
4729 terminal-related issues. Many thanks to Andrea Riciputi
4730 <andrea.riciputi-AT-libero.it> for writing it.
4730 <andrea.riciputi-AT-libero.it> for writing it.
4731
4731
4732 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4732 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4733 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4733 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4734
4734
4735 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4735 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4736 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4736 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4737 <syver-en-AT-online.no> who both submitted patches for this problem.
4737 <syver-en-AT-online.no> who both submitted patches for this problem.
4738
4738
4739 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4739 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4740 global embedding to make sure that things don't overwrite user
4740 global embedding to make sure that things don't overwrite user
4741 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4741 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4742
4742
4743 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4743 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4744 compatibility. Thanks to Hayden Callow
4744 compatibility. Thanks to Hayden Callow
4745 <h.callow-AT-elec.canterbury.ac.nz>
4745 <h.callow-AT-elec.canterbury.ac.nz>
4746
4746
4747 2002-10-04 Fernando Perez <fperez@colorado.edu>
4747 2002-10-04 Fernando Perez <fperez@colorado.edu>
4748
4748
4749 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4749 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4750 Gnuplot.File objects.
4750 Gnuplot.File objects.
4751
4751
4752 2002-07-23 Fernando Perez <fperez@colorado.edu>
4752 2002-07-23 Fernando Perez <fperez@colorado.edu>
4753
4753
4754 * IPython/genutils.py (timing): Added timings() and timing() for
4754 * IPython/genutils.py (timing): Added timings() and timing() for
4755 quick access to the most commonly needed data, the execution
4755 quick access to the most commonly needed data, the execution
4756 times. Old timing() renamed to timings_out().
4756 times. Old timing() renamed to timings_out().
4757
4757
4758 2002-07-18 Fernando Perez <fperez@colorado.edu>
4758 2002-07-18 Fernando Perez <fperez@colorado.edu>
4759
4759
4760 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4760 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4761 bug with nested instances disrupting the parent's tab completion.
4761 bug with nested instances disrupting the parent's tab completion.
4762
4762
4763 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4763 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4764 all_completions code to begin the emacs integration.
4764 all_completions code to begin the emacs integration.
4765
4765
4766 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4766 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4767 argument to allow titling individual arrays when plotting.
4767 argument to allow titling individual arrays when plotting.
4768
4768
4769 2002-07-15 Fernando Perez <fperez@colorado.edu>
4769 2002-07-15 Fernando Perez <fperez@colorado.edu>
4770
4770
4771 * setup.py (make_shortcut): changed to retrieve the value of
4771 * setup.py (make_shortcut): changed to retrieve the value of
4772 'Program Files' directory from the registry (this value changes in
4772 'Program Files' directory from the registry (this value changes in
4773 non-english versions of Windows). Thanks to Thomas Fanslau
4773 non-english versions of Windows). Thanks to Thomas Fanslau
4774 <tfanslau-AT-gmx.de> for the report.
4774 <tfanslau-AT-gmx.de> for the report.
4775
4775
4776 2002-07-10 Fernando Perez <fperez@colorado.edu>
4776 2002-07-10 Fernando Perez <fperez@colorado.edu>
4777
4777
4778 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4778 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4779 a bug in pdb, which crashes if a line with only whitespace is
4779 a bug in pdb, which crashes if a line with only whitespace is
4780 entered. Bug report submitted to sourceforge.
4780 entered. Bug report submitted to sourceforge.
4781
4781
4782 2002-07-09 Fernando Perez <fperez@colorado.edu>
4782 2002-07-09 Fernando Perez <fperez@colorado.edu>
4783
4783
4784 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4784 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4785 reporting exceptions (it's a bug in inspect.py, I just set a
4785 reporting exceptions (it's a bug in inspect.py, I just set a
4786 workaround).
4786 workaround).
4787
4787
4788 2002-07-08 Fernando Perez <fperez@colorado.edu>
4788 2002-07-08 Fernando Perez <fperez@colorado.edu>
4789
4789
4790 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4790 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4791 __IPYTHON__ in __builtins__ to show up in user_ns.
4791 __IPYTHON__ in __builtins__ to show up in user_ns.
4792
4792
4793 2002-07-03 Fernando Perez <fperez@colorado.edu>
4793 2002-07-03 Fernando Perez <fperez@colorado.edu>
4794
4794
4795 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4795 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4796 name from @gp_set_instance to @gp_set_default.
4796 name from @gp_set_instance to @gp_set_default.
4797
4797
4798 * IPython/ipmaker.py (make_IPython): default editor value set to
4798 * IPython/ipmaker.py (make_IPython): default editor value set to
4799 '0' (a string), to match the rc file. Otherwise will crash when
4799 '0' (a string), to match the rc file. Otherwise will crash when
4800 .strip() is called on it.
4800 .strip() is called on it.
4801
4801
4802
4802
4803 2002-06-28 Fernando Perez <fperez@colorado.edu>
4803 2002-06-28 Fernando Perez <fperez@colorado.edu>
4804
4804
4805 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4805 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4806 of files in current directory when a file is executed via
4806 of files in current directory when a file is executed via
4807 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4807 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4808
4808
4809 * setup.py (manfiles): fix for rpm builds, submitted by RA
4809 * setup.py (manfiles): fix for rpm builds, submitted by RA
4810 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4810 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4811
4811
4812 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4812 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4813 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4813 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4814 string!). A. Schmolck caught this one.
4814 string!). A. Schmolck caught this one.
4815
4815
4816 2002-06-27 Fernando Perez <fperez@colorado.edu>
4816 2002-06-27 Fernando Perez <fperez@colorado.edu>
4817
4817
4818 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4818 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4819 defined files at the cmd line. __name__ wasn't being set to
4819 defined files at the cmd line. __name__ wasn't being set to
4820 __main__.
4820 __main__.
4821
4821
4822 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4822 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4823 regular lists and tuples besides Numeric arrays.
4823 regular lists and tuples besides Numeric arrays.
4824
4824
4825 * IPython/Prompts.py (CachedOutput.__call__): Added output
4825 * IPython/Prompts.py (CachedOutput.__call__): Added output
4826 supression for input ending with ';'. Similar to Mathematica and
4826 supression for input ending with ';'. Similar to Mathematica and
4827 Matlab. The _* vars and Out[] list are still updated, just like
4827 Matlab. The _* vars and Out[] list are still updated, just like
4828 Mathematica behaves.
4828 Mathematica behaves.
4829
4829
4830 2002-06-25 Fernando Perez <fperez@colorado.edu>
4830 2002-06-25 Fernando Perez <fperez@colorado.edu>
4831
4831
4832 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4832 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4833 .ini extensions for profiels under Windows.
4833 .ini extensions for profiels under Windows.
4834
4834
4835 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4835 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4836 string form. Fix contributed by Alexander Schmolck
4836 string form. Fix contributed by Alexander Schmolck
4837 <a.schmolck-AT-gmx.net>
4837 <a.schmolck-AT-gmx.net>
4838
4838
4839 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4839 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4840 pre-configured Gnuplot instance.
4840 pre-configured Gnuplot instance.
4841
4841
4842 2002-06-21 Fernando Perez <fperez@colorado.edu>
4842 2002-06-21 Fernando Perez <fperez@colorado.edu>
4843
4843
4844 * IPython/numutils.py (exp_safe): new function, works around the
4844 * IPython/numutils.py (exp_safe): new function, works around the
4845 underflow problems in Numeric.
4845 underflow problems in Numeric.
4846 (log2): New fn. Safe log in base 2: returns exact integer answer
4846 (log2): New fn. Safe log in base 2: returns exact integer answer
4847 for exact integer powers of 2.
4847 for exact integer powers of 2.
4848
4848
4849 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4849 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4850 properly.
4850 properly.
4851
4851
4852 2002-06-20 Fernando Perez <fperez@colorado.edu>
4852 2002-06-20 Fernando Perez <fperez@colorado.edu>
4853
4853
4854 * IPython/genutils.py (timing): new function like
4854 * IPython/genutils.py (timing): new function like
4855 Mathematica's. Similar to time_test, but returns more info.
4855 Mathematica's. Similar to time_test, but returns more info.
4856
4856
4857 2002-06-18 Fernando Perez <fperez@colorado.edu>
4857 2002-06-18 Fernando Perez <fperez@colorado.edu>
4858
4858
4859 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4859 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4860 according to Mike Heeter's suggestions.
4860 according to Mike Heeter's suggestions.
4861
4861
4862 2002-06-16 Fernando Perez <fperez@colorado.edu>
4862 2002-06-16 Fernando Perez <fperez@colorado.edu>
4863
4863
4864 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4864 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4865 system. GnuplotMagic is gone as a user-directory option. New files
4865 system. GnuplotMagic is gone as a user-directory option. New files
4866 make it easier to use all the gnuplot stuff both from external
4866 make it easier to use all the gnuplot stuff both from external
4867 programs as well as from IPython. Had to rewrite part of
4867 programs as well as from IPython. Had to rewrite part of
4868 hardcopy() b/c of a strange bug: often the ps files simply don't
4868 hardcopy() b/c of a strange bug: often the ps files simply don't
4869 get created, and require a repeat of the command (often several
4869 get created, and require a repeat of the command (often several
4870 times).
4870 times).
4871
4871
4872 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4872 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4873 resolve output channel at call time, so that if sys.stderr has
4873 resolve output channel at call time, so that if sys.stderr has
4874 been redirected by user this gets honored.
4874 been redirected by user this gets honored.
4875
4875
4876 2002-06-13 Fernando Perez <fperez@colorado.edu>
4876 2002-06-13 Fernando Perez <fperez@colorado.edu>
4877
4877
4878 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4878 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4879 IPShell. Kept a copy with the old names to avoid breaking people's
4879 IPShell. Kept a copy with the old names to avoid breaking people's
4880 embedded code.
4880 embedded code.
4881
4881
4882 * IPython/ipython: simplified it to the bare minimum after
4882 * IPython/ipython: simplified it to the bare minimum after
4883 Holger's suggestions. Added info about how to use it in
4883 Holger's suggestions. Added info about how to use it in
4884 PYTHONSTARTUP.
4884 PYTHONSTARTUP.
4885
4885
4886 * IPython/Shell.py (IPythonShell): changed the options passing
4886 * IPython/Shell.py (IPythonShell): changed the options passing
4887 from a string with funky %s replacements to a straight list. Maybe
4887 from a string with funky %s replacements to a straight list. Maybe
4888 a bit more typing, but it follows sys.argv conventions, so there's
4888 a bit more typing, but it follows sys.argv conventions, so there's
4889 less special-casing to remember.
4889 less special-casing to remember.
4890
4890
4891 2002-06-12 Fernando Perez <fperez@colorado.edu>
4891 2002-06-12 Fernando Perez <fperez@colorado.edu>
4892
4892
4893 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4893 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4894 command. Thanks to a suggestion by Mike Heeter.
4894 command. Thanks to a suggestion by Mike Heeter.
4895 (Magic.magic_pfile): added behavior to look at filenames if given
4895 (Magic.magic_pfile): added behavior to look at filenames if given
4896 arg is not a defined object.
4896 arg is not a defined object.
4897 (Magic.magic_save): New @save function to save code snippets. Also
4897 (Magic.magic_save): New @save function to save code snippets. Also
4898 a Mike Heeter idea.
4898 a Mike Heeter idea.
4899
4899
4900 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4900 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4901 plot() and replot(). Much more convenient now, especially for
4901 plot() and replot(). Much more convenient now, especially for
4902 interactive use.
4902 interactive use.
4903
4903
4904 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4904 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4905 filenames.
4905 filenames.
4906
4906
4907 2002-06-02 Fernando Perez <fperez@colorado.edu>
4907 2002-06-02 Fernando Perez <fperez@colorado.edu>
4908
4908
4909 * IPython/Struct.py (Struct.__init__): modified to admit
4909 * IPython/Struct.py (Struct.__init__): modified to admit
4910 initialization via another struct.
4910 initialization via another struct.
4911
4911
4912 * IPython/genutils.py (SystemExec.__init__): New stateful
4912 * IPython/genutils.py (SystemExec.__init__): New stateful
4913 interface to xsys and bq. Useful for writing system scripts.
4913 interface to xsys and bq. Useful for writing system scripts.
4914
4914
4915 2002-05-30 Fernando Perez <fperez@colorado.edu>
4915 2002-05-30 Fernando Perez <fperez@colorado.edu>
4916
4916
4917 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4917 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4918 documents. This will make the user download smaller (it's getting
4918 documents. This will make the user download smaller (it's getting
4919 too big).
4919 too big).
4920
4920
4921 2002-05-29 Fernando Perez <fperez@colorado.edu>
4921 2002-05-29 Fernando Perez <fperez@colorado.edu>
4922
4922
4923 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4923 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4924 fix problems with shelve and pickle. Seems to work, but I don't
4924 fix problems with shelve and pickle. Seems to work, but I don't
4925 know if corner cases break it. Thanks to Mike Heeter
4925 know if corner cases break it. Thanks to Mike Heeter
4926 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4926 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4927
4927
4928 2002-05-24 Fernando Perez <fperez@colorado.edu>
4928 2002-05-24 Fernando Perez <fperez@colorado.edu>
4929
4929
4930 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4930 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4931 macros having broken.
4931 macros having broken.
4932
4932
4933 2002-05-21 Fernando Perez <fperez@colorado.edu>
4933 2002-05-21 Fernando Perez <fperez@colorado.edu>
4934
4934
4935 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4935 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4936 introduced logging bug: all history before logging started was
4936 introduced logging bug: all history before logging started was
4937 being written one character per line! This came from the redesign
4937 being written one character per line! This came from the redesign
4938 of the input history as a special list which slices to strings,
4938 of the input history as a special list which slices to strings,
4939 not to lists.
4939 not to lists.
4940
4940
4941 2002-05-20 Fernando Perez <fperez@colorado.edu>
4941 2002-05-20 Fernando Perez <fperez@colorado.edu>
4942
4942
4943 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4943 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4944 be an attribute of all classes in this module. The design of these
4944 be an attribute of all classes in this module. The design of these
4945 classes needs some serious overhauling.
4945 classes needs some serious overhauling.
4946
4946
4947 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4947 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4948 which was ignoring '_' in option names.
4948 which was ignoring '_' in option names.
4949
4949
4950 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4950 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4951 'Verbose_novars' to 'Context' and made it the new default. It's a
4951 'Verbose_novars' to 'Context' and made it the new default. It's a
4952 bit more readable and also safer than verbose.
4952 bit more readable and also safer than verbose.
4953
4953
4954 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4954 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4955 triple-quoted strings.
4955 triple-quoted strings.
4956
4956
4957 * IPython/OInspect.py (__all__): new module exposing the object
4957 * IPython/OInspect.py (__all__): new module exposing the object
4958 introspection facilities. Now the corresponding magics are dummy
4958 introspection facilities. Now the corresponding magics are dummy
4959 wrappers around this. Having this module will make it much easier
4959 wrappers around this. Having this module will make it much easier
4960 to put these functions into our modified pdb.
4960 to put these functions into our modified pdb.
4961 This new object inspector system uses the new colorizing module,
4961 This new object inspector system uses the new colorizing module,
4962 so source code and other things are nicely syntax highlighted.
4962 so source code and other things are nicely syntax highlighted.
4963
4963
4964 2002-05-18 Fernando Perez <fperez@colorado.edu>
4964 2002-05-18 Fernando Perez <fperez@colorado.edu>
4965
4965
4966 * IPython/ColorANSI.py: Split the coloring tools into a separate
4966 * IPython/ColorANSI.py: Split the coloring tools into a separate
4967 module so I can use them in other code easier (they were part of
4967 module so I can use them in other code easier (they were part of
4968 ultraTB).
4968 ultraTB).
4969
4969
4970 2002-05-17 Fernando Perez <fperez@colorado.edu>
4970 2002-05-17 Fernando Perez <fperez@colorado.edu>
4971
4971
4972 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4972 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4973 fixed it to set the global 'g' also to the called instance, as
4973 fixed it to set the global 'g' also to the called instance, as
4974 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4974 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4975 user's 'g' variables).
4975 user's 'g' variables).
4976
4976
4977 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4977 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4978 global variables (aliases to _ih,_oh) so that users which expect
4978 global variables (aliases to _ih,_oh) so that users which expect
4979 In[5] or Out[7] to work aren't unpleasantly surprised.
4979 In[5] or Out[7] to work aren't unpleasantly surprised.
4980 (InputList.__getslice__): new class to allow executing slices of
4980 (InputList.__getslice__): new class to allow executing slices of
4981 input history directly. Very simple class, complements the use of
4981 input history directly. Very simple class, complements the use of
4982 macros.
4982 macros.
4983
4983
4984 2002-05-16 Fernando Perez <fperez@colorado.edu>
4984 2002-05-16 Fernando Perez <fperez@colorado.edu>
4985
4985
4986 * setup.py (docdirbase): make doc directory be just doc/IPython
4986 * setup.py (docdirbase): make doc directory be just doc/IPython
4987 without version numbers, it will reduce clutter for users.
4987 without version numbers, it will reduce clutter for users.
4988
4988
4989 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4989 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4990 execfile call to prevent possible memory leak. See for details:
4990 execfile call to prevent possible memory leak. See for details:
4991 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4991 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4992
4992
4993 2002-05-15 Fernando Perez <fperez@colorado.edu>
4993 2002-05-15 Fernando Perez <fperez@colorado.edu>
4994
4994
4995 * IPython/Magic.py (Magic.magic_psource): made the object
4995 * IPython/Magic.py (Magic.magic_psource): made the object
4996 introspection names be more standard: pdoc, pdef, pfile and
4996 introspection names be more standard: pdoc, pdef, pfile and
4997 psource. They all print/page their output, and it makes
4997 psource. They all print/page their output, and it makes
4998 remembering them easier. Kept old names for compatibility as
4998 remembering them easier. Kept old names for compatibility as
4999 aliases.
4999 aliases.
5000
5000
5001 2002-05-14 Fernando Perez <fperez@colorado.edu>
5001 2002-05-14 Fernando Perez <fperez@colorado.edu>
5002
5002
5003 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5003 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5004 what the mouse problem was. The trick is to use gnuplot with temp
5004 what the mouse problem was. The trick is to use gnuplot with temp
5005 files and NOT with pipes (for data communication), because having
5005 files and NOT with pipes (for data communication), because having
5006 both pipes and the mouse on is bad news.
5006 both pipes and the mouse on is bad news.
5007
5007
5008 2002-05-13 Fernando Perez <fperez@colorado.edu>
5008 2002-05-13 Fernando Perez <fperez@colorado.edu>
5009
5009
5010 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5010 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5011 bug. Information would be reported about builtins even when
5011 bug. Information would be reported about builtins even when
5012 user-defined functions overrode them.
5012 user-defined functions overrode them.
5013
5013
5014 2002-05-11 Fernando Perez <fperez@colorado.edu>
5014 2002-05-11 Fernando Perez <fperez@colorado.edu>
5015
5015
5016 * IPython/__init__.py (__all__): removed FlexCompleter from
5016 * IPython/__init__.py (__all__): removed FlexCompleter from
5017 __all__ so that things don't fail in platforms without readline.
5017 __all__ so that things don't fail in platforms without readline.
5018
5018
5019 2002-05-10 Fernando Perez <fperez@colorado.edu>
5019 2002-05-10 Fernando Perez <fperez@colorado.edu>
5020
5020
5021 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5021 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5022 it requires Numeric, effectively making Numeric a dependency for
5022 it requires Numeric, effectively making Numeric a dependency for
5023 IPython.
5023 IPython.
5024
5024
5025 * Released 0.2.13
5025 * Released 0.2.13
5026
5026
5027 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5027 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5028 profiler interface. Now all the major options from the profiler
5028 profiler interface. Now all the major options from the profiler
5029 module are directly supported in IPython, both for single
5029 module are directly supported in IPython, both for single
5030 expressions (@prun) and for full programs (@run -p).
5030 expressions (@prun) and for full programs (@run -p).
5031
5031
5032 2002-05-09 Fernando Perez <fperez@colorado.edu>
5032 2002-05-09 Fernando Perez <fperez@colorado.edu>
5033
5033
5034 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5034 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5035 magic properly formatted for screen.
5035 magic properly formatted for screen.
5036
5036
5037 * setup.py (make_shortcut): Changed things to put pdf version in
5037 * setup.py (make_shortcut): Changed things to put pdf version in
5038 doc/ instead of doc/manual (had to change lyxport a bit).
5038 doc/ instead of doc/manual (had to change lyxport a bit).
5039
5039
5040 * IPython/Magic.py (Profile.string_stats): made profile runs go
5040 * IPython/Magic.py (Profile.string_stats): made profile runs go
5041 through pager (they are long and a pager allows searching, saving,
5041 through pager (they are long and a pager allows searching, saving,
5042 etc.)
5042 etc.)
5043
5043
5044 2002-05-08 Fernando Perez <fperez@colorado.edu>
5044 2002-05-08 Fernando Perez <fperez@colorado.edu>
5045
5045
5046 * Released 0.2.12
5046 * Released 0.2.12
5047
5047
5048 2002-05-06 Fernando Perez <fperez@colorado.edu>
5048 2002-05-06 Fernando Perez <fperez@colorado.edu>
5049
5049
5050 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5050 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5051 introduced); 'hist n1 n2' was broken.
5051 introduced); 'hist n1 n2' was broken.
5052 (Magic.magic_pdb): added optional on/off arguments to @pdb
5052 (Magic.magic_pdb): added optional on/off arguments to @pdb
5053 (Magic.magic_run): added option -i to @run, which executes code in
5053 (Magic.magic_run): added option -i to @run, which executes code in
5054 the IPython namespace instead of a clean one. Also added @irun as
5054 the IPython namespace instead of a clean one. Also added @irun as
5055 an alias to @run -i.
5055 an alias to @run -i.
5056
5056
5057 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5057 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5058 fixed (it didn't really do anything, the namespaces were wrong).
5058 fixed (it didn't really do anything, the namespaces were wrong).
5059
5059
5060 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5060 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5061
5061
5062 * IPython/__init__.py (__all__): Fixed package namespace, now
5062 * IPython/__init__.py (__all__): Fixed package namespace, now
5063 'import IPython' does give access to IPython.<all> as
5063 'import IPython' does give access to IPython.<all> as
5064 expected. Also renamed __release__ to Release.
5064 expected. Also renamed __release__ to Release.
5065
5065
5066 * IPython/Debugger.py (__license__): created new Pdb class which
5066 * IPython/Debugger.py (__license__): created new Pdb class which
5067 functions like a drop-in for the normal pdb.Pdb but does NOT
5067 functions like a drop-in for the normal pdb.Pdb but does NOT
5068 import readline by default. This way it doesn't muck up IPython's
5068 import readline by default. This way it doesn't muck up IPython's
5069 readline handling, and now tab-completion finally works in the
5069 readline handling, and now tab-completion finally works in the
5070 debugger -- sort of. It completes things globally visible, but the
5070 debugger -- sort of. It completes things globally visible, but the
5071 completer doesn't track the stack as pdb walks it. That's a bit
5071 completer doesn't track the stack as pdb walks it. That's a bit
5072 tricky, and I'll have to implement it later.
5072 tricky, and I'll have to implement it later.
5073
5073
5074 2002-05-05 Fernando Perez <fperez@colorado.edu>
5074 2002-05-05 Fernando Perez <fperez@colorado.edu>
5075
5075
5076 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5076 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5077 magic docstrings when printed via ? (explicit \'s were being
5077 magic docstrings when printed via ? (explicit \'s were being
5078 printed).
5078 printed).
5079
5079
5080 * IPython/ipmaker.py (make_IPython): fixed namespace
5080 * IPython/ipmaker.py (make_IPython): fixed namespace
5081 identification bug. Now variables loaded via logs or command-line
5081 identification bug. Now variables loaded via logs or command-line
5082 files are recognized in the interactive namespace by @who.
5082 files are recognized in the interactive namespace by @who.
5083
5083
5084 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5084 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5085 log replay system stemming from the string form of Structs.
5085 log replay system stemming from the string form of Structs.
5086
5086
5087 * IPython/Magic.py (Macro.__init__): improved macros to properly
5087 * IPython/Magic.py (Macro.__init__): improved macros to properly
5088 handle magic commands in them.
5088 handle magic commands in them.
5089 (Magic.magic_logstart): usernames are now expanded so 'logstart
5089 (Magic.magic_logstart): usernames are now expanded so 'logstart
5090 ~/mylog' now works.
5090 ~/mylog' now works.
5091
5091
5092 * IPython/iplib.py (complete): fixed bug where paths starting with
5092 * IPython/iplib.py (complete): fixed bug where paths starting with
5093 '/' would be completed as magic names.
5093 '/' would be completed as magic names.
5094
5094
5095 2002-05-04 Fernando Perez <fperez@colorado.edu>
5095 2002-05-04 Fernando Perez <fperez@colorado.edu>
5096
5096
5097 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5097 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5098 allow running full programs under the profiler's control.
5098 allow running full programs under the profiler's control.
5099
5099
5100 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5100 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5101 mode to report exceptions verbosely but without formatting
5101 mode to report exceptions verbosely but without formatting
5102 variables. This addresses the issue of ipython 'freezing' (it's
5102 variables. This addresses the issue of ipython 'freezing' (it's
5103 not frozen, but caught in an expensive formatting loop) when huge
5103 not frozen, but caught in an expensive formatting loop) when huge
5104 variables are in the context of an exception.
5104 variables are in the context of an exception.
5105 (VerboseTB.text): Added '--->' markers at line where exception was
5105 (VerboseTB.text): Added '--->' markers at line where exception was
5106 triggered. Much clearer to read, especially in NoColor modes.
5106 triggered. Much clearer to read, especially in NoColor modes.
5107
5107
5108 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5108 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5109 implemented in reverse when changing to the new parse_options().
5109 implemented in reverse when changing to the new parse_options().
5110
5110
5111 2002-05-03 Fernando Perez <fperez@colorado.edu>
5111 2002-05-03 Fernando Perez <fperez@colorado.edu>
5112
5112
5113 * IPython/Magic.py (Magic.parse_options): new function so that
5113 * IPython/Magic.py (Magic.parse_options): new function so that
5114 magics can parse options easier.
5114 magics can parse options easier.
5115 (Magic.magic_prun): new function similar to profile.run(),
5115 (Magic.magic_prun): new function similar to profile.run(),
5116 suggested by Chris Hart.
5116 suggested by Chris Hart.
5117 (Magic.magic_cd): fixed behavior so that it only changes if
5117 (Magic.magic_cd): fixed behavior so that it only changes if
5118 directory actually is in history.
5118 directory actually is in history.
5119
5119
5120 * IPython/usage.py (__doc__): added information about potential
5120 * IPython/usage.py (__doc__): added information about potential
5121 slowness of Verbose exception mode when there are huge data
5121 slowness of Verbose exception mode when there are huge data
5122 structures to be formatted (thanks to Archie Paulson).
5122 structures to be formatted (thanks to Archie Paulson).
5123
5123
5124 * IPython/ipmaker.py (make_IPython): Changed default logging
5124 * IPython/ipmaker.py (make_IPython): Changed default logging
5125 (when simply called with -log) to use curr_dir/ipython.log in
5125 (when simply called with -log) to use curr_dir/ipython.log in
5126 rotate mode. Fixed crash which was occuring with -log before
5126 rotate mode. Fixed crash which was occuring with -log before
5127 (thanks to Jim Boyle).
5127 (thanks to Jim Boyle).
5128
5128
5129 2002-05-01 Fernando Perez <fperez@colorado.edu>
5129 2002-05-01 Fernando Perez <fperez@colorado.edu>
5130
5130
5131 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5131 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5132 was nasty -- though somewhat of a corner case).
5132 was nasty -- though somewhat of a corner case).
5133
5133
5134 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5134 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5135 text (was a bug).
5135 text (was a bug).
5136
5136
5137 2002-04-30 Fernando Perez <fperez@colorado.edu>
5137 2002-04-30 Fernando Perez <fperez@colorado.edu>
5138
5138
5139 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5139 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5140 a print after ^D or ^C from the user so that the In[] prompt
5140 a print after ^D or ^C from the user so that the In[] prompt
5141 doesn't over-run the gnuplot one.
5141 doesn't over-run the gnuplot one.
5142
5142
5143 2002-04-29 Fernando Perez <fperez@colorado.edu>
5143 2002-04-29 Fernando Perez <fperez@colorado.edu>
5144
5144
5145 * Released 0.2.10
5145 * Released 0.2.10
5146
5146
5147 * IPython/__release__.py (version): get date dynamically.
5147 * IPython/__release__.py (version): get date dynamically.
5148
5148
5149 * Misc. documentation updates thanks to Arnd's comments. Also ran
5149 * Misc. documentation updates thanks to Arnd's comments. Also ran
5150 a full spellcheck on the manual (hadn't been done in a while).
5150 a full spellcheck on the manual (hadn't been done in a while).
5151
5151
5152 2002-04-27 Fernando Perez <fperez@colorado.edu>
5152 2002-04-27 Fernando Perez <fperez@colorado.edu>
5153
5153
5154 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5154 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5155 starting a log in mid-session would reset the input history list.
5155 starting a log in mid-session would reset the input history list.
5156
5156
5157 2002-04-26 Fernando Perez <fperez@colorado.edu>
5157 2002-04-26 Fernando Perez <fperez@colorado.edu>
5158
5158
5159 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5159 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5160 all files were being included in an update. Now anything in
5160 all files were being included in an update. Now anything in
5161 UserConfig that matches [A-Za-z]*.py will go (this excludes
5161 UserConfig that matches [A-Za-z]*.py will go (this excludes
5162 __init__.py)
5162 __init__.py)
5163
5163
5164 2002-04-25 Fernando Perez <fperez@colorado.edu>
5164 2002-04-25 Fernando Perez <fperez@colorado.edu>
5165
5165
5166 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5166 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5167 to __builtins__ so that any form of embedded or imported code can
5167 to __builtins__ so that any form of embedded or imported code can
5168 test for being inside IPython.
5168 test for being inside IPython.
5169
5169
5170 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5170 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5171 changed to GnuplotMagic because it's now an importable module,
5171 changed to GnuplotMagic because it's now an importable module,
5172 this makes the name follow that of the standard Gnuplot module.
5172 this makes the name follow that of the standard Gnuplot module.
5173 GnuplotMagic can now be loaded at any time in mid-session.
5173 GnuplotMagic can now be loaded at any time in mid-session.
5174
5174
5175 2002-04-24 Fernando Perez <fperez@colorado.edu>
5175 2002-04-24 Fernando Perez <fperez@colorado.edu>
5176
5176
5177 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5177 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5178 the globals (IPython has its own namespace) and the
5178 the globals (IPython has its own namespace) and the
5179 PhysicalQuantity stuff is much better anyway.
5179 PhysicalQuantity stuff is much better anyway.
5180
5180
5181 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5181 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5182 embedding example to standard user directory for
5182 embedding example to standard user directory for
5183 distribution. Also put it in the manual.
5183 distribution. Also put it in the manual.
5184
5184
5185 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5185 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5186 instance as first argument (so it doesn't rely on some obscure
5186 instance as first argument (so it doesn't rely on some obscure
5187 hidden global).
5187 hidden global).
5188
5188
5189 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5189 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5190 delimiters. While it prevents ().TAB from working, it allows
5190 delimiters. While it prevents ().TAB from working, it allows
5191 completions in open (... expressions. This is by far a more common
5191 completions in open (... expressions. This is by far a more common
5192 case.
5192 case.
5193
5193
5194 2002-04-23 Fernando Perez <fperez@colorado.edu>
5194 2002-04-23 Fernando Perez <fperez@colorado.edu>
5195
5195
5196 * IPython/Extensions/InterpreterPasteInput.py: new
5196 * IPython/Extensions/InterpreterPasteInput.py: new
5197 syntax-processing module for pasting lines with >>> or ... at the
5197 syntax-processing module for pasting lines with >>> or ... at the
5198 start.
5198 start.
5199
5199
5200 * IPython/Extensions/PhysicalQ_Interactive.py
5200 * IPython/Extensions/PhysicalQ_Interactive.py
5201 (PhysicalQuantityInteractive.__int__): fixed to work with either
5201 (PhysicalQuantityInteractive.__int__): fixed to work with either
5202 Numeric or math.
5202 Numeric or math.
5203
5203
5204 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5204 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5205 provided profiles. Now we have:
5205 provided profiles. Now we have:
5206 -math -> math module as * and cmath with its own namespace.
5206 -math -> math module as * and cmath with its own namespace.
5207 -numeric -> Numeric as *, plus gnuplot & grace
5207 -numeric -> Numeric as *, plus gnuplot & grace
5208 -physics -> same as before
5208 -physics -> same as before
5209
5209
5210 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5210 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5211 user-defined magics wouldn't be found by @magic if they were
5211 user-defined magics wouldn't be found by @magic if they were
5212 defined as class methods. Also cleaned up the namespace search
5212 defined as class methods. Also cleaned up the namespace search
5213 logic and the string building (to use %s instead of many repeated
5213 logic and the string building (to use %s instead of many repeated
5214 string adds).
5214 string adds).
5215
5215
5216 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5216 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5217 of user-defined magics to operate with class methods (cleaner, in
5217 of user-defined magics to operate with class methods (cleaner, in
5218 line with the gnuplot code).
5218 line with the gnuplot code).
5219
5219
5220 2002-04-22 Fernando Perez <fperez@colorado.edu>
5220 2002-04-22 Fernando Perez <fperez@colorado.edu>
5221
5221
5222 * setup.py: updated dependency list so that manual is updated when
5222 * setup.py: updated dependency list so that manual is updated when
5223 all included files change.
5223 all included files change.
5224
5224
5225 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5225 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5226 the delimiter removal option (the fix is ugly right now).
5226 the delimiter removal option (the fix is ugly right now).
5227
5227
5228 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5228 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5229 all of the math profile (quicker loading, no conflict between
5229 all of the math profile (quicker loading, no conflict between
5230 g-9.8 and g-gnuplot).
5230 g-9.8 and g-gnuplot).
5231
5231
5232 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5232 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5233 name of post-mortem files to IPython_crash_report.txt.
5233 name of post-mortem files to IPython_crash_report.txt.
5234
5234
5235 * Cleanup/update of the docs. Added all the new readline info and
5235 * Cleanup/update of the docs. Added all the new readline info and
5236 formatted all lists as 'real lists'.
5236 formatted all lists as 'real lists'.
5237
5237
5238 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5238 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5239 tab-completion options, since the full readline parse_and_bind is
5239 tab-completion options, since the full readline parse_and_bind is
5240 now accessible.
5240 now accessible.
5241
5241
5242 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5242 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5243 handling of readline options. Now users can specify any string to
5243 handling of readline options. Now users can specify any string to
5244 be passed to parse_and_bind(), as well as the delimiters to be
5244 be passed to parse_and_bind(), as well as the delimiters to be
5245 removed.
5245 removed.
5246 (InteractiveShell.__init__): Added __name__ to the global
5246 (InteractiveShell.__init__): Added __name__ to the global
5247 namespace so that things like Itpl which rely on its existence
5247 namespace so that things like Itpl which rely on its existence
5248 don't crash.
5248 don't crash.
5249 (InteractiveShell._prefilter): Defined the default with a _ so
5249 (InteractiveShell._prefilter): Defined the default with a _ so
5250 that prefilter() is easier to override, while the default one
5250 that prefilter() is easier to override, while the default one
5251 remains available.
5251 remains available.
5252
5252
5253 2002-04-18 Fernando Perez <fperez@colorado.edu>
5253 2002-04-18 Fernando Perez <fperez@colorado.edu>
5254
5254
5255 * Added information about pdb in the docs.
5255 * Added information about pdb in the docs.
5256
5256
5257 2002-04-17 Fernando Perez <fperez@colorado.edu>
5257 2002-04-17 Fernando Perez <fperez@colorado.edu>
5258
5258
5259 * IPython/ipmaker.py (make_IPython): added rc_override option to
5259 * IPython/ipmaker.py (make_IPython): added rc_override option to
5260 allow passing config options at creation time which may override
5260 allow passing config options at creation time which may override
5261 anything set in the config files or command line. This is
5261 anything set in the config files or command line. This is
5262 particularly useful for configuring embedded instances.
5262 particularly useful for configuring embedded instances.
5263
5263
5264 2002-04-15 Fernando Perez <fperez@colorado.edu>
5264 2002-04-15 Fernando Perez <fperez@colorado.edu>
5265
5265
5266 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5266 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5267 crash embedded instances because of the input cache falling out of
5267 crash embedded instances because of the input cache falling out of
5268 sync with the output counter.
5268 sync with the output counter.
5269
5269
5270 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5270 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5271 mode which calls pdb after an uncaught exception in IPython itself.
5271 mode which calls pdb after an uncaught exception in IPython itself.
5272
5272
5273 2002-04-14 Fernando Perez <fperez@colorado.edu>
5273 2002-04-14 Fernando Perez <fperez@colorado.edu>
5274
5274
5275 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5275 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5276 readline, fix it back after each call.
5276 readline, fix it back after each call.
5277
5277
5278 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5278 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5279 method to force all access via __call__(), which guarantees that
5279 method to force all access via __call__(), which guarantees that
5280 traceback references are properly deleted.
5280 traceback references are properly deleted.
5281
5281
5282 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5282 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5283 improve printing when pprint is in use.
5283 improve printing when pprint is in use.
5284
5284
5285 2002-04-13 Fernando Perez <fperez@colorado.edu>
5285 2002-04-13 Fernando Perez <fperez@colorado.edu>
5286
5286
5287 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5287 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5288 exceptions aren't caught anymore. If the user triggers one, he
5288 exceptions aren't caught anymore. If the user triggers one, he
5289 should know why he's doing it and it should go all the way up,
5289 should know why he's doing it and it should go all the way up,
5290 just like any other exception. So now @abort will fully kill the
5290 just like any other exception. So now @abort will fully kill the
5291 embedded interpreter and the embedding code (unless that happens
5291 embedded interpreter and the embedding code (unless that happens
5292 to catch SystemExit).
5292 to catch SystemExit).
5293
5293
5294 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5294 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5295 and a debugger() method to invoke the interactive pdb debugger
5295 and a debugger() method to invoke the interactive pdb debugger
5296 after printing exception information. Also added the corresponding
5296 after printing exception information. Also added the corresponding
5297 -pdb option and @pdb magic to control this feature, and updated
5297 -pdb option and @pdb magic to control this feature, and updated
5298 the docs. After a suggestion from Christopher Hart
5298 the docs. After a suggestion from Christopher Hart
5299 (hart-AT-caltech.edu).
5299 (hart-AT-caltech.edu).
5300
5300
5301 2002-04-12 Fernando Perez <fperez@colorado.edu>
5301 2002-04-12 Fernando Perez <fperez@colorado.edu>
5302
5302
5303 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5303 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5304 the exception handlers defined by the user (not the CrashHandler)
5304 the exception handlers defined by the user (not the CrashHandler)
5305 so that user exceptions don't trigger an ipython bug report.
5305 so that user exceptions don't trigger an ipython bug report.
5306
5306
5307 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5307 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5308 configurable (it should have always been so).
5308 configurable (it should have always been so).
5309
5309
5310 2002-03-26 Fernando Perez <fperez@colorado.edu>
5310 2002-03-26 Fernando Perez <fperez@colorado.edu>
5311
5311
5312 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5312 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5313 and there to fix embedding namespace issues. This should all be
5313 and there to fix embedding namespace issues. This should all be
5314 done in a more elegant way.
5314 done in a more elegant way.
5315
5315
5316 2002-03-25 Fernando Perez <fperez@colorado.edu>
5316 2002-03-25 Fernando Perez <fperez@colorado.edu>
5317
5317
5318 * IPython/genutils.py (get_home_dir): Try to make it work under
5318 * IPython/genutils.py (get_home_dir): Try to make it work under
5319 win9x also.
5319 win9x also.
5320
5320
5321 2002-03-20 Fernando Perez <fperez@colorado.edu>
5321 2002-03-20 Fernando Perez <fperez@colorado.edu>
5322
5322
5323 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5323 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5324 sys.displayhook untouched upon __init__.
5324 sys.displayhook untouched upon __init__.
5325
5325
5326 2002-03-19 Fernando Perez <fperez@colorado.edu>
5326 2002-03-19 Fernando Perez <fperez@colorado.edu>
5327
5327
5328 * Released 0.2.9 (for embedding bug, basically).
5328 * Released 0.2.9 (for embedding bug, basically).
5329
5329
5330 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5330 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5331 exceptions so that enclosing shell's state can be restored.
5331 exceptions so that enclosing shell's state can be restored.
5332
5332
5333 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5333 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5334 naming conventions in the .ipython/ dir.
5334 naming conventions in the .ipython/ dir.
5335
5335
5336 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5336 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5337 from delimiters list so filenames with - in them get expanded.
5337 from delimiters list so filenames with - in them get expanded.
5338
5338
5339 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5339 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5340 sys.displayhook not being properly restored after an embedded call.
5340 sys.displayhook not being properly restored after an embedded call.
5341
5341
5342 2002-03-18 Fernando Perez <fperez@colorado.edu>
5342 2002-03-18 Fernando Perez <fperez@colorado.edu>
5343
5343
5344 * Released 0.2.8
5344 * Released 0.2.8
5345
5345
5346 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5346 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5347 some files weren't being included in a -upgrade.
5347 some files weren't being included in a -upgrade.
5348 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5348 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5349 on' so that the first tab completes.
5349 on' so that the first tab completes.
5350 (InteractiveShell.handle_magic): fixed bug with spaces around
5350 (InteractiveShell.handle_magic): fixed bug with spaces around
5351 quotes breaking many magic commands.
5351 quotes breaking many magic commands.
5352
5352
5353 * setup.py: added note about ignoring the syntax error messages at
5353 * setup.py: added note about ignoring the syntax error messages at
5354 installation.
5354 installation.
5355
5355
5356 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5356 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5357 streamlining the gnuplot interface, now there's only one magic @gp.
5357 streamlining the gnuplot interface, now there's only one magic @gp.
5358
5358
5359 2002-03-17 Fernando Perez <fperez@colorado.edu>
5359 2002-03-17 Fernando Perez <fperez@colorado.edu>
5360
5360
5361 * IPython/UserConfig/magic_gnuplot.py: new name for the
5361 * IPython/UserConfig/magic_gnuplot.py: new name for the
5362 example-magic_pm.py file. Much enhanced system, now with a shell
5362 example-magic_pm.py file. Much enhanced system, now with a shell
5363 for communicating directly with gnuplot, one command at a time.
5363 for communicating directly with gnuplot, one command at a time.
5364
5364
5365 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5365 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5366 setting __name__=='__main__'.
5366 setting __name__=='__main__'.
5367
5367
5368 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5368 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5369 mini-shell for accessing gnuplot from inside ipython. Should
5369 mini-shell for accessing gnuplot from inside ipython. Should
5370 extend it later for grace access too. Inspired by Arnd's
5370 extend it later for grace access too. Inspired by Arnd's
5371 suggestion.
5371 suggestion.
5372
5372
5373 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5373 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5374 calling magic functions with () in their arguments. Thanks to Arnd
5374 calling magic functions with () in their arguments. Thanks to Arnd
5375 Baecker for pointing this to me.
5375 Baecker for pointing this to me.
5376
5376
5377 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5377 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5378 infinitely for integer or complex arrays (only worked with floats).
5378 infinitely for integer or complex arrays (only worked with floats).
5379
5379
5380 2002-03-16 Fernando Perez <fperez@colorado.edu>
5380 2002-03-16 Fernando Perez <fperez@colorado.edu>
5381
5381
5382 * setup.py: Merged setup and setup_windows into a single script
5382 * setup.py: Merged setup and setup_windows into a single script
5383 which properly handles things for windows users.
5383 which properly handles things for windows users.
5384
5384
5385 2002-03-15 Fernando Perez <fperez@colorado.edu>
5385 2002-03-15 Fernando Perez <fperez@colorado.edu>
5386
5386
5387 * Big change to the manual: now the magics are all automatically
5387 * Big change to the manual: now the magics are all automatically
5388 documented. This information is generated from their docstrings
5388 documented. This information is generated from their docstrings
5389 and put in a latex file included by the manual lyx file. This way
5389 and put in a latex file included by the manual lyx file. This way
5390 we get always up to date information for the magics. The manual
5390 we get always up to date information for the magics. The manual
5391 now also has proper version information, also auto-synced.
5391 now also has proper version information, also auto-synced.
5392
5392
5393 For this to work, an undocumented --magic_docstrings option was added.
5393 For this to work, an undocumented --magic_docstrings option was added.
5394
5394
5395 2002-03-13 Fernando Perez <fperez@colorado.edu>
5395 2002-03-13 Fernando Perez <fperez@colorado.edu>
5396
5396
5397 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5397 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5398 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5398 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5399
5399
5400 2002-03-12 Fernando Perez <fperez@colorado.edu>
5400 2002-03-12 Fernando Perez <fperez@colorado.edu>
5401
5401
5402 * IPython/ultraTB.py (TermColors): changed color escapes again to
5402 * IPython/ultraTB.py (TermColors): changed color escapes again to
5403 fix the (old, reintroduced) line-wrapping bug. Basically, if
5403 fix the (old, reintroduced) line-wrapping bug. Basically, if
5404 \001..\002 aren't given in the color escapes, lines get wrapped
5404 \001..\002 aren't given in the color escapes, lines get wrapped
5405 weirdly. But giving those screws up old xterms and emacs terms. So
5405 weirdly. But giving those screws up old xterms and emacs terms. So
5406 I added some logic for emacs terms to be ok, but I can't identify old
5406 I added some logic for emacs terms to be ok, but I can't identify old
5407 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5407 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5408
5408
5409 2002-03-10 Fernando Perez <fperez@colorado.edu>
5409 2002-03-10 Fernando Perez <fperez@colorado.edu>
5410
5410
5411 * IPython/usage.py (__doc__): Various documentation cleanups and
5411 * IPython/usage.py (__doc__): Various documentation cleanups and
5412 updates, both in usage docstrings and in the manual.
5412 updates, both in usage docstrings and in the manual.
5413
5413
5414 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5414 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5415 handling of caching. Set minimum acceptabe value for having a
5415 handling of caching. Set minimum acceptabe value for having a
5416 cache at 20 values.
5416 cache at 20 values.
5417
5417
5418 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5418 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5419 install_first_time function to a method, renamed it and added an
5419 install_first_time function to a method, renamed it and added an
5420 'upgrade' mode. Now people can update their config directory with
5420 'upgrade' mode. Now people can update their config directory with
5421 a simple command line switch (-upgrade, also new).
5421 a simple command line switch (-upgrade, also new).
5422
5422
5423 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5423 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5424 @file (convenient for automagic users under Python >= 2.2).
5424 @file (convenient for automagic users under Python >= 2.2).
5425 Removed @files (it seemed more like a plural than an abbrev. of
5425 Removed @files (it seemed more like a plural than an abbrev. of
5426 'file show').
5426 'file show').
5427
5427
5428 * IPython/iplib.py (install_first_time): Fixed crash if there were
5428 * IPython/iplib.py (install_first_time): Fixed crash if there were
5429 backup files ('~') in .ipython/ install directory.
5429 backup files ('~') in .ipython/ install directory.
5430
5430
5431 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5431 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5432 system. Things look fine, but these changes are fairly
5432 system. Things look fine, but these changes are fairly
5433 intrusive. Test them for a few days.
5433 intrusive. Test them for a few days.
5434
5434
5435 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5435 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5436 the prompts system. Now all in/out prompt strings are user
5436 the prompts system. Now all in/out prompt strings are user
5437 controllable. This is particularly useful for embedding, as one
5437 controllable. This is particularly useful for embedding, as one
5438 can tag embedded instances with particular prompts.
5438 can tag embedded instances with particular prompts.
5439
5439
5440 Also removed global use of sys.ps1/2, which now allows nested
5440 Also removed global use of sys.ps1/2, which now allows nested
5441 embeddings without any problems. Added command-line options for
5441 embeddings without any problems. Added command-line options for
5442 the prompt strings.
5442 the prompt strings.
5443
5443
5444 2002-03-08 Fernando Perez <fperez@colorado.edu>
5444 2002-03-08 Fernando Perez <fperez@colorado.edu>
5445
5445
5446 * IPython/UserConfig/example-embed-short.py (ipshell): added
5446 * IPython/UserConfig/example-embed-short.py (ipshell): added
5447 example file with the bare minimum code for embedding.
5447 example file with the bare minimum code for embedding.
5448
5448
5449 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5449 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5450 functionality for the embeddable shell to be activated/deactivated
5450 functionality for the embeddable shell to be activated/deactivated
5451 either globally or at each call.
5451 either globally or at each call.
5452
5452
5453 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5453 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5454 rewriting the prompt with '--->' for auto-inputs with proper
5454 rewriting the prompt with '--->' for auto-inputs with proper
5455 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5455 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5456 this is handled by the prompts class itself, as it should.
5456 this is handled by the prompts class itself, as it should.
5457
5457
5458 2002-03-05 Fernando Perez <fperez@colorado.edu>
5458 2002-03-05 Fernando Perez <fperez@colorado.edu>
5459
5459
5460 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5460 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5461 @logstart to avoid name clashes with the math log function.
5461 @logstart to avoid name clashes with the math log function.
5462
5462
5463 * Big updates to X/Emacs section of the manual.
5463 * Big updates to X/Emacs section of the manual.
5464
5464
5465 * Removed ipython_emacs. Milan explained to me how to pass
5465 * Removed ipython_emacs. Milan explained to me how to pass
5466 arguments to ipython through Emacs. Some day I'm going to end up
5466 arguments to ipython through Emacs. Some day I'm going to end up
5467 learning some lisp...
5467 learning some lisp...
5468
5468
5469 2002-03-04 Fernando Perez <fperez@colorado.edu>
5469 2002-03-04 Fernando Perez <fperez@colorado.edu>
5470
5470
5471 * IPython/ipython_emacs: Created script to be used as the
5471 * IPython/ipython_emacs: Created script to be used as the
5472 py-python-command Emacs variable so we can pass IPython
5472 py-python-command Emacs variable so we can pass IPython
5473 parameters. I can't figure out how to tell Emacs directly to pass
5473 parameters. I can't figure out how to tell Emacs directly to pass
5474 parameters to IPython, so a dummy shell script will do it.
5474 parameters to IPython, so a dummy shell script will do it.
5475
5475
5476 Other enhancements made for things to work better under Emacs'
5476 Other enhancements made for things to work better under Emacs'
5477 various types of terminals. Many thanks to Milan Zamazal
5477 various types of terminals. Many thanks to Milan Zamazal
5478 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5478 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5479
5479
5480 2002-03-01 Fernando Perez <fperez@colorado.edu>
5480 2002-03-01 Fernando Perez <fperez@colorado.edu>
5481
5481
5482 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5482 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5483 that loading of readline is now optional. This gives better
5483 that loading of readline is now optional. This gives better
5484 control to emacs users.
5484 control to emacs users.
5485
5485
5486 * IPython/ultraTB.py (__date__): Modified color escape sequences
5486 * IPython/ultraTB.py (__date__): Modified color escape sequences
5487 and now things work fine under xterm and in Emacs' term buffers
5487 and now things work fine under xterm and in Emacs' term buffers
5488 (though not shell ones). Well, in emacs you get colors, but all
5488 (though not shell ones). Well, in emacs you get colors, but all
5489 seem to be 'light' colors (no difference between dark and light
5489 seem to be 'light' colors (no difference between dark and light
5490 ones). But the garbage chars are gone, and also in xterms. It
5490 ones). But the garbage chars are gone, and also in xterms. It
5491 seems that now I'm using 'cleaner' ansi sequences.
5491 seems that now I'm using 'cleaner' ansi sequences.
5492
5492
5493 2002-02-21 Fernando Perez <fperez@colorado.edu>
5493 2002-02-21 Fernando Perez <fperez@colorado.edu>
5494
5494
5495 * Released 0.2.7 (mainly to publish the scoping fix).
5495 * Released 0.2.7 (mainly to publish the scoping fix).
5496
5496
5497 * IPython/Logger.py (Logger.logstate): added. A corresponding
5497 * IPython/Logger.py (Logger.logstate): added. A corresponding
5498 @logstate magic was created.
5498 @logstate magic was created.
5499
5499
5500 * IPython/Magic.py: fixed nested scoping problem under Python
5500 * IPython/Magic.py: fixed nested scoping problem under Python
5501 2.1.x (automagic wasn't working).
5501 2.1.x (automagic wasn't working).
5502
5502
5503 2002-02-20 Fernando Perez <fperez@colorado.edu>
5503 2002-02-20 Fernando Perez <fperez@colorado.edu>
5504
5504
5505 * Released 0.2.6.
5505 * Released 0.2.6.
5506
5506
5507 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5507 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5508 option so that logs can come out without any headers at all.
5508 option so that logs can come out without any headers at all.
5509
5509
5510 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5510 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5511 SciPy.
5511 SciPy.
5512
5512
5513 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5513 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5514 that embedded IPython calls don't require vars() to be explicitly
5514 that embedded IPython calls don't require vars() to be explicitly
5515 passed. Now they are extracted from the caller's frame (code
5515 passed. Now they are extracted from the caller's frame (code
5516 snatched from Eric Jones' weave). Added better documentation to
5516 snatched from Eric Jones' weave). Added better documentation to
5517 the section on embedding and the example file.
5517 the section on embedding and the example file.
5518
5518
5519 * IPython/genutils.py (page): Changed so that under emacs, it just
5519 * IPython/genutils.py (page): Changed so that under emacs, it just
5520 prints the string. You can then page up and down in the emacs
5520 prints the string. You can then page up and down in the emacs
5521 buffer itself. This is how the builtin help() works.
5521 buffer itself. This is how the builtin help() works.
5522
5522
5523 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5523 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5524 macro scoping: macros need to be executed in the user's namespace
5524 macro scoping: macros need to be executed in the user's namespace
5525 to work as if they had been typed by the user.
5525 to work as if they had been typed by the user.
5526
5526
5527 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5527 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5528 execute automatically (no need to type 'exec...'). They then
5528 execute automatically (no need to type 'exec...'). They then
5529 behave like 'true macros'. The printing system was also modified
5529 behave like 'true macros'. The printing system was also modified
5530 for this to work.
5530 for this to work.
5531
5531
5532 2002-02-19 Fernando Perez <fperez@colorado.edu>
5532 2002-02-19 Fernando Perez <fperez@colorado.edu>
5533
5533
5534 * IPython/genutils.py (page_file): new function for paging files
5534 * IPython/genutils.py (page_file): new function for paging files
5535 in an OS-independent way. Also necessary for file viewing to work
5535 in an OS-independent way. Also necessary for file viewing to work
5536 well inside Emacs buffers.
5536 well inside Emacs buffers.
5537 (page): Added checks for being in an emacs buffer.
5537 (page): Added checks for being in an emacs buffer.
5538 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5538 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5539 same bug in iplib.
5539 same bug in iplib.
5540
5540
5541 2002-02-18 Fernando Perez <fperez@colorado.edu>
5541 2002-02-18 Fernando Perez <fperez@colorado.edu>
5542
5542
5543 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5543 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5544 of readline so that IPython can work inside an Emacs buffer.
5544 of readline so that IPython can work inside an Emacs buffer.
5545
5545
5546 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5546 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5547 method signatures (they weren't really bugs, but it looks cleaner
5547 method signatures (they weren't really bugs, but it looks cleaner
5548 and keeps PyChecker happy).
5548 and keeps PyChecker happy).
5549
5549
5550 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5550 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5551 for implementing various user-defined hooks. Currently only
5551 for implementing various user-defined hooks. Currently only
5552 display is done.
5552 display is done.
5553
5553
5554 * IPython/Prompts.py (CachedOutput._display): changed display
5554 * IPython/Prompts.py (CachedOutput._display): changed display
5555 functions so that they can be dynamically changed by users easily.
5555 functions so that they can be dynamically changed by users easily.
5556
5556
5557 * IPython/Extensions/numeric_formats.py (num_display): added an
5557 * IPython/Extensions/numeric_formats.py (num_display): added an
5558 extension for printing NumPy arrays in flexible manners. It
5558 extension for printing NumPy arrays in flexible manners. It
5559 doesn't do anything yet, but all the structure is in
5559 doesn't do anything yet, but all the structure is in
5560 place. Ultimately the plan is to implement output format control
5560 place. Ultimately the plan is to implement output format control
5561 like in Octave.
5561 like in Octave.
5562
5562
5563 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5563 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5564 methods are found at run-time by all the automatic machinery.
5564 methods are found at run-time by all the automatic machinery.
5565
5565
5566 2002-02-17 Fernando Perez <fperez@colorado.edu>
5566 2002-02-17 Fernando Perez <fperez@colorado.edu>
5567
5567
5568 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5568 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5569 whole file a little.
5569 whole file a little.
5570
5570
5571 * ToDo: closed this document. Now there's a new_design.lyx
5571 * ToDo: closed this document. Now there's a new_design.lyx
5572 document for all new ideas. Added making a pdf of it for the
5572 document for all new ideas. Added making a pdf of it for the
5573 end-user distro.
5573 end-user distro.
5574
5574
5575 * IPython/Logger.py (Logger.switch_log): Created this to replace
5575 * IPython/Logger.py (Logger.switch_log): Created this to replace
5576 logon() and logoff(). It also fixes a nasty crash reported by
5576 logon() and logoff(). It also fixes a nasty crash reported by
5577 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5577 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5578
5578
5579 * IPython/iplib.py (complete): got auto-completion to work with
5579 * IPython/iplib.py (complete): got auto-completion to work with
5580 automagic (I had wanted this for a long time).
5580 automagic (I had wanted this for a long time).
5581
5581
5582 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5582 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5583 to @file, since file() is now a builtin and clashes with automagic
5583 to @file, since file() is now a builtin and clashes with automagic
5584 for @file.
5584 for @file.
5585
5585
5586 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5586 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5587 of this was previously in iplib, which had grown to more than 2000
5587 of this was previously in iplib, which had grown to more than 2000
5588 lines, way too long. No new functionality, but it makes managing
5588 lines, way too long. No new functionality, but it makes managing
5589 the code a bit easier.
5589 the code a bit easier.
5590
5590
5591 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5591 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5592 information to crash reports.
5592 information to crash reports.
5593
5593
5594 2002-02-12 Fernando Perez <fperez@colorado.edu>
5594 2002-02-12 Fernando Perez <fperez@colorado.edu>
5595
5595
5596 * Released 0.2.5.
5596 * Released 0.2.5.
5597
5597
5598 2002-02-11 Fernando Perez <fperez@colorado.edu>
5598 2002-02-11 Fernando Perez <fperez@colorado.edu>
5599
5599
5600 * Wrote a relatively complete Windows installer. It puts
5600 * Wrote a relatively complete Windows installer. It puts
5601 everything in place, creates Start Menu entries and fixes the
5601 everything in place, creates Start Menu entries and fixes the
5602 color issues. Nothing fancy, but it works.
5602 color issues. Nothing fancy, but it works.
5603
5603
5604 2002-02-10 Fernando Perez <fperez@colorado.edu>
5604 2002-02-10 Fernando Perez <fperez@colorado.edu>
5605
5605
5606 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5606 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5607 os.path.expanduser() call so that we can type @run ~/myfile.py and
5607 os.path.expanduser() call so that we can type @run ~/myfile.py and
5608 have thigs work as expected.
5608 have thigs work as expected.
5609
5609
5610 * IPython/genutils.py (page): fixed exception handling so things
5610 * IPython/genutils.py (page): fixed exception handling so things
5611 work both in Unix and Windows correctly. Quitting a pager triggers
5611 work both in Unix and Windows correctly. Quitting a pager triggers
5612 an IOError/broken pipe in Unix, and in windows not finding a pager
5612 an IOError/broken pipe in Unix, and in windows not finding a pager
5613 is also an IOError, so I had to actually look at the return value
5613 is also an IOError, so I had to actually look at the return value
5614 of the exception, not just the exception itself. Should be ok now.
5614 of the exception, not just the exception itself. Should be ok now.
5615
5615
5616 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5616 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5617 modified to allow case-insensitive color scheme changes.
5617 modified to allow case-insensitive color scheme changes.
5618
5618
5619 2002-02-09 Fernando Perez <fperez@colorado.edu>
5619 2002-02-09 Fernando Perez <fperez@colorado.edu>
5620
5620
5621 * IPython/genutils.py (native_line_ends): new function to leave
5621 * IPython/genutils.py (native_line_ends): new function to leave
5622 user config files with os-native line-endings.
5622 user config files with os-native line-endings.
5623
5623
5624 * README and manual updates.
5624 * README and manual updates.
5625
5625
5626 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5626 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5627 instead of StringType to catch Unicode strings.
5627 instead of StringType to catch Unicode strings.
5628
5628
5629 * IPython/genutils.py (filefind): fixed bug for paths with
5629 * IPython/genutils.py (filefind): fixed bug for paths with
5630 embedded spaces (very common in Windows).
5630 embedded spaces (very common in Windows).
5631
5631
5632 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5632 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5633 files under Windows, so that they get automatically associated
5633 files under Windows, so that they get automatically associated
5634 with a text editor. Windows makes it a pain to handle
5634 with a text editor. Windows makes it a pain to handle
5635 extension-less files.
5635 extension-less files.
5636
5636
5637 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5637 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5638 warning about readline only occur for Posix. In Windows there's no
5638 warning about readline only occur for Posix. In Windows there's no
5639 way to get readline, so why bother with the warning.
5639 way to get readline, so why bother with the warning.
5640
5640
5641 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5641 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5642 for __str__ instead of dir(self), since dir() changed in 2.2.
5642 for __str__ instead of dir(self), since dir() changed in 2.2.
5643
5643
5644 * Ported to Windows! Tested on XP, I suspect it should work fine
5644 * Ported to Windows! Tested on XP, I suspect it should work fine
5645 on NT/2000, but I don't think it will work on 98 et al. That
5645 on NT/2000, but I don't think it will work on 98 et al. That
5646 series of Windows is such a piece of junk anyway that I won't try
5646 series of Windows is such a piece of junk anyway that I won't try
5647 porting it there. The XP port was straightforward, showed a few
5647 porting it there. The XP port was straightforward, showed a few
5648 bugs here and there (fixed all), in particular some string
5648 bugs here and there (fixed all), in particular some string
5649 handling stuff which required considering Unicode strings (which
5649 handling stuff which required considering Unicode strings (which
5650 Windows uses). This is good, but hasn't been too tested :) No
5650 Windows uses). This is good, but hasn't been too tested :) No
5651 fancy installer yet, I'll put a note in the manual so people at
5651 fancy installer yet, I'll put a note in the manual so people at
5652 least make manually a shortcut.
5652 least make manually a shortcut.
5653
5653
5654 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5654 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5655 into a single one, "colors". This now controls both prompt and
5655 into a single one, "colors". This now controls both prompt and
5656 exception color schemes, and can be changed both at startup
5656 exception color schemes, and can be changed both at startup
5657 (either via command-line switches or via ipythonrc files) and at
5657 (either via command-line switches or via ipythonrc files) and at
5658 runtime, with @colors.
5658 runtime, with @colors.
5659 (Magic.magic_run): renamed @prun to @run and removed the old
5659 (Magic.magic_run): renamed @prun to @run and removed the old
5660 @run. The two were too similar to warrant keeping both.
5660 @run. The two were too similar to warrant keeping both.
5661
5661
5662 2002-02-03 Fernando Perez <fperez@colorado.edu>
5662 2002-02-03 Fernando Perez <fperez@colorado.edu>
5663
5663
5664 * IPython/iplib.py (install_first_time): Added comment on how to
5664 * IPython/iplib.py (install_first_time): Added comment on how to
5665 configure the color options for first-time users. Put a <return>
5665 configure the color options for first-time users. Put a <return>
5666 request at the end so that small-terminal users get a chance to
5666 request at the end so that small-terminal users get a chance to
5667 read the startup info.
5667 read the startup info.
5668
5668
5669 2002-01-23 Fernando Perez <fperez@colorado.edu>
5669 2002-01-23 Fernando Perez <fperez@colorado.edu>
5670
5670
5671 * IPython/iplib.py (CachedOutput.update): Changed output memory
5671 * IPython/iplib.py (CachedOutput.update): Changed output memory
5672 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5672 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5673 input history we still use _i. Did this b/c these variable are
5673 input history we still use _i. Did this b/c these variable are
5674 very commonly used in interactive work, so the less we need to
5674 very commonly used in interactive work, so the less we need to
5675 type the better off we are.
5675 type the better off we are.
5676 (Magic.magic_prun): updated @prun to better handle the namespaces
5676 (Magic.magic_prun): updated @prun to better handle the namespaces
5677 the file will run in, including a fix for __name__ not being set
5677 the file will run in, including a fix for __name__ not being set
5678 before.
5678 before.
5679
5679
5680 2002-01-20 Fernando Perez <fperez@colorado.edu>
5680 2002-01-20 Fernando Perez <fperez@colorado.edu>
5681
5681
5682 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5682 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5683 extra garbage for Python 2.2. Need to look more carefully into
5683 extra garbage for Python 2.2. Need to look more carefully into
5684 this later.
5684 this later.
5685
5685
5686 2002-01-19 Fernando Perez <fperez@colorado.edu>
5686 2002-01-19 Fernando Perez <fperez@colorado.edu>
5687
5687
5688 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5688 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5689 display SyntaxError exceptions properly formatted when they occur
5689 display SyntaxError exceptions properly formatted when they occur
5690 (they can be triggered by imported code).
5690 (they can be triggered by imported code).
5691
5691
5692 2002-01-18 Fernando Perez <fperez@colorado.edu>
5692 2002-01-18 Fernando Perez <fperez@colorado.edu>
5693
5693
5694 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5694 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5695 SyntaxError exceptions are reported nicely formatted, instead of
5695 SyntaxError exceptions are reported nicely formatted, instead of
5696 spitting out only offset information as before.
5696 spitting out only offset information as before.
5697 (Magic.magic_prun): Added the @prun function for executing
5697 (Magic.magic_prun): Added the @prun function for executing
5698 programs with command line args inside IPython.
5698 programs with command line args inside IPython.
5699
5699
5700 2002-01-16 Fernando Perez <fperez@colorado.edu>
5700 2002-01-16 Fernando Perez <fperez@colorado.edu>
5701
5701
5702 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5702 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5703 to *not* include the last item given in a range. This brings their
5703 to *not* include the last item given in a range. This brings their
5704 behavior in line with Python's slicing:
5704 behavior in line with Python's slicing:
5705 a[n1:n2] -> a[n1]...a[n2-1]
5705 a[n1:n2] -> a[n1]...a[n2-1]
5706 It may be a bit less convenient, but I prefer to stick to Python's
5706 It may be a bit less convenient, but I prefer to stick to Python's
5707 conventions *everywhere*, so users never have to wonder.
5707 conventions *everywhere*, so users never have to wonder.
5708 (Magic.magic_macro): Added @macro function to ease the creation of
5708 (Magic.magic_macro): Added @macro function to ease the creation of
5709 macros.
5709 macros.
5710
5710
5711 2002-01-05 Fernando Perez <fperez@colorado.edu>
5711 2002-01-05 Fernando Perez <fperez@colorado.edu>
5712
5712
5713 * Released 0.2.4.
5713 * Released 0.2.4.
5714
5714
5715 * IPython/iplib.py (Magic.magic_pdef):
5715 * IPython/iplib.py (Magic.magic_pdef):
5716 (InteractiveShell.safe_execfile): report magic lines and error
5716 (InteractiveShell.safe_execfile): report magic lines and error
5717 lines without line numbers so one can easily copy/paste them for
5717 lines without line numbers so one can easily copy/paste them for
5718 re-execution.
5718 re-execution.
5719
5719
5720 * Updated manual with recent changes.
5720 * Updated manual with recent changes.
5721
5721
5722 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5722 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5723 docstring printing when class? is called. Very handy for knowing
5723 docstring printing when class? is called. Very handy for knowing
5724 how to create class instances (as long as __init__ is well
5724 how to create class instances (as long as __init__ is well
5725 documented, of course :)
5725 documented, of course :)
5726 (Magic.magic_doc): print both class and constructor docstrings.
5726 (Magic.magic_doc): print both class and constructor docstrings.
5727 (Magic.magic_pdef): give constructor info if passed a class and
5727 (Magic.magic_pdef): give constructor info if passed a class and
5728 __call__ info for callable object instances.
5728 __call__ info for callable object instances.
5729
5729
5730 2002-01-04 Fernando Perez <fperez@colorado.edu>
5730 2002-01-04 Fernando Perez <fperez@colorado.edu>
5731
5731
5732 * Made deep_reload() off by default. It doesn't always work
5732 * Made deep_reload() off by default. It doesn't always work
5733 exactly as intended, so it's probably safer to have it off. It's
5733 exactly as intended, so it's probably safer to have it off. It's
5734 still available as dreload() anyway, so nothing is lost.
5734 still available as dreload() anyway, so nothing is lost.
5735
5735
5736 2002-01-02 Fernando Perez <fperez@colorado.edu>
5736 2002-01-02 Fernando Perez <fperez@colorado.edu>
5737
5737
5738 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5738 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5739 so I wanted an updated release).
5739 so I wanted an updated release).
5740
5740
5741 2001-12-27 Fernando Perez <fperez@colorado.edu>
5741 2001-12-27 Fernando Perez <fperez@colorado.edu>
5742
5742
5743 * IPython/iplib.py (InteractiveShell.interact): Added the original
5743 * IPython/iplib.py (InteractiveShell.interact): Added the original
5744 code from 'code.py' for this module in order to change the
5744 code from 'code.py' for this module in order to change the
5745 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5745 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5746 the history cache would break when the user hit Ctrl-C, and
5746 the history cache would break when the user hit Ctrl-C, and
5747 interact() offers no way to add any hooks to it.
5747 interact() offers no way to add any hooks to it.
5748
5748
5749 2001-12-23 Fernando Perez <fperez@colorado.edu>
5749 2001-12-23 Fernando Perez <fperez@colorado.edu>
5750
5750
5751 * setup.py: added check for 'MANIFEST' before trying to remove
5751 * setup.py: added check for 'MANIFEST' before trying to remove
5752 it. Thanks to Sean Reifschneider.
5752 it. Thanks to Sean Reifschneider.
5753
5753
5754 2001-12-22 Fernando Perez <fperez@colorado.edu>
5754 2001-12-22 Fernando Perez <fperez@colorado.edu>
5755
5755
5756 * Released 0.2.2.
5756 * Released 0.2.2.
5757
5757
5758 * Finished (reasonably) writing the manual. Later will add the
5758 * Finished (reasonably) writing the manual. Later will add the
5759 python-standard navigation stylesheets, but for the time being
5759 python-standard navigation stylesheets, but for the time being
5760 it's fairly complete. Distribution will include html and pdf
5760 it's fairly complete. Distribution will include html and pdf
5761 versions.
5761 versions.
5762
5762
5763 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5763 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5764 (MayaVi author).
5764 (MayaVi author).
5765
5765
5766 2001-12-21 Fernando Perez <fperez@colorado.edu>
5766 2001-12-21 Fernando Perez <fperez@colorado.edu>
5767
5767
5768 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5768 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5769 good public release, I think (with the manual and the distutils
5769 good public release, I think (with the manual and the distutils
5770 installer). The manual can use some work, but that can go
5770 installer). The manual can use some work, but that can go
5771 slowly. Otherwise I think it's quite nice for end users. Next
5771 slowly. Otherwise I think it's quite nice for end users. Next
5772 summer, rewrite the guts of it...
5772 summer, rewrite the guts of it...
5773
5773
5774 * Changed format of ipythonrc files to use whitespace as the
5774 * Changed format of ipythonrc files to use whitespace as the
5775 separator instead of an explicit '='. Cleaner.
5775 separator instead of an explicit '='. Cleaner.
5776
5776
5777 2001-12-20 Fernando Perez <fperez@colorado.edu>
5777 2001-12-20 Fernando Perez <fperez@colorado.edu>
5778
5778
5779 * Started a manual in LyX. For now it's just a quick merge of the
5779 * Started a manual in LyX. For now it's just a quick merge of the
5780 various internal docstrings and READMEs. Later it may grow into a
5780 various internal docstrings and READMEs. Later it may grow into a
5781 nice, full-blown manual.
5781 nice, full-blown manual.
5782
5782
5783 * Set up a distutils based installer. Installation should now be
5783 * Set up a distutils based installer. Installation should now be
5784 trivially simple for end-users.
5784 trivially simple for end-users.
5785
5785
5786 2001-12-11 Fernando Perez <fperez@colorado.edu>
5786 2001-12-11 Fernando Perez <fperez@colorado.edu>
5787
5787
5788 * Released 0.2.0. First public release, announced it at
5788 * Released 0.2.0. First public release, announced it at
5789 comp.lang.python. From now on, just bugfixes...
5789 comp.lang.python. From now on, just bugfixes...
5790
5790
5791 * Went through all the files, set copyright/license notices and
5791 * Went through all the files, set copyright/license notices and
5792 cleaned up things. Ready for release.
5792 cleaned up things. Ready for release.
5793
5793
5794 2001-12-10 Fernando Perez <fperez@colorado.edu>
5794 2001-12-10 Fernando Perez <fperez@colorado.edu>
5795
5795
5796 * Changed the first-time installer not to use tarfiles. It's more
5796 * Changed the first-time installer not to use tarfiles. It's more
5797 robust now and less unix-dependent. Also makes it easier for
5797 robust now and less unix-dependent. Also makes it easier for
5798 people to later upgrade versions.
5798 people to later upgrade versions.
5799
5799
5800 * Changed @exit to @abort to reflect the fact that it's pretty
5800 * Changed @exit to @abort to reflect the fact that it's pretty
5801 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5801 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5802 becomes significant only when IPyhton is embedded: in that case,
5802 becomes significant only when IPyhton is embedded: in that case,
5803 C-D closes IPython only, but @abort kills the enclosing program
5803 C-D closes IPython only, but @abort kills the enclosing program
5804 too (unless it had called IPython inside a try catching
5804 too (unless it had called IPython inside a try catching
5805 SystemExit).
5805 SystemExit).
5806
5806
5807 * Created Shell module which exposes the actuall IPython Shell
5807 * Created Shell module which exposes the actuall IPython Shell
5808 classes, currently the normal and the embeddable one. This at
5808 classes, currently the normal and the embeddable one. This at
5809 least offers a stable interface we won't need to change when
5809 least offers a stable interface we won't need to change when
5810 (later) the internals are rewritten. That rewrite will be confined
5810 (later) the internals are rewritten. That rewrite will be confined
5811 to iplib and ipmaker, but the Shell interface should remain as is.
5811 to iplib and ipmaker, but the Shell interface should remain as is.
5812
5812
5813 * Added embed module which offers an embeddable IPShell object,
5813 * Added embed module which offers an embeddable IPShell object,
5814 useful to fire up IPython *inside* a running program. Great for
5814 useful to fire up IPython *inside* a running program. Great for
5815 debugging or dynamical data analysis.
5815 debugging or dynamical data analysis.
5816
5816
5817 2001-12-08 Fernando Perez <fperez@colorado.edu>
5817 2001-12-08 Fernando Perez <fperez@colorado.edu>
5818
5818
5819 * Fixed small bug preventing seeing info from methods of defined
5819 * Fixed small bug preventing seeing info from methods of defined
5820 objects (incorrect namespace in _ofind()).
5820 objects (incorrect namespace in _ofind()).
5821
5821
5822 * Documentation cleanup. Moved the main usage docstrings to a
5822 * Documentation cleanup. Moved the main usage docstrings to a
5823 separate file, usage.py (cleaner to maintain, and hopefully in the
5823 separate file, usage.py (cleaner to maintain, and hopefully in the
5824 future some perlpod-like way of producing interactive, man and
5824 future some perlpod-like way of producing interactive, man and
5825 html docs out of it will be found).
5825 html docs out of it will be found).
5826
5826
5827 * Added @profile to see your profile at any time.
5827 * Added @profile to see your profile at any time.
5828
5828
5829 * Added @p as an alias for 'print'. It's especially convenient if
5829 * Added @p as an alias for 'print'. It's especially convenient if
5830 using automagic ('p x' prints x).
5830 using automagic ('p x' prints x).
5831
5831
5832 * Small cleanups and fixes after a pychecker run.
5832 * Small cleanups and fixes after a pychecker run.
5833
5833
5834 * Changed the @cd command to handle @cd - and @cd -<n> for
5834 * Changed the @cd command to handle @cd - and @cd -<n> for
5835 visiting any directory in _dh.
5835 visiting any directory in _dh.
5836
5836
5837 * Introduced _dh, a history of visited directories. @dhist prints
5837 * Introduced _dh, a history of visited directories. @dhist prints
5838 it out with numbers.
5838 it out with numbers.
5839
5839
5840 2001-12-07 Fernando Perez <fperez@colorado.edu>
5840 2001-12-07 Fernando Perez <fperez@colorado.edu>
5841
5841
5842 * Released 0.1.22
5842 * Released 0.1.22
5843
5843
5844 * Made initialization a bit more robust against invalid color
5844 * Made initialization a bit more robust against invalid color
5845 options in user input (exit, not traceback-crash).
5845 options in user input (exit, not traceback-crash).
5846
5846
5847 * Changed the bug crash reporter to write the report only in the
5847 * Changed the bug crash reporter to write the report only in the
5848 user's .ipython directory. That way IPython won't litter people's
5848 user's .ipython directory. That way IPython won't litter people's
5849 hard disks with crash files all over the place. Also print on
5849 hard disks with crash files all over the place. Also print on
5850 screen the necessary mail command.
5850 screen the necessary mail command.
5851
5851
5852 * With the new ultraTB, implemented LightBG color scheme for light
5852 * With the new ultraTB, implemented LightBG color scheme for light
5853 background terminals. A lot of people like white backgrounds, so I
5853 background terminals. A lot of people like white backgrounds, so I
5854 guess we should at least give them something readable.
5854 guess we should at least give them something readable.
5855
5855
5856 2001-12-06 Fernando Perez <fperez@colorado.edu>
5856 2001-12-06 Fernando Perez <fperez@colorado.edu>
5857
5857
5858 * Modified the structure of ultraTB. Now there's a proper class
5858 * Modified the structure of ultraTB. Now there's a proper class
5859 for tables of color schemes which allow adding schemes easily and
5859 for tables of color schemes which allow adding schemes easily and
5860 switching the active scheme without creating a new instance every
5860 switching the active scheme without creating a new instance every
5861 time (which was ridiculous). The syntax for creating new schemes
5861 time (which was ridiculous). The syntax for creating new schemes
5862 is also cleaner. I think ultraTB is finally done, with a clean
5862 is also cleaner. I think ultraTB is finally done, with a clean
5863 class structure. Names are also much cleaner (now there's proper
5863 class structure. Names are also much cleaner (now there's proper
5864 color tables, no need for every variable to also have 'color' in
5864 color tables, no need for every variable to also have 'color' in
5865 its name).
5865 its name).
5866
5866
5867 * Broke down genutils into separate files. Now genutils only
5867 * Broke down genutils into separate files. Now genutils only
5868 contains utility functions, and classes have been moved to their
5868 contains utility functions, and classes have been moved to their
5869 own files (they had enough independent functionality to warrant
5869 own files (they had enough independent functionality to warrant
5870 it): ConfigLoader, OutputTrap, Struct.
5870 it): ConfigLoader, OutputTrap, Struct.
5871
5871
5872 2001-12-05 Fernando Perez <fperez@colorado.edu>
5872 2001-12-05 Fernando Perez <fperez@colorado.edu>
5873
5873
5874 * IPython turns 21! Released version 0.1.21, as a candidate for
5874 * IPython turns 21! Released version 0.1.21, as a candidate for
5875 public consumption. If all goes well, release in a few days.
5875 public consumption. If all goes well, release in a few days.
5876
5876
5877 * Fixed path bug (files in Extensions/ directory wouldn't be found
5877 * Fixed path bug (files in Extensions/ directory wouldn't be found
5878 unless IPython/ was explicitly in sys.path).
5878 unless IPython/ was explicitly in sys.path).
5879
5879
5880 * Extended the FlexCompleter class as MagicCompleter to allow
5880 * Extended the FlexCompleter class as MagicCompleter to allow
5881 completion of @-starting lines.
5881 completion of @-starting lines.
5882
5882
5883 * Created __release__.py file as a central repository for release
5883 * Created __release__.py file as a central repository for release
5884 info that other files can read from.
5884 info that other files can read from.
5885
5885
5886 * Fixed small bug in logging: when logging was turned on in
5886 * Fixed small bug in logging: when logging was turned on in
5887 mid-session, old lines with special meanings (!@?) were being
5887 mid-session, old lines with special meanings (!@?) were being
5888 logged without the prepended comment, which is necessary since
5888 logged without the prepended comment, which is necessary since
5889 they are not truly valid python syntax. This should make session
5889 they are not truly valid python syntax. This should make session
5890 restores produce less errors.
5890 restores produce less errors.
5891
5891
5892 * The namespace cleanup forced me to make a FlexCompleter class
5892 * The namespace cleanup forced me to make a FlexCompleter class
5893 which is nothing but a ripoff of rlcompleter, but with selectable
5893 which is nothing but a ripoff of rlcompleter, but with selectable
5894 namespace (rlcompleter only works in __main__.__dict__). I'll try
5894 namespace (rlcompleter only works in __main__.__dict__). I'll try
5895 to submit a note to the authors to see if this change can be
5895 to submit a note to the authors to see if this change can be
5896 incorporated in future rlcompleter releases (Dec.6: done)
5896 incorporated in future rlcompleter releases (Dec.6: done)
5897
5897
5898 * More fixes to namespace handling. It was a mess! Now all
5898 * More fixes to namespace handling. It was a mess! Now all
5899 explicit references to __main__.__dict__ are gone (except when
5899 explicit references to __main__.__dict__ are gone (except when
5900 really needed) and everything is handled through the namespace
5900 really needed) and everything is handled through the namespace
5901 dicts in the IPython instance. We seem to be getting somewhere
5901 dicts in the IPython instance. We seem to be getting somewhere
5902 with this, finally...
5902 with this, finally...
5903
5903
5904 * Small documentation updates.
5904 * Small documentation updates.
5905
5905
5906 * Created the Extensions directory under IPython (with an
5906 * Created the Extensions directory under IPython (with an
5907 __init__.py). Put the PhysicalQ stuff there. This directory should
5907 __init__.py). Put the PhysicalQ stuff there. This directory should
5908 be used for all special-purpose extensions.
5908 be used for all special-purpose extensions.
5909
5909
5910 * File renaming:
5910 * File renaming:
5911 ipythonlib --> ipmaker
5911 ipythonlib --> ipmaker
5912 ipplib --> iplib
5912 ipplib --> iplib
5913 This makes a bit more sense in terms of what these files actually do.
5913 This makes a bit more sense in terms of what these files actually do.
5914
5914
5915 * Moved all the classes and functions in ipythonlib to ipplib, so
5915 * Moved all the classes and functions in ipythonlib to ipplib, so
5916 now ipythonlib only has make_IPython(). This will ease up its
5916 now ipythonlib only has make_IPython(). This will ease up its
5917 splitting in smaller functional chunks later.
5917 splitting in smaller functional chunks later.
5918
5918
5919 * Cleaned up (done, I think) output of @whos. Better column
5919 * Cleaned up (done, I think) output of @whos. Better column
5920 formatting, and now shows str(var) for as much as it can, which is
5920 formatting, and now shows str(var) for as much as it can, which is
5921 typically what one gets with a 'print var'.
5921 typically what one gets with a 'print var'.
5922
5922
5923 2001-12-04 Fernando Perez <fperez@colorado.edu>
5923 2001-12-04 Fernando Perez <fperez@colorado.edu>
5924
5924
5925 * Fixed namespace problems. Now builtin/IPyhton/user names get
5925 * Fixed namespace problems. Now builtin/IPyhton/user names get
5926 properly reported in their namespace. Internal namespace handling
5926 properly reported in their namespace. Internal namespace handling
5927 is finally getting decent (not perfect yet, but much better than
5927 is finally getting decent (not perfect yet, but much better than
5928 the ad-hoc mess we had).
5928 the ad-hoc mess we had).
5929
5929
5930 * Removed -exit option. If people just want to run a python
5930 * Removed -exit option. If people just want to run a python
5931 script, that's what the normal interpreter is for. Less
5931 script, that's what the normal interpreter is for. Less
5932 unnecessary options, less chances for bugs.
5932 unnecessary options, less chances for bugs.
5933
5933
5934 * Added a crash handler which generates a complete post-mortem if
5934 * Added a crash handler which generates a complete post-mortem if
5935 IPython crashes. This will help a lot in tracking bugs down the
5935 IPython crashes. This will help a lot in tracking bugs down the
5936 road.
5936 road.
5937
5937
5938 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5938 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5939 which were boud to functions being reassigned would bypass the
5939 which were boud to functions being reassigned would bypass the
5940 logger, breaking the sync of _il with the prompt counter. This
5940 logger, breaking the sync of _il with the prompt counter. This
5941 would then crash IPython later when a new line was logged.
5941 would then crash IPython later when a new line was logged.
5942
5942
5943 2001-12-02 Fernando Perez <fperez@colorado.edu>
5943 2001-12-02 Fernando Perez <fperez@colorado.edu>
5944
5944
5945 * Made IPython a package. This means people don't have to clutter
5945 * Made IPython a package. This means people don't have to clutter
5946 their sys.path with yet another directory. Changed the INSTALL
5946 their sys.path with yet another directory. Changed the INSTALL
5947 file accordingly.
5947 file accordingly.
5948
5948
5949 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5949 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5950 sorts its output (so @who shows it sorted) and @whos formats the
5950 sorts its output (so @who shows it sorted) and @whos formats the
5951 table according to the width of the first column. Nicer, easier to
5951 table according to the width of the first column. Nicer, easier to
5952 read. Todo: write a generic table_format() which takes a list of
5952 read. Todo: write a generic table_format() which takes a list of
5953 lists and prints it nicely formatted, with optional row/column
5953 lists and prints it nicely formatted, with optional row/column
5954 separators and proper padding and justification.
5954 separators and proper padding and justification.
5955
5955
5956 * Released 0.1.20
5956 * Released 0.1.20
5957
5957
5958 * Fixed bug in @log which would reverse the inputcache list (a
5958 * Fixed bug in @log which would reverse the inputcache list (a
5959 copy operation was missing).
5959 copy operation was missing).
5960
5960
5961 * Code cleanup. @config was changed to use page(). Better, since
5961 * Code cleanup. @config was changed to use page(). Better, since
5962 its output is always quite long.
5962 its output is always quite long.
5963
5963
5964 * Itpl is back as a dependency. I was having too many problems
5964 * Itpl is back as a dependency. I was having too many problems
5965 getting the parametric aliases to work reliably, and it's just
5965 getting the parametric aliases to work reliably, and it's just
5966 easier to code weird string operations with it than playing %()s
5966 easier to code weird string operations with it than playing %()s
5967 games. It's only ~6k, so I don't think it's too big a deal.
5967 games. It's only ~6k, so I don't think it's too big a deal.
5968
5968
5969 * Found (and fixed) a very nasty bug with history. !lines weren't
5969 * Found (and fixed) a very nasty bug with history. !lines weren't
5970 getting cached, and the out of sync caches would crash
5970 getting cached, and the out of sync caches would crash
5971 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5971 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5972 division of labor a bit better. Bug fixed, cleaner structure.
5972 division of labor a bit better. Bug fixed, cleaner structure.
5973
5973
5974 2001-12-01 Fernando Perez <fperez@colorado.edu>
5974 2001-12-01 Fernando Perez <fperez@colorado.edu>
5975
5975
5976 * Released 0.1.19
5976 * Released 0.1.19
5977
5977
5978 * Added option -n to @hist to prevent line number printing. Much
5978 * Added option -n to @hist to prevent line number printing. Much
5979 easier to copy/paste code this way.
5979 easier to copy/paste code this way.
5980
5980
5981 * Created global _il to hold the input list. Allows easy
5981 * Created global _il to hold the input list. Allows easy
5982 re-execution of blocks of code by slicing it (inspired by Janko's
5982 re-execution of blocks of code by slicing it (inspired by Janko's
5983 comment on 'macros').
5983 comment on 'macros').
5984
5984
5985 * Small fixes and doc updates.
5985 * Small fixes and doc updates.
5986
5986
5987 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5987 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5988 much too fragile with automagic. Handles properly multi-line
5988 much too fragile with automagic. Handles properly multi-line
5989 statements and takes parameters.
5989 statements and takes parameters.
5990
5990
5991 2001-11-30 Fernando Perez <fperez@colorado.edu>
5991 2001-11-30 Fernando Perez <fperez@colorado.edu>
5992
5992
5993 * Version 0.1.18 released.
5993 * Version 0.1.18 released.
5994
5994
5995 * Fixed nasty namespace bug in initial module imports.
5995 * Fixed nasty namespace bug in initial module imports.
5996
5996
5997 * Added copyright/license notes to all code files (except
5997 * Added copyright/license notes to all code files (except
5998 DPyGetOpt). For the time being, LGPL. That could change.
5998 DPyGetOpt). For the time being, LGPL. That could change.
5999
5999
6000 * Rewrote a much nicer README, updated INSTALL, cleaned up
6000 * Rewrote a much nicer README, updated INSTALL, cleaned up
6001 ipythonrc-* samples.
6001 ipythonrc-* samples.
6002
6002
6003 * Overall code/documentation cleanup. Basically ready for
6003 * Overall code/documentation cleanup. Basically ready for
6004 release. Only remaining thing: licence decision (LGPL?).
6004 release. Only remaining thing: licence decision (LGPL?).
6005
6005
6006 * Converted load_config to a class, ConfigLoader. Now recursion
6006 * Converted load_config to a class, ConfigLoader. Now recursion
6007 control is better organized. Doesn't include the same file twice.
6007 control is better organized. Doesn't include the same file twice.
6008
6008
6009 2001-11-29 Fernando Perez <fperez@colorado.edu>
6009 2001-11-29 Fernando Perez <fperez@colorado.edu>
6010
6010
6011 * Got input history working. Changed output history variables from
6011 * Got input history working. Changed output history variables from
6012 _p to _o so that _i is for input and _o for output. Just cleaner
6012 _p to _o so that _i is for input and _o for output. Just cleaner
6013 convention.
6013 convention.
6014
6014
6015 * Implemented parametric aliases. This pretty much allows the
6015 * Implemented parametric aliases. This pretty much allows the
6016 alias system to offer full-blown shell convenience, I think.
6016 alias system to offer full-blown shell convenience, I think.
6017
6017
6018 * Version 0.1.17 released, 0.1.18 opened.
6018 * Version 0.1.17 released, 0.1.18 opened.
6019
6019
6020 * dot_ipython/ipythonrc (alias): added documentation.
6020 * dot_ipython/ipythonrc (alias): added documentation.
6021 (xcolor): Fixed small bug (xcolors -> xcolor)
6021 (xcolor): Fixed small bug (xcolors -> xcolor)
6022
6022
6023 * Changed the alias system. Now alias is a magic command to define
6023 * Changed the alias system. Now alias is a magic command to define
6024 aliases just like the shell. Rationale: the builtin magics should
6024 aliases just like the shell. Rationale: the builtin magics should
6025 be there for things deeply connected to IPython's
6025 be there for things deeply connected to IPython's
6026 architecture. And this is a much lighter system for what I think
6026 architecture. And this is a much lighter system for what I think
6027 is the really important feature: allowing users to define quickly
6027 is the really important feature: allowing users to define quickly
6028 magics that will do shell things for them, so they can customize
6028 magics that will do shell things for them, so they can customize
6029 IPython easily to match their work habits. If someone is really
6029 IPython easily to match their work habits. If someone is really
6030 desperate to have another name for a builtin alias, they can
6030 desperate to have another name for a builtin alias, they can
6031 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6031 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6032 works.
6032 works.
6033
6033
6034 2001-11-28 Fernando Perez <fperez@colorado.edu>
6034 2001-11-28 Fernando Perez <fperez@colorado.edu>
6035
6035
6036 * Changed @file so that it opens the source file at the proper
6036 * Changed @file so that it opens the source file at the proper
6037 line. Since it uses less, if your EDITOR environment is
6037 line. Since it uses less, if your EDITOR environment is
6038 configured, typing v will immediately open your editor of choice
6038 configured, typing v will immediately open your editor of choice
6039 right at the line where the object is defined. Not as quick as
6039 right at the line where the object is defined. Not as quick as
6040 having a direct @edit command, but for all intents and purposes it
6040 having a direct @edit command, but for all intents and purposes it
6041 works. And I don't have to worry about writing @edit to deal with
6041 works. And I don't have to worry about writing @edit to deal with
6042 all the editors, less does that.
6042 all the editors, less does that.
6043
6043
6044 * Version 0.1.16 released, 0.1.17 opened.
6044 * Version 0.1.16 released, 0.1.17 opened.
6045
6045
6046 * Fixed some nasty bugs in the page/page_dumb combo that could
6046 * Fixed some nasty bugs in the page/page_dumb combo that could
6047 crash IPython.
6047 crash IPython.
6048
6048
6049 2001-11-27 Fernando Perez <fperez@colorado.edu>
6049 2001-11-27 Fernando Perez <fperez@colorado.edu>
6050
6050
6051 * Version 0.1.15 released, 0.1.16 opened.
6051 * Version 0.1.15 released, 0.1.16 opened.
6052
6052
6053 * Finally got ? and ?? to work for undefined things: now it's
6053 * Finally got ? and ?? to work for undefined things: now it's
6054 possible to type {}.get? and get information about the get method
6054 possible to type {}.get? and get information about the get method
6055 of dicts, or os.path? even if only os is defined (so technically
6055 of dicts, or os.path? even if only os is defined (so technically
6056 os.path isn't). Works at any level. For example, after import os,
6056 os.path isn't). Works at any level. For example, after import os,
6057 os?, os.path?, os.path.abspath? all work. This is great, took some
6057 os?, os.path?, os.path.abspath? all work. This is great, took some
6058 work in _ofind.
6058 work in _ofind.
6059
6059
6060 * Fixed more bugs with logging. The sanest way to do it was to add
6060 * Fixed more bugs with logging. The sanest way to do it was to add
6061 to @log a 'mode' parameter. Killed two in one shot (this mode
6061 to @log a 'mode' parameter. Killed two in one shot (this mode
6062 option was a request of Janko's). I think it's finally clean
6062 option was a request of Janko's). I think it's finally clean
6063 (famous last words).
6063 (famous last words).
6064
6064
6065 * Added a page_dumb() pager which does a decent job of paging on
6065 * Added a page_dumb() pager which does a decent job of paging on
6066 screen, if better things (like less) aren't available. One less
6066 screen, if better things (like less) aren't available. One less
6067 unix dependency (someday maybe somebody will port this to
6067 unix dependency (someday maybe somebody will port this to
6068 windows).
6068 windows).
6069
6069
6070 * Fixed problem in magic_log: would lock of logging out if log
6070 * Fixed problem in magic_log: would lock of logging out if log
6071 creation failed (because it would still think it had succeeded).
6071 creation failed (because it would still think it had succeeded).
6072
6072
6073 * Improved the page() function using curses to auto-detect screen
6073 * Improved the page() function using curses to auto-detect screen
6074 size. Now it can make a much better decision on whether to print
6074 size. Now it can make a much better decision on whether to print
6075 or page a string. Option screen_length was modified: a value 0
6075 or page a string. Option screen_length was modified: a value 0
6076 means auto-detect, and that's the default now.
6076 means auto-detect, and that's the default now.
6077
6077
6078 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6078 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6079 go out. I'll test it for a few days, then talk to Janko about
6079 go out. I'll test it for a few days, then talk to Janko about
6080 licences and announce it.
6080 licences and announce it.
6081
6081
6082 * Fixed the length of the auto-generated ---> prompt which appears
6082 * Fixed the length of the auto-generated ---> prompt which appears
6083 for auto-parens and auto-quotes. Getting this right isn't trivial,
6083 for auto-parens and auto-quotes. Getting this right isn't trivial,
6084 with all the color escapes, different prompt types and optional
6084 with all the color escapes, different prompt types and optional
6085 separators. But it seems to be working in all the combinations.
6085 separators. But it seems to be working in all the combinations.
6086
6086
6087 2001-11-26 Fernando Perez <fperez@colorado.edu>
6087 2001-11-26 Fernando Perez <fperez@colorado.edu>
6088
6088
6089 * Wrote a regexp filter to get option types from the option names
6089 * Wrote a regexp filter to get option types from the option names
6090 string. This eliminates the need to manually keep two duplicate
6090 string. This eliminates the need to manually keep two duplicate
6091 lists.
6091 lists.
6092
6092
6093 * Removed the unneeded check_option_names. Now options are handled
6093 * Removed the unneeded check_option_names. Now options are handled
6094 in a much saner manner and it's easy to visually check that things
6094 in a much saner manner and it's easy to visually check that things
6095 are ok.
6095 are ok.
6096
6096
6097 * Updated version numbers on all files I modified to carry a
6097 * Updated version numbers on all files I modified to carry a
6098 notice so Janko and Nathan have clear version markers.
6098 notice so Janko and Nathan have clear version markers.
6099
6099
6100 * Updated docstring for ultraTB with my changes. I should send
6100 * Updated docstring for ultraTB with my changes. I should send
6101 this to Nathan.
6101 this to Nathan.
6102
6102
6103 * Lots of small fixes. Ran everything through pychecker again.
6103 * Lots of small fixes. Ran everything through pychecker again.
6104
6104
6105 * Made loading of deep_reload an cmd line option. If it's not too
6105 * Made loading of deep_reload an cmd line option. If it's not too
6106 kosher, now people can just disable it. With -nodeep_reload it's
6106 kosher, now people can just disable it. With -nodeep_reload it's
6107 still available as dreload(), it just won't overwrite reload().
6107 still available as dreload(), it just won't overwrite reload().
6108
6108
6109 * Moved many options to the no| form (-opt and -noopt
6109 * Moved many options to the no| form (-opt and -noopt
6110 accepted). Cleaner.
6110 accepted). Cleaner.
6111
6111
6112 * Changed magic_log so that if called with no parameters, it uses
6112 * Changed magic_log so that if called with no parameters, it uses
6113 'rotate' mode. That way auto-generated logs aren't automatically
6113 'rotate' mode. That way auto-generated logs aren't automatically
6114 over-written. For normal logs, now a backup is made if it exists
6114 over-written. For normal logs, now a backup is made if it exists
6115 (only 1 level of backups). A new 'backup' mode was added to the
6115 (only 1 level of backups). A new 'backup' mode was added to the
6116 Logger class to support this. This was a request by Janko.
6116 Logger class to support this. This was a request by Janko.
6117
6117
6118 * Added @logoff/@logon to stop/restart an active log.
6118 * Added @logoff/@logon to stop/restart an active log.
6119
6119
6120 * Fixed a lot of bugs in log saving/replay. It was pretty
6120 * Fixed a lot of bugs in log saving/replay. It was pretty
6121 broken. Now special lines (!@,/) appear properly in the command
6121 broken. Now special lines (!@,/) appear properly in the command
6122 history after a log replay.
6122 history after a log replay.
6123
6123
6124 * Tried and failed to implement full session saving via pickle. My
6124 * Tried and failed to implement full session saving via pickle. My
6125 idea was to pickle __main__.__dict__, but modules can't be
6125 idea was to pickle __main__.__dict__, but modules can't be
6126 pickled. This would be a better alternative to replaying logs, but
6126 pickled. This would be a better alternative to replaying logs, but
6127 seems quite tricky to get to work. Changed -session to be called
6127 seems quite tricky to get to work. Changed -session to be called
6128 -logplay, which more accurately reflects what it does. And if we
6128 -logplay, which more accurately reflects what it does. And if we
6129 ever get real session saving working, -session is now available.
6129 ever get real session saving working, -session is now available.
6130
6130
6131 * Implemented color schemes for prompts also. As for tracebacks,
6131 * Implemented color schemes for prompts also. As for tracebacks,
6132 currently only NoColor and Linux are supported. But now the
6132 currently only NoColor and Linux are supported. But now the
6133 infrastructure is in place, based on a generic ColorScheme
6133 infrastructure is in place, based on a generic ColorScheme
6134 class. So writing and activating new schemes both for the prompts
6134 class. So writing and activating new schemes both for the prompts
6135 and the tracebacks should be straightforward.
6135 and the tracebacks should be straightforward.
6136
6136
6137 * Version 0.1.13 released, 0.1.14 opened.
6137 * Version 0.1.13 released, 0.1.14 opened.
6138
6138
6139 * Changed handling of options for output cache. Now counter is
6139 * Changed handling of options for output cache. Now counter is
6140 hardwired starting at 1 and one specifies the maximum number of
6140 hardwired starting at 1 and one specifies the maximum number of
6141 entries *in the outcache* (not the max prompt counter). This is
6141 entries *in the outcache* (not the max prompt counter). This is
6142 much better, since many statements won't increase the cache
6142 much better, since many statements won't increase the cache
6143 count. It also eliminated some confusing options, now there's only
6143 count. It also eliminated some confusing options, now there's only
6144 one: cache_size.
6144 one: cache_size.
6145
6145
6146 * Added 'alias' magic function and magic_alias option in the
6146 * Added 'alias' magic function and magic_alias option in the
6147 ipythonrc file. Now the user can easily define whatever names he
6147 ipythonrc file. Now the user can easily define whatever names he
6148 wants for the magic functions without having to play weird
6148 wants for the magic functions without having to play weird
6149 namespace games. This gives IPython a real shell-like feel.
6149 namespace games. This gives IPython a real shell-like feel.
6150
6150
6151 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6151 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6152 @ or not).
6152 @ or not).
6153
6153
6154 This was one of the last remaining 'visible' bugs (that I know
6154 This was one of the last remaining 'visible' bugs (that I know
6155 of). I think if I can clean up the session loading so it works
6155 of). I think if I can clean up the session loading so it works
6156 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6156 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6157 about licensing).
6157 about licensing).
6158
6158
6159 2001-11-25 Fernando Perez <fperez@colorado.edu>
6159 2001-11-25 Fernando Perez <fperez@colorado.edu>
6160
6160
6161 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6161 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6162 there's a cleaner distinction between what ? and ?? show.
6162 there's a cleaner distinction between what ? and ?? show.
6163
6163
6164 * Added screen_length option. Now the user can define his own
6164 * Added screen_length option. Now the user can define his own
6165 screen size for page() operations.
6165 screen size for page() operations.
6166
6166
6167 * Implemented magic shell-like functions with automatic code
6167 * Implemented magic shell-like functions with automatic code
6168 generation. Now adding another function is just a matter of adding
6168 generation. Now adding another function is just a matter of adding
6169 an entry to a dict, and the function is dynamically generated at
6169 an entry to a dict, and the function is dynamically generated at
6170 run-time. Python has some really cool features!
6170 run-time. Python has some really cool features!
6171
6171
6172 * Renamed many options to cleanup conventions a little. Now all
6172 * Renamed many options to cleanup conventions a little. Now all
6173 are lowercase, and only underscores where needed. Also in the code
6173 are lowercase, and only underscores where needed. Also in the code
6174 option name tables are clearer.
6174 option name tables are clearer.
6175
6175
6176 * Changed prompts a little. Now input is 'In [n]:' instead of
6176 * Changed prompts a little. Now input is 'In [n]:' instead of
6177 'In[n]:='. This allows it the numbers to be aligned with the
6177 'In[n]:='. This allows it the numbers to be aligned with the
6178 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6178 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6179 Python (it was a Mathematica thing). The '...' continuation prompt
6179 Python (it was a Mathematica thing). The '...' continuation prompt
6180 was also changed a little to align better.
6180 was also changed a little to align better.
6181
6181
6182 * Fixed bug when flushing output cache. Not all _p<n> variables
6182 * Fixed bug when flushing output cache. Not all _p<n> variables
6183 exist, so their deletion needs to be wrapped in a try:
6183 exist, so their deletion needs to be wrapped in a try:
6184
6184
6185 * Figured out how to properly use inspect.formatargspec() (it
6185 * Figured out how to properly use inspect.formatargspec() (it
6186 requires the args preceded by *). So I removed all the code from
6186 requires the args preceded by *). So I removed all the code from
6187 _get_pdef in Magic, which was just replicating that.
6187 _get_pdef in Magic, which was just replicating that.
6188
6188
6189 * Added test to prefilter to allow redefining magic function names
6189 * Added test to prefilter to allow redefining magic function names
6190 as variables. This is ok, since the @ form is always available,
6190 as variables. This is ok, since the @ form is always available,
6191 but whe should allow the user to define a variable called 'ls' if
6191 but whe should allow the user to define a variable called 'ls' if
6192 he needs it.
6192 he needs it.
6193
6193
6194 * Moved the ToDo information from README into a separate ToDo.
6194 * Moved the ToDo information from README into a separate ToDo.
6195
6195
6196 * General code cleanup and small bugfixes. I think it's close to a
6196 * General code cleanup and small bugfixes. I think it's close to a
6197 state where it can be released, obviously with a big 'beta'
6197 state where it can be released, obviously with a big 'beta'
6198 warning on it.
6198 warning on it.
6199
6199
6200 * Got the magic function split to work. Now all magics are defined
6200 * Got the magic function split to work. Now all magics are defined
6201 in a separate class. It just organizes things a bit, and now
6201 in a separate class. It just organizes things a bit, and now
6202 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6202 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6203 was too long).
6203 was too long).
6204
6204
6205 * Changed @clear to @reset to avoid potential confusions with
6205 * Changed @clear to @reset to avoid potential confusions with
6206 the shell command clear. Also renamed @cl to @clear, which does
6206 the shell command clear. Also renamed @cl to @clear, which does
6207 exactly what people expect it to from their shell experience.
6207 exactly what people expect it to from their shell experience.
6208
6208
6209 Added a check to the @reset command (since it's so
6209 Added a check to the @reset command (since it's so
6210 destructive, it's probably a good idea to ask for confirmation).
6210 destructive, it's probably a good idea to ask for confirmation).
6211 But now reset only works for full namespace resetting. Since the
6211 But now reset only works for full namespace resetting. Since the
6212 del keyword is already there for deleting a few specific
6212 del keyword is already there for deleting a few specific
6213 variables, I don't see the point of having a redundant magic
6213 variables, I don't see the point of having a redundant magic
6214 function for the same task.
6214 function for the same task.
6215
6215
6216 2001-11-24 Fernando Perez <fperez@colorado.edu>
6216 2001-11-24 Fernando Perez <fperez@colorado.edu>
6217
6217
6218 * Updated the builtin docs (esp. the ? ones).
6218 * Updated the builtin docs (esp. the ? ones).
6219
6219
6220 * Ran all the code through pychecker. Not terribly impressed with
6220 * Ran all the code through pychecker. Not terribly impressed with
6221 it: lots of spurious warnings and didn't really find anything of
6221 it: lots of spurious warnings and didn't really find anything of
6222 substance (just a few modules being imported and not used).
6222 substance (just a few modules being imported and not used).
6223
6223
6224 * Implemented the new ultraTB functionality into IPython. New
6224 * Implemented the new ultraTB functionality into IPython. New
6225 option: xcolors. This chooses color scheme. xmode now only selects
6225 option: xcolors. This chooses color scheme. xmode now only selects
6226 between Plain and Verbose. Better orthogonality.
6226 between Plain and Verbose. Better orthogonality.
6227
6227
6228 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6228 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6229 mode and color scheme for the exception handlers. Now it's
6229 mode and color scheme for the exception handlers. Now it's
6230 possible to have the verbose traceback with no coloring.
6230 possible to have the verbose traceback with no coloring.
6231
6231
6232 2001-11-23 Fernando Perez <fperez@colorado.edu>
6232 2001-11-23 Fernando Perez <fperez@colorado.edu>
6233
6233
6234 * Version 0.1.12 released, 0.1.13 opened.
6234 * Version 0.1.12 released, 0.1.13 opened.
6235
6235
6236 * Removed option to set auto-quote and auto-paren escapes by
6236 * Removed option to set auto-quote and auto-paren escapes by
6237 user. The chances of breaking valid syntax are just too high. If
6237 user. The chances of breaking valid syntax are just too high. If
6238 someone *really* wants, they can always dig into the code.
6238 someone *really* wants, they can always dig into the code.
6239
6239
6240 * Made prompt separators configurable.
6240 * Made prompt separators configurable.
6241
6241
6242 2001-11-22 Fernando Perez <fperez@colorado.edu>
6242 2001-11-22 Fernando Perez <fperez@colorado.edu>
6243
6243
6244 * Small bugfixes in many places.
6244 * Small bugfixes in many places.
6245
6245
6246 * Removed the MyCompleter class from ipplib. It seemed redundant
6246 * Removed the MyCompleter class from ipplib. It seemed redundant
6247 with the C-p,C-n history search functionality. Less code to
6247 with the C-p,C-n history search functionality. Less code to
6248 maintain.
6248 maintain.
6249
6249
6250 * Moved all the original ipython.py code into ipythonlib.py. Right
6250 * Moved all the original ipython.py code into ipythonlib.py. Right
6251 now it's just one big dump into a function called make_IPython, so
6251 now it's just one big dump into a function called make_IPython, so
6252 no real modularity has been gained. But at least it makes the
6252 no real modularity has been gained. But at least it makes the
6253 wrapper script tiny, and since ipythonlib is a module, it gets
6253 wrapper script tiny, and since ipythonlib is a module, it gets
6254 compiled and startup is much faster.
6254 compiled and startup is much faster.
6255
6255
6256 This is a reasobably 'deep' change, so we should test it for a
6256 This is a reasobably 'deep' change, so we should test it for a
6257 while without messing too much more with the code.
6257 while without messing too much more with the code.
6258
6258
6259 2001-11-21 Fernando Perez <fperez@colorado.edu>
6259 2001-11-21 Fernando Perez <fperez@colorado.edu>
6260
6260
6261 * Version 0.1.11 released, 0.1.12 opened for further work.
6261 * Version 0.1.11 released, 0.1.12 opened for further work.
6262
6262
6263 * Removed dependency on Itpl. It was only needed in one place. It
6263 * Removed dependency on Itpl. It was only needed in one place. It
6264 would be nice if this became part of python, though. It makes life
6264 would be nice if this became part of python, though. It makes life
6265 *a lot* easier in some cases.
6265 *a lot* easier in some cases.
6266
6266
6267 * Simplified the prefilter code a bit. Now all handlers are
6267 * Simplified the prefilter code a bit. Now all handlers are
6268 expected to explicitly return a value (at least a blank string).
6268 expected to explicitly return a value (at least a blank string).
6269
6269
6270 * Heavy edits in ipplib. Removed the help system altogether. Now
6270 * Heavy edits in ipplib. Removed the help system altogether. Now
6271 obj?/?? is used for inspecting objects, a magic @doc prints
6271 obj?/?? is used for inspecting objects, a magic @doc prints
6272 docstrings, and full-blown Python help is accessed via the 'help'
6272 docstrings, and full-blown Python help is accessed via the 'help'
6273 keyword. This cleans up a lot of code (less to maintain) and does
6273 keyword. This cleans up a lot of code (less to maintain) and does
6274 the job. Since 'help' is now a standard Python component, might as
6274 the job. Since 'help' is now a standard Python component, might as
6275 well use it and remove duplicate functionality.
6275 well use it and remove duplicate functionality.
6276
6276
6277 Also removed the option to use ipplib as a standalone program. By
6277 Also removed the option to use ipplib as a standalone program. By
6278 now it's too dependent on other parts of IPython to function alone.
6278 now it's too dependent on other parts of IPython to function alone.
6279
6279
6280 * Fixed bug in genutils.pager. It would crash if the pager was
6280 * Fixed bug in genutils.pager. It would crash if the pager was
6281 exited immediately after opening (broken pipe).
6281 exited immediately after opening (broken pipe).
6282
6282
6283 * Trimmed down the VerboseTB reporting a little. The header is
6283 * Trimmed down the VerboseTB reporting a little. The header is
6284 much shorter now and the repeated exception arguments at the end
6284 much shorter now and the repeated exception arguments at the end
6285 have been removed. For interactive use the old header seemed a bit
6285 have been removed. For interactive use the old header seemed a bit
6286 excessive.
6286 excessive.
6287
6287
6288 * Fixed small bug in output of @whos for variables with multi-word
6288 * Fixed small bug in output of @whos for variables with multi-word
6289 types (only first word was displayed).
6289 types (only first word was displayed).
6290
6290
6291 2001-11-17 Fernando Perez <fperez@colorado.edu>
6291 2001-11-17 Fernando Perez <fperez@colorado.edu>
6292
6292
6293 * Version 0.1.10 released, 0.1.11 opened for further work.
6293 * Version 0.1.10 released, 0.1.11 opened for further work.
6294
6294
6295 * Modified dirs and friends. dirs now *returns* the stack (not
6295 * Modified dirs and friends. dirs now *returns* the stack (not
6296 prints), so one can manipulate it as a variable. Convenient to
6296 prints), so one can manipulate it as a variable. Convenient to
6297 travel along many directories.
6297 travel along many directories.
6298
6298
6299 * Fixed bug in magic_pdef: would only work with functions with
6299 * Fixed bug in magic_pdef: would only work with functions with
6300 arguments with default values.
6300 arguments with default values.
6301
6301
6302 2001-11-14 Fernando Perez <fperez@colorado.edu>
6302 2001-11-14 Fernando Perez <fperez@colorado.edu>
6303
6303
6304 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6304 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6305 example with IPython. Various other minor fixes and cleanups.
6305 example with IPython. Various other minor fixes and cleanups.
6306
6306
6307 * Version 0.1.9 released, 0.1.10 opened for further work.
6307 * Version 0.1.9 released, 0.1.10 opened for further work.
6308
6308
6309 * Added sys.path to the list of directories searched in the
6309 * Added sys.path to the list of directories searched in the
6310 execfile= option. It used to be the current directory and the
6310 execfile= option. It used to be the current directory and the
6311 user's IPYTHONDIR only.
6311 user's IPYTHONDIR only.
6312
6312
6313 2001-11-13 Fernando Perez <fperez@colorado.edu>
6313 2001-11-13 Fernando Perez <fperez@colorado.edu>
6314
6314
6315 * Reinstated the raw_input/prefilter separation that Janko had
6315 * Reinstated the raw_input/prefilter separation that Janko had
6316 initially. This gives a more convenient setup for extending the
6316 initially. This gives a more convenient setup for extending the
6317 pre-processor from the outside: raw_input always gets a string,
6317 pre-processor from the outside: raw_input always gets a string,
6318 and prefilter has to process it. We can then redefine prefilter
6318 and prefilter has to process it. We can then redefine prefilter
6319 from the outside and implement extensions for special
6319 from the outside and implement extensions for special
6320 purposes.
6320 purposes.
6321
6321
6322 Today I got one for inputting PhysicalQuantity objects
6322 Today I got one for inputting PhysicalQuantity objects
6323 (from Scientific) without needing any function calls at
6323 (from Scientific) without needing any function calls at
6324 all. Extremely convenient, and it's all done as a user-level
6324 all. Extremely convenient, and it's all done as a user-level
6325 extension (no IPython code was touched). Now instead of:
6325 extension (no IPython code was touched). Now instead of:
6326 a = PhysicalQuantity(4.2,'m/s**2')
6326 a = PhysicalQuantity(4.2,'m/s**2')
6327 one can simply say
6327 one can simply say
6328 a = 4.2 m/s**2
6328 a = 4.2 m/s**2
6329 or even
6329 or even
6330 a = 4.2 m/s^2
6330 a = 4.2 m/s^2
6331
6331
6332 I use this, but it's also a proof of concept: IPython really is
6332 I use this, but it's also a proof of concept: IPython really is
6333 fully user-extensible, even at the level of the parsing of the
6333 fully user-extensible, even at the level of the parsing of the
6334 command line. It's not trivial, but it's perfectly doable.
6334 command line. It's not trivial, but it's perfectly doable.
6335
6335
6336 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6336 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6337 the problem of modules being loaded in the inverse order in which
6337 the problem of modules being loaded in the inverse order in which
6338 they were defined in
6338 they were defined in
6339
6339
6340 * Version 0.1.8 released, 0.1.9 opened for further work.
6340 * Version 0.1.8 released, 0.1.9 opened for further work.
6341
6341
6342 * Added magics pdef, source and file. They respectively show the
6342 * Added magics pdef, source and file. They respectively show the
6343 definition line ('prototype' in C), source code and full python
6343 definition line ('prototype' in C), source code and full python
6344 file for any callable object. The object inspector oinfo uses
6344 file for any callable object. The object inspector oinfo uses
6345 these to show the same information.
6345 these to show the same information.
6346
6346
6347 * Version 0.1.7 released, 0.1.8 opened for further work.
6347 * Version 0.1.7 released, 0.1.8 opened for further work.
6348
6348
6349 * Separated all the magic functions into a class called Magic. The
6349 * Separated all the magic functions into a class called Magic. The
6350 InteractiveShell class was becoming too big for Xemacs to handle
6350 InteractiveShell class was becoming too big for Xemacs to handle
6351 (de-indenting a line would lock it up for 10 seconds while it
6351 (de-indenting a line would lock it up for 10 seconds while it
6352 backtracked on the whole class!)
6352 backtracked on the whole class!)
6353
6353
6354 FIXME: didn't work. It can be done, but right now namespaces are
6354 FIXME: didn't work. It can be done, but right now namespaces are
6355 all messed up. Do it later (reverted it for now, so at least
6355 all messed up. Do it later (reverted it for now, so at least
6356 everything works as before).
6356 everything works as before).
6357
6357
6358 * Got the object introspection system (magic_oinfo) working! I
6358 * Got the object introspection system (magic_oinfo) working! I
6359 think this is pretty much ready for release to Janko, so he can
6359 think this is pretty much ready for release to Janko, so he can
6360 test it for a while and then announce it. Pretty much 100% of what
6360 test it for a while and then announce it. Pretty much 100% of what
6361 I wanted for the 'phase 1' release is ready. Happy, tired.
6361 I wanted for the 'phase 1' release is ready. Happy, tired.
6362
6362
6363 2001-11-12 Fernando Perez <fperez@colorado.edu>
6363 2001-11-12 Fernando Perez <fperez@colorado.edu>
6364
6364
6365 * Version 0.1.6 released, 0.1.7 opened for further work.
6365 * Version 0.1.6 released, 0.1.7 opened for further work.
6366
6366
6367 * Fixed bug in printing: it used to test for truth before
6367 * Fixed bug in printing: it used to test for truth before
6368 printing, so 0 wouldn't print. Now checks for None.
6368 printing, so 0 wouldn't print. Now checks for None.
6369
6369
6370 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6370 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6371 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6371 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6372 reaches by hand into the outputcache. Think of a better way to do
6372 reaches by hand into the outputcache. Think of a better way to do
6373 this later.
6373 this later.
6374
6374
6375 * Various small fixes thanks to Nathan's comments.
6375 * Various small fixes thanks to Nathan's comments.
6376
6376
6377 * Changed magic_pprint to magic_Pprint. This way it doesn't
6377 * Changed magic_pprint to magic_Pprint. This way it doesn't
6378 collide with pprint() and the name is consistent with the command
6378 collide with pprint() and the name is consistent with the command
6379 line option.
6379 line option.
6380
6380
6381 * Changed prompt counter behavior to be fully like
6381 * Changed prompt counter behavior to be fully like
6382 Mathematica's. That is, even input that doesn't return a result
6382 Mathematica's. That is, even input that doesn't return a result
6383 raises the prompt counter. The old behavior was kind of confusing
6383 raises the prompt counter. The old behavior was kind of confusing
6384 (getting the same prompt number several times if the operation
6384 (getting the same prompt number several times if the operation
6385 didn't return a result).
6385 didn't return a result).
6386
6386
6387 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6387 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6388
6388
6389 * Fixed -Classic mode (wasn't working anymore).
6389 * Fixed -Classic mode (wasn't working anymore).
6390
6390
6391 * Added colored prompts using Nathan's new code. Colors are
6391 * Added colored prompts using Nathan's new code. Colors are
6392 currently hardwired, they can be user-configurable. For
6392 currently hardwired, they can be user-configurable. For
6393 developers, they can be chosen in file ipythonlib.py, at the
6393 developers, they can be chosen in file ipythonlib.py, at the
6394 beginning of the CachedOutput class def.
6394 beginning of the CachedOutput class def.
6395
6395
6396 2001-11-11 Fernando Perez <fperez@colorado.edu>
6396 2001-11-11 Fernando Perez <fperez@colorado.edu>
6397
6397
6398 * Version 0.1.5 released, 0.1.6 opened for further work.
6398 * Version 0.1.5 released, 0.1.6 opened for further work.
6399
6399
6400 * Changed magic_env to *return* the environment as a dict (not to
6400 * Changed magic_env to *return* the environment as a dict (not to
6401 print it). This way it prints, but it can also be processed.
6401 print it). This way it prints, but it can also be processed.
6402
6402
6403 * Added Verbose exception reporting to interactive
6403 * Added Verbose exception reporting to interactive
6404 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6404 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6405 traceback. Had to make some changes to the ultraTB file. This is
6405 traceback. Had to make some changes to the ultraTB file. This is
6406 probably the last 'big' thing in my mental todo list. This ties
6406 probably the last 'big' thing in my mental todo list. This ties
6407 in with the next entry:
6407 in with the next entry:
6408
6408
6409 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6409 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6410 has to specify is Plain, Color or Verbose for all exception
6410 has to specify is Plain, Color or Verbose for all exception
6411 handling.
6411 handling.
6412
6412
6413 * Removed ShellServices option. All this can really be done via
6413 * Removed ShellServices option. All this can really be done via
6414 the magic system. It's easier to extend, cleaner and has automatic
6414 the magic system. It's easier to extend, cleaner and has automatic
6415 namespace protection and documentation.
6415 namespace protection and documentation.
6416
6416
6417 2001-11-09 Fernando Perez <fperez@colorado.edu>
6417 2001-11-09 Fernando Perez <fperez@colorado.edu>
6418
6418
6419 * Fixed bug in output cache flushing (missing parameter to
6419 * Fixed bug in output cache flushing (missing parameter to
6420 __init__). Other small bugs fixed (found using pychecker).
6420 __init__). Other small bugs fixed (found using pychecker).
6421
6421
6422 * Version 0.1.4 opened for bugfixing.
6422 * Version 0.1.4 opened for bugfixing.
6423
6423
6424 2001-11-07 Fernando Perez <fperez@colorado.edu>
6424 2001-11-07 Fernando Perez <fperez@colorado.edu>
6425
6425
6426 * Version 0.1.3 released, mainly because of the raw_input bug.
6426 * Version 0.1.3 released, mainly because of the raw_input bug.
6427
6427
6428 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6428 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6429 and when testing for whether things were callable, a call could
6429 and when testing for whether things were callable, a call could
6430 actually be made to certain functions. They would get called again
6430 actually be made to certain functions. They would get called again
6431 once 'really' executed, with a resulting double call. A disaster
6431 once 'really' executed, with a resulting double call. A disaster
6432 in many cases (list.reverse() would never work!).
6432 in many cases (list.reverse() would never work!).
6433
6433
6434 * Removed prefilter() function, moved its code to raw_input (which
6434 * Removed prefilter() function, moved its code to raw_input (which
6435 after all was just a near-empty caller for prefilter). This saves
6435 after all was just a near-empty caller for prefilter). This saves
6436 a function call on every prompt, and simplifies the class a tiny bit.
6436 a function call on every prompt, and simplifies the class a tiny bit.
6437
6437
6438 * Fix _ip to __ip name in magic example file.
6438 * Fix _ip to __ip name in magic example file.
6439
6439
6440 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6440 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6441 work with non-gnu versions of tar.
6441 work with non-gnu versions of tar.
6442
6442
6443 2001-11-06 Fernando Perez <fperez@colorado.edu>
6443 2001-11-06 Fernando Perez <fperez@colorado.edu>
6444
6444
6445 * Version 0.1.2. Just to keep track of the recent changes.
6445 * Version 0.1.2. Just to keep track of the recent changes.
6446
6446
6447 * Fixed nasty bug in output prompt routine. It used to check 'if
6447 * Fixed nasty bug in output prompt routine. It used to check 'if
6448 arg != None...'. Problem is, this fails if arg implements a
6448 arg != None...'. Problem is, this fails if arg implements a
6449 special comparison (__cmp__) which disallows comparing to
6449 special comparison (__cmp__) which disallows comparing to
6450 None. Found it when trying to use the PhysicalQuantity module from
6450 None. Found it when trying to use the PhysicalQuantity module from
6451 ScientificPython.
6451 ScientificPython.
6452
6452
6453 2001-11-05 Fernando Perez <fperez@colorado.edu>
6453 2001-11-05 Fernando Perez <fperez@colorado.edu>
6454
6454
6455 * Also added dirs. Now the pushd/popd/dirs family functions
6455 * Also added dirs. Now the pushd/popd/dirs family functions
6456 basically like the shell, with the added convenience of going home
6456 basically like the shell, with the added convenience of going home
6457 when called with no args.
6457 when called with no args.
6458
6458
6459 * pushd/popd slightly modified to mimic shell behavior more
6459 * pushd/popd slightly modified to mimic shell behavior more
6460 closely.
6460 closely.
6461
6461
6462 * Added env,pushd,popd from ShellServices as magic functions. I
6462 * Added env,pushd,popd from ShellServices as magic functions. I
6463 think the cleanest will be to port all desired functions from
6463 think the cleanest will be to port all desired functions from
6464 ShellServices as magics and remove ShellServices altogether. This
6464 ShellServices as magics and remove ShellServices altogether. This
6465 will provide a single, clean way of adding functionality
6465 will provide a single, clean way of adding functionality
6466 (shell-type or otherwise) to IP.
6466 (shell-type or otherwise) to IP.
6467
6467
6468 2001-11-04 Fernando Perez <fperez@colorado.edu>
6468 2001-11-04 Fernando Perez <fperez@colorado.edu>
6469
6469
6470 * Added .ipython/ directory to sys.path. This way users can keep
6470 * Added .ipython/ directory to sys.path. This way users can keep
6471 customizations there and access them via import.
6471 customizations there and access them via import.
6472
6472
6473 2001-11-03 Fernando Perez <fperez@colorado.edu>
6473 2001-11-03 Fernando Perez <fperez@colorado.edu>
6474
6474
6475 * Opened version 0.1.1 for new changes.
6475 * Opened version 0.1.1 for new changes.
6476
6476
6477 * Changed version number to 0.1.0: first 'public' release, sent to
6477 * Changed version number to 0.1.0: first 'public' release, sent to
6478 Nathan and Janko.
6478 Nathan and Janko.
6479
6479
6480 * Lots of small fixes and tweaks.
6480 * Lots of small fixes and tweaks.
6481
6481
6482 * Minor changes to whos format. Now strings are shown, snipped if
6482 * Minor changes to whos format. Now strings are shown, snipped if
6483 too long.
6483 too long.
6484
6484
6485 * Changed ShellServices to work on __main__ so they show up in @who
6485 * Changed ShellServices to work on __main__ so they show up in @who
6486
6486
6487 * Help also works with ? at the end of a line:
6487 * Help also works with ? at the end of a line:
6488 ?sin and sin?
6488 ?sin and sin?
6489 both produce the same effect. This is nice, as often I use the
6489 both produce the same effect. This is nice, as often I use the
6490 tab-complete to find the name of a method, but I used to then have
6490 tab-complete to find the name of a method, but I used to then have
6491 to go to the beginning of the line to put a ? if I wanted more
6491 to go to the beginning of the line to put a ? if I wanted more
6492 info. Now I can just add the ? and hit return. Convenient.
6492 info. Now I can just add the ? and hit return. Convenient.
6493
6493
6494 2001-11-02 Fernando Perez <fperez@colorado.edu>
6494 2001-11-02 Fernando Perez <fperez@colorado.edu>
6495
6495
6496 * Python version check (>=2.1) added.
6496 * Python version check (>=2.1) added.
6497
6497
6498 * Added LazyPython documentation. At this point the docs are quite
6498 * Added LazyPython documentation. At this point the docs are quite
6499 a mess. A cleanup is in order.
6499 a mess. A cleanup is in order.
6500
6500
6501 * Auto-installer created. For some bizarre reason, the zipfiles
6501 * Auto-installer created. For some bizarre reason, the zipfiles
6502 module isn't working on my system. So I made a tar version
6502 module isn't working on my system. So I made a tar version
6503 (hopefully the command line options in various systems won't kill
6503 (hopefully the command line options in various systems won't kill
6504 me).
6504 me).
6505
6505
6506 * Fixes to Struct in genutils. Now all dictionary-like methods are
6506 * Fixes to Struct in genutils. Now all dictionary-like methods are
6507 protected (reasonably).
6507 protected (reasonably).
6508
6508
6509 * Added pager function to genutils and changed ? to print usage
6509 * Added pager function to genutils and changed ? to print usage
6510 note through it (it was too long).
6510 note through it (it was too long).
6511
6511
6512 * Added the LazyPython functionality. Works great! I changed the
6512 * Added the LazyPython functionality. Works great! I changed the
6513 auto-quote escape to ';', it's on home row and next to '. But
6513 auto-quote escape to ';', it's on home row and next to '. But
6514 both auto-quote and auto-paren (still /) escapes are command-line
6514 both auto-quote and auto-paren (still /) escapes are command-line
6515 parameters.
6515 parameters.
6516
6516
6517
6517
6518 2001-11-01 Fernando Perez <fperez@colorado.edu>
6518 2001-11-01 Fernando Perez <fperez@colorado.edu>
6519
6519
6520 * Version changed to 0.0.7. Fairly large change: configuration now
6520 * Version changed to 0.0.7. Fairly large change: configuration now
6521 is all stored in a directory, by default .ipython. There, all
6521 is all stored in a directory, by default .ipython. There, all
6522 config files have normal looking names (not .names)
6522 config files have normal looking names (not .names)
6523
6523
6524 * Version 0.0.6 Released first to Lucas and Archie as a test
6524 * Version 0.0.6 Released first to Lucas and Archie as a test
6525 run. Since it's the first 'semi-public' release, change version to
6525 run. Since it's the first 'semi-public' release, change version to
6526 > 0.0.6 for any changes now.
6526 > 0.0.6 for any changes now.
6527
6527
6528 * Stuff I had put in the ipplib.py changelog:
6528 * Stuff I had put in the ipplib.py changelog:
6529
6529
6530 Changes to InteractiveShell:
6530 Changes to InteractiveShell:
6531
6531
6532 - Made the usage message a parameter.
6532 - Made the usage message a parameter.
6533
6533
6534 - Require the name of the shell variable to be given. It's a bit
6534 - Require the name of the shell variable to be given. It's a bit
6535 of a hack, but allows the name 'shell' not to be hardwired in the
6535 of a hack, but allows the name 'shell' not to be hardwired in the
6536 magic (@) handler, which is problematic b/c it requires
6536 magic (@) handler, which is problematic b/c it requires
6537 polluting the global namespace with 'shell'. This in turn is
6537 polluting the global namespace with 'shell'. This in turn is
6538 fragile: if a user redefines a variable called shell, things
6538 fragile: if a user redefines a variable called shell, things
6539 break.
6539 break.
6540
6540
6541 - magic @: all functions available through @ need to be defined
6541 - magic @: all functions available through @ need to be defined
6542 as magic_<name>, even though they can be called simply as
6542 as magic_<name>, even though they can be called simply as
6543 @<name>. This allows the special command @magic to gather
6543 @<name>. This allows the special command @magic to gather
6544 information automatically about all existing magic functions,
6544 information automatically about all existing magic functions,
6545 even if they are run-time user extensions, by parsing the shell
6545 even if they are run-time user extensions, by parsing the shell
6546 instance __dict__ looking for special magic_ names.
6546 instance __dict__ looking for special magic_ names.
6547
6547
6548 - mainloop: added *two* local namespace parameters. This allows
6548 - mainloop: added *two* local namespace parameters. This allows
6549 the class to differentiate between parameters which were there
6549 the class to differentiate between parameters which were there
6550 before and after command line initialization was processed. This
6550 before and after command line initialization was processed. This
6551 way, later @who can show things loaded at startup by the
6551 way, later @who can show things loaded at startup by the
6552 user. This trick was necessary to make session saving/reloading
6552 user. This trick was necessary to make session saving/reloading
6553 really work: ideally after saving/exiting/reloading a session,
6553 really work: ideally after saving/exiting/reloading a session,
6554 *everything* should look the same, including the output of @who. I
6554 *everything* should look the same, including the output of @who. I
6555 was only able to make this work with this double namespace
6555 was only able to make this work with this double namespace
6556 trick.
6556 trick.
6557
6557
6558 - added a header to the logfile which allows (almost) full
6558 - added a header to the logfile which allows (almost) full
6559 session restoring.
6559 session restoring.
6560
6560
6561 - prepend lines beginning with @ or !, with a and log
6561 - prepend lines beginning with @ or !, with a and log
6562 them. Why? !lines: may be useful to know what you did @lines:
6562 them. Why? !lines: may be useful to know what you did @lines:
6563 they may affect session state. So when restoring a session, at
6563 they may affect session state. So when restoring a session, at
6564 least inform the user of their presence. I couldn't quite get
6564 least inform the user of their presence. I couldn't quite get
6565 them to properly re-execute, but at least the user is warned.
6565 them to properly re-execute, but at least the user is warned.
6566
6566
6567 * Started ChangeLog.
6567 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now