##// END OF EJS Templates
Mark 0.7.2 version - start release testing.
fperez -
Show More
@@ -1,84 +1,83 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 1291 2006-05-08 05:51:42Z fperez $"""
4 $Id: Release.py 1344 2006-06-03 21:08:59Z fperez $"""
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 version = '0.7.2'
25
26
26 version = '0.7.2.rc1'
27 revision = '$Revision: 1344 $'
27
28 revision = '$Revision: 1291 $'
29
28
30 description = "An enhanced interactive Python shell."
29 description = "An enhanced interactive Python shell."
31
30
32 long_description = \
31 long_description = \
33 """
32 """
34 IPython provides a replacement for the interactive Python interpreter with
33 IPython provides a replacement for the interactive Python interpreter with
35 extra functionality.
34 extra functionality.
36
35
37 Main features:
36 Main features:
38
37
39 * Comprehensive object introspection.
38 * Comprehensive object introspection.
40
39
41 * Input history, persistent across sessions.
40 * Input history, persistent across sessions.
42
41
43 * Caching of output results during a session with automatically generated
42 * Caching of output results during a session with automatically generated
44 references.
43 references.
45
44
46 * Readline based name completion.
45 * Readline based name completion.
47
46
48 * Extensible system of 'magic' commands for controlling the environment and
47 * Extensible system of 'magic' commands for controlling the environment and
49 performing many tasks related either to IPython or the operating system.
48 performing many tasks related either to IPython or the operating system.
50
49
51 * Configuration system with easy switching between different setups (simpler
50 * Configuration system with easy switching between different setups (simpler
52 than changing $PYTHONSTARTUP environment variables every time).
51 than changing $PYTHONSTARTUP environment variables every time).
53
52
54 * Session logging and reloading.
53 * Session logging and reloading.
55
54
56 * Extensible syntax processing for special purpose situations.
55 * Extensible syntax processing for special purpose situations.
57
56
58 * Access to the system shell with user-extensible alias system.
57 * Access to the system shell with user-extensible alias system.
59
58
60 * Easily embeddable in other Python programs.
59 * Easily embeddable in other Python programs.
61
60
62 * Integrated access to the pdb debugger and the Python profiler.
61 * Integrated access to the pdb debugger and the Python profiler.
63
62
64 The latest development version is always available at the IPython subversion
63 The latest development version is always available at the IPython subversion
65 repository_.
64 repository_.
66
65
67 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
66 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
68 """
67 """
69
68
70 license = 'BSD'
69 license = 'BSD'
71
70
72 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
71 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
73 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
72 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
74 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
73 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
75 'Ville' : ('Ville Vainio','vivainio@gmail.com')
74 'Ville' : ('Ville Vainio','vivainio@gmail.com')
76 }
75 }
77
76
78 url = 'http://ipython.scipy.org'
77 url = 'http://ipython.scipy.org'
79
78
80 download_url = 'http://ipython.scipy.org/dist'
79 download_url = 'http://ipython.scipy.org/dist'
81
80
82 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
81 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
83
82
84 keywords = ['Interactive','Interpreter','Shell']
83 keywords = ['Interactive','Interpreter','Shell']
@@ -1,5500 +1,5505 b''
1 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/Release.py (version): Mark 0.7.2 version to start
4 testing for release on 06/06.
5
1 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
6 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2
7
3 * scripts/irunner: thin script interface so users don't have to
8 * scripts/irunner: thin script interface so users don't have to
4 find the module and call it as an executable, since modules rarely
9 find the module and call it as an executable, since modules rarely
5 live in people's PATH.
10 live in people's PATH.
6
11
7 * IPython/irunner.py (InteractiveRunner.__init__): added
12 * IPython/irunner.py (InteractiveRunner.__init__): added
8 delaybeforesend attribute to control delays with newer versions of
13 delaybeforesend attribute to control delays with newer versions of
9 pexpect. Thanks to detailed help from pexpect's author, Noah
14 pexpect. Thanks to detailed help from pexpect's author, Noah
10 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
15 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
11 correctly (it works in NoColor mode).
16 correctly (it works in NoColor mode).
12
17
13 * IPython/iplib.py (handle_normal): fix nasty crash reported on
18 * IPython/iplib.py (handle_normal): fix nasty crash reported on
14 SAGE list, from improper log() calls.
19 SAGE list, from improper log() calls.
15
20
16 2006-05-31 Ville Vainio <vivainio@gmail.com>
21 2006-05-31 Ville Vainio <vivainio@gmail.com>
17
22
18 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
23 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
19 with args in parens to work correctly with dirs that have spaces.
24 with args in parens to work correctly with dirs that have spaces.
20
25
21 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
26 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
22
27
23 * IPython/Logger.py (Logger.logstart): add option to log raw input
28 * IPython/Logger.py (Logger.logstart): add option to log raw input
24 instead of the processed one. A -r flag was added to the
29 instead of the processed one. A -r flag was added to the
25 %logstart magic used for controlling logging.
30 %logstart magic used for controlling logging.
26
31
27 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
32 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
28
33
29 * IPython/iplib.py (InteractiveShell.__init__): add check for the
34 * IPython/iplib.py (InteractiveShell.__init__): add check for the
30 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
35 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
31 recognize the option. After a bug report by Will Maier. This
36 recognize the option. After a bug report by Will Maier. This
32 closes #64 (will do it after confirmation from W. Maier).
37 closes #64 (will do it after confirmation from W. Maier).
33
38
34 * IPython/irunner.py: New module to run scripts as if manually
39 * IPython/irunner.py: New module to run scripts as if manually
35 typed into an interactive environment, based on pexpect. After a
40 typed into an interactive environment, based on pexpect. After a
36 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
41 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
37 ipython-user list. Simple unittests in the tests/ directory.
42 ipython-user list. Simple unittests in the tests/ directory.
38
43
39 * tools/release: add Will Maier, OpenBSD port maintainer, to
44 * tools/release: add Will Maier, OpenBSD port maintainer, to
40 recepients list. We are now officially part of the OpenBSD ports:
45 recepients list. We are now officially part of the OpenBSD ports:
41 http://www.openbsd.org/ports.html ! Many thanks to Will for the
46 http://www.openbsd.org/ports.html ! Many thanks to Will for the
42 work.
47 work.
43
48
44 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
49 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
45
50
46 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
51 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
47 so that it doesn't break tkinter apps.
52 so that it doesn't break tkinter apps.
48
53
49 * IPython/iplib.py (_prefilter): fix bug where aliases would
54 * IPython/iplib.py (_prefilter): fix bug where aliases would
50 shadow variables when autocall was fully off. Reported by SAGE
55 shadow variables when autocall was fully off. Reported by SAGE
51 author William Stein.
56 author William Stein.
52
57
53 * IPython/OInspect.py (Inspector.__init__): add a flag to control
58 * IPython/OInspect.py (Inspector.__init__): add a flag to control
54 at what detail level strings are computed when foo? is requested.
59 at what detail level strings are computed when foo? is requested.
55 This allows users to ask for example that the string form of an
60 This allows users to ask for example that the string form of an
56 object is only computed when foo?? is called, or even never, by
61 object is only computed when foo?? is called, or even never, by
57 setting the object_info_string_level >= 2 in the configuration
62 setting the object_info_string_level >= 2 in the configuration
58 file. This new option has been added and documented. After a
63 file. This new option has been added and documented. After a
59 request by SAGE to be able to control the printing of very large
64 request by SAGE to be able to control the printing of very large
60 objects more easily.
65 objects more easily.
61
66
62 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
67 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
63
68
64 * IPython/ipmaker.py (make_IPython): remove the ipython call path
69 * IPython/ipmaker.py (make_IPython): remove the ipython call path
65 from sys.argv, to be 100% consistent with how Python itself works
70 from sys.argv, to be 100% consistent with how Python itself works
66 (as seen for example with python -i file.py). After a bug report
71 (as seen for example with python -i file.py). After a bug report
67 by Jeffrey Collins.
72 by Jeffrey Collins.
68
73
69 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
74 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
70 nasty bug which was preventing custom namespaces with -pylab,
75 nasty bug which was preventing custom namespaces with -pylab,
71 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
76 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
72 compatibility (long gone from mpl).
77 compatibility (long gone from mpl).
73
78
74 * IPython/ipapi.py (make_session): name change: create->make. We
79 * IPython/ipapi.py (make_session): name change: create->make. We
75 use make in other places (ipmaker,...), it's shorter and easier to
80 use make in other places (ipmaker,...), it's shorter and easier to
76 type and say, etc. I'm trying to clean things before 0.7.2 so
81 type and say, etc. I'm trying to clean things before 0.7.2 so
77 that I can keep things stable wrt to ipapi in the chainsaw branch.
82 that I can keep things stable wrt to ipapi in the chainsaw branch.
78
83
79 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
84 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
80 python-mode recognizes our debugger mode. Add support for
85 python-mode recognizes our debugger mode. Add support for
81 autoindent inside (X)emacs. After a patch sent in by Jin Liu
86 autoindent inside (X)emacs. After a patch sent in by Jin Liu
82 <m.liu.jin-AT-gmail.com> originally written by
87 <m.liu.jin-AT-gmail.com> originally written by
83 doxgen-AT-newsmth.net (with minor modifications for xemacs
88 doxgen-AT-newsmth.net (with minor modifications for xemacs
84 compatibility)
89 compatibility)
85
90
86 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
91 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
87 tracebacks when walking the stack so that the stack tracking system
92 tracebacks when walking the stack so that the stack tracking system
88 in emacs' python-mode can identify the frames correctly.
93 in emacs' python-mode can identify the frames correctly.
89
94
90 * IPython/ipmaker.py (make_IPython): make the internal (and
95 * IPython/ipmaker.py (make_IPython): make the internal (and
91 default config) autoedit_syntax value false by default. Too many
96 default config) autoedit_syntax value false by default. Too many
92 users have complained to me (both on and off-list) about problems
97 users have complained to me (both on and off-list) about problems
93 with this option being on by default, so I'm making it default to
98 with this option being on by default, so I'm making it default to
94 off. It can still be enabled by anyone via the usual mechanisms.
99 off. It can still be enabled by anyone via the usual mechanisms.
95
100
96 * IPython/completer.py (Completer.attr_matches): add support for
101 * IPython/completer.py (Completer.attr_matches): add support for
97 PyCrust-style _getAttributeNames magic method. Patch contributed
102 PyCrust-style _getAttributeNames magic method. Patch contributed
98 by <mscott-AT-goldenspud.com>. Closes #50.
103 by <mscott-AT-goldenspud.com>. Closes #50.
99
104
100 * IPython/iplib.py (InteractiveShell.__init__): remove the
105 * IPython/iplib.py (InteractiveShell.__init__): remove the
101 deletion of exit/quit from __builtin__, which can break
106 deletion of exit/quit from __builtin__, which can break
102 third-party tools like the Zope debugging console. The
107 third-party tools like the Zope debugging console. The
103 %exit/%quit magics remain. In general, it's probably a good idea
108 %exit/%quit magics remain. In general, it's probably a good idea
104 not to delete anything from __builtin__, since we never know what
109 not to delete anything from __builtin__, since we never know what
105 that will break. In any case, python now (for 2.5) will support
110 that will break. In any case, python now (for 2.5) will support
106 'real' exit/quit, so this issue is moot. Closes #55.
111 'real' exit/quit, so this issue is moot. Closes #55.
107
112
108 * IPython/genutils.py (with_obj): rename the 'with' function to
113 * IPython/genutils.py (with_obj): rename the 'with' function to
109 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
114 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
110 becomes a language keyword. Closes #53.
115 becomes a language keyword. Closes #53.
111
116
112 * IPython/FakeModule.py (FakeModule.__init__): add a proper
117 * IPython/FakeModule.py (FakeModule.__init__): add a proper
113 __file__ attribute to this so it fools more things into thinking
118 __file__ attribute to this so it fools more things into thinking
114 it is a real module. Closes #59.
119 it is a real module. Closes #59.
115
120
116 * IPython/Magic.py (magic_edit): add -n option to open the editor
121 * IPython/Magic.py (magic_edit): add -n option to open the editor
117 at a specific line number. After a patch by Stefan van der Walt.
122 at a specific line number. After a patch by Stefan van der Walt.
118
123
119 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
124 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
120
125
121 * IPython/iplib.py (edit_syntax_error): fix crash when for some
126 * IPython/iplib.py (edit_syntax_error): fix crash when for some
122 reason the file could not be opened. After automatic crash
127 reason the file could not be opened. After automatic crash
123 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
128 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
124 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
129 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
125 (_should_recompile): Don't fire editor if using %bg, since there
130 (_should_recompile): Don't fire editor if using %bg, since there
126 is no file in the first place. From the same report as above.
131 is no file in the first place. From the same report as above.
127 (raw_input): protect against faulty third-party prefilters. After
132 (raw_input): protect against faulty third-party prefilters. After
128 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
133 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
129 while running under SAGE.
134 while running under SAGE.
130
135
131 2006-05-23 Ville Vainio <vivainio@gmail.com>
136 2006-05-23 Ville Vainio <vivainio@gmail.com>
132
137
133 * ipapi.py: Stripped down ip.to_user_ns() to work only as
138 * ipapi.py: Stripped down ip.to_user_ns() to work only as
134 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
139 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
135 now returns None (again), unless dummy is specifically allowed by
140 now returns None (again), unless dummy is specifically allowed by
136 ipapi.get(allow_dummy=True).
141 ipapi.get(allow_dummy=True).
137
142
138 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
143 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
139
144
140 * IPython: remove all 2.2-compatibility objects and hacks from
145 * IPython: remove all 2.2-compatibility objects and hacks from
141 everywhere, since we only support 2.3 at this point. Docs
146 everywhere, since we only support 2.3 at this point. Docs
142 updated.
147 updated.
143
148
144 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
149 * IPython/ipapi.py (IPApi.__init__): Clean up of all getters.
145 Anything requiring extra validation can be turned into a Python
150 Anything requiring extra validation can be turned into a Python
146 property in the future. I used a property for the db one b/c
151 property in the future. I used a property for the db one b/c
147 there was a nasty circularity problem with the initialization
152 there was a nasty circularity problem with the initialization
148 order, which right now I don't have time to clean up.
153 order, which right now I don't have time to clean up.
149
154
150 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
155 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
151 another locking bug reported by Jorgen. I'm not 100% sure though,
156 another locking bug reported by Jorgen. I'm not 100% sure though,
152 so more testing is needed...
157 so more testing is needed...
153
158
154 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
159 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
155
160
156 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
161 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
157 local variables from any routine in user code (typically executed
162 local variables from any routine in user code (typically executed
158 with %run) directly into the interactive namespace. Very useful
163 with %run) directly into the interactive namespace. Very useful
159 when doing complex debugging.
164 when doing complex debugging.
160 (IPythonNotRunning): Changed the default None object to a dummy
165 (IPythonNotRunning): Changed the default None object to a dummy
161 whose attributes can be queried as well as called without
166 whose attributes can be queried as well as called without
162 exploding, to ease writing code which works transparently both in
167 exploding, to ease writing code which works transparently both in
163 and out of ipython and uses some of this API.
168 and out of ipython and uses some of this API.
164
169
165 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
170 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
166
171
167 * IPython/hooks.py (result_display): Fix the fact that our display
172 * IPython/hooks.py (result_display): Fix the fact that our display
168 hook was using str() instead of repr(), as the default python
173 hook was using str() instead of repr(), as the default python
169 console does. This had gone unnoticed b/c it only happened if
174 console does. This had gone unnoticed b/c it only happened if
170 %Pprint was off, but the inconsistency was there.
175 %Pprint was off, but the inconsistency was there.
171
176
172 2006-05-15 Ville Vainio <vivainio@gmail.com>
177 2006-05-15 Ville Vainio <vivainio@gmail.com>
173
178
174 * Oinspect.py: Only show docstring for nonexisting/binary files
179 * Oinspect.py: Only show docstring for nonexisting/binary files
175 when doing object??, closing ticket #62
180 when doing object??, closing ticket #62
176
181
177 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
182 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
178
183
179 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
184 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
180 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
185 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
181 was being released in a routine which hadn't checked if it had
186 was being released in a routine which hadn't checked if it had
182 been the one to acquire it.
187 been the one to acquire it.
183
188
184 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
189 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
185
190
186 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
191 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
187
192
188 2006-04-11 Ville Vainio <vivainio@gmail.com>
193 2006-04-11 Ville Vainio <vivainio@gmail.com>
189
194
190 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
195 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
191 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
196 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
192 prefilters, allowing stuff like magics and aliases in the file.
197 prefilters, allowing stuff like magics and aliases in the file.
193
198
194 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
199 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
195 added. Supported now are "%clear in" and "%clear out" (clear input and
200 added. Supported now are "%clear in" and "%clear out" (clear input and
196 output history, respectively). Also fixed CachedOutput.flush to
201 output history, respectively). Also fixed CachedOutput.flush to
197 properly flush the output cache.
202 properly flush the output cache.
198
203
199 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
204 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
200 half-success (and fail explicitly).
205 half-success (and fail explicitly).
201
206
202 2006-03-28 Ville Vainio <vivainio@gmail.com>
207 2006-03-28 Ville Vainio <vivainio@gmail.com>
203
208
204 * iplib.py: Fix quoting of aliases so that only argless ones
209 * iplib.py: Fix quoting of aliases so that only argless ones
205 are quoted
210 are quoted
206
211
207 2006-03-28 Ville Vainio <vivainio@gmail.com>
212 2006-03-28 Ville Vainio <vivainio@gmail.com>
208
213
209 * iplib.py: Quote aliases with spaces in the name.
214 * iplib.py: Quote aliases with spaces in the name.
210 "c:\program files\blah\bin" is now legal alias target.
215 "c:\program files\blah\bin" is now legal alias target.
211
216
212 * ext_rehashdir.py: Space no longer allowed as arg
217 * ext_rehashdir.py: Space no longer allowed as arg
213 separator, since space is legal in path names.
218 separator, since space is legal in path names.
214
219
215 2006-03-16 Ville Vainio <vivainio@gmail.com>
220 2006-03-16 Ville Vainio <vivainio@gmail.com>
216
221
217 * upgrade_dir.py: Take path.py from Extensions, correcting
222 * upgrade_dir.py: Take path.py from Extensions, correcting
218 %upgrade magic
223 %upgrade magic
219
224
220 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
225 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
221
226
222 * hooks.py: Only enclose editor binary in quotes if legal and
227 * hooks.py: Only enclose editor binary in quotes if legal and
223 necessary (space in the name, and is an existing file). Fixes a bug
228 necessary (space in the name, and is an existing file). Fixes a bug
224 reported by Zachary Pincus.
229 reported by Zachary Pincus.
225
230
226 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
231 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
227
232
228 * Manual: thanks to a tip on proper color handling for Emacs, by
233 * Manual: thanks to a tip on proper color handling for Emacs, by
229 Eric J Haywiser <ejh1-AT-MIT.EDU>.
234 Eric J Haywiser <ejh1-AT-MIT.EDU>.
230
235
231 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
236 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
232 by applying the provided patch. Thanks to Liu Jin
237 by applying the provided patch. Thanks to Liu Jin
233 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
238 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
234 XEmacs/Linux, I'm trusting the submitter that it actually helps
239 XEmacs/Linux, I'm trusting the submitter that it actually helps
235 under win32/GNU Emacs. Will revisit if any problems are reported.
240 under win32/GNU Emacs. Will revisit if any problems are reported.
236
241
237 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
242 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
238
243
239 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
244 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
240 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
245 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
241
246
242 2006-03-12 Ville Vainio <vivainio@gmail.com>
247 2006-03-12 Ville Vainio <vivainio@gmail.com>
243
248
244 * Magic.py (magic_timeit): Added %timeit magic, contributed by
249 * Magic.py (magic_timeit): Added %timeit magic, contributed by
245 Torsten Marek.
250 Torsten Marek.
246
251
247 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
252 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
248
253
249 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
254 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
250 line ranges works again.
255 line ranges works again.
251
256
252 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
257 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
253
258
254 * IPython/iplib.py (showtraceback): add back sys.last_traceback
259 * IPython/iplib.py (showtraceback): add back sys.last_traceback
255 and friends, after a discussion with Zach Pincus on ipython-user.
260 and friends, after a discussion with Zach Pincus on ipython-user.
256 I'm not 100% sure, but after thinking aobut it quite a bit, it may
261 I'm not 100% sure, but after thinking aobut it quite a bit, it may
257 be OK. Testing with the multithreaded shells didn't reveal any
262 be OK. Testing with the multithreaded shells didn't reveal any
258 problems, but let's keep an eye out.
263 problems, but let's keep an eye out.
259
264
260 In the process, I fixed a few things which were calling
265 In the process, I fixed a few things which were calling
261 self.InteractiveTB() directly (like safe_execfile), which is a
266 self.InteractiveTB() directly (like safe_execfile), which is a
262 mistake: ALL exception reporting should be done by calling
267 mistake: ALL exception reporting should be done by calling
263 self.showtraceback(), which handles state and tab-completion and
268 self.showtraceback(), which handles state and tab-completion and
264 more.
269 more.
265
270
266 2006-03-01 Ville Vainio <vivainio@gmail.com>
271 2006-03-01 Ville Vainio <vivainio@gmail.com>
267
272
268 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
273 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
269 To use, do "from ipipe import *".
274 To use, do "from ipipe import *".
270
275
271 2006-02-24 Ville Vainio <vivainio@gmail.com>
276 2006-02-24 Ville Vainio <vivainio@gmail.com>
272
277
273 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
278 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
274 "cleanly" and safely than the older upgrade mechanism.
279 "cleanly" and safely than the older upgrade mechanism.
275
280
276 2006-02-21 Ville Vainio <vivainio@gmail.com>
281 2006-02-21 Ville Vainio <vivainio@gmail.com>
277
282
278 * Magic.py: %save works again.
283 * Magic.py: %save works again.
279
284
280 2006-02-15 Ville Vainio <vivainio@gmail.com>
285 2006-02-15 Ville Vainio <vivainio@gmail.com>
281
286
282 * Magic.py: %Pprint works again
287 * Magic.py: %Pprint works again
283
288
284 * Extensions/ipy_sane_defaults.py: Provide everything provided
289 * Extensions/ipy_sane_defaults.py: Provide everything provided
285 in default ipythonrc, to make it possible to have a completely empty
290 in default ipythonrc, to make it possible to have a completely empty
286 ipythonrc (and thus completely rc-file free configuration)
291 ipythonrc (and thus completely rc-file free configuration)
287
292
288
293
289 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
294 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
290
295
291 * IPython/hooks.py (editor): quote the call to the editor command,
296 * IPython/hooks.py (editor): quote the call to the editor command,
292 to allow commands with spaces in them. Problem noted by watching
297 to allow commands with spaces in them. Problem noted by watching
293 Ian Oswald's video about textpad under win32 at
298 Ian Oswald's video about textpad under win32 at
294 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
299 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
295
300
296 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
301 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
297 describing magics (we haven't used @ for a loong time).
302 describing magics (we haven't used @ for a loong time).
298
303
299 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
304 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
300 contributed by marienz to close
305 contributed by marienz to close
301 http://www.scipy.net/roundup/ipython/issue53.
306 http://www.scipy.net/roundup/ipython/issue53.
302
307
303 2006-02-10 Ville Vainio <vivainio@gmail.com>
308 2006-02-10 Ville Vainio <vivainio@gmail.com>
304
309
305 * genutils.py: getoutput now works in win32 too
310 * genutils.py: getoutput now works in win32 too
306
311
307 * completer.py: alias and magic completion only invoked
312 * completer.py: alias and magic completion only invoked
308 at the first "item" in the line, to avoid "cd %store"
313 at the first "item" in the line, to avoid "cd %store"
309 nonsense.
314 nonsense.
310
315
311 2006-02-09 Ville Vainio <vivainio@gmail.com>
316 2006-02-09 Ville Vainio <vivainio@gmail.com>
312
317
313 * test/*: Added a unit testing framework (finally).
318 * test/*: Added a unit testing framework (finally).
314 '%run runtests.py' to run test_*.
319 '%run runtests.py' to run test_*.
315
320
316 * ipapi.py: Exposed runlines and set_custom_exc
321 * ipapi.py: Exposed runlines and set_custom_exc
317
322
318 2006-02-07 Ville Vainio <vivainio@gmail.com>
323 2006-02-07 Ville Vainio <vivainio@gmail.com>
319
324
320 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
325 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
321 instead use "f(1 2)" as before.
326 instead use "f(1 2)" as before.
322
327
323 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
328 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
324
329
325 * IPython/demo.py (IPythonDemo): Add new classes to the demo
330 * IPython/demo.py (IPythonDemo): Add new classes to the demo
326 facilities, for demos processed by the IPython input filter
331 facilities, for demos processed by the IPython input filter
327 (IPythonDemo), and for running a script one-line-at-a-time as a
332 (IPythonDemo), and for running a script one-line-at-a-time as a
328 demo, both for pure Python (LineDemo) and for IPython-processed
333 demo, both for pure Python (LineDemo) and for IPython-processed
329 input (IPythonLineDemo). After a request by Dave Kohel, from the
334 input (IPythonLineDemo). After a request by Dave Kohel, from the
330 SAGE team.
335 SAGE team.
331 (Demo.edit): added and edit() method to the demo objects, to edit
336 (Demo.edit): added and edit() method to the demo objects, to edit
332 the in-memory copy of the last executed block.
337 the in-memory copy of the last executed block.
333
338
334 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
339 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
335 processing to %edit, %macro and %save. These commands can now be
340 processing to %edit, %macro and %save. These commands can now be
336 invoked on the unprocessed input as it was typed by the user
341 invoked on the unprocessed input as it was typed by the user
337 (without any prefilters applied). After requests by the SAGE team
342 (without any prefilters applied). After requests by the SAGE team
338 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
343 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
339
344
340 2006-02-01 Ville Vainio <vivainio@gmail.com>
345 2006-02-01 Ville Vainio <vivainio@gmail.com>
341
346
342 * setup.py, eggsetup.py: easy_install ipython==dev works
347 * setup.py, eggsetup.py: easy_install ipython==dev works
343 correctly now (on Linux)
348 correctly now (on Linux)
344
349
345 * ipy_user_conf,ipmaker: user config changes, removed spurious
350 * ipy_user_conf,ipmaker: user config changes, removed spurious
346 warnings
351 warnings
347
352
348 * iplib: if rc.banner is string, use it as is.
353 * iplib: if rc.banner is string, use it as is.
349
354
350 * Magic: %pycat accepts a string argument and pages it's contents.
355 * Magic: %pycat accepts a string argument and pages it's contents.
351
356
352
357
353 2006-01-30 Ville Vainio <vivainio@gmail.com>
358 2006-01-30 Ville Vainio <vivainio@gmail.com>
354
359
355 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
360 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
356 Now %store and bookmarks work through PickleShare, meaning that
361 Now %store and bookmarks work through PickleShare, meaning that
357 concurrent access is possible and all ipython sessions see the
362 concurrent access is possible and all ipython sessions see the
358 same database situation all the time, instead of snapshot of
363 same database situation all the time, instead of snapshot of
359 the situation when the session was started. Hence, %bookmark
364 the situation when the session was started. Hence, %bookmark
360 results are immediately accessible from othes sessions. The database
365 results are immediately accessible from othes sessions. The database
361 is also available for use by user extensions. See:
366 is also available for use by user extensions. See:
362 http://www.python.org/pypi/pickleshare
367 http://www.python.org/pypi/pickleshare
363
368
364 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
369 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
365
370
366 * aliases can now be %store'd
371 * aliases can now be %store'd
367
372
368 * path.py move to Extensions so that pickleshare does not need
373 * path.py move to Extensions so that pickleshare does not need
369 IPython-specific import. Extensions added to pythonpath right
374 IPython-specific import. Extensions added to pythonpath right
370 at __init__.
375 at __init__.
371
376
372 * iplib.py: ipalias deprecated/redundant; aliases are converted and
377 * iplib.py: ipalias deprecated/redundant; aliases are converted and
373 called with _ip.system and the pre-transformed command string.
378 called with _ip.system and the pre-transformed command string.
374
379
375 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
380 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
376
381
377 * IPython/iplib.py (interact): Fix that we were not catching
382 * IPython/iplib.py (interact): Fix that we were not catching
378 KeyboardInterrupt exceptions properly. I'm not quite sure why the
383 KeyboardInterrupt exceptions properly. I'm not quite sure why the
379 logic here had to change, but it's fixed now.
384 logic here had to change, but it's fixed now.
380
385
381 2006-01-29 Ville Vainio <vivainio@gmail.com>
386 2006-01-29 Ville Vainio <vivainio@gmail.com>
382
387
383 * iplib.py: Try to import pyreadline on Windows.
388 * iplib.py: Try to import pyreadline on Windows.
384
389
385 2006-01-27 Ville Vainio <vivainio@gmail.com>
390 2006-01-27 Ville Vainio <vivainio@gmail.com>
386
391
387 * iplib.py: Expose ipapi as _ip in builtin namespace.
392 * iplib.py: Expose ipapi as _ip in builtin namespace.
388 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
393 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
389 and ip_set_hook (-> _ip.set_hook) redundant. % and !
394 and ip_set_hook (-> _ip.set_hook) redundant. % and !
390 syntax now produce _ip.* variant of the commands.
395 syntax now produce _ip.* variant of the commands.
391
396
392 * "_ip.options().autoedit_syntax = 2" automatically throws
397 * "_ip.options().autoedit_syntax = 2" automatically throws
393 user to editor for syntax error correction without prompting.
398 user to editor for syntax error correction without prompting.
394
399
395 2006-01-27 Ville Vainio <vivainio@gmail.com>
400 2006-01-27 Ville Vainio <vivainio@gmail.com>
396
401
397 * ipmaker.py: Give "realistic" sys.argv for scripts (without
402 * ipmaker.py: Give "realistic" sys.argv for scripts (without
398 'ipython' at argv[0]) executed through command line.
403 'ipython' at argv[0]) executed through command line.
399 NOTE: this DEPRECATES calling ipython with multiple scripts
404 NOTE: this DEPRECATES calling ipython with multiple scripts
400 ("ipython a.py b.py c.py")
405 ("ipython a.py b.py c.py")
401
406
402 * iplib.py, hooks.py: Added configurable input prefilter,
407 * iplib.py, hooks.py: Added configurable input prefilter,
403 named 'input_prefilter'. See ext_rescapture.py for example
408 named 'input_prefilter'. See ext_rescapture.py for example
404 usage.
409 usage.
405
410
406 * ext_rescapture.py, Magic.py: Better system command output capture
411 * ext_rescapture.py, Magic.py: Better system command output capture
407 through 'var = !ls' (deprecates user-visible %sc). Same notation
412 through 'var = !ls' (deprecates user-visible %sc). Same notation
408 applies for magics, 'var = %alias' assigns alias list to var.
413 applies for magics, 'var = %alias' assigns alias list to var.
409
414
410 * ipapi.py: added meta() for accessing extension-usable data store.
415 * ipapi.py: added meta() for accessing extension-usable data store.
411
416
412 * iplib.py: added InteractiveShell.getapi(). New magics should be
417 * iplib.py: added InteractiveShell.getapi(). New magics should be
413 written doing self.getapi() instead of using the shell directly.
418 written doing self.getapi() instead of using the shell directly.
414
419
415 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
420 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
416 %store foo >> ~/myfoo.txt to store variables to files (in clean
421 %store foo >> ~/myfoo.txt to store variables to files (in clean
417 textual form, not a restorable pickle).
422 textual form, not a restorable pickle).
418
423
419 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
424 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
420
425
421 * usage.py, Magic.py: added %quickref
426 * usage.py, Magic.py: added %quickref
422
427
423 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
428 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
424
429
425 * GetoptErrors when invoking magics etc. with wrong args
430 * GetoptErrors when invoking magics etc. with wrong args
426 are now more helpful:
431 are now more helpful:
427 GetoptError: option -l not recognized (allowed: "qb" )
432 GetoptError: option -l not recognized (allowed: "qb" )
428
433
429 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
434 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
430
435
431 * IPython/demo.py (Demo.show): Flush stdout after each block, so
436 * IPython/demo.py (Demo.show): Flush stdout after each block, so
432 computationally intensive blocks don't appear to stall the demo.
437 computationally intensive blocks don't appear to stall the demo.
433
438
434 2006-01-24 Ville Vainio <vivainio@gmail.com>
439 2006-01-24 Ville Vainio <vivainio@gmail.com>
435
440
436 * iplib.py, hooks.py: 'result_display' hook can return a non-None
441 * iplib.py, hooks.py: 'result_display' hook can return a non-None
437 value to manipulate resulting history entry.
442 value to manipulate resulting history entry.
438
443
439 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
444 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
440 to instance methods of IPApi class, to make extending an embedded
445 to instance methods of IPApi class, to make extending an embedded
441 IPython feasible. See ext_rehashdir.py for example usage.
446 IPython feasible. See ext_rehashdir.py for example usage.
442
447
443 * Merged 1071-1076 from banches/0.7.1
448 * Merged 1071-1076 from banches/0.7.1
444
449
445
450
446 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
451 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
447
452
448 * tools/release (daystamp): Fix build tools to use the new
453 * tools/release (daystamp): Fix build tools to use the new
449 eggsetup.py script to build lightweight eggs.
454 eggsetup.py script to build lightweight eggs.
450
455
451 * Applied changesets 1062 and 1064 before 0.7.1 release.
456 * Applied changesets 1062 and 1064 before 0.7.1 release.
452
457
453 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
458 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
454 see the raw input history (without conversions like %ls ->
459 see the raw input history (without conversions like %ls ->
455 ipmagic("ls")). After a request from W. Stein, SAGE
460 ipmagic("ls")). After a request from W. Stein, SAGE
456 (http://modular.ucsd.edu/sage) developer. This information is
461 (http://modular.ucsd.edu/sage) developer. This information is
457 stored in the input_hist_raw attribute of the IPython instance, so
462 stored in the input_hist_raw attribute of the IPython instance, so
458 developers can access it if needed (it's an InputList instance).
463 developers can access it if needed (it's an InputList instance).
459
464
460 * Versionstring = 0.7.2.svn
465 * Versionstring = 0.7.2.svn
461
466
462 * eggsetup.py: A separate script for constructing eggs, creates
467 * eggsetup.py: A separate script for constructing eggs, creates
463 proper launch scripts even on Windows (an .exe file in
468 proper launch scripts even on Windows (an .exe file in
464 \python24\scripts).
469 \python24\scripts).
465
470
466 * ipapi.py: launch_new_instance, launch entry point needed for the
471 * ipapi.py: launch_new_instance, launch entry point needed for the
467 egg.
472 egg.
468
473
469 2006-01-23 Ville Vainio <vivainio@gmail.com>
474 2006-01-23 Ville Vainio <vivainio@gmail.com>
470
475
471 * Added %cpaste magic for pasting python code
476 * Added %cpaste magic for pasting python code
472
477
473 2006-01-22 Ville Vainio <vivainio@gmail.com>
478 2006-01-22 Ville Vainio <vivainio@gmail.com>
474
479
475 * Merge from branches/0.7.1 into trunk, revs 1052-1057
480 * Merge from branches/0.7.1 into trunk, revs 1052-1057
476
481
477 * Versionstring = 0.7.2.svn
482 * Versionstring = 0.7.2.svn
478
483
479 * eggsetup.py: A separate script for constructing eggs, creates
484 * eggsetup.py: A separate script for constructing eggs, creates
480 proper launch scripts even on Windows (an .exe file in
485 proper launch scripts even on Windows (an .exe file in
481 \python24\scripts).
486 \python24\scripts).
482
487
483 * ipapi.py: launch_new_instance, launch entry point needed for the
488 * ipapi.py: launch_new_instance, launch entry point needed for the
484 egg.
489 egg.
485
490
486 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
491 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
487
492
488 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
493 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
489 %pfile foo would print the file for foo even if it was a binary.
494 %pfile foo would print the file for foo even if it was a binary.
490 Now, extensions '.so' and '.dll' are skipped.
495 Now, extensions '.so' and '.dll' are skipped.
491
496
492 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
497 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
493 bug, where macros would fail in all threaded modes. I'm not 100%
498 bug, where macros would fail in all threaded modes. I'm not 100%
494 sure, so I'm going to put out an rc instead of making a release
499 sure, so I'm going to put out an rc instead of making a release
495 today, and wait for feedback for at least a few days.
500 today, and wait for feedback for at least a few days.
496
501
497 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
502 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
498 it...) the handling of pasting external code with autoindent on.
503 it...) the handling of pasting external code with autoindent on.
499 To get out of a multiline input, the rule will appear for most
504 To get out of a multiline input, the rule will appear for most
500 users unchanged: two blank lines or change the indent level
505 users unchanged: two blank lines or change the indent level
501 proposed by IPython. But there is a twist now: you can
506 proposed by IPython. But there is a twist now: you can
502 add/subtract only *one or two spaces*. If you add/subtract three
507 add/subtract only *one or two spaces*. If you add/subtract three
503 or more (unless you completely delete the line), IPython will
508 or more (unless you completely delete the line), IPython will
504 accept that line, and you'll need to enter a second one of pure
509 accept that line, and you'll need to enter a second one of pure
505 whitespace. I know it sounds complicated, but I can't find a
510 whitespace. I know it sounds complicated, but I can't find a
506 different solution that covers all the cases, with the right
511 different solution that covers all the cases, with the right
507 heuristics. Hopefully in actual use, nobody will really notice
512 heuristics. Hopefully in actual use, nobody will really notice
508 all these strange rules and things will 'just work'.
513 all these strange rules and things will 'just work'.
509
514
510 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
515 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
511
516
512 * IPython/iplib.py (interact): catch exceptions which can be
517 * IPython/iplib.py (interact): catch exceptions which can be
513 triggered asynchronously by signal handlers. Thanks to an
518 triggered asynchronously by signal handlers. Thanks to an
514 automatic crash report, submitted by Colin Kingsley
519 automatic crash report, submitted by Colin Kingsley
515 <tercel-AT-gentoo.org>.
520 <tercel-AT-gentoo.org>.
516
521
517 2006-01-20 Ville Vainio <vivainio@gmail.com>
522 2006-01-20 Ville Vainio <vivainio@gmail.com>
518
523
519 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
524 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
520 (%rehashdir, very useful, try it out) of how to extend ipython
525 (%rehashdir, very useful, try it out) of how to extend ipython
521 with new magics. Also added Extensions dir to pythonpath to make
526 with new magics. Also added Extensions dir to pythonpath to make
522 importing extensions easy.
527 importing extensions easy.
523
528
524 * %store now complains when trying to store interactively declared
529 * %store now complains when trying to store interactively declared
525 classes / instances of those classes.
530 classes / instances of those classes.
526
531
527 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
532 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
528 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
533 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
529 if they exist, and ipy_user_conf.py with some defaults is created for
534 if they exist, and ipy_user_conf.py with some defaults is created for
530 the user.
535 the user.
531
536
532 * Startup rehashing done by the config file, not InterpreterExec.
537 * Startup rehashing done by the config file, not InterpreterExec.
533 This means system commands are available even without selecting the
538 This means system commands are available even without selecting the
534 pysh profile. It's the sensible default after all.
539 pysh profile. It's the sensible default after all.
535
540
536 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
541 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
537
542
538 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
543 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
539 multiline code with autoindent on working. But I am really not
544 multiline code with autoindent on working. But I am really not
540 sure, so this needs more testing. Will commit a debug-enabled
545 sure, so this needs more testing. Will commit a debug-enabled
541 version for now, while I test it some more, so that Ville and
546 version for now, while I test it some more, so that Ville and
542 others may also catch any problems. Also made
547 others may also catch any problems. Also made
543 self.indent_current_str() a method, to ensure that there's no
548 self.indent_current_str() a method, to ensure that there's no
544 chance of the indent space count and the corresponding string
549 chance of the indent space count and the corresponding string
545 falling out of sync. All code needing the string should just call
550 falling out of sync. All code needing the string should just call
546 the method.
551 the method.
547
552
548 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
553 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
549
554
550 * IPython/Magic.py (magic_edit): fix check for when users don't
555 * IPython/Magic.py (magic_edit): fix check for when users don't
551 save their output files, the try/except was in the wrong section.
556 save their output files, the try/except was in the wrong section.
552
557
553 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
558 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
554
559
555 * IPython/Magic.py (magic_run): fix __file__ global missing from
560 * IPython/Magic.py (magic_run): fix __file__ global missing from
556 script's namespace when executed via %run. After a report by
561 script's namespace when executed via %run. After a report by
557 Vivian.
562 Vivian.
558
563
559 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
564 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
560 when using python 2.4. The parent constructor changed in 2.4, and
565 when using python 2.4. The parent constructor changed in 2.4, and
561 we need to track it directly (we can't call it, as it messes up
566 we need to track it directly (we can't call it, as it messes up
562 readline and tab-completion inside our pdb would stop working).
567 readline and tab-completion inside our pdb would stop working).
563 After a bug report by R. Bernstein <rocky-AT-panix.com>.
568 After a bug report by R. Bernstein <rocky-AT-panix.com>.
564
569
565 2006-01-16 Ville Vainio <vivainio@gmail.com>
570 2006-01-16 Ville Vainio <vivainio@gmail.com>
566
571
567 * Ipython/magic.py:Reverted back to old %edit functionality
572 * Ipython/magic.py:Reverted back to old %edit functionality
568 that returns file contents on exit.
573 that returns file contents on exit.
569
574
570 * IPython/path.py: Added Jason Orendorff's "path" module to
575 * IPython/path.py: Added Jason Orendorff's "path" module to
571 IPython tree, http://www.jorendorff.com/articles/python/path/.
576 IPython tree, http://www.jorendorff.com/articles/python/path/.
572 You can get path objects conveniently through %sc, and !!, e.g.:
577 You can get path objects conveniently through %sc, and !!, e.g.:
573 sc files=ls
578 sc files=ls
574 for p in files.paths: # or files.p
579 for p in files.paths: # or files.p
575 print p,p.mtime
580 print p,p.mtime
576
581
577 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
582 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
578 now work again without considering the exclusion regexp -
583 now work again without considering the exclusion regexp -
579 hence, things like ',foo my/path' turn to 'foo("my/path")'
584 hence, things like ',foo my/path' turn to 'foo("my/path")'
580 instead of syntax error.
585 instead of syntax error.
581
586
582
587
583 2006-01-14 Ville Vainio <vivainio@gmail.com>
588 2006-01-14 Ville Vainio <vivainio@gmail.com>
584
589
585 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
590 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
586 ipapi decorators for python 2.4 users, options() provides access to rc
591 ipapi decorators for python 2.4 users, options() provides access to rc
587 data.
592 data.
588
593
589 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
594 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
590 as path separators (even on Linux ;-). Space character after
595 as path separators (even on Linux ;-). Space character after
591 backslash (as yielded by tab completer) is still space;
596 backslash (as yielded by tab completer) is still space;
592 "%cd long\ name" works as expected.
597 "%cd long\ name" works as expected.
593
598
594 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
599 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
595 as "chain of command", with priority. API stays the same,
600 as "chain of command", with priority. API stays the same,
596 TryNext exception raised by a hook function signals that
601 TryNext exception raised by a hook function signals that
597 current hook failed and next hook should try handling it, as
602 current hook failed and next hook should try handling it, as
598 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
603 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
599 requested configurable display hook, which is now implemented.
604 requested configurable display hook, which is now implemented.
600
605
601 2006-01-13 Ville Vainio <vivainio@gmail.com>
606 2006-01-13 Ville Vainio <vivainio@gmail.com>
602
607
603 * IPython/platutils*.py: platform specific utility functions,
608 * IPython/platutils*.py: platform specific utility functions,
604 so far only set_term_title is implemented (change terminal
609 so far only set_term_title is implemented (change terminal
605 label in windowing systems). %cd now changes the title to
610 label in windowing systems). %cd now changes the title to
606 current dir.
611 current dir.
607
612
608 * IPython/Release.py: Added myself to "authors" list,
613 * IPython/Release.py: Added myself to "authors" list,
609 had to create new files.
614 had to create new files.
610
615
611 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
616 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
612 shell escape; not a known bug but had potential to be one in the
617 shell escape; not a known bug but had potential to be one in the
613 future.
618 future.
614
619
615 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
620 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
616 extension API for IPython! See the module for usage example. Fix
621 extension API for IPython! See the module for usage example. Fix
617 OInspect for docstring-less magic functions.
622 OInspect for docstring-less magic functions.
618
623
619
624
620 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
625 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
621
626
622 * IPython/iplib.py (raw_input): temporarily deactivate all
627 * IPython/iplib.py (raw_input): temporarily deactivate all
623 attempts at allowing pasting of code with autoindent on. It
628 attempts at allowing pasting of code with autoindent on. It
624 introduced bugs (reported by Prabhu) and I can't seem to find a
629 introduced bugs (reported by Prabhu) and I can't seem to find a
625 robust combination which works in all cases. Will have to revisit
630 robust combination which works in all cases. Will have to revisit
626 later.
631 later.
627
632
628 * IPython/genutils.py: remove isspace() function. We've dropped
633 * IPython/genutils.py: remove isspace() function. We've dropped
629 2.2 compatibility, so it's OK to use the string method.
634 2.2 compatibility, so it's OK to use the string method.
630
635
631 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
636 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
632
637
633 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
638 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
634 matching what NOT to autocall on, to include all python binary
639 matching what NOT to autocall on, to include all python binary
635 operators (including things like 'and', 'or', 'is' and 'in').
640 operators (including things like 'and', 'or', 'is' and 'in').
636 Prompted by a bug report on 'foo & bar', but I realized we had
641 Prompted by a bug report on 'foo & bar', but I realized we had
637 many more potential bug cases with other operators. The regexp is
642 many more potential bug cases with other operators. The regexp is
638 self.re_exclude_auto, it's fairly commented.
643 self.re_exclude_auto, it's fairly commented.
639
644
640 2006-01-12 Ville Vainio <vivainio@gmail.com>
645 2006-01-12 Ville Vainio <vivainio@gmail.com>
641
646
642 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
647 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
643 Prettified and hardened string/backslash quoting with ipsystem(),
648 Prettified and hardened string/backslash quoting with ipsystem(),
644 ipalias() and ipmagic(). Now even \ characters are passed to
649 ipalias() and ipmagic(). Now even \ characters are passed to
645 %magics, !shell escapes and aliases exactly as they are in the
650 %magics, !shell escapes and aliases exactly as they are in the
646 ipython command line. Should improve backslash experience,
651 ipython command line. Should improve backslash experience,
647 particularly in Windows (path delimiter for some commands that
652 particularly in Windows (path delimiter for some commands that
648 won't understand '/'), but Unix benefits as well (regexps). %cd
653 won't understand '/'), but Unix benefits as well (regexps). %cd
649 magic still doesn't support backslash path delimiters, though. Also
654 magic still doesn't support backslash path delimiters, though. Also
650 deleted all pretense of supporting multiline command strings in
655 deleted all pretense of supporting multiline command strings in
651 !system or %magic commands. Thanks to Jerry McRae for suggestions.
656 !system or %magic commands. Thanks to Jerry McRae for suggestions.
652
657
653 * doc/build_doc_instructions.txt added. Documentation on how to
658 * doc/build_doc_instructions.txt added. Documentation on how to
654 use doc/update_manual.py, added yesterday. Both files contributed
659 use doc/update_manual.py, added yesterday. Both files contributed
655 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
660 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
656 doc/*.sh for deprecation at a later date.
661 doc/*.sh for deprecation at a later date.
657
662
658 * /ipython.py Added ipython.py to root directory for
663 * /ipython.py Added ipython.py to root directory for
659 zero-installation (tar xzvf ipython.tgz; cd ipython; python
664 zero-installation (tar xzvf ipython.tgz; cd ipython; python
660 ipython.py) and development convenience (no need to kee doing
665 ipython.py) and development convenience (no need to kee doing
661 "setup.py install" between changes).
666 "setup.py install" between changes).
662
667
663 * Made ! and !! shell escapes work (again) in multiline expressions:
668 * Made ! and !! shell escapes work (again) in multiline expressions:
664 if 1:
669 if 1:
665 !ls
670 !ls
666 !!ls
671 !!ls
667
672
668 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
673 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
669
674
670 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
675 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
671 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
676 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
672 module in case-insensitive installation. Was causing crashes
677 module in case-insensitive installation. Was causing crashes
673 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
678 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
674
679
675 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
680 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
676 <marienz-AT-gentoo.org>, closes
681 <marienz-AT-gentoo.org>, closes
677 http://www.scipy.net/roundup/ipython/issue51.
682 http://www.scipy.net/roundup/ipython/issue51.
678
683
679 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
684 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
680
685
681 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
686 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the the
682 problem of excessive CPU usage under *nix and keyboard lag under
687 problem of excessive CPU usage under *nix and keyboard lag under
683 win32.
688 win32.
684
689
685 2006-01-10 *** Released version 0.7.0
690 2006-01-10 *** Released version 0.7.0
686
691
687 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
692 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
688
693
689 * IPython/Release.py (revision): tag version number to 0.7.0,
694 * IPython/Release.py (revision): tag version number to 0.7.0,
690 ready for release.
695 ready for release.
691
696
692 * IPython/Magic.py (magic_edit): Add print statement to %edit so
697 * IPython/Magic.py (magic_edit): Add print statement to %edit so
693 it informs the user of the name of the temp. file used. This can
698 it informs the user of the name of the temp. file used. This can
694 help if you decide later to reuse that same file, so you know
699 help if you decide later to reuse that same file, so you know
695 where to copy the info from.
700 where to copy the info from.
696
701
697 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
702 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
698
703
699 * setup_bdist_egg.py: little script to build an egg. Added
704 * setup_bdist_egg.py: little script to build an egg. Added
700 support in the release tools as well.
705 support in the release tools as well.
701
706
702 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
707 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
703
708
704 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
709 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
705 version selection (new -wxversion command line and ipythonrc
710 version selection (new -wxversion command line and ipythonrc
706 parameter). Patch contributed by Arnd Baecker
711 parameter). Patch contributed by Arnd Baecker
707 <arnd.baecker-AT-web.de>.
712 <arnd.baecker-AT-web.de>.
708
713
709 * IPython/iplib.py (embed_mainloop): fix tab-completion in
714 * IPython/iplib.py (embed_mainloop): fix tab-completion in
710 embedded instances, for variables defined at the interactive
715 embedded instances, for variables defined at the interactive
711 prompt of the embedded ipython. Reported by Arnd.
716 prompt of the embedded ipython. Reported by Arnd.
712
717
713 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
718 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
714 it can be used as a (stateful) toggle, or with a direct parameter.
719 it can be used as a (stateful) toggle, or with a direct parameter.
715
720
716 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
721 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
717 could be triggered in certain cases and cause the traceback
722 could be triggered in certain cases and cause the traceback
718 printer not to work.
723 printer not to work.
719
724
720 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
725 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
721
726
722 * IPython/iplib.py (_should_recompile): Small fix, closes
727 * IPython/iplib.py (_should_recompile): Small fix, closes
723 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
728 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
724
729
725 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
730 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
726
731
727 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
732 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
728 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
733 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
729 Moad for help with tracking it down.
734 Moad for help with tracking it down.
730
735
731 * IPython/iplib.py (handle_auto): fix autocall handling for
736 * IPython/iplib.py (handle_auto): fix autocall handling for
732 objects which support BOTH __getitem__ and __call__ (so that f [x]
737 objects which support BOTH __getitem__ and __call__ (so that f [x]
733 is left alone, instead of becoming f([x]) automatically).
738 is left alone, instead of becoming f([x]) automatically).
734
739
735 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
740 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
736 Ville's patch.
741 Ville's patch.
737
742
738 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
743 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
739
744
740 * IPython/iplib.py (handle_auto): changed autocall semantics to
745 * IPython/iplib.py (handle_auto): changed autocall semantics to
741 include 'smart' mode, where the autocall transformation is NOT
746 include 'smart' mode, where the autocall transformation is NOT
742 applied if there are no arguments on the line. This allows you to
747 applied if there are no arguments on the line. This allows you to
743 just type 'foo' if foo is a callable to see its internal form,
748 just type 'foo' if foo is a callable to see its internal form,
744 instead of having it called with no arguments (typically a
749 instead of having it called with no arguments (typically a
745 mistake). The old 'full' autocall still exists: for that, you
750 mistake). The old 'full' autocall still exists: for that, you
746 need to set the 'autocall' parameter to 2 in your ipythonrc file.
751 need to set the 'autocall' parameter to 2 in your ipythonrc file.
747
752
748 * IPython/completer.py (Completer.attr_matches): add
753 * IPython/completer.py (Completer.attr_matches): add
749 tab-completion support for Enthoughts' traits. After a report by
754 tab-completion support for Enthoughts' traits. After a report by
750 Arnd and a patch by Prabhu.
755 Arnd and a patch by Prabhu.
751
756
752 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
757 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
753
758
754 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
759 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
755 Schmolck's patch to fix inspect.getinnerframes().
760 Schmolck's patch to fix inspect.getinnerframes().
756
761
757 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
762 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
758 for embedded instances, regarding handling of namespaces and items
763 for embedded instances, regarding handling of namespaces and items
759 added to the __builtin__ one. Multiple embedded instances and
764 added to the __builtin__ one. Multiple embedded instances and
760 recursive embeddings should work better now (though I'm not sure
765 recursive embeddings should work better now (though I'm not sure
761 I've got all the corner cases fixed, that code is a bit of a brain
766 I've got all the corner cases fixed, that code is a bit of a brain
762 twister).
767 twister).
763
768
764 * IPython/Magic.py (magic_edit): added support to edit in-memory
769 * IPython/Magic.py (magic_edit): added support to edit in-memory
765 macros (automatically creates the necessary temp files). %edit
770 macros (automatically creates the necessary temp files). %edit
766 also doesn't return the file contents anymore, it's just noise.
771 also doesn't return the file contents anymore, it's just noise.
767
772
768 * IPython/completer.py (Completer.attr_matches): revert change to
773 * IPython/completer.py (Completer.attr_matches): revert change to
769 complete only on attributes listed in __all__. I realized it
774 complete only on attributes listed in __all__. I realized it
770 cripples the tab-completion system as a tool for exploring the
775 cripples the tab-completion system as a tool for exploring the
771 internals of unknown libraries (it renders any non-__all__
776 internals of unknown libraries (it renders any non-__all__
772 attribute off-limits). I got bit by this when trying to see
777 attribute off-limits). I got bit by this when trying to see
773 something inside the dis module.
778 something inside the dis module.
774
779
775 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
780 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
776
781
777 * IPython/iplib.py (InteractiveShell.__init__): add .meta
782 * IPython/iplib.py (InteractiveShell.__init__): add .meta
778 namespace for users and extension writers to hold data in. This
783 namespace for users and extension writers to hold data in. This
779 follows the discussion in
784 follows the discussion in
780 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
785 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
781
786
782 * IPython/completer.py (IPCompleter.complete): small patch to help
787 * IPython/completer.py (IPCompleter.complete): small patch to help
783 tab-completion under Emacs, after a suggestion by John Barnard
788 tab-completion under Emacs, after a suggestion by John Barnard
784 <barnarj-AT-ccf.org>.
789 <barnarj-AT-ccf.org>.
785
790
786 * IPython/Magic.py (Magic.extract_input_slices): added support for
791 * IPython/Magic.py (Magic.extract_input_slices): added support for
787 the slice notation in magics to use N-M to represent numbers N...M
792 the slice notation in magics to use N-M to represent numbers N...M
788 (closed endpoints). This is used by %macro and %save.
793 (closed endpoints). This is used by %macro and %save.
789
794
790 * IPython/completer.py (Completer.attr_matches): for modules which
795 * IPython/completer.py (Completer.attr_matches): for modules which
791 define __all__, complete only on those. After a patch by Jeffrey
796 define __all__, complete only on those. After a patch by Jeffrey
792 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
797 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
793 speed up this routine.
798 speed up this routine.
794
799
795 * IPython/Logger.py (Logger.log): fix a history handling bug. I
800 * IPython/Logger.py (Logger.log): fix a history handling bug. I
796 don't know if this is the end of it, but the behavior now is
801 don't know if this is the end of it, but the behavior now is
797 certainly much more correct. Note that coupled with macros,
802 certainly much more correct. Note that coupled with macros,
798 slightly surprising (at first) behavior may occur: a macro will in
803 slightly surprising (at first) behavior may occur: a macro will in
799 general expand to multiple lines of input, so upon exiting, the
804 general expand to multiple lines of input, so upon exiting, the
800 in/out counters will both be bumped by the corresponding amount
805 in/out counters will both be bumped by the corresponding amount
801 (as if the macro's contents had been typed interactively). Typing
806 (as if the macro's contents had been typed interactively). Typing
802 %hist will reveal the intermediate (silently processed) lines.
807 %hist will reveal the intermediate (silently processed) lines.
803
808
804 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
809 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
805 pickle to fail (%run was overwriting __main__ and not restoring
810 pickle to fail (%run was overwriting __main__ and not restoring
806 it, but pickle relies on __main__ to operate).
811 it, but pickle relies on __main__ to operate).
807
812
808 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
813 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
809 using properties, but forgot to make the main InteractiveShell
814 using properties, but forgot to make the main InteractiveShell
810 class a new-style class. Properties fail silently, and
815 class a new-style class. Properties fail silently, and
811 misteriously, with old-style class (getters work, but
816 misteriously, with old-style class (getters work, but
812 setters don't do anything).
817 setters don't do anything).
813
818
814 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
819 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
815
820
816 * IPython/Magic.py (magic_history): fix history reporting bug (I
821 * IPython/Magic.py (magic_history): fix history reporting bug (I
817 know some nasties are still there, I just can't seem to find a
822 know some nasties are still there, I just can't seem to find a
818 reproducible test case to track them down; the input history is
823 reproducible test case to track them down; the input history is
819 falling out of sync...)
824 falling out of sync...)
820
825
821 * IPython/iplib.py (handle_shell_escape): fix bug where both
826 * IPython/iplib.py (handle_shell_escape): fix bug where both
822 aliases and system accesses where broken for indented code (such
827 aliases and system accesses where broken for indented code (such
823 as loops).
828 as loops).
824
829
825 * IPython/genutils.py (shell): fix small but critical bug for
830 * IPython/genutils.py (shell): fix small but critical bug for
826 win32 system access.
831 win32 system access.
827
832
828 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
833 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
829
834
830 * IPython/iplib.py (showtraceback): remove use of the
835 * IPython/iplib.py (showtraceback): remove use of the
831 sys.last_{type/value/traceback} structures, which are non
836 sys.last_{type/value/traceback} structures, which are non
832 thread-safe.
837 thread-safe.
833 (_prefilter): change control flow to ensure that we NEVER
838 (_prefilter): change control flow to ensure that we NEVER
834 introspect objects when autocall is off. This will guarantee that
839 introspect objects when autocall is off. This will guarantee that
835 having an input line of the form 'x.y', where access to attribute
840 having an input line of the form 'x.y', where access to attribute
836 'y' has side effects, doesn't trigger the side effect TWICE. It
841 'y' has side effects, doesn't trigger the side effect TWICE. It
837 is important to note that, with autocall on, these side effects
842 is important to note that, with autocall on, these side effects
838 can still happen.
843 can still happen.
839 (ipsystem): new builtin, to complete the ip{magic/alias/system}
844 (ipsystem): new builtin, to complete the ip{magic/alias/system}
840 trio. IPython offers these three kinds of special calls which are
845 trio. IPython offers these three kinds of special calls which are
841 not python code, and it's a good thing to have their call method
846 not python code, and it's a good thing to have their call method
842 be accessible as pure python functions (not just special syntax at
847 be accessible as pure python functions (not just special syntax at
843 the command line). It gives us a better internal implementation
848 the command line). It gives us a better internal implementation
844 structure, as well as exposing these for user scripting more
849 structure, as well as exposing these for user scripting more
845 cleanly.
850 cleanly.
846
851
847 * IPython/macro.py (Macro.__init__): moved macros to a standalone
852 * IPython/macro.py (Macro.__init__): moved macros to a standalone
848 file. Now that they'll be more likely to be used with the
853 file. Now that they'll be more likely to be used with the
849 persistance system (%store), I want to make sure their module path
854 persistance system (%store), I want to make sure their module path
850 doesn't change in the future, so that we don't break things for
855 doesn't change in the future, so that we don't break things for
851 users' persisted data.
856 users' persisted data.
852
857
853 * IPython/iplib.py (autoindent_update): move indentation
858 * IPython/iplib.py (autoindent_update): move indentation
854 management into the _text_ processing loop, not the keyboard
859 management into the _text_ processing loop, not the keyboard
855 interactive one. This is necessary to correctly process non-typed
860 interactive one. This is necessary to correctly process non-typed
856 multiline input (such as macros).
861 multiline input (such as macros).
857
862
858 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
863 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
859 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
864 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
860 which was producing problems in the resulting manual.
865 which was producing problems in the resulting manual.
861 (magic_whos): improve reporting of instances (show their class,
866 (magic_whos): improve reporting of instances (show their class,
862 instead of simply printing 'instance' which isn't terribly
867 instead of simply printing 'instance' which isn't terribly
863 informative).
868 informative).
864
869
865 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
870 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
866 (minor mods) to support network shares under win32.
871 (minor mods) to support network shares under win32.
867
872
868 * IPython/winconsole.py (get_console_size): add new winconsole
873 * IPython/winconsole.py (get_console_size): add new winconsole
869 module and fixes to page_dumb() to improve its behavior under
874 module and fixes to page_dumb() to improve its behavior under
870 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
875 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
871
876
872 * IPython/Magic.py (Macro): simplified Macro class to just
877 * IPython/Magic.py (Macro): simplified Macro class to just
873 subclass list. We've had only 2.2 compatibility for a very long
878 subclass list. We've had only 2.2 compatibility for a very long
874 time, yet I was still avoiding subclassing the builtin types. No
879 time, yet I was still avoiding subclassing the builtin types. No
875 more (I'm also starting to use properties, though I won't shift to
880 more (I'm also starting to use properties, though I won't shift to
876 2.3-specific features quite yet).
881 2.3-specific features quite yet).
877 (magic_store): added Ville's patch for lightweight variable
882 (magic_store): added Ville's patch for lightweight variable
878 persistence, after a request on the user list by Matt Wilkie
883 persistence, after a request on the user list by Matt Wilkie
879 <maphew-AT-gmail.com>. The new %store magic's docstring has full
884 <maphew-AT-gmail.com>. The new %store magic's docstring has full
880 details.
885 details.
881
886
882 * IPython/iplib.py (InteractiveShell.post_config_initialization):
887 * IPython/iplib.py (InteractiveShell.post_config_initialization):
883 changed the default logfile name from 'ipython.log' to
888 changed the default logfile name from 'ipython.log' to
884 'ipython_log.py'. These logs are real python files, and now that
889 'ipython_log.py'. These logs are real python files, and now that
885 we have much better multiline support, people are more likely to
890 we have much better multiline support, people are more likely to
886 want to use them as such. Might as well name them correctly.
891 want to use them as such. Might as well name them correctly.
887
892
888 * IPython/Magic.py: substantial cleanup. While we can't stop
893 * IPython/Magic.py: substantial cleanup. While we can't stop
889 using magics as mixins, due to the existing customizations 'out
894 using magics as mixins, due to the existing customizations 'out
890 there' which rely on the mixin naming conventions, at least I
895 there' which rely on the mixin naming conventions, at least I
891 cleaned out all cross-class name usage. So once we are OK with
896 cleaned out all cross-class name usage. So once we are OK with
892 breaking compatibility, the two systems can be separated.
897 breaking compatibility, the two systems can be separated.
893
898
894 * IPython/Logger.py: major cleanup. This one is NOT a mixin
899 * IPython/Logger.py: major cleanup. This one is NOT a mixin
895 anymore, and the class is a fair bit less hideous as well. New
900 anymore, and the class is a fair bit less hideous as well. New
896 features were also introduced: timestamping of input, and logging
901 features were also introduced: timestamping of input, and logging
897 of output results. These are user-visible with the -t and -o
902 of output results. These are user-visible with the -t and -o
898 options to %logstart. Closes
903 options to %logstart. Closes
899 http://www.scipy.net/roundup/ipython/issue11 and a request by
904 http://www.scipy.net/roundup/ipython/issue11 and a request by
900 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
905 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
901
906
902 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
907 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
903
908
904 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
909 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
905 better hadnle backslashes in paths. See the thread 'More Windows
910 better hadnle backslashes in paths. See the thread 'More Windows
906 questions part 2 - \/ characters revisited' on the iypthon user
911 questions part 2 - \/ characters revisited' on the iypthon user
907 list:
912 list:
908 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
913 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
909
914
910 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
915 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
911
916
912 (InteractiveShell.__init__): change threaded shells to not use the
917 (InteractiveShell.__init__): change threaded shells to not use the
913 ipython crash handler. This was causing more problems than not,
918 ipython crash handler. This was causing more problems than not,
914 as exceptions in the main thread (GUI code, typically) would
919 as exceptions in the main thread (GUI code, typically) would
915 always show up as a 'crash', when they really weren't.
920 always show up as a 'crash', when they really weren't.
916
921
917 The colors and exception mode commands (%colors/%xmode) have been
922 The colors and exception mode commands (%colors/%xmode) have been
918 synchronized to also take this into account, so users can get
923 synchronized to also take this into account, so users can get
919 verbose exceptions for their threaded code as well. I also added
924 verbose exceptions for their threaded code as well. I also added
920 support for activating pdb inside this exception handler as well,
925 support for activating pdb inside this exception handler as well,
921 so now GUI authors can use IPython's enhanced pdb at runtime.
926 so now GUI authors can use IPython's enhanced pdb at runtime.
922
927
923 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
928 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
924 true by default, and add it to the shipped ipythonrc file. Since
929 true by default, and add it to the shipped ipythonrc file. Since
925 this asks the user before proceeding, I think it's OK to make it
930 this asks the user before proceeding, I think it's OK to make it
926 true by default.
931 true by default.
927
932
928 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
933 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
929 of the previous special-casing of input in the eval loop. I think
934 of the previous special-casing of input in the eval loop. I think
930 this is cleaner, as they really are commands and shouldn't have
935 this is cleaner, as they really are commands and shouldn't have
931 a special role in the middle of the core code.
936 a special role in the middle of the core code.
932
937
933 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
938 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
934
939
935 * IPython/iplib.py (edit_syntax_error): added support for
940 * IPython/iplib.py (edit_syntax_error): added support for
936 automatically reopening the editor if the file had a syntax error
941 automatically reopening the editor if the file had a syntax error
937 in it. Thanks to scottt who provided the patch at:
942 in it. Thanks to scottt who provided the patch at:
938 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
943 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
939 version committed).
944 version committed).
940
945
941 * IPython/iplib.py (handle_normal): add suport for multi-line
946 * IPython/iplib.py (handle_normal): add suport for multi-line
942 input with emtpy lines. This fixes
947 input with emtpy lines. This fixes
943 http://www.scipy.net/roundup/ipython/issue43 and a similar
948 http://www.scipy.net/roundup/ipython/issue43 and a similar
944 discussion on the user list.
949 discussion on the user list.
945
950
946 WARNING: a behavior change is necessarily introduced to support
951 WARNING: a behavior change is necessarily introduced to support
947 blank lines: now a single blank line with whitespace does NOT
952 blank lines: now a single blank line with whitespace does NOT
948 break the input loop, which means that when autoindent is on, by
953 break the input loop, which means that when autoindent is on, by
949 default hitting return on the next (indented) line does NOT exit.
954 default hitting return on the next (indented) line does NOT exit.
950
955
951 Instead, to exit a multiline input you can either have:
956 Instead, to exit a multiline input you can either have:
952
957
953 - TWO whitespace lines (just hit return again), or
958 - TWO whitespace lines (just hit return again), or
954 - a single whitespace line of a different length than provided
959 - a single whitespace line of a different length than provided
955 by the autoindent (add or remove a space).
960 by the autoindent (add or remove a space).
956
961
957 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
962 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
958 module to better organize all readline-related functionality.
963 module to better organize all readline-related functionality.
959 I've deleted FlexCompleter and put all completion clases here.
964 I've deleted FlexCompleter and put all completion clases here.
960
965
961 * IPython/iplib.py (raw_input): improve indentation management.
966 * IPython/iplib.py (raw_input): improve indentation management.
962 It is now possible to paste indented code with autoindent on, and
967 It is now possible to paste indented code with autoindent on, and
963 the code is interpreted correctly (though it still looks bad on
968 the code is interpreted correctly (though it still looks bad on
964 screen, due to the line-oriented nature of ipython).
969 screen, due to the line-oriented nature of ipython).
965 (MagicCompleter.complete): change behavior so that a TAB key on an
970 (MagicCompleter.complete): change behavior so that a TAB key on an
966 otherwise empty line actually inserts a tab, instead of completing
971 otherwise empty line actually inserts a tab, instead of completing
967 on the entire global namespace. This makes it easier to use the
972 on the entire global namespace. This makes it easier to use the
968 TAB key for indentation. After a request by Hans Meine
973 TAB key for indentation. After a request by Hans Meine
969 <hans_meine-AT-gmx.net>
974 <hans_meine-AT-gmx.net>
970 (_prefilter): add support so that typing plain 'exit' or 'quit'
975 (_prefilter): add support so that typing plain 'exit' or 'quit'
971 does a sensible thing. Originally I tried to deviate as little as
976 does a sensible thing. Originally I tried to deviate as little as
972 possible from the default python behavior, but even that one may
977 possible from the default python behavior, but even that one may
973 change in this direction (thread on python-dev to that effect).
978 change in this direction (thread on python-dev to that effect).
974 Regardless, ipython should do the right thing even if CPython's
979 Regardless, ipython should do the right thing even if CPython's
975 '>>>' prompt doesn't.
980 '>>>' prompt doesn't.
976 (InteractiveShell): removed subclassing code.InteractiveConsole
981 (InteractiveShell): removed subclassing code.InteractiveConsole
977 class. By now we'd overridden just about all of its methods: I've
982 class. By now we'd overridden just about all of its methods: I've
978 copied the remaining two over, and now ipython is a standalone
983 copied the remaining two over, and now ipython is a standalone
979 class. This will provide a clearer picture for the chainsaw
984 class. This will provide a clearer picture for the chainsaw
980 branch refactoring.
985 branch refactoring.
981
986
982 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
987 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
983
988
984 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
989 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
985 failures for objects which break when dir() is called on them.
990 failures for objects which break when dir() is called on them.
986
991
987 * IPython/FlexCompleter.py (Completer.__init__): Added support for
992 * IPython/FlexCompleter.py (Completer.__init__): Added support for
988 distinct local and global namespaces in the completer API. This
993 distinct local and global namespaces in the completer API. This
989 change allows us top properly handle completion with distinct
994 change allows us top properly handle completion with distinct
990 scopes, including in embedded instances (this had never really
995 scopes, including in embedded instances (this had never really
991 worked correctly).
996 worked correctly).
992
997
993 Note: this introduces a change in the constructor for
998 Note: this introduces a change in the constructor for
994 MagicCompleter, as a new global_namespace parameter is now the
999 MagicCompleter, as a new global_namespace parameter is now the
995 second argument (the others were bumped one position).
1000 second argument (the others were bumped one position).
996
1001
997 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1002 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
998
1003
999 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1004 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1000 embedded instances (which can be done now thanks to Vivian's
1005 embedded instances (which can be done now thanks to Vivian's
1001 frame-handling fixes for pdb).
1006 frame-handling fixes for pdb).
1002 (InteractiveShell.__init__): Fix namespace handling problem in
1007 (InteractiveShell.__init__): Fix namespace handling problem in
1003 embedded instances. We were overwriting __main__ unconditionally,
1008 embedded instances. We were overwriting __main__ unconditionally,
1004 and this should only be done for 'full' (non-embedded) IPython;
1009 and this should only be done for 'full' (non-embedded) IPython;
1005 embedded instances must respect the caller's __main__. Thanks to
1010 embedded instances must respect the caller's __main__. Thanks to
1006 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1011 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1007
1012
1008 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1013 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1009
1014
1010 * setup.py: added download_url to setup(). This registers the
1015 * setup.py: added download_url to setup(). This registers the
1011 download address at PyPI, which is not only useful to humans
1016 download address at PyPI, which is not only useful to humans
1012 browsing the site, but is also picked up by setuptools (the Eggs
1017 browsing the site, but is also picked up by setuptools (the Eggs
1013 machinery). Thanks to Ville and R. Kern for the info/discussion
1018 machinery). Thanks to Ville and R. Kern for the info/discussion
1014 on this.
1019 on this.
1015
1020
1016 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1021 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1017
1022
1018 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1023 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1019 This brings a lot of nice functionality to the pdb mode, which now
1024 This brings a lot of nice functionality to the pdb mode, which now
1020 has tab-completion, syntax highlighting, and better stack handling
1025 has tab-completion, syntax highlighting, and better stack handling
1021 than before. Many thanks to Vivian De Smedt
1026 than before. Many thanks to Vivian De Smedt
1022 <vivian-AT-vdesmedt.com> for the original patches.
1027 <vivian-AT-vdesmedt.com> for the original patches.
1023
1028
1024 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1029 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1025
1030
1026 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1031 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1027 sequence to consistently accept the banner argument. The
1032 sequence to consistently accept the banner argument. The
1028 inconsistency was tripping SAGE, thanks to Gary Zablackis
1033 inconsistency was tripping SAGE, thanks to Gary Zablackis
1029 <gzabl-AT-yahoo.com> for the report.
1034 <gzabl-AT-yahoo.com> for the report.
1030
1035
1031 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1036 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1032
1037
1033 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1038 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1034 Fix bug where a naked 'alias' call in the ipythonrc file would
1039 Fix bug where a naked 'alias' call in the ipythonrc file would
1035 cause a crash. Bug reported by Jorgen Stenarson.
1040 cause a crash. Bug reported by Jorgen Stenarson.
1036
1041
1037 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1042 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1038
1043
1039 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1044 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1040 startup time.
1045 startup time.
1041
1046
1042 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1047 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1043 instances had introduced a bug with globals in normal code. Now
1048 instances had introduced a bug with globals in normal code. Now
1044 it's working in all cases.
1049 it's working in all cases.
1045
1050
1046 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1051 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1047 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1052 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1048 has been introduced to set the default case sensitivity of the
1053 has been introduced to set the default case sensitivity of the
1049 searches. Users can still select either mode at runtime on a
1054 searches. Users can still select either mode at runtime on a
1050 per-search basis.
1055 per-search basis.
1051
1056
1052 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1057 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1053
1058
1054 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1059 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1055 attributes in wildcard searches for subclasses. Modified version
1060 attributes in wildcard searches for subclasses. Modified version
1056 of a patch by Jorgen.
1061 of a patch by Jorgen.
1057
1062
1058 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1063 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1059
1064
1060 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1065 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1061 embedded instances. I added a user_global_ns attribute to the
1066 embedded instances. I added a user_global_ns attribute to the
1062 InteractiveShell class to handle this.
1067 InteractiveShell class to handle this.
1063
1068
1064 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1069 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1065
1070
1066 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1071 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1067 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1072 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1068 (reported under win32, but may happen also in other platforms).
1073 (reported under win32, but may happen also in other platforms).
1069 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1074 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1070
1075
1071 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1076 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1072
1077
1073 * IPython/Magic.py (magic_psearch): new support for wildcard
1078 * IPython/Magic.py (magic_psearch): new support for wildcard
1074 patterns. Now, typing ?a*b will list all names which begin with a
1079 patterns. Now, typing ?a*b will list all names which begin with a
1075 and end in b, for example. The %psearch magic has full
1080 and end in b, for example. The %psearch magic has full
1076 docstrings. Many thanks to JΓΆrgen Stenarson
1081 docstrings. Many thanks to JΓΆrgen Stenarson
1077 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1082 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1078 implementing this functionality.
1083 implementing this functionality.
1079
1084
1080 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1085 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1081
1086
1082 * Manual: fixed long-standing annoyance of double-dashes (as in
1087 * Manual: fixed long-standing annoyance of double-dashes (as in
1083 --prefix=~, for example) being stripped in the HTML version. This
1088 --prefix=~, for example) being stripped in the HTML version. This
1084 is a latex2html bug, but a workaround was provided. Many thanks
1089 is a latex2html bug, but a workaround was provided. Many thanks
1085 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1090 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1086 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1091 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1087 rolling. This seemingly small issue had tripped a number of users
1092 rolling. This seemingly small issue had tripped a number of users
1088 when first installing, so I'm glad to see it gone.
1093 when first installing, so I'm glad to see it gone.
1089
1094
1090 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1091
1096
1092 * IPython/Extensions/numeric_formats.py: fix missing import,
1097 * IPython/Extensions/numeric_formats.py: fix missing import,
1093 reported by Stephen Walton.
1098 reported by Stephen Walton.
1094
1099
1095 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1100 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1096
1101
1097 * IPython/demo.py: finish demo module, fully documented now.
1102 * IPython/demo.py: finish demo module, fully documented now.
1098
1103
1099 * IPython/genutils.py (file_read): simple little utility to read a
1104 * IPython/genutils.py (file_read): simple little utility to read a
1100 file and ensure it's closed afterwards.
1105 file and ensure it's closed afterwards.
1101
1106
1102 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1107 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1103
1108
1104 * IPython/demo.py (Demo.__init__): added support for individually
1109 * IPython/demo.py (Demo.__init__): added support for individually
1105 tagging blocks for automatic execution.
1110 tagging blocks for automatic execution.
1106
1111
1107 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1112 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1108 syntax-highlighted python sources, requested by John.
1113 syntax-highlighted python sources, requested by John.
1109
1114
1110 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1115 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1111
1116
1112 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1117 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1113 finishing.
1118 finishing.
1114
1119
1115 * IPython/genutils.py (shlex_split): moved from Magic to here,
1120 * IPython/genutils.py (shlex_split): moved from Magic to here,
1116 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1121 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1117
1122
1118 * IPython/demo.py (Demo.__init__): added support for silent
1123 * IPython/demo.py (Demo.__init__): added support for silent
1119 blocks, improved marks as regexps, docstrings written.
1124 blocks, improved marks as regexps, docstrings written.
1120 (Demo.__init__): better docstring, added support for sys.argv.
1125 (Demo.__init__): better docstring, added support for sys.argv.
1121
1126
1122 * IPython/genutils.py (marquee): little utility used by the demo
1127 * IPython/genutils.py (marquee): little utility used by the demo
1123 code, handy in general.
1128 code, handy in general.
1124
1129
1125 * IPython/demo.py (Demo.__init__): new class for interactive
1130 * IPython/demo.py (Demo.__init__): new class for interactive
1126 demos. Not documented yet, I just wrote it in a hurry for
1131 demos. Not documented yet, I just wrote it in a hurry for
1127 scipy'05. Will docstring later.
1132 scipy'05. Will docstring later.
1128
1133
1129 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1134 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1130
1135
1131 * IPython/Shell.py (sigint_handler): Drastic simplification which
1136 * IPython/Shell.py (sigint_handler): Drastic simplification which
1132 also seems to make Ctrl-C work correctly across threads! This is
1137 also seems to make Ctrl-C work correctly across threads! This is
1133 so simple, that I can't beleive I'd missed it before. Needs more
1138 so simple, that I can't beleive I'd missed it before. Needs more
1134 testing, though.
1139 testing, though.
1135 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1140 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1136 like this before...
1141 like this before...
1137
1142
1138 * IPython/genutils.py (get_home_dir): add protection against
1143 * IPython/genutils.py (get_home_dir): add protection against
1139 non-dirs in win32 registry.
1144 non-dirs in win32 registry.
1140
1145
1141 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1146 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1142 bug where dict was mutated while iterating (pysh crash).
1147 bug where dict was mutated while iterating (pysh crash).
1143
1148
1144 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1149 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1145
1150
1146 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1151 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1147 spurious newlines added by this routine. After a report by
1152 spurious newlines added by this routine. After a report by
1148 F. Mantegazza.
1153 F. Mantegazza.
1149
1154
1150 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1155 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1151
1156
1152 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1157 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1153 calls. These were a leftover from the GTK 1.x days, and can cause
1158 calls. These were a leftover from the GTK 1.x days, and can cause
1154 problems in certain cases (after a report by John Hunter).
1159 problems in certain cases (after a report by John Hunter).
1155
1160
1156 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1161 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1157 os.getcwd() fails at init time. Thanks to patch from David Remahl
1162 os.getcwd() fails at init time. Thanks to patch from David Remahl
1158 <chmod007-AT-mac.com>.
1163 <chmod007-AT-mac.com>.
1159 (InteractiveShell.__init__): prevent certain special magics from
1164 (InteractiveShell.__init__): prevent certain special magics from
1160 being shadowed by aliases. Closes
1165 being shadowed by aliases. Closes
1161 http://www.scipy.net/roundup/ipython/issue41.
1166 http://www.scipy.net/roundup/ipython/issue41.
1162
1167
1163 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1168 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1164
1169
1165 * IPython/iplib.py (InteractiveShell.complete): Added new
1170 * IPython/iplib.py (InteractiveShell.complete): Added new
1166 top-level completion method to expose the completion mechanism
1171 top-level completion method to expose the completion mechanism
1167 beyond readline-based environments.
1172 beyond readline-based environments.
1168
1173
1169 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1174 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1170
1175
1171 * tools/ipsvnc (svnversion): fix svnversion capture.
1176 * tools/ipsvnc (svnversion): fix svnversion capture.
1172
1177
1173 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1178 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1174 attribute to self, which was missing. Before, it was set by a
1179 attribute to self, which was missing. Before, it was set by a
1175 routine which in certain cases wasn't being called, so the
1180 routine which in certain cases wasn't being called, so the
1176 instance could end up missing the attribute. This caused a crash.
1181 instance could end up missing the attribute. This caused a crash.
1177 Closes http://www.scipy.net/roundup/ipython/issue40.
1182 Closes http://www.scipy.net/roundup/ipython/issue40.
1178
1183
1179 2005-08-16 Fernando Perez <fperez@colorado.edu>
1184 2005-08-16 Fernando Perez <fperez@colorado.edu>
1180
1185
1181 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1186 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1182 contains non-string attribute. Closes
1187 contains non-string attribute. Closes
1183 http://www.scipy.net/roundup/ipython/issue38.
1188 http://www.scipy.net/roundup/ipython/issue38.
1184
1189
1185 2005-08-14 Fernando Perez <fperez@colorado.edu>
1190 2005-08-14 Fernando Perez <fperez@colorado.edu>
1186
1191
1187 * tools/ipsvnc: Minor improvements, to add changeset info.
1192 * tools/ipsvnc: Minor improvements, to add changeset info.
1188
1193
1189 2005-08-12 Fernando Perez <fperez@colorado.edu>
1194 2005-08-12 Fernando Perez <fperez@colorado.edu>
1190
1195
1191 * IPython/iplib.py (runsource): remove self.code_to_run_src
1196 * IPython/iplib.py (runsource): remove self.code_to_run_src
1192 attribute. I realized this is nothing more than
1197 attribute. I realized this is nothing more than
1193 '\n'.join(self.buffer), and having the same data in two different
1198 '\n'.join(self.buffer), and having the same data in two different
1194 places is just asking for synchronization bugs. This may impact
1199 places is just asking for synchronization bugs. This may impact
1195 people who have custom exception handlers, so I need to warn
1200 people who have custom exception handlers, so I need to warn
1196 ipython-dev about it (F. Mantegazza may use them).
1201 ipython-dev about it (F. Mantegazza may use them).
1197
1202
1198 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1203 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1199
1204
1200 * IPython/genutils.py: fix 2.2 compatibility (generators)
1205 * IPython/genutils.py: fix 2.2 compatibility (generators)
1201
1206
1202 2005-07-18 Fernando Perez <fperez@colorado.edu>
1207 2005-07-18 Fernando Perez <fperez@colorado.edu>
1203
1208
1204 * IPython/genutils.py (get_home_dir): fix to help users with
1209 * IPython/genutils.py (get_home_dir): fix to help users with
1205 invalid $HOME under win32.
1210 invalid $HOME under win32.
1206
1211
1207 2005-07-17 Fernando Perez <fperez@colorado.edu>
1212 2005-07-17 Fernando Perez <fperez@colorado.edu>
1208
1213
1209 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1214 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1210 some old hacks and clean up a bit other routines; code should be
1215 some old hacks and clean up a bit other routines; code should be
1211 simpler and a bit faster.
1216 simpler and a bit faster.
1212
1217
1213 * IPython/iplib.py (interact): removed some last-resort attempts
1218 * IPython/iplib.py (interact): removed some last-resort attempts
1214 to survive broken stdout/stderr. That code was only making it
1219 to survive broken stdout/stderr. That code was only making it
1215 harder to abstract out the i/o (necessary for gui integration),
1220 harder to abstract out the i/o (necessary for gui integration),
1216 and the crashes it could prevent were extremely rare in practice
1221 and the crashes it could prevent were extremely rare in practice
1217 (besides being fully user-induced in a pretty violent manner).
1222 (besides being fully user-induced in a pretty violent manner).
1218
1223
1219 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1224 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1220 Nothing major yet, but the code is simpler to read; this should
1225 Nothing major yet, but the code is simpler to read; this should
1221 make it easier to do more serious modifications in the future.
1226 make it easier to do more serious modifications in the future.
1222
1227
1223 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1228 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1224 which broke in .15 (thanks to a report by Ville).
1229 which broke in .15 (thanks to a report by Ville).
1225
1230
1226 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1231 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1227 be quite correct, I know next to nothing about unicode). This
1232 be quite correct, I know next to nothing about unicode). This
1228 will allow unicode strings to be used in prompts, amongst other
1233 will allow unicode strings to be used in prompts, amongst other
1229 cases. It also will prevent ipython from crashing when unicode
1234 cases. It also will prevent ipython from crashing when unicode
1230 shows up unexpectedly in many places. If ascii encoding fails, we
1235 shows up unexpectedly in many places. If ascii encoding fails, we
1231 assume utf_8. Currently the encoding is not a user-visible
1236 assume utf_8. Currently the encoding is not a user-visible
1232 setting, though it could be made so if there is demand for it.
1237 setting, though it could be made so if there is demand for it.
1233
1238
1234 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1239 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1235
1240
1236 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1241 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1237
1242
1238 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1243 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1239
1244
1240 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1245 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1241 code can work transparently for 2.2/2.3.
1246 code can work transparently for 2.2/2.3.
1242
1247
1243 2005-07-16 Fernando Perez <fperez@colorado.edu>
1248 2005-07-16 Fernando Perez <fperez@colorado.edu>
1244
1249
1245 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1250 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1246 out of the color scheme table used for coloring exception
1251 out of the color scheme table used for coloring exception
1247 tracebacks. This allows user code to add new schemes at runtime.
1252 tracebacks. This allows user code to add new schemes at runtime.
1248 This is a minimally modified version of the patch at
1253 This is a minimally modified version of the patch at
1249 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1254 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1250 for the contribution.
1255 for the contribution.
1251
1256
1252 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1257 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1253 slightly modified version of the patch in
1258 slightly modified version of the patch in
1254 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1259 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1255 to remove the previous try/except solution (which was costlier).
1260 to remove the previous try/except solution (which was costlier).
1256 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1261 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1257
1262
1258 2005-06-08 Fernando Perez <fperez@colorado.edu>
1263 2005-06-08 Fernando Perez <fperez@colorado.edu>
1259
1264
1260 * IPython/iplib.py (write/write_err): Add methods to abstract all
1265 * IPython/iplib.py (write/write_err): Add methods to abstract all
1261 I/O a bit more.
1266 I/O a bit more.
1262
1267
1263 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1268 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1264 warning, reported by Aric Hagberg, fix by JD Hunter.
1269 warning, reported by Aric Hagberg, fix by JD Hunter.
1265
1270
1266 2005-06-02 *** Released version 0.6.15
1271 2005-06-02 *** Released version 0.6.15
1267
1272
1268 2005-06-01 Fernando Perez <fperez@colorado.edu>
1273 2005-06-01 Fernando Perez <fperez@colorado.edu>
1269
1274
1270 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1275 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1271 tab-completion of filenames within open-quoted strings. Note that
1276 tab-completion of filenames within open-quoted strings. Note that
1272 this requires that in ~/.ipython/ipythonrc, users change the
1277 this requires that in ~/.ipython/ipythonrc, users change the
1273 readline delimiters configuration to read:
1278 readline delimiters configuration to read:
1274
1279
1275 readline_remove_delims -/~
1280 readline_remove_delims -/~
1276
1281
1277
1282
1278 2005-05-31 *** Released version 0.6.14
1283 2005-05-31 *** Released version 0.6.14
1279
1284
1280 2005-05-29 Fernando Perez <fperez@colorado.edu>
1285 2005-05-29 Fernando Perez <fperez@colorado.edu>
1281
1286
1282 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1287 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1283 with files not on the filesystem. Reported by Eliyahu Sandler
1288 with files not on the filesystem. Reported by Eliyahu Sandler
1284 <eli@gondolin.net>
1289 <eli@gondolin.net>
1285
1290
1286 2005-05-22 Fernando Perez <fperez@colorado.edu>
1291 2005-05-22 Fernando Perez <fperez@colorado.edu>
1287
1292
1288 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1293 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1289 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1294 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1290
1295
1291 2005-05-19 Fernando Perez <fperez@colorado.edu>
1296 2005-05-19 Fernando Perez <fperez@colorado.edu>
1292
1297
1293 * IPython/iplib.py (safe_execfile): close a file which could be
1298 * IPython/iplib.py (safe_execfile): close a file which could be
1294 left open (causing problems in win32, which locks open files).
1299 left open (causing problems in win32, which locks open files).
1295 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1300 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1296
1301
1297 2005-05-18 Fernando Perez <fperez@colorado.edu>
1302 2005-05-18 Fernando Perez <fperez@colorado.edu>
1298
1303
1299 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1304 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1300 keyword arguments correctly to safe_execfile().
1305 keyword arguments correctly to safe_execfile().
1301
1306
1302 2005-05-13 Fernando Perez <fperez@colorado.edu>
1307 2005-05-13 Fernando Perez <fperez@colorado.edu>
1303
1308
1304 * ipython.1: Added info about Qt to manpage, and threads warning
1309 * ipython.1: Added info about Qt to manpage, and threads warning
1305 to usage page (invoked with --help).
1310 to usage page (invoked with --help).
1306
1311
1307 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1312 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1308 new matcher (it goes at the end of the priority list) to do
1313 new matcher (it goes at the end of the priority list) to do
1309 tab-completion on named function arguments. Submitted by George
1314 tab-completion on named function arguments. Submitted by George
1310 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1315 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1311 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1316 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1312 for more details.
1317 for more details.
1313
1318
1314 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1319 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1315 SystemExit exceptions in the script being run. Thanks to a report
1320 SystemExit exceptions in the script being run. Thanks to a report
1316 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1321 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1317 producing very annoying behavior when running unit tests.
1322 producing very annoying behavior when running unit tests.
1318
1323
1319 2005-05-12 Fernando Perez <fperez@colorado.edu>
1324 2005-05-12 Fernando Perez <fperez@colorado.edu>
1320
1325
1321 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1326 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1322 which I'd broken (again) due to a changed regexp. In the process,
1327 which I'd broken (again) due to a changed regexp. In the process,
1323 added ';' as an escape to auto-quote the whole line without
1328 added ';' as an escape to auto-quote the whole line without
1324 splitting its arguments. Thanks to a report by Jerry McRae
1329 splitting its arguments. Thanks to a report by Jerry McRae
1325 <qrs0xyc02-AT-sneakemail.com>.
1330 <qrs0xyc02-AT-sneakemail.com>.
1326
1331
1327 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1332 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1328 possible crashes caused by a TokenError. Reported by Ed Schofield
1333 possible crashes caused by a TokenError. Reported by Ed Schofield
1329 <schofield-AT-ftw.at>.
1334 <schofield-AT-ftw.at>.
1330
1335
1331 2005-05-06 Fernando Perez <fperez@colorado.edu>
1336 2005-05-06 Fernando Perez <fperez@colorado.edu>
1332
1337
1333 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1338 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1334
1339
1335 2005-04-29 Fernando Perez <fperez@colorado.edu>
1340 2005-04-29 Fernando Perez <fperez@colorado.edu>
1336
1341
1337 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1342 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1338 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1343 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1339 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1344 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1340 which provides support for Qt interactive usage (similar to the
1345 which provides support for Qt interactive usage (similar to the
1341 existing one for WX and GTK). This had been often requested.
1346 existing one for WX and GTK). This had been often requested.
1342
1347
1343 2005-04-14 *** Released version 0.6.13
1348 2005-04-14 *** Released version 0.6.13
1344
1349
1345 2005-04-08 Fernando Perez <fperez@colorado.edu>
1350 2005-04-08 Fernando Perez <fperez@colorado.edu>
1346
1351
1347 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1352 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1348 from _ofind, which gets called on almost every input line. Now,
1353 from _ofind, which gets called on almost every input line. Now,
1349 we only try to get docstrings if they are actually going to be
1354 we only try to get docstrings if they are actually going to be
1350 used (the overhead of fetching unnecessary docstrings can be
1355 used (the overhead of fetching unnecessary docstrings can be
1351 noticeable for certain objects, such as Pyro proxies).
1356 noticeable for certain objects, such as Pyro proxies).
1352
1357
1353 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1358 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1354 for completers. For some reason I had been passing them the state
1359 for completers. For some reason I had been passing them the state
1355 variable, which completers never actually need, and was in
1360 variable, which completers never actually need, and was in
1356 conflict with the rlcompleter API. Custom completers ONLY need to
1361 conflict with the rlcompleter API. Custom completers ONLY need to
1357 take the text parameter.
1362 take the text parameter.
1358
1363
1359 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1364 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1360 work correctly in pysh. I've also moved all the logic which used
1365 work correctly in pysh. I've also moved all the logic which used
1361 to be in pysh.py here, which will prevent problems with future
1366 to be in pysh.py here, which will prevent problems with future
1362 upgrades. However, this time I must warn users to update their
1367 upgrades. However, this time I must warn users to update their
1363 pysh profile to include the line
1368 pysh profile to include the line
1364
1369
1365 import_all IPython.Extensions.InterpreterExec
1370 import_all IPython.Extensions.InterpreterExec
1366
1371
1367 because otherwise things won't work for them. They MUST also
1372 because otherwise things won't work for them. They MUST also
1368 delete pysh.py and the line
1373 delete pysh.py and the line
1369
1374
1370 execfile pysh.py
1375 execfile pysh.py
1371
1376
1372 from their ipythonrc-pysh.
1377 from their ipythonrc-pysh.
1373
1378
1374 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1379 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1375 robust in the face of objects whose dir() returns non-strings
1380 robust in the face of objects whose dir() returns non-strings
1376 (which it shouldn't, but some broken libs like ITK do). Thanks to
1381 (which it shouldn't, but some broken libs like ITK do). Thanks to
1377 a patch by John Hunter (implemented differently, though). Also
1382 a patch by John Hunter (implemented differently, though). Also
1378 minor improvements by using .extend instead of + on lists.
1383 minor improvements by using .extend instead of + on lists.
1379
1384
1380 * pysh.py:
1385 * pysh.py:
1381
1386
1382 2005-04-06 Fernando Perez <fperez@colorado.edu>
1387 2005-04-06 Fernando Perez <fperez@colorado.edu>
1383
1388
1384 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1389 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1385 by default, so that all users benefit from it. Those who don't
1390 by default, so that all users benefit from it. Those who don't
1386 want it can still turn it off.
1391 want it can still turn it off.
1387
1392
1388 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1393 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1389 config file, I'd forgotten about this, so users were getting it
1394 config file, I'd forgotten about this, so users were getting it
1390 off by default.
1395 off by default.
1391
1396
1392 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1397 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1393 consistency. Now magics can be called in multiline statements,
1398 consistency. Now magics can be called in multiline statements,
1394 and python variables can be expanded in magic calls via $var.
1399 and python variables can be expanded in magic calls via $var.
1395 This makes the magic system behave just like aliases or !system
1400 This makes the magic system behave just like aliases or !system
1396 calls.
1401 calls.
1397
1402
1398 2005-03-28 Fernando Perez <fperez@colorado.edu>
1403 2005-03-28 Fernando Perez <fperez@colorado.edu>
1399
1404
1400 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1405 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1401 expensive string additions for building command. Add support for
1406 expensive string additions for building command. Add support for
1402 trailing ';' when autocall is used.
1407 trailing ';' when autocall is used.
1403
1408
1404 2005-03-26 Fernando Perez <fperez@colorado.edu>
1409 2005-03-26 Fernando Perez <fperez@colorado.edu>
1405
1410
1406 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1411 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1407 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1412 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1408 ipython.el robust against prompts with any number of spaces
1413 ipython.el robust against prompts with any number of spaces
1409 (including 0) after the ':' character.
1414 (including 0) after the ':' character.
1410
1415
1411 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1416 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1412 continuation prompt, which misled users to think the line was
1417 continuation prompt, which misled users to think the line was
1413 already indented. Closes debian Bug#300847, reported to me by
1418 already indented. Closes debian Bug#300847, reported to me by
1414 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1419 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1415
1420
1416 2005-03-23 Fernando Perez <fperez@colorado.edu>
1421 2005-03-23 Fernando Perez <fperez@colorado.edu>
1417
1422
1418 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1423 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1419 properly aligned if they have embedded newlines.
1424 properly aligned if they have embedded newlines.
1420
1425
1421 * IPython/iplib.py (runlines): Add a public method to expose
1426 * IPython/iplib.py (runlines): Add a public method to expose
1422 IPython's code execution machinery, so that users can run strings
1427 IPython's code execution machinery, so that users can run strings
1423 as if they had been typed at the prompt interactively.
1428 as if they had been typed at the prompt interactively.
1424 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1429 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1425 methods which can call the system shell, but with python variable
1430 methods which can call the system shell, but with python variable
1426 expansion. The three such methods are: __IPYTHON__.system,
1431 expansion. The three such methods are: __IPYTHON__.system,
1427 .getoutput and .getoutputerror. These need to be documented in a
1432 .getoutput and .getoutputerror. These need to be documented in a
1428 'public API' section (to be written) of the manual.
1433 'public API' section (to be written) of the manual.
1429
1434
1430 2005-03-20 Fernando Perez <fperez@colorado.edu>
1435 2005-03-20 Fernando Perez <fperez@colorado.edu>
1431
1436
1432 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1437 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1433 for custom exception handling. This is quite powerful, and it
1438 for custom exception handling. This is quite powerful, and it
1434 allows for user-installable exception handlers which can trap
1439 allows for user-installable exception handlers which can trap
1435 custom exceptions at runtime and treat them separately from
1440 custom exceptions at runtime and treat them separately from
1436 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1441 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1437 Mantegazza <mantegazza-AT-ill.fr>.
1442 Mantegazza <mantegazza-AT-ill.fr>.
1438 (InteractiveShell.set_custom_completer): public API function to
1443 (InteractiveShell.set_custom_completer): public API function to
1439 add new completers at runtime.
1444 add new completers at runtime.
1440
1445
1441 2005-03-19 Fernando Perez <fperez@colorado.edu>
1446 2005-03-19 Fernando Perez <fperez@colorado.edu>
1442
1447
1443 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1448 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1444 allow objects which provide their docstrings via non-standard
1449 allow objects which provide their docstrings via non-standard
1445 mechanisms (like Pyro proxies) to still be inspected by ipython's
1450 mechanisms (like Pyro proxies) to still be inspected by ipython's
1446 ? system.
1451 ? system.
1447
1452
1448 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1453 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1449 automatic capture system. I tried quite hard to make it work
1454 automatic capture system. I tried quite hard to make it work
1450 reliably, and simply failed. I tried many combinations with the
1455 reliably, and simply failed. I tried many combinations with the
1451 subprocess module, but eventually nothing worked in all needed
1456 subprocess module, but eventually nothing worked in all needed
1452 cases (not blocking stdin for the child, duplicating stdout
1457 cases (not blocking stdin for the child, duplicating stdout
1453 without blocking, etc). The new %sc/%sx still do capture to these
1458 without blocking, etc). The new %sc/%sx still do capture to these
1454 magical list/string objects which make shell use much more
1459 magical list/string objects which make shell use much more
1455 conveninent, so not all is lost.
1460 conveninent, so not all is lost.
1456
1461
1457 XXX - FIX MANUAL for the change above!
1462 XXX - FIX MANUAL for the change above!
1458
1463
1459 (runsource): I copied code.py's runsource() into ipython to modify
1464 (runsource): I copied code.py's runsource() into ipython to modify
1460 it a bit. Now the code object and source to be executed are
1465 it a bit. Now the code object and source to be executed are
1461 stored in ipython. This makes this info accessible to third-party
1466 stored in ipython. This makes this info accessible to third-party
1462 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1467 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1463 Mantegazza <mantegazza-AT-ill.fr>.
1468 Mantegazza <mantegazza-AT-ill.fr>.
1464
1469
1465 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1470 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1466 history-search via readline (like C-p/C-n). I'd wanted this for a
1471 history-search via readline (like C-p/C-n). I'd wanted this for a
1467 long time, but only recently found out how to do it. For users
1472 long time, but only recently found out how to do it. For users
1468 who already have their ipythonrc files made and want this, just
1473 who already have their ipythonrc files made and want this, just
1469 add:
1474 add:
1470
1475
1471 readline_parse_and_bind "\e[A": history-search-backward
1476 readline_parse_and_bind "\e[A": history-search-backward
1472 readline_parse_and_bind "\e[B": history-search-forward
1477 readline_parse_and_bind "\e[B": history-search-forward
1473
1478
1474 2005-03-18 Fernando Perez <fperez@colorado.edu>
1479 2005-03-18 Fernando Perez <fperez@colorado.edu>
1475
1480
1476 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1481 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1477 LSString and SList classes which allow transparent conversions
1482 LSString and SList classes which allow transparent conversions
1478 between list mode and whitespace-separated string.
1483 between list mode and whitespace-separated string.
1479 (magic_r): Fix recursion problem in %r.
1484 (magic_r): Fix recursion problem in %r.
1480
1485
1481 * IPython/genutils.py (LSString): New class to be used for
1486 * IPython/genutils.py (LSString): New class to be used for
1482 automatic storage of the results of all alias/system calls in _o
1487 automatic storage of the results of all alias/system calls in _o
1483 and _e (stdout/err). These provide a .l/.list attribute which
1488 and _e (stdout/err). These provide a .l/.list attribute which
1484 does automatic splitting on newlines. This means that for most
1489 does automatic splitting on newlines. This means that for most
1485 uses, you'll never need to do capturing of output with %sc/%sx
1490 uses, you'll never need to do capturing of output with %sc/%sx
1486 anymore, since ipython keeps this always done for you. Note that
1491 anymore, since ipython keeps this always done for you. Note that
1487 only the LAST results are stored, the _o/e variables are
1492 only the LAST results are stored, the _o/e variables are
1488 overwritten on each call. If you need to save their contents
1493 overwritten on each call. If you need to save their contents
1489 further, simply bind them to any other name.
1494 further, simply bind them to any other name.
1490
1495
1491 2005-03-17 Fernando Perez <fperez@colorado.edu>
1496 2005-03-17 Fernando Perez <fperez@colorado.edu>
1492
1497
1493 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1498 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1494 prompt namespace handling.
1499 prompt namespace handling.
1495
1500
1496 2005-03-16 Fernando Perez <fperez@colorado.edu>
1501 2005-03-16 Fernando Perez <fperez@colorado.edu>
1497
1502
1498 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1503 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1499 classic prompts to be '>>> ' (final space was missing, and it
1504 classic prompts to be '>>> ' (final space was missing, and it
1500 trips the emacs python mode).
1505 trips the emacs python mode).
1501 (BasePrompt.__str__): Added safe support for dynamic prompt
1506 (BasePrompt.__str__): Added safe support for dynamic prompt
1502 strings. Now you can set your prompt string to be '$x', and the
1507 strings. Now you can set your prompt string to be '$x', and the
1503 value of x will be printed from your interactive namespace. The
1508 value of x will be printed from your interactive namespace. The
1504 interpolation syntax includes the full Itpl support, so
1509 interpolation syntax includes the full Itpl support, so
1505 ${foo()+x+bar()} is a valid prompt string now, and the function
1510 ${foo()+x+bar()} is a valid prompt string now, and the function
1506 calls will be made at runtime.
1511 calls will be made at runtime.
1507
1512
1508 2005-03-15 Fernando Perez <fperez@colorado.edu>
1513 2005-03-15 Fernando Perez <fperez@colorado.edu>
1509
1514
1510 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1515 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1511 avoid name clashes in pylab. %hist still works, it just forwards
1516 avoid name clashes in pylab. %hist still works, it just forwards
1512 the call to %history.
1517 the call to %history.
1513
1518
1514 2005-03-02 *** Released version 0.6.12
1519 2005-03-02 *** Released version 0.6.12
1515
1520
1516 2005-03-02 Fernando Perez <fperez@colorado.edu>
1521 2005-03-02 Fernando Perez <fperez@colorado.edu>
1517
1522
1518 * IPython/iplib.py (handle_magic): log magic calls properly as
1523 * IPython/iplib.py (handle_magic): log magic calls properly as
1519 ipmagic() function calls.
1524 ipmagic() function calls.
1520
1525
1521 * IPython/Magic.py (magic_time): Improved %time to support
1526 * IPython/Magic.py (magic_time): Improved %time to support
1522 statements and provide wall-clock as well as CPU time.
1527 statements and provide wall-clock as well as CPU time.
1523
1528
1524 2005-02-27 Fernando Perez <fperez@colorado.edu>
1529 2005-02-27 Fernando Perez <fperez@colorado.edu>
1525
1530
1526 * IPython/hooks.py: New hooks module, to expose user-modifiable
1531 * IPython/hooks.py: New hooks module, to expose user-modifiable
1527 IPython functionality in a clean manner. For now only the editor
1532 IPython functionality in a clean manner. For now only the editor
1528 hook is actually written, and other thigns which I intend to turn
1533 hook is actually written, and other thigns which I intend to turn
1529 into proper hooks aren't yet there. The display and prefilter
1534 into proper hooks aren't yet there. The display and prefilter
1530 stuff, for example, should be hooks. But at least now the
1535 stuff, for example, should be hooks. But at least now the
1531 framework is in place, and the rest can be moved here with more
1536 framework is in place, and the rest can be moved here with more
1532 time later. IPython had had a .hooks variable for a long time for
1537 time later. IPython had had a .hooks variable for a long time for
1533 this purpose, but I'd never actually used it for anything.
1538 this purpose, but I'd never actually used it for anything.
1534
1539
1535 2005-02-26 Fernando Perez <fperez@colorado.edu>
1540 2005-02-26 Fernando Perez <fperez@colorado.edu>
1536
1541
1537 * IPython/ipmaker.py (make_IPython): make the default ipython
1542 * IPython/ipmaker.py (make_IPython): make the default ipython
1538 directory be called _ipython under win32, to follow more the
1543 directory be called _ipython under win32, to follow more the
1539 naming peculiarities of that platform (where buggy software like
1544 naming peculiarities of that platform (where buggy software like
1540 Visual Sourcesafe breaks with .named directories). Reported by
1545 Visual Sourcesafe breaks with .named directories). Reported by
1541 Ville Vainio.
1546 Ville Vainio.
1542
1547
1543 2005-02-23 Fernando Perez <fperez@colorado.edu>
1548 2005-02-23 Fernando Perez <fperez@colorado.edu>
1544
1549
1545 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1550 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1546 auto_aliases for win32 which were causing problems. Users can
1551 auto_aliases for win32 which were causing problems. Users can
1547 define the ones they personally like.
1552 define the ones they personally like.
1548
1553
1549 2005-02-21 Fernando Perez <fperez@colorado.edu>
1554 2005-02-21 Fernando Perez <fperez@colorado.edu>
1550
1555
1551 * IPython/Magic.py (magic_time): new magic to time execution of
1556 * IPython/Magic.py (magic_time): new magic to time execution of
1552 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1557 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1553
1558
1554 2005-02-19 Fernando Perez <fperez@colorado.edu>
1559 2005-02-19 Fernando Perez <fperez@colorado.edu>
1555
1560
1556 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1561 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1557 into keys (for prompts, for example).
1562 into keys (for prompts, for example).
1558
1563
1559 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1564 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1560 prompts in case users want them. This introduces a small behavior
1565 prompts in case users want them. This introduces a small behavior
1561 change: ipython does not automatically add a space to all prompts
1566 change: ipython does not automatically add a space to all prompts
1562 anymore. To get the old prompts with a space, users should add it
1567 anymore. To get the old prompts with a space, users should add it
1563 manually to their ipythonrc file, so for example prompt_in1 should
1568 manually to their ipythonrc file, so for example prompt_in1 should
1564 now read 'In [\#]: ' instead of 'In [\#]:'.
1569 now read 'In [\#]: ' instead of 'In [\#]:'.
1565 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1570 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1566 file) to control left-padding of secondary prompts.
1571 file) to control left-padding of secondary prompts.
1567
1572
1568 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1573 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1569 the profiler can't be imported. Fix for Debian, which removed
1574 the profiler can't be imported. Fix for Debian, which removed
1570 profile.py because of License issues. I applied a slightly
1575 profile.py because of License issues. I applied a slightly
1571 modified version of the original Debian patch at
1576 modified version of the original Debian patch at
1572 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1577 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1573
1578
1574 2005-02-17 Fernando Perez <fperez@colorado.edu>
1579 2005-02-17 Fernando Perez <fperez@colorado.edu>
1575
1580
1576 * IPython/genutils.py (native_line_ends): Fix bug which would
1581 * IPython/genutils.py (native_line_ends): Fix bug which would
1577 cause improper line-ends under win32 b/c I was not opening files
1582 cause improper line-ends under win32 b/c I was not opening files
1578 in binary mode. Bug report and fix thanks to Ville.
1583 in binary mode. Bug report and fix thanks to Ville.
1579
1584
1580 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1585 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1581 trying to catch spurious foo[1] autocalls. My fix actually broke
1586 trying to catch spurious foo[1] autocalls. My fix actually broke
1582 ',/' autoquote/call with explicit escape (bad regexp).
1587 ',/' autoquote/call with explicit escape (bad regexp).
1583
1588
1584 2005-02-15 *** Released version 0.6.11
1589 2005-02-15 *** Released version 0.6.11
1585
1590
1586 2005-02-14 Fernando Perez <fperez@colorado.edu>
1591 2005-02-14 Fernando Perez <fperez@colorado.edu>
1587
1592
1588 * IPython/background_jobs.py: New background job management
1593 * IPython/background_jobs.py: New background job management
1589 subsystem. This is implemented via a new set of classes, and
1594 subsystem. This is implemented via a new set of classes, and
1590 IPython now provides a builtin 'jobs' object for background job
1595 IPython now provides a builtin 'jobs' object for background job
1591 execution. A convenience %bg magic serves as a lightweight
1596 execution. A convenience %bg magic serves as a lightweight
1592 frontend for starting the more common type of calls. This was
1597 frontend for starting the more common type of calls. This was
1593 inspired by discussions with B. Granger and the BackgroundCommand
1598 inspired by discussions with B. Granger and the BackgroundCommand
1594 class described in the book Python Scripting for Computational
1599 class described in the book Python Scripting for Computational
1595 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1600 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1596 (although ultimately no code from this text was used, as IPython's
1601 (although ultimately no code from this text was used, as IPython's
1597 system is a separate implementation).
1602 system is a separate implementation).
1598
1603
1599 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1604 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1600 to control the completion of single/double underscore names
1605 to control the completion of single/double underscore names
1601 separately. As documented in the example ipytonrc file, the
1606 separately. As documented in the example ipytonrc file, the
1602 readline_omit__names variable can now be set to 2, to omit even
1607 readline_omit__names variable can now be set to 2, to omit even
1603 single underscore names. Thanks to a patch by Brian Wong
1608 single underscore names. Thanks to a patch by Brian Wong
1604 <BrianWong-AT-AirgoNetworks.Com>.
1609 <BrianWong-AT-AirgoNetworks.Com>.
1605 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1610 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1606 be autocalled as foo([1]) if foo were callable. A problem for
1611 be autocalled as foo([1]) if foo were callable. A problem for
1607 things which are both callable and implement __getitem__.
1612 things which are both callable and implement __getitem__.
1608 (init_readline): Fix autoindentation for win32. Thanks to a patch
1613 (init_readline): Fix autoindentation for win32. Thanks to a patch
1609 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1614 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1610
1615
1611 2005-02-12 Fernando Perez <fperez@colorado.edu>
1616 2005-02-12 Fernando Perez <fperez@colorado.edu>
1612
1617
1613 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1618 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1614 which I had written long ago to sort out user error messages which
1619 which I had written long ago to sort out user error messages which
1615 may occur during startup. This seemed like a good idea initially,
1620 may occur during startup. This seemed like a good idea initially,
1616 but it has proven a disaster in retrospect. I don't want to
1621 but it has proven a disaster in retrospect. I don't want to
1617 change much code for now, so my fix is to set the internal 'debug'
1622 change much code for now, so my fix is to set the internal 'debug'
1618 flag to true everywhere, whose only job was precisely to control
1623 flag to true everywhere, whose only job was precisely to control
1619 this subsystem. This closes issue 28 (as well as avoiding all
1624 this subsystem. This closes issue 28 (as well as avoiding all
1620 sorts of strange hangups which occur from time to time).
1625 sorts of strange hangups which occur from time to time).
1621
1626
1622 2005-02-07 Fernando Perez <fperez@colorado.edu>
1627 2005-02-07 Fernando Perez <fperez@colorado.edu>
1623
1628
1624 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1629 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1625 previous call produced a syntax error.
1630 previous call produced a syntax error.
1626
1631
1627 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1632 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1628 classes without constructor.
1633 classes without constructor.
1629
1634
1630 2005-02-06 Fernando Perez <fperez@colorado.edu>
1635 2005-02-06 Fernando Perez <fperez@colorado.edu>
1631
1636
1632 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1637 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1633 completions with the results of each matcher, so we return results
1638 completions with the results of each matcher, so we return results
1634 to the user from all namespaces. This breaks with ipython
1639 to the user from all namespaces. This breaks with ipython
1635 tradition, but I think it's a nicer behavior. Now you get all
1640 tradition, but I think it's a nicer behavior. Now you get all
1636 possible completions listed, from all possible namespaces (python,
1641 possible completions listed, from all possible namespaces (python,
1637 filesystem, magics...) After a request by John Hunter
1642 filesystem, magics...) After a request by John Hunter
1638 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1643 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1639
1644
1640 2005-02-05 Fernando Perez <fperez@colorado.edu>
1645 2005-02-05 Fernando Perez <fperez@colorado.edu>
1641
1646
1642 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1647 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1643 the call had quote characters in it (the quotes were stripped).
1648 the call had quote characters in it (the quotes were stripped).
1644
1649
1645 2005-01-31 Fernando Perez <fperez@colorado.edu>
1650 2005-01-31 Fernando Perez <fperez@colorado.edu>
1646
1651
1647 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1652 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1648 Itpl.itpl() to make the code more robust against psyco
1653 Itpl.itpl() to make the code more robust against psyco
1649 optimizations.
1654 optimizations.
1650
1655
1651 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1656 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1652 of causing an exception. Quicker, cleaner.
1657 of causing an exception. Quicker, cleaner.
1653
1658
1654 2005-01-28 Fernando Perez <fperez@colorado.edu>
1659 2005-01-28 Fernando Perez <fperez@colorado.edu>
1655
1660
1656 * scripts/ipython_win_post_install.py (install): hardcode
1661 * scripts/ipython_win_post_install.py (install): hardcode
1657 sys.prefix+'python.exe' as the executable path. It turns out that
1662 sys.prefix+'python.exe' as the executable path. It turns out that
1658 during the post-installation run, sys.executable resolves to the
1663 during the post-installation run, sys.executable resolves to the
1659 name of the binary installer! I should report this as a distutils
1664 name of the binary installer! I should report this as a distutils
1660 bug, I think. I updated the .10 release with this tiny fix, to
1665 bug, I think. I updated the .10 release with this tiny fix, to
1661 avoid annoying the lists further.
1666 avoid annoying the lists further.
1662
1667
1663 2005-01-27 *** Released version 0.6.10
1668 2005-01-27 *** Released version 0.6.10
1664
1669
1665 2005-01-27 Fernando Perez <fperez@colorado.edu>
1670 2005-01-27 Fernando Perez <fperez@colorado.edu>
1666
1671
1667 * IPython/numutils.py (norm): Added 'inf' as optional name for
1672 * IPython/numutils.py (norm): Added 'inf' as optional name for
1668 L-infinity norm, included references to mathworld.com for vector
1673 L-infinity norm, included references to mathworld.com for vector
1669 norm definitions.
1674 norm definitions.
1670 (amin/amax): added amin/amax for array min/max. Similar to what
1675 (amin/amax): added amin/amax for array min/max. Similar to what
1671 pylab ships with after the recent reorganization of names.
1676 pylab ships with after the recent reorganization of names.
1672 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1677 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1673
1678
1674 * ipython.el: committed Alex's recent fixes and improvements.
1679 * ipython.el: committed Alex's recent fixes and improvements.
1675 Tested with python-mode from CVS, and it looks excellent. Since
1680 Tested with python-mode from CVS, and it looks excellent. Since
1676 python-mode hasn't released anything in a while, I'm temporarily
1681 python-mode hasn't released anything in a while, I'm temporarily
1677 putting a copy of today's CVS (v 4.70) of python-mode in:
1682 putting a copy of today's CVS (v 4.70) of python-mode in:
1678 http://ipython.scipy.org/tmp/python-mode.el
1683 http://ipython.scipy.org/tmp/python-mode.el
1679
1684
1680 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1685 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1681 sys.executable for the executable name, instead of assuming it's
1686 sys.executable for the executable name, instead of assuming it's
1682 called 'python.exe' (the post-installer would have produced broken
1687 called 'python.exe' (the post-installer would have produced broken
1683 setups on systems with a differently named python binary).
1688 setups on systems with a differently named python binary).
1684
1689
1685 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1690 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1686 references to os.linesep, to make the code more
1691 references to os.linesep, to make the code more
1687 platform-independent. This is also part of the win32 coloring
1692 platform-independent. This is also part of the win32 coloring
1688 fixes.
1693 fixes.
1689
1694
1690 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1695 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1691 lines, which actually cause coloring bugs because the length of
1696 lines, which actually cause coloring bugs because the length of
1692 the line is very difficult to correctly compute with embedded
1697 the line is very difficult to correctly compute with embedded
1693 escapes. This was the source of all the coloring problems under
1698 escapes. This was the source of all the coloring problems under
1694 Win32. I think that _finally_, Win32 users have a properly
1699 Win32. I think that _finally_, Win32 users have a properly
1695 working ipython in all respects. This would never have happened
1700 working ipython in all respects. This would never have happened
1696 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1701 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1697
1702
1698 2005-01-26 *** Released version 0.6.9
1703 2005-01-26 *** Released version 0.6.9
1699
1704
1700 2005-01-25 Fernando Perez <fperez@colorado.edu>
1705 2005-01-25 Fernando Perez <fperez@colorado.edu>
1701
1706
1702 * setup.py: finally, we have a true Windows installer, thanks to
1707 * setup.py: finally, we have a true Windows installer, thanks to
1703 the excellent work of Viktor Ransmayr
1708 the excellent work of Viktor Ransmayr
1704 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1709 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1705 Windows users. The setup routine is quite a bit cleaner thanks to
1710 Windows users. The setup routine is quite a bit cleaner thanks to
1706 this, and the post-install script uses the proper functions to
1711 this, and the post-install script uses the proper functions to
1707 allow a clean de-installation using the standard Windows Control
1712 allow a clean de-installation using the standard Windows Control
1708 Panel.
1713 Panel.
1709
1714
1710 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1715 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1711 environment variable under all OSes (including win32) if
1716 environment variable under all OSes (including win32) if
1712 available. This will give consistency to win32 users who have set
1717 available. This will give consistency to win32 users who have set
1713 this variable for any reason. If os.environ['HOME'] fails, the
1718 this variable for any reason. If os.environ['HOME'] fails, the
1714 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1719 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1715
1720
1716 2005-01-24 Fernando Perez <fperez@colorado.edu>
1721 2005-01-24 Fernando Perez <fperez@colorado.edu>
1717
1722
1718 * IPython/numutils.py (empty_like): add empty_like(), similar to
1723 * IPython/numutils.py (empty_like): add empty_like(), similar to
1719 zeros_like() but taking advantage of the new empty() Numeric routine.
1724 zeros_like() but taking advantage of the new empty() Numeric routine.
1720
1725
1721 2005-01-23 *** Released version 0.6.8
1726 2005-01-23 *** Released version 0.6.8
1722
1727
1723 2005-01-22 Fernando Perez <fperez@colorado.edu>
1728 2005-01-22 Fernando Perez <fperez@colorado.edu>
1724
1729
1725 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1730 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1726 automatic show() calls. After discussing things with JDH, it
1731 automatic show() calls. After discussing things with JDH, it
1727 turns out there are too many corner cases where this can go wrong.
1732 turns out there are too many corner cases where this can go wrong.
1728 It's best not to try to be 'too smart', and simply have ipython
1733 It's best not to try to be 'too smart', and simply have ipython
1729 reproduce as much as possible the default behavior of a normal
1734 reproduce as much as possible the default behavior of a normal
1730 python shell.
1735 python shell.
1731
1736
1732 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1737 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1733 line-splitting regexp and _prefilter() to avoid calling getattr()
1738 line-splitting regexp and _prefilter() to avoid calling getattr()
1734 on assignments. This closes
1739 on assignments. This closes
1735 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1740 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
1736 readline uses getattr(), so a simple <TAB> keypress is still
1741 readline uses getattr(), so a simple <TAB> keypress is still
1737 enough to trigger getattr() calls on an object.
1742 enough to trigger getattr() calls on an object.
1738
1743
1739 2005-01-21 Fernando Perez <fperez@colorado.edu>
1744 2005-01-21 Fernando Perez <fperez@colorado.edu>
1740
1745
1741 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1746 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
1742 docstring under pylab so it doesn't mask the original.
1747 docstring under pylab so it doesn't mask the original.
1743
1748
1744 2005-01-21 *** Released version 0.6.7
1749 2005-01-21 *** Released version 0.6.7
1745
1750
1746 2005-01-21 Fernando Perez <fperez@colorado.edu>
1751 2005-01-21 Fernando Perez <fperez@colorado.edu>
1747
1752
1748 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1753 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
1749 signal handling for win32 users in multithreaded mode.
1754 signal handling for win32 users in multithreaded mode.
1750
1755
1751 2005-01-17 Fernando Perez <fperez@colorado.edu>
1756 2005-01-17 Fernando Perez <fperez@colorado.edu>
1752
1757
1753 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1758 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1754 instances with no __init__. After a crash report by Norbert Nemec
1759 instances with no __init__. After a crash report by Norbert Nemec
1755 <Norbert-AT-nemec-online.de>.
1760 <Norbert-AT-nemec-online.de>.
1756
1761
1757 2005-01-14 Fernando Perez <fperez@colorado.edu>
1762 2005-01-14 Fernando Perez <fperez@colorado.edu>
1758
1763
1759 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1764 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
1760 names for verbose exceptions, when multiple dotted names and the
1765 names for verbose exceptions, when multiple dotted names and the
1761 'parent' object were present on the same line.
1766 'parent' object were present on the same line.
1762
1767
1763 2005-01-11 Fernando Perez <fperez@colorado.edu>
1768 2005-01-11 Fernando Perez <fperez@colorado.edu>
1764
1769
1765 * IPython/genutils.py (flag_calls): new utility to trap and flag
1770 * IPython/genutils.py (flag_calls): new utility to trap and flag
1766 calls in functions. I need it to clean up matplotlib support.
1771 calls in functions. I need it to clean up matplotlib support.
1767 Also removed some deprecated code in genutils.
1772 Also removed some deprecated code in genutils.
1768
1773
1769 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1774 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
1770 that matplotlib scripts called with %run, which don't call show()
1775 that matplotlib scripts called with %run, which don't call show()
1771 themselves, still have their plotting windows open.
1776 themselves, still have their plotting windows open.
1772
1777
1773 2005-01-05 Fernando Perez <fperez@colorado.edu>
1778 2005-01-05 Fernando Perez <fperez@colorado.edu>
1774
1779
1775 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1780 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
1776 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1781 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
1777
1782
1778 2004-12-19 Fernando Perez <fperez@colorado.edu>
1783 2004-12-19 Fernando Perez <fperez@colorado.edu>
1779
1784
1780 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1785 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
1781 parent_runcode, which was an eyesore. The same result can be
1786 parent_runcode, which was an eyesore. The same result can be
1782 obtained with Python's regular superclass mechanisms.
1787 obtained with Python's regular superclass mechanisms.
1783
1788
1784 2004-12-17 Fernando Perez <fperez@colorado.edu>
1789 2004-12-17 Fernando Perez <fperez@colorado.edu>
1785
1790
1786 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1791 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
1787 reported by Prabhu.
1792 reported by Prabhu.
1788 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1793 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
1789 sys.stderr) instead of explicitly calling sys.stderr. This helps
1794 sys.stderr) instead of explicitly calling sys.stderr. This helps
1790 maintain our I/O abstractions clean, for future GUI embeddings.
1795 maintain our I/O abstractions clean, for future GUI embeddings.
1791
1796
1792 * IPython/genutils.py (info): added new utility for sys.stderr
1797 * IPython/genutils.py (info): added new utility for sys.stderr
1793 unified info message handling (thin wrapper around warn()).
1798 unified info message handling (thin wrapper around warn()).
1794
1799
1795 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1800 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
1796 composite (dotted) names on verbose exceptions.
1801 composite (dotted) names on verbose exceptions.
1797 (VerboseTB.nullrepr): harden against another kind of errors which
1802 (VerboseTB.nullrepr): harden against another kind of errors which
1798 Python's inspect module can trigger, and which were crashing
1803 Python's inspect module can trigger, and which were crashing
1799 IPython. Thanks to a report by Marco Lombardi
1804 IPython. Thanks to a report by Marco Lombardi
1800 <mlombard-AT-ma010192.hq.eso.org>.
1805 <mlombard-AT-ma010192.hq.eso.org>.
1801
1806
1802 2004-12-13 *** Released version 0.6.6
1807 2004-12-13 *** Released version 0.6.6
1803
1808
1804 2004-12-12 Fernando Perez <fperez@colorado.edu>
1809 2004-12-12 Fernando Perez <fperez@colorado.edu>
1805
1810
1806 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1811 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
1807 generated by pygtk upon initialization if it was built without
1812 generated by pygtk upon initialization if it was built without
1808 threads (for matplotlib users). After a crash reported by
1813 threads (for matplotlib users). After a crash reported by
1809 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1814 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
1810
1815
1811 * IPython/ipmaker.py (make_IPython): fix small bug in the
1816 * IPython/ipmaker.py (make_IPython): fix small bug in the
1812 import_some parameter for multiple imports.
1817 import_some parameter for multiple imports.
1813
1818
1814 * IPython/iplib.py (ipmagic): simplified the interface of
1819 * IPython/iplib.py (ipmagic): simplified the interface of
1815 ipmagic() to take a single string argument, just as it would be
1820 ipmagic() to take a single string argument, just as it would be
1816 typed at the IPython cmd line.
1821 typed at the IPython cmd line.
1817 (ipalias): Added new ipalias() with an interface identical to
1822 (ipalias): Added new ipalias() with an interface identical to
1818 ipmagic(). This completes exposing a pure python interface to the
1823 ipmagic(). This completes exposing a pure python interface to the
1819 alias and magic system, which can be used in loops or more complex
1824 alias and magic system, which can be used in loops or more complex
1820 code where IPython's automatic line mangling is not active.
1825 code where IPython's automatic line mangling is not active.
1821
1826
1822 * IPython/genutils.py (timing): changed interface of timing to
1827 * IPython/genutils.py (timing): changed interface of timing to
1823 simply run code once, which is the most common case. timings()
1828 simply run code once, which is the most common case. timings()
1824 remains unchanged, for the cases where you want multiple runs.
1829 remains unchanged, for the cases where you want multiple runs.
1825
1830
1826 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1831 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
1827 bug where Python2.2 crashes with exec'ing code which does not end
1832 bug where Python2.2 crashes with exec'ing code which does not end
1828 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1833 in a single newline. Python 2.3 is OK, so I hadn't noticed this
1829 before.
1834 before.
1830
1835
1831 2004-12-10 Fernando Perez <fperez@colorado.edu>
1836 2004-12-10 Fernando Perez <fperez@colorado.edu>
1832
1837
1833 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1838 * IPython/Magic.py (Magic.magic_prun): changed name of option from
1834 -t to -T, to accomodate the new -t flag in %run (the %run and
1839 -t to -T, to accomodate the new -t flag in %run (the %run and
1835 %prun options are kind of intermixed, and it's not easy to change
1840 %prun options are kind of intermixed, and it's not easy to change
1836 this with the limitations of python's getopt).
1841 this with the limitations of python's getopt).
1837
1842
1838 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1843 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
1839 the execution of scripts. It's not as fine-tuned as timeit.py,
1844 the execution of scripts. It's not as fine-tuned as timeit.py,
1840 but it works from inside ipython (and under 2.2, which lacks
1845 but it works from inside ipython (and under 2.2, which lacks
1841 timeit.py). Optionally a number of runs > 1 can be given for
1846 timeit.py). Optionally a number of runs > 1 can be given for
1842 timing very short-running code.
1847 timing very short-running code.
1843
1848
1844 * IPython/genutils.py (uniq_stable): new routine which returns a
1849 * IPython/genutils.py (uniq_stable): new routine which returns a
1845 list of unique elements in any iterable, but in stable order of
1850 list of unique elements in any iterable, but in stable order of
1846 appearance. I needed this for the ultraTB fixes, and it's a handy
1851 appearance. I needed this for the ultraTB fixes, and it's a handy
1847 utility.
1852 utility.
1848
1853
1849 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1854 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
1850 dotted names in Verbose exceptions. This had been broken since
1855 dotted names in Verbose exceptions. This had been broken since
1851 the very start, now x.y will properly be printed in a Verbose
1856 the very start, now x.y will properly be printed in a Verbose
1852 traceback, instead of x being shown and y appearing always as an
1857 traceback, instead of x being shown and y appearing always as an
1853 'undefined global'. Getting this to work was a bit tricky,
1858 'undefined global'. Getting this to work was a bit tricky,
1854 because by default python tokenizers are stateless. Saved by
1859 because by default python tokenizers are stateless. Saved by
1855 python's ability to easily add a bit of state to an arbitrary
1860 python's ability to easily add a bit of state to an arbitrary
1856 function (without needing to build a full-blown callable object).
1861 function (without needing to build a full-blown callable object).
1857
1862
1858 Also big cleanup of this code, which had horrendous runtime
1863 Also big cleanup of this code, which had horrendous runtime
1859 lookups of zillions of attributes for colorization. Moved all
1864 lookups of zillions of attributes for colorization. Moved all
1860 this code into a few templates, which make it cleaner and quicker.
1865 this code into a few templates, which make it cleaner and quicker.
1861
1866
1862 Printout quality was also improved for Verbose exceptions: one
1867 Printout quality was also improved for Verbose exceptions: one
1863 variable per line, and memory addresses are printed (this can be
1868 variable per line, and memory addresses are printed (this can be
1864 quite handy in nasty debugging situations, which is what Verbose
1869 quite handy in nasty debugging situations, which is what Verbose
1865 is for).
1870 is for).
1866
1871
1867 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1872 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
1868 the command line as scripts to be loaded by embedded instances.
1873 the command line as scripts to be loaded by embedded instances.
1869 Doing so has the potential for an infinite recursion if there are
1874 Doing so has the potential for an infinite recursion if there are
1870 exceptions thrown in the process. This fixes a strange crash
1875 exceptions thrown in the process. This fixes a strange crash
1871 reported by Philippe MULLER <muller-AT-irit.fr>.
1876 reported by Philippe MULLER <muller-AT-irit.fr>.
1872
1877
1873 2004-12-09 Fernando Perez <fperez@colorado.edu>
1878 2004-12-09 Fernando Perez <fperez@colorado.edu>
1874
1879
1875 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1880 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
1876 to reflect new names in matplotlib, which now expose the
1881 to reflect new names in matplotlib, which now expose the
1877 matlab-compatible interface via a pylab module instead of the
1882 matlab-compatible interface via a pylab module instead of the
1878 'matlab' name. The new code is backwards compatible, so users of
1883 'matlab' name. The new code is backwards compatible, so users of
1879 all matplotlib versions are OK. Patch by J. Hunter.
1884 all matplotlib versions are OK. Patch by J. Hunter.
1880
1885
1881 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1886 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
1882 of __init__ docstrings for instances (class docstrings are already
1887 of __init__ docstrings for instances (class docstrings are already
1883 automatically printed). Instances with customized docstrings
1888 automatically printed). Instances with customized docstrings
1884 (indep. of the class) are also recognized and all 3 separate
1889 (indep. of the class) are also recognized and all 3 separate
1885 docstrings are printed (instance, class, constructor). After some
1890 docstrings are printed (instance, class, constructor). After some
1886 comments/suggestions by J. Hunter.
1891 comments/suggestions by J. Hunter.
1887
1892
1888 2004-12-05 Fernando Perez <fperez@colorado.edu>
1893 2004-12-05 Fernando Perez <fperez@colorado.edu>
1889
1894
1890 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1895 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
1891 warnings when tab-completion fails and triggers an exception.
1896 warnings when tab-completion fails and triggers an exception.
1892
1897
1893 2004-12-03 Fernando Perez <fperez@colorado.edu>
1898 2004-12-03 Fernando Perez <fperez@colorado.edu>
1894
1899
1895 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1900 * IPython/Magic.py (magic_prun): Fix bug where an exception would
1896 be triggered when using 'run -p'. An incorrect option flag was
1901 be triggered when using 'run -p'. An incorrect option flag was
1897 being set ('d' instead of 'D').
1902 being set ('d' instead of 'D').
1898 (manpage): fix missing escaped \- sign.
1903 (manpage): fix missing escaped \- sign.
1899
1904
1900 2004-11-30 *** Released version 0.6.5
1905 2004-11-30 *** Released version 0.6.5
1901
1906
1902 2004-11-30 Fernando Perez <fperez@colorado.edu>
1907 2004-11-30 Fernando Perez <fperez@colorado.edu>
1903
1908
1904 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1909 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
1905 setting with -d option.
1910 setting with -d option.
1906
1911
1907 * setup.py (docfiles): Fix problem where the doc glob I was using
1912 * setup.py (docfiles): Fix problem where the doc glob I was using
1908 was COMPLETELY BROKEN. It was giving the right files by pure
1913 was COMPLETELY BROKEN. It was giving the right files by pure
1909 accident, but failed once I tried to include ipython.el. Note:
1914 accident, but failed once I tried to include ipython.el. Note:
1910 glob() does NOT allow you to do exclusion on multiple endings!
1915 glob() does NOT allow you to do exclusion on multiple endings!
1911
1916
1912 2004-11-29 Fernando Perez <fperez@colorado.edu>
1917 2004-11-29 Fernando Perez <fperez@colorado.edu>
1913
1918
1914 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1919 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
1915 the manpage as the source. Better formatting & consistency.
1920 the manpage as the source. Better formatting & consistency.
1916
1921
1917 * IPython/Magic.py (magic_run): Added new -d option, to run
1922 * IPython/Magic.py (magic_run): Added new -d option, to run
1918 scripts under the control of the python pdb debugger. Note that
1923 scripts under the control of the python pdb debugger. Note that
1919 this required changing the %prun option -d to -D, to avoid a clash
1924 this required changing the %prun option -d to -D, to avoid a clash
1920 (since %run must pass options to %prun, and getopt is too dumb to
1925 (since %run must pass options to %prun, and getopt is too dumb to
1921 handle options with string values with embedded spaces). Thanks
1926 handle options with string values with embedded spaces). Thanks
1922 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1927 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
1923 (magic_who_ls): added type matching to %who and %whos, so that one
1928 (magic_who_ls): added type matching to %who and %whos, so that one
1924 can filter their output to only include variables of certain
1929 can filter their output to only include variables of certain
1925 types. Another suggestion by Matthew.
1930 types. Another suggestion by Matthew.
1926 (magic_whos): Added memory summaries in kb and Mb for arrays.
1931 (magic_whos): Added memory summaries in kb and Mb for arrays.
1927 (magic_who): Improve formatting (break lines every 9 vars).
1932 (magic_who): Improve formatting (break lines every 9 vars).
1928
1933
1929 2004-11-28 Fernando Perez <fperez@colorado.edu>
1934 2004-11-28 Fernando Perez <fperez@colorado.edu>
1930
1935
1931 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1936 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
1932 cache when empty lines were present.
1937 cache when empty lines were present.
1933
1938
1934 2004-11-24 Fernando Perez <fperez@colorado.edu>
1939 2004-11-24 Fernando Perez <fperez@colorado.edu>
1935
1940
1936 * IPython/usage.py (__doc__): document the re-activated threading
1941 * IPython/usage.py (__doc__): document the re-activated threading
1937 options for WX and GTK.
1942 options for WX and GTK.
1938
1943
1939 2004-11-23 Fernando Perez <fperez@colorado.edu>
1944 2004-11-23 Fernando Perez <fperez@colorado.edu>
1940
1945
1941 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1946 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
1942 the -wthread and -gthread options, along with a new -tk one to try
1947 the -wthread and -gthread options, along with a new -tk one to try
1943 and coordinate Tk threading with wx/gtk. The tk support is very
1948 and coordinate Tk threading with wx/gtk. The tk support is very
1944 platform dependent, since it seems to require Tcl and Tk to be
1949 platform dependent, since it seems to require Tcl and Tk to be
1945 built with threads (Fedora1/2 appears NOT to have it, but in
1950 built with threads (Fedora1/2 appears NOT to have it, but in
1946 Prabhu's Debian boxes it works OK). But even with some Tk
1951 Prabhu's Debian boxes it works OK). But even with some Tk
1947 limitations, this is a great improvement.
1952 limitations, this is a great improvement.
1948
1953
1949 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1954 * IPython/Prompts.py (prompt_specials_color): Added \t for time
1950 info in user prompts. Patch by Prabhu.
1955 info in user prompts. Patch by Prabhu.
1951
1956
1952 2004-11-18 Fernando Perez <fperez@colorado.edu>
1957 2004-11-18 Fernando Perez <fperez@colorado.edu>
1953
1958
1954 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1959 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
1955 EOFErrors and bail, to avoid infinite loops if a non-terminating
1960 EOFErrors and bail, to avoid infinite loops if a non-terminating
1956 file is fed into ipython. Patch submitted in issue 19 by user,
1961 file is fed into ipython. Patch submitted in issue 19 by user,
1957 many thanks.
1962 many thanks.
1958
1963
1959 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1964 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
1960 autoquote/parens in continuation prompts, which can cause lots of
1965 autoquote/parens in continuation prompts, which can cause lots of
1961 problems. Closes roundup issue 20.
1966 problems. Closes roundup issue 20.
1962
1967
1963 2004-11-17 Fernando Perez <fperez@colorado.edu>
1968 2004-11-17 Fernando Perez <fperez@colorado.edu>
1964
1969
1965 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1970 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
1966 reported as debian bug #280505. I'm not sure my local changelog
1971 reported as debian bug #280505. I'm not sure my local changelog
1967 entry has the proper debian format (Jack?).
1972 entry has the proper debian format (Jack?).
1968
1973
1969 2004-11-08 *** Released version 0.6.4
1974 2004-11-08 *** Released version 0.6.4
1970
1975
1971 2004-11-08 Fernando Perez <fperez@colorado.edu>
1976 2004-11-08 Fernando Perez <fperez@colorado.edu>
1972
1977
1973 * IPython/iplib.py (init_readline): Fix exit message for Windows
1978 * IPython/iplib.py (init_readline): Fix exit message for Windows
1974 when readline is active. Thanks to a report by Eric Jones
1979 when readline is active. Thanks to a report by Eric Jones
1975 <eric-AT-enthought.com>.
1980 <eric-AT-enthought.com>.
1976
1981
1977 2004-11-07 Fernando Perez <fperez@colorado.edu>
1982 2004-11-07 Fernando Perez <fperez@colorado.edu>
1978
1983
1979 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1984 * IPython/genutils.py (page): Add a trap for OSError exceptions,
1980 sometimes seen by win2k/cygwin users.
1985 sometimes seen by win2k/cygwin users.
1981
1986
1982 2004-11-06 Fernando Perez <fperez@colorado.edu>
1987 2004-11-06 Fernando Perez <fperez@colorado.edu>
1983
1988
1984 * IPython/iplib.py (interact): Change the handling of %Exit from
1989 * IPython/iplib.py (interact): Change the handling of %Exit from
1985 trying to propagate a SystemExit to an internal ipython flag.
1990 trying to propagate a SystemExit to an internal ipython flag.
1986 This is less elegant than using Python's exception mechanism, but
1991 This is less elegant than using Python's exception mechanism, but
1987 I can't get that to work reliably with threads, so under -pylab
1992 I can't get that to work reliably with threads, so under -pylab
1988 %Exit was hanging IPython. Cross-thread exception handling is
1993 %Exit was hanging IPython. Cross-thread exception handling is
1989 really a bitch. Thaks to a bug report by Stephen Walton
1994 really a bitch. Thaks to a bug report by Stephen Walton
1990 <stephen.walton-AT-csun.edu>.
1995 <stephen.walton-AT-csun.edu>.
1991
1996
1992 2004-11-04 Fernando Perez <fperez@colorado.edu>
1997 2004-11-04 Fernando Perez <fperez@colorado.edu>
1993
1998
1994 * IPython/iplib.py (raw_input_original): store a pointer to the
1999 * IPython/iplib.py (raw_input_original): store a pointer to the
1995 true raw_input to harden against code which can modify it
2000 true raw_input to harden against code which can modify it
1996 (wx.py.PyShell does this and would otherwise crash ipython).
2001 (wx.py.PyShell does this and would otherwise crash ipython).
1997 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2002 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
1998
2003
1999 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2004 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2000 Ctrl-C problem, which does not mess up the input line.
2005 Ctrl-C problem, which does not mess up the input line.
2001
2006
2002 2004-11-03 Fernando Perez <fperez@colorado.edu>
2007 2004-11-03 Fernando Perez <fperez@colorado.edu>
2003
2008
2004 * IPython/Release.py: Changed licensing to BSD, in all files.
2009 * IPython/Release.py: Changed licensing to BSD, in all files.
2005 (name): lowercase name for tarball/RPM release.
2010 (name): lowercase name for tarball/RPM release.
2006
2011
2007 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2012 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2008 use throughout ipython.
2013 use throughout ipython.
2009
2014
2010 * IPython/Magic.py (Magic._ofind): Switch to using the new
2015 * IPython/Magic.py (Magic._ofind): Switch to using the new
2011 OInspect.getdoc() function.
2016 OInspect.getdoc() function.
2012
2017
2013 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2018 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2014 of the line currently being canceled via Ctrl-C. It's extremely
2019 of the line currently being canceled via Ctrl-C. It's extremely
2015 ugly, but I don't know how to do it better (the problem is one of
2020 ugly, but I don't know how to do it better (the problem is one of
2016 handling cross-thread exceptions).
2021 handling cross-thread exceptions).
2017
2022
2018 2004-10-28 Fernando Perez <fperez@colorado.edu>
2023 2004-10-28 Fernando Perez <fperez@colorado.edu>
2019
2024
2020 * IPython/Shell.py (signal_handler): add signal handlers to trap
2025 * IPython/Shell.py (signal_handler): add signal handlers to trap
2021 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2026 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2022 report by Francesc Alted.
2027 report by Francesc Alted.
2023
2028
2024 2004-10-21 Fernando Perez <fperez@colorado.edu>
2029 2004-10-21 Fernando Perez <fperez@colorado.edu>
2025
2030
2026 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2031 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2027 to % for pysh syntax extensions.
2032 to % for pysh syntax extensions.
2028
2033
2029 2004-10-09 Fernando Perez <fperez@colorado.edu>
2034 2004-10-09 Fernando Perez <fperez@colorado.edu>
2030
2035
2031 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2036 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2032 arrays to print a more useful summary, without calling str(arr).
2037 arrays to print a more useful summary, without calling str(arr).
2033 This avoids the problem of extremely lengthy computations which
2038 This avoids the problem of extremely lengthy computations which
2034 occur if arr is large, and appear to the user as a system lockup
2039 occur if arr is large, and appear to the user as a system lockup
2035 with 100% cpu activity. After a suggestion by Kristian Sandberg
2040 with 100% cpu activity. After a suggestion by Kristian Sandberg
2036 <Kristian.Sandberg@colorado.edu>.
2041 <Kristian.Sandberg@colorado.edu>.
2037 (Magic.__init__): fix bug in global magic escapes not being
2042 (Magic.__init__): fix bug in global magic escapes not being
2038 correctly set.
2043 correctly set.
2039
2044
2040 2004-10-08 Fernando Perez <fperez@colorado.edu>
2045 2004-10-08 Fernando Perez <fperez@colorado.edu>
2041
2046
2042 * IPython/Magic.py (__license__): change to absolute imports of
2047 * IPython/Magic.py (__license__): change to absolute imports of
2043 ipython's own internal packages, to start adapting to the absolute
2048 ipython's own internal packages, to start adapting to the absolute
2044 import requirement of PEP-328.
2049 import requirement of PEP-328.
2045
2050
2046 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2051 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2047 files, and standardize author/license marks through the Release
2052 files, and standardize author/license marks through the Release
2048 module instead of having per/file stuff (except for files with
2053 module instead of having per/file stuff (except for files with
2049 particular licenses, like the MIT/PSF-licensed codes).
2054 particular licenses, like the MIT/PSF-licensed codes).
2050
2055
2051 * IPython/Debugger.py: remove dead code for python 2.1
2056 * IPython/Debugger.py: remove dead code for python 2.1
2052
2057
2053 2004-10-04 Fernando Perez <fperez@colorado.edu>
2058 2004-10-04 Fernando Perez <fperez@colorado.edu>
2054
2059
2055 * IPython/iplib.py (ipmagic): New function for accessing magics
2060 * IPython/iplib.py (ipmagic): New function for accessing magics
2056 via a normal python function call.
2061 via a normal python function call.
2057
2062
2058 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2063 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2059 from '@' to '%', to accomodate the new @decorator syntax of python
2064 from '@' to '%', to accomodate the new @decorator syntax of python
2060 2.4.
2065 2.4.
2061
2066
2062 2004-09-29 Fernando Perez <fperez@colorado.edu>
2067 2004-09-29 Fernando Perez <fperez@colorado.edu>
2063
2068
2064 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2069 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2065 matplotlib.use to prevent running scripts which try to switch
2070 matplotlib.use to prevent running scripts which try to switch
2066 interactive backends from within ipython. This will just crash
2071 interactive backends from within ipython. This will just crash
2067 the python interpreter, so we can't allow it (but a detailed error
2072 the python interpreter, so we can't allow it (but a detailed error
2068 is given to the user).
2073 is given to the user).
2069
2074
2070 2004-09-28 Fernando Perez <fperez@colorado.edu>
2075 2004-09-28 Fernando Perez <fperez@colorado.edu>
2071
2076
2072 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2077 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2073 matplotlib-related fixes so that using @run with non-matplotlib
2078 matplotlib-related fixes so that using @run with non-matplotlib
2074 scripts doesn't pop up spurious plot windows. This requires
2079 scripts doesn't pop up spurious plot windows. This requires
2075 matplotlib >= 0.63, where I had to make some changes as well.
2080 matplotlib >= 0.63, where I had to make some changes as well.
2076
2081
2077 * IPython/ipmaker.py (make_IPython): update version requirement to
2082 * IPython/ipmaker.py (make_IPython): update version requirement to
2078 python 2.2.
2083 python 2.2.
2079
2084
2080 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2085 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2081 banner arg for embedded customization.
2086 banner arg for embedded customization.
2082
2087
2083 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2088 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2084 explicit uses of __IP as the IPython's instance name. Now things
2089 explicit uses of __IP as the IPython's instance name. Now things
2085 are properly handled via the shell.name value. The actual code
2090 are properly handled via the shell.name value. The actual code
2086 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2091 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2087 is much better than before. I'll clean things completely when the
2092 is much better than before. I'll clean things completely when the
2088 magic stuff gets a real overhaul.
2093 magic stuff gets a real overhaul.
2089
2094
2090 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2095 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2091 minor changes to debian dir.
2096 minor changes to debian dir.
2092
2097
2093 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2098 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2094 pointer to the shell itself in the interactive namespace even when
2099 pointer to the shell itself in the interactive namespace even when
2095 a user-supplied dict is provided. This is needed for embedding
2100 a user-supplied dict is provided. This is needed for embedding
2096 purposes (found by tests with Michel Sanner).
2101 purposes (found by tests with Michel Sanner).
2097
2102
2098 2004-09-27 Fernando Perez <fperez@colorado.edu>
2103 2004-09-27 Fernando Perez <fperez@colorado.edu>
2099
2104
2100 * IPython/UserConfig/ipythonrc: remove []{} from
2105 * IPython/UserConfig/ipythonrc: remove []{} from
2101 readline_remove_delims, so that things like [modname.<TAB> do
2106 readline_remove_delims, so that things like [modname.<TAB> do
2102 proper completion. This disables [].TAB, but that's a less common
2107 proper completion. This disables [].TAB, but that's a less common
2103 case than module names in list comprehensions, for example.
2108 case than module names in list comprehensions, for example.
2104 Thanks to a report by Andrea Riciputi.
2109 Thanks to a report by Andrea Riciputi.
2105
2110
2106 2004-09-09 Fernando Perez <fperez@colorado.edu>
2111 2004-09-09 Fernando Perez <fperez@colorado.edu>
2107
2112
2108 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2113 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2109 blocking problems in win32 and osx. Fix by John.
2114 blocking problems in win32 and osx. Fix by John.
2110
2115
2111 2004-09-08 Fernando Perez <fperez@colorado.edu>
2116 2004-09-08 Fernando Perez <fperez@colorado.edu>
2112
2117
2113 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2118 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2114 for Win32 and OSX. Fix by John Hunter.
2119 for Win32 and OSX. Fix by John Hunter.
2115
2120
2116 2004-08-30 *** Released version 0.6.3
2121 2004-08-30 *** Released version 0.6.3
2117
2122
2118 2004-08-30 Fernando Perez <fperez@colorado.edu>
2123 2004-08-30 Fernando Perez <fperez@colorado.edu>
2119
2124
2120 * setup.py (isfile): Add manpages to list of dependent files to be
2125 * setup.py (isfile): Add manpages to list of dependent files to be
2121 updated.
2126 updated.
2122
2127
2123 2004-08-27 Fernando Perez <fperez@colorado.edu>
2128 2004-08-27 Fernando Perez <fperez@colorado.edu>
2124
2129
2125 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2130 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2126 for now. They don't really work with standalone WX/GTK code
2131 for now. They don't really work with standalone WX/GTK code
2127 (though matplotlib IS working fine with both of those backends).
2132 (though matplotlib IS working fine with both of those backends).
2128 This will neeed much more testing. I disabled most things with
2133 This will neeed much more testing. I disabled most things with
2129 comments, so turning it back on later should be pretty easy.
2134 comments, so turning it back on later should be pretty easy.
2130
2135
2131 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2136 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2132 autocalling of expressions like r'foo', by modifying the line
2137 autocalling of expressions like r'foo', by modifying the line
2133 split regexp. Closes
2138 split regexp. Closes
2134 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2139 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2135 Riley <ipythonbugs-AT-sabi.net>.
2140 Riley <ipythonbugs-AT-sabi.net>.
2136 (InteractiveShell.mainloop): honor --nobanner with banner
2141 (InteractiveShell.mainloop): honor --nobanner with banner
2137 extensions.
2142 extensions.
2138
2143
2139 * IPython/Shell.py: Significant refactoring of all classes, so
2144 * IPython/Shell.py: Significant refactoring of all classes, so
2140 that we can really support ALL matplotlib backends and threading
2145 that we can really support ALL matplotlib backends and threading
2141 models (John spotted a bug with Tk which required this). Now we
2146 models (John spotted a bug with Tk which required this). Now we
2142 should support single-threaded, WX-threads and GTK-threads, both
2147 should support single-threaded, WX-threads and GTK-threads, both
2143 for generic code and for matplotlib.
2148 for generic code and for matplotlib.
2144
2149
2145 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2150 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2146 -pylab, to simplify things for users. Will also remove the pylab
2151 -pylab, to simplify things for users. Will also remove the pylab
2147 profile, since now all of matplotlib configuration is directly
2152 profile, since now all of matplotlib configuration is directly
2148 handled here. This also reduces startup time.
2153 handled here. This also reduces startup time.
2149
2154
2150 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2155 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2151 shell wasn't being correctly called. Also in IPShellWX.
2156 shell wasn't being correctly called. Also in IPShellWX.
2152
2157
2153 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2158 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2154 fine-tune banner.
2159 fine-tune banner.
2155
2160
2156 * IPython/numutils.py (spike): Deprecate these spike functions,
2161 * IPython/numutils.py (spike): Deprecate these spike functions,
2157 delete (long deprecated) gnuplot_exec handler.
2162 delete (long deprecated) gnuplot_exec handler.
2158
2163
2159 2004-08-26 Fernando Perez <fperez@colorado.edu>
2164 2004-08-26 Fernando Perez <fperez@colorado.edu>
2160
2165
2161 * ipython.1: Update for threading options, plus some others which
2166 * ipython.1: Update for threading options, plus some others which
2162 were missing.
2167 were missing.
2163
2168
2164 * IPython/ipmaker.py (__call__): Added -wthread option for
2169 * IPython/ipmaker.py (__call__): Added -wthread option for
2165 wxpython thread handling. Make sure threading options are only
2170 wxpython thread handling. Make sure threading options are only
2166 valid at the command line.
2171 valid at the command line.
2167
2172
2168 * scripts/ipython: moved shell selection into a factory function
2173 * scripts/ipython: moved shell selection into a factory function
2169 in Shell.py, to keep the starter script to a minimum.
2174 in Shell.py, to keep the starter script to a minimum.
2170
2175
2171 2004-08-25 Fernando Perez <fperez@colorado.edu>
2176 2004-08-25 Fernando Perez <fperez@colorado.edu>
2172
2177
2173 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2178 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2174 John. Along with some recent changes he made to matplotlib, the
2179 John. Along with some recent changes he made to matplotlib, the
2175 next versions of both systems should work very well together.
2180 next versions of both systems should work very well together.
2176
2181
2177 2004-08-24 Fernando Perez <fperez@colorado.edu>
2182 2004-08-24 Fernando Perez <fperez@colorado.edu>
2178
2183
2179 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2184 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2180 tried to switch the profiling to using hotshot, but I'm getting
2185 tried to switch the profiling to using hotshot, but I'm getting
2181 strange errors from prof.runctx() there. I may be misreading the
2186 strange errors from prof.runctx() there. I may be misreading the
2182 docs, but it looks weird. For now the profiling code will
2187 docs, but it looks weird. For now the profiling code will
2183 continue to use the standard profiler.
2188 continue to use the standard profiler.
2184
2189
2185 2004-08-23 Fernando Perez <fperez@colorado.edu>
2190 2004-08-23 Fernando Perez <fperez@colorado.edu>
2186
2191
2187 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2192 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2188 threaded shell, by John Hunter. It's not quite ready yet, but
2193 threaded shell, by John Hunter. It's not quite ready yet, but
2189 close.
2194 close.
2190
2195
2191 2004-08-22 Fernando Perez <fperez@colorado.edu>
2196 2004-08-22 Fernando Perez <fperez@colorado.edu>
2192
2197
2193 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2198 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2194 in Magic and ultraTB.
2199 in Magic and ultraTB.
2195
2200
2196 * ipython.1: document threading options in manpage.
2201 * ipython.1: document threading options in manpage.
2197
2202
2198 * scripts/ipython: Changed name of -thread option to -gthread,
2203 * scripts/ipython: Changed name of -thread option to -gthread,
2199 since this is GTK specific. I want to leave the door open for a
2204 since this is GTK specific. I want to leave the door open for a
2200 -wthread option for WX, which will most likely be necessary. This
2205 -wthread option for WX, which will most likely be necessary. This
2201 change affects usage and ipmaker as well.
2206 change affects usage and ipmaker as well.
2202
2207
2203 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2208 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2204 handle the matplotlib shell issues. Code by John Hunter
2209 handle the matplotlib shell issues. Code by John Hunter
2205 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2210 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2206 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2211 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2207 broken (and disabled for end users) for now, but it puts the
2212 broken (and disabled for end users) for now, but it puts the
2208 infrastructure in place.
2213 infrastructure in place.
2209
2214
2210 2004-08-21 Fernando Perez <fperez@colorado.edu>
2215 2004-08-21 Fernando Perez <fperez@colorado.edu>
2211
2216
2212 * ipythonrc-pylab: Add matplotlib support.
2217 * ipythonrc-pylab: Add matplotlib support.
2213
2218
2214 * matplotlib_config.py: new files for matplotlib support, part of
2219 * matplotlib_config.py: new files for matplotlib support, part of
2215 the pylab profile.
2220 the pylab profile.
2216
2221
2217 * IPython/usage.py (__doc__): documented the threading options.
2222 * IPython/usage.py (__doc__): documented the threading options.
2218
2223
2219 2004-08-20 Fernando Perez <fperez@colorado.edu>
2224 2004-08-20 Fernando Perez <fperez@colorado.edu>
2220
2225
2221 * ipython: Modified the main calling routine to handle the -thread
2226 * ipython: Modified the main calling routine to handle the -thread
2222 and -mpthread options. This needs to be done as a top-level hack,
2227 and -mpthread options. This needs to be done as a top-level hack,
2223 because it determines which class to instantiate for IPython
2228 because it determines which class to instantiate for IPython
2224 itself.
2229 itself.
2225
2230
2226 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2231 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2227 classes to support multithreaded GTK operation without blocking,
2232 classes to support multithreaded GTK operation without blocking,
2228 and matplotlib with all backends. This is a lot of still very
2233 and matplotlib with all backends. This is a lot of still very
2229 experimental code, and threads are tricky. So it may still have a
2234 experimental code, and threads are tricky. So it may still have a
2230 few rough edges... This code owes a lot to
2235 few rough edges... This code owes a lot to
2231 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2236 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2232 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2237 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2233 to John Hunter for all the matplotlib work.
2238 to John Hunter for all the matplotlib work.
2234
2239
2235 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2240 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2236 options for gtk thread and matplotlib support.
2241 options for gtk thread and matplotlib support.
2237
2242
2238 2004-08-16 Fernando Perez <fperez@colorado.edu>
2243 2004-08-16 Fernando Perez <fperez@colorado.edu>
2239
2244
2240 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2245 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2241 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2246 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2242 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2247 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2243
2248
2244 2004-08-11 Fernando Perez <fperez@colorado.edu>
2249 2004-08-11 Fernando Perez <fperez@colorado.edu>
2245
2250
2246 * setup.py (isfile): Fix build so documentation gets updated for
2251 * setup.py (isfile): Fix build so documentation gets updated for
2247 rpms (it was only done for .tgz builds).
2252 rpms (it was only done for .tgz builds).
2248
2253
2249 2004-08-10 Fernando Perez <fperez@colorado.edu>
2254 2004-08-10 Fernando Perez <fperez@colorado.edu>
2250
2255
2251 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2256 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2252
2257
2253 * iplib.py : Silence syntax error exceptions in tab-completion.
2258 * iplib.py : Silence syntax error exceptions in tab-completion.
2254
2259
2255 2004-08-05 Fernando Perez <fperez@colorado.edu>
2260 2004-08-05 Fernando Perez <fperez@colorado.edu>
2256
2261
2257 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2262 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2258 'color off' mark for continuation prompts. This was causing long
2263 'color off' mark for continuation prompts. This was causing long
2259 continuation lines to mis-wrap.
2264 continuation lines to mis-wrap.
2260
2265
2261 2004-08-01 Fernando Perez <fperez@colorado.edu>
2266 2004-08-01 Fernando Perez <fperez@colorado.edu>
2262
2267
2263 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2268 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2264 for building ipython to be a parameter. All this is necessary
2269 for building ipython to be a parameter. All this is necessary
2265 right now to have a multithreaded version, but this insane
2270 right now to have a multithreaded version, but this insane
2266 non-design will be cleaned up soon. For now, it's a hack that
2271 non-design will be cleaned up soon. For now, it's a hack that
2267 works.
2272 works.
2268
2273
2269 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2274 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2270 args in various places. No bugs so far, but it's a dangerous
2275 args in various places. No bugs so far, but it's a dangerous
2271 practice.
2276 practice.
2272
2277
2273 2004-07-31 Fernando Perez <fperez@colorado.edu>
2278 2004-07-31 Fernando Perez <fperez@colorado.edu>
2274
2279
2275 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2280 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2276 fix completion of files with dots in their names under most
2281 fix completion of files with dots in their names under most
2277 profiles (pysh was OK because the completion order is different).
2282 profiles (pysh was OK because the completion order is different).
2278
2283
2279 2004-07-27 Fernando Perez <fperez@colorado.edu>
2284 2004-07-27 Fernando Perez <fperez@colorado.edu>
2280
2285
2281 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2286 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2282 keywords manually, b/c the one in keyword.py was removed in python
2287 keywords manually, b/c the one in keyword.py was removed in python
2283 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2288 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2284 This is NOT a bug under python 2.3 and earlier.
2289 This is NOT a bug under python 2.3 and earlier.
2285
2290
2286 2004-07-26 Fernando Perez <fperez@colorado.edu>
2291 2004-07-26 Fernando Perez <fperez@colorado.edu>
2287
2292
2288 * IPython/ultraTB.py (VerboseTB.text): Add another
2293 * IPython/ultraTB.py (VerboseTB.text): Add another
2289 linecache.checkcache() call to try to prevent inspect.py from
2294 linecache.checkcache() call to try to prevent inspect.py from
2290 crashing under python 2.3. I think this fixes
2295 crashing under python 2.3. I think this fixes
2291 http://www.scipy.net/roundup/ipython/issue17.
2296 http://www.scipy.net/roundup/ipython/issue17.
2292
2297
2293 2004-07-26 *** Released version 0.6.2
2298 2004-07-26 *** Released version 0.6.2
2294
2299
2295 2004-07-26 Fernando Perez <fperez@colorado.edu>
2300 2004-07-26 Fernando Perez <fperez@colorado.edu>
2296
2301
2297 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2302 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2298 fail for any number.
2303 fail for any number.
2299 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2304 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2300 empty bookmarks.
2305 empty bookmarks.
2301
2306
2302 2004-07-26 *** Released version 0.6.1
2307 2004-07-26 *** Released version 0.6.1
2303
2308
2304 2004-07-26 Fernando Perez <fperez@colorado.edu>
2309 2004-07-26 Fernando Perez <fperez@colorado.edu>
2305
2310
2306 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2311 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2307
2312
2308 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2313 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2309 escaping '()[]{}' in filenames.
2314 escaping '()[]{}' in filenames.
2310
2315
2311 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2316 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2312 Python 2.2 users who lack a proper shlex.split.
2317 Python 2.2 users who lack a proper shlex.split.
2313
2318
2314 2004-07-19 Fernando Perez <fperez@colorado.edu>
2319 2004-07-19 Fernando Perez <fperez@colorado.edu>
2315
2320
2316 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2321 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2317 for reading readline's init file. I follow the normal chain:
2322 for reading readline's init file. I follow the normal chain:
2318 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2323 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2319 report by Mike Heeter. This closes
2324 report by Mike Heeter. This closes
2320 http://www.scipy.net/roundup/ipython/issue16.
2325 http://www.scipy.net/roundup/ipython/issue16.
2321
2326
2322 2004-07-18 Fernando Perez <fperez@colorado.edu>
2327 2004-07-18 Fernando Perez <fperez@colorado.edu>
2323
2328
2324 * IPython/iplib.py (__init__): Add better handling of '\' under
2329 * IPython/iplib.py (__init__): Add better handling of '\' under
2325 Win32 for filenames. After a patch by Ville.
2330 Win32 for filenames. After a patch by Ville.
2326
2331
2327 2004-07-17 Fernando Perez <fperez@colorado.edu>
2332 2004-07-17 Fernando Perez <fperez@colorado.edu>
2328
2333
2329 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2334 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2330 autocalling would be triggered for 'foo is bar' if foo is
2335 autocalling would be triggered for 'foo is bar' if foo is
2331 callable. I also cleaned up the autocall detection code to use a
2336 callable. I also cleaned up the autocall detection code to use a
2332 regexp, which is faster. Bug reported by Alexander Schmolck.
2337 regexp, which is faster. Bug reported by Alexander Schmolck.
2333
2338
2334 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2339 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2335 '?' in them would confuse the help system. Reported by Alex
2340 '?' in them would confuse the help system. Reported by Alex
2336 Schmolck.
2341 Schmolck.
2337
2342
2338 2004-07-16 Fernando Perez <fperez@colorado.edu>
2343 2004-07-16 Fernando Perez <fperez@colorado.edu>
2339
2344
2340 * IPython/GnuplotInteractive.py (__all__): added plot2.
2345 * IPython/GnuplotInteractive.py (__all__): added plot2.
2341
2346
2342 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2347 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2343 plotting dictionaries, lists or tuples of 1d arrays.
2348 plotting dictionaries, lists or tuples of 1d arrays.
2344
2349
2345 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2350 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2346 optimizations.
2351 optimizations.
2347
2352
2348 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2353 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2349 the information which was there from Janko's original IPP code:
2354 the information which was there from Janko's original IPP code:
2350
2355
2351 03.05.99 20:53 porto.ifm.uni-kiel.de
2356 03.05.99 20:53 porto.ifm.uni-kiel.de
2352 --Started changelog.
2357 --Started changelog.
2353 --make clear do what it say it does
2358 --make clear do what it say it does
2354 --added pretty output of lines from inputcache
2359 --added pretty output of lines from inputcache
2355 --Made Logger a mixin class, simplifies handling of switches
2360 --Made Logger a mixin class, simplifies handling of switches
2356 --Added own completer class. .string<TAB> expands to last history
2361 --Added own completer class. .string<TAB> expands to last history
2357 line which starts with string. The new expansion is also present
2362 line which starts with string. The new expansion is also present
2358 with Ctrl-r from the readline library. But this shows, who this
2363 with Ctrl-r from the readline library. But this shows, who this
2359 can be done for other cases.
2364 can be done for other cases.
2360 --Added convention that all shell functions should accept a
2365 --Added convention that all shell functions should accept a
2361 parameter_string This opens the door for different behaviour for
2366 parameter_string This opens the door for different behaviour for
2362 each function. @cd is a good example of this.
2367 each function. @cd is a good example of this.
2363
2368
2364 04.05.99 12:12 porto.ifm.uni-kiel.de
2369 04.05.99 12:12 porto.ifm.uni-kiel.de
2365 --added logfile rotation
2370 --added logfile rotation
2366 --added new mainloop method which freezes first the namespace
2371 --added new mainloop method which freezes first the namespace
2367
2372
2368 07.05.99 21:24 porto.ifm.uni-kiel.de
2373 07.05.99 21:24 porto.ifm.uni-kiel.de
2369 --added the docreader classes. Now there is a help system.
2374 --added the docreader classes. Now there is a help system.
2370 -This is only a first try. Currently it's not easy to put new
2375 -This is only a first try. Currently it's not easy to put new
2371 stuff in the indices. But this is the way to go. Info would be
2376 stuff in the indices. But this is the way to go. Info would be
2372 better, but HTML is every where and not everybody has an info
2377 better, but HTML is every where and not everybody has an info
2373 system installed and it's not so easy to change html-docs to info.
2378 system installed and it's not so easy to change html-docs to info.
2374 --added global logfile option
2379 --added global logfile option
2375 --there is now a hook for object inspection method pinfo needs to
2380 --there is now a hook for object inspection method pinfo needs to
2376 be provided for this. Can be reached by two '??'.
2381 be provided for this. Can be reached by two '??'.
2377
2382
2378 08.05.99 20:51 porto.ifm.uni-kiel.de
2383 08.05.99 20:51 porto.ifm.uni-kiel.de
2379 --added a README
2384 --added a README
2380 --bug in rc file. Something has changed so functions in the rc
2385 --bug in rc file. Something has changed so functions in the rc
2381 file need to reference the shell and not self. Not clear if it's a
2386 file need to reference the shell and not self. Not clear if it's a
2382 bug or feature.
2387 bug or feature.
2383 --changed rc file for new behavior
2388 --changed rc file for new behavior
2384
2389
2385 2004-07-15 Fernando Perez <fperez@colorado.edu>
2390 2004-07-15 Fernando Perez <fperez@colorado.edu>
2386
2391
2387 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2392 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2388 cache was falling out of sync in bizarre manners when multi-line
2393 cache was falling out of sync in bizarre manners when multi-line
2389 input was present. Minor optimizations and cleanup.
2394 input was present. Minor optimizations and cleanup.
2390
2395
2391 (Logger): Remove old Changelog info for cleanup. This is the
2396 (Logger): Remove old Changelog info for cleanup. This is the
2392 information which was there from Janko's original code:
2397 information which was there from Janko's original code:
2393
2398
2394 Changes to Logger: - made the default log filename a parameter
2399 Changes to Logger: - made the default log filename a parameter
2395
2400
2396 - put a check for lines beginning with !@? in log(). Needed
2401 - put a check for lines beginning with !@? in log(). Needed
2397 (even if the handlers properly log their lines) for mid-session
2402 (even if the handlers properly log their lines) for mid-session
2398 logging activation to work properly. Without this, lines logged
2403 logging activation to work properly. Without this, lines logged
2399 in mid session, which get read from the cache, would end up
2404 in mid session, which get read from the cache, would end up
2400 'bare' (with !@? in the open) in the log. Now they are caught
2405 'bare' (with !@? in the open) in the log. Now they are caught
2401 and prepended with a #.
2406 and prepended with a #.
2402
2407
2403 * IPython/iplib.py (InteractiveShell.init_readline): added check
2408 * IPython/iplib.py (InteractiveShell.init_readline): added check
2404 in case MagicCompleter fails to be defined, so we don't crash.
2409 in case MagicCompleter fails to be defined, so we don't crash.
2405
2410
2406 2004-07-13 Fernando Perez <fperez@colorado.edu>
2411 2004-07-13 Fernando Perez <fperez@colorado.edu>
2407
2412
2408 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2413 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2409 of EPS if the requested filename ends in '.eps'.
2414 of EPS if the requested filename ends in '.eps'.
2410
2415
2411 2004-07-04 Fernando Perez <fperez@colorado.edu>
2416 2004-07-04 Fernando Perez <fperez@colorado.edu>
2412
2417
2413 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2418 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2414 escaping of quotes when calling the shell.
2419 escaping of quotes when calling the shell.
2415
2420
2416 2004-07-02 Fernando Perez <fperez@colorado.edu>
2421 2004-07-02 Fernando Perez <fperez@colorado.edu>
2417
2422
2418 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2423 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2419 gettext not working because we were clobbering '_'. Fixes
2424 gettext not working because we were clobbering '_'. Fixes
2420 http://www.scipy.net/roundup/ipython/issue6.
2425 http://www.scipy.net/roundup/ipython/issue6.
2421
2426
2422 2004-07-01 Fernando Perez <fperez@colorado.edu>
2427 2004-07-01 Fernando Perez <fperez@colorado.edu>
2423
2428
2424 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2429 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2425 into @cd. Patch by Ville.
2430 into @cd. Patch by Ville.
2426
2431
2427 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2432 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2428 new function to store things after ipmaker runs. Patch by Ville.
2433 new function to store things after ipmaker runs. Patch by Ville.
2429 Eventually this will go away once ipmaker is removed and the class
2434 Eventually this will go away once ipmaker is removed and the class
2430 gets cleaned up, but for now it's ok. Key functionality here is
2435 gets cleaned up, but for now it's ok. Key functionality here is
2431 the addition of the persistent storage mechanism, a dict for
2436 the addition of the persistent storage mechanism, a dict for
2432 keeping data across sessions (for now just bookmarks, but more can
2437 keeping data across sessions (for now just bookmarks, but more can
2433 be implemented later).
2438 be implemented later).
2434
2439
2435 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2440 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2436 persistent across sections. Patch by Ville, I modified it
2441 persistent across sections. Patch by Ville, I modified it
2437 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2442 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2438 added a '-l' option to list all bookmarks.
2443 added a '-l' option to list all bookmarks.
2439
2444
2440 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2445 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2441 center for cleanup. Registered with atexit.register(). I moved
2446 center for cleanup. Registered with atexit.register(). I moved
2442 here the old exit_cleanup(). After a patch by Ville.
2447 here the old exit_cleanup(). After a patch by Ville.
2443
2448
2444 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2449 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2445 characters in the hacked shlex_split for python 2.2.
2450 characters in the hacked shlex_split for python 2.2.
2446
2451
2447 * IPython/iplib.py (file_matches): more fixes to filenames with
2452 * IPython/iplib.py (file_matches): more fixes to filenames with
2448 whitespace in them. It's not perfect, but limitations in python's
2453 whitespace in them. It's not perfect, but limitations in python's
2449 readline make it impossible to go further.
2454 readline make it impossible to go further.
2450
2455
2451 2004-06-29 Fernando Perez <fperez@colorado.edu>
2456 2004-06-29 Fernando Perez <fperez@colorado.edu>
2452
2457
2453 * IPython/iplib.py (file_matches): escape whitespace correctly in
2458 * IPython/iplib.py (file_matches): escape whitespace correctly in
2454 filename completions. Bug reported by Ville.
2459 filename completions. Bug reported by Ville.
2455
2460
2456 2004-06-28 Fernando Perez <fperez@colorado.edu>
2461 2004-06-28 Fernando Perez <fperez@colorado.edu>
2457
2462
2458 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2463 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2459 the history file will be called 'history-PROFNAME' (or just
2464 the history file will be called 'history-PROFNAME' (or just
2460 'history' if no profile is loaded). I was getting annoyed at
2465 'history' if no profile is loaded). I was getting annoyed at
2461 getting my Numerical work history clobbered by pysh sessions.
2466 getting my Numerical work history clobbered by pysh sessions.
2462
2467
2463 * IPython/iplib.py (InteractiveShell.__init__): Internal
2468 * IPython/iplib.py (InteractiveShell.__init__): Internal
2464 getoutputerror() function so that we can honor the system_verbose
2469 getoutputerror() function so that we can honor the system_verbose
2465 flag for _all_ system calls. I also added escaping of #
2470 flag for _all_ system calls. I also added escaping of #
2466 characters here to avoid confusing Itpl.
2471 characters here to avoid confusing Itpl.
2467
2472
2468 * IPython/Magic.py (shlex_split): removed call to shell in
2473 * IPython/Magic.py (shlex_split): removed call to shell in
2469 parse_options and replaced it with shlex.split(). The annoying
2474 parse_options and replaced it with shlex.split(). The annoying
2470 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2475 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2471 to backport it from 2.3, with several frail hacks (the shlex
2476 to backport it from 2.3, with several frail hacks (the shlex
2472 module is rather limited in 2.2). Thanks to a suggestion by Ville
2477 module is rather limited in 2.2). Thanks to a suggestion by Ville
2473 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2478 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2474 problem.
2479 problem.
2475
2480
2476 (Magic.magic_system_verbose): new toggle to print the actual
2481 (Magic.magic_system_verbose): new toggle to print the actual
2477 system calls made by ipython. Mainly for debugging purposes.
2482 system calls made by ipython. Mainly for debugging purposes.
2478
2483
2479 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2484 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2480 doesn't support persistence. Reported (and fix suggested) by
2485 doesn't support persistence. Reported (and fix suggested) by
2481 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2486 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2482
2487
2483 2004-06-26 Fernando Perez <fperez@colorado.edu>
2488 2004-06-26 Fernando Perez <fperez@colorado.edu>
2484
2489
2485 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2490 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2486 continue prompts.
2491 continue prompts.
2487
2492
2488 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2493 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2489 function (basically a big docstring) and a few more things here to
2494 function (basically a big docstring) and a few more things here to
2490 speedup startup. pysh.py is now very lightweight. We want because
2495 speedup startup. pysh.py is now very lightweight. We want because
2491 it gets execfile'd, while InterpreterExec gets imported, so
2496 it gets execfile'd, while InterpreterExec gets imported, so
2492 byte-compilation saves time.
2497 byte-compilation saves time.
2493
2498
2494 2004-06-25 Fernando Perez <fperez@colorado.edu>
2499 2004-06-25 Fernando Perez <fperez@colorado.edu>
2495
2500
2496 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2501 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2497 -NUM', which was recently broken.
2502 -NUM', which was recently broken.
2498
2503
2499 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2504 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2500 in multi-line input (but not !!, which doesn't make sense there).
2505 in multi-line input (but not !!, which doesn't make sense there).
2501
2506
2502 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2507 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2503 It's just too useful, and people can turn it off in the less
2508 It's just too useful, and people can turn it off in the less
2504 common cases where it's a problem.
2509 common cases where it's a problem.
2505
2510
2506 2004-06-24 Fernando Perez <fperez@colorado.edu>
2511 2004-06-24 Fernando Perez <fperez@colorado.edu>
2507
2512
2508 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2513 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2509 special syntaxes (like alias calling) is now allied in multi-line
2514 special syntaxes (like alias calling) is now allied in multi-line
2510 input. This is still _very_ experimental, but it's necessary for
2515 input. This is still _very_ experimental, but it's necessary for
2511 efficient shell usage combining python looping syntax with system
2516 efficient shell usage combining python looping syntax with system
2512 calls. For now it's restricted to aliases, I don't think it
2517 calls. For now it's restricted to aliases, I don't think it
2513 really even makes sense to have this for magics.
2518 really even makes sense to have this for magics.
2514
2519
2515 2004-06-23 Fernando Perez <fperez@colorado.edu>
2520 2004-06-23 Fernando Perez <fperez@colorado.edu>
2516
2521
2517 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2522 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2518 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2523 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2519
2524
2520 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2525 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2521 extensions under Windows (after code sent by Gary Bishop). The
2526 extensions under Windows (after code sent by Gary Bishop). The
2522 extensions considered 'executable' are stored in IPython's rc
2527 extensions considered 'executable' are stored in IPython's rc
2523 structure as win_exec_ext.
2528 structure as win_exec_ext.
2524
2529
2525 * IPython/genutils.py (shell): new function, like system() but
2530 * IPython/genutils.py (shell): new function, like system() but
2526 without return value. Very useful for interactive shell work.
2531 without return value. Very useful for interactive shell work.
2527
2532
2528 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2533 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2529 delete aliases.
2534 delete aliases.
2530
2535
2531 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2536 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2532 sure that the alias table doesn't contain python keywords.
2537 sure that the alias table doesn't contain python keywords.
2533
2538
2534 2004-06-21 Fernando Perez <fperez@colorado.edu>
2539 2004-06-21 Fernando Perez <fperez@colorado.edu>
2535
2540
2536 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2541 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2537 non-existent items are found in $PATH. Reported by Thorsten.
2542 non-existent items are found in $PATH. Reported by Thorsten.
2538
2543
2539 2004-06-20 Fernando Perez <fperez@colorado.edu>
2544 2004-06-20 Fernando Perez <fperez@colorado.edu>
2540
2545
2541 * IPython/iplib.py (complete): modified the completer so that the
2546 * IPython/iplib.py (complete): modified the completer so that the
2542 order of priorities can be easily changed at runtime.
2547 order of priorities can be easily changed at runtime.
2543
2548
2544 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2549 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2545 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2550 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2546
2551
2547 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2552 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2548 expand Python variables prepended with $ in all system calls. The
2553 expand Python variables prepended with $ in all system calls. The
2549 same was done to InteractiveShell.handle_shell_escape. Now all
2554 same was done to InteractiveShell.handle_shell_escape. Now all
2550 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2555 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2551 expansion of python variables and expressions according to the
2556 expansion of python variables and expressions according to the
2552 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2557 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2553
2558
2554 Though PEP-215 has been rejected, a similar (but simpler) one
2559 Though PEP-215 has been rejected, a similar (but simpler) one
2555 seems like it will go into Python 2.4, PEP-292 -
2560 seems like it will go into Python 2.4, PEP-292 -
2556 http://www.python.org/peps/pep-0292.html.
2561 http://www.python.org/peps/pep-0292.html.
2557
2562
2558 I'll keep the full syntax of PEP-215, since IPython has since the
2563 I'll keep the full syntax of PEP-215, since IPython has since the
2559 start used Ka-Ping Yee's reference implementation discussed there
2564 start used Ka-Ping Yee's reference implementation discussed there
2560 (Itpl), and I actually like the powerful semantics it offers.
2565 (Itpl), and I actually like the powerful semantics it offers.
2561
2566
2562 In order to access normal shell variables, the $ has to be escaped
2567 In order to access normal shell variables, the $ has to be escaped
2563 via an extra $. For example:
2568 via an extra $. For example:
2564
2569
2565 In [7]: PATH='a python variable'
2570 In [7]: PATH='a python variable'
2566
2571
2567 In [8]: !echo $PATH
2572 In [8]: !echo $PATH
2568 a python variable
2573 a python variable
2569
2574
2570 In [9]: !echo $$PATH
2575 In [9]: !echo $$PATH
2571 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2576 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2572
2577
2573 (Magic.parse_options): escape $ so the shell doesn't evaluate
2578 (Magic.parse_options): escape $ so the shell doesn't evaluate
2574 things prematurely.
2579 things prematurely.
2575
2580
2576 * IPython/iplib.py (InteractiveShell.call_alias): added the
2581 * IPython/iplib.py (InteractiveShell.call_alias): added the
2577 ability for aliases to expand python variables via $.
2582 ability for aliases to expand python variables via $.
2578
2583
2579 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2584 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2580 system, now there's a @rehash/@rehashx pair of magics. These work
2585 system, now there's a @rehash/@rehashx pair of magics. These work
2581 like the csh rehash command, and can be invoked at any time. They
2586 like the csh rehash command, and can be invoked at any time. They
2582 build a table of aliases to everything in the user's $PATH
2587 build a table of aliases to everything in the user's $PATH
2583 (@rehash uses everything, @rehashx is slower but only adds
2588 (@rehash uses everything, @rehashx is slower but only adds
2584 executable files). With this, the pysh.py-based shell profile can
2589 executable files). With this, the pysh.py-based shell profile can
2585 now simply call rehash upon startup, and full access to all
2590 now simply call rehash upon startup, and full access to all
2586 programs in the user's path is obtained.
2591 programs in the user's path is obtained.
2587
2592
2588 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2593 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2589 functionality is now fully in place. I removed the old dynamic
2594 functionality is now fully in place. I removed the old dynamic
2590 code generation based approach, in favor of a much lighter one
2595 code generation based approach, in favor of a much lighter one
2591 based on a simple dict. The advantage is that this allows me to
2596 based on a simple dict. The advantage is that this allows me to
2592 now have thousands of aliases with negligible cost (unthinkable
2597 now have thousands of aliases with negligible cost (unthinkable
2593 with the old system).
2598 with the old system).
2594
2599
2595 2004-06-19 Fernando Perez <fperez@colorado.edu>
2600 2004-06-19 Fernando Perez <fperez@colorado.edu>
2596
2601
2597 * IPython/iplib.py (__init__): extended MagicCompleter class to
2602 * IPython/iplib.py (__init__): extended MagicCompleter class to
2598 also complete (last in priority) on user aliases.
2603 also complete (last in priority) on user aliases.
2599
2604
2600 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2605 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2601 call to eval.
2606 call to eval.
2602 (ItplNS.__init__): Added a new class which functions like Itpl,
2607 (ItplNS.__init__): Added a new class which functions like Itpl,
2603 but allows configuring the namespace for the evaluation to occur
2608 but allows configuring the namespace for the evaluation to occur
2604 in.
2609 in.
2605
2610
2606 2004-06-18 Fernando Perez <fperez@colorado.edu>
2611 2004-06-18 Fernando Perez <fperez@colorado.edu>
2607
2612
2608 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2613 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2609 better message when 'exit' or 'quit' are typed (a common newbie
2614 better message when 'exit' or 'quit' are typed (a common newbie
2610 confusion).
2615 confusion).
2611
2616
2612 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2617 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2613 check for Windows users.
2618 check for Windows users.
2614
2619
2615 * IPython/iplib.py (InteractiveShell.user_setup): removed
2620 * IPython/iplib.py (InteractiveShell.user_setup): removed
2616 disabling of colors for Windows. I'll test at runtime and issue a
2621 disabling of colors for Windows. I'll test at runtime and issue a
2617 warning if Gary's readline isn't found, as to nudge users to
2622 warning if Gary's readline isn't found, as to nudge users to
2618 download it.
2623 download it.
2619
2624
2620 2004-06-16 Fernando Perez <fperez@colorado.edu>
2625 2004-06-16 Fernando Perez <fperez@colorado.edu>
2621
2626
2622 * IPython/genutils.py (Stream.__init__): changed to print errors
2627 * IPython/genutils.py (Stream.__init__): changed to print errors
2623 to sys.stderr. I had a circular dependency here. Now it's
2628 to sys.stderr. I had a circular dependency here. Now it's
2624 possible to run ipython as IDLE's shell (consider this pre-alpha,
2629 possible to run ipython as IDLE's shell (consider this pre-alpha,
2625 since true stdout things end up in the starting terminal instead
2630 since true stdout things end up in the starting terminal instead
2626 of IDLE's out).
2631 of IDLE's out).
2627
2632
2628 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2633 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2629 users who haven't # updated their prompt_in2 definitions. Remove
2634 users who haven't # updated their prompt_in2 definitions. Remove
2630 eventually.
2635 eventually.
2631 (multiple_replace): added credit to original ASPN recipe.
2636 (multiple_replace): added credit to original ASPN recipe.
2632
2637
2633 2004-06-15 Fernando Perez <fperez@colorado.edu>
2638 2004-06-15 Fernando Perez <fperez@colorado.edu>
2634
2639
2635 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2640 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2636 list of auto-defined aliases.
2641 list of auto-defined aliases.
2637
2642
2638 2004-06-13 Fernando Perez <fperez@colorado.edu>
2643 2004-06-13 Fernando Perez <fperez@colorado.edu>
2639
2644
2640 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2645 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2641 install was really requested (so setup.py can be used for other
2646 install was really requested (so setup.py can be used for other
2642 things under Windows).
2647 things under Windows).
2643
2648
2644 2004-06-10 Fernando Perez <fperez@colorado.edu>
2649 2004-06-10 Fernando Perez <fperez@colorado.edu>
2645
2650
2646 * IPython/Logger.py (Logger.create_log): Manually remove any old
2651 * IPython/Logger.py (Logger.create_log): Manually remove any old
2647 backup, since os.remove may fail under Windows. Fixes bug
2652 backup, since os.remove may fail under Windows. Fixes bug
2648 reported by Thorsten.
2653 reported by Thorsten.
2649
2654
2650 2004-06-09 Fernando Perez <fperez@colorado.edu>
2655 2004-06-09 Fernando Perez <fperez@colorado.edu>
2651
2656
2652 * examples/example-embed.py: fixed all references to %n (replaced
2657 * examples/example-embed.py: fixed all references to %n (replaced
2653 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2658 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2654 for all examples and the manual as well.
2659 for all examples and the manual as well.
2655
2660
2656 2004-06-08 Fernando Perez <fperez@colorado.edu>
2661 2004-06-08 Fernando Perez <fperez@colorado.edu>
2657
2662
2658 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2663 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2659 alignment and color management. All 3 prompt subsystems now
2664 alignment and color management. All 3 prompt subsystems now
2660 inherit from BasePrompt.
2665 inherit from BasePrompt.
2661
2666
2662 * tools/release: updates for windows installer build and tag rpms
2667 * tools/release: updates for windows installer build and tag rpms
2663 with python version (since paths are fixed).
2668 with python version (since paths are fixed).
2664
2669
2665 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2670 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2666 which will become eventually obsolete. Also fixed the default
2671 which will become eventually obsolete. Also fixed the default
2667 prompt_in2 to use \D, so at least new users start with the correct
2672 prompt_in2 to use \D, so at least new users start with the correct
2668 defaults.
2673 defaults.
2669 WARNING: Users with existing ipythonrc files will need to apply
2674 WARNING: Users with existing ipythonrc files will need to apply
2670 this fix manually!
2675 this fix manually!
2671
2676
2672 * setup.py: make windows installer (.exe). This is finally the
2677 * setup.py: make windows installer (.exe). This is finally the
2673 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2678 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2674 which I hadn't included because it required Python 2.3 (or recent
2679 which I hadn't included because it required Python 2.3 (or recent
2675 distutils).
2680 distutils).
2676
2681
2677 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2682 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2678 usage of new '\D' escape.
2683 usage of new '\D' escape.
2679
2684
2680 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2685 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2681 lacks os.getuid())
2686 lacks os.getuid())
2682 (CachedOutput.set_colors): Added the ability to turn coloring
2687 (CachedOutput.set_colors): Added the ability to turn coloring
2683 on/off with @colors even for manually defined prompt colors. It
2688 on/off with @colors even for manually defined prompt colors. It
2684 uses a nasty global, but it works safely and via the generic color
2689 uses a nasty global, but it works safely and via the generic color
2685 handling mechanism.
2690 handling mechanism.
2686 (Prompt2.__init__): Introduced new escape '\D' for continuation
2691 (Prompt2.__init__): Introduced new escape '\D' for continuation
2687 prompts. It represents the counter ('\#') as dots.
2692 prompts. It represents the counter ('\#') as dots.
2688 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2693 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2689 need to update their ipythonrc files and replace '%n' with '\D' in
2694 need to update their ipythonrc files and replace '%n' with '\D' in
2690 their prompt_in2 settings everywhere. Sorry, but there's
2695 their prompt_in2 settings everywhere. Sorry, but there's
2691 otherwise no clean way to get all prompts to properly align. The
2696 otherwise no clean way to get all prompts to properly align. The
2692 ipythonrc shipped with IPython has been updated.
2697 ipythonrc shipped with IPython has been updated.
2693
2698
2694 2004-06-07 Fernando Perez <fperez@colorado.edu>
2699 2004-06-07 Fernando Perez <fperez@colorado.edu>
2695
2700
2696 * setup.py (isfile): Pass local_icons option to latex2html, so the
2701 * setup.py (isfile): Pass local_icons option to latex2html, so the
2697 resulting HTML file is self-contained. Thanks to
2702 resulting HTML file is self-contained. Thanks to
2698 dryice-AT-liu.com.cn for the tip.
2703 dryice-AT-liu.com.cn for the tip.
2699
2704
2700 * pysh.py: I created a new profile 'shell', which implements a
2705 * pysh.py: I created a new profile 'shell', which implements a
2701 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2706 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2702 system shell, nor will it become one anytime soon. It's mainly
2707 system shell, nor will it become one anytime soon. It's mainly
2703 meant to illustrate the use of the new flexible bash-like prompts.
2708 meant to illustrate the use of the new flexible bash-like prompts.
2704 I guess it could be used by hardy souls for true shell management,
2709 I guess it could be used by hardy souls for true shell management,
2705 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2710 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2706 profile. This uses the InterpreterExec extension provided by
2711 profile. This uses the InterpreterExec extension provided by
2707 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2712 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2708
2713
2709 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2714 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2710 auto-align itself with the length of the previous input prompt
2715 auto-align itself with the length of the previous input prompt
2711 (taking into account the invisible color escapes).
2716 (taking into account the invisible color escapes).
2712 (CachedOutput.__init__): Large restructuring of this class. Now
2717 (CachedOutput.__init__): Large restructuring of this class. Now
2713 all three prompts (primary1, primary2, output) are proper objects,
2718 all three prompts (primary1, primary2, output) are proper objects,
2714 managed by the 'parent' CachedOutput class. The code is still a
2719 managed by the 'parent' CachedOutput class. The code is still a
2715 bit hackish (all prompts share state via a pointer to the cache),
2720 bit hackish (all prompts share state via a pointer to the cache),
2716 but it's overall far cleaner than before.
2721 but it's overall far cleaner than before.
2717
2722
2718 * IPython/genutils.py (getoutputerror): modified to add verbose,
2723 * IPython/genutils.py (getoutputerror): modified to add verbose,
2719 debug and header options. This makes the interface of all getout*
2724 debug and header options. This makes the interface of all getout*
2720 functions uniform.
2725 functions uniform.
2721 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2726 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2722
2727
2723 * IPython/Magic.py (Magic.default_option): added a function to
2728 * IPython/Magic.py (Magic.default_option): added a function to
2724 allow registering default options for any magic command. This
2729 allow registering default options for any magic command. This
2725 makes it easy to have profiles which customize the magics globally
2730 makes it easy to have profiles which customize the magics globally
2726 for a certain use. The values set through this function are
2731 for a certain use. The values set through this function are
2727 picked up by the parse_options() method, which all magics should
2732 picked up by the parse_options() method, which all magics should
2728 use to parse their options.
2733 use to parse their options.
2729
2734
2730 * IPython/genutils.py (warn): modified the warnings framework to
2735 * IPython/genutils.py (warn): modified the warnings framework to
2731 use the Term I/O class. I'm trying to slowly unify all of
2736 use the Term I/O class. I'm trying to slowly unify all of
2732 IPython's I/O operations to pass through Term.
2737 IPython's I/O operations to pass through Term.
2733
2738
2734 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2739 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
2735 the secondary prompt to correctly match the length of the primary
2740 the secondary prompt to correctly match the length of the primary
2736 one for any prompt. Now multi-line code will properly line up
2741 one for any prompt. Now multi-line code will properly line up
2737 even for path dependent prompts, such as the new ones available
2742 even for path dependent prompts, such as the new ones available
2738 via the prompt_specials.
2743 via the prompt_specials.
2739
2744
2740 2004-06-06 Fernando Perez <fperez@colorado.edu>
2745 2004-06-06 Fernando Perez <fperez@colorado.edu>
2741
2746
2742 * IPython/Prompts.py (prompt_specials): Added the ability to have
2747 * IPython/Prompts.py (prompt_specials): Added the ability to have
2743 bash-like special sequences in the prompts, which get
2748 bash-like special sequences in the prompts, which get
2744 automatically expanded. Things like hostname, current working
2749 automatically expanded. Things like hostname, current working
2745 directory and username are implemented already, but it's easy to
2750 directory and username are implemented already, but it's easy to
2746 add more in the future. Thanks to a patch by W.J. van der Laan
2751 add more in the future. Thanks to a patch by W.J. van der Laan
2747 <gnufnork-AT-hetdigitalegat.nl>
2752 <gnufnork-AT-hetdigitalegat.nl>
2748 (prompt_specials): Added color support for prompt strings, so
2753 (prompt_specials): Added color support for prompt strings, so
2749 users can define arbitrary color setups for their prompts.
2754 users can define arbitrary color setups for their prompts.
2750
2755
2751 2004-06-05 Fernando Perez <fperez@colorado.edu>
2756 2004-06-05 Fernando Perez <fperez@colorado.edu>
2752
2757
2753 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2758 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
2754 code to load Gary Bishop's readline and configure it
2759 code to load Gary Bishop's readline and configure it
2755 automatically. Thanks to Gary for help on this.
2760 automatically. Thanks to Gary for help on this.
2756
2761
2757 2004-06-01 Fernando Perez <fperez@colorado.edu>
2762 2004-06-01 Fernando Perez <fperez@colorado.edu>
2758
2763
2759 * IPython/Logger.py (Logger.create_log): fix bug for logging
2764 * IPython/Logger.py (Logger.create_log): fix bug for logging
2760 with no filename (previous fix was incomplete).
2765 with no filename (previous fix was incomplete).
2761
2766
2762 2004-05-25 Fernando Perez <fperez@colorado.edu>
2767 2004-05-25 Fernando Perez <fperez@colorado.edu>
2763
2768
2764 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2769 * IPython/Magic.py (Magic.parse_options): fix bug where naked
2765 parens would get passed to the shell.
2770 parens would get passed to the shell.
2766
2771
2767 2004-05-20 Fernando Perez <fperez@colorado.edu>
2772 2004-05-20 Fernando Perez <fperez@colorado.edu>
2768
2773
2769 * IPython/Magic.py (Magic.magic_prun): changed default profile
2774 * IPython/Magic.py (Magic.magic_prun): changed default profile
2770 sort order to 'time' (the more common profiling need).
2775 sort order to 'time' (the more common profiling need).
2771
2776
2772 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2777 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
2773 so that source code shown is guaranteed in sync with the file on
2778 so that source code shown is guaranteed in sync with the file on
2774 disk (also changed in psource). Similar fix to the one for
2779 disk (also changed in psource). Similar fix to the one for
2775 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2780 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
2776 <yann.ledu-AT-noos.fr>.
2781 <yann.ledu-AT-noos.fr>.
2777
2782
2778 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2783 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
2779 with a single option would not be correctly parsed. Closes
2784 with a single option would not be correctly parsed. Closes
2780 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2785 http://www.scipy.net/roundup/ipython/issue14. This bug had been
2781 introduced in 0.6.0 (on 2004-05-06).
2786 introduced in 0.6.0 (on 2004-05-06).
2782
2787
2783 2004-05-13 *** Released version 0.6.0
2788 2004-05-13 *** Released version 0.6.0
2784
2789
2785 2004-05-13 Fernando Perez <fperez@colorado.edu>
2790 2004-05-13 Fernando Perez <fperez@colorado.edu>
2786
2791
2787 * debian/: Added debian/ directory to CVS, so that debian support
2792 * debian/: Added debian/ directory to CVS, so that debian support
2788 is publicly accessible. The debian package is maintained by Jack
2793 is publicly accessible. The debian package is maintained by Jack
2789 Moffit <jack-AT-xiph.org>.
2794 Moffit <jack-AT-xiph.org>.
2790
2795
2791 * Documentation: included the notes about an ipython-based system
2796 * Documentation: included the notes about an ipython-based system
2792 shell (the hypothetical 'pysh') into the new_design.pdf document,
2797 shell (the hypothetical 'pysh') into the new_design.pdf document,
2793 so that these ideas get distributed to users along with the
2798 so that these ideas get distributed to users along with the
2794 official documentation.
2799 official documentation.
2795
2800
2796 2004-05-10 Fernando Perez <fperez@colorado.edu>
2801 2004-05-10 Fernando Perez <fperez@colorado.edu>
2797
2802
2798 * IPython/Logger.py (Logger.create_log): fix recently introduced
2803 * IPython/Logger.py (Logger.create_log): fix recently introduced
2799 bug (misindented line) where logstart would fail when not given an
2804 bug (misindented line) where logstart would fail when not given an
2800 explicit filename.
2805 explicit filename.
2801
2806
2802 2004-05-09 Fernando Perez <fperez@colorado.edu>
2807 2004-05-09 Fernando Perez <fperez@colorado.edu>
2803
2808
2804 * IPython/Magic.py (Magic.parse_options): skip system call when
2809 * IPython/Magic.py (Magic.parse_options): skip system call when
2805 there are no options to look for. Faster, cleaner for the common
2810 there are no options to look for. Faster, cleaner for the common
2806 case.
2811 case.
2807
2812
2808 * Documentation: many updates to the manual: describing Windows
2813 * Documentation: many updates to the manual: describing Windows
2809 support better, Gnuplot updates, credits, misc small stuff. Also
2814 support better, Gnuplot updates, credits, misc small stuff. Also
2810 updated the new_design doc a bit.
2815 updated the new_design doc a bit.
2811
2816
2812 2004-05-06 *** Released version 0.6.0.rc1
2817 2004-05-06 *** Released version 0.6.0.rc1
2813
2818
2814 2004-05-06 Fernando Perez <fperez@colorado.edu>
2819 2004-05-06 Fernando Perez <fperez@colorado.edu>
2815
2820
2816 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2821 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
2817 operations to use the vastly more efficient list/''.join() method.
2822 operations to use the vastly more efficient list/''.join() method.
2818 (FormattedTB.text): Fix
2823 (FormattedTB.text): Fix
2819 http://www.scipy.net/roundup/ipython/issue12 - exception source
2824 http://www.scipy.net/roundup/ipython/issue12 - exception source
2820 extract not updated after reload. Thanks to Mike Salib
2825 extract not updated after reload. Thanks to Mike Salib
2821 <msalib-AT-mit.edu> for pinning the source of the problem.
2826 <msalib-AT-mit.edu> for pinning the source of the problem.
2822 Fortunately, the solution works inside ipython and doesn't require
2827 Fortunately, the solution works inside ipython and doesn't require
2823 any changes to python proper.
2828 any changes to python proper.
2824
2829
2825 * IPython/Magic.py (Magic.parse_options): Improved to process the
2830 * IPython/Magic.py (Magic.parse_options): Improved to process the
2826 argument list as a true shell would (by actually using the
2831 argument list as a true shell would (by actually using the
2827 underlying system shell). This way, all @magics automatically get
2832 underlying system shell). This way, all @magics automatically get
2828 shell expansion for variables. Thanks to a comment by Alex
2833 shell expansion for variables. Thanks to a comment by Alex
2829 Schmolck.
2834 Schmolck.
2830
2835
2831 2004-04-04 Fernando Perez <fperez@colorado.edu>
2836 2004-04-04 Fernando Perez <fperez@colorado.edu>
2832
2837
2833 * IPython/iplib.py (InteractiveShell.interact): Added a special
2838 * IPython/iplib.py (InteractiveShell.interact): Added a special
2834 trap for a debugger quit exception, which is basically impossible
2839 trap for a debugger quit exception, which is basically impossible
2835 to handle by normal mechanisms, given what pdb does to the stack.
2840 to handle by normal mechanisms, given what pdb does to the stack.
2836 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2841 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
2837
2842
2838 2004-04-03 Fernando Perez <fperez@colorado.edu>
2843 2004-04-03 Fernando Perez <fperez@colorado.edu>
2839
2844
2840 * IPython/genutils.py (Term): Standardized the names of the Term
2845 * IPython/genutils.py (Term): Standardized the names of the Term
2841 class streams to cin/cout/cerr, following C++ naming conventions
2846 class streams to cin/cout/cerr, following C++ naming conventions
2842 (I can't use in/out/err because 'in' is not a valid attribute
2847 (I can't use in/out/err because 'in' is not a valid attribute
2843 name).
2848 name).
2844
2849
2845 * IPython/iplib.py (InteractiveShell.interact): don't increment
2850 * IPython/iplib.py (InteractiveShell.interact): don't increment
2846 the prompt if there's no user input. By Daniel 'Dang' Griffith
2851 the prompt if there's no user input. By Daniel 'Dang' Griffith
2847 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2852 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
2848 Francois Pinard.
2853 Francois Pinard.
2849
2854
2850 2004-04-02 Fernando Perez <fperez@colorado.edu>
2855 2004-04-02 Fernando Perez <fperez@colorado.edu>
2851
2856
2852 * IPython/genutils.py (Stream.__init__): Modified to survive at
2857 * IPython/genutils.py (Stream.__init__): Modified to survive at
2853 least importing in contexts where stdin/out/err aren't true file
2858 least importing in contexts where stdin/out/err aren't true file
2854 objects, such as PyCrust (they lack fileno() and mode). However,
2859 objects, such as PyCrust (they lack fileno() and mode). However,
2855 the recovery facilities which rely on these things existing will
2860 the recovery facilities which rely on these things existing will
2856 not work.
2861 not work.
2857
2862
2858 2004-04-01 Fernando Perez <fperez@colorado.edu>
2863 2004-04-01 Fernando Perez <fperez@colorado.edu>
2859
2864
2860 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2865 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
2861 use the new getoutputerror() function, so it properly
2866 use the new getoutputerror() function, so it properly
2862 distinguishes stdout/err.
2867 distinguishes stdout/err.
2863
2868
2864 * IPython/genutils.py (getoutputerror): added a function to
2869 * IPython/genutils.py (getoutputerror): added a function to
2865 capture separately the standard output and error of a command.
2870 capture separately the standard output and error of a command.
2866 After a comment from dang on the mailing lists. This code is
2871 After a comment from dang on the mailing lists. This code is
2867 basically a modified version of commands.getstatusoutput(), from
2872 basically a modified version of commands.getstatusoutput(), from
2868 the standard library.
2873 the standard library.
2869
2874
2870 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2875 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
2871 '!!' as a special syntax (shorthand) to access @sx.
2876 '!!' as a special syntax (shorthand) to access @sx.
2872
2877
2873 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2878 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
2874 command and return its output as a list split on '\n'.
2879 command and return its output as a list split on '\n'.
2875
2880
2876 2004-03-31 Fernando Perez <fperez@colorado.edu>
2881 2004-03-31 Fernando Perez <fperez@colorado.edu>
2877
2882
2878 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2883 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
2879 method to dictionaries used as FakeModule instances if they lack
2884 method to dictionaries used as FakeModule instances if they lack
2880 it. At least pydoc in python2.3 breaks for runtime-defined
2885 it. At least pydoc in python2.3 breaks for runtime-defined
2881 functions without this hack. At some point I need to _really_
2886 functions without this hack. At some point I need to _really_
2882 understand what FakeModule is doing, because it's a gross hack.
2887 understand what FakeModule is doing, because it's a gross hack.
2883 But it solves Arnd's problem for now...
2888 But it solves Arnd's problem for now...
2884
2889
2885 2004-02-27 Fernando Perez <fperez@colorado.edu>
2890 2004-02-27 Fernando Perez <fperez@colorado.edu>
2886
2891
2887 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2892 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
2888 mode would behave erratically. Also increased the number of
2893 mode would behave erratically. Also increased the number of
2889 possible logs in rotate mod to 999. Thanks to Rod Holland
2894 possible logs in rotate mod to 999. Thanks to Rod Holland
2890 <rhh@StructureLABS.com> for the report and fixes.
2895 <rhh@StructureLABS.com> for the report and fixes.
2891
2896
2892 2004-02-26 Fernando Perez <fperez@colorado.edu>
2897 2004-02-26 Fernando Perez <fperez@colorado.edu>
2893
2898
2894 * IPython/genutils.py (page): Check that the curses module really
2899 * IPython/genutils.py (page): Check that the curses module really
2895 has the initscr attribute before trying to use it. For some
2900 has the initscr attribute before trying to use it. For some
2896 reason, the Solaris curses module is missing this. I think this
2901 reason, the Solaris curses module is missing this. I think this
2897 should be considered a Solaris python bug, but I'm not sure.
2902 should be considered a Solaris python bug, but I'm not sure.
2898
2903
2899 2004-01-17 Fernando Perez <fperez@colorado.edu>
2904 2004-01-17 Fernando Perez <fperez@colorado.edu>
2900
2905
2901 * IPython/genutils.py (Stream.__init__): Changes to try to make
2906 * IPython/genutils.py (Stream.__init__): Changes to try to make
2902 ipython robust against stdin/out/err being closed by the user.
2907 ipython robust against stdin/out/err being closed by the user.
2903 This is 'user error' (and blocks a normal python session, at least
2908 This is 'user error' (and blocks a normal python session, at least
2904 the stdout case). However, Ipython should be able to survive such
2909 the stdout case). However, Ipython should be able to survive such
2905 instances of abuse as gracefully as possible. To simplify the
2910 instances of abuse as gracefully as possible. To simplify the
2906 coding and maintain compatibility with Gary Bishop's Term
2911 coding and maintain compatibility with Gary Bishop's Term
2907 contributions, I've made use of classmethods for this. I think
2912 contributions, I've made use of classmethods for this. I think
2908 this introduces a dependency on python 2.2.
2913 this introduces a dependency on python 2.2.
2909
2914
2910 2004-01-13 Fernando Perez <fperez@colorado.edu>
2915 2004-01-13 Fernando Perez <fperez@colorado.edu>
2911
2916
2912 * IPython/numutils.py (exp_safe): simplified the code a bit and
2917 * IPython/numutils.py (exp_safe): simplified the code a bit and
2913 removed the need for importing the kinds module altogether.
2918 removed the need for importing the kinds module altogether.
2914
2919
2915 2004-01-06 Fernando Perez <fperez@colorado.edu>
2920 2004-01-06 Fernando Perez <fperez@colorado.edu>
2916
2921
2917 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2922 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
2918 a magic function instead, after some community feedback. No
2923 a magic function instead, after some community feedback. No
2919 special syntax will exist for it, but its name is deliberately
2924 special syntax will exist for it, but its name is deliberately
2920 very short.
2925 very short.
2921
2926
2922 2003-12-20 Fernando Perez <fperez@colorado.edu>
2927 2003-12-20 Fernando Perez <fperez@colorado.edu>
2923
2928
2924 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2929 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
2925 new functionality, to automagically assign the result of a shell
2930 new functionality, to automagically assign the result of a shell
2926 command to a variable. I'll solicit some community feedback on
2931 command to a variable. I'll solicit some community feedback on
2927 this before making it permanent.
2932 this before making it permanent.
2928
2933
2929 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2934 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
2930 requested about callables for which inspect couldn't obtain a
2935 requested about callables for which inspect couldn't obtain a
2931 proper argspec. Thanks to a crash report sent by Etienne
2936 proper argspec. Thanks to a crash report sent by Etienne
2932 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2937 Posthumus <etienne-AT-apple01.cs.vu.nl>.
2933
2938
2934 2003-12-09 Fernando Perez <fperez@colorado.edu>
2939 2003-12-09 Fernando Perez <fperez@colorado.edu>
2935
2940
2936 * IPython/genutils.py (page): patch for the pager to work across
2941 * IPython/genutils.py (page): patch for the pager to work across
2937 various versions of Windows. By Gary Bishop.
2942 various versions of Windows. By Gary Bishop.
2938
2943
2939 2003-12-04 Fernando Perez <fperez@colorado.edu>
2944 2003-12-04 Fernando Perez <fperez@colorado.edu>
2940
2945
2941 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2946 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
2942 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2947 Gnuplot.py version 1.7, whose internal names changed quite a bit.
2943 While I tested this and it looks ok, there may still be corner
2948 While I tested this and it looks ok, there may still be corner
2944 cases I've missed.
2949 cases I've missed.
2945
2950
2946 2003-12-01 Fernando Perez <fperez@colorado.edu>
2951 2003-12-01 Fernando Perez <fperez@colorado.edu>
2947
2952
2948 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2953 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
2949 where a line like 'p,q=1,2' would fail because the automagic
2954 where a line like 'p,q=1,2' would fail because the automagic
2950 system would be triggered for @p.
2955 system would be triggered for @p.
2951
2956
2952 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2957 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
2953 cleanups, code unmodified.
2958 cleanups, code unmodified.
2954
2959
2955 * IPython/genutils.py (Term): added a class for IPython to handle
2960 * IPython/genutils.py (Term): added a class for IPython to handle
2956 output. In most cases it will just be a proxy for stdout/err, but
2961 output. In most cases it will just be a proxy for stdout/err, but
2957 having this allows modifications to be made for some platforms,
2962 having this allows modifications to be made for some platforms,
2958 such as handling color escapes under Windows. All of this code
2963 such as handling color escapes under Windows. All of this code
2959 was contributed by Gary Bishop, with minor modifications by me.
2964 was contributed by Gary Bishop, with minor modifications by me.
2960 The actual changes affect many files.
2965 The actual changes affect many files.
2961
2966
2962 2003-11-30 Fernando Perez <fperez@colorado.edu>
2967 2003-11-30 Fernando Perez <fperez@colorado.edu>
2963
2968
2964 * IPython/iplib.py (file_matches): new completion code, courtesy
2969 * IPython/iplib.py (file_matches): new completion code, courtesy
2965 of Jeff Collins. This enables filename completion again under
2970 of Jeff Collins. This enables filename completion again under
2966 python 2.3, which disabled it at the C level.
2971 python 2.3, which disabled it at the C level.
2967
2972
2968 2003-11-11 Fernando Perez <fperez@colorado.edu>
2973 2003-11-11 Fernando Perez <fperez@colorado.edu>
2969
2974
2970 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2975 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
2971 for Numeric.array(map(...)), but often convenient.
2976 for Numeric.array(map(...)), but often convenient.
2972
2977
2973 2003-11-05 Fernando Perez <fperez@colorado.edu>
2978 2003-11-05 Fernando Perez <fperez@colorado.edu>
2974
2979
2975 * IPython/numutils.py (frange): Changed a call from int() to
2980 * IPython/numutils.py (frange): Changed a call from int() to
2976 int(round()) to prevent a problem reported with arange() in the
2981 int(round()) to prevent a problem reported with arange() in the
2977 numpy list.
2982 numpy list.
2978
2983
2979 2003-10-06 Fernando Perez <fperez@colorado.edu>
2984 2003-10-06 Fernando Perez <fperez@colorado.edu>
2980
2985
2981 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2986 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
2982 prevent crashes if sys lacks an argv attribute (it happens with
2987 prevent crashes if sys lacks an argv attribute (it happens with
2983 embedded interpreters which build a bare-bones sys module).
2988 embedded interpreters which build a bare-bones sys module).
2984 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2989 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
2985
2990
2986 2003-09-24 Fernando Perez <fperez@colorado.edu>
2991 2003-09-24 Fernando Perez <fperez@colorado.edu>
2987
2992
2988 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2993 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
2989 to protect against poorly written user objects where __getattr__
2994 to protect against poorly written user objects where __getattr__
2990 raises exceptions other than AttributeError. Thanks to a bug
2995 raises exceptions other than AttributeError. Thanks to a bug
2991 report by Oliver Sander <osander-AT-gmx.de>.
2996 report by Oliver Sander <osander-AT-gmx.de>.
2992
2997
2993 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2998 * IPython/FakeModule.py (FakeModule.__repr__): this method was
2994 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2999 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
2995
3000
2996 2003-09-09 Fernando Perez <fperez@colorado.edu>
3001 2003-09-09 Fernando Perez <fperez@colorado.edu>
2997
3002
2998 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3003 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2999 unpacking a list whith a callable as first element would
3004 unpacking a list whith a callable as first element would
3000 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3005 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3001 Collins.
3006 Collins.
3002
3007
3003 2003-08-25 *** Released version 0.5.0
3008 2003-08-25 *** Released version 0.5.0
3004
3009
3005 2003-08-22 Fernando Perez <fperez@colorado.edu>
3010 2003-08-22 Fernando Perez <fperez@colorado.edu>
3006
3011
3007 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3012 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3008 improperly defined user exceptions. Thanks to feedback from Mark
3013 improperly defined user exceptions. Thanks to feedback from Mark
3009 Russell <mrussell-AT-verio.net>.
3014 Russell <mrussell-AT-verio.net>.
3010
3015
3011 2003-08-20 Fernando Perez <fperez@colorado.edu>
3016 2003-08-20 Fernando Perez <fperez@colorado.edu>
3012
3017
3013 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3018 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3014 printing so that it would print multi-line string forms starting
3019 printing so that it would print multi-line string forms starting
3015 with a new line. This way the formatting is better respected for
3020 with a new line. This way the formatting is better respected for
3016 objects which work hard to make nice string forms.
3021 objects which work hard to make nice string forms.
3017
3022
3018 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3023 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3019 autocall would overtake data access for objects with both
3024 autocall would overtake data access for objects with both
3020 __getitem__ and __call__.
3025 __getitem__ and __call__.
3021
3026
3022 2003-08-19 *** Released version 0.5.0-rc1
3027 2003-08-19 *** Released version 0.5.0-rc1
3023
3028
3024 2003-08-19 Fernando Perez <fperez@colorado.edu>
3029 2003-08-19 Fernando Perez <fperez@colorado.edu>
3025
3030
3026 * IPython/deep_reload.py (load_tail): single tiny change here
3031 * IPython/deep_reload.py (load_tail): single tiny change here
3027 seems to fix the long-standing bug of dreload() failing to work
3032 seems to fix the long-standing bug of dreload() failing to work
3028 for dotted names. But this module is pretty tricky, so I may have
3033 for dotted names. But this module is pretty tricky, so I may have
3029 missed some subtlety. Needs more testing!.
3034 missed some subtlety. Needs more testing!.
3030
3035
3031 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3036 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3032 exceptions which have badly implemented __str__ methods.
3037 exceptions which have badly implemented __str__ methods.
3033 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3038 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3034 which I've been getting reports about from Python 2.3 users. I
3039 which I've been getting reports about from Python 2.3 users. I
3035 wish I had a simple test case to reproduce the problem, so I could
3040 wish I had a simple test case to reproduce the problem, so I could
3036 either write a cleaner workaround or file a bug report if
3041 either write a cleaner workaround or file a bug report if
3037 necessary.
3042 necessary.
3038
3043
3039 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3044 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3040 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3045 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3041 a bug report by Tjabo Kloppenburg.
3046 a bug report by Tjabo Kloppenburg.
3042
3047
3043 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3048 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3044 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3049 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3045 seems rather unstable. Thanks to a bug report by Tjabo
3050 seems rather unstable. Thanks to a bug report by Tjabo
3046 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3051 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3047
3052
3048 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3053 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3049 this out soon because of the critical fixes in the inner loop for
3054 this out soon because of the critical fixes in the inner loop for
3050 generators.
3055 generators.
3051
3056
3052 * IPython/Magic.py (Magic.getargspec): removed. This (and
3057 * IPython/Magic.py (Magic.getargspec): removed. This (and
3053 _get_def) have been obsoleted by OInspect for a long time, I
3058 _get_def) have been obsoleted by OInspect for a long time, I
3054 hadn't noticed that they were dead code.
3059 hadn't noticed that they were dead code.
3055 (Magic._ofind): restored _ofind functionality for a few literals
3060 (Magic._ofind): restored _ofind functionality for a few literals
3056 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3061 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3057 for things like "hello".capitalize?, since that would require a
3062 for things like "hello".capitalize?, since that would require a
3058 potentially dangerous eval() again.
3063 potentially dangerous eval() again.
3059
3064
3060 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3065 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3061 logic a bit more to clean up the escapes handling and minimize the
3066 logic a bit more to clean up the escapes handling and minimize the
3062 use of _ofind to only necessary cases. The interactive 'feel' of
3067 use of _ofind to only necessary cases. The interactive 'feel' of
3063 IPython should have improved quite a bit with the changes in
3068 IPython should have improved quite a bit with the changes in
3064 _prefilter and _ofind (besides being far safer than before).
3069 _prefilter and _ofind (besides being far safer than before).
3065
3070
3066 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3071 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3067 obscure, never reported). Edit would fail to find the object to
3072 obscure, never reported). Edit would fail to find the object to
3068 edit under some circumstances.
3073 edit under some circumstances.
3069 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3074 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3070 which were causing double-calling of generators. Those eval calls
3075 which were causing double-calling of generators. Those eval calls
3071 were _very_ dangerous, since code with side effects could be
3076 were _very_ dangerous, since code with side effects could be
3072 triggered. As they say, 'eval is evil'... These were the
3077 triggered. As they say, 'eval is evil'... These were the
3073 nastiest evals in IPython. Besides, _ofind is now far simpler,
3078 nastiest evals in IPython. Besides, _ofind is now far simpler,
3074 and it should also be quite a bit faster. Its use of inspect is
3079 and it should also be quite a bit faster. Its use of inspect is
3075 also safer, so perhaps some of the inspect-related crashes I've
3080 also safer, so perhaps some of the inspect-related crashes I've
3076 seen lately with Python 2.3 might be taken care of. That will
3081 seen lately with Python 2.3 might be taken care of. That will
3077 need more testing.
3082 need more testing.
3078
3083
3079 2003-08-17 Fernando Perez <fperez@colorado.edu>
3084 2003-08-17 Fernando Perez <fperez@colorado.edu>
3080
3085
3081 * IPython/iplib.py (InteractiveShell._prefilter): significant
3086 * IPython/iplib.py (InteractiveShell._prefilter): significant
3082 simplifications to the logic for handling user escapes. Faster
3087 simplifications to the logic for handling user escapes. Faster
3083 and simpler code.
3088 and simpler code.
3084
3089
3085 2003-08-14 Fernando Perez <fperez@colorado.edu>
3090 2003-08-14 Fernando Perez <fperez@colorado.edu>
3086
3091
3087 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3092 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3088 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3093 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3089 but it should be quite a bit faster. And the recursive version
3094 but it should be quite a bit faster. And the recursive version
3090 generated O(log N) intermediate storage for all rank>1 arrays,
3095 generated O(log N) intermediate storage for all rank>1 arrays,
3091 even if they were contiguous.
3096 even if they were contiguous.
3092 (l1norm): Added this function.
3097 (l1norm): Added this function.
3093 (norm): Added this function for arbitrary norms (including
3098 (norm): Added this function for arbitrary norms (including
3094 l-infinity). l1 and l2 are still special cases for convenience
3099 l-infinity). l1 and l2 are still special cases for convenience
3095 and speed.
3100 and speed.
3096
3101
3097 2003-08-03 Fernando Perez <fperez@colorado.edu>
3102 2003-08-03 Fernando Perez <fperez@colorado.edu>
3098
3103
3099 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3104 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3100 exceptions, which now raise PendingDeprecationWarnings in Python
3105 exceptions, which now raise PendingDeprecationWarnings in Python
3101 2.3. There were some in Magic and some in Gnuplot2.
3106 2.3. There were some in Magic and some in Gnuplot2.
3102
3107
3103 2003-06-30 Fernando Perez <fperez@colorado.edu>
3108 2003-06-30 Fernando Perez <fperez@colorado.edu>
3104
3109
3105 * IPython/genutils.py (page): modified to call curses only for
3110 * IPython/genutils.py (page): modified to call curses only for
3106 terminals where TERM=='xterm'. After problems under many other
3111 terminals where TERM=='xterm'. After problems under many other
3107 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3112 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3108
3113
3109 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3114 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3110 would be triggered when readline was absent. This was just an old
3115 would be triggered when readline was absent. This was just an old
3111 debugging statement I'd forgotten to take out.
3116 debugging statement I'd forgotten to take out.
3112
3117
3113 2003-06-20 Fernando Perez <fperez@colorado.edu>
3118 2003-06-20 Fernando Perez <fperez@colorado.edu>
3114
3119
3115 * IPython/genutils.py (clock): modified to return only user time
3120 * IPython/genutils.py (clock): modified to return only user time
3116 (not counting system time), after a discussion on scipy. While
3121 (not counting system time), after a discussion on scipy. While
3117 system time may be a useful quantity occasionally, it may much
3122 system time may be a useful quantity occasionally, it may much
3118 more easily be skewed by occasional swapping or other similar
3123 more easily be skewed by occasional swapping or other similar
3119 activity.
3124 activity.
3120
3125
3121 2003-06-05 Fernando Perez <fperez@colorado.edu>
3126 2003-06-05 Fernando Perez <fperez@colorado.edu>
3122
3127
3123 * IPython/numutils.py (identity): new function, for building
3128 * IPython/numutils.py (identity): new function, for building
3124 arbitrary rank Kronecker deltas (mostly backwards compatible with
3129 arbitrary rank Kronecker deltas (mostly backwards compatible with
3125 Numeric.identity)
3130 Numeric.identity)
3126
3131
3127 2003-06-03 Fernando Perez <fperez@colorado.edu>
3132 2003-06-03 Fernando Perez <fperez@colorado.edu>
3128
3133
3129 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3134 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3130 arguments passed to magics with spaces, to allow trailing '\' to
3135 arguments passed to magics with spaces, to allow trailing '\' to
3131 work normally (mainly for Windows users).
3136 work normally (mainly for Windows users).
3132
3137
3133 2003-05-29 Fernando Perez <fperez@colorado.edu>
3138 2003-05-29 Fernando Perez <fperez@colorado.edu>
3134
3139
3135 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3140 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3136 instead of pydoc.help. This fixes a bizarre behavior where
3141 instead of pydoc.help. This fixes a bizarre behavior where
3137 printing '%s' % locals() would trigger the help system. Now
3142 printing '%s' % locals() would trigger the help system. Now
3138 ipython behaves like normal python does.
3143 ipython behaves like normal python does.
3139
3144
3140 Note that if one does 'from pydoc import help', the bizarre
3145 Note that if one does 'from pydoc import help', the bizarre
3141 behavior returns, but this will also happen in normal python, so
3146 behavior returns, but this will also happen in normal python, so
3142 it's not an ipython bug anymore (it has to do with how pydoc.help
3147 it's not an ipython bug anymore (it has to do with how pydoc.help
3143 is implemented).
3148 is implemented).
3144
3149
3145 2003-05-22 Fernando Perez <fperez@colorado.edu>
3150 2003-05-22 Fernando Perez <fperez@colorado.edu>
3146
3151
3147 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3152 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3148 return [] instead of None when nothing matches, also match to end
3153 return [] instead of None when nothing matches, also match to end
3149 of line. Patch by Gary Bishop.
3154 of line. Patch by Gary Bishop.
3150
3155
3151 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3156 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3152 protection as before, for files passed on the command line. This
3157 protection as before, for files passed on the command line. This
3153 prevents the CrashHandler from kicking in if user files call into
3158 prevents the CrashHandler from kicking in if user files call into
3154 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3159 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3155 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3160 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3156
3161
3157 2003-05-20 *** Released version 0.4.0
3162 2003-05-20 *** Released version 0.4.0
3158
3163
3159 2003-05-20 Fernando Perez <fperez@colorado.edu>
3164 2003-05-20 Fernando Perez <fperez@colorado.edu>
3160
3165
3161 * setup.py: added support for manpages. It's a bit hackish b/c of
3166 * setup.py: added support for manpages. It's a bit hackish b/c of
3162 a bug in the way the bdist_rpm distutils target handles gzipped
3167 a bug in the way the bdist_rpm distutils target handles gzipped
3163 manpages, but it works. After a patch by Jack.
3168 manpages, but it works. After a patch by Jack.
3164
3169
3165 2003-05-19 Fernando Perez <fperez@colorado.edu>
3170 2003-05-19 Fernando Perez <fperez@colorado.edu>
3166
3171
3167 * IPython/numutils.py: added a mockup of the kinds module, since
3172 * IPython/numutils.py: added a mockup of the kinds module, since
3168 it was recently removed from Numeric. This way, numutils will
3173 it was recently removed from Numeric. This way, numutils will
3169 work for all users even if they are missing kinds.
3174 work for all users even if they are missing kinds.
3170
3175
3171 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3176 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3172 failure, which can occur with SWIG-wrapped extensions. After a
3177 failure, which can occur with SWIG-wrapped extensions. After a
3173 crash report from Prabhu.
3178 crash report from Prabhu.
3174
3179
3175 2003-05-16 Fernando Perez <fperez@colorado.edu>
3180 2003-05-16 Fernando Perez <fperez@colorado.edu>
3176
3181
3177 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3182 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3178 protect ipython from user code which may call directly
3183 protect ipython from user code which may call directly
3179 sys.excepthook (this looks like an ipython crash to the user, even
3184 sys.excepthook (this looks like an ipython crash to the user, even
3180 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3185 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3181 This is especially important to help users of WxWindows, but may
3186 This is especially important to help users of WxWindows, but may
3182 also be useful in other cases.
3187 also be useful in other cases.
3183
3188
3184 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3189 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3185 an optional tb_offset to be specified, and to preserve exception
3190 an optional tb_offset to be specified, and to preserve exception
3186 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3191 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3187
3192
3188 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3193 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3189
3194
3190 2003-05-15 Fernando Perez <fperez@colorado.edu>
3195 2003-05-15 Fernando Perez <fperez@colorado.edu>
3191
3196
3192 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3197 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3193 installing for a new user under Windows.
3198 installing for a new user under Windows.
3194
3199
3195 2003-05-12 Fernando Perez <fperez@colorado.edu>
3200 2003-05-12 Fernando Perez <fperez@colorado.edu>
3196
3201
3197 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3202 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3198 handler for Emacs comint-based lines. Currently it doesn't do
3203 handler for Emacs comint-based lines. Currently it doesn't do
3199 much (but importantly, it doesn't update the history cache). In
3204 much (but importantly, it doesn't update the history cache). In
3200 the future it may be expanded if Alex needs more functionality
3205 the future it may be expanded if Alex needs more functionality
3201 there.
3206 there.
3202
3207
3203 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3208 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3204 info to crash reports.
3209 info to crash reports.
3205
3210
3206 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3211 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3207 just like Python's -c. Also fixed crash with invalid -color
3212 just like Python's -c. Also fixed crash with invalid -color
3208 option value at startup. Thanks to Will French
3213 option value at startup. Thanks to Will French
3209 <wfrench-AT-bestweb.net> for the bug report.
3214 <wfrench-AT-bestweb.net> for the bug report.
3210
3215
3211 2003-05-09 Fernando Perez <fperez@colorado.edu>
3216 2003-05-09 Fernando Perez <fperez@colorado.edu>
3212
3217
3213 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3218 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3214 to EvalDict (it's a mapping, after all) and simplified its code
3219 to EvalDict (it's a mapping, after all) and simplified its code
3215 quite a bit, after a nice discussion on c.l.py where Gustavo
3220 quite a bit, after a nice discussion on c.l.py where Gustavo
3216 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3221 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3217
3222
3218 2003-04-30 Fernando Perez <fperez@colorado.edu>
3223 2003-04-30 Fernando Perez <fperez@colorado.edu>
3219
3224
3220 * IPython/genutils.py (timings_out): modified it to reduce its
3225 * IPython/genutils.py (timings_out): modified it to reduce its
3221 overhead in the common reps==1 case.
3226 overhead in the common reps==1 case.
3222
3227
3223 2003-04-29 Fernando Perez <fperez@colorado.edu>
3228 2003-04-29 Fernando Perez <fperez@colorado.edu>
3224
3229
3225 * IPython/genutils.py (timings_out): Modified to use the resource
3230 * IPython/genutils.py (timings_out): Modified to use the resource
3226 module, which avoids the wraparound problems of time.clock().
3231 module, which avoids the wraparound problems of time.clock().
3227
3232
3228 2003-04-17 *** Released version 0.2.15pre4
3233 2003-04-17 *** Released version 0.2.15pre4
3229
3234
3230 2003-04-17 Fernando Perez <fperez@colorado.edu>
3235 2003-04-17 Fernando Perez <fperez@colorado.edu>
3231
3236
3232 * setup.py (scriptfiles): Split windows-specific stuff over to a
3237 * setup.py (scriptfiles): Split windows-specific stuff over to a
3233 separate file, in an attempt to have a Windows GUI installer.
3238 separate file, in an attempt to have a Windows GUI installer.
3234 That didn't work, but part of the groundwork is done.
3239 That didn't work, but part of the groundwork is done.
3235
3240
3236 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3241 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3237 indent/unindent with 4 spaces. Particularly useful in combination
3242 indent/unindent with 4 spaces. Particularly useful in combination
3238 with the new auto-indent option.
3243 with the new auto-indent option.
3239
3244
3240 2003-04-16 Fernando Perez <fperez@colorado.edu>
3245 2003-04-16 Fernando Perez <fperez@colorado.edu>
3241
3246
3242 * IPython/Magic.py: various replacements of self.rc for
3247 * IPython/Magic.py: various replacements of self.rc for
3243 self.shell.rc. A lot more remains to be done to fully disentangle
3248 self.shell.rc. A lot more remains to be done to fully disentangle
3244 this class from the main Shell class.
3249 this class from the main Shell class.
3245
3250
3246 * IPython/GnuplotRuntime.py: added checks for mouse support so
3251 * IPython/GnuplotRuntime.py: added checks for mouse support so
3247 that we don't try to enable it if the current gnuplot doesn't
3252 that we don't try to enable it if the current gnuplot doesn't
3248 really support it. Also added checks so that we don't try to
3253 really support it. Also added checks so that we don't try to
3249 enable persist under Windows (where Gnuplot doesn't recognize the
3254 enable persist under Windows (where Gnuplot doesn't recognize the
3250 option).
3255 option).
3251
3256
3252 * IPython/iplib.py (InteractiveShell.interact): Added optional
3257 * IPython/iplib.py (InteractiveShell.interact): Added optional
3253 auto-indenting code, after a patch by King C. Shu
3258 auto-indenting code, after a patch by King C. Shu
3254 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3259 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3255 get along well with pasting indented code. If I ever figure out
3260 get along well with pasting indented code. If I ever figure out
3256 how to make that part go well, it will become on by default.
3261 how to make that part go well, it will become on by default.
3257
3262
3258 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3263 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3259 crash ipython if there was an unmatched '%' in the user's prompt
3264 crash ipython if there was an unmatched '%' in the user's prompt
3260 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3265 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3261
3266
3262 * IPython/iplib.py (InteractiveShell.interact): removed the
3267 * IPython/iplib.py (InteractiveShell.interact): removed the
3263 ability to ask the user whether he wants to crash or not at the
3268 ability to ask the user whether he wants to crash or not at the
3264 'last line' exception handler. Calling functions at that point
3269 'last line' exception handler. Calling functions at that point
3265 changes the stack, and the error reports would have incorrect
3270 changes the stack, and the error reports would have incorrect
3266 tracebacks.
3271 tracebacks.
3267
3272
3268 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3273 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3269 pass through a peger a pretty-printed form of any object. After a
3274 pass through a peger a pretty-printed form of any object. After a
3270 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3275 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3271
3276
3272 2003-04-14 Fernando Perez <fperez@colorado.edu>
3277 2003-04-14 Fernando Perez <fperez@colorado.edu>
3273
3278
3274 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3279 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3275 all files in ~ would be modified at first install (instead of
3280 all files in ~ would be modified at first install (instead of
3276 ~/.ipython). This could be potentially disastrous, as the
3281 ~/.ipython). This could be potentially disastrous, as the
3277 modification (make line-endings native) could damage binary files.
3282 modification (make line-endings native) could damage binary files.
3278
3283
3279 2003-04-10 Fernando Perez <fperez@colorado.edu>
3284 2003-04-10 Fernando Perez <fperez@colorado.edu>
3280
3285
3281 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3286 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3282 handle only lines which are invalid python. This now means that
3287 handle only lines which are invalid python. This now means that
3283 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3288 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3284 for the bug report.
3289 for the bug report.
3285
3290
3286 2003-04-01 Fernando Perez <fperez@colorado.edu>
3291 2003-04-01 Fernando Perez <fperez@colorado.edu>
3287
3292
3288 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3293 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3289 where failing to set sys.last_traceback would crash pdb.pm().
3294 where failing to set sys.last_traceback would crash pdb.pm().
3290 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3295 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3291 report.
3296 report.
3292
3297
3293 2003-03-25 Fernando Perez <fperez@colorado.edu>
3298 2003-03-25 Fernando Perez <fperez@colorado.edu>
3294
3299
3295 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3300 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3296 before printing it (it had a lot of spurious blank lines at the
3301 before printing it (it had a lot of spurious blank lines at the
3297 end).
3302 end).
3298
3303
3299 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3304 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3300 output would be sent 21 times! Obviously people don't use this
3305 output would be sent 21 times! Obviously people don't use this
3301 too often, or I would have heard about it.
3306 too often, or I would have heard about it.
3302
3307
3303 2003-03-24 Fernando Perez <fperez@colorado.edu>
3308 2003-03-24 Fernando Perez <fperez@colorado.edu>
3304
3309
3305 * setup.py (scriptfiles): renamed the data_files parameter from
3310 * setup.py (scriptfiles): renamed the data_files parameter from
3306 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3311 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3307 for the patch.
3312 for the patch.
3308
3313
3309 2003-03-20 Fernando Perez <fperez@colorado.edu>
3314 2003-03-20 Fernando Perez <fperez@colorado.edu>
3310
3315
3311 * IPython/genutils.py (error): added error() and fatal()
3316 * IPython/genutils.py (error): added error() and fatal()
3312 functions.
3317 functions.
3313
3318
3314 2003-03-18 *** Released version 0.2.15pre3
3319 2003-03-18 *** Released version 0.2.15pre3
3315
3320
3316 2003-03-18 Fernando Perez <fperez@colorado.edu>
3321 2003-03-18 Fernando Perez <fperez@colorado.edu>
3317
3322
3318 * setupext/install_data_ext.py
3323 * setupext/install_data_ext.py
3319 (install_data_ext.initialize_options): Class contributed by Jack
3324 (install_data_ext.initialize_options): Class contributed by Jack
3320 Moffit for fixing the old distutils hack. He is sending this to
3325 Moffit for fixing the old distutils hack. He is sending this to
3321 the distutils folks so in the future we may not need it as a
3326 the distutils folks so in the future we may not need it as a
3322 private fix.
3327 private fix.
3323
3328
3324 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3329 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3325 changes for Debian packaging. See his patch for full details.
3330 changes for Debian packaging. See his patch for full details.
3326 The old distutils hack of making the ipythonrc* files carry a
3331 The old distutils hack of making the ipythonrc* files carry a
3327 bogus .py extension is gone, at last. Examples were moved to a
3332 bogus .py extension is gone, at last. Examples were moved to a
3328 separate subdir under doc/, and the separate executable scripts
3333 separate subdir under doc/, and the separate executable scripts
3329 now live in their own directory. Overall a great cleanup. The
3334 now live in their own directory. Overall a great cleanup. The
3330 manual was updated to use the new files, and setup.py has been
3335 manual was updated to use the new files, and setup.py has been
3331 fixed for this setup.
3336 fixed for this setup.
3332
3337
3333 * IPython/PyColorize.py (Parser.usage): made non-executable and
3338 * IPython/PyColorize.py (Parser.usage): made non-executable and
3334 created a pycolor wrapper around it to be included as a script.
3339 created a pycolor wrapper around it to be included as a script.
3335
3340
3336 2003-03-12 *** Released version 0.2.15pre2
3341 2003-03-12 *** Released version 0.2.15pre2
3337
3342
3338 2003-03-12 Fernando Perez <fperez@colorado.edu>
3343 2003-03-12 Fernando Perez <fperez@colorado.edu>
3339
3344
3340 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3345 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3341 long-standing problem with garbage characters in some terminals.
3346 long-standing problem with garbage characters in some terminals.
3342 The issue was really that the \001 and \002 escapes must _only_ be
3347 The issue was really that the \001 and \002 escapes must _only_ be
3343 passed to input prompts (which call readline), but _never_ to
3348 passed to input prompts (which call readline), but _never_ to
3344 normal text to be printed on screen. I changed ColorANSI to have
3349 normal text to be printed on screen. I changed ColorANSI to have
3345 two classes: TermColors and InputTermColors, each with the
3350 two classes: TermColors and InputTermColors, each with the
3346 appropriate escapes for input prompts or normal text. The code in
3351 appropriate escapes for input prompts or normal text. The code in
3347 Prompts.py got slightly more complicated, but this very old and
3352 Prompts.py got slightly more complicated, but this very old and
3348 annoying bug is finally fixed.
3353 annoying bug is finally fixed.
3349
3354
3350 All the credit for nailing down the real origin of this problem
3355 All the credit for nailing down the real origin of this problem
3351 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3356 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3352 *Many* thanks to him for spending quite a bit of effort on this.
3357 *Many* thanks to him for spending quite a bit of effort on this.
3353
3358
3354 2003-03-05 *** Released version 0.2.15pre1
3359 2003-03-05 *** Released version 0.2.15pre1
3355
3360
3356 2003-03-03 Fernando Perez <fperez@colorado.edu>
3361 2003-03-03 Fernando Perez <fperez@colorado.edu>
3357
3362
3358 * IPython/FakeModule.py: Moved the former _FakeModule to a
3363 * IPython/FakeModule.py: Moved the former _FakeModule to a
3359 separate file, because it's also needed by Magic (to fix a similar
3364 separate file, because it's also needed by Magic (to fix a similar
3360 pickle-related issue in @run).
3365 pickle-related issue in @run).
3361
3366
3362 2003-03-02 Fernando Perez <fperez@colorado.edu>
3367 2003-03-02 Fernando Perez <fperez@colorado.edu>
3363
3368
3364 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3369 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3365 the autocall option at runtime.
3370 the autocall option at runtime.
3366 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3371 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3367 across Magic.py to start separating Magic from InteractiveShell.
3372 across Magic.py to start separating Magic from InteractiveShell.
3368 (Magic._ofind): Fixed to return proper namespace for dotted
3373 (Magic._ofind): Fixed to return proper namespace for dotted
3369 names. Before, a dotted name would always return 'not currently
3374 names. Before, a dotted name would always return 'not currently
3370 defined', because it would find the 'parent'. s.x would be found,
3375 defined', because it would find the 'parent'. s.x would be found,
3371 but since 'x' isn't defined by itself, it would get confused.
3376 but since 'x' isn't defined by itself, it would get confused.
3372 (Magic.magic_run): Fixed pickling problems reported by Ralf
3377 (Magic.magic_run): Fixed pickling problems reported by Ralf
3373 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3378 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3374 that I'd used when Mike Heeter reported similar issues at the
3379 that I'd used when Mike Heeter reported similar issues at the
3375 top-level, but now for @run. It boils down to injecting the
3380 top-level, but now for @run. It boils down to injecting the
3376 namespace where code is being executed with something that looks
3381 namespace where code is being executed with something that looks
3377 enough like a module to fool pickle.dump(). Since a pickle stores
3382 enough like a module to fool pickle.dump(). Since a pickle stores
3378 a named reference to the importing module, we need this for
3383 a named reference to the importing module, we need this for
3379 pickles to save something sensible.
3384 pickles to save something sensible.
3380
3385
3381 * IPython/ipmaker.py (make_IPython): added an autocall option.
3386 * IPython/ipmaker.py (make_IPython): added an autocall option.
3382
3387
3383 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3388 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3384 the auto-eval code. Now autocalling is an option, and the code is
3389 the auto-eval code. Now autocalling is an option, and the code is
3385 also vastly safer. There is no more eval() involved at all.
3390 also vastly safer. There is no more eval() involved at all.
3386
3391
3387 2003-03-01 Fernando Perez <fperez@colorado.edu>
3392 2003-03-01 Fernando Perez <fperez@colorado.edu>
3388
3393
3389 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3394 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3390 dict with named keys instead of a tuple.
3395 dict with named keys instead of a tuple.
3391
3396
3392 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3397 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3393
3398
3394 * setup.py (make_shortcut): Fixed message about directories
3399 * setup.py (make_shortcut): Fixed message about directories
3395 created during Windows installation (the directories were ok, just
3400 created during Windows installation (the directories were ok, just
3396 the printed message was misleading). Thanks to Chris Liechti
3401 the printed message was misleading). Thanks to Chris Liechti
3397 <cliechti-AT-gmx.net> for the heads up.
3402 <cliechti-AT-gmx.net> for the heads up.
3398
3403
3399 2003-02-21 Fernando Perez <fperez@colorado.edu>
3404 2003-02-21 Fernando Perez <fperez@colorado.edu>
3400
3405
3401 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3406 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3402 of ValueError exception when checking for auto-execution. This
3407 of ValueError exception when checking for auto-execution. This
3403 one is raised by things like Numeric arrays arr.flat when the
3408 one is raised by things like Numeric arrays arr.flat when the
3404 array is non-contiguous.
3409 array is non-contiguous.
3405
3410
3406 2003-01-31 Fernando Perez <fperez@colorado.edu>
3411 2003-01-31 Fernando Perez <fperez@colorado.edu>
3407
3412
3408 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3413 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3409 not return any value at all (even though the command would get
3414 not return any value at all (even though the command would get
3410 executed).
3415 executed).
3411 (xsys): Flush stdout right after printing the command to ensure
3416 (xsys): Flush stdout right after printing the command to ensure
3412 proper ordering of commands and command output in the total
3417 proper ordering of commands and command output in the total
3413 output.
3418 output.
3414 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3419 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3415 system/getoutput as defaults. The old ones are kept for
3420 system/getoutput as defaults. The old ones are kept for
3416 compatibility reasons, so no code which uses this library needs
3421 compatibility reasons, so no code which uses this library needs
3417 changing.
3422 changing.
3418
3423
3419 2003-01-27 *** Released version 0.2.14
3424 2003-01-27 *** Released version 0.2.14
3420
3425
3421 2003-01-25 Fernando Perez <fperez@colorado.edu>
3426 2003-01-25 Fernando Perez <fperez@colorado.edu>
3422
3427
3423 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3428 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3424 functions defined in previous edit sessions could not be re-edited
3429 functions defined in previous edit sessions could not be re-edited
3425 (because the temp files were immediately removed). Now temp files
3430 (because the temp files were immediately removed). Now temp files
3426 are removed only at IPython's exit.
3431 are removed only at IPython's exit.
3427 (Magic.magic_run): Improved @run to perform shell-like expansions
3432 (Magic.magic_run): Improved @run to perform shell-like expansions
3428 on its arguments (~users and $VARS). With this, @run becomes more
3433 on its arguments (~users and $VARS). With this, @run becomes more
3429 like a normal command-line.
3434 like a normal command-line.
3430
3435
3431 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3436 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3432 bugs related to embedding and cleaned up that code. A fairly
3437 bugs related to embedding and cleaned up that code. A fairly
3433 important one was the impossibility to access the global namespace
3438 important one was the impossibility to access the global namespace
3434 through the embedded IPython (only local variables were visible).
3439 through the embedded IPython (only local variables were visible).
3435
3440
3436 2003-01-14 Fernando Perez <fperez@colorado.edu>
3441 2003-01-14 Fernando Perez <fperez@colorado.edu>
3437
3442
3438 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3443 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3439 auto-calling to be a bit more conservative. Now it doesn't get
3444 auto-calling to be a bit more conservative. Now it doesn't get
3440 triggered if any of '!=()<>' are in the rest of the input line, to
3445 triggered if any of '!=()<>' are in the rest of the input line, to
3441 allow comparing callables. Thanks to Alex for the heads up.
3446 allow comparing callables. Thanks to Alex for the heads up.
3442
3447
3443 2003-01-07 Fernando Perez <fperez@colorado.edu>
3448 2003-01-07 Fernando Perez <fperez@colorado.edu>
3444
3449
3445 * IPython/genutils.py (page): fixed estimation of the number of
3450 * IPython/genutils.py (page): fixed estimation of the number of
3446 lines in a string to be paged to simply count newlines. This
3451 lines in a string to be paged to simply count newlines. This
3447 prevents over-guessing due to embedded escape sequences. A better
3452 prevents over-guessing due to embedded escape sequences. A better
3448 long-term solution would involve stripping out the control chars
3453 long-term solution would involve stripping out the control chars
3449 for the count, but it's potentially so expensive I just don't
3454 for the count, but it's potentially so expensive I just don't
3450 think it's worth doing.
3455 think it's worth doing.
3451
3456
3452 2002-12-19 *** Released version 0.2.14pre50
3457 2002-12-19 *** Released version 0.2.14pre50
3453
3458
3454 2002-12-19 Fernando Perez <fperez@colorado.edu>
3459 2002-12-19 Fernando Perez <fperez@colorado.edu>
3455
3460
3456 * tools/release (version): Changed release scripts to inform
3461 * tools/release (version): Changed release scripts to inform
3457 Andrea and build a NEWS file with a list of recent changes.
3462 Andrea and build a NEWS file with a list of recent changes.
3458
3463
3459 * IPython/ColorANSI.py (__all__): changed terminal detection
3464 * IPython/ColorANSI.py (__all__): changed terminal detection
3460 code. Seems to work better for xterms without breaking
3465 code. Seems to work better for xterms without breaking
3461 konsole. Will need more testing to determine if WinXP and Mac OSX
3466 konsole. Will need more testing to determine if WinXP and Mac OSX
3462 also work ok.
3467 also work ok.
3463
3468
3464 2002-12-18 *** Released version 0.2.14pre49
3469 2002-12-18 *** Released version 0.2.14pre49
3465
3470
3466 2002-12-18 Fernando Perez <fperez@colorado.edu>
3471 2002-12-18 Fernando Perez <fperez@colorado.edu>
3467
3472
3468 * Docs: added new info about Mac OSX, from Andrea.
3473 * Docs: added new info about Mac OSX, from Andrea.
3469
3474
3470 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3475 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3471 allow direct plotting of python strings whose format is the same
3476 allow direct plotting of python strings whose format is the same
3472 of gnuplot data files.
3477 of gnuplot data files.
3473
3478
3474 2002-12-16 Fernando Perez <fperez@colorado.edu>
3479 2002-12-16 Fernando Perez <fperez@colorado.edu>
3475
3480
3476 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3481 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3477 value of exit question to be acknowledged.
3482 value of exit question to be acknowledged.
3478
3483
3479 2002-12-03 Fernando Perez <fperez@colorado.edu>
3484 2002-12-03 Fernando Perez <fperez@colorado.edu>
3480
3485
3481 * IPython/ipmaker.py: removed generators, which had been added
3486 * IPython/ipmaker.py: removed generators, which had been added
3482 by mistake in an earlier debugging run. This was causing trouble
3487 by mistake in an earlier debugging run. This was causing trouble
3483 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3488 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3484 for pointing this out.
3489 for pointing this out.
3485
3490
3486 2002-11-17 Fernando Perez <fperez@colorado.edu>
3491 2002-11-17 Fernando Perez <fperez@colorado.edu>
3487
3492
3488 * Manual: updated the Gnuplot section.
3493 * Manual: updated the Gnuplot section.
3489
3494
3490 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3495 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3491 a much better split of what goes in Runtime and what goes in
3496 a much better split of what goes in Runtime and what goes in
3492 Interactive.
3497 Interactive.
3493
3498
3494 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3499 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3495 being imported from iplib.
3500 being imported from iplib.
3496
3501
3497 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3502 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3498 for command-passing. Now the global Gnuplot instance is called
3503 for command-passing. Now the global Gnuplot instance is called
3499 'gp' instead of 'g', which was really a far too fragile and
3504 'gp' instead of 'g', which was really a far too fragile and
3500 common name.
3505 common name.
3501
3506
3502 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3507 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3503 bounding boxes generated by Gnuplot for square plots.
3508 bounding boxes generated by Gnuplot for square plots.
3504
3509
3505 * IPython/genutils.py (popkey): new function added. I should
3510 * IPython/genutils.py (popkey): new function added. I should
3506 suggest this on c.l.py as a dict method, it seems useful.
3511 suggest this on c.l.py as a dict method, it seems useful.
3507
3512
3508 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3513 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3509 to transparently handle PostScript generation. MUCH better than
3514 to transparently handle PostScript generation. MUCH better than
3510 the previous plot_eps/replot_eps (which I removed now). The code
3515 the previous plot_eps/replot_eps (which I removed now). The code
3511 is also fairly clean and well documented now (including
3516 is also fairly clean and well documented now (including
3512 docstrings).
3517 docstrings).
3513
3518
3514 2002-11-13 Fernando Perez <fperez@colorado.edu>
3519 2002-11-13 Fernando Perez <fperez@colorado.edu>
3515
3520
3516 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3521 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3517 (inconsistent with options).
3522 (inconsistent with options).
3518
3523
3519 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3524 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3520 manually disabled, I don't know why. Fixed it.
3525 manually disabled, I don't know why. Fixed it.
3521 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3526 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3522 eps output.
3527 eps output.
3523
3528
3524 2002-11-12 Fernando Perez <fperez@colorado.edu>
3529 2002-11-12 Fernando Perez <fperez@colorado.edu>
3525
3530
3526 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3531 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3527 don't propagate up to caller. Fixes crash reported by François
3532 don't propagate up to caller. Fixes crash reported by François
3528 Pinard.
3533 Pinard.
3529
3534
3530 2002-11-09 Fernando Perez <fperez@colorado.edu>
3535 2002-11-09 Fernando Perez <fperez@colorado.edu>
3531
3536
3532 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3537 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3533 history file for new users.
3538 history file for new users.
3534 (make_IPython): fixed bug where initial install would leave the
3539 (make_IPython): fixed bug where initial install would leave the
3535 user running in the .ipython dir.
3540 user running in the .ipython dir.
3536 (make_IPython): fixed bug where config dir .ipython would be
3541 (make_IPython): fixed bug where config dir .ipython would be
3537 created regardless of the given -ipythondir option. Thanks to Cory
3542 created regardless of the given -ipythondir option. Thanks to Cory
3538 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3543 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3539
3544
3540 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3545 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3541 type confirmations. Will need to use it in all of IPython's code
3546 type confirmations. Will need to use it in all of IPython's code
3542 consistently.
3547 consistently.
3543
3548
3544 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3549 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3545 context to print 31 lines instead of the default 5. This will make
3550 context to print 31 lines instead of the default 5. This will make
3546 the crash reports extremely detailed in case the problem is in
3551 the crash reports extremely detailed in case the problem is in
3547 libraries I don't have access to.
3552 libraries I don't have access to.
3548
3553
3549 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3554 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3550 line of defense' code to still crash, but giving users fair
3555 line of defense' code to still crash, but giving users fair
3551 warning. I don't want internal errors to go unreported: if there's
3556 warning. I don't want internal errors to go unreported: if there's
3552 an internal problem, IPython should crash and generate a full
3557 an internal problem, IPython should crash and generate a full
3553 report.
3558 report.
3554
3559
3555 2002-11-08 Fernando Perez <fperez@colorado.edu>
3560 2002-11-08 Fernando Perez <fperez@colorado.edu>
3556
3561
3557 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3562 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3558 otherwise uncaught exceptions which can appear if people set
3563 otherwise uncaught exceptions which can appear if people set
3559 sys.stdout to something badly broken. Thanks to a crash report
3564 sys.stdout to something badly broken. Thanks to a crash report
3560 from henni-AT-mail.brainbot.com.
3565 from henni-AT-mail.brainbot.com.
3561
3566
3562 2002-11-04 Fernando Perez <fperez@colorado.edu>
3567 2002-11-04 Fernando Perez <fperez@colorado.edu>
3563
3568
3564 * IPython/iplib.py (InteractiveShell.interact): added
3569 * IPython/iplib.py (InteractiveShell.interact): added
3565 __IPYTHON__active to the builtins. It's a flag which goes on when
3570 __IPYTHON__active to the builtins. It's a flag which goes on when
3566 the interaction starts and goes off again when it stops. This
3571 the interaction starts and goes off again when it stops. This
3567 allows embedding code to detect being inside IPython. Before this
3572 allows embedding code to detect being inside IPython. Before this
3568 was done via __IPYTHON__, but that only shows that an IPython
3573 was done via __IPYTHON__, but that only shows that an IPython
3569 instance has been created.
3574 instance has been created.
3570
3575
3571 * IPython/Magic.py (Magic.magic_env): I realized that in a
3576 * IPython/Magic.py (Magic.magic_env): I realized that in a
3572 UserDict, instance.data holds the data as a normal dict. So I
3577 UserDict, instance.data holds the data as a normal dict. So I
3573 modified @env to return os.environ.data instead of rebuilding a
3578 modified @env to return os.environ.data instead of rebuilding a
3574 dict by hand.
3579 dict by hand.
3575
3580
3576 2002-11-02 Fernando Perez <fperez@colorado.edu>
3581 2002-11-02 Fernando Perez <fperez@colorado.edu>
3577
3582
3578 * IPython/genutils.py (warn): changed so that level 1 prints no
3583 * IPython/genutils.py (warn): changed so that level 1 prints no
3579 header. Level 2 is now the default (with 'WARNING' header, as
3584 header. Level 2 is now the default (with 'WARNING' header, as
3580 before). I think I tracked all places where changes were needed in
3585 before). I think I tracked all places where changes were needed in
3581 IPython, but outside code using the old level numbering may have
3586 IPython, but outside code using the old level numbering may have
3582 broken.
3587 broken.
3583
3588
3584 * IPython/iplib.py (InteractiveShell.runcode): added this to
3589 * IPython/iplib.py (InteractiveShell.runcode): added this to
3585 handle the tracebacks in SystemExit traps correctly. The previous
3590 handle the tracebacks in SystemExit traps correctly. The previous
3586 code (through interact) was printing more of the stack than
3591 code (through interact) was printing more of the stack than
3587 necessary, showing IPython internal code to the user.
3592 necessary, showing IPython internal code to the user.
3588
3593
3589 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3594 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3590 default. Now that the default at the confirmation prompt is yes,
3595 default. Now that the default at the confirmation prompt is yes,
3591 it's not so intrusive. François' argument that ipython sessions
3596 it's not so intrusive. François' argument that ipython sessions
3592 tend to be complex enough not to lose them from an accidental C-d,
3597 tend to be complex enough not to lose them from an accidental C-d,
3593 is a valid one.
3598 is a valid one.
3594
3599
3595 * IPython/iplib.py (InteractiveShell.interact): added a
3600 * IPython/iplib.py (InteractiveShell.interact): added a
3596 showtraceback() call to the SystemExit trap, and modified the exit
3601 showtraceback() call to the SystemExit trap, and modified the exit
3597 confirmation to have yes as the default.
3602 confirmation to have yes as the default.
3598
3603
3599 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3604 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3600 this file. It's been gone from the code for a long time, this was
3605 this file. It's been gone from the code for a long time, this was
3601 simply leftover junk.
3606 simply leftover junk.
3602
3607
3603 2002-11-01 Fernando Perez <fperez@colorado.edu>
3608 2002-11-01 Fernando Perez <fperez@colorado.edu>
3604
3609
3605 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3610 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3606 added. If set, IPython now traps EOF and asks for
3611 added. If set, IPython now traps EOF and asks for
3607 confirmation. After a request by François Pinard.
3612 confirmation. After a request by François Pinard.
3608
3613
3609 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3614 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3610 of @abort, and with a new (better) mechanism for handling the
3615 of @abort, and with a new (better) mechanism for handling the
3611 exceptions.
3616 exceptions.
3612
3617
3613 2002-10-27 Fernando Perez <fperez@colorado.edu>
3618 2002-10-27 Fernando Perez <fperez@colorado.edu>
3614
3619
3615 * IPython/usage.py (__doc__): updated the --help information and
3620 * IPython/usage.py (__doc__): updated the --help information and
3616 the ipythonrc file to indicate that -log generates
3621 the ipythonrc file to indicate that -log generates
3617 ./ipython.log. Also fixed the corresponding info in @logstart.
3622 ./ipython.log. Also fixed the corresponding info in @logstart.
3618 This and several other fixes in the manuals thanks to reports by
3623 This and several other fixes in the manuals thanks to reports by
3619 François Pinard <pinard-AT-iro.umontreal.ca>.
3624 François Pinard <pinard-AT-iro.umontreal.ca>.
3620
3625
3621 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3626 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3622 refer to @logstart (instead of @log, which doesn't exist).
3627 refer to @logstart (instead of @log, which doesn't exist).
3623
3628
3624 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3629 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3625 AttributeError crash. Thanks to Christopher Armstrong
3630 AttributeError crash. Thanks to Christopher Armstrong
3626 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3631 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3627 introduced recently (in 0.2.14pre37) with the fix to the eval
3632 introduced recently (in 0.2.14pre37) with the fix to the eval
3628 problem mentioned below.
3633 problem mentioned below.
3629
3634
3630 2002-10-17 Fernando Perez <fperez@colorado.edu>
3635 2002-10-17 Fernando Perez <fperez@colorado.edu>
3631
3636
3632 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3637 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3633 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3638 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3634
3639
3635 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3640 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3636 this function to fix a problem reported by Alex Schmolck. He saw
3641 this function to fix a problem reported by Alex Schmolck. He saw
3637 it with list comprehensions and generators, which were getting
3642 it with list comprehensions and generators, which were getting
3638 called twice. The real problem was an 'eval' call in testing for
3643 called twice. The real problem was an 'eval' call in testing for
3639 automagic which was evaluating the input line silently.
3644 automagic which was evaluating the input line silently.
3640
3645
3641 This is a potentially very nasty bug, if the input has side
3646 This is a potentially very nasty bug, if the input has side
3642 effects which must not be repeated. The code is much cleaner now,
3647 effects which must not be repeated. The code is much cleaner now,
3643 without any blanket 'except' left and with a regexp test for
3648 without any blanket 'except' left and with a regexp test for
3644 actual function names.
3649 actual function names.
3645
3650
3646 But an eval remains, which I'm not fully comfortable with. I just
3651 But an eval remains, which I'm not fully comfortable with. I just
3647 don't know how to find out if an expression could be a callable in
3652 don't know how to find out if an expression could be a callable in
3648 the user's namespace without doing an eval on the string. However
3653 the user's namespace without doing an eval on the string. However
3649 that string is now much more strictly checked so that no code
3654 that string is now much more strictly checked so that no code
3650 slips by, so the eval should only happen for things that can
3655 slips by, so the eval should only happen for things that can
3651 really be only function/method names.
3656 really be only function/method names.
3652
3657
3653 2002-10-15 Fernando Perez <fperez@colorado.edu>
3658 2002-10-15 Fernando Perez <fperez@colorado.edu>
3654
3659
3655 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3660 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3656 OSX information to main manual, removed README_Mac_OSX file from
3661 OSX information to main manual, removed README_Mac_OSX file from
3657 distribution. Also updated credits for recent additions.
3662 distribution. Also updated credits for recent additions.
3658
3663
3659 2002-10-10 Fernando Perez <fperez@colorado.edu>
3664 2002-10-10 Fernando Perez <fperez@colorado.edu>
3660
3665
3661 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3666 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3662 terminal-related issues. Many thanks to Andrea Riciputi
3667 terminal-related issues. Many thanks to Andrea Riciputi
3663 <andrea.riciputi-AT-libero.it> for writing it.
3668 <andrea.riciputi-AT-libero.it> for writing it.
3664
3669
3665 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3670 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3666 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3671 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3667
3672
3668 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3673 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3669 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3674 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3670 <syver-en-AT-online.no> who both submitted patches for this problem.
3675 <syver-en-AT-online.no> who both submitted patches for this problem.
3671
3676
3672 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3677 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3673 global embedding to make sure that things don't overwrite user
3678 global embedding to make sure that things don't overwrite user
3674 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3679 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3675
3680
3676 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3681 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3677 compatibility. Thanks to Hayden Callow
3682 compatibility. Thanks to Hayden Callow
3678 <h.callow-AT-elec.canterbury.ac.nz>
3683 <h.callow-AT-elec.canterbury.ac.nz>
3679
3684
3680 2002-10-04 Fernando Perez <fperez@colorado.edu>
3685 2002-10-04 Fernando Perez <fperez@colorado.edu>
3681
3686
3682 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3687 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3683 Gnuplot.File objects.
3688 Gnuplot.File objects.
3684
3689
3685 2002-07-23 Fernando Perez <fperez@colorado.edu>
3690 2002-07-23 Fernando Perez <fperez@colorado.edu>
3686
3691
3687 * IPython/genutils.py (timing): Added timings() and timing() for
3692 * IPython/genutils.py (timing): Added timings() and timing() for
3688 quick access to the most commonly needed data, the execution
3693 quick access to the most commonly needed data, the execution
3689 times. Old timing() renamed to timings_out().
3694 times. Old timing() renamed to timings_out().
3690
3695
3691 2002-07-18 Fernando Perez <fperez@colorado.edu>
3696 2002-07-18 Fernando Perez <fperez@colorado.edu>
3692
3697
3693 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3698 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3694 bug with nested instances disrupting the parent's tab completion.
3699 bug with nested instances disrupting the parent's tab completion.
3695
3700
3696 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3701 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3697 all_completions code to begin the emacs integration.
3702 all_completions code to begin the emacs integration.
3698
3703
3699 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3704 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3700 argument to allow titling individual arrays when plotting.
3705 argument to allow titling individual arrays when plotting.
3701
3706
3702 2002-07-15 Fernando Perez <fperez@colorado.edu>
3707 2002-07-15 Fernando Perez <fperez@colorado.edu>
3703
3708
3704 * setup.py (make_shortcut): changed to retrieve the value of
3709 * setup.py (make_shortcut): changed to retrieve the value of
3705 'Program Files' directory from the registry (this value changes in
3710 'Program Files' directory from the registry (this value changes in
3706 non-english versions of Windows). Thanks to Thomas Fanslau
3711 non-english versions of Windows). Thanks to Thomas Fanslau
3707 <tfanslau-AT-gmx.de> for the report.
3712 <tfanslau-AT-gmx.de> for the report.
3708
3713
3709 2002-07-10 Fernando Perez <fperez@colorado.edu>
3714 2002-07-10 Fernando Perez <fperez@colorado.edu>
3710
3715
3711 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3716 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3712 a bug in pdb, which crashes if a line with only whitespace is
3717 a bug in pdb, which crashes if a line with only whitespace is
3713 entered. Bug report submitted to sourceforge.
3718 entered. Bug report submitted to sourceforge.
3714
3719
3715 2002-07-09 Fernando Perez <fperez@colorado.edu>
3720 2002-07-09 Fernando Perez <fperez@colorado.edu>
3716
3721
3717 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3722 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3718 reporting exceptions (it's a bug in inspect.py, I just set a
3723 reporting exceptions (it's a bug in inspect.py, I just set a
3719 workaround).
3724 workaround).
3720
3725
3721 2002-07-08 Fernando Perez <fperez@colorado.edu>
3726 2002-07-08 Fernando Perez <fperez@colorado.edu>
3722
3727
3723 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3728 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3724 __IPYTHON__ in __builtins__ to show up in user_ns.
3729 __IPYTHON__ in __builtins__ to show up in user_ns.
3725
3730
3726 2002-07-03 Fernando Perez <fperez@colorado.edu>
3731 2002-07-03 Fernando Perez <fperez@colorado.edu>
3727
3732
3728 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3733 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3729 name from @gp_set_instance to @gp_set_default.
3734 name from @gp_set_instance to @gp_set_default.
3730
3735
3731 * IPython/ipmaker.py (make_IPython): default editor value set to
3736 * IPython/ipmaker.py (make_IPython): default editor value set to
3732 '0' (a string), to match the rc file. Otherwise will crash when
3737 '0' (a string), to match the rc file. Otherwise will crash when
3733 .strip() is called on it.
3738 .strip() is called on it.
3734
3739
3735
3740
3736 2002-06-28 Fernando Perez <fperez@colorado.edu>
3741 2002-06-28 Fernando Perez <fperez@colorado.edu>
3737
3742
3738 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3743 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
3739 of files in current directory when a file is executed via
3744 of files in current directory when a file is executed via
3740 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3745 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
3741
3746
3742 * setup.py (manfiles): fix for rpm builds, submitted by RA
3747 * setup.py (manfiles): fix for rpm builds, submitted by RA
3743 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3748 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
3744
3749
3745 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3750 * IPython/ipmaker.py (make_IPython): fixed lookup of default
3746 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3751 editor when set to '0'. Problem was, '0' evaluates to True (it's a
3747 string!). A. Schmolck caught this one.
3752 string!). A. Schmolck caught this one.
3748
3753
3749 2002-06-27 Fernando Perez <fperez@colorado.edu>
3754 2002-06-27 Fernando Perez <fperez@colorado.edu>
3750
3755
3751 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3756 * IPython/ipmaker.py (make_IPython): fixed bug when running user
3752 defined files at the cmd line. __name__ wasn't being set to
3757 defined files at the cmd line. __name__ wasn't being set to
3753 __main__.
3758 __main__.
3754
3759
3755 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3760 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
3756 regular lists and tuples besides Numeric arrays.
3761 regular lists and tuples besides Numeric arrays.
3757
3762
3758 * IPython/Prompts.py (CachedOutput.__call__): Added output
3763 * IPython/Prompts.py (CachedOutput.__call__): Added output
3759 supression for input ending with ';'. Similar to Mathematica and
3764 supression for input ending with ';'. Similar to Mathematica and
3760 Matlab. The _* vars and Out[] list are still updated, just like
3765 Matlab. The _* vars and Out[] list are still updated, just like
3761 Mathematica behaves.
3766 Mathematica behaves.
3762
3767
3763 2002-06-25 Fernando Perez <fperez@colorado.edu>
3768 2002-06-25 Fernando Perez <fperez@colorado.edu>
3764
3769
3765 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3770 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
3766 .ini extensions for profiels under Windows.
3771 .ini extensions for profiels under Windows.
3767
3772
3768 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3773 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
3769 string form. Fix contributed by Alexander Schmolck
3774 string form. Fix contributed by Alexander Schmolck
3770 <a.schmolck-AT-gmx.net>
3775 <a.schmolck-AT-gmx.net>
3771
3776
3772 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3777 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
3773 pre-configured Gnuplot instance.
3778 pre-configured Gnuplot instance.
3774
3779
3775 2002-06-21 Fernando Perez <fperez@colorado.edu>
3780 2002-06-21 Fernando Perez <fperez@colorado.edu>
3776
3781
3777 * IPython/numutils.py (exp_safe): new function, works around the
3782 * IPython/numutils.py (exp_safe): new function, works around the
3778 underflow problems in Numeric.
3783 underflow problems in Numeric.
3779 (log2): New fn. Safe log in base 2: returns exact integer answer
3784 (log2): New fn. Safe log in base 2: returns exact integer answer
3780 for exact integer powers of 2.
3785 for exact integer powers of 2.
3781
3786
3782 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3787 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
3783 properly.
3788 properly.
3784
3789
3785 2002-06-20 Fernando Perez <fperez@colorado.edu>
3790 2002-06-20 Fernando Perez <fperez@colorado.edu>
3786
3791
3787 * IPython/genutils.py (timing): new function like
3792 * IPython/genutils.py (timing): new function like
3788 Mathematica's. Similar to time_test, but returns more info.
3793 Mathematica's. Similar to time_test, but returns more info.
3789
3794
3790 2002-06-18 Fernando Perez <fperez@colorado.edu>
3795 2002-06-18 Fernando Perez <fperez@colorado.edu>
3791
3796
3792 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3797 * IPython/Magic.py (Magic.magic_save): modified @save and @r
3793 according to Mike Heeter's suggestions.
3798 according to Mike Heeter's suggestions.
3794
3799
3795 2002-06-16 Fernando Perez <fperez@colorado.edu>
3800 2002-06-16 Fernando Perez <fperez@colorado.edu>
3796
3801
3797 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3802 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
3798 system. GnuplotMagic is gone as a user-directory option. New files
3803 system. GnuplotMagic is gone as a user-directory option. New files
3799 make it easier to use all the gnuplot stuff both from external
3804 make it easier to use all the gnuplot stuff both from external
3800 programs as well as from IPython. Had to rewrite part of
3805 programs as well as from IPython. Had to rewrite part of
3801 hardcopy() b/c of a strange bug: often the ps files simply don't
3806 hardcopy() b/c of a strange bug: often the ps files simply don't
3802 get created, and require a repeat of the command (often several
3807 get created, and require a repeat of the command (often several
3803 times).
3808 times).
3804
3809
3805 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3810 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
3806 resolve output channel at call time, so that if sys.stderr has
3811 resolve output channel at call time, so that if sys.stderr has
3807 been redirected by user this gets honored.
3812 been redirected by user this gets honored.
3808
3813
3809 2002-06-13 Fernando Perez <fperez@colorado.edu>
3814 2002-06-13 Fernando Perez <fperez@colorado.edu>
3810
3815
3811 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3816 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
3812 IPShell. Kept a copy with the old names to avoid breaking people's
3817 IPShell. Kept a copy with the old names to avoid breaking people's
3813 embedded code.
3818 embedded code.
3814
3819
3815 * IPython/ipython: simplified it to the bare minimum after
3820 * IPython/ipython: simplified it to the bare minimum after
3816 Holger's suggestions. Added info about how to use it in
3821 Holger's suggestions. Added info about how to use it in
3817 PYTHONSTARTUP.
3822 PYTHONSTARTUP.
3818
3823
3819 * IPython/Shell.py (IPythonShell): changed the options passing
3824 * IPython/Shell.py (IPythonShell): changed the options passing
3820 from a string with funky %s replacements to a straight list. Maybe
3825 from a string with funky %s replacements to a straight list. Maybe
3821 a bit more typing, but it follows sys.argv conventions, so there's
3826 a bit more typing, but it follows sys.argv conventions, so there's
3822 less special-casing to remember.
3827 less special-casing to remember.
3823
3828
3824 2002-06-12 Fernando Perez <fperez@colorado.edu>
3829 2002-06-12 Fernando Perez <fperez@colorado.edu>
3825
3830
3826 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3831 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
3827 command. Thanks to a suggestion by Mike Heeter.
3832 command. Thanks to a suggestion by Mike Heeter.
3828 (Magic.magic_pfile): added behavior to look at filenames if given
3833 (Magic.magic_pfile): added behavior to look at filenames if given
3829 arg is not a defined object.
3834 arg is not a defined object.
3830 (Magic.magic_save): New @save function to save code snippets. Also
3835 (Magic.magic_save): New @save function to save code snippets. Also
3831 a Mike Heeter idea.
3836 a Mike Heeter idea.
3832
3837
3833 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3838 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
3834 plot() and replot(). Much more convenient now, especially for
3839 plot() and replot(). Much more convenient now, especially for
3835 interactive use.
3840 interactive use.
3836
3841
3837 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3842 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
3838 filenames.
3843 filenames.
3839
3844
3840 2002-06-02 Fernando Perez <fperez@colorado.edu>
3845 2002-06-02 Fernando Perez <fperez@colorado.edu>
3841
3846
3842 * IPython/Struct.py (Struct.__init__): modified to admit
3847 * IPython/Struct.py (Struct.__init__): modified to admit
3843 initialization via another struct.
3848 initialization via another struct.
3844
3849
3845 * IPython/genutils.py (SystemExec.__init__): New stateful
3850 * IPython/genutils.py (SystemExec.__init__): New stateful
3846 interface to xsys and bq. Useful for writing system scripts.
3851 interface to xsys and bq. Useful for writing system scripts.
3847
3852
3848 2002-05-30 Fernando Perez <fperez@colorado.edu>
3853 2002-05-30 Fernando Perez <fperez@colorado.edu>
3849
3854
3850 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3855 * MANIFEST.in: Changed docfile selection to exclude all the lyx
3851 documents. This will make the user download smaller (it's getting
3856 documents. This will make the user download smaller (it's getting
3852 too big).
3857 too big).
3853
3858
3854 2002-05-29 Fernando Perez <fperez@colorado.edu>
3859 2002-05-29 Fernando Perez <fperez@colorado.edu>
3855
3860
3856 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3861 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
3857 fix problems with shelve and pickle. Seems to work, but I don't
3862 fix problems with shelve and pickle. Seems to work, but I don't
3858 know if corner cases break it. Thanks to Mike Heeter
3863 know if corner cases break it. Thanks to Mike Heeter
3859 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3864 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
3860
3865
3861 2002-05-24 Fernando Perez <fperez@colorado.edu>
3866 2002-05-24 Fernando Perez <fperez@colorado.edu>
3862
3867
3863 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3868 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
3864 macros having broken.
3869 macros having broken.
3865
3870
3866 2002-05-21 Fernando Perez <fperez@colorado.edu>
3871 2002-05-21 Fernando Perez <fperez@colorado.edu>
3867
3872
3868 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3873 * IPython/Magic.py (Magic.magic_logstart): fixed recently
3869 introduced logging bug: all history before logging started was
3874 introduced logging bug: all history before logging started was
3870 being written one character per line! This came from the redesign
3875 being written one character per line! This came from the redesign
3871 of the input history as a special list which slices to strings,
3876 of the input history as a special list which slices to strings,
3872 not to lists.
3877 not to lists.
3873
3878
3874 2002-05-20 Fernando Perez <fperez@colorado.edu>
3879 2002-05-20 Fernando Perez <fperez@colorado.edu>
3875
3880
3876 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3881 * IPython/Prompts.py (CachedOutput.__init__): made the color table
3877 be an attribute of all classes in this module. The design of these
3882 be an attribute of all classes in this module. The design of these
3878 classes needs some serious overhauling.
3883 classes needs some serious overhauling.
3879
3884
3880 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3885 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
3881 which was ignoring '_' in option names.
3886 which was ignoring '_' in option names.
3882
3887
3883 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3888 * IPython/ultraTB.py (FormattedTB.__init__): Changed
3884 'Verbose_novars' to 'Context' and made it the new default. It's a
3889 'Verbose_novars' to 'Context' and made it the new default. It's a
3885 bit more readable and also safer than verbose.
3890 bit more readable and also safer than verbose.
3886
3891
3887 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3892 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
3888 triple-quoted strings.
3893 triple-quoted strings.
3889
3894
3890 * IPython/OInspect.py (__all__): new module exposing the object
3895 * IPython/OInspect.py (__all__): new module exposing the object
3891 introspection facilities. Now the corresponding magics are dummy
3896 introspection facilities. Now the corresponding magics are dummy
3892 wrappers around this. Having this module will make it much easier
3897 wrappers around this. Having this module will make it much easier
3893 to put these functions into our modified pdb.
3898 to put these functions into our modified pdb.
3894 This new object inspector system uses the new colorizing module,
3899 This new object inspector system uses the new colorizing module,
3895 so source code and other things are nicely syntax highlighted.
3900 so source code and other things are nicely syntax highlighted.
3896
3901
3897 2002-05-18 Fernando Perez <fperez@colorado.edu>
3902 2002-05-18 Fernando Perez <fperez@colorado.edu>
3898
3903
3899 * IPython/ColorANSI.py: Split the coloring tools into a separate
3904 * IPython/ColorANSI.py: Split the coloring tools into a separate
3900 module so I can use them in other code easier (they were part of
3905 module so I can use them in other code easier (they were part of
3901 ultraTB).
3906 ultraTB).
3902
3907
3903 2002-05-17 Fernando Perez <fperez@colorado.edu>
3908 2002-05-17 Fernando Perez <fperez@colorado.edu>
3904
3909
3905 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3910 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3906 fixed it to set the global 'g' also to the called instance, as
3911 fixed it to set the global 'g' also to the called instance, as
3907 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3912 long as 'g' was still a gnuplot instance (so it doesn't overwrite
3908 user's 'g' variables).
3913 user's 'g' variables).
3909
3914
3910 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3915 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
3911 global variables (aliases to _ih,_oh) so that users which expect
3916 global variables (aliases to _ih,_oh) so that users which expect
3912 In[5] or Out[7] to work aren't unpleasantly surprised.
3917 In[5] or Out[7] to work aren't unpleasantly surprised.
3913 (InputList.__getslice__): new class to allow executing slices of
3918 (InputList.__getslice__): new class to allow executing slices of
3914 input history directly. Very simple class, complements the use of
3919 input history directly. Very simple class, complements the use of
3915 macros.
3920 macros.
3916
3921
3917 2002-05-16 Fernando Perez <fperez@colorado.edu>
3922 2002-05-16 Fernando Perez <fperez@colorado.edu>
3918
3923
3919 * setup.py (docdirbase): make doc directory be just doc/IPython
3924 * setup.py (docdirbase): make doc directory be just doc/IPython
3920 without version numbers, it will reduce clutter for users.
3925 without version numbers, it will reduce clutter for users.
3921
3926
3922 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3927 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
3923 execfile call to prevent possible memory leak. See for details:
3928 execfile call to prevent possible memory leak. See for details:
3924 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3929 http://mail.python.org/pipermail/python-list/2002-February/088476.html
3925
3930
3926 2002-05-15 Fernando Perez <fperez@colorado.edu>
3931 2002-05-15 Fernando Perez <fperez@colorado.edu>
3927
3932
3928 * IPython/Magic.py (Magic.magic_psource): made the object
3933 * IPython/Magic.py (Magic.magic_psource): made the object
3929 introspection names be more standard: pdoc, pdef, pfile and
3934 introspection names be more standard: pdoc, pdef, pfile and
3930 psource. They all print/page their output, and it makes
3935 psource. They all print/page their output, and it makes
3931 remembering them easier. Kept old names for compatibility as
3936 remembering them easier. Kept old names for compatibility as
3932 aliases.
3937 aliases.
3933
3938
3934 2002-05-14 Fernando Perez <fperez@colorado.edu>
3939 2002-05-14 Fernando Perez <fperez@colorado.edu>
3935
3940
3936 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3941 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
3937 what the mouse problem was. The trick is to use gnuplot with temp
3942 what the mouse problem was. The trick is to use gnuplot with temp
3938 files and NOT with pipes (for data communication), because having
3943 files and NOT with pipes (for data communication), because having
3939 both pipes and the mouse on is bad news.
3944 both pipes and the mouse on is bad news.
3940
3945
3941 2002-05-13 Fernando Perez <fperez@colorado.edu>
3946 2002-05-13 Fernando Perez <fperez@colorado.edu>
3942
3947
3943 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3948 * IPython/Magic.py (Magic._ofind): fixed namespace order search
3944 bug. Information would be reported about builtins even when
3949 bug. Information would be reported about builtins even when
3945 user-defined functions overrode them.
3950 user-defined functions overrode them.
3946
3951
3947 2002-05-11 Fernando Perez <fperez@colorado.edu>
3952 2002-05-11 Fernando Perez <fperez@colorado.edu>
3948
3953
3949 * IPython/__init__.py (__all__): removed FlexCompleter from
3954 * IPython/__init__.py (__all__): removed FlexCompleter from
3950 __all__ so that things don't fail in platforms without readline.
3955 __all__ so that things don't fail in platforms without readline.
3951
3956
3952 2002-05-10 Fernando Perez <fperez@colorado.edu>
3957 2002-05-10 Fernando Perez <fperez@colorado.edu>
3953
3958
3954 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3959 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
3955 it requires Numeric, effectively making Numeric a dependency for
3960 it requires Numeric, effectively making Numeric a dependency for
3956 IPython.
3961 IPython.
3957
3962
3958 * Released 0.2.13
3963 * Released 0.2.13
3959
3964
3960 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3965 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
3961 profiler interface. Now all the major options from the profiler
3966 profiler interface. Now all the major options from the profiler
3962 module are directly supported in IPython, both for single
3967 module are directly supported in IPython, both for single
3963 expressions (@prun) and for full programs (@run -p).
3968 expressions (@prun) and for full programs (@run -p).
3964
3969
3965 2002-05-09 Fernando Perez <fperez@colorado.edu>
3970 2002-05-09 Fernando Perez <fperez@colorado.edu>
3966
3971
3967 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3972 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
3968 magic properly formatted for screen.
3973 magic properly formatted for screen.
3969
3974
3970 * setup.py (make_shortcut): Changed things to put pdf version in
3975 * setup.py (make_shortcut): Changed things to put pdf version in
3971 doc/ instead of doc/manual (had to change lyxport a bit).
3976 doc/ instead of doc/manual (had to change lyxport a bit).
3972
3977
3973 * IPython/Magic.py (Profile.string_stats): made profile runs go
3978 * IPython/Magic.py (Profile.string_stats): made profile runs go
3974 through pager (they are long and a pager allows searching, saving,
3979 through pager (they are long and a pager allows searching, saving,
3975 etc.)
3980 etc.)
3976
3981
3977 2002-05-08 Fernando Perez <fperez@colorado.edu>
3982 2002-05-08 Fernando Perez <fperez@colorado.edu>
3978
3983
3979 * Released 0.2.12
3984 * Released 0.2.12
3980
3985
3981 2002-05-06 Fernando Perez <fperez@colorado.edu>
3986 2002-05-06 Fernando Perez <fperez@colorado.edu>
3982
3987
3983 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3988 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
3984 introduced); 'hist n1 n2' was broken.
3989 introduced); 'hist n1 n2' was broken.
3985 (Magic.magic_pdb): added optional on/off arguments to @pdb
3990 (Magic.magic_pdb): added optional on/off arguments to @pdb
3986 (Magic.magic_run): added option -i to @run, which executes code in
3991 (Magic.magic_run): added option -i to @run, which executes code in
3987 the IPython namespace instead of a clean one. Also added @irun as
3992 the IPython namespace instead of a clean one. Also added @irun as
3988 an alias to @run -i.
3993 an alias to @run -i.
3989
3994
3990 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3995 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
3991 fixed (it didn't really do anything, the namespaces were wrong).
3996 fixed (it didn't really do anything, the namespaces were wrong).
3992
3997
3993 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3998 * IPython/Debugger.py (__init__): Added workaround for python 2.1
3994
3999
3995 * IPython/__init__.py (__all__): Fixed package namespace, now
4000 * IPython/__init__.py (__all__): Fixed package namespace, now
3996 'import IPython' does give access to IPython.<all> as
4001 'import IPython' does give access to IPython.<all> as
3997 expected. Also renamed __release__ to Release.
4002 expected. Also renamed __release__ to Release.
3998
4003
3999 * IPython/Debugger.py (__license__): created new Pdb class which
4004 * IPython/Debugger.py (__license__): created new Pdb class which
4000 functions like a drop-in for the normal pdb.Pdb but does NOT
4005 functions like a drop-in for the normal pdb.Pdb but does NOT
4001 import readline by default. This way it doesn't muck up IPython's
4006 import readline by default. This way it doesn't muck up IPython's
4002 readline handling, and now tab-completion finally works in the
4007 readline handling, and now tab-completion finally works in the
4003 debugger -- sort of. It completes things globally visible, but the
4008 debugger -- sort of. It completes things globally visible, but the
4004 completer doesn't track the stack as pdb walks it. That's a bit
4009 completer doesn't track the stack as pdb walks it. That's a bit
4005 tricky, and I'll have to implement it later.
4010 tricky, and I'll have to implement it later.
4006
4011
4007 2002-05-05 Fernando Perez <fperez@colorado.edu>
4012 2002-05-05 Fernando Perez <fperez@colorado.edu>
4008
4013
4009 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4014 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4010 magic docstrings when printed via ? (explicit \'s were being
4015 magic docstrings when printed via ? (explicit \'s were being
4011 printed).
4016 printed).
4012
4017
4013 * IPython/ipmaker.py (make_IPython): fixed namespace
4018 * IPython/ipmaker.py (make_IPython): fixed namespace
4014 identification bug. Now variables loaded via logs or command-line
4019 identification bug. Now variables loaded via logs or command-line
4015 files are recognized in the interactive namespace by @who.
4020 files are recognized in the interactive namespace by @who.
4016
4021
4017 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4022 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4018 log replay system stemming from the string form of Structs.
4023 log replay system stemming from the string form of Structs.
4019
4024
4020 * IPython/Magic.py (Macro.__init__): improved macros to properly
4025 * IPython/Magic.py (Macro.__init__): improved macros to properly
4021 handle magic commands in them.
4026 handle magic commands in them.
4022 (Magic.magic_logstart): usernames are now expanded so 'logstart
4027 (Magic.magic_logstart): usernames are now expanded so 'logstart
4023 ~/mylog' now works.
4028 ~/mylog' now works.
4024
4029
4025 * IPython/iplib.py (complete): fixed bug where paths starting with
4030 * IPython/iplib.py (complete): fixed bug where paths starting with
4026 '/' would be completed as magic names.
4031 '/' would be completed as magic names.
4027
4032
4028 2002-05-04 Fernando Perez <fperez@colorado.edu>
4033 2002-05-04 Fernando Perez <fperez@colorado.edu>
4029
4034
4030 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4035 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4031 allow running full programs under the profiler's control.
4036 allow running full programs under the profiler's control.
4032
4037
4033 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4038 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4034 mode to report exceptions verbosely but without formatting
4039 mode to report exceptions verbosely but without formatting
4035 variables. This addresses the issue of ipython 'freezing' (it's
4040 variables. This addresses the issue of ipython 'freezing' (it's
4036 not frozen, but caught in an expensive formatting loop) when huge
4041 not frozen, but caught in an expensive formatting loop) when huge
4037 variables are in the context of an exception.
4042 variables are in the context of an exception.
4038 (VerboseTB.text): Added '--->' markers at line where exception was
4043 (VerboseTB.text): Added '--->' markers at line where exception was
4039 triggered. Much clearer to read, especially in NoColor modes.
4044 triggered. Much clearer to read, especially in NoColor modes.
4040
4045
4041 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4046 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4042 implemented in reverse when changing to the new parse_options().
4047 implemented in reverse when changing to the new parse_options().
4043
4048
4044 2002-05-03 Fernando Perez <fperez@colorado.edu>
4049 2002-05-03 Fernando Perez <fperez@colorado.edu>
4045
4050
4046 * IPython/Magic.py (Magic.parse_options): new function so that
4051 * IPython/Magic.py (Magic.parse_options): new function so that
4047 magics can parse options easier.
4052 magics can parse options easier.
4048 (Magic.magic_prun): new function similar to profile.run(),
4053 (Magic.magic_prun): new function similar to profile.run(),
4049 suggested by Chris Hart.
4054 suggested by Chris Hart.
4050 (Magic.magic_cd): fixed behavior so that it only changes if
4055 (Magic.magic_cd): fixed behavior so that it only changes if
4051 directory actually is in history.
4056 directory actually is in history.
4052
4057
4053 * IPython/usage.py (__doc__): added information about potential
4058 * IPython/usage.py (__doc__): added information about potential
4054 slowness of Verbose exception mode when there are huge data
4059 slowness of Verbose exception mode when there are huge data
4055 structures to be formatted (thanks to Archie Paulson).
4060 structures to be formatted (thanks to Archie Paulson).
4056
4061
4057 * IPython/ipmaker.py (make_IPython): Changed default logging
4062 * IPython/ipmaker.py (make_IPython): Changed default logging
4058 (when simply called with -log) to use curr_dir/ipython.log in
4063 (when simply called with -log) to use curr_dir/ipython.log in
4059 rotate mode. Fixed crash which was occuring with -log before
4064 rotate mode. Fixed crash which was occuring with -log before
4060 (thanks to Jim Boyle).
4065 (thanks to Jim Boyle).
4061
4066
4062 2002-05-01 Fernando Perez <fperez@colorado.edu>
4067 2002-05-01 Fernando Perez <fperez@colorado.edu>
4063
4068
4064 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4069 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4065 was nasty -- though somewhat of a corner case).
4070 was nasty -- though somewhat of a corner case).
4066
4071
4067 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4072 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4068 text (was a bug).
4073 text (was a bug).
4069
4074
4070 2002-04-30 Fernando Perez <fperez@colorado.edu>
4075 2002-04-30 Fernando Perez <fperez@colorado.edu>
4071
4076
4072 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4077 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4073 a print after ^D or ^C from the user so that the In[] prompt
4078 a print after ^D or ^C from the user so that the In[] prompt
4074 doesn't over-run the gnuplot one.
4079 doesn't over-run the gnuplot one.
4075
4080
4076 2002-04-29 Fernando Perez <fperez@colorado.edu>
4081 2002-04-29 Fernando Perez <fperez@colorado.edu>
4077
4082
4078 * Released 0.2.10
4083 * Released 0.2.10
4079
4084
4080 * IPython/__release__.py (version): get date dynamically.
4085 * IPython/__release__.py (version): get date dynamically.
4081
4086
4082 * Misc. documentation updates thanks to Arnd's comments. Also ran
4087 * Misc. documentation updates thanks to Arnd's comments. Also ran
4083 a full spellcheck on the manual (hadn't been done in a while).
4088 a full spellcheck on the manual (hadn't been done in a while).
4084
4089
4085 2002-04-27 Fernando Perez <fperez@colorado.edu>
4090 2002-04-27 Fernando Perez <fperez@colorado.edu>
4086
4091
4087 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4092 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4088 starting a log in mid-session would reset the input history list.
4093 starting a log in mid-session would reset the input history list.
4089
4094
4090 2002-04-26 Fernando Perez <fperez@colorado.edu>
4095 2002-04-26 Fernando Perez <fperez@colorado.edu>
4091
4096
4092 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4097 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4093 all files were being included in an update. Now anything in
4098 all files were being included in an update. Now anything in
4094 UserConfig that matches [A-Za-z]*.py will go (this excludes
4099 UserConfig that matches [A-Za-z]*.py will go (this excludes
4095 __init__.py)
4100 __init__.py)
4096
4101
4097 2002-04-25 Fernando Perez <fperez@colorado.edu>
4102 2002-04-25 Fernando Perez <fperez@colorado.edu>
4098
4103
4099 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4104 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4100 to __builtins__ so that any form of embedded or imported code can
4105 to __builtins__ so that any form of embedded or imported code can
4101 test for being inside IPython.
4106 test for being inside IPython.
4102
4107
4103 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4108 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4104 changed to GnuplotMagic because it's now an importable module,
4109 changed to GnuplotMagic because it's now an importable module,
4105 this makes the name follow that of the standard Gnuplot module.
4110 this makes the name follow that of the standard Gnuplot module.
4106 GnuplotMagic can now be loaded at any time in mid-session.
4111 GnuplotMagic can now be loaded at any time in mid-session.
4107
4112
4108 2002-04-24 Fernando Perez <fperez@colorado.edu>
4113 2002-04-24 Fernando Perez <fperez@colorado.edu>
4109
4114
4110 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4115 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4111 the globals (IPython has its own namespace) and the
4116 the globals (IPython has its own namespace) and the
4112 PhysicalQuantity stuff is much better anyway.
4117 PhysicalQuantity stuff is much better anyway.
4113
4118
4114 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4119 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4115 embedding example to standard user directory for
4120 embedding example to standard user directory for
4116 distribution. Also put it in the manual.
4121 distribution. Also put it in the manual.
4117
4122
4118 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4123 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4119 instance as first argument (so it doesn't rely on some obscure
4124 instance as first argument (so it doesn't rely on some obscure
4120 hidden global).
4125 hidden global).
4121
4126
4122 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4127 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4123 delimiters. While it prevents ().TAB from working, it allows
4128 delimiters. While it prevents ().TAB from working, it allows
4124 completions in open (... expressions. This is by far a more common
4129 completions in open (... expressions. This is by far a more common
4125 case.
4130 case.
4126
4131
4127 2002-04-23 Fernando Perez <fperez@colorado.edu>
4132 2002-04-23 Fernando Perez <fperez@colorado.edu>
4128
4133
4129 * IPython/Extensions/InterpreterPasteInput.py: new
4134 * IPython/Extensions/InterpreterPasteInput.py: new
4130 syntax-processing module for pasting lines with >>> or ... at the
4135 syntax-processing module for pasting lines with >>> or ... at the
4131 start.
4136 start.
4132
4137
4133 * IPython/Extensions/PhysicalQ_Interactive.py
4138 * IPython/Extensions/PhysicalQ_Interactive.py
4134 (PhysicalQuantityInteractive.__int__): fixed to work with either
4139 (PhysicalQuantityInteractive.__int__): fixed to work with either
4135 Numeric or math.
4140 Numeric or math.
4136
4141
4137 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4142 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4138 provided profiles. Now we have:
4143 provided profiles. Now we have:
4139 -math -> math module as * and cmath with its own namespace.
4144 -math -> math module as * and cmath with its own namespace.
4140 -numeric -> Numeric as *, plus gnuplot & grace
4145 -numeric -> Numeric as *, plus gnuplot & grace
4141 -physics -> same as before
4146 -physics -> same as before
4142
4147
4143 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4148 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4144 user-defined magics wouldn't be found by @magic if they were
4149 user-defined magics wouldn't be found by @magic if they were
4145 defined as class methods. Also cleaned up the namespace search
4150 defined as class methods. Also cleaned up the namespace search
4146 logic and the string building (to use %s instead of many repeated
4151 logic and the string building (to use %s instead of many repeated
4147 string adds).
4152 string adds).
4148
4153
4149 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4154 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4150 of user-defined magics to operate with class methods (cleaner, in
4155 of user-defined magics to operate with class methods (cleaner, in
4151 line with the gnuplot code).
4156 line with the gnuplot code).
4152
4157
4153 2002-04-22 Fernando Perez <fperez@colorado.edu>
4158 2002-04-22 Fernando Perez <fperez@colorado.edu>
4154
4159
4155 * setup.py: updated dependency list so that manual is updated when
4160 * setup.py: updated dependency list so that manual is updated when
4156 all included files change.
4161 all included files change.
4157
4162
4158 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4163 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4159 the delimiter removal option (the fix is ugly right now).
4164 the delimiter removal option (the fix is ugly right now).
4160
4165
4161 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4166 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4162 all of the math profile (quicker loading, no conflict between
4167 all of the math profile (quicker loading, no conflict between
4163 g-9.8 and g-gnuplot).
4168 g-9.8 and g-gnuplot).
4164
4169
4165 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4170 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4166 name of post-mortem files to IPython_crash_report.txt.
4171 name of post-mortem files to IPython_crash_report.txt.
4167
4172
4168 * Cleanup/update of the docs. Added all the new readline info and
4173 * Cleanup/update of the docs. Added all the new readline info and
4169 formatted all lists as 'real lists'.
4174 formatted all lists as 'real lists'.
4170
4175
4171 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4176 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4172 tab-completion options, since the full readline parse_and_bind is
4177 tab-completion options, since the full readline parse_and_bind is
4173 now accessible.
4178 now accessible.
4174
4179
4175 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4180 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4176 handling of readline options. Now users can specify any string to
4181 handling of readline options. Now users can specify any string to
4177 be passed to parse_and_bind(), as well as the delimiters to be
4182 be passed to parse_and_bind(), as well as the delimiters to be
4178 removed.
4183 removed.
4179 (InteractiveShell.__init__): Added __name__ to the global
4184 (InteractiveShell.__init__): Added __name__ to the global
4180 namespace so that things like Itpl which rely on its existence
4185 namespace so that things like Itpl which rely on its existence
4181 don't crash.
4186 don't crash.
4182 (InteractiveShell._prefilter): Defined the default with a _ so
4187 (InteractiveShell._prefilter): Defined the default with a _ so
4183 that prefilter() is easier to override, while the default one
4188 that prefilter() is easier to override, while the default one
4184 remains available.
4189 remains available.
4185
4190
4186 2002-04-18 Fernando Perez <fperez@colorado.edu>
4191 2002-04-18 Fernando Perez <fperez@colorado.edu>
4187
4192
4188 * Added information about pdb in the docs.
4193 * Added information about pdb in the docs.
4189
4194
4190 2002-04-17 Fernando Perez <fperez@colorado.edu>
4195 2002-04-17 Fernando Perez <fperez@colorado.edu>
4191
4196
4192 * IPython/ipmaker.py (make_IPython): added rc_override option to
4197 * IPython/ipmaker.py (make_IPython): added rc_override option to
4193 allow passing config options at creation time which may override
4198 allow passing config options at creation time which may override
4194 anything set in the config files or command line. This is
4199 anything set in the config files or command line. This is
4195 particularly useful for configuring embedded instances.
4200 particularly useful for configuring embedded instances.
4196
4201
4197 2002-04-15 Fernando Perez <fperez@colorado.edu>
4202 2002-04-15 Fernando Perez <fperez@colorado.edu>
4198
4203
4199 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4204 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4200 crash embedded instances because of the input cache falling out of
4205 crash embedded instances because of the input cache falling out of
4201 sync with the output counter.
4206 sync with the output counter.
4202
4207
4203 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4208 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4204 mode which calls pdb after an uncaught exception in IPython itself.
4209 mode which calls pdb after an uncaught exception in IPython itself.
4205
4210
4206 2002-04-14 Fernando Perez <fperez@colorado.edu>
4211 2002-04-14 Fernando Perez <fperez@colorado.edu>
4207
4212
4208 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4213 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4209 readline, fix it back after each call.
4214 readline, fix it back after each call.
4210
4215
4211 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4216 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4212 method to force all access via __call__(), which guarantees that
4217 method to force all access via __call__(), which guarantees that
4213 traceback references are properly deleted.
4218 traceback references are properly deleted.
4214
4219
4215 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4220 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4216 improve printing when pprint is in use.
4221 improve printing when pprint is in use.
4217
4222
4218 2002-04-13 Fernando Perez <fperez@colorado.edu>
4223 2002-04-13 Fernando Perez <fperez@colorado.edu>
4219
4224
4220 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4225 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4221 exceptions aren't caught anymore. If the user triggers one, he
4226 exceptions aren't caught anymore. If the user triggers one, he
4222 should know why he's doing it and it should go all the way up,
4227 should know why he's doing it and it should go all the way up,
4223 just like any other exception. So now @abort will fully kill the
4228 just like any other exception. So now @abort will fully kill the
4224 embedded interpreter and the embedding code (unless that happens
4229 embedded interpreter and the embedding code (unless that happens
4225 to catch SystemExit).
4230 to catch SystemExit).
4226
4231
4227 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4232 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4228 and a debugger() method to invoke the interactive pdb debugger
4233 and a debugger() method to invoke the interactive pdb debugger
4229 after printing exception information. Also added the corresponding
4234 after printing exception information. Also added the corresponding
4230 -pdb option and @pdb magic to control this feature, and updated
4235 -pdb option and @pdb magic to control this feature, and updated
4231 the docs. After a suggestion from Christopher Hart
4236 the docs. After a suggestion from Christopher Hart
4232 (hart-AT-caltech.edu).
4237 (hart-AT-caltech.edu).
4233
4238
4234 2002-04-12 Fernando Perez <fperez@colorado.edu>
4239 2002-04-12 Fernando Perez <fperez@colorado.edu>
4235
4240
4236 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4241 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4237 the exception handlers defined by the user (not the CrashHandler)
4242 the exception handlers defined by the user (not the CrashHandler)
4238 so that user exceptions don't trigger an ipython bug report.
4243 so that user exceptions don't trigger an ipython bug report.
4239
4244
4240 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4245 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4241 configurable (it should have always been so).
4246 configurable (it should have always been so).
4242
4247
4243 2002-03-26 Fernando Perez <fperez@colorado.edu>
4248 2002-03-26 Fernando Perez <fperez@colorado.edu>
4244
4249
4245 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4250 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4246 and there to fix embedding namespace issues. This should all be
4251 and there to fix embedding namespace issues. This should all be
4247 done in a more elegant way.
4252 done in a more elegant way.
4248
4253
4249 2002-03-25 Fernando Perez <fperez@colorado.edu>
4254 2002-03-25 Fernando Perez <fperez@colorado.edu>
4250
4255
4251 * IPython/genutils.py (get_home_dir): Try to make it work under
4256 * IPython/genutils.py (get_home_dir): Try to make it work under
4252 win9x also.
4257 win9x also.
4253
4258
4254 2002-03-20 Fernando Perez <fperez@colorado.edu>
4259 2002-03-20 Fernando Perez <fperez@colorado.edu>
4255
4260
4256 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4261 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4257 sys.displayhook untouched upon __init__.
4262 sys.displayhook untouched upon __init__.
4258
4263
4259 2002-03-19 Fernando Perez <fperez@colorado.edu>
4264 2002-03-19 Fernando Perez <fperez@colorado.edu>
4260
4265
4261 * Released 0.2.9 (for embedding bug, basically).
4266 * Released 0.2.9 (for embedding bug, basically).
4262
4267
4263 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4268 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4264 exceptions so that enclosing shell's state can be restored.
4269 exceptions so that enclosing shell's state can be restored.
4265
4270
4266 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4271 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4267 naming conventions in the .ipython/ dir.
4272 naming conventions in the .ipython/ dir.
4268
4273
4269 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4274 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4270 from delimiters list so filenames with - in them get expanded.
4275 from delimiters list so filenames with - in them get expanded.
4271
4276
4272 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4277 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4273 sys.displayhook not being properly restored after an embedded call.
4278 sys.displayhook not being properly restored after an embedded call.
4274
4279
4275 2002-03-18 Fernando Perez <fperez@colorado.edu>
4280 2002-03-18 Fernando Perez <fperez@colorado.edu>
4276
4281
4277 * Released 0.2.8
4282 * Released 0.2.8
4278
4283
4279 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4284 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4280 some files weren't being included in a -upgrade.
4285 some files weren't being included in a -upgrade.
4281 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4286 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4282 on' so that the first tab completes.
4287 on' so that the first tab completes.
4283 (InteractiveShell.handle_magic): fixed bug with spaces around
4288 (InteractiveShell.handle_magic): fixed bug with spaces around
4284 quotes breaking many magic commands.
4289 quotes breaking many magic commands.
4285
4290
4286 * setup.py: added note about ignoring the syntax error messages at
4291 * setup.py: added note about ignoring the syntax error messages at
4287 installation.
4292 installation.
4288
4293
4289 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4294 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4290 streamlining the gnuplot interface, now there's only one magic @gp.
4295 streamlining the gnuplot interface, now there's only one magic @gp.
4291
4296
4292 2002-03-17 Fernando Perez <fperez@colorado.edu>
4297 2002-03-17 Fernando Perez <fperez@colorado.edu>
4293
4298
4294 * IPython/UserConfig/magic_gnuplot.py: new name for the
4299 * IPython/UserConfig/magic_gnuplot.py: new name for the
4295 example-magic_pm.py file. Much enhanced system, now with a shell
4300 example-magic_pm.py file. Much enhanced system, now with a shell
4296 for communicating directly with gnuplot, one command at a time.
4301 for communicating directly with gnuplot, one command at a time.
4297
4302
4298 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4303 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4299 setting __name__=='__main__'.
4304 setting __name__=='__main__'.
4300
4305
4301 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4306 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4302 mini-shell for accessing gnuplot from inside ipython. Should
4307 mini-shell for accessing gnuplot from inside ipython. Should
4303 extend it later for grace access too. Inspired by Arnd's
4308 extend it later for grace access too. Inspired by Arnd's
4304 suggestion.
4309 suggestion.
4305
4310
4306 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4311 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4307 calling magic functions with () in their arguments. Thanks to Arnd
4312 calling magic functions with () in their arguments. Thanks to Arnd
4308 Baecker for pointing this to me.
4313 Baecker for pointing this to me.
4309
4314
4310 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4315 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4311 infinitely for integer or complex arrays (only worked with floats).
4316 infinitely for integer or complex arrays (only worked with floats).
4312
4317
4313 2002-03-16 Fernando Perez <fperez@colorado.edu>
4318 2002-03-16 Fernando Perez <fperez@colorado.edu>
4314
4319
4315 * setup.py: Merged setup and setup_windows into a single script
4320 * setup.py: Merged setup and setup_windows into a single script
4316 which properly handles things for windows users.
4321 which properly handles things for windows users.
4317
4322
4318 2002-03-15 Fernando Perez <fperez@colorado.edu>
4323 2002-03-15 Fernando Perez <fperez@colorado.edu>
4319
4324
4320 * Big change to the manual: now the magics are all automatically
4325 * Big change to the manual: now the magics are all automatically
4321 documented. This information is generated from their docstrings
4326 documented. This information is generated from their docstrings
4322 and put in a latex file included by the manual lyx file. This way
4327 and put in a latex file included by the manual lyx file. This way
4323 we get always up to date information for the magics. The manual
4328 we get always up to date information for the magics. The manual
4324 now also has proper version information, also auto-synced.
4329 now also has proper version information, also auto-synced.
4325
4330
4326 For this to work, an undocumented --magic_docstrings option was added.
4331 For this to work, an undocumented --magic_docstrings option was added.
4327
4332
4328 2002-03-13 Fernando Perez <fperez@colorado.edu>
4333 2002-03-13 Fernando Perez <fperez@colorado.edu>
4329
4334
4330 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4335 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4331 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4336 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4332
4337
4333 2002-03-12 Fernando Perez <fperez@colorado.edu>
4338 2002-03-12 Fernando Perez <fperez@colorado.edu>
4334
4339
4335 * IPython/ultraTB.py (TermColors): changed color escapes again to
4340 * IPython/ultraTB.py (TermColors): changed color escapes again to
4336 fix the (old, reintroduced) line-wrapping bug. Basically, if
4341 fix the (old, reintroduced) line-wrapping bug. Basically, if
4337 \001..\002 aren't given in the color escapes, lines get wrapped
4342 \001..\002 aren't given in the color escapes, lines get wrapped
4338 weirdly. But giving those screws up old xterms and emacs terms. So
4343 weirdly. But giving those screws up old xterms and emacs terms. So
4339 I added some logic for emacs terms to be ok, but I can't identify old
4344 I added some logic for emacs terms to be ok, but I can't identify old
4340 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4345 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4341
4346
4342 2002-03-10 Fernando Perez <fperez@colorado.edu>
4347 2002-03-10 Fernando Perez <fperez@colorado.edu>
4343
4348
4344 * IPython/usage.py (__doc__): Various documentation cleanups and
4349 * IPython/usage.py (__doc__): Various documentation cleanups and
4345 updates, both in usage docstrings and in the manual.
4350 updates, both in usage docstrings and in the manual.
4346
4351
4347 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4352 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4348 handling of caching. Set minimum acceptabe value for having a
4353 handling of caching. Set minimum acceptabe value for having a
4349 cache at 20 values.
4354 cache at 20 values.
4350
4355
4351 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4356 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4352 install_first_time function to a method, renamed it and added an
4357 install_first_time function to a method, renamed it and added an
4353 'upgrade' mode. Now people can update their config directory with
4358 'upgrade' mode. Now people can update their config directory with
4354 a simple command line switch (-upgrade, also new).
4359 a simple command line switch (-upgrade, also new).
4355
4360
4356 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4361 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4357 @file (convenient for automagic users under Python >= 2.2).
4362 @file (convenient for automagic users under Python >= 2.2).
4358 Removed @files (it seemed more like a plural than an abbrev. of
4363 Removed @files (it seemed more like a plural than an abbrev. of
4359 'file show').
4364 'file show').
4360
4365
4361 * IPython/iplib.py (install_first_time): Fixed crash if there were
4366 * IPython/iplib.py (install_first_time): Fixed crash if there were
4362 backup files ('~') in .ipython/ install directory.
4367 backup files ('~') in .ipython/ install directory.
4363
4368
4364 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4369 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4365 system. Things look fine, but these changes are fairly
4370 system. Things look fine, but these changes are fairly
4366 intrusive. Test them for a few days.
4371 intrusive. Test them for a few days.
4367
4372
4368 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4373 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4369 the prompts system. Now all in/out prompt strings are user
4374 the prompts system. Now all in/out prompt strings are user
4370 controllable. This is particularly useful for embedding, as one
4375 controllable. This is particularly useful for embedding, as one
4371 can tag embedded instances with particular prompts.
4376 can tag embedded instances with particular prompts.
4372
4377
4373 Also removed global use of sys.ps1/2, which now allows nested
4378 Also removed global use of sys.ps1/2, which now allows nested
4374 embeddings without any problems. Added command-line options for
4379 embeddings without any problems. Added command-line options for
4375 the prompt strings.
4380 the prompt strings.
4376
4381
4377 2002-03-08 Fernando Perez <fperez@colorado.edu>
4382 2002-03-08 Fernando Perez <fperez@colorado.edu>
4378
4383
4379 * IPython/UserConfig/example-embed-short.py (ipshell): added
4384 * IPython/UserConfig/example-embed-short.py (ipshell): added
4380 example file with the bare minimum code for embedding.
4385 example file with the bare minimum code for embedding.
4381
4386
4382 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4387 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4383 functionality for the embeddable shell to be activated/deactivated
4388 functionality for the embeddable shell to be activated/deactivated
4384 either globally or at each call.
4389 either globally or at each call.
4385
4390
4386 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4391 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4387 rewriting the prompt with '--->' for auto-inputs with proper
4392 rewriting the prompt with '--->' for auto-inputs with proper
4388 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4393 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4389 this is handled by the prompts class itself, as it should.
4394 this is handled by the prompts class itself, as it should.
4390
4395
4391 2002-03-05 Fernando Perez <fperez@colorado.edu>
4396 2002-03-05 Fernando Perez <fperez@colorado.edu>
4392
4397
4393 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4398 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4394 @logstart to avoid name clashes with the math log function.
4399 @logstart to avoid name clashes with the math log function.
4395
4400
4396 * Big updates to X/Emacs section of the manual.
4401 * Big updates to X/Emacs section of the manual.
4397
4402
4398 * Removed ipython_emacs. Milan explained to me how to pass
4403 * Removed ipython_emacs. Milan explained to me how to pass
4399 arguments to ipython through Emacs. Some day I'm going to end up
4404 arguments to ipython through Emacs. Some day I'm going to end up
4400 learning some lisp...
4405 learning some lisp...
4401
4406
4402 2002-03-04 Fernando Perez <fperez@colorado.edu>
4407 2002-03-04 Fernando Perez <fperez@colorado.edu>
4403
4408
4404 * IPython/ipython_emacs: Created script to be used as the
4409 * IPython/ipython_emacs: Created script to be used as the
4405 py-python-command Emacs variable so we can pass IPython
4410 py-python-command Emacs variable so we can pass IPython
4406 parameters. I can't figure out how to tell Emacs directly to pass
4411 parameters. I can't figure out how to tell Emacs directly to pass
4407 parameters to IPython, so a dummy shell script will do it.
4412 parameters to IPython, so a dummy shell script will do it.
4408
4413
4409 Other enhancements made for things to work better under Emacs'
4414 Other enhancements made for things to work better under Emacs'
4410 various types of terminals. Many thanks to Milan Zamazal
4415 various types of terminals. Many thanks to Milan Zamazal
4411 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4416 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4412
4417
4413 2002-03-01 Fernando Perez <fperez@colorado.edu>
4418 2002-03-01 Fernando Perez <fperez@colorado.edu>
4414
4419
4415 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4420 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4416 that loading of readline is now optional. This gives better
4421 that loading of readline is now optional. This gives better
4417 control to emacs users.
4422 control to emacs users.
4418
4423
4419 * IPython/ultraTB.py (__date__): Modified color escape sequences
4424 * IPython/ultraTB.py (__date__): Modified color escape sequences
4420 and now things work fine under xterm and in Emacs' term buffers
4425 and now things work fine under xterm and in Emacs' term buffers
4421 (though not shell ones). Well, in emacs you get colors, but all
4426 (though not shell ones). Well, in emacs you get colors, but all
4422 seem to be 'light' colors (no difference between dark and light
4427 seem to be 'light' colors (no difference between dark and light
4423 ones). But the garbage chars are gone, and also in xterms. It
4428 ones). But the garbage chars are gone, and also in xterms. It
4424 seems that now I'm using 'cleaner' ansi sequences.
4429 seems that now I'm using 'cleaner' ansi sequences.
4425
4430
4426 2002-02-21 Fernando Perez <fperez@colorado.edu>
4431 2002-02-21 Fernando Perez <fperez@colorado.edu>
4427
4432
4428 * Released 0.2.7 (mainly to publish the scoping fix).
4433 * Released 0.2.7 (mainly to publish the scoping fix).
4429
4434
4430 * IPython/Logger.py (Logger.logstate): added. A corresponding
4435 * IPython/Logger.py (Logger.logstate): added. A corresponding
4431 @logstate magic was created.
4436 @logstate magic was created.
4432
4437
4433 * IPython/Magic.py: fixed nested scoping problem under Python
4438 * IPython/Magic.py: fixed nested scoping problem under Python
4434 2.1.x (automagic wasn't working).
4439 2.1.x (automagic wasn't working).
4435
4440
4436 2002-02-20 Fernando Perez <fperez@colorado.edu>
4441 2002-02-20 Fernando Perez <fperez@colorado.edu>
4437
4442
4438 * Released 0.2.6.
4443 * Released 0.2.6.
4439
4444
4440 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4445 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4441 option so that logs can come out without any headers at all.
4446 option so that logs can come out without any headers at all.
4442
4447
4443 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4448 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4444 SciPy.
4449 SciPy.
4445
4450
4446 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4451 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4447 that embedded IPython calls don't require vars() to be explicitly
4452 that embedded IPython calls don't require vars() to be explicitly
4448 passed. Now they are extracted from the caller's frame (code
4453 passed. Now they are extracted from the caller's frame (code
4449 snatched from Eric Jones' weave). Added better documentation to
4454 snatched from Eric Jones' weave). Added better documentation to
4450 the section on embedding and the example file.
4455 the section on embedding and the example file.
4451
4456
4452 * IPython/genutils.py (page): Changed so that under emacs, it just
4457 * IPython/genutils.py (page): Changed so that under emacs, it just
4453 prints the string. You can then page up and down in the emacs
4458 prints the string. You can then page up and down in the emacs
4454 buffer itself. This is how the builtin help() works.
4459 buffer itself. This is how the builtin help() works.
4455
4460
4456 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4461 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4457 macro scoping: macros need to be executed in the user's namespace
4462 macro scoping: macros need to be executed in the user's namespace
4458 to work as if they had been typed by the user.
4463 to work as if they had been typed by the user.
4459
4464
4460 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4465 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4461 execute automatically (no need to type 'exec...'). They then
4466 execute automatically (no need to type 'exec...'). They then
4462 behave like 'true macros'. The printing system was also modified
4467 behave like 'true macros'. The printing system was also modified
4463 for this to work.
4468 for this to work.
4464
4469
4465 2002-02-19 Fernando Perez <fperez@colorado.edu>
4470 2002-02-19 Fernando Perez <fperez@colorado.edu>
4466
4471
4467 * IPython/genutils.py (page_file): new function for paging files
4472 * IPython/genutils.py (page_file): new function for paging files
4468 in an OS-independent way. Also necessary for file viewing to work
4473 in an OS-independent way. Also necessary for file viewing to work
4469 well inside Emacs buffers.
4474 well inside Emacs buffers.
4470 (page): Added checks for being in an emacs buffer.
4475 (page): Added checks for being in an emacs buffer.
4471 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4476 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4472 same bug in iplib.
4477 same bug in iplib.
4473
4478
4474 2002-02-18 Fernando Perez <fperez@colorado.edu>
4479 2002-02-18 Fernando Perez <fperez@colorado.edu>
4475
4480
4476 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4481 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4477 of readline so that IPython can work inside an Emacs buffer.
4482 of readline so that IPython can work inside an Emacs buffer.
4478
4483
4479 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4484 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4480 method signatures (they weren't really bugs, but it looks cleaner
4485 method signatures (they weren't really bugs, but it looks cleaner
4481 and keeps PyChecker happy).
4486 and keeps PyChecker happy).
4482
4487
4483 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4488 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4484 for implementing various user-defined hooks. Currently only
4489 for implementing various user-defined hooks. Currently only
4485 display is done.
4490 display is done.
4486
4491
4487 * IPython/Prompts.py (CachedOutput._display): changed display
4492 * IPython/Prompts.py (CachedOutput._display): changed display
4488 functions so that they can be dynamically changed by users easily.
4493 functions so that they can be dynamically changed by users easily.
4489
4494
4490 * IPython/Extensions/numeric_formats.py (num_display): added an
4495 * IPython/Extensions/numeric_formats.py (num_display): added an
4491 extension for printing NumPy arrays in flexible manners. It
4496 extension for printing NumPy arrays in flexible manners. It
4492 doesn't do anything yet, but all the structure is in
4497 doesn't do anything yet, but all the structure is in
4493 place. Ultimately the plan is to implement output format control
4498 place. Ultimately the plan is to implement output format control
4494 like in Octave.
4499 like in Octave.
4495
4500
4496 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4501 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4497 methods are found at run-time by all the automatic machinery.
4502 methods are found at run-time by all the automatic machinery.
4498
4503
4499 2002-02-17 Fernando Perez <fperez@colorado.edu>
4504 2002-02-17 Fernando Perez <fperez@colorado.edu>
4500
4505
4501 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4506 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4502 whole file a little.
4507 whole file a little.
4503
4508
4504 * ToDo: closed this document. Now there's a new_design.lyx
4509 * ToDo: closed this document. Now there's a new_design.lyx
4505 document for all new ideas. Added making a pdf of it for the
4510 document for all new ideas. Added making a pdf of it for the
4506 end-user distro.
4511 end-user distro.
4507
4512
4508 * IPython/Logger.py (Logger.switch_log): Created this to replace
4513 * IPython/Logger.py (Logger.switch_log): Created this to replace
4509 logon() and logoff(). It also fixes a nasty crash reported by
4514 logon() and logoff(). It also fixes a nasty crash reported by
4510 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4515 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4511
4516
4512 * IPython/iplib.py (complete): got auto-completion to work with
4517 * IPython/iplib.py (complete): got auto-completion to work with
4513 automagic (I had wanted this for a long time).
4518 automagic (I had wanted this for a long time).
4514
4519
4515 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4520 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4516 to @file, since file() is now a builtin and clashes with automagic
4521 to @file, since file() is now a builtin and clashes with automagic
4517 for @file.
4522 for @file.
4518
4523
4519 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4524 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4520 of this was previously in iplib, which had grown to more than 2000
4525 of this was previously in iplib, which had grown to more than 2000
4521 lines, way too long. No new functionality, but it makes managing
4526 lines, way too long. No new functionality, but it makes managing
4522 the code a bit easier.
4527 the code a bit easier.
4523
4528
4524 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4529 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4525 information to crash reports.
4530 information to crash reports.
4526
4531
4527 2002-02-12 Fernando Perez <fperez@colorado.edu>
4532 2002-02-12 Fernando Perez <fperez@colorado.edu>
4528
4533
4529 * Released 0.2.5.
4534 * Released 0.2.5.
4530
4535
4531 2002-02-11 Fernando Perez <fperez@colorado.edu>
4536 2002-02-11 Fernando Perez <fperez@colorado.edu>
4532
4537
4533 * Wrote a relatively complete Windows installer. It puts
4538 * Wrote a relatively complete Windows installer. It puts
4534 everything in place, creates Start Menu entries and fixes the
4539 everything in place, creates Start Menu entries and fixes the
4535 color issues. Nothing fancy, but it works.
4540 color issues. Nothing fancy, but it works.
4536
4541
4537 2002-02-10 Fernando Perez <fperez@colorado.edu>
4542 2002-02-10 Fernando Perez <fperez@colorado.edu>
4538
4543
4539 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4544 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4540 os.path.expanduser() call so that we can type @run ~/myfile.py and
4545 os.path.expanduser() call so that we can type @run ~/myfile.py and
4541 have thigs work as expected.
4546 have thigs work as expected.
4542
4547
4543 * IPython/genutils.py (page): fixed exception handling so things
4548 * IPython/genutils.py (page): fixed exception handling so things
4544 work both in Unix and Windows correctly. Quitting a pager triggers
4549 work both in Unix and Windows correctly. Quitting a pager triggers
4545 an IOError/broken pipe in Unix, and in windows not finding a pager
4550 an IOError/broken pipe in Unix, and in windows not finding a pager
4546 is also an IOError, so I had to actually look at the return value
4551 is also an IOError, so I had to actually look at the return value
4547 of the exception, not just the exception itself. Should be ok now.
4552 of the exception, not just the exception itself. Should be ok now.
4548
4553
4549 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4554 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4550 modified to allow case-insensitive color scheme changes.
4555 modified to allow case-insensitive color scheme changes.
4551
4556
4552 2002-02-09 Fernando Perez <fperez@colorado.edu>
4557 2002-02-09 Fernando Perez <fperez@colorado.edu>
4553
4558
4554 * IPython/genutils.py (native_line_ends): new function to leave
4559 * IPython/genutils.py (native_line_ends): new function to leave
4555 user config files with os-native line-endings.
4560 user config files with os-native line-endings.
4556
4561
4557 * README and manual updates.
4562 * README and manual updates.
4558
4563
4559 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4564 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4560 instead of StringType to catch Unicode strings.
4565 instead of StringType to catch Unicode strings.
4561
4566
4562 * IPython/genutils.py (filefind): fixed bug for paths with
4567 * IPython/genutils.py (filefind): fixed bug for paths with
4563 embedded spaces (very common in Windows).
4568 embedded spaces (very common in Windows).
4564
4569
4565 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4570 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4566 files under Windows, so that they get automatically associated
4571 files under Windows, so that they get automatically associated
4567 with a text editor. Windows makes it a pain to handle
4572 with a text editor. Windows makes it a pain to handle
4568 extension-less files.
4573 extension-less files.
4569
4574
4570 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4575 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4571 warning about readline only occur for Posix. In Windows there's no
4576 warning about readline only occur for Posix. In Windows there's no
4572 way to get readline, so why bother with the warning.
4577 way to get readline, so why bother with the warning.
4573
4578
4574 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4579 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4575 for __str__ instead of dir(self), since dir() changed in 2.2.
4580 for __str__ instead of dir(self), since dir() changed in 2.2.
4576
4581
4577 * Ported to Windows! Tested on XP, I suspect it should work fine
4582 * Ported to Windows! Tested on XP, I suspect it should work fine
4578 on NT/2000, but I don't think it will work on 98 et al. That
4583 on NT/2000, but I don't think it will work on 98 et al. That
4579 series of Windows is such a piece of junk anyway that I won't try
4584 series of Windows is such a piece of junk anyway that I won't try
4580 porting it there. The XP port was straightforward, showed a few
4585 porting it there. The XP port was straightforward, showed a few
4581 bugs here and there (fixed all), in particular some string
4586 bugs here and there (fixed all), in particular some string
4582 handling stuff which required considering Unicode strings (which
4587 handling stuff which required considering Unicode strings (which
4583 Windows uses). This is good, but hasn't been too tested :) No
4588 Windows uses). This is good, but hasn't been too tested :) No
4584 fancy installer yet, I'll put a note in the manual so people at
4589 fancy installer yet, I'll put a note in the manual so people at
4585 least make manually a shortcut.
4590 least make manually a shortcut.
4586
4591
4587 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4592 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4588 into a single one, "colors". This now controls both prompt and
4593 into a single one, "colors". This now controls both prompt and
4589 exception color schemes, and can be changed both at startup
4594 exception color schemes, and can be changed both at startup
4590 (either via command-line switches or via ipythonrc files) and at
4595 (either via command-line switches or via ipythonrc files) and at
4591 runtime, with @colors.
4596 runtime, with @colors.
4592 (Magic.magic_run): renamed @prun to @run and removed the old
4597 (Magic.magic_run): renamed @prun to @run and removed the old
4593 @run. The two were too similar to warrant keeping both.
4598 @run. The two were too similar to warrant keeping both.
4594
4599
4595 2002-02-03 Fernando Perez <fperez@colorado.edu>
4600 2002-02-03 Fernando Perez <fperez@colorado.edu>
4596
4601
4597 * IPython/iplib.py (install_first_time): Added comment on how to
4602 * IPython/iplib.py (install_first_time): Added comment on how to
4598 configure the color options for first-time users. Put a <return>
4603 configure the color options for first-time users. Put a <return>
4599 request at the end so that small-terminal users get a chance to
4604 request at the end so that small-terminal users get a chance to
4600 read the startup info.
4605 read the startup info.
4601
4606
4602 2002-01-23 Fernando Perez <fperez@colorado.edu>
4607 2002-01-23 Fernando Perez <fperez@colorado.edu>
4603
4608
4604 * IPython/iplib.py (CachedOutput.update): Changed output memory
4609 * IPython/iplib.py (CachedOutput.update): Changed output memory
4605 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4610 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4606 input history we still use _i. Did this b/c these variable are
4611 input history we still use _i. Did this b/c these variable are
4607 very commonly used in interactive work, so the less we need to
4612 very commonly used in interactive work, so the less we need to
4608 type the better off we are.
4613 type the better off we are.
4609 (Magic.magic_prun): updated @prun to better handle the namespaces
4614 (Magic.magic_prun): updated @prun to better handle the namespaces
4610 the file will run in, including a fix for __name__ not being set
4615 the file will run in, including a fix for __name__ not being set
4611 before.
4616 before.
4612
4617
4613 2002-01-20 Fernando Perez <fperez@colorado.edu>
4618 2002-01-20 Fernando Perez <fperez@colorado.edu>
4614
4619
4615 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4620 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4616 extra garbage for Python 2.2. Need to look more carefully into
4621 extra garbage for Python 2.2. Need to look more carefully into
4617 this later.
4622 this later.
4618
4623
4619 2002-01-19 Fernando Perez <fperez@colorado.edu>
4624 2002-01-19 Fernando Perez <fperez@colorado.edu>
4620
4625
4621 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4626 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4622 display SyntaxError exceptions properly formatted when they occur
4627 display SyntaxError exceptions properly formatted when they occur
4623 (they can be triggered by imported code).
4628 (they can be triggered by imported code).
4624
4629
4625 2002-01-18 Fernando Perez <fperez@colorado.edu>
4630 2002-01-18 Fernando Perez <fperez@colorado.edu>
4626
4631
4627 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4632 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4628 SyntaxError exceptions are reported nicely formatted, instead of
4633 SyntaxError exceptions are reported nicely formatted, instead of
4629 spitting out only offset information as before.
4634 spitting out only offset information as before.
4630 (Magic.magic_prun): Added the @prun function for executing
4635 (Magic.magic_prun): Added the @prun function for executing
4631 programs with command line args inside IPython.
4636 programs with command line args inside IPython.
4632
4637
4633 2002-01-16 Fernando Perez <fperez@colorado.edu>
4638 2002-01-16 Fernando Perez <fperez@colorado.edu>
4634
4639
4635 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4640 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4636 to *not* include the last item given in a range. This brings their
4641 to *not* include the last item given in a range. This brings their
4637 behavior in line with Python's slicing:
4642 behavior in line with Python's slicing:
4638 a[n1:n2] -> a[n1]...a[n2-1]
4643 a[n1:n2] -> a[n1]...a[n2-1]
4639 It may be a bit less convenient, but I prefer to stick to Python's
4644 It may be a bit less convenient, but I prefer to stick to Python's
4640 conventions *everywhere*, so users never have to wonder.
4645 conventions *everywhere*, so users never have to wonder.
4641 (Magic.magic_macro): Added @macro function to ease the creation of
4646 (Magic.magic_macro): Added @macro function to ease the creation of
4642 macros.
4647 macros.
4643
4648
4644 2002-01-05 Fernando Perez <fperez@colorado.edu>
4649 2002-01-05 Fernando Perez <fperez@colorado.edu>
4645
4650
4646 * Released 0.2.4.
4651 * Released 0.2.4.
4647
4652
4648 * IPython/iplib.py (Magic.magic_pdef):
4653 * IPython/iplib.py (Magic.magic_pdef):
4649 (InteractiveShell.safe_execfile): report magic lines and error
4654 (InteractiveShell.safe_execfile): report magic lines and error
4650 lines without line numbers so one can easily copy/paste them for
4655 lines without line numbers so one can easily copy/paste them for
4651 re-execution.
4656 re-execution.
4652
4657
4653 * Updated manual with recent changes.
4658 * Updated manual with recent changes.
4654
4659
4655 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4660 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4656 docstring printing when class? is called. Very handy for knowing
4661 docstring printing when class? is called. Very handy for knowing
4657 how to create class instances (as long as __init__ is well
4662 how to create class instances (as long as __init__ is well
4658 documented, of course :)
4663 documented, of course :)
4659 (Magic.magic_doc): print both class and constructor docstrings.
4664 (Magic.magic_doc): print both class and constructor docstrings.
4660 (Magic.magic_pdef): give constructor info if passed a class and
4665 (Magic.magic_pdef): give constructor info if passed a class and
4661 __call__ info for callable object instances.
4666 __call__ info for callable object instances.
4662
4667
4663 2002-01-04 Fernando Perez <fperez@colorado.edu>
4668 2002-01-04 Fernando Perez <fperez@colorado.edu>
4664
4669
4665 * Made deep_reload() off by default. It doesn't always work
4670 * Made deep_reload() off by default. It doesn't always work
4666 exactly as intended, so it's probably safer to have it off. It's
4671 exactly as intended, so it's probably safer to have it off. It's
4667 still available as dreload() anyway, so nothing is lost.
4672 still available as dreload() anyway, so nothing is lost.
4668
4673
4669 2002-01-02 Fernando Perez <fperez@colorado.edu>
4674 2002-01-02 Fernando Perez <fperez@colorado.edu>
4670
4675
4671 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4676 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4672 so I wanted an updated release).
4677 so I wanted an updated release).
4673
4678
4674 2001-12-27 Fernando Perez <fperez@colorado.edu>
4679 2001-12-27 Fernando Perez <fperez@colorado.edu>
4675
4680
4676 * IPython/iplib.py (InteractiveShell.interact): Added the original
4681 * IPython/iplib.py (InteractiveShell.interact): Added the original
4677 code from 'code.py' for this module in order to change the
4682 code from 'code.py' for this module in order to change the
4678 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4683 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4679 the history cache would break when the user hit Ctrl-C, and
4684 the history cache would break when the user hit Ctrl-C, and
4680 interact() offers no way to add any hooks to it.
4685 interact() offers no way to add any hooks to it.
4681
4686
4682 2001-12-23 Fernando Perez <fperez@colorado.edu>
4687 2001-12-23 Fernando Perez <fperez@colorado.edu>
4683
4688
4684 * setup.py: added check for 'MANIFEST' before trying to remove
4689 * setup.py: added check for 'MANIFEST' before trying to remove
4685 it. Thanks to Sean Reifschneider.
4690 it. Thanks to Sean Reifschneider.
4686
4691
4687 2001-12-22 Fernando Perez <fperez@colorado.edu>
4692 2001-12-22 Fernando Perez <fperez@colorado.edu>
4688
4693
4689 * Released 0.2.2.
4694 * Released 0.2.2.
4690
4695
4691 * Finished (reasonably) writing the manual. Later will add the
4696 * Finished (reasonably) writing the manual. Later will add the
4692 python-standard navigation stylesheets, but for the time being
4697 python-standard navigation stylesheets, but for the time being
4693 it's fairly complete. Distribution will include html and pdf
4698 it's fairly complete. Distribution will include html and pdf
4694 versions.
4699 versions.
4695
4700
4696 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4701 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4697 (MayaVi author).
4702 (MayaVi author).
4698
4703
4699 2001-12-21 Fernando Perez <fperez@colorado.edu>
4704 2001-12-21 Fernando Perez <fperez@colorado.edu>
4700
4705
4701 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4706 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4702 good public release, I think (with the manual and the distutils
4707 good public release, I think (with the manual and the distutils
4703 installer). The manual can use some work, but that can go
4708 installer). The manual can use some work, but that can go
4704 slowly. Otherwise I think it's quite nice for end users. Next
4709 slowly. Otherwise I think it's quite nice for end users. Next
4705 summer, rewrite the guts of it...
4710 summer, rewrite the guts of it...
4706
4711
4707 * Changed format of ipythonrc files to use whitespace as the
4712 * Changed format of ipythonrc files to use whitespace as the
4708 separator instead of an explicit '='. Cleaner.
4713 separator instead of an explicit '='. Cleaner.
4709
4714
4710 2001-12-20 Fernando Perez <fperez@colorado.edu>
4715 2001-12-20 Fernando Perez <fperez@colorado.edu>
4711
4716
4712 * Started a manual in LyX. For now it's just a quick merge of the
4717 * Started a manual in LyX. For now it's just a quick merge of the
4713 various internal docstrings and READMEs. Later it may grow into a
4718 various internal docstrings and READMEs. Later it may grow into a
4714 nice, full-blown manual.
4719 nice, full-blown manual.
4715
4720
4716 * Set up a distutils based installer. Installation should now be
4721 * Set up a distutils based installer. Installation should now be
4717 trivially simple for end-users.
4722 trivially simple for end-users.
4718
4723
4719 2001-12-11 Fernando Perez <fperez@colorado.edu>
4724 2001-12-11 Fernando Perez <fperez@colorado.edu>
4720
4725
4721 * Released 0.2.0. First public release, announced it at
4726 * Released 0.2.0. First public release, announced it at
4722 comp.lang.python. From now on, just bugfixes...
4727 comp.lang.python. From now on, just bugfixes...
4723
4728
4724 * Went through all the files, set copyright/license notices and
4729 * Went through all the files, set copyright/license notices and
4725 cleaned up things. Ready for release.
4730 cleaned up things. Ready for release.
4726
4731
4727 2001-12-10 Fernando Perez <fperez@colorado.edu>
4732 2001-12-10 Fernando Perez <fperez@colorado.edu>
4728
4733
4729 * Changed the first-time installer not to use tarfiles. It's more
4734 * Changed the first-time installer not to use tarfiles. It's more
4730 robust now and less unix-dependent. Also makes it easier for
4735 robust now and less unix-dependent. Also makes it easier for
4731 people to later upgrade versions.
4736 people to later upgrade versions.
4732
4737
4733 * Changed @exit to @abort to reflect the fact that it's pretty
4738 * Changed @exit to @abort to reflect the fact that it's pretty
4734 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4739 brutal (a sys.exit()). The difference between @abort and Ctrl-D
4735 becomes significant only when IPyhton is embedded: in that case,
4740 becomes significant only when IPyhton is embedded: in that case,
4736 C-D closes IPython only, but @abort kills the enclosing program
4741 C-D closes IPython only, but @abort kills the enclosing program
4737 too (unless it had called IPython inside a try catching
4742 too (unless it had called IPython inside a try catching
4738 SystemExit).
4743 SystemExit).
4739
4744
4740 * Created Shell module which exposes the actuall IPython Shell
4745 * Created Shell module which exposes the actuall IPython Shell
4741 classes, currently the normal and the embeddable one. This at
4746 classes, currently the normal and the embeddable one. This at
4742 least offers a stable interface we won't need to change when
4747 least offers a stable interface we won't need to change when
4743 (later) the internals are rewritten. That rewrite will be confined
4748 (later) the internals are rewritten. That rewrite will be confined
4744 to iplib and ipmaker, but the Shell interface should remain as is.
4749 to iplib and ipmaker, but the Shell interface should remain as is.
4745
4750
4746 * Added embed module which offers an embeddable IPShell object,
4751 * Added embed module which offers an embeddable IPShell object,
4747 useful to fire up IPython *inside* a running program. Great for
4752 useful to fire up IPython *inside* a running program. Great for
4748 debugging or dynamical data analysis.
4753 debugging or dynamical data analysis.
4749
4754
4750 2001-12-08 Fernando Perez <fperez@colorado.edu>
4755 2001-12-08 Fernando Perez <fperez@colorado.edu>
4751
4756
4752 * Fixed small bug preventing seeing info from methods of defined
4757 * Fixed small bug preventing seeing info from methods of defined
4753 objects (incorrect namespace in _ofind()).
4758 objects (incorrect namespace in _ofind()).
4754
4759
4755 * Documentation cleanup. Moved the main usage docstrings to a
4760 * Documentation cleanup. Moved the main usage docstrings to a
4756 separate file, usage.py (cleaner to maintain, and hopefully in the
4761 separate file, usage.py (cleaner to maintain, and hopefully in the
4757 future some perlpod-like way of producing interactive, man and
4762 future some perlpod-like way of producing interactive, man and
4758 html docs out of it will be found).
4763 html docs out of it will be found).
4759
4764
4760 * Added @profile to see your profile at any time.
4765 * Added @profile to see your profile at any time.
4761
4766
4762 * Added @p as an alias for 'print'. It's especially convenient if
4767 * Added @p as an alias for 'print'. It's especially convenient if
4763 using automagic ('p x' prints x).
4768 using automagic ('p x' prints x).
4764
4769
4765 * Small cleanups and fixes after a pychecker run.
4770 * Small cleanups and fixes after a pychecker run.
4766
4771
4767 * Changed the @cd command to handle @cd - and @cd -<n> for
4772 * Changed the @cd command to handle @cd - and @cd -<n> for
4768 visiting any directory in _dh.
4773 visiting any directory in _dh.
4769
4774
4770 * Introduced _dh, a history of visited directories. @dhist prints
4775 * Introduced _dh, a history of visited directories. @dhist prints
4771 it out with numbers.
4776 it out with numbers.
4772
4777
4773 2001-12-07 Fernando Perez <fperez@colorado.edu>
4778 2001-12-07 Fernando Perez <fperez@colorado.edu>
4774
4779
4775 * Released 0.1.22
4780 * Released 0.1.22
4776
4781
4777 * Made initialization a bit more robust against invalid color
4782 * Made initialization a bit more robust against invalid color
4778 options in user input (exit, not traceback-crash).
4783 options in user input (exit, not traceback-crash).
4779
4784
4780 * Changed the bug crash reporter to write the report only in the
4785 * Changed the bug crash reporter to write the report only in the
4781 user's .ipython directory. That way IPython won't litter people's
4786 user's .ipython directory. That way IPython won't litter people's
4782 hard disks with crash files all over the place. Also print on
4787 hard disks with crash files all over the place. Also print on
4783 screen the necessary mail command.
4788 screen the necessary mail command.
4784
4789
4785 * With the new ultraTB, implemented LightBG color scheme for light
4790 * With the new ultraTB, implemented LightBG color scheme for light
4786 background terminals. A lot of people like white backgrounds, so I
4791 background terminals. A lot of people like white backgrounds, so I
4787 guess we should at least give them something readable.
4792 guess we should at least give them something readable.
4788
4793
4789 2001-12-06 Fernando Perez <fperez@colorado.edu>
4794 2001-12-06 Fernando Perez <fperez@colorado.edu>
4790
4795
4791 * Modified the structure of ultraTB. Now there's a proper class
4796 * Modified the structure of ultraTB. Now there's a proper class
4792 for tables of color schemes which allow adding schemes easily and
4797 for tables of color schemes which allow adding schemes easily and
4793 switching the active scheme without creating a new instance every
4798 switching the active scheme without creating a new instance every
4794 time (which was ridiculous). The syntax for creating new schemes
4799 time (which was ridiculous). The syntax for creating new schemes
4795 is also cleaner. I think ultraTB is finally done, with a clean
4800 is also cleaner. I think ultraTB is finally done, with a clean
4796 class structure. Names are also much cleaner (now there's proper
4801 class structure. Names are also much cleaner (now there's proper
4797 color tables, no need for every variable to also have 'color' in
4802 color tables, no need for every variable to also have 'color' in
4798 its name).
4803 its name).
4799
4804
4800 * Broke down genutils into separate files. Now genutils only
4805 * Broke down genutils into separate files. Now genutils only
4801 contains utility functions, and classes have been moved to their
4806 contains utility functions, and classes have been moved to their
4802 own files (they had enough independent functionality to warrant
4807 own files (they had enough independent functionality to warrant
4803 it): ConfigLoader, OutputTrap, Struct.
4808 it): ConfigLoader, OutputTrap, Struct.
4804
4809
4805 2001-12-05 Fernando Perez <fperez@colorado.edu>
4810 2001-12-05 Fernando Perez <fperez@colorado.edu>
4806
4811
4807 * IPython turns 21! Released version 0.1.21, as a candidate for
4812 * IPython turns 21! Released version 0.1.21, as a candidate for
4808 public consumption. If all goes well, release in a few days.
4813 public consumption. If all goes well, release in a few days.
4809
4814
4810 * Fixed path bug (files in Extensions/ directory wouldn't be found
4815 * Fixed path bug (files in Extensions/ directory wouldn't be found
4811 unless IPython/ was explicitly in sys.path).
4816 unless IPython/ was explicitly in sys.path).
4812
4817
4813 * Extended the FlexCompleter class as MagicCompleter to allow
4818 * Extended the FlexCompleter class as MagicCompleter to allow
4814 completion of @-starting lines.
4819 completion of @-starting lines.
4815
4820
4816 * Created __release__.py file as a central repository for release
4821 * Created __release__.py file as a central repository for release
4817 info that other files can read from.
4822 info that other files can read from.
4818
4823
4819 * Fixed small bug in logging: when logging was turned on in
4824 * Fixed small bug in logging: when logging was turned on in
4820 mid-session, old lines with special meanings (!@?) were being
4825 mid-session, old lines with special meanings (!@?) were being
4821 logged without the prepended comment, which is necessary since
4826 logged without the prepended comment, which is necessary since
4822 they are not truly valid python syntax. This should make session
4827 they are not truly valid python syntax. This should make session
4823 restores produce less errors.
4828 restores produce less errors.
4824
4829
4825 * The namespace cleanup forced me to make a FlexCompleter class
4830 * The namespace cleanup forced me to make a FlexCompleter class
4826 which is nothing but a ripoff of rlcompleter, but with selectable
4831 which is nothing but a ripoff of rlcompleter, but with selectable
4827 namespace (rlcompleter only works in __main__.__dict__). I'll try
4832 namespace (rlcompleter only works in __main__.__dict__). I'll try
4828 to submit a note to the authors to see if this change can be
4833 to submit a note to the authors to see if this change can be
4829 incorporated in future rlcompleter releases (Dec.6: done)
4834 incorporated in future rlcompleter releases (Dec.6: done)
4830
4835
4831 * More fixes to namespace handling. It was a mess! Now all
4836 * More fixes to namespace handling. It was a mess! Now all
4832 explicit references to __main__.__dict__ are gone (except when
4837 explicit references to __main__.__dict__ are gone (except when
4833 really needed) and everything is handled through the namespace
4838 really needed) and everything is handled through the namespace
4834 dicts in the IPython instance. We seem to be getting somewhere
4839 dicts in the IPython instance. We seem to be getting somewhere
4835 with this, finally...
4840 with this, finally...
4836
4841
4837 * Small documentation updates.
4842 * Small documentation updates.
4838
4843
4839 * Created the Extensions directory under IPython (with an
4844 * Created the Extensions directory under IPython (with an
4840 __init__.py). Put the PhysicalQ stuff there. This directory should
4845 __init__.py). Put the PhysicalQ stuff there. This directory should
4841 be used for all special-purpose extensions.
4846 be used for all special-purpose extensions.
4842
4847
4843 * File renaming:
4848 * File renaming:
4844 ipythonlib --> ipmaker
4849 ipythonlib --> ipmaker
4845 ipplib --> iplib
4850 ipplib --> iplib
4846 This makes a bit more sense in terms of what these files actually do.
4851 This makes a bit more sense in terms of what these files actually do.
4847
4852
4848 * Moved all the classes and functions in ipythonlib to ipplib, so
4853 * Moved all the classes and functions in ipythonlib to ipplib, so
4849 now ipythonlib only has make_IPython(). This will ease up its
4854 now ipythonlib only has make_IPython(). This will ease up its
4850 splitting in smaller functional chunks later.
4855 splitting in smaller functional chunks later.
4851
4856
4852 * Cleaned up (done, I think) output of @whos. Better column
4857 * Cleaned up (done, I think) output of @whos. Better column
4853 formatting, and now shows str(var) for as much as it can, which is
4858 formatting, and now shows str(var) for as much as it can, which is
4854 typically what one gets with a 'print var'.
4859 typically what one gets with a 'print var'.
4855
4860
4856 2001-12-04 Fernando Perez <fperez@colorado.edu>
4861 2001-12-04 Fernando Perez <fperez@colorado.edu>
4857
4862
4858 * Fixed namespace problems. Now builtin/IPyhton/user names get
4863 * Fixed namespace problems. Now builtin/IPyhton/user names get
4859 properly reported in their namespace. Internal namespace handling
4864 properly reported in their namespace. Internal namespace handling
4860 is finally getting decent (not perfect yet, but much better than
4865 is finally getting decent (not perfect yet, but much better than
4861 the ad-hoc mess we had).
4866 the ad-hoc mess we had).
4862
4867
4863 * Removed -exit option. If people just want to run a python
4868 * Removed -exit option. If people just want to run a python
4864 script, that's what the normal interpreter is for. Less
4869 script, that's what the normal interpreter is for. Less
4865 unnecessary options, less chances for bugs.
4870 unnecessary options, less chances for bugs.
4866
4871
4867 * Added a crash handler which generates a complete post-mortem if
4872 * Added a crash handler which generates a complete post-mortem if
4868 IPython crashes. This will help a lot in tracking bugs down the
4873 IPython crashes. This will help a lot in tracking bugs down the
4869 road.
4874 road.
4870
4875
4871 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4876 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
4872 which were boud to functions being reassigned would bypass the
4877 which were boud to functions being reassigned would bypass the
4873 logger, breaking the sync of _il with the prompt counter. This
4878 logger, breaking the sync of _il with the prompt counter. This
4874 would then crash IPython later when a new line was logged.
4879 would then crash IPython later when a new line was logged.
4875
4880
4876 2001-12-02 Fernando Perez <fperez@colorado.edu>
4881 2001-12-02 Fernando Perez <fperez@colorado.edu>
4877
4882
4878 * Made IPython a package. This means people don't have to clutter
4883 * Made IPython a package. This means people don't have to clutter
4879 their sys.path with yet another directory. Changed the INSTALL
4884 their sys.path with yet another directory. Changed the INSTALL
4880 file accordingly.
4885 file accordingly.
4881
4886
4882 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4887 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
4883 sorts its output (so @who shows it sorted) and @whos formats the
4888 sorts its output (so @who shows it sorted) and @whos formats the
4884 table according to the width of the first column. Nicer, easier to
4889 table according to the width of the first column. Nicer, easier to
4885 read. Todo: write a generic table_format() which takes a list of
4890 read. Todo: write a generic table_format() which takes a list of
4886 lists and prints it nicely formatted, with optional row/column
4891 lists and prints it nicely formatted, with optional row/column
4887 separators and proper padding and justification.
4892 separators and proper padding and justification.
4888
4893
4889 * Released 0.1.20
4894 * Released 0.1.20
4890
4895
4891 * Fixed bug in @log which would reverse the inputcache list (a
4896 * Fixed bug in @log which would reverse the inputcache list (a
4892 copy operation was missing).
4897 copy operation was missing).
4893
4898
4894 * Code cleanup. @config was changed to use page(). Better, since
4899 * Code cleanup. @config was changed to use page(). Better, since
4895 its output is always quite long.
4900 its output is always quite long.
4896
4901
4897 * Itpl is back as a dependency. I was having too many problems
4902 * Itpl is back as a dependency. I was having too many problems
4898 getting the parametric aliases to work reliably, and it's just
4903 getting the parametric aliases to work reliably, and it's just
4899 easier to code weird string operations with it than playing %()s
4904 easier to code weird string operations with it than playing %()s
4900 games. It's only ~6k, so I don't think it's too big a deal.
4905 games. It's only ~6k, so I don't think it's too big a deal.
4901
4906
4902 * Found (and fixed) a very nasty bug with history. !lines weren't
4907 * Found (and fixed) a very nasty bug with history. !lines weren't
4903 getting cached, and the out of sync caches would crash
4908 getting cached, and the out of sync caches would crash
4904 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4909 IPython. Fixed it by reorganizing the prefilter/handlers/logger
4905 division of labor a bit better. Bug fixed, cleaner structure.
4910 division of labor a bit better. Bug fixed, cleaner structure.
4906
4911
4907 2001-12-01 Fernando Perez <fperez@colorado.edu>
4912 2001-12-01 Fernando Perez <fperez@colorado.edu>
4908
4913
4909 * Released 0.1.19
4914 * Released 0.1.19
4910
4915
4911 * Added option -n to @hist to prevent line number printing. Much
4916 * Added option -n to @hist to prevent line number printing. Much
4912 easier to copy/paste code this way.
4917 easier to copy/paste code this way.
4913
4918
4914 * Created global _il to hold the input list. Allows easy
4919 * Created global _il to hold the input list. Allows easy
4915 re-execution of blocks of code by slicing it (inspired by Janko's
4920 re-execution of blocks of code by slicing it (inspired by Janko's
4916 comment on 'macros').
4921 comment on 'macros').
4917
4922
4918 * Small fixes and doc updates.
4923 * Small fixes and doc updates.
4919
4924
4920 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4925 * Rewrote @history function (was @h). Renamed it to @hist, @h is
4921 much too fragile with automagic. Handles properly multi-line
4926 much too fragile with automagic. Handles properly multi-line
4922 statements and takes parameters.
4927 statements and takes parameters.
4923
4928
4924 2001-11-30 Fernando Perez <fperez@colorado.edu>
4929 2001-11-30 Fernando Perez <fperez@colorado.edu>
4925
4930
4926 * Version 0.1.18 released.
4931 * Version 0.1.18 released.
4927
4932
4928 * Fixed nasty namespace bug in initial module imports.
4933 * Fixed nasty namespace bug in initial module imports.
4929
4934
4930 * Added copyright/license notes to all code files (except
4935 * Added copyright/license notes to all code files (except
4931 DPyGetOpt). For the time being, LGPL. That could change.
4936 DPyGetOpt). For the time being, LGPL. That could change.
4932
4937
4933 * Rewrote a much nicer README, updated INSTALL, cleaned up
4938 * Rewrote a much nicer README, updated INSTALL, cleaned up
4934 ipythonrc-* samples.
4939 ipythonrc-* samples.
4935
4940
4936 * Overall code/documentation cleanup. Basically ready for
4941 * Overall code/documentation cleanup. Basically ready for
4937 release. Only remaining thing: licence decision (LGPL?).
4942 release. Only remaining thing: licence decision (LGPL?).
4938
4943
4939 * Converted load_config to a class, ConfigLoader. Now recursion
4944 * Converted load_config to a class, ConfigLoader. Now recursion
4940 control is better organized. Doesn't include the same file twice.
4945 control is better organized. Doesn't include the same file twice.
4941
4946
4942 2001-11-29 Fernando Perez <fperez@colorado.edu>
4947 2001-11-29 Fernando Perez <fperez@colorado.edu>
4943
4948
4944 * Got input history working. Changed output history variables from
4949 * Got input history working. Changed output history variables from
4945 _p to _o so that _i is for input and _o for output. Just cleaner
4950 _p to _o so that _i is for input and _o for output. Just cleaner
4946 convention.
4951 convention.
4947
4952
4948 * Implemented parametric aliases. This pretty much allows the
4953 * Implemented parametric aliases. This pretty much allows the
4949 alias system to offer full-blown shell convenience, I think.
4954 alias system to offer full-blown shell convenience, I think.
4950
4955
4951 * Version 0.1.17 released, 0.1.18 opened.
4956 * Version 0.1.17 released, 0.1.18 opened.
4952
4957
4953 * dot_ipython/ipythonrc (alias): added documentation.
4958 * dot_ipython/ipythonrc (alias): added documentation.
4954 (xcolor): Fixed small bug (xcolors -> xcolor)
4959 (xcolor): Fixed small bug (xcolors -> xcolor)
4955
4960
4956 * Changed the alias system. Now alias is a magic command to define
4961 * Changed the alias system. Now alias is a magic command to define
4957 aliases just like the shell. Rationale: the builtin magics should
4962 aliases just like the shell. Rationale: the builtin magics should
4958 be there for things deeply connected to IPython's
4963 be there for things deeply connected to IPython's
4959 architecture. And this is a much lighter system for what I think
4964 architecture. And this is a much lighter system for what I think
4960 is the really important feature: allowing users to define quickly
4965 is the really important feature: allowing users to define quickly
4961 magics that will do shell things for them, so they can customize
4966 magics that will do shell things for them, so they can customize
4962 IPython easily to match their work habits. If someone is really
4967 IPython easily to match their work habits. If someone is really
4963 desperate to have another name for a builtin alias, they can
4968 desperate to have another name for a builtin alias, they can
4964 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4969 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
4965 works.
4970 works.
4966
4971
4967 2001-11-28 Fernando Perez <fperez@colorado.edu>
4972 2001-11-28 Fernando Perez <fperez@colorado.edu>
4968
4973
4969 * Changed @file so that it opens the source file at the proper
4974 * Changed @file so that it opens the source file at the proper
4970 line. Since it uses less, if your EDITOR environment is
4975 line. Since it uses less, if your EDITOR environment is
4971 configured, typing v will immediately open your editor of choice
4976 configured, typing v will immediately open your editor of choice
4972 right at the line where the object is defined. Not as quick as
4977 right at the line where the object is defined. Not as quick as
4973 having a direct @edit command, but for all intents and purposes it
4978 having a direct @edit command, but for all intents and purposes it
4974 works. And I don't have to worry about writing @edit to deal with
4979 works. And I don't have to worry about writing @edit to deal with
4975 all the editors, less does that.
4980 all the editors, less does that.
4976
4981
4977 * Version 0.1.16 released, 0.1.17 opened.
4982 * Version 0.1.16 released, 0.1.17 opened.
4978
4983
4979 * Fixed some nasty bugs in the page/page_dumb combo that could
4984 * Fixed some nasty bugs in the page/page_dumb combo that could
4980 crash IPython.
4985 crash IPython.
4981
4986
4982 2001-11-27 Fernando Perez <fperez@colorado.edu>
4987 2001-11-27 Fernando Perez <fperez@colorado.edu>
4983
4988
4984 * Version 0.1.15 released, 0.1.16 opened.
4989 * Version 0.1.15 released, 0.1.16 opened.
4985
4990
4986 * Finally got ? and ?? to work for undefined things: now it's
4991 * Finally got ? and ?? to work for undefined things: now it's
4987 possible to type {}.get? and get information about the get method
4992 possible to type {}.get? and get information about the get method
4988 of dicts, or os.path? even if only os is defined (so technically
4993 of dicts, or os.path? even if only os is defined (so technically
4989 os.path isn't). Works at any level. For example, after import os,
4994 os.path isn't). Works at any level. For example, after import os,
4990 os?, os.path?, os.path.abspath? all work. This is great, took some
4995 os?, os.path?, os.path.abspath? all work. This is great, took some
4991 work in _ofind.
4996 work in _ofind.
4992
4997
4993 * Fixed more bugs with logging. The sanest way to do it was to add
4998 * Fixed more bugs with logging. The sanest way to do it was to add
4994 to @log a 'mode' parameter. Killed two in one shot (this mode
4999 to @log a 'mode' parameter. Killed two in one shot (this mode
4995 option was a request of Janko's). I think it's finally clean
5000 option was a request of Janko's). I think it's finally clean
4996 (famous last words).
5001 (famous last words).
4997
5002
4998 * Added a page_dumb() pager which does a decent job of paging on
5003 * Added a page_dumb() pager which does a decent job of paging on
4999 screen, if better things (like less) aren't available. One less
5004 screen, if better things (like less) aren't available. One less
5000 unix dependency (someday maybe somebody will port this to
5005 unix dependency (someday maybe somebody will port this to
5001 windows).
5006 windows).
5002
5007
5003 * Fixed problem in magic_log: would lock of logging out if log
5008 * Fixed problem in magic_log: would lock of logging out if log
5004 creation failed (because it would still think it had succeeded).
5009 creation failed (because it would still think it had succeeded).
5005
5010
5006 * Improved the page() function using curses to auto-detect screen
5011 * Improved the page() function using curses to auto-detect screen
5007 size. Now it can make a much better decision on whether to print
5012 size. Now it can make a much better decision on whether to print
5008 or page a string. Option screen_length was modified: a value 0
5013 or page a string. Option screen_length was modified: a value 0
5009 means auto-detect, and that's the default now.
5014 means auto-detect, and that's the default now.
5010
5015
5011 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5016 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5012 go out. I'll test it for a few days, then talk to Janko about
5017 go out. I'll test it for a few days, then talk to Janko about
5013 licences and announce it.
5018 licences and announce it.
5014
5019
5015 * Fixed the length of the auto-generated ---> prompt which appears
5020 * Fixed the length of the auto-generated ---> prompt which appears
5016 for auto-parens and auto-quotes. Getting this right isn't trivial,
5021 for auto-parens and auto-quotes. Getting this right isn't trivial,
5017 with all the color escapes, different prompt types and optional
5022 with all the color escapes, different prompt types and optional
5018 separators. But it seems to be working in all the combinations.
5023 separators. But it seems to be working in all the combinations.
5019
5024
5020 2001-11-26 Fernando Perez <fperez@colorado.edu>
5025 2001-11-26 Fernando Perez <fperez@colorado.edu>
5021
5026
5022 * Wrote a regexp filter to get option types from the option names
5027 * Wrote a regexp filter to get option types from the option names
5023 string. This eliminates the need to manually keep two duplicate
5028 string. This eliminates the need to manually keep two duplicate
5024 lists.
5029 lists.
5025
5030
5026 * Removed the unneeded check_option_names. Now options are handled
5031 * Removed the unneeded check_option_names. Now options are handled
5027 in a much saner manner and it's easy to visually check that things
5032 in a much saner manner and it's easy to visually check that things
5028 are ok.
5033 are ok.
5029
5034
5030 * Updated version numbers on all files I modified to carry a
5035 * Updated version numbers on all files I modified to carry a
5031 notice so Janko and Nathan have clear version markers.
5036 notice so Janko and Nathan have clear version markers.
5032
5037
5033 * Updated docstring for ultraTB with my changes. I should send
5038 * Updated docstring for ultraTB with my changes. I should send
5034 this to Nathan.
5039 this to Nathan.
5035
5040
5036 * Lots of small fixes. Ran everything through pychecker again.
5041 * Lots of small fixes. Ran everything through pychecker again.
5037
5042
5038 * Made loading of deep_reload an cmd line option. If it's not too
5043 * Made loading of deep_reload an cmd line option. If it's not too
5039 kosher, now people can just disable it. With -nodeep_reload it's
5044 kosher, now people can just disable it. With -nodeep_reload it's
5040 still available as dreload(), it just won't overwrite reload().
5045 still available as dreload(), it just won't overwrite reload().
5041
5046
5042 * Moved many options to the no| form (-opt and -noopt
5047 * Moved many options to the no| form (-opt and -noopt
5043 accepted). Cleaner.
5048 accepted). Cleaner.
5044
5049
5045 * Changed magic_log so that if called with no parameters, it uses
5050 * Changed magic_log so that if called with no parameters, it uses
5046 'rotate' mode. That way auto-generated logs aren't automatically
5051 'rotate' mode. That way auto-generated logs aren't automatically
5047 over-written. For normal logs, now a backup is made if it exists
5052 over-written. For normal logs, now a backup is made if it exists
5048 (only 1 level of backups). A new 'backup' mode was added to the
5053 (only 1 level of backups). A new 'backup' mode was added to the
5049 Logger class to support this. This was a request by Janko.
5054 Logger class to support this. This was a request by Janko.
5050
5055
5051 * Added @logoff/@logon to stop/restart an active log.
5056 * Added @logoff/@logon to stop/restart an active log.
5052
5057
5053 * Fixed a lot of bugs in log saving/replay. It was pretty
5058 * Fixed a lot of bugs in log saving/replay. It was pretty
5054 broken. Now special lines (!@,/) appear properly in the command
5059 broken. Now special lines (!@,/) appear properly in the command
5055 history after a log replay.
5060 history after a log replay.
5056
5061
5057 * Tried and failed to implement full session saving via pickle. My
5062 * Tried and failed to implement full session saving via pickle. My
5058 idea was to pickle __main__.__dict__, but modules can't be
5063 idea was to pickle __main__.__dict__, but modules can't be
5059 pickled. This would be a better alternative to replaying logs, but
5064 pickled. This would be a better alternative to replaying logs, but
5060 seems quite tricky to get to work. Changed -session to be called
5065 seems quite tricky to get to work. Changed -session to be called
5061 -logplay, which more accurately reflects what it does. And if we
5066 -logplay, which more accurately reflects what it does. And if we
5062 ever get real session saving working, -session is now available.
5067 ever get real session saving working, -session is now available.
5063
5068
5064 * Implemented color schemes for prompts also. As for tracebacks,
5069 * Implemented color schemes for prompts also. As for tracebacks,
5065 currently only NoColor and Linux are supported. But now the
5070 currently only NoColor and Linux are supported. But now the
5066 infrastructure is in place, based on a generic ColorScheme
5071 infrastructure is in place, based on a generic ColorScheme
5067 class. So writing and activating new schemes both for the prompts
5072 class. So writing and activating new schemes both for the prompts
5068 and the tracebacks should be straightforward.
5073 and the tracebacks should be straightforward.
5069
5074
5070 * Version 0.1.13 released, 0.1.14 opened.
5075 * Version 0.1.13 released, 0.1.14 opened.
5071
5076
5072 * Changed handling of options for output cache. Now counter is
5077 * Changed handling of options for output cache. Now counter is
5073 hardwired starting at 1 and one specifies the maximum number of
5078 hardwired starting at 1 and one specifies the maximum number of
5074 entries *in the outcache* (not the max prompt counter). This is
5079 entries *in the outcache* (not the max prompt counter). This is
5075 much better, since many statements won't increase the cache
5080 much better, since many statements won't increase the cache
5076 count. It also eliminated some confusing options, now there's only
5081 count. It also eliminated some confusing options, now there's only
5077 one: cache_size.
5082 one: cache_size.
5078
5083
5079 * Added 'alias' magic function and magic_alias option in the
5084 * Added 'alias' magic function and magic_alias option in the
5080 ipythonrc file. Now the user can easily define whatever names he
5085 ipythonrc file. Now the user can easily define whatever names he
5081 wants for the magic functions without having to play weird
5086 wants for the magic functions without having to play weird
5082 namespace games. This gives IPython a real shell-like feel.
5087 namespace games. This gives IPython a real shell-like feel.
5083
5088
5084 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5089 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5085 @ or not).
5090 @ or not).
5086
5091
5087 This was one of the last remaining 'visible' bugs (that I know
5092 This was one of the last remaining 'visible' bugs (that I know
5088 of). I think if I can clean up the session loading so it works
5093 of). I think if I can clean up the session loading so it works
5089 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5094 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5090 about licensing).
5095 about licensing).
5091
5096
5092 2001-11-25 Fernando Perez <fperez@colorado.edu>
5097 2001-11-25 Fernando Perez <fperez@colorado.edu>
5093
5098
5094 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5099 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5095 there's a cleaner distinction between what ? and ?? show.
5100 there's a cleaner distinction between what ? and ?? show.
5096
5101
5097 * Added screen_length option. Now the user can define his own
5102 * Added screen_length option. Now the user can define his own
5098 screen size for page() operations.
5103 screen size for page() operations.
5099
5104
5100 * Implemented magic shell-like functions with automatic code
5105 * Implemented magic shell-like functions with automatic code
5101 generation. Now adding another function is just a matter of adding
5106 generation. Now adding another function is just a matter of adding
5102 an entry to a dict, and the function is dynamically generated at
5107 an entry to a dict, and the function is dynamically generated at
5103 run-time. Python has some really cool features!
5108 run-time. Python has some really cool features!
5104
5109
5105 * Renamed many options to cleanup conventions a little. Now all
5110 * Renamed many options to cleanup conventions a little. Now all
5106 are lowercase, and only underscores where needed. Also in the code
5111 are lowercase, and only underscores where needed. Also in the code
5107 option name tables are clearer.
5112 option name tables are clearer.
5108
5113
5109 * Changed prompts a little. Now input is 'In [n]:' instead of
5114 * Changed prompts a little. Now input is 'In [n]:' instead of
5110 'In[n]:='. This allows it the numbers to be aligned with the
5115 'In[n]:='. This allows it the numbers to be aligned with the
5111 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5116 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5112 Python (it was a Mathematica thing). The '...' continuation prompt
5117 Python (it was a Mathematica thing). The '...' continuation prompt
5113 was also changed a little to align better.
5118 was also changed a little to align better.
5114
5119
5115 * Fixed bug when flushing output cache. Not all _p<n> variables
5120 * Fixed bug when flushing output cache. Not all _p<n> variables
5116 exist, so their deletion needs to be wrapped in a try:
5121 exist, so their deletion needs to be wrapped in a try:
5117
5122
5118 * Figured out how to properly use inspect.formatargspec() (it
5123 * Figured out how to properly use inspect.formatargspec() (it
5119 requires the args preceded by *). So I removed all the code from
5124 requires the args preceded by *). So I removed all the code from
5120 _get_pdef in Magic, which was just replicating that.
5125 _get_pdef in Magic, which was just replicating that.
5121
5126
5122 * Added test to prefilter to allow redefining magic function names
5127 * Added test to prefilter to allow redefining magic function names
5123 as variables. This is ok, since the @ form is always available,
5128 as variables. This is ok, since the @ form is always available,
5124 but whe should allow the user to define a variable called 'ls' if
5129 but whe should allow the user to define a variable called 'ls' if
5125 he needs it.
5130 he needs it.
5126
5131
5127 * Moved the ToDo information from README into a separate ToDo.
5132 * Moved the ToDo information from README into a separate ToDo.
5128
5133
5129 * General code cleanup and small bugfixes. I think it's close to a
5134 * General code cleanup and small bugfixes. I think it's close to a
5130 state where it can be released, obviously with a big 'beta'
5135 state where it can be released, obviously with a big 'beta'
5131 warning on it.
5136 warning on it.
5132
5137
5133 * Got the magic function split to work. Now all magics are defined
5138 * Got the magic function split to work. Now all magics are defined
5134 in a separate class. It just organizes things a bit, and now
5139 in a separate class. It just organizes things a bit, and now
5135 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5140 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5136 was too long).
5141 was too long).
5137
5142
5138 * Changed @clear to @reset to avoid potential confusions with
5143 * Changed @clear to @reset to avoid potential confusions with
5139 the shell command clear. Also renamed @cl to @clear, which does
5144 the shell command clear. Also renamed @cl to @clear, which does
5140 exactly what people expect it to from their shell experience.
5145 exactly what people expect it to from their shell experience.
5141
5146
5142 Added a check to the @reset command (since it's so
5147 Added a check to the @reset command (since it's so
5143 destructive, it's probably a good idea to ask for confirmation).
5148 destructive, it's probably a good idea to ask for confirmation).
5144 But now reset only works for full namespace resetting. Since the
5149 But now reset only works for full namespace resetting. Since the
5145 del keyword is already there for deleting a few specific
5150 del keyword is already there for deleting a few specific
5146 variables, I don't see the point of having a redundant magic
5151 variables, I don't see the point of having a redundant magic
5147 function for the same task.
5152 function for the same task.
5148
5153
5149 2001-11-24 Fernando Perez <fperez@colorado.edu>
5154 2001-11-24 Fernando Perez <fperez@colorado.edu>
5150
5155
5151 * Updated the builtin docs (esp. the ? ones).
5156 * Updated the builtin docs (esp. the ? ones).
5152
5157
5153 * Ran all the code through pychecker. Not terribly impressed with
5158 * Ran all the code through pychecker. Not terribly impressed with
5154 it: lots of spurious warnings and didn't really find anything of
5159 it: lots of spurious warnings and didn't really find anything of
5155 substance (just a few modules being imported and not used).
5160 substance (just a few modules being imported and not used).
5156
5161
5157 * Implemented the new ultraTB functionality into IPython. New
5162 * Implemented the new ultraTB functionality into IPython. New
5158 option: xcolors. This chooses color scheme. xmode now only selects
5163 option: xcolors. This chooses color scheme. xmode now only selects
5159 between Plain and Verbose. Better orthogonality.
5164 between Plain and Verbose. Better orthogonality.
5160
5165
5161 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5166 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5162 mode and color scheme for the exception handlers. Now it's
5167 mode and color scheme for the exception handlers. Now it's
5163 possible to have the verbose traceback with no coloring.
5168 possible to have the verbose traceback with no coloring.
5164
5169
5165 2001-11-23 Fernando Perez <fperez@colorado.edu>
5170 2001-11-23 Fernando Perez <fperez@colorado.edu>
5166
5171
5167 * Version 0.1.12 released, 0.1.13 opened.
5172 * Version 0.1.12 released, 0.1.13 opened.
5168
5173
5169 * Removed option to set auto-quote and auto-paren escapes by
5174 * Removed option to set auto-quote and auto-paren escapes by
5170 user. The chances of breaking valid syntax are just too high. If
5175 user. The chances of breaking valid syntax are just too high. If
5171 someone *really* wants, they can always dig into the code.
5176 someone *really* wants, they can always dig into the code.
5172
5177
5173 * Made prompt separators configurable.
5178 * Made prompt separators configurable.
5174
5179
5175 2001-11-22 Fernando Perez <fperez@colorado.edu>
5180 2001-11-22 Fernando Perez <fperez@colorado.edu>
5176
5181
5177 * Small bugfixes in many places.
5182 * Small bugfixes in many places.
5178
5183
5179 * Removed the MyCompleter class from ipplib. It seemed redundant
5184 * Removed the MyCompleter class from ipplib. It seemed redundant
5180 with the C-p,C-n history search functionality. Less code to
5185 with the C-p,C-n history search functionality. Less code to
5181 maintain.
5186 maintain.
5182
5187
5183 * Moved all the original ipython.py code into ipythonlib.py. Right
5188 * Moved all the original ipython.py code into ipythonlib.py. Right
5184 now it's just one big dump into a function called make_IPython, so
5189 now it's just one big dump into a function called make_IPython, so
5185 no real modularity has been gained. But at least it makes the
5190 no real modularity has been gained. But at least it makes the
5186 wrapper script tiny, and since ipythonlib is a module, it gets
5191 wrapper script tiny, and since ipythonlib is a module, it gets
5187 compiled and startup is much faster.
5192 compiled and startup is much faster.
5188
5193
5189 This is a reasobably 'deep' change, so we should test it for a
5194 This is a reasobably 'deep' change, so we should test it for a
5190 while without messing too much more with the code.
5195 while without messing too much more with the code.
5191
5196
5192 2001-11-21 Fernando Perez <fperez@colorado.edu>
5197 2001-11-21 Fernando Perez <fperez@colorado.edu>
5193
5198
5194 * Version 0.1.11 released, 0.1.12 opened for further work.
5199 * Version 0.1.11 released, 0.1.12 opened for further work.
5195
5200
5196 * Removed dependency on Itpl. It was only needed in one place. It
5201 * Removed dependency on Itpl. It was only needed in one place. It
5197 would be nice if this became part of python, though. It makes life
5202 would be nice if this became part of python, though. It makes life
5198 *a lot* easier in some cases.
5203 *a lot* easier in some cases.
5199
5204
5200 * Simplified the prefilter code a bit. Now all handlers are
5205 * Simplified the prefilter code a bit. Now all handlers are
5201 expected to explicitly return a value (at least a blank string).
5206 expected to explicitly return a value (at least a blank string).
5202
5207
5203 * Heavy edits in ipplib. Removed the help system altogether. Now
5208 * Heavy edits in ipplib. Removed the help system altogether. Now
5204 obj?/?? is used for inspecting objects, a magic @doc prints
5209 obj?/?? is used for inspecting objects, a magic @doc prints
5205 docstrings, and full-blown Python help is accessed via the 'help'
5210 docstrings, and full-blown Python help is accessed via the 'help'
5206 keyword. This cleans up a lot of code (less to maintain) and does
5211 keyword. This cleans up a lot of code (less to maintain) and does
5207 the job. Since 'help' is now a standard Python component, might as
5212 the job. Since 'help' is now a standard Python component, might as
5208 well use it and remove duplicate functionality.
5213 well use it and remove duplicate functionality.
5209
5214
5210 Also removed the option to use ipplib as a standalone program. By
5215 Also removed the option to use ipplib as a standalone program. By
5211 now it's too dependent on other parts of IPython to function alone.
5216 now it's too dependent on other parts of IPython to function alone.
5212
5217
5213 * Fixed bug in genutils.pager. It would crash if the pager was
5218 * Fixed bug in genutils.pager. It would crash if the pager was
5214 exited immediately after opening (broken pipe).
5219 exited immediately after opening (broken pipe).
5215
5220
5216 * Trimmed down the VerboseTB reporting a little. The header is
5221 * Trimmed down the VerboseTB reporting a little. The header is
5217 much shorter now and the repeated exception arguments at the end
5222 much shorter now and the repeated exception arguments at the end
5218 have been removed. For interactive use the old header seemed a bit
5223 have been removed. For interactive use the old header seemed a bit
5219 excessive.
5224 excessive.
5220
5225
5221 * Fixed small bug in output of @whos for variables with multi-word
5226 * Fixed small bug in output of @whos for variables with multi-word
5222 types (only first word was displayed).
5227 types (only first word was displayed).
5223
5228
5224 2001-11-17 Fernando Perez <fperez@colorado.edu>
5229 2001-11-17 Fernando Perez <fperez@colorado.edu>
5225
5230
5226 * Version 0.1.10 released, 0.1.11 opened for further work.
5231 * Version 0.1.10 released, 0.1.11 opened for further work.
5227
5232
5228 * Modified dirs and friends. dirs now *returns* the stack (not
5233 * Modified dirs and friends. dirs now *returns* the stack (not
5229 prints), so one can manipulate it as a variable. Convenient to
5234 prints), so one can manipulate it as a variable. Convenient to
5230 travel along many directories.
5235 travel along many directories.
5231
5236
5232 * Fixed bug in magic_pdef: would only work with functions with
5237 * Fixed bug in magic_pdef: would only work with functions with
5233 arguments with default values.
5238 arguments with default values.
5234
5239
5235 2001-11-14 Fernando Perez <fperez@colorado.edu>
5240 2001-11-14 Fernando Perez <fperez@colorado.edu>
5236
5241
5237 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5242 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5238 example with IPython. Various other minor fixes and cleanups.
5243 example with IPython. Various other minor fixes and cleanups.
5239
5244
5240 * Version 0.1.9 released, 0.1.10 opened for further work.
5245 * Version 0.1.9 released, 0.1.10 opened for further work.
5241
5246
5242 * Added sys.path to the list of directories searched in the
5247 * Added sys.path to the list of directories searched in the
5243 execfile= option. It used to be the current directory and the
5248 execfile= option. It used to be the current directory and the
5244 user's IPYTHONDIR only.
5249 user's IPYTHONDIR only.
5245
5250
5246 2001-11-13 Fernando Perez <fperez@colorado.edu>
5251 2001-11-13 Fernando Perez <fperez@colorado.edu>
5247
5252
5248 * Reinstated the raw_input/prefilter separation that Janko had
5253 * Reinstated the raw_input/prefilter separation that Janko had
5249 initially. This gives a more convenient setup for extending the
5254 initially. This gives a more convenient setup for extending the
5250 pre-processor from the outside: raw_input always gets a string,
5255 pre-processor from the outside: raw_input always gets a string,
5251 and prefilter has to process it. We can then redefine prefilter
5256 and prefilter has to process it. We can then redefine prefilter
5252 from the outside and implement extensions for special
5257 from the outside and implement extensions for special
5253 purposes.
5258 purposes.
5254
5259
5255 Today I got one for inputting PhysicalQuantity objects
5260 Today I got one for inputting PhysicalQuantity objects
5256 (from Scientific) without needing any function calls at
5261 (from Scientific) without needing any function calls at
5257 all. Extremely convenient, and it's all done as a user-level
5262 all. Extremely convenient, and it's all done as a user-level
5258 extension (no IPython code was touched). Now instead of:
5263 extension (no IPython code was touched). Now instead of:
5259 a = PhysicalQuantity(4.2,'m/s**2')
5264 a = PhysicalQuantity(4.2,'m/s**2')
5260 one can simply say
5265 one can simply say
5261 a = 4.2 m/s**2
5266 a = 4.2 m/s**2
5262 or even
5267 or even
5263 a = 4.2 m/s^2
5268 a = 4.2 m/s^2
5264
5269
5265 I use this, but it's also a proof of concept: IPython really is
5270 I use this, but it's also a proof of concept: IPython really is
5266 fully user-extensible, even at the level of the parsing of the
5271 fully user-extensible, even at the level of the parsing of the
5267 command line. It's not trivial, but it's perfectly doable.
5272 command line. It's not trivial, but it's perfectly doable.
5268
5273
5269 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5274 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5270 the problem of modules being loaded in the inverse order in which
5275 the problem of modules being loaded in the inverse order in which
5271 they were defined in
5276 they were defined in
5272
5277
5273 * Version 0.1.8 released, 0.1.9 opened for further work.
5278 * Version 0.1.8 released, 0.1.9 opened for further work.
5274
5279
5275 * Added magics pdef, source and file. They respectively show the
5280 * Added magics pdef, source and file. They respectively show the
5276 definition line ('prototype' in C), source code and full python
5281 definition line ('prototype' in C), source code and full python
5277 file for any callable object. The object inspector oinfo uses
5282 file for any callable object. The object inspector oinfo uses
5278 these to show the same information.
5283 these to show the same information.
5279
5284
5280 * Version 0.1.7 released, 0.1.8 opened for further work.
5285 * Version 0.1.7 released, 0.1.8 opened for further work.
5281
5286
5282 * Separated all the magic functions into a class called Magic. The
5287 * Separated all the magic functions into a class called Magic. The
5283 InteractiveShell class was becoming too big for Xemacs to handle
5288 InteractiveShell class was becoming too big for Xemacs to handle
5284 (de-indenting a line would lock it up for 10 seconds while it
5289 (de-indenting a line would lock it up for 10 seconds while it
5285 backtracked on the whole class!)
5290 backtracked on the whole class!)
5286
5291
5287 FIXME: didn't work. It can be done, but right now namespaces are
5292 FIXME: didn't work. It can be done, but right now namespaces are
5288 all messed up. Do it later (reverted it for now, so at least
5293 all messed up. Do it later (reverted it for now, so at least
5289 everything works as before).
5294 everything works as before).
5290
5295
5291 * Got the object introspection system (magic_oinfo) working! I
5296 * Got the object introspection system (magic_oinfo) working! I
5292 think this is pretty much ready for release to Janko, so he can
5297 think this is pretty much ready for release to Janko, so he can
5293 test it for a while and then announce it. Pretty much 100% of what
5298 test it for a while and then announce it. Pretty much 100% of what
5294 I wanted for the 'phase 1' release is ready. Happy, tired.
5299 I wanted for the 'phase 1' release is ready. Happy, tired.
5295
5300
5296 2001-11-12 Fernando Perez <fperez@colorado.edu>
5301 2001-11-12 Fernando Perez <fperez@colorado.edu>
5297
5302
5298 * Version 0.1.6 released, 0.1.7 opened for further work.
5303 * Version 0.1.6 released, 0.1.7 opened for further work.
5299
5304
5300 * Fixed bug in printing: it used to test for truth before
5305 * Fixed bug in printing: it used to test for truth before
5301 printing, so 0 wouldn't print. Now checks for None.
5306 printing, so 0 wouldn't print. Now checks for None.
5302
5307
5303 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5308 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5304 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5309 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5305 reaches by hand into the outputcache. Think of a better way to do
5310 reaches by hand into the outputcache. Think of a better way to do
5306 this later.
5311 this later.
5307
5312
5308 * Various small fixes thanks to Nathan's comments.
5313 * Various small fixes thanks to Nathan's comments.
5309
5314
5310 * Changed magic_pprint to magic_Pprint. This way it doesn't
5315 * Changed magic_pprint to magic_Pprint. This way it doesn't
5311 collide with pprint() and the name is consistent with the command
5316 collide with pprint() and the name is consistent with the command
5312 line option.
5317 line option.
5313
5318
5314 * Changed prompt counter behavior to be fully like
5319 * Changed prompt counter behavior to be fully like
5315 Mathematica's. That is, even input that doesn't return a result
5320 Mathematica's. That is, even input that doesn't return a result
5316 raises the prompt counter. The old behavior was kind of confusing
5321 raises the prompt counter. The old behavior was kind of confusing
5317 (getting the same prompt number several times if the operation
5322 (getting the same prompt number several times if the operation
5318 didn't return a result).
5323 didn't return a result).
5319
5324
5320 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5325 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5321
5326
5322 * Fixed -Classic mode (wasn't working anymore).
5327 * Fixed -Classic mode (wasn't working anymore).
5323
5328
5324 * Added colored prompts using Nathan's new code. Colors are
5329 * Added colored prompts using Nathan's new code. Colors are
5325 currently hardwired, they can be user-configurable. For
5330 currently hardwired, they can be user-configurable. For
5326 developers, they can be chosen in file ipythonlib.py, at the
5331 developers, they can be chosen in file ipythonlib.py, at the
5327 beginning of the CachedOutput class def.
5332 beginning of the CachedOutput class def.
5328
5333
5329 2001-11-11 Fernando Perez <fperez@colorado.edu>
5334 2001-11-11 Fernando Perez <fperez@colorado.edu>
5330
5335
5331 * Version 0.1.5 released, 0.1.6 opened for further work.
5336 * Version 0.1.5 released, 0.1.6 opened for further work.
5332
5337
5333 * Changed magic_env to *return* the environment as a dict (not to
5338 * Changed magic_env to *return* the environment as a dict (not to
5334 print it). This way it prints, but it can also be processed.
5339 print it). This way it prints, but it can also be processed.
5335
5340
5336 * Added Verbose exception reporting to interactive
5341 * Added Verbose exception reporting to interactive
5337 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5342 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5338 traceback. Had to make some changes to the ultraTB file. This is
5343 traceback. Had to make some changes to the ultraTB file. This is
5339 probably the last 'big' thing in my mental todo list. This ties
5344 probably the last 'big' thing in my mental todo list. This ties
5340 in with the next entry:
5345 in with the next entry:
5341
5346
5342 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5347 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5343 has to specify is Plain, Color or Verbose for all exception
5348 has to specify is Plain, Color or Verbose for all exception
5344 handling.
5349 handling.
5345
5350
5346 * Removed ShellServices option. All this can really be done via
5351 * Removed ShellServices option. All this can really be done via
5347 the magic system. It's easier to extend, cleaner and has automatic
5352 the magic system. It's easier to extend, cleaner and has automatic
5348 namespace protection and documentation.
5353 namespace protection and documentation.
5349
5354
5350 2001-11-09 Fernando Perez <fperez@colorado.edu>
5355 2001-11-09 Fernando Perez <fperez@colorado.edu>
5351
5356
5352 * Fixed bug in output cache flushing (missing parameter to
5357 * Fixed bug in output cache flushing (missing parameter to
5353 __init__). Other small bugs fixed (found using pychecker).
5358 __init__). Other small bugs fixed (found using pychecker).
5354
5359
5355 * Version 0.1.4 opened for bugfixing.
5360 * Version 0.1.4 opened for bugfixing.
5356
5361
5357 2001-11-07 Fernando Perez <fperez@colorado.edu>
5362 2001-11-07 Fernando Perez <fperez@colorado.edu>
5358
5363
5359 * Version 0.1.3 released, mainly because of the raw_input bug.
5364 * Version 0.1.3 released, mainly because of the raw_input bug.
5360
5365
5361 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5366 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5362 and when testing for whether things were callable, a call could
5367 and when testing for whether things were callable, a call could
5363 actually be made to certain functions. They would get called again
5368 actually be made to certain functions. They would get called again
5364 once 'really' executed, with a resulting double call. A disaster
5369 once 'really' executed, with a resulting double call. A disaster
5365 in many cases (list.reverse() would never work!).
5370 in many cases (list.reverse() would never work!).
5366
5371
5367 * Removed prefilter() function, moved its code to raw_input (which
5372 * Removed prefilter() function, moved its code to raw_input (which
5368 after all was just a near-empty caller for prefilter). This saves
5373 after all was just a near-empty caller for prefilter). This saves
5369 a function call on every prompt, and simplifies the class a tiny bit.
5374 a function call on every prompt, and simplifies the class a tiny bit.
5370
5375
5371 * Fix _ip to __ip name in magic example file.
5376 * Fix _ip to __ip name in magic example file.
5372
5377
5373 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5378 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5374 work with non-gnu versions of tar.
5379 work with non-gnu versions of tar.
5375
5380
5376 2001-11-06 Fernando Perez <fperez@colorado.edu>
5381 2001-11-06 Fernando Perez <fperez@colorado.edu>
5377
5382
5378 * Version 0.1.2. Just to keep track of the recent changes.
5383 * Version 0.1.2. Just to keep track of the recent changes.
5379
5384
5380 * Fixed nasty bug in output prompt routine. It used to check 'if
5385 * Fixed nasty bug in output prompt routine. It used to check 'if
5381 arg != None...'. Problem is, this fails if arg implements a
5386 arg != None...'. Problem is, this fails if arg implements a
5382 special comparison (__cmp__) which disallows comparing to
5387 special comparison (__cmp__) which disallows comparing to
5383 None. Found it when trying to use the PhysicalQuantity module from
5388 None. Found it when trying to use the PhysicalQuantity module from
5384 ScientificPython.
5389 ScientificPython.
5385
5390
5386 2001-11-05 Fernando Perez <fperez@colorado.edu>
5391 2001-11-05 Fernando Perez <fperez@colorado.edu>
5387
5392
5388 * Also added dirs. Now the pushd/popd/dirs family functions
5393 * Also added dirs. Now the pushd/popd/dirs family functions
5389 basically like the shell, with the added convenience of going home
5394 basically like the shell, with the added convenience of going home
5390 when called with no args.
5395 when called with no args.
5391
5396
5392 * pushd/popd slightly modified to mimic shell behavior more
5397 * pushd/popd slightly modified to mimic shell behavior more
5393 closely.
5398 closely.
5394
5399
5395 * Added env,pushd,popd from ShellServices as magic functions. I
5400 * Added env,pushd,popd from ShellServices as magic functions. I
5396 think the cleanest will be to port all desired functions from
5401 think the cleanest will be to port all desired functions from
5397 ShellServices as magics and remove ShellServices altogether. This
5402 ShellServices as magics and remove ShellServices altogether. This
5398 will provide a single, clean way of adding functionality
5403 will provide a single, clean way of adding functionality
5399 (shell-type or otherwise) to IP.
5404 (shell-type or otherwise) to IP.
5400
5405
5401 2001-11-04 Fernando Perez <fperez@colorado.edu>
5406 2001-11-04 Fernando Perez <fperez@colorado.edu>
5402
5407
5403 * Added .ipython/ directory to sys.path. This way users can keep
5408 * Added .ipython/ directory to sys.path. This way users can keep
5404 customizations there and access them via import.
5409 customizations there and access them via import.
5405
5410
5406 2001-11-03 Fernando Perez <fperez@colorado.edu>
5411 2001-11-03 Fernando Perez <fperez@colorado.edu>
5407
5412
5408 * Opened version 0.1.1 for new changes.
5413 * Opened version 0.1.1 for new changes.
5409
5414
5410 * Changed version number to 0.1.0: first 'public' release, sent to
5415 * Changed version number to 0.1.0: first 'public' release, sent to
5411 Nathan and Janko.
5416 Nathan and Janko.
5412
5417
5413 * Lots of small fixes and tweaks.
5418 * Lots of small fixes and tweaks.
5414
5419
5415 * Minor changes to whos format. Now strings are shown, snipped if
5420 * Minor changes to whos format. Now strings are shown, snipped if
5416 too long.
5421 too long.
5417
5422
5418 * Changed ShellServices to work on __main__ so they show up in @who
5423 * Changed ShellServices to work on __main__ so they show up in @who
5419
5424
5420 * Help also works with ? at the end of a line:
5425 * Help also works with ? at the end of a line:
5421 ?sin and sin?
5426 ?sin and sin?
5422 both produce the same effect. This is nice, as often I use the
5427 both produce the same effect. This is nice, as often I use the
5423 tab-complete to find the name of a method, but I used to then have
5428 tab-complete to find the name of a method, but I used to then have
5424 to go to the beginning of the line to put a ? if I wanted more
5429 to go to the beginning of the line to put a ? if I wanted more
5425 info. Now I can just add the ? and hit return. Convenient.
5430 info. Now I can just add the ? and hit return. Convenient.
5426
5431
5427 2001-11-02 Fernando Perez <fperez@colorado.edu>
5432 2001-11-02 Fernando Perez <fperez@colorado.edu>
5428
5433
5429 * Python version check (>=2.1) added.
5434 * Python version check (>=2.1) added.
5430
5435
5431 * Added LazyPython documentation. At this point the docs are quite
5436 * Added LazyPython documentation. At this point the docs are quite
5432 a mess. A cleanup is in order.
5437 a mess. A cleanup is in order.
5433
5438
5434 * Auto-installer created. For some bizarre reason, the zipfiles
5439 * Auto-installer created. For some bizarre reason, the zipfiles
5435 module isn't working on my system. So I made a tar version
5440 module isn't working on my system. So I made a tar version
5436 (hopefully the command line options in various systems won't kill
5441 (hopefully the command line options in various systems won't kill
5437 me).
5442 me).
5438
5443
5439 * Fixes to Struct in genutils. Now all dictionary-like methods are
5444 * Fixes to Struct in genutils. Now all dictionary-like methods are
5440 protected (reasonably).
5445 protected (reasonably).
5441
5446
5442 * Added pager function to genutils and changed ? to print usage
5447 * Added pager function to genutils and changed ? to print usage
5443 note through it (it was too long).
5448 note through it (it was too long).
5444
5449
5445 * Added the LazyPython functionality. Works great! I changed the
5450 * Added the LazyPython functionality. Works great! I changed the
5446 auto-quote escape to ';', it's on home row and next to '. But
5451 auto-quote escape to ';', it's on home row and next to '. But
5447 both auto-quote and auto-paren (still /) escapes are command-line
5452 both auto-quote and auto-paren (still /) escapes are command-line
5448 parameters.
5453 parameters.
5449
5454
5450
5455
5451 2001-11-01 Fernando Perez <fperez@colorado.edu>
5456 2001-11-01 Fernando Perez <fperez@colorado.edu>
5452
5457
5453 * Version changed to 0.0.7. Fairly large change: configuration now
5458 * Version changed to 0.0.7. Fairly large change: configuration now
5454 is all stored in a directory, by default .ipython. There, all
5459 is all stored in a directory, by default .ipython. There, all
5455 config files have normal looking names (not .names)
5460 config files have normal looking names (not .names)
5456
5461
5457 * Version 0.0.6 Released first to Lucas and Archie as a test
5462 * Version 0.0.6 Released first to Lucas and Archie as a test
5458 run. Since it's the first 'semi-public' release, change version to
5463 run. Since it's the first 'semi-public' release, change version to
5459 > 0.0.6 for any changes now.
5464 > 0.0.6 for any changes now.
5460
5465
5461 * Stuff I had put in the ipplib.py changelog:
5466 * Stuff I had put in the ipplib.py changelog:
5462
5467
5463 Changes to InteractiveShell:
5468 Changes to InteractiveShell:
5464
5469
5465 - Made the usage message a parameter.
5470 - Made the usage message a parameter.
5466
5471
5467 - Require the name of the shell variable to be given. It's a bit
5472 - Require the name of the shell variable to be given. It's a bit
5468 of a hack, but allows the name 'shell' not to be hardwire in the
5473 of a hack, but allows the name 'shell' not to be hardwire in the
5469 magic (@) handler, which is problematic b/c it requires
5474 magic (@) handler, which is problematic b/c it requires
5470 polluting the global namespace with 'shell'. This in turn is
5475 polluting the global namespace with 'shell'. This in turn is
5471 fragile: if a user redefines a variable called shell, things
5476 fragile: if a user redefines a variable called shell, things
5472 break.
5477 break.
5473
5478
5474 - magic @: all functions available through @ need to be defined
5479 - magic @: all functions available through @ need to be defined
5475 as magic_<name>, even though they can be called simply as
5480 as magic_<name>, even though they can be called simply as
5476 @<name>. This allows the special command @magic to gather
5481 @<name>. This allows the special command @magic to gather
5477 information automatically about all existing magic functions,
5482 information automatically about all existing magic functions,
5478 even if they are run-time user extensions, by parsing the shell
5483 even if they are run-time user extensions, by parsing the shell
5479 instance __dict__ looking for special magic_ names.
5484 instance __dict__ looking for special magic_ names.
5480
5485
5481 - mainloop: added *two* local namespace parameters. This allows
5486 - mainloop: added *two* local namespace parameters. This allows
5482 the class to differentiate between parameters which were there
5487 the class to differentiate between parameters which were there
5483 before and after command line initialization was processed. This
5488 before and after command line initialization was processed. This
5484 way, later @who can show things loaded at startup by the
5489 way, later @who can show things loaded at startup by the
5485 user. This trick was necessary to make session saving/reloading
5490 user. This trick was necessary to make session saving/reloading
5486 really work: ideally after saving/exiting/reloading a session,
5491 really work: ideally after saving/exiting/reloading a session,
5487 *everythin* should look the same, including the output of @who. I
5492 *everythin* should look the same, including the output of @who. I
5488 was only able to make this work with this double namespace
5493 was only able to make this work with this double namespace
5489 trick.
5494 trick.
5490
5495
5491 - added a header to the logfile which allows (almost) full
5496 - added a header to the logfile which allows (almost) full
5492 session restoring.
5497 session restoring.
5493
5498
5494 - prepend lines beginning with @ or !, with a and log
5499 - prepend lines beginning with @ or !, with a and log
5495 them. Why? !lines: may be useful to know what you did @lines:
5500 them. Why? !lines: may be useful to know what you did @lines:
5496 they may affect session state. So when restoring a session, at
5501 they may affect session state. So when restoring a session, at
5497 least inform the user of their presence. I couldn't quite get
5502 least inform the user of their presence. I couldn't quite get
5498 them to properly re-execute, but at least the user is warned.
5503 them to properly re-execute, but at least the user is warned.
5499
5504
5500 * Started ChangeLog.
5505 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now