##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,84 +1,84 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Release data for the IPython project.
2 """Release data for the IPython project.
3
3
4 $Id: Release.py 2252 2007-04-19 16:13:06Z vivainio $"""
4 $Id: Release.py 2255 2007-04-20 13:33:09Z vivainio $"""
5
5
6 #*****************************************************************************
6 #*****************************************************************************
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
7 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
8 #
8 #
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
9 # Copyright (c) 2001 Janko Hauser <jhauser@zscout.de> and Nathaniel Gray
10 # <n8gray@caltech.edu>
10 # <n8gray@caltech.edu>
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #*****************************************************************************
14 #*****************************************************************************
15
15
16 # Name of the package for release purposes. This is the name which labels
16 # Name of the package for release purposes. This is the name which labels
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
17 # the tarballs and RPMs made by distutils, so it's best to lowercase it.
18 name = 'ipython'
18 name = 'ipython'
19
19
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
20 # For versions with substrings (like 0.6.16.svn), use an extra . to separate
21 # the new substring. We have to avoid using either dashes or underscores,
21 # the new substring. We have to avoid using either dashes or underscores,
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
22 # because bdist_rpm does not accept dashes (an RPM) convention, and
23 # bdist_deb does not accept underscores (a Debian convention).
23 # bdist_deb does not accept underscores (a Debian convention).
24
24
25 revision = '2251'
25 revision = ''
26
26
27 #version = '0.8.1.svn.r' + revision.rstrip('M')
27 #version = '0.8.1.svn.r' + revision.rstrip('M')
28 version = '0.8.1'
28 version = '0.8.1'
29
29
30 description = "An enhanced interactive Python shell."
30 description = "An enhanced interactive Python shell."
31
31
32 long_description = \
32 long_description = \
33 """
33 """
34 IPython provides a replacement for the interactive Python interpreter with
34 IPython provides a replacement for the interactive Python interpreter with
35 extra functionality.
35 extra functionality.
36
36
37 Main features:
37 Main features:
38
38
39 * Comprehensive object introspection.
39 * Comprehensive object introspection.
40
40
41 * Input history, persistent across sessions.
41 * Input history, persistent across sessions.
42
42
43 * Caching of output results during a session with automatically generated
43 * Caching of output results during a session with automatically generated
44 references.
44 references.
45
45
46 * Readline based name completion.
46 * Readline based name completion.
47
47
48 * Extensible system of 'magic' commands for controlling the environment and
48 * Extensible system of 'magic' commands for controlling the environment and
49 performing many tasks related either to IPython or the operating system.
49 performing many tasks related either to IPython or the operating system.
50
50
51 * Configuration system with easy switching between different setups (simpler
51 * Configuration system with easy switching between different setups (simpler
52 than changing $PYTHONSTARTUP environment variables every time).
52 than changing $PYTHONSTARTUP environment variables every time).
53
53
54 * Session logging and reloading.
54 * Session logging and reloading.
55
55
56 * Extensible syntax processing for special purpose situations.
56 * Extensible syntax processing for special purpose situations.
57
57
58 * Access to the system shell with user-extensible alias system.
58 * Access to the system shell with user-extensible alias system.
59
59
60 * Easily embeddable in other Python programs.
60 * Easily embeddable in other Python programs.
61
61
62 * Integrated access to the pdb debugger and the Python profiler.
62 * Integrated access to the pdb debugger and the Python profiler.
63
63
64 The latest development version is always available at the IPython subversion
64 The latest development version is always available at the IPython subversion
65 repository_.
65 repository_.
66
66
67 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
67 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
68 """
68 """
69
69
70 license = 'BSD'
70 license = 'BSD'
71
71
72 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
72 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
73 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
73 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
74 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
74 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
75 'Ville' : ('Ville Vainio','vivainio@gmail.com')
75 'Ville' : ('Ville Vainio','vivainio@gmail.com')
76 }
76 }
77
77
78 url = 'http://ipython.scipy.org'
78 url = 'http://ipython.scipy.org'
79
79
80 download_url = 'http://ipython.scipy.org/dist'
80 download_url = 'http://ipython.scipy.org/dist'
81
81
82 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
82 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
83
83
84 keywords = ['Interactive','Interpreter','Shell']
84 keywords = ['Interactive','Interpreter','Shell']
@@ -1,6551 +1,6560 b''
1 2007-04-20 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ipy_render.py: added extension for easy
4 interactive text template rendering (todo - add a better
5 renderer than string.Template)
6
7 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
8 safer & faster 'import' completer.
9
1 2007-04-19 Ville Vainio <vivainio@gmail.com>
10 2007-04-19 Ville Vainio <vivainio@gmail.com>
2
11
3 * upgrade_dir.py: skip junk files like *.pyc
12 * upgrade_dir.py: skip junk files like *.pyc
4
13
5 * Release.py: version number to 0.8.1
14 * Release.py: version number to 0.8.1
6
15
7 2007-04-18 Ville Vainio <vivainio@gmail.com>
16 2007-04-18 Ville Vainio <vivainio@gmail.com>
8
17
9 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
18 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
10 and later on win32.
19 and later on win32.
11
20
12 2007-04-16 Ville Vainio <vivainio@gmail.com>
21 2007-04-16 Ville Vainio <vivainio@gmail.com>
13
22
14 * iplib.py (showtraceback): Do not crash when running w/o readline.
23 * iplib.py (showtraceback): Do not crash when running w/o readline.
15
24
16 2007-04-12 Walter Doerwald <walter@livinglogic.de>
25 2007-04-12 Walter Doerwald <walter@livinglogic.de>
17
26
18 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
27 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
19 sorted (case sensitive with files and dirs mixed).
28 sorted (case sensitive with files and dirs mixed).
20
29
21 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
30 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
22
31
23 * IPython/Release.py (version): Open trunk for 0.8.1 development.
32 * IPython/Release.py (version): Open trunk for 0.8.1 development.
24
33
25 2007-04-10 *** Released version 0.8.0
34 2007-04-10 *** Released version 0.8.0
26
35
27 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
36 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
28
37
29 * Tag 0.8.0 for release.
38 * Tag 0.8.0 for release.
30
39
31 * IPython/iplib.py (reloadhist): add API function to cleanly
40 * IPython/iplib.py (reloadhist): add API function to cleanly
32 reload the readline history, which was growing inappropriately on
41 reload the readline history, which was growing inappropriately on
33 every %run call.
42 every %run call.
34
43
35 * win32_manual_post_install.py (run): apply last part of Nicolas
44 * win32_manual_post_install.py (run): apply last part of Nicolas
36 Pernetty's patch (I'd accidentally applied it in a different
45 Pernetty's patch (I'd accidentally applied it in a different
37 directory and this particular file didn't get patched).
46 directory and this particular file didn't get patched).
38
47
39 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
48 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
40
49
41 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
50 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
42 find the main thread id and use the proper API call. Thanks to
51 find the main thread id and use the proper API call. Thanks to
43 Stefan for the fix.
52 Stefan for the fix.
44
53
45 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
54 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
46 unit tests to reflect fixed ticket #52, and add more tests sent by
55 unit tests to reflect fixed ticket #52, and add more tests sent by
47 him.
56 him.
48
57
49 * IPython/iplib.py (raw_input): restore the readline completer
58 * IPython/iplib.py (raw_input): restore the readline completer
50 state on every input, in case third-party code messed it up.
59 state on every input, in case third-party code messed it up.
51 (_prefilter): revert recent addition of early-escape checks which
60 (_prefilter): revert recent addition of early-escape checks which
52 prevent many valid alias calls from working.
61 prevent many valid alias calls from working.
53
62
54 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
63 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
55 flag for sigint handler so we don't run a full signal() call on
64 flag for sigint handler so we don't run a full signal() call on
56 each runcode access.
65 each runcode access.
57
66
58 * IPython/Magic.py (magic_whos): small improvement to diagnostic
67 * IPython/Magic.py (magic_whos): small improvement to diagnostic
59 message.
68 message.
60
69
61 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
70 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
62
71
63 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
72 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
64 asynchronous exceptions working, i.e., Ctrl-C can actually
73 asynchronous exceptions working, i.e., Ctrl-C can actually
65 interrupt long-running code in the multithreaded shells.
74 interrupt long-running code in the multithreaded shells.
66
75
67 This is using Tomer Filiba's great ctypes-based trick:
76 This is using Tomer Filiba's great ctypes-based trick:
68 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
77 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
69 this in the past, but hadn't been able to make it work before. So
78 this in the past, but hadn't been able to make it work before. So
70 far it looks like it's actually running, but this needs more
79 far it looks like it's actually running, but this needs more
71 testing. If it really works, I'll be *very* happy, and we'll owe
80 testing. If it really works, I'll be *very* happy, and we'll owe
72 a huge thank you to Tomer. My current implementation is ugly,
81 a huge thank you to Tomer. My current implementation is ugly,
73 hackish and uses nasty globals, but I don't want to try and clean
82 hackish and uses nasty globals, but I don't want to try and clean
74 anything up until we know if it actually works.
83 anything up until we know if it actually works.
75
84
76 NOTE: this feature needs ctypes to work. ctypes is included in
85 NOTE: this feature needs ctypes to work. ctypes is included in
77 Python2.5, but 2.4 users will need to manually install it. This
86 Python2.5, but 2.4 users will need to manually install it. This
78 feature makes multi-threaded shells so much more usable that it's
87 feature makes multi-threaded shells so much more usable that it's
79 a minor price to pay (ctypes is very easy to install, already a
88 a minor price to pay (ctypes is very easy to install, already a
80 requirement for win32 and available in major linux distros).
89 requirement for win32 and available in major linux distros).
81
90
82 2007-04-04 Ville Vainio <vivainio@gmail.com>
91 2007-04-04 Ville Vainio <vivainio@gmail.com>
83
92
84 * Extensions/ipy_completers.py, ipy_stock_completers.py:
93 * Extensions/ipy_completers.py, ipy_stock_completers.py:
85 Moved implementations of 'bundled' completers to ipy_completers.py,
94 Moved implementations of 'bundled' completers to ipy_completers.py,
86 they are only enabled in ipy_stock_completers.py.
95 they are only enabled in ipy_stock_completers.py.
87
96
88 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
97 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
89
98
90 * IPython/PyColorize.py (Parser.format2): Fix identation of
99 * IPython/PyColorize.py (Parser.format2): Fix identation of
91 colorzied output and return early if color scheme is NoColor, to
100 colorzied output and return early if color scheme is NoColor, to
92 avoid unnecessary and expensive tokenization. Closes #131.
101 avoid unnecessary and expensive tokenization. Closes #131.
93
102
94 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
103 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
95
104
96 * IPython/Debugger.py: disable the use of pydb version 1.17. It
105 * IPython/Debugger.py: disable the use of pydb version 1.17. It
97 has a critical bug (a missing import that makes post-mortem not
106 has a critical bug (a missing import that makes post-mortem not
98 work at all). Unfortunately as of this time, this is the version
107 work at all). Unfortunately as of this time, this is the version
99 shipped with Ubuntu Edgy, so quite a few people have this one. I
108 shipped with Ubuntu Edgy, so quite a few people have this one. I
100 hope Edgy will update to a more recent package.
109 hope Edgy will update to a more recent package.
101
110
102 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
111 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
103
112
104 * IPython/iplib.py (_prefilter): close #52, second part of a patch
113 * IPython/iplib.py (_prefilter): close #52, second part of a patch
105 set by Stefan (only the first part had been applied before).
114 set by Stefan (only the first part had been applied before).
106
115
107 * IPython/Extensions/ipy_stock_completers.py (module_completer):
116 * IPython/Extensions/ipy_stock_completers.py (module_completer):
108 remove usage of the dangerous pkgutil.walk_packages(). See
117 remove usage of the dangerous pkgutil.walk_packages(). See
109 details in comments left in the code.
118 details in comments left in the code.
110
119
111 * IPython/Magic.py (magic_whos): add support for numpy arrays
120 * IPython/Magic.py (magic_whos): add support for numpy arrays
112 similar to what we had for Numeric.
121 similar to what we had for Numeric.
113
122
114 * IPython/completer.py (IPCompleter.complete): extend the
123 * IPython/completer.py (IPCompleter.complete): extend the
115 complete() call API to support completions by other mechanisms
124 complete() call API to support completions by other mechanisms
116 than readline. Closes #109.
125 than readline. Closes #109.
117
126
118 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
127 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
119 protect against a bug in Python's execfile(). Closes #123.
128 protect against a bug in Python's execfile(). Closes #123.
120
129
121 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
130 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
122
131
123 * IPython/iplib.py (split_user_input): ensure that when splitting
132 * IPython/iplib.py (split_user_input): ensure that when splitting
124 user input, the part that can be treated as a python name is pure
133 user input, the part that can be treated as a python name is pure
125 ascii (Python identifiers MUST be pure ascii). Part of the
134 ascii (Python identifiers MUST be pure ascii). Part of the
126 ongoing Unicode support work.
135 ongoing Unicode support work.
127
136
128 * IPython/Prompts.py (prompt_specials_color): Add \N for the
137 * IPython/Prompts.py (prompt_specials_color): Add \N for the
129 actual prompt number, without any coloring. This allows users to
138 actual prompt number, without any coloring. This allows users to
130 produce numbered prompts with their own colors. Added after a
139 produce numbered prompts with their own colors. Added after a
131 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
140 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
132
141
133 2007-03-31 Walter Doerwald <walter@livinglogic.de>
142 2007-03-31 Walter Doerwald <walter@livinglogic.de>
134
143
135 * IPython/Extensions/igrid.py: Map the return key
144 * IPython/Extensions/igrid.py: Map the return key
136 to enter() and shift-return to enterattr().
145 to enter() and shift-return to enterattr().
137
146
138 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
147 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
139
148
140 * IPython/Magic.py (magic_psearch): add unicode support by
149 * IPython/Magic.py (magic_psearch): add unicode support by
141 encoding to ascii the input, since this routine also only deals
150 encoding to ascii the input, since this routine also only deals
142 with valid Python names. Fixes a bug reported by Stefan.
151 with valid Python names. Fixes a bug reported by Stefan.
143
152
144 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
153 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
145
154
146 * IPython/Magic.py (_inspect): convert unicode input into ascii
155 * IPython/Magic.py (_inspect): convert unicode input into ascii
147 before trying to evaluate it as a Python identifier. This fixes a
156 before trying to evaluate it as a Python identifier. This fixes a
148 problem that the new unicode support had introduced when analyzing
157 problem that the new unicode support had introduced when analyzing
149 long definition lines for functions.
158 long definition lines for functions.
150
159
151 2007-03-24 Walter Doerwald <walter@livinglogic.de>
160 2007-03-24 Walter Doerwald <walter@livinglogic.de>
152
161
153 * IPython/Extensions/igrid.py: Fix picking. Using
162 * IPython/Extensions/igrid.py: Fix picking. Using
154 igrid with wxPython 2.6 and -wthread should work now.
163 igrid with wxPython 2.6 and -wthread should work now.
155 igrid.display() simply tries to create a frame without
164 igrid.display() simply tries to create a frame without
156 an application. Only if this fails an application is created.
165 an application. Only if this fails an application is created.
157
166
158 2007-03-23 Walter Doerwald <walter@livinglogic.de>
167 2007-03-23 Walter Doerwald <walter@livinglogic.de>
159
168
160 * IPython/Extensions/path.py: Updated to version 2.2.
169 * IPython/Extensions/path.py: Updated to version 2.2.
161
170
162 2007-03-23 Ville Vainio <vivainio@gmail.com>
171 2007-03-23 Ville Vainio <vivainio@gmail.com>
163
172
164 * iplib.py: recursive alias expansion now works better, so that
173 * iplib.py: recursive alias expansion now works better, so that
165 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
174 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
166 doesn't trip up the process, if 'd' has been aliased to 'ls'.
175 doesn't trip up the process, if 'd' has been aliased to 'ls'.
167
176
168 * Extensions/ipy_gnuglobal.py added, provides %global magic
177 * Extensions/ipy_gnuglobal.py added, provides %global magic
169 for users of http://www.gnu.org/software/global
178 for users of http://www.gnu.org/software/global
170
179
171 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
180 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
172 Closes #52. Patch by Stefan van der Walt.
181 Closes #52. Patch by Stefan van der Walt.
173
182
174 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
183 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
175
184
176 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
185 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
177 respect the __file__ attribute when using %run. Thanks to a bug
186 respect the __file__ attribute when using %run. Thanks to a bug
178 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
187 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
179
188
180 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
189 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
181
190
182 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
191 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
183 input. Patch sent by Stefan.
192 input. Patch sent by Stefan.
184
193
185 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
194 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
186 * IPython/Extensions/ipy_stock_completer.py
195 * IPython/Extensions/ipy_stock_completer.py
187 shlex_split, fix bug in shlex_split. len function
196 shlex_split, fix bug in shlex_split. len function
188 call was missing an if statement. Caused shlex_split to
197 call was missing an if statement. Caused shlex_split to
189 sometimes return "" as last element.
198 sometimes return "" as last element.
190
199
191 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
200 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
192
201
193 * IPython/completer.py
202 * IPython/completer.py
194 (IPCompleter.file_matches.single_dir_expand): fix a problem
203 (IPCompleter.file_matches.single_dir_expand): fix a problem
195 reported by Stefan, where directories containign a single subdir
204 reported by Stefan, where directories containign a single subdir
196 would be completed too early.
205 would be completed too early.
197
206
198 * IPython/Shell.py (_load_pylab): Make the execution of 'from
207 * IPython/Shell.py (_load_pylab): Make the execution of 'from
199 pylab import *' when -pylab is given be optional. A new flag,
208 pylab import *' when -pylab is given be optional. A new flag,
200 pylab_import_all controls this behavior, the default is True for
209 pylab_import_all controls this behavior, the default is True for
201 backwards compatibility.
210 backwards compatibility.
202
211
203 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
212 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
204 modified) R. Bernstein's patch for fully syntax highlighted
213 modified) R. Bernstein's patch for fully syntax highlighted
205 tracebacks. The functionality is also available under ultraTB for
214 tracebacks. The functionality is also available under ultraTB for
206 non-ipython users (someone using ultraTB but outside an ipython
215 non-ipython users (someone using ultraTB but outside an ipython
207 session). They can select the color scheme by setting the
216 session). They can select the color scheme by setting the
208 module-level global DEFAULT_SCHEME. The highlight functionality
217 module-level global DEFAULT_SCHEME. The highlight functionality
209 also works when debugging.
218 also works when debugging.
210
219
211 * IPython/genutils.py (IOStream.close): small patch by
220 * IPython/genutils.py (IOStream.close): small patch by
212 R. Bernstein for improved pydb support.
221 R. Bernstein for improved pydb support.
213
222
214 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
223 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
215 DaveS <davls@telus.net> to improve support of debugging under
224 DaveS <davls@telus.net> to improve support of debugging under
216 NTEmacs, including improved pydb behavior.
225 NTEmacs, including improved pydb behavior.
217
226
218 * IPython/Magic.py (magic_prun): Fix saving of profile info for
227 * IPython/Magic.py (magic_prun): Fix saving of profile info for
219 Python 2.5, where the stats object API changed a little. Thanks
228 Python 2.5, where the stats object API changed a little. Thanks
220 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
229 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
221
230
222 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
231 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
223 Pernetty's patch to improve support for (X)Emacs under Win32.
232 Pernetty's patch to improve support for (X)Emacs under Win32.
224
233
225 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
234 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
226
235
227 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
236 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
228 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
237 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
229 a report by Nik Tautenhahn.
238 a report by Nik Tautenhahn.
230
239
231 2007-03-16 Walter Doerwald <walter@livinglogic.de>
240 2007-03-16 Walter Doerwald <walter@livinglogic.de>
232
241
233 * setup.py: Add the igrid help files to the list of data files
242 * setup.py: Add the igrid help files to the list of data files
234 to be installed alongside igrid.
243 to be installed alongside igrid.
235 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
244 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
236 Show the input object of the igrid browser as the window tile.
245 Show the input object of the igrid browser as the window tile.
237 Show the object the cursor is on in the statusbar.
246 Show the object the cursor is on in the statusbar.
238
247
239 2007-03-15 Ville Vainio <vivainio@gmail.com>
248 2007-03-15 Ville Vainio <vivainio@gmail.com>
240
249
241 * Extensions/ipy_stock_completers.py: Fixed exception
250 * Extensions/ipy_stock_completers.py: Fixed exception
242 on mismatching quotes in %run completer. Patch by
251 on mismatching quotes in %run completer. Patch by
243 JοΏ½rgen Stenarson. Closes #127.
252 JοΏ½rgen Stenarson. Closes #127.
244
253
245 2007-03-14 Ville Vainio <vivainio@gmail.com>
254 2007-03-14 Ville Vainio <vivainio@gmail.com>
246
255
247 * Extensions/ext_rehashdir.py: Do not do auto_alias
256 * Extensions/ext_rehashdir.py: Do not do auto_alias
248 in %rehashdir, it clobbers %store'd aliases.
257 in %rehashdir, it clobbers %store'd aliases.
249
258
250 * UserConfig/ipy_profile_sh.py: envpersist.py extension
259 * UserConfig/ipy_profile_sh.py: envpersist.py extension
251 (beefed up %env) imported for sh profile.
260 (beefed up %env) imported for sh profile.
252
261
253 2007-03-10 Walter Doerwald <walter@livinglogic.de>
262 2007-03-10 Walter Doerwald <walter@livinglogic.de>
254
263
255 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
264 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
256 as the default browser.
265 as the default browser.
257 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
266 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
258 As igrid displays all attributes it ever encounters, fetch() (which has
267 As igrid displays all attributes it ever encounters, fetch() (which has
259 been renamed to _fetch()) doesn't have to recalculate the display attributes
268 been renamed to _fetch()) doesn't have to recalculate the display attributes
260 every time a new item is fetched. This should speed up scrolling.
269 every time a new item is fetched. This should speed up scrolling.
261
270
262 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
271 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
263
272
264 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
273 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
265 Schmolck's recently reported tab-completion bug (my previous one
274 Schmolck's recently reported tab-completion bug (my previous one
266 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
275 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
267
276
268 2007-03-09 Walter Doerwald <walter@livinglogic.de>
277 2007-03-09 Walter Doerwald <walter@livinglogic.de>
269
278
270 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
279 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
271 Close help window if exiting igrid.
280 Close help window if exiting igrid.
272
281
273 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
282 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
274
283
275 * IPython/Extensions/ipy_defaults.py: Check if readline is available
284 * IPython/Extensions/ipy_defaults.py: Check if readline is available
276 before calling functions from readline.
285 before calling functions from readline.
277
286
278 2007-03-02 Walter Doerwald <walter@livinglogic.de>
287 2007-03-02 Walter Doerwald <walter@livinglogic.de>
279
288
280 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
289 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
281 igrid is a wxPython-based display object for ipipe. If your system has
290 igrid is a wxPython-based display object for ipipe. If your system has
282 wx installed igrid will be the default display. Without wx ipipe falls
291 wx installed igrid will be the default display. Without wx ipipe falls
283 back to ibrowse (which needs curses). If no curses is installed ipipe
292 back to ibrowse (which needs curses). If no curses is installed ipipe
284 falls back to idump.
293 falls back to idump.
285
294
286 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
295 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
287
296
288 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
297 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
289 my changes from yesterday, they introduced bugs. Will reactivate
298 my changes from yesterday, they introduced bugs. Will reactivate
290 once I get a correct solution, which will be much easier thanks to
299 once I get a correct solution, which will be much easier thanks to
291 Dan Milstein's new prefilter test suite.
300 Dan Milstein's new prefilter test suite.
292
301
293 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
302 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
294
303
295 * IPython/iplib.py (split_user_input): fix input splitting so we
304 * IPython/iplib.py (split_user_input): fix input splitting so we
296 don't attempt attribute accesses on things that can't possibly be
305 don't attempt attribute accesses on things that can't possibly be
297 valid Python attributes. After a bug report by Alex Schmolck.
306 valid Python attributes. After a bug report by Alex Schmolck.
298 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
307 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
299 %magic with explicit % prefix.
308 %magic with explicit % prefix.
300
309
301 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
310 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
302
311
303 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
312 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
304 avoid a DeprecationWarning from GTK.
313 avoid a DeprecationWarning from GTK.
305
314
306 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
315 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
307
316
308 * IPython/genutils.py (clock): I modified clock() to return total
317 * IPython/genutils.py (clock): I modified clock() to return total
309 time, user+system. This is a more commonly needed metric. I also
318 time, user+system. This is a more commonly needed metric. I also
310 introduced the new clocku/clocks to get only user/system time if
319 introduced the new clocku/clocks to get only user/system time if
311 one wants those instead.
320 one wants those instead.
312
321
313 ***WARNING: API CHANGE*** clock() used to return only user time,
322 ***WARNING: API CHANGE*** clock() used to return only user time,
314 so if you want exactly the same results as before, use clocku
323 so if you want exactly the same results as before, use clocku
315 instead.
324 instead.
316
325
317 2007-02-22 Ville Vainio <vivainio@gmail.com>
326 2007-02-22 Ville Vainio <vivainio@gmail.com>
318
327
319 * IPython/Extensions/ipy_p4.py: Extension for improved
328 * IPython/Extensions/ipy_p4.py: Extension for improved
320 p4 (perforce version control system) experience.
329 p4 (perforce version control system) experience.
321 Adds %p4 magic with p4 command completion and
330 Adds %p4 magic with p4 command completion and
322 automatic -G argument (marshall output as python dict)
331 automatic -G argument (marshall output as python dict)
323
332
324 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
333 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
325
334
326 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
335 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
327 stop marks.
336 stop marks.
328 (ClearingMixin): a simple mixin to easily make a Demo class clear
337 (ClearingMixin): a simple mixin to easily make a Demo class clear
329 the screen in between blocks and have empty marquees. The
338 the screen in between blocks and have empty marquees. The
330 ClearDemo and ClearIPDemo classes that use it are included.
339 ClearDemo and ClearIPDemo classes that use it are included.
331
340
332 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
341 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
333
342
334 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
343 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
335 protect against exceptions at Python shutdown time. Patch
344 protect against exceptions at Python shutdown time. Patch
336 sumbmitted to upstream.
345 sumbmitted to upstream.
337
346
338 2007-02-14 Walter Doerwald <walter@livinglogic.de>
347 2007-02-14 Walter Doerwald <walter@livinglogic.de>
339
348
340 * IPython/Extensions/ibrowse.py: If entering the first object level
349 * IPython/Extensions/ibrowse.py: If entering the first object level
341 (i.e. the object for which the browser has been started) fails,
350 (i.e. the object for which the browser has been started) fails,
342 now the error is raised directly (aborting the browser) instead of
351 now the error is raised directly (aborting the browser) instead of
343 running into an empty levels list later.
352 running into an empty levels list later.
344
353
345 2007-02-03 Walter Doerwald <walter@livinglogic.de>
354 2007-02-03 Walter Doerwald <walter@livinglogic.de>
346
355
347 * IPython/Extensions/ipipe.py: Add an xrepr implementation
356 * IPython/Extensions/ipipe.py: Add an xrepr implementation
348 for the noitem object.
357 for the noitem object.
349
358
350 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
359 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
351
360
352 * IPython/completer.py (Completer.attr_matches): Fix small
361 * IPython/completer.py (Completer.attr_matches): Fix small
353 tab-completion bug with Enthought Traits objects with units.
362 tab-completion bug with Enthought Traits objects with units.
354 Thanks to a bug report by Tom Denniston
363 Thanks to a bug report by Tom Denniston
355 <tom.denniston-AT-alum.dartmouth.org>.
364 <tom.denniston-AT-alum.dartmouth.org>.
356
365
357 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
358
367
359 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
368 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
360 bug where only .ipy or .py would be completed. Once the first
369 bug where only .ipy or .py would be completed. Once the first
361 argument to %run has been given, all completions are valid because
370 argument to %run has been given, all completions are valid because
362 they are the arguments to the script, which may well be non-python
371 they are the arguments to the script, which may well be non-python
363 filenames.
372 filenames.
364
373
365 * IPython/irunner.py (InteractiveRunner.run_source): major updates
374 * IPython/irunner.py (InteractiveRunner.run_source): major updates
366 to irunner to allow it to correctly support real doctesting of
375 to irunner to allow it to correctly support real doctesting of
367 out-of-process ipython code.
376 out-of-process ipython code.
368
377
369 * IPython/Magic.py (magic_cd): Make the setting of the terminal
378 * IPython/Magic.py (magic_cd): Make the setting of the terminal
370 title an option (-noterm_title) because it completely breaks
379 title an option (-noterm_title) because it completely breaks
371 doctesting.
380 doctesting.
372
381
373 * IPython/demo.py: fix IPythonDemo class that was not actually working.
382 * IPython/demo.py: fix IPythonDemo class that was not actually working.
374
383
375 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
384 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
376
385
377 * IPython/irunner.py (main): fix small bug where extensions were
386 * IPython/irunner.py (main): fix small bug where extensions were
378 not being correctly recognized.
387 not being correctly recognized.
379
388
380 2007-01-23 Walter Doerwald <walter@livinglogic.de>
389 2007-01-23 Walter Doerwald <walter@livinglogic.de>
381
390
382 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
391 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
383 a string containing a single line yields the string itself as the
392 a string containing a single line yields the string itself as the
384 only item.
393 only item.
385
394
386 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
395 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
387 object if it's the same as the one on the last level (This avoids
396 object if it's the same as the one on the last level (This avoids
388 infinite recursion for one line strings).
397 infinite recursion for one line strings).
389
398
390 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
399 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
391
400
392 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
401 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
393 all output streams before printing tracebacks. This ensures that
402 all output streams before printing tracebacks. This ensures that
394 user output doesn't end up interleaved with traceback output.
403 user output doesn't end up interleaved with traceback output.
395
404
396 2007-01-10 Ville Vainio <vivainio@gmail.com>
405 2007-01-10 Ville Vainio <vivainio@gmail.com>
397
406
398 * Extensions/envpersist.py: Turbocharged %env that remembers
407 * Extensions/envpersist.py: Turbocharged %env that remembers
399 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
408 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
400 "%env VISUAL=jed".
409 "%env VISUAL=jed".
401
410
402 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
411 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
403
412
404 * IPython/iplib.py (showtraceback): ensure that we correctly call
413 * IPython/iplib.py (showtraceback): ensure that we correctly call
405 custom handlers in all cases (some with pdb were slipping through,
414 custom handlers in all cases (some with pdb were slipping through,
406 but I'm not exactly sure why).
415 but I'm not exactly sure why).
407
416
408 * IPython/Debugger.py (Tracer.__init__): added new class to
417 * IPython/Debugger.py (Tracer.__init__): added new class to
409 support set_trace-like usage of IPython's enhanced debugger.
418 support set_trace-like usage of IPython's enhanced debugger.
410
419
411 2006-12-24 Ville Vainio <vivainio@gmail.com>
420 2006-12-24 Ville Vainio <vivainio@gmail.com>
412
421
413 * ipmaker.py: more informative message when ipy_user_conf
422 * ipmaker.py: more informative message when ipy_user_conf
414 import fails (suggest running %upgrade).
423 import fails (suggest running %upgrade).
415
424
416 * tools/run_ipy_in_profiler.py: Utility to see where
425 * tools/run_ipy_in_profiler.py: Utility to see where
417 the time during IPython startup is spent.
426 the time during IPython startup is spent.
418
427
419 2006-12-20 Ville Vainio <vivainio@gmail.com>
428 2006-12-20 Ville Vainio <vivainio@gmail.com>
420
429
421 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
430 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
422
431
423 * ipapi.py: Add new ipapi method, expand_alias.
432 * ipapi.py: Add new ipapi method, expand_alias.
424
433
425 * Release.py: Bump up version to 0.7.4.svn
434 * Release.py: Bump up version to 0.7.4.svn
426
435
427 2006-12-17 Ville Vainio <vivainio@gmail.com>
436 2006-12-17 Ville Vainio <vivainio@gmail.com>
428
437
429 * Extensions/jobctrl.py: Fixed &cmd arg arg...
438 * Extensions/jobctrl.py: Fixed &cmd arg arg...
430 to work properly on posix too
439 to work properly on posix too
431
440
432 * Release.py: Update revnum (version is still just 0.7.3).
441 * Release.py: Update revnum (version is still just 0.7.3).
433
442
434 2006-12-15 Ville Vainio <vivainio@gmail.com>
443 2006-12-15 Ville Vainio <vivainio@gmail.com>
435
444
436 * scripts/ipython_win_post_install: create ipython.py in
445 * scripts/ipython_win_post_install: create ipython.py in
437 prefix + "/scripts".
446 prefix + "/scripts".
438
447
439 * Release.py: Update version to 0.7.3.
448 * Release.py: Update version to 0.7.3.
440
449
441 2006-12-14 Ville Vainio <vivainio@gmail.com>
450 2006-12-14 Ville Vainio <vivainio@gmail.com>
442
451
443 * scripts/ipython_win_post_install: Overwrite old shortcuts
452 * scripts/ipython_win_post_install: Overwrite old shortcuts
444 if they already exist
453 if they already exist
445
454
446 * Release.py: release 0.7.3rc2
455 * Release.py: release 0.7.3rc2
447
456
448 2006-12-13 Ville Vainio <vivainio@gmail.com>
457 2006-12-13 Ville Vainio <vivainio@gmail.com>
449
458
450 * Branch and update Release.py for 0.7.3rc1
459 * Branch and update Release.py for 0.7.3rc1
451
460
452 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
461 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
453
462
454 * IPython/Shell.py (IPShellWX): update for current WX naming
463 * IPython/Shell.py (IPShellWX): update for current WX naming
455 conventions, to avoid a deprecation warning with current WX
464 conventions, to avoid a deprecation warning with current WX
456 versions. Thanks to a report by Danny Shevitz.
465 versions. Thanks to a report by Danny Shevitz.
457
466
458 2006-12-12 Ville Vainio <vivainio@gmail.com>
467 2006-12-12 Ville Vainio <vivainio@gmail.com>
459
468
460 * ipmaker.py: apply david cournapeau's patch to make
469 * ipmaker.py: apply david cournapeau's patch to make
461 import_some work properly even when ipythonrc does
470 import_some work properly even when ipythonrc does
462 import_some on empty list (it was an old bug!).
471 import_some on empty list (it was an old bug!).
463
472
464 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
473 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
465 Add deprecation note to ipythonrc and a url to wiki
474 Add deprecation note to ipythonrc and a url to wiki
466 in ipy_user_conf.py
475 in ipy_user_conf.py
467
476
468
477
469 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
478 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
470 as if it was typed on IPython command prompt, i.e.
479 as if it was typed on IPython command prompt, i.e.
471 as IPython script.
480 as IPython script.
472
481
473 * example-magic.py, magic_grepl.py: remove outdated examples
482 * example-magic.py, magic_grepl.py: remove outdated examples
474
483
475 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
484 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
476
485
477 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
486 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
478 is called before any exception has occurred.
487 is called before any exception has occurred.
479
488
480 2006-12-08 Ville Vainio <vivainio@gmail.com>
489 2006-12-08 Ville Vainio <vivainio@gmail.com>
481
490
482 * Extensions/ipy_stock_completers.py: fix cd completer
491 * Extensions/ipy_stock_completers.py: fix cd completer
483 to translate /'s to \'s again.
492 to translate /'s to \'s again.
484
493
485 * completer.py: prevent traceback on file completions w/
494 * completer.py: prevent traceback on file completions w/
486 backslash.
495 backslash.
487
496
488 * Release.py: Update release number to 0.7.3b3 for release
497 * Release.py: Update release number to 0.7.3b3 for release
489
498
490 2006-12-07 Ville Vainio <vivainio@gmail.com>
499 2006-12-07 Ville Vainio <vivainio@gmail.com>
491
500
492 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
501 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
493 while executing external code. Provides more shell-like behaviour
502 while executing external code. Provides more shell-like behaviour
494 and overall better response to ctrl + C / ctrl + break.
503 and overall better response to ctrl + C / ctrl + break.
495
504
496 * tools/make_tarball.py: new script to create tarball straight from svn
505 * tools/make_tarball.py: new script to create tarball straight from svn
497 (setup.py sdist doesn't work on win32).
506 (setup.py sdist doesn't work on win32).
498
507
499 * Extensions/ipy_stock_completers.py: fix cd completer to give up
508 * Extensions/ipy_stock_completers.py: fix cd completer to give up
500 on dirnames with spaces and use the default completer instead.
509 on dirnames with spaces and use the default completer instead.
501
510
502 * Revision.py: Change version to 0.7.3b2 for release.
511 * Revision.py: Change version to 0.7.3b2 for release.
503
512
504 2006-12-05 Ville Vainio <vivainio@gmail.com>
513 2006-12-05 Ville Vainio <vivainio@gmail.com>
505
514
506 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
515 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
507 pydb patch 4 (rm debug printing, py 2.5 checking)
516 pydb patch 4 (rm debug printing, py 2.5 checking)
508
517
509 2006-11-30 Walter Doerwald <walter@livinglogic.de>
518 2006-11-30 Walter Doerwald <walter@livinglogic.de>
510 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
519 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
511 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
520 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
512 "refreshfind" (mapped to "R") does the same but tries to go back to the same
521 "refreshfind" (mapped to "R") does the same but tries to go back to the same
513 object the cursor was on before the refresh. The command "markrange" is
522 object the cursor was on before the refresh. The command "markrange" is
514 mapped to "%" now.
523 mapped to "%" now.
515 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
524 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
516
525
517 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
526 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
518
527
519 * IPython/Magic.py (magic_debug): new %debug magic to activate the
528 * IPython/Magic.py (magic_debug): new %debug magic to activate the
520 interactive debugger on the last traceback, without having to call
529 interactive debugger on the last traceback, without having to call
521 %pdb and rerun your code. Made minor changes in various modules,
530 %pdb and rerun your code. Made minor changes in various modules,
522 should automatically recognize pydb if available.
531 should automatically recognize pydb if available.
523
532
524 2006-11-28 Ville Vainio <vivainio@gmail.com>
533 2006-11-28 Ville Vainio <vivainio@gmail.com>
525
534
526 * completer.py: If the text start with !, show file completions
535 * completer.py: If the text start with !, show file completions
527 properly. This helps when trying to complete command name
536 properly. This helps when trying to complete command name
528 for shell escapes.
537 for shell escapes.
529
538
530 2006-11-27 Ville Vainio <vivainio@gmail.com>
539 2006-11-27 Ville Vainio <vivainio@gmail.com>
531
540
532 * ipy_stock_completers.py: bzr completer submitted by Stefan van
541 * ipy_stock_completers.py: bzr completer submitted by Stefan van
533 der Walt. Clean up svn and hg completers by using a common
542 der Walt. Clean up svn and hg completers by using a common
534 vcs_completer.
543 vcs_completer.
535
544
536 2006-11-26 Ville Vainio <vivainio@gmail.com>
545 2006-11-26 Ville Vainio <vivainio@gmail.com>
537
546
538 * Remove ipconfig and %config; you should use _ip.options structure
547 * Remove ipconfig and %config; you should use _ip.options structure
539 directly instead!
548 directly instead!
540
549
541 * genutils.py: add wrap_deprecated function for deprecating callables
550 * genutils.py: add wrap_deprecated function for deprecating callables
542
551
543 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
552 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
544 _ip.system instead. ipalias is redundant.
553 _ip.system instead. ipalias is redundant.
545
554
546 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
555 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
547 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
556 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
548 explicit.
557 explicit.
549
558
550 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
559 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
551 completer. Try it by entering 'hg ' and pressing tab.
560 completer. Try it by entering 'hg ' and pressing tab.
552
561
553 * macro.py: Give Macro a useful __repr__ method
562 * macro.py: Give Macro a useful __repr__ method
554
563
555 * Magic.py: %whos abbreviates the typename of Macro for brevity.
564 * Magic.py: %whos abbreviates the typename of Macro for brevity.
556
565
557 2006-11-24 Walter Doerwald <walter@livinglogic.de>
566 2006-11-24 Walter Doerwald <walter@livinglogic.de>
558 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
567 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
559 we don't get a duplicate ipipe module, where registration of the xrepr
568 we don't get a duplicate ipipe module, where registration of the xrepr
560 implementation for Text is useless.
569 implementation for Text is useless.
561
570
562 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
571 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
563
572
564 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
573 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
565
574
566 2006-11-24 Ville Vainio <vivainio@gmail.com>
575 2006-11-24 Ville Vainio <vivainio@gmail.com>
567
576
568 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
577 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
569 try to use "cProfile" instead of the slower pure python
578 try to use "cProfile" instead of the slower pure python
570 "profile"
579 "profile"
571
580
572 2006-11-23 Ville Vainio <vivainio@gmail.com>
581 2006-11-23 Ville Vainio <vivainio@gmail.com>
573
582
574 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
583 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
575 Qt+IPython+Designer link in documentation.
584 Qt+IPython+Designer link in documentation.
576
585
577 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
586 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
578 correct Pdb object to %pydb.
587 correct Pdb object to %pydb.
579
588
580
589
581 2006-11-22 Walter Doerwald <walter@livinglogic.de>
590 2006-11-22 Walter Doerwald <walter@livinglogic.de>
582 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
591 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
583 generic xrepr(), otherwise the list implementation would kick in.
592 generic xrepr(), otherwise the list implementation would kick in.
584
593
585 2006-11-21 Ville Vainio <vivainio@gmail.com>
594 2006-11-21 Ville Vainio <vivainio@gmail.com>
586
595
587 * upgrade_dir.py: Now actually overwrites a nonmodified user file
596 * upgrade_dir.py: Now actually overwrites a nonmodified user file
588 with one from UserConfig.
597 with one from UserConfig.
589
598
590 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
599 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
591 it was missing which broke the sh profile.
600 it was missing which broke the sh profile.
592
601
593 * completer.py: file completer now uses explicit '/' instead
602 * completer.py: file completer now uses explicit '/' instead
594 of os.path.join, expansion of 'foo' was broken on win32
603 of os.path.join, expansion of 'foo' was broken on win32
595 if there was one directory with name 'foobar'.
604 if there was one directory with name 'foobar'.
596
605
597 * A bunch of patches from Kirill Smelkov:
606 * A bunch of patches from Kirill Smelkov:
598
607
599 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
608 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
600
609
601 * [patch 7/9] Implement %page -r (page in raw mode) -
610 * [patch 7/9] Implement %page -r (page in raw mode) -
602
611
603 * [patch 5/9] ScientificPython webpage has moved
612 * [patch 5/9] ScientificPython webpage has moved
604
613
605 * [patch 4/9] The manual mentions %ds, should be %dhist
614 * [patch 4/9] The manual mentions %ds, should be %dhist
606
615
607 * [patch 3/9] Kill old bits from %prun doc.
616 * [patch 3/9] Kill old bits from %prun doc.
608
617
609 * [patch 1/9] Fix typos here and there.
618 * [patch 1/9] Fix typos here and there.
610
619
611 2006-11-08 Ville Vainio <vivainio@gmail.com>
620 2006-11-08 Ville Vainio <vivainio@gmail.com>
612
621
613 * completer.py (attr_matches): catch all exceptions raised
622 * completer.py (attr_matches): catch all exceptions raised
614 by eval of expr with dots.
623 by eval of expr with dots.
615
624
616 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
625 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
617
626
618 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
627 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
619 input if it starts with whitespace. This allows you to paste
628 input if it starts with whitespace. This allows you to paste
620 indented input from any editor without manually having to type in
629 indented input from any editor without manually having to type in
621 the 'if 1:', which is convenient when working interactively.
630 the 'if 1:', which is convenient when working interactively.
622 Slightly modifed version of a patch by Bo Peng
631 Slightly modifed version of a patch by Bo Peng
623 <bpeng-AT-rice.edu>.
632 <bpeng-AT-rice.edu>.
624
633
625 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
634 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
626
635
627 * IPython/irunner.py (main): modified irunner so it automatically
636 * IPython/irunner.py (main): modified irunner so it automatically
628 recognizes the right runner to use based on the extension (.py for
637 recognizes the right runner to use based on the extension (.py for
629 python, .ipy for ipython and .sage for sage).
638 python, .ipy for ipython and .sage for sage).
630
639
631 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
640 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
632 visible in ipapi as ip.config(), to programatically control the
641 visible in ipapi as ip.config(), to programatically control the
633 internal rc object. There's an accompanying %config magic for
642 internal rc object. There's an accompanying %config magic for
634 interactive use, which has been enhanced to match the
643 interactive use, which has been enhanced to match the
635 funtionality in ipconfig.
644 funtionality in ipconfig.
636
645
637 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
646 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
638 so it's not just a toggle, it now takes an argument. Add support
647 so it's not just a toggle, it now takes an argument. Add support
639 for a customizable header when making system calls, as the new
648 for a customizable header when making system calls, as the new
640 system_header variable in the ipythonrc file.
649 system_header variable in the ipythonrc file.
641
650
642 2006-11-03 Walter Doerwald <walter@livinglogic.de>
651 2006-11-03 Walter Doerwald <walter@livinglogic.de>
643
652
644 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
653 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
645 generic functions (using Philip J. Eby's simplegeneric package).
654 generic functions (using Philip J. Eby's simplegeneric package).
646 This makes it possible to customize the display of third-party classes
655 This makes it possible to customize the display of third-party classes
647 without having to monkeypatch them. xiter() no longer supports a mode
656 without having to monkeypatch them. xiter() no longer supports a mode
648 argument and the XMode class has been removed. The same functionality can
657 argument and the XMode class has been removed. The same functionality can
649 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
658 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
650 One consequence of the switch to generic functions is that xrepr() and
659 One consequence of the switch to generic functions is that xrepr() and
651 xattrs() implementation must define the default value for the mode
660 xattrs() implementation must define the default value for the mode
652 argument themselves and xattrs() implementations must return real
661 argument themselves and xattrs() implementations must return real
653 descriptors.
662 descriptors.
654
663
655 * IPython/external: This new subpackage will contain all third-party
664 * IPython/external: This new subpackage will contain all third-party
656 packages that are bundled with IPython. (The first one is simplegeneric).
665 packages that are bundled with IPython. (The first one is simplegeneric).
657
666
658 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
667 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
659 directory which as been dropped in r1703.
668 directory which as been dropped in r1703.
660
669
661 * IPython/Extensions/ipipe.py (iless): Fixed.
670 * IPython/Extensions/ipipe.py (iless): Fixed.
662
671
663 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
672 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
664
673
665 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
674 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
666
675
667 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
676 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
668 handling in variable expansion so that shells and magics recognize
677 handling in variable expansion so that shells and magics recognize
669 function local scopes correctly. Bug reported by Brian.
678 function local scopes correctly. Bug reported by Brian.
670
679
671 * scripts/ipython: remove the very first entry in sys.path which
680 * scripts/ipython: remove the very first entry in sys.path which
672 Python auto-inserts for scripts, so that sys.path under IPython is
681 Python auto-inserts for scripts, so that sys.path under IPython is
673 as similar as possible to that under plain Python.
682 as similar as possible to that under plain Python.
674
683
675 * IPython/completer.py (IPCompleter.file_matches): Fix
684 * IPython/completer.py (IPCompleter.file_matches): Fix
676 tab-completion so that quotes are not closed unless the completion
685 tab-completion so that quotes are not closed unless the completion
677 is unambiguous. After a request by Stefan. Minor cleanups in
686 is unambiguous. After a request by Stefan. Minor cleanups in
678 ipy_stock_completers.
687 ipy_stock_completers.
679
688
680 2006-11-02 Ville Vainio <vivainio@gmail.com>
689 2006-11-02 Ville Vainio <vivainio@gmail.com>
681
690
682 * ipy_stock_completers.py: Add %run and %cd completers.
691 * ipy_stock_completers.py: Add %run and %cd completers.
683
692
684 * completer.py: Try running custom completer for both
693 * completer.py: Try running custom completer for both
685 "foo" and "%foo" if the command is just "foo". Ignore case
694 "foo" and "%foo" if the command is just "foo". Ignore case
686 when filtering possible completions.
695 when filtering possible completions.
687
696
688 * UserConfig/ipy_user_conf.py: install stock completers as default
697 * UserConfig/ipy_user_conf.py: install stock completers as default
689
698
690 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
699 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
691 simplified readline history save / restore through a wrapper
700 simplified readline history save / restore through a wrapper
692 function
701 function
693
702
694
703
695 2006-10-31 Ville Vainio <vivainio@gmail.com>
704 2006-10-31 Ville Vainio <vivainio@gmail.com>
696
705
697 * strdispatch.py, completer.py, ipy_stock_completers.py:
706 * strdispatch.py, completer.py, ipy_stock_completers.py:
698 Allow str_key ("command") in completer hooks. Implement
707 Allow str_key ("command") in completer hooks. Implement
699 trivial completer for 'import' (stdlib modules only). Rename
708 trivial completer for 'import' (stdlib modules only). Rename
700 ipy_linux_package_managers.py to ipy_stock_completers.py.
709 ipy_linux_package_managers.py to ipy_stock_completers.py.
701 SVN completer.
710 SVN completer.
702
711
703 * Extensions/ledit.py: %magic line editor for easily and
712 * Extensions/ledit.py: %magic line editor for easily and
704 incrementally manipulating lists of strings. The magic command
713 incrementally manipulating lists of strings. The magic command
705 name is %led.
714 name is %led.
706
715
707 2006-10-30 Ville Vainio <vivainio@gmail.com>
716 2006-10-30 Ville Vainio <vivainio@gmail.com>
708
717
709 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
718 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
710 Bernsteins's patches for pydb integration.
719 Bernsteins's patches for pydb integration.
711 http://bashdb.sourceforge.net/pydb/
720 http://bashdb.sourceforge.net/pydb/
712
721
713 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
722 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
714 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
723 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
715 custom completer hook to allow the users to implement their own
724 custom completer hook to allow the users to implement their own
716 completers. See ipy_linux_package_managers.py for example. The
725 completers. See ipy_linux_package_managers.py for example. The
717 hook name is 'complete_command'.
726 hook name is 'complete_command'.
718
727
719 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
728 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
720
729
721 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
730 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
722 Numeric leftovers.
731 Numeric leftovers.
723
732
724 * ipython.el (py-execute-region): apply Stefan's patch to fix
733 * ipython.el (py-execute-region): apply Stefan's patch to fix
725 garbled results if the python shell hasn't been previously started.
734 garbled results if the python shell hasn't been previously started.
726
735
727 * IPython/genutils.py (arg_split): moved to genutils, since it's a
736 * IPython/genutils.py (arg_split): moved to genutils, since it's a
728 pretty generic function and useful for other things.
737 pretty generic function and useful for other things.
729
738
730 * IPython/OInspect.py (getsource): Add customizable source
739 * IPython/OInspect.py (getsource): Add customizable source
731 extractor. After a request/patch form W. Stein (SAGE).
740 extractor. After a request/patch form W. Stein (SAGE).
732
741
733 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
742 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
734 window size to a more reasonable value from what pexpect does,
743 window size to a more reasonable value from what pexpect does,
735 since their choice causes wrapping bugs with long input lines.
744 since their choice causes wrapping bugs with long input lines.
736
745
737 2006-10-28 Ville Vainio <vivainio@gmail.com>
746 2006-10-28 Ville Vainio <vivainio@gmail.com>
738
747
739 * Magic.py (%run): Save and restore the readline history from
748 * Magic.py (%run): Save and restore the readline history from
740 file around %run commands to prevent side effects from
749 file around %run commands to prevent side effects from
741 %runned programs that might use readline (e.g. pydb).
750 %runned programs that might use readline (e.g. pydb).
742
751
743 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
752 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
744 invoking the pydb enhanced debugger.
753 invoking the pydb enhanced debugger.
745
754
746 2006-10-23 Walter Doerwald <walter@livinglogic.de>
755 2006-10-23 Walter Doerwald <walter@livinglogic.de>
747
756
748 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
757 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
749 call the base class method and propagate the return value to
758 call the base class method and propagate the return value to
750 ifile. This is now done by path itself.
759 ifile. This is now done by path itself.
751
760
752 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
761 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
753
762
754 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
763 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
755 api: set_crash_handler(), to expose the ability to change the
764 api: set_crash_handler(), to expose the ability to change the
756 internal crash handler.
765 internal crash handler.
757
766
758 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
767 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
759 the various parameters of the crash handler so that apps using
768 the various parameters of the crash handler so that apps using
760 IPython as their engine can customize crash handling. Ipmlemented
769 IPython as their engine can customize crash handling. Ipmlemented
761 at the request of SAGE.
770 at the request of SAGE.
762
771
763 2006-10-14 Ville Vainio <vivainio@gmail.com>
772 2006-10-14 Ville Vainio <vivainio@gmail.com>
764
773
765 * Magic.py, ipython.el: applied first "safe" part of Rocky
774 * Magic.py, ipython.el: applied first "safe" part of Rocky
766 Bernstein's patch set for pydb integration.
775 Bernstein's patch set for pydb integration.
767
776
768 * Magic.py (%unalias, %alias): %store'd aliases can now be
777 * Magic.py (%unalias, %alias): %store'd aliases can now be
769 removed with '%unalias'. %alias w/o args now shows most
778 removed with '%unalias'. %alias w/o args now shows most
770 interesting (stored / manually defined) aliases last
779 interesting (stored / manually defined) aliases last
771 where they catch the eye w/o scrolling.
780 where they catch the eye w/o scrolling.
772
781
773 * Magic.py (%rehashx), ext_rehashdir.py: files with
782 * Magic.py (%rehashx), ext_rehashdir.py: files with
774 'py' extension are always considered executable, even
783 'py' extension are always considered executable, even
775 when not in PATHEXT environment variable.
784 when not in PATHEXT environment variable.
776
785
777 2006-10-12 Ville Vainio <vivainio@gmail.com>
786 2006-10-12 Ville Vainio <vivainio@gmail.com>
778
787
779 * jobctrl.py: Add new "jobctrl" extension for spawning background
788 * jobctrl.py: Add new "jobctrl" extension for spawning background
780 processes with "&find /". 'import jobctrl' to try it out. Requires
789 processes with "&find /". 'import jobctrl' to try it out. Requires
781 'subprocess' module, standard in python 2.4+.
790 'subprocess' module, standard in python 2.4+.
782
791
783 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
792 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
784 so if foo -> bar and bar -> baz, then foo -> baz.
793 so if foo -> bar and bar -> baz, then foo -> baz.
785
794
786 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
795 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
787
796
788 * IPython/Magic.py (Magic.parse_options): add a new posix option
797 * IPython/Magic.py (Magic.parse_options): add a new posix option
789 to allow parsing of input args in magics that doesn't strip quotes
798 to allow parsing of input args in magics that doesn't strip quotes
790 (if posix=False). This also closes %timeit bug reported by
799 (if posix=False). This also closes %timeit bug reported by
791 Stefan.
800 Stefan.
792
801
793 2006-10-03 Ville Vainio <vivainio@gmail.com>
802 2006-10-03 Ville Vainio <vivainio@gmail.com>
794
803
795 * iplib.py (raw_input, interact): Return ValueError catching for
804 * iplib.py (raw_input, interact): Return ValueError catching for
796 raw_input. Fixes infinite loop for sys.stdin.close() or
805 raw_input. Fixes infinite loop for sys.stdin.close() or
797 sys.stdout.close().
806 sys.stdout.close().
798
807
799 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
808 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
800
809
801 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
810 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
802 to help in handling doctests. irunner is now pretty useful for
811 to help in handling doctests. irunner is now pretty useful for
803 running standalone scripts and simulate a full interactive session
812 running standalone scripts and simulate a full interactive session
804 in a format that can be then pasted as a doctest.
813 in a format that can be then pasted as a doctest.
805
814
806 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
815 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
807 on top of the default (useless) ones. This also fixes the nasty
816 on top of the default (useless) ones. This also fixes the nasty
808 way in which 2.5's Quitter() exits (reverted [1785]).
817 way in which 2.5's Quitter() exits (reverted [1785]).
809
818
810 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
819 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
811 2.5.
820 2.5.
812
821
813 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
822 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
814 color scheme is updated as well when color scheme is changed
823 color scheme is updated as well when color scheme is changed
815 interactively.
824 interactively.
816
825
817 2006-09-27 Ville Vainio <vivainio@gmail.com>
826 2006-09-27 Ville Vainio <vivainio@gmail.com>
818
827
819 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
828 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
820 infinite loop and just exit. It's a hack, but will do for a while.
829 infinite loop and just exit. It's a hack, but will do for a while.
821
830
822 2006-08-25 Walter Doerwald <walter@livinglogic.de>
831 2006-08-25 Walter Doerwald <walter@livinglogic.de>
823
832
824 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
833 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
825 the constructor, this makes it possible to get a list of only directories
834 the constructor, this makes it possible to get a list of only directories
826 or only files.
835 or only files.
827
836
828 2006-08-12 Ville Vainio <vivainio@gmail.com>
837 2006-08-12 Ville Vainio <vivainio@gmail.com>
829
838
830 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
839 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
831 they broke unittest
840 they broke unittest
832
841
833 2006-08-11 Ville Vainio <vivainio@gmail.com>
842 2006-08-11 Ville Vainio <vivainio@gmail.com>
834
843
835 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
844 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
836 by resolving issue properly, i.e. by inheriting FakeModule
845 by resolving issue properly, i.e. by inheriting FakeModule
837 from types.ModuleType. Pickling ipython interactive data
846 from types.ModuleType. Pickling ipython interactive data
838 should still work as usual (testing appreciated).
847 should still work as usual (testing appreciated).
839
848
840 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
849 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
841
850
842 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
851 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
843 running under python 2.3 with code from 2.4 to fix a bug with
852 running under python 2.3 with code from 2.4 to fix a bug with
844 help(). Reported by the Debian maintainers, Norbert Tretkowski
853 help(). Reported by the Debian maintainers, Norbert Tretkowski
845 <norbert-AT-tretkowski.de> and Alexandre Fayolle
854 <norbert-AT-tretkowski.de> and Alexandre Fayolle
846 <afayolle-AT-debian.org>.
855 <afayolle-AT-debian.org>.
847
856
848 2006-08-04 Walter Doerwald <walter@livinglogic.de>
857 2006-08-04 Walter Doerwald <walter@livinglogic.de>
849
858
850 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
859 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
851 (which was displaying "quit" twice).
860 (which was displaying "quit" twice).
852
861
853 2006-07-28 Walter Doerwald <walter@livinglogic.de>
862 2006-07-28 Walter Doerwald <walter@livinglogic.de>
854
863
855 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
864 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
856 the mode argument).
865 the mode argument).
857
866
858 2006-07-27 Walter Doerwald <walter@livinglogic.de>
867 2006-07-27 Walter Doerwald <walter@livinglogic.de>
859
868
860 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
869 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
861 not running under IPython.
870 not running under IPython.
862
871
863 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
872 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
864 and make it iterable (iterating over the attribute itself). Add two new
873 and make it iterable (iterating over the attribute itself). Add two new
865 magic strings for __xattrs__(): If the string starts with "-", the attribute
874 magic strings for __xattrs__(): If the string starts with "-", the attribute
866 will not be displayed in ibrowse's detail view (but it can still be
875 will not be displayed in ibrowse's detail view (but it can still be
867 iterated over). This makes it possible to add attributes that are large
876 iterated over). This makes it possible to add attributes that are large
868 lists or generator methods to the detail view. Replace magic attribute names
877 lists or generator methods to the detail view. Replace magic attribute names
869 and _attrname() and _getattr() with "descriptors": For each type of magic
878 and _attrname() and _getattr() with "descriptors": For each type of magic
870 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
879 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
871 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
880 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
872 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
881 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
873 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
882 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
874 are still supported.
883 are still supported.
875
884
876 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
885 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
877 fails in ibrowse.fetch(), the exception object is added as the last item
886 fails in ibrowse.fetch(), the exception object is added as the last item
878 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
887 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
879 a generator throws an exception midway through execution.
888 a generator throws an exception midway through execution.
880
889
881 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
890 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
882 encoding into methods.
891 encoding into methods.
883
892
884 2006-07-26 Ville Vainio <vivainio@gmail.com>
893 2006-07-26 Ville Vainio <vivainio@gmail.com>
885
894
886 * iplib.py: history now stores multiline input as single
895 * iplib.py: history now stores multiline input as single
887 history entries. Patch by Jorgen Cederlof.
896 history entries. Patch by Jorgen Cederlof.
888
897
889 2006-07-18 Walter Doerwald <walter@livinglogic.de>
898 2006-07-18 Walter Doerwald <walter@livinglogic.de>
890
899
891 * IPython/Extensions/ibrowse.py: Make cursor visible over
900 * IPython/Extensions/ibrowse.py: Make cursor visible over
892 non existing attributes.
901 non existing attributes.
893
902
894 2006-07-14 Walter Doerwald <walter@livinglogic.de>
903 2006-07-14 Walter Doerwald <walter@livinglogic.de>
895
904
896 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
905 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
897 error output of the running command doesn't mess up the screen.
906 error output of the running command doesn't mess up the screen.
898
907
899 2006-07-13 Walter Doerwald <walter@livinglogic.de>
908 2006-07-13 Walter Doerwald <walter@livinglogic.de>
900
909
901 * IPython/Extensions/ipipe.py (isort): Make isort usable without
910 * IPython/Extensions/ipipe.py (isort): Make isort usable without
902 argument. This sorts the items themselves.
911 argument. This sorts the items themselves.
903
912
904 2006-07-12 Walter Doerwald <walter@livinglogic.de>
913 2006-07-12 Walter Doerwald <walter@livinglogic.de>
905
914
906 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
915 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
907 Compile expression strings into code objects. This should speed
916 Compile expression strings into code objects. This should speed
908 up ifilter and friends somewhat.
917 up ifilter and friends somewhat.
909
918
910 2006-07-08 Ville Vainio <vivainio@gmail.com>
919 2006-07-08 Ville Vainio <vivainio@gmail.com>
911
920
912 * Magic.py: %cpaste now strips > from the beginning of lines
921 * Magic.py: %cpaste now strips > from the beginning of lines
913 to ease pasting quoted code from emails. Contributed by
922 to ease pasting quoted code from emails. Contributed by
914 Stefan van der Walt.
923 Stefan van der Walt.
915
924
916 2006-06-29 Ville Vainio <vivainio@gmail.com>
925 2006-06-29 Ville Vainio <vivainio@gmail.com>
917
926
918 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
927 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
919 mode, patch contributed by Darren Dale. NEEDS TESTING!
928 mode, patch contributed by Darren Dale. NEEDS TESTING!
920
929
921 2006-06-28 Walter Doerwald <walter@livinglogic.de>
930 2006-06-28 Walter Doerwald <walter@livinglogic.de>
922
931
923 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
932 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
924 a blue background. Fix fetching new display rows when the browser
933 a blue background. Fix fetching new display rows when the browser
925 scrolls more than a screenful (e.g. by using the goto command).
934 scrolls more than a screenful (e.g. by using the goto command).
926
935
927 2006-06-27 Ville Vainio <vivainio@gmail.com>
936 2006-06-27 Ville Vainio <vivainio@gmail.com>
928
937
929 * Magic.py (_inspect, _ofind) Apply David Huard's
938 * Magic.py (_inspect, _ofind) Apply David Huard's
930 patch for displaying the correct docstring for 'property'
939 patch for displaying the correct docstring for 'property'
931 attributes.
940 attributes.
932
941
933 2006-06-23 Walter Doerwald <walter@livinglogic.de>
942 2006-06-23 Walter Doerwald <walter@livinglogic.de>
934
943
935 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
944 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
936 commands into the methods implementing them.
945 commands into the methods implementing them.
937
946
938 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
947 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
939
948
940 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
949 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
941 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
950 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
942 autoindent support was authored by Jin Liu.
951 autoindent support was authored by Jin Liu.
943
952
944 2006-06-22 Walter Doerwald <walter@livinglogic.de>
953 2006-06-22 Walter Doerwald <walter@livinglogic.de>
945
954
946 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
955 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
947 for keymaps with a custom class that simplifies handling.
956 for keymaps with a custom class that simplifies handling.
948
957
949 2006-06-19 Walter Doerwald <walter@livinglogic.de>
958 2006-06-19 Walter Doerwald <walter@livinglogic.de>
950
959
951 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
960 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
952 resizing. This requires Python 2.5 to work.
961 resizing. This requires Python 2.5 to work.
953
962
954 2006-06-16 Walter Doerwald <walter@livinglogic.de>
963 2006-06-16 Walter Doerwald <walter@livinglogic.de>
955
964
956 * IPython/Extensions/ibrowse.py: Add two new commands to
965 * IPython/Extensions/ibrowse.py: Add two new commands to
957 ibrowse: "hideattr" (mapped to "h") hides the attribute under
966 ibrowse: "hideattr" (mapped to "h") hides the attribute under
958 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
967 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
959 attributes again. Remapped the help command to "?". Display
968 attributes again. Remapped the help command to "?". Display
960 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
969 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
961 as keys for the "home" and "end" commands. Add three new commands
970 as keys for the "home" and "end" commands. Add three new commands
962 to the input mode for "find" and friends: "delend" (CTRL-K)
971 to the input mode for "find" and friends: "delend" (CTRL-K)
963 deletes to the end of line. "incsearchup" searches upwards in the
972 deletes to the end of line. "incsearchup" searches upwards in the
964 command history for an input that starts with the text before the cursor.
973 command history for an input that starts with the text before the cursor.
965 "incsearchdown" does the same downwards. Removed a bogus mapping of
974 "incsearchdown" does the same downwards. Removed a bogus mapping of
966 the x key to "delete".
975 the x key to "delete".
967
976
968 2006-06-15 Ville Vainio <vivainio@gmail.com>
977 2006-06-15 Ville Vainio <vivainio@gmail.com>
969
978
970 * iplib.py, hooks.py: Added new generate_prompt hook that can be
979 * iplib.py, hooks.py: Added new generate_prompt hook that can be
971 used to create prompts dynamically, instead of the "old" way of
980 used to create prompts dynamically, instead of the "old" way of
972 assigning "magic" strings to prompt_in1 and prompt_in2. The old
981 assigning "magic" strings to prompt_in1 and prompt_in2. The old
973 way still works (it's invoked by the default hook), of course.
982 way still works (it's invoked by the default hook), of course.
974
983
975 * Prompts.py: added generate_output_prompt hook for altering output
984 * Prompts.py: added generate_output_prompt hook for altering output
976 prompt
985 prompt
977
986
978 * Release.py: Changed version string to 0.7.3.svn.
987 * Release.py: Changed version string to 0.7.3.svn.
979
988
980 2006-06-15 Walter Doerwald <walter@livinglogic.de>
989 2006-06-15 Walter Doerwald <walter@livinglogic.de>
981
990
982 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
991 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
983 the call to fetch() always tries to fetch enough data for at least one
992 the call to fetch() always tries to fetch enough data for at least one
984 full screen. This makes it possible to simply call moveto(0,0,True) in
993 full screen. This makes it possible to simply call moveto(0,0,True) in
985 the constructor. Fix typos and removed the obsolete goto attribute.
994 the constructor. Fix typos and removed the obsolete goto attribute.
986
995
987 2006-06-12 Ville Vainio <vivainio@gmail.com>
996 2006-06-12 Ville Vainio <vivainio@gmail.com>
988
997
989 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
998 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
990 allowing $variable interpolation within multiline statements,
999 allowing $variable interpolation within multiline statements,
991 though so far only with "sh" profile for a testing period.
1000 though so far only with "sh" profile for a testing period.
992 The patch also enables splitting long commands with \ but it
1001 The patch also enables splitting long commands with \ but it
993 doesn't work properly yet.
1002 doesn't work properly yet.
994
1003
995 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1004 2006-06-12 Walter Doerwald <walter@livinglogic.de>
996
1005
997 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1006 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
998 input history and the position of the cursor in the input history for
1007 input history and the position of the cursor in the input history for
999 the find, findbackwards and goto command.
1008 the find, findbackwards and goto command.
1000
1009
1001 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1010 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1002
1011
1003 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1012 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1004 implements the basic functionality of browser commands that require
1013 implements the basic functionality of browser commands that require
1005 input. Reimplement the goto, find and findbackwards commands as
1014 input. Reimplement the goto, find and findbackwards commands as
1006 subclasses of _CommandInput. Add an input history and keymaps to those
1015 subclasses of _CommandInput. Add an input history and keymaps to those
1007 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1016 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1008 execute commands.
1017 execute commands.
1009
1018
1010 2006-06-07 Ville Vainio <vivainio@gmail.com>
1019 2006-06-07 Ville Vainio <vivainio@gmail.com>
1011
1020
1012 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1021 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1013 running the batch files instead of leaving the session open.
1022 running the batch files instead of leaving the session open.
1014
1023
1015 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1024 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1016
1025
1017 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1026 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1018 the original fix was incomplete. Patch submitted by W. Maier.
1027 the original fix was incomplete. Patch submitted by W. Maier.
1019
1028
1020 2006-06-07 Ville Vainio <vivainio@gmail.com>
1029 2006-06-07 Ville Vainio <vivainio@gmail.com>
1021
1030
1022 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1031 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1023 Confirmation prompts can be supressed by 'quiet' option.
1032 Confirmation prompts can be supressed by 'quiet' option.
1024 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1033 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1025
1034
1026 2006-06-06 *** Released version 0.7.2
1035 2006-06-06 *** Released version 0.7.2
1027
1036
1028 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1037 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1029
1038
1030 * IPython/Release.py (version): Made 0.7.2 final for release.
1039 * IPython/Release.py (version): Made 0.7.2 final for release.
1031 Repo tagged and release cut.
1040 Repo tagged and release cut.
1032
1041
1033 2006-06-05 Ville Vainio <vivainio@gmail.com>
1042 2006-06-05 Ville Vainio <vivainio@gmail.com>
1034
1043
1035 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1044 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1036 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1045 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1037
1046
1038 * upgrade_dir.py: try import 'path' module a bit harder
1047 * upgrade_dir.py: try import 'path' module a bit harder
1039 (for %upgrade)
1048 (for %upgrade)
1040
1049
1041 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1050 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1042
1051
1043 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1052 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1044 instead of looping 20 times.
1053 instead of looping 20 times.
1045
1054
1046 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1055 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1047 correctly at initialization time. Bug reported by Krishna Mohan
1056 correctly at initialization time. Bug reported by Krishna Mohan
1048 Gundu <gkmohan-AT-gmail.com> on the user list.
1057 Gundu <gkmohan-AT-gmail.com> on the user list.
1049
1058
1050 * IPython/Release.py (version): Mark 0.7.2 version to start
1059 * IPython/Release.py (version): Mark 0.7.2 version to start
1051 testing for release on 06/06.
1060 testing for release on 06/06.
1052
1061
1053 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1062 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1054
1063
1055 * scripts/irunner: thin script interface so users don't have to
1064 * scripts/irunner: thin script interface so users don't have to
1056 find the module and call it as an executable, since modules rarely
1065 find the module and call it as an executable, since modules rarely
1057 live in people's PATH.
1066 live in people's PATH.
1058
1067
1059 * IPython/irunner.py (InteractiveRunner.__init__): added
1068 * IPython/irunner.py (InteractiveRunner.__init__): added
1060 delaybeforesend attribute to control delays with newer versions of
1069 delaybeforesend attribute to control delays with newer versions of
1061 pexpect. Thanks to detailed help from pexpect's author, Noah
1070 pexpect. Thanks to detailed help from pexpect's author, Noah
1062 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1071 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1063 correctly (it works in NoColor mode).
1072 correctly (it works in NoColor mode).
1064
1073
1065 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1074 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1066 SAGE list, from improper log() calls.
1075 SAGE list, from improper log() calls.
1067
1076
1068 2006-05-31 Ville Vainio <vivainio@gmail.com>
1077 2006-05-31 Ville Vainio <vivainio@gmail.com>
1069
1078
1070 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1079 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1071 with args in parens to work correctly with dirs that have spaces.
1080 with args in parens to work correctly with dirs that have spaces.
1072
1081
1073 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1082 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1074
1083
1075 * IPython/Logger.py (Logger.logstart): add option to log raw input
1084 * IPython/Logger.py (Logger.logstart): add option to log raw input
1076 instead of the processed one. A -r flag was added to the
1085 instead of the processed one. A -r flag was added to the
1077 %logstart magic used for controlling logging.
1086 %logstart magic used for controlling logging.
1078
1087
1079 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1088 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1080
1089
1081 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1090 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1082 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1091 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1083 recognize the option. After a bug report by Will Maier. This
1092 recognize the option. After a bug report by Will Maier. This
1084 closes #64 (will do it after confirmation from W. Maier).
1093 closes #64 (will do it after confirmation from W. Maier).
1085
1094
1086 * IPython/irunner.py: New module to run scripts as if manually
1095 * IPython/irunner.py: New module to run scripts as if manually
1087 typed into an interactive environment, based on pexpect. After a
1096 typed into an interactive environment, based on pexpect. After a
1088 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1097 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1089 ipython-user list. Simple unittests in the tests/ directory.
1098 ipython-user list. Simple unittests in the tests/ directory.
1090
1099
1091 * tools/release: add Will Maier, OpenBSD port maintainer, to
1100 * tools/release: add Will Maier, OpenBSD port maintainer, to
1092 recepients list. We are now officially part of the OpenBSD ports:
1101 recepients list. We are now officially part of the OpenBSD ports:
1093 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1102 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1094 work.
1103 work.
1095
1104
1096 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1105 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1097
1106
1098 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1107 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1099 so that it doesn't break tkinter apps.
1108 so that it doesn't break tkinter apps.
1100
1109
1101 * IPython/iplib.py (_prefilter): fix bug where aliases would
1110 * IPython/iplib.py (_prefilter): fix bug where aliases would
1102 shadow variables when autocall was fully off. Reported by SAGE
1111 shadow variables when autocall was fully off. Reported by SAGE
1103 author William Stein.
1112 author William Stein.
1104
1113
1105 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1114 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1106 at what detail level strings are computed when foo? is requested.
1115 at what detail level strings are computed when foo? is requested.
1107 This allows users to ask for example that the string form of an
1116 This allows users to ask for example that the string form of an
1108 object is only computed when foo?? is called, or even never, by
1117 object is only computed when foo?? is called, or even never, by
1109 setting the object_info_string_level >= 2 in the configuration
1118 setting the object_info_string_level >= 2 in the configuration
1110 file. This new option has been added and documented. After a
1119 file. This new option has been added and documented. After a
1111 request by SAGE to be able to control the printing of very large
1120 request by SAGE to be able to control the printing of very large
1112 objects more easily.
1121 objects more easily.
1113
1122
1114 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1123 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1115
1124
1116 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1125 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1117 from sys.argv, to be 100% consistent with how Python itself works
1126 from sys.argv, to be 100% consistent with how Python itself works
1118 (as seen for example with python -i file.py). After a bug report
1127 (as seen for example with python -i file.py). After a bug report
1119 by Jeffrey Collins.
1128 by Jeffrey Collins.
1120
1129
1121 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1130 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1122 nasty bug which was preventing custom namespaces with -pylab,
1131 nasty bug which was preventing custom namespaces with -pylab,
1123 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1132 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1124 compatibility (long gone from mpl).
1133 compatibility (long gone from mpl).
1125
1134
1126 * IPython/ipapi.py (make_session): name change: create->make. We
1135 * IPython/ipapi.py (make_session): name change: create->make. We
1127 use make in other places (ipmaker,...), it's shorter and easier to
1136 use make in other places (ipmaker,...), it's shorter and easier to
1128 type and say, etc. I'm trying to clean things before 0.7.2 so
1137 type and say, etc. I'm trying to clean things before 0.7.2 so
1129 that I can keep things stable wrt to ipapi in the chainsaw branch.
1138 that I can keep things stable wrt to ipapi in the chainsaw branch.
1130
1139
1131 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1140 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1132 python-mode recognizes our debugger mode. Add support for
1141 python-mode recognizes our debugger mode. Add support for
1133 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1142 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1134 <m.liu.jin-AT-gmail.com> originally written by
1143 <m.liu.jin-AT-gmail.com> originally written by
1135 doxgen-AT-newsmth.net (with minor modifications for xemacs
1144 doxgen-AT-newsmth.net (with minor modifications for xemacs
1136 compatibility)
1145 compatibility)
1137
1146
1138 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1147 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1139 tracebacks when walking the stack so that the stack tracking system
1148 tracebacks when walking the stack so that the stack tracking system
1140 in emacs' python-mode can identify the frames correctly.
1149 in emacs' python-mode can identify the frames correctly.
1141
1150
1142 * IPython/ipmaker.py (make_IPython): make the internal (and
1151 * IPython/ipmaker.py (make_IPython): make the internal (and
1143 default config) autoedit_syntax value false by default. Too many
1152 default config) autoedit_syntax value false by default. Too many
1144 users have complained to me (both on and off-list) about problems
1153 users have complained to me (both on and off-list) about problems
1145 with this option being on by default, so I'm making it default to
1154 with this option being on by default, so I'm making it default to
1146 off. It can still be enabled by anyone via the usual mechanisms.
1155 off. It can still be enabled by anyone via the usual mechanisms.
1147
1156
1148 * IPython/completer.py (Completer.attr_matches): add support for
1157 * IPython/completer.py (Completer.attr_matches): add support for
1149 PyCrust-style _getAttributeNames magic method. Patch contributed
1158 PyCrust-style _getAttributeNames magic method. Patch contributed
1150 by <mscott-AT-goldenspud.com>. Closes #50.
1159 by <mscott-AT-goldenspud.com>. Closes #50.
1151
1160
1152 * IPython/iplib.py (InteractiveShell.__init__): remove the
1161 * IPython/iplib.py (InteractiveShell.__init__): remove the
1153 deletion of exit/quit from __builtin__, which can break
1162 deletion of exit/quit from __builtin__, which can break
1154 third-party tools like the Zope debugging console. The
1163 third-party tools like the Zope debugging console. The
1155 %exit/%quit magics remain. In general, it's probably a good idea
1164 %exit/%quit magics remain. In general, it's probably a good idea
1156 not to delete anything from __builtin__, since we never know what
1165 not to delete anything from __builtin__, since we never know what
1157 that will break. In any case, python now (for 2.5) will support
1166 that will break. In any case, python now (for 2.5) will support
1158 'real' exit/quit, so this issue is moot. Closes #55.
1167 'real' exit/quit, so this issue is moot. Closes #55.
1159
1168
1160 * IPython/genutils.py (with_obj): rename the 'with' function to
1169 * IPython/genutils.py (with_obj): rename the 'with' function to
1161 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1170 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1162 becomes a language keyword. Closes #53.
1171 becomes a language keyword. Closes #53.
1163
1172
1164 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1173 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1165 __file__ attribute to this so it fools more things into thinking
1174 __file__ attribute to this so it fools more things into thinking
1166 it is a real module. Closes #59.
1175 it is a real module. Closes #59.
1167
1176
1168 * IPython/Magic.py (magic_edit): add -n option to open the editor
1177 * IPython/Magic.py (magic_edit): add -n option to open the editor
1169 at a specific line number. After a patch by Stefan van der Walt.
1178 at a specific line number. After a patch by Stefan van der Walt.
1170
1179
1171 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1180 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1172
1181
1173 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1182 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1174 reason the file could not be opened. After automatic crash
1183 reason the file could not be opened. After automatic crash
1175 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1184 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1176 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1185 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1177 (_should_recompile): Don't fire editor if using %bg, since there
1186 (_should_recompile): Don't fire editor if using %bg, since there
1178 is no file in the first place. From the same report as above.
1187 is no file in the first place. From the same report as above.
1179 (raw_input): protect against faulty third-party prefilters. After
1188 (raw_input): protect against faulty third-party prefilters. After
1180 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1189 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1181 while running under SAGE.
1190 while running under SAGE.
1182
1191
1183 2006-05-23 Ville Vainio <vivainio@gmail.com>
1192 2006-05-23 Ville Vainio <vivainio@gmail.com>
1184
1193
1185 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1194 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1186 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1195 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1187 now returns None (again), unless dummy is specifically allowed by
1196 now returns None (again), unless dummy is specifically allowed by
1188 ipapi.get(allow_dummy=True).
1197 ipapi.get(allow_dummy=True).
1189
1198
1190 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1199 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1191
1200
1192 * IPython: remove all 2.2-compatibility objects and hacks from
1201 * IPython: remove all 2.2-compatibility objects and hacks from
1193 everywhere, since we only support 2.3 at this point. Docs
1202 everywhere, since we only support 2.3 at this point. Docs
1194 updated.
1203 updated.
1195
1204
1196 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1205 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1197 Anything requiring extra validation can be turned into a Python
1206 Anything requiring extra validation can be turned into a Python
1198 property in the future. I used a property for the db one b/c
1207 property in the future. I used a property for the db one b/c
1199 there was a nasty circularity problem with the initialization
1208 there was a nasty circularity problem with the initialization
1200 order, which right now I don't have time to clean up.
1209 order, which right now I don't have time to clean up.
1201
1210
1202 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1211 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1203 another locking bug reported by Jorgen. I'm not 100% sure though,
1212 another locking bug reported by Jorgen. I'm not 100% sure though,
1204 so more testing is needed...
1213 so more testing is needed...
1205
1214
1206 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1207
1216
1208 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1217 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1209 local variables from any routine in user code (typically executed
1218 local variables from any routine in user code (typically executed
1210 with %run) directly into the interactive namespace. Very useful
1219 with %run) directly into the interactive namespace. Very useful
1211 when doing complex debugging.
1220 when doing complex debugging.
1212 (IPythonNotRunning): Changed the default None object to a dummy
1221 (IPythonNotRunning): Changed the default None object to a dummy
1213 whose attributes can be queried as well as called without
1222 whose attributes can be queried as well as called without
1214 exploding, to ease writing code which works transparently both in
1223 exploding, to ease writing code which works transparently both in
1215 and out of ipython and uses some of this API.
1224 and out of ipython and uses some of this API.
1216
1225
1217 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1226 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1218
1227
1219 * IPython/hooks.py (result_display): Fix the fact that our display
1228 * IPython/hooks.py (result_display): Fix the fact that our display
1220 hook was using str() instead of repr(), as the default python
1229 hook was using str() instead of repr(), as the default python
1221 console does. This had gone unnoticed b/c it only happened if
1230 console does. This had gone unnoticed b/c it only happened if
1222 %Pprint was off, but the inconsistency was there.
1231 %Pprint was off, but the inconsistency was there.
1223
1232
1224 2006-05-15 Ville Vainio <vivainio@gmail.com>
1233 2006-05-15 Ville Vainio <vivainio@gmail.com>
1225
1234
1226 * Oinspect.py: Only show docstring for nonexisting/binary files
1235 * Oinspect.py: Only show docstring for nonexisting/binary files
1227 when doing object??, closing ticket #62
1236 when doing object??, closing ticket #62
1228
1237
1229 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1238 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1230
1239
1231 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1240 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1232 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1241 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1233 was being released in a routine which hadn't checked if it had
1242 was being released in a routine which hadn't checked if it had
1234 been the one to acquire it.
1243 been the one to acquire it.
1235
1244
1236 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1237
1246
1238 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1247 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1239
1248
1240 2006-04-11 Ville Vainio <vivainio@gmail.com>
1249 2006-04-11 Ville Vainio <vivainio@gmail.com>
1241
1250
1242 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1251 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1243 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1252 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1244 prefilters, allowing stuff like magics and aliases in the file.
1253 prefilters, allowing stuff like magics and aliases in the file.
1245
1254
1246 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1255 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1247 added. Supported now are "%clear in" and "%clear out" (clear input and
1256 added. Supported now are "%clear in" and "%clear out" (clear input and
1248 output history, respectively). Also fixed CachedOutput.flush to
1257 output history, respectively). Also fixed CachedOutput.flush to
1249 properly flush the output cache.
1258 properly flush the output cache.
1250
1259
1251 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1260 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1252 half-success (and fail explicitly).
1261 half-success (and fail explicitly).
1253
1262
1254 2006-03-28 Ville Vainio <vivainio@gmail.com>
1263 2006-03-28 Ville Vainio <vivainio@gmail.com>
1255
1264
1256 * iplib.py: Fix quoting of aliases so that only argless ones
1265 * iplib.py: Fix quoting of aliases so that only argless ones
1257 are quoted
1266 are quoted
1258
1267
1259 2006-03-28 Ville Vainio <vivainio@gmail.com>
1268 2006-03-28 Ville Vainio <vivainio@gmail.com>
1260
1269
1261 * iplib.py: Quote aliases with spaces in the name.
1270 * iplib.py: Quote aliases with spaces in the name.
1262 "c:\program files\blah\bin" is now legal alias target.
1271 "c:\program files\blah\bin" is now legal alias target.
1263
1272
1264 * ext_rehashdir.py: Space no longer allowed as arg
1273 * ext_rehashdir.py: Space no longer allowed as arg
1265 separator, since space is legal in path names.
1274 separator, since space is legal in path names.
1266
1275
1267 2006-03-16 Ville Vainio <vivainio@gmail.com>
1276 2006-03-16 Ville Vainio <vivainio@gmail.com>
1268
1277
1269 * upgrade_dir.py: Take path.py from Extensions, correcting
1278 * upgrade_dir.py: Take path.py from Extensions, correcting
1270 %upgrade magic
1279 %upgrade magic
1271
1280
1272 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1281 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1273
1282
1274 * hooks.py: Only enclose editor binary in quotes if legal and
1283 * hooks.py: Only enclose editor binary in quotes if legal and
1275 necessary (space in the name, and is an existing file). Fixes a bug
1284 necessary (space in the name, and is an existing file). Fixes a bug
1276 reported by Zachary Pincus.
1285 reported by Zachary Pincus.
1277
1286
1278 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1279
1288
1280 * Manual: thanks to a tip on proper color handling for Emacs, by
1289 * Manual: thanks to a tip on proper color handling for Emacs, by
1281 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1290 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1282
1291
1283 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1292 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1284 by applying the provided patch. Thanks to Liu Jin
1293 by applying the provided patch. Thanks to Liu Jin
1285 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1294 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1286 XEmacs/Linux, I'm trusting the submitter that it actually helps
1295 XEmacs/Linux, I'm trusting the submitter that it actually helps
1287 under win32/GNU Emacs. Will revisit if any problems are reported.
1296 under win32/GNU Emacs. Will revisit if any problems are reported.
1288
1297
1289 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1298 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1290
1299
1291 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1300 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1292 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1301 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1293
1302
1294 2006-03-12 Ville Vainio <vivainio@gmail.com>
1303 2006-03-12 Ville Vainio <vivainio@gmail.com>
1295
1304
1296 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1305 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1297 Torsten Marek.
1306 Torsten Marek.
1298
1307
1299 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1308 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1300
1309
1301 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1310 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1302 line ranges works again.
1311 line ranges works again.
1303
1312
1304 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1313 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1305
1314
1306 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1315 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1307 and friends, after a discussion with Zach Pincus on ipython-user.
1316 and friends, after a discussion with Zach Pincus on ipython-user.
1308 I'm not 100% sure, but after thinking about it quite a bit, it may
1317 I'm not 100% sure, but after thinking about it quite a bit, it may
1309 be OK. Testing with the multithreaded shells didn't reveal any
1318 be OK. Testing with the multithreaded shells didn't reveal any
1310 problems, but let's keep an eye out.
1319 problems, but let's keep an eye out.
1311
1320
1312 In the process, I fixed a few things which were calling
1321 In the process, I fixed a few things which were calling
1313 self.InteractiveTB() directly (like safe_execfile), which is a
1322 self.InteractiveTB() directly (like safe_execfile), which is a
1314 mistake: ALL exception reporting should be done by calling
1323 mistake: ALL exception reporting should be done by calling
1315 self.showtraceback(), which handles state and tab-completion and
1324 self.showtraceback(), which handles state and tab-completion and
1316 more.
1325 more.
1317
1326
1318 2006-03-01 Ville Vainio <vivainio@gmail.com>
1327 2006-03-01 Ville Vainio <vivainio@gmail.com>
1319
1328
1320 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1329 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1321 To use, do "from ipipe import *".
1330 To use, do "from ipipe import *".
1322
1331
1323 2006-02-24 Ville Vainio <vivainio@gmail.com>
1332 2006-02-24 Ville Vainio <vivainio@gmail.com>
1324
1333
1325 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1334 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1326 "cleanly" and safely than the older upgrade mechanism.
1335 "cleanly" and safely than the older upgrade mechanism.
1327
1336
1328 2006-02-21 Ville Vainio <vivainio@gmail.com>
1337 2006-02-21 Ville Vainio <vivainio@gmail.com>
1329
1338
1330 * Magic.py: %save works again.
1339 * Magic.py: %save works again.
1331
1340
1332 2006-02-15 Ville Vainio <vivainio@gmail.com>
1341 2006-02-15 Ville Vainio <vivainio@gmail.com>
1333
1342
1334 * Magic.py: %Pprint works again
1343 * Magic.py: %Pprint works again
1335
1344
1336 * Extensions/ipy_sane_defaults.py: Provide everything provided
1345 * Extensions/ipy_sane_defaults.py: Provide everything provided
1337 in default ipythonrc, to make it possible to have a completely empty
1346 in default ipythonrc, to make it possible to have a completely empty
1338 ipythonrc (and thus completely rc-file free configuration)
1347 ipythonrc (and thus completely rc-file free configuration)
1339
1348
1340 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1349 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1341
1350
1342 * IPython/hooks.py (editor): quote the call to the editor command,
1351 * IPython/hooks.py (editor): quote the call to the editor command,
1343 to allow commands with spaces in them. Problem noted by watching
1352 to allow commands with spaces in them. Problem noted by watching
1344 Ian Oswald's video about textpad under win32 at
1353 Ian Oswald's video about textpad under win32 at
1345 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1354 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1346
1355
1347 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1356 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1348 describing magics (we haven't used @ for a loong time).
1357 describing magics (we haven't used @ for a loong time).
1349
1358
1350 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1359 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1351 contributed by marienz to close
1360 contributed by marienz to close
1352 http://www.scipy.net/roundup/ipython/issue53.
1361 http://www.scipy.net/roundup/ipython/issue53.
1353
1362
1354 2006-02-10 Ville Vainio <vivainio@gmail.com>
1363 2006-02-10 Ville Vainio <vivainio@gmail.com>
1355
1364
1356 * genutils.py: getoutput now works in win32 too
1365 * genutils.py: getoutput now works in win32 too
1357
1366
1358 * completer.py: alias and magic completion only invoked
1367 * completer.py: alias and magic completion only invoked
1359 at the first "item" in the line, to avoid "cd %store"
1368 at the first "item" in the line, to avoid "cd %store"
1360 nonsense.
1369 nonsense.
1361
1370
1362 2006-02-09 Ville Vainio <vivainio@gmail.com>
1371 2006-02-09 Ville Vainio <vivainio@gmail.com>
1363
1372
1364 * test/*: Added a unit testing framework (finally).
1373 * test/*: Added a unit testing framework (finally).
1365 '%run runtests.py' to run test_*.
1374 '%run runtests.py' to run test_*.
1366
1375
1367 * ipapi.py: Exposed runlines and set_custom_exc
1376 * ipapi.py: Exposed runlines and set_custom_exc
1368
1377
1369 2006-02-07 Ville Vainio <vivainio@gmail.com>
1378 2006-02-07 Ville Vainio <vivainio@gmail.com>
1370
1379
1371 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1380 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1372 instead use "f(1 2)" as before.
1381 instead use "f(1 2)" as before.
1373
1382
1374 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1383 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1375
1384
1376 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1385 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1377 facilities, for demos processed by the IPython input filter
1386 facilities, for demos processed by the IPython input filter
1378 (IPythonDemo), and for running a script one-line-at-a-time as a
1387 (IPythonDemo), and for running a script one-line-at-a-time as a
1379 demo, both for pure Python (LineDemo) and for IPython-processed
1388 demo, both for pure Python (LineDemo) and for IPython-processed
1380 input (IPythonLineDemo). After a request by Dave Kohel, from the
1389 input (IPythonLineDemo). After a request by Dave Kohel, from the
1381 SAGE team.
1390 SAGE team.
1382 (Demo.edit): added an edit() method to the demo objects, to edit
1391 (Demo.edit): added an edit() method to the demo objects, to edit
1383 the in-memory copy of the last executed block.
1392 the in-memory copy of the last executed block.
1384
1393
1385 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1394 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1386 processing to %edit, %macro and %save. These commands can now be
1395 processing to %edit, %macro and %save. These commands can now be
1387 invoked on the unprocessed input as it was typed by the user
1396 invoked on the unprocessed input as it was typed by the user
1388 (without any prefilters applied). After requests by the SAGE team
1397 (without any prefilters applied). After requests by the SAGE team
1389 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1398 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1390
1399
1391 2006-02-01 Ville Vainio <vivainio@gmail.com>
1400 2006-02-01 Ville Vainio <vivainio@gmail.com>
1392
1401
1393 * setup.py, eggsetup.py: easy_install ipython==dev works
1402 * setup.py, eggsetup.py: easy_install ipython==dev works
1394 correctly now (on Linux)
1403 correctly now (on Linux)
1395
1404
1396 * ipy_user_conf,ipmaker: user config changes, removed spurious
1405 * ipy_user_conf,ipmaker: user config changes, removed spurious
1397 warnings
1406 warnings
1398
1407
1399 * iplib: if rc.banner is string, use it as is.
1408 * iplib: if rc.banner is string, use it as is.
1400
1409
1401 * Magic: %pycat accepts a string argument and pages it's contents.
1410 * Magic: %pycat accepts a string argument and pages it's contents.
1402
1411
1403
1412
1404 2006-01-30 Ville Vainio <vivainio@gmail.com>
1413 2006-01-30 Ville Vainio <vivainio@gmail.com>
1405
1414
1406 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1415 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1407 Now %store and bookmarks work through PickleShare, meaning that
1416 Now %store and bookmarks work through PickleShare, meaning that
1408 concurrent access is possible and all ipython sessions see the
1417 concurrent access is possible and all ipython sessions see the
1409 same database situation all the time, instead of snapshot of
1418 same database situation all the time, instead of snapshot of
1410 the situation when the session was started. Hence, %bookmark
1419 the situation when the session was started. Hence, %bookmark
1411 results are immediately accessible from othes sessions. The database
1420 results are immediately accessible from othes sessions. The database
1412 is also available for use by user extensions. See:
1421 is also available for use by user extensions. See:
1413 http://www.python.org/pypi/pickleshare
1422 http://www.python.org/pypi/pickleshare
1414
1423
1415 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1424 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1416
1425
1417 * aliases can now be %store'd
1426 * aliases can now be %store'd
1418
1427
1419 * path.py moved to Extensions so that pickleshare does not need
1428 * path.py moved to Extensions so that pickleshare does not need
1420 IPython-specific import. Extensions added to pythonpath right
1429 IPython-specific import. Extensions added to pythonpath right
1421 at __init__.
1430 at __init__.
1422
1431
1423 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1432 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1424 called with _ip.system and the pre-transformed command string.
1433 called with _ip.system and the pre-transformed command string.
1425
1434
1426 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1427
1436
1428 * IPython/iplib.py (interact): Fix that we were not catching
1437 * IPython/iplib.py (interact): Fix that we were not catching
1429 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1438 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1430 logic here had to change, but it's fixed now.
1439 logic here had to change, but it's fixed now.
1431
1440
1432 2006-01-29 Ville Vainio <vivainio@gmail.com>
1441 2006-01-29 Ville Vainio <vivainio@gmail.com>
1433
1442
1434 * iplib.py: Try to import pyreadline on Windows.
1443 * iplib.py: Try to import pyreadline on Windows.
1435
1444
1436 2006-01-27 Ville Vainio <vivainio@gmail.com>
1445 2006-01-27 Ville Vainio <vivainio@gmail.com>
1437
1446
1438 * iplib.py: Expose ipapi as _ip in builtin namespace.
1447 * iplib.py: Expose ipapi as _ip in builtin namespace.
1439 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1448 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1440 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1449 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1441 syntax now produce _ip.* variant of the commands.
1450 syntax now produce _ip.* variant of the commands.
1442
1451
1443 * "_ip.options().autoedit_syntax = 2" automatically throws
1452 * "_ip.options().autoedit_syntax = 2" automatically throws
1444 user to editor for syntax error correction without prompting.
1453 user to editor for syntax error correction without prompting.
1445
1454
1446 2006-01-27 Ville Vainio <vivainio@gmail.com>
1455 2006-01-27 Ville Vainio <vivainio@gmail.com>
1447
1456
1448 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1457 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1449 'ipython' at argv[0]) executed through command line.
1458 'ipython' at argv[0]) executed through command line.
1450 NOTE: this DEPRECATES calling ipython with multiple scripts
1459 NOTE: this DEPRECATES calling ipython with multiple scripts
1451 ("ipython a.py b.py c.py")
1460 ("ipython a.py b.py c.py")
1452
1461
1453 * iplib.py, hooks.py: Added configurable input prefilter,
1462 * iplib.py, hooks.py: Added configurable input prefilter,
1454 named 'input_prefilter'. See ext_rescapture.py for example
1463 named 'input_prefilter'. See ext_rescapture.py for example
1455 usage.
1464 usage.
1456
1465
1457 * ext_rescapture.py, Magic.py: Better system command output capture
1466 * ext_rescapture.py, Magic.py: Better system command output capture
1458 through 'var = !ls' (deprecates user-visible %sc). Same notation
1467 through 'var = !ls' (deprecates user-visible %sc). Same notation
1459 applies for magics, 'var = %alias' assigns alias list to var.
1468 applies for magics, 'var = %alias' assigns alias list to var.
1460
1469
1461 * ipapi.py: added meta() for accessing extension-usable data store.
1470 * ipapi.py: added meta() for accessing extension-usable data store.
1462
1471
1463 * iplib.py: added InteractiveShell.getapi(). New magics should be
1472 * iplib.py: added InteractiveShell.getapi(). New magics should be
1464 written doing self.getapi() instead of using the shell directly.
1473 written doing self.getapi() instead of using the shell directly.
1465
1474
1466 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1475 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1467 %store foo >> ~/myfoo.txt to store variables to files (in clean
1476 %store foo >> ~/myfoo.txt to store variables to files (in clean
1468 textual form, not a restorable pickle).
1477 textual form, not a restorable pickle).
1469
1478
1470 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1479 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1471
1480
1472 * usage.py, Magic.py: added %quickref
1481 * usage.py, Magic.py: added %quickref
1473
1482
1474 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1483 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1475
1484
1476 * GetoptErrors when invoking magics etc. with wrong args
1485 * GetoptErrors when invoking magics etc. with wrong args
1477 are now more helpful:
1486 are now more helpful:
1478 GetoptError: option -l not recognized (allowed: "qb" )
1487 GetoptError: option -l not recognized (allowed: "qb" )
1479
1488
1480 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1489 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1481
1490
1482 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1491 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1483 computationally intensive blocks don't appear to stall the demo.
1492 computationally intensive blocks don't appear to stall the demo.
1484
1493
1485 2006-01-24 Ville Vainio <vivainio@gmail.com>
1494 2006-01-24 Ville Vainio <vivainio@gmail.com>
1486
1495
1487 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1496 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1488 value to manipulate resulting history entry.
1497 value to manipulate resulting history entry.
1489
1498
1490 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1499 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1491 to instance methods of IPApi class, to make extending an embedded
1500 to instance methods of IPApi class, to make extending an embedded
1492 IPython feasible. See ext_rehashdir.py for example usage.
1501 IPython feasible. See ext_rehashdir.py for example usage.
1493
1502
1494 * Merged 1071-1076 from branches/0.7.1
1503 * Merged 1071-1076 from branches/0.7.1
1495
1504
1496
1505
1497 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1506 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1498
1507
1499 * tools/release (daystamp): Fix build tools to use the new
1508 * tools/release (daystamp): Fix build tools to use the new
1500 eggsetup.py script to build lightweight eggs.
1509 eggsetup.py script to build lightweight eggs.
1501
1510
1502 * Applied changesets 1062 and 1064 before 0.7.1 release.
1511 * Applied changesets 1062 and 1064 before 0.7.1 release.
1503
1512
1504 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1513 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1505 see the raw input history (without conversions like %ls ->
1514 see the raw input history (without conversions like %ls ->
1506 ipmagic("ls")). After a request from W. Stein, SAGE
1515 ipmagic("ls")). After a request from W. Stein, SAGE
1507 (http://modular.ucsd.edu/sage) developer. This information is
1516 (http://modular.ucsd.edu/sage) developer. This information is
1508 stored in the input_hist_raw attribute of the IPython instance, so
1517 stored in the input_hist_raw attribute of the IPython instance, so
1509 developers can access it if needed (it's an InputList instance).
1518 developers can access it if needed (it's an InputList instance).
1510
1519
1511 * Versionstring = 0.7.2.svn
1520 * Versionstring = 0.7.2.svn
1512
1521
1513 * eggsetup.py: A separate script for constructing eggs, creates
1522 * eggsetup.py: A separate script for constructing eggs, creates
1514 proper launch scripts even on Windows (an .exe file in
1523 proper launch scripts even on Windows (an .exe file in
1515 \python24\scripts).
1524 \python24\scripts).
1516
1525
1517 * ipapi.py: launch_new_instance, launch entry point needed for the
1526 * ipapi.py: launch_new_instance, launch entry point needed for the
1518 egg.
1527 egg.
1519
1528
1520 2006-01-23 Ville Vainio <vivainio@gmail.com>
1529 2006-01-23 Ville Vainio <vivainio@gmail.com>
1521
1530
1522 * Added %cpaste magic for pasting python code
1531 * Added %cpaste magic for pasting python code
1523
1532
1524 2006-01-22 Ville Vainio <vivainio@gmail.com>
1533 2006-01-22 Ville Vainio <vivainio@gmail.com>
1525
1534
1526 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1535 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1527
1536
1528 * Versionstring = 0.7.2.svn
1537 * Versionstring = 0.7.2.svn
1529
1538
1530 * eggsetup.py: A separate script for constructing eggs, creates
1539 * eggsetup.py: A separate script for constructing eggs, creates
1531 proper launch scripts even on Windows (an .exe file in
1540 proper launch scripts even on Windows (an .exe file in
1532 \python24\scripts).
1541 \python24\scripts).
1533
1542
1534 * ipapi.py: launch_new_instance, launch entry point needed for the
1543 * ipapi.py: launch_new_instance, launch entry point needed for the
1535 egg.
1544 egg.
1536
1545
1537 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1546 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1538
1547
1539 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1548 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1540 %pfile foo would print the file for foo even if it was a binary.
1549 %pfile foo would print the file for foo even if it was a binary.
1541 Now, extensions '.so' and '.dll' are skipped.
1550 Now, extensions '.so' and '.dll' are skipped.
1542
1551
1543 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1552 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1544 bug, where macros would fail in all threaded modes. I'm not 100%
1553 bug, where macros would fail in all threaded modes. I'm not 100%
1545 sure, so I'm going to put out an rc instead of making a release
1554 sure, so I'm going to put out an rc instead of making a release
1546 today, and wait for feedback for at least a few days.
1555 today, and wait for feedback for at least a few days.
1547
1556
1548 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1557 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1549 it...) the handling of pasting external code with autoindent on.
1558 it...) the handling of pasting external code with autoindent on.
1550 To get out of a multiline input, the rule will appear for most
1559 To get out of a multiline input, the rule will appear for most
1551 users unchanged: two blank lines or change the indent level
1560 users unchanged: two blank lines or change the indent level
1552 proposed by IPython. But there is a twist now: you can
1561 proposed by IPython. But there is a twist now: you can
1553 add/subtract only *one or two spaces*. If you add/subtract three
1562 add/subtract only *one or two spaces*. If you add/subtract three
1554 or more (unless you completely delete the line), IPython will
1563 or more (unless you completely delete the line), IPython will
1555 accept that line, and you'll need to enter a second one of pure
1564 accept that line, and you'll need to enter a second one of pure
1556 whitespace. I know it sounds complicated, but I can't find a
1565 whitespace. I know it sounds complicated, but I can't find a
1557 different solution that covers all the cases, with the right
1566 different solution that covers all the cases, with the right
1558 heuristics. Hopefully in actual use, nobody will really notice
1567 heuristics. Hopefully in actual use, nobody will really notice
1559 all these strange rules and things will 'just work'.
1568 all these strange rules and things will 'just work'.
1560
1569
1561 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1570 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1562
1571
1563 * IPython/iplib.py (interact): catch exceptions which can be
1572 * IPython/iplib.py (interact): catch exceptions which can be
1564 triggered asynchronously by signal handlers. Thanks to an
1573 triggered asynchronously by signal handlers. Thanks to an
1565 automatic crash report, submitted by Colin Kingsley
1574 automatic crash report, submitted by Colin Kingsley
1566 <tercel-AT-gentoo.org>.
1575 <tercel-AT-gentoo.org>.
1567
1576
1568 2006-01-20 Ville Vainio <vivainio@gmail.com>
1577 2006-01-20 Ville Vainio <vivainio@gmail.com>
1569
1578
1570 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1579 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1571 (%rehashdir, very useful, try it out) of how to extend ipython
1580 (%rehashdir, very useful, try it out) of how to extend ipython
1572 with new magics. Also added Extensions dir to pythonpath to make
1581 with new magics. Also added Extensions dir to pythonpath to make
1573 importing extensions easy.
1582 importing extensions easy.
1574
1583
1575 * %store now complains when trying to store interactively declared
1584 * %store now complains when trying to store interactively declared
1576 classes / instances of those classes.
1585 classes / instances of those classes.
1577
1586
1578 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1587 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1579 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1588 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1580 if they exist, and ipy_user_conf.py with some defaults is created for
1589 if they exist, and ipy_user_conf.py with some defaults is created for
1581 the user.
1590 the user.
1582
1591
1583 * Startup rehashing done by the config file, not InterpreterExec.
1592 * Startup rehashing done by the config file, not InterpreterExec.
1584 This means system commands are available even without selecting the
1593 This means system commands are available even without selecting the
1585 pysh profile. It's the sensible default after all.
1594 pysh profile. It's the sensible default after all.
1586
1595
1587 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1596 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1588
1597
1589 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1598 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1590 multiline code with autoindent on working. But I am really not
1599 multiline code with autoindent on working. But I am really not
1591 sure, so this needs more testing. Will commit a debug-enabled
1600 sure, so this needs more testing. Will commit a debug-enabled
1592 version for now, while I test it some more, so that Ville and
1601 version for now, while I test it some more, so that Ville and
1593 others may also catch any problems. Also made
1602 others may also catch any problems. Also made
1594 self.indent_current_str() a method, to ensure that there's no
1603 self.indent_current_str() a method, to ensure that there's no
1595 chance of the indent space count and the corresponding string
1604 chance of the indent space count and the corresponding string
1596 falling out of sync. All code needing the string should just call
1605 falling out of sync. All code needing the string should just call
1597 the method.
1606 the method.
1598
1607
1599 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1608 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1600
1609
1601 * IPython/Magic.py (magic_edit): fix check for when users don't
1610 * IPython/Magic.py (magic_edit): fix check for when users don't
1602 save their output files, the try/except was in the wrong section.
1611 save their output files, the try/except was in the wrong section.
1603
1612
1604 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1613 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1605
1614
1606 * IPython/Magic.py (magic_run): fix __file__ global missing from
1615 * IPython/Magic.py (magic_run): fix __file__ global missing from
1607 script's namespace when executed via %run. After a report by
1616 script's namespace when executed via %run. After a report by
1608 Vivian.
1617 Vivian.
1609
1618
1610 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1619 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1611 when using python 2.4. The parent constructor changed in 2.4, and
1620 when using python 2.4. The parent constructor changed in 2.4, and
1612 we need to track it directly (we can't call it, as it messes up
1621 we need to track it directly (we can't call it, as it messes up
1613 readline and tab-completion inside our pdb would stop working).
1622 readline and tab-completion inside our pdb would stop working).
1614 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1623 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1615
1624
1616 2006-01-16 Ville Vainio <vivainio@gmail.com>
1625 2006-01-16 Ville Vainio <vivainio@gmail.com>
1617
1626
1618 * Ipython/magic.py: Reverted back to old %edit functionality
1627 * Ipython/magic.py: Reverted back to old %edit functionality
1619 that returns file contents on exit.
1628 that returns file contents on exit.
1620
1629
1621 * IPython/path.py: Added Jason Orendorff's "path" module to
1630 * IPython/path.py: Added Jason Orendorff's "path" module to
1622 IPython tree, http://www.jorendorff.com/articles/python/path/.
1631 IPython tree, http://www.jorendorff.com/articles/python/path/.
1623 You can get path objects conveniently through %sc, and !!, e.g.:
1632 You can get path objects conveniently through %sc, and !!, e.g.:
1624 sc files=ls
1633 sc files=ls
1625 for p in files.paths: # or files.p
1634 for p in files.paths: # or files.p
1626 print p,p.mtime
1635 print p,p.mtime
1627
1636
1628 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1637 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1629 now work again without considering the exclusion regexp -
1638 now work again without considering the exclusion regexp -
1630 hence, things like ',foo my/path' turn to 'foo("my/path")'
1639 hence, things like ',foo my/path' turn to 'foo("my/path")'
1631 instead of syntax error.
1640 instead of syntax error.
1632
1641
1633
1642
1634 2006-01-14 Ville Vainio <vivainio@gmail.com>
1643 2006-01-14 Ville Vainio <vivainio@gmail.com>
1635
1644
1636 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1645 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1637 ipapi decorators for python 2.4 users, options() provides access to rc
1646 ipapi decorators for python 2.4 users, options() provides access to rc
1638 data.
1647 data.
1639
1648
1640 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1649 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1641 as path separators (even on Linux ;-). Space character after
1650 as path separators (even on Linux ;-). Space character after
1642 backslash (as yielded by tab completer) is still space;
1651 backslash (as yielded by tab completer) is still space;
1643 "%cd long\ name" works as expected.
1652 "%cd long\ name" works as expected.
1644
1653
1645 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1654 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1646 as "chain of command", with priority. API stays the same,
1655 as "chain of command", with priority. API stays the same,
1647 TryNext exception raised by a hook function signals that
1656 TryNext exception raised by a hook function signals that
1648 current hook failed and next hook should try handling it, as
1657 current hook failed and next hook should try handling it, as
1649 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1658 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1650 requested configurable display hook, which is now implemented.
1659 requested configurable display hook, which is now implemented.
1651
1660
1652 2006-01-13 Ville Vainio <vivainio@gmail.com>
1661 2006-01-13 Ville Vainio <vivainio@gmail.com>
1653
1662
1654 * IPython/platutils*.py: platform specific utility functions,
1663 * IPython/platutils*.py: platform specific utility functions,
1655 so far only set_term_title is implemented (change terminal
1664 so far only set_term_title is implemented (change terminal
1656 label in windowing systems). %cd now changes the title to
1665 label in windowing systems). %cd now changes the title to
1657 current dir.
1666 current dir.
1658
1667
1659 * IPython/Release.py: Added myself to "authors" list,
1668 * IPython/Release.py: Added myself to "authors" list,
1660 had to create new files.
1669 had to create new files.
1661
1670
1662 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1671 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1663 shell escape; not a known bug but had potential to be one in the
1672 shell escape; not a known bug but had potential to be one in the
1664 future.
1673 future.
1665
1674
1666 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1675 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1667 extension API for IPython! See the module for usage example. Fix
1676 extension API for IPython! See the module for usage example. Fix
1668 OInspect for docstring-less magic functions.
1677 OInspect for docstring-less magic functions.
1669
1678
1670
1679
1671 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1680 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1672
1681
1673 * IPython/iplib.py (raw_input): temporarily deactivate all
1682 * IPython/iplib.py (raw_input): temporarily deactivate all
1674 attempts at allowing pasting of code with autoindent on. It
1683 attempts at allowing pasting of code with autoindent on. It
1675 introduced bugs (reported by Prabhu) and I can't seem to find a
1684 introduced bugs (reported by Prabhu) and I can't seem to find a
1676 robust combination which works in all cases. Will have to revisit
1685 robust combination which works in all cases. Will have to revisit
1677 later.
1686 later.
1678
1687
1679 * IPython/genutils.py: remove isspace() function. We've dropped
1688 * IPython/genutils.py: remove isspace() function. We've dropped
1680 2.2 compatibility, so it's OK to use the string method.
1689 2.2 compatibility, so it's OK to use the string method.
1681
1690
1682 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1691 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1683
1692
1684 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1693 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1685 matching what NOT to autocall on, to include all python binary
1694 matching what NOT to autocall on, to include all python binary
1686 operators (including things like 'and', 'or', 'is' and 'in').
1695 operators (including things like 'and', 'or', 'is' and 'in').
1687 Prompted by a bug report on 'foo & bar', but I realized we had
1696 Prompted by a bug report on 'foo & bar', but I realized we had
1688 many more potential bug cases with other operators. The regexp is
1697 many more potential bug cases with other operators. The regexp is
1689 self.re_exclude_auto, it's fairly commented.
1698 self.re_exclude_auto, it's fairly commented.
1690
1699
1691 2006-01-12 Ville Vainio <vivainio@gmail.com>
1700 2006-01-12 Ville Vainio <vivainio@gmail.com>
1692
1701
1693 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1702 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1694 Prettified and hardened string/backslash quoting with ipsystem(),
1703 Prettified and hardened string/backslash quoting with ipsystem(),
1695 ipalias() and ipmagic(). Now even \ characters are passed to
1704 ipalias() and ipmagic(). Now even \ characters are passed to
1696 %magics, !shell escapes and aliases exactly as they are in the
1705 %magics, !shell escapes and aliases exactly as they are in the
1697 ipython command line. Should improve backslash experience,
1706 ipython command line. Should improve backslash experience,
1698 particularly in Windows (path delimiter for some commands that
1707 particularly in Windows (path delimiter for some commands that
1699 won't understand '/'), but Unix benefits as well (regexps). %cd
1708 won't understand '/'), but Unix benefits as well (regexps). %cd
1700 magic still doesn't support backslash path delimiters, though. Also
1709 magic still doesn't support backslash path delimiters, though. Also
1701 deleted all pretense of supporting multiline command strings in
1710 deleted all pretense of supporting multiline command strings in
1702 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1711 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1703
1712
1704 * doc/build_doc_instructions.txt added. Documentation on how to
1713 * doc/build_doc_instructions.txt added. Documentation on how to
1705 use doc/update_manual.py, added yesterday. Both files contributed
1714 use doc/update_manual.py, added yesterday. Both files contributed
1706 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1715 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1707 doc/*.sh for deprecation at a later date.
1716 doc/*.sh for deprecation at a later date.
1708
1717
1709 * /ipython.py Added ipython.py to root directory for
1718 * /ipython.py Added ipython.py to root directory for
1710 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1719 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1711 ipython.py) and development convenience (no need to keep doing
1720 ipython.py) and development convenience (no need to keep doing
1712 "setup.py install" between changes).
1721 "setup.py install" between changes).
1713
1722
1714 * Made ! and !! shell escapes work (again) in multiline expressions:
1723 * Made ! and !! shell escapes work (again) in multiline expressions:
1715 if 1:
1724 if 1:
1716 !ls
1725 !ls
1717 !!ls
1726 !!ls
1718
1727
1719 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1728 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1720
1729
1721 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1730 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1722 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1731 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1723 module in case-insensitive installation. Was causing crashes
1732 module in case-insensitive installation. Was causing crashes
1724 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1733 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1725
1734
1726 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1735 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1727 <marienz-AT-gentoo.org>, closes
1736 <marienz-AT-gentoo.org>, closes
1728 http://www.scipy.net/roundup/ipython/issue51.
1737 http://www.scipy.net/roundup/ipython/issue51.
1729
1738
1730 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1739 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1731
1740
1732 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1741 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1733 problem of excessive CPU usage under *nix and keyboard lag under
1742 problem of excessive CPU usage under *nix and keyboard lag under
1734 win32.
1743 win32.
1735
1744
1736 2006-01-10 *** Released version 0.7.0
1745 2006-01-10 *** Released version 0.7.0
1737
1746
1738 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1747 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1739
1748
1740 * IPython/Release.py (revision): tag version number to 0.7.0,
1749 * IPython/Release.py (revision): tag version number to 0.7.0,
1741 ready for release.
1750 ready for release.
1742
1751
1743 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1752 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1744 it informs the user of the name of the temp. file used. This can
1753 it informs the user of the name of the temp. file used. This can
1745 help if you decide later to reuse that same file, so you know
1754 help if you decide later to reuse that same file, so you know
1746 where to copy the info from.
1755 where to copy the info from.
1747
1756
1748 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1757 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1749
1758
1750 * setup_bdist_egg.py: little script to build an egg. Added
1759 * setup_bdist_egg.py: little script to build an egg. Added
1751 support in the release tools as well.
1760 support in the release tools as well.
1752
1761
1753 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1762 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1754
1763
1755 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1764 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1756 version selection (new -wxversion command line and ipythonrc
1765 version selection (new -wxversion command line and ipythonrc
1757 parameter). Patch contributed by Arnd Baecker
1766 parameter). Patch contributed by Arnd Baecker
1758 <arnd.baecker-AT-web.de>.
1767 <arnd.baecker-AT-web.de>.
1759
1768
1760 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1769 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1761 embedded instances, for variables defined at the interactive
1770 embedded instances, for variables defined at the interactive
1762 prompt of the embedded ipython. Reported by Arnd.
1771 prompt of the embedded ipython. Reported by Arnd.
1763
1772
1764 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1773 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1765 it can be used as a (stateful) toggle, or with a direct parameter.
1774 it can be used as a (stateful) toggle, or with a direct parameter.
1766
1775
1767 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1776 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1768 could be triggered in certain cases and cause the traceback
1777 could be triggered in certain cases and cause the traceback
1769 printer not to work.
1778 printer not to work.
1770
1779
1771 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1780 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1772
1781
1773 * IPython/iplib.py (_should_recompile): Small fix, closes
1782 * IPython/iplib.py (_should_recompile): Small fix, closes
1774 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1783 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1775
1784
1776 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1785 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1777
1786
1778 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1787 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1779 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1788 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1780 Moad for help with tracking it down.
1789 Moad for help with tracking it down.
1781
1790
1782 * IPython/iplib.py (handle_auto): fix autocall handling for
1791 * IPython/iplib.py (handle_auto): fix autocall handling for
1783 objects which support BOTH __getitem__ and __call__ (so that f [x]
1792 objects which support BOTH __getitem__ and __call__ (so that f [x]
1784 is left alone, instead of becoming f([x]) automatically).
1793 is left alone, instead of becoming f([x]) automatically).
1785
1794
1786 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1795 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1787 Ville's patch.
1796 Ville's patch.
1788
1797
1789 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1798 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1790
1799
1791 * IPython/iplib.py (handle_auto): changed autocall semantics to
1800 * IPython/iplib.py (handle_auto): changed autocall semantics to
1792 include 'smart' mode, where the autocall transformation is NOT
1801 include 'smart' mode, where the autocall transformation is NOT
1793 applied if there are no arguments on the line. This allows you to
1802 applied if there are no arguments on the line. This allows you to
1794 just type 'foo' if foo is a callable to see its internal form,
1803 just type 'foo' if foo is a callable to see its internal form,
1795 instead of having it called with no arguments (typically a
1804 instead of having it called with no arguments (typically a
1796 mistake). The old 'full' autocall still exists: for that, you
1805 mistake). The old 'full' autocall still exists: for that, you
1797 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1806 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1798
1807
1799 * IPython/completer.py (Completer.attr_matches): add
1808 * IPython/completer.py (Completer.attr_matches): add
1800 tab-completion support for Enthoughts' traits. After a report by
1809 tab-completion support for Enthoughts' traits. After a report by
1801 Arnd and a patch by Prabhu.
1810 Arnd and a patch by Prabhu.
1802
1811
1803 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1812 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1804
1813
1805 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1814 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1806 Schmolck's patch to fix inspect.getinnerframes().
1815 Schmolck's patch to fix inspect.getinnerframes().
1807
1816
1808 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1817 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1809 for embedded instances, regarding handling of namespaces and items
1818 for embedded instances, regarding handling of namespaces and items
1810 added to the __builtin__ one. Multiple embedded instances and
1819 added to the __builtin__ one. Multiple embedded instances and
1811 recursive embeddings should work better now (though I'm not sure
1820 recursive embeddings should work better now (though I'm not sure
1812 I've got all the corner cases fixed, that code is a bit of a brain
1821 I've got all the corner cases fixed, that code is a bit of a brain
1813 twister).
1822 twister).
1814
1823
1815 * IPython/Magic.py (magic_edit): added support to edit in-memory
1824 * IPython/Magic.py (magic_edit): added support to edit in-memory
1816 macros (automatically creates the necessary temp files). %edit
1825 macros (automatically creates the necessary temp files). %edit
1817 also doesn't return the file contents anymore, it's just noise.
1826 also doesn't return the file contents anymore, it's just noise.
1818
1827
1819 * IPython/completer.py (Completer.attr_matches): revert change to
1828 * IPython/completer.py (Completer.attr_matches): revert change to
1820 complete only on attributes listed in __all__. I realized it
1829 complete only on attributes listed in __all__. I realized it
1821 cripples the tab-completion system as a tool for exploring the
1830 cripples the tab-completion system as a tool for exploring the
1822 internals of unknown libraries (it renders any non-__all__
1831 internals of unknown libraries (it renders any non-__all__
1823 attribute off-limits). I got bit by this when trying to see
1832 attribute off-limits). I got bit by this when trying to see
1824 something inside the dis module.
1833 something inside the dis module.
1825
1834
1826 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1835 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1827
1836
1828 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1837 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1829 namespace for users and extension writers to hold data in. This
1838 namespace for users and extension writers to hold data in. This
1830 follows the discussion in
1839 follows the discussion in
1831 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1840 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1832
1841
1833 * IPython/completer.py (IPCompleter.complete): small patch to help
1842 * IPython/completer.py (IPCompleter.complete): small patch to help
1834 tab-completion under Emacs, after a suggestion by John Barnard
1843 tab-completion under Emacs, after a suggestion by John Barnard
1835 <barnarj-AT-ccf.org>.
1844 <barnarj-AT-ccf.org>.
1836
1845
1837 * IPython/Magic.py (Magic.extract_input_slices): added support for
1846 * IPython/Magic.py (Magic.extract_input_slices): added support for
1838 the slice notation in magics to use N-M to represent numbers N...M
1847 the slice notation in magics to use N-M to represent numbers N...M
1839 (closed endpoints). This is used by %macro and %save.
1848 (closed endpoints). This is used by %macro and %save.
1840
1849
1841 * IPython/completer.py (Completer.attr_matches): for modules which
1850 * IPython/completer.py (Completer.attr_matches): for modules which
1842 define __all__, complete only on those. After a patch by Jeffrey
1851 define __all__, complete only on those. After a patch by Jeffrey
1843 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1852 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1844 speed up this routine.
1853 speed up this routine.
1845
1854
1846 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1855 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1847 don't know if this is the end of it, but the behavior now is
1856 don't know if this is the end of it, but the behavior now is
1848 certainly much more correct. Note that coupled with macros,
1857 certainly much more correct. Note that coupled with macros,
1849 slightly surprising (at first) behavior may occur: a macro will in
1858 slightly surprising (at first) behavior may occur: a macro will in
1850 general expand to multiple lines of input, so upon exiting, the
1859 general expand to multiple lines of input, so upon exiting, the
1851 in/out counters will both be bumped by the corresponding amount
1860 in/out counters will both be bumped by the corresponding amount
1852 (as if the macro's contents had been typed interactively). Typing
1861 (as if the macro's contents had been typed interactively). Typing
1853 %hist will reveal the intermediate (silently processed) lines.
1862 %hist will reveal the intermediate (silently processed) lines.
1854
1863
1855 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1864 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1856 pickle to fail (%run was overwriting __main__ and not restoring
1865 pickle to fail (%run was overwriting __main__ and not restoring
1857 it, but pickle relies on __main__ to operate).
1866 it, but pickle relies on __main__ to operate).
1858
1867
1859 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1868 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1860 using properties, but forgot to make the main InteractiveShell
1869 using properties, but forgot to make the main InteractiveShell
1861 class a new-style class. Properties fail silently, and
1870 class a new-style class. Properties fail silently, and
1862 mysteriously, with old-style class (getters work, but
1871 mysteriously, with old-style class (getters work, but
1863 setters don't do anything).
1872 setters don't do anything).
1864
1873
1865 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1874 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1866
1875
1867 * IPython/Magic.py (magic_history): fix history reporting bug (I
1876 * IPython/Magic.py (magic_history): fix history reporting bug (I
1868 know some nasties are still there, I just can't seem to find a
1877 know some nasties are still there, I just can't seem to find a
1869 reproducible test case to track them down; the input history is
1878 reproducible test case to track them down; the input history is
1870 falling out of sync...)
1879 falling out of sync...)
1871
1880
1872 * IPython/iplib.py (handle_shell_escape): fix bug where both
1881 * IPython/iplib.py (handle_shell_escape): fix bug where both
1873 aliases and system accesses where broken for indented code (such
1882 aliases and system accesses where broken for indented code (such
1874 as loops).
1883 as loops).
1875
1884
1876 * IPython/genutils.py (shell): fix small but critical bug for
1885 * IPython/genutils.py (shell): fix small but critical bug for
1877 win32 system access.
1886 win32 system access.
1878
1887
1879 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1888 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1880
1889
1881 * IPython/iplib.py (showtraceback): remove use of the
1890 * IPython/iplib.py (showtraceback): remove use of the
1882 sys.last_{type/value/traceback} structures, which are non
1891 sys.last_{type/value/traceback} structures, which are non
1883 thread-safe.
1892 thread-safe.
1884 (_prefilter): change control flow to ensure that we NEVER
1893 (_prefilter): change control flow to ensure that we NEVER
1885 introspect objects when autocall is off. This will guarantee that
1894 introspect objects when autocall is off. This will guarantee that
1886 having an input line of the form 'x.y', where access to attribute
1895 having an input line of the form 'x.y', where access to attribute
1887 'y' has side effects, doesn't trigger the side effect TWICE. It
1896 'y' has side effects, doesn't trigger the side effect TWICE. It
1888 is important to note that, with autocall on, these side effects
1897 is important to note that, with autocall on, these side effects
1889 can still happen.
1898 can still happen.
1890 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1899 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1891 trio. IPython offers these three kinds of special calls which are
1900 trio. IPython offers these three kinds of special calls which are
1892 not python code, and it's a good thing to have their call method
1901 not python code, and it's a good thing to have their call method
1893 be accessible as pure python functions (not just special syntax at
1902 be accessible as pure python functions (not just special syntax at
1894 the command line). It gives us a better internal implementation
1903 the command line). It gives us a better internal implementation
1895 structure, as well as exposing these for user scripting more
1904 structure, as well as exposing these for user scripting more
1896 cleanly.
1905 cleanly.
1897
1906
1898 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1907 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1899 file. Now that they'll be more likely to be used with the
1908 file. Now that they'll be more likely to be used with the
1900 persistance system (%store), I want to make sure their module path
1909 persistance system (%store), I want to make sure their module path
1901 doesn't change in the future, so that we don't break things for
1910 doesn't change in the future, so that we don't break things for
1902 users' persisted data.
1911 users' persisted data.
1903
1912
1904 * IPython/iplib.py (autoindent_update): move indentation
1913 * IPython/iplib.py (autoindent_update): move indentation
1905 management into the _text_ processing loop, not the keyboard
1914 management into the _text_ processing loop, not the keyboard
1906 interactive one. This is necessary to correctly process non-typed
1915 interactive one. This is necessary to correctly process non-typed
1907 multiline input (such as macros).
1916 multiline input (such as macros).
1908
1917
1909 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1918 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1910 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1919 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1911 which was producing problems in the resulting manual.
1920 which was producing problems in the resulting manual.
1912 (magic_whos): improve reporting of instances (show their class,
1921 (magic_whos): improve reporting of instances (show their class,
1913 instead of simply printing 'instance' which isn't terribly
1922 instead of simply printing 'instance' which isn't terribly
1914 informative).
1923 informative).
1915
1924
1916 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1925 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1917 (minor mods) to support network shares under win32.
1926 (minor mods) to support network shares under win32.
1918
1927
1919 * IPython/winconsole.py (get_console_size): add new winconsole
1928 * IPython/winconsole.py (get_console_size): add new winconsole
1920 module and fixes to page_dumb() to improve its behavior under
1929 module and fixes to page_dumb() to improve its behavior under
1921 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1930 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1922
1931
1923 * IPython/Magic.py (Macro): simplified Macro class to just
1932 * IPython/Magic.py (Macro): simplified Macro class to just
1924 subclass list. We've had only 2.2 compatibility for a very long
1933 subclass list. We've had only 2.2 compatibility for a very long
1925 time, yet I was still avoiding subclassing the builtin types. No
1934 time, yet I was still avoiding subclassing the builtin types. No
1926 more (I'm also starting to use properties, though I won't shift to
1935 more (I'm also starting to use properties, though I won't shift to
1927 2.3-specific features quite yet).
1936 2.3-specific features quite yet).
1928 (magic_store): added Ville's patch for lightweight variable
1937 (magic_store): added Ville's patch for lightweight variable
1929 persistence, after a request on the user list by Matt Wilkie
1938 persistence, after a request on the user list by Matt Wilkie
1930 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1939 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1931 details.
1940 details.
1932
1941
1933 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1942 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1934 changed the default logfile name from 'ipython.log' to
1943 changed the default logfile name from 'ipython.log' to
1935 'ipython_log.py'. These logs are real python files, and now that
1944 'ipython_log.py'. These logs are real python files, and now that
1936 we have much better multiline support, people are more likely to
1945 we have much better multiline support, people are more likely to
1937 want to use them as such. Might as well name them correctly.
1946 want to use them as such. Might as well name them correctly.
1938
1947
1939 * IPython/Magic.py: substantial cleanup. While we can't stop
1948 * IPython/Magic.py: substantial cleanup. While we can't stop
1940 using magics as mixins, due to the existing customizations 'out
1949 using magics as mixins, due to the existing customizations 'out
1941 there' which rely on the mixin naming conventions, at least I
1950 there' which rely on the mixin naming conventions, at least I
1942 cleaned out all cross-class name usage. So once we are OK with
1951 cleaned out all cross-class name usage. So once we are OK with
1943 breaking compatibility, the two systems can be separated.
1952 breaking compatibility, the two systems can be separated.
1944
1953
1945 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1954 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1946 anymore, and the class is a fair bit less hideous as well. New
1955 anymore, and the class is a fair bit less hideous as well. New
1947 features were also introduced: timestamping of input, and logging
1956 features were also introduced: timestamping of input, and logging
1948 of output results. These are user-visible with the -t and -o
1957 of output results. These are user-visible with the -t and -o
1949 options to %logstart. Closes
1958 options to %logstart. Closes
1950 http://www.scipy.net/roundup/ipython/issue11 and a request by
1959 http://www.scipy.net/roundup/ipython/issue11 and a request by
1951 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1960 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1952
1961
1953 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1962 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1954
1963
1955 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1964 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1956 better handle backslashes in paths. See the thread 'More Windows
1965 better handle backslashes in paths. See the thread 'More Windows
1957 questions part 2 - \/ characters revisited' on the iypthon user
1966 questions part 2 - \/ characters revisited' on the iypthon user
1958 list:
1967 list:
1959 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1968 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1960
1969
1961 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1970 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1962
1971
1963 (InteractiveShell.__init__): change threaded shells to not use the
1972 (InteractiveShell.__init__): change threaded shells to not use the
1964 ipython crash handler. This was causing more problems than not,
1973 ipython crash handler. This was causing more problems than not,
1965 as exceptions in the main thread (GUI code, typically) would
1974 as exceptions in the main thread (GUI code, typically) would
1966 always show up as a 'crash', when they really weren't.
1975 always show up as a 'crash', when they really weren't.
1967
1976
1968 The colors and exception mode commands (%colors/%xmode) have been
1977 The colors and exception mode commands (%colors/%xmode) have been
1969 synchronized to also take this into account, so users can get
1978 synchronized to also take this into account, so users can get
1970 verbose exceptions for their threaded code as well. I also added
1979 verbose exceptions for their threaded code as well. I also added
1971 support for activating pdb inside this exception handler as well,
1980 support for activating pdb inside this exception handler as well,
1972 so now GUI authors can use IPython's enhanced pdb at runtime.
1981 so now GUI authors can use IPython's enhanced pdb at runtime.
1973
1982
1974 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1983 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1975 true by default, and add it to the shipped ipythonrc file. Since
1984 true by default, and add it to the shipped ipythonrc file. Since
1976 this asks the user before proceeding, I think it's OK to make it
1985 this asks the user before proceeding, I think it's OK to make it
1977 true by default.
1986 true by default.
1978
1987
1979 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1988 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1980 of the previous special-casing of input in the eval loop. I think
1989 of the previous special-casing of input in the eval loop. I think
1981 this is cleaner, as they really are commands and shouldn't have
1990 this is cleaner, as they really are commands and shouldn't have
1982 a special role in the middle of the core code.
1991 a special role in the middle of the core code.
1983
1992
1984 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1993 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1985
1994
1986 * IPython/iplib.py (edit_syntax_error): added support for
1995 * IPython/iplib.py (edit_syntax_error): added support for
1987 automatically reopening the editor if the file had a syntax error
1996 automatically reopening the editor if the file had a syntax error
1988 in it. Thanks to scottt who provided the patch at:
1997 in it. Thanks to scottt who provided the patch at:
1989 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1998 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1990 version committed).
1999 version committed).
1991
2000
1992 * IPython/iplib.py (handle_normal): add suport for multi-line
2001 * IPython/iplib.py (handle_normal): add suport for multi-line
1993 input with emtpy lines. This fixes
2002 input with emtpy lines. This fixes
1994 http://www.scipy.net/roundup/ipython/issue43 and a similar
2003 http://www.scipy.net/roundup/ipython/issue43 and a similar
1995 discussion on the user list.
2004 discussion on the user list.
1996
2005
1997 WARNING: a behavior change is necessarily introduced to support
2006 WARNING: a behavior change is necessarily introduced to support
1998 blank lines: now a single blank line with whitespace does NOT
2007 blank lines: now a single blank line with whitespace does NOT
1999 break the input loop, which means that when autoindent is on, by
2008 break the input loop, which means that when autoindent is on, by
2000 default hitting return on the next (indented) line does NOT exit.
2009 default hitting return on the next (indented) line does NOT exit.
2001
2010
2002 Instead, to exit a multiline input you can either have:
2011 Instead, to exit a multiline input you can either have:
2003
2012
2004 - TWO whitespace lines (just hit return again), or
2013 - TWO whitespace lines (just hit return again), or
2005 - a single whitespace line of a different length than provided
2014 - a single whitespace line of a different length than provided
2006 by the autoindent (add or remove a space).
2015 by the autoindent (add or remove a space).
2007
2016
2008 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2017 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2009 module to better organize all readline-related functionality.
2018 module to better organize all readline-related functionality.
2010 I've deleted FlexCompleter and put all completion clases here.
2019 I've deleted FlexCompleter and put all completion clases here.
2011
2020
2012 * IPython/iplib.py (raw_input): improve indentation management.
2021 * IPython/iplib.py (raw_input): improve indentation management.
2013 It is now possible to paste indented code with autoindent on, and
2022 It is now possible to paste indented code with autoindent on, and
2014 the code is interpreted correctly (though it still looks bad on
2023 the code is interpreted correctly (though it still looks bad on
2015 screen, due to the line-oriented nature of ipython).
2024 screen, due to the line-oriented nature of ipython).
2016 (MagicCompleter.complete): change behavior so that a TAB key on an
2025 (MagicCompleter.complete): change behavior so that a TAB key on an
2017 otherwise empty line actually inserts a tab, instead of completing
2026 otherwise empty line actually inserts a tab, instead of completing
2018 on the entire global namespace. This makes it easier to use the
2027 on the entire global namespace. This makes it easier to use the
2019 TAB key for indentation. After a request by Hans Meine
2028 TAB key for indentation. After a request by Hans Meine
2020 <hans_meine-AT-gmx.net>
2029 <hans_meine-AT-gmx.net>
2021 (_prefilter): add support so that typing plain 'exit' or 'quit'
2030 (_prefilter): add support so that typing plain 'exit' or 'quit'
2022 does a sensible thing. Originally I tried to deviate as little as
2031 does a sensible thing. Originally I tried to deviate as little as
2023 possible from the default python behavior, but even that one may
2032 possible from the default python behavior, but even that one may
2024 change in this direction (thread on python-dev to that effect).
2033 change in this direction (thread on python-dev to that effect).
2025 Regardless, ipython should do the right thing even if CPython's
2034 Regardless, ipython should do the right thing even if CPython's
2026 '>>>' prompt doesn't.
2035 '>>>' prompt doesn't.
2027 (InteractiveShell): removed subclassing code.InteractiveConsole
2036 (InteractiveShell): removed subclassing code.InteractiveConsole
2028 class. By now we'd overridden just about all of its methods: I've
2037 class. By now we'd overridden just about all of its methods: I've
2029 copied the remaining two over, and now ipython is a standalone
2038 copied the remaining two over, and now ipython is a standalone
2030 class. This will provide a clearer picture for the chainsaw
2039 class. This will provide a clearer picture for the chainsaw
2031 branch refactoring.
2040 branch refactoring.
2032
2041
2033 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2042 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2034
2043
2035 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2044 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2036 failures for objects which break when dir() is called on them.
2045 failures for objects which break when dir() is called on them.
2037
2046
2038 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2047 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2039 distinct local and global namespaces in the completer API. This
2048 distinct local and global namespaces in the completer API. This
2040 change allows us to properly handle completion with distinct
2049 change allows us to properly handle completion with distinct
2041 scopes, including in embedded instances (this had never really
2050 scopes, including in embedded instances (this had never really
2042 worked correctly).
2051 worked correctly).
2043
2052
2044 Note: this introduces a change in the constructor for
2053 Note: this introduces a change in the constructor for
2045 MagicCompleter, as a new global_namespace parameter is now the
2054 MagicCompleter, as a new global_namespace parameter is now the
2046 second argument (the others were bumped one position).
2055 second argument (the others were bumped one position).
2047
2056
2048 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2057 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2049
2058
2050 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2059 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2051 embedded instances (which can be done now thanks to Vivian's
2060 embedded instances (which can be done now thanks to Vivian's
2052 frame-handling fixes for pdb).
2061 frame-handling fixes for pdb).
2053 (InteractiveShell.__init__): Fix namespace handling problem in
2062 (InteractiveShell.__init__): Fix namespace handling problem in
2054 embedded instances. We were overwriting __main__ unconditionally,
2063 embedded instances. We were overwriting __main__ unconditionally,
2055 and this should only be done for 'full' (non-embedded) IPython;
2064 and this should only be done for 'full' (non-embedded) IPython;
2056 embedded instances must respect the caller's __main__. Thanks to
2065 embedded instances must respect the caller's __main__. Thanks to
2057 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2066 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2058
2067
2059 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2068 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2060
2069
2061 * setup.py: added download_url to setup(). This registers the
2070 * setup.py: added download_url to setup(). This registers the
2062 download address at PyPI, which is not only useful to humans
2071 download address at PyPI, which is not only useful to humans
2063 browsing the site, but is also picked up by setuptools (the Eggs
2072 browsing the site, but is also picked up by setuptools (the Eggs
2064 machinery). Thanks to Ville and R. Kern for the info/discussion
2073 machinery). Thanks to Ville and R. Kern for the info/discussion
2065 on this.
2074 on this.
2066
2075
2067 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2076 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2068
2077
2069 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2078 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2070 This brings a lot of nice functionality to the pdb mode, which now
2079 This brings a lot of nice functionality to the pdb mode, which now
2071 has tab-completion, syntax highlighting, and better stack handling
2080 has tab-completion, syntax highlighting, and better stack handling
2072 than before. Many thanks to Vivian De Smedt
2081 than before. Many thanks to Vivian De Smedt
2073 <vivian-AT-vdesmedt.com> for the original patches.
2082 <vivian-AT-vdesmedt.com> for the original patches.
2074
2083
2075 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2084 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2076
2085
2077 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2086 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2078 sequence to consistently accept the banner argument. The
2087 sequence to consistently accept the banner argument. The
2079 inconsistency was tripping SAGE, thanks to Gary Zablackis
2088 inconsistency was tripping SAGE, thanks to Gary Zablackis
2080 <gzabl-AT-yahoo.com> for the report.
2089 <gzabl-AT-yahoo.com> for the report.
2081
2090
2082 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2091 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2083
2092
2084 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2093 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2085 Fix bug where a naked 'alias' call in the ipythonrc file would
2094 Fix bug where a naked 'alias' call in the ipythonrc file would
2086 cause a crash. Bug reported by Jorgen Stenarson.
2095 cause a crash. Bug reported by Jorgen Stenarson.
2087
2096
2088 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2097 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2089
2098
2090 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2099 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2091 startup time.
2100 startup time.
2092
2101
2093 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2102 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2094 instances had introduced a bug with globals in normal code. Now
2103 instances had introduced a bug with globals in normal code. Now
2095 it's working in all cases.
2104 it's working in all cases.
2096
2105
2097 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2106 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2098 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2107 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2099 has been introduced to set the default case sensitivity of the
2108 has been introduced to set the default case sensitivity of the
2100 searches. Users can still select either mode at runtime on a
2109 searches. Users can still select either mode at runtime on a
2101 per-search basis.
2110 per-search basis.
2102
2111
2103 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2112 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2104
2113
2105 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2114 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2106 attributes in wildcard searches for subclasses. Modified version
2115 attributes in wildcard searches for subclasses. Modified version
2107 of a patch by Jorgen.
2116 of a patch by Jorgen.
2108
2117
2109 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2118 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2110
2119
2111 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2120 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2112 embedded instances. I added a user_global_ns attribute to the
2121 embedded instances. I added a user_global_ns attribute to the
2113 InteractiveShell class to handle this.
2122 InteractiveShell class to handle this.
2114
2123
2115 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2124 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2116
2125
2117 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2126 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2118 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2127 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2119 (reported under win32, but may happen also in other platforms).
2128 (reported under win32, but may happen also in other platforms).
2120 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2129 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2121
2130
2122 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2131 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2123
2132
2124 * IPython/Magic.py (magic_psearch): new support for wildcard
2133 * IPython/Magic.py (magic_psearch): new support for wildcard
2125 patterns. Now, typing ?a*b will list all names which begin with a
2134 patterns. Now, typing ?a*b will list all names which begin with a
2126 and end in b, for example. The %psearch magic has full
2135 and end in b, for example. The %psearch magic has full
2127 docstrings. Many thanks to JΓΆrgen Stenarson
2136 docstrings. Many thanks to JΓΆrgen Stenarson
2128 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2137 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2129 implementing this functionality.
2138 implementing this functionality.
2130
2139
2131 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2140 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2132
2141
2133 * Manual: fixed long-standing annoyance of double-dashes (as in
2142 * Manual: fixed long-standing annoyance of double-dashes (as in
2134 --prefix=~, for example) being stripped in the HTML version. This
2143 --prefix=~, for example) being stripped in the HTML version. This
2135 is a latex2html bug, but a workaround was provided. Many thanks
2144 is a latex2html bug, but a workaround was provided. Many thanks
2136 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2145 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2137 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2146 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2138 rolling. This seemingly small issue had tripped a number of users
2147 rolling. This seemingly small issue had tripped a number of users
2139 when first installing, so I'm glad to see it gone.
2148 when first installing, so I'm glad to see it gone.
2140
2149
2141 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2150 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2142
2151
2143 * IPython/Extensions/numeric_formats.py: fix missing import,
2152 * IPython/Extensions/numeric_formats.py: fix missing import,
2144 reported by Stephen Walton.
2153 reported by Stephen Walton.
2145
2154
2146 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2155 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2147
2156
2148 * IPython/demo.py: finish demo module, fully documented now.
2157 * IPython/demo.py: finish demo module, fully documented now.
2149
2158
2150 * IPython/genutils.py (file_read): simple little utility to read a
2159 * IPython/genutils.py (file_read): simple little utility to read a
2151 file and ensure it's closed afterwards.
2160 file and ensure it's closed afterwards.
2152
2161
2153 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2162 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2154
2163
2155 * IPython/demo.py (Demo.__init__): added support for individually
2164 * IPython/demo.py (Demo.__init__): added support for individually
2156 tagging blocks for automatic execution.
2165 tagging blocks for automatic execution.
2157
2166
2158 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2167 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2159 syntax-highlighted python sources, requested by John.
2168 syntax-highlighted python sources, requested by John.
2160
2169
2161 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2170 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2162
2171
2163 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2172 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2164 finishing.
2173 finishing.
2165
2174
2166 * IPython/genutils.py (shlex_split): moved from Magic to here,
2175 * IPython/genutils.py (shlex_split): moved from Magic to here,
2167 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2176 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2168
2177
2169 * IPython/demo.py (Demo.__init__): added support for silent
2178 * IPython/demo.py (Demo.__init__): added support for silent
2170 blocks, improved marks as regexps, docstrings written.
2179 blocks, improved marks as regexps, docstrings written.
2171 (Demo.__init__): better docstring, added support for sys.argv.
2180 (Demo.__init__): better docstring, added support for sys.argv.
2172
2181
2173 * IPython/genutils.py (marquee): little utility used by the demo
2182 * IPython/genutils.py (marquee): little utility used by the demo
2174 code, handy in general.
2183 code, handy in general.
2175
2184
2176 * IPython/demo.py (Demo.__init__): new class for interactive
2185 * IPython/demo.py (Demo.__init__): new class for interactive
2177 demos. Not documented yet, I just wrote it in a hurry for
2186 demos. Not documented yet, I just wrote it in a hurry for
2178 scipy'05. Will docstring later.
2187 scipy'05. Will docstring later.
2179
2188
2180 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2189 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2181
2190
2182 * IPython/Shell.py (sigint_handler): Drastic simplification which
2191 * IPython/Shell.py (sigint_handler): Drastic simplification which
2183 also seems to make Ctrl-C work correctly across threads! This is
2192 also seems to make Ctrl-C work correctly across threads! This is
2184 so simple, that I can't beleive I'd missed it before. Needs more
2193 so simple, that I can't beleive I'd missed it before. Needs more
2185 testing, though.
2194 testing, though.
2186 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2195 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2187 like this before...
2196 like this before...
2188
2197
2189 * IPython/genutils.py (get_home_dir): add protection against
2198 * IPython/genutils.py (get_home_dir): add protection against
2190 non-dirs in win32 registry.
2199 non-dirs in win32 registry.
2191
2200
2192 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2201 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2193 bug where dict was mutated while iterating (pysh crash).
2202 bug where dict was mutated while iterating (pysh crash).
2194
2203
2195 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2204 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2196
2205
2197 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2206 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2198 spurious newlines added by this routine. After a report by
2207 spurious newlines added by this routine. After a report by
2199 F. Mantegazza.
2208 F. Mantegazza.
2200
2209
2201 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2210 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2202
2211
2203 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2212 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2204 calls. These were a leftover from the GTK 1.x days, and can cause
2213 calls. These were a leftover from the GTK 1.x days, and can cause
2205 problems in certain cases (after a report by John Hunter).
2214 problems in certain cases (after a report by John Hunter).
2206
2215
2207 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2216 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2208 os.getcwd() fails at init time. Thanks to patch from David Remahl
2217 os.getcwd() fails at init time. Thanks to patch from David Remahl
2209 <chmod007-AT-mac.com>.
2218 <chmod007-AT-mac.com>.
2210 (InteractiveShell.__init__): prevent certain special magics from
2219 (InteractiveShell.__init__): prevent certain special magics from
2211 being shadowed by aliases. Closes
2220 being shadowed by aliases. Closes
2212 http://www.scipy.net/roundup/ipython/issue41.
2221 http://www.scipy.net/roundup/ipython/issue41.
2213
2222
2214 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2223 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2215
2224
2216 * IPython/iplib.py (InteractiveShell.complete): Added new
2225 * IPython/iplib.py (InteractiveShell.complete): Added new
2217 top-level completion method to expose the completion mechanism
2226 top-level completion method to expose the completion mechanism
2218 beyond readline-based environments.
2227 beyond readline-based environments.
2219
2228
2220 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2229 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2221
2230
2222 * tools/ipsvnc (svnversion): fix svnversion capture.
2231 * tools/ipsvnc (svnversion): fix svnversion capture.
2223
2232
2224 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2233 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2225 attribute to self, which was missing. Before, it was set by a
2234 attribute to self, which was missing. Before, it was set by a
2226 routine which in certain cases wasn't being called, so the
2235 routine which in certain cases wasn't being called, so the
2227 instance could end up missing the attribute. This caused a crash.
2236 instance could end up missing the attribute. This caused a crash.
2228 Closes http://www.scipy.net/roundup/ipython/issue40.
2237 Closes http://www.scipy.net/roundup/ipython/issue40.
2229
2238
2230 2005-08-16 Fernando Perez <fperez@colorado.edu>
2239 2005-08-16 Fernando Perez <fperez@colorado.edu>
2231
2240
2232 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2241 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2233 contains non-string attribute. Closes
2242 contains non-string attribute. Closes
2234 http://www.scipy.net/roundup/ipython/issue38.
2243 http://www.scipy.net/roundup/ipython/issue38.
2235
2244
2236 2005-08-14 Fernando Perez <fperez@colorado.edu>
2245 2005-08-14 Fernando Perez <fperez@colorado.edu>
2237
2246
2238 * tools/ipsvnc: Minor improvements, to add changeset info.
2247 * tools/ipsvnc: Minor improvements, to add changeset info.
2239
2248
2240 2005-08-12 Fernando Perez <fperez@colorado.edu>
2249 2005-08-12 Fernando Perez <fperez@colorado.edu>
2241
2250
2242 * IPython/iplib.py (runsource): remove self.code_to_run_src
2251 * IPython/iplib.py (runsource): remove self.code_to_run_src
2243 attribute. I realized this is nothing more than
2252 attribute. I realized this is nothing more than
2244 '\n'.join(self.buffer), and having the same data in two different
2253 '\n'.join(self.buffer), and having the same data in two different
2245 places is just asking for synchronization bugs. This may impact
2254 places is just asking for synchronization bugs. This may impact
2246 people who have custom exception handlers, so I need to warn
2255 people who have custom exception handlers, so I need to warn
2247 ipython-dev about it (F. Mantegazza may use them).
2256 ipython-dev about it (F. Mantegazza may use them).
2248
2257
2249 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2258 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2250
2259
2251 * IPython/genutils.py: fix 2.2 compatibility (generators)
2260 * IPython/genutils.py: fix 2.2 compatibility (generators)
2252
2261
2253 2005-07-18 Fernando Perez <fperez@colorado.edu>
2262 2005-07-18 Fernando Perez <fperez@colorado.edu>
2254
2263
2255 * IPython/genutils.py (get_home_dir): fix to help users with
2264 * IPython/genutils.py (get_home_dir): fix to help users with
2256 invalid $HOME under win32.
2265 invalid $HOME under win32.
2257
2266
2258 2005-07-17 Fernando Perez <fperez@colorado.edu>
2267 2005-07-17 Fernando Perez <fperez@colorado.edu>
2259
2268
2260 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2269 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2261 some old hacks and clean up a bit other routines; code should be
2270 some old hacks and clean up a bit other routines; code should be
2262 simpler and a bit faster.
2271 simpler and a bit faster.
2263
2272
2264 * IPython/iplib.py (interact): removed some last-resort attempts
2273 * IPython/iplib.py (interact): removed some last-resort attempts
2265 to survive broken stdout/stderr. That code was only making it
2274 to survive broken stdout/stderr. That code was only making it
2266 harder to abstract out the i/o (necessary for gui integration),
2275 harder to abstract out the i/o (necessary for gui integration),
2267 and the crashes it could prevent were extremely rare in practice
2276 and the crashes it could prevent were extremely rare in practice
2268 (besides being fully user-induced in a pretty violent manner).
2277 (besides being fully user-induced in a pretty violent manner).
2269
2278
2270 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2279 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2271 Nothing major yet, but the code is simpler to read; this should
2280 Nothing major yet, but the code is simpler to read; this should
2272 make it easier to do more serious modifications in the future.
2281 make it easier to do more serious modifications in the future.
2273
2282
2274 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2283 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2275 which broke in .15 (thanks to a report by Ville).
2284 which broke in .15 (thanks to a report by Ville).
2276
2285
2277 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2286 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2278 be quite correct, I know next to nothing about unicode). This
2287 be quite correct, I know next to nothing about unicode). This
2279 will allow unicode strings to be used in prompts, amongst other
2288 will allow unicode strings to be used in prompts, amongst other
2280 cases. It also will prevent ipython from crashing when unicode
2289 cases. It also will prevent ipython from crashing when unicode
2281 shows up unexpectedly in many places. If ascii encoding fails, we
2290 shows up unexpectedly in many places. If ascii encoding fails, we
2282 assume utf_8. Currently the encoding is not a user-visible
2291 assume utf_8. Currently the encoding is not a user-visible
2283 setting, though it could be made so if there is demand for it.
2292 setting, though it could be made so if there is demand for it.
2284
2293
2285 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2294 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2286
2295
2287 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2296 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2288
2297
2289 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2298 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2290
2299
2291 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2300 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2292 code can work transparently for 2.2/2.3.
2301 code can work transparently for 2.2/2.3.
2293
2302
2294 2005-07-16 Fernando Perez <fperez@colorado.edu>
2303 2005-07-16 Fernando Perez <fperez@colorado.edu>
2295
2304
2296 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2305 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2297 out of the color scheme table used for coloring exception
2306 out of the color scheme table used for coloring exception
2298 tracebacks. This allows user code to add new schemes at runtime.
2307 tracebacks. This allows user code to add new schemes at runtime.
2299 This is a minimally modified version of the patch at
2308 This is a minimally modified version of the patch at
2300 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2309 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2301 for the contribution.
2310 for the contribution.
2302
2311
2303 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2312 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2304 slightly modified version of the patch in
2313 slightly modified version of the patch in
2305 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2314 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2306 to remove the previous try/except solution (which was costlier).
2315 to remove the previous try/except solution (which was costlier).
2307 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2316 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2308
2317
2309 2005-06-08 Fernando Perez <fperez@colorado.edu>
2318 2005-06-08 Fernando Perez <fperez@colorado.edu>
2310
2319
2311 * IPython/iplib.py (write/write_err): Add methods to abstract all
2320 * IPython/iplib.py (write/write_err): Add methods to abstract all
2312 I/O a bit more.
2321 I/O a bit more.
2313
2322
2314 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2323 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2315 warning, reported by Aric Hagberg, fix by JD Hunter.
2324 warning, reported by Aric Hagberg, fix by JD Hunter.
2316
2325
2317 2005-06-02 *** Released version 0.6.15
2326 2005-06-02 *** Released version 0.6.15
2318
2327
2319 2005-06-01 Fernando Perez <fperez@colorado.edu>
2328 2005-06-01 Fernando Perez <fperez@colorado.edu>
2320
2329
2321 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2330 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2322 tab-completion of filenames within open-quoted strings. Note that
2331 tab-completion of filenames within open-quoted strings. Note that
2323 this requires that in ~/.ipython/ipythonrc, users change the
2332 this requires that in ~/.ipython/ipythonrc, users change the
2324 readline delimiters configuration to read:
2333 readline delimiters configuration to read:
2325
2334
2326 readline_remove_delims -/~
2335 readline_remove_delims -/~
2327
2336
2328
2337
2329 2005-05-31 *** Released version 0.6.14
2338 2005-05-31 *** Released version 0.6.14
2330
2339
2331 2005-05-29 Fernando Perez <fperez@colorado.edu>
2340 2005-05-29 Fernando Perez <fperez@colorado.edu>
2332
2341
2333 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2342 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2334 with files not on the filesystem. Reported by Eliyahu Sandler
2343 with files not on the filesystem. Reported by Eliyahu Sandler
2335 <eli@gondolin.net>
2344 <eli@gondolin.net>
2336
2345
2337 2005-05-22 Fernando Perez <fperez@colorado.edu>
2346 2005-05-22 Fernando Perez <fperez@colorado.edu>
2338
2347
2339 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2348 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2340 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2349 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2341
2350
2342 2005-05-19 Fernando Perez <fperez@colorado.edu>
2351 2005-05-19 Fernando Perez <fperez@colorado.edu>
2343
2352
2344 * IPython/iplib.py (safe_execfile): close a file which could be
2353 * IPython/iplib.py (safe_execfile): close a file which could be
2345 left open (causing problems in win32, which locks open files).
2354 left open (causing problems in win32, which locks open files).
2346 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2355 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2347
2356
2348 2005-05-18 Fernando Perez <fperez@colorado.edu>
2357 2005-05-18 Fernando Perez <fperez@colorado.edu>
2349
2358
2350 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2359 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2351 keyword arguments correctly to safe_execfile().
2360 keyword arguments correctly to safe_execfile().
2352
2361
2353 2005-05-13 Fernando Perez <fperez@colorado.edu>
2362 2005-05-13 Fernando Perez <fperez@colorado.edu>
2354
2363
2355 * ipython.1: Added info about Qt to manpage, and threads warning
2364 * ipython.1: Added info about Qt to manpage, and threads warning
2356 to usage page (invoked with --help).
2365 to usage page (invoked with --help).
2357
2366
2358 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2367 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2359 new matcher (it goes at the end of the priority list) to do
2368 new matcher (it goes at the end of the priority list) to do
2360 tab-completion on named function arguments. Submitted by George
2369 tab-completion on named function arguments. Submitted by George
2361 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2370 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2362 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2371 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2363 for more details.
2372 for more details.
2364
2373
2365 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2374 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2366 SystemExit exceptions in the script being run. Thanks to a report
2375 SystemExit exceptions in the script being run. Thanks to a report
2367 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2376 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2368 producing very annoying behavior when running unit tests.
2377 producing very annoying behavior when running unit tests.
2369
2378
2370 2005-05-12 Fernando Perez <fperez@colorado.edu>
2379 2005-05-12 Fernando Perez <fperez@colorado.edu>
2371
2380
2372 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2381 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2373 which I'd broken (again) due to a changed regexp. In the process,
2382 which I'd broken (again) due to a changed regexp. In the process,
2374 added ';' as an escape to auto-quote the whole line without
2383 added ';' as an escape to auto-quote the whole line without
2375 splitting its arguments. Thanks to a report by Jerry McRae
2384 splitting its arguments. Thanks to a report by Jerry McRae
2376 <qrs0xyc02-AT-sneakemail.com>.
2385 <qrs0xyc02-AT-sneakemail.com>.
2377
2386
2378 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2387 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2379 possible crashes caused by a TokenError. Reported by Ed Schofield
2388 possible crashes caused by a TokenError. Reported by Ed Schofield
2380 <schofield-AT-ftw.at>.
2389 <schofield-AT-ftw.at>.
2381
2390
2382 2005-05-06 Fernando Perez <fperez@colorado.edu>
2391 2005-05-06 Fernando Perez <fperez@colorado.edu>
2383
2392
2384 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2393 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2385
2394
2386 2005-04-29 Fernando Perez <fperez@colorado.edu>
2395 2005-04-29 Fernando Perez <fperez@colorado.edu>
2387
2396
2388 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2397 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2389 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2398 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2390 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2399 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2391 which provides support for Qt interactive usage (similar to the
2400 which provides support for Qt interactive usage (similar to the
2392 existing one for WX and GTK). This had been often requested.
2401 existing one for WX and GTK). This had been often requested.
2393
2402
2394 2005-04-14 *** Released version 0.6.13
2403 2005-04-14 *** Released version 0.6.13
2395
2404
2396 2005-04-08 Fernando Perez <fperez@colorado.edu>
2405 2005-04-08 Fernando Perez <fperez@colorado.edu>
2397
2406
2398 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2407 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2399 from _ofind, which gets called on almost every input line. Now,
2408 from _ofind, which gets called on almost every input line. Now,
2400 we only try to get docstrings if they are actually going to be
2409 we only try to get docstrings if they are actually going to be
2401 used (the overhead of fetching unnecessary docstrings can be
2410 used (the overhead of fetching unnecessary docstrings can be
2402 noticeable for certain objects, such as Pyro proxies).
2411 noticeable for certain objects, such as Pyro proxies).
2403
2412
2404 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2413 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2405 for completers. For some reason I had been passing them the state
2414 for completers. For some reason I had been passing them the state
2406 variable, which completers never actually need, and was in
2415 variable, which completers never actually need, and was in
2407 conflict with the rlcompleter API. Custom completers ONLY need to
2416 conflict with the rlcompleter API. Custom completers ONLY need to
2408 take the text parameter.
2417 take the text parameter.
2409
2418
2410 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2419 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2411 work correctly in pysh. I've also moved all the logic which used
2420 work correctly in pysh. I've also moved all the logic which used
2412 to be in pysh.py here, which will prevent problems with future
2421 to be in pysh.py here, which will prevent problems with future
2413 upgrades. However, this time I must warn users to update their
2422 upgrades. However, this time I must warn users to update their
2414 pysh profile to include the line
2423 pysh profile to include the line
2415
2424
2416 import_all IPython.Extensions.InterpreterExec
2425 import_all IPython.Extensions.InterpreterExec
2417
2426
2418 because otherwise things won't work for them. They MUST also
2427 because otherwise things won't work for them. They MUST also
2419 delete pysh.py and the line
2428 delete pysh.py and the line
2420
2429
2421 execfile pysh.py
2430 execfile pysh.py
2422
2431
2423 from their ipythonrc-pysh.
2432 from their ipythonrc-pysh.
2424
2433
2425 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2434 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2426 robust in the face of objects whose dir() returns non-strings
2435 robust in the face of objects whose dir() returns non-strings
2427 (which it shouldn't, but some broken libs like ITK do). Thanks to
2436 (which it shouldn't, but some broken libs like ITK do). Thanks to
2428 a patch by John Hunter (implemented differently, though). Also
2437 a patch by John Hunter (implemented differently, though). Also
2429 minor improvements by using .extend instead of + on lists.
2438 minor improvements by using .extend instead of + on lists.
2430
2439
2431 * pysh.py:
2440 * pysh.py:
2432
2441
2433 2005-04-06 Fernando Perez <fperez@colorado.edu>
2442 2005-04-06 Fernando Perez <fperez@colorado.edu>
2434
2443
2435 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2444 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2436 by default, so that all users benefit from it. Those who don't
2445 by default, so that all users benefit from it. Those who don't
2437 want it can still turn it off.
2446 want it can still turn it off.
2438
2447
2439 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2448 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2440 config file, I'd forgotten about this, so users were getting it
2449 config file, I'd forgotten about this, so users were getting it
2441 off by default.
2450 off by default.
2442
2451
2443 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2452 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2444 consistency. Now magics can be called in multiline statements,
2453 consistency. Now magics can be called in multiline statements,
2445 and python variables can be expanded in magic calls via $var.
2454 and python variables can be expanded in magic calls via $var.
2446 This makes the magic system behave just like aliases or !system
2455 This makes the magic system behave just like aliases or !system
2447 calls.
2456 calls.
2448
2457
2449 2005-03-28 Fernando Perez <fperez@colorado.edu>
2458 2005-03-28 Fernando Perez <fperez@colorado.edu>
2450
2459
2451 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2460 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2452 expensive string additions for building command. Add support for
2461 expensive string additions for building command. Add support for
2453 trailing ';' when autocall is used.
2462 trailing ';' when autocall is used.
2454
2463
2455 2005-03-26 Fernando Perez <fperez@colorado.edu>
2464 2005-03-26 Fernando Perez <fperez@colorado.edu>
2456
2465
2457 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2466 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2458 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2467 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2459 ipython.el robust against prompts with any number of spaces
2468 ipython.el robust against prompts with any number of spaces
2460 (including 0) after the ':' character.
2469 (including 0) after the ':' character.
2461
2470
2462 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2471 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2463 continuation prompt, which misled users to think the line was
2472 continuation prompt, which misled users to think the line was
2464 already indented. Closes debian Bug#300847, reported to me by
2473 already indented. Closes debian Bug#300847, reported to me by
2465 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2474 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2466
2475
2467 2005-03-23 Fernando Perez <fperez@colorado.edu>
2476 2005-03-23 Fernando Perez <fperez@colorado.edu>
2468
2477
2469 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2478 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2470 properly aligned if they have embedded newlines.
2479 properly aligned if they have embedded newlines.
2471
2480
2472 * IPython/iplib.py (runlines): Add a public method to expose
2481 * IPython/iplib.py (runlines): Add a public method to expose
2473 IPython's code execution machinery, so that users can run strings
2482 IPython's code execution machinery, so that users can run strings
2474 as if they had been typed at the prompt interactively.
2483 as if they had been typed at the prompt interactively.
2475 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2484 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2476 methods which can call the system shell, but with python variable
2485 methods which can call the system shell, but with python variable
2477 expansion. The three such methods are: __IPYTHON__.system,
2486 expansion. The three such methods are: __IPYTHON__.system,
2478 .getoutput and .getoutputerror. These need to be documented in a
2487 .getoutput and .getoutputerror. These need to be documented in a
2479 'public API' section (to be written) of the manual.
2488 'public API' section (to be written) of the manual.
2480
2489
2481 2005-03-20 Fernando Perez <fperez@colorado.edu>
2490 2005-03-20 Fernando Perez <fperez@colorado.edu>
2482
2491
2483 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2492 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2484 for custom exception handling. This is quite powerful, and it
2493 for custom exception handling. This is quite powerful, and it
2485 allows for user-installable exception handlers which can trap
2494 allows for user-installable exception handlers which can trap
2486 custom exceptions at runtime and treat them separately from
2495 custom exceptions at runtime and treat them separately from
2487 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2496 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2488 Mantegazza <mantegazza-AT-ill.fr>.
2497 Mantegazza <mantegazza-AT-ill.fr>.
2489 (InteractiveShell.set_custom_completer): public API function to
2498 (InteractiveShell.set_custom_completer): public API function to
2490 add new completers at runtime.
2499 add new completers at runtime.
2491
2500
2492 2005-03-19 Fernando Perez <fperez@colorado.edu>
2501 2005-03-19 Fernando Perez <fperez@colorado.edu>
2493
2502
2494 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2503 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2495 allow objects which provide their docstrings via non-standard
2504 allow objects which provide their docstrings via non-standard
2496 mechanisms (like Pyro proxies) to still be inspected by ipython's
2505 mechanisms (like Pyro proxies) to still be inspected by ipython's
2497 ? system.
2506 ? system.
2498
2507
2499 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2508 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2500 automatic capture system. I tried quite hard to make it work
2509 automatic capture system. I tried quite hard to make it work
2501 reliably, and simply failed. I tried many combinations with the
2510 reliably, and simply failed. I tried many combinations with the
2502 subprocess module, but eventually nothing worked in all needed
2511 subprocess module, but eventually nothing worked in all needed
2503 cases (not blocking stdin for the child, duplicating stdout
2512 cases (not blocking stdin for the child, duplicating stdout
2504 without blocking, etc). The new %sc/%sx still do capture to these
2513 without blocking, etc). The new %sc/%sx still do capture to these
2505 magical list/string objects which make shell use much more
2514 magical list/string objects which make shell use much more
2506 conveninent, so not all is lost.
2515 conveninent, so not all is lost.
2507
2516
2508 XXX - FIX MANUAL for the change above!
2517 XXX - FIX MANUAL for the change above!
2509
2518
2510 (runsource): I copied code.py's runsource() into ipython to modify
2519 (runsource): I copied code.py's runsource() into ipython to modify
2511 it a bit. Now the code object and source to be executed are
2520 it a bit. Now the code object and source to be executed are
2512 stored in ipython. This makes this info accessible to third-party
2521 stored in ipython. This makes this info accessible to third-party
2513 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2522 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2514 Mantegazza <mantegazza-AT-ill.fr>.
2523 Mantegazza <mantegazza-AT-ill.fr>.
2515
2524
2516 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2525 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2517 history-search via readline (like C-p/C-n). I'd wanted this for a
2526 history-search via readline (like C-p/C-n). I'd wanted this for a
2518 long time, but only recently found out how to do it. For users
2527 long time, but only recently found out how to do it. For users
2519 who already have their ipythonrc files made and want this, just
2528 who already have their ipythonrc files made and want this, just
2520 add:
2529 add:
2521
2530
2522 readline_parse_and_bind "\e[A": history-search-backward
2531 readline_parse_and_bind "\e[A": history-search-backward
2523 readline_parse_and_bind "\e[B": history-search-forward
2532 readline_parse_and_bind "\e[B": history-search-forward
2524
2533
2525 2005-03-18 Fernando Perez <fperez@colorado.edu>
2534 2005-03-18 Fernando Perez <fperez@colorado.edu>
2526
2535
2527 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2536 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2528 LSString and SList classes which allow transparent conversions
2537 LSString and SList classes which allow transparent conversions
2529 between list mode and whitespace-separated string.
2538 between list mode and whitespace-separated string.
2530 (magic_r): Fix recursion problem in %r.
2539 (magic_r): Fix recursion problem in %r.
2531
2540
2532 * IPython/genutils.py (LSString): New class to be used for
2541 * IPython/genutils.py (LSString): New class to be used for
2533 automatic storage of the results of all alias/system calls in _o
2542 automatic storage of the results of all alias/system calls in _o
2534 and _e (stdout/err). These provide a .l/.list attribute which
2543 and _e (stdout/err). These provide a .l/.list attribute which
2535 does automatic splitting on newlines. This means that for most
2544 does automatic splitting on newlines. This means that for most
2536 uses, you'll never need to do capturing of output with %sc/%sx
2545 uses, you'll never need to do capturing of output with %sc/%sx
2537 anymore, since ipython keeps this always done for you. Note that
2546 anymore, since ipython keeps this always done for you. Note that
2538 only the LAST results are stored, the _o/e variables are
2547 only the LAST results are stored, the _o/e variables are
2539 overwritten on each call. If you need to save their contents
2548 overwritten on each call. If you need to save their contents
2540 further, simply bind them to any other name.
2549 further, simply bind them to any other name.
2541
2550
2542 2005-03-17 Fernando Perez <fperez@colorado.edu>
2551 2005-03-17 Fernando Perez <fperez@colorado.edu>
2543
2552
2544 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2553 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2545 prompt namespace handling.
2554 prompt namespace handling.
2546
2555
2547 2005-03-16 Fernando Perez <fperez@colorado.edu>
2556 2005-03-16 Fernando Perez <fperez@colorado.edu>
2548
2557
2549 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2558 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2550 classic prompts to be '>>> ' (final space was missing, and it
2559 classic prompts to be '>>> ' (final space was missing, and it
2551 trips the emacs python mode).
2560 trips the emacs python mode).
2552 (BasePrompt.__str__): Added safe support for dynamic prompt
2561 (BasePrompt.__str__): Added safe support for dynamic prompt
2553 strings. Now you can set your prompt string to be '$x', and the
2562 strings. Now you can set your prompt string to be '$x', and the
2554 value of x will be printed from your interactive namespace. The
2563 value of x will be printed from your interactive namespace. The
2555 interpolation syntax includes the full Itpl support, so
2564 interpolation syntax includes the full Itpl support, so
2556 ${foo()+x+bar()} is a valid prompt string now, and the function
2565 ${foo()+x+bar()} is a valid prompt string now, and the function
2557 calls will be made at runtime.
2566 calls will be made at runtime.
2558
2567
2559 2005-03-15 Fernando Perez <fperez@colorado.edu>
2568 2005-03-15 Fernando Perez <fperez@colorado.edu>
2560
2569
2561 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2570 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2562 avoid name clashes in pylab. %hist still works, it just forwards
2571 avoid name clashes in pylab. %hist still works, it just forwards
2563 the call to %history.
2572 the call to %history.
2564
2573
2565 2005-03-02 *** Released version 0.6.12
2574 2005-03-02 *** Released version 0.6.12
2566
2575
2567 2005-03-02 Fernando Perez <fperez@colorado.edu>
2576 2005-03-02 Fernando Perez <fperez@colorado.edu>
2568
2577
2569 * IPython/iplib.py (handle_magic): log magic calls properly as
2578 * IPython/iplib.py (handle_magic): log magic calls properly as
2570 ipmagic() function calls.
2579 ipmagic() function calls.
2571
2580
2572 * IPython/Magic.py (magic_time): Improved %time to support
2581 * IPython/Magic.py (magic_time): Improved %time to support
2573 statements and provide wall-clock as well as CPU time.
2582 statements and provide wall-clock as well as CPU time.
2574
2583
2575 2005-02-27 Fernando Perez <fperez@colorado.edu>
2584 2005-02-27 Fernando Perez <fperez@colorado.edu>
2576
2585
2577 * IPython/hooks.py: New hooks module, to expose user-modifiable
2586 * IPython/hooks.py: New hooks module, to expose user-modifiable
2578 IPython functionality in a clean manner. For now only the editor
2587 IPython functionality in a clean manner. For now only the editor
2579 hook is actually written, and other thigns which I intend to turn
2588 hook is actually written, and other thigns which I intend to turn
2580 into proper hooks aren't yet there. The display and prefilter
2589 into proper hooks aren't yet there. The display and prefilter
2581 stuff, for example, should be hooks. But at least now the
2590 stuff, for example, should be hooks. But at least now the
2582 framework is in place, and the rest can be moved here with more
2591 framework is in place, and the rest can be moved here with more
2583 time later. IPython had had a .hooks variable for a long time for
2592 time later. IPython had had a .hooks variable for a long time for
2584 this purpose, but I'd never actually used it for anything.
2593 this purpose, but I'd never actually used it for anything.
2585
2594
2586 2005-02-26 Fernando Perez <fperez@colorado.edu>
2595 2005-02-26 Fernando Perez <fperez@colorado.edu>
2587
2596
2588 * IPython/ipmaker.py (make_IPython): make the default ipython
2597 * IPython/ipmaker.py (make_IPython): make the default ipython
2589 directory be called _ipython under win32, to follow more the
2598 directory be called _ipython under win32, to follow more the
2590 naming peculiarities of that platform (where buggy software like
2599 naming peculiarities of that platform (where buggy software like
2591 Visual Sourcesafe breaks with .named directories). Reported by
2600 Visual Sourcesafe breaks with .named directories). Reported by
2592 Ville Vainio.
2601 Ville Vainio.
2593
2602
2594 2005-02-23 Fernando Perez <fperez@colorado.edu>
2603 2005-02-23 Fernando Perez <fperez@colorado.edu>
2595
2604
2596 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2605 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2597 auto_aliases for win32 which were causing problems. Users can
2606 auto_aliases for win32 which were causing problems. Users can
2598 define the ones they personally like.
2607 define the ones they personally like.
2599
2608
2600 2005-02-21 Fernando Perez <fperez@colorado.edu>
2609 2005-02-21 Fernando Perez <fperez@colorado.edu>
2601
2610
2602 * IPython/Magic.py (magic_time): new magic to time execution of
2611 * IPython/Magic.py (magic_time): new magic to time execution of
2603 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2612 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2604
2613
2605 2005-02-19 Fernando Perez <fperez@colorado.edu>
2614 2005-02-19 Fernando Perez <fperez@colorado.edu>
2606
2615
2607 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2616 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2608 into keys (for prompts, for example).
2617 into keys (for prompts, for example).
2609
2618
2610 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2619 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2611 prompts in case users want them. This introduces a small behavior
2620 prompts in case users want them. This introduces a small behavior
2612 change: ipython does not automatically add a space to all prompts
2621 change: ipython does not automatically add a space to all prompts
2613 anymore. To get the old prompts with a space, users should add it
2622 anymore. To get the old prompts with a space, users should add it
2614 manually to their ipythonrc file, so for example prompt_in1 should
2623 manually to their ipythonrc file, so for example prompt_in1 should
2615 now read 'In [\#]: ' instead of 'In [\#]:'.
2624 now read 'In [\#]: ' instead of 'In [\#]:'.
2616 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2625 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2617 file) to control left-padding of secondary prompts.
2626 file) to control left-padding of secondary prompts.
2618
2627
2619 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2628 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2620 the profiler can't be imported. Fix for Debian, which removed
2629 the profiler can't be imported. Fix for Debian, which removed
2621 profile.py because of License issues. I applied a slightly
2630 profile.py because of License issues. I applied a slightly
2622 modified version of the original Debian patch at
2631 modified version of the original Debian patch at
2623 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2632 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2624
2633
2625 2005-02-17 Fernando Perez <fperez@colorado.edu>
2634 2005-02-17 Fernando Perez <fperez@colorado.edu>
2626
2635
2627 * IPython/genutils.py (native_line_ends): Fix bug which would
2636 * IPython/genutils.py (native_line_ends): Fix bug which would
2628 cause improper line-ends under win32 b/c I was not opening files
2637 cause improper line-ends under win32 b/c I was not opening files
2629 in binary mode. Bug report and fix thanks to Ville.
2638 in binary mode. Bug report and fix thanks to Ville.
2630
2639
2631 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2640 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2632 trying to catch spurious foo[1] autocalls. My fix actually broke
2641 trying to catch spurious foo[1] autocalls. My fix actually broke
2633 ',/' autoquote/call with explicit escape (bad regexp).
2642 ',/' autoquote/call with explicit escape (bad regexp).
2634
2643
2635 2005-02-15 *** Released version 0.6.11
2644 2005-02-15 *** Released version 0.6.11
2636
2645
2637 2005-02-14 Fernando Perez <fperez@colorado.edu>
2646 2005-02-14 Fernando Perez <fperez@colorado.edu>
2638
2647
2639 * IPython/background_jobs.py: New background job management
2648 * IPython/background_jobs.py: New background job management
2640 subsystem. This is implemented via a new set of classes, and
2649 subsystem. This is implemented via a new set of classes, and
2641 IPython now provides a builtin 'jobs' object for background job
2650 IPython now provides a builtin 'jobs' object for background job
2642 execution. A convenience %bg magic serves as a lightweight
2651 execution. A convenience %bg magic serves as a lightweight
2643 frontend for starting the more common type of calls. This was
2652 frontend for starting the more common type of calls. This was
2644 inspired by discussions with B. Granger and the BackgroundCommand
2653 inspired by discussions with B. Granger and the BackgroundCommand
2645 class described in the book Python Scripting for Computational
2654 class described in the book Python Scripting for Computational
2646 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2655 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2647 (although ultimately no code from this text was used, as IPython's
2656 (although ultimately no code from this text was used, as IPython's
2648 system is a separate implementation).
2657 system is a separate implementation).
2649
2658
2650 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2659 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2651 to control the completion of single/double underscore names
2660 to control the completion of single/double underscore names
2652 separately. As documented in the example ipytonrc file, the
2661 separately. As documented in the example ipytonrc file, the
2653 readline_omit__names variable can now be set to 2, to omit even
2662 readline_omit__names variable can now be set to 2, to omit even
2654 single underscore names. Thanks to a patch by Brian Wong
2663 single underscore names. Thanks to a patch by Brian Wong
2655 <BrianWong-AT-AirgoNetworks.Com>.
2664 <BrianWong-AT-AirgoNetworks.Com>.
2656 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2665 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2657 be autocalled as foo([1]) if foo were callable. A problem for
2666 be autocalled as foo([1]) if foo were callable. A problem for
2658 things which are both callable and implement __getitem__.
2667 things which are both callable and implement __getitem__.
2659 (init_readline): Fix autoindentation for win32. Thanks to a patch
2668 (init_readline): Fix autoindentation for win32. Thanks to a patch
2660 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2669 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2661
2670
2662 2005-02-12 Fernando Perez <fperez@colorado.edu>
2671 2005-02-12 Fernando Perez <fperez@colorado.edu>
2663
2672
2664 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2673 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2665 which I had written long ago to sort out user error messages which
2674 which I had written long ago to sort out user error messages which
2666 may occur during startup. This seemed like a good idea initially,
2675 may occur during startup. This seemed like a good idea initially,
2667 but it has proven a disaster in retrospect. I don't want to
2676 but it has proven a disaster in retrospect. I don't want to
2668 change much code for now, so my fix is to set the internal 'debug'
2677 change much code for now, so my fix is to set the internal 'debug'
2669 flag to true everywhere, whose only job was precisely to control
2678 flag to true everywhere, whose only job was precisely to control
2670 this subsystem. This closes issue 28 (as well as avoiding all
2679 this subsystem. This closes issue 28 (as well as avoiding all
2671 sorts of strange hangups which occur from time to time).
2680 sorts of strange hangups which occur from time to time).
2672
2681
2673 2005-02-07 Fernando Perez <fperez@colorado.edu>
2682 2005-02-07 Fernando Perez <fperez@colorado.edu>
2674
2683
2675 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2684 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2676 previous call produced a syntax error.
2685 previous call produced a syntax error.
2677
2686
2678 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2687 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2679 classes without constructor.
2688 classes without constructor.
2680
2689
2681 2005-02-06 Fernando Perez <fperez@colorado.edu>
2690 2005-02-06 Fernando Perez <fperez@colorado.edu>
2682
2691
2683 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2692 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2684 completions with the results of each matcher, so we return results
2693 completions with the results of each matcher, so we return results
2685 to the user from all namespaces. This breaks with ipython
2694 to the user from all namespaces. This breaks with ipython
2686 tradition, but I think it's a nicer behavior. Now you get all
2695 tradition, but I think it's a nicer behavior. Now you get all
2687 possible completions listed, from all possible namespaces (python,
2696 possible completions listed, from all possible namespaces (python,
2688 filesystem, magics...) After a request by John Hunter
2697 filesystem, magics...) After a request by John Hunter
2689 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2698 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2690
2699
2691 2005-02-05 Fernando Perez <fperez@colorado.edu>
2700 2005-02-05 Fernando Perez <fperez@colorado.edu>
2692
2701
2693 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2702 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2694 the call had quote characters in it (the quotes were stripped).
2703 the call had quote characters in it (the quotes were stripped).
2695
2704
2696 2005-01-31 Fernando Perez <fperez@colorado.edu>
2705 2005-01-31 Fernando Perez <fperez@colorado.edu>
2697
2706
2698 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2707 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2699 Itpl.itpl() to make the code more robust against psyco
2708 Itpl.itpl() to make the code more robust against psyco
2700 optimizations.
2709 optimizations.
2701
2710
2702 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2711 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2703 of causing an exception. Quicker, cleaner.
2712 of causing an exception. Quicker, cleaner.
2704
2713
2705 2005-01-28 Fernando Perez <fperez@colorado.edu>
2714 2005-01-28 Fernando Perez <fperez@colorado.edu>
2706
2715
2707 * scripts/ipython_win_post_install.py (install): hardcode
2716 * scripts/ipython_win_post_install.py (install): hardcode
2708 sys.prefix+'python.exe' as the executable path. It turns out that
2717 sys.prefix+'python.exe' as the executable path. It turns out that
2709 during the post-installation run, sys.executable resolves to the
2718 during the post-installation run, sys.executable resolves to the
2710 name of the binary installer! I should report this as a distutils
2719 name of the binary installer! I should report this as a distutils
2711 bug, I think. I updated the .10 release with this tiny fix, to
2720 bug, I think. I updated the .10 release with this tiny fix, to
2712 avoid annoying the lists further.
2721 avoid annoying the lists further.
2713
2722
2714 2005-01-27 *** Released version 0.6.10
2723 2005-01-27 *** Released version 0.6.10
2715
2724
2716 2005-01-27 Fernando Perez <fperez@colorado.edu>
2725 2005-01-27 Fernando Perez <fperez@colorado.edu>
2717
2726
2718 * IPython/numutils.py (norm): Added 'inf' as optional name for
2727 * IPython/numutils.py (norm): Added 'inf' as optional name for
2719 L-infinity norm, included references to mathworld.com for vector
2728 L-infinity norm, included references to mathworld.com for vector
2720 norm definitions.
2729 norm definitions.
2721 (amin/amax): added amin/amax for array min/max. Similar to what
2730 (amin/amax): added amin/amax for array min/max. Similar to what
2722 pylab ships with after the recent reorganization of names.
2731 pylab ships with after the recent reorganization of names.
2723 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2732 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2724
2733
2725 * ipython.el: committed Alex's recent fixes and improvements.
2734 * ipython.el: committed Alex's recent fixes and improvements.
2726 Tested with python-mode from CVS, and it looks excellent. Since
2735 Tested with python-mode from CVS, and it looks excellent. Since
2727 python-mode hasn't released anything in a while, I'm temporarily
2736 python-mode hasn't released anything in a while, I'm temporarily
2728 putting a copy of today's CVS (v 4.70) of python-mode in:
2737 putting a copy of today's CVS (v 4.70) of python-mode in:
2729 http://ipython.scipy.org/tmp/python-mode.el
2738 http://ipython.scipy.org/tmp/python-mode.el
2730
2739
2731 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2740 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2732 sys.executable for the executable name, instead of assuming it's
2741 sys.executable for the executable name, instead of assuming it's
2733 called 'python.exe' (the post-installer would have produced broken
2742 called 'python.exe' (the post-installer would have produced broken
2734 setups on systems with a differently named python binary).
2743 setups on systems with a differently named python binary).
2735
2744
2736 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2745 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2737 references to os.linesep, to make the code more
2746 references to os.linesep, to make the code more
2738 platform-independent. This is also part of the win32 coloring
2747 platform-independent. This is also part of the win32 coloring
2739 fixes.
2748 fixes.
2740
2749
2741 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2750 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2742 lines, which actually cause coloring bugs because the length of
2751 lines, which actually cause coloring bugs because the length of
2743 the line is very difficult to correctly compute with embedded
2752 the line is very difficult to correctly compute with embedded
2744 escapes. This was the source of all the coloring problems under
2753 escapes. This was the source of all the coloring problems under
2745 Win32. I think that _finally_, Win32 users have a properly
2754 Win32. I think that _finally_, Win32 users have a properly
2746 working ipython in all respects. This would never have happened
2755 working ipython in all respects. This would never have happened
2747 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2756 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2748
2757
2749 2005-01-26 *** Released version 0.6.9
2758 2005-01-26 *** Released version 0.6.9
2750
2759
2751 2005-01-25 Fernando Perez <fperez@colorado.edu>
2760 2005-01-25 Fernando Perez <fperez@colorado.edu>
2752
2761
2753 * setup.py: finally, we have a true Windows installer, thanks to
2762 * setup.py: finally, we have a true Windows installer, thanks to
2754 the excellent work of Viktor Ransmayr
2763 the excellent work of Viktor Ransmayr
2755 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2764 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2756 Windows users. The setup routine is quite a bit cleaner thanks to
2765 Windows users. The setup routine is quite a bit cleaner thanks to
2757 this, and the post-install script uses the proper functions to
2766 this, and the post-install script uses the proper functions to
2758 allow a clean de-installation using the standard Windows Control
2767 allow a clean de-installation using the standard Windows Control
2759 Panel.
2768 Panel.
2760
2769
2761 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2770 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2762 environment variable under all OSes (including win32) if
2771 environment variable under all OSes (including win32) if
2763 available. This will give consistency to win32 users who have set
2772 available. This will give consistency to win32 users who have set
2764 this variable for any reason. If os.environ['HOME'] fails, the
2773 this variable for any reason. If os.environ['HOME'] fails, the
2765 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2774 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2766
2775
2767 2005-01-24 Fernando Perez <fperez@colorado.edu>
2776 2005-01-24 Fernando Perez <fperez@colorado.edu>
2768
2777
2769 * IPython/numutils.py (empty_like): add empty_like(), similar to
2778 * IPython/numutils.py (empty_like): add empty_like(), similar to
2770 zeros_like() but taking advantage of the new empty() Numeric routine.
2779 zeros_like() but taking advantage of the new empty() Numeric routine.
2771
2780
2772 2005-01-23 *** Released version 0.6.8
2781 2005-01-23 *** Released version 0.6.8
2773
2782
2774 2005-01-22 Fernando Perez <fperez@colorado.edu>
2783 2005-01-22 Fernando Perez <fperez@colorado.edu>
2775
2784
2776 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2785 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2777 automatic show() calls. After discussing things with JDH, it
2786 automatic show() calls. After discussing things with JDH, it
2778 turns out there are too many corner cases where this can go wrong.
2787 turns out there are too many corner cases where this can go wrong.
2779 It's best not to try to be 'too smart', and simply have ipython
2788 It's best not to try to be 'too smart', and simply have ipython
2780 reproduce as much as possible the default behavior of a normal
2789 reproduce as much as possible the default behavior of a normal
2781 python shell.
2790 python shell.
2782
2791
2783 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2792 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2784 line-splitting regexp and _prefilter() to avoid calling getattr()
2793 line-splitting regexp and _prefilter() to avoid calling getattr()
2785 on assignments. This closes
2794 on assignments. This closes
2786 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2795 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2787 readline uses getattr(), so a simple <TAB> keypress is still
2796 readline uses getattr(), so a simple <TAB> keypress is still
2788 enough to trigger getattr() calls on an object.
2797 enough to trigger getattr() calls on an object.
2789
2798
2790 2005-01-21 Fernando Perez <fperez@colorado.edu>
2799 2005-01-21 Fernando Perez <fperez@colorado.edu>
2791
2800
2792 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2801 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2793 docstring under pylab so it doesn't mask the original.
2802 docstring under pylab so it doesn't mask the original.
2794
2803
2795 2005-01-21 *** Released version 0.6.7
2804 2005-01-21 *** Released version 0.6.7
2796
2805
2797 2005-01-21 Fernando Perez <fperez@colorado.edu>
2806 2005-01-21 Fernando Perez <fperez@colorado.edu>
2798
2807
2799 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2808 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2800 signal handling for win32 users in multithreaded mode.
2809 signal handling for win32 users in multithreaded mode.
2801
2810
2802 2005-01-17 Fernando Perez <fperez@colorado.edu>
2811 2005-01-17 Fernando Perez <fperez@colorado.edu>
2803
2812
2804 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2813 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2805 instances with no __init__. After a crash report by Norbert Nemec
2814 instances with no __init__. After a crash report by Norbert Nemec
2806 <Norbert-AT-nemec-online.de>.
2815 <Norbert-AT-nemec-online.de>.
2807
2816
2808 2005-01-14 Fernando Perez <fperez@colorado.edu>
2817 2005-01-14 Fernando Perez <fperez@colorado.edu>
2809
2818
2810 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2819 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2811 names for verbose exceptions, when multiple dotted names and the
2820 names for verbose exceptions, when multiple dotted names and the
2812 'parent' object were present on the same line.
2821 'parent' object were present on the same line.
2813
2822
2814 2005-01-11 Fernando Perez <fperez@colorado.edu>
2823 2005-01-11 Fernando Perez <fperez@colorado.edu>
2815
2824
2816 * IPython/genutils.py (flag_calls): new utility to trap and flag
2825 * IPython/genutils.py (flag_calls): new utility to trap and flag
2817 calls in functions. I need it to clean up matplotlib support.
2826 calls in functions. I need it to clean up matplotlib support.
2818 Also removed some deprecated code in genutils.
2827 Also removed some deprecated code in genutils.
2819
2828
2820 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2829 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2821 that matplotlib scripts called with %run, which don't call show()
2830 that matplotlib scripts called with %run, which don't call show()
2822 themselves, still have their plotting windows open.
2831 themselves, still have their plotting windows open.
2823
2832
2824 2005-01-05 Fernando Perez <fperez@colorado.edu>
2833 2005-01-05 Fernando Perez <fperez@colorado.edu>
2825
2834
2826 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2835 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2827 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2836 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2828
2837
2829 2004-12-19 Fernando Perez <fperez@colorado.edu>
2838 2004-12-19 Fernando Perez <fperez@colorado.edu>
2830
2839
2831 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2840 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2832 parent_runcode, which was an eyesore. The same result can be
2841 parent_runcode, which was an eyesore. The same result can be
2833 obtained with Python's regular superclass mechanisms.
2842 obtained with Python's regular superclass mechanisms.
2834
2843
2835 2004-12-17 Fernando Perez <fperez@colorado.edu>
2844 2004-12-17 Fernando Perez <fperez@colorado.edu>
2836
2845
2837 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2846 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2838 reported by Prabhu.
2847 reported by Prabhu.
2839 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2848 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2840 sys.stderr) instead of explicitly calling sys.stderr. This helps
2849 sys.stderr) instead of explicitly calling sys.stderr. This helps
2841 maintain our I/O abstractions clean, for future GUI embeddings.
2850 maintain our I/O abstractions clean, for future GUI embeddings.
2842
2851
2843 * IPython/genutils.py (info): added new utility for sys.stderr
2852 * IPython/genutils.py (info): added new utility for sys.stderr
2844 unified info message handling (thin wrapper around warn()).
2853 unified info message handling (thin wrapper around warn()).
2845
2854
2846 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2855 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2847 composite (dotted) names on verbose exceptions.
2856 composite (dotted) names on verbose exceptions.
2848 (VerboseTB.nullrepr): harden against another kind of errors which
2857 (VerboseTB.nullrepr): harden against another kind of errors which
2849 Python's inspect module can trigger, and which were crashing
2858 Python's inspect module can trigger, and which were crashing
2850 IPython. Thanks to a report by Marco Lombardi
2859 IPython. Thanks to a report by Marco Lombardi
2851 <mlombard-AT-ma010192.hq.eso.org>.
2860 <mlombard-AT-ma010192.hq.eso.org>.
2852
2861
2853 2004-12-13 *** Released version 0.6.6
2862 2004-12-13 *** Released version 0.6.6
2854
2863
2855 2004-12-12 Fernando Perez <fperez@colorado.edu>
2864 2004-12-12 Fernando Perez <fperez@colorado.edu>
2856
2865
2857 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2866 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2858 generated by pygtk upon initialization if it was built without
2867 generated by pygtk upon initialization if it was built without
2859 threads (for matplotlib users). After a crash reported by
2868 threads (for matplotlib users). After a crash reported by
2860 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2869 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2861
2870
2862 * IPython/ipmaker.py (make_IPython): fix small bug in the
2871 * IPython/ipmaker.py (make_IPython): fix small bug in the
2863 import_some parameter for multiple imports.
2872 import_some parameter for multiple imports.
2864
2873
2865 * IPython/iplib.py (ipmagic): simplified the interface of
2874 * IPython/iplib.py (ipmagic): simplified the interface of
2866 ipmagic() to take a single string argument, just as it would be
2875 ipmagic() to take a single string argument, just as it would be
2867 typed at the IPython cmd line.
2876 typed at the IPython cmd line.
2868 (ipalias): Added new ipalias() with an interface identical to
2877 (ipalias): Added new ipalias() with an interface identical to
2869 ipmagic(). This completes exposing a pure python interface to the
2878 ipmagic(). This completes exposing a pure python interface to the
2870 alias and magic system, which can be used in loops or more complex
2879 alias and magic system, which can be used in loops or more complex
2871 code where IPython's automatic line mangling is not active.
2880 code where IPython's automatic line mangling is not active.
2872
2881
2873 * IPython/genutils.py (timing): changed interface of timing to
2882 * IPython/genutils.py (timing): changed interface of timing to
2874 simply run code once, which is the most common case. timings()
2883 simply run code once, which is the most common case. timings()
2875 remains unchanged, for the cases where you want multiple runs.
2884 remains unchanged, for the cases where you want multiple runs.
2876
2885
2877 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2886 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2878 bug where Python2.2 crashes with exec'ing code which does not end
2887 bug where Python2.2 crashes with exec'ing code which does not end
2879 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2888 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2880 before.
2889 before.
2881
2890
2882 2004-12-10 Fernando Perez <fperez@colorado.edu>
2891 2004-12-10 Fernando Perez <fperez@colorado.edu>
2883
2892
2884 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2893 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2885 -t to -T, to accomodate the new -t flag in %run (the %run and
2894 -t to -T, to accomodate the new -t flag in %run (the %run and
2886 %prun options are kind of intermixed, and it's not easy to change
2895 %prun options are kind of intermixed, and it's not easy to change
2887 this with the limitations of python's getopt).
2896 this with the limitations of python's getopt).
2888
2897
2889 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2898 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2890 the execution of scripts. It's not as fine-tuned as timeit.py,
2899 the execution of scripts. It's not as fine-tuned as timeit.py,
2891 but it works from inside ipython (and under 2.2, which lacks
2900 but it works from inside ipython (and under 2.2, which lacks
2892 timeit.py). Optionally a number of runs > 1 can be given for
2901 timeit.py). Optionally a number of runs > 1 can be given for
2893 timing very short-running code.
2902 timing very short-running code.
2894
2903
2895 * IPython/genutils.py (uniq_stable): new routine which returns a
2904 * IPython/genutils.py (uniq_stable): new routine which returns a
2896 list of unique elements in any iterable, but in stable order of
2905 list of unique elements in any iterable, but in stable order of
2897 appearance. I needed this for the ultraTB fixes, and it's a handy
2906 appearance. I needed this for the ultraTB fixes, and it's a handy
2898 utility.
2907 utility.
2899
2908
2900 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2909 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2901 dotted names in Verbose exceptions. This had been broken since
2910 dotted names in Verbose exceptions. This had been broken since
2902 the very start, now x.y will properly be printed in a Verbose
2911 the very start, now x.y will properly be printed in a Verbose
2903 traceback, instead of x being shown and y appearing always as an
2912 traceback, instead of x being shown and y appearing always as an
2904 'undefined global'. Getting this to work was a bit tricky,
2913 'undefined global'. Getting this to work was a bit tricky,
2905 because by default python tokenizers are stateless. Saved by
2914 because by default python tokenizers are stateless. Saved by
2906 python's ability to easily add a bit of state to an arbitrary
2915 python's ability to easily add a bit of state to an arbitrary
2907 function (without needing to build a full-blown callable object).
2916 function (without needing to build a full-blown callable object).
2908
2917
2909 Also big cleanup of this code, which had horrendous runtime
2918 Also big cleanup of this code, which had horrendous runtime
2910 lookups of zillions of attributes for colorization. Moved all
2919 lookups of zillions of attributes for colorization. Moved all
2911 this code into a few templates, which make it cleaner and quicker.
2920 this code into a few templates, which make it cleaner and quicker.
2912
2921
2913 Printout quality was also improved for Verbose exceptions: one
2922 Printout quality was also improved for Verbose exceptions: one
2914 variable per line, and memory addresses are printed (this can be
2923 variable per line, and memory addresses are printed (this can be
2915 quite handy in nasty debugging situations, which is what Verbose
2924 quite handy in nasty debugging situations, which is what Verbose
2916 is for).
2925 is for).
2917
2926
2918 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2927 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2919 the command line as scripts to be loaded by embedded instances.
2928 the command line as scripts to be loaded by embedded instances.
2920 Doing so has the potential for an infinite recursion if there are
2929 Doing so has the potential for an infinite recursion if there are
2921 exceptions thrown in the process. This fixes a strange crash
2930 exceptions thrown in the process. This fixes a strange crash
2922 reported by Philippe MULLER <muller-AT-irit.fr>.
2931 reported by Philippe MULLER <muller-AT-irit.fr>.
2923
2932
2924 2004-12-09 Fernando Perez <fperez@colorado.edu>
2933 2004-12-09 Fernando Perez <fperez@colorado.edu>
2925
2934
2926 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2935 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2927 to reflect new names in matplotlib, which now expose the
2936 to reflect new names in matplotlib, which now expose the
2928 matlab-compatible interface via a pylab module instead of the
2937 matlab-compatible interface via a pylab module instead of the
2929 'matlab' name. The new code is backwards compatible, so users of
2938 'matlab' name. The new code is backwards compatible, so users of
2930 all matplotlib versions are OK. Patch by J. Hunter.
2939 all matplotlib versions are OK. Patch by J. Hunter.
2931
2940
2932 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2941 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2933 of __init__ docstrings for instances (class docstrings are already
2942 of __init__ docstrings for instances (class docstrings are already
2934 automatically printed). Instances with customized docstrings
2943 automatically printed). Instances with customized docstrings
2935 (indep. of the class) are also recognized and all 3 separate
2944 (indep. of the class) are also recognized and all 3 separate
2936 docstrings are printed (instance, class, constructor). After some
2945 docstrings are printed (instance, class, constructor). After some
2937 comments/suggestions by J. Hunter.
2946 comments/suggestions by J. Hunter.
2938
2947
2939 2004-12-05 Fernando Perez <fperez@colorado.edu>
2948 2004-12-05 Fernando Perez <fperez@colorado.edu>
2940
2949
2941 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2950 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2942 warnings when tab-completion fails and triggers an exception.
2951 warnings when tab-completion fails and triggers an exception.
2943
2952
2944 2004-12-03 Fernando Perez <fperez@colorado.edu>
2953 2004-12-03 Fernando Perez <fperez@colorado.edu>
2945
2954
2946 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2955 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2947 be triggered when using 'run -p'. An incorrect option flag was
2956 be triggered when using 'run -p'. An incorrect option flag was
2948 being set ('d' instead of 'D').
2957 being set ('d' instead of 'D').
2949 (manpage): fix missing escaped \- sign.
2958 (manpage): fix missing escaped \- sign.
2950
2959
2951 2004-11-30 *** Released version 0.6.5
2960 2004-11-30 *** Released version 0.6.5
2952
2961
2953 2004-11-30 Fernando Perez <fperez@colorado.edu>
2962 2004-11-30 Fernando Perez <fperez@colorado.edu>
2954
2963
2955 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2964 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2956 setting with -d option.
2965 setting with -d option.
2957
2966
2958 * setup.py (docfiles): Fix problem where the doc glob I was using
2967 * setup.py (docfiles): Fix problem where the doc glob I was using
2959 was COMPLETELY BROKEN. It was giving the right files by pure
2968 was COMPLETELY BROKEN. It was giving the right files by pure
2960 accident, but failed once I tried to include ipython.el. Note:
2969 accident, but failed once I tried to include ipython.el. Note:
2961 glob() does NOT allow you to do exclusion on multiple endings!
2970 glob() does NOT allow you to do exclusion on multiple endings!
2962
2971
2963 2004-11-29 Fernando Perez <fperez@colorado.edu>
2972 2004-11-29 Fernando Perez <fperez@colorado.edu>
2964
2973
2965 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2974 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2966 the manpage as the source. Better formatting & consistency.
2975 the manpage as the source. Better formatting & consistency.
2967
2976
2968 * IPython/Magic.py (magic_run): Added new -d option, to run
2977 * IPython/Magic.py (magic_run): Added new -d option, to run
2969 scripts under the control of the python pdb debugger. Note that
2978 scripts under the control of the python pdb debugger. Note that
2970 this required changing the %prun option -d to -D, to avoid a clash
2979 this required changing the %prun option -d to -D, to avoid a clash
2971 (since %run must pass options to %prun, and getopt is too dumb to
2980 (since %run must pass options to %prun, and getopt is too dumb to
2972 handle options with string values with embedded spaces). Thanks
2981 handle options with string values with embedded spaces). Thanks
2973 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2982 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2974 (magic_who_ls): added type matching to %who and %whos, so that one
2983 (magic_who_ls): added type matching to %who and %whos, so that one
2975 can filter their output to only include variables of certain
2984 can filter their output to only include variables of certain
2976 types. Another suggestion by Matthew.
2985 types. Another suggestion by Matthew.
2977 (magic_whos): Added memory summaries in kb and Mb for arrays.
2986 (magic_whos): Added memory summaries in kb and Mb for arrays.
2978 (magic_who): Improve formatting (break lines every 9 vars).
2987 (magic_who): Improve formatting (break lines every 9 vars).
2979
2988
2980 2004-11-28 Fernando Perez <fperez@colorado.edu>
2989 2004-11-28 Fernando Perez <fperez@colorado.edu>
2981
2990
2982 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2991 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2983 cache when empty lines were present.
2992 cache when empty lines were present.
2984
2993
2985 2004-11-24 Fernando Perez <fperez@colorado.edu>
2994 2004-11-24 Fernando Perez <fperez@colorado.edu>
2986
2995
2987 * IPython/usage.py (__doc__): document the re-activated threading
2996 * IPython/usage.py (__doc__): document the re-activated threading
2988 options for WX and GTK.
2997 options for WX and GTK.
2989
2998
2990 2004-11-23 Fernando Perez <fperez@colorado.edu>
2999 2004-11-23 Fernando Perez <fperez@colorado.edu>
2991
3000
2992 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3001 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2993 the -wthread and -gthread options, along with a new -tk one to try
3002 the -wthread and -gthread options, along with a new -tk one to try
2994 and coordinate Tk threading with wx/gtk. The tk support is very
3003 and coordinate Tk threading with wx/gtk. The tk support is very
2995 platform dependent, since it seems to require Tcl and Tk to be
3004 platform dependent, since it seems to require Tcl and Tk to be
2996 built with threads (Fedora1/2 appears NOT to have it, but in
3005 built with threads (Fedora1/2 appears NOT to have it, but in
2997 Prabhu's Debian boxes it works OK). But even with some Tk
3006 Prabhu's Debian boxes it works OK). But even with some Tk
2998 limitations, this is a great improvement.
3007 limitations, this is a great improvement.
2999
3008
3000 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3009 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3001 info in user prompts. Patch by Prabhu.
3010 info in user prompts. Patch by Prabhu.
3002
3011
3003 2004-11-18 Fernando Perez <fperez@colorado.edu>
3012 2004-11-18 Fernando Perez <fperez@colorado.edu>
3004
3013
3005 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3014 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3006 EOFErrors and bail, to avoid infinite loops if a non-terminating
3015 EOFErrors and bail, to avoid infinite loops if a non-terminating
3007 file is fed into ipython. Patch submitted in issue 19 by user,
3016 file is fed into ipython. Patch submitted in issue 19 by user,
3008 many thanks.
3017 many thanks.
3009
3018
3010 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3019 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3011 autoquote/parens in continuation prompts, which can cause lots of
3020 autoquote/parens in continuation prompts, which can cause lots of
3012 problems. Closes roundup issue 20.
3021 problems. Closes roundup issue 20.
3013
3022
3014 2004-11-17 Fernando Perez <fperez@colorado.edu>
3023 2004-11-17 Fernando Perez <fperez@colorado.edu>
3015
3024
3016 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3025 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3017 reported as debian bug #280505. I'm not sure my local changelog
3026 reported as debian bug #280505. I'm not sure my local changelog
3018 entry has the proper debian format (Jack?).
3027 entry has the proper debian format (Jack?).
3019
3028
3020 2004-11-08 *** Released version 0.6.4
3029 2004-11-08 *** Released version 0.6.4
3021
3030
3022 2004-11-08 Fernando Perez <fperez@colorado.edu>
3031 2004-11-08 Fernando Perez <fperez@colorado.edu>
3023
3032
3024 * IPython/iplib.py (init_readline): Fix exit message for Windows
3033 * IPython/iplib.py (init_readline): Fix exit message for Windows
3025 when readline is active. Thanks to a report by Eric Jones
3034 when readline is active. Thanks to a report by Eric Jones
3026 <eric-AT-enthought.com>.
3035 <eric-AT-enthought.com>.
3027
3036
3028 2004-11-07 Fernando Perez <fperez@colorado.edu>
3037 2004-11-07 Fernando Perez <fperez@colorado.edu>
3029
3038
3030 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3039 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3031 sometimes seen by win2k/cygwin users.
3040 sometimes seen by win2k/cygwin users.
3032
3041
3033 2004-11-06 Fernando Perez <fperez@colorado.edu>
3042 2004-11-06 Fernando Perez <fperez@colorado.edu>
3034
3043
3035 * IPython/iplib.py (interact): Change the handling of %Exit from
3044 * IPython/iplib.py (interact): Change the handling of %Exit from
3036 trying to propagate a SystemExit to an internal ipython flag.
3045 trying to propagate a SystemExit to an internal ipython flag.
3037 This is less elegant than using Python's exception mechanism, but
3046 This is less elegant than using Python's exception mechanism, but
3038 I can't get that to work reliably with threads, so under -pylab
3047 I can't get that to work reliably with threads, so under -pylab
3039 %Exit was hanging IPython. Cross-thread exception handling is
3048 %Exit was hanging IPython. Cross-thread exception handling is
3040 really a bitch. Thaks to a bug report by Stephen Walton
3049 really a bitch. Thaks to a bug report by Stephen Walton
3041 <stephen.walton-AT-csun.edu>.
3050 <stephen.walton-AT-csun.edu>.
3042
3051
3043 2004-11-04 Fernando Perez <fperez@colorado.edu>
3052 2004-11-04 Fernando Perez <fperez@colorado.edu>
3044
3053
3045 * IPython/iplib.py (raw_input_original): store a pointer to the
3054 * IPython/iplib.py (raw_input_original): store a pointer to the
3046 true raw_input to harden against code which can modify it
3055 true raw_input to harden against code which can modify it
3047 (wx.py.PyShell does this and would otherwise crash ipython).
3056 (wx.py.PyShell does this and would otherwise crash ipython).
3048 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3057 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3049
3058
3050 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3059 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3051 Ctrl-C problem, which does not mess up the input line.
3060 Ctrl-C problem, which does not mess up the input line.
3052
3061
3053 2004-11-03 Fernando Perez <fperez@colorado.edu>
3062 2004-11-03 Fernando Perez <fperez@colorado.edu>
3054
3063
3055 * IPython/Release.py: Changed licensing to BSD, in all files.
3064 * IPython/Release.py: Changed licensing to BSD, in all files.
3056 (name): lowercase name for tarball/RPM release.
3065 (name): lowercase name for tarball/RPM release.
3057
3066
3058 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3067 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3059 use throughout ipython.
3068 use throughout ipython.
3060
3069
3061 * IPython/Magic.py (Magic._ofind): Switch to using the new
3070 * IPython/Magic.py (Magic._ofind): Switch to using the new
3062 OInspect.getdoc() function.
3071 OInspect.getdoc() function.
3063
3072
3064 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3073 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3065 of the line currently being canceled via Ctrl-C. It's extremely
3074 of the line currently being canceled via Ctrl-C. It's extremely
3066 ugly, but I don't know how to do it better (the problem is one of
3075 ugly, but I don't know how to do it better (the problem is one of
3067 handling cross-thread exceptions).
3076 handling cross-thread exceptions).
3068
3077
3069 2004-10-28 Fernando Perez <fperez@colorado.edu>
3078 2004-10-28 Fernando Perez <fperez@colorado.edu>
3070
3079
3071 * IPython/Shell.py (signal_handler): add signal handlers to trap
3080 * IPython/Shell.py (signal_handler): add signal handlers to trap
3072 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3081 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3073 report by Francesc Alted.
3082 report by Francesc Alted.
3074
3083
3075 2004-10-21 Fernando Perez <fperez@colorado.edu>
3084 2004-10-21 Fernando Perez <fperez@colorado.edu>
3076
3085
3077 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3086 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3078 to % for pysh syntax extensions.
3087 to % for pysh syntax extensions.
3079
3088
3080 2004-10-09 Fernando Perez <fperez@colorado.edu>
3089 2004-10-09 Fernando Perez <fperez@colorado.edu>
3081
3090
3082 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3091 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3083 arrays to print a more useful summary, without calling str(arr).
3092 arrays to print a more useful summary, without calling str(arr).
3084 This avoids the problem of extremely lengthy computations which
3093 This avoids the problem of extremely lengthy computations which
3085 occur if arr is large, and appear to the user as a system lockup
3094 occur if arr is large, and appear to the user as a system lockup
3086 with 100% cpu activity. After a suggestion by Kristian Sandberg
3095 with 100% cpu activity. After a suggestion by Kristian Sandberg
3087 <Kristian.Sandberg@colorado.edu>.
3096 <Kristian.Sandberg@colorado.edu>.
3088 (Magic.__init__): fix bug in global magic escapes not being
3097 (Magic.__init__): fix bug in global magic escapes not being
3089 correctly set.
3098 correctly set.
3090
3099
3091 2004-10-08 Fernando Perez <fperez@colorado.edu>
3100 2004-10-08 Fernando Perez <fperez@colorado.edu>
3092
3101
3093 * IPython/Magic.py (__license__): change to absolute imports of
3102 * IPython/Magic.py (__license__): change to absolute imports of
3094 ipython's own internal packages, to start adapting to the absolute
3103 ipython's own internal packages, to start adapting to the absolute
3095 import requirement of PEP-328.
3104 import requirement of PEP-328.
3096
3105
3097 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3106 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3098 files, and standardize author/license marks through the Release
3107 files, and standardize author/license marks through the Release
3099 module instead of having per/file stuff (except for files with
3108 module instead of having per/file stuff (except for files with
3100 particular licenses, like the MIT/PSF-licensed codes).
3109 particular licenses, like the MIT/PSF-licensed codes).
3101
3110
3102 * IPython/Debugger.py: remove dead code for python 2.1
3111 * IPython/Debugger.py: remove dead code for python 2.1
3103
3112
3104 2004-10-04 Fernando Perez <fperez@colorado.edu>
3113 2004-10-04 Fernando Perez <fperez@colorado.edu>
3105
3114
3106 * IPython/iplib.py (ipmagic): New function for accessing magics
3115 * IPython/iplib.py (ipmagic): New function for accessing magics
3107 via a normal python function call.
3116 via a normal python function call.
3108
3117
3109 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3118 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3110 from '@' to '%', to accomodate the new @decorator syntax of python
3119 from '@' to '%', to accomodate the new @decorator syntax of python
3111 2.4.
3120 2.4.
3112
3121
3113 2004-09-29 Fernando Perez <fperez@colorado.edu>
3122 2004-09-29 Fernando Perez <fperez@colorado.edu>
3114
3123
3115 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3124 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3116 matplotlib.use to prevent running scripts which try to switch
3125 matplotlib.use to prevent running scripts which try to switch
3117 interactive backends from within ipython. This will just crash
3126 interactive backends from within ipython. This will just crash
3118 the python interpreter, so we can't allow it (but a detailed error
3127 the python interpreter, so we can't allow it (but a detailed error
3119 is given to the user).
3128 is given to the user).
3120
3129
3121 2004-09-28 Fernando Perez <fperez@colorado.edu>
3130 2004-09-28 Fernando Perez <fperez@colorado.edu>
3122
3131
3123 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3132 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3124 matplotlib-related fixes so that using @run with non-matplotlib
3133 matplotlib-related fixes so that using @run with non-matplotlib
3125 scripts doesn't pop up spurious plot windows. This requires
3134 scripts doesn't pop up spurious plot windows. This requires
3126 matplotlib >= 0.63, where I had to make some changes as well.
3135 matplotlib >= 0.63, where I had to make some changes as well.
3127
3136
3128 * IPython/ipmaker.py (make_IPython): update version requirement to
3137 * IPython/ipmaker.py (make_IPython): update version requirement to
3129 python 2.2.
3138 python 2.2.
3130
3139
3131 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3140 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3132 banner arg for embedded customization.
3141 banner arg for embedded customization.
3133
3142
3134 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3143 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3135 explicit uses of __IP as the IPython's instance name. Now things
3144 explicit uses of __IP as the IPython's instance name. Now things
3136 are properly handled via the shell.name value. The actual code
3145 are properly handled via the shell.name value. The actual code
3137 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3146 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3138 is much better than before. I'll clean things completely when the
3147 is much better than before. I'll clean things completely when the
3139 magic stuff gets a real overhaul.
3148 magic stuff gets a real overhaul.
3140
3149
3141 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3150 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3142 minor changes to debian dir.
3151 minor changes to debian dir.
3143
3152
3144 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3153 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3145 pointer to the shell itself in the interactive namespace even when
3154 pointer to the shell itself in the interactive namespace even when
3146 a user-supplied dict is provided. This is needed for embedding
3155 a user-supplied dict is provided. This is needed for embedding
3147 purposes (found by tests with Michel Sanner).
3156 purposes (found by tests with Michel Sanner).
3148
3157
3149 2004-09-27 Fernando Perez <fperez@colorado.edu>
3158 2004-09-27 Fernando Perez <fperez@colorado.edu>
3150
3159
3151 * IPython/UserConfig/ipythonrc: remove []{} from
3160 * IPython/UserConfig/ipythonrc: remove []{} from
3152 readline_remove_delims, so that things like [modname.<TAB> do
3161 readline_remove_delims, so that things like [modname.<TAB> do
3153 proper completion. This disables [].TAB, but that's a less common
3162 proper completion. This disables [].TAB, but that's a less common
3154 case than module names in list comprehensions, for example.
3163 case than module names in list comprehensions, for example.
3155 Thanks to a report by Andrea Riciputi.
3164 Thanks to a report by Andrea Riciputi.
3156
3165
3157 2004-09-09 Fernando Perez <fperez@colorado.edu>
3166 2004-09-09 Fernando Perez <fperez@colorado.edu>
3158
3167
3159 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3168 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3160 blocking problems in win32 and osx. Fix by John.
3169 blocking problems in win32 and osx. Fix by John.
3161
3170
3162 2004-09-08 Fernando Perez <fperez@colorado.edu>
3171 2004-09-08 Fernando Perez <fperez@colorado.edu>
3163
3172
3164 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3173 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3165 for Win32 and OSX. Fix by John Hunter.
3174 for Win32 and OSX. Fix by John Hunter.
3166
3175
3167 2004-08-30 *** Released version 0.6.3
3176 2004-08-30 *** Released version 0.6.3
3168
3177
3169 2004-08-30 Fernando Perez <fperez@colorado.edu>
3178 2004-08-30 Fernando Perez <fperez@colorado.edu>
3170
3179
3171 * setup.py (isfile): Add manpages to list of dependent files to be
3180 * setup.py (isfile): Add manpages to list of dependent files to be
3172 updated.
3181 updated.
3173
3182
3174 2004-08-27 Fernando Perez <fperez@colorado.edu>
3183 2004-08-27 Fernando Perez <fperez@colorado.edu>
3175
3184
3176 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3185 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3177 for now. They don't really work with standalone WX/GTK code
3186 for now. They don't really work with standalone WX/GTK code
3178 (though matplotlib IS working fine with both of those backends).
3187 (though matplotlib IS working fine with both of those backends).
3179 This will neeed much more testing. I disabled most things with
3188 This will neeed much more testing. I disabled most things with
3180 comments, so turning it back on later should be pretty easy.
3189 comments, so turning it back on later should be pretty easy.
3181
3190
3182 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3191 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3183 autocalling of expressions like r'foo', by modifying the line
3192 autocalling of expressions like r'foo', by modifying the line
3184 split regexp. Closes
3193 split regexp. Closes
3185 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3194 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3186 Riley <ipythonbugs-AT-sabi.net>.
3195 Riley <ipythonbugs-AT-sabi.net>.
3187 (InteractiveShell.mainloop): honor --nobanner with banner
3196 (InteractiveShell.mainloop): honor --nobanner with banner
3188 extensions.
3197 extensions.
3189
3198
3190 * IPython/Shell.py: Significant refactoring of all classes, so
3199 * IPython/Shell.py: Significant refactoring of all classes, so
3191 that we can really support ALL matplotlib backends and threading
3200 that we can really support ALL matplotlib backends and threading
3192 models (John spotted a bug with Tk which required this). Now we
3201 models (John spotted a bug with Tk which required this). Now we
3193 should support single-threaded, WX-threads and GTK-threads, both
3202 should support single-threaded, WX-threads and GTK-threads, both
3194 for generic code and for matplotlib.
3203 for generic code and for matplotlib.
3195
3204
3196 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3205 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3197 -pylab, to simplify things for users. Will also remove the pylab
3206 -pylab, to simplify things for users. Will also remove the pylab
3198 profile, since now all of matplotlib configuration is directly
3207 profile, since now all of matplotlib configuration is directly
3199 handled here. This also reduces startup time.
3208 handled here. This also reduces startup time.
3200
3209
3201 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3210 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3202 shell wasn't being correctly called. Also in IPShellWX.
3211 shell wasn't being correctly called. Also in IPShellWX.
3203
3212
3204 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3213 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3205 fine-tune banner.
3214 fine-tune banner.
3206
3215
3207 * IPython/numutils.py (spike): Deprecate these spike functions,
3216 * IPython/numutils.py (spike): Deprecate these spike functions,
3208 delete (long deprecated) gnuplot_exec handler.
3217 delete (long deprecated) gnuplot_exec handler.
3209
3218
3210 2004-08-26 Fernando Perez <fperez@colorado.edu>
3219 2004-08-26 Fernando Perez <fperez@colorado.edu>
3211
3220
3212 * ipython.1: Update for threading options, plus some others which
3221 * ipython.1: Update for threading options, plus some others which
3213 were missing.
3222 were missing.
3214
3223
3215 * IPython/ipmaker.py (__call__): Added -wthread option for
3224 * IPython/ipmaker.py (__call__): Added -wthread option for
3216 wxpython thread handling. Make sure threading options are only
3225 wxpython thread handling. Make sure threading options are only
3217 valid at the command line.
3226 valid at the command line.
3218
3227
3219 * scripts/ipython: moved shell selection into a factory function
3228 * scripts/ipython: moved shell selection into a factory function
3220 in Shell.py, to keep the starter script to a minimum.
3229 in Shell.py, to keep the starter script to a minimum.
3221
3230
3222 2004-08-25 Fernando Perez <fperez@colorado.edu>
3231 2004-08-25 Fernando Perez <fperez@colorado.edu>
3223
3232
3224 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3233 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3225 John. Along with some recent changes he made to matplotlib, the
3234 John. Along with some recent changes he made to matplotlib, the
3226 next versions of both systems should work very well together.
3235 next versions of both systems should work very well together.
3227
3236
3228 2004-08-24 Fernando Perez <fperez@colorado.edu>
3237 2004-08-24 Fernando Perez <fperez@colorado.edu>
3229
3238
3230 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3239 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3231 tried to switch the profiling to using hotshot, but I'm getting
3240 tried to switch the profiling to using hotshot, but I'm getting
3232 strange errors from prof.runctx() there. I may be misreading the
3241 strange errors from prof.runctx() there. I may be misreading the
3233 docs, but it looks weird. For now the profiling code will
3242 docs, but it looks weird. For now the profiling code will
3234 continue to use the standard profiler.
3243 continue to use the standard profiler.
3235
3244
3236 2004-08-23 Fernando Perez <fperez@colorado.edu>
3245 2004-08-23 Fernando Perez <fperez@colorado.edu>
3237
3246
3238 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3247 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3239 threaded shell, by John Hunter. It's not quite ready yet, but
3248 threaded shell, by John Hunter. It's not quite ready yet, but
3240 close.
3249 close.
3241
3250
3242 2004-08-22 Fernando Perez <fperez@colorado.edu>
3251 2004-08-22 Fernando Perez <fperez@colorado.edu>
3243
3252
3244 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3253 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3245 in Magic and ultraTB.
3254 in Magic and ultraTB.
3246
3255
3247 * ipython.1: document threading options in manpage.
3256 * ipython.1: document threading options in manpage.
3248
3257
3249 * scripts/ipython: Changed name of -thread option to -gthread,
3258 * scripts/ipython: Changed name of -thread option to -gthread,
3250 since this is GTK specific. I want to leave the door open for a
3259 since this is GTK specific. I want to leave the door open for a
3251 -wthread option for WX, which will most likely be necessary. This
3260 -wthread option for WX, which will most likely be necessary. This
3252 change affects usage and ipmaker as well.
3261 change affects usage and ipmaker as well.
3253
3262
3254 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3263 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3255 handle the matplotlib shell issues. Code by John Hunter
3264 handle the matplotlib shell issues. Code by John Hunter
3256 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3265 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3257 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3266 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3258 broken (and disabled for end users) for now, but it puts the
3267 broken (and disabled for end users) for now, but it puts the
3259 infrastructure in place.
3268 infrastructure in place.
3260
3269
3261 2004-08-21 Fernando Perez <fperez@colorado.edu>
3270 2004-08-21 Fernando Perez <fperez@colorado.edu>
3262
3271
3263 * ipythonrc-pylab: Add matplotlib support.
3272 * ipythonrc-pylab: Add matplotlib support.
3264
3273
3265 * matplotlib_config.py: new files for matplotlib support, part of
3274 * matplotlib_config.py: new files for matplotlib support, part of
3266 the pylab profile.
3275 the pylab profile.
3267
3276
3268 * IPython/usage.py (__doc__): documented the threading options.
3277 * IPython/usage.py (__doc__): documented the threading options.
3269
3278
3270 2004-08-20 Fernando Perez <fperez@colorado.edu>
3279 2004-08-20 Fernando Perez <fperez@colorado.edu>
3271
3280
3272 * ipython: Modified the main calling routine to handle the -thread
3281 * ipython: Modified the main calling routine to handle the -thread
3273 and -mpthread options. This needs to be done as a top-level hack,
3282 and -mpthread options. This needs to be done as a top-level hack,
3274 because it determines which class to instantiate for IPython
3283 because it determines which class to instantiate for IPython
3275 itself.
3284 itself.
3276
3285
3277 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3286 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3278 classes to support multithreaded GTK operation without blocking,
3287 classes to support multithreaded GTK operation without blocking,
3279 and matplotlib with all backends. This is a lot of still very
3288 and matplotlib with all backends. This is a lot of still very
3280 experimental code, and threads are tricky. So it may still have a
3289 experimental code, and threads are tricky. So it may still have a
3281 few rough edges... This code owes a lot to
3290 few rough edges... This code owes a lot to
3282 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3291 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3283 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3292 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3284 to John Hunter for all the matplotlib work.
3293 to John Hunter for all the matplotlib work.
3285
3294
3286 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3295 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3287 options for gtk thread and matplotlib support.
3296 options for gtk thread and matplotlib support.
3288
3297
3289 2004-08-16 Fernando Perez <fperez@colorado.edu>
3298 2004-08-16 Fernando Perez <fperez@colorado.edu>
3290
3299
3291 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3300 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3292 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3301 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3293 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3302 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3294
3303
3295 2004-08-11 Fernando Perez <fperez@colorado.edu>
3304 2004-08-11 Fernando Perez <fperez@colorado.edu>
3296
3305
3297 * setup.py (isfile): Fix build so documentation gets updated for
3306 * setup.py (isfile): Fix build so documentation gets updated for
3298 rpms (it was only done for .tgz builds).
3307 rpms (it was only done for .tgz builds).
3299
3308
3300 2004-08-10 Fernando Perez <fperez@colorado.edu>
3309 2004-08-10 Fernando Perez <fperez@colorado.edu>
3301
3310
3302 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3311 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3303
3312
3304 * iplib.py : Silence syntax error exceptions in tab-completion.
3313 * iplib.py : Silence syntax error exceptions in tab-completion.
3305
3314
3306 2004-08-05 Fernando Perez <fperez@colorado.edu>
3315 2004-08-05 Fernando Perez <fperez@colorado.edu>
3307
3316
3308 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3317 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3309 'color off' mark for continuation prompts. This was causing long
3318 'color off' mark for continuation prompts. This was causing long
3310 continuation lines to mis-wrap.
3319 continuation lines to mis-wrap.
3311
3320
3312 2004-08-01 Fernando Perez <fperez@colorado.edu>
3321 2004-08-01 Fernando Perez <fperez@colorado.edu>
3313
3322
3314 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3323 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3315 for building ipython to be a parameter. All this is necessary
3324 for building ipython to be a parameter. All this is necessary
3316 right now to have a multithreaded version, but this insane
3325 right now to have a multithreaded version, but this insane
3317 non-design will be cleaned up soon. For now, it's a hack that
3326 non-design will be cleaned up soon. For now, it's a hack that
3318 works.
3327 works.
3319
3328
3320 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3329 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3321 args in various places. No bugs so far, but it's a dangerous
3330 args in various places. No bugs so far, but it's a dangerous
3322 practice.
3331 practice.
3323
3332
3324 2004-07-31 Fernando Perez <fperez@colorado.edu>
3333 2004-07-31 Fernando Perez <fperez@colorado.edu>
3325
3334
3326 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3335 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3327 fix completion of files with dots in their names under most
3336 fix completion of files with dots in their names under most
3328 profiles (pysh was OK because the completion order is different).
3337 profiles (pysh was OK because the completion order is different).
3329
3338
3330 2004-07-27 Fernando Perez <fperez@colorado.edu>
3339 2004-07-27 Fernando Perez <fperez@colorado.edu>
3331
3340
3332 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3341 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3333 keywords manually, b/c the one in keyword.py was removed in python
3342 keywords manually, b/c the one in keyword.py was removed in python
3334 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3343 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3335 This is NOT a bug under python 2.3 and earlier.
3344 This is NOT a bug under python 2.3 and earlier.
3336
3345
3337 2004-07-26 Fernando Perez <fperez@colorado.edu>
3346 2004-07-26 Fernando Perez <fperez@colorado.edu>
3338
3347
3339 * IPython/ultraTB.py (VerboseTB.text): Add another
3348 * IPython/ultraTB.py (VerboseTB.text): Add another
3340 linecache.checkcache() call to try to prevent inspect.py from
3349 linecache.checkcache() call to try to prevent inspect.py from
3341 crashing under python 2.3. I think this fixes
3350 crashing under python 2.3. I think this fixes
3342 http://www.scipy.net/roundup/ipython/issue17.
3351 http://www.scipy.net/roundup/ipython/issue17.
3343
3352
3344 2004-07-26 *** Released version 0.6.2
3353 2004-07-26 *** Released version 0.6.2
3345
3354
3346 2004-07-26 Fernando Perez <fperez@colorado.edu>
3355 2004-07-26 Fernando Perez <fperez@colorado.edu>
3347
3356
3348 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3357 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3349 fail for any number.
3358 fail for any number.
3350 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3359 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3351 empty bookmarks.
3360 empty bookmarks.
3352
3361
3353 2004-07-26 *** Released version 0.6.1
3362 2004-07-26 *** Released version 0.6.1
3354
3363
3355 2004-07-26 Fernando Perez <fperez@colorado.edu>
3364 2004-07-26 Fernando Perez <fperez@colorado.edu>
3356
3365
3357 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3366 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3358
3367
3359 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3368 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3360 escaping '()[]{}' in filenames.
3369 escaping '()[]{}' in filenames.
3361
3370
3362 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3371 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3363 Python 2.2 users who lack a proper shlex.split.
3372 Python 2.2 users who lack a proper shlex.split.
3364
3373
3365 2004-07-19 Fernando Perez <fperez@colorado.edu>
3374 2004-07-19 Fernando Perez <fperez@colorado.edu>
3366
3375
3367 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3376 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3368 for reading readline's init file. I follow the normal chain:
3377 for reading readline's init file. I follow the normal chain:
3369 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3378 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3370 report by Mike Heeter. This closes
3379 report by Mike Heeter. This closes
3371 http://www.scipy.net/roundup/ipython/issue16.
3380 http://www.scipy.net/roundup/ipython/issue16.
3372
3381
3373 2004-07-18 Fernando Perez <fperez@colorado.edu>
3382 2004-07-18 Fernando Perez <fperez@colorado.edu>
3374
3383
3375 * IPython/iplib.py (__init__): Add better handling of '\' under
3384 * IPython/iplib.py (__init__): Add better handling of '\' under
3376 Win32 for filenames. After a patch by Ville.
3385 Win32 for filenames. After a patch by Ville.
3377
3386
3378 2004-07-17 Fernando Perez <fperez@colorado.edu>
3387 2004-07-17 Fernando Perez <fperez@colorado.edu>
3379
3388
3380 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3389 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3381 autocalling would be triggered for 'foo is bar' if foo is
3390 autocalling would be triggered for 'foo is bar' if foo is
3382 callable. I also cleaned up the autocall detection code to use a
3391 callable. I also cleaned up the autocall detection code to use a
3383 regexp, which is faster. Bug reported by Alexander Schmolck.
3392 regexp, which is faster. Bug reported by Alexander Schmolck.
3384
3393
3385 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3394 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3386 '?' in them would confuse the help system. Reported by Alex
3395 '?' in them would confuse the help system. Reported by Alex
3387 Schmolck.
3396 Schmolck.
3388
3397
3389 2004-07-16 Fernando Perez <fperez@colorado.edu>
3398 2004-07-16 Fernando Perez <fperez@colorado.edu>
3390
3399
3391 * IPython/GnuplotInteractive.py (__all__): added plot2.
3400 * IPython/GnuplotInteractive.py (__all__): added plot2.
3392
3401
3393 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3402 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3394 plotting dictionaries, lists or tuples of 1d arrays.
3403 plotting dictionaries, lists or tuples of 1d arrays.
3395
3404
3396 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3405 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3397 optimizations.
3406 optimizations.
3398
3407
3399 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3408 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3400 the information which was there from Janko's original IPP code:
3409 the information which was there from Janko's original IPP code:
3401
3410
3402 03.05.99 20:53 porto.ifm.uni-kiel.de
3411 03.05.99 20:53 porto.ifm.uni-kiel.de
3403 --Started changelog.
3412 --Started changelog.
3404 --make clear do what it say it does
3413 --make clear do what it say it does
3405 --added pretty output of lines from inputcache
3414 --added pretty output of lines from inputcache
3406 --Made Logger a mixin class, simplifies handling of switches
3415 --Made Logger a mixin class, simplifies handling of switches
3407 --Added own completer class. .string<TAB> expands to last history
3416 --Added own completer class. .string<TAB> expands to last history
3408 line which starts with string. The new expansion is also present
3417 line which starts with string. The new expansion is also present
3409 with Ctrl-r from the readline library. But this shows, who this
3418 with Ctrl-r from the readline library. But this shows, who this
3410 can be done for other cases.
3419 can be done for other cases.
3411 --Added convention that all shell functions should accept a
3420 --Added convention that all shell functions should accept a
3412 parameter_string This opens the door for different behaviour for
3421 parameter_string This opens the door for different behaviour for
3413 each function. @cd is a good example of this.
3422 each function. @cd is a good example of this.
3414
3423
3415 04.05.99 12:12 porto.ifm.uni-kiel.de
3424 04.05.99 12:12 porto.ifm.uni-kiel.de
3416 --added logfile rotation
3425 --added logfile rotation
3417 --added new mainloop method which freezes first the namespace
3426 --added new mainloop method which freezes first the namespace
3418
3427
3419 07.05.99 21:24 porto.ifm.uni-kiel.de
3428 07.05.99 21:24 porto.ifm.uni-kiel.de
3420 --added the docreader classes. Now there is a help system.
3429 --added the docreader classes. Now there is a help system.
3421 -This is only a first try. Currently it's not easy to put new
3430 -This is only a first try. Currently it's not easy to put new
3422 stuff in the indices. But this is the way to go. Info would be
3431 stuff in the indices. But this is the way to go. Info would be
3423 better, but HTML is every where and not everybody has an info
3432 better, but HTML is every where and not everybody has an info
3424 system installed and it's not so easy to change html-docs to info.
3433 system installed and it's not so easy to change html-docs to info.
3425 --added global logfile option
3434 --added global logfile option
3426 --there is now a hook for object inspection method pinfo needs to
3435 --there is now a hook for object inspection method pinfo needs to
3427 be provided for this. Can be reached by two '??'.
3436 be provided for this. Can be reached by two '??'.
3428
3437
3429 08.05.99 20:51 porto.ifm.uni-kiel.de
3438 08.05.99 20:51 porto.ifm.uni-kiel.de
3430 --added a README
3439 --added a README
3431 --bug in rc file. Something has changed so functions in the rc
3440 --bug in rc file. Something has changed so functions in the rc
3432 file need to reference the shell and not self. Not clear if it's a
3441 file need to reference the shell and not self. Not clear if it's a
3433 bug or feature.
3442 bug or feature.
3434 --changed rc file for new behavior
3443 --changed rc file for new behavior
3435
3444
3436 2004-07-15 Fernando Perez <fperez@colorado.edu>
3445 2004-07-15 Fernando Perez <fperez@colorado.edu>
3437
3446
3438 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3447 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3439 cache was falling out of sync in bizarre manners when multi-line
3448 cache was falling out of sync in bizarre manners when multi-line
3440 input was present. Minor optimizations and cleanup.
3449 input was present. Minor optimizations and cleanup.
3441
3450
3442 (Logger): Remove old Changelog info for cleanup. This is the
3451 (Logger): Remove old Changelog info for cleanup. This is the
3443 information which was there from Janko's original code:
3452 information which was there from Janko's original code:
3444
3453
3445 Changes to Logger: - made the default log filename a parameter
3454 Changes to Logger: - made the default log filename a parameter
3446
3455
3447 - put a check for lines beginning with !@? in log(). Needed
3456 - put a check for lines beginning with !@? in log(). Needed
3448 (even if the handlers properly log their lines) for mid-session
3457 (even if the handlers properly log their lines) for mid-session
3449 logging activation to work properly. Without this, lines logged
3458 logging activation to work properly. Without this, lines logged
3450 in mid session, which get read from the cache, would end up
3459 in mid session, which get read from the cache, would end up
3451 'bare' (with !@? in the open) in the log. Now they are caught
3460 'bare' (with !@? in the open) in the log. Now they are caught
3452 and prepended with a #.
3461 and prepended with a #.
3453
3462
3454 * IPython/iplib.py (InteractiveShell.init_readline): added check
3463 * IPython/iplib.py (InteractiveShell.init_readline): added check
3455 in case MagicCompleter fails to be defined, so we don't crash.
3464 in case MagicCompleter fails to be defined, so we don't crash.
3456
3465
3457 2004-07-13 Fernando Perez <fperez@colorado.edu>
3466 2004-07-13 Fernando Perez <fperez@colorado.edu>
3458
3467
3459 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3468 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3460 of EPS if the requested filename ends in '.eps'.
3469 of EPS if the requested filename ends in '.eps'.
3461
3470
3462 2004-07-04 Fernando Perez <fperez@colorado.edu>
3471 2004-07-04 Fernando Perez <fperez@colorado.edu>
3463
3472
3464 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3473 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3465 escaping of quotes when calling the shell.
3474 escaping of quotes when calling the shell.
3466
3475
3467 2004-07-02 Fernando Perez <fperez@colorado.edu>
3476 2004-07-02 Fernando Perez <fperez@colorado.edu>
3468
3477
3469 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3478 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3470 gettext not working because we were clobbering '_'. Fixes
3479 gettext not working because we were clobbering '_'. Fixes
3471 http://www.scipy.net/roundup/ipython/issue6.
3480 http://www.scipy.net/roundup/ipython/issue6.
3472
3481
3473 2004-07-01 Fernando Perez <fperez@colorado.edu>
3482 2004-07-01 Fernando Perez <fperez@colorado.edu>
3474
3483
3475 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3484 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3476 into @cd. Patch by Ville.
3485 into @cd. Patch by Ville.
3477
3486
3478 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3487 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3479 new function to store things after ipmaker runs. Patch by Ville.
3488 new function to store things after ipmaker runs. Patch by Ville.
3480 Eventually this will go away once ipmaker is removed and the class
3489 Eventually this will go away once ipmaker is removed and the class
3481 gets cleaned up, but for now it's ok. Key functionality here is
3490 gets cleaned up, but for now it's ok. Key functionality here is
3482 the addition of the persistent storage mechanism, a dict for
3491 the addition of the persistent storage mechanism, a dict for
3483 keeping data across sessions (for now just bookmarks, but more can
3492 keeping data across sessions (for now just bookmarks, but more can
3484 be implemented later).
3493 be implemented later).
3485
3494
3486 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3495 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3487 persistent across sections. Patch by Ville, I modified it
3496 persistent across sections. Patch by Ville, I modified it
3488 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3497 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3489 added a '-l' option to list all bookmarks.
3498 added a '-l' option to list all bookmarks.
3490
3499
3491 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3500 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3492 center for cleanup. Registered with atexit.register(). I moved
3501 center for cleanup. Registered with atexit.register(). I moved
3493 here the old exit_cleanup(). After a patch by Ville.
3502 here the old exit_cleanup(). After a patch by Ville.
3494
3503
3495 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3504 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3496 characters in the hacked shlex_split for python 2.2.
3505 characters in the hacked shlex_split for python 2.2.
3497
3506
3498 * IPython/iplib.py (file_matches): more fixes to filenames with
3507 * IPython/iplib.py (file_matches): more fixes to filenames with
3499 whitespace in them. It's not perfect, but limitations in python's
3508 whitespace in them. It's not perfect, but limitations in python's
3500 readline make it impossible to go further.
3509 readline make it impossible to go further.
3501
3510
3502 2004-06-29 Fernando Perez <fperez@colorado.edu>
3511 2004-06-29 Fernando Perez <fperez@colorado.edu>
3503
3512
3504 * IPython/iplib.py (file_matches): escape whitespace correctly in
3513 * IPython/iplib.py (file_matches): escape whitespace correctly in
3505 filename completions. Bug reported by Ville.
3514 filename completions. Bug reported by Ville.
3506
3515
3507 2004-06-28 Fernando Perez <fperez@colorado.edu>
3516 2004-06-28 Fernando Perez <fperez@colorado.edu>
3508
3517
3509 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3518 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3510 the history file will be called 'history-PROFNAME' (or just
3519 the history file will be called 'history-PROFNAME' (or just
3511 'history' if no profile is loaded). I was getting annoyed at
3520 'history' if no profile is loaded). I was getting annoyed at
3512 getting my Numerical work history clobbered by pysh sessions.
3521 getting my Numerical work history clobbered by pysh sessions.
3513
3522
3514 * IPython/iplib.py (InteractiveShell.__init__): Internal
3523 * IPython/iplib.py (InteractiveShell.__init__): Internal
3515 getoutputerror() function so that we can honor the system_verbose
3524 getoutputerror() function so that we can honor the system_verbose
3516 flag for _all_ system calls. I also added escaping of #
3525 flag for _all_ system calls. I also added escaping of #
3517 characters here to avoid confusing Itpl.
3526 characters here to avoid confusing Itpl.
3518
3527
3519 * IPython/Magic.py (shlex_split): removed call to shell in
3528 * IPython/Magic.py (shlex_split): removed call to shell in
3520 parse_options and replaced it with shlex.split(). The annoying
3529 parse_options and replaced it with shlex.split(). The annoying
3521 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3530 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3522 to backport it from 2.3, with several frail hacks (the shlex
3531 to backport it from 2.3, with several frail hacks (the shlex
3523 module is rather limited in 2.2). Thanks to a suggestion by Ville
3532 module is rather limited in 2.2). Thanks to a suggestion by Ville
3524 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3533 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3525 problem.
3534 problem.
3526
3535
3527 (Magic.magic_system_verbose): new toggle to print the actual
3536 (Magic.magic_system_verbose): new toggle to print the actual
3528 system calls made by ipython. Mainly for debugging purposes.
3537 system calls made by ipython. Mainly for debugging purposes.
3529
3538
3530 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3539 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3531 doesn't support persistence. Reported (and fix suggested) by
3540 doesn't support persistence. Reported (and fix suggested) by
3532 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3541 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3533
3542
3534 2004-06-26 Fernando Perez <fperez@colorado.edu>
3543 2004-06-26 Fernando Perez <fperez@colorado.edu>
3535
3544
3536 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3545 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3537 continue prompts.
3546 continue prompts.
3538
3547
3539 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3548 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3540 function (basically a big docstring) and a few more things here to
3549 function (basically a big docstring) and a few more things here to
3541 speedup startup. pysh.py is now very lightweight. We want because
3550 speedup startup. pysh.py is now very lightweight. We want because
3542 it gets execfile'd, while InterpreterExec gets imported, so
3551 it gets execfile'd, while InterpreterExec gets imported, so
3543 byte-compilation saves time.
3552 byte-compilation saves time.
3544
3553
3545 2004-06-25 Fernando Perez <fperez@colorado.edu>
3554 2004-06-25 Fernando Perez <fperez@colorado.edu>
3546
3555
3547 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3556 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3548 -NUM', which was recently broken.
3557 -NUM', which was recently broken.
3549
3558
3550 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3559 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3551 in multi-line input (but not !!, which doesn't make sense there).
3560 in multi-line input (but not !!, which doesn't make sense there).
3552
3561
3553 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3562 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3554 It's just too useful, and people can turn it off in the less
3563 It's just too useful, and people can turn it off in the less
3555 common cases where it's a problem.
3564 common cases where it's a problem.
3556
3565
3557 2004-06-24 Fernando Perez <fperez@colorado.edu>
3566 2004-06-24 Fernando Perez <fperez@colorado.edu>
3558
3567
3559 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3568 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3560 special syntaxes (like alias calling) is now allied in multi-line
3569 special syntaxes (like alias calling) is now allied in multi-line
3561 input. This is still _very_ experimental, but it's necessary for
3570 input. This is still _very_ experimental, but it's necessary for
3562 efficient shell usage combining python looping syntax with system
3571 efficient shell usage combining python looping syntax with system
3563 calls. For now it's restricted to aliases, I don't think it
3572 calls. For now it's restricted to aliases, I don't think it
3564 really even makes sense to have this for magics.
3573 really even makes sense to have this for magics.
3565
3574
3566 2004-06-23 Fernando Perez <fperez@colorado.edu>
3575 2004-06-23 Fernando Perez <fperez@colorado.edu>
3567
3576
3568 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3577 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3569 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3578 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3570
3579
3571 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3580 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3572 extensions under Windows (after code sent by Gary Bishop). The
3581 extensions under Windows (after code sent by Gary Bishop). The
3573 extensions considered 'executable' are stored in IPython's rc
3582 extensions considered 'executable' are stored in IPython's rc
3574 structure as win_exec_ext.
3583 structure as win_exec_ext.
3575
3584
3576 * IPython/genutils.py (shell): new function, like system() but
3585 * IPython/genutils.py (shell): new function, like system() but
3577 without return value. Very useful for interactive shell work.
3586 without return value. Very useful for interactive shell work.
3578
3587
3579 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3588 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3580 delete aliases.
3589 delete aliases.
3581
3590
3582 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3591 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3583 sure that the alias table doesn't contain python keywords.
3592 sure that the alias table doesn't contain python keywords.
3584
3593
3585 2004-06-21 Fernando Perez <fperez@colorado.edu>
3594 2004-06-21 Fernando Perez <fperez@colorado.edu>
3586
3595
3587 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3596 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3588 non-existent items are found in $PATH. Reported by Thorsten.
3597 non-existent items are found in $PATH. Reported by Thorsten.
3589
3598
3590 2004-06-20 Fernando Perez <fperez@colorado.edu>
3599 2004-06-20 Fernando Perez <fperez@colorado.edu>
3591
3600
3592 * IPython/iplib.py (complete): modified the completer so that the
3601 * IPython/iplib.py (complete): modified the completer so that the
3593 order of priorities can be easily changed at runtime.
3602 order of priorities can be easily changed at runtime.
3594
3603
3595 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3604 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3596 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3605 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3597
3606
3598 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3607 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3599 expand Python variables prepended with $ in all system calls. The
3608 expand Python variables prepended with $ in all system calls. The
3600 same was done to InteractiveShell.handle_shell_escape. Now all
3609 same was done to InteractiveShell.handle_shell_escape. Now all
3601 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3610 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3602 expansion of python variables and expressions according to the
3611 expansion of python variables and expressions according to the
3603 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3612 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3604
3613
3605 Though PEP-215 has been rejected, a similar (but simpler) one
3614 Though PEP-215 has been rejected, a similar (but simpler) one
3606 seems like it will go into Python 2.4, PEP-292 -
3615 seems like it will go into Python 2.4, PEP-292 -
3607 http://www.python.org/peps/pep-0292.html.
3616 http://www.python.org/peps/pep-0292.html.
3608
3617
3609 I'll keep the full syntax of PEP-215, since IPython has since the
3618 I'll keep the full syntax of PEP-215, since IPython has since the
3610 start used Ka-Ping Yee's reference implementation discussed there
3619 start used Ka-Ping Yee's reference implementation discussed there
3611 (Itpl), and I actually like the powerful semantics it offers.
3620 (Itpl), and I actually like the powerful semantics it offers.
3612
3621
3613 In order to access normal shell variables, the $ has to be escaped
3622 In order to access normal shell variables, the $ has to be escaped
3614 via an extra $. For example:
3623 via an extra $. For example:
3615
3624
3616 In [7]: PATH='a python variable'
3625 In [7]: PATH='a python variable'
3617
3626
3618 In [8]: !echo $PATH
3627 In [8]: !echo $PATH
3619 a python variable
3628 a python variable
3620
3629
3621 In [9]: !echo $$PATH
3630 In [9]: !echo $$PATH
3622 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3631 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3623
3632
3624 (Magic.parse_options): escape $ so the shell doesn't evaluate
3633 (Magic.parse_options): escape $ so the shell doesn't evaluate
3625 things prematurely.
3634 things prematurely.
3626
3635
3627 * IPython/iplib.py (InteractiveShell.call_alias): added the
3636 * IPython/iplib.py (InteractiveShell.call_alias): added the
3628 ability for aliases to expand python variables via $.
3637 ability for aliases to expand python variables via $.
3629
3638
3630 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3639 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3631 system, now there's a @rehash/@rehashx pair of magics. These work
3640 system, now there's a @rehash/@rehashx pair of magics. These work
3632 like the csh rehash command, and can be invoked at any time. They
3641 like the csh rehash command, and can be invoked at any time. They
3633 build a table of aliases to everything in the user's $PATH
3642 build a table of aliases to everything in the user's $PATH
3634 (@rehash uses everything, @rehashx is slower but only adds
3643 (@rehash uses everything, @rehashx is slower but only adds
3635 executable files). With this, the pysh.py-based shell profile can
3644 executable files). With this, the pysh.py-based shell profile can
3636 now simply call rehash upon startup, and full access to all
3645 now simply call rehash upon startup, and full access to all
3637 programs in the user's path is obtained.
3646 programs in the user's path is obtained.
3638
3647
3639 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3648 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3640 functionality is now fully in place. I removed the old dynamic
3649 functionality is now fully in place. I removed the old dynamic
3641 code generation based approach, in favor of a much lighter one
3650 code generation based approach, in favor of a much lighter one
3642 based on a simple dict. The advantage is that this allows me to
3651 based on a simple dict. The advantage is that this allows me to
3643 now have thousands of aliases with negligible cost (unthinkable
3652 now have thousands of aliases with negligible cost (unthinkable
3644 with the old system).
3653 with the old system).
3645
3654
3646 2004-06-19 Fernando Perez <fperez@colorado.edu>
3655 2004-06-19 Fernando Perez <fperez@colorado.edu>
3647
3656
3648 * IPython/iplib.py (__init__): extended MagicCompleter class to
3657 * IPython/iplib.py (__init__): extended MagicCompleter class to
3649 also complete (last in priority) on user aliases.
3658 also complete (last in priority) on user aliases.
3650
3659
3651 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3660 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3652 call to eval.
3661 call to eval.
3653 (ItplNS.__init__): Added a new class which functions like Itpl,
3662 (ItplNS.__init__): Added a new class which functions like Itpl,
3654 but allows configuring the namespace for the evaluation to occur
3663 but allows configuring the namespace for the evaluation to occur
3655 in.
3664 in.
3656
3665
3657 2004-06-18 Fernando Perez <fperez@colorado.edu>
3666 2004-06-18 Fernando Perez <fperez@colorado.edu>
3658
3667
3659 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3668 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3660 better message when 'exit' or 'quit' are typed (a common newbie
3669 better message when 'exit' or 'quit' are typed (a common newbie
3661 confusion).
3670 confusion).
3662
3671
3663 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3672 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3664 check for Windows users.
3673 check for Windows users.
3665
3674
3666 * IPython/iplib.py (InteractiveShell.user_setup): removed
3675 * IPython/iplib.py (InteractiveShell.user_setup): removed
3667 disabling of colors for Windows. I'll test at runtime and issue a
3676 disabling of colors for Windows. I'll test at runtime and issue a
3668 warning if Gary's readline isn't found, as to nudge users to
3677 warning if Gary's readline isn't found, as to nudge users to
3669 download it.
3678 download it.
3670
3679
3671 2004-06-16 Fernando Perez <fperez@colorado.edu>
3680 2004-06-16 Fernando Perez <fperez@colorado.edu>
3672
3681
3673 * IPython/genutils.py (Stream.__init__): changed to print errors
3682 * IPython/genutils.py (Stream.__init__): changed to print errors
3674 to sys.stderr. I had a circular dependency here. Now it's
3683 to sys.stderr. I had a circular dependency here. Now it's
3675 possible to run ipython as IDLE's shell (consider this pre-alpha,
3684 possible to run ipython as IDLE's shell (consider this pre-alpha,
3676 since true stdout things end up in the starting terminal instead
3685 since true stdout things end up in the starting terminal instead
3677 of IDLE's out).
3686 of IDLE's out).
3678
3687
3679 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3688 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3680 users who haven't # updated their prompt_in2 definitions. Remove
3689 users who haven't # updated their prompt_in2 definitions. Remove
3681 eventually.
3690 eventually.
3682 (multiple_replace): added credit to original ASPN recipe.
3691 (multiple_replace): added credit to original ASPN recipe.
3683
3692
3684 2004-06-15 Fernando Perez <fperez@colorado.edu>
3693 2004-06-15 Fernando Perez <fperez@colorado.edu>
3685
3694
3686 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3695 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3687 list of auto-defined aliases.
3696 list of auto-defined aliases.
3688
3697
3689 2004-06-13 Fernando Perez <fperez@colorado.edu>
3698 2004-06-13 Fernando Perez <fperez@colorado.edu>
3690
3699
3691 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3700 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3692 install was really requested (so setup.py can be used for other
3701 install was really requested (so setup.py can be used for other
3693 things under Windows).
3702 things under Windows).
3694
3703
3695 2004-06-10 Fernando Perez <fperez@colorado.edu>
3704 2004-06-10 Fernando Perez <fperez@colorado.edu>
3696
3705
3697 * IPython/Logger.py (Logger.create_log): Manually remove any old
3706 * IPython/Logger.py (Logger.create_log): Manually remove any old
3698 backup, since os.remove may fail under Windows. Fixes bug
3707 backup, since os.remove may fail under Windows. Fixes bug
3699 reported by Thorsten.
3708 reported by Thorsten.
3700
3709
3701 2004-06-09 Fernando Perez <fperez@colorado.edu>
3710 2004-06-09 Fernando Perez <fperez@colorado.edu>
3702
3711
3703 * examples/example-embed.py: fixed all references to %n (replaced
3712 * examples/example-embed.py: fixed all references to %n (replaced
3704 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3713 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3705 for all examples and the manual as well.
3714 for all examples and the manual as well.
3706
3715
3707 2004-06-08 Fernando Perez <fperez@colorado.edu>
3716 2004-06-08 Fernando Perez <fperez@colorado.edu>
3708
3717
3709 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3718 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3710 alignment and color management. All 3 prompt subsystems now
3719 alignment and color management. All 3 prompt subsystems now
3711 inherit from BasePrompt.
3720 inherit from BasePrompt.
3712
3721
3713 * tools/release: updates for windows installer build and tag rpms
3722 * tools/release: updates for windows installer build and tag rpms
3714 with python version (since paths are fixed).
3723 with python version (since paths are fixed).
3715
3724
3716 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3725 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3717 which will become eventually obsolete. Also fixed the default
3726 which will become eventually obsolete. Also fixed the default
3718 prompt_in2 to use \D, so at least new users start with the correct
3727 prompt_in2 to use \D, so at least new users start with the correct
3719 defaults.
3728 defaults.
3720 WARNING: Users with existing ipythonrc files will need to apply
3729 WARNING: Users with existing ipythonrc files will need to apply
3721 this fix manually!
3730 this fix manually!
3722
3731
3723 * setup.py: make windows installer (.exe). This is finally the
3732 * setup.py: make windows installer (.exe). This is finally the
3724 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3733 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3725 which I hadn't included because it required Python 2.3 (or recent
3734 which I hadn't included because it required Python 2.3 (or recent
3726 distutils).
3735 distutils).
3727
3736
3728 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3737 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3729 usage of new '\D' escape.
3738 usage of new '\D' escape.
3730
3739
3731 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3740 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3732 lacks os.getuid())
3741 lacks os.getuid())
3733 (CachedOutput.set_colors): Added the ability to turn coloring
3742 (CachedOutput.set_colors): Added the ability to turn coloring
3734 on/off with @colors even for manually defined prompt colors. It
3743 on/off with @colors even for manually defined prompt colors. It
3735 uses a nasty global, but it works safely and via the generic color
3744 uses a nasty global, but it works safely and via the generic color
3736 handling mechanism.
3745 handling mechanism.
3737 (Prompt2.__init__): Introduced new escape '\D' for continuation
3746 (Prompt2.__init__): Introduced new escape '\D' for continuation
3738 prompts. It represents the counter ('\#') as dots.
3747 prompts. It represents the counter ('\#') as dots.
3739 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3748 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3740 need to update their ipythonrc files and replace '%n' with '\D' in
3749 need to update their ipythonrc files and replace '%n' with '\D' in
3741 their prompt_in2 settings everywhere. Sorry, but there's
3750 their prompt_in2 settings everywhere. Sorry, but there's
3742 otherwise no clean way to get all prompts to properly align. The
3751 otherwise no clean way to get all prompts to properly align. The
3743 ipythonrc shipped with IPython has been updated.
3752 ipythonrc shipped with IPython has been updated.
3744
3753
3745 2004-06-07 Fernando Perez <fperez@colorado.edu>
3754 2004-06-07 Fernando Perez <fperez@colorado.edu>
3746
3755
3747 * setup.py (isfile): Pass local_icons option to latex2html, so the
3756 * setup.py (isfile): Pass local_icons option to latex2html, so the
3748 resulting HTML file is self-contained. Thanks to
3757 resulting HTML file is self-contained. Thanks to
3749 dryice-AT-liu.com.cn for the tip.
3758 dryice-AT-liu.com.cn for the tip.
3750
3759
3751 * pysh.py: I created a new profile 'shell', which implements a
3760 * pysh.py: I created a new profile 'shell', which implements a
3752 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3761 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3753 system shell, nor will it become one anytime soon. It's mainly
3762 system shell, nor will it become one anytime soon. It's mainly
3754 meant to illustrate the use of the new flexible bash-like prompts.
3763 meant to illustrate the use of the new flexible bash-like prompts.
3755 I guess it could be used by hardy souls for true shell management,
3764 I guess it could be used by hardy souls for true shell management,
3756 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3765 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3757 profile. This uses the InterpreterExec extension provided by
3766 profile. This uses the InterpreterExec extension provided by
3758 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3767 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3759
3768
3760 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3769 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3761 auto-align itself with the length of the previous input prompt
3770 auto-align itself with the length of the previous input prompt
3762 (taking into account the invisible color escapes).
3771 (taking into account the invisible color escapes).
3763 (CachedOutput.__init__): Large restructuring of this class. Now
3772 (CachedOutput.__init__): Large restructuring of this class. Now
3764 all three prompts (primary1, primary2, output) are proper objects,
3773 all three prompts (primary1, primary2, output) are proper objects,
3765 managed by the 'parent' CachedOutput class. The code is still a
3774 managed by the 'parent' CachedOutput class. The code is still a
3766 bit hackish (all prompts share state via a pointer to the cache),
3775 bit hackish (all prompts share state via a pointer to the cache),
3767 but it's overall far cleaner than before.
3776 but it's overall far cleaner than before.
3768
3777
3769 * IPython/genutils.py (getoutputerror): modified to add verbose,
3778 * IPython/genutils.py (getoutputerror): modified to add verbose,
3770 debug and header options. This makes the interface of all getout*
3779 debug and header options. This makes the interface of all getout*
3771 functions uniform.
3780 functions uniform.
3772 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3781 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3773
3782
3774 * IPython/Magic.py (Magic.default_option): added a function to
3783 * IPython/Magic.py (Magic.default_option): added a function to
3775 allow registering default options for any magic command. This
3784 allow registering default options for any magic command. This
3776 makes it easy to have profiles which customize the magics globally
3785 makes it easy to have profiles which customize the magics globally
3777 for a certain use. The values set through this function are
3786 for a certain use. The values set through this function are
3778 picked up by the parse_options() method, which all magics should
3787 picked up by the parse_options() method, which all magics should
3779 use to parse their options.
3788 use to parse their options.
3780
3789
3781 * IPython/genutils.py (warn): modified the warnings framework to
3790 * IPython/genutils.py (warn): modified the warnings framework to
3782 use the Term I/O class. I'm trying to slowly unify all of
3791 use the Term I/O class. I'm trying to slowly unify all of
3783 IPython's I/O operations to pass through Term.
3792 IPython's I/O operations to pass through Term.
3784
3793
3785 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3794 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3786 the secondary prompt to correctly match the length of the primary
3795 the secondary prompt to correctly match the length of the primary
3787 one for any prompt. Now multi-line code will properly line up
3796 one for any prompt. Now multi-line code will properly line up
3788 even for path dependent prompts, such as the new ones available
3797 even for path dependent prompts, such as the new ones available
3789 via the prompt_specials.
3798 via the prompt_specials.
3790
3799
3791 2004-06-06 Fernando Perez <fperez@colorado.edu>
3800 2004-06-06 Fernando Perez <fperez@colorado.edu>
3792
3801
3793 * IPython/Prompts.py (prompt_specials): Added the ability to have
3802 * IPython/Prompts.py (prompt_specials): Added the ability to have
3794 bash-like special sequences in the prompts, which get
3803 bash-like special sequences in the prompts, which get
3795 automatically expanded. Things like hostname, current working
3804 automatically expanded. Things like hostname, current working
3796 directory and username are implemented already, but it's easy to
3805 directory and username are implemented already, but it's easy to
3797 add more in the future. Thanks to a patch by W.J. van der Laan
3806 add more in the future. Thanks to a patch by W.J. van der Laan
3798 <gnufnork-AT-hetdigitalegat.nl>
3807 <gnufnork-AT-hetdigitalegat.nl>
3799 (prompt_specials): Added color support for prompt strings, so
3808 (prompt_specials): Added color support for prompt strings, so
3800 users can define arbitrary color setups for their prompts.
3809 users can define arbitrary color setups for their prompts.
3801
3810
3802 2004-06-05 Fernando Perez <fperez@colorado.edu>
3811 2004-06-05 Fernando Perez <fperez@colorado.edu>
3803
3812
3804 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3813 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3805 code to load Gary Bishop's readline and configure it
3814 code to load Gary Bishop's readline and configure it
3806 automatically. Thanks to Gary for help on this.
3815 automatically. Thanks to Gary for help on this.
3807
3816
3808 2004-06-01 Fernando Perez <fperez@colorado.edu>
3817 2004-06-01 Fernando Perez <fperez@colorado.edu>
3809
3818
3810 * IPython/Logger.py (Logger.create_log): fix bug for logging
3819 * IPython/Logger.py (Logger.create_log): fix bug for logging
3811 with no filename (previous fix was incomplete).
3820 with no filename (previous fix was incomplete).
3812
3821
3813 2004-05-25 Fernando Perez <fperez@colorado.edu>
3822 2004-05-25 Fernando Perez <fperez@colorado.edu>
3814
3823
3815 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3824 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3816 parens would get passed to the shell.
3825 parens would get passed to the shell.
3817
3826
3818 2004-05-20 Fernando Perez <fperez@colorado.edu>
3827 2004-05-20 Fernando Perez <fperez@colorado.edu>
3819
3828
3820 * IPython/Magic.py (Magic.magic_prun): changed default profile
3829 * IPython/Magic.py (Magic.magic_prun): changed default profile
3821 sort order to 'time' (the more common profiling need).
3830 sort order to 'time' (the more common profiling need).
3822
3831
3823 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3832 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3824 so that source code shown is guaranteed in sync with the file on
3833 so that source code shown is guaranteed in sync with the file on
3825 disk (also changed in psource). Similar fix to the one for
3834 disk (also changed in psource). Similar fix to the one for
3826 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3835 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3827 <yann.ledu-AT-noos.fr>.
3836 <yann.ledu-AT-noos.fr>.
3828
3837
3829 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3838 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3830 with a single option would not be correctly parsed. Closes
3839 with a single option would not be correctly parsed. Closes
3831 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3840 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3832 introduced in 0.6.0 (on 2004-05-06).
3841 introduced in 0.6.0 (on 2004-05-06).
3833
3842
3834 2004-05-13 *** Released version 0.6.0
3843 2004-05-13 *** Released version 0.6.0
3835
3844
3836 2004-05-13 Fernando Perez <fperez@colorado.edu>
3845 2004-05-13 Fernando Perez <fperez@colorado.edu>
3837
3846
3838 * debian/: Added debian/ directory to CVS, so that debian support
3847 * debian/: Added debian/ directory to CVS, so that debian support
3839 is publicly accessible. The debian package is maintained by Jack
3848 is publicly accessible. The debian package is maintained by Jack
3840 Moffit <jack-AT-xiph.org>.
3849 Moffit <jack-AT-xiph.org>.
3841
3850
3842 * Documentation: included the notes about an ipython-based system
3851 * Documentation: included the notes about an ipython-based system
3843 shell (the hypothetical 'pysh') into the new_design.pdf document,
3852 shell (the hypothetical 'pysh') into the new_design.pdf document,
3844 so that these ideas get distributed to users along with the
3853 so that these ideas get distributed to users along with the
3845 official documentation.
3854 official documentation.
3846
3855
3847 2004-05-10 Fernando Perez <fperez@colorado.edu>
3856 2004-05-10 Fernando Perez <fperez@colorado.edu>
3848
3857
3849 * IPython/Logger.py (Logger.create_log): fix recently introduced
3858 * IPython/Logger.py (Logger.create_log): fix recently introduced
3850 bug (misindented line) where logstart would fail when not given an
3859 bug (misindented line) where logstart would fail when not given an
3851 explicit filename.
3860 explicit filename.
3852
3861
3853 2004-05-09 Fernando Perez <fperez@colorado.edu>
3862 2004-05-09 Fernando Perez <fperez@colorado.edu>
3854
3863
3855 * IPython/Magic.py (Magic.parse_options): skip system call when
3864 * IPython/Magic.py (Magic.parse_options): skip system call when
3856 there are no options to look for. Faster, cleaner for the common
3865 there are no options to look for. Faster, cleaner for the common
3857 case.
3866 case.
3858
3867
3859 * Documentation: many updates to the manual: describing Windows
3868 * Documentation: many updates to the manual: describing Windows
3860 support better, Gnuplot updates, credits, misc small stuff. Also
3869 support better, Gnuplot updates, credits, misc small stuff. Also
3861 updated the new_design doc a bit.
3870 updated the new_design doc a bit.
3862
3871
3863 2004-05-06 *** Released version 0.6.0.rc1
3872 2004-05-06 *** Released version 0.6.0.rc1
3864
3873
3865 2004-05-06 Fernando Perez <fperez@colorado.edu>
3874 2004-05-06 Fernando Perez <fperez@colorado.edu>
3866
3875
3867 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3876 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3868 operations to use the vastly more efficient list/''.join() method.
3877 operations to use the vastly more efficient list/''.join() method.
3869 (FormattedTB.text): Fix
3878 (FormattedTB.text): Fix
3870 http://www.scipy.net/roundup/ipython/issue12 - exception source
3879 http://www.scipy.net/roundup/ipython/issue12 - exception source
3871 extract not updated after reload. Thanks to Mike Salib
3880 extract not updated after reload. Thanks to Mike Salib
3872 <msalib-AT-mit.edu> for pinning the source of the problem.
3881 <msalib-AT-mit.edu> for pinning the source of the problem.
3873 Fortunately, the solution works inside ipython and doesn't require
3882 Fortunately, the solution works inside ipython and doesn't require
3874 any changes to python proper.
3883 any changes to python proper.
3875
3884
3876 * IPython/Magic.py (Magic.parse_options): Improved to process the
3885 * IPython/Magic.py (Magic.parse_options): Improved to process the
3877 argument list as a true shell would (by actually using the
3886 argument list as a true shell would (by actually using the
3878 underlying system shell). This way, all @magics automatically get
3887 underlying system shell). This way, all @magics automatically get
3879 shell expansion for variables. Thanks to a comment by Alex
3888 shell expansion for variables. Thanks to a comment by Alex
3880 Schmolck.
3889 Schmolck.
3881
3890
3882 2004-04-04 Fernando Perez <fperez@colorado.edu>
3891 2004-04-04 Fernando Perez <fperez@colorado.edu>
3883
3892
3884 * IPython/iplib.py (InteractiveShell.interact): Added a special
3893 * IPython/iplib.py (InteractiveShell.interact): Added a special
3885 trap for a debugger quit exception, which is basically impossible
3894 trap for a debugger quit exception, which is basically impossible
3886 to handle by normal mechanisms, given what pdb does to the stack.
3895 to handle by normal mechanisms, given what pdb does to the stack.
3887 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3896 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3888
3897
3889 2004-04-03 Fernando Perez <fperez@colorado.edu>
3898 2004-04-03 Fernando Perez <fperez@colorado.edu>
3890
3899
3891 * IPython/genutils.py (Term): Standardized the names of the Term
3900 * IPython/genutils.py (Term): Standardized the names of the Term
3892 class streams to cin/cout/cerr, following C++ naming conventions
3901 class streams to cin/cout/cerr, following C++ naming conventions
3893 (I can't use in/out/err because 'in' is not a valid attribute
3902 (I can't use in/out/err because 'in' is not a valid attribute
3894 name).
3903 name).
3895
3904
3896 * IPython/iplib.py (InteractiveShell.interact): don't increment
3905 * IPython/iplib.py (InteractiveShell.interact): don't increment
3897 the prompt if there's no user input. By Daniel 'Dang' Griffith
3906 the prompt if there's no user input. By Daniel 'Dang' Griffith
3898 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3907 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3899 Francois Pinard.
3908 Francois Pinard.
3900
3909
3901 2004-04-02 Fernando Perez <fperez@colorado.edu>
3910 2004-04-02 Fernando Perez <fperez@colorado.edu>
3902
3911
3903 * IPython/genutils.py (Stream.__init__): Modified to survive at
3912 * IPython/genutils.py (Stream.__init__): Modified to survive at
3904 least importing in contexts where stdin/out/err aren't true file
3913 least importing in contexts where stdin/out/err aren't true file
3905 objects, such as PyCrust (they lack fileno() and mode). However,
3914 objects, such as PyCrust (they lack fileno() and mode). However,
3906 the recovery facilities which rely on these things existing will
3915 the recovery facilities which rely on these things existing will
3907 not work.
3916 not work.
3908
3917
3909 2004-04-01 Fernando Perez <fperez@colorado.edu>
3918 2004-04-01 Fernando Perez <fperez@colorado.edu>
3910
3919
3911 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3920 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3912 use the new getoutputerror() function, so it properly
3921 use the new getoutputerror() function, so it properly
3913 distinguishes stdout/err.
3922 distinguishes stdout/err.
3914
3923
3915 * IPython/genutils.py (getoutputerror): added a function to
3924 * IPython/genutils.py (getoutputerror): added a function to
3916 capture separately the standard output and error of a command.
3925 capture separately the standard output and error of a command.
3917 After a comment from dang on the mailing lists. This code is
3926 After a comment from dang on the mailing lists. This code is
3918 basically a modified version of commands.getstatusoutput(), from
3927 basically a modified version of commands.getstatusoutput(), from
3919 the standard library.
3928 the standard library.
3920
3929
3921 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3930 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3922 '!!' as a special syntax (shorthand) to access @sx.
3931 '!!' as a special syntax (shorthand) to access @sx.
3923
3932
3924 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3933 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3925 command and return its output as a list split on '\n'.
3934 command and return its output as a list split on '\n'.
3926
3935
3927 2004-03-31 Fernando Perez <fperez@colorado.edu>
3936 2004-03-31 Fernando Perez <fperez@colorado.edu>
3928
3937
3929 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3938 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3930 method to dictionaries used as FakeModule instances if they lack
3939 method to dictionaries used as FakeModule instances if they lack
3931 it. At least pydoc in python2.3 breaks for runtime-defined
3940 it. At least pydoc in python2.3 breaks for runtime-defined
3932 functions without this hack. At some point I need to _really_
3941 functions without this hack. At some point I need to _really_
3933 understand what FakeModule is doing, because it's a gross hack.
3942 understand what FakeModule is doing, because it's a gross hack.
3934 But it solves Arnd's problem for now...
3943 But it solves Arnd's problem for now...
3935
3944
3936 2004-02-27 Fernando Perez <fperez@colorado.edu>
3945 2004-02-27 Fernando Perez <fperez@colorado.edu>
3937
3946
3938 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3947 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3939 mode would behave erratically. Also increased the number of
3948 mode would behave erratically. Also increased the number of
3940 possible logs in rotate mod to 999. Thanks to Rod Holland
3949 possible logs in rotate mod to 999. Thanks to Rod Holland
3941 <rhh@StructureLABS.com> for the report and fixes.
3950 <rhh@StructureLABS.com> for the report and fixes.
3942
3951
3943 2004-02-26 Fernando Perez <fperez@colorado.edu>
3952 2004-02-26 Fernando Perez <fperez@colorado.edu>
3944
3953
3945 * IPython/genutils.py (page): Check that the curses module really
3954 * IPython/genutils.py (page): Check that the curses module really
3946 has the initscr attribute before trying to use it. For some
3955 has the initscr attribute before trying to use it. For some
3947 reason, the Solaris curses module is missing this. I think this
3956 reason, the Solaris curses module is missing this. I think this
3948 should be considered a Solaris python bug, but I'm not sure.
3957 should be considered a Solaris python bug, but I'm not sure.
3949
3958
3950 2004-01-17 Fernando Perez <fperez@colorado.edu>
3959 2004-01-17 Fernando Perez <fperez@colorado.edu>
3951
3960
3952 * IPython/genutils.py (Stream.__init__): Changes to try to make
3961 * IPython/genutils.py (Stream.__init__): Changes to try to make
3953 ipython robust against stdin/out/err being closed by the user.
3962 ipython robust against stdin/out/err being closed by the user.
3954 This is 'user error' (and blocks a normal python session, at least
3963 This is 'user error' (and blocks a normal python session, at least
3955 the stdout case). However, Ipython should be able to survive such
3964 the stdout case). However, Ipython should be able to survive such
3956 instances of abuse as gracefully as possible. To simplify the
3965 instances of abuse as gracefully as possible. To simplify the
3957 coding and maintain compatibility with Gary Bishop's Term
3966 coding and maintain compatibility with Gary Bishop's Term
3958 contributions, I've made use of classmethods for this. I think
3967 contributions, I've made use of classmethods for this. I think
3959 this introduces a dependency on python 2.2.
3968 this introduces a dependency on python 2.2.
3960
3969
3961 2004-01-13 Fernando Perez <fperez@colorado.edu>
3970 2004-01-13 Fernando Perez <fperez@colorado.edu>
3962
3971
3963 * IPython/numutils.py (exp_safe): simplified the code a bit and
3972 * IPython/numutils.py (exp_safe): simplified the code a bit and
3964 removed the need for importing the kinds module altogether.
3973 removed the need for importing the kinds module altogether.
3965
3974
3966 2004-01-06 Fernando Perez <fperez@colorado.edu>
3975 2004-01-06 Fernando Perez <fperez@colorado.edu>
3967
3976
3968 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3977 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3969 a magic function instead, after some community feedback. No
3978 a magic function instead, after some community feedback. No
3970 special syntax will exist for it, but its name is deliberately
3979 special syntax will exist for it, but its name is deliberately
3971 very short.
3980 very short.
3972
3981
3973 2003-12-20 Fernando Perez <fperez@colorado.edu>
3982 2003-12-20 Fernando Perez <fperez@colorado.edu>
3974
3983
3975 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3984 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3976 new functionality, to automagically assign the result of a shell
3985 new functionality, to automagically assign the result of a shell
3977 command to a variable. I'll solicit some community feedback on
3986 command to a variable. I'll solicit some community feedback on
3978 this before making it permanent.
3987 this before making it permanent.
3979
3988
3980 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3989 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3981 requested about callables for which inspect couldn't obtain a
3990 requested about callables for which inspect couldn't obtain a
3982 proper argspec. Thanks to a crash report sent by Etienne
3991 proper argspec. Thanks to a crash report sent by Etienne
3983 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3992 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3984
3993
3985 2003-12-09 Fernando Perez <fperez@colorado.edu>
3994 2003-12-09 Fernando Perez <fperez@colorado.edu>
3986
3995
3987 * IPython/genutils.py (page): patch for the pager to work across
3996 * IPython/genutils.py (page): patch for the pager to work across
3988 various versions of Windows. By Gary Bishop.
3997 various versions of Windows. By Gary Bishop.
3989
3998
3990 2003-12-04 Fernando Perez <fperez@colorado.edu>
3999 2003-12-04 Fernando Perez <fperez@colorado.edu>
3991
4000
3992 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4001 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3993 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4002 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3994 While I tested this and it looks ok, there may still be corner
4003 While I tested this and it looks ok, there may still be corner
3995 cases I've missed.
4004 cases I've missed.
3996
4005
3997 2003-12-01 Fernando Perez <fperez@colorado.edu>
4006 2003-12-01 Fernando Perez <fperez@colorado.edu>
3998
4007
3999 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4008 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4000 where a line like 'p,q=1,2' would fail because the automagic
4009 where a line like 'p,q=1,2' would fail because the automagic
4001 system would be triggered for @p.
4010 system would be triggered for @p.
4002
4011
4003 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4012 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4004 cleanups, code unmodified.
4013 cleanups, code unmodified.
4005
4014
4006 * IPython/genutils.py (Term): added a class for IPython to handle
4015 * IPython/genutils.py (Term): added a class for IPython to handle
4007 output. In most cases it will just be a proxy for stdout/err, but
4016 output. In most cases it will just be a proxy for stdout/err, but
4008 having this allows modifications to be made for some platforms,
4017 having this allows modifications to be made for some platforms,
4009 such as handling color escapes under Windows. All of this code
4018 such as handling color escapes under Windows. All of this code
4010 was contributed by Gary Bishop, with minor modifications by me.
4019 was contributed by Gary Bishop, with minor modifications by me.
4011 The actual changes affect many files.
4020 The actual changes affect many files.
4012
4021
4013 2003-11-30 Fernando Perez <fperez@colorado.edu>
4022 2003-11-30 Fernando Perez <fperez@colorado.edu>
4014
4023
4015 * IPython/iplib.py (file_matches): new completion code, courtesy
4024 * IPython/iplib.py (file_matches): new completion code, courtesy
4016 of Jeff Collins. This enables filename completion again under
4025 of Jeff Collins. This enables filename completion again under
4017 python 2.3, which disabled it at the C level.
4026 python 2.3, which disabled it at the C level.
4018
4027
4019 2003-11-11 Fernando Perez <fperez@colorado.edu>
4028 2003-11-11 Fernando Perez <fperez@colorado.edu>
4020
4029
4021 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4030 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4022 for Numeric.array(map(...)), but often convenient.
4031 for Numeric.array(map(...)), but often convenient.
4023
4032
4024 2003-11-05 Fernando Perez <fperez@colorado.edu>
4033 2003-11-05 Fernando Perez <fperez@colorado.edu>
4025
4034
4026 * IPython/numutils.py (frange): Changed a call from int() to
4035 * IPython/numutils.py (frange): Changed a call from int() to
4027 int(round()) to prevent a problem reported with arange() in the
4036 int(round()) to prevent a problem reported with arange() in the
4028 numpy list.
4037 numpy list.
4029
4038
4030 2003-10-06 Fernando Perez <fperez@colorado.edu>
4039 2003-10-06 Fernando Perez <fperez@colorado.edu>
4031
4040
4032 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4041 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4033 prevent crashes if sys lacks an argv attribute (it happens with
4042 prevent crashes if sys lacks an argv attribute (it happens with
4034 embedded interpreters which build a bare-bones sys module).
4043 embedded interpreters which build a bare-bones sys module).
4035 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4044 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4036
4045
4037 2003-09-24 Fernando Perez <fperez@colorado.edu>
4046 2003-09-24 Fernando Perez <fperez@colorado.edu>
4038
4047
4039 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4048 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4040 to protect against poorly written user objects where __getattr__
4049 to protect against poorly written user objects where __getattr__
4041 raises exceptions other than AttributeError. Thanks to a bug
4050 raises exceptions other than AttributeError. Thanks to a bug
4042 report by Oliver Sander <osander-AT-gmx.de>.
4051 report by Oliver Sander <osander-AT-gmx.de>.
4043
4052
4044 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4053 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4045 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4054 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4046
4055
4047 2003-09-09 Fernando Perez <fperez@colorado.edu>
4056 2003-09-09 Fernando Perez <fperez@colorado.edu>
4048
4057
4049 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4058 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4050 unpacking a list whith a callable as first element would
4059 unpacking a list whith a callable as first element would
4051 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4060 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4052 Collins.
4061 Collins.
4053
4062
4054 2003-08-25 *** Released version 0.5.0
4063 2003-08-25 *** Released version 0.5.0
4055
4064
4056 2003-08-22 Fernando Perez <fperez@colorado.edu>
4065 2003-08-22 Fernando Perez <fperez@colorado.edu>
4057
4066
4058 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4067 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4059 improperly defined user exceptions. Thanks to feedback from Mark
4068 improperly defined user exceptions. Thanks to feedback from Mark
4060 Russell <mrussell-AT-verio.net>.
4069 Russell <mrussell-AT-verio.net>.
4061
4070
4062 2003-08-20 Fernando Perez <fperez@colorado.edu>
4071 2003-08-20 Fernando Perez <fperez@colorado.edu>
4063
4072
4064 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4073 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4065 printing so that it would print multi-line string forms starting
4074 printing so that it would print multi-line string forms starting
4066 with a new line. This way the formatting is better respected for
4075 with a new line. This way the formatting is better respected for
4067 objects which work hard to make nice string forms.
4076 objects which work hard to make nice string forms.
4068
4077
4069 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4078 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4070 autocall would overtake data access for objects with both
4079 autocall would overtake data access for objects with both
4071 __getitem__ and __call__.
4080 __getitem__ and __call__.
4072
4081
4073 2003-08-19 *** Released version 0.5.0-rc1
4082 2003-08-19 *** Released version 0.5.0-rc1
4074
4083
4075 2003-08-19 Fernando Perez <fperez@colorado.edu>
4084 2003-08-19 Fernando Perez <fperez@colorado.edu>
4076
4085
4077 * IPython/deep_reload.py (load_tail): single tiny change here
4086 * IPython/deep_reload.py (load_tail): single tiny change here
4078 seems to fix the long-standing bug of dreload() failing to work
4087 seems to fix the long-standing bug of dreload() failing to work
4079 for dotted names. But this module is pretty tricky, so I may have
4088 for dotted names. But this module is pretty tricky, so I may have
4080 missed some subtlety. Needs more testing!.
4089 missed some subtlety. Needs more testing!.
4081
4090
4082 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4091 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4083 exceptions which have badly implemented __str__ methods.
4092 exceptions which have badly implemented __str__ methods.
4084 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4093 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4085 which I've been getting reports about from Python 2.3 users. I
4094 which I've been getting reports about from Python 2.3 users. I
4086 wish I had a simple test case to reproduce the problem, so I could
4095 wish I had a simple test case to reproduce the problem, so I could
4087 either write a cleaner workaround or file a bug report if
4096 either write a cleaner workaround or file a bug report if
4088 necessary.
4097 necessary.
4089
4098
4090 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4099 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4091 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4100 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4092 a bug report by Tjabo Kloppenburg.
4101 a bug report by Tjabo Kloppenburg.
4093
4102
4094 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4103 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4095 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4104 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4096 seems rather unstable. Thanks to a bug report by Tjabo
4105 seems rather unstable. Thanks to a bug report by Tjabo
4097 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4106 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4098
4107
4099 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4108 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4100 this out soon because of the critical fixes in the inner loop for
4109 this out soon because of the critical fixes in the inner loop for
4101 generators.
4110 generators.
4102
4111
4103 * IPython/Magic.py (Magic.getargspec): removed. This (and
4112 * IPython/Magic.py (Magic.getargspec): removed. This (and
4104 _get_def) have been obsoleted by OInspect for a long time, I
4113 _get_def) have been obsoleted by OInspect for a long time, I
4105 hadn't noticed that they were dead code.
4114 hadn't noticed that they were dead code.
4106 (Magic._ofind): restored _ofind functionality for a few literals
4115 (Magic._ofind): restored _ofind functionality for a few literals
4107 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4116 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4108 for things like "hello".capitalize?, since that would require a
4117 for things like "hello".capitalize?, since that would require a
4109 potentially dangerous eval() again.
4118 potentially dangerous eval() again.
4110
4119
4111 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4120 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4112 logic a bit more to clean up the escapes handling and minimize the
4121 logic a bit more to clean up the escapes handling and minimize the
4113 use of _ofind to only necessary cases. The interactive 'feel' of
4122 use of _ofind to only necessary cases. The interactive 'feel' of
4114 IPython should have improved quite a bit with the changes in
4123 IPython should have improved quite a bit with the changes in
4115 _prefilter and _ofind (besides being far safer than before).
4124 _prefilter and _ofind (besides being far safer than before).
4116
4125
4117 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4126 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4118 obscure, never reported). Edit would fail to find the object to
4127 obscure, never reported). Edit would fail to find the object to
4119 edit under some circumstances.
4128 edit under some circumstances.
4120 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4129 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4121 which were causing double-calling of generators. Those eval calls
4130 which were causing double-calling of generators. Those eval calls
4122 were _very_ dangerous, since code with side effects could be
4131 were _very_ dangerous, since code with side effects could be
4123 triggered. As they say, 'eval is evil'... These were the
4132 triggered. As they say, 'eval is evil'... These were the
4124 nastiest evals in IPython. Besides, _ofind is now far simpler,
4133 nastiest evals in IPython. Besides, _ofind is now far simpler,
4125 and it should also be quite a bit faster. Its use of inspect is
4134 and it should also be quite a bit faster. Its use of inspect is
4126 also safer, so perhaps some of the inspect-related crashes I've
4135 also safer, so perhaps some of the inspect-related crashes I've
4127 seen lately with Python 2.3 might be taken care of. That will
4136 seen lately with Python 2.3 might be taken care of. That will
4128 need more testing.
4137 need more testing.
4129
4138
4130 2003-08-17 Fernando Perez <fperez@colorado.edu>
4139 2003-08-17 Fernando Perez <fperez@colorado.edu>
4131
4140
4132 * IPython/iplib.py (InteractiveShell._prefilter): significant
4141 * IPython/iplib.py (InteractiveShell._prefilter): significant
4133 simplifications to the logic for handling user escapes. Faster
4142 simplifications to the logic for handling user escapes. Faster
4134 and simpler code.
4143 and simpler code.
4135
4144
4136 2003-08-14 Fernando Perez <fperez@colorado.edu>
4145 2003-08-14 Fernando Perez <fperez@colorado.edu>
4137
4146
4138 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4147 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4139 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4148 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4140 but it should be quite a bit faster. And the recursive version
4149 but it should be quite a bit faster. And the recursive version
4141 generated O(log N) intermediate storage for all rank>1 arrays,
4150 generated O(log N) intermediate storage for all rank>1 arrays,
4142 even if they were contiguous.
4151 even if they were contiguous.
4143 (l1norm): Added this function.
4152 (l1norm): Added this function.
4144 (norm): Added this function for arbitrary norms (including
4153 (norm): Added this function for arbitrary norms (including
4145 l-infinity). l1 and l2 are still special cases for convenience
4154 l-infinity). l1 and l2 are still special cases for convenience
4146 and speed.
4155 and speed.
4147
4156
4148 2003-08-03 Fernando Perez <fperez@colorado.edu>
4157 2003-08-03 Fernando Perez <fperez@colorado.edu>
4149
4158
4150 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4159 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4151 exceptions, which now raise PendingDeprecationWarnings in Python
4160 exceptions, which now raise PendingDeprecationWarnings in Python
4152 2.3. There were some in Magic and some in Gnuplot2.
4161 2.3. There were some in Magic and some in Gnuplot2.
4153
4162
4154 2003-06-30 Fernando Perez <fperez@colorado.edu>
4163 2003-06-30 Fernando Perez <fperez@colorado.edu>
4155
4164
4156 * IPython/genutils.py (page): modified to call curses only for
4165 * IPython/genutils.py (page): modified to call curses only for
4157 terminals where TERM=='xterm'. After problems under many other
4166 terminals where TERM=='xterm'. After problems under many other
4158 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4167 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4159
4168
4160 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4169 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4161 would be triggered when readline was absent. This was just an old
4170 would be triggered when readline was absent. This was just an old
4162 debugging statement I'd forgotten to take out.
4171 debugging statement I'd forgotten to take out.
4163
4172
4164 2003-06-20 Fernando Perez <fperez@colorado.edu>
4173 2003-06-20 Fernando Perez <fperez@colorado.edu>
4165
4174
4166 * IPython/genutils.py (clock): modified to return only user time
4175 * IPython/genutils.py (clock): modified to return only user time
4167 (not counting system time), after a discussion on scipy. While
4176 (not counting system time), after a discussion on scipy. While
4168 system time may be a useful quantity occasionally, it may much
4177 system time may be a useful quantity occasionally, it may much
4169 more easily be skewed by occasional swapping or other similar
4178 more easily be skewed by occasional swapping or other similar
4170 activity.
4179 activity.
4171
4180
4172 2003-06-05 Fernando Perez <fperez@colorado.edu>
4181 2003-06-05 Fernando Perez <fperez@colorado.edu>
4173
4182
4174 * IPython/numutils.py (identity): new function, for building
4183 * IPython/numutils.py (identity): new function, for building
4175 arbitrary rank Kronecker deltas (mostly backwards compatible with
4184 arbitrary rank Kronecker deltas (mostly backwards compatible with
4176 Numeric.identity)
4185 Numeric.identity)
4177
4186
4178 2003-06-03 Fernando Perez <fperez@colorado.edu>
4187 2003-06-03 Fernando Perez <fperez@colorado.edu>
4179
4188
4180 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4189 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4181 arguments passed to magics with spaces, to allow trailing '\' to
4190 arguments passed to magics with spaces, to allow trailing '\' to
4182 work normally (mainly for Windows users).
4191 work normally (mainly for Windows users).
4183
4192
4184 2003-05-29 Fernando Perez <fperez@colorado.edu>
4193 2003-05-29 Fernando Perez <fperez@colorado.edu>
4185
4194
4186 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4195 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4187 instead of pydoc.help. This fixes a bizarre behavior where
4196 instead of pydoc.help. This fixes a bizarre behavior where
4188 printing '%s' % locals() would trigger the help system. Now
4197 printing '%s' % locals() would trigger the help system. Now
4189 ipython behaves like normal python does.
4198 ipython behaves like normal python does.
4190
4199
4191 Note that if one does 'from pydoc import help', the bizarre
4200 Note that if one does 'from pydoc import help', the bizarre
4192 behavior returns, but this will also happen in normal python, so
4201 behavior returns, but this will also happen in normal python, so
4193 it's not an ipython bug anymore (it has to do with how pydoc.help
4202 it's not an ipython bug anymore (it has to do with how pydoc.help
4194 is implemented).
4203 is implemented).
4195
4204
4196 2003-05-22 Fernando Perez <fperez@colorado.edu>
4205 2003-05-22 Fernando Perez <fperez@colorado.edu>
4197
4206
4198 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4207 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4199 return [] instead of None when nothing matches, also match to end
4208 return [] instead of None when nothing matches, also match to end
4200 of line. Patch by Gary Bishop.
4209 of line. Patch by Gary Bishop.
4201
4210
4202 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4211 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4203 protection as before, for files passed on the command line. This
4212 protection as before, for files passed on the command line. This
4204 prevents the CrashHandler from kicking in if user files call into
4213 prevents the CrashHandler from kicking in if user files call into
4205 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4214 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4206 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4215 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4207
4216
4208 2003-05-20 *** Released version 0.4.0
4217 2003-05-20 *** Released version 0.4.0
4209
4218
4210 2003-05-20 Fernando Perez <fperez@colorado.edu>
4219 2003-05-20 Fernando Perez <fperez@colorado.edu>
4211
4220
4212 * setup.py: added support for manpages. It's a bit hackish b/c of
4221 * setup.py: added support for manpages. It's a bit hackish b/c of
4213 a bug in the way the bdist_rpm distutils target handles gzipped
4222 a bug in the way the bdist_rpm distutils target handles gzipped
4214 manpages, but it works. After a patch by Jack.
4223 manpages, but it works. After a patch by Jack.
4215
4224
4216 2003-05-19 Fernando Perez <fperez@colorado.edu>
4225 2003-05-19 Fernando Perez <fperez@colorado.edu>
4217
4226
4218 * IPython/numutils.py: added a mockup of the kinds module, since
4227 * IPython/numutils.py: added a mockup of the kinds module, since
4219 it was recently removed from Numeric. This way, numutils will
4228 it was recently removed from Numeric. This way, numutils will
4220 work for all users even if they are missing kinds.
4229 work for all users even if they are missing kinds.
4221
4230
4222 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4231 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4223 failure, which can occur with SWIG-wrapped extensions. After a
4232 failure, which can occur with SWIG-wrapped extensions. After a
4224 crash report from Prabhu.
4233 crash report from Prabhu.
4225
4234
4226 2003-05-16 Fernando Perez <fperez@colorado.edu>
4235 2003-05-16 Fernando Perez <fperez@colorado.edu>
4227
4236
4228 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4237 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4229 protect ipython from user code which may call directly
4238 protect ipython from user code which may call directly
4230 sys.excepthook (this looks like an ipython crash to the user, even
4239 sys.excepthook (this looks like an ipython crash to the user, even
4231 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4240 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4232 This is especially important to help users of WxWindows, but may
4241 This is especially important to help users of WxWindows, but may
4233 also be useful in other cases.
4242 also be useful in other cases.
4234
4243
4235 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4244 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4236 an optional tb_offset to be specified, and to preserve exception
4245 an optional tb_offset to be specified, and to preserve exception
4237 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4246 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4238
4247
4239 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4248 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4240
4249
4241 2003-05-15 Fernando Perez <fperez@colorado.edu>
4250 2003-05-15 Fernando Perez <fperez@colorado.edu>
4242
4251
4243 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4252 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4244 installing for a new user under Windows.
4253 installing for a new user under Windows.
4245
4254
4246 2003-05-12 Fernando Perez <fperez@colorado.edu>
4255 2003-05-12 Fernando Perez <fperez@colorado.edu>
4247
4256
4248 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4257 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4249 handler for Emacs comint-based lines. Currently it doesn't do
4258 handler for Emacs comint-based lines. Currently it doesn't do
4250 much (but importantly, it doesn't update the history cache). In
4259 much (but importantly, it doesn't update the history cache). In
4251 the future it may be expanded if Alex needs more functionality
4260 the future it may be expanded if Alex needs more functionality
4252 there.
4261 there.
4253
4262
4254 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4263 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4255 info to crash reports.
4264 info to crash reports.
4256
4265
4257 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4266 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4258 just like Python's -c. Also fixed crash with invalid -color
4267 just like Python's -c. Also fixed crash with invalid -color
4259 option value at startup. Thanks to Will French
4268 option value at startup. Thanks to Will French
4260 <wfrench-AT-bestweb.net> for the bug report.
4269 <wfrench-AT-bestweb.net> for the bug report.
4261
4270
4262 2003-05-09 Fernando Perez <fperez@colorado.edu>
4271 2003-05-09 Fernando Perez <fperez@colorado.edu>
4263
4272
4264 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4273 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4265 to EvalDict (it's a mapping, after all) and simplified its code
4274 to EvalDict (it's a mapping, after all) and simplified its code
4266 quite a bit, after a nice discussion on c.l.py where Gustavo
4275 quite a bit, after a nice discussion on c.l.py where Gustavo
4267 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4276 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4268
4277
4269 2003-04-30 Fernando Perez <fperez@colorado.edu>
4278 2003-04-30 Fernando Perez <fperez@colorado.edu>
4270
4279
4271 * IPython/genutils.py (timings_out): modified it to reduce its
4280 * IPython/genutils.py (timings_out): modified it to reduce its
4272 overhead in the common reps==1 case.
4281 overhead in the common reps==1 case.
4273
4282
4274 2003-04-29 Fernando Perez <fperez@colorado.edu>
4283 2003-04-29 Fernando Perez <fperez@colorado.edu>
4275
4284
4276 * IPython/genutils.py (timings_out): Modified to use the resource
4285 * IPython/genutils.py (timings_out): Modified to use the resource
4277 module, which avoids the wraparound problems of time.clock().
4286 module, which avoids the wraparound problems of time.clock().
4278
4287
4279 2003-04-17 *** Released version 0.2.15pre4
4288 2003-04-17 *** Released version 0.2.15pre4
4280
4289
4281 2003-04-17 Fernando Perez <fperez@colorado.edu>
4290 2003-04-17 Fernando Perez <fperez@colorado.edu>
4282
4291
4283 * setup.py (scriptfiles): Split windows-specific stuff over to a
4292 * setup.py (scriptfiles): Split windows-specific stuff over to a
4284 separate file, in an attempt to have a Windows GUI installer.
4293 separate file, in an attempt to have a Windows GUI installer.
4285 That didn't work, but part of the groundwork is done.
4294 That didn't work, but part of the groundwork is done.
4286
4295
4287 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4296 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4288 indent/unindent with 4 spaces. Particularly useful in combination
4297 indent/unindent with 4 spaces. Particularly useful in combination
4289 with the new auto-indent option.
4298 with the new auto-indent option.
4290
4299
4291 2003-04-16 Fernando Perez <fperez@colorado.edu>
4300 2003-04-16 Fernando Perez <fperez@colorado.edu>
4292
4301
4293 * IPython/Magic.py: various replacements of self.rc for
4302 * IPython/Magic.py: various replacements of self.rc for
4294 self.shell.rc. A lot more remains to be done to fully disentangle
4303 self.shell.rc. A lot more remains to be done to fully disentangle
4295 this class from the main Shell class.
4304 this class from the main Shell class.
4296
4305
4297 * IPython/GnuplotRuntime.py: added checks for mouse support so
4306 * IPython/GnuplotRuntime.py: added checks for mouse support so
4298 that we don't try to enable it if the current gnuplot doesn't
4307 that we don't try to enable it if the current gnuplot doesn't
4299 really support it. Also added checks so that we don't try to
4308 really support it. Also added checks so that we don't try to
4300 enable persist under Windows (where Gnuplot doesn't recognize the
4309 enable persist under Windows (where Gnuplot doesn't recognize the
4301 option).
4310 option).
4302
4311
4303 * IPython/iplib.py (InteractiveShell.interact): Added optional
4312 * IPython/iplib.py (InteractiveShell.interact): Added optional
4304 auto-indenting code, after a patch by King C. Shu
4313 auto-indenting code, after a patch by King C. Shu
4305 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4314 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4306 get along well with pasting indented code. If I ever figure out
4315 get along well with pasting indented code. If I ever figure out
4307 how to make that part go well, it will become on by default.
4316 how to make that part go well, it will become on by default.
4308
4317
4309 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4318 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4310 crash ipython if there was an unmatched '%' in the user's prompt
4319 crash ipython if there was an unmatched '%' in the user's prompt
4311 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4320 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4312
4321
4313 * IPython/iplib.py (InteractiveShell.interact): removed the
4322 * IPython/iplib.py (InteractiveShell.interact): removed the
4314 ability to ask the user whether he wants to crash or not at the
4323 ability to ask the user whether he wants to crash or not at the
4315 'last line' exception handler. Calling functions at that point
4324 'last line' exception handler. Calling functions at that point
4316 changes the stack, and the error reports would have incorrect
4325 changes the stack, and the error reports would have incorrect
4317 tracebacks.
4326 tracebacks.
4318
4327
4319 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4328 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4320 pass through a peger a pretty-printed form of any object. After a
4329 pass through a peger a pretty-printed form of any object. After a
4321 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4330 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4322
4331
4323 2003-04-14 Fernando Perez <fperez@colorado.edu>
4332 2003-04-14 Fernando Perez <fperez@colorado.edu>
4324
4333
4325 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4334 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4326 all files in ~ would be modified at first install (instead of
4335 all files in ~ would be modified at first install (instead of
4327 ~/.ipython). This could be potentially disastrous, as the
4336 ~/.ipython). This could be potentially disastrous, as the
4328 modification (make line-endings native) could damage binary files.
4337 modification (make line-endings native) could damage binary files.
4329
4338
4330 2003-04-10 Fernando Perez <fperez@colorado.edu>
4339 2003-04-10 Fernando Perez <fperez@colorado.edu>
4331
4340
4332 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4341 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4333 handle only lines which are invalid python. This now means that
4342 handle only lines which are invalid python. This now means that
4334 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4343 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4335 for the bug report.
4344 for the bug report.
4336
4345
4337 2003-04-01 Fernando Perez <fperez@colorado.edu>
4346 2003-04-01 Fernando Perez <fperez@colorado.edu>
4338
4347
4339 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4348 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4340 where failing to set sys.last_traceback would crash pdb.pm().
4349 where failing to set sys.last_traceback would crash pdb.pm().
4341 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4350 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4342 report.
4351 report.
4343
4352
4344 2003-03-25 Fernando Perez <fperez@colorado.edu>
4353 2003-03-25 Fernando Perez <fperez@colorado.edu>
4345
4354
4346 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4355 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4347 before printing it (it had a lot of spurious blank lines at the
4356 before printing it (it had a lot of spurious blank lines at the
4348 end).
4357 end).
4349
4358
4350 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4359 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4351 output would be sent 21 times! Obviously people don't use this
4360 output would be sent 21 times! Obviously people don't use this
4352 too often, or I would have heard about it.
4361 too often, or I would have heard about it.
4353
4362
4354 2003-03-24 Fernando Perez <fperez@colorado.edu>
4363 2003-03-24 Fernando Perez <fperez@colorado.edu>
4355
4364
4356 * setup.py (scriptfiles): renamed the data_files parameter from
4365 * setup.py (scriptfiles): renamed the data_files parameter from
4357 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4366 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4358 for the patch.
4367 for the patch.
4359
4368
4360 2003-03-20 Fernando Perez <fperez@colorado.edu>
4369 2003-03-20 Fernando Perez <fperez@colorado.edu>
4361
4370
4362 * IPython/genutils.py (error): added error() and fatal()
4371 * IPython/genutils.py (error): added error() and fatal()
4363 functions.
4372 functions.
4364
4373
4365 2003-03-18 *** Released version 0.2.15pre3
4374 2003-03-18 *** Released version 0.2.15pre3
4366
4375
4367 2003-03-18 Fernando Perez <fperez@colorado.edu>
4376 2003-03-18 Fernando Perez <fperez@colorado.edu>
4368
4377
4369 * setupext/install_data_ext.py
4378 * setupext/install_data_ext.py
4370 (install_data_ext.initialize_options): Class contributed by Jack
4379 (install_data_ext.initialize_options): Class contributed by Jack
4371 Moffit for fixing the old distutils hack. He is sending this to
4380 Moffit for fixing the old distutils hack. He is sending this to
4372 the distutils folks so in the future we may not need it as a
4381 the distutils folks so in the future we may not need it as a
4373 private fix.
4382 private fix.
4374
4383
4375 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4384 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4376 changes for Debian packaging. See his patch for full details.
4385 changes for Debian packaging. See his patch for full details.
4377 The old distutils hack of making the ipythonrc* files carry a
4386 The old distutils hack of making the ipythonrc* files carry a
4378 bogus .py extension is gone, at last. Examples were moved to a
4387 bogus .py extension is gone, at last. Examples were moved to a
4379 separate subdir under doc/, and the separate executable scripts
4388 separate subdir under doc/, and the separate executable scripts
4380 now live in their own directory. Overall a great cleanup. The
4389 now live in their own directory. Overall a great cleanup. The
4381 manual was updated to use the new files, and setup.py has been
4390 manual was updated to use the new files, and setup.py has been
4382 fixed for this setup.
4391 fixed for this setup.
4383
4392
4384 * IPython/PyColorize.py (Parser.usage): made non-executable and
4393 * IPython/PyColorize.py (Parser.usage): made non-executable and
4385 created a pycolor wrapper around it to be included as a script.
4394 created a pycolor wrapper around it to be included as a script.
4386
4395
4387 2003-03-12 *** Released version 0.2.15pre2
4396 2003-03-12 *** Released version 0.2.15pre2
4388
4397
4389 2003-03-12 Fernando Perez <fperez@colorado.edu>
4398 2003-03-12 Fernando Perez <fperez@colorado.edu>
4390
4399
4391 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4400 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4392 long-standing problem with garbage characters in some terminals.
4401 long-standing problem with garbage characters in some terminals.
4393 The issue was really that the \001 and \002 escapes must _only_ be
4402 The issue was really that the \001 and \002 escapes must _only_ be
4394 passed to input prompts (which call readline), but _never_ to
4403 passed to input prompts (which call readline), but _never_ to
4395 normal text to be printed on screen. I changed ColorANSI to have
4404 normal text to be printed on screen. I changed ColorANSI to have
4396 two classes: TermColors and InputTermColors, each with the
4405 two classes: TermColors and InputTermColors, each with the
4397 appropriate escapes for input prompts or normal text. The code in
4406 appropriate escapes for input prompts or normal text. The code in
4398 Prompts.py got slightly more complicated, but this very old and
4407 Prompts.py got slightly more complicated, but this very old and
4399 annoying bug is finally fixed.
4408 annoying bug is finally fixed.
4400
4409
4401 All the credit for nailing down the real origin of this problem
4410 All the credit for nailing down the real origin of this problem
4402 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4411 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4403 *Many* thanks to him for spending quite a bit of effort on this.
4412 *Many* thanks to him for spending quite a bit of effort on this.
4404
4413
4405 2003-03-05 *** Released version 0.2.15pre1
4414 2003-03-05 *** Released version 0.2.15pre1
4406
4415
4407 2003-03-03 Fernando Perez <fperez@colorado.edu>
4416 2003-03-03 Fernando Perez <fperez@colorado.edu>
4408
4417
4409 * IPython/FakeModule.py: Moved the former _FakeModule to a
4418 * IPython/FakeModule.py: Moved the former _FakeModule to a
4410 separate file, because it's also needed by Magic (to fix a similar
4419 separate file, because it's also needed by Magic (to fix a similar
4411 pickle-related issue in @run).
4420 pickle-related issue in @run).
4412
4421
4413 2003-03-02 Fernando Perez <fperez@colorado.edu>
4422 2003-03-02 Fernando Perez <fperez@colorado.edu>
4414
4423
4415 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4424 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4416 the autocall option at runtime.
4425 the autocall option at runtime.
4417 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4426 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4418 across Magic.py to start separating Magic from InteractiveShell.
4427 across Magic.py to start separating Magic from InteractiveShell.
4419 (Magic._ofind): Fixed to return proper namespace for dotted
4428 (Magic._ofind): Fixed to return proper namespace for dotted
4420 names. Before, a dotted name would always return 'not currently
4429 names. Before, a dotted name would always return 'not currently
4421 defined', because it would find the 'parent'. s.x would be found,
4430 defined', because it would find the 'parent'. s.x would be found,
4422 but since 'x' isn't defined by itself, it would get confused.
4431 but since 'x' isn't defined by itself, it would get confused.
4423 (Magic.magic_run): Fixed pickling problems reported by Ralf
4432 (Magic.magic_run): Fixed pickling problems reported by Ralf
4424 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4433 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4425 that I'd used when Mike Heeter reported similar issues at the
4434 that I'd used when Mike Heeter reported similar issues at the
4426 top-level, but now for @run. It boils down to injecting the
4435 top-level, but now for @run. It boils down to injecting the
4427 namespace where code is being executed with something that looks
4436 namespace where code is being executed with something that looks
4428 enough like a module to fool pickle.dump(). Since a pickle stores
4437 enough like a module to fool pickle.dump(). Since a pickle stores
4429 a named reference to the importing module, we need this for
4438 a named reference to the importing module, we need this for
4430 pickles to save something sensible.
4439 pickles to save something sensible.
4431
4440
4432 * IPython/ipmaker.py (make_IPython): added an autocall option.
4441 * IPython/ipmaker.py (make_IPython): added an autocall option.
4433
4442
4434 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4443 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4435 the auto-eval code. Now autocalling is an option, and the code is
4444 the auto-eval code. Now autocalling is an option, and the code is
4436 also vastly safer. There is no more eval() involved at all.
4445 also vastly safer. There is no more eval() involved at all.
4437
4446
4438 2003-03-01 Fernando Perez <fperez@colorado.edu>
4447 2003-03-01 Fernando Perez <fperez@colorado.edu>
4439
4448
4440 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4449 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4441 dict with named keys instead of a tuple.
4450 dict with named keys instead of a tuple.
4442
4451
4443 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4452 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4444
4453
4445 * setup.py (make_shortcut): Fixed message about directories
4454 * setup.py (make_shortcut): Fixed message about directories
4446 created during Windows installation (the directories were ok, just
4455 created during Windows installation (the directories were ok, just
4447 the printed message was misleading). Thanks to Chris Liechti
4456 the printed message was misleading). Thanks to Chris Liechti
4448 <cliechti-AT-gmx.net> for the heads up.
4457 <cliechti-AT-gmx.net> for the heads up.
4449
4458
4450 2003-02-21 Fernando Perez <fperez@colorado.edu>
4459 2003-02-21 Fernando Perez <fperez@colorado.edu>
4451
4460
4452 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4461 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4453 of ValueError exception when checking for auto-execution. This
4462 of ValueError exception when checking for auto-execution. This
4454 one is raised by things like Numeric arrays arr.flat when the
4463 one is raised by things like Numeric arrays arr.flat when the
4455 array is non-contiguous.
4464 array is non-contiguous.
4456
4465
4457 2003-01-31 Fernando Perez <fperez@colorado.edu>
4466 2003-01-31 Fernando Perez <fperez@colorado.edu>
4458
4467
4459 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4468 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4460 not return any value at all (even though the command would get
4469 not return any value at all (even though the command would get
4461 executed).
4470 executed).
4462 (xsys): Flush stdout right after printing the command to ensure
4471 (xsys): Flush stdout right after printing the command to ensure
4463 proper ordering of commands and command output in the total
4472 proper ordering of commands and command output in the total
4464 output.
4473 output.
4465 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4474 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4466 system/getoutput as defaults. The old ones are kept for
4475 system/getoutput as defaults. The old ones are kept for
4467 compatibility reasons, so no code which uses this library needs
4476 compatibility reasons, so no code which uses this library needs
4468 changing.
4477 changing.
4469
4478
4470 2003-01-27 *** Released version 0.2.14
4479 2003-01-27 *** Released version 0.2.14
4471
4480
4472 2003-01-25 Fernando Perez <fperez@colorado.edu>
4481 2003-01-25 Fernando Perez <fperez@colorado.edu>
4473
4482
4474 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4483 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4475 functions defined in previous edit sessions could not be re-edited
4484 functions defined in previous edit sessions could not be re-edited
4476 (because the temp files were immediately removed). Now temp files
4485 (because the temp files were immediately removed). Now temp files
4477 are removed only at IPython's exit.
4486 are removed only at IPython's exit.
4478 (Magic.magic_run): Improved @run to perform shell-like expansions
4487 (Magic.magic_run): Improved @run to perform shell-like expansions
4479 on its arguments (~users and $VARS). With this, @run becomes more
4488 on its arguments (~users and $VARS). With this, @run becomes more
4480 like a normal command-line.
4489 like a normal command-line.
4481
4490
4482 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4491 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4483 bugs related to embedding and cleaned up that code. A fairly
4492 bugs related to embedding and cleaned up that code. A fairly
4484 important one was the impossibility to access the global namespace
4493 important one was the impossibility to access the global namespace
4485 through the embedded IPython (only local variables were visible).
4494 through the embedded IPython (only local variables were visible).
4486
4495
4487 2003-01-14 Fernando Perez <fperez@colorado.edu>
4496 2003-01-14 Fernando Perez <fperez@colorado.edu>
4488
4497
4489 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4498 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4490 auto-calling to be a bit more conservative. Now it doesn't get
4499 auto-calling to be a bit more conservative. Now it doesn't get
4491 triggered if any of '!=()<>' are in the rest of the input line, to
4500 triggered if any of '!=()<>' are in the rest of the input line, to
4492 allow comparing callables. Thanks to Alex for the heads up.
4501 allow comparing callables. Thanks to Alex for the heads up.
4493
4502
4494 2003-01-07 Fernando Perez <fperez@colorado.edu>
4503 2003-01-07 Fernando Perez <fperez@colorado.edu>
4495
4504
4496 * IPython/genutils.py (page): fixed estimation of the number of
4505 * IPython/genutils.py (page): fixed estimation of the number of
4497 lines in a string to be paged to simply count newlines. This
4506 lines in a string to be paged to simply count newlines. This
4498 prevents over-guessing due to embedded escape sequences. A better
4507 prevents over-guessing due to embedded escape sequences. A better
4499 long-term solution would involve stripping out the control chars
4508 long-term solution would involve stripping out the control chars
4500 for the count, but it's potentially so expensive I just don't
4509 for the count, but it's potentially so expensive I just don't
4501 think it's worth doing.
4510 think it's worth doing.
4502
4511
4503 2002-12-19 *** Released version 0.2.14pre50
4512 2002-12-19 *** Released version 0.2.14pre50
4504
4513
4505 2002-12-19 Fernando Perez <fperez@colorado.edu>
4514 2002-12-19 Fernando Perez <fperez@colorado.edu>
4506
4515
4507 * tools/release (version): Changed release scripts to inform
4516 * tools/release (version): Changed release scripts to inform
4508 Andrea and build a NEWS file with a list of recent changes.
4517 Andrea and build a NEWS file with a list of recent changes.
4509
4518
4510 * IPython/ColorANSI.py (__all__): changed terminal detection
4519 * IPython/ColorANSI.py (__all__): changed terminal detection
4511 code. Seems to work better for xterms without breaking
4520 code. Seems to work better for xterms without breaking
4512 konsole. Will need more testing to determine if WinXP and Mac OSX
4521 konsole. Will need more testing to determine if WinXP and Mac OSX
4513 also work ok.
4522 also work ok.
4514
4523
4515 2002-12-18 *** Released version 0.2.14pre49
4524 2002-12-18 *** Released version 0.2.14pre49
4516
4525
4517 2002-12-18 Fernando Perez <fperez@colorado.edu>
4526 2002-12-18 Fernando Perez <fperez@colorado.edu>
4518
4527
4519 * Docs: added new info about Mac OSX, from Andrea.
4528 * Docs: added new info about Mac OSX, from Andrea.
4520
4529
4521 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4530 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4522 allow direct plotting of python strings whose format is the same
4531 allow direct plotting of python strings whose format is the same
4523 of gnuplot data files.
4532 of gnuplot data files.
4524
4533
4525 2002-12-16 Fernando Perez <fperez@colorado.edu>
4534 2002-12-16 Fernando Perez <fperez@colorado.edu>
4526
4535
4527 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4536 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4528 value of exit question to be acknowledged.
4537 value of exit question to be acknowledged.
4529
4538
4530 2002-12-03 Fernando Perez <fperez@colorado.edu>
4539 2002-12-03 Fernando Perez <fperez@colorado.edu>
4531
4540
4532 * IPython/ipmaker.py: removed generators, which had been added
4541 * IPython/ipmaker.py: removed generators, which had been added
4533 by mistake in an earlier debugging run. This was causing trouble
4542 by mistake in an earlier debugging run. This was causing trouble
4534 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4543 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4535 for pointing this out.
4544 for pointing this out.
4536
4545
4537 2002-11-17 Fernando Perez <fperez@colorado.edu>
4546 2002-11-17 Fernando Perez <fperez@colorado.edu>
4538
4547
4539 * Manual: updated the Gnuplot section.
4548 * Manual: updated the Gnuplot section.
4540
4549
4541 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4550 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4542 a much better split of what goes in Runtime and what goes in
4551 a much better split of what goes in Runtime and what goes in
4543 Interactive.
4552 Interactive.
4544
4553
4545 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4554 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4546 being imported from iplib.
4555 being imported from iplib.
4547
4556
4548 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4557 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4549 for command-passing. Now the global Gnuplot instance is called
4558 for command-passing. Now the global Gnuplot instance is called
4550 'gp' instead of 'g', which was really a far too fragile and
4559 'gp' instead of 'g', which was really a far too fragile and
4551 common name.
4560 common name.
4552
4561
4553 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4562 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4554 bounding boxes generated by Gnuplot for square plots.
4563 bounding boxes generated by Gnuplot for square plots.
4555
4564
4556 * IPython/genutils.py (popkey): new function added. I should
4565 * IPython/genutils.py (popkey): new function added. I should
4557 suggest this on c.l.py as a dict method, it seems useful.
4566 suggest this on c.l.py as a dict method, it seems useful.
4558
4567
4559 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4568 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4560 to transparently handle PostScript generation. MUCH better than
4569 to transparently handle PostScript generation. MUCH better than
4561 the previous plot_eps/replot_eps (which I removed now). The code
4570 the previous plot_eps/replot_eps (which I removed now). The code
4562 is also fairly clean and well documented now (including
4571 is also fairly clean and well documented now (including
4563 docstrings).
4572 docstrings).
4564
4573
4565 2002-11-13 Fernando Perez <fperez@colorado.edu>
4574 2002-11-13 Fernando Perez <fperez@colorado.edu>
4566
4575
4567 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4576 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4568 (inconsistent with options).
4577 (inconsistent with options).
4569
4578
4570 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4579 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4571 manually disabled, I don't know why. Fixed it.
4580 manually disabled, I don't know why. Fixed it.
4572 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4581 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4573 eps output.
4582 eps output.
4574
4583
4575 2002-11-12 Fernando Perez <fperez@colorado.edu>
4584 2002-11-12 Fernando Perez <fperez@colorado.edu>
4576
4585
4577 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4586 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4578 don't propagate up to caller. Fixes crash reported by François
4587 don't propagate up to caller. Fixes crash reported by François
4579 Pinard.
4588 Pinard.
4580
4589
4581 2002-11-09 Fernando Perez <fperez@colorado.edu>
4590 2002-11-09 Fernando Perez <fperez@colorado.edu>
4582
4591
4583 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4592 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4584 history file for new users.
4593 history file for new users.
4585 (make_IPython): fixed bug where initial install would leave the
4594 (make_IPython): fixed bug where initial install would leave the
4586 user running in the .ipython dir.
4595 user running in the .ipython dir.
4587 (make_IPython): fixed bug where config dir .ipython would be
4596 (make_IPython): fixed bug where config dir .ipython would be
4588 created regardless of the given -ipythondir option. Thanks to Cory
4597 created regardless of the given -ipythondir option. Thanks to Cory
4589 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4598 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4590
4599
4591 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4600 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4592 type confirmations. Will need to use it in all of IPython's code
4601 type confirmations. Will need to use it in all of IPython's code
4593 consistently.
4602 consistently.
4594
4603
4595 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4604 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4596 context to print 31 lines instead of the default 5. This will make
4605 context to print 31 lines instead of the default 5. This will make
4597 the crash reports extremely detailed in case the problem is in
4606 the crash reports extremely detailed in case the problem is in
4598 libraries I don't have access to.
4607 libraries I don't have access to.
4599
4608
4600 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4609 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4601 line of defense' code to still crash, but giving users fair
4610 line of defense' code to still crash, but giving users fair
4602 warning. I don't want internal errors to go unreported: if there's
4611 warning. I don't want internal errors to go unreported: if there's
4603 an internal problem, IPython should crash and generate a full
4612 an internal problem, IPython should crash and generate a full
4604 report.
4613 report.
4605
4614
4606 2002-11-08 Fernando Perez <fperez@colorado.edu>
4615 2002-11-08 Fernando Perez <fperez@colorado.edu>
4607
4616
4608 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4617 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4609 otherwise uncaught exceptions which can appear if people set
4618 otherwise uncaught exceptions which can appear if people set
4610 sys.stdout to something badly broken. Thanks to a crash report
4619 sys.stdout to something badly broken. Thanks to a crash report
4611 from henni-AT-mail.brainbot.com.
4620 from henni-AT-mail.brainbot.com.
4612
4621
4613 2002-11-04 Fernando Perez <fperez@colorado.edu>
4622 2002-11-04 Fernando Perez <fperez@colorado.edu>
4614
4623
4615 * IPython/iplib.py (InteractiveShell.interact): added
4624 * IPython/iplib.py (InteractiveShell.interact): added
4616 __IPYTHON__active to the builtins. It's a flag which goes on when
4625 __IPYTHON__active to the builtins. It's a flag which goes on when
4617 the interaction starts and goes off again when it stops. This
4626 the interaction starts and goes off again when it stops. This
4618 allows embedding code to detect being inside IPython. Before this
4627 allows embedding code to detect being inside IPython. Before this
4619 was done via __IPYTHON__, but that only shows that an IPython
4628 was done via __IPYTHON__, but that only shows that an IPython
4620 instance has been created.
4629 instance has been created.
4621
4630
4622 * IPython/Magic.py (Magic.magic_env): I realized that in a
4631 * IPython/Magic.py (Magic.magic_env): I realized that in a
4623 UserDict, instance.data holds the data as a normal dict. So I
4632 UserDict, instance.data holds the data as a normal dict. So I
4624 modified @env to return os.environ.data instead of rebuilding a
4633 modified @env to return os.environ.data instead of rebuilding a
4625 dict by hand.
4634 dict by hand.
4626
4635
4627 2002-11-02 Fernando Perez <fperez@colorado.edu>
4636 2002-11-02 Fernando Perez <fperez@colorado.edu>
4628
4637
4629 * IPython/genutils.py (warn): changed so that level 1 prints no
4638 * IPython/genutils.py (warn): changed so that level 1 prints no
4630 header. Level 2 is now the default (with 'WARNING' header, as
4639 header. Level 2 is now the default (with 'WARNING' header, as
4631 before). I think I tracked all places where changes were needed in
4640 before). I think I tracked all places where changes were needed in
4632 IPython, but outside code using the old level numbering may have
4641 IPython, but outside code using the old level numbering may have
4633 broken.
4642 broken.
4634
4643
4635 * IPython/iplib.py (InteractiveShell.runcode): added this to
4644 * IPython/iplib.py (InteractiveShell.runcode): added this to
4636 handle the tracebacks in SystemExit traps correctly. The previous
4645 handle the tracebacks in SystemExit traps correctly. The previous
4637 code (through interact) was printing more of the stack than
4646 code (through interact) was printing more of the stack than
4638 necessary, showing IPython internal code to the user.
4647 necessary, showing IPython internal code to the user.
4639
4648
4640 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4649 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4641 default. Now that the default at the confirmation prompt is yes,
4650 default. Now that the default at the confirmation prompt is yes,
4642 it's not so intrusive. François' argument that ipython sessions
4651 it's not so intrusive. François' argument that ipython sessions
4643 tend to be complex enough not to lose them from an accidental C-d,
4652 tend to be complex enough not to lose them from an accidental C-d,
4644 is a valid one.
4653 is a valid one.
4645
4654
4646 * IPython/iplib.py (InteractiveShell.interact): added a
4655 * IPython/iplib.py (InteractiveShell.interact): added a
4647 showtraceback() call to the SystemExit trap, and modified the exit
4656 showtraceback() call to the SystemExit trap, and modified the exit
4648 confirmation to have yes as the default.
4657 confirmation to have yes as the default.
4649
4658
4650 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4659 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4651 this file. It's been gone from the code for a long time, this was
4660 this file. It's been gone from the code for a long time, this was
4652 simply leftover junk.
4661 simply leftover junk.
4653
4662
4654 2002-11-01 Fernando Perez <fperez@colorado.edu>
4663 2002-11-01 Fernando Perez <fperez@colorado.edu>
4655
4664
4656 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4665 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4657 added. If set, IPython now traps EOF and asks for
4666 added. If set, IPython now traps EOF and asks for
4658 confirmation. After a request by François Pinard.
4667 confirmation. After a request by François Pinard.
4659
4668
4660 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4669 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4661 of @abort, and with a new (better) mechanism for handling the
4670 of @abort, and with a new (better) mechanism for handling the
4662 exceptions.
4671 exceptions.
4663
4672
4664 2002-10-27 Fernando Perez <fperez@colorado.edu>
4673 2002-10-27 Fernando Perez <fperez@colorado.edu>
4665
4674
4666 * IPython/usage.py (__doc__): updated the --help information and
4675 * IPython/usage.py (__doc__): updated the --help information and
4667 the ipythonrc file to indicate that -log generates
4676 the ipythonrc file to indicate that -log generates
4668 ./ipython.log. Also fixed the corresponding info in @logstart.
4677 ./ipython.log. Also fixed the corresponding info in @logstart.
4669 This and several other fixes in the manuals thanks to reports by
4678 This and several other fixes in the manuals thanks to reports by
4670 François Pinard <pinard-AT-iro.umontreal.ca>.
4679 François Pinard <pinard-AT-iro.umontreal.ca>.
4671
4680
4672 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4681 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4673 refer to @logstart (instead of @log, which doesn't exist).
4682 refer to @logstart (instead of @log, which doesn't exist).
4674
4683
4675 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4684 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4676 AttributeError crash. Thanks to Christopher Armstrong
4685 AttributeError crash. Thanks to Christopher Armstrong
4677 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4686 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4678 introduced recently (in 0.2.14pre37) with the fix to the eval
4687 introduced recently (in 0.2.14pre37) with the fix to the eval
4679 problem mentioned below.
4688 problem mentioned below.
4680
4689
4681 2002-10-17 Fernando Perez <fperez@colorado.edu>
4690 2002-10-17 Fernando Perez <fperez@colorado.edu>
4682
4691
4683 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4692 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4684 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4693 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4685
4694
4686 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4695 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4687 this function to fix a problem reported by Alex Schmolck. He saw
4696 this function to fix a problem reported by Alex Schmolck. He saw
4688 it with list comprehensions and generators, which were getting
4697 it with list comprehensions and generators, which were getting
4689 called twice. The real problem was an 'eval' call in testing for
4698 called twice. The real problem was an 'eval' call in testing for
4690 automagic which was evaluating the input line silently.
4699 automagic which was evaluating the input line silently.
4691
4700
4692 This is a potentially very nasty bug, if the input has side
4701 This is a potentially very nasty bug, if the input has side
4693 effects which must not be repeated. The code is much cleaner now,
4702 effects which must not be repeated. The code is much cleaner now,
4694 without any blanket 'except' left and with a regexp test for
4703 without any blanket 'except' left and with a regexp test for
4695 actual function names.
4704 actual function names.
4696
4705
4697 But an eval remains, which I'm not fully comfortable with. I just
4706 But an eval remains, which I'm not fully comfortable with. I just
4698 don't know how to find out if an expression could be a callable in
4707 don't know how to find out if an expression could be a callable in
4699 the user's namespace without doing an eval on the string. However
4708 the user's namespace without doing an eval on the string. However
4700 that string is now much more strictly checked so that no code
4709 that string is now much more strictly checked so that no code
4701 slips by, so the eval should only happen for things that can
4710 slips by, so the eval should only happen for things that can
4702 really be only function/method names.
4711 really be only function/method names.
4703
4712
4704 2002-10-15 Fernando Perez <fperez@colorado.edu>
4713 2002-10-15 Fernando Perez <fperez@colorado.edu>
4705
4714
4706 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4715 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4707 OSX information to main manual, removed README_Mac_OSX file from
4716 OSX information to main manual, removed README_Mac_OSX file from
4708 distribution. Also updated credits for recent additions.
4717 distribution. Also updated credits for recent additions.
4709
4718
4710 2002-10-10 Fernando Perez <fperez@colorado.edu>
4719 2002-10-10 Fernando Perez <fperez@colorado.edu>
4711
4720
4712 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4721 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4713 terminal-related issues. Many thanks to Andrea Riciputi
4722 terminal-related issues. Many thanks to Andrea Riciputi
4714 <andrea.riciputi-AT-libero.it> for writing it.
4723 <andrea.riciputi-AT-libero.it> for writing it.
4715
4724
4716 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4725 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4717 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4726 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4718
4727
4719 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4728 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4720 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4729 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4721 <syver-en-AT-online.no> who both submitted patches for this problem.
4730 <syver-en-AT-online.no> who both submitted patches for this problem.
4722
4731
4723 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4732 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4724 global embedding to make sure that things don't overwrite user
4733 global embedding to make sure that things don't overwrite user
4725 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4734 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4726
4735
4727 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4736 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4728 compatibility. Thanks to Hayden Callow
4737 compatibility. Thanks to Hayden Callow
4729 <h.callow-AT-elec.canterbury.ac.nz>
4738 <h.callow-AT-elec.canterbury.ac.nz>
4730
4739
4731 2002-10-04 Fernando Perez <fperez@colorado.edu>
4740 2002-10-04 Fernando Perez <fperez@colorado.edu>
4732
4741
4733 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4742 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4734 Gnuplot.File objects.
4743 Gnuplot.File objects.
4735
4744
4736 2002-07-23 Fernando Perez <fperez@colorado.edu>
4745 2002-07-23 Fernando Perez <fperez@colorado.edu>
4737
4746
4738 * IPython/genutils.py (timing): Added timings() and timing() for
4747 * IPython/genutils.py (timing): Added timings() and timing() for
4739 quick access to the most commonly needed data, the execution
4748 quick access to the most commonly needed data, the execution
4740 times. Old timing() renamed to timings_out().
4749 times. Old timing() renamed to timings_out().
4741
4750
4742 2002-07-18 Fernando Perez <fperez@colorado.edu>
4751 2002-07-18 Fernando Perez <fperez@colorado.edu>
4743
4752
4744 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4753 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4745 bug with nested instances disrupting the parent's tab completion.
4754 bug with nested instances disrupting the parent's tab completion.
4746
4755
4747 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4756 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4748 all_completions code to begin the emacs integration.
4757 all_completions code to begin the emacs integration.
4749
4758
4750 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4759 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4751 argument to allow titling individual arrays when plotting.
4760 argument to allow titling individual arrays when plotting.
4752
4761
4753 2002-07-15 Fernando Perez <fperez@colorado.edu>
4762 2002-07-15 Fernando Perez <fperez@colorado.edu>
4754
4763
4755 * setup.py (make_shortcut): changed to retrieve the value of
4764 * setup.py (make_shortcut): changed to retrieve the value of
4756 'Program Files' directory from the registry (this value changes in
4765 'Program Files' directory from the registry (this value changes in
4757 non-english versions of Windows). Thanks to Thomas Fanslau
4766 non-english versions of Windows). Thanks to Thomas Fanslau
4758 <tfanslau-AT-gmx.de> for the report.
4767 <tfanslau-AT-gmx.de> for the report.
4759
4768
4760 2002-07-10 Fernando Perez <fperez@colorado.edu>
4769 2002-07-10 Fernando Perez <fperez@colorado.edu>
4761
4770
4762 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4771 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4763 a bug in pdb, which crashes if a line with only whitespace is
4772 a bug in pdb, which crashes if a line with only whitespace is
4764 entered. Bug report submitted to sourceforge.
4773 entered. Bug report submitted to sourceforge.
4765
4774
4766 2002-07-09 Fernando Perez <fperez@colorado.edu>
4775 2002-07-09 Fernando Perez <fperez@colorado.edu>
4767
4776
4768 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4777 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4769 reporting exceptions (it's a bug in inspect.py, I just set a
4778 reporting exceptions (it's a bug in inspect.py, I just set a
4770 workaround).
4779 workaround).
4771
4780
4772 2002-07-08 Fernando Perez <fperez@colorado.edu>
4781 2002-07-08 Fernando Perez <fperez@colorado.edu>
4773
4782
4774 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4783 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4775 __IPYTHON__ in __builtins__ to show up in user_ns.
4784 __IPYTHON__ in __builtins__ to show up in user_ns.
4776
4785
4777 2002-07-03 Fernando Perez <fperez@colorado.edu>
4786 2002-07-03 Fernando Perez <fperez@colorado.edu>
4778
4787
4779 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4788 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4780 name from @gp_set_instance to @gp_set_default.
4789 name from @gp_set_instance to @gp_set_default.
4781
4790
4782 * IPython/ipmaker.py (make_IPython): default editor value set to
4791 * IPython/ipmaker.py (make_IPython): default editor value set to
4783 '0' (a string), to match the rc file. Otherwise will crash when
4792 '0' (a string), to match the rc file. Otherwise will crash when
4784 .strip() is called on it.
4793 .strip() is called on it.
4785
4794
4786
4795
4787 2002-06-28 Fernando Perez <fperez@colorado.edu>
4796 2002-06-28 Fernando Perez <fperez@colorado.edu>
4788
4797
4789 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4798 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4790 of files in current directory when a file is executed via
4799 of files in current directory when a file is executed via
4791 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4800 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4792
4801
4793 * setup.py (manfiles): fix for rpm builds, submitted by RA
4802 * setup.py (manfiles): fix for rpm builds, submitted by RA
4794 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4803 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4795
4804
4796 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4805 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4797 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4806 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4798 string!). A. Schmolck caught this one.
4807 string!). A. Schmolck caught this one.
4799
4808
4800 2002-06-27 Fernando Perez <fperez@colorado.edu>
4809 2002-06-27 Fernando Perez <fperez@colorado.edu>
4801
4810
4802 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4811 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4803 defined files at the cmd line. __name__ wasn't being set to
4812 defined files at the cmd line. __name__ wasn't being set to
4804 __main__.
4813 __main__.
4805
4814
4806 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4815 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4807 regular lists and tuples besides Numeric arrays.
4816 regular lists and tuples besides Numeric arrays.
4808
4817
4809 * IPython/Prompts.py (CachedOutput.__call__): Added output
4818 * IPython/Prompts.py (CachedOutput.__call__): Added output
4810 supression for input ending with ';'. Similar to Mathematica and
4819 supression for input ending with ';'. Similar to Mathematica and
4811 Matlab. The _* vars and Out[] list are still updated, just like
4820 Matlab. The _* vars and Out[] list are still updated, just like
4812 Mathematica behaves.
4821 Mathematica behaves.
4813
4822
4814 2002-06-25 Fernando Perez <fperez@colorado.edu>
4823 2002-06-25 Fernando Perez <fperez@colorado.edu>
4815
4824
4816 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4825 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4817 .ini extensions for profiels under Windows.
4826 .ini extensions for profiels under Windows.
4818
4827
4819 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4828 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4820 string form. Fix contributed by Alexander Schmolck
4829 string form. Fix contributed by Alexander Schmolck
4821 <a.schmolck-AT-gmx.net>
4830 <a.schmolck-AT-gmx.net>
4822
4831
4823 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4832 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4824 pre-configured Gnuplot instance.
4833 pre-configured Gnuplot instance.
4825
4834
4826 2002-06-21 Fernando Perez <fperez@colorado.edu>
4835 2002-06-21 Fernando Perez <fperez@colorado.edu>
4827
4836
4828 * IPython/numutils.py (exp_safe): new function, works around the
4837 * IPython/numutils.py (exp_safe): new function, works around the
4829 underflow problems in Numeric.
4838 underflow problems in Numeric.
4830 (log2): New fn. Safe log in base 2: returns exact integer answer
4839 (log2): New fn. Safe log in base 2: returns exact integer answer
4831 for exact integer powers of 2.
4840 for exact integer powers of 2.
4832
4841
4833 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4842 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4834 properly.
4843 properly.
4835
4844
4836 2002-06-20 Fernando Perez <fperez@colorado.edu>
4845 2002-06-20 Fernando Perez <fperez@colorado.edu>
4837
4846
4838 * IPython/genutils.py (timing): new function like
4847 * IPython/genutils.py (timing): new function like
4839 Mathematica's. Similar to time_test, but returns more info.
4848 Mathematica's. Similar to time_test, but returns more info.
4840
4849
4841 2002-06-18 Fernando Perez <fperez@colorado.edu>
4850 2002-06-18 Fernando Perez <fperez@colorado.edu>
4842
4851
4843 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4852 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4844 according to Mike Heeter's suggestions.
4853 according to Mike Heeter's suggestions.
4845
4854
4846 2002-06-16 Fernando Perez <fperez@colorado.edu>
4855 2002-06-16 Fernando Perez <fperez@colorado.edu>
4847
4856
4848 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4857 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4849 system. GnuplotMagic is gone as a user-directory option. New files
4858 system. GnuplotMagic is gone as a user-directory option. New files
4850 make it easier to use all the gnuplot stuff both from external
4859 make it easier to use all the gnuplot stuff both from external
4851 programs as well as from IPython. Had to rewrite part of
4860 programs as well as from IPython. Had to rewrite part of
4852 hardcopy() b/c of a strange bug: often the ps files simply don't
4861 hardcopy() b/c of a strange bug: often the ps files simply don't
4853 get created, and require a repeat of the command (often several
4862 get created, and require a repeat of the command (often several
4854 times).
4863 times).
4855
4864
4856 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4865 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4857 resolve output channel at call time, so that if sys.stderr has
4866 resolve output channel at call time, so that if sys.stderr has
4858 been redirected by user this gets honored.
4867 been redirected by user this gets honored.
4859
4868
4860 2002-06-13 Fernando Perez <fperez@colorado.edu>
4869 2002-06-13 Fernando Perez <fperez@colorado.edu>
4861
4870
4862 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4871 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4863 IPShell. Kept a copy with the old names to avoid breaking people's
4872 IPShell. Kept a copy with the old names to avoid breaking people's
4864 embedded code.
4873 embedded code.
4865
4874
4866 * IPython/ipython: simplified it to the bare minimum after
4875 * IPython/ipython: simplified it to the bare minimum after
4867 Holger's suggestions. Added info about how to use it in
4876 Holger's suggestions. Added info about how to use it in
4868 PYTHONSTARTUP.
4877 PYTHONSTARTUP.
4869
4878
4870 * IPython/Shell.py (IPythonShell): changed the options passing
4879 * IPython/Shell.py (IPythonShell): changed the options passing
4871 from a string with funky %s replacements to a straight list. Maybe
4880 from a string with funky %s replacements to a straight list. Maybe
4872 a bit more typing, but it follows sys.argv conventions, so there's
4881 a bit more typing, but it follows sys.argv conventions, so there's
4873 less special-casing to remember.
4882 less special-casing to remember.
4874
4883
4875 2002-06-12 Fernando Perez <fperez@colorado.edu>
4884 2002-06-12 Fernando Perez <fperez@colorado.edu>
4876
4885
4877 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4886 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4878 command. Thanks to a suggestion by Mike Heeter.
4887 command. Thanks to a suggestion by Mike Heeter.
4879 (Magic.magic_pfile): added behavior to look at filenames if given
4888 (Magic.magic_pfile): added behavior to look at filenames if given
4880 arg is not a defined object.
4889 arg is not a defined object.
4881 (Magic.magic_save): New @save function to save code snippets. Also
4890 (Magic.magic_save): New @save function to save code snippets. Also
4882 a Mike Heeter idea.
4891 a Mike Heeter idea.
4883
4892
4884 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4893 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4885 plot() and replot(). Much more convenient now, especially for
4894 plot() and replot(). Much more convenient now, especially for
4886 interactive use.
4895 interactive use.
4887
4896
4888 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4897 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4889 filenames.
4898 filenames.
4890
4899
4891 2002-06-02 Fernando Perez <fperez@colorado.edu>
4900 2002-06-02 Fernando Perez <fperez@colorado.edu>
4892
4901
4893 * IPython/Struct.py (Struct.__init__): modified to admit
4902 * IPython/Struct.py (Struct.__init__): modified to admit
4894 initialization via another struct.
4903 initialization via another struct.
4895
4904
4896 * IPython/genutils.py (SystemExec.__init__): New stateful
4905 * IPython/genutils.py (SystemExec.__init__): New stateful
4897 interface to xsys and bq. Useful for writing system scripts.
4906 interface to xsys and bq. Useful for writing system scripts.
4898
4907
4899 2002-05-30 Fernando Perez <fperez@colorado.edu>
4908 2002-05-30 Fernando Perez <fperez@colorado.edu>
4900
4909
4901 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4910 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4902 documents. This will make the user download smaller (it's getting
4911 documents. This will make the user download smaller (it's getting
4903 too big).
4912 too big).
4904
4913
4905 2002-05-29 Fernando Perez <fperez@colorado.edu>
4914 2002-05-29 Fernando Perez <fperez@colorado.edu>
4906
4915
4907 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4916 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4908 fix problems with shelve and pickle. Seems to work, but I don't
4917 fix problems with shelve and pickle. Seems to work, but I don't
4909 know if corner cases break it. Thanks to Mike Heeter
4918 know if corner cases break it. Thanks to Mike Heeter
4910 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4919 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4911
4920
4912 2002-05-24 Fernando Perez <fperez@colorado.edu>
4921 2002-05-24 Fernando Perez <fperez@colorado.edu>
4913
4922
4914 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4923 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4915 macros having broken.
4924 macros having broken.
4916
4925
4917 2002-05-21 Fernando Perez <fperez@colorado.edu>
4926 2002-05-21 Fernando Perez <fperez@colorado.edu>
4918
4927
4919 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4928 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4920 introduced logging bug: all history before logging started was
4929 introduced logging bug: all history before logging started was
4921 being written one character per line! This came from the redesign
4930 being written one character per line! This came from the redesign
4922 of the input history as a special list which slices to strings,
4931 of the input history as a special list which slices to strings,
4923 not to lists.
4932 not to lists.
4924
4933
4925 2002-05-20 Fernando Perez <fperez@colorado.edu>
4934 2002-05-20 Fernando Perez <fperez@colorado.edu>
4926
4935
4927 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4936 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4928 be an attribute of all classes in this module. The design of these
4937 be an attribute of all classes in this module. The design of these
4929 classes needs some serious overhauling.
4938 classes needs some serious overhauling.
4930
4939
4931 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4940 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4932 which was ignoring '_' in option names.
4941 which was ignoring '_' in option names.
4933
4942
4934 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4943 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4935 'Verbose_novars' to 'Context' and made it the new default. It's a
4944 'Verbose_novars' to 'Context' and made it the new default. It's a
4936 bit more readable and also safer than verbose.
4945 bit more readable and also safer than verbose.
4937
4946
4938 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4947 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4939 triple-quoted strings.
4948 triple-quoted strings.
4940
4949
4941 * IPython/OInspect.py (__all__): new module exposing the object
4950 * IPython/OInspect.py (__all__): new module exposing the object
4942 introspection facilities. Now the corresponding magics are dummy
4951 introspection facilities. Now the corresponding magics are dummy
4943 wrappers around this. Having this module will make it much easier
4952 wrappers around this. Having this module will make it much easier
4944 to put these functions into our modified pdb.
4953 to put these functions into our modified pdb.
4945 This new object inspector system uses the new colorizing module,
4954 This new object inspector system uses the new colorizing module,
4946 so source code and other things are nicely syntax highlighted.
4955 so source code and other things are nicely syntax highlighted.
4947
4956
4948 2002-05-18 Fernando Perez <fperez@colorado.edu>
4957 2002-05-18 Fernando Perez <fperez@colorado.edu>
4949
4958
4950 * IPython/ColorANSI.py: Split the coloring tools into a separate
4959 * IPython/ColorANSI.py: Split the coloring tools into a separate
4951 module so I can use them in other code easier (they were part of
4960 module so I can use them in other code easier (they were part of
4952 ultraTB).
4961 ultraTB).
4953
4962
4954 2002-05-17 Fernando Perez <fperez@colorado.edu>
4963 2002-05-17 Fernando Perez <fperez@colorado.edu>
4955
4964
4956 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4965 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4957 fixed it to set the global 'g' also to the called instance, as
4966 fixed it to set the global 'g' also to the called instance, as
4958 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4967 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4959 user's 'g' variables).
4968 user's 'g' variables).
4960
4969
4961 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4970 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4962 global variables (aliases to _ih,_oh) so that users which expect
4971 global variables (aliases to _ih,_oh) so that users which expect
4963 In[5] or Out[7] to work aren't unpleasantly surprised.
4972 In[5] or Out[7] to work aren't unpleasantly surprised.
4964 (InputList.__getslice__): new class to allow executing slices of
4973 (InputList.__getslice__): new class to allow executing slices of
4965 input history directly. Very simple class, complements the use of
4974 input history directly. Very simple class, complements the use of
4966 macros.
4975 macros.
4967
4976
4968 2002-05-16 Fernando Perez <fperez@colorado.edu>
4977 2002-05-16 Fernando Perez <fperez@colorado.edu>
4969
4978
4970 * setup.py (docdirbase): make doc directory be just doc/IPython
4979 * setup.py (docdirbase): make doc directory be just doc/IPython
4971 without version numbers, it will reduce clutter for users.
4980 without version numbers, it will reduce clutter for users.
4972
4981
4973 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4982 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4974 execfile call to prevent possible memory leak. See for details:
4983 execfile call to prevent possible memory leak. See for details:
4975 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4984 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4976
4985
4977 2002-05-15 Fernando Perez <fperez@colorado.edu>
4986 2002-05-15 Fernando Perez <fperez@colorado.edu>
4978
4987
4979 * IPython/Magic.py (Magic.magic_psource): made the object
4988 * IPython/Magic.py (Magic.magic_psource): made the object
4980 introspection names be more standard: pdoc, pdef, pfile and
4989 introspection names be more standard: pdoc, pdef, pfile and
4981 psource. They all print/page their output, and it makes
4990 psource. They all print/page their output, and it makes
4982 remembering them easier. Kept old names for compatibility as
4991 remembering them easier. Kept old names for compatibility as
4983 aliases.
4992 aliases.
4984
4993
4985 2002-05-14 Fernando Perez <fperez@colorado.edu>
4994 2002-05-14 Fernando Perez <fperez@colorado.edu>
4986
4995
4987 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4996 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4988 what the mouse problem was. The trick is to use gnuplot with temp
4997 what the mouse problem was. The trick is to use gnuplot with temp
4989 files and NOT with pipes (for data communication), because having
4998 files and NOT with pipes (for data communication), because having
4990 both pipes and the mouse on is bad news.
4999 both pipes and the mouse on is bad news.
4991
5000
4992 2002-05-13 Fernando Perez <fperez@colorado.edu>
5001 2002-05-13 Fernando Perez <fperez@colorado.edu>
4993
5002
4994 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5003 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4995 bug. Information would be reported about builtins even when
5004 bug. Information would be reported about builtins even when
4996 user-defined functions overrode them.
5005 user-defined functions overrode them.
4997
5006
4998 2002-05-11 Fernando Perez <fperez@colorado.edu>
5007 2002-05-11 Fernando Perez <fperez@colorado.edu>
4999
5008
5000 * IPython/__init__.py (__all__): removed FlexCompleter from
5009 * IPython/__init__.py (__all__): removed FlexCompleter from
5001 __all__ so that things don't fail in platforms without readline.
5010 __all__ so that things don't fail in platforms without readline.
5002
5011
5003 2002-05-10 Fernando Perez <fperez@colorado.edu>
5012 2002-05-10 Fernando Perez <fperez@colorado.edu>
5004
5013
5005 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5014 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5006 it requires Numeric, effectively making Numeric a dependency for
5015 it requires Numeric, effectively making Numeric a dependency for
5007 IPython.
5016 IPython.
5008
5017
5009 * Released 0.2.13
5018 * Released 0.2.13
5010
5019
5011 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5020 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5012 profiler interface. Now all the major options from the profiler
5021 profiler interface. Now all the major options from the profiler
5013 module are directly supported in IPython, both for single
5022 module are directly supported in IPython, both for single
5014 expressions (@prun) and for full programs (@run -p).
5023 expressions (@prun) and for full programs (@run -p).
5015
5024
5016 2002-05-09 Fernando Perez <fperez@colorado.edu>
5025 2002-05-09 Fernando Perez <fperez@colorado.edu>
5017
5026
5018 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5027 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5019 magic properly formatted for screen.
5028 magic properly formatted for screen.
5020
5029
5021 * setup.py (make_shortcut): Changed things to put pdf version in
5030 * setup.py (make_shortcut): Changed things to put pdf version in
5022 doc/ instead of doc/manual (had to change lyxport a bit).
5031 doc/ instead of doc/manual (had to change lyxport a bit).
5023
5032
5024 * IPython/Magic.py (Profile.string_stats): made profile runs go
5033 * IPython/Magic.py (Profile.string_stats): made profile runs go
5025 through pager (they are long and a pager allows searching, saving,
5034 through pager (they are long and a pager allows searching, saving,
5026 etc.)
5035 etc.)
5027
5036
5028 2002-05-08 Fernando Perez <fperez@colorado.edu>
5037 2002-05-08 Fernando Perez <fperez@colorado.edu>
5029
5038
5030 * Released 0.2.12
5039 * Released 0.2.12
5031
5040
5032 2002-05-06 Fernando Perez <fperez@colorado.edu>
5041 2002-05-06 Fernando Perez <fperez@colorado.edu>
5033
5042
5034 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5043 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5035 introduced); 'hist n1 n2' was broken.
5044 introduced); 'hist n1 n2' was broken.
5036 (Magic.magic_pdb): added optional on/off arguments to @pdb
5045 (Magic.magic_pdb): added optional on/off arguments to @pdb
5037 (Magic.magic_run): added option -i to @run, which executes code in
5046 (Magic.magic_run): added option -i to @run, which executes code in
5038 the IPython namespace instead of a clean one. Also added @irun as
5047 the IPython namespace instead of a clean one. Also added @irun as
5039 an alias to @run -i.
5048 an alias to @run -i.
5040
5049
5041 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5050 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5042 fixed (it didn't really do anything, the namespaces were wrong).
5051 fixed (it didn't really do anything, the namespaces were wrong).
5043
5052
5044 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5053 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5045
5054
5046 * IPython/__init__.py (__all__): Fixed package namespace, now
5055 * IPython/__init__.py (__all__): Fixed package namespace, now
5047 'import IPython' does give access to IPython.<all> as
5056 'import IPython' does give access to IPython.<all> as
5048 expected. Also renamed __release__ to Release.
5057 expected. Also renamed __release__ to Release.
5049
5058
5050 * IPython/Debugger.py (__license__): created new Pdb class which
5059 * IPython/Debugger.py (__license__): created new Pdb class which
5051 functions like a drop-in for the normal pdb.Pdb but does NOT
5060 functions like a drop-in for the normal pdb.Pdb but does NOT
5052 import readline by default. This way it doesn't muck up IPython's
5061 import readline by default. This way it doesn't muck up IPython's
5053 readline handling, and now tab-completion finally works in the
5062 readline handling, and now tab-completion finally works in the
5054 debugger -- sort of. It completes things globally visible, but the
5063 debugger -- sort of. It completes things globally visible, but the
5055 completer doesn't track the stack as pdb walks it. That's a bit
5064 completer doesn't track the stack as pdb walks it. That's a bit
5056 tricky, and I'll have to implement it later.
5065 tricky, and I'll have to implement it later.
5057
5066
5058 2002-05-05 Fernando Perez <fperez@colorado.edu>
5067 2002-05-05 Fernando Perez <fperez@colorado.edu>
5059
5068
5060 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5069 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5061 magic docstrings when printed via ? (explicit \'s were being
5070 magic docstrings when printed via ? (explicit \'s were being
5062 printed).
5071 printed).
5063
5072
5064 * IPython/ipmaker.py (make_IPython): fixed namespace
5073 * IPython/ipmaker.py (make_IPython): fixed namespace
5065 identification bug. Now variables loaded via logs or command-line
5074 identification bug. Now variables loaded via logs or command-line
5066 files are recognized in the interactive namespace by @who.
5075 files are recognized in the interactive namespace by @who.
5067
5076
5068 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5077 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5069 log replay system stemming from the string form of Structs.
5078 log replay system stemming from the string form of Structs.
5070
5079
5071 * IPython/Magic.py (Macro.__init__): improved macros to properly
5080 * IPython/Magic.py (Macro.__init__): improved macros to properly
5072 handle magic commands in them.
5081 handle magic commands in them.
5073 (Magic.magic_logstart): usernames are now expanded so 'logstart
5082 (Magic.magic_logstart): usernames are now expanded so 'logstart
5074 ~/mylog' now works.
5083 ~/mylog' now works.
5075
5084
5076 * IPython/iplib.py (complete): fixed bug where paths starting with
5085 * IPython/iplib.py (complete): fixed bug where paths starting with
5077 '/' would be completed as magic names.
5086 '/' would be completed as magic names.
5078
5087
5079 2002-05-04 Fernando Perez <fperez@colorado.edu>
5088 2002-05-04 Fernando Perez <fperez@colorado.edu>
5080
5089
5081 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5090 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5082 allow running full programs under the profiler's control.
5091 allow running full programs under the profiler's control.
5083
5092
5084 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5093 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5085 mode to report exceptions verbosely but without formatting
5094 mode to report exceptions verbosely but without formatting
5086 variables. This addresses the issue of ipython 'freezing' (it's
5095 variables. This addresses the issue of ipython 'freezing' (it's
5087 not frozen, but caught in an expensive formatting loop) when huge
5096 not frozen, but caught in an expensive formatting loop) when huge
5088 variables are in the context of an exception.
5097 variables are in the context of an exception.
5089 (VerboseTB.text): Added '--->' markers at line where exception was
5098 (VerboseTB.text): Added '--->' markers at line where exception was
5090 triggered. Much clearer to read, especially in NoColor modes.
5099 triggered. Much clearer to read, especially in NoColor modes.
5091
5100
5092 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5101 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5093 implemented in reverse when changing to the new parse_options().
5102 implemented in reverse when changing to the new parse_options().
5094
5103
5095 2002-05-03 Fernando Perez <fperez@colorado.edu>
5104 2002-05-03 Fernando Perez <fperez@colorado.edu>
5096
5105
5097 * IPython/Magic.py (Magic.parse_options): new function so that
5106 * IPython/Magic.py (Magic.parse_options): new function so that
5098 magics can parse options easier.
5107 magics can parse options easier.
5099 (Magic.magic_prun): new function similar to profile.run(),
5108 (Magic.magic_prun): new function similar to profile.run(),
5100 suggested by Chris Hart.
5109 suggested by Chris Hart.
5101 (Magic.magic_cd): fixed behavior so that it only changes if
5110 (Magic.magic_cd): fixed behavior so that it only changes if
5102 directory actually is in history.
5111 directory actually is in history.
5103
5112
5104 * IPython/usage.py (__doc__): added information about potential
5113 * IPython/usage.py (__doc__): added information about potential
5105 slowness of Verbose exception mode when there are huge data
5114 slowness of Verbose exception mode when there are huge data
5106 structures to be formatted (thanks to Archie Paulson).
5115 structures to be formatted (thanks to Archie Paulson).
5107
5116
5108 * IPython/ipmaker.py (make_IPython): Changed default logging
5117 * IPython/ipmaker.py (make_IPython): Changed default logging
5109 (when simply called with -log) to use curr_dir/ipython.log in
5118 (when simply called with -log) to use curr_dir/ipython.log in
5110 rotate mode. Fixed crash which was occuring with -log before
5119 rotate mode. Fixed crash which was occuring with -log before
5111 (thanks to Jim Boyle).
5120 (thanks to Jim Boyle).
5112
5121
5113 2002-05-01 Fernando Perez <fperez@colorado.edu>
5122 2002-05-01 Fernando Perez <fperez@colorado.edu>
5114
5123
5115 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5124 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5116 was nasty -- though somewhat of a corner case).
5125 was nasty -- though somewhat of a corner case).
5117
5126
5118 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5127 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5119 text (was a bug).
5128 text (was a bug).
5120
5129
5121 2002-04-30 Fernando Perez <fperez@colorado.edu>
5130 2002-04-30 Fernando Perez <fperez@colorado.edu>
5122
5131
5123 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5132 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5124 a print after ^D or ^C from the user so that the In[] prompt
5133 a print after ^D or ^C from the user so that the In[] prompt
5125 doesn't over-run the gnuplot one.
5134 doesn't over-run the gnuplot one.
5126
5135
5127 2002-04-29 Fernando Perez <fperez@colorado.edu>
5136 2002-04-29 Fernando Perez <fperez@colorado.edu>
5128
5137
5129 * Released 0.2.10
5138 * Released 0.2.10
5130
5139
5131 * IPython/__release__.py (version): get date dynamically.
5140 * IPython/__release__.py (version): get date dynamically.
5132
5141
5133 * Misc. documentation updates thanks to Arnd's comments. Also ran
5142 * Misc. documentation updates thanks to Arnd's comments. Also ran
5134 a full spellcheck on the manual (hadn't been done in a while).
5143 a full spellcheck on the manual (hadn't been done in a while).
5135
5144
5136 2002-04-27 Fernando Perez <fperez@colorado.edu>
5145 2002-04-27 Fernando Perez <fperez@colorado.edu>
5137
5146
5138 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5147 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5139 starting a log in mid-session would reset the input history list.
5148 starting a log in mid-session would reset the input history list.
5140
5149
5141 2002-04-26 Fernando Perez <fperez@colorado.edu>
5150 2002-04-26 Fernando Perez <fperez@colorado.edu>
5142
5151
5143 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5152 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5144 all files were being included in an update. Now anything in
5153 all files were being included in an update. Now anything in
5145 UserConfig that matches [A-Za-z]*.py will go (this excludes
5154 UserConfig that matches [A-Za-z]*.py will go (this excludes
5146 __init__.py)
5155 __init__.py)
5147
5156
5148 2002-04-25 Fernando Perez <fperez@colorado.edu>
5157 2002-04-25 Fernando Perez <fperez@colorado.edu>
5149
5158
5150 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5159 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5151 to __builtins__ so that any form of embedded or imported code can
5160 to __builtins__ so that any form of embedded or imported code can
5152 test for being inside IPython.
5161 test for being inside IPython.
5153
5162
5154 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5163 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5155 changed to GnuplotMagic because it's now an importable module,
5164 changed to GnuplotMagic because it's now an importable module,
5156 this makes the name follow that of the standard Gnuplot module.
5165 this makes the name follow that of the standard Gnuplot module.
5157 GnuplotMagic can now be loaded at any time in mid-session.
5166 GnuplotMagic can now be loaded at any time in mid-session.
5158
5167
5159 2002-04-24 Fernando Perez <fperez@colorado.edu>
5168 2002-04-24 Fernando Perez <fperez@colorado.edu>
5160
5169
5161 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5170 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5162 the globals (IPython has its own namespace) and the
5171 the globals (IPython has its own namespace) and the
5163 PhysicalQuantity stuff is much better anyway.
5172 PhysicalQuantity stuff is much better anyway.
5164
5173
5165 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5174 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5166 embedding example to standard user directory for
5175 embedding example to standard user directory for
5167 distribution. Also put it in the manual.
5176 distribution. Also put it in the manual.
5168
5177
5169 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5178 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5170 instance as first argument (so it doesn't rely on some obscure
5179 instance as first argument (so it doesn't rely on some obscure
5171 hidden global).
5180 hidden global).
5172
5181
5173 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5182 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5174 delimiters. While it prevents ().TAB from working, it allows
5183 delimiters. While it prevents ().TAB from working, it allows
5175 completions in open (... expressions. This is by far a more common
5184 completions in open (... expressions. This is by far a more common
5176 case.
5185 case.
5177
5186
5178 2002-04-23 Fernando Perez <fperez@colorado.edu>
5187 2002-04-23 Fernando Perez <fperez@colorado.edu>
5179
5188
5180 * IPython/Extensions/InterpreterPasteInput.py: new
5189 * IPython/Extensions/InterpreterPasteInput.py: new
5181 syntax-processing module for pasting lines with >>> or ... at the
5190 syntax-processing module for pasting lines with >>> or ... at the
5182 start.
5191 start.
5183
5192
5184 * IPython/Extensions/PhysicalQ_Interactive.py
5193 * IPython/Extensions/PhysicalQ_Interactive.py
5185 (PhysicalQuantityInteractive.__int__): fixed to work with either
5194 (PhysicalQuantityInteractive.__int__): fixed to work with either
5186 Numeric or math.
5195 Numeric or math.
5187
5196
5188 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5197 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5189 provided profiles. Now we have:
5198 provided profiles. Now we have:
5190 -math -> math module as * and cmath with its own namespace.
5199 -math -> math module as * and cmath with its own namespace.
5191 -numeric -> Numeric as *, plus gnuplot & grace
5200 -numeric -> Numeric as *, plus gnuplot & grace
5192 -physics -> same as before
5201 -physics -> same as before
5193
5202
5194 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5203 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5195 user-defined magics wouldn't be found by @magic if they were
5204 user-defined magics wouldn't be found by @magic if they were
5196 defined as class methods. Also cleaned up the namespace search
5205 defined as class methods. Also cleaned up the namespace search
5197 logic and the string building (to use %s instead of many repeated
5206 logic and the string building (to use %s instead of many repeated
5198 string adds).
5207 string adds).
5199
5208
5200 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5209 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5201 of user-defined magics to operate with class methods (cleaner, in
5210 of user-defined magics to operate with class methods (cleaner, in
5202 line with the gnuplot code).
5211 line with the gnuplot code).
5203
5212
5204 2002-04-22 Fernando Perez <fperez@colorado.edu>
5213 2002-04-22 Fernando Perez <fperez@colorado.edu>
5205
5214
5206 * setup.py: updated dependency list so that manual is updated when
5215 * setup.py: updated dependency list so that manual is updated when
5207 all included files change.
5216 all included files change.
5208
5217
5209 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5218 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5210 the delimiter removal option (the fix is ugly right now).
5219 the delimiter removal option (the fix is ugly right now).
5211
5220
5212 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5221 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5213 all of the math profile (quicker loading, no conflict between
5222 all of the math profile (quicker loading, no conflict between
5214 g-9.8 and g-gnuplot).
5223 g-9.8 and g-gnuplot).
5215
5224
5216 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5225 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5217 name of post-mortem files to IPython_crash_report.txt.
5226 name of post-mortem files to IPython_crash_report.txt.
5218
5227
5219 * Cleanup/update of the docs. Added all the new readline info and
5228 * Cleanup/update of the docs. Added all the new readline info and
5220 formatted all lists as 'real lists'.
5229 formatted all lists as 'real lists'.
5221
5230
5222 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5231 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5223 tab-completion options, since the full readline parse_and_bind is
5232 tab-completion options, since the full readline parse_and_bind is
5224 now accessible.
5233 now accessible.
5225
5234
5226 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5235 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5227 handling of readline options. Now users can specify any string to
5236 handling of readline options. Now users can specify any string to
5228 be passed to parse_and_bind(), as well as the delimiters to be
5237 be passed to parse_and_bind(), as well as the delimiters to be
5229 removed.
5238 removed.
5230 (InteractiveShell.__init__): Added __name__ to the global
5239 (InteractiveShell.__init__): Added __name__ to the global
5231 namespace so that things like Itpl which rely on its existence
5240 namespace so that things like Itpl which rely on its existence
5232 don't crash.
5241 don't crash.
5233 (InteractiveShell._prefilter): Defined the default with a _ so
5242 (InteractiveShell._prefilter): Defined the default with a _ so
5234 that prefilter() is easier to override, while the default one
5243 that prefilter() is easier to override, while the default one
5235 remains available.
5244 remains available.
5236
5245
5237 2002-04-18 Fernando Perez <fperez@colorado.edu>
5246 2002-04-18 Fernando Perez <fperez@colorado.edu>
5238
5247
5239 * Added information about pdb in the docs.
5248 * Added information about pdb in the docs.
5240
5249
5241 2002-04-17 Fernando Perez <fperez@colorado.edu>
5250 2002-04-17 Fernando Perez <fperez@colorado.edu>
5242
5251
5243 * IPython/ipmaker.py (make_IPython): added rc_override option to
5252 * IPython/ipmaker.py (make_IPython): added rc_override option to
5244 allow passing config options at creation time which may override
5253 allow passing config options at creation time which may override
5245 anything set in the config files or command line. This is
5254 anything set in the config files or command line. This is
5246 particularly useful for configuring embedded instances.
5255 particularly useful for configuring embedded instances.
5247
5256
5248 2002-04-15 Fernando Perez <fperez@colorado.edu>
5257 2002-04-15 Fernando Perez <fperez@colorado.edu>
5249
5258
5250 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5259 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5251 crash embedded instances because of the input cache falling out of
5260 crash embedded instances because of the input cache falling out of
5252 sync with the output counter.
5261 sync with the output counter.
5253
5262
5254 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5263 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5255 mode which calls pdb after an uncaught exception in IPython itself.
5264 mode which calls pdb after an uncaught exception in IPython itself.
5256
5265
5257 2002-04-14 Fernando Perez <fperez@colorado.edu>
5266 2002-04-14 Fernando Perez <fperez@colorado.edu>
5258
5267
5259 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5268 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5260 readline, fix it back after each call.
5269 readline, fix it back after each call.
5261
5270
5262 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5271 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5263 method to force all access via __call__(), which guarantees that
5272 method to force all access via __call__(), which guarantees that
5264 traceback references are properly deleted.
5273 traceback references are properly deleted.
5265
5274
5266 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5275 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5267 improve printing when pprint is in use.
5276 improve printing when pprint is in use.
5268
5277
5269 2002-04-13 Fernando Perez <fperez@colorado.edu>
5278 2002-04-13 Fernando Perez <fperez@colorado.edu>
5270
5279
5271 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5280 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5272 exceptions aren't caught anymore. If the user triggers one, he
5281 exceptions aren't caught anymore. If the user triggers one, he
5273 should know why he's doing it and it should go all the way up,
5282 should know why he's doing it and it should go all the way up,
5274 just like any other exception. So now @abort will fully kill the
5283 just like any other exception. So now @abort will fully kill the
5275 embedded interpreter and the embedding code (unless that happens
5284 embedded interpreter and the embedding code (unless that happens
5276 to catch SystemExit).
5285 to catch SystemExit).
5277
5286
5278 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5287 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5279 and a debugger() method to invoke the interactive pdb debugger
5288 and a debugger() method to invoke the interactive pdb debugger
5280 after printing exception information. Also added the corresponding
5289 after printing exception information. Also added the corresponding
5281 -pdb option and @pdb magic to control this feature, and updated
5290 -pdb option and @pdb magic to control this feature, and updated
5282 the docs. After a suggestion from Christopher Hart
5291 the docs. After a suggestion from Christopher Hart
5283 (hart-AT-caltech.edu).
5292 (hart-AT-caltech.edu).
5284
5293
5285 2002-04-12 Fernando Perez <fperez@colorado.edu>
5294 2002-04-12 Fernando Perez <fperez@colorado.edu>
5286
5295
5287 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5296 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5288 the exception handlers defined by the user (not the CrashHandler)
5297 the exception handlers defined by the user (not the CrashHandler)
5289 so that user exceptions don't trigger an ipython bug report.
5298 so that user exceptions don't trigger an ipython bug report.
5290
5299
5291 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5300 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5292 configurable (it should have always been so).
5301 configurable (it should have always been so).
5293
5302
5294 2002-03-26 Fernando Perez <fperez@colorado.edu>
5303 2002-03-26 Fernando Perez <fperez@colorado.edu>
5295
5304
5296 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5305 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5297 and there to fix embedding namespace issues. This should all be
5306 and there to fix embedding namespace issues. This should all be
5298 done in a more elegant way.
5307 done in a more elegant way.
5299
5308
5300 2002-03-25 Fernando Perez <fperez@colorado.edu>
5309 2002-03-25 Fernando Perez <fperez@colorado.edu>
5301
5310
5302 * IPython/genutils.py (get_home_dir): Try to make it work under
5311 * IPython/genutils.py (get_home_dir): Try to make it work under
5303 win9x also.
5312 win9x also.
5304
5313
5305 2002-03-20 Fernando Perez <fperez@colorado.edu>
5314 2002-03-20 Fernando Perez <fperez@colorado.edu>
5306
5315
5307 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5316 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5308 sys.displayhook untouched upon __init__.
5317 sys.displayhook untouched upon __init__.
5309
5318
5310 2002-03-19 Fernando Perez <fperez@colorado.edu>
5319 2002-03-19 Fernando Perez <fperez@colorado.edu>
5311
5320
5312 * Released 0.2.9 (for embedding bug, basically).
5321 * Released 0.2.9 (for embedding bug, basically).
5313
5322
5314 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5323 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5315 exceptions so that enclosing shell's state can be restored.
5324 exceptions so that enclosing shell's state can be restored.
5316
5325
5317 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5326 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5318 naming conventions in the .ipython/ dir.
5327 naming conventions in the .ipython/ dir.
5319
5328
5320 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5329 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5321 from delimiters list so filenames with - in them get expanded.
5330 from delimiters list so filenames with - in them get expanded.
5322
5331
5323 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5332 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5324 sys.displayhook not being properly restored after an embedded call.
5333 sys.displayhook not being properly restored after an embedded call.
5325
5334
5326 2002-03-18 Fernando Perez <fperez@colorado.edu>
5335 2002-03-18 Fernando Perez <fperez@colorado.edu>
5327
5336
5328 * Released 0.2.8
5337 * Released 0.2.8
5329
5338
5330 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5339 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5331 some files weren't being included in a -upgrade.
5340 some files weren't being included in a -upgrade.
5332 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5341 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5333 on' so that the first tab completes.
5342 on' so that the first tab completes.
5334 (InteractiveShell.handle_magic): fixed bug with spaces around
5343 (InteractiveShell.handle_magic): fixed bug with spaces around
5335 quotes breaking many magic commands.
5344 quotes breaking many magic commands.
5336
5345
5337 * setup.py: added note about ignoring the syntax error messages at
5346 * setup.py: added note about ignoring the syntax error messages at
5338 installation.
5347 installation.
5339
5348
5340 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5349 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5341 streamlining the gnuplot interface, now there's only one magic @gp.
5350 streamlining the gnuplot interface, now there's only one magic @gp.
5342
5351
5343 2002-03-17 Fernando Perez <fperez@colorado.edu>
5352 2002-03-17 Fernando Perez <fperez@colorado.edu>
5344
5353
5345 * IPython/UserConfig/magic_gnuplot.py: new name for the
5354 * IPython/UserConfig/magic_gnuplot.py: new name for the
5346 example-magic_pm.py file. Much enhanced system, now with a shell
5355 example-magic_pm.py file. Much enhanced system, now with a shell
5347 for communicating directly with gnuplot, one command at a time.
5356 for communicating directly with gnuplot, one command at a time.
5348
5357
5349 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5358 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5350 setting __name__=='__main__'.
5359 setting __name__=='__main__'.
5351
5360
5352 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5361 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5353 mini-shell for accessing gnuplot from inside ipython. Should
5362 mini-shell for accessing gnuplot from inside ipython. Should
5354 extend it later for grace access too. Inspired by Arnd's
5363 extend it later for grace access too. Inspired by Arnd's
5355 suggestion.
5364 suggestion.
5356
5365
5357 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5366 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5358 calling magic functions with () in their arguments. Thanks to Arnd
5367 calling magic functions with () in their arguments. Thanks to Arnd
5359 Baecker for pointing this to me.
5368 Baecker for pointing this to me.
5360
5369
5361 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5370 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5362 infinitely for integer or complex arrays (only worked with floats).
5371 infinitely for integer or complex arrays (only worked with floats).
5363
5372
5364 2002-03-16 Fernando Perez <fperez@colorado.edu>
5373 2002-03-16 Fernando Perez <fperez@colorado.edu>
5365
5374
5366 * setup.py: Merged setup and setup_windows into a single script
5375 * setup.py: Merged setup and setup_windows into a single script
5367 which properly handles things for windows users.
5376 which properly handles things for windows users.
5368
5377
5369 2002-03-15 Fernando Perez <fperez@colorado.edu>
5378 2002-03-15 Fernando Perez <fperez@colorado.edu>
5370
5379
5371 * Big change to the manual: now the magics are all automatically
5380 * Big change to the manual: now the magics are all automatically
5372 documented. This information is generated from their docstrings
5381 documented. This information is generated from their docstrings
5373 and put in a latex file included by the manual lyx file. This way
5382 and put in a latex file included by the manual lyx file. This way
5374 we get always up to date information for the magics. The manual
5383 we get always up to date information for the magics. The manual
5375 now also has proper version information, also auto-synced.
5384 now also has proper version information, also auto-synced.
5376
5385
5377 For this to work, an undocumented --magic_docstrings option was added.
5386 For this to work, an undocumented --magic_docstrings option was added.
5378
5387
5379 2002-03-13 Fernando Perez <fperez@colorado.edu>
5388 2002-03-13 Fernando Perez <fperez@colorado.edu>
5380
5389
5381 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5390 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5382 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5391 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5383
5392
5384 2002-03-12 Fernando Perez <fperez@colorado.edu>
5393 2002-03-12 Fernando Perez <fperez@colorado.edu>
5385
5394
5386 * IPython/ultraTB.py (TermColors): changed color escapes again to
5395 * IPython/ultraTB.py (TermColors): changed color escapes again to
5387 fix the (old, reintroduced) line-wrapping bug. Basically, if
5396 fix the (old, reintroduced) line-wrapping bug. Basically, if
5388 \001..\002 aren't given in the color escapes, lines get wrapped
5397 \001..\002 aren't given in the color escapes, lines get wrapped
5389 weirdly. But giving those screws up old xterms and emacs terms. So
5398 weirdly. But giving those screws up old xterms and emacs terms. So
5390 I added some logic for emacs terms to be ok, but I can't identify old
5399 I added some logic for emacs terms to be ok, but I can't identify old
5391 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5400 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5392
5401
5393 2002-03-10 Fernando Perez <fperez@colorado.edu>
5402 2002-03-10 Fernando Perez <fperez@colorado.edu>
5394
5403
5395 * IPython/usage.py (__doc__): Various documentation cleanups and
5404 * IPython/usage.py (__doc__): Various documentation cleanups and
5396 updates, both in usage docstrings and in the manual.
5405 updates, both in usage docstrings and in the manual.
5397
5406
5398 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5407 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5399 handling of caching. Set minimum acceptabe value for having a
5408 handling of caching. Set minimum acceptabe value for having a
5400 cache at 20 values.
5409 cache at 20 values.
5401
5410
5402 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5411 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5403 install_first_time function to a method, renamed it and added an
5412 install_first_time function to a method, renamed it and added an
5404 'upgrade' mode. Now people can update their config directory with
5413 'upgrade' mode. Now people can update their config directory with
5405 a simple command line switch (-upgrade, also new).
5414 a simple command line switch (-upgrade, also new).
5406
5415
5407 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5416 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5408 @file (convenient for automagic users under Python >= 2.2).
5417 @file (convenient for automagic users under Python >= 2.2).
5409 Removed @files (it seemed more like a plural than an abbrev. of
5418 Removed @files (it seemed more like a plural than an abbrev. of
5410 'file show').
5419 'file show').
5411
5420
5412 * IPython/iplib.py (install_first_time): Fixed crash if there were
5421 * IPython/iplib.py (install_first_time): Fixed crash if there were
5413 backup files ('~') in .ipython/ install directory.
5422 backup files ('~') in .ipython/ install directory.
5414
5423
5415 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5424 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5416 system. Things look fine, but these changes are fairly
5425 system. Things look fine, but these changes are fairly
5417 intrusive. Test them for a few days.
5426 intrusive. Test them for a few days.
5418
5427
5419 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5428 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5420 the prompts system. Now all in/out prompt strings are user
5429 the prompts system. Now all in/out prompt strings are user
5421 controllable. This is particularly useful for embedding, as one
5430 controllable. This is particularly useful for embedding, as one
5422 can tag embedded instances with particular prompts.
5431 can tag embedded instances with particular prompts.
5423
5432
5424 Also removed global use of sys.ps1/2, which now allows nested
5433 Also removed global use of sys.ps1/2, which now allows nested
5425 embeddings without any problems. Added command-line options for
5434 embeddings without any problems. Added command-line options for
5426 the prompt strings.
5435 the prompt strings.
5427
5436
5428 2002-03-08 Fernando Perez <fperez@colorado.edu>
5437 2002-03-08 Fernando Perez <fperez@colorado.edu>
5429
5438
5430 * IPython/UserConfig/example-embed-short.py (ipshell): added
5439 * IPython/UserConfig/example-embed-short.py (ipshell): added
5431 example file with the bare minimum code for embedding.
5440 example file with the bare minimum code for embedding.
5432
5441
5433 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5442 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5434 functionality for the embeddable shell to be activated/deactivated
5443 functionality for the embeddable shell to be activated/deactivated
5435 either globally or at each call.
5444 either globally or at each call.
5436
5445
5437 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5446 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5438 rewriting the prompt with '--->' for auto-inputs with proper
5447 rewriting the prompt with '--->' for auto-inputs with proper
5439 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5448 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5440 this is handled by the prompts class itself, as it should.
5449 this is handled by the prompts class itself, as it should.
5441
5450
5442 2002-03-05 Fernando Perez <fperez@colorado.edu>
5451 2002-03-05 Fernando Perez <fperez@colorado.edu>
5443
5452
5444 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5453 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5445 @logstart to avoid name clashes with the math log function.
5454 @logstart to avoid name clashes with the math log function.
5446
5455
5447 * Big updates to X/Emacs section of the manual.
5456 * Big updates to X/Emacs section of the manual.
5448
5457
5449 * Removed ipython_emacs. Milan explained to me how to pass
5458 * Removed ipython_emacs. Milan explained to me how to pass
5450 arguments to ipython through Emacs. Some day I'm going to end up
5459 arguments to ipython through Emacs. Some day I'm going to end up
5451 learning some lisp...
5460 learning some lisp...
5452
5461
5453 2002-03-04 Fernando Perez <fperez@colorado.edu>
5462 2002-03-04 Fernando Perez <fperez@colorado.edu>
5454
5463
5455 * IPython/ipython_emacs: Created script to be used as the
5464 * IPython/ipython_emacs: Created script to be used as the
5456 py-python-command Emacs variable so we can pass IPython
5465 py-python-command Emacs variable so we can pass IPython
5457 parameters. I can't figure out how to tell Emacs directly to pass
5466 parameters. I can't figure out how to tell Emacs directly to pass
5458 parameters to IPython, so a dummy shell script will do it.
5467 parameters to IPython, so a dummy shell script will do it.
5459
5468
5460 Other enhancements made for things to work better under Emacs'
5469 Other enhancements made for things to work better under Emacs'
5461 various types of terminals. Many thanks to Milan Zamazal
5470 various types of terminals. Many thanks to Milan Zamazal
5462 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5471 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5463
5472
5464 2002-03-01 Fernando Perez <fperez@colorado.edu>
5473 2002-03-01 Fernando Perez <fperez@colorado.edu>
5465
5474
5466 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5475 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5467 that loading of readline is now optional. This gives better
5476 that loading of readline is now optional. This gives better
5468 control to emacs users.
5477 control to emacs users.
5469
5478
5470 * IPython/ultraTB.py (__date__): Modified color escape sequences
5479 * IPython/ultraTB.py (__date__): Modified color escape sequences
5471 and now things work fine under xterm and in Emacs' term buffers
5480 and now things work fine under xterm and in Emacs' term buffers
5472 (though not shell ones). Well, in emacs you get colors, but all
5481 (though not shell ones). Well, in emacs you get colors, but all
5473 seem to be 'light' colors (no difference between dark and light
5482 seem to be 'light' colors (no difference between dark and light
5474 ones). But the garbage chars are gone, and also in xterms. It
5483 ones). But the garbage chars are gone, and also in xterms. It
5475 seems that now I'm using 'cleaner' ansi sequences.
5484 seems that now I'm using 'cleaner' ansi sequences.
5476
5485
5477 2002-02-21 Fernando Perez <fperez@colorado.edu>
5486 2002-02-21 Fernando Perez <fperez@colorado.edu>
5478
5487
5479 * Released 0.2.7 (mainly to publish the scoping fix).
5488 * Released 0.2.7 (mainly to publish the scoping fix).
5480
5489
5481 * IPython/Logger.py (Logger.logstate): added. A corresponding
5490 * IPython/Logger.py (Logger.logstate): added. A corresponding
5482 @logstate magic was created.
5491 @logstate magic was created.
5483
5492
5484 * IPython/Magic.py: fixed nested scoping problem under Python
5493 * IPython/Magic.py: fixed nested scoping problem under Python
5485 2.1.x (automagic wasn't working).
5494 2.1.x (automagic wasn't working).
5486
5495
5487 2002-02-20 Fernando Perez <fperez@colorado.edu>
5496 2002-02-20 Fernando Perez <fperez@colorado.edu>
5488
5497
5489 * Released 0.2.6.
5498 * Released 0.2.6.
5490
5499
5491 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5500 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5492 option so that logs can come out without any headers at all.
5501 option so that logs can come out without any headers at all.
5493
5502
5494 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5503 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5495 SciPy.
5504 SciPy.
5496
5505
5497 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5506 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5498 that embedded IPython calls don't require vars() to be explicitly
5507 that embedded IPython calls don't require vars() to be explicitly
5499 passed. Now they are extracted from the caller's frame (code
5508 passed. Now they are extracted from the caller's frame (code
5500 snatched from Eric Jones' weave). Added better documentation to
5509 snatched from Eric Jones' weave). Added better documentation to
5501 the section on embedding and the example file.
5510 the section on embedding and the example file.
5502
5511
5503 * IPython/genutils.py (page): Changed so that under emacs, it just
5512 * IPython/genutils.py (page): Changed so that under emacs, it just
5504 prints the string. You can then page up and down in the emacs
5513 prints the string. You can then page up and down in the emacs
5505 buffer itself. This is how the builtin help() works.
5514 buffer itself. This is how the builtin help() works.
5506
5515
5507 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5516 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5508 macro scoping: macros need to be executed in the user's namespace
5517 macro scoping: macros need to be executed in the user's namespace
5509 to work as if they had been typed by the user.
5518 to work as if they had been typed by the user.
5510
5519
5511 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5520 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5512 execute automatically (no need to type 'exec...'). They then
5521 execute automatically (no need to type 'exec...'). They then
5513 behave like 'true macros'. The printing system was also modified
5522 behave like 'true macros'. The printing system was also modified
5514 for this to work.
5523 for this to work.
5515
5524
5516 2002-02-19 Fernando Perez <fperez@colorado.edu>
5525 2002-02-19 Fernando Perez <fperez@colorado.edu>
5517
5526
5518 * IPython/genutils.py (page_file): new function for paging files
5527 * IPython/genutils.py (page_file): new function for paging files
5519 in an OS-independent way. Also necessary for file viewing to work
5528 in an OS-independent way. Also necessary for file viewing to work
5520 well inside Emacs buffers.
5529 well inside Emacs buffers.
5521 (page): Added checks for being in an emacs buffer.
5530 (page): Added checks for being in an emacs buffer.
5522 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5531 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5523 same bug in iplib.
5532 same bug in iplib.
5524
5533
5525 2002-02-18 Fernando Perez <fperez@colorado.edu>
5534 2002-02-18 Fernando Perez <fperez@colorado.edu>
5526
5535
5527 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5536 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5528 of readline so that IPython can work inside an Emacs buffer.
5537 of readline so that IPython can work inside an Emacs buffer.
5529
5538
5530 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5539 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5531 method signatures (they weren't really bugs, but it looks cleaner
5540 method signatures (they weren't really bugs, but it looks cleaner
5532 and keeps PyChecker happy).
5541 and keeps PyChecker happy).
5533
5542
5534 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5543 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5535 for implementing various user-defined hooks. Currently only
5544 for implementing various user-defined hooks. Currently only
5536 display is done.
5545 display is done.
5537
5546
5538 * IPython/Prompts.py (CachedOutput._display): changed display
5547 * IPython/Prompts.py (CachedOutput._display): changed display
5539 functions so that they can be dynamically changed by users easily.
5548 functions so that they can be dynamically changed by users easily.
5540
5549
5541 * IPython/Extensions/numeric_formats.py (num_display): added an
5550 * IPython/Extensions/numeric_formats.py (num_display): added an
5542 extension for printing NumPy arrays in flexible manners. It
5551 extension for printing NumPy arrays in flexible manners. It
5543 doesn't do anything yet, but all the structure is in
5552 doesn't do anything yet, but all the structure is in
5544 place. Ultimately the plan is to implement output format control
5553 place. Ultimately the plan is to implement output format control
5545 like in Octave.
5554 like in Octave.
5546
5555
5547 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5556 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5548 methods are found at run-time by all the automatic machinery.
5557 methods are found at run-time by all the automatic machinery.
5549
5558
5550 2002-02-17 Fernando Perez <fperez@colorado.edu>
5559 2002-02-17 Fernando Perez <fperez@colorado.edu>
5551
5560
5552 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5561 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5553 whole file a little.
5562 whole file a little.
5554
5563
5555 * ToDo: closed this document. Now there's a new_design.lyx
5564 * ToDo: closed this document. Now there's a new_design.lyx
5556 document for all new ideas. Added making a pdf of it for the
5565 document for all new ideas. Added making a pdf of it for the
5557 end-user distro.
5566 end-user distro.
5558
5567
5559 * IPython/Logger.py (Logger.switch_log): Created this to replace
5568 * IPython/Logger.py (Logger.switch_log): Created this to replace
5560 logon() and logoff(). It also fixes a nasty crash reported by
5569 logon() and logoff(). It also fixes a nasty crash reported by
5561 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5570 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5562
5571
5563 * IPython/iplib.py (complete): got auto-completion to work with
5572 * IPython/iplib.py (complete): got auto-completion to work with
5564 automagic (I had wanted this for a long time).
5573 automagic (I had wanted this for a long time).
5565
5574
5566 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5575 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5567 to @file, since file() is now a builtin and clashes with automagic
5576 to @file, since file() is now a builtin and clashes with automagic
5568 for @file.
5577 for @file.
5569
5578
5570 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5579 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5571 of this was previously in iplib, which had grown to more than 2000
5580 of this was previously in iplib, which had grown to more than 2000
5572 lines, way too long. No new functionality, but it makes managing
5581 lines, way too long. No new functionality, but it makes managing
5573 the code a bit easier.
5582 the code a bit easier.
5574
5583
5575 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5584 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5576 information to crash reports.
5585 information to crash reports.
5577
5586
5578 2002-02-12 Fernando Perez <fperez@colorado.edu>
5587 2002-02-12 Fernando Perez <fperez@colorado.edu>
5579
5588
5580 * Released 0.2.5.
5589 * Released 0.2.5.
5581
5590
5582 2002-02-11 Fernando Perez <fperez@colorado.edu>
5591 2002-02-11 Fernando Perez <fperez@colorado.edu>
5583
5592
5584 * Wrote a relatively complete Windows installer. It puts
5593 * Wrote a relatively complete Windows installer. It puts
5585 everything in place, creates Start Menu entries and fixes the
5594 everything in place, creates Start Menu entries and fixes the
5586 color issues. Nothing fancy, but it works.
5595 color issues. Nothing fancy, but it works.
5587
5596
5588 2002-02-10 Fernando Perez <fperez@colorado.edu>
5597 2002-02-10 Fernando Perez <fperez@colorado.edu>
5589
5598
5590 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5599 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5591 os.path.expanduser() call so that we can type @run ~/myfile.py and
5600 os.path.expanduser() call so that we can type @run ~/myfile.py and
5592 have thigs work as expected.
5601 have thigs work as expected.
5593
5602
5594 * IPython/genutils.py (page): fixed exception handling so things
5603 * IPython/genutils.py (page): fixed exception handling so things
5595 work both in Unix and Windows correctly. Quitting a pager triggers
5604 work both in Unix and Windows correctly. Quitting a pager triggers
5596 an IOError/broken pipe in Unix, and in windows not finding a pager
5605 an IOError/broken pipe in Unix, and in windows not finding a pager
5597 is also an IOError, so I had to actually look at the return value
5606 is also an IOError, so I had to actually look at the return value
5598 of the exception, not just the exception itself. Should be ok now.
5607 of the exception, not just the exception itself. Should be ok now.
5599
5608
5600 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5609 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5601 modified to allow case-insensitive color scheme changes.
5610 modified to allow case-insensitive color scheme changes.
5602
5611
5603 2002-02-09 Fernando Perez <fperez@colorado.edu>
5612 2002-02-09 Fernando Perez <fperez@colorado.edu>
5604
5613
5605 * IPython/genutils.py (native_line_ends): new function to leave
5614 * IPython/genutils.py (native_line_ends): new function to leave
5606 user config files with os-native line-endings.
5615 user config files with os-native line-endings.
5607
5616
5608 * README and manual updates.
5617 * README and manual updates.
5609
5618
5610 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5619 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5611 instead of StringType to catch Unicode strings.
5620 instead of StringType to catch Unicode strings.
5612
5621
5613 * IPython/genutils.py (filefind): fixed bug for paths with
5622 * IPython/genutils.py (filefind): fixed bug for paths with
5614 embedded spaces (very common in Windows).
5623 embedded spaces (very common in Windows).
5615
5624
5616 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5625 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5617 files under Windows, so that they get automatically associated
5626 files under Windows, so that they get automatically associated
5618 with a text editor. Windows makes it a pain to handle
5627 with a text editor. Windows makes it a pain to handle
5619 extension-less files.
5628 extension-less files.
5620
5629
5621 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5630 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5622 warning about readline only occur for Posix. In Windows there's no
5631 warning about readline only occur for Posix. In Windows there's no
5623 way to get readline, so why bother with the warning.
5632 way to get readline, so why bother with the warning.
5624
5633
5625 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5634 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5626 for __str__ instead of dir(self), since dir() changed in 2.2.
5635 for __str__ instead of dir(self), since dir() changed in 2.2.
5627
5636
5628 * Ported to Windows! Tested on XP, I suspect it should work fine
5637 * Ported to Windows! Tested on XP, I suspect it should work fine
5629 on NT/2000, but I don't think it will work on 98 et al. That
5638 on NT/2000, but I don't think it will work on 98 et al. That
5630 series of Windows is such a piece of junk anyway that I won't try
5639 series of Windows is such a piece of junk anyway that I won't try
5631 porting it there. The XP port was straightforward, showed a few
5640 porting it there. The XP port was straightforward, showed a few
5632 bugs here and there (fixed all), in particular some string
5641 bugs here and there (fixed all), in particular some string
5633 handling stuff which required considering Unicode strings (which
5642 handling stuff which required considering Unicode strings (which
5634 Windows uses). This is good, but hasn't been too tested :) No
5643 Windows uses). This is good, but hasn't been too tested :) No
5635 fancy installer yet, I'll put a note in the manual so people at
5644 fancy installer yet, I'll put a note in the manual so people at
5636 least make manually a shortcut.
5645 least make manually a shortcut.
5637
5646
5638 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5647 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5639 into a single one, "colors". This now controls both prompt and
5648 into a single one, "colors". This now controls both prompt and
5640 exception color schemes, and can be changed both at startup
5649 exception color schemes, and can be changed both at startup
5641 (either via command-line switches or via ipythonrc files) and at
5650 (either via command-line switches or via ipythonrc files) and at
5642 runtime, with @colors.
5651 runtime, with @colors.
5643 (Magic.magic_run): renamed @prun to @run and removed the old
5652 (Magic.magic_run): renamed @prun to @run and removed the old
5644 @run. The two were too similar to warrant keeping both.
5653 @run. The two were too similar to warrant keeping both.
5645
5654
5646 2002-02-03 Fernando Perez <fperez@colorado.edu>
5655 2002-02-03 Fernando Perez <fperez@colorado.edu>
5647
5656
5648 * IPython/iplib.py (install_first_time): Added comment on how to
5657 * IPython/iplib.py (install_first_time): Added comment on how to
5649 configure the color options for first-time users. Put a <return>
5658 configure the color options for first-time users. Put a <return>
5650 request at the end so that small-terminal users get a chance to
5659 request at the end so that small-terminal users get a chance to
5651 read the startup info.
5660 read the startup info.
5652
5661
5653 2002-01-23 Fernando Perez <fperez@colorado.edu>
5662 2002-01-23 Fernando Perez <fperez@colorado.edu>
5654
5663
5655 * IPython/iplib.py (CachedOutput.update): Changed output memory
5664 * IPython/iplib.py (CachedOutput.update): Changed output memory
5656 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5665 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5657 input history we still use _i. Did this b/c these variable are
5666 input history we still use _i. Did this b/c these variable are
5658 very commonly used in interactive work, so the less we need to
5667 very commonly used in interactive work, so the less we need to
5659 type the better off we are.
5668 type the better off we are.
5660 (Magic.magic_prun): updated @prun to better handle the namespaces
5669 (Magic.magic_prun): updated @prun to better handle the namespaces
5661 the file will run in, including a fix for __name__ not being set
5670 the file will run in, including a fix for __name__ not being set
5662 before.
5671 before.
5663
5672
5664 2002-01-20 Fernando Perez <fperez@colorado.edu>
5673 2002-01-20 Fernando Perez <fperez@colorado.edu>
5665
5674
5666 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5675 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5667 extra garbage for Python 2.2. Need to look more carefully into
5676 extra garbage for Python 2.2. Need to look more carefully into
5668 this later.
5677 this later.
5669
5678
5670 2002-01-19 Fernando Perez <fperez@colorado.edu>
5679 2002-01-19 Fernando Perez <fperez@colorado.edu>
5671
5680
5672 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5681 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5673 display SyntaxError exceptions properly formatted when they occur
5682 display SyntaxError exceptions properly formatted when they occur
5674 (they can be triggered by imported code).
5683 (they can be triggered by imported code).
5675
5684
5676 2002-01-18 Fernando Perez <fperez@colorado.edu>
5685 2002-01-18 Fernando Perez <fperez@colorado.edu>
5677
5686
5678 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5687 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5679 SyntaxError exceptions are reported nicely formatted, instead of
5688 SyntaxError exceptions are reported nicely formatted, instead of
5680 spitting out only offset information as before.
5689 spitting out only offset information as before.
5681 (Magic.magic_prun): Added the @prun function for executing
5690 (Magic.magic_prun): Added the @prun function for executing
5682 programs with command line args inside IPython.
5691 programs with command line args inside IPython.
5683
5692
5684 2002-01-16 Fernando Perez <fperez@colorado.edu>
5693 2002-01-16 Fernando Perez <fperez@colorado.edu>
5685
5694
5686 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5695 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5687 to *not* include the last item given in a range. This brings their
5696 to *not* include the last item given in a range. This brings their
5688 behavior in line with Python's slicing:
5697 behavior in line with Python's slicing:
5689 a[n1:n2] -> a[n1]...a[n2-1]
5698 a[n1:n2] -> a[n1]...a[n2-1]
5690 It may be a bit less convenient, but I prefer to stick to Python's
5699 It may be a bit less convenient, but I prefer to stick to Python's
5691 conventions *everywhere*, so users never have to wonder.
5700 conventions *everywhere*, so users never have to wonder.
5692 (Magic.magic_macro): Added @macro function to ease the creation of
5701 (Magic.magic_macro): Added @macro function to ease the creation of
5693 macros.
5702 macros.
5694
5703
5695 2002-01-05 Fernando Perez <fperez@colorado.edu>
5704 2002-01-05 Fernando Perez <fperez@colorado.edu>
5696
5705
5697 * Released 0.2.4.
5706 * Released 0.2.4.
5698
5707
5699 * IPython/iplib.py (Magic.magic_pdef):
5708 * IPython/iplib.py (Magic.magic_pdef):
5700 (InteractiveShell.safe_execfile): report magic lines and error
5709 (InteractiveShell.safe_execfile): report magic lines and error
5701 lines without line numbers so one can easily copy/paste them for
5710 lines without line numbers so one can easily copy/paste them for
5702 re-execution.
5711 re-execution.
5703
5712
5704 * Updated manual with recent changes.
5713 * Updated manual with recent changes.
5705
5714
5706 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5715 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5707 docstring printing when class? is called. Very handy for knowing
5716 docstring printing when class? is called. Very handy for knowing
5708 how to create class instances (as long as __init__ is well
5717 how to create class instances (as long as __init__ is well
5709 documented, of course :)
5718 documented, of course :)
5710 (Magic.magic_doc): print both class and constructor docstrings.
5719 (Magic.magic_doc): print both class and constructor docstrings.
5711 (Magic.magic_pdef): give constructor info if passed a class and
5720 (Magic.magic_pdef): give constructor info if passed a class and
5712 __call__ info for callable object instances.
5721 __call__ info for callable object instances.
5713
5722
5714 2002-01-04 Fernando Perez <fperez@colorado.edu>
5723 2002-01-04 Fernando Perez <fperez@colorado.edu>
5715
5724
5716 * Made deep_reload() off by default. It doesn't always work
5725 * Made deep_reload() off by default. It doesn't always work
5717 exactly as intended, so it's probably safer to have it off. It's
5726 exactly as intended, so it's probably safer to have it off. It's
5718 still available as dreload() anyway, so nothing is lost.
5727 still available as dreload() anyway, so nothing is lost.
5719
5728
5720 2002-01-02 Fernando Perez <fperez@colorado.edu>
5729 2002-01-02 Fernando Perez <fperez@colorado.edu>
5721
5730
5722 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5731 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5723 so I wanted an updated release).
5732 so I wanted an updated release).
5724
5733
5725 2001-12-27 Fernando Perez <fperez@colorado.edu>
5734 2001-12-27 Fernando Perez <fperez@colorado.edu>
5726
5735
5727 * IPython/iplib.py (InteractiveShell.interact): Added the original
5736 * IPython/iplib.py (InteractiveShell.interact): Added the original
5728 code from 'code.py' for this module in order to change the
5737 code from 'code.py' for this module in order to change the
5729 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5738 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5730 the history cache would break when the user hit Ctrl-C, and
5739 the history cache would break when the user hit Ctrl-C, and
5731 interact() offers no way to add any hooks to it.
5740 interact() offers no way to add any hooks to it.
5732
5741
5733 2001-12-23 Fernando Perez <fperez@colorado.edu>
5742 2001-12-23 Fernando Perez <fperez@colorado.edu>
5734
5743
5735 * setup.py: added check for 'MANIFEST' before trying to remove
5744 * setup.py: added check for 'MANIFEST' before trying to remove
5736 it. Thanks to Sean Reifschneider.
5745 it. Thanks to Sean Reifschneider.
5737
5746
5738 2001-12-22 Fernando Perez <fperez@colorado.edu>
5747 2001-12-22 Fernando Perez <fperez@colorado.edu>
5739
5748
5740 * Released 0.2.2.
5749 * Released 0.2.2.
5741
5750
5742 * Finished (reasonably) writing the manual. Later will add the
5751 * Finished (reasonably) writing the manual. Later will add the
5743 python-standard navigation stylesheets, but for the time being
5752 python-standard navigation stylesheets, but for the time being
5744 it's fairly complete. Distribution will include html and pdf
5753 it's fairly complete. Distribution will include html and pdf
5745 versions.
5754 versions.
5746
5755
5747 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5756 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5748 (MayaVi author).
5757 (MayaVi author).
5749
5758
5750 2001-12-21 Fernando Perez <fperez@colorado.edu>
5759 2001-12-21 Fernando Perez <fperez@colorado.edu>
5751
5760
5752 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5761 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5753 good public release, I think (with the manual and the distutils
5762 good public release, I think (with the manual and the distutils
5754 installer). The manual can use some work, but that can go
5763 installer). The manual can use some work, but that can go
5755 slowly. Otherwise I think it's quite nice for end users. Next
5764 slowly. Otherwise I think it's quite nice for end users. Next
5756 summer, rewrite the guts of it...
5765 summer, rewrite the guts of it...
5757
5766
5758 * Changed format of ipythonrc files to use whitespace as the
5767 * Changed format of ipythonrc files to use whitespace as the
5759 separator instead of an explicit '='. Cleaner.
5768 separator instead of an explicit '='. Cleaner.
5760
5769
5761 2001-12-20 Fernando Perez <fperez@colorado.edu>
5770 2001-12-20 Fernando Perez <fperez@colorado.edu>
5762
5771
5763 * Started a manual in LyX. For now it's just a quick merge of the
5772 * Started a manual in LyX. For now it's just a quick merge of the
5764 various internal docstrings and READMEs. Later it may grow into a
5773 various internal docstrings and READMEs. Later it may grow into a
5765 nice, full-blown manual.
5774 nice, full-blown manual.
5766
5775
5767 * Set up a distutils based installer. Installation should now be
5776 * Set up a distutils based installer. Installation should now be
5768 trivially simple for end-users.
5777 trivially simple for end-users.
5769
5778
5770 2001-12-11 Fernando Perez <fperez@colorado.edu>
5779 2001-12-11 Fernando Perez <fperez@colorado.edu>
5771
5780
5772 * Released 0.2.0. First public release, announced it at
5781 * Released 0.2.0. First public release, announced it at
5773 comp.lang.python. From now on, just bugfixes...
5782 comp.lang.python. From now on, just bugfixes...
5774
5783
5775 * Went through all the files, set copyright/license notices and
5784 * Went through all the files, set copyright/license notices and
5776 cleaned up things. Ready for release.
5785 cleaned up things. Ready for release.
5777
5786
5778 2001-12-10 Fernando Perez <fperez@colorado.edu>
5787 2001-12-10 Fernando Perez <fperez@colorado.edu>
5779
5788
5780 * Changed the first-time installer not to use tarfiles. It's more
5789 * Changed the first-time installer not to use tarfiles. It's more
5781 robust now and less unix-dependent. Also makes it easier for
5790 robust now and less unix-dependent. Also makes it easier for
5782 people to later upgrade versions.
5791 people to later upgrade versions.
5783
5792
5784 * Changed @exit to @abort to reflect the fact that it's pretty
5793 * Changed @exit to @abort to reflect the fact that it's pretty
5785 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5794 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5786 becomes significant only when IPyhton is embedded: in that case,
5795 becomes significant only when IPyhton is embedded: in that case,
5787 C-D closes IPython only, but @abort kills the enclosing program
5796 C-D closes IPython only, but @abort kills the enclosing program
5788 too (unless it had called IPython inside a try catching
5797 too (unless it had called IPython inside a try catching
5789 SystemExit).
5798 SystemExit).
5790
5799
5791 * Created Shell module which exposes the actuall IPython Shell
5800 * Created Shell module which exposes the actuall IPython Shell
5792 classes, currently the normal and the embeddable one. This at
5801 classes, currently the normal and the embeddable one. This at
5793 least offers a stable interface we won't need to change when
5802 least offers a stable interface we won't need to change when
5794 (later) the internals are rewritten. That rewrite will be confined
5803 (later) the internals are rewritten. That rewrite will be confined
5795 to iplib and ipmaker, but the Shell interface should remain as is.
5804 to iplib and ipmaker, but the Shell interface should remain as is.
5796
5805
5797 * Added embed module which offers an embeddable IPShell object,
5806 * Added embed module which offers an embeddable IPShell object,
5798 useful to fire up IPython *inside* a running program. Great for
5807 useful to fire up IPython *inside* a running program. Great for
5799 debugging or dynamical data analysis.
5808 debugging or dynamical data analysis.
5800
5809
5801 2001-12-08 Fernando Perez <fperez@colorado.edu>
5810 2001-12-08 Fernando Perez <fperez@colorado.edu>
5802
5811
5803 * Fixed small bug preventing seeing info from methods of defined
5812 * Fixed small bug preventing seeing info from methods of defined
5804 objects (incorrect namespace in _ofind()).
5813 objects (incorrect namespace in _ofind()).
5805
5814
5806 * Documentation cleanup. Moved the main usage docstrings to a
5815 * Documentation cleanup. Moved the main usage docstrings to a
5807 separate file, usage.py (cleaner to maintain, and hopefully in the
5816 separate file, usage.py (cleaner to maintain, and hopefully in the
5808 future some perlpod-like way of producing interactive, man and
5817 future some perlpod-like way of producing interactive, man and
5809 html docs out of it will be found).
5818 html docs out of it will be found).
5810
5819
5811 * Added @profile to see your profile at any time.
5820 * Added @profile to see your profile at any time.
5812
5821
5813 * Added @p as an alias for 'print'. It's especially convenient if
5822 * Added @p as an alias for 'print'. It's especially convenient if
5814 using automagic ('p x' prints x).
5823 using automagic ('p x' prints x).
5815
5824
5816 * Small cleanups and fixes after a pychecker run.
5825 * Small cleanups and fixes after a pychecker run.
5817
5826
5818 * Changed the @cd command to handle @cd - and @cd -<n> for
5827 * Changed the @cd command to handle @cd - and @cd -<n> for
5819 visiting any directory in _dh.
5828 visiting any directory in _dh.
5820
5829
5821 * Introduced _dh, a history of visited directories. @dhist prints
5830 * Introduced _dh, a history of visited directories. @dhist prints
5822 it out with numbers.
5831 it out with numbers.
5823
5832
5824 2001-12-07 Fernando Perez <fperez@colorado.edu>
5833 2001-12-07 Fernando Perez <fperez@colorado.edu>
5825
5834
5826 * Released 0.1.22
5835 * Released 0.1.22
5827
5836
5828 * Made initialization a bit more robust against invalid color
5837 * Made initialization a bit more robust against invalid color
5829 options in user input (exit, not traceback-crash).
5838 options in user input (exit, not traceback-crash).
5830
5839
5831 * Changed the bug crash reporter to write the report only in the
5840 * Changed the bug crash reporter to write the report only in the
5832 user's .ipython directory. That way IPython won't litter people's
5841 user's .ipython directory. That way IPython won't litter people's
5833 hard disks with crash files all over the place. Also print on
5842 hard disks with crash files all over the place. Also print on
5834 screen the necessary mail command.
5843 screen the necessary mail command.
5835
5844
5836 * With the new ultraTB, implemented LightBG color scheme for light
5845 * With the new ultraTB, implemented LightBG color scheme for light
5837 background terminals. A lot of people like white backgrounds, so I
5846 background terminals. A lot of people like white backgrounds, so I
5838 guess we should at least give them something readable.
5847 guess we should at least give them something readable.
5839
5848
5840 2001-12-06 Fernando Perez <fperez@colorado.edu>
5849 2001-12-06 Fernando Perez <fperez@colorado.edu>
5841
5850
5842 * Modified the structure of ultraTB. Now there's a proper class
5851 * Modified the structure of ultraTB. Now there's a proper class
5843 for tables of color schemes which allow adding schemes easily and
5852 for tables of color schemes which allow adding schemes easily and
5844 switching the active scheme without creating a new instance every
5853 switching the active scheme without creating a new instance every
5845 time (which was ridiculous). The syntax for creating new schemes
5854 time (which was ridiculous). The syntax for creating new schemes
5846 is also cleaner. I think ultraTB is finally done, with a clean
5855 is also cleaner. I think ultraTB is finally done, with a clean
5847 class structure. Names are also much cleaner (now there's proper
5856 class structure. Names are also much cleaner (now there's proper
5848 color tables, no need for every variable to also have 'color' in
5857 color tables, no need for every variable to also have 'color' in
5849 its name).
5858 its name).
5850
5859
5851 * Broke down genutils into separate files. Now genutils only
5860 * Broke down genutils into separate files. Now genutils only
5852 contains utility functions, and classes have been moved to their
5861 contains utility functions, and classes have been moved to their
5853 own files (they had enough independent functionality to warrant
5862 own files (they had enough independent functionality to warrant
5854 it): ConfigLoader, OutputTrap, Struct.
5863 it): ConfigLoader, OutputTrap, Struct.
5855
5864
5856 2001-12-05 Fernando Perez <fperez@colorado.edu>
5865 2001-12-05 Fernando Perez <fperez@colorado.edu>
5857
5866
5858 * IPython turns 21! Released version 0.1.21, as a candidate for
5867 * IPython turns 21! Released version 0.1.21, as a candidate for
5859 public consumption. If all goes well, release in a few days.
5868 public consumption. If all goes well, release in a few days.
5860
5869
5861 * Fixed path bug (files in Extensions/ directory wouldn't be found
5870 * Fixed path bug (files in Extensions/ directory wouldn't be found
5862 unless IPython/ was explicitly in sys.path).
5871 unless IPython/ was explicitly in sys.path).
5863
5872
5864 * Extended the FlexCompleter class as MagicCompleter to allow
5873 * Extended the FlexCompleter class as MagicCompleter to allow
5865 completion of @-starting lines.
5874 completion of @-starting lines.
5866
5875
5867 * Created __release__.py file as a central repository for release
5876 * Created __release__.py file as a central repository for release
5868 info that other files can read from.
5877 info that other files can read from.
5869
5878
5870 * Fixed small bug in logging: when logging was turned on in
5879 * Fixed small bug in logging: when logging was turned on in
5871 mid-session, old lines with special meanings (!@?) were being
5880 mid-session, old lines with special meanings (!@?) were being
5872 logged without the prepended comment, which is necessary since
5881 logged without the prepended comment, which is necessary since
5873 they are not truly valid python syntax. This should make session
5882 they are not truly valid python syntax. This should make session
5874 restores produce less errors.
5883 restores produce less errors.
5875
5884
5876 * The namespace cleanup forced me to make a FlexCompleter class
5885 * The namespace cleanup forced me to make a FlexCompleter class
5877 which is nothing but a ripoff of rlcompleter, but with selectable
5886 which is nothing but a ripoff of rlcompleter, but with selectable
5878 namespace (rlcompleter only works in __main__.__dict__). I'll try
5887 namespace (rlcompleter only works in __main__.__dict__). I'll try
5879 to submit a note to the authors to see if this change can be
5888 to submit a note to the authors to see if this change can be
5880 incorporated in future rlcompleter releases (Dec.6: done)
5889 incorporated in future rlcompleter releases (Dec.6: done)
5881
5890
5882 * More fixes to namespace handling. It was a mess! Now all
5891 * More fixes to namespace handling. It was a mess! Now all
5883 explicit references to __main__.__dict__ are gone (except when
5892 explicit references to __main__.__dict__ are gone (except when
5884 really needed) and everything is handled through the namespace
5893 really needed) and everything is handled through the namespace
5885 dicts in the IPython instance. We seem to be getting somewhere
5894 dicts in the IPython instance. We seem to be getting somewhere
5886 with this, finally...
5895 with this, finally...
5887
5896
5888 * Small documentation updates.
5897 * Small documentation updates.
5889
5898
5890 * Created the Extensions directory under IPython (with an
5899 * Created the Extensions directory under IPython (with an
5891 __init__.py). Put the PhysicalQ stuff there. This directory should
5900 __init__.py). Put the PhysicalQ stuff there. This directory should
5892 be used for all special-purpose extensions.
5901 be used for all special-purpose extensions.
5893
5902
5894 * File renaming:
5903 * File renaming:
5895 ipythonlib --> ipmaker
5904 ipythonlib --> ipmaker
5896 ipplib --> iplib
5905 ipplib --> iplib
5897 This makes a bit more sense in terms of what these files actually do.
5906 This makes a bit more sense in terms of what these files actually do.
5898
5907
5899 * Moved all the classes and functions in ipythonlib to ipplib, so
5908 * Moved all the classes and functions in ipythonlib to ipplib, so
5900 now ipythonlib only has make_IPython(). This will ease up its
5909 now ipythonlib only has make_IPython(). This will ease up its
5901 splitting in smaller functional chunks later.
5910 splitting in smaller functional chunks later.
5902
5911
5903 * Cleaned up (done, I think) output of @whos. Better column
5912 * Cleaned up (done, I think) output of @whos. Better column
5904 formatting, and now shows str(var) for as much as it can, which is
5913 formatting, and now shows str(var) for as much as it can, which is
5905 typically what one gets with a 'print var'.
5914 typically what one gets with a 'print var'.
5906
5915
5907 2001-12-04 Fernando Perez <fperez@colorado.edu>
5916 2001-12-04 Fernando Perez <fperez@colorado.edu>
5908
5917
5909 * Fixed namespace problems. Now builtin/IPyhton/user names get
5918 * Fixed namespace problems. Now builtin/IPyhton/user names get
5910 properly reported in their namespace. Internal namespace handling
5919 properly reported in their namespace. Internal namespace handling
5911 is finally getting decent (not perfect yet, but much better than
5920 is finally getting decent (not perfect yet, but much better than
5912 the ad-hoc mess we had).
5921 the ad-hoc mess we had).
5913
5922
5914 * Removed -exit option. If people just want to run a python
5923 * Removed -exit option. If people just want to run a python
5915 script, that's what the normal interpreter is for. Less
5924 script, that's what the normal interpreter is for. Less
5916 unnecessary options, less chances for bugs.
5925 unnecessary options, less chances for bugs.
5917
5926
5918 * Added a crash handler which generates a complete post-mortem if
5927 * Added a crash handler which generates a complete post-mortem if
5919 IPython crashes. This will help a lot in tracking bugs down the
5928 IPython crashes. This will help a lot in tracking bugs down the
5920 road.
5929 road.
5921
5930
5922 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5931 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5923 which were boud to functions being reassigned would bypass the
5932 which were boud to functions being reassigned would bypass the
5924 logger, breaking the sync of _il with the prompt counter. This
5933 logger, breaking the sync of _il with the prompt counter. This
5925 would then crash IPython later when a new line was logged.
5934 would then crash IPython later when a new line was logged.
5926
5935
5927 2001-12-02 Fernando Perez <fperez@colorado.edu>
5936 2001-12-02 Fernando Perez <fperez@colorado.edu>
5928
5937
5929 * Made IPython a package. This means people don't have to clutter
5938 * Made IPython a package. This means people don't have to clutter
5930 their sys.path with yet another directory. Changed the INSTALL
5939 their sys.path with yet another directory. Changed the INSTALL
5931 file accordingly.
5940 file accordingly.
5932
5941
5933 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5942 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5934 sorts its output (so @who shows it sorted) and @whos formats the
5943 sorts its output (so @who shows it sorted) and @whos formats the
5935 table according to the width of the first column. Nicer, easier to
5944 table according to the width of the first column. Nicer, easier to
5936 read. Todo: write a generic table_format() which takes a list of
5945 read. Todo: write a generic table_format() which takes a list of
5937 lists and prints it nicely formatted, with optional row/column
5946 lists and prints it nicely formatted, with optional row/column
5938 separators and proper padding and justification.
5947 separators and proper padding and justification.
5939
5948
5940 * Released 0.1.20
5949 * Released 0.1.20
5941
5950
5942 * Fixed bug in @log which would reverse the inputcache list (a
5951 * Fixed bug in @log which would reverse the inputcache list (a
5943 copy operation was missing).
5952 copy operation was missing).
5944
5953
5945 * Code cleanup. @config was changed to use page(). Better, since
5954 * Code cleanup. @config was changed to use page(). Better, since
5946 its output is always quite long.
5955 its output is always quite long.
5947
5956
5948 * Itpl is back as a dependency. I was having too many problems
5957 * Itpl is back as a dependency. I was having too many problems
5949 getting the parametric aliases to work reliably, and it's just
5958 getting the parametric aliases to work reliably, and it's just
5950 easier to code weird string operations with it than playing %()s
5959 easier to code weird string operations with it than playing %()s
5951 games. It's only ~6k, so I don't think it's too big a deal.
5960 games. It's only ~6k, so I don't think it's too big a deal.
5952
5961
5953 * Found (and fixed) a very nasty bug with history. !lines weren't
5962 * Found (and fixed) a very nasty bug with history. !lines weren't
5954 getting cached, and the out of sync caches would crash
5963 getting cached, and the out of sync caches would crash
5955 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5964 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5956 division of labor a bit better. Bug fixed, cleaner structure.
5965 division of labor a bit better. Bug fixed, cleaner structure.
5957
5966
5958 2001-12-01 Fernando Perez <fperez@colorado.edu>
5967 2001-12-01 Fernando Perez <fperez@colorado.edu>
5959
5968
5960 * Released 0.1.19
5969 * Released 0.1.19
5961
5970
5962 * Added option -n to @hist to prevent line number printing. Much
5971 * Added option -n to @hist to prevent line number printing. Much
5963 easier to copy/paste code this way.
5972 easier to copy/paste code this way.
5964
5973
5965 * Created global _il to hold the input list. Allows easy
5974 * Created global _il to hold the input list. Allows easy
5966 re-execution of blocks of code by slicing it (inspired by Janko's
5975 re-execution of blocks of code by slicing it (inspired by Janko's
5967 comment on 'macros').
5976 comment on 'macros').
5968
5977
5969 * Small fixes and doc updates.
5978 * Small fixes and doc updates.
5970
5979
5971 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5980 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5972 much too fragile with automagic. Handles properly multi-line
5981 much too fragile with automagic. Handles properly multi-line
5973 statements and takes parameters.
5982 statements and takes parameters.
5974
5983
5975 2001-11-30 Fernando Perez <fperez@colorado.edu>
5984 2001-11-30 Fernando Perez <fperez@colorado.edu>
5976
5985
5977 * Version 0.1.18 released.
5986 * Version 0.1.18 released.
5978
5987
5979 * Fixed nasty namespace bug in initial module imports.
5988 * Fixed nasty namespace bug in initial module imports.
5980
5989
5981 * Added copyright/license notes to all code files (except
5990 * Added copyright/license notes to all code files (except
5982 DPyGetOpt). For the time being, LGPL. That could change.
5991 DPyGetOpt). For the time being, LGPL. That could change.
5983
5992
5984 * Rewrote a much nicer README, updated INSTALL, cleaned up
5993 * Rewrote a much nicer README, updated INSTALL, cleaned up
5985 ipythonrc-* samples.
5994 ipythonrc-* samples.
5986
5995
5987 * Overall code/documentation cleanup. Basically ready for
5996 * Overall code/documentation cleanup. Basically ready for
5988 release. Only remaining thing: licence decision (LGPL?).
5997 release. Only remaining thing: licence decision (LGPL?).
5989
5998
5990 * Converted load_config to a class, ConfigLoader. Now recursion
5999 * Converted load_config to a class, ConfigLoader. Now recursion
5991 control is better organized. Doesn't include the same file twice.
6000 control is better organized. Doesn't include the same file twice.
5992
6001
5993 2001-11-29 Fernando Perez <fperez@colorado.edu>
6002 2001-11-29 Fernando Perez <fperez@colorado.edu>
5994
6003
5995 * Got input history working. Changed output history variables from
6004 * Got input history working. Changed output history variables from
5996 _p to _o so that _i is for input and _o for output. Just cleaner
6005 _p to _o so that _i is for input and _o for output. Just cleaner
5997 convention.
6006 convention.
5998
6007
5999 * Implemented parametric aliases. This pretty much allows the
6008 * Implemented parametric aliases. This pretty much allows the
6000 alias system to offer full-blown shell convenience, I think.
6009 alias system to offer full-blown shell convenience, I think.
6001
6010
6002 * Version 0.1.17 released, 0.1.18 opened.
6011 * Version 0.1.17 released, 0.1.18 opened.
6003
6012
6004 * dot_ipython/ipythonrc (alias): added documentation.
6013 * dot_ipython/ipythonrc (alias): added documentation.
6005 (xcolor): Fixed small bug (xcolors -> xcolor)
6014 (xcolor): Fixed small bug (xcolors -> xcolor)
6006
6015
6007 * Changed the alias system. Now alias is a magic command to define
6016 * Changed the alias system. Now alias is a magic command to define
6008 aliases just like the shell. Rationale: the builtin magics should
6017 aliases just like the shell. Rationale: the builtin magics should
6009 be there for things deeply connected to IPython's
6018 be there for things deeply connected to IPython's
6010 architecture. And this is a much lighter system for what I think
6019 architecture. And this is a much lighter system for what I think
6011 is the really important feature: allowing users to define quickly
6020 is the really important feature: allowing users to define quickly
6012 magics that will do shell things for them, so they can customize
6021 magics that will do shell things for them, so they can customize
6013 IPython easily to match their work habits. If someone is really
6022 IPython easily to match their work habits. If someone is really
6014 desperate to have another name for a builtin alias, they can
6023 desperate to have another name for a builtin alias, they can
6015 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6024 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6016 works.
6025 works.
6017
6026
6018 2001-11-28 Fernando Perez <fperez@colorado.edu>
6027 2001-11-28 Fernando Perez <fperez@colorado.edu>
6019
6028
6020 * Changed @file so that it opens the source file at the proper
6029 * Changed @file so that it opens the source file at the proper
6021 line. Since it uses less, if your EDITOR environment is
6030 line. Since it uses less, if your EDITOR environment is
6022 configured, typing v will immediately open your editor of choice
6031 configured, typing v will immediately open your editor of choice
6023 right at the line where the object is defined. Not as quick as
6032 right at the line where the object is defined. Not as quick as
6024 having a direct @edit command, but for all intents and purposes it
6033 having a direct @edit command, but for all intents and purposes it
6025 works. And I don't have to worry about writing @edit to deal with
6034 works. And I don't have to worry about writing @edit to deal with
6026 all the editors, less does that.
6035 all the editors, less does that.
6027
6036
6028 * Version 0.1.16 released, 0.1.17 opened.
6037 * Version 0.1.16 released, 0.1.17 opened.
6029
6038
6030 * Fixed some nasty bugs in the page/page_dumb combo that could
6039 * Fixed some nasty bugs in the page/page_dumb combo that could
6031 crash IPython.
6040 crash IPython.
6032
6041
6033 2001-11-27 Fernando Perez <fperez@colorado.edu>
6042 2001-11-27 Fernando Perez <fperez@colorado.edu>
6034
6043
6035 * Version 0.1.15 released, 0.1.16 opened.
6044 * Version 0.1.15 released, 0.1.16 opened.
6036
6045
6037 * Finally got ? and ?? to work for undefined things: now it's
6046 * Finally got ? and ?? to work for undefined things: now it's
6038 possible to type {}.get? and get information about the get method
6047 possible to type {}.get? and get information about the get method
6039 of dicts, or os.path? even if only os is defined (so technically
6048 of dicts, or os.path? even if only os is defined (so technically
6040 os.path isn't). Works at any level. For example, after import os,
6049 os.path isn't). Works at any level. For example, after import os,
6041 os?, os.path?, os.path.abspath? all work. This is great, took some
6050 os?, os.path?, os.path.abspath? all work. This is great, took some
6042 work in _ofind.
6051 work in _ofind.
6043
6052
6044 * Fixed more bugs with logging. The sanest way to do it was to add
6053 * Fixed more bugs with logging. The sanest way to do it was to add
6045 to @log a 'mode' parameter. Killed two in one shot (this mode
6054 to @log a 'mode' parameter. Killed two in one shot (this mode
6046 option was a request of Janko's). I think it's finally clean
6055 option was a request of Janko's). I think it's finally clean
6047 (famous last words).
6056 (famous last words).
6048
6057
6049 * Added a page_dumb() pager which does a decent job of paging on
6058 * Added a page_dumb() pager which does a decent job of paging on
6050 screen, if better things (like less) aren't available. One less
6059 screen, if better things (like less) aren't available. One less
6051 unix dependency (someday maybe somebody will port this to
6060 unix dependency (someday maybe somebody will port this to
6052 windows).
6061 windows).
6053
6062
6054 * Fixed problem in magic_log: would lock of logging out if log
6063 * Fixed problem in magic_log: would lock of logging out if log
6055 creation failed (because it would still think it had succeeded).
6064 creation failed (because it would still think it had succeeded).
6056
6065
6057 * Improved the page() function using curses to auto-detect screen
6066 * Improved the page() function using curses to auto-detect screen
6058 size. Now it can make a much better decision on whether to print
6067 size. Now it can make a much better decision on whether to print
6059 or page a string. Option screen_length was modified: a value 0
6068 or page a string. Option screen_length was modified: a value 0
6060 means auto-detect, and that's the default now.
6069 means auto-detect, and that's the default now.
6061
6070
6062 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6071 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6063 go out. I'll test it for a few days, then talk to Janko about
6072 go out. I'll test it for a few days, then talk to Janko about
6064 licences and announce it.
6073 licences and announce it.
6065
6074
6066 * Fixed the length of the auto-generated ---> prompt which appears
6075 * Fixed the length of the auto-generated ---> prompt which appears
6067 for auto-parens and auto-quotes. Getting this right isn't trivial,
6076 for auto-parens and auto-quotes. Getting this right isn't trivial,
6068 with all the color escapes, different prompt types and optional
6077 with all the color escapes, different prompt types and optional
6069 separators. But it seems to be working in all the combinations.
6078 separators. But it seems to be working in all the combinations.
6070
6079
6071 2001-11-26 Fernando Perez <fperez@colorado.edu>
6080 2001-11-26 Fernando Perez <fperez@colorado.edu>
6072
6081
6073 * Wrote a regexp filter to get option types from the option names
6082 * Wrote a regexp filter to get option types from the option names
6074 string. This eliminates the need to manually keep two duplicate
6083 string. This eliminates the need to manually keep two duplicate
6075 lists.
6084 lists.
6076
6085
6077 * Removed the unneeded check_option_names. Now options are handled
6086 * Removed the unneeded check_option_names. Now options are handled
6078 in a much saner manner and it's easy to visually check that things
6087 in a much saner manner and it's easy to visually check that things
6079 are ok.
6088 are ok.
6080
6089
6081 * Updated version numbers on all files I modified to carry a
6090 * Updated version numbers on all files I modified to carry a
6082 notice so Janko and Nathan have clear version markers.
6091 notice so Janko and Nathan have clear version markers.
6083
6092
6084 * Updated docstring for ultraTB with my changes. I should send
6093 * Updated docstring for ultraTB with my changes. I should send
6085 this to Nathan.
6094 this to Nathan.
6086
6095
6087 * Lots of small fixes. Ran everything through pychecker again.
6096 * Lots of small fixes. Ran everything through pychecker again.
6088
6097
6089 * Made loading of deep_reload an cmd line option. If it's not too
6098 * Made loading of deep_reload an cmd line option. If it's not too
6090 kosher, now people can just disable it. With -nodeep_reload it's
6099 kosher, now people can just disable it. With -nodeep_reload it's
6091 still available as dreload(), it just won't overwrite reload().
6100 still available as dreload(), it just won't overwrite reload().
6092
6101
6093 * Moved many options to the no| form (-opt and -noopt
6102 * Moved many options to the no| form (-opt and -noopt
6094 accepted). Cleaner.
6103 accepted). Cleaner.
6095
6104
6096 * Changed magic_log so that if called with no parameters, it uses
6105 * Changed magic_log so that if called with no parameters, it uses
6097 'rotate' mode. That way auto-generated logs aren't automatically
6106 'rotate' mode. That way auto-generated logs aren't automatically
6098 over-written. For normal logs, now a backup is made if it exists
6107 over-written. For normal logs, now a backup is made if it exists
6099 (only 1 level of backups). A new 'backup' mode was added to the
6108 (only 1 level of backups). A new 'backup' mode was added to the
6100 Logger class to support this. This was a request by Janko.
6109 Logger class to support this. This was a request by Janko.
6101
6110
6102 * Added @logoff/@logon to stop/restart an active log.
6111 * Added @logoff/@logon to stop/restart an active log.
6103
6112
6104 * Fixed a lot of bugs in log saving/replay. It was pretty
6113 * Fixed a lot of bugs in log saving/replay. It was pretty
6105 broken. Now special lines (!@,/) appear properly in the command
6114 broken. Now special lines (!@,/) appear properly in the command
6106 history after a log replay.
6115 history after a log replay.
6107
6116
6108 * Tried and failed to implement full session saving via pickle. My
6117 * Tried and failed to implement full session saving via pickle. My
6109 idea was to pickle __main__.__dict__, but modules can't be
6118 idea was to pickle __main__.__dict__, but modules can't be
6110 pickled. This would be a better alternative to replaying logs, but
6119 pickled. This would be a better alternative to replaying logs, but
6111 seems quite tricky to get to work. Changed -session to be called
6120 seems quite tricky to get to work. Changed -session to be called
6112 -logplay, which more accurately reflects what it does. And if we
6121 -logplay, which more accurately reflects what it does. And if we
6113 ever get real session saving working, -session is now available.
6122 ever get real session saving working, -session is now available.
6114
6123
6115 * Implemented color schemes for prompts also. As for tracebacks,
6124 * Implemented color schemes for prompts also. As for tracebacks,
6116 currently only NoColor and Linux are supported. But now the
6125 currently only NoColor and Linux are supported. But now the
6117 infrastructure is in place, based on a generic ColorScheme
6126 infrastructure is in place, based on a generic ColorScheme
6118 class. So writing and activating new schemes both for the prompts
6127 class. So writing and activating new schemes both for the prompts
6119 and the tracebacks should be straightforward.
6128 and the tracebacks should be straightforward.
6120
6129
6121 * Version 0.1.13 released, 0.1.14 opened.
6130 * Version 0.1.13 released, 0.1.14 opened.
6122
6131
6123 * Changed handling of options for output cache. Now counter is
6132 * Changed handling of options for output cache. Now counter is
6124 hardwired starting at 1 and one specifies the maximum number of
6133 hardwired starting at 1 and one specifies the maximum number of
6125 entries *in the outcache* (not the max prompt counter). This is
6134 entries *in the outcache* (not the max prompt counter). This is
6126 much better, since many statements won't increase the cache
6135 much better, since many statements won't increase the cache
6127 count. It also eliminated some confusing options, now there's only
6136 count. It also eliminated some confusing options, now there's only
6128 one: cache_size.
6137 one: cache_size.
6129
6138
6130 * Added 'alias' magic function and magic_alias option in the
6139 * Added 'alias' magic function and magic_alias option in the
6131 ipythonrc file. Now the user can easily define whatever names he
6140 ipythonrc file. Now the user can easily define whatever names he
6132 wants for the magic functions without having to play weird
6141 wants for the magic functions without having to play weird
6133 namespace games. This gives IPython a real shell-like feel.
6142 namespace games. This gives IPython a real shell-like feel.
6134
6143
6135 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6144 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6136 @ or not).
6145 @ or not).
6137
6146
6138 This was one of the last remaining 'visible' bugs (that I know
6147 This was one of the last remaining 'visible' bugs (that I know
6139 of). I think if I can clean up the session loading so it works
6148 of). I think if I can clean up the session loading so it works
6140 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6149 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6141 about licensing).
6150 about licensing).
6142
6151
6143 2001-11-25 Fernando Perez <fperez@colorado.edu>
6152 2001-11-25 Fernando Perez <fperez@colorado.edu>
6144
6153
6145 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6154 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6146 there's a cleaner distinction between what ? and ?? show.
6155 there's a cleaner distinction between what ? and ?? show.
6147
6156
6148 * Added screen_length option. Now the user can define his own
6157 * Added screen_length option. Now the user can define his own
6149 screen size for page() operations.
6158 screen size for page() operations.
6150
6159
6151 * Implemented magic shell-like functions with automatic code
6160 * Implemented magic shell-like functions with automatic code
6152 generation. Now adding another function is just a matter of adding
6161 generation. Now adding another function is just a matter of adding
6153 an entry to a dict, and the function is dynamically generated at
6162 an entry to a dict, and the function is dynamically generated at
6154 run-time. Python has some really cool features!
6163 run-time. Python has some really cool features!
6155
6164
6156 * Renamed many options to cleanup conventions a little. Now all
6165 * Renamed many options to cleanup conventions a little. Now all
6157 are lowercase, and only underscores where needed. Also in the code
6166 are lowercase, and only underscores where needed. Also in the code
6158 option name tables are clearer.
6167 option name tables are clearer.
6159
6168
6160 * Changed prompts a little. Now input is 'In [n]:' instead of
6169 * Changed prompts a little. Now input is 'In [n]:' instead of
6161 'In[n]:='. This allows it the numbers to be aligned with the
6170 'In[n]:='. This allows it the numbers to be aligned with the
6162 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6171 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6163 Python (it was a Mathematica thing). The '...' continuation prompt
6172 Python (it was a Mathematica thing). The '...' continuation prompt
6164 was also changed a little to align better.
6173 was also changed a little to align better.
6165
6174
6166 * Fixed bug when flushing output cache. Not all _p<n> variables
6175 * Fixed bug when flushing output cache. Not all _p<n> variables
6167 exist, so their deletion needs to be wrapped in a try:
6176 exist, so their deletion needs to be wrapped in a try:
6168
6177
6169 * Figured out how to properly use inspect.formatargspec() (it
6178 * Figured out how to properly use inspect.formatargspec() (it
6170 requires the args preceded by *). So I removed all the code from
6179 requires the args preceded by *). So I removed all the code from
6171 _get_pdef in Magic, which was just replicating that.
6180 _get_pdef in Magic, which was just replicating that.
6172
6181
6173 * Added test to prefilter to allow redefining magic function names
6182 * Added test to prefilter to allow redefining magic function names
6174 as variables. This is ok, since the @ form is always available,
6183 as variables. This is ok, since the @ form is always available,
6175 but whe should allow the user to define a variable called 'ls' if
6184 but whe should allow the user to define a variable called 'ls' if
6176 he needs it.
6185 he needs it.
6177
6186
6178 * Moved the ToDo information from README into a separate ToDo.
6187 * Moved the ToDo information from README into a separate ToDo.
6179
6188
6180 * General code cleanup and small bugfixes. I think it's close to a
6189 * General code cleanup and small bugfixes. I think it's close to a
6181 state where it can be released, obviously with a big 'beta'
6190 state where it can be released, obviously with a big 'beta'
6182 warning on it.
6191 warning on it.
6183
6192
6184 * Got the magic function split to work. Now all magics are defined
6193 * Got the magic function split to work. Now all magics are defined
6185 in a separate class. It just organizes things a bit, and now
6194 in a separate class. It just organizes things a bit, and now
6186 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6195 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6187 was too long).
6196 was too long).
6188
6197
6189 * Changed @clear to @reset to avoid potential confusions with
6198 * Changed @clear to @reset to avoid potential confusions with
6190 the shell command clear. Also renamed @cl to @clear, which does
6199 the shell command clear. Also renamed @cl to @clear, which does
6191 exactly what people expect it to from their shell experience.
6200 exactly what people expect it to from their shell experience.
6192
6201
6193 Added a check to the @reset command (since it's so
6202 Added a check to the @reset command (since it's so
6194 destructive, it's probably a good idea to ask for confirmation).
6203 destructive, it's probably a good idea to ask for confirmation).
6195 But now reset only works for full namespace resetting. Since the
6204 But now reset only works for full namespace resetting. Since the
6196 del keyword is already there for deleting a few specific
6205 del keyword is already there for deleting a few specific
6197 variables, I don't see the point of having a redundant magic
6206 variables, I don't see the point of having a redundant magic
6198 function for the same task.
6207 function for the same task.
6199
6208
6200 2001-11-24 Fernando Perez <fperez@colorado.edu>
6209 2001-11-24 Fernando Perez <fperez@colorado.edu>
6201
6210
6202 * Updated the builtin docs (esp. the ? ones).
6211 * Updated the builtin docs (esp. the ? ones).
6203
6212
6204 * Ran all the code through pychecker. Not terribly impressed with
6213 * Ran all the code through pychecker. Not terribly impressed with
6205 it: lots of spurious warnings and didn't really find anything of
6214 it: lots of spurious warnings and didn't really find anything of
6206 substance (just a few modules being imported and not used).
6215 substance (just a few modules being imported and not used).
6207
6216
6208 * Implemented the new ultraTB functionality into IPython. New
6217 * Implemented the new ultraTB functionality into IPython. New
6209 option: xcolors. This chooses color scheme. xmode now only selects
6218 option: xcolors. This chooses color scheme. xmode now only selects
6210 between Plain and Verbose. Better orthogonality.
6219 between Plain and Verbose. Better orthogonality.
6211
6220
6212 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6221 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6213 mode and color scheme for the exception handlers. Now it's
6222 mode and color scheme for the exception handlers. Now it's
6214 possible to have the verbose traceback with no coloring.
6223 possible to have the verbose traceback with no coloring.
6215
6224
6216 2001-11-23 Fernando Perez <fperez@colorado.edu>
6225 2001-11-23 Fernando Perez <fperez@colorado.edu>
6217
6226
6218 * Version 0.1.12 released, 0.1.13 opened.
6227 * Version 0.1.12 released, 0.1.13 opened.
6219
6228
6220 * Removed option to set auto-quote and auto-paren escapes by
6229 * Removed option to set auto-quote and auto-paren escapes by
6221 user. The chances of breaking valid syntax are just too high. If
6230 user. The chances of breaking valid syntax are just too high. If
6222 someone *really* wants, they can always dig into the code.
6231 someone *really* wants, they can always dig into the code.
6223
6232
6224 * Made prompt separators configurable.
6233 * Made prompt separators configurable.
6225
6234
6226 2001-11-22 Fernando Perez <fperez@colorado.edu>
6235 2001-11-22 Fernando Perez <fperez@colorado.edu>
6227
6236
6228 * Small bugfixes in many places.
6237 * Small bugfixes in many places.
6229
6238
6230 * Removed the MyCompleter class from ipplib. It seemed redundant
6239 * Removed the MyCompleter class from ipplib. It seemed redundant
6231 with the C-p,C-n history search functionality. Less code to
6240 with the C-p,C-n history search functionality. Less code to
6232 maintain.
6241 maintain.
6233
6242
6234 * Moved all the original ipython.py code into ipythonlib.py. Right
6243 * Moved all the original ipython.py code into ipythonlib.py. Right
6235 now it's just one big dump into a function called make_IPython, so
6244 now it's just one big dump into a function called make_IPython, so
6236 no real modularity has been gained. But at least it makes the
6245 no real modularity has been gained. But at least it makes the
6237 wrapper script tiny, and since ipythonlib is a module, it gets
6246 wrapper script tiny, and since ipythonlib is a module, it gets
6238 compiled and startup is much faster.
6247 compiled and startup is much faster.
6239
6248
6240 This is a reasobably 'deep' change, so we should test it for a
6249 This is a reasobably 'deep' change, so we should test it for a
6241 while without messing too much more with the code.
6250 while without messing too much more with the code.
6242
6251
6243 2001-11-21 Fernando Perez <fperez@colorado.edu>
6252 2001-11-21 Fernando Perez <fperez@colorado.edu>
6244
6253
6245 * Version 0.1.11 released, 0.1.12 opened for further work.
6254 * Version 0.1.11 released, 0.1.12 opened for further work.
6246
6255
6247 * Removed dependency on Itpl. It was only needed in one place. It
6256 * Removed dependency on Itpl. It was only needed in one place. It
6248 would be nice if this became part of python, though. It makes life
6257 would be nice if this became part of python, though. It makes life
6249 *a lot* easier in some cases.
6258 *a lot* easier in some cases.
6250
6259
6251 * Simplified the prefilter code a bit. Now all handlers are
6260 * Simplified the prefilter code a bit. Now all handlers are
6252 expected to explicitly return a value (at least a blank string).
6261 expected to explicitly return a value (at least a blank string).
6253
6262
6254 * Heavy edits in ipplib. Removed the help system altogether. Now
6263 * Heavy edits in ipplib. Removed the help system altogether. Now
6255 obj?/?? is used for inspecting objects, a magic @doc prints
6264 obj?/?? is used for inspecting objects, a magic @doc prints
6256 docstrings, and full-blown Python help is accessed via the 'help'
6265 docstrings, and full-blown Python help is accessed via the 'help'
6257 keyword. This cleans up a lot of code (less to maintain) and does
6266 keyword. This cleans up a lot of code (less to maintain) and does
6258 the job. Since 'help' is now a standard Python component, might as
6267 the job. Since 'help' is now a standard Python component, might as
6259 well use it and remove duplicate functionality.
6268 well use it and remove duplicate functionality.
6260
6269
6261 Also removed the option to use ipplib as a standalone program. By
6270 Also removed the option to use ipplib as a standalone program. By
6262 now it's too dependent on other parts of IPython to function alone.
6271 now it's too dependent on other parts of IPython to function alone.
6263
6272
6264 * Fixed bug in genutils.pager. It would crash if the pager was
6273 * Fixed bug in genutils.pager. It would crash if the pager was
6265 exited immediately after opening (broken pipe).
6274 exited immediately after opening (broken pipe).
6266
6275
6267 * Trimmed down the VerboseTB reporting a little. The header is
6276 * Trimmed down the VerboseTB reporting a little. The header is
6268 much shorter now and the repeated exception arguments at the end
6277 much shorter now and the repeated exception arguments at the end
6269 have been removed. For interactive use the old header seemed a bit
6278 have been removed. For interactive use the old header seemed a bit
6270 excessive.
6279 excessive.
6271
6280
6272 * Fixed small bug in output of @whos for variables with multi-word
6281 * Fixed small bug in output of @whos for variables with multi-word
6273 types (only first word was displayed).
6282 types (only first word was displayed).
6274
6283
6275 2001-11-17 Fernando Perez <fperez@colorado.edu>
6284 2001-11-17 Fernando Perez <fperez@colorado.edu>
6276
6285
6277 * Version 0.1.10 released, 0.1.11 opened for further work.
6286 * Version 0.1.10 released, 0.1.11 opened for further work.
6278
6287
6279 * Modified dirs and friends. dirs now *returns* the stack (not
6288 * Modified dirs and friends. dirs now *returns* the stack (not
6280 prints), so one can manipulate it as a variable. Convenient to
6289 prints), so one can manipulate it as a variable. Convenient to
6281 travel along many directories.
6290 travel along many directories.
6282
6291
6283 * Fixed bug in magic_pdef: would only work with functions with
6292 * Fixed bug in magic_pdef: would only work with functions with
6284 arguments with default values.
6293 arguments with default values.
6285
6294
6286 2001-11-14 Fernando Perez <fperez@colorado.edu>
6295 2001-11-14 Fernando Perez <fperez@colorado.edu>
6287
6296
6288 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6297 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6289 example with IPython. Various other minor fixes and cleanups.
6298 example with IPython. Various other minor fixes and cleanups.
6290
6299
6291 * Version 0.1.9 released, 0.1.10 opened for further work.
6300 * Version 0.1.9 released, 0.1.10 opened for further work.
6292
6301
6293 * Added sys.path to the list of directories searched in the
6302 * Added sys.path to the list of directories searched in the
6294 execfile= option. It used to be the current directory and the
6303 execfile= option. It used to be the current directory and the
6295 user's IPYTHONDIR only.
6304 user's IPYTHONDIR only.
6296
6305
6297 2001-11-13 Fernando Perez <fperez@colorado.edu>
6306 2001-11-13 Fernando Perez <fperez@colorado.edu>
6298
6307
6299 * Reinstated the raw_input/prefilter separation that Janko had
6308 * Reinstated the raw_input/prefilter separation that Janko had
6300 initially. This gives a more convenient setup for extending the
6309 initially. This gives a more convenient setup for extending the
6301 pre-processor from the outside: raw_input always gets a string,
6310 pre-processor from the outside: raw_input always gets a string,
6302 and prefilter has to process it. We can then redefine prefilter
6311 and prefilter has to process it. We can then redefine prefilter
6303 from the outside and implement extensions for special
6312 from the outside and implement extensions for special
6304 purposes.
6313 purposes.
6305
6314
6306 Today I got one for inputting PhysicalQuantity objects
6315 Today I got one for inputting PhysicalQuantity objects
6307 (from Scientific) without needing any function calls at
6316 (from Scientific) without needing any function calls at
6308 all. Extremely convenient, and it's all done as a user-level
6317 all. Extremely convenient, and it's all done as a user-level
6309 extension (no IPython code was touched). Now instead of:
6318 extension (no IPython code was touched). Now instead of:
6310 a = PhysicalQuantity(4.2,'m/s**2')
6319 a = PhysicalQuantity(4.2,'m/s**2')
6311 one can simply say
6320 one can simply say
6312 a = 4.2 m/s**2
6321 a = 4.2 m/s**2
6313 or even
6322 or even
6314 a = 4.2 m/s^2
6323 a = 4.2 m/s^2
6315
6324
6316 I use this, but it's also a proof of concept: IPython really is
6325 I use this, but it's also a proof of concept: IPython really is
6317 fully user-extensible, even at the level of the parsing of the
6326 fully user-extensible, even at the level of the parsing of the
6318 command line. It's not trivial, but it's perfectly doable.
6327 command line. It's not trivial, but it's perfectly doable.
6319
6328
6320 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6329 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6321 the problem of modules being loaded in the inverse order in which
6330 the problem of modules being loaded in the inverse order in which
6322 they were defined in
6331 they were defined in
6323
6332
6324 * Version 0.1.8 released, 0.1.9 opened for further work.
6333 * Version 0.1.8 released, 0.1.9 opened for further work.
6325
6334
6326 * Added magics pdef, source and file. They respectively show the
6335 * Added magics pdef, source and file. They respectively show the
6327 definition line ('prototype' in C), source code and full python
6336 definition line ('prototype' in C), source code and full python
6328 file for any callable object. The object inspector oinfo uses
6337 file for any callable object. The object inspector oinfo uses
6329 these to show the same information.
6338 these to show the same information.
6330
6339
6331 * Version 0.1.7 released, 0.1.8 opened for further work.
6340 * Version 0.1.7 released, 0.1.8 opened for further work.
6332
6341
6333 * Separated all the magic functions into a class called Magic. The
6342 * Separated all the magic functions into a class called Magic. The
6334 InteractiveShell class was becoming too big for Xemacs to handle
6343 InteractiveShell class was becoming too big for Xemacs to handle
6335 (de-indenting a line would lock it up for 10 seconds while it
6344 (de-indenting a line would lock it up for 10 seconds while it
6336 backtracked on the whole class!)
6345 backtracked on the whole class!)
6337
6346
6338 FIXME: didn't work. It can be done, but right now namespaces are
6347 FIXME: didn't work. It can be done, but right now namespaces are
6339 all messed up. Do it later (reverted it for now, so at least
6348 all messed up. Do it later (reverted it for now, so at least
6340 everything works as before).
6349 everything works as before).
6341
6350
6342 * Got the object introspection system (magic_oinfo) working! I
6351 * Got the object introspection system (magic_oinfo) working! I
6343 think this is pretty much ready for release to Janko, so he can
6352 think this is pretty much ready for release to Janko, so he can
6344 test it for a while and then announce it. Pretty much 100% of what
6353 test it for a while and then announce it. Pretty much 100% of what
6345 I wanted for the 'phase 1' release is ready. Happy, tired.
6354 I wanted for the 'phase 1' release is ready. Happy, tired.
6346
6355
6347 2001-11-12 Fernando Perez <fperez@colorado.edu>
6356 2001-11-12 Fernando Perez <fperez@colorado.edu>
6348
6357
6349 * Version 0.1.6 released, 0.1.7 opened for further work.
6358 * Version 0.1.6 released, 0.1.7 opened for further work.
6350
6359
6351 * Fixed bug in printing: it used to test for truth before
6360 * Fixed bug in printing: it used to test for truth before
6352 printing, so 0 wouldn't print. Now checks for None.
6361 printing, so 0 wouldn't print. Now checks for None.
6353
6362
6354 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6363 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6355 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6364 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6356 reaches by hand into the outputcache. Think of a better way to do
6365 reaches by hand into the outputcache. Think of a better way to do
6357 this later.
6366 this later.
6358
6367
6359 * Various small fixes thanks to Nathan's comments.
6368 * Various small fixes thanks to Nathan's comments.
6360
6369
6361 * Changed magic_pprint to magic_Pprint. This way it doesn't
6370 * Changed magic_pprint to magic_Pprint. This way it doesn't
6362 collide with pprint() and the name is consistent with the command
6371 collide with pprint() and the name is consistent with the command
6363 line option.
6372 line option.
6364
6373
6365 * Changed prompt counter behavior to be fully like
6374 * Changed prompt counter behavior to be fully like
6366 Mathematica's. That is, even input that doesn't return a result
6375 Mathematica's. That is, even input that doesn't return a result
6367 raises the prompt counter. The old behavior was kind of confusing
6376 raises the prompt counter. The old behavior was kind of confusing
6368 (getting the same prompt number several times if the operation
6377 (getting the same prompt number several times if the operation
6369 didn't return a result).
6378 didn't return a result).
6370
6379
6371 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6380 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6372
6381
6373 * Fixed -Classic mode (wasn't working anymore).
6382 * Fixed -Classic mode (wasn't working anymore).
6374
6383
6375 * Added colored prompts using Nathan's new code. Colors are
6384 * Added colored prompts using Nathan's new code. Colors are
6376 currently hardwired, they can be user-configurable. For
6385 currently hardwired, they can be user-configurable. For
6377 developers, they can be chosen in file ipythonlib.py, at the
6386 developers, they can be chosen in file ipythonlib.py, at the
6378 beginning of the CachedOutput class def.
6387 beginning of the CachedOutput class def.
6379
6388
6380 2001-11-11 Fernando Perez <fperez@colorado.edu>
6389 2001-11-11 Fernando Perez <fperez@colorado.edu>
6381
6390
6382 * Version 0.1.5 released, 0.1.6 opened for further work.
6391 * Version 0.1.5 released, 0.1.6 opened for further work.
6383
6392
6384 * Changed magic_env to *return* the environment as a dict (not to
6393 * Changed magic_env to *return* the environment as a dict (not to
6385 print it). This way it prints, but it can also be processed.
6394 print it). This way it prints, but it can also be processed.
6386
6395
6387 * Added Verbose exception reporting to interactive
6396 * Added Verbose exception reporting to interactive
6388 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6397 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6389 traceback. Had to make some changes to the ultraTB file. This is
6398 traceback. Had to make some changes to the ultraTB file. This is
6390 probably the last 'big' thing in my mental todo list. This ties
6399 probably the last 'big' thing in my mental todo list. This ties
6391 in with the next entry:
6400 in with the next entry:
6392
6401
6393 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6402 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6394 has to specify is Plain, Color or Verbose for all exception
6403 has to specify is Plain, Color or Verbose for all exception
6395 handling.
6404 handling.
6396
6405
6397 * Removed ShellServices option. All this can really be done via
6406 * Removed ShellServices option. All this can really be done via
6398 the magic system. It's easier to extend, cleaner and has automatic
6407 the magic system. It's easier to extend, cleaner and has automatic
6399 namespace protection and documentation.
6408 namespace protection and documentation.
6400
6409
6401 2001-11-09 Fernando Perez <fperez@colorado.edu>
6410 2001-11-09 Fernando Perez <fperez@colorado.edu>
6402
6411
6403 * Fixed bug in output cache flushing (missing parameter to
6412 * Fixed bug in output cache flushing (missing parameter to
6404 __init__). Other small bugs fixed (found using pychecker).
6413 __init__). Other small bugs fixed (found using pychecker).
6405
6414
6406 * Version 0.1.4 opened for bugfixing.
6415 * Version 0.1.4 opened for bugfixing.
6407
6416
6408 2001-11-07 Fernando Perez <fperez@colorado.edu>
6417 2001-11-07 Fernando Perez <fperez@colorado.edu>
6409
6418
6410 * Version 0.1.3 released, mainly because of the raw_input bug.
6419 * Version 0.1.3 released, mainly because of the raw_input bug.
6411
6420
6412 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6421 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6413 and when testing for whether things were callable, a call could
6422 and when testing for whether things were callable, a call could
6414 actually be made to certain functions. They would get called again
6423 actually be made to certain functions. They would get called again
6415 once 'really' executed, with a resulting double call. A disaster
6424 once 'really' executed, with a resulting double call. A disaster
6416 in many cases (list.reverse() would never work!).
6425 in many cases (list.reverse() would never work!).
6417
6426
6418 * Removed prefilter() function, moved its code to raw_input (which
6427 * Removed prefilter() function, moved its code to raw_input (which
6419 after all was just a near-empty caller for prefilter). This saves
6428 after all was just a near-empty caller for prefilter). This saves
6420 a function call on every prompt, and simplifies the class a tiny bit.
6429 a function call on every prompt, and simplifies the class a tiny bit.
6421
6430
6422 * Fix _ip to __ip name in magic example file.
6431 * Fix _ip to __ip name in magic example file.
6423
6432
6424 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6433 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6425 work with non-gnu versions of tar.
6434 work with non-gnu versions of tar.
6426
6435
6427 2001-11-06 Fernando Perez <fperez@colorado.edu>
6436 2001-11-06 Fernando Perez <fperez@colorado.edu>
6428
6437
6429 * Version 0.1.2. Just to keep track of the recent changes.
6438 * Version 0.1.2. Just to keep track of the recent changes.
6430
6439
6431 * Fixed nasty bug in output prompt routine. It used to check 'if
6440 * Fixed nasty bug in output prompt routine. It used to check 'if
6432 arg != None...'. Problem is, this fails if arg implements a
6441 arg != None...'. Problem is, this fails if arg implements a
6433 special comparison (__cmp__) which disallows comparing to
6442 special comparison (__cmp__) which disallows comparing to
6434 None. Found it when trying to use the PhysicalQuantity module from
6443 None. Found it when trying to use the PhysicalQuantity module from
6435 ScientificPython.
6444 ScientificPython.
6436
6445
6437 2001-11-05 Fernando Perez <fperez@colorado.edu>
6446 2001-11-05 Fernando Perez <fperez@colorado.edu>
6438
6447
6439 * Also added dirs. Now the pushd/popd/dirs family functions
6448 * Also added dirs. Now the pushd/popd/dirs family functions
6440 basically like the shell, with the added convenience of going home
6449 basically like the shell, with the added convenience of going home
6441 when called with no args.
6450 when called with no args.
6442
6451
6443 * pushd/popd slightly modified to mimic shell behavior more
6452 * pushd/popd slightly modified to mimic shell behavior more
6444 closely.
6453 closely.
6445
6454
6446 * Added env,pushd,popd from ShellServices as magic functions. I
6455 * Added env,pushd,popd from ShellServices as magic functions. I
6447 think the cleanest will be to port all desired functions from
6456 think the cleanest will be to port all desired functions from
6448 ShellServices as magics and remove ShellServices altogether. This
6457 ShellServices as magics and remove ShellServices altogether. This
6449 will provide a single, clean way of adding functionality
6458 will provide a single, clean way of adding functionality
6450 (shell-type or otherwise) to IP.
6459 (shell-type or otherwise) to IP.
6451
6460
6452 2001-11-04 Fernando Perez <fperez@colorado.edu>
6461 2001-11-04 Fernando Perez <fperez@colorado.edu>
6453
6462
6454 * Added .ipython/ directory to sys.path. This way users can keep
6463 * Added .ipython/ directory to sys.path. This way users can keep
6455 customizations there and access them via import.
6464 customizations there and access them via import.
6456
6465
6457 2001-11-03 Fernando Perez <fperez@colorado.edu>
6466 2001-11-03 Fernando Perez <fperez@colorado.edu>
6458
6467
6459 * Opened version 0.1.1 for new changes.
6468 * Opened version 0.1.1 for new changes.
6460
6469
6461 * Changed version number to 0.1.0: first 'public' release, sent to
6470 * Changed version number to 0.1.0: first 'public' release, sent to
6462 Nathan and Janko.
6471 Nathan and Janko.
6463
6472
6464 * Lots of small fixes and tweaks.
6473 * Lots of small fixes and tweaks.
6465
6474
6466 * Minor changes to whos format. Now strings are shown, snipped if
6475 * Minor changes to whos format. Now strings are shown, snipped if
6467 too long.
6476 too long.
6468
6477
6469 * Changed ShellServices to work on __main__ so they show up in @who
6478 * Changed ShellServices to work on __main__ so they show up in @who
6470
6479
6471 * Help also works with ? at the end of a line:
6480 * Help also works with ? at the end of a line:
6472 ?sin and sin?
6481 ?sin and sin?
6473 both produce the same effect. This is nice, as often I use the
6482 both produce the same effect. This is nice, as often I use the
6474 tab-complete to find the name of a method, but I used to then have
6483 tab-complete to find the name of a method, but I used to then have
6475 to go to the beginning of the line to put a ? if I wanted more
6484 to go to the beginning of the line to put a ? if I wanted more
6476 info. Now I can just add the ? and hit return. Convenient.
6485 info. Now I can just add the ? and hit return. Convenient.
6477
6486
6478 2001-11-02 Fernando Perez <fperez@colorado.edu>
6487 2001-11-02 Fernando Perez <fperez@colorado.edu>
6479
6488
6480 * Python version check (>=2.1) added.
6489 * Python version check (>=2.1) added.
6481
6490
6482 * Added LazyPython documentation. At this point the docs are quite
6491 * Added LazyPython documentation. At this point the docs are quite
6483 a mess. A cleanup is in order.
6492 a mess. A cleanup is in order.
6484
6493
6485 * Auto-installer created. For some bizarre reason, the zipfiles
6494 * Auto-installer created. For some bizarre reason, the zipfiles
6486 module isn't working on my system. So I made a tar version
6495 module isn't working on my system. So I made a tar version
6487 (hopefully the command line options in various systems won't kill
6496 (hopefully the command line options in various systems won't kill
6488 me).
6497 me).
6489
6498
6490 * Fixes to Struct in genutils. Now all dictionary-like methods are
6499 * Fixes to Struct in genutils. Now all dictionary-like methods are
6491 protected (reasonably).
6500 protected (reasonably).
6492
6501
6493 * Added pager function to genutils and changed ? to print usage
6502 * Added pager function to genutils and changed ? to print usage
6494 note through it (it was too long).
6503 note through it (it was too long).
6495
6504
6496 * Added the LazyPython functionality. Works great! I changed the
6505 * Added the LazyPython functionality. Works great! I changed the
6497 auto-quote escape to ';', it's on home row and next to '. But
6506 auto-quote escape to ';', it's on home row and next to '. But
6498 both auto-quote and auto-paren (still /) escapes are command-line
6507 both auto-quote and auto-paren (still /) escapes are command-line
6499 parameters.
6508 parameters.
6500
6509
6501
6510
6502 2001-11-01 Fernando Perez <fperez@colorado.edu>
6511 2001-11-01 Fernando Perez <fperez@colorado.edu>
6503
6512
6504 * Version changed to 0.0.7. Fairly large change: configuration now
6513 * Version changed to 0.0.7. Fairly large change: configuration now
6505 is all stored in a directory, by default .ipython. There, all
6514 is all stored in a directory, by default .ipython. There, all
6506 config files have normal looking names (not .names)
6515 config files have normal looking names (not .names)
6507
6516
6508 * Version 0.0.6 Released first to Lucas and Archie as a test
6517 * Version 0.0.6 Released first to Lucas and Archie as a test
6509 run. Since it's the first 'semi-public' release, change version to
6518 run. Since it's the first 'semi-public' release, change version to
6510 > 0.0.6 for any changes now.
6519 > 0.0.6 for any changes now.
6511
6520
6512 * Stuff I had put in the ipplib.py changelog:
6521 * Stuff I had put in the ipplib.py changelog:
6513
6522
6514 Changes to InteractiveShell:
6523 Changes to InteractiveShell:
6515
6524
6516 - Made the usage message a parameter.
6525 - Made the usage message a parameter.
6517
6526
6518 - Require the name of the shell variable to be given. It's a bit
6527 - Require the name of the shell variable to be given. It's a bit
6519 of a hack, but allows the name 'shell' not to be hardwired in the
6528 of a hack, but allows the name 'shell' not to be hardwired in the
6520 magic (@) handler, which is problematic b/c it requires
6529 magic (@) handler, which is problematic b/c it requires
6521 polluting the global namespace with 'shell'. This in turn is
6530 polluting the global namespace with 'shell'. This in turn is
6522 fragile: if a user redefines a variable called shell, things
6531 fragile: if a user redefines a variable called shell, things
6523 break.
6532 break.
6524
6533
6525 - magic @: all functions available through @ need to be defined
6534 - magic @: all functions available through @ need to be defined
6526 as magic_<name>, even though they can be called simply as
6535 as magic_<name>, even though they can be called simply as
6527 @<name>. This allows the special command @magic to gather
6536 @<name>. This allows the special command @magic to gather
6528 information automatically about all existing magic functions,
6537 information automatically about all existing magic functions,
6529 even if they are run-time user extensions, by parsing the shell
6538 even if they are run-time user extensions, by parsing the shell
6530 instance __dict__ looking for special magic_ names.
6539 instance __dict__ looking for special magic_ names.
6531
6540
6532 - mainloop: added *two* local namespace parameters. This allows
6541 - mainloop: added *two* local namespace parameters. This allows
6533 the class to differentiate between parameters which were there
6542 the class to differentiate between parameters which were there
6534 before and after command line initialization was processed. This
6543 before and after command line initialization was processed. This
6535 way, later @who can show things loaded at startup by the
6544 way, later @who can show things loaded at startup by the
6536 user. This trick was necessary to make session saving/reloading
6545 user. This trick was necessary to make session saving/reloading
6537 really work: ideally after saving/exiting/reloading a session,
6546 really work: ideally after saving/exiting/reloading a session,
6538 *everything* should look the same, including the output of @who. I
6547 *everything* should look the same, including the output of @who. I
6539 was only able to make this work with this double namespace
6548 was only able to make this work with this double namespace
6540 trick.
6549 trick.
6541
6550
6542 - added a header to the logfile which allows (almost) full
6551 - added a header to the logfile which allows (almost) full
6543 session restoring.
6552 session restoring.
6544
6553
6545 - prepend lines beginning with @ or !, with a and log
6554 - prepend lines beginning with @ or !, with a and log
6546 them. Why? !lines: may be useful to know what you did @lines:
6555 them. Why? !lines: may be useful to know what you did @lines:
6547 they may affect session state. So when restoring a session, at
6556 they may affect session state. So when restoring a session, at
6548 least inform the user of their presence. I couldn't quite get
6557 least inform the user of their presence. I couldn't quite get
6549 them to properly re-execute, but at least the user is warned.
6558 them to properly re-execute, but at least the user is warned.
6550
6559
6551 * Started ChangeLog.
6560 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now