##// END OF EJS Templates
update changelog
vivainio -
Show More
@@ -1,86 +1,86 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 1969 2006-12-07 18:17:05Z vivainio $"""
4 $Id: Release.py 1971 2006-12-07 19:17:19Z 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 = '1968'
25 revision = '1970M'
26
26
27 #version = '0.7.3.svn'
27 #version = '0.7.3.svn'
28
28
29 version = '0.7.3b2.r' + revision.rstrip('M')
29 version = '0.7.3b2.r' + revision.rstrip('M')
30
30
31
31
32 description = "An enhanced interactive Python shell."
32 description = "An enhanced interactive Python shell."
33
33
34 long_description = \
34 long_description = \
35 """
35 """
36 IPython provides a replacement for the interactive Python interpreter with
36 IPython provides a replacement for the interactive Python interpreter with
37 extra functionality.
37 extra functionality.
38
38
39 Main features:
39 Main features:
40
40
41 * Comprehensive object introspection.
41 * Comprehensive object introspection.
42
42
43 * Input history, persistent across sessions.
43 * Input history, persistent across sessions.
44
44
45 * Caching of output results during a session with automatically generated
45 * Caching of output results during a session with automatically generated
46 references.
46 references.
47
47
48 * Readline based name completion.
48 * Readline based name completion.
49
49
50 * Extensible system of 'magic' commands for controlling the environment and
50 * Extensible system of 'magic' commands for controlling the environment and
51 performing many tasks related either to IPython or the operating system.
51 performing many tasks related either to IPython or the operating system.
52
52
53 * Configuration system with easy switching between different setups (simpler
53 * Configuration system with easy switching between different setups (simpler
54 than changing $PYTHONSTARTUP environment variables every time).
54 than changing $PYTHONSTARTUP environment variables every time).
55
55
56 * Session logging and reloading.
56 * Session logging and reloading.
57
57
58 * Extensible syntax processing for special purpose situations.
58 * Extensible syntax processing for special purpose situations.
59
59
60 * Access to the system shell with user-extensible alias system.
60 * Access to the system shell with user-extensible alias system.
61
61
62 * Easily embeddable in other Python programs.
62 * Easily embeddable in other Python programs.
63
63
64 * Integrated access to the pdb debugger and the Python profiler.
64 * Integrated access to the pdb debugger and the Python profiler.
65
65
66 The latest development version is always available at the IPython subversion
66 The latest development version is always available at the IPython subversion
67 repository_.
67 repository_.
68
68
69 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
69 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
70 """
70 """
71
71
72 license = 'BSD'
72 license = 'BSD'
73
73
74 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
74 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
75 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
75 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
76 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
76 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
77 'Ville' : ('Ville Vainio','vivainio@gmail.com')
77 'Ville' : ('Ville Vainio','vivainio@gmail.com')
78 }
78 }
79
79
80 url = 'http://ipython.scipy.org'
80 url = 'http://ipython.scipy.org'
81
81
82 download_url = 'http://ipython.scipy.org/dist'
82 download_url = 'http://ipython.scipy.org/dist'
83
83
84 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
84 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
85
85
86 keywords = ['Interactive','Interpreter','Shell']
86 keywords = ['Interactive','Interpreter','Shell']
@@ -1,6048 +1,6062 b''
1 2006-12-5 Ville Vainio <vivainio@gmail.com>
1 2006-12-07 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
4 while executing external code. Provides more shell-like behaviour
5 and overall better response to ctrl + C / ctrl + break.
6
7 * tools/make_tarball.py: new script to create tarball straight from svn
8 (setup.py sdist doesn't work on win32).
9
10 * Extensions/ipy_stock_completers.py: fix cd completer to give up
11 on dirnames with spaces and use the default completer instead.
12
13 * Revision.py: Change version to 0.7.3b2 for release.
14
15 2006-12-05 Ville Vainio <vivainio@gmail.com>
2
16
3 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
17 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
4 pydb patch 4 (rm debug printing, py 2.5 checking)
18 pydb patch 4 (rm debug printing, py 2.5 checking)
5
19
6 2006-11-30 Walter Doerwald <walter@livinglogic.de>
20 2006-11-30 Walter Doerwald <walter@livinglogic.de>
7 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
21 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
8 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
22 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
9 "refreshfind" (mapped to "R") does the same but tries to go back to the same
23 "refreshfind" (mapped to "R") does the same but tries to go back to the same
10 object the cursor was on before the refresh. The command "markrange" is
24 object the cursor was on before the refresh. The command "markrange" is
11 mapped to "%" now.
25 mapped to "%" now.
12 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
26 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
13
27
14 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
28 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
15
29
16 * IPython/Magic.py (magic_debug): new %debug magic to activate the
30 * IPython/Magic.py (magic_debug): new %debug magic to activate the
17 interactive debugger on the last traceback, without having to call
31 interactive debugger on the last traceback, without having to call
18 %pdb and rerun your code. Made minor changes in various modules,
32 %pdb and rerun your code. Made minor changes in various modules,
19 should automatically recognize pydb if available.
33 should automatically recognize pydb if available.
20
34
21 2006-11-28 Ville Vainio <vivainio@gmail.com>
35 2006-11-28 Ville Vainio <vivainio@gmail.com>
22
36
23 * completer.py: If the text start with !, show file completions
37 * completer.py: If the text start with !, show file completions
24 properly. This helps when trying to complete command name
38 properly. This helps when trying to complete command name
25 for shell escapes.
39 for shell escapes.
26
40
27 2006-11-27 Ville Vainio <vivainio@gmail.com>
41 2006-11-27 Ville Vainio <vivainio@gmail.com>
28
42
29 * ipy_stock_completers.py: bzr completer submitted by Stefan van
43 * ipy_stock_completers.py: bzr completer submitted by Stefan van
30 der Walt. Clean up svn and hg completers by using a common
44 der Walt. Clean up svn and hg completers by using a common
31 vcs_completer.
45 vcs_completer.
32
46
33 2006-11-26 Ville Vainio <vivainio@gmail.com>
47 2006-11-26 Ville Vainio <vivainio@gmail.com>
34
48
35 * Remove ipconfig and %config; you should use _ip.options structure
49 * Remove ipconfig and %config; you should use _ip.options structure
36 directly instead!
50 directly instead!
37
51
38 * genutils.py: add wrap_deprecated function for deprecating callables
52 * genutils.py: add wrap_deprecated function for deprecating callables
39
53
40 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
54 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
41 _ip.system instead. ipalias is redundant.
55 _ip.system instead. ipalias is redundant.
42
56
43 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
57 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
44 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
58 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
45 explicit.
59 explicit.
46
60
47 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
61 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
48 completer. Try it by entering 'hg ' and pressing tab.
62 completer. Try it by entering 'hg ' and pressing tab.
49
63
50 * macro.py: Give Macro a useful __repr__ method
64 * macro.py: Give Macro a useful __repr__ method
51
65
52 * Magic.py: %whos abbreviates the typename of Macro for brevity.
66 * Magic.py: %whos abbreviates the typename of Macro for brevity.
53
67
54 2006-11-24 Walter Doerwald <walter@livinglogic.de>
68 2006-11-24 Walter Doerwald <walter@livinglogic.de>
55 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
69 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
56 we don't get a duplicate ipipe module, where registration of the xrepr
70 we don't get a duplicate ipipe module, where registration of the xrepr
57 implementation for Text is useless.
71 implementation for Text is useless.
58
72
59 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
73 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
60
74
61 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
75 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
62
76
63 2006-11-24 Ville Vainio <vivainio@gmail.com>
77 2006-11-24 Ville Vainio <vivainio@gmail.com>
64
78
65 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
79 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
66 try to use "cProfile" instead of the slower pure python
80 try to use "cProfile" instead of the slower pure python
67 "profile"
81 "profile"
68
82
69 2006-11-23 Ville Vainio <vivainio@gmail.com>
83 2006-11-23 Ville Vainio <vivainio@gmail.com>
70
84
71 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
85 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
72 Qt+IPython+Designer link in documentation.
86 Qt+IPython+Designer link in documentation.
73
87
74 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
88 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
75 correct Pdb object to %pydb.
89 correct Pdb object to %pydb.
76
90
77
91
78 2006-11-22 Walter Doerwald <walter@livinglogic.de>
92 2006-11-22 Walter Doerwald <walter@livinglogic.de>
79 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
93 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
80 generic xrepr(), otherwise the list implementation would kick in.
94 generic xrepr(), otherwise the list implementation would kick in.
81
95
82 2006-11-21 Ville Vainio <vivainio@gmail.com>
96 2006-11-21 Ville Vainio <vivainio@gmail.com>
83
97
84 * upgrade_dir.py: Now actually overwrites a nonmodified user file
98 * upgrade_dir.py: Now actually overwrites a nonmodified user file
85 with one from UserConfig.
99 with one from UserConfig.
86
100
87 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
101 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
88 it was missing which broke the sh profile.
102 it was missing which broke the sh profile.
89
103
90 * completer.py: file completer now uses explicit '/' instead
104 * completer.py: file completer now uses explicit '/' instead
91 of os.path.join, expansion of 'foo' was broken on win32
105 of os.path.join, expansion of 'foo' was broken on win32
92 if there was one directory with name 'foobar'.
106 if there was one directory with name 'foobar'.
93
107
94 * A bunch of patches from Kirill Smelkov:
108 * A bunch of patches from Kirill Smelkov:
95
109
96 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
110 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
97
111
98 * [patch 7/9] Implement %page -r (page in raw mode) -
112 * [patch 7/9] Implement %page -r (page in raw mode) -
99
113
100 * [patch 5/9] ScientificPython webpage has moved
114 * [patch 5/9] ScientificPython webpage has moved
101
115
102 * [patch 4/9] The manual mentions %ds, should be %dhist
116 * [patch 4/9] The manual mentions %ds, should be %dhist
103
117
104 * [patch 3/9] Kill old bits from %prun doc.
118 * [patch 3/9] Kill old bits from %prun doc.
105
119
106 * [patch 1/9] Fix typos here and there.
120 * [patch 1/9] Fix typos here and there.
107
121
108 2006-11-08 Ville Vainio <vivainio@gmail.com>
122 2006-11-08 Ville Vainio <vivainio@gmail.com>
109
123
110 * completer.py (attr_matches): catch all exceptions raised
124 * completer.py (attr_matches): catch all exceptions raised
111 by eval of expr with dots.
125 by eval of expr with dots.
112
126
113 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
127 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
114
128
115 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
129 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
116 input if it starts with whitespace. This allows you to paste
130 input if it starts with whitespace. This allows you to paste
117 indented input from any editor without manually having to type in
131 indented input from any editor without manually having to type in
118 the 'if 1:', which is convenient when working interactively.
132 the 'if 1:', which is convenient when working interactively.
119 Slightly modifed version of a patch by Bo Peng
133 Slightly modifed version of a patch by Bo Peng
120 <bpeng-AT-rice.edu>.
134 <bpeng-AT-rice.edu>.
121
135
122 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
136 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
123
137
124 * IPython/irunner.py (main): modified irunner so it automatically
138 * IPython/irunner.py (main): modified irunner so it automatically
125 recognizes the right runner to use based on the extension (.py for
139 recognizes the right runner to use based on the extension (.py for
126 python, .ipy for ipython and .sage for sage).
140 python, .ipy for ipython and .sage for sage).
127
141
128 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
142 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
129 visible in ipapi as ip.config(), to programatically control the
143 visible in ipapi as ip.config(), to programatically control the
130 internal rc object. There's an accompanying %config magic for
144 internal rc object. There's an accompanying %config magic for
131 interactive use, which has been enhanced to match the
145 interactive use, which has been enhanced to match the
132 funtionality in ipconfig.
146 funtionality in ipconfig.
133
147
134 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
148 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
135 so it's not just a toggle, it now takes an argument. Add support
149 so it's not just a toggle, it now takes an argument. Add support
136 for a customizable header when making system calls, as the new
150 for a customizable header when making system calls, as the new
137 system_header variable in the ipythonrc file.
151 system_header variable in the ipythonrc file.
138
152
139 2006-11-03 Walter Doerwald <walter@livinglogic.de>
153 2006-11-03 Walter Doerwald <walter@livinglogic.de>
140
154
141 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
155 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
142 generic functions (using Philip J. Eby's simplegeneric package).
156 generic functions (using Philip J. Eby's simplegeneric package).
143 This makes it possible to customize the display of third-party classes
157 This makes it possible to customize the display of third-party classes
144 without having to monkeypatch them. xiter() no longer supports a mode
158 without having to monkeypatch them. xiter() no longer supports a mode
145 argument and the XMode class has been removed. The same functionality can
159 argument and the XMode class has been removed. The same functionality can
146 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
160 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
147 One consequence of the switch to generic functions is that xrepr() and
161 One consequence of the switch to generic functions is that xrepr() and
148 xattrs() implementation must define the default value for the mode
162 xattrs() implementation must define the default value for the mode
149 argument themselves and xattrs() implementations must return real
163 argument themselves and xattrs() implementations must return real
150 descriptors.
164 descriptors.
151
165
152 * IPython/external: This new subpackage will contain all third-party
166 * IPython/external: This new subpackage will contain all third-party
153 packages that are bundled with IPython. (The first one is simplegeneric).
167 packages that are bundled with IPython. (The first one is simplegeneric).
154
168
155 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
169 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
156 directory which as been dropped in r1703.
170 directory which as been dropped in r1703.
157
171
158 * IPython/Extensions/ipipe.py (iless): Fixed.
172 * IPython/Extensions/ipipe.py (iless): Fixed.
159
173
160 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
174 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
161
175
162 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
176 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
163
177
164 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
178 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
165 handling in variable expansion so that shells and magics recognize
179 handling in variable expansion so that shells and magics recognize
166 function local scopes correctly. Bug reported by Brian.
180 function local scopes correctly. Bug reported by Brian.
167
181
168 * scripts/ipython: remove the very first entry in sys.path which
182 * scripts/ipython: remove the very first entry in sys.path which
169 Python auto-inserts for scripts, so that sys.path under IPython is
183 Python auto-inserts for scripts, so that sys.path under IPython is
170 as similar as possible to that under plain Python.
184 as similar as possible to that under plain Python.
171
185
172 * IPython/completer.py (IPCompleter.file_matches): Fix
186 * IPython/completer.py (IPCompleter.file_matches): Fix
173 tab-completion so that quotes are not closed unless the completion
187 tab-completion so that quotes are not closed unless the completion
174 is unambiguous. After a request by Stefan. Minor cleanups in
188 is unambiguous. After a request by Stefan. Minor cleanups in
175 ipy_stock_completers.
189 ipy_stock_completers.
176
190
177 2006-11-02 Ville Vainio <vivainio@gmail.com>
191 2006-11-02 Ville Vainio <vivainio@gmail.com>
178
192
179 * ipy_stock_completers.py: Add %run and %cd completers.
193 * ipy_stock_completers.py: Add %run and %cd completers.
180
194
181 * completer.py: Try running custom completer for both
195 * completer.py: Try running custom completer for both
182 "foo" and "%foo" if the command is just "foo". Ignore case
196 "foo" and "%foo" if the command is just "foo". Ignore case
183 when filtering possible completions.
197 when filtering possible completions.
184
198
185 * UserConfig/ipy_user_conf.py: install stock completers as default
199 * UserConfig/ipy_user_conf.py: install stock completers as default
186
200
187 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
201 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
188 simplified readline history save / restore through a wrapper
202 simplified readline history save / restore through a wrapper
189 function
203 function
190
204
191
205
192 2006-10-31 Ville Vainio <vivainio@gmail.com>
206 2006-10-31 Ville Vainio <vivainio@gmail.com>
193
207
194 * strdispatch.py, completer.py, ipy_stock_completers.py:
208 * strdispatch.py, completer.py, ipy_stock_completers.py:
195 Allow str_key ("command") in completer hooks. Implement
209 Allow str_key ("command") in completer hooks. Implement
196 trivial completer for 'import' (stdlib modules only). Rename
210 trivial completer for 'import' (stdlib modules only). Rename
197 ipy_linux_package_managers.py to ipy_stock_completers.py.
211 ipy_linux_package_managers.py to ipy_stock_completers.py.
198 SVN completer.
212 SVN completer.
199
213
200 * Extensions/ledit.py: %magic line editor for easily and
214 * Extensions/ledit.py: %magic line editor for easily and
201 incrementally manipulating lists of strings. The magic command
215 incrementally manipulating lists of strings. The magic command
202 name is %led.
216 name is %led.
203
217
204 2006-10-30 Ville Vainio <vivainio@gmail.com>
218 2006-10-30 Ville Vainio <vivainio@gmail.com>
205
219
206 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
220 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
207 Bernsteins's patches for pydb integration.
221 Bernsteins's patches for pydb integration.
208 http://bashdb.sourceforge.net/pydb/
222 http://bashdb.sourceforge.net/pydb/
209
223
210 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
224 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
211 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
225 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
212 custom completer hook to allow the users to implement their own
226 custom completer hook to allow the users to implement their own
213 completers. See ipy_linux_package_managers.py for example. The
227 completers. See ipy_linux_package_managers.py for example. The
214 hook name is 'complete_command'.
228 hook name is 'complete_command'.
215
229
216 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
230 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
217
231
218 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
232 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
219 Numeric leftovers.
233 Numeric leftovers.
220
234
221 * ipython.el (py-execute-region): apply Stefan's patch to fix
235 * ipython.el (py-execute-region): apply Stefan's patch to fix
222 garbled results if the python shell hasn't been previously started.
236 garbled results if the python shell hasn't been previously started.
223
237
224 * IPython/genutils.py (arg_split): moved to genutils, since it's a
238 * IPython/genutils.py (arg_split): moved to genutils, since it's a
225 pretty generic function and useful for other things.
239 pretty generic function and useful for other things.
226
240
227 * IPython/OInspect.py (getsource): Add customizable source
241 * IPython/OInspect.py (getsource): Add customizable source
228 extractor. After a request/patch form W. Stein (SAGE).
242 extractor. After a request/patch form W. Stein (SAGE).
229
243
230 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
244 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
231 window size to a more reasonable value from what pexpect does,
245 window size to a more reasonable value from what pexpect does,
232 since their choice causes wrapping bugs with long input lines.
246 since their choice causes wrapping bugs with long input lines.
233
247
234 2006-10-28 Ville Vainio <vivainio@gmail.com>
248 2006-10-28 Ville Vainio <vivainio@gmail.com>
235
249
236 * Magic.py (%run): Save and restore the readline history from
250 * Magic.py (%run): Save and restore the readline history from
237 file around %run commands to prevent side effects from
251 file around %run commands to prevent side effects from
238 %runned programs that might use readline (e.g. pydb).
252 %runned programs that might use readline (e.g. pydb).
239
253
240 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
254 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
241 invoking the pydb enhanced debugger.
255 invoking the pydb enhanced debugger.
242
256
243 2006-10-23 Walter Doerwald <walter@livinglogic.de>
257 2006-10-23 Walter Doerwald <walter@livinglogic.de>
244
258
245 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
259 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
246 call the base class method and propagate the return value to
260 call the base class method and propagate the return value to
247 ifile. This is now done by path itself.
261 ifile. This is now done by path itself.
248
262
249 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
263 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
250
264
251 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
265 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
252 api: set_crash_handler(), to expose the ability to change the
266 api: set_crash_handler(), to expose the ability to change the
253 internal crash handler.
267 internal crash handler.
254
268
255 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
269 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
256 the various parameters of the crash handler so that apps using
270 the various parameters of the crash handler so that apps using
257 IPython as their engine can customize crash handling. Ipmlemented
271 IPython as their engine can customize crash handling. Ipmlemented
258 at the request of SAGE.
272 at the request of SAGE.
259
273
260 2006-10-14 Ville Vainio <vivainio@gmail.com>
274 2006-10-14 Ville Vainio <vivainio@gmail.com>
261
275
262 * Magic.py, ipython.el: applied first "safe" part of Rocky
276 * Magic.py, ipython.el: applied first "safe" part of Rocky
263 Bernstein's patch set for pydb integration.
277 Bernstein's patch set for pydb integration.
264
278
265 * Magic.py (%unalias, %alias): %store'd aliases can now be
279 * Magic.py (%unalias, %alias): %store'd aliases can now be
266 removed with '%unalias'. %alias w/o args now shows most
280 removed with '%unalias'. %alias w/o args now shows most
267 interesting (stored / manually defined) aliases last
281 interesting (stored / manually defined) aliases last
268 where they catch the eye w/o scrolling.
282 where they catch the eye w/o scrolling.
269
283
270 * Magic.py (%rehashx), ext_rehashdir.py: files with
284 * Magic.py (%rehashx), ext_rehashdir.py: files with
271 'py' extension are always considered executable, even
285 'py' extension are always considered executable, even
272 when not in PATHEXT environment variable.
286 when not in PATHEXT environment variable.
273
287
274 2006-10-12 Ville Vainio <vivainio@gmail.com>
288 2006-10-12 Ville Vainio <vivainio@gmail.com>
275
289
276 * jobctrl.py: Add new "jobctrl" extension for spawning background
290 * jobctrl.py: Add new "jobctrl" extension for spawning background
277 processes with "&find /". 'import jobctrl' to try it out. Requires
291 processes with "&find /". 'import jobctrl' to try it out. Requires
278 'subprocess' module, standard in python 2.4+.
292 'subprocess' module, standard in python 2.4+.
279
293
280 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
294 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
281 so if foo -> bar and bar -> baz, then foo -> baz.
295 so if foo -> bar and bar -> baz, then foo -> baz.
282
296
283 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
297 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
284
298
285 * IPython/Magic.py (Magic.parse_options): add a new posix option
299 * IPython/Magic.py (Magic.parse_options): add a new posix option
286 to allow parsing of input args in magics that doesn't strip quotes
300 to allow parsing of input args in magics that doesn't strip quotes
287 (if posix=False). This also closes %timeit bug reported by
301 (if posix=False). This also closes %timeit bug reported by
288 Stefan.
302 Stefan.
289
303
290 2006-10-03 Ville Vainio <vivainio@gmail.com>
304 2006-10-03 Ville Vainio <vivainio@gmail.com>
291
305
292 * iplib.py (raw_input, interact): Return ValueError catching for
306 * iplib.py (raw_input, interact): Return ValueError catching for
293 raw_input. Fixes infinite loop for sys.stdin.close() or
307 raw_input. Fixes infinite loop for sys.stdin.close() or
294 sys.stdout.close().
308 sys.stdout.close().
295
309
296 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
310 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
297
311
298 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
312 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
299 to help in handling doctests. irunner is now pretty useful for
313 to help in handling doctests. irunner is now pretty useful for
300 running standalone scripts and simulate a full interactive session
314 running standalone scripts and simulate a full interactive session
301 in a format that can be then pasted as a doctest.
315 in a format that can be then pasted as a doctest.
302
316
303 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
317 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
304 on top of the default (useless) ones. This also fixes the nasty
318 on top of the default (useless) ones. This also fixes the nasty
305 way in which 2.5's Quitter() exits (reverted [1785]).
319 way in which 2.5's Quitter() exits (reverted [1785]).
306
320
307 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
321 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
308 2.5.
322 2.5.
309
323
310 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
324 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
311 color scheme is updated as well when color scheme is changed
325 color scheme is updated as well when color scheme is changed
312 interactively.
326 interactively.
313
327
314 2006-09-27 Ville Vainio <vivainio@gmail.com>
328 2006-09-27 Ville Vainio <vivainio@gmail.com>
315
329
316 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
330 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
317 infinite loop and just exit. It's a hack, but will do for a while.
331 infinite loop and just exit. It's a hack, but will do for a while.
318
332
319 2006-08-25 Walter Doerwald <walter@livinglogic.de>
333 2006-08-25 Walter Doerwald <walter@livinglogic.de>
320
334
321 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
335 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
322 the constructor, this makes it possible to get a list of only directories
336 the constructor, this makes it possible to get a list of only directories
323 or only files.
337 or only files.
324
338
325 2006-08-12 Ville Vainio <vivainio@gmail.com>
339 2006-08-12 Ville Vainio <vivainio@gmail.com>
326
340
327 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
341 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
328 they broke unittest
342 they broke unittest
329
343
330 2006-08-11 Ville Vainio <vivainio@gmail.com>
344 2006-08-11 Ville Vainio <vivainio@gmail.com>
331
345
332 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
346 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
333 by resolving issue properly, i.e. by inheriting FakeModule
347 by resolving issue properly, i.e. by inheriting FakeModule
334 from types.ModuleType. Pickling ipython interactive data
348 from types.ModuleType. Pickling ipython interactive data
335 should still work as usual (testing appreciated).
349 should still work as usual (testing appreciated).
336
350
337 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
351 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
338
352
339 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
353 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
340 running under python 2.3 with code from 2.4 to fix a bug with
354 running under python 2.3 with code from 2.4 to fix a bug with
341 help(). Reported by the Debian maintainers, Norbert Tretkowski
355 help(). Reported by the Debian maintainers, Norbert Tretkowski
342 <norbert-AT-tretkowski.de> and Alexandre Fayolle
356 <norbert-AT-tretkowski.de> and Alexandre Fayolle
343 <afayolle-AT-debian.org>.
357 <afayolle-AT-debian.org>.
344
358
345 2006-08-04 Walter Doerwald <walter@livinglogic.de>
359 2006-08-04 Walter Doerwald <walter@livinglogic.de>
346
360
347 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
361 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
348 (which was displaying "quit" twice).
362 (which was displaying "quit" twice).
349
363
350 2006-07-28 Walter Doerwald <walter@livinglogic.de>
364 2006-07-28 Walter Doerwald <walter@livinglogic.de>
351
365
352 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
366 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
353 the mode argument).
367 the mode argument).
354
368
355 2006-07-27 Walter Doerwald <walter@livinglogic.de>
369 2006-07-27 Walter Doerwald <walter@livinglogic.de>
356
370
357 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
371 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
358 not running under IPython.
372 not running under IPython.
359
373
360 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
374 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
361 and make it iterable (iterating over the attribute itself). Add two new
375 and make it iterable (iterating over the attribute itself). Add two new
362 magic strings for __xattrs__(): If the string starts with "-", the attribute
376 magic strings for __xattrs__(): If the string starts with "-", the attribute
363 will not be displayed in ibrowse's detail view (but it can still be
377 will not be displayed in ibrowse's detail view (but it can still be
364 iterated over). This makes it possible to add attributes that are large
378 iterated over). This makes it possible to add attributes that are large
365 lists or generator methods to the detail view. Replace magic attribute names
379 lists or generator methods to the detail view. Replace magic attribute names
366 and _attrname() and _getattr() with "descriptors": For each type of magic
380 and _attrname() and _getattr() with "descriptors": For each type of magic
367 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
381 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
368 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
382 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
369 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
383 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
370 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
384 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
371 are still supported.
385 are still supported.
372
386
373 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
387 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
374 fails in ibrowse.fetch(), the exception object is added as the last item
388 fails in ibrowse.fetch(), the exception object is added as the last item
375 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
389 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
376 a generator throws an exception midway through execution.
390 a generator throws an exception midway through execution.
377
391
378 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
392 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
379 encoding into methods.
393 encoding into methods.
380
394
381 2006-07-26 Ville Vainio <vivainio@gmail.com>
395 2006-07-26 Ville Vainio <vivainio@gmail.com>
382
396
383 * iplib.py: history now stores multiline input as single
397 * iplib.py: history now stores multiline input as single
384 history entries. Patch by Jorgen Cederlof.
398 history entries. Patch by Jorgen Cederlof.
385
399
386 2006-07-18 Walter Doerwald <walter@livinglogic.de>
400 2006-07-18 Walter Doerwald <walter@livinglogic.de>
387
401
388 * IPython/Extensions/ibrowse.py: Make cursor visible over
402 * IPython/Extensions/ibrowse.py: Make cursor visible over
389 non existing attributes.
403 non existing attributes.
390
404
391 2006-07-14 Walter Doerwald <walter@livinglogic.de>
405 2006-07-14 Walter Doerwald <walter@livinglogic.de>
392
406
393 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
407 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
394 error output of the running command doesn't mess up the screen.
408 error output of the running command doesn't mess up the screen.
395
409
396 2006-07-13 Walter Doerwald <walter@livinglogic.de>
410 2006-07-13 Walter Doerwald <walter@livinglogic.de>
397
411
398 * IPython/Extensions/ipipe.py (isort): Make isort usable without
412 * IPython/Extensions/ipipe.py (isort): Make isort usable without
399 argument. This sorts the items themselves.
413 argument. This sorts the items themselves.
400
414
401 2006-07-12 Walter Doerwald <walter@livinglogic.de>
415 2006-07-12 Walter Doerwald <walter@livinglogic.de>
402
416
403 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
417 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
404 Compile expression strings into code objects. This should speed
418 Compile expression strings into code objects. This should speed
405 up ifilter and friends somewhat.
419 up ifilter and friends somewhat.
406
420
407 2006-07-08 Ville Vainio <vivainio@gmail.com>
421 2006-07-08 Ville Vainio <vivainio@gmail.com>
408
422
409 * Magic.py: %cpaste now strips > from the beginning of lines
423 * Magic.py: %cpaste now strips > from the beginning of lines
410 to ease pasting quoted code from emails. Contributed by
424 to ease pasting quoted code from emails. Contributed by
411 Stefan van der Walt.
425 Stefan van der Walt.
412
426
413 2006-06-29 Ville Vainio <vivainio@gmail.com>
427 2006-06-29 Ville Vainio <vivainio@gmail.com>
414
428
415 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
429 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
416 mode, patch contributed by Darren Dale. NEEDS TESTING!
430 mode, patch contributed by Darren Dale. NEEDS TESTING!
417
431
418 2006-06-28 Walter Doerwald <walter@livinglogic.de>
432 2006-06-28 Walter Doerwald <walter@livinglogic.de>
419
433
420 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
434 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
421 a blue background. Fix fetching new display rows when the browser
435 a blue background. Fix fetching new display rows when the browser
422 scrolls more than a screenful (e.g. by using the goto command).
436 scrolls more than a screenful (e.g. by using the goto command).
423
437
424 2006-06-27 Ville Vainio <vivainio@gmail.com>
438 2006-06-27 Ville Vainio <vivainio@gmail.com>
425
439
426 * Magic.py (_inspect, _ofind) Apply David Huard's
440 * Magic.py (_inspect, _ofind) Apply David Huard's
427 patch for displaying the correct docstring for 'property'
441 patch for displaying the correct docstring for 'property'
428 attributes.
442 attributes.
429
443
430 2006-06-23 Walter Doerwald <walter@livinglogic.de>
444 2006-06-23 Walter Doerwald <walter@livinglogic.de>
431
445
432 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
446 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
433 commands into the methods implementing them.
447 commands into the methods implementing them.
434
448
435 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
449 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
436
450
437 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
451 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
438 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
452 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
439 autoindent support was authored by Jin Liu.
453 autoindent support was authored by Jin Liu.
440
454
441 2006-06-22 Walter Doerwald <walter@livinglogic.de>
455 2006-06-22 Walter Doerwald <walter@livinglogic.de>
442
456
443 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
457 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
444 for keymaps with a custom class that simplifies handling.
458 for keymaps with a custom class that simplifies handling.
445
459
446 2006-06-19 Walter Doerwald <walter@livinglogic.de>
460 2006-06-19 Walter Doerwald <walter@livinglogic.de>
447
461
448 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
462 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
449 resizing. This requires Python 2.5 to work.
463 resizing. This requires Python 2.5 to work.
450
464
451 2006-06-16 Walter Doerwald <walter@livinglogic.de>
465 2006-06-16 Walter Doerwald <walter@livinglogic.de>
452
466
453 * IPython/Extensions/ibrowse.py: Add two new commands to
467 * IPython/Extensions/ibrowse.py: Add two new commands to
454 ibrowse: "hideattr" (mapped to "h") hides the attribute under
468 ibrowse: "hideattr" (mapped to "h") hides the attribute under
455 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
469 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
456 attributes again. Remapped the help command to "?". Display
470 attributes again. Remapped the help command to "?". Display
457 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
471 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
458 as keys for the "home" and "end" commands. Add three new commands
472 as keys for the "home" and "end" commands. Add three new commands
459 to the input mode for "find" and friends: "delend" (CTRL-K)
473 to the input mode for "find" and friends: "delend" (CTRL-K)
460 deletes to the end of line. "incsearchup" searches upwards in the
474 deletes to the end of line. "incsearchup" searches upwards in the
461 command history for an input that starts with the text before the cursor.
475 command history for an input that starts with the text before the cursor.
462 "incsearchdown" does the same downwards. Removed a bogus mapping of
476 "incsearchdown" does the same downwards. Removed a bogus mapping of
463 the x key to "delete".
477 the x key to "delete".
464
478
465 2006-06-15 Ville Vainio <vivainio@gmail.com>
479 2006-06-15 Ville Vainio <vivainio@gmail.com>
466
480
467 * iplib.py, hooks.py: Added new generate_prompt hook that can be
481 * iplib.py, hooks.py: Added new generate_prompt hook that can be
468 used to create prompts dynamically, instead of the "old" way of
482 used to create prompts dynamically, instead of the "old" way of
469 assigning "magic" strings to prompt_in1 and prompt_in2. The old
483 assigning "magic" strings to prompt_in1 and prompt_in2. The old
470 way still works (it's invoked by the default hook), of course.
484 way still works (it's invoked by the default hook), of course.
471
485
472 * Prompts.py: added generate_output_prompt hook for altering output
486 * Prompts.py: added generate_output_prompt hook for altering output
473 prompt
487 prompt
474
488
475 * Release.py: Changed version string to 0.7.3.svn.
489 * Release.py: Changed version string to 0.7.3.svn.
476
490
477 2006-06-15 Walter Doerwald <walter@livinglogic.de>
491 2006-06-15 Walter Doerwald <walter@livinglogic.de>
478
492
479 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
493 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
480 the call to fetch() always tries to fetch enough data for at least one
494 the call to fetch() always tries to fetch enough data for at least one
481 full screen. This makes it possible to simply call moveto(0,0,True) in
495 full screen. This makes it possible to simply call moveto(0,0,True) in
482 the constructor. Fix typos and removed the obsolete goto attribute.
496 the constructor. Fix typos and removed the obsolete goto attribute.
483
497
484 2006-06-12 Ville Vainio <vivainio@gmail.com>
498 2006-06-12 Ville Vainio <vivainio@gmail.com>
485
499
486 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
500 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
487 allowing $variable interpolation within multiline statements,
501 allowing $variable interpolation within multiline statements,
488 though so far only with "sh" profile for a testing period.
502 though so far only with "sh" profile for a testing period.
489 The patch also enables splitting long commands with \ but it
503 The patch also enables splitting long commands with \ but it
490 doesn't work properly yet.
504 doesn't work properly yet.
491
505
492 2006-06-12 Walter Doerwald <walter@livinglogic.de>
506 2006-06-12 Walter Doerwald <walter@livinglogic.de>
493
507
494 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
508 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
495 input history and the position of the cursor in the input history for
509 input history and the position of the cursor in the input history for
496 the find, findbackwards and goto command.
510 the find, findbackwards and goto command.
497
511
498 2006-06-10 Walter Doerwald <walter@livinglogic.de>
512 2006-06-10 Walter Doerwald <walter@livinglogic.de>
499
513
500 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
514 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
501 implements the basic functionality of browser commands that require
515 implements the basic functionality of browser commands that require
502 input. Reimplement the goto, find and findbackwards commands as
516 input. Reimplement the goto, find and findbackwards commands as
503 subclasses of _CommandInput. Add an input history and keymaps to those
517 subclasses of _CommandInput. Add an input history and keymaps to those
504 commands. Add "\r" as a keyboard shortcut for the enterdefault and
518 commands. Add "\r" as a keyboard shortcut for the enterdefault and
505 execute commands.
519 execute commands.
506
520
507 2006-06-07 Ville Vainio <vivainio@gmail.com>
521 2006-06-07 Ville Vainio <vivainio@gmail.com>
508
522
509 * iplib.py: ipython mybatch.ipy exits ipython immediately after
523 * iplib.py: ipython mybatch.ipy exits ipython immediately after
510 running the batch files instead of leaving the session open.
524 running the batch files instead of leaving the session open.
511
525
512 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
526 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
513
527
514 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
528 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
515 the original fix was incomplete. Patch submitted by W. Maier.
529 the original fix was incomplete. Patch submitted by W. Maier.
516
530
517 2006-06-07 Ville Vainio <vivainio@gmail.com>
531 2006-06-07 Ville Vainio <vivainio@gmail.com>
518
532
519 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
533 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
520 Confirmation prompts can be supressed by 'quiet' option.
534 Confirmation prompts can be supressed by 'quiet' option.
521 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
535 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
522
536
523 2006-06-06 *** Released version 0.7.2
537 2006-06-06 *** Released version 0.7.2
524
538
525 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
539 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
526
540
527 * IPython/Release.py (version): Made 0.7.2 final for release.
541 * IPython/Release.py (version): Made 0.7.2 final for release.
528 Repo tagged and release cut.
542 Repo tagged and release cut.
529
543
530 2006-06-05 Ville Vainio <vivainio@gmail.com>
544 2006-06-05 Ville Vainio <vivainio@gmail.com>
531
545
532 * Magic.py (magic_rehashx): Honor no_alias list earlier in
546 * Magic.py (magic_rehashx): Honor no_alias list earlier in
533 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
547 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
534
548
535 * upgrade_dir.py: try import 'path' module a bit harder
549 * upgrade_dir.py: try import 'path' module a bit harder
536 (for %upgrade)
550 (for %upgrade)
537
551
538 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
552 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
539
553
540 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
554 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
541 instead of looping 20 times.
555 instead of looping 20 times.
542
556
543 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
557 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
544 correctly at initialization time. Bug reported by Krishna Mohan
558 correctly at initialization time. Bug reported by Krishna Mohan
545 Gundu <gkmohan-AT-gmail.com> on the user list.
559 Gundu <gkmohan-AT-gmail.com> on the user list.
546
560
547 * IPython/Release.py (version): Mark 0.7.2 version to start
561 * IPython/Release.py (version): Mark 0.7.2 version to start
548 testing for release on 06/06.
562 testing for release on 06/06.
549
563
550 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
564 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
551
565
552 * scripts/irunner: thin script interface so users don't have to
566 * scripts/irunner: thin script interface so users don't have to
553 find the module and call it as an executable, since modules rarely
567 find the module and call it as an executable, since modules rarely
554 live in people's PATH.
568 live in people's PATH.
555
569
556 * IPython/irunner.py (InteractiveRunner.__init__): added
570 * IPython/irunner.py (InteractiveRunner.__init__): added
557 delaybeforesend attribute to control delays with newer versions of
571 delaybeforesend attribute to control delays with newer versions of
558 pexpect. Thanks to detailed help from pexpect's author, Noah
572 pexpect. Thanks to detailed help from pexpect's author, Noah
559 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
573 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
560 correctly (it works in NoColor mode).
574 correctly (it works in NoColor mode).
561
575
562 * IPython/iplib.py (handle_normal): fix nasty crash reported on
576 * IPython/iplib.py (handle_normal): fix nasty crash reported on
563 SAGE list, from improper log() calls.
577 SAGE list, from improper log() calls.
564
578
565 2006-05-31 Ville Vainio <vivainio@gmail.com>
579 2006-05-31 Ville Vainio <vivainio@gmail.com>
566
580
567 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
581 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
568 with args in parens to work correctly with dirs that have spaces.
582 with args in parens to work correctly with dirs that have spaces.
569
583
570 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
584 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
571
585
572 * IPython/Logger.py (Logger.logstart): add option to log raw input
586 * IPython/Logger.py (Logger.logstart): add option to log raw input
573 instead of the processed one. A -r flag was added to the
587 instead of the processed one. A -r flag was added to the
574 %logstart magic used for controlling logging.
588 %logstart magic used for controlling logging.
575
589
576 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
590 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
577
591
578 * IPython/iplib.py (InteractiveShell.__init__): add check for the
592 * IPython/iplib.py (InteractiveShell.__init__): add check for the
579 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
593 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
580 recognize the option. After a bug report by Will Maier. This
594 recognize the option. After a bug report by Will Maier. This
581 closes #64 (will do it after confirmation from W. Maier).
595 closes #64 (will do it after confirmation from W. Maier).
582
596
583 * IPython/irunner.py: New module to run scripts as if manually
597 * IPython/irunner.py: New module to run scripts as if manually
584 typed into an interactive environment, based on pexpect. After a
598 typed into an interactive environment, based on pexpect. After a
585 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
599 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
586 ipython-user list. Simple unittests in the tests/ directory.
600 ipython-user list. Simple unittests in the tests/ directory.
587
601
588 * tools/release: add Will Maier, OpenBSD port maintainer, to
602 * tools/release: add Will Maier, OpenBSD port maintainer, to
589 recepients list. We are now officially part of the OpenBSD ports:
603 recepients list. We are now officially part of the OpenBSD ports:
590 http://www.openbsd.org/ports.html ! Many thanks to Will for the
604 http://www.openbsd.org/ports.html ! Many thanks to Will for the
591 work.
605 work.
592
606
593 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
607 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
594
608
595 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
609 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
596 so that it doesn't break tkinter apps.
610 so that it doesn't break tkinter apps.
597
611
598 * IPython/iplib.py (_prefilter): fix bug where aliases would
612 * IPython/iplib.py (_prefilter): fix bug where aliases would
599 shadow variables when autocall was fully off. Reported by SAGE
613 shadow variables when autocall was fully off. Reported by SAGE
600 author William Stein.
614 author William Stein.
601
615
602 * IPython/OInspect.py (Inspector.__init__): add a flag to control
616 * IPython/OInspect.py (Inspector.__init__): add a flag to control
603 at what detail level strings are computed when foo? is requested.
617 at what detail level strings are computed when foo? is requested.
604 This allows users to ask for example that the string form of an
618 This allows users to ask for example that the string form of an
605 object is only computed when foo?? is called, or even never, by
619 object is only computed when foo?? is called, or even never, by
606 setting the object_info_string_level >= 2 in the configuration
620 setting the object_info_string_level >= 2 in the configuration
607 file. This new option has been added and documented. After a
621 file. This new option has been added and documented. After a
608 request by SAGE to be able to control the printing of very large
622 request by SAGE to be able to control the printing of very large
609 objects more easily.
623 objects more easily.
610
624
611 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
625 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
612
626
613 * IPython/ipmaker.py (make_IPython): remove the ipython call path
627 * IPython/ipmaker.py (make_IPython): remove the ipython call path
614 from sys.argv, to be 100% consistent with how Python itself works
628 from sys.argv, to be 100% consistent with how Python itself works
615 (as seen for example with python -i file.py). After a bug report
629 (as seen for example with python -i file.py). After a bug report
616 by Jeffrey Collins.
630 by Jeffrey Collins.
617
631
618 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
632 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
619 nasty bug which was preventing custom namespaces with -pylab,
633 nasty bug which was preventing custom namespaces with -pylab,
620 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
634 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
621 compatibility (long gone from mpl).
635 compatibility (long gone from mpl).
622
636
623 * IPython/ipapi.py (make_session): name change: create->make. We
637 * IPython/ipapi.py (make_session): name change: create->make. We
624 use make in other places (ipmaker,...), it's shorter and easier to
638 use make in other places (ipmaker,...), it's shorter and easier to
625 type and say, etc. I'm trying to clean things before 0.7.2 so
639 type and say, etc. I'm trying to clean things before 0.7.2 so
626 that I can keep things stable wrt to ipapi in the chainsaw branch.
640 that I can keep things stable wrt to ipapi in the chainsaw branch.
627
641
628 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
642 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
629 python-mode recognizes our debugger mode. Add support for
643 python-mode recognizes our debugger mode. Add support for
630 autoindent inside (X)emacs. After a patch sent in by Jin Liu
644 autoindent inside (X)emacs. After a patch sent in by Jin Liu
631 <m.liu.jin-AT-gmail.com> originally written by
645 <m.liu.jin-AT-gmail.com> originally written by
632 doxgen-AT-newsmth.net (with minor modifications for xemacs
646 doxgen-AT-newsmth.net (with minor modifications for xemacs
633 compatibility)
647 compatibility)
634
648
635 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
649 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
636 tracebacks when walking the stack so that the stack tracking system
650 tracebacks when walking the stack so that the stack tracking system
637 in emacs' python-mode can identify the frames correctly.
651 in emacs' python-mode can identify the frames correctly.
638
652
639 * IPython/ipmaker.py (make_IPython): make the internal (and
653 * IPython/ipmaker.py (make_IPython): make the internal (and
640 default config) autoedit_syntax value false by default. Too many
654 default config) autoedit_syntax value false by default. Too many
641 users have complained to me (both on and off-list) about problems
655 users have complained to me (both on and off-list) about problems
642 with this option being on by default, so I'm making it default to
656 with this option being on by default, so I'm making it default to
643 off. It can still be enabled by anyone via the usual mechanisms.
657 off. It can still be enabled by anyone via the usual mechanisms.
644
658
645 * IPython/completer.py (Completer.attr_matches): add support for
659 * IPython/completer.py (Completer.attr_matches): add support for
646 PyCrust-style _getAttributeNames magic method. Patch contributed
660 PyCrust-style _getAttributeNames magic method. Patch contributed
647 by <mscott-AT-goldenspud.com>. Closes #50.
661 by <mscott-AT-goldenspud.com>. Closes #50.
648
662
649 * IPython/iplib.py (InteractiveShell.__init__): remove the
663 * IPython/iplib.py (InteractiveShell.__init__): remove the
650 deletion of exit/quit from __builtin__, which can break
664 deletion of exit/quit from __builtin__, which can break
651 third-party tools like the Zope debugging console. The
665 third-party tools like the Zope debugging console. The
652 %exit/%quit magics remain. In general, it's probably a good idea
666 %exit/%quit magics remain. In general, it's probably a good idea
653 not to delete anything from __builtin__, since we never know what
667 not to delete anything from __builtin__, since we never know what
654 that will break. In any case, python now (for 2.5) will support
668 that will break. In any case, python now (for 2.5) will support
655 'real' exit/quit, so this issue is moot. Closes #55.
669 'real' exit/quit, so this issue is moot. Closes #55.
656
670
657 * IPython/genutils.py (with_obj): rename the 'with' function to
671 * IPython/genutils.py (with_obj): rename the 'with' function to
658 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
672 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
659 becomes a language keyword. Closes #53.
673 becomes a language keyword. Closes #53.
660
674
661 * IPython/FakeModule.py (FakeModule.__init__): add a proper
675 * IPython/FakeModule.py (FakeModule.__init__): add a proper
662 __file__ attribute to this so it fools more things into thinking
676 __file__ attribute to this so it fools more things into thinking
663 it is a real module. Closes #59.
677 it is a real module. Closes #59.
664
678
665 * IPython/Magic.py (magic_edit): add -n option to open the editor
679 * IPython/Magic.py (magic_edit): add -n option to open the editor
666 at a specific line number. After a patch by Stefan van der Walt.
680 at a specific line number. After a patch by Stefan van der Walt.
667
681
668 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
682 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
669
683
670 * IPython/iplib.py (edit_syntax_error): fix crash when for some
684 * IPython/iplib.py (edit_syntax_error): fix crash when for some
671 reason the file could not be opened. After automatic crash
685 reason the file could not be opened. After automatic crash
672 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
686 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
673 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
687 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
674 (_should_recompile): Don't fire editor if using %bg, since there
688 (_should_recompile): Don't fire editor if using %bg, since there
675 is no file in the first place. From the same report as above.
689 is no file in the first place. From the same report as above.
676 (raw_input): protect against faulty third-party prefilters. After
690 (raw_input): protect against faulty third-party prefilters. After
677 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
691 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
678 while running under SAGE.
692 while running under SAGE.
679
693
680 2006-05-23 Ville Vainio <vivainio@gmail.com>
694 2006-05-23 Ville Vainio <vivainio@gmail.com>
681
695
682 * ipapi.py: Stripped down ip.to_user_ns() to work only as
696 * ipapi.py: Stripped down ip.to_user_ns() to work only as
683 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
697 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
684 now returns None (again), unless dummy is specifically allowed by
698 now returns None (again), unless dummy is specifically allowed by
685 ipapi.get(allow_dummy=True).
699 ipapi.get(allow_dummy=True).
686
700
687 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
701 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
688
702
689 * IPython: remove all 2.2-compatibility objects and hacks from
703 * IPython: remove all 2.2-compatibility objects and hacks from
690 everywhere, since we only support 2.3 at this point. Docs
704 everywhere, since we only support 2.3 at this point. Docs
691 updated.
705 updated.
692
706
693 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
707 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
694 Anything requiring extra validation can be turned into a Python
708 Anything requiring extra validation can be turned into a Python
695 property in the future. I used a property for the db one b/c
709 property in the future. I used a property for the db one b/c
696 there was a nasty circularity problem with the initialization
710 there was a nasty circularity problem with the initialization
697 order, which right now I don't have time to clean up.
711 order, which right now I don't have time to clean up.
698
712
699 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
713 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
700 another locking bug reported by Jorgen. I'm not 100% sure though,
714 another locking bug reported by Jorgen. I'm not 100% sure though,
701 so more testing is needed...
715 so more testing is needed...
702
716
703 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
717 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
704
718
705 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
719 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
706 local variables from any routine in user code (typically executed
720 local variables from any routine in user code (typically executed
707 with %run) directly into the interactive namespace. Very useful
721 with %run) directly into the interactive namespace. Very useful
708 when doing complex debugging.
722 when doing complex debugging.
709 (IPythonNotRunning): Changed the default None object to a dummy
723 (IPythonNotRunning): Changed the default None object to a dummy
710 whose attributes can be queried as well as called without
724 whose attributes can be queried as well as called without
711 exploding, to ease writing code which works transparently both in
725 exploding, to ease writing code which works transparently both in
712 and out of ipython and uses some of this API.
726 and out of ipython and uses some of this API.
713
727
714 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
728 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
715
729
716 * IPython/hooks.py (result_display): Fix the fact that our display
730 * IPython/hooks.py (result_display): Fix the fact that our display
717 hook was using str() instead of repr(), as the default python
731 hook was using str() instead of repr(), as the default python
718 console does. This had gone unnoticed b/c it only happened if
732 console does. This had gone unnoticed b/c it only happened if
719 %Pprint was off, but the inconsistency was there.
733 %Pprint was off, but the inconsistency was there.
720
734
721 2006-05-15 Ville Vainio <vivainio@gmail.com>
735 2006-05-15 Ville Vainio <vivainio@gmail.com>
722
736
723 * Oinspect.py: Only show docstring for nonexisting/binary files
737 * Oinspect.py: Only show docstring for nonexisting/binary files
724 when doing object??, closing ticket #62
738 when doing object??, closing ticket #62
725
739
726 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
740 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
727
741
728 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
742 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
729 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
743 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
730 was being released in a routine which hadn't checked if it had
744 was being released in a routine which hadn't checked if it had
731 been the one to acquire it.
745 been the one to acquire it.
732
746
733 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
747 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
734
748
735 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
749 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
736
750
737 2006-04-11 Ville Vainio <vivainio@gmail.com>
751 2006-04-11 Ville Vainio <vivainio@gmail.com>
738
752
739 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
753 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
740 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
754 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
741 prefilters, allowing stuff like magics and aliases in the file.
755 prefilters, allowing stuff like magics and aliases in the file.
742
756
743 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
757 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
744 added. Supported now are "%clear in" and "%clear out" (clear input and
758 added. Supported now are "%clear in" and "%clear out" (clear input and
745 output history, respectively). Also fixed CachedOutput.flush to
759 output history, respectively). Also fixed CachedOutput.flush to
746 properly flush the output cache.
760 properly flush the output cache.
747
761
748 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
762 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
749 half-success (and fail explicitly).
763 half-success (and fail explicitly).
750
764
751 2006-03-28 Ville Vainio <vivainio@gmail.com>
765 2006-03-28 Ville Vainio <vivainio@gmail.com>
752
766
753 * iplib.py: Fix quoting of aliases so that only argless ones
767 * iplib.py: Fix quoting of aliases so that only argless ones
754 are quoted
768 are quoted
755
769
756 2006-03-28 Ville Vainio <vivainio@gmail.com>
770 2006-03-28 Ville Vainio <vivainio@gmail.com>
757
771
758 * iplib.py: Quote aliases with spaces in the name.
772 * iplib.py: Quote aliases with spaces in the name.
759 "c:\program files\blah\bin" is now legal alias target.
773 "c:\program files\blah\bin" is now legal alias target.
760
774
761 * ext_rehashdir.py: Space no longer allowed as arg
775 * ext_rehashdir.py: Space no longer allowed as arg
762 separator, since space is legal in path names.
776 separator, since space is legal in path names.
763
777
764 2006-03-16 Ville Vainio <vivainio@gmail.com>
778 2006-03-16 Ville Vainio <vivainio@gmail.com>
765
779
766 * upgrade_dir.py: Take path.py from Extensions, correcting
780 * upgrade_dir.py: Take path.py from Extensions, correcting
767 %upgrade magic
781 %upgrade magic
768
782
769 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
783 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
770
784
771 * hooks.py: Only enclose editor binary in quotes if legal and
785 * hooks.py: Only enclose editor binary in quotes if legal and
772 necessary (space in the name, and is an existing file). Fixes a bug
786 necessary (space in the name, and is an existing file). Fixes a bug
773 reported by Zachary Pincus.
787 reported by Zachary Pincus.
774
788
775 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
789 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
776
790
777 * Manual: thanks to a tip on proper color handling for Emacs, by
791 * Manual: thanks to a tip on proper color handling for Emacs, by
778 Eric J Haywiser <ejh1-AT-MIT.EDU>.
792 Eric J Haywiser <ejh1-AT-MIT.EDU>.
779
793
780 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
794 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
781 by applying the provided patch. Thanks to Liu Jin
795 by applying the provided patch. Thanks to Liu Jin
782 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
796 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
783 XEmacs/Linux, I'm trusting the submitter that it actually helps
797 XEmacs/Linux, I'm trusting the submitter that it actually helps
784 under win32/GNU Emacs. Will revisit if any problems are reported.
798 under win32/GNU Emacs. Will revisit if any problems are reported.
785
799
786 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
800 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
787
801
788 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
802 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
789 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
803 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
790
804
791 2006-03-12 Ville Vainio <vivainio@gmail.com>
805 2006-03-12 Ville Vainio <vivainio@gmail.com>
792
806
793 * Magic.py (magic_timeit): Added %timeit magic, contributed by
807 * Magic.py (magic_timeit): Added %timeit magic, contributed by
794 Torsten Marek.
808 Torsten Marek.
795
809
796 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
810 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
797
811
798 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
812 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
799 line ranges works again.
813 line ranges works again.
800
814
801 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
815 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
802
816
803 * IPython/iplib.py (showtraceback): add back sys.last_traceback
817 * IPython/iplib.py (showtraceback): add back sys.last_traceback
804 and friends, after a discussion with Zach Pincus on ipython-user.
818 and friends, after a discussion with Zach Pincus on ipython-user.
805 I'm not 100% sure, but after thinking about it quite a bit, it may
819 I'm not 100% sure, but after thinking about it quite a bit, it may
806 be OK. Testing with the multithreaded shells didn't reveal any
820 be OK. Testing with the multithreaded shells didn't reveal any
807 problems, but let's keep an eye out.
821 problems, but let's keep an eye out.
808
822
809 In the process, I fixed a few things which were calling
823 In the process, I fixed a few things which were calling
810 self.InteractiveTB() directly (like safe_execfile), which is a
824 self.InteractiveTB() directly (like safe_execfile), which is a
811 mistake: ALL exception reporting should be done by calling
825 mistake: ALL exception reporting should be done by calling
812 self.showtraceback(), which handles state and tab-completion and
826 self.showtraceback(), which handles state and tab-completion and
813 more.
827 more.
814
828
815 2006-03-01 Ville Vainio <vivainio@gmail.com>
829 2006-03-01 Ville Vainio <vivainio@gmail.com>
816
830
817 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
831 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
818 To use, do "from ipipe import *".
832 To use, do "from ipipe import *".
819
833
820 2006-02-24 Ville Vainio <vivainio@gmail.com>
834 2006-02-24 Ville Vainio <vivainio@gmail.com>
821
835
822 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
836 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
823 "cleanly" and safely than the older upgrade mechanism.
837 "cleanly" and safely than the older upgrade mechanism.
824
838
825 2006-02-21 Ville Vainio <vivainio@gmail.com>
839 2006-02-21 Ville Vainio <vivainio@gmail.com>
826
840
827 * Magic.py: %save works again.
841 * Magic.py: %save works again.
828
842
829 2006-02-15 Ville Vainio <vivainio@gmail.com>
843 2006-02-15 Ville Vainio <vivainio@gmail.com>
830
844
831 * Magic.py: %Pprint works again
845 * Magic.py: %Pprint works again
832
846
833 * Extensions/ipy_sane_defaults.py: Provide everything provided
847 * Extensions/ipy_sane_defaults.py: Provide everything provided
834 in default ipythonrc, to make it possible to have a completely empty
848 in default ipythonrc, to make it possible to have a completely empty
835 ipythonrc (and thus completely rc-file free configuration)
849 ipythonrc (and thus completely rc-file free configuration)
836
850
837 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
851 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
838
852
839 * IPython/hooks.py (editor): quote the call to the editor command,
853 * IPython/hooks.py (editor): quote the call to the editor command,
840 to allow commands with spaces in them. Problem noted by watching
854 to allow commands with spaces in them. Problem noted by watching
841 Ian Oswald's video about textpad under win32 at
855 Ian Oswald's video about textpad under win32 at
842 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
856 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
843
857
844 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
858 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
845 describing magics (we haven't used @ for a loong time).
859 describing magics (we haven't used @ for a loong time).
846
860
847 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
861 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
848 contributed by marienz to close
862 contributed by marienz to close
849 http://www.scipy.net/roundup/ipython/issue53.
863 http://www.scipy.net/roundup/ipython/issue53.
850
864
851 2006-02-10 Ville Vainio <vivainio@gmail.com>
865 2006-02-10 Ville Vainio <vivainio@gmail.com>
852
866
853 * genutils.py: getoutput now works in win32 too
867 * genutils.py: getoutput now works in win32 too
854
868
855 * completer.py: alias and magic completion only invoked
869 * completer.py: alias and magic completion only invoked
856 at the first "item" in the line, to avoid "cd %store"
870 at the first "item" in the line, to avoid "cd %store"
857 nonsense.
871 nonsense.
858
872
859 2006-02-09 Ville Vainio <vivainio@gmail.com>
873 2006-02-09 Ville Vainio <vivainio@gmail.com>
860
874
861 * test/*: Added a unit testing framework (finally).
875 * test/*: Added a unit testing framework (finally).
862 '%run runtests.py' to run test_*.
876 '%run runtests.py' to run test_*.
863
877
864 * ipapi.py: Exposed runlines and set_custom_exc
878 * ipapi.py: Exposed runlines and set_custom_exc
865
879
866 2006-02-07 Ville Vainio <vivainio@gmail.com>
880 2006-02-07 Ville Vainio <vivainio@gmail.com>
867
881
868 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
882 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
869 instead use "f(1 2)" as before.
883 instead use "f(1 2)" as before.
870
884
871 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
885 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
872
886
873 * IPython/demo.py (IPythonDemo): Add new classes to the demo
887 * IPython/demo.py (IPythonDemo): Add new classes to the demo
874 facilities, for demos processed by the IPython input filter
888 facilities, for demos processed by the IPython input filter
875 (IPythonDemo), and for running a script one-line-at-a-time as a
889 (IPythonDemo), and for running a script one-line-at-a-time as a
876 demo, both for pure Python (LineDemo) and for IPython-processed
890 demo, both for pure Python (LineDemo) and for IPython-processed
877 input (IPythonLineDemo). After a request by Dave Kohel, from the
891 input (IPythonLineDemo). After a request by Dave Kohel, from the
878 SAGE team.
892 SAGE team.
879 (Demo.edit): added an edit() method to the demo objects, to edit
893 (Demo.edit): added an edit() method to the demo objects, to edit
880 the in-memory copy of the last executed block.
894 the in-memory copy of the last executed block.
881
895
882 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
896 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
883 processing to %edit, %macro and %save. These commands can now be
897 processing to %edit, %macro and %save. These commands can now be
884 invoked on the unprocessed input as it was typed by the user
898 invoked on the unprocessed input as it was typed by the user
885 (without any prefilters applied). After requests by the SAGE team
899 (without any prefilters applied). After requests by the SAGE team
886 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
900 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
887
901
888 2006-02-01 Ville Vainio <vivainio@gmail.com>
902 2006-02-01 Ville Vainio <vivainio@gmail.com>
889
903
890 * setup.py, eggsetup.py: easy_install ipython==dev works
904 * setup.py, eggsetup.py: easy_install ipython==dev works
891 correctly now (on Linux)
905 correctly now (on Linux)
892
906
893 * ipy_user_conf,ipmaker: user config changes, removed spurious
907 * ipy_user_conf,ipmaker: user config changes, removed spurious
894 warnings
908 warnings
895
909
896 * iplib: if rc.banner is string, use it as is.
910 * iplib: if rc.banner is string, use it as is.
897
911
898 * Magic: %pycat accepts a string argument and pages it's contents.
912 * Magic: %pycat accepts a string argument and pages it's contents.
899
913
900
914
901 2006-01-30 Ville Vainio <vivainio@gmail.com>
915 2006-01-30 Ville Vainio <vivainio@gmail.com>
902
916
903 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
917 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
904 Now %store and bookmarks work through PickleShare, meaning that
918 Now %store and bookmarks work through PickleShare, meaning that
905 concurrent access is possible and all ipython sessions see the
919 concurrent access is possible and all ipython sessions see the
906 same database situation all the time, instead of snapshot of
920 same database situation all the time, instead of snapshot of
907 the situation when the session was started. Hence, %bookmark
921 the situation when the session was started. Hence, %bookmark
908 results are immediately accessible from othes sessions. The database
922 results are immediately accessible from othes sessions. The database
909 is also available for use by user extensions. See:
923 is also available for use by user extensions. See:
910 http://www.python.org/pypi/pickleshare
924 http://www.python.org/pypi/pickleshare
911
925
912 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
926 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
913
927
914 * aliases can now be %store'd
928 * aliases can now be %store'd
915
929
916 * path.py moved to Extensions so that pickleshare does not need
930 * path.py moved to Extensions so that pickleshare does not need
917 IPython-specific import. Extensions added to pythonpath right
931 IPython-specific import. Extensions added to pythonpath right
918 at __init__.
932 at __init__.
919
933
920 * iplib.py: ipalias deprecated/redundant; aliases are converted and
934 * iplib.py: ipalias deprecated/redundant; aliases are converted and
921 called with _ip.system and the pre-transformed command string.
935 called with _ip.system and the pre-transformed command string.
922
936
923 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
937 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
924
938
925 * IPython/iplib.py (interact): Fix that we were not catching
939 * IPython/iplib.py (interact): Fix that we were not catching
926 KeyboardInterrupt exceptions properly. I'm not quite sure why the
940 KeyboardInterrupt exceptions properly. I'm not quite sure why the
927 logic here had to change, but it's fixed now.
941 logic here had to change, but it's fixed now.
928
942
929 2006-01-29 Ville Vainio <vivainio@gmail.com>
943 2006-01-29 Ville Vainio <vivainio@gmail.com>
930
944
931 * iplib.py: Try to import pyreadline on Windows.
945 * iplib.py: Try to import pyreadline on Windows.
932
946
933 2006-01-27 Ville Vainio <vivainio@gmail.com>
947 2006-01-27 Ville Vainio <vivainio@gmail.com>
934
948
935 * iplib.py: Expose ipapi as _ip in builtin namespace.
949 * iplib.py: Expose ipapi as _ip in builtin namespace.
936 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
950 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
937 and ip_set_hook (-> _ip.set_hook) redundant. % and !
951 and ip_set_hook (-> _ip.set_hook) redundant. % and !
938 syntax now produce _ip.* variant of the commands.
952 syntax now produce _ip.* variant of the commands.
939
953
940 * "_ip.options().autoedit_syntax = 2" automatically throws
954 * "_ip.options().autoedit_syntax = 2" automatically throws
941 user to editor for syntax error correction without prompting.
955 user to editor for syntax error correction without prompting.
942
956
943 2006-01-27 Ville Vainio <vivainio@gmail.com>
957 2006-01-27 Ville Vainio <vivainio@gmail.com>
944
958
945 * ipmaker.py: Give "realistic" sys.argv for scripts (without
959 * ipmaker.py: Give "realistic" sys.argv for scripts (without
946 'ipython' at argv[0]) executed through command line.
960 'ipython' at argv[0]) executed through command line.
947 NOTE: this DEPRECATES calling ipython with multiple scripts
961 NOTE: this DEPRECATES calling ipython with multiple scripts
948 ("ipython a.py b.py c.py")
962 ("ipython a.py b.py c.py")
949
963
950 * iplib.py, hooks.py: Added configurable input prefilter,
964 * iplib.py, hooks.py: Added configurable input prefilter,
951 named 'input_prefilter'. See ext_rescapture.py for example
965 named 'input_prefilter'. See ext_rescapture.py for example
952 usage.
966 usage.
953
967
954 * ext_rescapture.py, Magic.py: Better system command output capture
968 * ext_rescapture.py, Magic.py: Better system command output capture
955 through 'var = !ls' (deprecates user-visible %sc). Same notation
969 through 'var = !ls' (deprecates user-visible %sc). Same notation
956 applies for magics, 'var = %alias' assigns alias list to var.
970 applies for magics, 'var = %alias' assigns alias list to var.
957
971
958 * ipapi.py: added meta() for accessing extension-usable data store.
972 * ipapi.py: added meta() for accessing extension-usable data store.
959
973
960 * iplib.py: added InteractiveShell.getapi(). New magics should be
974 * iplib.py: added InteractiveShell.getapi(). New magics should be
961 written doing self.getapi() instead of using the shell directly.
975 written doing self.getapi() instead of using the shell directly.
962
976
963 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
977 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
964 %store foo >> ~/myfoo.txt to store variables to files (in clean
978 %store foo >> ~/myfoo.txt to store variables to files (in clean
965 textual form, not a restorable pickle).
979 textual form, not a restorable pickle).
966
980
967 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
981 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
968
982
969 * usage.py, Magic.py: added %quickref
983 * usage.py, Magic.py: added %quickref
970
984
971 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
985 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
972
986
973 * GetoptErrors when invoking magics etc. with wrong args
987 * GetoptErrors when invoking magics etc. with wrong args
974 are now more helpful:
988 are now more helpful:
975 GetoptError: option -l not recognized (allowed: "qb" )
989 GetoptError: option -l not recognized (allowed: "qb" )
976
990
977 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
991 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
978
992
979 * IPython/demo.py (Demo.show): Flush stdout after each block, so
993 * IPython/demo.py (Demo.show): Flush stdout after each block, so
980 computationally intensive blocks don't appear to stall the demo.
994 computationally intensive blocks don't appear to stall the demo.
981
995
982 2006-01-24 Ville Vainio <vivainio@gmail.com>
996 2006-01-24 Ville Vainio <vivainio@gmail.com>
983
997
984 * iplib.py, hooks.py: 'result_display' hook can return a non-None
998 * iplib.py, hooks.py: 'result_display' hook can return a non-None
985 value to manipulate resulting history entry.
999 value to manipulate resulting history entry.
986
1000
987 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1001 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
988 to instance methods of IPApi class, to make extending an embedded
1002 to instance methods of IPApi class, to make extending an embedded
989 IPython feasible. See ext_rehashdir.py for example usage.
1003 IPython feasible. See ext_rehashdir.py for example usage.
990
1004
991 * Merged 1071-1076 from branches/0.7.1
1005 * Merged 1071-1076 from branches/0.7.1
992
1006
993
1007
994 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1008 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
995
1009
996 * tools/release (daystamp): Fix build tools to use the new
1010 * tools/release (daystamp): Fix build tools to use the new
997 eggsetup.py script to build lightweight eggs.
1011 eggsetup.py script to build lightweight eggs.
998
1012
999 * Applied changesets 1062 and 1064 before 0.7.1 release.
1013 * Applied changesets 1062 and 1064 before 0.7.1 release.
1000
1014
1001 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1015 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1002 see the raw input history (without conversions like %ls ->
1016 see the raw input history (without conversions like %ls ->
1003 ipmagic("ls")). After a request from W. Stein, SAGE
1017 ipmagic("ls")). After a request from W. Stein, SAGE
1004 (http://modular.ucsd.edu/sage) developer. This information is
1018 (http://modular.ucsd.edu/sage) developer. This information is
1005 stored in the input_hist_raw attribute of the IPython instance, so
1019 stored in the input_hist_raw attribute of the IPython instance, so
1006 developers can access it if needed (it's an InputList instance).
1020 developers can access it if needed (it's an InputList instance).
1007
1021
1008 * Versionstring = 0.7.2.svn
1022 * Versionstring = 0.7.2.svn
1009
1023
1010 * eggsetup.py: A separate script for constructing eggs, creates
1024 * eggsetup.py: A separate script for constructing eggs, creates
1011 proper launch scripts even on Windows (an .exe file in
1025 proper launch scripts even on Windows (an .exe file in
1012 \python24\scripts).
1026 \python24\scripts).
1013
1027
1014 * ipapi.py: launch_new_instance, launch entry point needed for the
1028 * ipapi.py: launch_new_instance, launch entry point needed for the
1015 egg.
1029 egg.
1016
1030
1017 2006-01-23 Ville Vainio <vivainio@gmail.com>
1031 2006-01-23 Ville Vainio <vivainio@gmail.com>
1018
1032
1019 * Added %cpaste magic for pasting python code
1033 * Added %cpaste magic for pasting python code
1020
1034
1021 2006-01-22 Ville Vainio <vivainio@gmail.com>
1035 2006-01-22 Ville Vainio <vivainio@gmail.com>
1022
1036
1023 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1037 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1024
1038
1025 * Versionstring = 0.7.2.svn
1039 * Versionstring = 0.7.2.svn
1026
1040
1027 * eggsetup.py: A separate script for constructing eggs, creates
1041 * eggsetup.py: A separate script for constructing eggs, creates
1028 proper launch scripts even on Windows (an .exe file in
1042 proper launch scripts even on Windows (an .exe file in
1029 \python24\scripts).
1043 \python24\scripts).
1030
1044
1031 * ipapi.py: launch_new_instance, launch entry point needed for the
1045 * ipapi.py: launch_new_instance, launch entry point needed for the
1032 egg.
1046 egg.
1033
1047
1034 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1048 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1035
1049
1036 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1050 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1037 %pfile foo would print the file for foo even if it was a binary.
1051 %pfile foo would print the file for foo even if it was a binary.
1038 Now, extensions '.so' and '.dll' are skipped.
1052 Now, extensions '.so' and '.dll' are skipped.
1039
1053
1040 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1054 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1041 bug, where macros would fail in all threaded modes. I'm not 100%
1055 bug, where macros would fail in all threaded modes. I'm not 100%
1042 sure, so I'm going to put out an rc instead of making a release
1056 sure, so I'm going to put out an rc instead of making a release
1043 today, and wait for feedback for at least a few days.
1057 today, and wait for feedback for at least a few days.
1044
1058
1045 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1059 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1046 it...) the handling of pasting external code with autoindent on.
1060 it...) the handling of pasting external code with autoindent on.
1047 To get out of a multiline input, the rule will appear for most
1061 To get out of a multiline input, the rule will appear for most
1048 users unchanged: two blank lines or change the indent level
1062 users unchanged: two blank lines or change the indent level
1049 proposed by IPython. But there is a twist now: you can
1063 proposed by IPython. But there is a twist now: you can
1050 add/subtract only *one or two spaces*. If you add/subtract three
1064 add/subtract only *one or two spaces*. If you add/subtract three
1051 or more (unless you completely delete the line), IPython will
1065 or more (unless you completely delete the line), IPython will
1052 accept that line, and you'll need to enter a second one of pure
1066 accept that line, and you'll need to enter a second one of pure
1053 whitespace. I know it sounds complicated, but I can't find a
1067 whitespace. I know it sounds complicated, but I can't find a
1054 different solution that covers all the cases, with the right
1068 different solution that covers all the cases, with the right
1055 heuristics. Hopefully in actual use, nobody will really notice
1069 heuristics. Hopefully in actual use, nobody will really notice
1056 all these strange rules and things will 'just work'.
1070 all these strange rules and things will 'just work'.
1057
1071
1058 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1072 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1059
1073
1060 * IPython/iplib.py (interact): catch exceptions which can be
1074 * IPython/iplib.py (interact): catch exceptions which can be
1061 triggered asynchronously by signal handlers. Thanks to an
1075 triggered asynchronously by signal handlers. Thanks to an
1062 automatic crash report, submitted by Colin Kingsley
1076 automatic crash report, submitted by Colin Kingsley
1063 <tercel-AT-gentoo.org>.
1077 <tercel-AT-gentoo.org>.
1064
1078
1065 2006-01-20 Ville Vainio <vivainio@gmail.com>
1079 2006-01-20 Ville Vainio <vivainio@gmail.com>
1066
1080
1067 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1081 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1068 (%rehashdir, very useful, try it out) of how to extend ipython
1082 (%rehashdir, very useful, try it out) of how to extend ipython
1069 with new magics. Also added Extensions dir to pythonpath to make
1083 with new magics. Also added Extensions dir to pythonpath to make
1070 importing extensions easy.
1084 importing extensions easy.
1071
1085
1072 * %store now complains when trying to store interactively declared
1086 * %store now complains when trying to store interactively declared
1073 classes / instances of those classes.
1087 classes / instances of those classes.
1074
1088
1075 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1089 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1076 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1090 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1077 if they exist, and ipy_user_conf.py with some defaults is created for
1091 if they exist, and ipy_user_conf.py with some defaults is created for
1078 the user.
1092 the user.
1079
1093
1080 * Startup rehashing done by the config file, not InterpreterExec.
1094 * Startup rehashing done by the config file, not InterpreterExec.
1081 This means system commands are available even without selecting the
1095 This means system commands are available even without selecting the
1082 pysh profile. It's the sensible default after all.
1096 pysh profile. It's the sensible default after all.
1083
1097
1084 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1098 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1085
1099
1086 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1100 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1087 multiline code with autoindent on working. But I am really not
1101 multiline code with autoindent on working. But I am really not
1088 sure, so this needs more testing. Will commit a debug-enabled
1102 sure, so this needs more testing. Will commit a debug-enabled
1089 version for now, while I test it some more, so that Ville and
1103 version for now, while I test it some more, so that Ville and
1090 others may also catch any problems. Also made
1104 others may also catch any problems. Also made
1091 self.indent_current_str() a method, to ensure that there's no
1105 self.indent_current_str() a method, to ensure that there's no
1092 chance of the indent space count and the corresponding string
1106 chance of the indent space count and the corresponding string
1093 falling out of sync. All code needing the string should just call
1107 falling out of sync. All code needing the string should just call
1094 the method.
1108 the method.
1095
1109
1096 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1110 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1097
1111
1098 * IPython/Magic.py (magic_edit): fix check for when users don't
1112 * IPython/Magic.py (magic_edit): fix check for when users don't
1099 save their output files, the try/except was in the wrong section.
1113 save their output files, the try/except was in the wrong section.
1100
1114
1101 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1115 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1102
1116
1103 * IPython/Magic.py (magic_run): fix __file__ global missing from
1117 * IPython/Magic.py (magic_run): fix __file__ global missing from
1104 script's namespace when executed via %run. After a report by
1118 script's namespace when executed via %run. After a report by
1105 Vivian.
1119 Vivian.
1106
1120
1107 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1121 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1108 when using python 2.4. The parent constructor changed in 2.4, and
1122 when using python 2.4. The parent constructor changed in 2.4, and
1109 we need to track it directly (we can't call it, as it messes up
1123 we need to track it directly (we can't call it, as it messes up
1110 readline and tab-completion inside our pdb would stop working).
1124 readline and tab-completion inside our pdb would stop working).
1111 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1125 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1112
1126
1113 2006-01-16 Ville Vainio <vivainio@gmail.com>
1127 2006-01-16 Ville Vainio <vivainio@gmail.com>
1114
1128
1115 * Ipython/magic.py: Reverted back to old %edit functionality
1129 * Ipython/magic.py: Reverted back to old %edit functionality
1116 that returns file contents on exit.
1130 that returns file contents on exit.
1117
1131
1118 * IPython/path.py: Added Jason Orendorff's "path" module to
1132 * IPython/path.py: Added Jason Orendorff's "path" module to
1119 IPython tree, http://www.jorendorff.com/articles/python/path/.
1133 IPython tree, http://www.jorendorff.com/articles/python/path/.
1120 You can get path objects conveniently through %sc, and !!, e.g.:
1134 You can get path objects conveniently through %sc, and !!, e.g.:
1121 sc files=ls
1135 sc files=ls
1122 for p in files.paths: # or files.p
1136 for p in files.paths: # or files.p
1123 print p,p.mtime
1137 print p,p.mtime
1124
1138
1125 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1139 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1126 now work again without considering the exclusion regexp -
1140 now work again without considering the exclusion regexp -
1127 hence, things like ',foo my/path' turn to 'foo("my/path")'
1141 hence, things like ',foo my/path' turn to 'foo("my/path")'
1128 instead of syntax error.
1142 instead of syntax error.
1129
1143
1130
1144
1131 2006-01-14 Ville Vainio <vivainio@gmail.com>
1145 2006-01-14 Ville Vainio <vivainio@gmail.com>
1132
1146
1133 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1147 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1134 ipapi decorators for python 2.4 users, options() provides access to rc
1148 ipapi decorators for python 2.4 users, options() provides access to rc
1135 data.
1149 data.
1136
1150
1137 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1151 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1138 as path separators (even on Linux ;-). Space character after
1152 as path separators (even on Linux ;-). Space character after
1139 backslash (as yielded by tab completer) is still space;
1153 backslash (as yielded by tab completer) is still space;
1140 "%cd long\ name" works as expected.
1154 "%cd long\ name" works as expected.
1141
1155
1142 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1156 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1143 as "chain of command", with priority. API stays the same,
1157 as "chain of command", with priority. API stays the same,
1144 TryNext exception raised by a hook function signals that
1158 TryNext exception raised by a hook function signals that
1145 current hook failed and next hook should try handling it, as
1159 current hook failed and next hook should try handling it, as
1146 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1160 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1147 requested configurable display hook, which is now implemented.
1161 requested configurable display hook, which is now implemented.
1148
1162
1149 2006-01-13 Ville Vainio <vivainio@gmail.com>
1163 2006-01-13 Ville Vainio <vivainio@gmail.com>
1150
1164
1151 * IPython/platutils*.py: platform specific utility functions,
1165 * IPython/platutils*.py: platform specific utility functions,
1152 so far only set_term_title is implemented (change terminal
1166 so far only set_term_title is implemented (change terminal
1153 label in windowing systems). %cd now changes the title to
1167 label in windowing systems). %cd now changes the title to
1154 current dir.
1168 current dir.
1155
1169
1156 * IPython/Release.py: Added myself to "authors" list,
1170 * IPython/Release.py: Added myself to "authors" list,
1157 had to create new files.
1171 had to create new files.
1158
1172
1159 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1173 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1160 shell escape; not a known bug but had potential to be one in the
1174 shell escape; not a known bug but had potential to be one in the
1161 future.
1175 future.
1162
1176
1163 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1177 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1164 extension API for IPython! See the module for usage example. Fix
1178 extension API for IPython! See the module for usage example. Fix
1165 OInspect for docstring-less magic functions.
1179 OInspect for docstring-less magic functions.
1166
1180
1167
1181
1168 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1182 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1169
1183
1170 * IPython/iplib.py (raw_input): temporarily deactivate all
1184 * IPython/iplib.py (raw_input): temporarily deactivate all
1171 attempts at allowing pasting of code with autoindent on. It
1185 attempts at allowing pasting of code with autoindent on. It
1172 introduced bugs (reported by Prabhu) and I can't seem to find a
1186 introduced bugs (reported by Prabhu) and I can't seem to find a
1173 robust combination which works in all cases. Will have to revisit
1187 robust combination which works in all cases. Will have to revisit
1174 later.
1188 later.
1175
1189
1176 * IPython/genutils.py: remove isspace() function. We've dropped
1190 * IPython/genutils.py: remove isspace() function. We've dropped
1177 2.2 compatibility, so it's OK to use the string method.
1191 2.2 compatibility, so it's OK to use the string method.
1178
1192
1179 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1193 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1180
1194
1181 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1195 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1182 matching what NOT to autocall on, to include all python binary
1196 matching what NOT to autocall on, to include all python binary
1183 operators (including things like 'and', 'or', 'is' and 'in').
1197 operators (including things like 'and', 'or', 'is' and 'in').
1184 Prompted by a bug report on 'foo & bar', but I realized we had
1198 Prompted by a bug report on 'foo & bar', but I realized we had
1185 many more potential bug cases with other operators. The regexp is
1199 many more potential bug cases with other operators. The regexp is
1186 self.re_exclude_auto, it's fairly commented.
1200 self.re_exclude_auto, it's fairly commented.
1187
1201
1188 2006-01-12 Ville Vainio <vivainio@gmail.com>
1202 2006-01-12 Ville Vainio <vivainio@gmail.com>
1189
1203
1190 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1204 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1191 Prettified and hardened string/backslash quoting with ipsystem(),
1205 Prettified and hardened string/backslash quoting with ipsystem(),
1192 ipalias() and ipmagic(). Now even \ characters are passed to
1206 ipalias() and ipmagic(). Now even \ characters are passed to
1193 %magics, !shell escapes and aliases exactly as they are in the
1207 %magics, !shell escapes and aliases exactly as they are in the
1194 ipython command line. Should improve backslash experience,
1208 ipython command line. Should improve backslash experience,
1195 particularly in Windows (path delimiter for some commands that
1209 particularly in Windows (path delimiter for some commands that
1196 won't understand '/'), but Unix benefits as well (regexps). %cd
1210 won't understand '/'), but Unix benefits as well (regexps). %cd
1197 magic still doesn't support backslash path delimiters, though. Also
1211 magic still doesn't support backslash path delimiters, though. Also
1198 deleted all pretense of supporting multiline command strings in
1212 deleted all pretense of supporting multiline command strings in
1199 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1213 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1200
1214
1201 * doc/build_doc_instructions.txt added. Documentation on how to
1215 * doc/build_doc_instructions.txt added. Documentation on how to
1202 use doc/update_manual.py, added yesterday. Both files contributed
1216 use doc/update_manual.py, added yesterday. Both files contributed
1203 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1217 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1204 doc/*.sh for deprecation at a later date.
1218 doc/*.sh for deprecation at a later date.
1205
1219
1206 * /ipython.py Added ipython.py to root directory for
1220 * /ipython.py Added ipython.py to root directory for
1207 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1221 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1208 ipython.py) and development convenience (no need to keep doing
1222 ipython.py) and development convenience (no need to keep doing
1209 "setup.py install" between changes).
1223 "setup.py install" between changes).
1210
1224
1211 * Made ! and !! shell escapes work (again) in multiline expressions:
1225 * Made ! and !! shell escapes work (again) in multiline expressions:
1212 if 1:
1226 if 1:
1213 !ls
1227 !ls
1214 !!ls
1228 !!ls
1215
1229
1216 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1230 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1217
1231
1218 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1232 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1219 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1233 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1220 module in case-insensitive installation. Was causing crashes
1234 module in case-insensitive installation. Was causing crashes
1221 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1235 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1222
1236
1223 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1237 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1224 <marienz-AT-gentoo.org>, closes
1238 <marienz-AT-gentoo.org>, closes
1225 http://www.scipy.net/roundup/ipython/issue51.
1239 http://www.scipy.net/roundup/ipython/issue51.
1226
1240
1227 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1241 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1228
1242
1229 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1243 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1230 problem of excessive CPU usage under *nix and keyboard lag under
1244 problem of excessive CPU usage under *nix and keyboard lag under
1231 win32.
1245 win32.
1232
1246
1233 2006-01-10 *** Released version 0.7.0
1247 2006-01-10 *** Released version 0.7.0
1234
1248
1235 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1249 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1236
1250
1237 * IPython/Release.py (revision): tag version number to 0.7.0,
1251 * IPython/Release.py (revision): tag version number to 0.7.0,
1238 ready for release.
1252 ready for release.
1239
1253
1240 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1254 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1241 it informs the user of the name of the temp. file used. This can
1255 it informs the user of the name of the temp. file used. This can
1242 help if you decide later to reuse that same file, so you know
1256 help if you decide later to reuse that same file, so you know
1243 where to copy the info from.
1257 where to copy the info from.
1244
1258
1245 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1259 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1260
1247 * setup_bdist_egg.py: little script to build an egg. Added
1261 * setup_bdist_egg.py: little script to build an egg. Added
1248 support in the release tools as well.
1262 support in the release tools as well.
1249
1263
1250 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1264 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1251
1265
1252 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1266 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1253 version selection (new -wxversion command line and ipythonrc
1267 version selection (new -wxversion command line and ipythonrc
1254 parameter). Patch contributed by Arnd Baecker
1268 parameter). Patch contributed by Arnd Baecker
1255 <arnd.baecker-AT-web.de>.
1269 <arnd.baecker-AT-web.de>.
1256
1270
1257 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1271 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1258 embedded instances, for variables defined at the interactive
1272 embedded instances, for variables defined at the interactive
1259 prompt of the embedded ipython. Reported by Arnd.
1273 prompt of the embedded ipython. Reported by Arnd.
1260
1274
1261 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1275 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1262 it can be used as a (stateful) toggle, or with a direct parameter.
1276 it can be used as a (stateful) toggle, or with a direct parameter.
1263
1277
1264 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1278 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1265 could be triggered in certain cases and cause the traceback
1279 could be triggered in certain cases and cause the traceback
1266 printer not to work.
1280 printer not to work.
1267
1281
1268 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1282 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1269
1283
1270 * IPython/iplib.py (_should_recompile): Small fix, closes
1284 * IPython/iplib.py (_should_recompile): Small fix, closes
1271 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1285 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1272
1286
1273 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1274
1288
1275 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1289 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1276 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1290 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1277 Moad for help with tracking it down.
1291 Moad for help with tracking it down.
1278
1292
1279 * IPython/iplib.py (handle_auto): fix autocall handling for
1293 * IPython/iplib.py (handle_auto): fix autocall handling for
1280 objects which support BOTH __getitem__ and __call__ (so that f [x]
1294 objects which support BOTH __getitem__ and __call__ (so that f [x]
1281 is left alone, instead of becoming f([x]) automatically).
1295 is left alone, instead of becoming f([x]) automatically).
1282
1296
1283 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1297 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1284 Ville's patch.
1298 Ville's patch.
1285
1299
1286 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1300 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1287
1301
1288 * IPython/iplib.py (handle_auto): changed autocall semantics to
1302 * IPython/iplib.py (handle_auto): changed autocall semantics to
1289 include 'smart' mode, where the autocall transformation is NOT
1303 include 'smart' mode, where the autocall transformation is NOT
1290 applied if there are no arguments on the line. This allows you to
1304 applied if there are no arguments on the line. This allows you to
1291 just type 'foo' if foo is a callable to see its internal form,
1305 just type 'foo' if foo is a callable to see its internal form,
1292 instead of having it called with no arguments (typically a
1306 instead of having it called with no arguments (typically a
1293 mistake). The old 'full' autocall still exists: for that, you
1307 mistake). The old 'full' autocall still exists: for that, you
1294 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1308 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1295
1309
1296 * IPython/completer.py (Completer.attr_matches): add
1310 * IPython/completer.py (Completer.attr_matches): add
1297 tab-completion support for Enthoughts' traits. After a report by
1311 tab-completion support for Enthoughts' traits. After a report by
1298 Arnd and a patch by Prabhu.
1312 Arnd and a patch by Prabhu.
1299
1313
1300 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1314 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1301
1315
1302 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1316 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1303 Schmolck's patch to fix inspect.getinnerframes().
1317 Schmolck's patch to fix inspect.getinnerframes().
1304
1318
1305 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1319 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1306 for embedded instances, regarding handling of namespaces and items
1320 for embedded instances, regarding handling of namespaces and items
1307 added to the __builtin__ one. Multiple embedded instances and
1321 added to the __builtin__ one. Multiple embedded instances and
1308 recursive embeddings should work better now (though I'm not sure
1322 recursive embeddings should work better now (though I'm not sure
1309 I've got all the corner cases fixed, that code is a bit of a brain
1323 I've got all the corner cases fixed, that code is a bit of a brain
1310 twister).
1324 twister).
1311
1325
1312 * IPython/Magic.py (magic_edit): added support to edit in-memory
1326 * IPython/Magic.py (magic_edit): added support to edit in-memory
1313 macros (automatically creates the necessary temp files). %edit
1327 macros (automatically creates the necessary temp files). %edit
1314 also doesn't return the file contents anymore, it's just noise.
1328 also doesn't return the file contents anymore, it's just noise.
1315
1329
1316 * IPython/completer.py (Completer.attr_matches): revert change to
1330 * IPython/completer.py (Completer.attr_matches): revert change to
1317 complete only on attributes listed in __all__. I realized it
1331 complete only on attributes listed in __all__. I realized it
1318 cripples the tab-completion system as a tool for exploring the
1332 cripples the tab-completion system as a tool for exploring the
1319 internals of unknown libraries (it renders any non-__all__
1333 internals of unknown libraries (it renders any non-__all__
1320 attribute off-limits). I got bit by this when trying to see
1334 attribute off-limits). I got bit by this when trying to see
1321 something inside the dis module.
1335 something inside the dis module.
1322
1336
1323 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1337 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1324
1338
1325 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1339 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1326 namespace for users and extension writers to hold data in. This
1340 namespace for users and extension writers to hold data in. This
1327 follows the discussion in
1341 follows the discussion in
1328 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1342 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1329
1343
1330 * IPython/completer.py (IPCompleter.complete): small patch to help
1344 * IPython/completer.py (IPCompleter.complete): small patch to help
1331 tab-completion under Emacs, after a suggestion by John Barnard
1345 tab-completion under Emacs, after a suggestion by John Barnard
1332 <barnarj-AT-ccf.org>.
1346 <barnarj-AT-ccf.org>.
1333
1347
1334 * IPython/Magic.py (Magic.extract_input_slices): added support for
1348 * IPython/Magic.py (Magic.extract_input_slices): added support for
1335 the slice notation in magics to use N-M to represent numbers N...M
1349 the slice notation in magics to use N-M to represent numbers N...M
1336 (closed endpoints). This is used by %macro and %save.
1350 (closed endpoints). This is used by %macro and %save.
1337
1351
1338 * IPython/completer.py (Completer.attr_matches): for modules which
1352 * IPython/completer.py (Completer.attr_matches): for modules which
1339 define __all__, complete only on those. After a patch by Jeffrey
1353 define __all__, complete only on those. After a patch by Jeffrey
1340 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1354 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1341 speed up this routine.
1355 speed up this routine.
1342
1356
1343 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1357 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1344 don't know if this is the end of it, but the behavior now is
1358 don't know if this is the end of it, but the behavior now is
1345 certainly much more correct. Note that coupled with macros,
1359 certainly much more correct. Note that coupled with macros,
1346 slightly surprising (at first) behavior may occur: a macro will in
1360 slightly surprising (at first) behavior may occur: a macro will in
1347 general expand to multiple lines of input, so upon exiting, the
1361 general expand to multiple lines of input, so upon exiting, the
1348 in/out counters will both be bumped by the corresponding amount
1362 in/out counters will both be bumped by the corresponding amount
1349 (as if the macro's contents had been typed interactively). Typing
1363 (as if the macro's contents had been typed interactively). Typing
1350 %hist will reveal the intermediate (silently processed) lines.
1364 %hist will reveal the intermediate (silently processed) lines.
1351
1365
1352 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1366 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1353 pickle to fail (%run was overwriting __main__ and not restoring
1367 pickle to fail (%run was overwriting __main__ and not restoring
1354 it, but pickle relies on __main__ to operate).
1368 it, but pickle relies on __main__ to operate).
1355
1369
1356 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1370 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1357 using properties, but forgot to make the main InteractiveShell
1371 using properties, but forgot to make the main InteractiveShell
1358 class a new-style class. Properties fail silently, and
1372 class a new-style class. Properties fail silently, and
1359 mysteriously, with old-style class (getters work, but
1373 mysteriously, with old-style class (getters work, but
1360 setters don't do anything).
1374 setters don't do anything).
1361
1375
1362 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1376 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1363
1377
1364 * IPython/Magic.py (magic_history): fix history reporting bug (I
1378 * IPython/Magic.py (magic_history): fix history reporting bug (I
1365 know some nasties are still there, I just can't seem to find a
1379 know some nasties are still there, I just can't seem to find a
1366 reproducible test case to track them down; the input history is
1380 reproducible test case to track them down; the input history is
1367 falling out of sync...)
1381 falling out of sync...)
1368
1382
1369 * IPython/iplib.py (handle_shell_escape): fix bug where both
1383 * IPython/iplib.py (handle_shell_escape): fix bug where both
1370 aliases and system accesses where broken for indented code (such
1384 aliases and system accesses where broken for indented code (such
1371 as loops).
1385 as loops).
1372
1386
1373 * IPython/genutils.py (shell): fix small but critical bug for
1387 * IPython/genutils.py (shell): fix small but critical bug for
1374 win32 system access.
1388 win32 system access.
1375
1389
1376 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1391
1378 * IPython/iplib.py (showtraceback): remove use of the
1392 * IPython/iplib.py (showtraceback): remove use of the
1379 sys.last_{type/value/traceback} structures, which are non
1393 sys.last_{type/value/traceback} structures, which are non
1380 thread-safe.
1394 thread-safe.
1381 (_prefilter): change control flow to ensure that we NEVER
1395 (_prefilter): change control flow to ensure that we NEVER
1382 introspect objects when autocall is off. This will guarantee that
1396 introspect objects when autocall is off. This will guarantee that
1383 having an input line of the form 'x.y', where access to attribute
1397 having an input line of the form 'x.y', where access to attribute
1384 'y' has side effects, doesn't trigger the side effect TWICE. It
1398 'y' has side effects, doesn't trigger the side effect TWICE. It
1385 is important to note that, with autocall on, these side effects
1399 is important to note that, with autocall on, these side effects
1386 can still happen.
1400 can still happen.
1387 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1401 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1388 trio. IPython offers these three kinds of special calls which are
1402 trio. IPython offers these three kinds of special calls which are
1389 not python code, and it's a good thing to have their call method
1403 not python code, and it's a good thing to have their call method
1390 be accessible as pure python functions (not just special syntax at
1404 be accessible as pure python functions (not just special syntax at
1391 the command line). It gives us a better internal implementation
1405 the command line). It gives us a better internal implementation
1392 structure, as well as exposing these for user scripting more
1406 structure, as well as exposing these for user scripting more
1393 cleanly.
1407 cleanly.
1394
1408
1395 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1409 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1396 file. Now that they'll be more likely to be used with the
1410 file. Now that they'll be more likely to be used with the
1397 persistance system (%store), I want to make sure their module path
1411 persistance system (%store), I want to make sure their module path
1398 doesn't change in the future, so that we don't break things for
1412 doesn't change in the future, so that we don't break things for
1399 users' persisted data.
1413 users' persisted data.
1400
1414
1401 * IPython/iplib.py (autoindent_update): move indentation
1415 * IPython/iplib.py (autoindent_update): move indentation
1402 management into the _text_ processing loop, not the keyboard
1416 management into the _text_ processing loop, not the keyboard
1403 interactive one. This is necessary to correctly process non-typed
1417 interactive one. This is necessary to correctly process non-typed
1404 multiline input (such as macros).
1418 multiline input (such as macros).
1405
1419
1406 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1420 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1407 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1421 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1408 which was producing problems in the resulting manual.
1422 which was producing problems in the resulting manual.
1409 (magic_whos): improve reporting of instances (show their class,
1423 (magic_whos): improve reporting of instances (show their class,
1410 instead of simply printing 'instance' which isn't terribly
1424 instead of simply printing 'instance' which isn't terribly
1411 informative).
1425 informative).
1412
1426
1413 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1427 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1414 (minor mods) to support network shares under win32.
1428 (minor mods) to support network shares under win32.
1415
1429
1416 * IPython/winconsole.py (get_console_size): add new winconsole
1430 * IPython/winconsole.py (get_console_size): add new winconsole
1417 module and fixes to page_dumb() to improve its behavior under
1431 module and fixes to page_dumb() to improve its behavior under
1418 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1432 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1419
1433
1420 * IPython/Magic.py (Macro): simplified Macro class to just
1434 * IPython/Magic.py (Macro): simplified Macro class to just
1421 subclass list. We've had only 2.2 compatibility for a very long
1435 subclass list. We've had only 2.2 compatibility for a very long
1422 time, yet I was still avoiding subclassing the builtin types. No
1436 time, yet I was still avoiding subclassing the builtin types. No
1423 more (I'm also starting to use properties, though I won't shift to
1437 more (I'm also starting to use properties, though I won't shift to
1424 2.3-specific features quite yet).
1438 2.3-specific features quite yet).
1425 (magic_store): added Ville's patch for lightweight variable
1439 (magic_store): added Ville's patch for lightweight variable
1426 persistence, after a request on the user list by Matt Wilkie
1440 persistence, after a request on the user list by Matt Wilkie
1427 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1441 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1428 details.
1442 details.
1429
1443
1430 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1444 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1431 changed the default logfile name from 'ipython.log' to
1445 changed the default logfile name from 'ipython.log' to
1432 'ipython_log.py'. These logs are real python files, and now that
1446 'ipython_log.py'. These logs are real python files, and now that
1433 we have much better multiline support, people are more likely to
1447 we have much better multiline support, people are more likely to
1434 want to use them as such. Might as well name them correctly.
1448 want to use them as such. Might as well name them correctly.
1435
1449
1436 * IPython/Magic.py: substantial cleanup. While we can't stop
1450 * IPython/Magic.py: substantial cleanup. While we can't stop
1437 using magics as mixins, due to the existing customizations 'out
1451 using magics as mixins, due to the existing customizations 'out
1438 there' which rely on the mixin naming conventions, at least I
1452 there' which rely on the mixin naming conventions, at least I
1439 cleaned out all cross-class name usage. So once we are OK with
1453 cleaned out all cross-class name usage. So once we are OK with
1440 breaking compatibility, the two systems can be separated.
1454 breaking compatibility, the two systems can be separated.
1441
1455
1442 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1456 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1443 anymore, and the class is a fair bit less hideous as well. New
1457 anymore, and the class is a fair bit less hideous as well. New
1444 features were also introduced: timestamping of input, and logging
1458 features were also introduced: timestamping of input, and logging
1445 of output results. These are user-visible with the -t and -o
1459 of output results. These are user-visible with the -t and -o
1446 options to %logstart. Closes
1460 options to %logstart. Closes
1447 http://www.scipy.net/roundup/ipython/issue11 and a request by
1461 http://www.scipy.net/roundup/ipython/issue11 and a request by
1448 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1462 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1449
1463
1450 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1464 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1451
1465
1452 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1466 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1453 better handle backslashes in paths. See the thread 'More Windows
1467 better handle backslashes in paths. See the thread 'More Windows
1454 questions part 2 - \/ characters revisited' on the iypthon user
1468 questions part 2 - \/ characters revisited' on the iypthon user
1455 list:
1469 list:
1456 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1470 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1457
1471
1458 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1472 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1459
1473
1460 (InteractiveShell.__init__): change threaded shells to not use the
1474 (InteractiveShell.__init__): change threaded shells to not use the
1461 ipython crash handler. This was causing more problems than not,
1475 ipython crash handler. This was causing more problems than not,
1462 as exceptions in the main thread (GUI code, typically) would
1476 as exceptions in the main thread (GUI code, typically) would
1463 always show up as a 'crash', when they really weren't.
1477 always show up as a 'crash', when they really weren't.
1464
1478
1465 The colors and exception mode commands (%colors/%xmode) have been
1479 The colors and exception mode commands (%colors/%xmode) have been
1466 synchronized to also take this into account, so users can get
1480 synchronized to also take this into account, so users can get
1467 verbose exceptions for their threaded code as well. I also added
1481 verbose exceptions for their threaded code as well. I also added
1468 support for activating pdb inside this exception handler as well,
1482 support for activating pdb inside this exception handler as well,
1469 so now GUI authors can use IPython's enhanced pdb at runtime.
1483 so now GUI authors can use IPython's enhanced pdb at runtime.
1470
1484
1471 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1485 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1472 true by default, and add it to the shipped ipythonrc file. Since
1486 true by default, and add it to the shipped ipythonrc file. Since
1473 this asks the user before proceeding, I think it's OK to make it
1487 this asks the user before proceeding, I think it's OK to make it
1474 true by default.
1488 true by default.
1475
1489
1476 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1490 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1477 of the previous special-casing of input in the eval loop. I think
1491 of the previous special-casing of input in the eval loop. I think
1478 this is cleaner, as they really are commands and shouldn't have
1492 this is cleaner, as they really are commands and shouldn't have
1479 a special role in the middle of the core code.
1493 a special role in the middle of the core code.
1480
1494
1481 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1495 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1482
1496
1483 * IPython/iplib.py (edit_syntax_error): added support for
1497 * IPython/iplib.py (edit_syntax_error): added support for
1484 automatically reopening the editor if the file had a syntax error
1498 automatically reopening the editor if the file had a syntax error
1485 in it. Thanks to scottt who provided the patch at:
1499 in it. Thanks to scottt who provided the patch at:
1486 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1500 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1487 version committed).
1501 version committed).
1488
1502
1489 * IPython/iplib.py (handle_normal): add suport for multi-line
1503 * IPython/iplib.py (handle_normal): add suport for multi-line
1490 input with emtpy lines. This fixes
1504 input with emtpy lines. This fixes
1491 http://www.scipy.net/roundup/ipython/issue43 and a similar
1505 http://www.scipy.net/roundup/ipython/issue43 and a similar
1492 discussion on the user list.
1506 discussion on the user list.
1493
1507
1494 WARNING: a behavior change is necessarily introduced to support
1508 WARNING: a behavior change is necessarily introduced to support
1495 blank lines: now a single blank line with whitespace does NOT
1509 blank lines: now a single blank line with whitespace does NOT
1496 break the input loop, which means that when autoindent is on, by
1510 break the input loop, which means that when autoindent is on, by
1497 default hitting return on the next (indented) line does NOT exit.
1511 default hitting return on the next (indented) line does NOT exit.
1498
1512
1499 Instead, to exit a multiline input you can either have:
1513 Instead, to exit a multiline input you can either have:
1500
1514
1501 - TWO whitespace lines (just hit return again), or
1515 - TWO whitespace lines (just hit return again), or
1502 - a single whitespace line of a different length than provided
1516 - a single whitespace line of a different length than provided
1503 by the autoindent (add or remove a space).
1517 by the autoindent (add or remove a space).
1504
1518
1505 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1519 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1506 module to better organize all readline-related functionality.
1520 module to better organize all readline-related functionality.
1507 I've deleted FlexCompleter and put all completion clases here.
1521 I've deleted FlexCompleter and put all completion clases here.
1508
1522
1509 * IPython/iplib.py (raw_input): improve indentation management.
1523 * IPython/iplib.py (raw_input): improve indentation management.
1510 It is now possible to paste indented code with autoindent on, and
1524 It is now possible to paste indented code with autoindent on, and
1511 the code is interpreted correctly (though it still looks bad on
1525 the code is interpreted correctly (though it still looks bad on
1512 screen, due to the line-oriented nature of ipython).
1526 screen, due to the line-oriented nature of ipython).
1513 (MagicCompleter.complete): change behavior so that a TAB key on an
1527 (MagicCompleter.complete): change behavior so that a TAB key on an
1514 otherwise empty line actually inserts a tab, instead of completing
1528 otherwise empty line actually inserts a tab, instead of completing
1515 on the entire global namespace. This makes it easier to use the
1529 on the entire global namespace. This makes it easier to use the
1516 TAB key for indentation. After a request by Hans Meine
1530 TAB key for indentation. After a request by Hans Meine
1517 <hans_meine-AT-gmx.net>
1531 <hans_meine-AT-gmx.net>
1518 (_prefilter): add support so that typing plain 'exit' or 'quit'
1532 (_prefilter): add support so that typing plain 'exit' or 'quit'
1519 does a sensible thing. Originally I tried to deviate as little as
1533 does a sensible thing. Originally I tried to deviate as little as
1520 possible from the default python behavior, but even that one may
1534 possible from the default python behavior, but even that one may
1521 change in this direction (thread on python-dev to that effect).
1535 change in this direction (thread on python-dev to that effect).
1522 Regardless, ipython should do the right thing even if CPython's
1536 Regardless, ipython should do the right thing even if CPython's
1523 '>>>' prompt doesn't.
1537 '>>>' prompt doesn't.
1524 (InteractiveShell): removed subclassing code.InteractiveConsole
1538 (InteractiveShell): removed subclassing code.InteractiveConsole
1525 class. By now we'd overridden just about all of its methods: I've
1539 class. By now we'd overridden just about all of its methods: I've
1526 copied the remaining two over, and now ipython is a standalone
1540 copied the remaining two over, and now ipython is a standalone
1527 class. This will provide a clearer picture for the chainsaw
1541 class. This will provide a clearer picture for the chainsaw
1528 branch refactoring.
1542 branch refactoring.
1529
1543
1530 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1544 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1531
1545
1532 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1546 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1533 failures for objects which break when dir() is called on them.
1547 failures for objects which break when dir() is called on them.
1534
1548
1535 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1549 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1536 distinct local and global namespaces in the completer API. This
1550 distinct local and global namespaces in the completer API. This
1537 change allows us to properly handle completion with distinct
1551 change allows us to properly handle completion with distinct
1538 scopes, including in embedded instances (this had never really
1552 scopes, including in embedded instances (this had never really
1539 worked correctly).
1553 worked correctly).
1540
1554
1541 Note: this introduces a change in the constructor for
1555 Note: this introduces a change in the constructor for
1542 MagicCompleter, as a new global_namespace parameter is now the
1556 MagicCompleter, as a new global_namespace parameter is now the
1543 second argument (the others were bumped one position).
1557 second argument (the others were bumped one position).
1544
1558
1545 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1559 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1546
1560
1547 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1561 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1548 embedded instances (which can be done now thanks to Vivian's
1562 embedded instances (which can be done now thanks to Vivian's
1549 frame-handling fixes for pdb).
1563 frame-handling fixes for pdb).
1550 (InteractiveShell.__init__): Fix namespace handling problem in
1564 (InteractiveShell.__init__): Fix namespace handling problem in
1551 embedded instances. We were overwriting __main__ unconditionally,
1565 embedded instances. We were overwriting __main__ unconditionally,
1552 and this should only be done for 'full' (non-embedded) IPython;
1566 and this should only be done for 'full' (non-embedded) IPython;
1553 embedded instances must respect the caller's __main__. Thanks to
1567 embedded instances must respect the caller's __main__. Thanks to
1554 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1568 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1555
1569
1556 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1570 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1557
1571
1558 * setup.py: added download_url to setup(). This registers the
1572 * setup.py: added download_url to setup(). This registers the
1559 download address at PyPI, which is not only useful to humans
1573 download address at PyPI, which is not only useful to humans
1560 browsing the site, but is also picked up by setuptools (the Eggs
1574 browsing the site, but is also picked up by setuptools (the Eggs
1561 machinery). Thanks to Ville and R. Kern for the info/discussion
1575 machinery). Thanks to Ville and R. Kern for the info/discussion
1562 on this.
1576 on this.
1563
1577
1564 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1578 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1565
1579
1566 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1580 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1567 This brings a lot of nice functionality to the pdb mode, which now
1581 This brings a lot of nice functionality to the pdb mode, which now
1568 has tab-completion, syntax highlighting, and better stack handling
1582 has tab-completion, syntax highlighting, and better stack handling
1569 than before. Many thanks to Vivian De Smedt
1583 than before. Many thanks to Vivian De Smedt
1570 <vivian-AT-vdesmedt.com> for the original patches.
1584 <vivian-AT-vdesmedt.com> for the original patches.
1571
1585
1572 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1586 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1573
1587
1574 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1588 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1575 sequence to consistently accept the banner argument. The
1589 sequence to consistently accept the banner argument. The
1576 inconsistency was tripping SAGE, thanks to Gary Zablackis
1590 inconsistency was tripping SAGE, thanks to Gary Zablackis
1577 <gzabl-AT-yahoo.com> for the report.
1591 <gzabl-AT-yahoo.com> for the report.
1578
1592
1579 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1593 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1580
1594
1581 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1595 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1582 Fix bug where a naked 'alias' call in the ipythonrc file would
1596 Fix bug where a naked 'alias' call in the ipythonrc file would
1583 cause a crash. Bug reported by Jorgen Stenarson.
1597 cause a crash. Bug reported by Jorgen Stenarson.
1584
1598
1585 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1599 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1586
1600
1587 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1601 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1588 startup time.
1602 startup time.
1589
1603
1590 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1604 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1591 instances had introduced a bug with globals in normal code. Now
1605 instances had introduced a bug with globals in normal code. Now
1592 it's working in all cases.
1606 it's working in all cases.
1593
1607
1594 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1608 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1595 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1609 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1596 has been introduced to set the default case sensitivity of the
1610 has been introduced to set the default case sensitivity of the
1597 searches. Users can still select either mode at runtime on a
1611 searches. Users can still select either mode at runtime on a
1598 per-search basis.
1612 per-search basis.
1599
1613
1600 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1614 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1601
1615
1602 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1616 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1603 attributes in wildcard searches for subclasses. Modified version
1617 attributes in wildcard searches for subclasses. Modified version
1604 of a patch by Jorgen.
1618 of a patch by Jorgen.
1605
1619
1606 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1620 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1607
1621
1608 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1622 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1609 embedded instances. I added a user_global_ns attribute to the
1623 embedded instances. I added a user_global_ns attribute to the
1610 InteractiveShell class to handle this.
1624 InteractiveShell class to handle this.
1611
1625
1612 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1626 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1613
1627
1614 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1628 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1615 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1629 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1616 (reported under win32, but may happen also in other platforms).
1630 (reported under win32, but may happen also in other platforms).
1617 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1631 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1618
1632
1619 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1633 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1620
1634
1621 * IPython/Magic.py (magic_psearch): new support for wildcard
1635 * IPython/Magic.py (magic_psearch): new support for wildcard
1622 patterns. Now, typing ?a*b will list all names which begin with a
1636 patterns. Now, typing ?a*b will list all names which begin with a
1623 and end in b, for example. The %psearch magic has full
1637 and end in b, for example. The %psearch magic has full
1624 docstrings. Many thanks to JΓΆrgen Stenarson
1638 docstrings. Many thanks to JΓΆrgen Stenarson
1625 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1639 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1626 implementing this functionality.
1640 implementing this functionality.
1627
1641
1628 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1642 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1629
1643
1630 * Manual: fixed long-standing annoyance of double-dashes (as in
1644 * Manual: fixed long-standing annoyance of double-dashes (as in
1631 --prefix=~, for example) being stripped in the HTML version. This
1645 --prefix=~, for example) being stripped in the HTML version. This
1632 is a latex2html bug, but a workaround was provided. Many thanks
1646 is a latex2html bug, but a workaround was provided. Many thanks
1633 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1647 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1634 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1648 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1635 rolling. This seemingly small issue had tripped a number of users
1649 rolling. This seemingly small issue had tripped a number of users
1636 when first installing, so I'm glad to see it gone.
1650 when first installing, so I'm glad to see it gone.
1637
1651
1638 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1652 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1639
1653
1640 * IPython/Extensions/numeric_formats.py: fix missing import,
1654 * IPython/Extensions/numeric_formats.py: fix missing import,
1641 reported by Stephen Walton.
1655 reported by Stephen Walton.
1642
1656
1643 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1657 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1644
1658
1645 * IPython/demo.py: finish demo module, fully documented now.
1659 * IPython/demo.py: finish demo module, fully documented now.
1646
1660
1647 * IPython/genutils.py (file_read): simple little utility to read a
1661 * IPython/genutils.py (file_read): simple little utility to read a
1648 file and ensure it's closed afterwards.
1662 file and ensure it's closed afterwards.
1649
1663
1650 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1664 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1651
1665
1652 * IPython/demo.py (Demo.__init__): added support for individually
1666 * IPython/demo.py (Demo.__init__): added support for individually
1653 tagging blocks for automatic execution.
1667 tagging blocks for automatic execution.
1654
1668
1655 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1669 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1656 syntax-highlighted python sources, requested by John.
1670 syntax-highlighted python sources, requested by John.
1657
1671
1658 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1672 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1659
1673
1660 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1674 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1661 finishing.
1675 finishing.
1662
1676
1663 * IPython/genutils.py (shlex_split): moved from Magic to here,
1677 * IPython/genutils.py (shlex_split): moved from Magic to here,
1664 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1678 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1665
1679
1666 * IPython/demo.py (Demo.__init__): added support for silent
1680 * IPython/demo.py (Demo.__init__): added support for silent
1667 blocks, improved marks as regexps, docstrings written.
1681 blocks, improved marks as regexps, docstrings written.
1668 (Demo.__init__): better docstring, added support for sys.argv.
1682 (Demo.__init__): better docstring, added support for sys.argv.
1669
1683
1670 * IPython/genutils.py (marquee): little utility used by the demo
1684 * IPython/genutils.py (marquee): little utility used by the demo
1671 code, handy in general.
1685 code, handy in general.
1672
1686
1673 * IPython/demo.py (Demo.__init__): new class for interactive
1687 * IPython/demo.py (Demo.__init__): new class for interactive
1674 demos. Not documented yet, I just wrote it in a hurry for
1688 demos. Not documented yet, I just wrote it in a hurry for
1675 scipy'05. Will docstring later.
1689 scipy'05. Will docstring later.
1676
1690
1677 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1691 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1678
1692
1679 * IPython/Shell.py (sigint_handler): Drastic simplification which
1693 * IPython/Shell.py (sigint_handler): Drastic simplification which
1680 also seems to make Ctrl-C work correctly across threads! This is
1694 also seems to make Ctrl-C work correctly across threads! This is
1681 so simple, that I can't beleive I'd missed it before. Needs more
1695 so simple, that I can't beleive I'd missed it before. Needs more
1682 testing, though.
1696 testing, though.
1683 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1697 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1684 like this before...
1698 like this before...
1685
1699
1686 * IPython/genutils.py (get_home_dir): add protection against
1700 * IPython/genutils.py (get_home_dir): add protection against
1687 non-dirs in win32 registry.
1701 non-dirs in win32 registry.
1688
1702
1689 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1703 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1690 bug where dict was mutated while iterating (pysh crash).
1704 bug where dict was mutated while iterating (pysh crash).
1691
1705
1692 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1706 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1693
1707
1694 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1708 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1695 spurious newlines added by this routine. After a report by
1709 spurious newlines added by this routine. After a report by
1696 F. Mantegazza.
1710 F. Mantegazza.
1697
1711
1698 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1712 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1699
1713
1700 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1714 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1701 calls. These were a leftover from the GTK 1.x days, and can cause
1715 calls. These were a leftover from the GTK 1.x days, and can cause
1702 problems in certain cases (after a report by John Hunter).
1716 problems in certain cases (after a report by John Hunter).
1703
1717
1704 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1718 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1705 os.getcwd() fails at init time. Thanks to patch from David Remahl
1719 os.getcwd() fails at init time. Thanks to patch from David Remahl
1706 <chmod007-AT-mac.com>.
1720 <chmod007-AT-mac.com>.
1707 (InteractiveShell.__init__): prevent certain special magics from
1721 (InteractiveShell.__init__): prevent certain special magics from
1708 being shadowed by aliases. Closes
1722 being shadowed by aliases. Closes
1709 http://www.scipy.net/roundup/ipython/issue41.
1723 http://www.scipy.net/roundup/ipython/issue41.
1710
1724
1711 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1725 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1712
1726
1713 * IPython/iplib.py (InteractiveShell.complete): Added new
1727 * IPython/iplib.py (InteractiveShell.complete): Added new
1714 top-level completion method to expose the completion mechanism
1728 top-level completion method to expose the completion mechanism
1715 beyond readline-based environments.
1729 beyond readline-based environments.
1716
1730
1717 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1731 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1718
1732
1719 * tools/ipsvnc (svnversion): fix svnversion capture.
1733 * tools/ipsvnc (svnversion): fix svnversion capture.
1720
1734
1721 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1735 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1722 attribute to self, which was missing. Before, it was set by a
1736 attribute to self, which was missing. Before, it was set by a
1723 routine which in certain cases wasn't being called, so the
1737 routine which in certain cases wasn't being called, so the
1724 instance could end up missing the attribute. This caused a crash.
1738 instance could end up missing the attribute. This caused a crash.
1725 Closes http://www.scipy.net/roundup/ipython/issue40.
1739 Closes http://www.scipy.net/roundup/ipython/issue40.
1726
1740
1727 2005-08-16 Fernando Perez <fperez@colorado.edu>
1741 2005-08-16 Fernando Perez <fperez@colorado.edu>
1728
1742
1729 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1743 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1730 contains non-string attribute. Closes
1744 contains non-string attribute. Closes
1731 http://www.scipy.net/roundup/ipython/issue38.
1745 http://www.scipy.net/roundup/ipython/issue38.
1732
1746
1733 2005-08-14 Fernando Perez <fperez@colorado.edu>
1747 2005-08-14 Fernando Perez <fperez@colorado.edu>
1734
1748
1735 * tools/ipsvnc: Minor improvements, to add changeset info.
1749 * tools/ipsvnc: Minor improvements, to add changeset info.
1736
1750
1737 2005-08-12 Fernando Perez <fperez@colorado.edu>
1751 2005-08-12 Fernando Perez <fperez@colorado.edu>
1738
1752
1739 * IPython/iplib.py (runsource): remove self.code_to_run_src
1753 * IPython/iplib.py (runsource): remove self.code_to_run_src
1740 attribute. I realized this is nothing more than
1754 attribute. I realized this is nothing more than
1741 '\n'.join(self.buffer), and having the same data in two different
1755 '\n'.join(self.buffer), and having the same data in two different
1742 places is just asking for synchronization bugs. This may impact
1756 places is just asking for synchronization bugs. This may impact
1743 people who have custom exception handlers, so I need to warn
1757 people who have custom exception handlers, so I need to warn
1744 ipython-dev about it (F. Mantegazza may use them).
1758 ipython-dev about it (F. Mantegazza may use them).
1745
1759
1746 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1760 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1747
1761
1748 * IPython/genutils.py: fix 2.2 compatibility (generators)
1762 * IPython/genutils.py: fix 2.2 compatibility (generators)
1749
1763
1750 2005-07-18 Fernando Perez <fperez@colorado.edu>
1764 2005-07-18 Fernando Perez <fperez@colorado.edu>
1751
1765
1752 * IPython/genutils.py (get_home_dir): fix to help users with
1766 * IPython/genutils.py (get_home_dir): fix to help users with
1753 invalid $HOME under win32.
1767 invalid $HOME under win32.
1754
1768
1755 2005-07-17 Fernando Perez <fperez@colorado.edu>
1769 2005-07-17 Fernando Perez <fperez@colorado.edu>
1756
1770
1757 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1771 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1758 some old hacks and clean up a bit other routines; code should be
1772 some old hacks and clean up a bit other routines; code should be
1759 simpler and a bit faster.
1773 simpler and a bit faster.
1760
1774
1761 * IPython/iplib.py (interact): removed some last-resort attempts
1775 * IPython/iplib.py (interact): removed some last-resort attempts
1762 to survive broken stdout/stderr. That code was only making it
1776 to survive broken stdout/stderr. That code was only making it
1763 harder to abstract out the i/o (necessary for gui integration),
1777 harder to abstract out the i/o (necessary for gui integration),
1764 and the crashes it could prevent were extremely rare in practice
1778 and the crashes it could prevent were extremely rare in practice
1765 (besides being fully user-induced in a pretty violent manner).
1779 (besides being fully user-induced in a pretty violent manner).
1766
1780
1767 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1781 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1768 Nothing major yet, but the code is simpler to read; this should
1782 Nothing major yet, but the code is simpler to read; this should
1769 make it easier to do more serious modifications in the future.
1783 make it easier to do more serious modifications in the future.
1770
1784
1771 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1785 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1772 which broke in .15 (thanks to a report by Ville).
1786 which broke in .15 (thanks to a report by Ville).
1773
1787
1774 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1788 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1775 be quite correct, I know next to nothing about unicode). This
1789 be quite correct, I know next to nothing about unicode). This
1776 will allow unicode strings to be used in prompts, amongst other
1790 will allow unicode strings to be used in prompts, amongst other
1777 cases. It also will prevent ipython from crashing when unicode
1791 cases. It also will prevent ipython from crashing when unicode
1778 shows up unexpectedly in many places. If ascii encoding fails, we
1792 shows up unexpectedly in many places. If ascii encoding fails, we
1779 assume utf_8. Currently the encoding is not a user-visible
1793 assume utf_8. Currently the encoding is not a user-visible
1780 setting, though it could be made so if there is demand for it.
1794 setting, though it could be made so if there is demand for it.
1781
1795
1782 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1796 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1783
1797
1784 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1798 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1785
1799
1786 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1800 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1787
1801
1788 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1802 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1789 code can work transparently for 2.2/2.3.
1803 code can work transparently for 2.2/2.3.
1790
1804
1791 2005-07-16 Fernando Perez <fperez@colorado.edu>
1805 2005-07-16 Fernando Perez <fperez@colorado.edu>
1792
1806
1793 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1807 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1794 out of the color scheme table used for coloring exception
1808 out of the color scheme table used for coloring exception
1795 tracebacks. This allows user code to add new schemes at runtime.
1809 tracebacks. This allows user code to add new schemes at runtime.
1796 This is a minimally modified version of the patch at
1810 This is a minimally modified version of the patch at
1797 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1811 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1798 for the contribution.
1812 for the contribution.
1799
1813
1800 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1814 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1801 slightly modified version of the patch in
1815 slightly modified version of the patch in
1802 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1816 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1803 to remove the previous try/except solution (which was costlier).
1817 to remove the previous try/except solution (which was costlier).
1804 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1818 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1805
1819
1806 2005-06-08 Fernando Perez <fperez@colorado.edu>
1820 2005-06-08 Fernando Perez <fperez@colorado.edu>
1807
1821
1808 * IPython/iplib.py (write/write_err): Add methods to abstract all
1822 * IPython/iplib.py (write/write_err): Add methods to abstract all
1809 I/O a bit more.
1823 I/O a bit more.
1810
1824
1811 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1825 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1812 warning, reported by Aric Hagberg, fix by JD Hunter.
1826 warning, reported by Aric Hagberg, fix by JD Hunter.
1813
1827
1814 2005-06-02 *** Released version 0.6.15
1828 2005-06-02 *** Released version 0.6.15
1815
1829
1816 2005-06-01 Fernando Perez <fperez@colorado.edu>
1830 2005-06-01 Fernando Perez <fperez@colorado.edu>
1817
1831
1818 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1832 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1819 tab-completion of filenames within open-quoted strings. Note that
1833 tab-completion of filenames within open-quoted strings. Note that
1820 this requires that in ~/.ipython/ipythonrc, users change the
1834 this requires that in ~/.ipython/ipythonrc, users change the
1821 readline delimiters configuration to read:
1835 readline delimiters configuration to read:
1822
1836
1823 readline_remove_delims -/~
1837 readline_remove_delims -/~
1824
1838
1825
1839
1826 2005-05-31 *** Released version 0.6.14
1840 2005-05-31 *** Released version 0.6.14
1827
1841
1828 2005-05-29 Fernando Perez <fperez@colorado.edu>
1842 2005-05-29 Fernando Perez <fperez@colorado.edu>
1829
1843
1830 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1844 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1831 with files not on the filesystem. Reported by Eliyahu Sandler
1845 with files not on the filesystem. Reported by Eliyahu Sandler
1832 <eli@gondolin.net>
1846 <eli@gondolin.net>
1833
1847
1834 2005-05-22 Fernando Perez <fperez@colorado.edu>
1848 2005-05-22 Fernando Perez <fperez@colorado.edu>
1835
1849
1836 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1850 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1837 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1851 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1838
1852
1839 2005-05-19 Fernando Perez <fperez@colorado.edu>
1853 2005-05-19 Fernando Perez <fperez@colorado.edu>
1840
1854
1841 * IPython/iplib.py (safe_execfile): close a file which could be
1855 * IPython/iplib.py (safe_execfile): close a file which could be
1842 left open (causing problems in win32, which locks open files).
1856 left open (causing problems in win32, which locks open files).
1843 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1857 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1844
1858
1845 2005-05-18 Fernando Perez <fperez@colorado.edu>
1859 2005-05-18 Fernando Perez <fperez@colorado.edu>
1846
1860
1847 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1861 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1848 keyword arguments correctly to safe_execfile().
1862 keyword arguments correctly to safe_execfile().
1849
1863
1850 2005-05-13 Fernando Perez <fperez@colorado.edu>
1864 2005-05-13 Fernando Perez <fperez@colorado.edu>
1851
1865
1852 * ipython.1: Added info about Qt to manpage, and threads warning
1866 * ipython.1: Added info about Qt to manpage, and threads warning
1853 to usage page (invoked with --help).
1867 to usage page (invoked with --help).
1854
1868
1855 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1869 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1856 new matcher (it goes at the end of the priority list) to do
1870 new matcher (it goes at the end of the priority list) to do
1857 tab-completion on named function arguments. Submitted by George
1871 tab-completion on named function arguments. Submitted by George
1858 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1872 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1859 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1873 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1860 for more details.
1874 for more details.
1861
1875
1862 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1876 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1863 SystemExit exceptions in the script being run. Thanks to a report
1877 SystemExit exceptions in the script being run. Thanks to a report
1864 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1878 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1865 producing very annoying behavior when running unit tests.
1879 producing very annoying behavior when running unit tests.
1866
1880
1867 2005-05-12 Fernando Perez <fperez@colorado.edu>
1881 2005-05-12 Fernando Perez <fperez@colorado.edu>
1868
1882
1869 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1883 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1870 which I'd broken (again) due to a changed regexp. In the process,
1884 which I'd broken (again) due to a changed regexp. In the process,
1871 added ';' as an escape to auto-quote the whole line without
1885 added ';' as an escape to auto-quote the whole line without
1872 splitting its arguments. Thanks to a report by Jerry McRae
1886 splitting its arguments. Thanks to a report by Jerry McRae
1873 <qrs0xyc02-AT-sneakemail.com>.
1887 <qrs0xyc02-AT-sneakemail.com>.
1874
1888
1875 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1889 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1876 possible crashes caused by a TokenError. Reported by Ed Schofield
1890 possible crashes caused by a TokenError. Reported by Ed Schofield
1877 <schofield-AT-ftw.at>.
1891 <schofield-AT-ftw.at>.
1878
1892
1879 2005-05-06 Fernando Perez <fperez@colorado.edu>
1893 2005-05-06 Fernando Perez <fperez@colorado.edu>
1880
1894
1881 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1895 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1882
1896
1883 2005-04-29 Fernando Perez <fperez@colorado.edu>
1897 2005-04-29 Fernando Perez <fperez@colorado.edu>
1884
1898
1885 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1899 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1886 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1900 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1887 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1901 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1888 which provides support for Qt interactive usage (similar to the
1902 which provides support for Qt interactive usage (similar to the
1889 existing one for WX and GTK). This had been often requested.
1903 existing one for WX and GTK). This had been often requested.
1890
1904
1891 2005-04-14 *** Released version 0.6.13
1905 2005-04-14 *** Released version 0.6.13
1892
1906
1893 2005-04-08 Fernando Perez <fperez@colorado.edu>
1907 2005-04-08 Fernando Perez <fperez@colorado.edu>
1894
1908
1895 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1909 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1896 from _ofind, which gets called on almost every input line. Now,
1910 from _ofind, which gets called on almost every input line. Now,
1897 we only try to get docstrings if they are actually going to be
1911 we only try to get docstrings if they are actually going to be
1898 used (the overhead of fetching unnecessary docstrings can be
1912 used (the overhead of fetching unnecessary docstrings can be
1899 noticeable for certain objects, such as Pyro proxies).
1913 noticeable for certain objects, such as Pyro proxies).
1900
1914
1901 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1915 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1902 for completers. For some reason I had been passing them the state
1916 for completers. For some reason I had been passing them the state
1903 variable, which completers never actually need, and was in
1917 variable, which completers never actually need, and was in
1904 conflict with the rlcompleter API. Custom completers ONLY need to
1918 conflict with the rlcompleter API. Custom completers ONLY need to
1905 take the text parameter.
1919 take the text parameter.
1906
1920
1907 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1921 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1908 work correctly in pysh. I've also moved all the logic which used
1922 work correctly in pysh. I've also moved all the logic which used
1909 to be in pysh.py here, which will prevent problems with future
1923 to be in pysh.py here, which will prevent problems with future
1910 upgrades. However, this time I must warn users to update their
1924 upgrades. However, this time I must warn users to update their
1911 pysh profile to include the line
1925 pysh profile to include the line
1912
1926
1913 import_all IPython.Extensions.InterpreterExec
1927 import_all IPython.Extensions.InterpreterExec
1914
1928
1915 because otherwise things won't work for them. They MUST also
1929 because otherwise things won't work for them. They MUST also
1916 delete pysh.py and the line
1930 delete pysh.py and the line
1917
1931
1918 execfile pysh.py
1932 execfile pysh.py
1919
1933
1920 from their ipythonrc-pysh.
1934 from their ipythonrc-pysh.
1921
1935
1922 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1936 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1923 robust in the face of objects whose dir() returns non-strings
1937 robust in the face of objects whose dir() returns non-strings
1924 (which it shouldn't, but some broken libs like ITK do). Thanks to
1938 (which it shouldn't, but some broken libs like ITK do). Thanks to
1925 a patch by John Hunter (implemented differently, though). Also
1939 a patch by John Hunter (implemented differently, though). Also
1926 minor improvements by using .extend instead of + on lists.
1940 minor improvements by using .extend instead of + on lists.
1927
1941
1928 * pysh.py:
1942 * pysh.py:
1929
1943
1930 2005-04-06 Fernando Perez <fperez@colorado.edu>
1944 2005-04-06 Fernando Perez <fperez@colorado.edu>
1931
1945
1932 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1946 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1933 by default, so that all users benefit from it. Those who don't
1947 by default, so that all users benefit from it. Those who don't
1934 want it can still turn it off.
1948 want it can still turn it off.
1935
1949
1936 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1950 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1937 config file, I'd forgotten about this, so users were getting it
1951 config file, I'd forgotten about this, so users were getting it
1938 off by default.
1952 off by default.
1939
1953
1940 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1954 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1941 consistency. Now magics can be called in multiline statements,
1955 consistency. Now magics can be called in multiline statements,
1942 and python variables can be expanded in magic calls via $var.
1956 and python variables can be expanded in magic calls via $var.
1943 This makes the magic system behave just like aliases or !system
1957 This makes the magic system behave just like aliases or !system
1944 calls.
1958 calls.
1945
1959
1946 2005-03-28 Fernando Perez <fperez@colorado.edu>
1960 2005-03-28 Fernando Perez <fperez@colorado.edu>
1947
1961
1948 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1962 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1949 expensive string additions for building command. Add support for
1963 expensive string additions for building command. Add support for
1950 trailing ';' when autocall is used.
1964 trailing ';' when autocall is used.
1951
1965
1952 2005-03-26 Fernando Perez <fperez@colorado.edu>
1966 2005-03-26 Fernando Perez <fperez@colorado.edu>
1953
1967
1954 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1968 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1955 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1969 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1956 ipython.el robust against prompts with any number of spaces
1970 ipython.el robust against prompts with any number of spaces
1957 (including 0) after the ':' character.
1971 (including 0) after the ':' character.
1958
1972
1959 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1973 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1960 continuation prompt, which misled users to think the line was
1974 continuation prompt, which misled users to think the line was
1961 already indented. Closes debian Bug#300847, reported to me by
1975 already indented. Closes debian Bug#300847, reported to me by
1962 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1976 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1963
1977
1964 2005-03-23 Fernando Perez <fperez@colorado.edu>
1978 2005-03-23 Fernando Perez <fperez@colorado.edu>
1965
1979
1966 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1980 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1967 properly aligned if they have embedded newlines.
1981 properly aligned if they have embedded newlines.
1968
1982
1969 * IPython/iplib.py (runlines): Add a public method to expose
1983 * IPython/iplib.py (runlines): Add a public method to expose
1970 IPython's code execution machinery, so that users can run strings
1984 IPython's code execution machinery, so that users can run strings
1971 as if they had been typed at the prompt interactively.
1985 as if they had been typed at the prompt interactively.
1972 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1986 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1973 methods which can call the system shell, but with python variable
1987 methods which can call the system shell, but with python variable
1974 expansion. The three such methods are: __IPYTHON__.system,
1988 expansion. The three such methods are: __IPYTHON__.system,
1975 .getoutput and .getoutputerror. These need to be documented in a
1989 .getoutput and .getoutputerror. These need to be documented in a
1976 'public API' section (to be written) of the manual.
1990 'public API' section (to be written) of the manual.
1977
1991
1978 2005-03-20 Fernando Perez <fperez@colorado.edu>
1992 2005-03-20 Fernando Perez <fperez@colorado.edu>
1979
1993
1980 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1994 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1981 for custom exception handling. This is quite powerful, and it
1995 for custom exception handling. This is quite powerful, and it
1982 allows for user-installable exception handlers which can trap
1996 allows for user-installable exception handlers which can trap
1983 custom exceptions at runtime and treat them separately from
1997 custom exceptions at runtime and treat them separately from
1984 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1998 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1985 Mantegazza <mantegazza-AT-ill.fr>.
1999 Mantegazza <mantegazza-AT-ill.fr>.
1986 (InteractiveShell.set_custom_completer): public API function to
2000 (InteractiveShell.set_custom_completer): public API function to
1987 add new completers at runtime.
2001 add new completers at runtime.
1988
2002
1989 2005-03-19 Fernando Perez <fperez@colorado.edu>
2003 2005-03-19 Fernando Perez <fperez@colorado.edu>
1990
2004
1991 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2005 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1992 allow objects which provide their docstrings via non-standard
2006 allow objects which provide their docstrings via non-standard
1993 mechanisms (like Pyro proxies) to still be inspected by ipython's
2007 mechanisms (like Pyro proxies) to still be inspected by ipython's
1994 ? system.
2008 ? system.
1995
2009
1996 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2010 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1997 automatic capture system. I tried quite hard to make it work
2011 automatic capture system. I tried quite hard to make it work
1998 reliably, and simply failed. I tried many combinations with the
2012 reliably, and simply failed. I tried many combinations with the
1999 subprocess module, but eventually nothing worked in all needed
2013 subprocess module, but eventually nothing worked in all needed
2000 cases (not blocking stdin for the child, duplicating stdout
2014 cases (not blocking stdin for the child, duplicating stdout
2001 without blocking, etc). The new %sc/%sx still do capture to these
2015 without blocking, etc). The new %sc/%sx still do capture to these
2002 magical list/string objects which make shell use much more
2016 magical list/string objects which make shell use much more
2003 conveninent, so not all is lost.
2017 conveninent, so not all is lost.
2004
2018
2005 XXX - FIX MANUAL for the change above!
2019 XXX - FIX MANUAL for the change above!
2006
2020
2007 (runsource): I copied code.py's runsource() into ipython to modify
2021 (runsource): I copied code.py's runsource() into ipython to modify
2008 it a bit. Now the code object and source to be executed are
2022 it a bit. Now the code object and source to be executed are
2009 stored in ipython. This makes this info accessible to third-party
2023 stored in ipython. This makes this info accessible to third-party
2010 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2024 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2011 Mantegazza <mantegazza-AT-ill.fr>.
2025 Mantegazza <mantegazza-AT-ill.fr>.
2012
2026
2013 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2027 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2014 history-search via readline (like C-p/C-n). I'd wanted this for a
2028 history-search via readline (like C-p/C-n). I'd wanted this for a
2015 long time, but only recently found out how to do it. For users
2029 long time, but only recently found out how to do it. For users
2016 who already have their ipythonrc files made and want this, just
2030 who already have their ipythonrc files made and want this, just
2017 add:
2031 add:
2018
2032
2019 readline_parse_and_bind "\e[A": history-search-backward
2033 readline_parse_and_bind "\e[A": history-search-backward
2020 readline_parse_and_bind "\e[B": history-search-forward
2034 readline_parse_and_bind "\e[B": history-search-forward
2021
2035
2022 2005-03-18 Fernando Perez <fperez@colorado.edu>
2036 2005-03-18 Fernando Perez <fperez@colorado.edu>
2023
2037
2024 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2038 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2025 LSString and SList classes which allow transparent conversions
2039 LSString and SList classes which allow transparent conversions
2026 between list mode and whitespace-separated string.
2040 between list mode and whitespace-separated string.
2027 (magic_r): Fix recursion problem in %r.
2041 (magic_r): Fix recursion problem in %r.
2028
2042
2029 * IPython/genutils.py (LSString): New class to be used for
2043 * IPython/genutils.py (LSString): New class to be used for
2030 automatic storage of the results of all alias/system calls in _o
2044 automatic storage of the results of all alias/system calls in _o
2031 and _e (stdout/err). These provide a .l/.list attribute which
2045 and _e (stdout/err). These provide a .l/.list attribute which
2032 does automatic splitting on newlines. This means that for most
2046 does automatic splitting on newlines. This means that for most
2033 uses, you'll never need to do capturing of output with %sc/%sx
2047 uses, you'll never need to do capturing of output with %sc/%sx
2034 anymore, since ipython keeps this always done for you. Note that
2048 anymore, since ipython keeps this always done for you. Note that
2035 only the LAST results are stored, the _o/e variables are
2049 only the LAST results are stored, the _o/e variables are
2036 overwritten on each call. If you need to save their contents
2050 overwritten on each call. If you need to save their contents
2037 further, simply bind them to any other name.
2051 further, simply bind them to any other name.
2038
2052
2039 2005-03-17 Fernando Perez <fperez@colorado.edu>
2053 2005-03-17 Fernando Perez <fperez@colorado.edu>
2040
2054
2041 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2055 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2042 prompt namespace handling.
2056 prompt namespace handling.
2043
2057
2044 2005-03-16 Fernando Perez <fperez@colorado.edu>
2058 2005-03-16 Fernando Perez <fperez@colorado.edu>
2045
2059
2046 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2060 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2047 classic prompts to be '>>> ' (final space was missing, and it
2061 classic prompts to be '>>> ' (final space was missing, and it
2048 trips the emacs python mode).
2062 trips the emacs python mode).
2049 (BasePrompt.__str__): Added safe support for dynamic prompt
2063 (BasePrompt.__str__): Added safe support for dynamic prompt
2050 strings. Now you can set your prompt string to be '$x', and the
2064 strings. Now you can set your prompt string to be '$x', and the
2051 value of x will be printed from your interactive namespace. The
2065 value of x will be printed from your interactive namespace. The
2052 interpolation syntax includes the full Itpl support, so
2066 interpolation syntax includes the full Itpl support, so
2053 ${foo()+x+bar()} is a valid prompt string now, and the function
2067 ${foo()+x+bar()} is a valid prompt string now, and the function
2054 calls will be made at runtime.
2068 calls will be made at runtime.
2055
2069
2056 2005-03-15 Fernando Perez <fperez@colorado.edu>
2070 2005-03-15 Fernando Perez <fperez@colorado.edu>
2057
2071
2058 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2072 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2059 avoid name clashes in pylab. %hist still works, it just forwards
2073 avoid name clashes in pylab. %hist still works, it just forwards
2060 the call to %history.
2074 the call to %history.
2061
2075
2062 2005-03-02 *** Released version 0.6.12
2076 2005-03-02 *** Released version 0.6.12
2063
2077
2064 2005-03-02 Fernando Perez <fperez@colorado.edu>
2078 2005-03-02 Fernando Perez <fperez@colorado.edu>
2065
2079
2066 * IPython/iplib.py (handle_magic): log magic calls properly as
2080 * IPython/iplib.py (handle_magic): log magic calls properly as
2067 ipmagic() function calls.
2081 ipmagic() function calls.
2068
2082
2069 * IPython/Magic.py (magic_time): Improved %time to support
2083 * IPython/Magic.py (magic_time): Improved %time to support
2070 statements and provide wall-clock as well as CPU time.
2084 statements and provide wall-clock as well as CPU time.
2071
2085
2072 2005-02-27 Fernando Perez <fperez@colorado.edu>
2086 2005-02-27 Fernando Perez <fperez@colorado.edu>
2073
2087
2074 * IPython/hooks.py: New hooks module, to expose user-modifiable
2088 * IPython/hooks.py: New hooks module, to expose user-modifiable
2075 IPython functionality in a clean manner. For now only the editor
2089 IPython functionality in a clean manner. For now only the editor
2076 hook is actually written, and other thigns which I intend to turn
2090 hook is actually written, and other thigns which I intend to turn
2077 into proper hooks aren't yet there. The display and prefilter
2091 into proper hooks aren't yet there. The display and prefilter
2078 stuff, for example, should be hooks. But at least now the
2092 stuff, for example, should be hooks. But at least now the
2079 framework is in place, and the rest can be moved here with more
2093 framework is in place, and the rest can be moved here with more
2080 time later. IPython had had a .hooks variable for a long time for
2094 time later. IPython had had a .hooks variable for a long time for
2081 this purpose, but I'd never actually used it for anything.
2095 this purpose, but I'd never actually used it for anything.
2082
2096
2083 2005-02-26 Fernando Perez <fperez@colorado.edu>
2097 2005-02-26 Fernando Perez <fperez@colorado.edu>
2084
2098
2085 * IPython/ipmaker.py (make_IPython): make the default ipython
2099 * IPython/ipmaker.py (make_IPython): make the default ipython
2086 directory be called _ipython under win32, to follow more the
2100 directory be called _ipython under win32, to follow more the
2087 naming peculiarities of that platform (where buggy software like
2101 naming peculiarities of that platform (where buggy software like
2088 Visual Sourcesafe breaks with .named directories). Reported by
2102 Visual Sourcesafe breaks with .named directories). Reported by
2089 Ville Vainio.
2103 Ville Vainio.
2090
2104
2091 2005-02-23 Fernando Perez <fperez@colorado.edu>
2105 2005-02-23 Fernando Perez <fperez@colorado.edu>
2092
2106
2093 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2107 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2094 auto_aliases for win32 which were causing problems. Users can
2108 auto_aliases for win32 which were causing problems. Users can
2095 define the ones they personally like.
2109 define the ones they personally like.
2096
2110
2097 2005-02-21 Fernando Perez <fperez@colorado.edu>
2111 2005-02-21 Fernando Perez <fperez@colorado.edu>
2098
2112
2099 * IPython/Magic.py (magic_time): new magic to time execution of
2113 * IPython/Magic.py (magic_time): new magic to time execution of
2100 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2114 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2101
2115
2102 2005-02-19 Fernando Perez <fperez@colorado.edu>
2116 2005-02-19 Fernando Perez <fperez@colorado.edu>
2103
2117
2104 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2118 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2105 into keys (for prompts, for example).
2119 into keys (for prompts, for example).
2106
2120
2107 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2121 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2108 prompts in case users want them. This introduces a small behavior
2122 prompts in case users want them. This introduces a small behavior
2109 change: ipython does not automatically add a space to all prompts
2123 change: ipython does not automatically add a space to all prompts
2110 anymore. To get the old prompts with a space, users should add it
2124 anymore. To get the old prompts with a space, users should add it
2111 manually to their ipythonrc file, so for example prompt_in1 should
2125 manually to their ipythonrc file, so for example prompt_in1 should
2112 now read 'In [\#]: ' instead of 'In [\#]:'.
2126 now read 'In [\#]: ' instead of 'In [\#]:'.
2113 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2127 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2114 file) to control left-padding of secondary prompts.
2128 file) to control left-padding of secondary prompts.
2115
2129
2116 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2130 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2117 the profiler can't be imported. Fix for Debian, which removed
2131 the profiler can't be imported. Fix for Debian, which removed
2118 profile.py because of License issues. I applied a slightly
2132 profile.py because of License issues. I applied a slightly
2119 modified version of the original Debian patch at
2133 modified version of the original Debian patch at
2120 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2134 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2121
2135
2122 2005-02-17 Fernando Perez <fperez@colorado.edu>
2136 2005-02-17 Fernando Perez <fperez@colorado.edu>
2123
2137
2124 * IPython/genutils.py (native_line_ends): Fix bug which would
2138 * IPython/genutils.py (native_line_ends): Fix bug which would
2125 cause improper line-ends under win32 b/c I was not opening files
2139 cause improper line-ends under win32 b/c I was not opening files
2126 in binary mode. Bug report and fix thanks to Ville.
2140 in binary mode. Bug report and fix thanks to Ville.
2127
2141
2128 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2142 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2129 trying to catch spurious foo[1] autocalls. My fix actually broke
2143 trying to catch spurious foo[1] autocalls. My fix actually broke
2130 ',/' autoquote/call with explicit escape (bad regexp).
2144 ',/' autoquote/call with explicit escape (bad regexp).
2131
2145
2132 2005-02-15 *** Released version 0.6.11
2146 2005-02-15 *** Released version 0.6.11
2133
2147
2134 2005-02-14 Fernando Perez <fperez@colorado.edu>
2148 2005-02-14 Fernando Perez <fperez@colorado.edu>
2135
2149
2136 * IPython/background_jobs.py: New background job management
2150 * IPython/background_jobs.py: New background job management
2137 subsystem. This is implemented via a new set of classes, and
2151 subsystem. This is implemented via a new set of classes, and
2138 IPython now provides a builtin 'jobs' object for background job
2152 IPython now provides a builtin 'jobs' object for background job
2139 execution. A convenience %bg magic serves as a lightweight
2153 execution. A convenience %bg magic serves as a lightweight
2140 frontend for starting the more common type of calls. This was
2154 frontend for starting the more common type of calls. This was
2141 inspired by discussions with B. Granger and the BackgroundCommand
2155 inspired by discussions with B. Granger and the BackgroundCommand
2142 class described in the book Python Scripting for Computational
2156 class described in the book Python Scripting for Computational
2143 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2157 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2144 (although ultimately no code from this text was used, as IPython's
2158 (although ultimately no code from this text was used, as IPython's
2145 system is a separate implementation).
2159 system is a separate implementation).
2146
2160
2147 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2161 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2148 to control the completion of single/double underscore names
2162 to control the completion of single/double underscore names
2149 separately. As documented in the example ipytonrc file, the
2163 separately. As documented in the example ipytonrc file, the
2150 readline_omit__names variable can now be set to 2, to omit even
2164 readline_omit__names variable can now be set to 2, to omit even
2151 single underscore names. Thanks to a patch by Brian Wong
2165 single underscore names. Thanks to a patch by Brian Wong
2152 <BrianWong-AT-AirgoNetworks.Com>.
2166 <BrianWong-AT-AirgoNetworks.Com>.
2153 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2167 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2154 be autocalled as foo([1]) if foo were callable. A problem for
2168 be autocalled as foo([1]) if foo were callable. A problem for
2155 things which are both callable and implement __getitem__.
2169 things which are both callable and implement __getitem__.
2156 (init_readline): Fix autoindentation for win32. Thanks to a patch
2170 (init_readline): Fix autoindentation for win32. Thanks to a patch
2157 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2171 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2158
2172
2159 2005-02-12 Fernando Perez <fperez@colorado.edu>
2173 2005-02-12 Fernando Perez <fperez@colorado.edu>
2160
2174
2161 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2175 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2162 which I had written long ago to sort out user error messages which
2176 which I had written long ago to sort out user error messages which
2163 may occur during startup. This seemed like a good idea initially,
2177 may occur during startup. This seemed like a good idea initially,
2164 but it has proven a disaster in retrospect. I don't want to
2178 but it has proven a disaster in retrospect. I don't want to
2165 change much code for now, so my fix is to set the internal 'debug'
2179 change much code for now, so my fix is to set the internal 'debug'
2166 flag to true everywhere, whose only job was precisely to control
2180 flag to true everywhere, whose only job was precisely to control
2167 this subsystem. This closes issue 28 (as well as avoiding all
2181 this subsystem. This closes issue 28 (as well as avoiding all
2168 sorts of strange hangups which occur from time to time).
2182 sorts of strange hangups which occur from time to time).
2169
2183
2170 2005-02-07 Fernando Perez <fperez@colorado.edu>
2184 2005-02-07 Fernando Perez <fperez@colorado.edu>
2171
2185
2172 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2186 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2173 previous call produced a syntax error.
2187 previous call produced a syntax error.
2174
2188
2175 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2189 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2176 classes without constructor.
2190 classes without constructor.
2177
2191
2178 2005-02-06 Fernando Perez <fperez@colorado.edu>
2192 2005-02-06 Fernando Perez <fperez@colorado.edu>
2179
2193
2180 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2194 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2181 completions with the results of each matcher, so we return results
2195 completions with the results of each matcher, so we return results
2182 to the user from all namespaces. This breaks with ipython
2196 to the user from all namespaces. This breaks with ipython
2183 tradition, but I think it's a nicer behavior. Now you get all
2197 tradition, but I think it's a nicer behavior. Now you get all
2184 possible completions listed, from all possible namespaces (python,
2198 possible completions listed, from all possible namespaces (python,
2185 filesystem, magics...) After a request by John Hunter
2199 filesystem, magics...) After a request by John Hunter
2186 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2200 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2187
2201
2188 2005-02-05 Fernando Perez <fperez@colorado.edu>
2202 2005-02-05 Fernando Perez <fperez@colorado.edu>
2189
2203
2190 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2204 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2191 the call had quote characters in it (the quotes were stripped).
2205 the call had quote characters in it (the quotes were stripped).
2192
2206
2193 2005-01-31 Fernando Perez <fperez@colorado.edu>
2207 2005-01-31 Fernando Perez <fperez@colorado.edu>
2194
2208
2195 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2209 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2196 Itpl.itpl() to make the code more robust against psyco
2210 Itpl.itpl() to make the code more robust against psyco
2197 optimizations.
2211 optimizations.
2198
2212
2199 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2213 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2200 of causing an exception. Quicker, cleaner.
2214 of causing an exception. Quicker, cleaner.
2201
2215
2202 2005-01-28 Fernando Perez <fperez@colorado.edu>
2216 2005-01-28 Fernando Perez <fperez@colorado.edu>
2203
2217
2204 * scripts/ipython_win_post_install.py (install): hardcode
2218 * scripts/ipython_win_post_install.py (install): hardcode
2205 sys.prefix+'python.exe' as the executable path. It turns out that
2219 sys.prefix+'python.exe' as the executable path. It turns out that
2206 during the post-installation run, sys.executable resolves to the
2220 during the post-installation run, sys.executable resolves to the
2207 name of the binary installer! I should report this as a distutils
2221 name of the binary installer! I should report this as a distutils
2208 bug, I think. I updated the .10 release with this tiny fix, to
2222 bug, I think. I updated the .10 release with this tiny fix, to
2209 avoid annoying the lists further.
2223 avoid annoying the lists further.
2210
2224
2211 2005-01-27 *** Released version 0.6.10
2225 2005-01-27 *** Released version 0.6.10
2212
2226
2213 2005-01-27 Fernando Perez <fperez@colorado.edu>
2227 2005-01-27 Fernando Perez <fperez@colorado.edu>
2214
2228
2215 * IPython/numutils.py (norm): Added 'inf' as optional name for
2229 * IPython/numutils.py (norm): Added 'inf' as optional name for
2216 L-infinity norm, included references to mathworld.com for vector
2230 L-infinity norm, included references to mathworld.com for vector
2217 norm definitions.
2231 norm definitions.
2218 (amin/amax): added amin/amax for array min/max. Similar to what
2232 (amin/amax): added amin/amax for array min/max. Similar to what
2219 pylab ships with after the recent reorganization of names.
2233 pylab ships with after the recent reorganization of names.
2220 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2234 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2221
2235
2222 * ipython.el: committed Alex's recent fixes and improvements.
2236 * ipython.el: committed Alex's recent fixes and improvements.
2223 Tested with python-mode from CVS, and it looks excellent. Since
2237 Tested with python-mode from CVS, and it looks excellent. Since
2224 python-mode hasn't released anything in a while, I'm temporarily
2238 python-mode hasn't released anything in a while, I'm temporarily
2225 putting a copy of today's CVS (v 4.70) of python-mode in:
2239 putting a copy of today's CVS (v 4.70) of python-mode in:
2226 http://ipython.scipy.org/tmp/python-mode.el
2240 http://ipython.scipy.org/tmp/python-mode.el
2227
2241
2228 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2242 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2229 sys.executable for the executable name, instead of assuming it's
2243 sys.executable for the executable name, instead of assuming it's
2230 called 'python.exe' (the post-installer would have produced broken
2244 called 'python.exe' (the post-installer would have produced broken
2231 setups on systems with a differently named python binary).
2245 setups on systems with a differently named python binary).
2232
2246
2233 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2247 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2234 references to os.linesep, to make the code more
2248 references to os.linesep, to make the code more
2235 platform-independent. This is also part of the win32 coloring
2249 platform-independent. This is also part of the win32 coloring
2236 fixes.
2250 fixes.
2237
2251
2238 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2252 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2239 lines, which actually cause coloring bugs because the length of
2253 lines, which actually cause coloring bugs because the length of
2240 the line is very difficult to correctly compute with embedded
2254 the line is very difficult to correctly compute with embedded
2241 escapes. This was the source of all the coloring problems under
2255 escapes. This was the source of all the coloring problems under
2242 Win32. I think that _finally_, Win32 users have a properly
2256 Win32. I think that _finally_, Win32 users have a properly
2243 working ipython in all respects. This would never have happened
2257 working ipython in all respects. This would never have happened
2244 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2258 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2245
2259
2246 2005-01-26 *** Released version 0.6.9
2260 2005-01-26 *** Released version 0.6.9
2247
2261
2248 2005-01-25 Fernando Perez <fperez@colorado.edu>
2262 2005-01-25 Fernando Perez <fperez@colorado.edu>
2249
2263
2250 * setup.py: finally, we have a true Windows installer, thanks to
2264 * setup.py: finally, we have a true Windows installer, thanks to
2251 the excellent work of Viktor Ransmayr
2265 the excellent work of Viktor Ransmayr
2252 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2266 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2253 Windows users. The setup routine is quite a bit cleaner thanks to
2267 Windows users. The setup routine is quite a bit cleaner thanks to
2254 this, and the post-install script uses the proper functions to
2268 this, and the post-install script uses the proper functions to
2255 allow a clean de-installation using the standard Windows Control
2269 allow a clean de-installation using the standard Windows Control
2256 Panel.
2270 Panel.
2257
2271
2258 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2272 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2259 environment variable under all OSes (including win32) if
2273 environment variable under all OSes (including win32) if
2260 available. This will give consistency to win32 users who have set
2274 available. This will give consistency to win32 users who have set
2261 this variable for any reason. If os.environ['HOME'] fails, the
2275 this variable for any reason. If os.environ['HOME'] fails, the
2262 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2276 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2263
2277
2264 2005-01-24 Fernando Perez <fperez@colorado.edu>
2278 2005-01-24 Fernando Perez <fperez@colorado.edu>
2265
2279
2266 * IPython/numutils.py (empty_like): add empty_like(), similar to
2280 * IPython/numutils.py (empty_like): add empty_like(), similar to
2267 zeros_like() but taking advantage of the new empty() Numeric routine.
2281 zeros_like() but taking advantage of the new empty() Numeric routine.
2268
2282
2269 2005-01-23 *** Released version 0.6.8
2283 2005-01-23 *** Released version 0.6.8
2270
2284
2271 2005-01-22 Fernando Perez <fperez@colorado.edu>
2285 2005-01-22 Fernando Perez <fperez@colorado.edu>
2272
2286
2273 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2287 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2274 automatic show() calls. After discussing things with JDH, it
2288 automatic show() calls. After discussing things with JDH, it
2275 turns out there are too many corner cases where this can go wrong.
2289 turns out there are too many corner cases where this can go wrong.
2276 It's best not to try to be 'too smart', and simply have ipython
2290 It's best not to try to be 'too smart', and simply have ipython
2277 reproduce as much as possible the default behavior of a normal
2291 reproduce as much as possible the default behavior of a normal
2278 python shell.
2292 python shell.
2279
2293
2280 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2294 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2281 line-splitting regexp and _prefilter() to avoid calling getattr()
2295 line-splitting regexp and _prefilter() to avoid calling getattr()
2282 on assignments. This closes
2296 on assignments. This closes
2283 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2297 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2284 readline uses getattr(), so a simple <TAB> keypress is still
2298 readline uses getattr(), so a simple <TAB> keypress is still
2285 enough to trigger getattr() calls on an object.
2299 enough to trigger getattr() calls on an object.
2286
2300
2287 2005-01-21 Fernando Perez <fperez@colorado.edu>
2301 2005-01-21 Fernando Perez <fperez@colorado.edu>
2288
2302
2289 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2303 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2290 docstring under pylab so it doesn't mask the original.
2304 docstring under pylab so it doesn't mask the original.
2291
2305
2292 2005-01-21 *** Released version 0.6.7
2306 2005-01-21 *** Released version 0.6.7
2293
2307
2294 2005-01-21 Fernando Perez <fperez@colorado.edu>
2308 2005-01-21 Fernando Perez <fperez@colorado.edu>
2295
2309
2296 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2310 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2297 signal handling for win32 users in multithreaded mode.
2311 signal handling for win32 users in multithreaded mode.
2298
2312
2299 2005-01-17 Fernando Perez <fperez@colorado.edu>
2313 2005-01-17 Fernando Perez <fperez@colorado.edu>
2300
2314
2301 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2315 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2302 instances with no __init__. After a crash report by Norbert Nemec
2316 instances with no __init__. After a crash report by Norbert Nemec
2303 <Norbert-AT-nemec-online.de>.
2317 <Norbert-AT-nemec-online.de>.
2304
2318
2305 2005-01-14 Fernando Perez <fperez@colorado.edu>
2319 2005-01-14 Fernando Perez <fperez@colorado.edu>
2306
2320
2307 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2321 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2308 names for verbose exceptions, when multiple dotted names and the
2322 names for verbose exceptions, when multiple dotted names and the
2309 'parent' object were present on the same line.
2323 'parent' object were present on the same line.
2310
2324
2311 2005-01-11 Fernando Perez <fperez@colorado.edu>
2325 2005-01-11 Fernando Perez <fperez@colorado.edu>
2312
2326
2313 * IPython/genutils.py (flag_calls): new utility to trap and flag
2327 * IPython/genutils.py (flag_calls): new utility to trap and flag
2314 calls in functions. I need it to clean up matplotlib support.
2328 calls in functions. I need it to clean up matplotlib support.
2315 Also removed some deprecated code in genutils.
2329 Also removed some deprecated code in genutils.
2316
2330
2317 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2331 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2318 that matplotlib scripts called with %run, which don't call show()
2332 that matplotlib scripts called with %run, which don't call show()
2319 themselves, still have their plotting windows open.
2333 themselves, still have their plotting windows open.
2320
2334
2321 2005-01-05 Fernando Perez <fperez@colorado.edu>
2335 2005-01-05 Fernando Perez <fperez@colorado.edu>
2322
2336
2323 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2337 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2324 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2338 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2325
2339
2326 2004-12-19 Fernando Perez <fperez@colorado.edu>
2340 2004-12-19 Fernando Perez <fperez@colorado.edu>
2327
2341
2328 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2342 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2329 parent_runcode, which was an eyesore. The same result can be
2343 parent_runcode, which was an eyesore. The same result can be
2330 obtained with Python's regular superclass mechanisms.
2344 obtained with Python's regular superclass mechanisms.
2331
2345
2332 2004-12-17 Fernando Perez <fperez@colorado.edu>
2346 2004-12-17 Fernando Perez <fperez@colorado.edu>
2333
2347
2334 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2348 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2335 reported by Prabhu.
2349 reported by Prabhu.
2336 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2350 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2337 sys.stderr) instead of explicitly calling sys.stderr. This helps
2351 sys.stderr) instead of explicitly calling sys.stderr. This helps
2338 maintain our I/O abstractions clean, for future GUI embeddings.
2352 maintain our I/O abstractions clean, for future GUI embeddings.
2339
2353
2340 * IPython/genutils.py (info): added new utility for sys.stderr
2354 * IPython/genutils.py (info): added new utility for sys.stderr
2341 unified info message handling (thin wrapper around warn()).
2355 unified info message handling (thin wrapper around warn()).
2342
2356
2343 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2357 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2344 composite (dotted) names on verbose exceptions.
2358 composite (dotted) names on verbose exceptions.
2345 (VerboseTB.nullrepr): harden against another kind of errors which
2359 (VerboseTB.nullrepr): harden against another kind of errors which
2346 Python's inspect module can trigger, and which were crashing
2360 Python's inspect module can trigger, and which were crashing
2347 IPython. Thanks to a report by Marco Lombardi
2361 IPython. Thanks to a report by Marco Lombardi
2348 <mlombard-AT-ma010192.hq.eso.org>.
2362 <mlombard-AT-ma010192.hq.eso.org>.
2349
2363
2350 2004-12-13 *** Released version 0.6.6
2364 2004-12-13 *** Released version 0.6.6
2351
2365
2352 2004-12-12 Fernando Perez <fperez@colorado.edu>
2366 2004-12-12 Fernando Perez <fperez@colorado.edu>
2353
2367
2354 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2368 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2355 generated by pygtk upon initialization if it was built without
2369 generated by pygtk upon initialization if it was built without
2356 threads (for matplotlib users). After a crash reported by
2370 threads (for matplotlib users). After a crash reported by
2357 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2371 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2358
2372
2359 * IPython/ipmaker.py (make_IPython): fix small bug in the
2373 * IPython/ipmaker.py (make_IPython): fix small bug in the
2360 import_some parameter for multiple imports.
2374 import_some parameter for multiple imports.
2361
2375
2362 * IPython/iplib.py (ipmagic): simplified the interface of
2376 * IPython/iplib.py (ipmagic): simplified the interface of
2363 ipmagic() to take a single string argument, just as it would be
2377 ipmagic() to take a single string argument, just as it would be
2364 typed at the IPython cmd line.
2378 typed at the IPython cmd line.
2365 (ipalias): Added new ipalias() with an interface identical to
2379 (ipalias): Added new ipalias() with an interface identical to
2366 ipmagic(). This completes exposing a pure python interface to the
2380 ipmagic(). This completes exposing a pure python interface to the
2367 alias and magic system, which can be used in loops or more complex
2381 alias and magic system, which can be used in loops or more complex
2368 code where IPython's automatic line mangling is not active.
2382 code where IPython's automatic line mangling is not active.
2369
2383
2370 * IPython/genutils.py (timing): changed interface of timing to
2384 * IPython/genutils.py (timing): changed interface of timing to
2371 simply run code once, which is the most common case. timings()
2385 simply run code once, which is the most common case. timings()
2372 remains unchanged, for the cases where you want multiple runs.
2386 remains unchanged, for the cases where you want multiple runs.
2373
2387
2374 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2388 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2375 bug where Python2.2 crashes with exec'ing code which does not end
2389 bug where Python2.2 crashes with exec'ing code which does not end
2376 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2390 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2377 before.
2391 before.
2378
2392
2379 2004-12-10 Fernando Perez <fperez@colorado.edu>
2393 2004-12-10 Fernando Perez <fperez@colorado.edu>
2380
2394
2381 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2395 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2382 -t to -T, to accomodate the new -t flag in %run (the %run and
2396 -t to -T, to accomodate the new -t flag in %run (the %run and
2383 %prun options are kind of intermixed, and it's not easy to change
2397 %prun options are kind of intermixed, and it's not easy to change
2384 this with the limitations of python's getopt).
2398 this with the limitations of python's getopt).
2385
2399
2386 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2400 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2387 the execution of scripts. It's not as fine-tuned as timeit.py,
2401 the execution of scripts. It's not as fine-tuned as timeit.py,
2388 but it works from inside ipython (and under 2.2, which lacks
2402 but it works from inside ipython (and under 2.2, which lacks
2389 timeit.py). Optionally a number of runs > 1 can be given for
2403 timeit.py). Optionally a number of runs > 1 can be given for
2390 timing very short-running code.
2404 timing very short-running code.
2391
2405
2392 * IPython/genutils.py (uniq_stable): new routine which returns a
2406 * IPython/genutils.py (uniq_stable): new routine which returns a
2393 list of unique elements in any iterable, but in stable order of
2407 list of unique elements in any iterable, but in stable order of
2394 appearance. I needed this for the ultraTB fixes, and it's a handy
2408 appearance. I needed this for the ultraTB fixes, and it's a handy
2395 utility.
2409 utility.
2396
2410
2397 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2411 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2398 dotted names in Verbose exceptions. This had been broken since
2412 dotted names in Verbose exceptions. This had been broken since
2399 the very start, now x.y will properly be printed in a Verbose
2413 the very start, now x.y will properly be printed in a Verbose
2400 traceback, instead of x being shown and y appearing always as an
2414 traceback, instead of x being shown and y appearing always as an
2401 'undefined global'. Getting this to work was a bit tricky,
2415 'undefined global'. Getting this to work was a bit tricky,
2402 because by default python tokenizers are stateless. Saved by
2416 because by default python tokenizers are stateless. Saved by
2403 python's ability to easily add a bit of state to an arbitrary
2417 python's ability to easily add a bit of state to an arbitrary
2404 function (without needing to build a full-blown callable object).
2418 function (without needing to build a full-blown callable object).
2405
2419
2406 Also big cleanup of this code, which had horrendous runtime
2420 Also big cleanup of this code, which had horrendous runtime
2407 lookups of zillions of attributes for colorization. Moved all
2421 lookups of zillions of attributes for colorization. Moved all
2408 this code into a few templates, which make it cleaner and quicker.
2422 this code into a few templates, which make it cleaner and quicker.
2409
2423
2410 Printout quality was also improved for Verbose exceptions: one
2424 Printout quality was also improved for Verbose exceptions: one
2411 variable per line, and memory addresses are printed (this can be
2425 variable per line, and memory addresses are printed (this can be
2412 quite handy in nasty debugging situations, which is what Verbose
2426 quite handy in nasty debugging situations, which is what Verbose
2413 is for).
2427 is for).
2414
2428
2415 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2429 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2416 the command line as scripts to be loaded by embedded instances.
2430 the command line as scripts to be loaded by embedded instances.
2417 Doing so has the potential for an infinite recursion if there are
2431 Doing so has the potential for an infinite recursion if there are
2418 exceptions thrown in the process. This fixes a strange crash
2432 exceptions thrown in the process. This fixes a strange crash
2419 reported by Philippe MULLER <muller-AT-irit.fr>.
2433 reported by Philippe MULLER <muller-AT-irit.fr>.
2420
2434
2421 2004-12-09 Fernando Perez <fperez@colorado.edu>
2435 2004-12-09 Fernando Perez <fperez@colorado.edu>
2422
2436
2423 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2437 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2424 to reflect new names in matplotlib, which now expose the
2438 to reflect new names in matplotlib, which now expose the
2425 matlab-compatible interface via a pylab module instead of the
2439 matlab-compatible interface via a pylab module instead of the
2426 'matlab' name. The new code is backwards compatible, so users of
2440 'matlab' name. The new code is backwards compatible, so users of
2427 all matplotlib versions are OK. Patch by J. Hunter.
2441 all matplotlib versions are OK. Patch by J. Hunter.
2428
2442
2429 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2443 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2430 of __init__ docstrings for instances (class docstrings are already
2444 of __init__ docstrings for instances (class docstrings are already
2431 automatically printed). Instances with customized docstrings
2445 automatically printed). Instances with customized docstrings
2432 (indep. of the class) are also recognized and all 3 separate
2446 (indep. of the class) are also recognized and all 3 separate
2433 docstrings are printed (instance, class, constructor). After some
2447 docstrings are printed (instance, class, constructor). After some
2434 comments/suggestions by J. Hunter.
2448 comments/suggestions by J. Hunter.
2435
2449
2436 2004-12-05 Fernando Perez <fperez@colorado.edu>
2450 2004-12-05 Fernando Perez <fperez@colorado.edu>
2437
2451
2438 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2452 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2439 warnings when tab-completion fails and triggers an exception.
2453 warnings when tab-completion fails and triggers an exception.
2440
2454
2441 2004-12-03 Fernando Perez <fperez@colorado.edu>
2455 2004-12-03 Fernando Perez <fperez@colorado.edu>
2442
2456
2443 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2457 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2444 be triggered when using 'run -p'. An incorrect option flag was
2458 be triggered when using 'run -p'. An incorrect option flag was
2445 being set ('d' instead of 'D').
2459 being set ('d' instead of 'D').
2446 (manpage): fix missing escaped \- sign.
2460 (manpage): fix missing escaped \- sign.
2447
2461
2448 2004-11-30 *** Released version 0.6.5
2462 2004-11-30 *** Released version 0.6.5
2449
2463
2450 2004-11-30 Fernando Perez <fperez@colorado.edu>
2464 2004-11-30 Fernando Perez <fperez@colorado.edu>
2451
2465
2452 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2466 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2453 setting with -d option.
2467 setting with -d option.
2454
2468
2455 * setup.py (docfiles): Fix problem where the doc glob I was using
2469 * setup.py (docfiles): Fix problem where the doc glob I was using
2456 was COMPLETELY BROKEN. It was giving the right files by pure
2470 was COMPLETELY BROKEN. It was giving the right files by pure
2457 accident, but failed once I tried to include ipython.el. Note:
2471 accident, but failed once I tried to include ipython.el. Note:
2458 glob() does NOT allow you to do exclusion on multiple endings!
2472 glob() does NOT allow you to do exclusion on multiple endings!
2459
2473
2460 2004-11-29 Fernando Perez <fperez@colorado.edu>
2474 2004-11-29 Fernando Perez <fperez@colorado.edu>
2461
2475
2462 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2476 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2463 the manpage as the source. Better formatting & consistency.
2477 the manpage as the source. Better formatting & consistency.
2464
2478
2465 * IPython/Magic.py (magic_run): Added new -d option, to run
2479 * IPython/Magic.py (magic_run): Added new -d option, to run
2466 scripts under the control of the python pdb debugger. Note that
2480 scripts under the control of the python pdb debugger. Note that
2467 this required changing the %prun option -d to -D, to avoid a clash
2481 this required changing the %prun option -d to -D, to avoid a clash
2468 (since %run must pass options to %prun, and getopt is too dumb to
2482 (since %run must pass options to %prun, and getopt is too dumb to
2469 handle options with string values with embedded spaces). Thanks
2483 handle options with string values with embedded spaces). Thanks
2470 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2484 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2471 (magic_who_ls): added type matching to %who and %whos, so that one
2485 (magic_who_ls): added type matching to %who and %whos, so that one
2472 can filter their output to only include variables of certain
2486 can filter their output to only include variables of certain
2473 types. Another suggestion by Matthew.
2487 types. Another suggestion by Matthew.
2474 (magic_whos): Added memory summaries in kb and Mb for arrays.
2488 (magic_whos): Added memory summaries in kb and Mb for arrays.
2475 (magic_who): Improve formatting (break lines every 9 vars).
2489 (magic_who): Improve formatting (break lines every 9 vars).
2476
2490
2477 2004-11-28 Fernando Perez <fperez@colorado.edu>
2491 2004-11-28 Fernando Perez <fperez@colorado.edu>
2478
2492
2479 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2493 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2480 cache when empty lines were present.
2494 cache when empty lines were present.
2481
2495
2482 2004-11-24 Fernando Perez <fperez@colorado.edu>
2496 2004-11-24 Fernando Perez <fperez@colorado.edu>
2483
2497
2484 * IPython/usage.py (__doc__): document the re-activated threading
2498 * IPython/usage.py (__doc__): document the re-activated threading
2485 options for WX and GTK.
2499 options for WX and GTK.
2486
2500
2487 2004-11-23 Fernando Perez <fperez@colorado.edu>
2501 2004-11-23 Fernando Perez <fperez@colorado.edu>
2488
2502
2489 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2503 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2490 the -wthread and -gthread options, along with a new -tk one to try
2504 the -wthread and -gthread options, along with a new -tk one to try
2491 and coordinate Tk threading with wx/gtk. The tk support is very
2505 and coordinate Tk threading with wx/gtk. The tk support is very
2492 platform dependent, since it seems to require Tcl and Tk to be
2506 platform dependent, since it seems to require Tcl and Tk to be
2493 built with threads (Fedora1/2 appears NOT to have it, but in
2507 built with threads (Fedora1/2 appears NOT to have it, but in
2494 Prabhu's Debian boxes it works OK). But even with some Tk
2508 Prabhu's Debian boxes it works OK). But even with some Tk
2495 limitations, this is a great improvement.
2509 limitations, this is a great improvement.
2496
2510
2497 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2511 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2498 info in user prompts. Patch by Prabhu.
2512 info in user prompts. Patch by Prabhu.
2499
2513
2500 2004-11-18 Fernando Perez <fperez@colorado.edu>
2514 2004-11-18 Fernando Perez <fperez@colorado.edu>
2501
2515
2502 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2516 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2503 EOFErrors and bail, to avoid infinite loops if a non-terminating
2517 EOFErrors and bail, to avoid infinite loops if a non-terminating
2504 file is fed into ipython. Patch submitted in issue 19 by user,
2518 file is fed into ipython. Patch submitted in issue 19 by user,
2505 many thanks.
2519 many thanks.
2506
2520
2507 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2521 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2508 autoquote/parens in continuation prompts, which can cause lots of
2522 autoquote/parens in continuation prompts, which can cause lots of
2509 problems. Closes roundup issue 20.
2523 problems. Closes roundup issue 20.
2510
2524
2511 2004-11-17 Fernando Perez <fperez@colorado.edu>
2525 2004-11-17 Fernando Perez <fperez@colorado.edu>
2512
2526
2513 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2527 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2514 reported as debian bug #280505. I'm not sure my local changelog
2528 reported as debian bug #280505. I'm not sure my local changelog
2515 entry has the proper debian format (Jack?).
2529 entry has the proper debian format (Jack?).
2516
2530
2517 2004-11-08 *** Released version 0.6.4
2531 2004-11-08 *** Released version 0.6.4
2518
2532
2519 2004-11-08 Fernando Perez <fperez@colorado.edu>
2533 2004-11-08 Fernando Perez <fperez@colorado.edu>
2520
2534
2521 * IPython/iplib.py (init_readline): Fix exit message for Windows
2535 * IPython/iplib.py (init_readline): Fix exit message for Windows
2522 when readline is active. Thanks to a report by Eric Jones
2536 when readline is active. Thanks to a report by Eric Jones
2523 <eric-AT-enthought.com>.
2537 <eric-AT-enthought.com>.
2524
2538
2525 2004-11-07 Fernando Perez <fperez@colorado.edu>
2539 2004-11-07 Fernando Perez <fperez@colorado.edu>
2526
2540
2527 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2541 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2528 sometimes seen by win2k/cygwin users.
2542 sometimes seen by win2k/cygwin users.
2529
2543
2530 2004-11-06 Fernando Perez <fperez@colorado.edu>
2544 2004-11-06 Fernando Perez <fperez@colorado.edu>
2531
2545
2532 * IPython/iplib.py (interact): Change the handling of %Exit from
2546 * IPython/iplib.py (interact): Change the handling of %Exit from
2533 trying to propagate a SystemExit to an internal ipython flag.
2547 trying to propagate a SystemExit to an internal ipython flag.
2534 This is less elegant than using Python's exception mechanism, but
2548 This is less elegant than using Python's exception mechanism, but
2535 I can't get that to work reliably with threads, so under -pylab
2549 I can't get that to work reliably with threads, so under -pylab
2536 %Exit was hanging IPython. Cross-thread exception handling is
2550 %Exit was hanging IPython. Cross-thread exception handling is
2537 really a bitch. Thaks to a bug report by Stephen Walton
2551 really a bitch. Thaks to a bug report by Stephen Walton
2538 <stephen.walton-AT-csun.edu>.
2552 <stephen.walton-AT-csun.edu>.
2539
2553
2540 2004-11-04 Fernando Perez <fperez@colorado.edu>
2554 2004-11-04 Fernando Perez <fperez@colorado.edu>
2541
2555
2542 * IPython/iplib.py (raw_input_original): store a pointer to the
2556 * IPython/iplib.py (raw_input_original): store a pointer to the
2543 true raw_input to harden against code which can modify it
2557 true raw_input to harden against code which can modify it
2544 (wx.py.PyShell does this and would otherwise crash ipython).
2558 (wx.py.PyShell does this and would otherwise crash ipython).
2545 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2559 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2546
2560
2547 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2561 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2548 Ctrl-C problem, which does not mess up the input line.
2562 Ctrl-C problem, which does not mess up the input line.
2549
2563
2550 2004-11-03 Fernando Perez <fperez@colorado.edu>
2564 2004-11-03 Fernando Perez <fperez@colorado.edu>
2551
2565
2552 * IPython/Release.py: Changed licensing to BSD, in all files.
2566 * IPython/Release.py: Changed licensing to BSD, in all files.
2553 (name): lowercase name for tarball/RPM release.
2567 (name): lowercase name for tarball/RPM release.
2554
2568
2555 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2569 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2556 use throughout ipython.
2570 use throughout ipython.
2557
2571
2558 * IPython/Magic.py (Magic._ofind): Switch to using the new
2572 * IPython/Magic.py (Magic._ofind): Switch to using the new
2559 OInspect.getdoc() function.
2573 OInspect.getdoc() function.
2560
2574
2561 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2575 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2562 of the line currently being canceled via Ctrl-C. It's extremely
2576 of the line currently being canceled via Ctrl-C. It's extremely
2563 ugly, but I don't know how to do it better (the problem is one of
2577 ugly, but I don't know how to do it better (the problem is one of
2564 handling cross-thread exceptions).
2578 handling cross-thread exceptions).
2565
2579
2566 2004-10-28 Fernando Perez <fperez@colorado.edu>
2580 2004-10-28 Fernando Perez <fperez@colorado.edu>
2567
2581
2568 * IPython/Shell.py (signal_handler): add signal handlers to trap
2582 * IPython/Shell.py (signal_handler): add signal handlers to trap
2569 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2583 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2570 report by Francesc Alted.
2584 report by Francesc Alted.
2571
2585
2572 2004-10-21 Fernando Perez <fperez@colorado.edu>
2586 2004-10-21 Fernando Perez <fperez@colorado.edu>
2573
2587
2574 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2588 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2575 to % for pysh syntax extensions.
2589 to % for pysh syntax extensions.
2576
2590
2577 2004-10-09 Fernando Perez <fperez@colorado.edu>
2591 2004-10-09 Fernando Perez <fperez@colorado.edu>
2578
2592
2579 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2593 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2580 arrays to print a more useful summary, without calling str(arr).
2594 arrays to print a more useful summary, without calling str(arr).
2581 This avoids the problem of extremely lengthy computations which
2595 This avoids the problem of extremely lengthy computations which
2582 occur if arr is large, and appear to the user as a system lockup
2596 occur if arr is large, and appear to the user as a system lockup
2583 with 100% cpu activity. After a suggestion by Kristian Sandberg
2597 with 100% cpu activity. After a suggestion by Kristian Sandberg
2584 <Kristian.Sandberg@colorado.edu>.
2598 <Kristian.Sandberg@colorado.edu>.
2585 (Magic.__init__): fix bug in global magic escapes not being
2599 (Magic.__init__): fix bug in global magic escapes not being
2586 correctly set.
2600 correctly set.
2587
2601
2588 2004-10-08 Fernando Perez <fperez@colorado.edu>
2602 2004-10-08 Fernando Perez <fperez@colorado.edu>
2589
2603
2590 * IPython/Magic.py (__license__): change to absolute imports of
2604 * IPython/Magic.py (__license__): change to absolute imports of
2591 ipython's own internal packages, to start adapting to the absolute
2605 ipython's own internal packages, to start adapting to the absolute
2592 import requirement of PEP-328.
2606 import requirement of PEP-328.
2593
2607
2594 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2608 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2595 files, and standardize author/license marks through the Release
2609 files, and standardize author/license marks through the Release
2596 module instead of having per/file stuff (except for files with
2610 module instead of having per/file stuff (except for files with
2597 particular licenses, like the MIT/PSF-licensed codes).
2611 particular licenses, like the MIT/PSF-licensed codes).
2598
2612
2599 * IPython/Debugger.py: remove dead code for python 2.1
2613 * IPython/Debugger.py: remove dead code for python 2.1
2600
2614
2601 2004-10-04 Fernando Perez <fperez@colorado.edu>
2615 2004-10-04 Fernando Perez <fperez@colorado.edu>
2602
2616
2603 * IPython/iplib.py (ipmagic): New function for accessing magics
2617 * IPython/iplib.py (ipmagic): New function for accessing magics
2604 via a normal python function call.
2618 via a normal python function call.
2605
2619
2606 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2620 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2607 from '@' to '%', to accomodate the new @decorator syntax of python
2621 from '@' to '%', to accomodate the new @decorator syntax of python
2608 2.4.
2622 2.4.
2609
2623
2610 2004-09-29 Fernando Perez <fperez@colorado.edu>
2624 2004-09-29 Fernando Perez <fperez@colorado.edu>
2611
2625
2612 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2626 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2613 matplotlib.use to prevent running scripts which try to switch
2627 matplotlib.use to prevent running scripts which try to switch
2614 interactive backends from within ipython. This will just crash
2628 interactive backends from within ipython. This will just crash
2615 the python interpreter, so we can't allow it (but a detailed error
2629 the python interpreter, so we can't allow it (but a detailed error
2616 is given to the user).
2630 is given to the user).
2617
2631
2618 2004-09-28 Fernando Perez <fperez@colorado.edu>
2632 2004-09-28 Fernando Perez <fperez@colorado.edu>
2619
2633
2620 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2634 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2621 matplotlib-related fixes so that using @run with non-matplotlib
2635 matplotlib-related fixes so that using @run with non-matplotlib
2622 scripts doesn't pop up spurious plot windows. This requires
2636 scripts doesn't pop up spurious plot windows. This requires
2623 matplotlib >= 0.63, where I had to make some changes as well.
2637 matplotlib >= 0.63, where I had to make some changes as well.
2624
2638
2625 * IPython/ipmaker.py (make_IPython): update version requirement to
2639 * IPython/ipmaker.py (make_IPython): update version requirement to
2626 python 2.2.
2640 python 2.2.
2627
2641
2628 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2642 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2629 banner arg for embedded customization.
2643 banner arg for embedded customization.
2630
2644
2631 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2645 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2632 explicit uses of __IP as the IPython's instance name. Now things
2646 explicit uses of __IP as the IPython's instance name. Now things
2633 are properly handled via the shell.name value. The actual code
2647 are properly handled via the shell.name value. The actual code
2634 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2648 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2635 is much better than before. I'll clean things completely when the
2649 is much better than before. I'll clean things completely when the
2636 magic stuff gets a real overhaul.
2650 magic stuff gets a real overhaul.
2637
2651
2638 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2652 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2639 minor changes to debian dir.
2653 minor changes to debian dir.
2640
2654
2641 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2655 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2642 pointer to the shell itself in the interactive namespace even when
2656 pointer to the shell itself in the interactive namespace even when
2643 a user-supplied dict is provided. This is needed for embedding
2657 a user-supplied dict is provided. This is needed for embedding
2644 purposes (found by tests with Michel Sanner).
2658 purposes (found by tests with Michel Sanner).
2645
2659
2646 2004-09-27 Fernando Perez <fperez@colorado.edu>
2660 2004-09-27 Fernando Perez <fperez@colorado.edu>
2647
2661
2648 * IPython/UserConfig/ipythonrc: remove []{} from
2662 * IPython/UserConfig/ipythonrc: remove []{} from
2649 readline_remove_delims, so that things like [modname.<TAB> do
2663 readline_remove_delims, so that things like [modname.<TAB> do
2650 proper completion. This disables [].TAB, but that's a less common
2664 proper completion. This disables [].TAB, but that's a less common
2651 case than module names in list comprehensions, for example.
2665 case than module names in list comprehensions, for example.
2652 Thanks to a report by Andrea Riciputi.
2666 Thanks to a report by Andrea Riciputi.
2653
2667
2654 2004-09-09 Fernando Perez <fperez@colorado.edu>
2668 2004-09-09 Fernando Perez <fperez@colorado.edu>
2655
2669
2656 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2670 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2657 blocking problems in win32 and osx. Fix by John.
2671 blocking problems in win32 and osx. Fix by John.
2658
2672
2659 2004-09-08 Fernando Perez <fperez@colorado.edu>
2673 2004-09-08 Fernando Perez <fperez@colorado.edu>
2660
2674
2661 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2675 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2662 for Win32 and OSX. Fix by John Hunter.
2676 for Win32 and OSX. Fix by John Hunter.
2663
2677
2664 2004-08-30 *** Released version 0.6.3
2678 2004-08-30 *** Released version 0.6.3
2665
2679
2666 2004-08-30 Fernando Perez <fperez@colorado.edu>
2680 2004-08-30 Fernando Perez <fperez@colorado.edu>
2667
2681
2668 * setup.py (isfile): Add manpages to list of dependent files to be
2682 * setup.py (isfile): Add manpages to list of dependent files to be
2669 updated.
2683 updated.
2670
2684
2671 2004-08-27 Fernando Perez <fperez@colorado.edu>
2685 2004-08-27 Fernando Perez <fperez@colorado.edu>
2672
2686
2673 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2687 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2674 for now. They don't really work with standalone WX/GTK code
2688 for now. They don't really work with standalone WX/GTK code
2675 (though matplotlib IS working fine with both of those backends).
2689 (though matplotlib IS working fine with both of those backends).
2676 This will neeed much more testing. I disabled most things with
2690 This will neeed much more testing. I disabled most things with
2677 comments, so turning it back on later should be pretty easy.
2691 comments, so turning it back on later should be pretty easy.
2678
2692
2679 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2693 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2680 autocalling of expressions like r'foo', by modifying the line
2694 autocalling of expressions like r'foo', by modifying the line
2681 split regexp. Closes
2695 split regexp. Closes
2682 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2696 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2683 Riley <ipythonbugs-AT-sabi.net>.
2697 Riley <ipythonbugs-AT-sabi.net>.
2684 (InteractiveShell.mainloop): honor --nobanner with banner
2698 (InteractiveShell.mainloop): honor --nobanner with banner
2685 extensions.
2699 extensions.
2686
2700
2687 * IPython/Shell.py: Significant refactoring of all classes, so
2701 * IPython/Shell.py: Significant refactoring of all classes, so
2688 that we can really support ALL matplotlib backends and threading
2702 that we can really support ALL matplotlib backends and threading
2689 models (John spotted a bug with Tk which required this). Now we
2703 models (John spotted a bug with Tk which required this). Now we
2690 should support single-threaded, WX-threads and GTK-threads, both
2704 should support single-threaded, WX-threads and GTK-threads, both
2691 for generic code and for matplotlib.
2705 for generic code and for matplotlib.
2692
2706
2693 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2707 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2694 -pylab, to simplify things for users. Will also remove the pylab
2708 -pylab, to simplify things for users. Will also remove the pylab
2695 profile, since now all of matplotlib configuration is directly
2709 profile, since now all of matplotlib configuration is directly
2696 handled here. This also reduces startup time.
2710 handled here. This also reduces startup time.
2697
2711
2698 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2712 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2699 shell wasn't being correctly called. Also in IPShellWX.
2713 shell wasn't being correctly called. Also in IPShellWX.
2700
2714
2701 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2715 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2702 fine-tune banner.
2716 fine-tune banner.
2703
2717
2704 * IPython/numutils.py (spike): Deprecate these spike functions,
2718 * IPython/numutils.py (spike): Deprecate these spike functions,
2705 delete (long deprecated) gnuplot_exec handler.
2719 delete (long deprecated) gnuplot_exec handler.
2706
2720
2707 2004-08-26 Fernando Perez <fperez@colorado.edu>
2721 2004-08-26 Fernando Perez <fperez@colorado.edu>
2708
2722
2709 * ipython.1: Update for threading options, plus some others which
2723 * ipython.1: Update for threading options, plus some others which
2710 were missing.
2724 were missing.
2711
2725
2712 * IPython/ipmaker.py (__call__): Added -wthread option for
2726 * IPython/ipmaker.py (__call__): Added -wthread option for
2713 wxpython thread handling. Make sure threading options are only
2727 wxpython thread handling. Make sure threading options are only
2714 valid at the command line.
2728 valid at the command line.
2715
2729
2716 * scripts/ipython: moved shell selection into a factory function
2730 * scripts/ipython: moved shell selection into a factory function
2717 in Shell.py, to keep the starter script to a minimum.
2731 in Shell.py, to keep the starter script to a minimum.
2718
2732
2719 2004-08-25 Fernando Perez <fperez@colorado.edu>
2733 2004-08-25 Fernando Perez <fperez@colorado.edu>
2720
2734
2721 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2735 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2722 John. Along with some recent changes he made to matplotlib, the
2736 John. Along with some recent changes he made to matplotlib, the
2723 next versions of both systems should work very well together.
2737 next versions of both systems should work very well together.
2724
2738
2725 2004-08-24 Fernando Perez <fperez@colorado.edu>
2739 2004-08-24 Fernando Perez <fperez@colorado.edu>
2726
2740
2727 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2741 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2728 tried to switch the profiling to using hotshot, but I'm getting
2742 tried to switch the profiling to using hotshot, but I'm getting
2729 strange errors from prof.runctx() there. I may be misreading the
2743 strange errors from prof.runctx() there. I may be misreading the
2730 docs, but it looks weird. For now the profiling code will
2744 docs, but it looks weird. For now the profiling code will
2731 continue to use the standard profiler.
2745 continue to use the standard profiler.
2732
2746
2733 2004-08-23 Fernando Perez <fperez@colorado.edu>
2747 2004-08-23 Fernando Perez <fperez@colorado.edu>
2734
2748
2735 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2749 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2736 threaded shell, by John Hunter. It's not quite ready yet, but
2750 threaded shell, by John Hunter. It's not quite ready yet, but
2737 close.
2751 close.
2738
2752
2739 2004-08-22 Fernando Perez <fperez@colorado.edu>
2753 2004-08-22 Fernando Perez <fperez@colorado.edu>
2740
2754
2741 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2755 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2742 in Magic and ultraTB.
2756 in Magic and ultraTB.
2743
2757
2744 * ipython.1: document threading options in manpage.
2758 * ipython.1: document threading options in manpage.
2745
2759
2746 * scripts/ipython: Changed name of -thread option to -gthread,
2760 * scripts/ipython: Changed name of -thread option to -gthread,
2747 since this is GTK specific. I want to leave the door open for a
2761 since this is GTK specific. I want to leave the door open for a
2748 -wthread option for WX, which will most likely be necessary. This
2762 -wthread option for WX, which will most likely be necessary. This
2749 change affects usage and ipmaker as well.
2763 change affects usage and ipmaker as well.
2750
2764
2751 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2765 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2752 handle the matplotlib shell issues. Code by John Hunter
2766 handle the matplotlib shell issues. Code by John Hunter
2753 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2767 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2754 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2768 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2755 broken (and disabled for end users) for now, but it puts the
2769 broken (and disabled for end users) for now, but it puts the
2756 infrastructure in place.
2770 infrastructure in place.
2757
2771
2758 2004-08-21 Fernando Perez <fperez@colorado.edu>
2772 2004-08-21 Fernando Perez <fperez@colorado.edu>
2759
2773
2760 * ipythonrc-pylab: Add matplotlib support.
2774 * ipythonrc-pylab: Add matplotlib support.
2761
2775
2762 * matplotlib_config.py: new files for matplotlib support, part of
2776 * matplotlib_config.py: new files for matplotlib support, part of
2763 the pylab profile.
2777 the pylab profile.
2764
2778
2765 * IPython/usage.py (__doc__): documented the threading options.
2779 * IPython/usage.py (__doc__): documented the threading options.
2766
2780
2767 2004-08-20 Fernando Perez <fperez@colorado.edu>
2781 2004-08-20 Fernando Perez <fperez@colorado.edu>
2768
2782
2769 * ipython: Modified the main calling routine to handle the -thread
2783 * ipython: Modified the main calling routine to handle the -thread
2770 and -mpthread options. This needs to be done as a top-level hack,
2784 and -mpthread options. This needs to be done as a top-level hack,
2771 because it determines which class to instantiate for IPython
2785 because it determines which class to instantiate for IPython
2772 itself.
2786 itself.
2773
2787
2774 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2788 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2775 classes to support multithreaded GTK operation without blocking,
2789 classes to support multithreaded GTK operation without blocking,
2776 and matplotlib with all backends. This is a lot of still very
2790 and matplotlib with all backends. This is a lot of still very
2777 experimental code, and threads are tricky. So it may still have a
2791 experimental code, and threads are tricky. So it may still have a
2778 few rough edges... This code owes a lot to
2792 few rough edges... This code owes a lot to
2779 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2793 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2780 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2794 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2781 to John Hunter for all the matplotlib work.
2795 to John Hunter for all the matplotlib work.
2782
2796
2783 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2797 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2784 options for gtk thread and matplotlib support.
2798 options for gtk thread and matplotlib support.
2785
2799
2786 2004-08-16 Fernando Perez <fperez@colorado.edu>
2800 2004-08-16 Fernando Perez <fperez@colorado.edu>
2787
2801
2788 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2802 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2789 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2803 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2790 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2804 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2791
2805
2792 2004-08-11 Fernando Perez <fperez@colorado.edu>
2806 2004-08-11 Fernando Perez <fperez@colorado.edu>
2793
2807
2794 * setup.py (isfile): Fix build so documentation gets updated for
2808 * setup.py (isfile): Fix build so documentation gets updated for
2795 rpms (it was only done for .tgz builds).
2809 rpms (it was only done for .tgz builds).
2796
2810
2797 2004-08-10 Fernando Perez <fperez@colorado.edu>
2811 2004-08-10 Fernando Perez <fperez@colorado.edu>
2798
2812
2799 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2813 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2800
2814
2801 * iplib.py : Silence syntax error exceptions in tab-completion.
2815 * iplib.py : Silence syntax error exceptions in tab-completion.
2802
2816
2803 2004-08-05 Fernando Perez <fperez@colorado.edu>
2817 2004-08-05 Fernando Perez <fperez@colorado.edu>
2804
2818
2805 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2819 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2806 'color off' mark for continuation prompts. This was causing long
2820 'color off' mark for continuation prompts. This was causing long
2807 continuation lines to mis-wrap.
2821 continuation lines to mis-wrap.
2808
2822
2809 2004-08-01 Fernando Perez <fperez@colorado.edu>
2823 2004-08-01 Fernando Perez <fperez@colorado.edu>
2810
2824
2811 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2825 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2812 for building ipython to be a parameter. All this is necessary
2826 for building ipython to be a parameter. All this is necessary
2813 right now to have a multithreaded version, but this insane
2827 right now to have a multithreaded version, but this insane
2814 non-design will be cleaned up soon. For now, it's a hack that
2828 non-design will be cleaned up soon. For now, it's a hack that
2815 works.
2829 works.
2816
2830
2817 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2831 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2818 args in various places. No bugs so far, but it's a dangerous
2832 args in various places. No bugs so far, but it's a dangerous
2819 practice.
2833 practice.
2820
2834
2821 2004-07-31 Fernando Perez <fperez@colorado.edu>
2835 2004-07-31 Fernando Perez <fperez@colorado.edu>
2822
2836
2823 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2837 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2824 fix completion of files with dots in their names under most
2838 fix completion of files with dots in their names under most
2825 profiles (pysh was OK because the completion order is different).
2839 profiles (pysh was OK because the completion order is different).
2826
2840
2827 2004-07-27 Fernando Perez <fperez@colorado.edu>
2841 2004-07-27 Fernando Perez <fperez@colorado.edu>
2828
2842
2829 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2843 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2830 keywords manually, b/c the one in keyword.py was removed in python
2844 keywords manually, b/c the one in keyword.py was removed in python
2831 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2845 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2832 This is NOT a bug under python 2.3 and earlier.
2846 This is NOT a bug under python 2.3 and earlier.
2833
2847
2834 2004-07-26 Fernando Perez <fperez@colorado.edu>
2848 2004-07-26 Fernando Perez <fperez@colorado.edu>
2835
2849
2836 * IPython/ultraTB.py (VerboseTB.text): Add another
2850 * IPython/ultraTB.py (VerboseTB.text): Add another
2837 linecache.checkcache() call to try to prevent inspect.py from
2851 linecache.checkcache() call to try to prevent inspect.py from
2838 crashing under python 2.3. I think this fixes
2852 crashing under python 2.3. I think this fixes
2839 http://www.scipy.net/roundup/ipython/issue17.
2853 http://www.scipy.net/roundup/ipython/issue17.
2840
2854
2841 2004-07-26 *** Released version 0.6.2
2855 2004-07-26 *** Released version 0.6.2
2842
2856
2843 2004-07-26 Fernando Perez <fperez@colorado.edu>
2857 2004-07-26 Fernando Perez <fperez@colorado.edu>
2844
2858
2845 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2859 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2846 fail for any number.
2860 fail for any number.
2847 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2861 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2848 empty bookmarks.
2862 empty bookmarks.
2849
2863
2850 2004-07-26 *** Released version 0.6.1
2864 2004-07-26 *** Released version 0.6.1
2851
2865
2852 2004-07-26 Fernando Perez <fperez@colorado.edu>
2866 2004-07-26 Fernando Perez <fperez@colorado.edu>
2853
2867
2854 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2868 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2855
2869
2856 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2870 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2857 escaping '()[]{}' in filenames.
2871 escaping '()[]{}' in filenames.
2858
2872
2859 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2873 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2860 Python 2.2 users who lack a proper shlex.split.
2874 Python 2.2 users who lack a proper shlex.split.
2861
2875
2862 2004-07-19 Fernando Perez <fperez@colorado.edu>
2876 2004-07-19 Fernando Perez <fperez@colorado.edu>
2863
2877
2864 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2878 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2865 for reading readline's init file. I follow the normal chain:
2879 for reading readline's init file. I follow the normal chain:
2866 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2880 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2867 report by Mike Heeter. This closes
2881 report by Mike Heeter. This closes
2868 http://www.scipy.net/roundup/ipython/issue16.
2882 http://www.scipy.net/roundup/ipython/issue16.
2869
2883
2870 2004-07-18 Fernando Perez <fperez@colorado.edu>
2884 2004-07-18 Fernando Perez <fperez@colorado.edu>
2871
2885
2872 * IPython/iplib.py (__init__): Add better handling of '\' under
2886 * IPython/iplib.py (__init__): Add better handling of '\' under
2873 Win32 for filenames. After a patch by Ville.
2887 Win32 for filenames. After a patch by Ville.
2874
2888
2875 2004-07-17 Fernando Perez <fperez@colorado.edu>
2889 2004-07-17 Fernando Perez <fperez@colorado.edu>
2876
2890
2877 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2891 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2878 autocalling would be triggered for 'foo is bar' if foo is
2892 autocalling would be triggered for 'foo is bar' if foo is
2879 callable. I also cleaned up the autocall detection code to use a
2893 callable. I also cleaned up the autocall detection code to use a
2880 regexp, which is faster. Bug reported by Alexander Schmolck.
2894 regexp, which is faster. Bug reported by Alexander Schmolck.
2881
2895
2882 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2896 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2883 '?' in them would confuse the help system. Reported by Alex
2897 '?' in them would confuse the help system. Reported by Alex
2884 Schmolck.
2898 Schmolck.
2885
2899
2886 2004-07-16 Fernando Perez <fperez@colorado.edu>
2900 2004-07-16 Fernando Perez <fperez@colorado.edu>
2887
2901
2888 * IPython/GnuplotInteractive.py (__all__): added plot2.
2902 * IPython/GnuplotInteractive.py (__all__): added plot2.
2889
2903
2890 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2904 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2891 plotting dictionaries, lists or tuples of 1d arrays.
2905 plotting dictionaries, lists or tuples of 1d arrays.
2892
2906
2893 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2907 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2894 optimizations.
2908 optimizations.
2895
2909
2896 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2910 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2897 the information which was there from Janko's original IPP code:
2911 the information which was there from Janko's original IPP code:
2898
2912
2899 03.05.99 20:53 porto.ifm.uni-kiel.de
2913 03.05.99 20:53 porto.ifm.uni-kiel.de
2900 --Started changelog.
2914 --Started changelog.
2901 --make clear do what it say it does
2915 --make clear do what it say it does
2902 --added pretty output of lines from inputcache
2916 --added pretty output of lines from inputcache
2903 --Made Logger a mixin class, simplifies handling of switches
2917 --Made Logger a mixin class, simplifies handling of switches
2904 --Added own completer class. .string<TAB> expands to last history
2918 --Added own completer class. .string<TAB> expands to last history
2905 line which starts with string. The new expansion is also present
2919 line which starts with string. The new expansion is also present
2906 with Ctrl-r from the readline library. But this shows, who this
2920 with Ctrl-r from the readline library. But this shows, who this
2907 can be done for other cases.
2921 can be done for other cases.
2908 --Added convention that all shell functions should accept a
2922 --Added convention that all shell functions should accept a
2909 parameter_string This opens the door for different behaviour for
2923 parameter_string This opens the door for different behaviour for
2910 each function. @cd is a good example of this.
2924 each function. @cd is a good example of this.
2911
2925
2912 04.05.99 12:12 porto.ifm.uni-kiel.de
2926 04.05.99 12:12 porto.ifm.uni-kiel.de
2913 --added logfile rotation
2927 --added logfile rotation
2914 --added new mainloop method which freezes first the namespace
2928 --added new mainloop method which freezes first the namespace
2915
2929
2916 07.05.99 21:24 porto.ifm.uni-kiel.de
2930 07.05.99 21:24 porto.ifm.uni-kiel.de
2917 --added the docreader classes. Now there is a help system.
2931 --added the docreader classes. Now there is a help system.
2918 -This is only a first try. Currently it's not easy to put new
2932 -This is only a first try. Currently it's not easy to put new
2919 stuff in the indices. But this is the way to go. Info would be
2933 stuff in the indices. But this is the way to go. Info would be
2920 better, but HTML is every where and not everybody has an info
2934 better, but HTML is every where and not everybody has an info
2921 system installed and it's not so easy to change html-docs to info.
2935 system installed and it's not so easy to change html-docs to info.
2922 --added global logfile option
2936 --added global logfile option
2923 --there is now a hook for object inspection method pinfo needs to
2937 --there is now a hook for object inspection method pinfo needs to
2924 be provided for this. Can be reached by two '??'.
2938 be provided for this. Can be reached by two '??'.
2925
2939
2926 08.05.99 20:51 porto.ifm.uni-kiel.de
2940 08.05.99 20:51 porto.ifm.uni-kiel.de
2927 --added a README
2941 --added a README
2928 --bug in rc file. Something has changed so functions in the rc
2942 --bug in rc file. Something has changed so functions in the rc
2929 file need to reference the shell and not self. Not clear if it's a
2943 file need to reference the shell and not self. Not clear if it's a
2930 bug or feature.
2944 bug or feature.
2931 --changed rc file for new behavior
2945 --changed rc file for new behavior
2932
2946
2933 2004-07-15 Fernando Perez <fperez@colorado.edu>
2947 2004-07-15 Fernando Perez <fperez@colorado.edu>
2934
2948
2935 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2949 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2936 cache was falling out of sync in bizarre manners when multi-line
2950 cache was falling out of sync in bizarre manners when multi-line
2937 input was present. Minor optimizations and cleanup.
2951 input was present. Minor optimizations and cleanup.
2938
2952
2939 (Logger): Remove old Changelog info for cleanup. This is the
2953 (Logger): Remove old Changelog info for cleanup. This is the
2940 information which was there from Janko's original code:
2954 information which was there from Janko's original code:
2941
2955
2942 Changes to Logger: - made the default log filename a parameter
2956 Changes to Logger: - made the default log filename a parameter
2943
2957
2944 - put a check for lines beginning with !@? in log(). Needed
2958 - put a check for lines beginning with !@? in log(). Needed
2945 (even if the handlers properly log their lines) for mid-session
2959 (even if the handlers properly log their lines) for mid-session
2946 logging activation to work properly. Without this, lines logged
2960 logging activation to work properly. Without this, lines logged
2947 in mid session, which get read from the cache, would end up
2961 in mid session, which get read from the cache, would end up
2948 'bare' (with !@? in the open) in the log. Now they are caught
2962 'bare' (with !@? in the open) in the log. Now they are caught
2949 and prepended with a #.
2963 and prepended with a #.
2950
2964
2951 * IPython/iplib.py (InteractiveShell.init_readline): added check
2965 * IPython/iplib.py (InteractiveShell.init_readline): added check
2952 in case MagicCompleter fails to be defined, so we don't crash.
2966 in case MagicCompleter fails to be defined, so we don't crash.
2953
2967
2954 2004-07-13 Fernando Perez <fperez@colorado.edu>
2968 2004-07-13 Fernando Perez <fperez@colorado.edu>
2955
2969
2956 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2970 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2957 of EPS if the requested filename ends in '.eps'.
2971 of EPS if the requested filename ends in '.eps'.
2958
2972
2959 2004-07-04 Fernando Perez <fperez@colorado.edu>
2973 2004-07-04 Fernando Perez <fperez@colorado.edu>
2960
2974
2961 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2975 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2962 escaping of quotes when calling the shell.
2976 escaping of quotes when calling the shell.
2963
2977
2964 2004-07-02 Fernando Perez <fperez@colorado.edu>
2978 2004-07-02 Fernando Perez <fperez@colorado.edu>
2965
2979
2966 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2980 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2967 gettext not working because we were clobbering '_'. Fixes
2981 gettext not working because we were clobbering '_'. Fixes
2968 http://www.scipy.net/roundup/ipython/issue6.
2982 http://www.scipy.net/roundup/ipython/issue6.
2969
2983
2970 2004-07-01 Fernando Perez <fperez@colorado.edu>
2984 2004-07-01 Fernando Perez <fperez@colorado.edu>
2971
2985
2972 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2986 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2973 into @cd. Patch by Ville.
2987 into @cd. Patch by Ville.
2974
2988
2975 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2989 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2976 new function to store things after ipmaker runs. Patch by Ville.
2990 new function to store things after ipmaker runs. Patch by Ville.
2977 Eventually this will go away once ipmaker is removed and the class
2991 Eventually this will go away once ipmaker is removed and the class
2978 gets cleaned up, but for now it's ok. Key functionality here is
2992 gets cleaned up, but for now it's ok. Key functionality here is
2979 the addition of the persistent storage mechanism, a dict for
2993 the addition of the persistent storage mechanism, a dict for
2980 keeping data across sessions (for now just bookmarks, but more can
2994 keeping data across sessions (for now just bookmarks, but more can
2981 be implemented later).
2995 be implemented later).
2982
2996
2983 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2997 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2984 persistent across sections. Patch by Ville, I modified it
2998 persistent across sections. Patch by Ville, I modified it
2985 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2999 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2986 added a '-l' option to list all bookmarks.
3000 added a '-l' option to list all bookmarks.
2987
3001
2988 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3002 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2989 center for cleanup. Registered with atexit.register(). I moved
3003 center for cleanup. Registered with atexit.register(). I moved
2990 here the old exit_cleanup(). After a patch by Ville.
3004 here the old exit_cleanup(). After a patch by Ville.
2991
3005
2992 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3006 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2993 characters in the hacked shlex_split for python 2.2.
3007 characters in the hacked shlex_split for python 2.2.
2994
3008
2995 * IPython/iplib.py (file_matches): more fixes to filenames with
3009 * IPython/iplib.py (file_matches): more fixes to filenames with
2996 whitespace in them. It's not perfect, but limitations in python's
3010 whitespace in them. It's not perfect, but limitations in python's
2997 readline make it impossible to go further.
3011 readline make it impossible to go further.
2998
3012
2999 2004-06-29 Fernando Perez <fperez@colorado.edu>
3013 2004-06-29 Fernando Perez <fperez@colorado.edu>
3000
3014
3001 * IPython/iplib.py (file_matches): escape whitespace correctly in
3015 * IPython/iplib.py (file_matches): escape whitespace correctly in
3002 filename completions. Bug reported by Ville.
3016 filename completions. Bug reported by Ville.
3003
3017
3004 2004-06-28 Fernando Perez <fperez@colorado.edu>
3018 2004-06-28 Fernando Perez <fperez@colorado.edu>
3005
3019
3006 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3020 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3007 the history file will be called 'history-PROFNAME' (or just
3021 the history file will be called 'history-PROFNAME' (or just
3008 'history' if no profile is loaded). I was getting annoyed at
3022 'history' if no profile is loaded). I was getting annoyed at
3009 getting my Numerical work history clobbered by pysh sessions.
3023 getting my Numerical work history clobbered by pysh sessions.
3010
3024
3011 * IPython/iplib.py (InteractiveShell.__init__): Internal
3025 * IPython/iplib.py (InteractiveShell.__init__): Internal
3012 getoutputerror() function so that we can honor the system_verbose
3026 getoutputerror() function so that we can honor the system_verbose
3013 flag for _all_ system calls. I also added escaping of #
3027 flag for _all_ system calls. I also added escaping of #
3014 characters here to avoid confusing Itpl.
3028 characters here to avoid confusing Itpl.
3015
3029
3016 * IPython/Magic.py (shlex_split): removed call to shell in
3030 * IPython/Magic.py (shlex_split): removed call to shell in
3017 parse_options and replaced it with shlex.split(). The annoying
3031 parse_options and replaced it with shlex.split(). The annoying
3018 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3032 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3019 to backport it from 2.3, with several frail hacks (the shlex
3033 to backport it from 2.3, with several frail hacks (the shlex
3020 module is rather limited in 2.2). Thanks to a suggestion by Ville
3034 module is rather limited in 2.2). Thanks to a suggestion by Ville
3021 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3035 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3022 problem.
3036 problem.
3023
3037
3024 (Magic.magic_system_verbose): new toggle to print the actual
3038 (Magic.magic_system_verbose): new toggle to print the actual
3025 system calls made by ipython. Mainly for debugging purposes.
3039 system calls made by ipython. Mainly for debugging purposes.
3026
3040
3027 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3041 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3028 doesn't support persistence. Reported (and fix suggested) by
3042 doesn't support persistence. Reported (and fix suggested) by
3029 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3043 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3030
3044
3031 2004-06-26 Fernando Perez <fperez@colorado.edu>
3045 2004-06-26 Fernando Perez <fperez@colorado.edu>
3032
3046
3033 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3047 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3034 continue prompts.
3048 continue prompts.
3035
3049
3036 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3050 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3037 function (basically a big docstring) and a few more things here to
3051 function (basically a big docstring) and a few more things here to
3038 speedup startup. pysh.py is now very lightweight. We want because
3052 speedup startup. pysh.py is now very lightweight. We want because
3039 it gets execfile'd, while InterpreterExec gets imported, so
3053 it gets execfile'd, while InterpreterExec gets imported, so
3040 byte-compilation saves time.
3054 byte-compilation saves time.
3041
3055
3042 2004-06-25 Fernando Perez <fperez@colorado.edu>
3056 2004-06-25 Fernando Perez <fperez@colorado.edu>
3043
3057
3044 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3058 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3045 -NUM', which was recently broken.
3059 -NUM', which was recently broken.
3046
3060
3047 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3061 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3048 in multi-line input (but not !!, which doesn't make sense there).
3062 in multi-line input (but not !!, which doesn't make sense there).
3049
3063
3050 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3064 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3051 It's just too useful, and people can turn it off in the less
3065 It's just too useful, and people can turn it off in the less
3052 common cases where it's a problem.
3066 common cases where it's a problem.
3053
3067
3054 2004-06-24 Fernando Perez <fperez@colorado.edu>
3068 2004-06-24 Fernando Perez <fperez@colorado.edu>
3055
3069
3056 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3070 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3057 special syntaxes (like alias calling) is now allied in multi-line
3071 special syntaxes (like alias calling) is now allied in multi-line
3058 input. This is still _very_ experimental, but it's necessary for
3072 input. This is still _very_ experimental, but it's necessary for
3059 efficient shell usage combining python looping syntax with system
3073 efficient shell usage combining python looping syntax with system
3060 calls. For now it's restricted to aliases, I don't think it
3074 calls. For now it's restricted to aliases, I don't think it
3061 really even makes sense to have this for magics.
3075 really even makes sense to have this for magics.
3062
3076
3063 2004-06-23 Fernando Perez <fperez@colorado.edu>
3077 2004-06-23 Fernando Perez <fperez@colorado.edu>
3064
3078
3065 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3079 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3066 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3080 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3067
3081
3068 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3082 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3069 extensions under Windows (after code sent by Gary Bishop). The
3083 extensions under Windows (after code sent by Gary Bishop). The
3070 extensions considered 'executable' are stored in IPython's rc
3084 extensions considered 'executable' are stored in IPython's rc
3071 structure as win_exec_ext.
3085 structure as win_exec_ext.
3072
3086
3073 * IPython/genutils.py (shell): new function, like system() but
3087 * IPython/genutils.py (shell): new function, like system() but
3074 without return value. Very useful for interactive shell work.
3088 without return value. Very useful for interactive shell work.
3075
3089
3076 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3090 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3077 delete aliases.
3091 delete aliases.
3078
3092
3079 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3093 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3080 sure that the alias table doesn't contain python keywords.
3094 sure that the alias table doesn't contain python keywords.
3081
3095
3082 2004-06-21 Fernando Perez <fperez@colorado.edu>
3096 2004-06-21 Fernando Perez <fperez@colorado.edu>
3083
3097
3084 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3098 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3085 non-existent items are found in $PATH. Reported by Thorsten.
3099 non-existent items are found in $PATH. Reported by Thorsten.
3086
3100
3087 2004-06-20 Fernando Perez <fperez@colorado.edu>
3101 2004-06-20 Fernando Perez <fperez@colorado.edu>
3088
3102
3089 * IPython/iplib.py (complete): modified the completer so that the
3103 * IPython/iplib.py (complete): modified the completer so that the
3090 order of priorities can be easily changed at runtime.
3104 order of priorities can be easily changed at runtime.
3091
3105
3092 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3106 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3093 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3107 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3094
3108
3095 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3109 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3096 expand Python variables prepended with $ in all system calls. The
3110 expand Python variables prepended with $ in all system calls. The
3097 same was done to InteractiveShell.handle_shell_escape. Now all
3111 same was done to InteractiveShell.handle_shell_escape. Now all
3098 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3112 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3099 expansion of python variables and expressions according to the
3113 expansion of python variables and expressions according to the
3100 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3114 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3101
3115
3102 Though PEP-215 has been rejected, a similar (but simpler) one
3116 Though PEP-215 has been rejected, a similar (but simpler) one
3103 seems like it will go into Python 2.4, PEP-292 -
3117 seems like it will go into Python 2.4, PEP-292 -
3104 http://www.python.org/peps/pep-0292.html.
3118 http://www.python.org/peps/pep-0292.html.
3105
3119
3106 I'll keep the full syntax of PEP-215, since IPython has since the
3120 I'll keep the full syntax of PEP-215, since IPython has since the
3107 start used Ka-Ping Yee's reference implementation discussed there
3121 start used Ka-Ping Yee's reference implementation discussed there
3108 (Itpl), and I actually like the powerful semantics it offers.
3122 (Itpl), and I actually like the powerful semantics it offers.
3109
3123
3110 In order to access normal shell variables, the $ has to be escaped
3124 In order to access normal shell variables, the $ has to be escaped
3111 via an extra $. For example:
3125 via an extra $. For example:
3112
3126
3113 In [7]: PATH='a python variable'
3127 In [7]: PATH='a python variable'
3114
3128
3115 In [8]: !echo $PATH
3129 In [8]: !echo $PATH
3116 a python variable
3130 a python variable
3117
3131
3118 In [9]: !echo $$PATH
3132 In [9]: !echo $$PATH
3119 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3133 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3120
3134
3121 (Magic.parse_options): escape $ so the shell doesn't evaluate
3135 (Magic.parse_options): escape $ so the shell doesn't evaluate
3122 things prematurely.
3136 things prematurely.
3123
3137
3124 * IPython/iplib.py (InteractiveShell.call_alias): added the
3138 * IPython/iplib.py (InteractiveShell.call_alias): added the
3125 ability for aliases to expand python variables via $.
3139 ability for aliases to expand python variables via $.
3126
3140
3127 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3141 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3128 system, now there's a @rehash/@rehashx pair of magics. These work
3142 system, now there's a @rehash/@rehashx pair of magics. These work
3129 like the csh rehash command, and can be invoked at any time. They
3143 like the csh rehash command, and can be invoked at any time. They
3130 build a table of aliases to everything in the user's $PATH
3144 build a table of aliases to everything in the user's $PATH
3131 (@rehash uses everything, @rehashx is slower but only adds
3145 (@rehash uses everything, @rehashx is slower but only adds
3132 executable files). With this, the pysh.py-based shell profile can
3146 executable files). With this, the pysh.py-based shell profile can
3133 now simply call rehash upon startup, and full access to all
3147 now simply call rehash upon startup, and full access to all
3134 programs in the user's path is obtained.
3148 programs in the user's path is obtained.
3135
3149
3136 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3150 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3137 functionality is now fully in place. I removed the old dynamic
3151 functionality is now fully in place. I removed the old dynamic
3138 code generation based approach, in favor of a much lighter one
3152 code generation based approach, in favor of a much lighter one
3139 based on a simple dict. The advantage is that this allows me to
3153 based on a simple dict. The advantage is that this allows me to
3140 now have thousands of aliases with negligible cost (unthinkable
3154 now have thousands of aliases with negligible cost (unthinkable
3141 with the old system).
3155 with the old system).
3142
3156
3143 2004-06-19 Fernando Perez <fperez@colorado.edu>
3157 2004-06-19 Fernando Perez <fperez@colorado.edu>
3144
3158
3145 * IPython/iplib.py (__init__): extended MagicCompleter class to
3159 * IPython/iplib.py (__init__): extended MagicCompleter class to
3146 also complete (last in priority) on user aliases.
3160 also complete (last in priority) on user aliases.
3147
3161
3148 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3162 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3149 call to eval.
3163 call to eval.
3150 (ItplNS.__init__): Added a new class which functions like Itpl,
3164 (ItplNS.__init__): Added a new class which functions like Itpl,
3151 but allows configuring the namespace for the evaluation to occur
3165 but allows configuring the namespace for the evaluation to occur
3152 in.
3166 in.
3153
3167
3154 2004-06-18 Fernando Perez <fperez@colorado.edu>
3168 2004-06-18 Fernando Perez <fperez@colorado.edu>
3155
3169
3156 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3170 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3157 better message when 'exit' or 'quit' are typed (a common newbie
3171 better message when 'exit' or 'quit' are typed (a common newbie
3158 confusion).
3172 confusion).
3159
3173
3160 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3174 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3161 check for Windows users.
3175 check for Windows users.
3162
3176
3163 * IPython/iplib.py (InteractiveShell.user_setup): removed
3177 * IPython/iplib.py (InteractiveShell.user_setup): removed
3164 disabling of colors for Windows. I'll test at runtime and issue a
3178 disabling of colors for Windows. I'll test at runtime and issue a
3165 warning if Gary's readline isn't found, as to nudge users to
3179 warning if Gary's readline isn't found, as to nudge users to
3166 download it.
3180 download it.
3167
3181
3168 2004-06-16 Fernando Perez <fperez@colorado.edu>
3182 2004-06-16 Fernando Perez <fperez@colorado.edu>
3169
3183
3170 * IPython/genutils.py (Stream.__init__): changed to print errors
3184 * IPython/genutils.py (Stream.__init__): changed to print errors
3171 to sys.stderr. I had a circular dependency here. Now it's
3185 to sys.stderr. I had a circular dependency here. Now it's
3172 possible to run ipython as IDLE's shell (consider this pre-alpha,
3186 possible to run ipython as IDLE's shell (consider this pre-alpha,
3173 since true stdout things end up in the starting terminal instead
3187 since true stdout things end up in the starting terminal instead
3174 of IDLE's out).
3188 of IDLE's out).
3175
3189
3176 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3190 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3177 users who haven't # updated their prompt_in2 definitions. Remove
3191 users who haven't # updated their prompt_in2 definitions. Remove
3178 eventually.
3192 eventually.
3179 (multiple_replace): added credit to original ASPN recipe.
3193 (multiple_replace): added credit to original ASPN recipe.
3180
3194
3181 2004-06-15 Fernando Perez <fperez@colorado.edu>
3195 2004-06-15 Fernando Perez <fperez@colorado.edu>
3182
3196
3183 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3197 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3184 list of auto-defined aliases.
3198 list of auto-defined aliases.
3185
3199
3186 2004-06-13 Fernando Perez <fperez@colorado.edu>
3200 2004-06-13 Fernando Perez <fperez@colorado.edu>
3187
3201
3188 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3202 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3189 install was really requested (so setup.py can be used for other
3203 install was really requested (so setup.py can be used for other
3190 things under Windows).
3204 things under Windows).
3191
3205
3192 2004-06-10 Fernando Perez <fperez@colorado.edu>
3206 2004-06-10 Fernando Perez <fperez@colorado.edu>
3193
3207
3194 * IPython/Logger.py (Logger.create_log): Manually remove any old
3208 * IPython/Logger.py (Logger.create_log): Manually remove any old
3195 backup, since os.remove may fail under Windows. Fixes bug
3209 backup, since os.remove may fail under Windows. Fixes bug
3196 reported by Thorsten.
3210 reported by Thorsten.
3197
3211
3198 2004-06-09 Fernando Perez <fperez@colorado.edu>
3212 2004-06-09 Fernando Perez <fperez@colorado.edu>
3199
3213
3200 * examples/example-embed.py: fixed all references to %n (replaced
3214 * examples/example-embed.py: fixed all references to %n (replaced
3201 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3215 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3202 for all examples and the manual as well.
3216 for all examples and the manual as well.
3203
3217
3204 2004-06-08 Fernando Perez <fperez@colorado.edu>
3218 2004-06-08 Fernando Perez <fperez@colorado.edu>
3205
3219
3206 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3220 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3207 alignment and color management. All 3 prompt subsystems now
3221 alignment and color management. All 3 prompt subsystems now
3208 inherit from BasePrompt.
3222 inherit from BasePrompt.
3209
3223
3210 * tools/release: updates for windows installer build and tag rpms
3224 * tools/release: updates for windows installer build and tag rpms
3211 with python version (since paths are fixed).
3225 with python version (since paths are fixed).
3212
3226
3213 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3227 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3214 which will become eventually obsolete. Also fixed the default
3228 which will become eventually obsolete. Also fixed the default
3215 prompt_in2 to use \D, so at least new users start with the correct
3229 prompt_in2 to use \D, so at least new users start with the correct
3216 defaults.
3230 defaults.
3217 WARNING: Users with existing ipythonrc files will need to apply
3231 WARNING: Users with existing ipythonrc files will need to apply
3218 this fix manually!
3232 this fix manually!
3219
3233
3220 * setup.py: make windows installer (.exe). This is finally the
3234 * setup.py: make windows installer (.exe). This is finally the
3221 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3235 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3222 which I hadn't included because it required Python 2.3 (or recent
3236 which I hadn't included because it required Python 2.3 (or recent
3223 distutils).
3237 distutils).
3224
3238
3225 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3239 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3226 usage of new '\D' escape.
3240 usage of new '\D' escape.
3227
3241
3228 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3242 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3229 lacks os.getuid())
3243 lacks os.getuid())
3230 (CachedOutput.set_colors): Added the ability to turn coloring
3244 (CachedOutput.set_colors): Added the ability to turn coloring
3231 on/off with @colors even for manually defined prompt colors. It
3245 on/off with @colors even for manually defined prompt colors. It
3232 uses a nasty global, but it works safely and via the generic color
3246 uses a nasty global, but it works safely and via the generic color
3233 handling mechanism.
3247 handling mechanism.
3234 (Prompt2.__init__): Introduced new escape '\D' for continuation
3248 (Prompt2.__init__): Introduced new escape '\D' for continuation
3235 prompts. It represents the counter ('\#') as dots.
3249 prompts. It represents the counter ('\#') as dots.
3236 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3250 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3237 need to update their ipythonrc files and replace '%n' with '\D' in
3251 need to update their ipythonrc files and replace '%n' with '\D' in
3238 their prompt_in2 settings everywhere. Sorry, but there's
3252 their prompt_in2 settings everywhere. Sorry, but there's
3239 otherwise no clean way to get all prompts to properly align. The
3253 otherwise no clean way to get all prompts to properly align. The
3240 ipythonrc shipped with IPython has been updated.
3254 ipythonrc shipped with IPython has been updated.
3241
3255
3242 2004-06-07 Fernando Perez <fperez@colorado.edu>
3256 2004-06-07 Fernando Perez <fperez@colorado.edu>
3243
3257
3244 * setup.py (isfile): Pass local_icons option to latex2html, so the
3258 * setup.py (isfile): Pass local_icons option to latex2html, so the
3245 resulting HTML file is self-contained. Thanks to
3259 resulting HTML file is self-contained. Thanks to
3246 dryice-AT-liu.com.cn for the tip.
3260 dryice-AT-liu.com.cn for the tip.
3247
3261
3248 * pysh.py: I created a new profile 'shell', which implements a
3262 * pysh.py: I created a new profile 'shell', which implements a
3249 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3263 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3250 system shell, nor will it become one anytime soon. It's mainly
3264 system shell, nor will it become one anytime soon. It's mainly
3251 meant to illustrate the use of the new flexible bash-like prompts.
3265 meant to illustrate the use of the new flexible bash-like prompts.
3252 I guess it could be used by hardy souls for true shell management,
3266 I guess it could be used by hardy souls for true shell management,
3253 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3267 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3254 profile. This uses the InterpreterExec extension provided by
3268 profile. This uses the InterpreterExec extension provided by
3255 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3269 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3256
3270
3257 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3271 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3258 auto-align itself with the length of the previous input prompt
3272 auto-align itself with the length of the previous input prompt
3259 (taking into account the invisible color escapes).
3273 (taking into account the invisible color escapes).
3260 (CachedOutput.__init__): Large restructuring of this class. Now
3274 (CachedOutput.__init__): Large restructuring of this class. Now
3261 all three prompts (primary1, primary2, output) are proper objects,
3275 all three prompts (primary1, primary2, output) are proper objects,
3262 managed by the 'parent' CachedOutput class. The code is still a
3276 managed by the 'parent' CachedOutput class. The code is still a
3263 bit hackish (all prompts share state via a pointer to the cache),
3277 bit hackish (all prompts share state via a pointer to the cache),
3264 but it's overall far cleaner than before.
3278 but it's overall far cleaner than before.
3265
3279
3266 * IPython/genutils.py (getoutputerror): modified to add verbose,
3280 * IPython/genutils.py (getoutputerror): modified to add verbose,
3267 debug and header options. This makes the interface of all getout*
3281 debug and header options. This makes the interface of all getout*
3268 functions uniform.
3282 functions uniform.
3269 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3283 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3270
3284
3271 * IPython/Magic.py (Magic.default_option): added a function to
3285 * IPython/Magic.py (Magic.default_option): added a function to
3272 allow registering default options for any magic command. This
3286 allow registering default options for any magic command. This
3273 makes it easy to have profiles which customize the magics globally
3287 makes it easy to have profiles which customize the magics globally
3274 for a certain use. The values set through this function are
3288 for a certain use. The values set through this function are
3275 picked up by the parse_options() method, which all magics should
3289 picked up by the parse_options() method, which all magics should
3276 use to parse their options.
3290 use to parse their options.
3277
3291
3278 * IPython/genutils.py (warn): modified the warnings framework to
3292 * IPython/genutils.py (warn): modified the warnings framework to
3279 use the Term I/O class. I'm trying to slowly unify all of
3293 use the Term I/O class. I'm trying to slowly unify all of
3280 IPython's I/O operations to pass through Term.
3294 IPython's I/O operations to pass through Term.
3281
3295
3282 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3296 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3283 the secondary prompt to correctly match the length of the primary
3297 the secondary prompt to correctly match the length of the primary
3284 one for any prompt. Now multi-line code will properly line up
3298 one for any prompt. Now multi-line code will properly line up
3285 even for path dependent prompts, such as the new ones available
3299 even for path dependent prompts, such as the new ones available
3286 via the prompt_specials.
3300 via the prompt_specials.
3287
3301
3288 2004-06-06 Fernando Perez <fperez@colorado.edu>
3302 2004-06-06 Fernando Perez <fperez@colorado.edu>
3289
3303
3290 * IPython/Prompts.py (prompt_specials): Added the ability to have
3304 * IPython/Prompts.py (prompt_specials): Added the ability to have
3291 bash-like special sequences in the prompts, which get
3305 bash-like special sequences in the prompts, which get
3292 automatically expanded. Things like hostname, current working
3306 automatically expanded. Things like hostname, current working
3293 directory and username are implemented already, but it's easy to
3307 directory and username are implemented already, but it's easy to
3294 add more in the future. Thanks to a patch by W.J. van der Laan
3308 add more in the future. Thanks to a patch by W.J. van der Laan
3295 <gnufnork-AT-hetdigitalegat.nl>
3309 <gnufnork-AT-hetdigitalegat.nl>
3296 (prompt_specials): Added color support for prompt strings, so
3310 (prompt_specials): Added color support for prompt strings, so
3297 users can define arbitrary color setups for their prompts.
3311 users can define arbitrary color setups for their prompts.
3298
3312
3299 2004-06-05 Fernando Perez <fperez@colorado.edu>
3313 2004-06-05 Fernando Perez <fperez@colorado.edu>
3300
3314
3301 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3315 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3302 code to load Gary Bishop's readline and configure it
3316 code to load Gary Bishop's readline and configure it
3303 automatically. Thanks to Gary for help on this.
3317 automatically. Thanks to Gary for help on this.
3304
3318
3305 2004-06-01 Fernando Perez <fperez@colorado.edu>
3319 2004-06-01 Fernando Perez <fperez@colorado.edu>
3306
3320
3307 * IPython/Logger.py (Logger.create_log): fix bug for logging
3321 * IPython/Logger.py (Logger.create_log): fix bug for logging
3308 with no filename (previous fix was incomplete).
3322 with no filename (previous fix was incomplete).
3309
3323
3310 2004-05-25 Fernando Perez <fperez@colorado.edu>
3324 2004-05-25 Fernando Perez <fperez@colorado.edu>
3311
3325
3312 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3326 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3313 parens would get passed to the shell.
3327 parens would get passed to the shell.
3314
3328
3315 2004-05-20 Fernando Perez <fperez@colorado.edu>
3329 2004-05-20 Fernando Perez <fperez@colorado.edu>
3316
3330
3317 * IPython/Magic.py (Magic.magic_prun): changed default profile
3331 * IPython/Magic.py (Magic.magic_prun): changed default profile
3318 sort order to 'time' (the more common profiling need).
3332 sort order to 'time' (the more common profiling need).
3319
3333
3320 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3334 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3321 so that source code shown is guaranteed in sync with the file on
3335 so that source code shown is guaranteed in sync with the file on
3322 disk (also changed in psource). Similar fix to the one for
3336 disk (also changed in psource). Similar fix to the one for
3323 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3337 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3324 <yann.ledu-AT-noos.fr>.
3338 <yann.ledu-AT-noos.fr>.
3325
3339
3326 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3340 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3327 with a single option would not be correctly parsed. Closes
3341 with a single option would not be correctly parsed. Closes
3328 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3342 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3329 introduced in 0.6.0 (on 2004-05-06).
3343 introduced in 0.6.0 (on 2004-05-06).
3330
3344
3331 2004-05-13 *** Released version 0.6.0
3345 2004-05-13 *** Released version 0.6.0
3332
3346
3333 2004-05-13 Fernando Perez <fperez@colorado.edu>
3347 2004-05-13 Fernando Perez <fperez@colorado.edu>
3334
3348
3335 * debian/: Added debian/ directory to CVS, so that debian support
3349 * debian/: Added debian/ directory to CVS, so that debian support
3336 is publicly accessible. The debian package is maintained by Jack
3350 is publicly accessible. The debian package is maintained by Jack
3337 Moffit <jack-AT-xiph.org>.
3351 Moffit <jack-AT-xiph.org>.
3338
3352
3339 * Documentation: included the notes about an ipython-based system
3353 * Documentation: included the notes about an ipython-based system
3340 shell (the hypothetical 'pysh') into the new_design.pdf document,
3354 shell (the hypothetical 'pysh') into the new_design.pdf document,
3341 so that these ideas get distributed to users along with the
3355 so that these ideas get distributed to users along with the
3342 official documentation.
3356 official documentation.
3343
3357
3344 2004-05-10 Fernando Perez <fperez@colorado.edu>
3358 2004-05-10 Fernando Perez <fperez@colorado.edu>
3345
3359
3346 * IPython/Logger.py (Logger.create_log): fix recently introduced
3360 * IPython/Logger.py (Logger.create_log): fix recently introduced
3347 bug (misindented line) where logstart would fail when not given an
3361 bug (misindented line) where logstart would fail when not given an
3348 explicit filename.
3362 explicit filename.
3349
3363
3350 2004-05-09 Fernando Perez <fperez@colorado.edu>
3364 2004-05-09 Fernando Perez <fperez@colorado.edu>
3351
3365
3352 * IPython/Magic.py (Magic.parse_options): skip system call when
3366 * IPython/Magic.py (Magic.parse_options): skip system call when
3353 there are no options to look for. Faster, cleaner for the common
3367 there are no options to look for. Faster, cleaner for the common
3354 case.
3368 case.
3355
3369
3356 * Documentation: many updates to the manual: describing Windows
3370 * Documentation: many updates to the manual: describing Windows
3357 support better, Gnuplot updates, credits, misc small stuff. Also
3371 support better, Gnuplot updates, credits, misc small stuff. Also
3358 updated the new_design doc a bit.
3372 updated the new_design doc a bit.
3359
3373
3360 2004-05-06 *** Released version 0.6.0.rc1
3374 2004-05-06 *** Released version 0.6.0.rc1
3361
3375
3362 2004-05-06 Fernando Perez <fperez@colorado.edu>
3376 2004-05-06 Fernando Perez <fperez@colorado.edu>
3363
3377
3364 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3378 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3365 operations to use the vastly more efficient list/''.join() method.
3379 operations to use the vastly more efficient list/''.join() method.
3366 (FormattedTB.text): Fix
3380 (FormattedTB.text): Fix
3367 http://www.scipy.net/roundup/ipython/issue12 - exception source
3381 http://www.scipy.net/roundup/ipython/issue12 - exception source
3368 extract not updated after reload. Thanks to Mike Salib
3382 extract not updated after reload. Thanks to Mike Salib
3369 <msalib-AT-mit.edu> for pinning the source of the problem.
3383 <msalib-AT-mit.edu> for pinning the source of the problem.
3370 Fortunately, the solution works inside ipython and doesn't require
3384 Fortunately, the solution works inside ipython and doesn't require
3371 any changes to python proper.
3385 any changes to python proper.
3372
3386
3373 * IPython/Magic.py (Magic.parse_options): Improved to process the
3387 * IPython/Magic.py (Magic.parse_options): Improved to process the
3374 argument list as a true shell would (by actually using the
3388 argument list as a true shell would (by actually using the
3375 underlying system shell). This way, all @magics automatically get
3389 underlying system shell). This way, all @magics automatically get
3376 shell expansion for variables. Thanks to a comment by Alex
3390 shell expansion for variables. Thanks to a comment by Alex
3377 Schmolck.
3391 Schmolck.
3378
3392
3379 2004-04-04 Fernando Perez <fperez@colorado.edu>
3393 2004-04-04 Fernando Perez <fperez@colorado.edu>
3380
3394
3381 * IPython/iplib.py (InteractiveShell.interact): Added a special
3395 * IPython/iplib.py (InteractiveShell.interact): Added a special
3382 trap for a debugger quit exception, which is basically impossible
3396 trap for a debugger quit exception, which is basically impossible
3383 to handle by normal mechanisms, given what pdb does to the stack.
3397 to handle by normal mechanisms, given what pdb does to the stack.
3384 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3398 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3385
3399
3386 2004-04-03 Fernando Perez <fperez@colorado.edu>
3400 2004-04-03 Fernando Perez <fperez@colorado.edu>
3387
3401
3388 * IPython/genutils.py (Term): Standardized the names of the Term
3402 * IPython/genutils.py (Term): Standardized the names of the Term
3389 class streams to cin/cout/cerr, following C++ naming conventions
3403 class streams to cin/cout/cerr, following C++ naming conventions
3390 (I can't use in/out/err because 'in' is not a valid attribute
3404 (I can't use in/out/err because 'in' is not a valid attribute
3391 name).
3405 name).
3392
3406
3393 * IPython/iplib.py (InteractiveShell.interact): don't increment
3407 * IPython/iplib.py (InteractiveShell.interact): don't increment
3394 the prompt if there's no user input. By Daniel 'Dang' Griffith
3408 the prompt if there's no user input. By Daniel 'Dang' Griffith
3395 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3409 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3396 Francois Pinard.
3410 Francois Pinard.
3397
3411
3398 2004-04-02 Fernando Perez <fperez@colorado.edu>
3412 2004-04-02 Fernando Perez <fperez@colorado.edu>
3399
3413
3400 * IPython/genutils.py (Stream.__init__): Modified to survive at
3414 * IPython/genutils.py (Stream.__init__): Modified to survive at
3401 least importing in contexts where stdin/out/err aren't true file
3415 least importing in contexts where stdin/out/err aren't true file
3402 objects, such as PyCrust (they lack fileno() and mode). However,
3416 objects, such as PyCrust (they lack fileno() and mode). However,
3403 the recovery facilities which rely on these things existing will
3417 the recovery facilities which rely on these things existing will
3404 not work.
3418 not work.
3405
3419
3406 2004-04-01 Fernando Perez <fperez@colorado.edu>
3420 2004-04-01 Fernando Perez <fperez@colorado.edu>
3407
3421
3408 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3422 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3409 use the new getoutputerror() function, so it properly
3423 use the new getoutputerror() function, so it properly
3410 distinguishes stdout/err.
3424 distinguishes stdout/err.
3411
3425
3412 * IPython/genutils.py (getoutputerror): added a function to
3426 * IPython/genutils.py (getoutputerror): added a function to
3413 capture separately the standard output and error of a command.
3427 capture separately the standard output and error of a command.
3414 After a comment from dang on the mailing lists. This code is
3428 After a comment from dang on the mailing lists. This code is
3415 basically a modified version of commands.getstatusoutput(), from
3429 basically a modified version of commands.getstatusoutput(), from
3416 the standard library.
3430 the standard library.
3417
3431
3418 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3432 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3419 '!!' as a special syntax (shorthand) to access @sx.
3433 '!!' as a special syntax (shorthand) to access @sx.
3420
3434
3421 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3435 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3422 command and return its output as a list split on '\n'.
3436 command and return its output as a list split on '\n'.
3423
3437
3424 2004-03-31 Fernando Perez <fperez@colorado.edu>
3438 2004-03-31 Fernando Perez <fperez@colorado.edu>
3425
3439
3426 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3440 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3427 method to dictionaries used as FakeModule instances if they lack
3441 method to dictionaries used as FakeModule instances if they lack
3428 it. At least pydoc in python2.3 breaks for runtime-defined
3442 it. At least pydoc in python2.3 breaks for runtime-defined
3429 functions without this hack. At some point I need to _really_
3443 functions without this hack. At some point I need to _really_
3430 understand what FakeModule is doing, because it's a gross hack.
3444 understand what FakeModule is doing, because it's a gross hack.
3431 But it solves Arnd's problem for now...
3445 But it solves Arnd's problem for now...
3432
3446
3433 2004-02-27 Fernando Perez <fperez@colorado.edu>
3447 2004-02-27 Fernando Perez <fperez@colorado.edu>
3434
3448
3435 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3449 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3436 mode would behave erratically. Also increased the number of
3450 mode would behave erratically. Also increased the number of
3437 possible logs in rotate mod to 999. Thanks to Rod Holland
3451 possible logs in rotate mod to 999. Thanks to Rod Holland
3438 <rhh@StructureLABS.com> for the report and fixes.
3452 <rhh@StructureLABS.com> for the report and fixes.
3439
3453
3440 2004-02-26 Fernando Perez <fperez@colorado.edu>
3454 2004-02-26 Fernando Perez <fperez@colorado.edu>
3441
3455
3442 * IPython/genutils.py (page): Check that the curses module really
3456 * IPython/genutils.py (page): Check that the curses module really
3443 has the initscr attribute before trying to use it. For some
3457 has the initscr attribute before trying to use it. For some
3444 reason, the Solaris curses module is missing this. I think this
3458 reason, the Solaris curses module is missing this. I think this
3445 should be considered a Solaris python bug, but I'm not sure.
3459 should be considered a Solaris python bug, but I'm not sure.
3446
3460
3447 2004-01-17 Fernando Perez <fperez@colorado.edu>
3461 2004-01-17 Fernando Perez <fperez@colorado.edu>
3448
3462
3449 * IPython/genutils.py (Stream.__init__): Changes to try to make
3463 * IPython/genutils.py (Stream.__init__): Changes to try to make
3450 ipython robust against stdin/out/err being closed by the user.
3464 ipython robust against stdin/out/err being closed by the user.
3451 This is 'user error' (and blocks a normal python session, at least
3465 This is 'user error' (and blocks a normal python session, at least
3452 the stdout case). However, Ipython should be able to survive such
3466 the stdout case). However, Ipython should be able to survive such
3453 instances of abuse as gracefully as possible. To simplify the
3467 instances of abuse as gracefully as possible. To simplify the
3454 coding and maintain compatibility with Gary Bishop's Term
3468 coding and maintain compatibility with Gary Bishop's Term
3455 contributions, I've made use of classmethods for this. I think
3469 contributions, I've made use of classmethods for this. I think
3456 this introduces a dependency on python 2.2.
3470 this introduces a dependency on python 2.2.
3457
3471
3458 2004-01-13 Fernando Perez <fperez@colorado.edu>
3472 2004-01-13 Fernando Perez <fperez@colorado.edu>
3459
3473
3460 * IPython/numutils.py (exp_safe): simplified the code a bit and
3474 * IPython/numutils.py (exp_safe): simplified the code a bit and
3461 removed the need for importing the kinds module altogether.
3475 removed the need for importing the kinds module altogether.
3462
3476
3463 2004-01-06 Fernando Perez <fperez@colorado.edu>
3477 2004-01-06 Fernando Perez <fperez@colorado.edu>
3464
3478
3465 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3479 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3466 a magic function instead, after some community feedback. No
3480 a magic function instead, after some community feedback. No
3467 special syntax will exist for it, but its name is deliberately
3481 special syntax will exist for it, but its name is deliberately
3468 very short.
3482 very short.
3469
3483
3470 2003-12-20 Fernando Perez <fperez@colorado.edu>
3484 2003-12-20 Fernando Perez <fperez@colorado.edu>
3471
3485
3472 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3486 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3473 new functionality, to automagically assign the result of a shell
3487 new functionality, to automagically assign the result of a shell
3474 command to a variable. I'll solicit some community feedback on
3488 command to a variable. I'll solicit some community feedback on
3475 this before making it permanent.
3489 this before making it permanent.
3476
3490
3477 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3491 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3478 requested about callables for which inspect couldn't obtain a
3492 requested about callables for which inspect couldn't obtain a
3479 proper argspec. Thanks to a crash report sent by Etienne
3493 proper argspec. Thanks to a crash report sent by Etienne
3480 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3494 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3481
3495
3482 2003-12-09 Fernando Perez <fperez@colorado.edu>
3496 2003-12-09 Fernando Perez <fperez@colorado.edu>
3483
3497
3484 * IPython/genutils.py (page): patch for the pager to work across
3498 * IPython/genutils.py (page): patch for the pager to work across
3485 various versions of Windows. By Gary Bishop.
3499 various versions of Windows. By Gary Bishop.
3486
3500
3487 2003-12-04 Fernando Perez <fperez@colorado.edu>
3501 2003-12-04 Fernando Perez <fperez@colorado.edu>
3488
3502
3489 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3503 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3490 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3504 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3491 While I tested this and it looks ok, there may still be corner
3505 While I tested this and it looks ok, there may still be corner
3492 cases I've missed.
3506 cases I've missed.
3493
3507
3494 2003-12-01 Fernando Perez <fperez@colorado.edu>
3508 2003-12-01 Fernando Perez <fperez@colorado.edu>
3495
3509
3496 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3510 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3497 where a line like 'p,q=1,2' would fail because the automagic
3511 where a line like 'p,q=1,2' would fail because the automagic
3498 system would be triggered for @p.
3512 system would be triggered for @p.
3499
3513
3500 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3514 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3501 cleanups, code unmodified.
3515 cleanups, code unmodified.
3502
3516
3503 * IPython/genutils.py (Term): added a class for IPython to handle
3517 * IPython/genutils.py (Term): added a class for IPython to handle
3504 output. In most cases it will just be a proxy for stdout/err, but
3518 output. In most cases it will just be a proxy for stdout/err, but
3505 having this allows modifications to be made for some platforms,
3519 having this allows modifications to be made for some platforms,
3506 such as handling color escapes under Windows. All of this code
3520 such as handling color escapes under Windows. All of this code
3507 was contributed by Gary Bishop, with minor modifications by me.
3521 was contributed by Gary Bishop, with minor modifications by me.
3508 The actual changes affect many files.
3522 The actual changes affect many files.
3509
3523
3510 2003-11-30 Fernando Perez <fperez@colorado.edu>
3524 2003-11-30 Fernando Perez <fperez@colorado.edu>
3511
3525
3512 * IPython/iplib.py (file_matches): new completion code, courtesy
3526 * IPython/iplib.py (file_matches): new completion code, courtesy
3513 of Jeff Collins. This enables filename completion again under
3527 of Jeff Collins. This enables filename completion again under
3514 python 2.3, which disabled it at the C level.
3528 python 2.3, which disabled it at the C level.
3515
3529
3516 2003-11-11 Fernando Perez <fperez@colorado.edu>
3530 2003-11-11 Fernando Perez <fperez@colorado.edu>
3517
3531
3518 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3532 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3519 for Numeric.array(map(...)), but often convenient.
3533 for Numeric.array(map(...)), but often convenient.
3520
3534
3521 2003-11-05 Fernando Perez <fperez@colorado.edu>
3535 2003-11-05 Fernando Perez <fperez@colorado.edu>
3522
3536
3523 * IPython/numutils.py (frange): Changed a call from int() to
3537 * IPython/numutils.py (frange): Changed a call from int() to
3524 int(round()) to prevent a problem reported with arange() in the
3538 int(round()) to prevent a problem reported with arange() in the
3525 numpy list.
3539 numpy list.
3526
3540
3527 2003-10-06 Fernando Perez <fperez@colorado.edu>
3541 2003-10-06 Fernando Perez <fperez@colorado.edu>
3528
3542
3529 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3543 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3530 prevent crashes if sys lacks an argv attribute (it happens with
3544 prevent crashes if sys lacks an argv attribute (it happens with
3531 embedded interpreters which build a bare-bones sys module).
3545 embedded interpreters which build a bare-bones sys module).
3532 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3546 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3533
3547
3534 2003-09-24 Fernando Perez <fperez@colorado.edu>
3548 2003-09-24 Fernando Perez <fperez@colorado.edu>
3535
3549
3536 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3550 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3537 to protect against poorly written user objects where __getattr__
3551 to protect against poorly written user objects where __getattr__
3538 raises exceptions other than AttributeError. Thanks to a bug
3552 raises exceptions other than AttributeError. Thanks to a bug
3539 report by Oliver Sander <osander-AT-gmx.de>.
3553 report by Oliver Sander <osander-AT-gmx.de>.
3540
3554
3541 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3555 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3542 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3556 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3543
3557
3544 2003-09-09 Fernando Perez <fperez@colorado.edu>
3558 2003-09-09 Fernando Perez <fperez@colorado.edu>
3545
3559
3546 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3560 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3547 unpacking a list whith a callable as first element would
3561 unpacking a list whith a callable as first element would
3548 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3562 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3549 Collins.
3563 Collins.
3550
3564
3551 2003-08-25 *** Released version 0.5.0
3565 2003-08-25 *** Released version 0.5.0
3552
3566
3553 2003-08-22 Fernando Perez <fperez@colorado.edu>
3567 2003-08-22 Fernando Perez <fperez@colorado.edu>
3554
3568
3555 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3569 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3556 improperly defined user exceptions. Thanks to feedback from Mark
3570 improperly defined user exceptions. Thanks to feedback from Mark
3557 Russell <mrussell-AT-verio.net>.
3571 Russell <mrussell-AT-verio.net>.
3558
3572
3559 2003-08-20 Fernando Perez <fperez@colorado.edu>
3573 2003-08-20 Fernando Perez <fperez@colorado.edu>
3560
3574
3561 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3575 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3562 printing so that it would print multi-line string forms starting
3576 printing so that it would print multi-line string forms starting
3563 with a new line. This way the formatting is better respected for
3577 with a new line. This way the formatting is better respected for
3564 objects which work hard to make nice string forms.
3578 objects which work hard to make nice string forms.
3565
3579
3566 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3580 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3567 autocall would overtake data access for objects with both
3581 autocall would overtake data access for objects with both
3568 __getitem__ and __call__.
3582 __getitem__ and __call__.
3569
3583
3570 2003-08-19 *** Released version 0.5.0-rc1
3584 2003-08-19 *** Released version 0.5.0-rc1
3571
3585
3572 2003-08-19 Fernando Perez <fperez@colorado.edu>
3586 2003-08-19 Fernando Perez <fperez@colorado.edu>
3573
3587
3574 * IPython/deep_reload.py (load_tail): single tiny change here
3588 * IPython/deep_reload.py (load_tail): single tiny change here
3575 seems to fix the long-standing bug of dreload() failing to work
3589 seems to fix the long-standing bug of dreload() failing to work
3576 for dotted names. But this module is pretty tricky, so I may have
3590 for dotted names. But this module is pretty tricky, so I may have
3577 missed some subtlety. Needs more testing!.
3591 missed some subtlety. Needs more testing!.
3578
3592
3579 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3593 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3580 exceptions which have badly implemented __str__ methods.
3594 exceptions which have badly implemented __str__ methods.
3581 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3595 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3582 which I've been getting reports about from Python 2.3 users. I
3596 which I've been getting reports about from Python 2.3 users. I
3583 wish I had a simple test case to reproduce the problem, so I could
3597 wish I had a simple test case to reproduce the problem, so I could
3584 either write a cleaner workaround or file a bug report if
3598 either write a cleaner workaround or file a bug report if
3585 necessary.
3599 necessary.
3586
3600
3587 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3601 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3588 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3602 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3589 a bug report by Tjabo Kloppenburg.
3603 a bug report by Tjabo Kloppenburg.
3590
3604
3591 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3605 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3592 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3606 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3593 seems rather unstable. Thanks to a bug report by Tjabo
3607 seems rather unstable. Thanks to a bug report by Tjabo
3594 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3608 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3595
3609
3596 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3610 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3597 this out soon because of the critical fixes in the inner loop for
3611 this out soon because of the critical fixes in the inner loop for
3598 generators.
3612 generators.
3599
3613
3600 * IPython/Magic.py (Magic.getargspec): removed. This (and
3614 * IPython/Magic.py (Magic.getargspec): removed. This (and
3601 _get_def) have been obsoleted by OInspect for a long time, I
3615 _get_def) have been obsoleted by OInspect for a long time, I
3602 hadn't noticed that they were dead code.
3616 hadn't noticed that they were dead code.
3603 (Magic._ofind): restored _ofind functionality for a few literals
3617 (Magic._ofind): restored _ofind functionality for a few literals
3604 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3618 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3605 for things like "hello".capitalize?, since that would require a
3619 for things like "hello".capitalize?, since that would require a
3606 potentially dangerous eval() again.
3620 potentially dangerous eval() again.
3607
3621
3608 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3622 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3609 logic a bit more to clean up the escapes handling and minimize the
3623 logic a bit more to clean up the escapes handling and minimize the
3610 use of _ofind to only necessary cases. The interactive 'feel' of
3624 use of _ofind to only necessary cases. The interactive 'feel' of
3611 IPython should have improved quite a bit with the changes in
3625 IPython should have improved quite a bit with the changes in
3612 _prefilter and _ofind (besides being far safer than before).
3626 _prefilter and _ofind (besides being far safer than before).
3613
3627
3614 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3628 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3615 obscure, never reported). Edit would fail to find the object to
3629 obscure, never reported). Edit would fail to find the object to
3616 edit under some circumstances.
3630 edit under some circumstances.
3617 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3631 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3618 which were causing double-calling of generators. Those eval calls
3632 which were causing double-calling of generators. Those eval calls
3619 were _very_ dangerous, since code with side effects could be
3633 were _very_ dangerous, since code with side effects could be
3620 triggered. As they say, 'eval is evil'... These were the
3634 triggered. As they say, 'eval is evil'... These were the
3621 nastiest evals in IPython. Besides, _ofind is now far simpler,
3635 nastiest evals in IPython. Besides, _ofind is now far simpler,
3622 and it should also be quite a bit faster. Its use of inspect is
3636 and it should also be quite a bit faster. Its use of inspect is
3623 also safer, so perhaps some of the inspect-related crashes I've
3637 also safer, so perhaps some of the inspect-related crashes I've
3624 seen lately with Python 2.3 might be taken care of. That will
3638 seen lately with Python 2.3 might be taken care of. That will
3625 need more testing.
3639 need more testing.
3626
3640
3627 2003-08-17 Fernando Perez <fperez@colorado.edu>
3641 2003-08-17 Fernando Perez <fperez@colorado.edu>
3628
3642
3629 * IPython/iplib.py (InteractiveShell._prefilter): significant
3643 * IPython/iplib.py (InteractiveShell._prefilter): significant
3630 simplifications to the logic for handling user escapes. Faster
3644 simplifications to the logic for handling user escapes. Faster
3631 and simpler code.
3645 and simpler code.
3632
3646
3633 2003-08-14 Fernando Perez <fperez@colorado.edu>
3647 2003-08-14 Fernando Perez <fperez@colorado.edu>
3634
3648
3635 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3649 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3636 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3650 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3637 but it should be quite a bit faster. And the recursive version
3651 but it should be quite a bit faster. And the recursive version
3638 generated O(log N) intermediate storage for all rank>1 arrays,
3652 generated O(log N) intermediate storage for all rank>1 arrays,
3639 even if they were contiguous.
3653 even if they were contiguous.
3640 (l1norm): Added this function.
3654 (l1norm): Added this function.
3641 (norm): Added this function for arbitrary norms (including
3655 (norm): Added this function for arbitrary norms (including
3642 l-infinity). l1 and l2 are still special cases for convenience
3656 l-infinity). l1 and l2 are still special cases for convenience
3643 and speed.
3657 and speed.
3644
3658
3645 2003-08-03 Fernando Perez <fperez@colorado.edu>
3659 2003-08-03 Fernando Perez <fperez@colorado.edu>
3646
3660
3647 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3661 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3648 exceptions, which now raise PendingDeprecationWarnings in Python
3662 exceptions, which now raise PendingDeprecationWarnings in Python
3649 2.3. There were some in Magic and some in Gnuplot2.
3663 2.3. There were some in Magic and some in Gnuplot2.
3650
3664
3651 2003-06-30 Fernando Perez <fperez@colorado.edu>
3665 2003-06-30 Fernando Perez <fperez@colorado.edu>
3652
3666
3653 * IPython/genutils.py (page): modified to call curses only for
3667 * IPython/genutils.py (page): modified to call curses only for
3654 terminals where TERM=='xterm'. After problems under many other
3668 terminals where TERM=='xterm'. After problems under many other
3655 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3669 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3656
3670
3657 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3671 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3658 would be triggered when readline was absent. This was just an old
3672 would be triggered when readline was absent. This was just an old
3659 debugging statement I'd forgotten to take out.
3673 debugging statement I'd forgotten to take out.
3660
3674
3661 2003-06-20 Fernando Perez <fperez@colorado.edu>
3675 2003-06-20 Fernando Perez <fperez@colorado.edu>
3662
3676
3663 * IPython/genutils.py (clock): modified to return only user time
3677 * IPython/genutils.py (clock): modified to return only user time
3664 (not counting system time), after a discussion on scipy. While
3678 (not counting system time), after a discussion on scipy. While
3665 system time may be a useful quantity occasionally, it may much
3679 system time may be a useful quantity occasionally, it may much
3666 more easily be skewed by occasional swapping or other similar
3680 more easily be skewed by occasional swapping or other similar
3667 activity.
3681 activity.
3668
3682
3669 2003-06-05 Fernando Perez <fperez@colorado.edu>
3683 2003-06-05 Fernando Perez <fperez@colorado.edu>
3670
3684
3671 * IPython/numutils.py (identity): new function, for building
3685 * IPython/numutils.py (identity): new function, for building
3672 arbitrary rank Kronecker deltas (mostly backwards compatible with
3686 arbitrary rank Kronecker deltas (mostly backwards compatible with
3673 Numeric.identity)
3687 Numeric.identity)
3674
3688
3675 2003-06-03 Fernando Perez <fperez@colorado.edu>
3689 2003-06-03 Fernando Perez <fperez@colorado.edu>
3676
3690
3677 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3691 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3678 arguments passed to magics with spaces, to allow trailing '\' to
3692 arguments passed to magics with spaces, to allow trailing '\' to
3679 work normally (mainly for Windows users).
3693 work normally (mainly for Windows users).
3680
3694
3681 2003-05-29 Fernando Perez <fperez@colorado.edu>
3695 2003-05-29 Fernando Perez <fperez@colorado.edu>
3682
3696
3683 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3697 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3684 instead of pydoc.help. This fixes a bizarre behavior where
3698 instead of pydoc.help. This fixes a bizarre behavior where
3685 printing '%s' % locals() would trigger the help system. Now
3699 printing '%s' % locals() would trigger the help system. Now
3686 ipython behaves like normal python does.
3700 ipython behaves like normal python does.
3687
3701
3688 Note that if one does 'from pydoc import help', the bizarre
3702 Note that if one does 'from pydoc import help', the bizarre
3689 behavior returns, but this will also happen in normal python, so
3703 behavior returns, but this will also happen in normal python, so
3690 it's not an ipython bug anymore (it has to do with how pydoc.help
3704 it's not an ipython bug anymore (it has to do with how pydoc.help
3691 is implemented).
3705 is implemented).
3692
3706
3693 2003-05-22 Fernando Perez <fperez@colorado.edu>
3707 2003-05-22 Fernando Perez <fperez@colorado.edu>
3694
3708
3695 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3709 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3696 return [] instead of None when nothing matches, also match to end
3710 return [] instead of None when nothing matches, also match to end
3697 of line. Patch by Gary Bishop.
3711 of line. Patch by Gary Bishop.
3698
3712
3699 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3713 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3700 protection as before, for files passed on the command line. This
3714 protection as before, for files passed on the command line. This
3701 prevents the CrashHandler from kicking in if user files call into
3715 prevents the CrashHandler from kicking in if user files call into
3702 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3716 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3703 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3717 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3704
3718
3705 2003-05-20 *** Released version 0.4.0
3719 2003-05-20 *** Released version 0.4.0
3706
3720
3707 2003-05-20 Fernando Perez <fperez@colorado.edu>
3721 2003-05-20 Fernando Perez <fperez@colorado.edu>
3708
3722
3709 * setup.py: added support for manpages. It's a bit hackish b/c of
3723 * setup.py: added support for manpages. It's a bit hackish b/c of
3710 a bug in the way the bdist_rpm distutils target handles gzipped
3724 a bug in the way the bdist_rpm distutils target handles gzipped
3711 manpages, but it works. After a patch by Jack.
3725 manpages, but it works. After a patch by Jack.
3712
3726
3713 2003-05-19 Fernando Perez <fperez@colorado.edu>
3727 2003-05-19 Fernando Perez <fperez@colorado.edu>
3714
3728
3715 * IPython/numutils.py: added a mockup of the kinds module, since
3729 * IPython/numutils.py: added a mockup of the kinds module, since
3716 it was recently removed from Numeric. This way, numutils will
3730 it was recently removed from Numeric. This way, numutils will
3717 work for all users even if they are missing kinds.
3731 work for all users even if they are missing kinds.
3718
3732
3719 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3733 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3720 failure, which can occur with SWIG-wrapped extensions. After a
3734 failure, which can occur with SWIG-wrapped extensions. After a
3721 crash report from Prabhu.
3735 crash report from Prabhu.
3722
3736
3723 2003-05-16 Fernando Perez <fperez@colorado.edu>
3737 2003-05-16 Fernando Perez <fperez@colorado.edu>
3724
3738
3725 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3739 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3726 protect ipython from user code which may call directly
3740 protect ipython from user code which may call directly
3727 sys.excepthook (this looks like an ipython crash to the user, even
3741 sys.excepthook (this looks like an ipython crash to the user, even
3728 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3742 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3729 This is especially important to help users of WxWindows, but may
3743 This is especially important to help users of WxWindows, but may
3730 also be useful in other cases.
3744 also be useful in other cases.
3731
3745
3732 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3746 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3733 an optional tb_offset to be specified, and to preserve exception
3747 an optional tb_offset to be specified, and to preserve exception
3734 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3748 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3735
3749
3736 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3750 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3737
3751
3738 2003-05-15 Fernando Perez <fperez@colorado.edu>
3752 2003-05-15 Fernando Perez <fperez@colorado.edu>
3739
3753
3740 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3754 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3741 installing for a new user under Windows.
3755 installing for a new user under Windows.
3742
3756
3743 2003-05-12 Fernando Perez <fperez@colorado.edu>
3757 2003-05-12 Fernando Perez <fperez@colorado.edu>
3744
3758
3745 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3759 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3746 handler for Emacs comint-based lines. Currently it doesn't do
3760 handler for Emacs comint-based lines. Currently it doesn't do
3747 much (but importantly, it doesn't update the history cache). In
3761 much (but importantly, it doesn't update the history cache). In
3748 the future it may be expanded if Alex needs more functionality
3762 the future it may be expanded if Alex needs more functionality
3749 there.
3763 there.
3750
3764
3751 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3765 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3752 info to crash reports.
3766 info to crash reports.
3753
3767
3754 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3768 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3755 just like Python's -c. Also fixed crash with invalid -color
3769 just like Python's -c. Also fixed crash with invalid -color
3756 option value at startup. Thanks to Will French
3770 option value at startup. Thanks to Will French
3757 <wfrench-AT-bestweb.net> for the bug report.
3771 <wfrench-AT-bestweb.net> for the bug report.
3758
3772
3759 2003-05-09 Fernando Perez <fperez@colorado.edu>
3773 2003-05-09 Fernando Perez <fperez@colorado.edu>
3760
3774
3761 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3775 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3762 to EvalDict (it's a mapping, after all) and simplified its code
3776 to EvalDict (it's a mapping, after all) and simplified its code
3763 quite a bit, after a nice discussion on c.l.py where Gustavo
3777 quite a bit, after a nice discussion on c.l.py where Gustavo
3764 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3778 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3765
3779
3766 2003-04-30 Fernando Perez <fperez@colorado.edu>
3780 2003-04-30 Fernando Perez <fperez@colorado.edu>
3767
3781
3768 * IPython/genutils.py (timings_out): modified it to reduce its
3782 * IPython/genutils.py (timings_out): modified it to reduce its
3769 overhead in the common reps==1 case.
3783 overhead in the common reps==1 case.
3770
3784
3771 2003-04-29 Fernando Perez <fperez@colorado.edu>
3785 2003-04-29 Fernando Perez <fperez@colorado.edu>
3772
3786
3773 * IPython/genutils.py (timings_out): Modified to use the resource
3787 * IPython/genutils.py (timings_out): Modified to use the resource
3774 module, which avoids the wraparound problems of time.clock().
3788 module, which avoids the wraparound problems of time.clock().
3775
3789
3776 2003-04-17 *** Released version 0.2.15pre4
3790 2003-04-17 *** Released version 0.2.15pre4
3777
3791
3778 2003-04-17 Fernando Perez <fperez@colorado.edu>
3792 2003-04-17 Fernando Perez <fperez@colorado.edu>
3779
3793
3780 * setup.py (scriptfiles): Split windows-specific stuff over to a
3794 * setup.py (scriptfiles): Split windows-specific stuff over to a
3781 separate file, in an attempt to have a Windows GUI installer.
3795 separate file, in an attempt to have a Windows GUI installer.
3782 That didn't work, but part of the groundwork is done.
3796 That didn't work, but part of the groundwork is done.
3783
3797
3784 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3798 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3785 indent/unindent with 4 spaces. Particularly useful in combination
3799 indent/unindent with 4 spaces. Particularly useful in combination
3786 with the new auto-indent option.
3800 with the new auto-indent option.
3787
3801
3788 2003-04-16 Fernando Perez <fperez@colorado.edu>
3802 2003-04-16 Fernando Perez <fperez@colorado.edu>
3789
3803
3790 * IPython/Magic.py: various replacements of self.rc for
3804 * IPython/Magic.py: various replacements of self.rc for
3791 self.shell.rc. A lot more remains to be done to fully disentangle
3805 self.shell.rc. A lot more remains to be done to fully disentangle
3792 this class from the main Shell class.
3806 this class from the main Shell class.
3793
3807
3794 * IPython/GnuplotRuntime.py: added checks for mouse support so
3808 * IPython/GnuplotRuntime.py: added checks for mouse support so
3795 that we don't try to enable it if the current gnuplot doesn't
3809 that we don't try to enable it if the current gnuplot doesn't
3796 really support it. Also added checks so that we don't try to
3810 really support it. Also added checks so that we don't try to
3797 enable persist under Windows (where Gnuplot doesn't recognize the
3811 enable persist under Windows (where Gnuplot doesn't recognize the
3798 option).
3812 option).
3799
3813
3800 * IPython/iplib.py (InteractiveShell.interact): Added optional
3814 * IPython/iplib.py (InteractiveShell.interact): Added optional
3801 auto-indenting code, after a patch by King C. Shu
3815 auto-indenting code, after a patch by King C. Shu
3802 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3816 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3803 get along well with pasting indented code. If I ever figure out
3817 get along well with pasting indented code. If I ever figure out
3804 how to make that part go well, it will become on by default.
3818 how to make that part go well, it will become on by default.
3805
3819
3806 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3820 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3807 crash ipython if there was an unmatched '%' in the user's prompt
3821 crash ipython if there was an unmatched '%' in the user's prompt
3808 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3822 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3809
3823
3810 * IPython/iplib.py (InteractiveShell.interact): removed the
3824 * IPython/iplib.py (InteractiveShell.interact): removed the
3811 ability to ask the user whether he wants to crash or not at the
3825 ability to ask the user whether he wants to crash or not at the
3812 'last line' exception handler. Calling functions at that point
3826 'last line' exception handler. Calling functions at that point
3813 changes the stack, and the error reports would have incorrect
3827 changes the stack, and the error reports would have incorrect
3814 tracebacks.
3828 tracebacks.
3815
3829
3816 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3830 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3817 pass through a peger a pretty-printed form of any object. After a
3831 pass through a peger a pretty-printed form of any object. After a
3818 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3832 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3819
3833
3820 2003-04-14 Fernando Perez <fperez@colorado.edu>
3834 2003-04-14 Fernando Perez <fperez@colorado.edu>
3821
3835
3822 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3836 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3823 all files in ~ would be modified at first install (instead of
3837 all files in ~ would be modified at first install (instead of
3824 ~/.ipython). This could be potentially disastrous, as the
3838 ~/.ipython). This could be potentially disastrous, as the
3825 modification (make line-endings native) could damage binary files.
3839 modification (make line-endings native) could damage binary files.
3826
3840
3827 2003-04-10 Fernando Perez <fperez@colorado.edu>
3841 2003-04-10 Fernando Perez <fperez@colorado.edu>
3828
3842
3829 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3843 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3830 handle only lines which are invalid python. This now means that
3844 handle only lines which are invalid python. This now means that
3831 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3845 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3832 for the bug report.
3846 for the bug report.
3833
3847
3834 2003-04-01 Fernando Perez <fperez@colorado.edu>
3848 2003-04-01 Fernando Perez <fperez@colorado.edu>
3835
3849
3836 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3850 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3837 where failing to set sys.last_traceback would crash pdb.pm().
3851 where failing to set sys.last_traceback would crash pdb.pm().
3838 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3852 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3839 report.
3853 report.
3840
3854
3841 2003-03-25 Fernando Perez <fperez@colorado.edu>
3855 2003-03-25 Fernando Perez <fperez@colorado.edu>
3842
3856
3843 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3857 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3844 before printing it (it had a lot of spurious blank lines at the
3858 before printing it (it had a lot of spurious blank lines at the
3845 end).
3859 end).
3846
3860
3847 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3861 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3848 output would be sent 21 times! Obviously people don't use this
3862 output would be sent 21 times! Obviously people don't use this
3849 too often, or I would have heard about it.
3863 too often, or I would have heard about it.
3850
3864
3851 2003-03-24 Fernando Perez <fperez@colorado.edu>
3865 2003-03-24 Fernando Perez <fperez@colorado.edu>
3852
3866
3853 * setup.py (scriptfiles): renamed the data_files parameter from
3867 * setup.py (scriptfiles): renamed the data_files parameter from
3854 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3868 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3855 for the patch.
3869 for the patch.
3856
3870
3857 2003-03-20 Fernando Perez <fperez@colorado.edu>
3871 2003-03-20 Fernando Perez <fperez@colorado.edu>
3858
3872
3859 * IPython/genutils.py (error): added error() and fatal()
3873 * IPython/genutils.py (error): added error() and fatal()
3860 functions.
3874 functions.
3861
3875
3862 2003-03-18 *** Released version 0.2.15pre3
3876 2003-03-18 *** Released version 0.2.15pre3
3863
3877
3864 2003-03-18 Fernando Perez <fperez@colorado.edu>
3878 2003-03-18 Fernando Perez <fperez@colorado.edu>
3865
3879
3866 * setupext/install_data_ext.py
3880 * setupext/install_data_ext.py
3867 (install_data_ext.initialize_options): Class contributed by Jack
3881 (install_data_ext.initialize_options): Class contributed by Jack
3868 Moffit for fixing the old distutils hack. He is sending this to
3882 Moffit for fixing the old distutils hack. He is sending this to
3869 the distutils folks so in the future we may not need it as a
3883 the distutils folks so in the future we may not need it as a
3870 private fix.
3884 private fix.
3871
3885
3872 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3886 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3873 changes for Debian packaging. See his patch for full details.
3887 changes for Debian packaging. See his patch for full details.
3874 The old distutils hack of making the ipythonrc* files carry a
3888 The old distutils hack of making the ipythonrc* files carry a
3875 bogus .py extension is gone, at last. Examples were moved to a
3889 bogus .py extension is gone, at last. Examples were moved to a
3876 separate subdir under doc/, and the separate executable scripts
3890 separate subdir under doc/, and the separate executable scripts
3877 now live in their own directory. Overall a great cleanup. The
3891 now live in their own directory. Overall a great cleanup. The
3878 manual was updated to use the new files, and setup.py has been
3892 manual was updated to use the new files, and setup.py has been
3879 fixed for this setup.
3893 fixed for this setup.
3880
3894
3881 * IPython/PyColorize.py (Parser.usage): made non-executable and
3895 * IPython/PyColorize.py (Parser.usage): made non-executable and
3882 created a pycolor wrapper around it to be included as a script.
3896 created a pycolor wrapper around it to be included as a script.
3883
3897
3884 2003-03-12 *** Released version 0.2.15pre2
3898 2003-03-12 *** Released version 0.2.15pre2
3885
3899
3886 2003-03-12 Fernando Perez <fperez@colorado.edu>
3900 2003-03-12 Fernando Perez <fperez@colorado.edu>
3887
3901
3888 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3902 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3889 long-standing problem with garbage characters in some terminals.
3903 long-standing problem with garbage characters in some terminals.
3890 The issue was really that the \001 and \002 escapes must _only_ be
3904 The issue was really that the \001 and \002 escapes must _only_ be
3891 passed to input prompts (which call readline), but _never_ to
3905 passed to input prompts (which call readline), but _never_ to
3892 normal text to be printed on screen. I changed ColorANSI to have
3906 normal text to be printed on screen. I changed ColorANSI to have
3893 two classes: TermColors and InputTermColors, each with the
3907 two classes: TermColors and InputTermColors, each with the
3894 appropriate escapes for input prompts or normal text. The code in
3908 appropriate escapes for input prompts or normal text. The code in
3895 Prompts.py got slightly more complicated, but this very old and
3909 Prompts.py got slightly more complicated, but this very old and
3896 annoying bug is finally fixed.
3910 annoying bug is finally fixed.
3897
3911
3898 All the credit for nailing down the real origin of this problem
3912 All the credit for nailing down the real origin of this problem
3899 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3913 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3900 *Many* thanks to him for spending quite a bit of effort on this.
3914 *Many* thanks to him for spending quite a bit of effort on this.
3901
3915
3902 2003-03-05 *** Released version 0.2.15pre1
3916 2003-03-05 *** Released version 0.2.15pre1
3903
3917
3904 2003-03-03 Fernando Perez <fperez@colorado.edu>
3918 2003-03-03 Fernando Perez <fperez@colorado.edu>
3905
3919
3906 * IPython/FakeModule.py: Moved the former _FakeModule to a
3920 * IPython/FakeModule.py: Moved the former _FakeModule to a
3907 separate file, because it's also needed by Magic (to fix a similar
3921 separate file, because it's also needed by Magic (to fix a similar
3908 pickle-related issue in @run).
3922 pickle-related issue in @run).
3909
3923
3910 2003-03-02 Fernando Perez <fperez@colorado.edu>
3924 2003-03-02 Fernando Perez <fperez@colorado.edu>
3911
3925
3912 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3926 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3913 the autocall option at runtime.
3927 the autocall option at runtime.
3914 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3928 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3915 across Magic.py to start separating Magic from InteractiveShell.
3929 across Magic.py to start separating Magic from InteractiveShell.
3916 (Magic._ofind): Fixed to return proper namespace for dotted
3930 (Magic._ofind): Fixed to return proper namespace for dotted
3917 names. Before, a dotted name would always return 'not currently
3931 names. Before, a dotted name would always return 'not currently
3918 defined', because it would find the 'parent'. s.x would be found,
3932 defined', because it would find the 'parent'. s.x would be found,
3919 but since 'x' isn't defined by itself, it would get confused.
3933 but since 'x' isn't defined by itself, it would get confused.
3920 (Magic.magic_run): Fixed pickling problems reported by Ralf
3934 (Magic.magic_run): Fixed pickling problems reported by Ralf
3921 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3935 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3922 that I'd used when Mike Heeter reported similar issues at the
3936 that I'd used when Mike Heeter reported similar issues at the
3923 top-level, but now for @run. It boils down to injecting the
3937 top-level, but now for @run. It boils down to injecting the
3924 namespace where code is being executed with something that looks
3938 namespace where code is being executed with something that looks
3925 enough like a module to fool pickle.dump(). Since a pickle stores
3939 enough like a module to fool pickle.dump(). Since a pickle stores
3926 a named reference to the importing module, we need this for
3940 a named reference to the importing module, we need this for
3927 pickles to save something sensible.
3941 pickles to save something sensible.
3928
3942
3929 * IPython/ipmaker.py (make_IPython): added an autocall option.
3943 * IPython/ipmaker.py (make_IPython): added an autocall option.
3930
3944
3931 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3945 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3932 the auto-eval code. Now autocalling is an option, and the code is
3946 the auto-eval code. Now autocalling is an option, and the code is
3933 also vastly safer. There is no more eval() involved at all.
3947 also vastly safer. There is no more eval() involved at all.
3934
3948
3935 2003-03-01 Fernando Perez <fperez@colorado.edu>
3949 2003-03-01 Fernando Perez <fperez@colorado.edu>
3936
3950
3937 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3951 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3938 dict with named keys instead of a tuple.
3952 dict with named keys instead of a tuple.
3939
3953
3940 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3954 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3941
3955
3942 * setup.py (make_shortcut): Fixed message about directories
3956 * setup.py (make_shortcut): Fixed message about directories
3943 created during Windows installation (the directories were ok, just
3957 created during Windows installation (the directories were ok, just
3944 the printed message was misleading). Thanks to Chris Liechti
3958 the printed message was misleading). Thanks to Chris Liechti
3945 <cliechti-AT-gmx.net> for the heads up.
3959 <cliechti-AT-gmx.net> for the heads up.
3946
3960
3947 2003-02-21 Fernando Perez <fperez@colorado.edu>
3961 2003-02-21 Fernando Perez <fperez@colorado.edu>
3948
3962
3949 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3963 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3950 of ValueError exception when checking for auto-execution. This
3964 of ValueError exception when checking for auto-execution. This
3951 one is raised by things like Numeric arrays arr.flat when the
3965 one is raised by things like Numeric arrays arr.flat when the
3952 array is non-contiguous.
3966 array is non-contiguous.
3953
3967
3954 2003-01-31 Fernando Perez <fperez@colorado.edu>
3968 2003-01-31 Fernando Perez <fperez@colorado.edu>
3955
3969
3956 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3970 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3957 not return any value at all (even though the command would get
3971 not return any value at all (even though the command would get
3958 executed).
3972 executed).
3959 (xsys): Flush stdout right after printing the command to ensure
3973 (xsys): Flush stdout right after printing the command to ensure
3960 proper ordering of commands and command output in the total
3974 proper ordering of commands and command output in the total
3961 output.
3975 output.
3962 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3976 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3963 system/getoutput as defaults. The old ones are kept for
3977 system/getoutput as defaults. The old ones are kept for
3964 compatibility reasons, so no code which uses this library needs
3978 compatibility reasons, so no code which uses this library needs
3965 changing.
3979 changing.
3966
3980
3967 2003-01-27 *** Released version 0.2.14
3981 2003-01-27 *** Released version 0.2.14
3968
3982
3969 2003-01-25 Fernando Perez <fperez@colorado.edu>
3983 2003-01-25 Fernando Perez <fperez@colorado.edu>
3970
3984
3971 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3985 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3972 functions defined in previous edit sessions could not be re-edited
3986 functions defined in previous edit sessions could not be re-edited
3973 (because the temp files were immediately removed). Now temp files
3987 (because the temp files were immediately removed). Now temp files
3974 are removed only at IPython's exit.
3988 are removed only at IPython's exit.
3975 (Magic.magic_run): Improved @run to perform shell-like expansions
3989 (Magic.magic_run): Improved @run to perform shell-like expansions
3976 on its arguments (~users and $VARS). With this, @run becomes more
3990 on its arguments (~users and $VARS). With this, @run becomes more
3977 like a normal command-line.
3991 like a normal command-line.
3978
3992
3979 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3993 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3980 bugs related to embedding and cleaned up that code. A fairly
3994 bugs related to embedding and cleaned up that code. A fairly
3981 important one was the impossibility to access the global namespace
3995 important one was the impossibility to access the global namespace
3982 through the embedded IPython (only local variables were visible).
3996 through the embedded IPython (only local variables were visible).
3983
3997
3984 2003-01-14 Fernando Perez <fperez@colorado.edu>
3998 2003-01-14 Fernando Perez <fperez@colorado.edu>
3985
3999
3986 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4000 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3987 auto-calling to be a bit more conservative. Now it doesn't get
4001 auto-calling to be a bit more conservative. Now it doesn't get
3988 triggered if any of '!=()<>' are in the rest of the input line, to
4002 triggered if any of '!=()<>' are in the rest of the input line, to
3989 allow comparing callables. Thanks to Alex for the heads up.
4003 allow comparing callables. Thanks to Alex for the heads up.
3990
4004
3991 2003-01-07 Fernando Perez <fperez@colorado.edu>
4005 2003-01-07 Fernando Perez <fperez@colorado.edu>
3992
4006
3993 * IPython/genutils.py (page): fixed estimation of the number of
4007 * IPython/genutils.py (page): fixed estimation of the number of
3994 lines in a string to be paged to simply count newlines. This
4008 lines in a string to be paged to simply count newlines. This
3995 prevents over-guessing due to embedded escape sequences. A better
4009 prevents over-guessing due to embedded escape sequences. A better
3996 long-term solution would involve stripping out the control chars
4010 long-term solution would involve stripping out the control chars
3997 for the count, but it's potentially so expensive I just don't
4011 for the count, but it's potentially so expensive I just don't
3998 think it's worth doing.
4012 think it's worth doing.
3999
4013
4000 2002-12-19 *** Released version 0.2.14pre50
4014 2002-12-19 *** Released version 0.2.14pre50
4001
4015
4002 2002-12-19 Fernando Perez <fperez@colorado.edu>
4016 2002-12-19 Fernando Perez <fperez@colorado.edu>
4003
4017
4004 * tools/release (version): Changed release scripts to inform
4018 * tools/release (version): Changed release scripts to inform
4005 Andrea and build a NEWS file with a list of recent changes.
4019 Andrea and build a NEWS file with a list of recent changes.
4006
4020
4007 * IPython/ColorANSI.py (__all__): changed terminal detection
4021 * IPython/ColorANSI.py (__all__): changed terminal detection
4008 code. Seems to work better for xterms without breaking
4022 code. Seems to work better for xterms without breaking
4009 konsole. Will need more testing to determine if WinXP and Mac OSX
4023 konsole. Will need more testing to determine if WinXP and Mac OSX
4010 also work ok.
4024 also work ok.
4011
4025
4012 2002-12-18 *** Released version 0.2.14pre49
4026 2002-12-18 *** Released version 0.2.14pre49
4013
4027
4014 2002-12-18 Fernando Perez <fperez@colorado.edu>
4028 2002-12-18 Fernando Perez <fperez@colorado.edu>
4015
4029
4016 * Docs: added new info about Mac OSX, from Andrea.
4030 * Docs: added new info about Mac OSX, from Andrea.
4017
4031
4018 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4032 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4019 allow direct plotting of python strings whose format is the same
4033 allow direct plotting of python strings whose format is the same
4020 of gnuplot data files.
4034 of gnuplot data files.
4021
4035
4022 2002-12-16 Fernando Perez <fperez@colorado.edu>
4036 2002-12-16 Fernando Perez <fperez@colorado.edu>
4023
4037
4024 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4038 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4025 value of exit question to be acknowledged.
4039 value of exit question to be acknowledged.
4026
4040
4027 2002-12-03 Fernando Perez <fperez@colorado.edu>
4041 2002-12-03 Fernando Perez <fperez@colorado.edu>
4028
4042
4029 * IPython/ipmaker.py: removed generators, which had been added
4043 * IPython/ipmaker.py: removed generators, which had been added
4030 by mistake in an earlier debugging run. This was causing trouble
4044 by mistake in an earlier debugging run. This was causing trouble
4031 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4045 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4032 for pointing this out.
4046 for pointing this out.
4033
4047
4034 2002-11-17 Fernando Perez <fperez@colorado.edu>
4048 2002-11-17 Fernando Perez <fperez@colorado.edu>
4035
4049
4036 * Manual: updated the Gnuplot section.
4050 * Manual: updated the Gnuplot section.
4037
4051
4038 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4052 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4039 a much better split of what goes in Runtime and what goes in
4053 a much better split of what goes in Runtime and what goes in
4040 Interactive.
4054 Interactive.
4041
4055
4042 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4056 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4043 being imported from iplib.
4057 being imported from iplib.
4044
4058
4045 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4059 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4046 for command-passing. Now the global Gnuplot instance is called
4060 for command-passing. Now the global Gnuplot instance is called
4047 'gp' instead of 'g', which was really a far too fragile and
4061 'gp' instead of 'g', which was really a far too fragile and
4048 common name.
4062 common name.
4049
4063
4050 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4064 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4051 bounding boxes generated by Gnuplot for square plots.
4065 bounding boxes generated by Gnuplot for square plots.
4052
4066
4053 * IPython/genutils.py (popkey): new function added. I should
4067 * IPython/genutils.py (popkey): new function added. I should
4054 suggest this on c.l.py as a dict method, it seems useful.
4068 suggest this on c.l.py as a dict method, it seems useful.
4055
4069
4056 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4070 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4057 to transparently handle PostScript generation. MUCH better than
4071 to transparently handle PostScript generation. MUCH better than
4058 the previous plot_eps/replot_eps (which I removed now). The code
4072 the previous plot_eps/replot_eps (which I removed now). The code
4059 is also fairly clean and well documented now (including
4073 is also fairly clean and well documented now (including
4060 docstrings).
4074 docstrings).
4061
4075
4062 2002-11-13 Fernando Perez <fperez@colorado.edu>
4076 2002-11-13 Fernando Perez <fperez@colorado.edu>
4063
4077
4064 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4078 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4065 (inconsistent with options).
4079 (inconsistent with options).
4066
4080
4067 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4081 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4068 manually disabled, I don't know why. Fixed it.
4082 manually disabled, I don't know why. Fixed it.
4069 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4083 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4070 eps output.
4084 eps output.
4071
4085
4072 2002-11-12 Fernando Perez <fperez@colorado.edu>
4086 2002-11-12 Fernando Perez <fperez@colorado.edu>
4073
4087
4074 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4088 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4075 don't propagate up to caller. Fixes crash reported by François
4089 don't propagate up to caller. Fixes crash reported by François
4076 Pinard.
4090 Pinard.
4077
4091
4078 2002-11-09 Fernando Perez <fperez@colorado.edu>
4092 2002-11-09 Fernando Perez <fperez@colorado.edu>
4079
4093
4080 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4094 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4081 history file for new users.
4095 history file for new users.
4082 (make_IPython): fixed bug where initial install would leave the
4096 (make_IPython): fixed bug where initial install would leave the
4083 user running in the .ipython dir.
4097 user running in the .ipython dir.
4084 (make_IPython): fixed bug where config dir .ipython would be
4098 (make_IPython): fixed bug where config dir .ipython would be
4085 created regardless of the given -ipythondir option. Thanks to Cory
4099 created regardless of the given -ipythondir option. Thanks to Cory
4086 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4100 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4087
4101
4088 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4102 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4089 type confirmations. Will need to use it in all of IPython's code
4103 type confirmations. Will need to use it in all of IPython's code
4090 consistently.
4104 consistently.
4091
4105
4092 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4106 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4093 context to print 31 lines instead of the default 5. This will make
4107 context to print 31 lines instead of the default 5. This will make
4094 the crash reports extremely detailed in case the problem is in
4108 the crash reports extremely detailed in case the problem is in
4095 libraries I don't have access to.
4109 libraries I don't have access to.
4096
4110
4097 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4111 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4098 line of defense' code to still crash, but giving users fair
4112 line of defense' code to still crash, but giving users fair
4099 warning. I don't want internal errors to go unreported: if there's
4113 warning. I don't want internal errors to go unreported: if there's
4100 an internal problem, IPython should crash and generate a full
4114 an internal problem, IPython should crash and generate a full
4101 report.
4115 report.
4102
4116
4103 2002-11-08 Fernando Perez <fperez@colorado.edu>
4117 2002-11-08 Fernando Perez <fperez@colorado.edu>
4104
4118
4105 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4119 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4106 otherwise uncaught exceptions which can appear if people set
4120 otherwise uncaught exceptions which can appear if people set
4107 sys.stdout to something badly broken. Thanks to a crash report
4121 sys.stdout to something badly broken. Thanks to a crash report
4108 from henni-AT-mail.brainbot.com.
4122 from henni-AT-mail.brainbot.com.
4109
4123
4110 2002-11-04 Fernando Perez <fperez@colorado.edu>
4124 2002-11-04 Fernando Perez <fperez@colorado.edu>
4111
4125
4112 * IPython/iplib.py (InteractiveShell.interact): added
4126 * IPython/iplib.py (InteractiveShell.interact): added
4113 __IPYTHON__active to the builtins. It's a flag which goes on when
4127 __IPYTHON__active to the builtins. It's a flag which goes on when
4114 the interaction starts and goes off again when it stops. This
4128 the interaction starts and goes off again when it stops. This
4115 allows embedding code to detect being inside IPython. Before this
4129 allows embedding code to detect being inside IPython. Before this
4116 was done via __IPYTHON__, but that only shows that an IPython
4130 was done via __IPYTHON__, but that only shows that an IPython
4117 instance has been created.
4131 instance has been created.
4118
4132
4119 * IPython/Magic.py (Magic.magic_env): I realized that in a
4133 * IPython/Magic.py (Magic.magic_env): I realized that in a
4120 UserDict, instance.data holds the data as a normal dict. So I
4134 UserDict, instance.data holds the data as a normal dict. So I
4121 modified @env to return os.environ.data instead of rebuilding a
4135 modified @env to return os.environ.data instead of rebuilding a
4122 dict by hand.
4136 dict by hand.
4123
4137
4124 2002-11-02 Fernando Perez <fperez@colorado.edu>
4138 2002-11-02 Fernando Perez <fperez@colorado.edu>
4125
4139
4126 * IPython/genutils.py (warn): changed so that level 1 prints no
4140 * IPython/genutils.py (warn): changed so that level 1 prints no
4127 header. Level 2 is now the default (with 'WARNING' header, as
4141 header. Level 2 is now the default (with 'WARNING' header, as
4128 before). I think I tracked all places where changes were needed in
4142 before). I think I tracked all places where changes were needed in
4129 IPython, but outside code using the old level numbering may have
4143 IPython, but outside code using the old level numbering may have
4130 broken.
4144 broken.
4131
4145
4132 * IPython/iplib.py (InteractiveShell.runcode): added this to
4146 * IPython/iplib.py (InteractiveShell.runcode): added this to
4133 handle the tracebacks in SystemExit traps correctly. The previous
4147 handle the tracebacks in SystemExit traps correctly. The previous
4134 code (through interact) was printing more of the stack than
4148 code (through interact) was printing more of the stack than
4135 necessary, showing IPython internal code to the user.
4149 necessary, showing IPython internal code to the user.
4136
4150
4137 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4151 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4138 default. Now that the default at the confirmation prompt is yes,
4152 default. Now that the default at the confirmation prompt is yes,
4139 it's not so intrusive. François' argument that ipython sessions
4153 it's not so intrusive. François' argument that ipython sessions
4140 tend to be complex enough not to lose them from an accidental C-d,
4154 tend to be complex enough not to lose them from an accidental C-d,
4141 is a valid one.
4155 is a valid one.
4142
4156
4143 * IPython/iplib.py (InteractiveShell.interact): added a
4157 * IPython/iplib.py (InteractiveShell.interact): added a
4144 showtraceback() call to the SystemExit trap, and modified the exit
4158 showtraceback() call to the SystemExit trap, and modified the exit
4145 confirmation to have yes as the default.
4159 confirmation to have yes as the default.
4146
4160
4147 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4161 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4148 this file. It's been gone from the code for a long time, this was
4162 this file. It's been gone from the code for a long time, this was
4149 simply leftover junk.
4163 simply leftover junk.
4150
4164
4151 2002-11-01 Fernando Perez <fperez@colorado.edu>
4165 2002-11-01 Fernando Perez <fperez@colorado.edu>
4152
4166
4153 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4167 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4154 added. If set, IPython now traps EOF and asks for
4168 added. If set, IPython now traps EOF and asks for
4155 confirmation. After a request by François Pinard.
4169 confirmation. After a request by François Pinard.
4156
4170
4157 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4171 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4158 of @abort, and with a new (better) mechanism for handling the
4172 of @abort, and with a new (better) mechanism for handling the
4159 exceptions.
4173 exceptions.
4160
4174
4161 2002-10-27 Fernando Perez <fperez@colorado.edu>
4175 2002-10-27 Fernando Perez <fperez@colorado.edu>
4162
4176
4163 * IPython/usage.py (__doc__): updated the --help information and
4177 * IPython/usage.py (__doc__): updated the --help information and
4164 the ipythonrc file to indicate that -log generates
4178 the ipythonrc file to indicate that -log generates
4165 ./ipython.log. Also fixed the corresponding info in @logstart.
4179 ./ipython.log. Also fixed the corresponding info in @logstart.
4166 This and several other fixes in the manuals thanks to reports by
4180 This and several other fixes in the manuals thanks to reports by
4167 François Pinard <pinard-AT-iro.umontreal.ca>.
4181 François Pinard <pinard-AT-iro.umontreal.ca>.
4168
4182
4169 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4183 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4170 refer to @logstart (instead of @log, which doesn't exist).
4184 refer to @logstart (instead of @log, which doesn't exist).
4171
4185
4172 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4186 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4173 AttributeError crash. Thanks to Christopher Armstrong
4187 AttributeError crash. Thanks to Christopher Armstrong
4174 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4188 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4175 introduced recently (in 0.2.14pre37) with the fix to the eval
4189 introduced recently (in 0.2.14pre37) with the fix to the eval
4176 problem mentioned below.
4190 problem mentioned below.
4177
4191
4178 2002-10-17 Fernando Perez <fperez@colorado.edu>
4192 2002-10-17 Fernando Perez <fperez@colorado.edu>
4179
4193
4180 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4194 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4181 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4195 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4182
4196
4183 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4197 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4184 this function to fix a problem reported by Alex Schmolck. He saw
4198 this function to fix a problem reported by Alex Schmolck. He saw
4185 it with list comprehensions and generators, which were getting
4199 it with list comprehensions and generators, which were getting
4186 called twice. The real problem was an 'eval' call in testing for
4200 called twice. The real problem was an 'eval' call in testing for
4187 automagic which was evaluating the input line silently.
4201 automagic which was evaluating the input line silently.
4188
4202
4189 This is a potentially very nasty bug, if the input has side
4203 This is a potentially very nasty bug, if the input has side
4190 effects which must not be repeated. The code is much cleaner now,
4204 effects which must not be repeated. The code is much cleaner now,
4191 without any blanket 'except' left and with a regexp test for
4205 without any blanket 'except' left and with a regexp test for
4192 actual function names.
4206 actual function names.
4193
4207
4194 But an eval remains, which I'm not fully comfortable with. I just
4208 But an eval remains, which I'm not fully comfortable with. I just
4195 don't know how to find out if an expression could be a callable in
4209 don't know how to find out if an expression could be a callable in
4196 the user's namespace without doing an eval on the string. However
4210 the user's namespace without doing an eval on the string. However
4197 that string is now much more strictly checked so that no code
4211 that string is now much more strictly checked so that no code
4198 slips by, so the eval should only happen for things that can
4212 slips by, so the eval should only happen for things that can
4199 really be only function/method names.
4213 really be only function/method names.
4200
4214
4201 2002-10-15 Fernando Perez <fperez@colorado.edu>
4215 2002-10-15 Fernando Perez <fperez@colorado.edu>
4202
4216
4203 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4217 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4204 OSX information to main manual, removed README_Mac_OSX file from
4218 OSX information to main manual, removed README_Mac_OSX file from
4205 distribution. Also updated credits for recent additions.
4219 distribution. Also updated credits for recent additions.
4206
4220
4207 2002-10-10 Fernando Perez <fperez@colorado.edu>
4221 2002-10-10 Fernando Perez <fperez@colorado.edu>
4208
4222
4209 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4223 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4210 terminal-related issues. Many thanks to Andrea Riciputi
4224 terminal-related issues. Many thanks to Andrea Riciputi
4211 <andrea.riciputi-AT-libero.it> for writing it.
4225 <andrea.riciputi-AT-libero.it> for writing it.
4212
4226
4213 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4227 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4214 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4228 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4215
4229
4216 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4230 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4217 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4231 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4218 <syver-en-AT-online.no> who both submitted patches for this problem.
4232 <syver-en-AT-online.no> who both submitted patches for this problem.
4219
4233
4220 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4234 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4221 global embedding to make sure that things don't overwrite user
4235 global embedding to make sure that things don't overwrite user
4222 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4236 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4223
4237
4224 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4238 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4225 compatibility. Thanks to Hayden Callow
4239 compatibility. Thanks to Hayden Callow
4226 <h.callow-AT-elec.canterbury.ac.nz>
4240 <h.callow-AT-elec.canterbury.ac.nz>
4227
4241
4228 2002-10-04 Fernando Perez <fperez@colorado.edu>
4242 2002-10-04 Fernando Perez <fperez@colorado.edu>
4229
4243
4230 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4244 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4231 Gnuplot.File objects.
4245 Gnuplot.File objects.
4232
4246
4233 2002-07-23 Fernando Perez <fperez@colorado.edu>
4247 2002-07-23 Fernando Perez <fperez@colorado.edu>
4234
4248
4235 * IPython/genutils.py (timing): Added timings() and timing() for
4249 * IPython/genutils.py (timing): Added timings() and timing() for
4236 quick access to the most commonly needed data, the execution
4250 quick access to the most commonly needed data, the execution
4237 times. Old timing() renamed to timings_out().
4251 times. Old timing() renamed to timings_out().
4238
4252
4239 2002-07-18 Fernando Perez <fperez@colorado.edu>
4253 2002-07-18 Fernando Perez <fperez@colorado.edu>
4240
4254
4241 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4255 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4242 bug with nested instances disrupting the parent's tab completion.
4256 bug with nested instances disrupting the parent's tab completion.
4243
4257
4244 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4258 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4245 all_completions code to begin the emacs integration.
4259 all_completions code to begin the emacs integration.
4246
4260
4247 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4261 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4248 argument to allow titling individual arrays when plotting.
4262 argument to allow titling individual arrays when plotting.
4249
4263
4250 2002-07-15 Fernando Perez <fperez@colorado.edu>
4264 2002-07-15 Fernando Perez <fperez@colorado.edu>
4251
4265
4252 * setup.py (make_shortcut): changed to retrieve the value of
4266 * setup.py (make_shortcut): changed to retrieve the value of
4253 'Program Files' directory from the registry (this value changes in
4267 'Program Files' directory from the registry (this value changes in
4254 non-english versions of Windows). Thanks to Thomas Fanslau
4268 non-english versions of Windows). Thanks to Thomas Fanslau
4255 <tfanslau-AT-gmx.de> for the report.
4269 <tfanslau-AT-gmx.de> for the report.
4256
4270
4257 2002-07-10 Fernando Perez <fperez@colorado.edu>
4271 2002-07-10 Fernando Perez <fperez@colorado.edu>
4258
4272
4259 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4273 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4260 a bug in pdb, which crashes if a line with only whitespace is
4274 a bug in pdb, which crashes if a line with only whitespace is
4261 entered. Bug report submitted to sourceforge.
4275 entered. Bug report submitted to sourceforge.
4262
4276
4263 2002-07-09 Fernando Perez <fperez@colorado.edu>
4277 2002-07-09 Fernando Perez <fperez@colorado.edu>
4264
4278
4265 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4279 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4266 reporting exceptions (it's a bug in inspect.py, I just set a
4280 reporting exceptions (it's a bug in inspect.py, I just set a
4267 workaround).
4281 workaround).
4268
4282
4269 2002-07-08 Fernando Perez <fperez@colorado.edu>
4283 2002-07-08 Fernando Perez <fperez@colorado.edu>
4270
4284
4271 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4285 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4272 __IPYTHON__ in __builtins__ to show up in user_ns.
4286 __IPYTHON__ in __builtins__ to show up in user_ns.
4273
4287
4274 2002-07-03 Fernando Perez <fperez@colorado.edu>
4288 2002-07-03 Fernando Perez <fperez@colorado.edu>
4275
4289
4276 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4290 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4277 name from @gp_set_instance to @gp_set_default.
4291 name from @gp_set_instance to @gp_set_default.
4278
4292
4279 * IPython/ipmaker.py (make_IPython): default editor value set to
4293 * IPython/ipmaker.py (make_IPython): default editor value set to
4280 '0' (a string), to match the rc file. Otherwise will crash when
4294 '0' (a string), to match the rc file. Otherwise will crash when
4281 .strip() is called on it.
4295 .strip() is called on it.
4282
4296
4283
4297
4284 2002-06-28 Fernando Perez <fperez@colorado.edu>
4298 2002-06-28 Fernando Perez <fperez@colorado.edu>
4285
4299
4286 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4300 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4287 of files in current directory when a file is executed via
4301 of files in current directory when a file is executed via
4288 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4302 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4289
4303
4290 * setup.py (manfiles): fix for rpm builds, submitted by RA
4304 * setup.py (manfiles): fix for rpm builds, submitted by RA
4291 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4305 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4292
4306
4293 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4307 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4294 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4308 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4295 string!). A. Schmolck caught this one.
4309 string!). A. Schmolck caught this one.
4296
4310
4297 2002-06-27 Fernando Perez <fperez@colorado.edu>
4311 2002-06-27 Fernando Perez <fperez@colorado.edu>
4298
4312
4299 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4313 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4300 defined files at the cmd line. __name__ wasn't being set to
4314 defined files at the cmd line. __name__ wasn't being set to
4301 __main__.
4315 __main__.
4302
4316
4303 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4317 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4304 regular lists and tuples besides Numeric arrays.
4318 regular lists and tuples besides Numeric arrays.
4305
4319
4306 * IPython/Prompts.py (CachedOutput.__call__): Added output
4320 * IPython/Prompts.py (CachedOutput.__call__): Added output
4307 supression for input ending with ';'. Similar to Mathematica and
4321 supression for input ending with ';'. Similar to Mathematica and
4308 Matlab. The _* vars and Out[] list are still updated, just like
4322 Matlab. The _* vars and Out[] list are still updated, just like
4309 Mathematica behaves.
4323 Mathematica behaves.
4310
4324
4311 2002-06-25 Fernando Perez <fperez@colorado.edu>
4325 2002-06-25 Fernando Perez <fperez@colorado.edu>
4312
4326
4313 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4327 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4314 .ini extensions for profiels under Windows.
4328 .ini extensions for profiels under Windows.
4315
4329
4316 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4330 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4317 string form. Fix contributed by Alexander Schmolck
4331 string form. Fix contributed by Alexander Schmolck
4318 <a.schmolck-AT-gmx.net>
4332 <a.schmolck-AT-gmx.net>
4319
4333
4320 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4334 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4321 pre-configured Gnuplot instance.
4335 pre-configured Gnuplot instance.
4322
4336
4323 2002-06-21 Fernando Perez <fperez@colorado.edu>
4337 2002-06-21 Fernando Perez <fperez@colorado.edu>
4324
4338
4325 * IPython/numutils.py (exp_safe): new function, works around the
4339 * IPython/numutils.py (exp_safe): new function, works around the
4326 underflow problems in Numeric.
4340 underflow problems in Numeric.
4327 (log2): New fn. Safe log in base 2: returns exact integer answer
4341 (log2): New fn. Safe log in base 2: returns exact integer answer
4328 for exact integer powers of 2.
4342 for exact integer powers of 2.
4329
4343
4330 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4344 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4331 properly.
4345 properly.
4332
4346
4333 2002-06-20 Fernando Perez <fperez@colorado.edu>
4347 2002-06-20 Fernando Perez <fperez@colorado.edu>
4334
4348
4335 * IPython/genutils.py (timing): new function like
4349 * IPython/genutils.py (timing): new function like
4336 Mathematica's. Similar to time_test, but returns more info.
4350 Mathematica's. Similar to time_test, but returns more info.
4337
4351
4338 2002-06-18 Fernando Perez <fperez@colorado.edu>
4352 2002-06-18 Fernando Perez <fperez@colorado.edu>
4339
4353
4340 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4354 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4341 according to Mike Heeter's suggestions.
4355 according to Mike Heeter's suggestions.
4342
4356
4343 2002-06-16 Fernando Perez <fperez@colorado.edu>
4357 2002-06-16 Fernando Perez <fperez@colorado.edu>
4344
4358
4345 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4359 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4346 system. GnuplotMagic is gone as a user-directory option. New files
4360 system. GnuplotMagic is gone as a user-directory option. New files
4347 make it easier to use all the gnuplot stuff both from external
4361 make it easier to use all the gnuplot stuff both from external
4348 programs as well as from IPython. Had to rewrite part of
4362 programs as well as from IPython. Had to rewrite part of
4349 hardcopy() b/c of a strange bug: often the ps files simply don't
4363 hardcopy() b/c of a strange bug: often the ps files simply don't
4350 get created, and require a repeat of the command (often several
4364 get created, and require a repeat of the command (often several
4351 times).
4365 times).
4352
4366
4353 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4367 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4354 resolve output channel at call time, so that if sys.stderr has
4368 resolve output channel at call time, so that if sys.stderr has
4355 been redirected by user this gets honored.
4369 been redirected by user this gets honored.
4356
4370
4357 2002-06-13 Fernando Perez <fperez@colorado.edu>
4371 2002-06-13 Fernando Perez <fperez@colorado.edu>
4358
4372
4359 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4373 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4360 IPShell. Kept a copy with the old names to avoid breaking people's
4374 IPShell. Kept a copy with the old names to avoid breaking people's
4361 embedded code.
4375 embedded code.
4362
4376
4363 * IPython/ipython: simplified it to the bare minimum after
4377 * IPython/ipython: simplified it to the bare minimum after
4364 Holger's suggestions. Added info about how to use it in
4378 Holger's suggestions. Added info about how to use it in
4365 PYTHONSTARTUP.
4379 PYTHONSTARTUP.
4366
4380
4367 * IPython/Shell.py (IPythonShell): changed the options passing
4381 * IPython/Shell.py (IPythonShell): changed the options passing
4368 from a string with funky %s replacements to a straight list. Maybe
4382 from a string with funky %s replacements to a straight list. Maybe
4369 a bit more typing, but it follows sys.argv conventions, so there's
4383 a bit more typing, but it follows sys.argv conventions, so there's
4370 less special-casing to remember.
4384 less special-casing to remember.
4371
4385
4372 2002-06-12 Fernando Perez <fperez@colorado.edu>
4386 2002-06-12 Fernando Perez <fperez@colorado.edu>
4373
4387
4374 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4388 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4375 command. Thanks to a suggestion by Mike Heeter.
4389 command. Thanks to a suggestion by Mike Heeter.
4376 (Magic.magic_pfile): added behavior to look at filenames if given
4390 (Magic.magic_pfile): added behavior to look at filenames if given
4377 arg is not a defined object.
4391 arg is not a defined object.
4378 (Magic.magic_save): New @save function to save code snippets. Also
4392 (Magic.magic_save): New @save function to save code snippets. Also
4379 a Mike Heeter idea.
4393 a Mike Heeter idea.
4380
4394
4381 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4395 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4382 plot() and replot(). Much more convenient now, especially for
4396 plot() and replot(). Much more convenient now, especially for
4383 interactive use.
4397 interactive use.
4384
4398
4385 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4399 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4386 filenames.
4400 filenames.
4387
4401
4388 2002-06-02 Fernando Perez <fperez@colorado.edu>
4402 2002-06-02 Fernando Perez <fperez@colorado.edu>
4389
4403
4390 * IPython/Struct.py (Struct.__init__): modified to admit
4404 * IPython/Struct.py (Struct.__init__): modified to admit
4391 initialization via another struct.
4405 initialization via another struct.
4392
4406
4393 * IPython/genutils.py (SystemExec.__init__): New stateful
4407 * IPython/genutils.py (SystemExec.__init__): New stateful
4394 interface to xsys and bq. Useful for writing system scripts.
4408 interface to xsys and bq. Useful for writing system scripts.
4395
4409
4396 2002-05-30 Fernando Perez <fperez@colorado.edu>
4410 2002-05-30 Fernando Perez <fperez@colorado.edu>
4397
4411
4398 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4412 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4399 documents. This will make the user download smaller (it's getting
4413 documents. This will make the user download smaller (it's getting
4400 too big).
4414 too big).
4401
4415
4402 2002-05-29 Fernando Perez <fperez@colorado.edu>
4416 2002-05-29 Fernando Perez <fperez@colorado.edu>
4403
4417
4404 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4418 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4405 fix problems with shelve and pickle. Seems to work, but I don't
4419 fix problems with shelve and pickle. Seems to work, but I don't
4406 know if corner cases break it. Thanks to Mike Heeter
4420 know if corner cases break it. Thanks to Mike Heeter
4407 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4421 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4408
4422
4409 2002-05-24 Fernando Perez <fperez@colorado.edu>
4423 2002-05-24 Fernando Perez <fperez@colorado.edu>
4410
4424
4411 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4425 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4412 macros having broken.
4426 macros having broken.
4413
4427
4414 2002-05-21 Fernando Perez <fperez@colorado.edu>
4428 2002-05-21 Fernando Perez <fperez@colorado.edu>
4415
4429
4416 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4430 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4417 introduced logging bug: all history before logging started was
4431 introduced logging bug: all history before logging started was
4418 being written one character per line! This came from the redesign
4432 being written one character per line! This came from the redesign
4419 of the input history as a special list which slices to strings,
4433 of the input history as a special list which slices to strings,
4420 not to lists.
4434 not to lists.
4421
4435
4422 2002-05-20 Fernando Perez <fperez@colorado.edu>
4436 2002-05-20 Fernando Perez <fperez@colorado.edu>
4423
4437
4424 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4438 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4425 be an attribute of all classes in this module. The design of these
4439 be an attribute of all classes in this module. The design of these
4426 classes needs some serious overhauling.
4440 classes needs some serious overhauling.
4427
4441
4428 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4442 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4429 which was ignoring '_' in option names.
4443 which was ignoring '_' in option names.
4430
4444
4431 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4445 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4432 'Verbose_novars' to 'Context' and made it the new default. It's a
4446 'Verbose_novars' to 'Context' and made it the new default. It's a
4433 bit more readable and also safer than verbose.
4447 bit more readable and also safer than verbose.
4434
4448
4435 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4449 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4436 triple-quoted strings.
4450 triple-quoted strings.
4437
4451
4438 * IPython/OInspect.py (__all__): new module exposing the object
4452 * IPython/OInspect.py (__all__): new module exposing the object
4439 introspection facilities. Now the corresponding magics are dummy
4453 introspection facilities. Now the corresponding magics are dummy
4440 wrappers around this. Having this module will make it much easier
4454 wrappers around this. Having this module will make it much easier
4441 to put these functions into our modified pdb.
4455 to put these functions into our modified pdb.
4442 This new object inspector system uses the new colorizing module,
4456 This new object inspector system uses the new colorizing module,
4443 so source code and other things are nicely syntax highlighted.
4457 so source code and other things are nicely syntax highlighted.
4444
4458
4445 2002-05-18 Fernando Perez <fperez@colorado.edu>
4459 2002-05-18 Fernando Perez <fperez@colorado.edu>
4446
4460
4447 * IPython/ColorANSI.py: Split the coloring tools into a separate
4461 * IPython/ColorANSI.py: Split the coloring tools into a separate
4448 module so I can use them in other code easier (they were part of
4462 module so I can use them in other code easier (they were part of
4449 ultraTB).
4463 ultraTB).
4450
4464
4451 2002-05-17 Fernando Perez <fperez@colorado.edu>
4465 2002-05-17 Fernando Perez <fperez@colorado.edu>
4452
4466
4453 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4467 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4454 fixed it to set the global 'g' also to the called instance, as
4468 fixed it to set the global 'g' also to the called instance, as
4455 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4469 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4456 user's 'g' variables).
4470 user's 'g' variables).
4457
4471
4458 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4472 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4459 global variables (aliases to _ih,_oh) so that users which expect
4473 global variables (aliases to _ih,_oh) so that users which expect
4460 In[5] or Out[7] to work aren't unpleasantly surprised.
4474 In[5] or Out[7] to work aren't unpleasantly surprised.
4461 (InputList.__getslice__): new class to allow executing slices of
4475 (InputList.__getslice__): new class to allow executing slices of
4462 input history directly. Very simple class, complements the use of
4476 input history directly. Very simple class, complements the use of
4463 macros.
4477 macros.
4464
4478
4465 2002-05-16 Fernando Perez <fperez@colorado.edu>
4479 2002-05-16 Fernando Perez <fperez@colorado.edu>
4466
4480
4467 * setup.py (docdirbase): make doc directory be just doc/IPython
4481 * setup.py (docdirbase): make doc directory be just doc/IPython
4468 without version numbers, it will reduce clutter for users.
4482 without version numbers, it will reduce clutter for users.
4469
4483
4470 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4484 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4471 execfile call to prevent possible memory leak. See for details:
4485 execfile call to prevent possible memory leak. See for details:
4472 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4486 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4473
4487
4474 2002-05-15 Fernando Perez <fperez@colorado.edu>
4488 2002-05-15 Fernando Perez <fperez@colorado.edu>
4475
4489
4476 * IPython/Magic.py (Magic.magic_psource): made the object
4490 * IPython/Magic.py (Magic.magic_psource): made the object
4477 introspection names be more standard: pdoc, pdef, pfile and
4491 introspection names be more standard: pdoc, pdef, pfile and
4478 psource. They all print/page their output, and it makes
4492 psource. They all print/page their output, and it makes
4479 remembering them easier. Kept old names for compatibility as
4493 remembering them easier. Kept old names for compatibility as
4480 aliases.
4494 aliases.
4481
4495
4482 2002-05-14 Fernando Perez <fperez@colorado.edu>
4496 2002-05-14 Fernando Perez <fperez@colorado.edu>
4483
4497
4484 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4498 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4485 what the mouse problem was. The trick is to use gnuplot with temp
4499 what the mouse problem was. The trick is to use gnuplot with temp
4486 files and NOT with pipes (for data communication), because having
4500 files and NOT with pipes (for data communication), because having
4487 both pipes and the mouse on is bad news.
4501 both pipes and the mouse on is bad news.
4488
4502
4489 2002-05-13 Fernando Perez <fperez@colorado.edu>
4503 2002-05-13 Fernando Perez <fperez@colorado.edu>
4490
4504
4491 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4505 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4492 bug. Information would be reported about builtins even when
4506 bug. Information would be reported about builtins even when
4493 user-defined functions overrode them.
4507 user-defined functions overrode them.
4494
4508
4495 2002-05-11 Fernando Perez <fperez@colorado.edu>
4509 2002-05-11 Fernando Perez <fperez@colorado.edu>
4496
4510
4497 * IPython/__init__.py (__all__): removed FlexCompleter from
4511 * IPython/__init__.py (__all__): removed FlexCompleter from
4498 __all__ so that things don't fail in platforms without readline.
4512 __all__ so that things don't fail in platforms without readline.
4499
4513
4500 2002-05-10 Fernando Perez <fperez@colorado.edu>
4514 2002-05-10 Fernando Perez <fperez@colorado.edu>
4501
4515
4502 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4516 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4503 it requires Numeric, effectively making Numeric a dependency for
4517 it requires Numeric, effectively making Numeric a dependency for
4504 IPython.
4518 IPython.
4505
4519
4506 * Released 0.2.13
4520 * Released 0.2.13
4507
4521
4508 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4522 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4509 profiler interface. Now all the major options from the profiler
4523 profiler interface. Now all the major options from the profiler
4510 module are directly supported in IPython, both for single
4524 module are directly supported in IPython, both for single
4511 expressions (@prun) and for full programs (@run -p).
4525 expressions (@prun) and for full programs (@run -p).
4512
4526
4513 2002-05-09 Fernando Perez <fperez@colorado.edu>
4527 2002-05-09 Fernando Perez <fperez@colorado.edu>
4514
4528
4515 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4529 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4516 magic properly formatted for screen.
4530 magic properly formatted for screen.
4517
4531
4518 * setup.py (make_shortcut): Changed things to put pdf version in
4532 * setup.py (make_shortcut): Changed things to put pdf version in
4519 doc/ instead of doc/manual (had to change lyxport a bit).
4533 doc/ instead of doc/manual (had to change lyxport a bit).
4520
4534
4521 * IPython/Magic.py (Profile.string_stats): made profile runs go
4535 * IPython/Magic.py (Profile.string_stats): made profile runs go
4522 through pager (they are long and a pager allows searching, saving,
4536 through pager (they are long and a pager allows searching, saving,
4523 etc.)
4537 etc.)
4524
4538
4525 2002-05-08 Fernando Perez <fperez@colorado.edu>
4539 2002-05-08 Fernando Perez <fperez@colorado.edu>
4526
4540
4527 * Released 0.2.12
4541 * Released 0.2.12
4528
4542
4529 2002-05-06 Fernando Perez <fperez@colorado.edu>
4543 2002-05-06 Fernando Perez <fperez@colorado.edu>
4530
4544
4531 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4545 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4532 introduced); 'hist n1 n2' was broken.
4546 introduced); 'hist n1 n2' was broken.
4533 (Magic.magic_pdb): added optional on/off arguments to @pdb
4547 (Magic.magic_pdb): added optional on/off arguments to @pdb
4534 (Magic.magic_run): added option -i to @run, which executes code in
4548 (Magic.magic_run): added option -i to @run, which executes code in
4535 the IPython namespace instead of a clean one. Also added @irun as
4549 the IPython namespace instead of a clean one. Also added @irun as
4536 an alias to @run -i.
4550 an alias to @run -i.
4537
4551
4538 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4552 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4539 fixed (it didn't really do anything, the namespaces were wrong).
4553 fixed (it didn't really do anything, the namespaces were wrong).
4540
4554
4541 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4555 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4542
4556
4543 * IPython/__init__.py (__all__): Fixed package namespace, now
4557 * IPython/__init__.py (__all__): Fixed package namespace, now
4544 'import IPython' does give access to IPython.<all> as
4558 'import IPython' does give access to IPython.<all> as
4545 expected. Also renamed __release__ to Release.
4559 expected. Also renamed __release__ to Release.
4546
4560
4547 * IPython/Debugger.py (__license__): created new Pdb class which
4561 * IPython/Debugger.py (__license__): created new Pdb class which
4548 functions like a drop-in for the normal pdb.Pdb but does NOT
4562 functions like a drop-in for the normal pdb.Pdb but does NOT
4549 import readline by default. This way it doesn't muck up IPython's
4563 import readline by default. This way it doesn't muck up IPython's
4550 readline handling, and now tab-completion finally works in the
4564 readline handling, and now tab-completion finally works in the
4551 debugger -- sort of. It completes things globally visible, but the
4565 debugger -- sort of. It completes things globally visible, but the
4552 completer doesn't track the stack as pdb walks it. That's a bit
4566 completer doesn't track the stack as pdb walks it. That's a bit
4553 tricky, and I'll have to implement it later.
4567 tricky, and I'll have to implement it later.
4554
4568
4555 2002-05-05 Fernando Perez <fperez@colorado.edu>
4569 2002-05-05 Fernando Perez <fperez@colorado.edu>
4556
4570
4557 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4571 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4558 magic docstrings when printed via ? (explicit \'s were being
4572 magic docstrings when printed via ? (explicit \'s were being
4559 printed).
4573 printed).
4560
4574
4561 * IPython/ipmaker.py (make_IPython): fixed namespace
4575 * IPython/ipmaker.py (make_IPython): fixed namespace
4562 identification bug. Now variables loaded via logs or command-line
4576 identification bug. Now variables loaded via logs or command-line
4563 files are recognized in the interactive namespace by @who.
4577 files are recognized in the interactive namespace by @who.
4564
4578
4565 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4579 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4566 log replay system stemming from the string form of Structs.
4580 log replay system stemming from the string form of Structs.
4567
4581
4568 * IPython/Magic.py (Macro.__init__): improved macros to properly
4582 * IPython/Magic.py (Macro.__init__): improved macros to properly
4569 handle magic commands in them.
4583 handle magic commands in them.
4570 (Magic.magic_logstart): usernames are now expanded so 'logstart
4584 (Magic.magic_logstart): usernames are now expanded so 'logstart
4571 ~/mylog' now works.
4585 ~/mylog' now works.
4572
4586
4573 * IPython/iplib.py (complete): fixed bug where paths starting with
4587 * IPython/iplib.py (complete): fixed bug where paths starting with
4574 '/' would be completed as magic names.
4588 '/' would be completed as magic names.
4575
4589
4576 2002-05-04 Fernando Perez <fperez@colorado.edu>
4590 2002-05-04 Fernando Perez <fperez@colorado.edu>
4577
4591
4578 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4592 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4579 allow running full programs under the profiler's control.
4593 allow running full programs under the profiler's control.
4580
4594
4581 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4595 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4582 mode to report exceptions verbosely but without formatting
4596 mode to report exceptions verbosely but without formatting
4583 variables. This addresses the issue of ipython 'freezing' (it's
4597 variables. This addresses the issue of ipython 'freezing' (it's
4584 not frozen, but caught in an expensive formatting loop) when huge
4598 not frozen, but caught in an expensive formatting loop) when huge
4585 variables are in the context of an exception.
4599 variables are in the context of an exception.
4586 (VerboseTB.text): Added '--->' markers at line where exception was
4600 (VerboseTB.text): Added '--->' markers at line where exception was
4587 triggered. Much clearer to read, especially in NoColor modes.
4601 triggered. Much clearer to read, especially in NoColor modes.
4588
4602
4589 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4603 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4590 implemented in reverse when changing to the new parse_options().
4604 implemented in reverse when changing to the new parse_options().
4591
4605
4592 2002-05-03 Fernando Perez <fperez@colorado.edu>
4606 2002-05-03 Fernando Perez <fperez@colorado.edu>
4593
4607
4594 * IPython/Magic.py (Magic.parse_options): new function so that
4608 * IPython/Magic.py (Magic.parse_options): new function so that
4595 magics can parse options easier.
4609 magics can parse options easier.
4596 (Magic.magic_prun): new function similar to profile.run(),
4610 (Magic.magic_prun): new function similar to profile.run(),
4597 suggested by Chris Hart.
4611 suggested by Chris Hart.
4598 (Magic.magic_cd): fixed behavior so that it only changes if
4612 (Magic.magic_cd): fixed behavior so that it only changes if
4599 directory actually is in history.
4613 directory actually is in history.
4600
4614
4601 * IPython/usage.py (__doc__): added information about potential
4615 * IPython/usage.py (__doc__): added information about potential
4602 slowness of Verbose exception mode when there are huge data
4616 slowness of Verbose exception mode when there are huge data
4603 structures to be formatted (thanks to Archie Paulson).
4617 structures to be formatted (thanks to Archie Paulson).
4604
4618
4605 * IPython/ipmaker.py (make_IPython): Changed default logging
4619 * IPython/ipmaker.py (make_IPython): Changed default logging
4606 (when simply called with -log) to use curr_dir/ipython.log in
4620 (when simply called with -log) to use curr_dir/ipython.log in
4607 rotate mode. Fixed crash which was occuring with -log before
4621 rotate mode. Fixed crash which was occuring with -log before
4608 (thanks to Jim Boyle).
4622 (thanks to Jim Boyle).
4609
4623
4610 2002-05-01 Fernando Perez <fperez@colorado.edu>
4624 2002-05-01 Fernando Perez <fperez@colorado.edu>
4611
4625
4612 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4626 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4613 was nasty -- though somewhat of a corner case).
4627 was nasty -- though somewhat of a corner case).
4614
4628
4615 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4629 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4616 text (was a bug).
4630 text (was a bug).
4617
4631
4618 2002-04-30 Fernando Perez <fperez@colorado.edu>
4632 2002-04-30 Fernando Perez <fperez@colorado.edu>
4619
4633
4620 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4634 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4621 a print after ^D or ^C from the user so that the In[] prompt
4635 a print after ^D or ^C from the user so that the In[] prompt
4622 doesn't over-run the gnuplot one.
4636 doesn't over-run the gnuplot one.
4623
4637
4624 2002-04-29 Fernando Perez <fperez@colorado.edu>
4638 2002-04-29 Fernando Perez <fperez@colorado.edu>
4625
4639
4626 * Released 0.2.10
4640 * Released 0.2.10
4627
4641
4628 * IPython/__release__.py (version): get date dynamically.
4642 * IPython/__release__.py (version): get date dynamically.
4629
4643
4630 * Misc. documentation updates thanks to Arnd's comments. Also ran
4644 * Misc. documentation updates thanks to Arnd's comments. Also ran
4631 a full spellcheck on the manual (hadn't been done in a while).
4645 a full spellcheck on the manual (hadn't been done in a while).
4632
4646
4633 2002-04-27 Fernando Perez <fperez@colorado.edu>
4647 2002-04-27 Fernando Perez <fperez@colorado.edu>
4634
4648
4635 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4649 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4636 starting a log in mid-session would reset the input history list.
4650 starting a log in mid-session would reset the input history list.
4637
4651
4638 2002-04-26 Fernando Perez <fperez@colorado.edu>
4652 2002-04-26 Fernando Perez <fperez@colorado.edu>
4639
4653
4640 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4654 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4641 all files were being included in an update. Now anything in
4655 all files were being included in an update. Now anything in
4642 UserConfig that matches [A-Za-z]*.py will go (this excludes
4656 UserConfig that matches [A-Za-z]*.py will go (this excludes
4643 __init__.py)
4657 __init__.py)
4644
4658
4645 2002-04-25 Fernando Perez <fperez@colorado.edu>
4659 2002-04-25 Fernando Perez <fperez@colorado.edu>
4646
4660
4647 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4661 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4648 to __builtins__ so that any form of embedded or imported code can
4662 to __builtins__ so that any form of embedded or imported code can
4649 test for being inside IPython.
4663 test for being inside IPython.
4650
4664
4651 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4665 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4652 changed to GnuplotMagic because it's now an importable module,
4666 changed to GnuplotMagic because it's now an importable module,
4653 this makes the name follow that of the standard Gnuplot module.
4667 this makes the name follow that of the standard Gnuplot module.
4654 GnuplotMagic can now be loaded at any time in mid-session.
4668 GnuplotMagic can now be loaded at any time in mid-session.
4655
4669
4656 2002-04-24 Fernando Perez <fperez@colorado.edu>
4670 2002-04-24 Fernando Perez <fperez@colorado.edu>
4657
4671
4658 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4672 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4659 the globals (IPython has its own namespace) and the
4673 the globals (IPython has its own namespace) and the
4660 PhysicalQuantity stuff is much better anyway.
4674 PhysicalQuantity stuff is much better anyway.
4661
4675
4662 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4676 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4663 embedding example to standard user directory for
4677 embedding example to standard user directory for
4664 distribution. Also put it in the manual.
4678 distribution. Also put it in the manual.
4665
4679
4666 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4680 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4667 instance as first argument (so it doesn't rely on some obscure
4681 instance as first argument (so it doesn't rely on some obscure
4668 hidden global).
4682 hidden global).
4669
4683
4670 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4684 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4671 delimiters. While it prevents ().TAB from working, it allows
4685 delimiters. While it prevents ().TAB from working, it allows
4672 completions in open (... expressions. This is by far a more common
4686 completions in open (... expressions. This is by far a more common
4673 case.
4687 case.
4674
4688
4675 2002-04-23 Fernando Perez <fperez@colorado.edu>
4689 2002-04-23 Fernando Perez <fperez@colorado.edu>
4676
4690
4677 * IPython/Extensions/InterpreterPasteInput.py: new
4691 * IPython/Extensions/InterpreterPasteInput.py: new
4678 syntax-processing module for pasting lines with >>> or ... at the
4692 syntax-processing module for pasting lines with >>> or ... at the
4679 start.
4693 start.
4680
4694
4681 * IPython/Extensions/PhysicalQ_Interactive.py
4695 * IPython/Extensions/PhysicalQ_Interactive.py
4682 (PhysicalQuantityInteractive.__int__): fixed to work with either
4696 (PhysicalQuantityInteractive.__int__): fixed to work with either
4683 Numeric or math.
4697 Numeric or math.
4684
4698
4685 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4699 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4686 provided profiles. Now we have:
4700 provided profiles. Now we have:
4687 -math -> math module as * and cmath with its own namespace.
4701 -math -> math module as * and cmath with its own namespace.
4688 -numeric -> Numeric as *, plus gnuplot & grace
4702 -numeric -> Numeric as *, plus gnuplot & grace
4689 -physics -> same as before
4703 -physics -> same as before
4690
4704
4691 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4705 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4692 user-defined magics wouldn't be found by @magic if they were
4706 user-defined magics wouldn't be found by @magic if they were
4693 defined as class methods. Also cleaned up the namespace search
4707 defined as class methods. Also cleaned up the namespace search
4694 logic and the string building (to use %s instead of many repeated
4708 logic and the string building (to use %s instead of many repeated
4695 string adds).
4709 string adds).
4696
4710
4697 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4711 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4698 of user-defined magics to operate with class methods (cleaner, in
4712 of user-defined magics to operate with class methods (cleaner, in
4699 line with the gnuplot code).
4713 line with the gnuplot code).
4700
4714
4701 2002-04-22 Fernando Perez <fperez@colorado.edu>
4715 2002-04-22 Fernando Perez <fperez@colorado.edu>
4702
4716
4703 * setup.py: updated dependency list so that manual is updated when
4717 * setup.py: updated dependency list so that manual is updated when
4704 all included files change.
4718 all included files change.
4705
4719
4706 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4720 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4707 the delimiter removal option (the fix is ugly right now).
4721 the delimiter removal option (the fix is ugly right now).
4708
4722
4709 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4723 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4710 all of the math profile (quicker loading, no conflict between
4724 all of the math profile (quicker loading, no conflict between
4711 g-9.8 and g-gnuplot).
4725 g-9.8 and g-gnuplot).
4712
4726
4713 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4727 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4714 name of post-mortem files to IPython_crash_report.txt.
4728 name of post-mortem files to IPython_crash_report.txt.
4715
4729
4716 * Cleanup/update of the docs. Added all the new readline info and
4730 * Cleanup/update of the docs. Added all the new readline info and
4717 formatted all lists as 'real lists'.
4731 formatted all lists as 'real lists'.
4718
4732
4719 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4733 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4720 tab-completion options, since the full readline parse_and_bind is
4734 tab-completion options, since the full readline parse_and_bind is
4721 now accessible.
4735 now accessible.
4722
4736
4723 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4737 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4724 handling of readline options. Now users can specify any string to
4738 handling of readline options. Now users can specify any string to
4725 be passed to parse_and_bind(), as well as the delimiters to be
4739 be passed to parse_and_bind(), as well as the delimiters to be
4726 removed.
4740 removed.
4727 (InteractiveShell.__init__): Added __name__ to the global
4741 (InteractiveShell.__init__): Added __name__ to the global
4728 namespace so that things like Itpl which rely on its existence
4742 namespace so that things like Itpl which rely on its existence
4729 don't crash.
4743 don't crash.
4730 (InteractiveShell._prefilter): Defined the default with a _ so
4744 (InteractiveShell._prefilter): Defined the default with a _ so
4731 that prefilter() is easier to override, while the default one
4745 that prefilter() is easier to override, while the default one
4732 remains available.
4746 remains available.
4733
4747
4734 2002-04-18 Fernando Perez <fperez@colorado.edu>
4748 2002-04-18 Fernando Perez <fperez@colorado.edu>
4735
4749
4736 * Added information about pdb in the docs.
4750 * Added information about pdb in the docs.
4737
4751
4738 2002-04-17 Fernando Perez <fperez@colorado.edu>
4752 2002-04-17 Fernando Perez <fperez@colorado.edu>
4739
4753
4740 * IPython/ipmaker.py (make_IPython): added rc_override option to
4754 * IPython/ipmaker.py (make_IPython): added rc_override option to
4741 allow passing config options at creation time which may override
4755 allow passing config options at creation time which may override
4742 anything set in the config files or command line. This is
4756 anything set in the config files or command line. This is
4743 particularly useful for configuring embedded instances.
4757 particularly useful for configuring embedded instances.
4744
4758
4745 2002-04-15 Fernando Perez <fperez@colorado.edu>
4759 2002-04-15 Fernando Perez <fperez@colorado.edu>
4746
4760
4747 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4761 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4748 crash embedded instances because of the input cache falling out of
4762 crash embedded instances because of the input cache falling out of
4749 sync with the output counter.
4763 sync with the output counter.
4750
4764
4751 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4765 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4752 mode which calls pdb after an uncaught exception in IPython itself.
4766 mode which calls pdb after an uncaught exception in IPython itself.
4753
4767
4754 2002-04-14 Fernando Perez <fperez@colorado.edu>
4768 2002-04-14 Fernando Perez <fperez@colorado.edu>
4755
4769
4756 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4770 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4757 readline, fix it back after each call.
4771 readline, fix it back after each call.
4758
4772
4759 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4773 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4760 method to force all access via __call__(), which guarantees that
4774 method to force all access via __call__(), which guarantees that
4761 traceback references are properly deleted.
4775 traceback references are properly deleted.
4762
4776
4763 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4777 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4764 improve printing when pprint is in use.
4778 improve printing when pprint is in use.
4765
4779
4766 2002-04-13 Fernando Perez <fperez@colorado.edu>
4780 2002-04-13 Fernando Perez <fperez@colorado.edu>
4767
4781
4768 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4782 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4769 exceptions aren't caught anymore. If the user triggers one, he
4783 exceptions aren't caught anymore. If the user triggers one, he
4770 should know why he's doing it and it should go all the way up,
4784 should know why he's doing it and it should go all the way up,
4771 just like any other exception. So now @abort will fully kill the
4785 just like any other exception. So now @abort will fully kill the
4772 embedded interpreter and the embedding code (unless that happens
4786 embedded interpreter and the embedding code (unless that happens
4773 to catch SystemExit).
4787 to catch SystemExit).
4774
4788
4775 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4789 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4776 and a debugger() method to invoke the interactive pdb debugger
4790 and a debugger() method to invoke the interactive pdb debugger
4777 after printing exception information. Also added the corresponding
4791 after printing exception information. Also added the corresponding
4778 -pdb option and @pdb magic to control this feature, and updated
4792 -pdb option and @pdb magic to control this feature, and updated
4779 the docs. After a suggestion from Christopher Hart
4793 the docs. After a suggestion from Christopher Hart
4780 (hart-AT-caltech.edu).
4794 (hart-AT-caltech.edu).
4781
4795
4782 2002-04-12 Fernando Perez <fperez@colorado.edu>
4796 2002-04-12 Fernando Perez <fperez@colorado.edu>
4783
4797
4784 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4798 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4785 the exception handlers defined by the user (not the CrashHandler)
4799 the exception handlers defined by the user (not the CrashHandler)
4786 so that user exceptions don't trigger an ipython bug report.
4800 so that user exceptions don't trigger an ipython bug report.
4787
4801
4788 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4802 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4789 configurable (it should have always been so).
4803 configurable (it should have always been so).
4790
4804
4791 2002-03-26 Fernando Perez <fperez@colorado.edu>
4805 2002-03-26 Fernando Perez <fperez@colorado.edu>
4792
4806
4793 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4807 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4794 and there to fix embedding namespace issues. This should all be
4808 and there to fix embedding namespace issues. This should all be
4795 done in a more elegant way.
4809 done in a more elegant way.
4796
4810
4797 2002-03-25 Fernando Perez <fperez@colorado.edu>
4811 2002-03-25 Fernando Perez <fperez@colorado.edu>
4798
4812
4799 * IPython/genutils.py (get_home_dir): Try to make it work under
4813 * IPython/genutils.py (get_home_dir): Try to make it work under
4800 win9x also.
4814 win9x also.
4801
4815
4802 2002-03-20 Fernando Perez <fperez@colorado.edu>
4816 2002-03-20 Fernando Perez <fperez@colorado.edu>
4803
4817
4804 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4818 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4805 sys.displayhook untouched upon __init__.
4819 sys.displayhook untouched upon __init__.
4806
4820
4807 2002-03-19 Fernando Perez <fperez@colorado.edu>
4821 2002-03-19 Fernando Perez <fperez@colorado.edu>
4808
4822
4809 * Released 0.2.9 (for embedding bug, basically).
4823 * Released 0.2.9 (for embedding bug, basically).
4810
4824
4811 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4825 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4812 exceptions so that enclosing shell's state can be restored.
4826 exceptions so that enclosing shell's state can be restored.
4813
4827
4814 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4828 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4815 naming conventions in the .ipython/ dir.
4829 naming conventions in the .ipython/ dir.
4816
4830
4817 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4831 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4818 from delimiters list so filenames with - in them get expanded.
4832 from delimiters list so filenames with - in them get expanded.
4819
4833
4820 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4834 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4821 sys.displayhook not being properly restored after an embedded call.
4835 sys.displayhook not being properly restored after an embedded call.
4822
4836
4823 2002-03-18 Fernando Perez <fperez@colorado.edu>
4837 2002-03-18 Fernando Perez <fperez@colorado.edu>
4824
4838
4825 * Released 0.2.8
4839 * Released 0.2.8
4826
4840
4827 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4841 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4828 some files weren't being included in a -upgrade.
4842 some files weren't being included in a -upgrade.
4829 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4843 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4830 on' so that the first tab completes.
4844 on' so that the first tab completes.
4831 (InteractiveShell.handle_magic): fixed bug with spaces around
4845 (InteractiveShell.handle_magic): fixed bug with spaces around
4832 quotes breaking many magic commands.
4846 quotes breaking many magic commands.
4833
4847
4834 * setup.py: added note about ignoring the syntax error messages at
4848 * setup.py: added note about ignoring the syntax error messages at
4835 installation.
4849 installation.
4836
4850
4837 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4851 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4838 streamlining the gnuplot interface, now there's only one magic @gp.
4852 streamlining the gnuplot interface, now there's only one magic @gp.
4839
4853
4840 2002-03-17 Fernando Perez <fperez@colorado.edu>
4854 2002-03-17 Fernando Perez <fperez@colorado.edu>
4841
4855
4842 * IPython/UserConfig/magic_gnuplot.py: new name for the
4856 * IPython/UserConfig/magic_gnuplot.py: new name for the
4843 example-magic_pm.py file. Much enhanced system, now with a shell
4857 example-magic_pm.py file. Much enhanced system, now with a shell
4844 for communicating directly with gnuplot, one command at a time.
4858 for communicating directly with gnuplot, one command at a time.
4845
4859
4846 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4860 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4847 setting __name__=='__main__'.
4861 setting __name__=='__main__'.
4848
4862
4849 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4863 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4850 mini-shell for accessing gnuplot from inside ipython. Should
4864 mini-shell for accessing gnuplot from inside ipython. Should
4851 extend it later for grace access too. Inspired by Arnd's
4865 extend it later for grace access too. Inspired by Arnd's
4852 suggestion.
4866 suggestion.
4853
4867
4854 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4868 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4855 calling magic functions with () in their arguments. Thanks to Arnd
4869 calling magic functions with () in their arguments. Thanks to Arnd
4856 Baecker for pointing this to me.
4870 Baecker for pointing this to me.
4857
4871
4858 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4872 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4859 infinitely for integer or complex arrays (only worked with floats).
4873 infinitely for integer or complex arrays (only worked with floats).
4860
4874
4861 2002-03-16 Fernando Perez <fperez@colorado.edu>
4875 2002-03-16 Fernando Perez <fperez@colorado.edu>
4862
4876
4863 * setup.py: Merged setup and setup_windows into a single script
4877 * setup.py: Merged setup and setup_windows into a single script
4864 which properly handles things for windows users.
4878 which properly handles things for windows users.
4865
4879
4866 2002-03-15 Fernando Perez <fperez@colorado.edu>
4880 2002-03-15 Fernando Perez <fperez@colorado.edu>
4867
4881
4868 * Big change to the manual: now the magics are all automatically
4882 * Big change to the manual: now the magics are all automatically
4869 documented. This information is generated from their docstrings
4883 documented. This information is generated from their docstrings
4870 and put in a latex file included by the manual lyx file. This way
4884 and put in a latex file included by the manual lyx file. This way
4871 we get always up to date information for the magics. The manual
4885 we get always up to date information for the magics. The manual
4872 now also has proper version information, also auto-synced.
4886 now also has proper version information, also auto-synced.
4873
4887
4874 For this to work, an undocumented --magic_docstrings option was added.
4888 For this to work, an undocumented --magic_docstrings option was added.
4875
4889
4876 2002-03-13 Fernando Perez <fperez@colorado.edu>
4890 2002-03-13 Fernando Perez <fperez@colorado.edu>
4877
4891
4878 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4892 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4879 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4893 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4880
4894
4881 2002-03-12 Fernando Perez <fperez@colorado.edu>
4895 2002-03-12 Fernando Perez <fperez@colorado.edu>
4882
4896
4883 * IPython/ultraTB.py (TermColors): changed color escapes again to
4897 * IPython/ultraTB.py (TermColors): changed color escapes again to
4884 fix the (old, reintroduced) line-wrapping bug. Basically, if
4898 fix the (old, reintroduced) line-wrapping bug. Basically, if
4885 \001..\002 aren't given in the color escapes, lines get wrapped
4899 \001..\002 aren't given in the color escapes, lines get wrapped
4886 weirdly. But giving those screws up old xterms and emacs terms. So
4900 weirdly. But giving those screws up old xterms and emacs terms. So
4887 I added some logic for emacs terms to be ok, but I can't identify old
4901 I added some logic for emacs terms to be ok, but I can't identify old
4888 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4902 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4889
4903
4890 2002-03-10 Fernando Perez <fperez@colorado.edu>
4904 2002-03-10 Fernando Perez <fperez@colorado.edu>
4891
4905
4892 * IPython/usage.py (__doc__): Various documentation cleanups and
4906 * IPython/usage.py (__doc__): Various documentation cleanups and
4893 updates, both in usage docstrings and in the manual.
4907 updates, both in usage docstrings and in the manual.
4894
4908
4895 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4909 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4896 handling of caching. Set minimum acceptabe value for having a
4910 handling of caching. Set minimum acceptabe value for having a
4897 cache at 20 values.
4911 cache at 20 values.
4898
4912
4899 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4913 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4900 install_first_time function to a method, renamed it and added an
4914 install_first_time function to a method, renamed it and added an
4901 'upgrade' mode. Now people can update their config directory with
4915 'upgrade' mode. Now people can update their config directory with
4902 a simple command line switch (-upgrade, also new).
4916 a simple command line switch (-upgrade, also new).
4903
4917
4904 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4918 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4905 @file (convenient for automagic users under Python >= 2.2).
4919 @file (convenient for automagic users under Python >= 2.2).
4906 Removed @files (it seemed more like a plural than an abbrev. of
4920 Removed @files (it seemed more like a plural than an abbrev. of
4907 'file show').
4921 'file show').
4908
4922
4909 * IPython/iplib.py (install_first_time): Fixed crash if there were
4923 * IPython/iplib.py (install_first_time): Fixed crash if there were
4910 backup files ('~') in .ipython/ install directory.
4924 backup files ('~') in .ipython/ install directory.
4911
4925
4912 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4926 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4913 system. Things look fine, but these changes are fairly
4927 system. Things look fine, but these changes are fairly
4914 intrusive. Test them for a few days.
4928 intrusive. Test them for a few days.
4915
4929
4916 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4930 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4917 the prompts system. Now all in/out prompt strings are user
4931 the prompts system. Now all in/out prompt strings are user
4918 controllable. This is particularly useful for embedding, as one
4932 controllable. This is particularly useful for embedding, as one
4919 can tag embedded instances with particular prompts.
4933 can tag embedded instances with particular prompts.
4920
4934
4921 Also removed global use of sys.ps1/2, which now allows nested
4935 Also removed global use of sys.ps1/2, which now allows nested
4922 embeddings without any problems. Added command-line options for
4936 embeddings without any problems. Added command-line options for
4923 the prompt strings.
4937 the prompt strings.
4924
4938
4925 2002-03-08 Fernando Perez <fperez@colorado.edu>
4939 2002-03-08 Fernando Perez <fperez@colorado.edu>
4926
4940
4927 * IPython/UserConfig/example-embed-short.py (ipshell): added
4941 * IPython/UserConfig/example-embed-short.py (ipshell): added
4928 example file with the bare minimum code for embedding.
4942 example file with the bare minimum code for embedding.
4929
4943
4930 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4944 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4931 functionality for the embeddable shell to be activated/deactivated
4945 functionality for the embeddable shell to be activated/deactivated
4932 either globally or at each call.
4946 either globally or at each call.
4933
4947
4934 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4948 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4935 rewriting the prompt with '--->' for auto-inputs with proper
4949 rewriting the prompt with '--->' for auto-inputs with proper
4936 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4950 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4937 this is handled by the prompts class itself, as it should.
4951 this is handled by the prompts class itself, as it should.
4938
4952
4939 2002-03-05 Fernando Perez <fperez@colorado.edu>
4953 2002-03-05 Fernando Perez <fperez@colorado.edu>
4940
4954
4941 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4955 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4942 @logstart to avoid name clashes with the math log function.
4956 @logstart to avoid name clashes with the math log function.
4943
4957
4944 * Big updates to X/Emacs section of the manual.
4958 * Big updates to X/Emacs section of the manual.
4945
4959
4946 * Removed ipython_emacs. Milan explained to me how to pass
4960 * Removed ipython_emacs. Milan explained to me how to pass
4947 arguments to ipython through Emacs. Some day I'm going to end up
4961 arguments to ipython through Emacs. Some day I'm going to end up
4948 learning some lisp...
4962 learning some lisp...
4949
4963
4950 2002-03-04 Fernando Perez <fperez@colorado.edu>
4964 2002-03-04 Fernando Perez <fperez@colorado.edu>
4951
4965
4952 * IPython/ipython_emacs: Created script to be used as the
4966 * IPython/ipython_emacs: Created script to be used as the
4953 py-python-command Emacs variable so we can pass IPython
4967 py-python-command Emacs variable so we can pass IPython
4954 parameters. I can't figure out how to tell Emacs directly to pass
4968 parameters. I can't figure out how to tell Emacs directly to pass
4955 parameters to IPython, so a dummy shell script will do it.
4969 parameters to IPython, so a dummy shell script will do it.
4956
4970
4957 Other enhancements made for things to work better under Emacs'
4971 Other enhancements made for things to work better under Emacs'
4958 various types of terminals. Many thanks to Milan Zamazal
4972 various types of terminals. Many thanks to Milan Zamazal
4959 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4973 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4960
4974
4961 2002-03-01 Fernando Perez <fperez@colorado.edu>
4975 2002-03-01 Fernando Perez <fperez@colorado.edu>
4962
4976
4963 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4977 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4964 that loading of readline is now optional. This gives better
4978 that loading of readline is now optional. This gives better
4965 control to emacs users.
4979 control to emacs users.
4966
4980
4967 * IPython/ultraTB.py (__date__): Modified color escape sequences
4981 * IPython/ultraTB.py (__date__): Modified color escape sequences
4968 and now things work fine under xterm and in Emacs' term buffers
4982 and now things work fine under xterm and in Emacs' term buffers
4969 (though not shell ones). Well, in emacs you get colors, but all
4983 (though not shell ones). Well, in emacs you get colors, but all
4970 seem to be 'light' colors (no difference between dark and light
4984 seem to be 'light' colors (no difference between dark and light
4971 ones). But the garbage chars are gone, and also in xterms. It
4985 ones). But the garbage chars are gone, and also in xterms. It
4972 seems that now I'm using 'cleaner' ansi sequences.
4986 seems that now I'm using 'cleaner' ansi sequences.
4973
4987
4974 2002-02-21 Fernando Perez <fperez@colorado.edu>
4988 2002-02-21 Fernando Perez <fperez@colorado.edu>
4975
4989
4976 * Released 0.2.7 (mainly to publish the scoping fix).
4990 * Released 0.2.7 (mainly to publish the scoping fix).
4977
4991
4978 * IPython/Logger.py (Logger.logstate): added. A corresponding
4992 * IPython/Logger.py (Logger.logstate): added. A corresponding
4979 @logstate magic was created.
4993 @logstate magic was created.
4980
4994
4981 * IPython/Magic.py: fixed nested scoping problem under Python
4995 * IPython/Magic.py: fixed nested scoping problem under Python
4982 2.1.x (automagic wasn't working).
4996 2.1.x (automagic wasn't working).
4983
4997
4984 2002-02-20 Fernando Perez <fperez@colorado.edu>
4998 2002-02-20 Fernando Perez <fperez@colorado.edu>
4985
4999
4986 * Released 0.2.6.
5000 * Released 0.2.6.
4987
5001
4988 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5002 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4989 option so that logs can come out without any headers at all.
5003 option so that logs can come out without any headers at all.
4990
5004
4991 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5005 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4992 SciPy.
5006 SciPy.
4993
5007
4994 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5008 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4995 that embedded IPython calls don't require vars() to be explicitly
5009 that embedded IPython calls don't require vars() to be explicitly
4996 passed. Now they are extracted from the caller's frame (code
5010 passed. Now they are extracted from the caller's frame (code
4997 snatched from Eric Jones' weave). Added better documentation to
5011 snatched from Eric Jones' weave). Added better documentation to
4998 the section on embedding and the example file.
5012 the section on embedding and the example file.
4999
5013
5000 * IPython/genutils.py (page): Changed so that under emacs, it just
5014 * IPython/genutils.py (page): Changed so that under emacs, it just
5001 prints the string. You can then page up and down in the emacs
5015 prints the string. You can then page up and down in the emacs
5002 buffer itself. This is how the builtin help() works.
5016 buffer itself. This is how the builtin help() works.
5003
5017
5004 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5018 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5005 macro scoping: macros need to be executed in the user's namespace
5019 macro scoping: macros need to be executed in the user's namespace
5006 to work as if they had been typed by the user.
5020 to work as if they had been typed by the user.
5007
5021
5008 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5022 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5009 execute automatically (no need to type 'exec...'). They then
5023 execute automatically (no need to type 'exec...'). They then
5010 behave like 'true macros'. The printing system was also modified
5024 behave like 'true macros'. The printing system was also modified
5011 for this to work.
5025 for this to work.
5012
5026
5013 2002-02-19 Fernando Perez <fperez@colorado.edu>
5027 2002-02-19 Fernando Perez <fperez@colorado.edu>
5014
5028
5015 * IPython/genutils.py (page_file): new function for paging files
5029 * IPython/genutils.py (page_file): new function for paging files
5016 in an OS-independent way. Also necessary for file viewing to work
5030 in an OS-independent way. Also necessary for file viewing to work
5017 well inside Emacs buffers.
5031 well inside Emacs buffers.
5018 (page): Added checks for being in an emacs buffer.
5032 (page): Added checks for being in an emacs buffer.
5019 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5033 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5020 same bug in iplib.
5034 same bug in iplib.
5021
5035
5022 2002-02-18 Fernando Perez <fperez@colorado.edu>
5036 2002-02-18 Fernando Perez <fperez@colorado.edu>
5023
5037
5024 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5038 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5025 of readline so that IPython can work inside an Emacs buffer.
5039 of readline so that IPython can work inside an Emacs buffer.
5026
5040
5027 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5041 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5028 method signatures (they weren't really bugs, but it looks cleaner
5042 method signatures (they weren't really bugs, but it looks cleaner
5029 and keeps PyChecker happy).
5043 and keeps PyChecker happy).
5030
5044
5031 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5045 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5032 for implementing various user-defined hooks. Currently only
5046 for implementing various user-defined hooks. Currently only
5033 display is done.
5047 display is done.
5034
5048
5035 * IPython/Prompts.py (CachedOutput._display): changed display
5049 * IPython/Prompts.py (CachedOutput._display): changed display
5036 functions so that they can be dynamically changed by users easily.
5050 functions so that they can be dynamically changed by users easily.
5037
5051
5038 * IPython/Extensions/numeric_formats.py (num_display): added an
5052 * IPython/Extensions/numeric_formats.py (num_display): added an
5039 extension for printing NumPy arrays in flexible manners. It
5053 extension for printing NumPy arrays in flexible manners. It
5040 doesn't do anything yet, but all the structure is in
5054 doesn't do anything yet, but all the structure is in
5041 place. Ultimately the plan is to implement output format control
5055 place. Ultimately the plan is to implement output format control
5042 like in Octave.
5056 like in Octave.
5043
5057
5044 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5058 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5045 methods are found at run-time by all the automatic machinery.
5059 methods are found at run-time by all the automatic machinery.
5046
5060
5047 2002-02-17 Fernando Perez <fperez@colorado.edu>
5061 2002-02-17 Fernando Perez <fperez@colorado.edu>
5048
5062
5049 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5063 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5050 whole file a little.
5064 whole file a little.
5051
5065
5052 * ToDo: closed this document. Now there's a new_design.lyx
5066 * ToDo: closed this document. Now there's a new_design.lyx
5053 document for all new ideas. Added making a pdf of it for the
5067 document for all new ideas. Added making a pdf of it for the
5054 end-user distro.
5068 end-user distro.
5055
5069
5056 * IPython/Logger.py (Logger.switch_log): Created this to replace
5070 * IPython/Logger.py (Logger.switch_log): Created this to replace
5057 logon() and logoff(). It also fixes a nasty crash reported by
5071 logon() and logoff(). It also fixes a nasty crash reported by
5058 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5072 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5059
5073
5060 * IPython/iplib.py (complete): got auto-completion to work with
5074 * IPython/iplib.py (complete): got auto-completion to work with
5061 automagic (I had wanted this for a long time).
5075 automagic (I had wanted this for a long time).
5062
5076
5063 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5077 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5064 to @file, since file() is now a builtin and clashes with automagic
5078 to @file, since file() is now a builtin and clashes with automagic
5065 for @file.
5079 for @file.
5066
5080
5067 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5081 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5068 of this was previously in iplib, which had grown to more than 2000
5082 of this was previously in iplib, which had grown to more than 2000
5069 lines, way too long. No new functionality, but it makes managing
5083 lines, way too long. No new functionality, but it makes managing
5070 the code a bit easier.
5084 the code a bit easier.
5071
5085
5072 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5086 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5073 information to crash reports.
5087 information to crash reports.
5074
5088
5075 2002-02-12 Fernando Perez <fperez@colorado.edu>
5089 2002-02-12 Fernando Perez <fperez@colorado.edu>
5076
5090
5077 * Released 0.2.5.
5091 * Released 0.2.5.
5078
5092
5079 2002-02-11 Fernando Perez <fperez@colorado.edu>
5093 2002-02-11 Fernando Perez <fperez@colorado.edu>
5080
5094
5081 * Wrote a relatively complete Windows installer. It puts
5095 * Wrote a relatively complete Windows installer. It puts
5082 everything in place, creates Start Menu entries and fixes the
5096 everything in place, creates Start Menu entries and fixes the
5083 color issues. Nothing fancy, but it works.
5097 color issues. Nothing fancy, but it works.
5084
5098
5085 2002-02-10 Fernando Perez <fperez@colorado.edu>
5099 2002-02-10 Fernando Perez <fperez@colorado.edu>
5086
5100
5087 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5101 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5088 os.path.expanduser() call so that we can type @run ~/myfile.py and
5102 os.path.expanduser() call so that we can type @run ~/myfile.py and
5089 have thigs work as expected.
5103 have thigs work as expected.
5090
5104
5091 * IPython/genutils.py (page): fixed exception handling so things
5105 * IPython/genutils.py (page): fixed exception handling so things
5092 work both in Unix and Windows correctly. Quitting a pager triggers
5106 work both in Unix and Windows correctly. Quitting a pager triggers
5093 an IOError/broken pipe in Unix, and in windows not finding a pager
5107 an IOError/broken pipe in Unix, and in windows not finding a pager
5094 is also an IOError, so I had to actually look at the return value
5108 is also an IOError, so I had to actually look at the return value
5095 of the exception, not just the exception itself. Should be ok now.
5109 of the exception, not just the exception itself. Should be ok now.
5096
5110
5097 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5111 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5098 modified to allow case-insensitive color scheme changes.
5112 modified to allow case-insensitive color scheme changes.
5099
5113
5100 2002-02-09 Fernando Perez <fperez@colorado.edu>
5114 2002-02-09 Fernando Perez <fperez@colorado.edu>
5101
5115
5102 * IPython/genutils.py (native_line_ends): new function to leave
5116 * IPython/genutils.py (native_line_ends): new function to leave
5103 user config files with os-native line-endings.
5117 user config files with os-native line-endings.
5104
5118
5105 * README and manual updates.
5119 * README and manual updates.
5106
5120
5107 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5121 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5108 instead of StringType to catch Unicode strings.
5122 instead of StringType to catch Unicode strings.
5109
5123
5110 * IPython/genutils.py (filefind): fixed bug for paths with
5124 * IPython/genutils.py (filefind): fixed bug for paths with
5111 embedded spaces (very common in Windows).
5125 embedded spaces (very common in Windows).
5112
5126
5113 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5127 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5114 files under Windows, so that they get automatically associated
5128 files under Windows, so that they get automatically associated
5115 with a text editor. Windows makes it a pain to handle
5129 with a text editor. Windows makes it a pain to handle
5116 extension-less files.
5130 extension-less files.
5117
5131
5118 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5132 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5119 warning about readline only occur for Posix. In Windows there's no
5133 warning about readline only occur for Posix. In Windows there's no
5120 way to get readline, so why bother with the warning.
5134 way to get readline, so why bother with the warning.
5121
5135
5122 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5136 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5123 for __str__ instead of dir(self), since dir() changed in 2.2.
5137 for __str__ instead of dir(self), since dir() changed in 2.2.
5124
5138
5125 * Ported to Windows! Tested on XP, I suspect it should work fine
5139 * Ported to Windows! Tested on XP, I suspect it should work fine
5126 on NT/2000, but I don't think it will work on 98 et al. That
5140 on NT/2000, but I don't think it will work on 98 et al. That
5127 series of Windows is such a piece of junk anyway that I won't try
5141 series of Windows is such a piece of junk anyway that I won't try
5128 porting it there. The XP port was straightforward, showed a few
5142 porting it there. The XP port was straightforward, showed a few
5129 bugs here and there (fixed all), in particular some string
5143 bugs here and there (fixed all), in particular some string
5130 handling stuff which required considering Unicode strings (which
5144 handling stuff which required considering Unicode strings (which
5131 Windows uses). This is good, but hasn't been too tested :) No
5145 Windows uses). This is good, but hasn't been too tested :) No
5132 fancy installer yet, I'll put a note in the manual so people at
5146 fancy installer yet, I'll put a note in the manual so people at
5133 least make manually a shortcut.
5147 least make manually a shortcut.
5134
5148
5135 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5149 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5136 into a single one, "colors". This now controls both prompt and
5150 into a single one, "colors". This now controls both prompt and
5137 exception color schemes, and can be changed both at startup
5151 exception color schemes, and can be changed both at startup
5138 (either via command-line switches or via ipythonrc files) and at
5152 (either via command-line switches or via ipythonrc files) and at
5139 runtime, with @colors.
5153 runtime, with @colors.
5140 (Magic.magic_run): renamed @prun to @run and removed the old
5154 (Magic.magic_run): renamed @prun to @run and removed the old
5141 @run. The two were too similar to warrant keeping both.
5155 @run. The two were too similar to warrant keeping both.
5142
5156
5143 2002-02-03 Fernando Perez <fperez@colorado.edu>
5157 2002-02-03 Fernando Perez <fperez@colorado.edu>
5144
5158
5145 * IPython/iplib.py (install_first_time): Added comment on how to
5159 * IPython/iplib.py (install_first_time): Added comment on how to
5146 configure the color options for first-time users. Put a <return>
5160 configure the color options for first-time users. Put a <return>
5147 request at the end so that small-terminal users get a chance to
5161 request at the end so that small-terminal users get a chance to
5148 read the startup info.
5162 read the startup info.
5149
5163
5150 2002-01-23 Fernando Perez <fperez@colorado.edu>
5164 2002-01-23 Fernando Perez <fperez@colorado.edu>
5151
5165
5152 * IPython/iplib.py (CachedOutput.update): Changed output memory
5166 * IPython/iplib.py (CachedOutput.update): Changed output memory
5153 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5167 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5154 input history we still use _i. Did this b/c these variable are
5168 input history we still use _i. Did this b/c these variable are
5155 very commonly used in interactive work, so the less we need to
5169 very commonly used in interactive work, so the less we need to
5156 type the better off we are.
5170 type the better off we are.
5157 (Magic.magic_prun): updated @prun to better handle the namespaces
5171 (Magic.magic_prun): updated @prun to better handle the namespaces
5158 the file will run in, including a fix for __name__ not being set
5172 the file will run in, including a fix for __name__ not being set
5159 before.
5173 before.
5160
5174
5161 2002-01-20 Fernando Perez <fperez@colorado.edu>
5175 2002-01-20 Fernando Perez <fperez@colorado.edu>
5162
5176
5163 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5177 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5164 extra garbage for Python 2.2. Need to look more carefully into
5178 extra garbage for Python 2.2. Need to look more carefully into
5165 this later.
5179 this later.
5166
5180
5167 2002-01-19 Fernando Perez <fperez@colorado.edu>
5181 2002-01-19 Fernando Perez <fperez@colorado.edu>
5168
5182
5169 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5183 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5170 display SyntaxError exceptions properly formatted when they occur
5184 display SyntaxError exceptions properly formatted when they occur
5171 (they can be triggered by imported code).
5185 (they can be triggered by imported code).
5172
5186
5173 2002-01-18 Fernando Perez <fperez@colorado.edu>
5187 2002-01-18 Fernando Perez <fperez@colorado.edu>
5174
5188
5175 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5189 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5176 SyntaxError exceptions are reported nicely formatted, instead of
5190 SyntaxError exceptions are reported nicely formatted, instead of
5177 spitting out only offset information as before.
5191 spitting out only offset information as before.
5178 (Magic.magic_prun): Added the @prun function for executing
5192 (Magic.magic_prun): Added the @prun function for executing
5179 programs with command line args inside IPython.
5193 programs with command line args inside IPython.
5180
5194
5181 2002-01-16 Fernando Perez <fperez@colorado.edu>
5195 2002-01-16 Fernando Perez <fperez@colorado.edu>
5182
5196
5183 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5197 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5184 to *not* include the last item given in a range. This brings their
5198 to *not* include the last item given in a range. This brings their
5185 behavior in line with Python's slicing:
5199 behavior in line with Python's slicing:
5186 a[n1:n2] -> a[n1]...a[n2-1]
5200 a[n1:n2] -> a[n1]...a[n2-1]
5187 It may be a bit less convenient, but I prefer to stick to Python's
5201 It may be a bit less convenient, but I prefer to stick to Python's
5188 conventions *everywhere*, so users never have to wonder.
5202 conventions *everywhere*, so users never have to wonder.
5189 (Magic.magic_macro): Added @macro function to ease the creation of
5203 (Magic.magic_macro): Added @macro function to ease the creation of
5190 macros.
5204 macros.
5191
5205
5192 2002-01-05 Fernando Perez <fperez@colorado.edu>
5206 2002-01-05 Fernando Perez <fperez@colorado.edu>
5193
5207
5194 * Released 0.2.4.
5208 * Released 0.2.4.
5195
5209
5196 * IPython/iplib.py (Magic.magic_pdef):
5210 * IPython/iplib.py (Magic.magic_pdef):
5197 (InteractiveShell.safe_execfile): report magic lines and error
5211 (InteractiveShell.safe_execfile): report magic lines and error
5198 lines without line numbers so one can easily copy/paste them for
5212 lines without line numbers so one can easily copy/paste them for
5199 re-execution.
5213 re-execution.
5200
5214
5201 * Updated manual with recent changes.
5215 * Updated manual with recent changes.
5202
5216
5203 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5217 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5204 docstring printing when class? is called. Very handy for knowing
5218 docstring printing when class? is called. Very handy for knowing
5205 how to create class instances (as long as __init__ is well
5219 how to create class instances (as long as __init__ is well
5206 documented, of course :)
5220 documented, of course :)
5207 (Magic.magic_doc): print both class and constructor docstrings.
5221 (Magic.magic_doc): print both class and constructor docstrings.
5208 (Magic.magic_pdef): give constructor info if passed a class and
5222 (Magic.magic_pdef): give constructor info if passed a class and
5209 __call__ info for callable object instances.
5223 __call__ info for callable object instances.
5210
5224
5211 2002-01-04 Fernando Perez <fperez@colorado.edu>
5225 2002-01-04 Fernando Perez <fperez@colorado.edu>
5212
5226
5213 * Made deep_reload() off by default. It doesn't always work
5227 * Made deep_reload() off by default. It doesn't always work
5214 exactly as intended, so it's probably safer to have it off. It's
5228 exactly as intended, so it's probably safer to have it off. It's
5215 still available as dreload() anyway, so nothing is lost.
5229 still available as dreload() anyway, so nothing is lost.
5216
5230
5217 2002-01-02 Fernando Perez <fperez@colorado.edu>
5231 2002-01-02 Fernando Perez <fperez@colorado.edu>
5218
5232
5219 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5233 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5220 so I wanted an updated release).
5234 so I wanted an updated release).
5221
5235
5222 2001-12-27 Fernando Perez <fperez@colorado.edu>
5236 2001-12-27 Fernando Perez <fperez@colorado.edu>
5223
5237
5224 * IPython/iplib.py (InteractiveShell.interact): Added the original
5238 * IPython/iplib.py (InteractiveShell.interact): Added the original
5225 code from 'code.py' for this module in order to change the
5239 code from 'code.py' for this module in order to change the
5226 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5240 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5227 the history cache would break when the user hit Ctrl-C, and
5241 the history cache would break when the user hit Ctrl-C, and
5228 interact() offers no way to add any hooks to it.
5242 interact() offers no way to add any hooks to it.
5229
5243
5230 2001-12-23 Fernando Perez <fperez@colorado.edu>
5244 2001-12-23 Fernando Perez <fperez@colorado.edu>
5231
5245
5232 * setup.py: added check for 'MANIFEST' before trying to remove
5246 * setup.py: added check for 'MANIFEST' before trying to remove
5233 it. Thanks to Sean Reifschneider.
5247 it. Thanks to Sean Reifschneider.
5234
5248
5235 2001-12-22 Fernando Perez <fperez@colorado.edu>
5249 2001-12-22 Fernando Perez <fperez@colorado.edu>
5236
5250
5237 * Released 0.2.2.
5251 * Released 0.2.2.
5238
5252
5239 * Finished (reasonably) writing the manual. Later will add the
5253 * Finished (reasonably) writing the manual. Later will add the
5240 python-standard navigation stylesheets, but for the time being
5254 python-standard navigation stylesheets, but for the time being
5241 it's fairly complete. Distribution will include html and pdf
5255 it's fairly complete. Distribution will include html and pdf
5242 versions.
5256 versions.
5243
5257
5244 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5258 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5245 (MayaVi author).
5259 (MayaVi author).
5246
5260
5247 2001-12-21 Fernando Perez <fperez@colorado.edu>
5261 2001-12-21 Fernando Perez <fperez@colorado.edu>
5248
5262
5249 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5263 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5250 good public release, I think (with the manual and the distutils
5264 good public release, I think (with the manual and the distutils
5251 installer). The manual can use some work, but that can go
5265 installer). The manual can use some work, but that can go
5252 slowly. Otherwise I think it's quite nice for end users. Next
5266 slowly. Otherwise I think it's quite nice for end users. Next
5253 summer, rewrite the guts of it...
5267 summer, rewrite the guts of it...
5254
5268
5255 * Changed format of ipythonrc files to use whitespace as the
5269 * Changed format of ipythonrc files to use whitespace as the
5256 separator instead of an explicit '='. Cleaner.
5270 separator instead of an explicit '='. Cleaner.
5257
5271
5258 2001-12-20 Fernando Perez <fperez@colorado.edu>
5272 2001-12-20 Fernando Perez <fperez@colorado.edu>
5259
5273
5260 * Started a manual in LyX. For now it's just a quick merge of the
5274 * Started a manual in LyX. For now it's just a quick merge of the
5261 various internal docstrings and READMEs. Later it may grow into a
5275 various internal docstrings and READMEs. Later it may grow into a
5262 nice, full-blown manual.
5276 nice, full-blown manual.
5263
5277
5264 * Set up a distutils based installer. Installation should now be
5278 * Set up a distutils based installer. Installation should now be
5265 trivially simple for end-users.
5279 trivially simple for end-users.
5266
5280
5267 2001-12-11 Fernando Perez <fperez@colorado.edu>
5281 2001-12-11 Fernando Perez <fperez@colorado.edu>
5268
5282
5269 * Released 0.2.0. First public release, announced it at
5283 * Released 0.2.0. First public release, announced it at
5270 comp.lang.python. From now on, just bugfixes...
5284 comp.lang.python. From now on, just bugfixes...
5271
5285
5272 * Went through all the files, set copyright/license notices and
5286 * Went through all the files, set copyright/license notices and
5273 cleaned up things. Ready for release.
5287 cleaned up things. Ready for release.
5274
5288
5275 2001-12-10 Fernando Perez <fperez@colorado.edu>
5289 2001-12-10 Fernando Perez <fperez@colorado.edu>
5276
5290
5277 * Changed the first-time installer not to use tarfiles. It's more
5291 * Changed the first-time installer not to use tarfiles. It's more
5278 robust now and less unix-dependent. Also makes it easier for
5292 robust now and less unix-dependent. Also makes it easier for
5279 people to later upgrade versions.
5293 people to later upgrade versions.
5280
5294
5281 * Changed @exit to @abort to reflect the fact that it's pretty
5295 * Changed @exit to @abort to reflect the fact that it's pretty
5282 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5296 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5283 becomes significant only when IPyhton is embedded: in that case,
5297 becomes significant only when IPyhton is embedded: in that case,
5284 C-D closes IPython only, but @abort kills the enclosing program
5298 C-D closes IPython only, but @abort kills the enclosing program
5285 too (unless it had called IPython inside a try catching
5299 too (unless it had called IPython inside a try catching
5286 SystemExit).
5300 SystemExit).
5287
5301
5288 * Created Shell module which exposes the actuall IPython Shell
5302 * Created Shell module which exposes the actuall IPython Shell
5289 classes, currently the normal and the embeddable one. This at
5303 classes, currently the normal and the embeddable one. This at
5290 least offers a stable interface we won't need to change when
5304 least offers a stable interface we won't need to change when
5291 (later) the internals are rewritten. That rewrite will be confined
5305 (later) the internals are rewritten. That rewrite will be confined
5292 to iplib and ipmaker, but the Shell interface should remain as is.
5306 to iplib and ipmaker, but the Shell interface should remain as is.
5293
5307
5294 * Added embed module which offers an embeddable IPShell object,
5308 * Added embed module which offers an embeddable IPShell object,
5295 useful to fire up IPython *inside* a running program. Great for
5309 useful to fire up IPython *inside* a running program. Great for
5296 debugging or dynamical data analysis.
5310 debugging or dynamical data analysis.
5297
5311
5298 2001-12-08 Fernando Perez <fperez@colorado.edu>
5312 2001-12-08 Fernando Perez <fperez@colorado.edu>
5299
5313
5300 * Fixed small bug preventing seeing info from methods of defined
5314 * Fixed small bug preventing seeing info from methods of defined
5301 objects (incorrect namespace in _ofind()).
5315 objects (incorrect namespace in _ofind()).
5302
5316
5303 * Documentation cleanup. Moved the main usage docstrings to a
5317 * Documentation cleanup. Moved the main usage docstrings to a
5304 separate file, usage.py (cleaner to maintain, and hopefully in the
5318 separate file, usage.py (cleaner to maintain, and hopefully in the
5305 future some perlpod-like way of producing interactive, man and
5319 future some perlpod-like way of producing interactive, man and
5306 html docs out of it will be found).
5320 html docs out of it will be found).
5307
5321
5308 * Added @profile to see your profile at any time.
5322 * Added @profile to see your profile at any time.
5309
5323
5310 * Added @p as an alias for 'print'. It's especially convenient if
5324 * Added @p as an alias for 'print'. It's especially convenient if
5311 using automagic ('p x' prints x).
5325 using automagic ('p x' prints x).
5312
5326
5313 * Small cleanups and fixes after a pychecker run.
5327 * Small cleanups and fixes after a pychecker run.
5314
5328
5315 * Changed the @cd command to handle @cd - and @cd -<n> for
5329 * Changed the @cd command to handle @cd - and @cd -<n> for
5316 visiting any directory in _dh.
5330 visiting any directory in _dh.
5317
5331
5318 * Introduced _dh, a history of visited directories. @dhist prints
5332 * Introduced _dh, a history of visited directories. @dhist prints
5319 it out with numbers.
5333 it out with numbers.
5320
5334
5321 2001-12-07 Fernando Perez <fperez@colorado.edu>
5335 2001-12-07 Fernando Perez <fperez@colorado.edu>
5322
5336
5323 * Released 0.1.22
5337 * Released 0.1.22
5324
5338
5325 * Made initialization a bit more robust against invalid color
5339 * Made initialization a bit more robust against invalid color
5326 options in user input (exit, not traceback-crash).
5340 options in user input (exit, not traceback-crash).
5327
5341
5328 * Changed the bug crash reporter to write the report only in the
5342 * Changed the bug crash reporter to write the report only in the
5329 user's .ipython directory. That way IPython won't litter people's
5343 user's .ipython directory. That way IPython won't litter people's
5330 hard disks with crash files all over the place. Also print on
5344 hard disks with crash files all over the place. Also print on
5331 screen the necessary mail command.
5345 screen the necessary mail command.
5332
5346
5333 * With the new ultraTB, implemented LightBG color scheme for light
5347 * With the new ultraTB, implemented LightBG color scheme for light
5334 background terminals. A lot of people like white backgrounds, so I
5348 background terminals. A lot of people like white backgrounds, so I
5335 guess we should at least give them something readable.
5349 guess we should at least give them something readable.
5336
5350
5337 2001-12-06 Fernando Perez <fperez@colorado.edu>
5351 2001-12-06 Fernando Perez <fperez@colorado.edu>
5338
5352
5339 * Modified the structure of ultraTB. Now there's a proper class
5353 * Modified the structure of ultraTB. Now there's a proper class
5340 for tables of color schemes which allow adding schemes easily and
5354 for tables of color schemes which allow adding schemes easily and
5341 switching the active scheme without creating a new instance every
5355 switching the active scheme without creating a new instance every
5342 time (which was ridiculous). The syntax for creating new schemes
5356 time (which was ridiculous). The syntax for creating new schemes
5343 is also cleaner. I think ultraTB is finally done, with a clean
5357 is also cleaner. I think ultraTB is finally done, with a clean
5344 class structure. Names are also much cleaner (now there's proper
5358 class structure. Names are also much cleaner (now there's proper
5345 color tables, no need for every variable to also have 'color' in
5359 color tables, no need for every variable to also have 'color' in
5346 its name).
5360 its name).
5347
5361
5348 * Broke down genutils into separate files. Now genutils only
5362 * Broke down genutils into separate files. Now genutils only
5349 contains utility functions, and classes have been moved to their
5363 contains utility functions, and classes have been moved to their
5350 own files (they had enough independent functionality to warrant
5364 own files (they had enough independent functionality to warrant
5351 it): ConfigLoader, OutputTrap, Struct.
5365 it): ConfigLoader, OutputTrap, Struct.
5352
5366
5353 2001-12-05 Fernando Perez <fperez@colorado.edu>
5367 2001-12-05 Fernando Perez <fperez@colorado.edu>
5354
5368
5355 * IPython turns 21! Released version 0.1.21, as a candidate for
5369 * IPython turns 21! Released version 0.1.21, as a candidate for
5356 public consumption. If all goes well, release in a few days.
5370 public consumption. If all goes well, release in a few days.
5357
5371
5358 * Fixed path bug (files in Extensions/ directory wouldn't be found
5372 * Fixed path bug (files in Extensions/ directory wouldn't be found
5359 unless IPython/ was explicitly in sys.path).
5373 unless IPython/ was explicitly in sys.path).
5360
5374
5361 * Extended the FlexCompleter class as MagicCompleter to allow
5375 * Extended the FlexCompleter class as MagicCompleter to allow
5362 completion of @-starting lines.
5376 completion of @-starting lines.
5363
5377
5364 * Created __release__.py file as a central repository for release
5378 * Created __release__.py file as a central repository for release
5365 info that other files can read from.
5379 info that other files can read from.
5366
5380
5367 * Fixed small bug in logging: when logging was turned on in
5381 * Fixed small bug in logging: when logging was turned on in
5368 mid-session, old lines with special meanings (!@?) were being
5382 mid-session, old lines with special meanings (!@?) were being
5369 logged without the prepended comment, which is necessary since
5383 logged without the prepended comment, which is necessary since
5370 they are not truly valid python syntax. This should make session
5384 they are not truly valid python syntax. This should make session
5371 restores produce less errors.
5385 restores produce less errors.
5372
5386
5373 * The namespace cleanup forced me to make a FlexCompleter class
5387 * The namespace cleanup forced me to make a FlexCompleter class
5374 which is nothing but a ripoff of rlcompleter, but with selectable
5388 which is nothing but a ripoff of rlcompleter, but with selectable
5375 namespace (rlcompleter only works in __main__.__dict__). I'll try
5389 namespace (rlcompleter only works in __main__.__dict__). I'll try
5376 to submit a note to the authors to see if this change can be
5390 to submit a note to the authors to see if this change can be
5377 incorporated in future rlcompleter releases (Dec.6: done)
5391 incorporated in future rlcompleter releases (Dec.6: done)
5378
5392
5379 * More fixes to namespace handling. It was a mess! Now all
5393 * More fixes to namespace handling. It was a mess! Now all
5380 explicit references to __main__.__dict__ are gone (except when
5394 explicit references to __main__.__dict__ are gone (except when
5381 really needed) and everything is handled through the namespace
5395 really needed) and everything is handled through the namespace
5382 dicts in the IPython instance. We seem to be getting somewhere
5396 dicts in the IPython instance. We seem to be getting somewhere
5383 with this, finally...
5397 with this, finally...
5384
5398
5385 * Small documentation updates.
5399 * Small documentation updates.
5386
5400
5387 * Created the Extensions directory under IPython (with an
5401 * Created the Extensions directory under IPython (with an
5388 __init__.py). Put the PhysicalQ stuff there. This directory should
5402 __init__.py). Put the PhysicalQ stuff there. This directory should
5389 be used for all special-purpose extensions.
5403 be used for all special-purpose extensions.
5390
5404
5391 * File renaming:
5405 * File renaming:
5392 ipythonlib --> ipmaker
5406 ipythonlib --> ipmaker
5393 ipplib --> iplib
5407 ipplib --> iplib
5394 This makes a bit more sense in terms of what these files actually do.
5408 This makes a bit more sense in terms of what these files actually do.
5395
5409
5396 * Moved all the classes and functions in ipythonlib to ipplib, so
5410 * Moved all the classes and functions in ipythonlib to ipplib, so
5397 now ipythonlib only has make_IPython(). This will ease up its
5411 now ipythonlib only has make_IPython(). This will ease up its
5398 splitting in smaller functional chunks later.
5412 splitting in smaller functional chunks later.
5399
5413
5400 * Cleaned up (done, I think) output of @whos. Better column
5414 * Cleaned up (done, I think) output of @whos. Better column
5401 formatting, and now shows str(var) for as much as it can, which is
5415 formatting, and now shows str(var) for as much as it can, which is
5402 typically what one gets with a 'print var'.
5416 typically what one gets with a 'print var'.
5403
5417
5404 2001-12-04 Fernando Perez <fperez@colorado.edu>
5418 2001-12-04 Fernando Perez <fperez@colorado.edu>
5405
5419
5406 * Fixed namespace problems. Now builtin/IPyhton/user names get
5420 * Fixed namespace problems. Now builtin/IPyhton/user names get
5407 properly reported in their namespace. Internal namespace handling
5421 properly reported in their namespace. Internal namespace handling
5408 is finally getting decent (not perfect yet, but much better than
5422 is finally getting decent (not perfect yet, but much better than
5409 the ad-hoc mess we had).
5423 the ad-hoc mess we had).
5410
5424
5411 * Removed -exit option. If people just want to run a python
5425 * Removed -exit option. If people just want to run a python
5412 script, that's what the normal interpreter is for. Less
5426 script, that's what the normal interpreter is for. Less
5413 unnecessary options, less chances for bugs.
5427 unnecessary options, less chances for bugs.
5414
5428
5415 * Added a crash handler which generates a complete post-mortem if
5429 * Added a crash handler which generates a complete post-mortem if
5416 IPython crashes. This will help a lot in tracking bugs down the
5430 IPython crashes. This will help a lot in tracking bugs down the
5417 road.
5431 road.
5418
5432
5419 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5433 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5420 which were boud to functions being reassigned would bypass the
5434 which were boud to functions being reassigned would bypass the
5421 logger, breaking the sync of _il with the prompt counter. This
5435 logger, breaking the sync of _il with the prompt counter. This
5422 would then crash IPython later when a new line was logged.
5436 would then crash IPython later when a new line was logged.
5423
5437
5424 2001-12-02 Fernando Perez <fperez@colorado.edu>
5438 2001-12-02 Fernando Perez <fperez@colorado.edu>
5425
5439
5426 * Made IPython a package. This means people don't have to clutter
5440 * Made IPython a package. This means people don't have to clutter
5427 their sys.path with yet another directory. Changed the INSTALL
5441 their sys.path with yet another directory. Changed the INSTALL
5428 file accordingly.
5442 file accordingly.
5429
5443
5430 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5444 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5431 sorts its output (so @who shows it sorted) and @whos formats the
5445 sorts its output (so @who shows it sorted) and @whos formats the
5432 table according to the width of the first column. Nicer, easier to
5446 table according to the width of the first column. Nicer, easier to
5433 read. Todo: write a generic table_format() which takes a list of
5447 read. Todo: write a generic table_format() which takes a list of
5434 lists and prints it nicely formatted, with optional row/column
5448 lists and prints it nicely formatted, with optional row/column
5435 separators and proper padding and justification.
5449 separators and proper padding and justification.
5436
5450
5437 * Released 0.1.20
5451 * Released 0.1.20
5438
5452
5439 * Fixed bug in @log which would reverse the inputcache list (a
5453 * Fixed bug in @log which would reverse the inputcache list (a
5440 copy operation was missing).
5454 copy operation was missing).
5441
5455
5442 * Code cleanup. @config was changed to use page(). Better, since
5456 * Code cleanup. @config was changed to use page(). Better, since
5443 its output is always quite long.
5457 its output is always quite long.
5444
5458
5445 * Itpl is back as a dependency. I was having too many problems
5459 * Itpl is back as a dependency. I was having too many problems
5446 getting the parametric aliases to work reliably, and it's just
5460 getting the parametric aliases to work reliably, and it's just
5447 easier to code weird string operations with it than playing %()s
5461 easier to code weird string operations with it than playing %()s
5448 games. It's only ~6k, so I don't think it's too big a deal.
5462 games. It's only ~6k, so I don't think it's too big a deal.
5449
5463
5450 * Found (and fixed) a very nasty bug with history. !lines weren't
5464 * Found (and fixed) a very nasty bug with history. !lines weren't
5451 getting cached, and the out of sync caches would crash
5465 getting cached, and the out of sync caches would crash
5452 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5466 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5453 division of labor a bit better. Bug fixed, cleaner structure.
5467 division of labor a bit better. Bug fixed, cleaner structure.
5454
5468
5455 2001-12-01 Fernando Perez <fperez@colorado.edu>
5469 2001-12-01 Fernando Perez <fperez@colorado.edu>
5456
5470
5457 * Released 0.1.19
5471 * Released 0.1.19
5458
5472
5459 * Added option -n to @hist to prevent line number printing. Much
5473 * Added option -n to @hist to prevent line number printing. Much
5460 easier to copy/paste code this way.
5474 easier to copy/paste code this way.
5461
5475
5462 * Created global _il to hold the input list. Allows easy
5476 * Created global _il to hold the input list. Allows easy
5463 re-execution of blocks of code by slicing it (inspired by Janko's
5477 re-execution of blocks of code by slicing it (inspired by Janko's
5464 comment on 'macros').
5478 comment on 'macros').
5465
5479
5466 * Small fixes and doc updates.
5480 * Small fixes and doc updates.
5467
5481
5468 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5482 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5469 much too fragile with automagic. Handles properly multi-line
5483 much too fragile with automagic. Handles properly multi-line
5470 statements and takes parameters.
5484 statements and takes parameters.
5471
5485
5472 2001-11-30 Fernando Perez <fperez@colorado.edu>
5486 2001-11-30 Fernando Perez <fperez@colorado.edu>
5473
5487
5474 * Version 0.1.18 released.
5488 * Version 0.1.18 released.
5475
5489
5476 * Fixed nasty namespace bug in initial module imports.
5490 * Fixed nasty namespace bug in initial module imports.
5477
5491
5478 * Added copyright/license notes to all code files (except
5492 * Added copyright/license notes to all code files (except
5479 DPyGetOpt). For the time being, LGPL. That could change.
5493 DPyGetOpt). For the time being, LGPL. That could change.
5480
5494
5481 * Rewrote a much nicer README, updated INSTALL, cleaned up
5495 * Rewrote a much nicer README, updated INSTALL, cleaned up
5482 ipythonrc-* samples.
5496 ipythonrc-* samples.
5483
5497
5484 * Overall code/documentation cleanup. Basically ready for
5498 * Overall code/documentation cleanup. Basically ready for
5485 release. Only remaining thing: licence decision (LGPL?).
5499 release. Only remaining thing: licence decision (LGPL?).
5486
5500
5487 * Converted load_config to a class, ConfigLoader. Now recursion
5501 * Converted load_config to a class, ConfigLoader. Now recursion
5488 control is better organized. Doesn't include the same file twice.
5502 control is better organized. Doesn't include the same file twice.
5489
5503
5490 2001-11-29 Fernando Perez <fperez@colorado.edu>
5504 2001-11-29 Fernando Perez <fperez@colorado.edu>
5491
5505
5492 * Got input history working. Changed output history variables from
5506 * Got input history working. Changed output history variables from
5493 _p to _o so that _i is for input and _o for output. Just cleaner
5507 _p to _o so that _i is for input and _o for output. Just cleaner
5494 convention.
5508 convention.
5495
5509
5496 * Implemented parametric aliases. This pretty much allows the
5510 * Implemented parametric aliases. This pretty much allows the
5497 alias system to offer full-blown shell convenience, I think.
5511 alias system to offer full-blown shell convenience, I think.
5498
5512
5499 * Version 0.1.17 released, 0.1.18 opened.
5513 * Version 0.1.17 released, 0.1.18 opened.
5500
5514
5501 * dot_ipython/ipythonrc (alias): added documentation.
5515 * dot_ipython/ipythonrc (alias): added documentation.
5502 (xcolor): Fixed small bug (xcolors -> xcolor)
5516 (xcolor): Fixed small bug (xcolors -> xcolor)
5503
5517
5504 * Changed the alias system. Now alias is a magic command to define
5518 * Changed the alias system. Now alias is a magic command to define
5505 aliases just like the shell. Rationale: the builtin magics should
5519 aliases just like the shell. Rationale: the builtin magics should
5506 be there for things deeply connected to IPython's
5520 be there for things deeply connected to IPython's
5507 architecture. And this is a much lighter system for what I think
5521 architecture. And this is a much lighter system for what I think
5508 is the really important feature: allowing users to define quickly
5522 is the really important feature: allowing users to define quickly
5509 magics that will do shell things for them, so they can customize
5523 magics that will do shell things for them, so they can customize
5510 IPython easily to match their work habits. If someone is really
5524 IPython easily to match their work habits. If someone is really
5511 desperate to have another name for a builtin alias, they can
5525 desperate to have another name for a builtin alias, they can
5512 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5526 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5513 works.
5527 works.
5514
5528
5515 2001-11-28 Fernando Perez <fperez@colorado.edu>
5529 2001-11-28 Fernando Perez <fperez@colorado.edu>
5516
5530
5517 * Changed @file so that it opens the source file at the proper
5531 * Changed @file so that it opens the source file at the proper
5518 line. Since it uses less, if your EDITOR environment is
5532 line. Since it uses less, if your EDITOR environment is
5519 configured, typing v will immediately open your editor of choice
5533 configured, typing v will immediately open your editor of choice
5520 right at the line where the object is defined. Not as quick as
5534 right at the line where the object is defined. Not as quick as
5521 having a direct @edit command, but for all intents and purposes it
5535 having a direct @edit command, but for all intents and purposes it
5522 works. And I don't have to worry about writing @edit to deal with
5536 works. And I don't have to worry about writing @edit to deal with
5523 all the editors, less does that.
5537 all the editors, less does that.
5524
5538
5525 * Version 0.1.16 released, 0.1.17 opened.
5539 * Version 0.1.16 released, 0.1.17 opened.
5526
5540
5527 * Fixed some nasty bugs in the page/page_dumb combo that could
5541 * Fixed some nasty bugs in the page/page_dumb combo that could
5528 crash IPython.
5542 crash IPython.
5529
5543
5530 2001-11-27 Fernando Perez <fperez@colorado.edu>
5544 2001-11-27 Fernando Perez <fperez@colorado.edu>
5531
5545
5532 * Version 0.1.15 released, 0.1.16 opened.
5546 * Version 0.1.15 released, 0.1.16 opened.
5533
5547
5534 * Finally got ? and ?? to work for undefined things: now it's
5548 * Finally got ? and ?? to work for undefined things: now it's
5535 possible to type {}.get? and get information about the get method
5549 possible to type {}.get? and get information about the get method
5536 of dicts, or os.path? even if only os is defined (so technically
5550 of dicts, or os.path? even if only os is defined (so technically
5537 os.path isn't). Works at any level. For example, after import os,
5551 os.path isn't). Works at any level. For example, after import os,
5538 os?, os.path?, os.path.abspath? all work. This is great, took some
5552 os?, os.path?, os.path.abspath? all work. This is great, took some
5539 work in _ofind.
5553 work in _ofind.
5540
5554
5541 * Fixed more bugs with logging. The sanest way to do it was to add
5555 * Fixed more bugs with logging. The sanest way to do it was to add
5542 to @log a 'mode' parameter. Killed two in one shot (this mode
5556 to @log a 'mode' parameter. Killed two in one shot (this mode
5543 option was a request of Janko's). I think it's finally clean
5557 option was a request of Janko's). I think it's finally clean
5544 (famous last words).
5558 (famous last words).
5545
5559
5546 * Added a page_dumb() pager which does a decent job of paging on
5560 * Added a page_dumb() pager which does a decent job of paging on
5547 screen, if better things (like less) aren't available. One less
5561 screen, if better things (like less) aren't available. One less
5548 unix dependency (someday maybe somebody will port this to
5562 unix dependency (someday maybe somebody will port this to
5549 windows).
5563 windows).
5550
5564
5551 * Fixed problem in magic_log: would lock of logging out if log
5565 * Fixed problem in magic_log: would lock of logging out if log
5552 creation failed (because it would still think it had succeeded).
5566 creation failed (because it would still think it had succeeded).
5553
5567
5554 * Improved the page() function using curses to auto-detect screen
5568 * Improved the page() function using curses to auto-detect screen
5555 size. Now it can make a much better decision on whether to print
5569 size. Now it can make a much better decision on whether to print
5556 or page a string. Option screen_length was modified: a value 0
5570 or page a string. Option screen_length was modified: a value 0
5557 means auto-detect, and that's the default now.
5571 means auto-detect, and that's the default now.
5558
5572
5559 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5573 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5560 go out. I'll test it for a few days, then talk to Janko about
5574 go out. I'll test it for a few days, then talk to Janko about
5561 licences and announce it.
5575 licences and announce it.
5562
5576
5563 * Fixed the length of the auto-generated ---> prompt which appears
5577 * Fixed the length of the auto-generated ---> prompt which appears
5564 for auto-parens and auto-quotes. Getting this right isn't trivial,
5578 for auto-parens and auto-quotes. Getting this right isn't trivial,
5565 with all the color escapes, different prompt types and optional
5579 with all the color escapes, different prompt types and optional
5566 separators. But it seems to be working in all the combinations.
5580 separators. But it seems to be working in all the combinations.
5567
5581
5568 2001-11-26 Fernando Perez <fperez@colorado.edu>
5582 2001-11-26 Fernando Perez <fperez@colorado.edu>
5569
5583
5570 * Wrote a regexp filter to get option types from the option names
5584 * Wrote a regexp filter to get option types from the option names
5571 string. This eliminates the need to manually keep two duplicate
5585 string. This eliminates the need to manually keep two duplicate
5572 lists.
5586 lists.
5573
5587
5574 * Removed the unneeded check_option_names. Now options are handled
5588 * Removed the unneeded check_option_names. Now options are handled
5575 in a much saner manner and it's easy to visually check that things
5589 in a much saner manner and it's easy to visually check that things
5576 are ok.
5590 are ok.
5577
5591
5578 * Updated version numbers on all files I modified to carry a
5592 * Updated version numbers on all files I modified to carry a
5579 notice so Janko and Nathan have clear version markers.
5593 notice so Janko and Nathan have clear version markers.
5580
5594
5581 * Updated docstring for ultraTB with my changes. I should send
5595 * Updated docstring for ultraTB with my changes. I should send
5582 this to Nathan.
5596 this to Nathan.
5583
5597
5584 * Lots of small fixes. Ran everything through pychecker again.
5598 * Lots of small fixes. Ran everything through pychecker again.
5585
5599
5586 * Made loading of deep_reload an cmd line option. If it's not too
5600 * Made loading of deep_reload an cmd line option. If it's not too
5587 kosher, now people can just disable it. With -nodeep_reload it's
5601 kosher, now people can just disable it. With -nodeep_reload it's
5588 still available as dreload(), it just won't overwrite reload().
5602 still available as dreload(), it just won't overwrite reload().
5589
5603
5590 * Moved many options to the no| form (-opt and -noopt
5604 * Moved many options to the no| form (-opt and -noopt
5591 accepted). Cleaner.
5605 accepted). Cleaner.
5592
5606
5593 * Changed magic_log so that if called with no parameters, it uses
5607 * Changed magic_log so that if called with no parameters, it uses
5594 'rotate' mode. That way auto-generated logs aren't automatically
5608 'rotate' mode. That way auto-generated logs aren't automatically
5595 over-written. For normal logs, now a backup is made if it exists
5609 over-written. For normal logs, now a backup is made if it exists
5596 (only 1 level of backups). A new 'backup' mode was added to the
5610 (only 1 level of backups). A new 'backup' mode was added to the
5597 Logger class to support this. This was a request by Janko.
5611 Logger class to support this. This was a request by Janko.
5598
5612
5599 * Added @logoff/@logon to stop/restart an active log.
5613 * Added @logoff/@logon to stop/restart an active log.
5600
5614
5601 * Fixed a lot of bugs in log saving/replay. It was pretty
5615 * Fixed a lot of bugs in log saving/replay. It was pretty
5602 broken. Now special lines (!@,/) appear properly in the command
5616 broken. Now special lines (!@,/) appear properly in the command
5603 history after a log replay.
5617 history after a log replay.
5604
5618
5605 * Tried and failed to implement full session saving via pickle. My
5619 * Tried and failed to implement full session saving via pickle. My
5606 idea was to pickle __main__.__dict__, but modules can't be
5620 idea was to pickle __main__.__dict__, but modules can't be
5607 pickled. This would be a better alternative to replaying logs, but
5621 pickled. This would be a better alternative to replaying logs, but
5608 seems quite tricky to get to work. Changed -session to be called
5622 seems quite tricky to get to work. Changed -session to be called
5609 -logplay, which more accurately reflects what it does. And if we
5623 -logplay, which more accurately reflects what it does. And if we
5610 ever get real session saving working, -session is now available.
5624 ever get real session saving working, -session is now available.
5611
5625
5612 * Implemented color schemes for prompts also. As for tracebacks,
5626 * Implemented color schemes for prompts also. As for tracebacks,
5613 currently only NoColor and Linux are supported. But now the
5627 currently only NoColor and Linux are supported. But now the
5614 infrastructure is in place, based on a generic ColorScheme
5628 infrastructure is in place, based on a generic ColorScheme
5615 class. So writing and activating new schemes both for the prompts
5629 class. So writing and activating new schemes both for the prompts
5616 and the tracebacks should be straightforward.
5630 and the tracebacks should be straightforward.
5617
5631
5618 * Version 0.1.13 released, 0.1.14 opened.
5632 * Version 0.1.13 released, 0.1.14 opened.
5619
5633
5620 * Changed handling of options for output cache. Now counter is
5634 * Changed handling of options for output cache. Now counter is
5621 hardwired starting at 1 and one specifies the maximum number of
5635 hardwired starting at 1 and one specifies the maximum number of
5622 entries *in the outcache* (not the max prompt counter). This is
5636 entries *in the outcache* (not the max prompt counter). This is
5623 much better, since many statements won't increase the cache
5637 much better, since many statements won't increase the cache
5624 count. It also eliminated some confusing options, now there's only
5638 count. It also eliminated some confusing options, now there's only
5625 one: cache_size.
5639 one: cache_size.
5626
5640
5627 * Added 'alias' magic function and magic_alias option in the
5641 * Added 'alias' magic function and magic_alias option in the
5628 ipythonrc file. Now the user can easily define whatever names he
5642 ipythonrc file. Now the user can easily define whatever names he
5629 wants for the magic functions without having to play weird
5643 wants for the magic functions without having to play weird
5630 namespace games. This gives IPython a real shell-like feel.
5644 namespace games. This gives IPython a real shell-like feel.
5631
5645
5632 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5646 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5633 @ or not).
5647 @ or not).
5634
5648
5635 This was one of the last remaining 'visible' bugs (that I know
5649 This was one of the last remaining 'visible' bugs (that I know
5636 of). I think if I can clean up the session loading so it works
5650 of). I think if I can clean up the session loading so it works
5637 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5651 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5638 about licensing).
5652 about licensing).
5639
5653
5640 2001-11-25 Fernando Perez <fperez@colorado.edu>
5654 2001-11-25 Fernando Perez <fperez@colorado.edu>
5641
5655
5642 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5656 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5643 there's a cleaner distinction between what ? and ?? show.
5657 there's a cleaner distinction between what ? and ?? show.
5644
5658
5645 * Added screen_length option. Now the user can define his own
5659 * Added screen_length option. Now the user can define his own
5646 screen size for page() operations.
5660 screen size for page() operations.
5647
5661
5648 * Implemented magic shell-like functions with automatic code
5662 * Implemented magic shell-like functions with automatic code
5649 generation. Now adding another function is just a matter of adding
5663 generation. Now adding another function is just a matter of adding
5650 an entry to a dict, and the function is dynamically generated at
5664 an entry to a dict, and the function is dynamically generated at
5651 run-time. Python has some really cool features!
5665 run-time. Python has some really cool features!
5652
5666
5653 * Renamed many options to cleanup conventions a little. Now all
5667 * Renamed many options to cleanup conventions a little. Now all
5654 are lowercase, and only underscores where needed. Also in the code
5668 are lowercase, and only underscores where needed. Also in the code
5655 option name tables are clearer.
5669 option name tables are clearer.
5656
5670
5657 * Changed prompts a little. Now input is 'In [n]:' instead of
5671 * Changed prompts a little. Now input is 'In [n]:' instead of
5658 'In[n]:='. This allows it the numbers to be aligned with the
5672 'In[n]:='. This allows it the numbers to be aligned with the
5659 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5673 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5660 Python (it was a Mathematica thing). The '...' continuation prompt
5674 Python (it was a Mathematica thing). The '...' continuation prompt
5661 was also changed a little to align better.
5675 was also changed a little to align better.
5662
5676
5663 * Fixed bug when flushing output cache. Not all _p<n> variables
5677 * Fixed bug when flushing output cache. Not all _p<n> variables
5664 exist, so their deletion needs to be wrapped in a try:
5678 exist, so their deletion needs to be wrapped in a try:
5665
5679
5666 * Figured out how to properly use inspect.formatargspec() (it
5680 * Figured out how to properly use inspect.formatargspec() (it
5667 requires the args preceded by *). So I removed all the code from
5681 requires the args preceded by *). So I removed all the code from
5668 _get_pdef in Magic, which was just replicating that.
5682 _get_pdef in Magic, which was just replicating that.
5669
5683
5670 * Added test to prefilter to allow redefining magic function names
5684 * Added test to prefilter to allow redefining magic function names
5671 as variables. This is ok, since the @ form is always available,
5685 as variables. This is ok, since the @ form is always available,
5672 but whe should allow the user to define a variable called 'ls' if
5686 but whe should allow the user to define a variable called 'ls' if
5673 he needs it.
5687 he needs it.
5674
5688
5675 * Moved the ToDo information from README into a separate ToDo.
5689 * Moved the ToDo information from README into a separate ToDo.
5676
5690
5677 * General code cleanup and small bugfixes. I think it's close to a
5691 * General code cleanup and small bugfixes. I think it's close to a
5678 state where it can be released, obviously with a big 'beta'
5692 state where it can be released, obviously with a big 'beta'
5679 warning on it.
5693 warning on it.
5680
5694
5681 * Got the magic function split to work. Now all magics are defined
5695 * Got the magic function split to work. Now all magics are defined
5682 in a separate class. It just organizes things a bit, and now
5696 in a separate class. It just organizes things a bit, and now
5683 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5697 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5684 was too long).
5698 was too long).
5685
5699
5686 * Changed @clear to @reset to avoid potential confusions with
5700 * Changed @clear to @reset to avoid potential confusions with
5687 the shell command clear. Also renamed @cl to @clear, which does
5701 the shell command clear. Also renamed @cl to @clear, which does
5688 exactly what people expect it to from their shell experience.
5702 exactly what people expect it to from their shell experience.
5689
5703
5690 Added a check to the @reset command (since it's so
5704 Added a check to the @reset command (since it's so
5691 destructive, it's probably a good idea to ask for confirmation).
5705 destructive, it's probably a good idea to ask for confirmation).
5692 But now reset only works for full namespace resetting. Since the
5706 But now reset only works for full namespace resetting. Since the
5693 del keyword is already there for deleting a few specific
5707 del keyword is already there for deleting a few specific
5694 variables, I don't see the point of having a redundant magic
5708 variables, I don't see the point of having a redundant magic
5695 function for the same task.
5709 function for the same task.
5696
5710
5697 2001-11-24 Fernando Perez <fperez@colorado.edu>
5711 2001-11-24 Fernando Perez <fperez@colorado.edu>
5698
5712
5699 * Updated the builtin docs (esp. the ? ones).
5713 * Updated the builtin docs (esp. the ? ones).
5700
5714
5701 * Ran all the code through pychecker. Not terribly impressed with
5715 * Ran all the code through pychecker. Not terribly impressed with
5702 it: lots of spurious warnings and didn't really find anything of
5716 it: lots of spurious warnings and didn't really find anything of
5703 substance (just a few modules being imported and not used).
5717 substance (just a few modules being imported and not used).
5704
5718
5705 * Implemented the new ultraTB functionality into IPython. New
5719 * Implemented the new ultraTB functionality into IPython. New
5706 option: xcolors. This chooses color scheme. xmode now only selects
5720 option: xcolors. This chooses color scheme. xmode now only selects
5707 between Plain and Verbose. Better orthogonality.
5721 between Plain and Verbose. Better orthogonality.
5708
5722
5709 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5723 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5710 mode and color scheme for the exception handlers. Now it's
5724 mode and color scheme for the exception handlers. Now it's
5711 possible to have the verbose traceback with no coloring.
5725 possible to have the verbose traceback with no coloring.
5712
5726
5713 2001-11-23 Fernando Perez <fperez@colorado.edu>
5727 2001-11-23 Fernando Perez <fperez@colorado.edu>
5714
5728
5715 * Version 0.1.12 released, 0.1.13 opened.
5729 * Version 0.1.12 released, 0.1.13 opened.
5716
5730
5717 * Removed option to set auto-quote and auto-paren escapes by
5731 * Removed option to set auto-quote and auto-paren escapes by
5718 user. The chances of breaking valid syntax are just too high. If
5732 user. The chances of breaking valid syntax are just too high. If
5719 someone *really* wants, they can always dig into the code.
5733 someone *really* wants, they can always dig into the code.
5720
5734
5721 * Made prompt separators configurable.
5735 * Made prompt separators configurable.
5722
5736
5723 2001-11-22 Fernando Perez <fperez@colorado.edu>
5737 2001-11-22 Fernando Perez <fperez@colorado.edu>
5724
5738
5725 * Small bugfixes in many places.
5739 * Small bugfixes in many places.
5726
5740
5727 * Removed the MyCompleter class from ipplib. It seemed redundant
5741 * Removed the MyCompleter class from ipplib. It seemed redundant
5728 with the C-p,C-n history search functionality. Less code to
5742 with the C-p,C-n history search functionality. Less code to
5729 maintain.
5743 maintain.
5730
5744
5731 * Moved all the original ipython.py code into ipythonlib.py. Right
5745 * Moved all the original ipython.py code into ipythonlib.py. Right
5732 now it's just one big dump into a function called make_IPython, so
5746 now it's just one big dump into a function called make_IPython, so
5733 no real modularity has been gained. But at least it makes the
5747 no real modularity has been gained. But at least it makes the
5734 wrapper script tiny, and since ipythonlib is a module, it gets
5748 wrapper script tiny, and since ipythonlib is a module, it gets
5735 compiled and startup is much faster.
5749 compiled and startup is much faster.
5736
5750
5737 This is a reasobably 'deep' change, so we should test it for a
5751 This is a reasobably 'deep' change, so we should test it for a
5738 while without messing too much more with the code.
5752 while without messing too much more with the code.
5739
5753
5740 2001-11-21 Fernando Perez <fperez@colorado.edu>
5754 2001-11-21 Fernando Perez <fperez@colorado.edu>
5741
5755
5742 * Version 0.1.11 released, 0.1.12 opened for further work.
5756 * Version 0.1.11 released, 0.1.12 opened for further work.
5743
5757
5744 * Removed dependency on Itpl. It was only needed in one place. It
5758 * Removed dependency on Itpl. It was only needed in one place. It
5745 would be nice if this became part of python, though. It makes life
5759 would be nice if this became part of python, though. It makes life
5746 *a lot* easier in some cases.
5760 *a lot* easier in some cases.
5747
5761
5748 * Simplified the prefilter code a bit. Now all handlers are
5762 * Simplified the prefilter code a bit. Now all handlers are
5749 expected to explicitly return a value (at least a blank string).
5763 expected to explicitly return a value (at least a blank string).
5750
5764
5751 * Heavy edits in ipplib. Removed the help system altogether. Now
5765 * Heavy edits in ipplib. Removed the help system altogether. Now
5752 obj?/?? is used for inspecting objects, a magic @doc prints
5766 obj?/?? is used for inspecting objects, a magic @doc prints
5753 docstrings, and full-blown Python help is accessed via the 'help'
5767 docstrings, and full-blown Python help is accessed via the 'help'
5754 keyword. This cleans up a lot of code (less to maintain) and does
5768 keyword. This cleans up a lot of code (less to maintain) and does
5755 the job. Since 'help' is now a standard Python component, might as
5769 the job. Since 'help' is now a standard Python component, might as
5756 well use it and remove duplicate functionality.
5770 well use it and remove duplicate functionality.
5757
5771
5758 Also removed the option to use ipplib as a standalone program. By
5772 Also removed the option to use ipplib as a standalone program. By
5759 now it's too dependent on other parts of IPython to function alone.
5773 now it's too dependent on other parts of IPython to function alone.
5760
5774
5761 * Fixed bug in genutils.pager. It would crash if the pager was
5775 * Fixed bug in genutils.pager. It would crash if the pager was
5762 exited immediately after opening (broken pipe).
5776 exited immediately after opening (broken pipe).
5763
5777
5764 * Trimmed down the VerboseTB reporting a little. The header is
5778 * Trimmed down the VerboseTB reporting a little. The header is
5765 much shorter now and the repeated exception arguments at the end
5779 much shorter now and the repeated exception arguments at the end
5766 have been removed. For interactive use the old header seemed a bit
5780 have been removed. For interactive use the old header seemed a bit
5767 excessive.
5781 excessive.
5768
5782
5769 * Fixed small bug in output of @whos for variables with multi-word
5783 * Fixed small bug in output of @whos for variables with multi-word
5770 types (only first word was displayed).
5784 types (only first word was displayed).
5771
5785
5772 2001-11-17 Fernando Perez <fperez@colorado.edu>
5786 2001-11-17 Fernando Perez <fperez@colorado.edu>
5773
5787
5774 * Version 0.1.10 released, 0.1.11 opened for further work.
5788 * Version 0.1.10 released, 0.1.11 opened for further work.
5775
5789
5776 * Modified dirs and friends. dirs now *returns* the stack (not
5790 * Modified dirs and friends. dirs now *returns* the stack (not
5777 prints), so one can manipulate it as a variable. Convenient to
5791 prints), so one can manipulate it as a variable. Convenient to
5778 travel along many directories.
5792 travel along many directories.
5779
5793
5780 * Fixed bug in magic_pdef: would only work with functions with
5794 * Fixed bug in magic_pdef: would only work with functions with
5781 arguments with default values.
5795 arguments with default values.
5782
5796
5783 2001-11-14 Fernando Perez <fperez@colorado.edu>
5797 2001-11-14 Fernando Perez <fperez@colorado.edu>
5784
5798
5785 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5799 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5786 example with IPython. Various other minor fixes and cleanups.
5800 example with IPython. Various other minor fixes and cleanups.
5787
5801
5788 * Version 0.1.9 released, 0.1.10 opened for further work.
5802 * Version 0.1.9 released, 0.1.10 opened for further work.
5789
5803
5790 * Added sys.path to the list of directories searched in the
5804 * Added sys.path to the list of directories searched in the
5791 execfile= option. It used to be the current directory and the
5805 execfile= option. It used to be the current directory and the
5792 user's IPYTHONDIR only.
5806 user's IPYTHONDIR only.
5793
5807
5794 2001-11-13 Fernando Perez <fperez@colorado.edu>
5808 2001-11-13 Fernando Perez <fperez@colorado.edu>
5795
5809
5796 * Reinstated the raw_input/prefilter separation that Janko had
5810 * Reinstated the raw_input/prefilter separation that Janko had
5797 initially. This gives a more convenient setup for extending the
5811 initially. This gives a more convenient setup for extending the
5798 pre-processor from the outside: raw_input always gets a string,
5812 pre-processor from the outside: raw_input always gets a string,
5799 and prefilter has to process it. We can then redefine prefilter
5813 and prefilter has to process it. We can then redefine prefilter
5800 from the outside and implement extensions for special
5814 from the outside and implement extensions for special
5801 purposes.
5815 purposes.
5802
5816
5803 Today I got one for inputting PhysicalQuantity objects
5817 Today I got one for inputting PhysicalQuantity objects
5804 (from Scientific) without needing any function calls at
5818 (from Scientific) without needing any function calls at
5805 all. Extremely convenient, and it's all done as a user-level
5819 all. Extremely convenient, and it's all done as a user-level
5806 extension (no IPython code was touched). Now instead of:
5820 extension (no IPython code was touched). Now instead of:
5807 a = PhysicalQuantity(4.2,'m/s**2')
5821 a = PhysicalQuantity(4.2,'m/s**2')
5808 one can simply say
5822 one can simply say
5809 a = 4.2 m/s**2
5823 a = 4.2 m/s**2
5810 or even
5824 or even
5811 a = 4.2 m/s^2
5825 a = 4.2 m/s^2
5812
5826
5813 I use this, but it's also a proof of concept: IPython really is
5827 I use this, but it's also a proof of concept: IPython really is
5814 fully user-extensible, even at the level of the parsing of the
5828 fully user-extensible, even at the level of the parsing of the
5815 command line. It's not trivial, but it's perfectly doable.
5829 command line. It's not trivial, but it's perfectly doable.
5816
5830
5817 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5831 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5818 the problem of modules being loaded in the inverse order in which
5832 the problem of modules being loaded in the inverse order in which
5819 they were defined in
5833 they were defined in
5820
5834
5821 * Version 0.1.8 released, 0.1.9 opened for further work.
5835 * Version 0.1.8 released, 0.1.9 opened for further work.
5822
5836
5823 * Added magics pdef, source and file. They respectively show the
5837 * Added magics pdef, source and file. They respectively show the
5824 definition line ('prototype' in C), source code and full python
5838 definition line ('prototype' in C), source code and full python
5825 file for any callable object. The object inspector oinfo uses
5839 file for any callable object. The object inspector oinfo uses
5826 these to show the same information.
5840 these to show the same information.
5827
5841
5828 * Version 0.1.7 released, 0.1.8 opened for further work.
5842 * Version 0.1.7 released, 0.1.8 opened for further work.
5829
5843
5830 * Separated all the magic functions into a class called Magic. The
5844 * Separated all the magic functions into a class called Magic. The
5831 InteractiveShell class was becoming too big for Xemacs to handle
5845 InteractiveShell class was becoming too big for Xemacs to handle
5832 (de-indenting a line would lock it up for 10 seconds while it
5846 (de-indenting a line would lock it up for 10 seconds while it
5833 backtracked on the whole class!)
5847 backtracked on the whole class!)
5834
5848
5835 FIXME: didn't work. It can be done, but right now namespaces are
5849 FIXME: didn't work. It can be done, but right now namespaces are
5836 all messed up. Do it later (reverted it for now, so at least
5850 all messed up. Do it later (reverted it for now, so at least
5837 everything works as before).
5851 everything works as before).
5838
5852
5839 * Got the object introspection system (magic_oinfo) working! I
5853 * Got the object introspection system (magic_oinfo) working! I
5840 think this is pretty much ready for release to Janko, so he can
5854 think this is pretty much ready for release to Janko, so he can
5841 test it for a while and then announce it. Pretty much 100% of what
5855 test it for a while and then announce it. Pretty much 100% of what
5842 I wanted for the 'phase 1' release is ready. Happy, tired.
5856 I wanted for the 'phase 1' release is ready. Happy, tired.
5843
5857
5844 2001-11-12 Fernando Perez <fperez@colorado.edu>
5858 2001-11-12 Fernando Perez <fperez@colorado.edu>
5845
5859
5846 * Version 0.1.6 released, 0.1.7 opened for further work.
5860 * Version 0.1.6 released, 0.1.7 opened for further work.
5847
5861
5848 * Fixed bug in printing: it used to test for truth before
5862 * Fixed bug in printing: it used to test for truth before
5849 printing, so 0 wouldn't print. Now checks for None.
5863 printing, so 0 wouldn't print. Now checks for None.
5850
5864
5851 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5865 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5852 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5866 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5853 reaches by hand into the outputcache. Think of a better way to do
5867 reaches by hand into the outputcache. Think of a better way to do
5854 this later.
5868 this later.
5855
5869
5856 * Various small fixes thanks to Nathan's comments.
5870 * Various small fixes thanks to Nathan's comments.
5857
5871
5858 * Changed magic_pprint to magic_Pprint. This way it doesn't
5872 * Changed magic_pprint to magic_Pprint. This way it doesn't
5859 collide with pprint() and the name is consistent with the command
5873 collide with pprint() and the name is consistent with the command
5860 line option.
5874 line option.
5861
5875
5862 * Changed prompt counter behavior to be fully like
5876 * Changed prompt counter behavior to be fully like
5863 Mathematica's. That is, even input that doesn't return a result
5877 Mathematica's. That is, even input that doesn't return a result
5864 raises the prompt counter. The old behavior was kind of confusing
5878 raises the prompt counter. The old behavior was kind of confusing
5865 (getting the same prompt number several times if the operation
5879 (getting the same prompt number several times if the operation
5866 didn't return a result).
5880 didn't return a result).
5867
5881
5868 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5882 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5869
5883
5870 * Fixed -Classic mode (wasn't working anymore).
5884 * Fixed -Classic mode (wasn't working anymore).
5871
5885
5872 * Added colored prompts using Nathan's new code. Colors are
5886 * Added colored prompts using Nathan's new code. Colors are
5873 currently hardwired, they can be user-configurable. For
5887 currently hardwired, they can be user-configurable. For
5874 developers, they can be chosen in file ipythonlib.py, at the
5888 developers, they can be chosen in file ipythonlib.py, at the
5875 beginning of the CachedOutput class def.
5889 beginning of the CachedOutput class def.
5876
5890
5877 2001-11-11 Fernando Perez <fperez@colorado.edu>
5891 2001-11-11 Fernando Perez <fperez@colorado.edu>
5878
5892
5879 * Version 0.1.5 released, 0.1.6 opened for further work.
5893 * Version 0.1.5 released, 0.1.6 opened for further work.
5880
5894
5881 * Changed magic_env to *return* the environment as a dict (not to
5895 * Changed magic_env to *return* the environment as a dict (not to
5882 print it). This way it prints, but it can also be processed.
5896 print it). This way it prints, but it can also be processed.
5883
5897
5884 * Added Verbose exception reporting to interactive
5898 * Added Verbose exception reporting to interactive
5885 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5899 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5886 traceback. Had to make some changes to the ultraTB file. This is
5900 traceback. Had to make some changes to the ultraTB file. This is
5887 probably the last 'big' thing in my mental todo list. This ties
5901 probably the last 'big' thing in my mental todo list. This ties
5888 in with the next entry:
5902 in with the next entry:
5889
5903
5890 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5904 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5891 has to specify is Plain, Color or Verbose for all exception
5905 has to specify is Plain, Color or Verbose for all exception
5892 handling.
5906 handling.
5893
5907
5894 * Removed ShellServices option. All this can really be done via
5908 * Removed ShellServices option. All this can really be done via
5895 the magic system. It's easier to extend, cleaner and has automatic
5909 the magic system. It's easier to extend, cleaner and has automatic
5896 namespace protection and documentation.
5910 namespace protection and documentation.
5897
5911
5898 2001-11-09 Fernando Perez <fperez@colorado.edu>
5912 2001-11-09 Fernando Perez <fperez@colorado.edu>
5899
5913
5900 * Fixed bug in output cache flushing (missing parameter to
5914 * Fixed bug in output cache flushing (missing parameter to
5901 __init__). Other small bugs fixed (found using pychecker).
5915 __init__). Other small bugs fixed (found using pychecker).
5902
5916
5903 * Version 0.1.4 opened for bugfixing.
5917 * Version 0.1.4 opened for bugfixing.
5904
5918
5905 2001-11-07 Fernando Perez <fperez@colorado.edu>
5919 2001-11-07 Fernando Perez <fperez@colorado.edu>
5906
5920
5907 * Version 0.1.3 released, mainly because of the raw_input bug.
5921 * Version 0.1.3 released, mainly because of the raw_input bug.
5908
5922
5909 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5923 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5910 and when testing for whether things were callable, a call could
5924 and when testing for whether things were callable, a call could
5911 actually be made to certain functions. They would get called again
5925 actually be made to certain functions. They would get called again
5912 once 'really' executed, with a resulting double call. A disaster
5926 once 'really' executed, with a resulting double call. A disaster
5913 in many cases (list.reverse() would never work!).
5927 in many cases (list.reverse() would never work!).
5914
5928
5915 * Removed prefilter() function, moved its code to raw_input (which
5929 * Removed prefilter() function, moved its code to raw_input (which
5916 after all was just a near-empty caller for prefilter). This saves
5930 after all was just a near-empty caller for prefilter). This saves
5917 a function call on every prompt, and simplifies the class a tiny bit.
5931 a function call on every prompt, and simplifies the class a tiny bit.
5918
5932
5919 * Fix _ip to __ip name in magic example file.
5933 * Fix _ip to __ip name in magic example file.
5920
5934
5921 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5935 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5922 work with non-gnu versions of tar.
5936 work with non-gnu versions of tar.
5923
5937
5924 2001-11-06 Fernando Perez <fperez@colorado.edu>
5938 2001-11-06 Fernando Perez <fperez@colorado.edu>
5925
5939
5926 * Version 0.1.2. Just to keep track of the recent changes.
5940 * Version 0.1.2. Just to keep track of the recent changes.
5927
5941
5928 * Fixed nasty bug in output prompt routine. It used to check 'if
5942 * Fixed nasty bug in output prompt routine. It used to check 'if
5929 arg != None...'. Problem is, this fails if arg implements a
5943 arg != None...'. Problem is, this fails if arg implements a
5930 special comparison (__cmp__) which disallows comparing to
5944 special comparison (__cmp__) which disallows comparing to
5931 None. Found it when trying to use the PhysicalQuantity module from
5945 None. Found it when trying to use the PhysicalQuantity module from
5932 ScientificPython.
5946 ScientificPython.
5933
5947
5934 2001-11-05 Fernando Perez <fperez@colorado.edu>
5948 2001-11-05 Fernando Perez <fperez@colorado.edu>
5935
5949
5936 * Also added dirs. Now the pushd/popd/dirs family functions
5950 * Also added dirs. Now the pushd/popd/dirs family functions
5937 basically like the shell, with the added convenience of going home
5951 basically like the shell, with the added convenience of going home
5938 when called with no args.
5952 when called with no args.
5939
5953
5940 * pushd/popd slightly modified to mimic shell behavior more
5954 * pushd/popd slightly modified to mimic shell behavior more
5941 closely.
5955 closely.
5942
5956
5943 * Added env,pushd,popd from ShellServices as magic functions. I
5957 * Added env,pushd,popd from ShellServices as magic functions. I
5944 think the cleanest will be to port all desired functions from
5958 think the cleanest will be to port all desired functions from
5945 ShellServices as magics and remove ShellServices altogether. This
5959 ShellServices as magics and remove ShellServices altogether. This
5946 will provide a single, clean way of adding functionality
5960 will provide a single, clean way of adding functionality
5947 (shell-type or otherwise) to IP.
5961 (shell-type or otherwise) to IP.
5948
5962
5949 2001-11-04 Fernando Perez <fperez@colorado.edu>
5963 2001-11-04 Fernando Perez <fperez@colorado.edu>
5950
5964
5951 * Added .ipython/ directory to sys.path. This way users can keep
5965 * Added .ipython/ directory to sys.path. This way users can keep
5952 customizations there and access them via import.
5966 customizations there and access them via import.
5953
5967
5954 2001-11-03 Fernando Perez <fperez@colorado.edu>
5968 2001-11-03 Fernando Perez <fperez@colorado.edu>
5955
5969
5956 * Opened version 0.1.1 for new changes.
5970 * Opened version 0.1.1 for new changes.
5957
5971
5958 * Changed version number to 0.1.0: first 'public' release, sent to
5972 * Changed version number to 0.1.0: first 'public' release, sent to
5959 Nathan and Janko.
5973 Nathan and Janko.
5960
5974
5961 * Lots of small fixes and tweaks.
5975 * Lots of small fixes and tweaks.
5962
5976
5963 * Minor changes to whos format. Now strings are shown, snipped if
5977 * Minor changes to whos format. Now strings are shown, snipped if
5964 too long.
5978 too long.
5965
5979
5966 * Changed ShellServices to work on __main__ so they show up in @who
5980 * Changed ShellServices to work on __main__ so they show up in @who
5967
5981
5968 * Help also works with ? at the end of a line:
5982 * Help also works with ? at the end of a line:
5969 ?sin and sin?
5983 ?sin and sin?
5970 both produce the same effect. This is nice, as often I use the
5984 both produce the same effect. This is nice, as often I use the
5971 tab-complete to find the name of a method, but I used to then have
5985 tab-complete to find the name of a method, but I used to then have
5972 to go to the beginning of the line to put a ? if I wanted more
5986 to go to the beginning of the line to put a ? if I wanted more
5973 info. Now I can just add the ? and hit return. Convenient.
5987 info. Now I can just add the ? and hit return. Convenient.
5974
5988
5975 2001-11-02 Fernando Perez <fperez@colorado.edu>
5989 2001-11-02 Fernando Perez <fperez@colorado.edu>
5976
5990
5977 * Python version check (>=2.1) added.
5991 * Python version check (>=2.1) added.
5978
5992
5979 * Added LazyPython documentation. At this point the docs are quite
5993 * Added LazyPython documentation. At this point the docs are quite
5980 a mess. A cleanup is in order.
5994 a mess. A cleanup is in order.
5981
5995
5982 * Auto-installer created. For some bizarre reason, the zipfiles
5996 * Auto-installer created. For some bizarre reason, the zipfiles
5983 module isn't working on my system. So I made a tar version
5997 module isn't working on my system. So I made a tar version
5984 (hopefully the command line options in various systems won't kill
5998 (hopefully the command line options in various systems won't kill
5985 me).
5999 me).
5986
6000
5987 * Fixes to Struct in genutils. Now all dictionary-like methods are
6001 * Fixes to Struct in genutils. Now all dictionary-like methods are
5988 protected (reasonably).
6002 protected (reasonably).
5989
6003
5990 * Added pager function to genutils and changed ? to print usage
6004 * Added pager function to genutils and changed ? to print usage
5991 note through it (it was too long).
6005 note through it (it was too long).
5992
6006
5993 * Added the LazyPython functionality. Works great! I changed the
6007 * Added the LazyPython functionality. Works great! I changed the
5994 auto-quote escape to ';', it's on home row and next to '. But
6008 auto-quote escape to ';', it's on home row and next to '. But
5995 both auto-quote and auto-paren (still /) escapes are command-line
6009 both auto-quote and auto-paren (still /) escapes are command-line
5996 parameters.
6010 parameters.
5997
6011
5998
6012
5999 2001-11-01 Fernando Perez <fperez@colorado.edu>
6013 2001-11-01 Fernando Perez <fperez@colorado.edu>
6000
6014
6001 * Version changed to 0.0.7. Fairly large change: configuration now
6015 * Version changed to 0.0.7. Fairly large change: configuration now
6002 is all stored in a directory, by default .ipython. There, all
6016 is all stored in a directory, by default .ipython. There, all
6003 config files have normal looking names (not .names)
6017 config files have normal looking names (not .names)
6004
6018
6005 * Version 0.0.6 Released first to Lucas and Archie as a test
6019 * Version 0.0.6 Released first to Lucas and Archie as a test
6006 run. Since it's the first 'semi-public' release, change version to
6020 run. Since it's the first 'semi-public' release, change version to
6007 > 0.0.6 for any changes now.
6021 > 0.0.6 for any changes now.
6008
6022
6009 * Stuff I had put in the ipplib.py changelog:
6023 * Stuff I had put in the ipplib.py changelog:
6010
6024
6011 Changes to InteractiveShell:
6025 Changes to InteractiveShell:
6012
6026
6013 - Made the usage message a parameter.
6027 - Made the usage message a parameter.
6014
6028
6015 - Require the name of the shell variable to be given. It's a bit
6029 - Require the name of the shell variable to be given. It's a bit
6016 of a hack, but allows the name 'shell' not to be hardwired in the
6030 of a hack, but allows the name 'shell' not to be hardwired in the
6017 magic (@) handler, which is problematic b/c it requires
6031 magic (@) handler, which is problematic b/c it requires
6018 polluting the global namespace with 'shell'. This in turn is
6032 polluting the global namespace with 'shell'. This in turn is
6019 fragile: if a user redefines a variable called shell, things
6033 fragile: if a user redefines a variable called shell, things
6020 break.
6034 break.
6021
6035
6022 - magic @: all functions available through @ need to be defined
6036 - magic @: all functions available through @ need to be defined
6023 as magic_<name>, even though they can be called simply as
6037 as magic_<name>, even though they can be called simply as
6024 @<name>. This allows the special command @magic to gather
6038 @<name>. This allows the special command @magic to gather
6025 information automatically about all existing magic functions,
6039 information automatically about all existing magic functions,
6026 even if they are run-time user extensions, by parsing the shell
6040 even if they are run-time user extensions, by parsing the shell
6027 instance __dict__ looking for special magic_ names.
6041 instance __dict__ looking for special magic_ names.
6028
6042
6029 - mainloop: added *two* local namespace parameters. This allows
6043 - mainloop: added *two* local namespace parameters. This allows
6030 the class to differentiate between parameters which were there
6044 the class to differentiate between parameters which were there
6031 before and after command line initialization was processed. This
6045 before and after command line initialization was processed. This
6032 way, later @who can show things loaded at startup by the
6046 way, later @who can show things loaded at startup by the
6033 user. This trick was necessary to make session saving/reloading
6047 user. This trick was necessary to make session saving/reloading
6034 really work: ideally after saving/exiting/reloading a session,
6048 really work: ideally after saving/exiting/reloading a session,
6035 *everything* should look the same, including the output of @who. I
6049 *everything* should look the same, including the output of @who. I
6036 was only able to make this work with this double namespace
6050 was only able to make this work with this double namespace
6037 trick.
6051 trick.
6038
6052
6039 - added a header to the logfile which allows (almost) full
6053 - added a header to the logfile which allows (almost) full
6040 session restoring.
6054 session restoring.
6041
6055
6042 - prepend lines beginning with @ or !, with a and log
6056 - prepend lines beginning with @ or !, with a and log
6043 them. Why? !lines: may be useful to know what you did @lines:
6057 them. Why? !lines: may be useful to know what you did @lines:
6044 they may affect session state. So when restoring a session, at
6058 they may affect session state. So when restoring a session, at
6045 least inform the user of their presence. I couldn't quite get
6059 least inform the user of their presence. I couldn't quite get
6046 them to properly re-execute, but at least the user is warned.
6060 them to properly re-execute, but at least the user is warned.
6047
6061
6048 * Started ChangeLog.
6062 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now