##// END OF EJS Templates
Made release 0.8.3.
Fernando Perez -
Show More
@@ -1,89 +1,89 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 3002 2008-02-01 07:17:00Z fperez $"""
4 $Id: Release.py 3002 2008-02-01 07:17:00Z 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 revision = '84'
25 revision = '85'
26 branch = 'ipython'
26 branch = 'ipython'
27
27
28 if branch == 'ipython':
28 if branch == 'ipython':
29 version = '0.8.3.bzr.r' + revision
29 version = '0.8.3.bzr.r' + revision
30 else:
30 else:
31 version = '0.8.3.bzr.r%s.%s' % (revision,branch)
31 version = '0.8.3.bzr.r%s.%s' % (revision,branch)
32
32
33 version = '0.8.3'
33 version = '0.8.3'
34
34
35 description = "An enhanced interactive Python shell."
35 description = "An enhanced interactive Python shell."
36
36
37 long_description = \
37 long_description = \
38 """
38 """
39 IPython provides a replacement for the interactive Python interpreter with
39 IPython provides a replacement for the interactive Python interpreter with
40 extra functionality.
40 extra functionality.
41
41
42 Main features:
42 Main features:
43
43
44 * Comprehensive object introspection.
44 * Comprehensive object introspection.
45
45
46 * Input history, persistent across sessions.
46 * Input history, persistent across sessions.
47
47
48 * Caching of output results during a session with automatically generated
48 * Caching of output results during a session with automatically generated
49 references.
49 references.
50
50
51 * Readline based name completion.
51 * Readline based name completion.
52
52
53 * Extensible system of 'magic' commands for controlling the environment and
53 * Extensible system of 'magic' commands for controlling the environment and
54 performing many tasks related either to IPython or the operating system.
54 performing many tasks related either to IPython or the operating system.
55
55
56 * Configuration system with easy switching between different setups (simpler
56 * Configuration system with easy switching between different setups (simpler
57 than changing $PYTHONSTARTUP environment variables every time).
57 than changing $PYTHONSTARTUP environment variables every time).
58
58
59 * Session logging and reloading.
59 * Session logging and reloading.
60
60
61 * Extensible syntax processing for special purpose situations.
61 * Extensible syntax processing for special purpose situations.
62
62
63 * Access to the system shell with user-extensible alias system.
63 * Access to the system shell with user-extensible alias system.
64
64
65 * Easily embeddable in other Python programs.
65 * Easily embeddable in other Python programs.
66
66
67 * Integrated access to the pdb debugger and the Python profiler.
67 * Integrated access to the pdb debugger and the Python profiler.
68
68
69 The latest development version is always available at the IPython subversion
69 The latest development version is always available at the IPython subversion
70 repository_.
70 repository_.
71
71
72 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
72 .. _repository: http://ipython.scipy.org/svn/ipython/ipython/trunk#egg=ipython-dev
73 """
73 """
74
74
75 license = 'BSD'
75 license = 'BSD'
76
76
77 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
77 authors = {'Fernando' : ('Fernando Perez','fperez@colorado.edu'),
78 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
78 'Janko' : ('Janko Hauser','jhauser@zscout.de'),
79 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
79 'Nathan' : ('Nathaniel Gray','n8gray@caltech.edu'),
80 'Ville' : ('Ville Vainio','vivainio@gmail.com')
80 'Ville' : ('Ville Vainio','vivainio@gmail.com')
81 }
81 }
82
82
83 url = 'http://ipython.scipy.org'
83 url = 'http://ipython.scipy.org'
84
84
85 download_url = 'http://ipython.scipy.org/dist'
85 download_url = 'http://ipython.scipy.org/dist'
86
86
87 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
87 platforms = ['Linux','Mac OSX','Windows XP/2000/NT','Windows 95/98/ME']
88
88
89 keywords = ['Interactive','Interpreter','Shell']
89 keywords = ['Interactive','Interpreter','Shell']
@@ -1,7626 +1,7628 b''
1 2008-05-28 *** Released version 0.8.3
2
1 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
3 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
2
4
3 * ../win32_manual_post_install.py (run): Fix the windows installer
5 * ../win32_manual_post_install.py (run): Fix the windows installer
4 so the links to the docs are correct.
6 so the links to the docs are correct.
5
7
6 * IPython/ultraTB.py: flush stderr after writing to it to fix
8 * IPython/ultraTB.py: flush stderr after writing to it to fix
7 problems with exception traceback ordering in some platforms.
9 problems with exception traceback ordering in some platforms.
8 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
10 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
9
11
10 * IPython/Magic.py (magic_cpaste): add stripping of continuation
12 * IPython/Magic.py (magic_cpaste): add stripping of continuation
11 prompts, feature requested by Stefan vdW.
13 prompts, feature requested by Stefan vdW.
12
14
13 * ../setup.py: updates to build and release tools in preparation
15 * ../setup.py: updates to build and release tools in preparation
14 for 0.8.3 release.
16 for 0.8.3 release.
15
17
16 2008-05-27 Ville Vainio <vivainio@gmail.com>
18 2008-05-27 Ville Vainio <vivainio@gmail.com>
17
19
18 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
20 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
19 for minimal environments (e.g. Maemo sdk python)
21 for minimal environments (e.g. Maemo sdk python)
20
22
21 * Magic.py: cpaste strips whitespace before >>> (allow pasting
23 * Magic.py: cpaste strips whitespace before >>> (allow pasting
22 doctests)
24 doctests)
23
25
24 * ipy_completers.py: cd completer now does recursive path expand
26 * ipy_completers.py: cd completer now does recursive path expand
25 (old behaviour is buggy on some readline versions)
27 (old behaviour is buggy on some readline versions)
26
28
27 2008-05-14 Ville Vainio <vivainio@gmail.com>
29 2008-05-14 Ville Vainio <vivainio@gmail.com>
28
30
29 * Extensions/ipy_greedycompleter.py:
31 * Extensions/ipy_greedycompleter.py:
30 New extension that enables a bit more "relaxed" tab
32 New extension that enables a bit more "relaxed" tab
31 completer that evaluates code without safety checks
33 completer that evaluates code without safety checks
32 (i.e. there can be side effects like function calls)
34 (i.e. there can be side effects like function calls)
33
35
34 2008-04-20 Ville Vainio <vivainio@gmail.com>
36 2008-04-20 Ville Vainio <vivainio@gmail.com>
35
37
36 * Extensions/ipy_lookfor.py: add %lookfor magic command
38 * Extensions/ipy_lookfor.py: add %lookfor magic command
37 (search docstrings for words) by Pauli Virtanen. Close #245.
39 (search docstrings for words) by Pauli Virtanen. Close #245.
38
40
39 * Extension/ipy_jot.py: %jot and %read magics, analogous
41 * Extension/ipy_jot.py: %jot and %read magics, analogous
40 to %store but you can specify some notes. Not read
42 to %store but you can specify some notes. Not read
41 in automatically on startup, you need %read.
43 in automatically on startup, you need %read.
42 Contributed by Yichun Wei.
44 Contributed by Yichun Wei.
43
45
44 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
46 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
45
47
46 * IPython/genutils.py (page): apply workaround to curses bug that
48 * IPython/genutils.py (page): apply workaround to curses bug that
47 can leave terminal corrupted after a call to initscr().
49 can leave terminal corrupted after a call to initscr().
48
50
49 2008-04-15 Ville Vainio <vivainio@gmail.com>
51 2008-04-15 Ville Vainio <vivainio@gmail.com>
50
52
51 * genutils.py: SList.grep supports 'field' argument
53 * genutils.py: SList.grep supports 'field' argument
52
54
53 * ipy_completers.py: module completer looks inside
55 * ipy_completers.py: module completer looks inside
54 .egg zip files (patch by mc). Close #196.
56 .egg zip files (patch by mc). Close #196.
55
57
56 2008-04-09 Ville Vainio <vivainio@gmail.com>
58 2008-04-09 Ville Vainio <vivainio@gmail.com>
57
59
58 * deep_reload.py: do not crash on from __future__ import
60 * deep_reload.py: do not crash on from __future__ import
59 absolute_import. Close #244.
61 absolute_import. Close #244.
60
62
61 2008-04-02 Ville Vainio <vivainio@gmail.com>
63 2008-04-02 Ville Vainio <vivainio@gmail.com>
62
64
63 * ipy_winpdb.py: New extension for winpdb integration. %wdb
65 * ipy_winpdb.py: New extension for winpdb integration. %wdb
64 test.py is winpdb equivalent of %run -d test.py. winpdb is a
66 test.py is winpdb equivalent of %run -d test.py. winpdb is a
65 crossplatform remote GUI debugger based on wxpython.
67 crossplatform remote GUI debugger based on wxpython.
66
68
67 2008-03-29 Ville Vainio <vivainio@gmail.com>
69 2008-03-29 Ville Vainio <vivainio@gmail.com>
68
70
69 * ipython.rst, do_sphinx.py: New documentation base, based on
71 * ipython.rst, do_sphinx.py: New documentation base, based on
70 reStucturedText and Sphinx (html/pdf generation). The old Lyx
72 reStucturedText and Sphinx (html/pdf generation). The old Lyx
71 based documentation will not be updated anymore.
73 based documentation will not be updated anymore.
72
74
73 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
75 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
74
76
75 2008-03-24 Ville Vainio <vivainio@gmail.com>
77 2008-03-24 Ville Vainio <vivainio@gmail.com>
76
78
77 * ipython.rst, do_sphinx.py: New documentation base, based on
79 * ipython.rst, do_sphinx.py: New documentation base, based on
78 reStucturedText and Sphinx (html/pdf generation). The old Lyx
80 reStucturedText and Sphinx (html/pdf generation). The old Lyx
79 based documentation will not be updated anymore.
81 based documentation will not be updated anymore.
80
82
81 ipython.rst has up to date documentation on matters that were not
83 ipython.rst has up to date documentation on matters that were not
82 documented at all, and it also removes various
84 documented at all, and it also removes various
83 misdocumented/deprecated features.
85 misdocumented/deprecated features.
84
86
85 2008-03-22 Ville Vainio <vivainio@gmail.com>
87 2008-03-22 Ville Vainio <vivainio@gmail.com>
86
88
87 * Shell.py: Merge mtexp branch:
89 * Shell.py: Merge mtexp branch:
88 https://code.launchpad.net/~ipython/ipython/mtexp
90 https://code.launchpad.net/~ipython/ipython/mtexp
89
91
90 Privides simpler and more robust MTInteractiveShell that won't
92 Privides simpler and more robust MTInteractiveShell that won't
91 deadlock, even when the worker thread (GUI) stops doing runcode()
93 deadlock, even when the worker thread (GUI) stops doing runcode()
92 regularly. r71.
94 regularly. r71.
93
95
94 2008-03-20 Ville Vainio <vivainio@gmail.com>
96 2008-03-20 Ville Vainio <vivainio@gmail.com>
95
97
96 * twshell.py: New shell that runs IPython code in Twisted reactor.
98 * twshell.py: New shell that runs IPython code in Twisted reactor.
97 Launch by doing ipython -twisted. r67.
99 Launch by doing ipython -twisted. r67.
98
100
99 2008-03-19 Ville Vainio <vivainio@gmail.com>
101 2008-03-19 Ville Vainio <vivainio@gmail.com>
100
102
101 * Magic.py: %rehashx works correctly when shadowed system commands
103 * Magic.py: %rehashx works correctly when shadowed system commands
102 have upper case characters (e.g. Print.exe). r64.
104 have upper case characters (e.g. Print.exe). r64.
103
105
104 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
106 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
105 knows options to commands, based on bzrtools. Uses bzrlib
107 knows options to commands, based on bzrtools. Uses bzrlib
106 directly. r66.
108 directly. r66.
107
109
108 2008-03-16 Ville Vainio <vivainio@gmail.com>
110 2008-03-16 Ville Vainio <vivainio@gmail.com>
109
111
110 * make_tarball.py: Fixed for bzr.
112 * make_tarball.py: Fixed for bzr.
111
113
112 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
114 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
113
115
114 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
116 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
115 by Erich Heine.
117 by Erich Heine.
116
118
117 2008-03-12 Ville Vainio <vivainio@gmail.com>
119 2008-03-12 Ville Vainio <vivainio@gmail.com>
118
120
119 * ipmaker.py: Force (reload?) import of ipy_user_conf and
121 * ipmaker.py: Force (reload?) import of ipy_user_conf and
120 ipy_profile_foo, so that embedded instances can be relaunched and
122 ipy_profile_foo, so that embedded instances can be relaunched and
121 configuration is still done. r50
123 configuration is still done. r50
122
124
123 * ipapi.py, test_embed.py: Allow specifying shell class in
125 * ipapi.py, test_embed.py: Allow specifying shell class in
124 launch_new_instance & make_new instance. Use this in
126 launch_new_instance & make_new instance. Use this in
125 test_embed.py. r51.
127 test_embed.py. r51.
126
128
127 test_embed.py is also a good and simple demo of embedding IPython.
129 test_embed.py is also a good and simple demo of embedding IPython.
128
130
129
131
130 2008-03-10 Ville Vainio <vivainio@gmail.com>
132 2008-03-10 Ville Vainio <vivainio@gmail.com>
131
133
132 * tool/update_revnum.py: Change to bzr revisioning scheme in
134 * tool/update_revnum.py: Change to bzr revisioning scheme in
133 revision numbers.
135 revision numbers.
134
136
135 * Shell.py: Threading improvements:
137 * Shell.py: Threading improvements:
136
138
137 In multithreaded shells, do not hang on macros and o.autoexec
139 In multithreaded shells, do not hang on macros and o.autoexec
138 commands (or anything executed with _ip.runlines()) anymore. Allow
140 commands (or anything executed with _ip.runlines()) anymore. Allow
139 recursive execution of IPython code in
141 recursive execution of IPython code in
140 MTInteractiveShell.runsource by checking if we are already in
142 MTInteractiveShell.runsource by checking if we are already in
141 worker thread, and execute code directly if we are. r48.
143 worker thread, and execute code directly if we are. r48.
142
144
143 MTInteractiveShell.runsource: execute code directly if worker
145 MTInteractiveShell.runsource: execute code directly if worker
144 thread is not running yet (this is the case in config files). r49.
146 thread is not running yet (this is the case in config files). r49.
145
147
146 2008-03-09 Ville Vainio <vivainio@gmail.com>
148 2008-03-09 Ville Vainio <vivainio@gmail.com>
147
149
148 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
150 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
149 argument of previous command in sh profile. Similar to bash '!$'.
151 argument of previous command in sh profile. Similar to bash '!$'.
150 LA(3) or $LA(3) stands for last argument of input history command
152 LA(3) or $LA(3) stands for last argument of input history command
151 3.
153 3.
152
154
153 * Shell.py: -pylab names don't clutter %whos listing.
155 * Shell.py: -pylab names don't clutter %whos listing.
154
156
155 2008-03-07 Ville Vainio <vivainio@gmail.com>
157 2008-03-07 Ville Vainio <vivainio@gmail.com>
156
158
157 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
159 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
158 autoreloading modules; try %autoreload and %aimport. Close #154.
160 autoreloading modules; try %autoreload and %aimport. Close #154.
159 Uses the new pre_runcode_hook.
161 Uses the new pre_runcode_hook.
160
162
161 2008-02-24 Ville Vainio <vivainio@gmail.com>
163 2008-02-24 Ville Vainio <vivainio@gmail.com>
162
164
163 * platutils_posix.py: freeze_term_title works
165 * platutils_posix.py: freeze_term_title works
164
166
165 2008-02-21 Ville Vainio <vivainio@gmail.com>
167 2008-02-21 Ville Vainio <vivainio@gmail.com>
166
168
167 * Magic.py: %quickref does not crash with empty docstring
169 * Magic.py: %quickref does not crash with empty docstring
168
170
169 2008-02-20 Ville Vainio <vivainio@gmail.com>
171 2008-02-20 Ville Vainio <vivainio@gmail.com>
170
172
171 * completer.py: do not treat [](){} as protectable chars anymore,
173 * completer.py: do not treat [](){} as protectable chars anymore,
172 close #233.
174 close #233.
173
175
174 * completer.py: do not treat [](){} as protectable chars anymore
176 * completer.py: do not treat [](){} as protectable chars anymore
175
177
176 * magic.py, test_cpaste.py: Allow different prefix for pasting
178 * magic.py, test_cpaste.py: Allow different prefix for pasting
177 from email
179 from email
178
180
179 2008-02-17 Ville Vainio <vivainio@gmail.com>
181 2008-02-17 Ville Vainio <vivainio@gmail.com>
180
182
181 * Switched over to Launchpad/bzr as primary VCS.
183 * Switched over to Launchpad/bzr as primary VCS.
182
184
183 2008-02-14 Ville Vainio <vivainio@gmail.com>
185 2008-02-14 Ville Vainio <vivainio@gmail.com>
184
186
185 * ipapi.py: _ip.runlines() is now much more liberal about
187 * ipapi.py: _ip.runlines() is now much more liberal about
186 indentation - it cleans up the scripts it gets
188 indentation - it cleans up the scripts it gets
187
189
188 2008-02-14 Ville Vainio <vivainio@gmail.com>
190 2008-02-14 Ville Vainio <vivainio@gmail.com>
189
191
190 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
192 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
191 Changes to it (later on) are too numerous to list in ChangeLog
193 Changes to it (later on) are too numerous to list in ChangeLog
192 until it stabilizes
194 until it stabilizes
193
195
194 2008-02-07 Darren Dale <darren.dale@cornell.edu>
196 2008-02-07 Darren Dale <darren.dale@cornell.edu>
195
197
196 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
198 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
197 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
199 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
198 interaction in the interpreter (like Tkinter does), but it seems to
200 interaction in the interpreter (like Tkinter does), but it seems to
199 partially interfere with the IPython implementation and exec_()
201 partially interfere with the IPython implementation and exec_()
200 still seems to block. So we disable the PyQt implementation and
202 still seems to block. So we disable the PyQt implementation and
201 stick with the IPython one for now.
203 stick with the IPython one for now.
202
204
203 2008-02-02 Walter Doerwald <walter@livinglogic.de>
205 2008-02-02 Walter Doerwald <walter@livinglogic.de>
204
206
205 * ipipe.py: A new ipipe table has been added: ialias produces all
207 * ipipe.py: A new ipipe table has been added: ialias produces all
206 entries from IPython's alias table.
208 entries from IPython's alias table.
207
209
208 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
210 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
209
211
210 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
212 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
211 of KBINT in threaded shells. After code provided by Marc in #212.
213 of KBINT in threaded shells. After code provided by Marc in #212.
212
214
213 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
215 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
214
216
215 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
217 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
216 that could occur due to a race condition in threaded shells.
218 that could occur due to a race condition in threaded shells.
217 Thanks to code provided by Marc, as #210.
219 Thanks to code provided by Marc, as #210.
218
220
219 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
221 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
220
222
221 * IPython/Magic.py (magic_doctest_mode): respect the user's
223 * IPython/Magic.py (magic_doctest_mode): respect the user's
222 settings for input separators rather than overriding them. After
224 settings for input separators rather than overriding them. After
223 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
225 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
224
226
225 * IPython/history.py (magic_history): Add support for declaring an
227 * IPython/history.py (magic_history): Add support for declaring an
226 output file directly from the history command.
228 output file directly from the history command.
227
229
228 2008-01-21 Walter Doerwald <walter@livinglogic.de>
230 2008-01-21 Walter Doerwald <walter@livinglogic.de>
229
231
230 * ipipe.py: Register ipipe's displayhooks via the generic function
232 * ipipe.py: Register ipipe's displayhooks via the generic function
231 generics.result_display() instead of using ipapi.set_hook().
233 generics.result_display() instead of using ipapi.set_hook().
232
234
233 2008-01-19 Walter Doerwald <walter@livinglogic.de>
235 2008-01-19 Walter Doerwald <walter@livinglogic.de>
234
236
235 * ibrowse.py, igrid.py, ipipe.py:
237 * ibrowse.py, igrid.py, ipipe.py:
236 The input object can now be passed to the constructor of the display classes.
238 The input object can now be passed to the constructor of the display classes.
237 This makes it possible to use them with objects that implement __or__.
239 This makes it possible to use them with objects that implement __or__.
238 Use this constructor in the displayhook instead of piping.
240 Use this constructor in the displayhook instead of piping.
239
241
240 * ipipe.py: Importing astyle.py is done as late as possible to
242 * ipipe.py: Importing astyle.py is done as late as possible to
241 avoid problems with circular imports.
243 avoid problems with circular imports.
242
244
243 2008-01-19 Ville Vainio <vivainio@gmail.com>
245 2008-01-19 Ville Vainio <vivainio@gmail.com>
244
246
245 * hooks.py, iplib.py: Added 'shell_hook' to customize how
247 * hooks.py, iplib.py: Added 'shell_hook' to customize how
246 IPython calls shell.
248 IPython calls shell.
247
249
248 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
250 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
249 how IPython pages text (%page, %pycat, %pdoc etc.)
251 how IPython pages text (%page, %pycat, %pdoc etc.)
250
252
251 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
253 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
252 and '%kill' to kill hanging processes that won't obey ctrl+C.
254 and '%kill' to kill hanging processes that won't obey ctrl+C.
253
255
254 2008-01-16 Ville Vainio <vivainio@gmail.com>
256 2008-01-16 Ville Vainio <vivainio@gmail.com>
255
257
256 * ipy_completers.py: pyw extension support for %run completer.
258 * ipy_completers.py: pyw extension support for %run completer.
257
259
258 2008-01-11 Ville Vainio <vivainio@gmail.com>
260 2008-01-11 Ville Vainio <vivainio@gmail.com>
259
261
260 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
262 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
261 of ipython commands to be run when IPython has started up
263 of ipython commands to be run when IPython has started up
262 (just before running the scripts and -c arg on command line).
264 (just before running the scripts and -c arg on command line).
263
265
264 * ipy_user_conf.py: Added an example on how to change term
266 * ipy_user_conf.py: Added an example on how to change term
265 colors in config file (through using autoexec).
267 colors in config file (through using autoexec).
266
268
267 * completer.py, test_completer.py: Ability to specify custom
269 * completer.py, test_completer.py: Ability to specify custom
268 get_endidx to replace readline.get_endidx. For emacs users.
270 get_endidx to replace readline.get_endidx. For emacs users.
269
271
270 2008-01-10 Ville Vainio <vivainio@gmail.com>
272 2008-01-10 Ville Vainio <vivainio@gmail.com>
271
273
272 * Prompts.py (set_p_str): do not crash on illegal prompt strings
274 * Prompts.py (set_p_str): do not crash on illegal prompt strings
273
275
274 2008-01-08 Ville Vainio <vivainio@gmail.com>
276 2008-01-08 Ville Vainio <vivainio@gmail.com>
275
277
276 * '%macro -r' (raw mode) is now default in sh profile.
278 * '%macro -r' (raw mode) is now default in sh profile.
277
279
278 2007-12-31 Ville Vainio <vivainio@gmail.com>
280 2007-12-31 Ville Vainio <vivainio@gmail.com>
279
281
280 * completer.py: custom completer matching is now case sensitive
282 * completer.py: custom completer matching is now case sensitive
281 (#207).
283 (#207).
282
284
283 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
285 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
284 an attempt to prevent occasional crashes.
286 an attempt to prevent occasional crashes.
285
287
286 * CrashHandler.py: Crash log dump now asks user to press enter
288 * CrashHandler.py: Crash log dump now asks user to press enter
287 before exiting.
289 before exiting.
288
290
289 * Store _ip in user_ns instead of __builtin__, enabling safer
291 * Store _ip in user_ns instead of __builtin__, enabling safer
290 coexistence of multiple IPython instances in the same python
292 coexistence of multiple IPython instances in the same python
291 interpreter (#197).
293 interpreter (#197).
292
294
293 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
295 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
294 switch to enable pydb in post-mortem debugging and %run -d.
296 switch to enable pydb in post-mortem debugging and %run -d.
295
297
296 2007-12-28 Ville Vainio <vivainio@gmail.com>
298 2007-12-28 Ville Vainio <vivainio@gmail.com>
297
299
298 * ipy_server.py: TCP socket server for "remote control" of an IPython
300 * ipy_server.py: TCP socket server for "remote control" of an IPython
299 instance.
301 instance.
300
302
301 * Debugger.py: Change to PSF license
303 * Debugger.py: Change to PSF license
302
304
303 * simplegeneric.py: Add license & author notes.
305 * simplegeneric.py: Add license & author notes.
304
306
305 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
307 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
306 to navigate file system with a custom completer. Run
308 to navigate file system with a custom completer. Run
307 ipy_fsops.test_pathobj() to play with it.
309 ipy_fsops.test_pathobj() to play with it.
308
310
309 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
311 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
310
312
311 * IPython/dtutils.py: Add utilities for interactively running
313 * IPython/dtutils.py: Add utilities for interactively running
312 doctests. Still needs work to more easily handle the namespace of
314 doctests. Still needs work to more easily handle the namespace of
313 the package one may be working on, but the basics are in place.
315 the package one may be working on, but the basics are in place.
314
316
315 2007-12-27 Ville Vainio <vivainio@gmail.com>
317 2007-12-27 Ville Vainio <vivainio@gmail.com>
316
318
317 * ipy_completers.py: Applied arno's patch to get proper list of
319 * ipy_completers.py: Applied arno's patch to get proper list of
318 packages in import completer. Closes #196.
320 packages in import completer. Closes #196.
319
321
320 2007-12-20 Ville Vainio <vivainio@gmail.com>
322 2007-12-20 Ville Vainio <vivainio@gmail.com>
321
323
322 * completer.py, generics.py(complete_object): Allow
324 * completer.py, generics.py(complete_object): Allow
323 custom complers based on python objects via simplegeneric.
325 custom complers based on python objects via simplegeneric.
324 See generics.py / my_demo_complete_object
326 See generics.py / my_demo_complete_object
325
327
326 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
328 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
327
329
328 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
330 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
329 behavior to prompt objects, useful for display hooks to adjust
331 behavior to prompt objects, useful for display hooks to adjust
330 themselves depending on whether prompts will be there or not.
332 themselves depending on whether prompts will be there or not.
331
333
332 2007-12-13 Ville Vainio <vivainio@gmail.com>
334 2007-12-13 Ville Vainio <vivainio@gmail.com>
333
335
334 * iplib.py(raw_input): unix readline does not allow unicode in
336 * iplib.py(raw_input): unix readline does not allow unicode in
335 history, encode to normal string. After patch by Tiago.
337 history, encode to normal string. After patch by Tiago.
336 Close #201
338 Close #201
337
339
338 2007-12-12 Ville Vainio <vivainio@gmail.com>
340 2007-12-12 Ville Vainio <vivainio@gmail.com>
339
341
340 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
342 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
341 current directory.
343 current directory.
342
344
343 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
345 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
344
346
345 * IPython/Shell.py (_select_shell): add support for controlling
347 * IPython/Shell.py (_select_shell): add support for controlling
346 the pylab threading mode directly at the command line, without
348 the pylab threading mode directly at the command line, without
347 having to modify MPL config files. Added unit tests for this
349 having to modify MPL config files. Added unit tests for this
348 feature, though manual/docs update is still pending, will do later.
350 feature, though manual/docs update is still pending, will do later.
349
351
350 2007-12-11 Ville Vainio <vivainio@gmail.com>
352 2007-12-11 Ville Vainio <vivainio@gmail.com>
351
353
352 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
354 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
353 use in scripts)
355 use in scripts)
354
356
355 2007-12-07 Ville Vainio <vivainio@gmail.com>
357 2007-12-07 Ville Vainio <vivainio@gmail.com>
356
358
357 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
359 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
358 anymore (to \#) - even if it is a comment char that is implicitly
360 anymore (to \#) - even if it is a comment char that is implicitly
359 escaped in some unix shells in interactive mode, it is ok to leave
361 escaped in some unix shells in interactive mode, it is ok to leave
360 it in IPython as such.
362 it in IPython as such.
361
363
362
364
363 2007-12-01 Robert Kern <robert.kern@gmail.com>
365 2007-12-01 Robert Kern <robert.kern@gmail.com>
364
366
365 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
367 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
366 inspect.findsource(). It can now find source lines inside zipped
368 inspect.findsource(). It can now find source lines inside zipped
367 packages.
369 packages.
368
370
369 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
371 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
370 in the frame's namespace before trusting the filename in the code object
372 in the frame's namespace before trusting the filename in the code object
371 which created the frame.
373 which created the frame.
372
374
373 2007-11-29 *** Released version 0.8.2
375 2007-11-29 *** Released version 0.8.2
374
376
375 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
377 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
376
378
377 * IPython/Logger.py (Logger.logstop): add a proper logstop()
379 * IPython/Logger.py (Logger.logstop): add a proper logstop()
378 method to fully stop the logger, along with a corresponding
380 method to fully stop the logger, along with a corresponding
379 %logstop magic for interactive use.
381 %logstop magic for interactive use.
380
382
381 * IPython/Extensions/ipy_host_completers.py: added new host
383 * IPython/Extensions/ipy_host_completers.py: added new host
382 completers functionality, contributed by Gael Pasgrimaud
384 completers functionality, contributed by Gael Pasgrimaud
383 <gawel-AT-afpy.org>.
385 <gawel-AT-afpy.org>.
384
386
385 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
387 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
386
388
387 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
389 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
388 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
390 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
389 options handling. Unicode fix in %whos (committed a while ago)
391 options handling. Unicode fix in %whos (committed a while ago)
390 was also contributed by Paul.
392 was also contributed by Paul.
391
393
392 2007-11-23 Darren Dale <darren.dale@cornell.edu>
394 2007-11-23 Darren Dale <darren.dale@cornell.edu>
393 * ipy_traits_completer.py: let traits_completer respect the user's
395 * ipy_traits_completer.py: let traits_completer respect the user's
394 readline_omit__names setting.
396 readline_omit__names setting.
395
397
396 2007-11-08 Ville Vainio <vivainio@gmail.com>
398 2007-11-08 Ville Vainio <vivainio@gmail.com>
397
399
398 * ipy_completers.py (import completer): assume 'xml' module exists.
400 * ipy_completers.py (import completer): assume 'xml' module exists.
399 Do not add every module twice anymore. Closes #196.
401 Do not add every module twice anymore. Closes #196.
400
402
401 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
403 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
402 completer that uses apt-cache to search for existing packages.
404 completer that uses apt-cache to search for existing packages.
403
405
404 2007-11-06 Ville Vainio <vivainio@gmail.com>
406 2007-11-06 Ville Vainio <vivainio@gmail.com>
405
407
406 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
408 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
407 true. Closes #194.
409 true. Closes #194.
408
410
409 2007-11-01 Brian Granger <ellisonbg@gmail.com>
411 2007-11-01 Brian Granger <ellisonbg@gmail.com>
410
412
411 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
413 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
412 working with OS X 10.5 libedit implementation of readline.
414 working with OS X 10.5 libedit implementation of readline.
413
415
414 2007-10-24 Ville Vainio <vivainio@gmail.com>
416 2007-10-24 Ville Vainio <vivainio@gmail.com>
415
417
416 * iplib.py(user_setup): To route around buggy installations where
418 * iplib.py(user_setup): To route around buggy installations where
417 UserConfig is not available, create a minimal _ipython.
419 UserConfig is not available, create a minimal _ipython.
418
420
419 * iplib.py: Unicode fixes from Jorgen.
421 * iplib.py: Unicode fixes from Jorgen.
420
422
421 * genutils.py: Slist now has new method 'fields()' for extraction of
423 * genutils.py: Slist now has new method 'fields()' for extraction of
422 whitespace-separated fields from line-oriented data.
424 whitespace-separated fields from line-oriented data.
423
425
424 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
426 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
425
427
426 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
428 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
427 when querying objects with no __class__ attribute (such as
429 when querying objects with no __class__ attribute (such as
428 f2py-generated modules).
430 f2py-generated modules).
429
431
430 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
432 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
431
433
432 * IPython/Magic.py (magic_time): track compilation time and report
434 * IPython/Magic.py (magic_time): track compilation time and report
433 it if longer than 0.1s (fix done to %time and %timeit). After a
435 it if longer than 0.1s (fix done to %time and %timeit). After a
434 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
436 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
435
437
436 2007-09-18 Ville Vainio <vivainio@gmail.com>
438 2007-09-18 Ville Vainio <vivainio@gmail.com>
437
439
438 * genutils.py(make_quoted_expr): Do not use Itpl, it does
440 * genutils.py(make_quoted_expr): Do not use Itpl, it does
439 not support unicode at the moment. Fixes (many) magic calls with
441 not support unicode at the moment. Fixes (many) magic calls with
440 special characters.
442 special characters.
441
443
442 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
444 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
443
445
444 * IPython/genutils.py (doctest_reload): expose the doctest
446 * IPython/genutils.py (doctest_reload): expose the doctest
445 reloader to the user so that people can easily reset doctest while
447 reloader to the user so that people can easily reset doctest while
446 using it interactively. Fixes a problem reported by Jorgen.
448 using it interactively. Fixes a problem reported by Jorgen.
447
449
448 * IPython/iplib.py (InteractiveShell.__init__): protect the
450 * IPython/iplib.py (InteractiveShell.__init__): protect the
449 FakeModule instances used for __main__ in %run calls from
451 FakeModule instances used for __main__ in %run calls from
450 deletion, so that user code defined in them isn't left with
452 deletion, so that user code defined in them isn't left with
451 dangling references due to the Python module deletion machinery.
453 dangling references due to the Python module deletion machinery.
452 This should fix the problems reported by Darren.
454 This should fix the problems reported by Darren.
453
455
454 2007-09-10 Darren Dale <dd55@cornell.edu>
456 2007-09-10 Darren Dale <dd55@cornell.edu>
455
457
456 * Cleanup of IPShellQt and IPShellQt4
458 * Cleanup of IPShellQt and IPShellQt4
457
459
458 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
460 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
459
461
460 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
462 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
461 doctest support.
463 doctest support.
462
464
463 * IPython/iplib.py (safe_execfile): minor docstring improvements.
465 * IPython/iplib.py (safe_execfile): minor docstring improvements.
464
466
465 2007-09-08 Ville Vainio <vivainio@gmail.com>
467 2007-09-08 Ville Vainio <vivainio@gmail.com>
466
468
467 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
469 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
468 directory, not the target directory.
470 directory, not the target directory.
469
471
470 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
472 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
471 exception that won't print the tracebacks. Switched many magics to
473 exception that won't print the tracebacks. Switched many magics to
472 raise them on error situations, also GetoptError is not printed
474 raise them on error situations, also GetoptError is not printed
473 anymore.
475 anymore.
474
476
475 2007-09-07 Ville Vainio <vivainio@gmail.com>
477 2007-09-07 Ville Vainio <vivainio@gmail.com>
476
478
477 * iplib.py: do not auto-alias "dir", it screws up other dir auto
479 * iplib.py: do not auto-alias "dir", it screws up other dir auto
478 aliases.
480 aliases.
479
481
480 * genutils.py: SList.grep() implemented.
482 * genutils.py: SList.grep() implemented.
481
483
482 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
484 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
483 for easy "out of the box" setup of several common editors, so that
485 for easy "out of the box" setup of several common editors, so that
484 e.g. '%edit os.path.isfile' will jump to the correct line
486 e.g. '%edit os.path.isfile' will jump to the correct line
485 automatically. Contributions for command lines of your favourite
487 automatically. Contributions for command lines of your favourite
486 editors welcome.
488 editors welcome.
487
489
488 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
490 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
489
491
490 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
492 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
491 preventing source display in certain cases. In reality I think
493 preventing source display in certain cases. In reality I think
492 the problem is with Ubuntu's Python build, but this change works
494 the problem is with Ubuntu's Python build, but this change works
493 around the issue in some cases (not in all, unfortunately). I'd
495 around the issue in some cases (not in all, unfortunately). I'd
494 filed a Python bug on this with more details, but in the change of
496 filed a Python bug on this with more details, but in the change of
495 bug trackers it seems to have been lost.
497 bug trackers it seems to have been lost.
496
498
497 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
499 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
498 not the same, it's not self-documenting, doesn't allow range
500 not the same, it's not self-documenting, doesn't allow range
499 selection, and sorts alphabetically instead of numerically.
501 selection, and sorts alphabetically instead of numerically.
500 (magic_r): restore %r. No, "up + enter. One char magic" is not
502 (magic_r): restore %r. No, "up + enter. One char magic" is not
501 the same thing, since %r takes parameters to allow fast retrieval
503 the same thing, since %r takes parameters to allow fast retrieval
502 of old commands. I've received emails from users who use this a
504 of old commands. I've received emails from users who use this a
503 LOT, so it stays.
505 LOT, so it stays.
504 (magic_automagic): restore %automagic. "use _ip.option.automagic"
506 (magic_automagic): restore %automagic. "use _ip.option.automagic"
505 is not a valid replacement b/c it doesn't provide an complete
507 is not a valid replacement b/c it doesn't provide an complete
506 explanation (which the automagic docstring does).
508 explanation (which the automagic docstring does).
507 (magic_autocall): restore %autocall, with improved docstring.
509 (magic_autocall): restore %autocall, with improved docstring.
508 Same argument as for others, "use _ip.options.autocall" is not a
510 Same argument as for others, "use _ip.options.autocall" is not a
509 valid replacement.
511 valid replacement.
510 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
512 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
511 tutorials and online docs.
513 tutorials and online docs.
512
514
513 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
515 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
514
516
515 * IPython/usage.py (quick_reference): mention magics in quickref,
517 * IPython/usage.py (quick_reference): mention magics in quickref,
516 modified main banner to mention %quickref.
518 modified main banner to mention %quickref.
517
519
518 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
520 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
519
521
520 2007-09-06 Ville Vainio <vivainio@gmail.com>
522 2007-09-06 Ville Vainio <vivainio@gmail.com>
521
523
522 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
524 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
523 Callable aliases now pass the _ip as first arg. This breaks
525 Callable aliases now pass the _ip as first arg. This breaks
524 compatibility with earlier 0.8.2.svn series! (though they should
526 compatibility with earlier 0.8.2.svn series! (though they should
525 not have been in use yet outside these few extensions)
527 not have been in use yet outside these few extensions)
526
528
527 2007-09-05 Ville Vainio <vivainio@gmail.com>
529 2007-09-05 Ville Vainio <vivainio@gmail.com>
528
530
529 * external/mglob.py: expand('dirname') => ['dirname'], instead
531 * external/mglob.py: expand('dirname') => ['dirname'], instead
530 of ['dirname/foo','dirname/bar', ...].
532 of ['dirname/foo','dirname/bar', ...].
531
533
532 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
534 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
533 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
535 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
534 is useful for others as well).
536 is useful for others as well).
535
537
536 * iplib.py: on callable aliases (as opposed to old style aliases),
538 * iplib.py: on callable aliases (as opposed to old style aliases),
537 do var_expand() immediately, and use make_quoted_expr instead
539 do var_expand() immediately, and use make_quoted_expr instead
538 of hardcoded r"""
540 of hardcoded r"""
539
541
540 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
542 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
541 if not available load ipy_fsops.py for cp, mv, etc. replacements
543 if not available load ipy_fsops.py for cp, mv, etc. replacements
542
544
543 * OInspect.py, ipy_which.py: improve %which and obj? for callable
545 * OInspect.py, ipy_which.py: improve %which and obj? for callable
544 aliases
546 aliases
545
547
546 2007-09-04 Ville Vainio <vivainio@gmail.com>
548 2007-09-04 Ville Vainio <vivainio@gmail.com>
547
549
548 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
550 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
549 Relicensed under BSD with the authors approval.
551 Relicensed under BSD with the authors approval.
550
552
551 * ipmaker.py, usage.py: Remove %magic from default banner, improve
553 * ipmaker.py, usage.py: Remove %magic from default banner, improve
552 %quickref
554 %quickref
553
555
554 2007-09-03 Ville Vainio <vivainio@gmail.com>
556 2007-09-03 Ville Vainio <vivainio@gmail.com>
555
557
556 * Magic.py: %time now passes expression through prefilter,
558 * Magic.py: %time now passes expression through prefilter,
557 allowing IPython syntax.
559 allowing IPython syntax.
558
560
559 2007-09-01 Ville Vainio <vivainio@gmail.com>
561 2007-09-01 Ville Vainio <vivainio@gmail.com>
560
562
561 * ipmaker.py: Always show full traceback when newstyle config fails
563 * ipmaker.py: Always show full traceback when newstyle config fails
562
564
563 2007-08-27 Ville Vainio <vivainio@gmail.com>
565 2007-08-27 Ville Vainio <vivainio@gmail.com>
564
566
565 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
567 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
566
568
567 2007-08-26 Ville Vainio <vivainio@gmail.com>
569 2007-08-26 Ville Vainio <vivainio@gmail.com>
568
570
569 * ipmaker.py: Command line args have the highest priority again
571 * ipmaker.py: Command line args have the highest priority again
570
572
571 * iplib.py, ipmaker.py: -i command line argument now behaves as in
573 * iplib.py, ipmaker.py: -i command line argument now behaves as in
572 normal python, i.e. leaves the IPython session running after -c
574 normal python, i.e. leaves the IPython session running after -c
573 command or running a batch file from command line.
575 command or running a batch file from command line.
574
576
575 2007-08-22 Ville Vainio <vivainio@gmail.com>
577 2007-08-22 Ville Vainio <vivainio@gmail.com>
576
578
577 * iplib.py: no extra empty (last) line in raw hist w/ multiline
579 * iplib.py: no extra empty (last) line in raw hist w/ multiline
578 statements
580 statements
579
581
580 * logger.py: Fix bug where blank lines in history were not
582 * logger.py: Fix bug where blank lines in history were not
581 added until AFTER adding the current line; translated and raw
583 added until AFTER adding the current line; translated and raw
582 history should finally be in sync with prompt now.
584 history should finally be in sync with prompt now.
583
585
584 * ipy_completers.py: quick_completer now makes it easy to create
586 * ipy_completers.py: quick_completer now makes it easy to create
585 trivial custom completers
587 trivial custom completers
586
588
587 * clearcmd.py: shadow history compression & erasing, fixed input hist
589 * clearcmd.py: shadow history compression & erasing, fixed input hist
588 clearing.
590 clearing.
589
591
590 * envpersist.py, history.py: %env (sh profile only), %hist completers
592 * envpersist.py, history.py: %env (sh profile only), %hist completers
591
593
592 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
594 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
593 term title now include the drive letter, and always use / instead of
595 term title now include the drive letter, and always use / instead of
594 os.sep (as per recommended approach for win32 ipython in general).
596 os.sep (as per recommended approach for win32 ipython in general).
595
597
596 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
598 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
597 plain python scripts from ipykit command line by running
599 plain python scripts from ipykit command line by running
598 "py myscript.py", even w/o installed python.
600 "py myscript.py", even w/o installed python.
599
601
600 2007-08-21 Ville Vainio <vivainio@gmail.com>
602 2007-08-21 Ville Vainio <vivainio@gmail.com>
601
603
602 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
604 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
603 (for backwards compatibility)
605 (for backwards compatibility)
604
606
605 * history.py: switch back to %hist -t from %hist -r as default.
607 * history.py: switch back to %hist -t from %hist -r as default.
606 At least until raw history is fixed for good.
608 At least until raw history is fixed for good.
607
609
608 2007-08-20 Ville Vainio <vivainio@gmail.com>
610 2007-08-20 Ville Vainio <vivainio@gmail.com>
609
611
610 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
612 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
611 locate alias redeclarations etc. Also, avoid handling
613 locate alias redeclarations etc. Also, avoid handling
612 _ip.IP.alias_table directly, prefer using _ip.defalias.
614 _ip.IP.alias_table directly, prefer using _ip.defalias.
613
615
614
616
615 2007-08-15 Ville Vainio <vivainio@gmail.com>
617 2007-08-15 Ville Vainio <vivainio@gmail.com>
616
618
617 * prefilter.py: ! is now always served first
619 * prefilter.py: ! is now always served first
618
620
619 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
621 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
620
622
621 * IPython/iplib.py (safe_execfile): fix the SystemExit
623 * IPython/iplib.py (safe_execfile): fix the SystemExit
622 auto-suppression code to work in Python2.4 (the internal structure
624 auto-suppression code to work in Python2.4 (the internal structure
623 of that exception changed and I'd only tested the code with 2.5).
625 of that exception changed and I'd only tested the code with 2.5).
624 Bug reported by a SciPy attendee.
626 Bug reported by a SciPy attendee.
625
627
626 2007-08-13 Ville Vainio <vivainio@gmail.com>
628 2007-08-13 Ville Vainio <vivainio@gmail.com>
627
629
628 * prefilter.py: reverted !c:/bin/foo fix, made % in
630 * prefilter.py: reverted !c:/bin/foo fix, made % in
629 multiline specials work again
631 multiline specials work again
630
632
631 2007-08-13 Ville Vainio <vivainio@gmail.com>
633 2007-08-13 Ville Vainio <vivainio@gmail.com>
632
634
633 * prefilter.py: Take more care to special-case !, so that
635 * prefilter.py: Take more care to special-case !, so that
634 !c:/bin/foo.exe works.
636 !c:/bin/foo.exe works.
635
637
636 * setup.py: if we are building eggs, strip all docs and
638 * setup.py: if we are building eggs, strip all docs and
637 examples (it doesn't make sense to bytecompile examples,
639 examples (it doesn't make sense to bytecompile examples,
638 and docs would be in an awkward place anyway).
640 and docs would be in an awkward place anyway).
639
641
640 * Ryan Krauss' patch fixes start menu shortcuts when IPython
642 * Ryan Krauss' patch fixes start menu shortcuts when IPython
641 is installed into a directory that has spaces in the name.
643 is installed into a directory that has spaces in the name.
642
644
643 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
645 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
644
646
645 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
647 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
646 doctest profile and %doctest_mode, so they actually generate the
648 doctest profile and %doctest_mode, so they actually generate the
647 blank lines needed by doctest to separate individual tests.
649 blank lines needed by doctest to separate individual tests.
648
650
649 * IPython/iplib.py (safe_execfile): modify so that running code
651 * IPython/iplib.py (safe_execfile): modify so that running code
650 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
652 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
651 doesn't get a printed traceback. Any other value in sys.exit(),
653 doesn't get a printed traceback. Any other value in sys.exit(),
652 including the empty call, still generates a traceback. This
654 including the empty call, still generates a traceback. This
653 enables use of %run without having to pass '-e' for codes that
655 enables use of %run without having to pass '-e' for codes that
654 correctly set the exit status flag.
656 correctly set the exit status flag.
655
657
656 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
658 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
657
659
658 * IPython/iplib.py (InteractiveShell.post_config_initialization):
660 * IPython/iplib.py (InteractiveShell.post_config_initialization):
659 fix problems with doctests failing when run inside IPython due to
661 fix problems with doctests failing when run inside IPython due to
660 IPython's modifications of sys.displayhook.
662 IPython's modifications of sys.displayhook.
661
663
662 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
664 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
663
665
664 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
666 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
665 a string with names.
667 a string with names.
666
668
667 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
669 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
668
670
669 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
671 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
670 magic to toggle on/off the doctest pasting support without having
672 magic to toggle on/off the doctest pasting support without having
671 to leave a session to switch to a separate profile.
673 to leave a session to switch to a separate profile.
672
674
673 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
675 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
674
676
675 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
677 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
676 introduce a blank line between inputs, to conform to doctest
678 introduce a blank line between inputs, to conform to doctest
677 requirements.
679 requirements.
678
680
679 * IPython/OInspect.py (Inspector.pinfo): fix another part where
681 * IPython/OInspect.py (Inspector.pinfo): fix another part where
680 auto-generated docstrings for new-style classes were showing up.
682 auto-generated docstrings for new-style classes were showing up.
681
683
682 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
684 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
683
685
684 * api_changes: Add new file to track backward-incompatible
686 * api_changes: Add new file to track backward-incompatible
685 user-visible changes.
687 user-visible changes.
686
688
687 2007-08-06 Ville Vainio <vivainio@gmail.com>
689 2007-08-06 Ville Vainio <vivainio@gmail.com>
688
690
689 * ipmaker.py: fix bug where user_config_ns didn't exist at all
691 * ipmaker.py: fix bug where user_config_ns didn't exist at all
690 before all the config files were handled.
692 before all the config files were handled.
691
693
692 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
694 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
693
695
694 * IPython/irunner.py (RunnerFactory): Add new factory class for
696 * IPython/irunner.py (RunnerFactory): Add new factory class for
695 creating reusable runners based on filenames.
697 creating reusable runners based on filenames.
696
698
697 * IPython/Extensions/ipy_profile_doctest.py: New profile for
699 * IPython/Extensions/ipy_profile_doctest.py: New profile for
698 doctest support. It sets prompts/exceptions as similar to
700 doctest support. It sets prompts/exceptions as similar to
699 standard Python as possible, so that ipython sessions in this
701 standard Python as possible, so that ipython sessions in this
700 profile can be easily pasted as doctests with minimal
702 profile can be easily pasted as doctests with minimal
701 modifications. It also enables pasting of doctests from external
703 modifications. It also enables pasting of doctests from external
702 sources (even if they have leading whitespace), so that you can
704 sources (even if they have leading whitespace), so that you can
703 rerun doctests from existing sources.
705 rerun doctests from existing sources.
704
706
705 * IPython/iplib.py (_prefilter): fix a buglet where after entering
707 * IPython/iplib.py (_prefilter): fix a buglet where after entering
706 some whitespace, the prompt would become a continuation prompt
708 some whitespace, the prompt would become a continuation prompt
707 with no way of exiting it other than Ctrl-C. This fix brings us
709 with no way of exiting it other than Ctrl-C. This fix brings us
708 into conformity with how the default python prompt works.
710 into conformity with how the default python prompt works.
709
711
710 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
712 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
711 Add support for pasting not only lines that start with '>>>', but
713 Add support for pasting not only lines that start with '>>>', but
712 also with ' >>>'. That is, arbitrary whitespace can now precede
714 also with ' >>>'. That is, arbitrary whitespace can now precede
713 the prompts. This makes the system useful for pasting doctests
715 the prompts. This makes the system useful for pasting doctests
714 from docstrings back into a normal session.
716 from docstrings back into a normal session.
715
717
716 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
718 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
717
719
718 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
720 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
719 r1357, which had killed multiple invocations of an embedded
721 r1357, which had killed multiple invocations of an embedded
720 ipython (this means that example-embed has been broken for over 1
722 ipython (this means that example-embed has been broken for over 1
721 year!!!). Rather than possibly breaking the batch stuff for which
723 year!!!). Rather than possibly breaking the batch stuff for which
722 the code in iplib.py/interact was introduced, I worked around the
724 the code in iplib.py/interact was introduced, I worked around the
723 problem in the embedding class in Shell.py. We really need a
725 problem in the embedding class in Shell.py. We really need a
724 bloody test suite for this code, I'm sick of finding stuff that
726 bloody test suite for this code, I'm sick of finding stuff that
725 used to work breaking left and right every time I use an old
727 used to work breaking left and right every time I use an old
726 feature I hadn't touched in a few months.
728 feature I hadn't touched in a few months.
727 (kill_embedded): Add a new magic that only shows up in embedded
729 (kill_embedded): Add a new magic that only shows up in embedded
728 mode, to allow users to permanently deactivate an embedded instance.
730 mode, to allow users to permanently deactivate an embedded instance.
729
731
730 2007-08-01 Ville Vainio <vivainio@gmail.com>
732 2007-08-01 Ville Vainio <vivainio@gmail.com>
731
733
732 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
734 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
733 history gets out of sync on runlines (e.g. when running macros).
735 history gets out of sync on runlines (e.g. when running macros).
734
736
735 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
737 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
736
738
737 * IPython/Magic.py (magic_colors): fix win32-related error message
739 * IPython/Magic.py (magic_colors): fix win32-related error message
738 that could appear under *nix when readline was missing. Patch by
740 that could appear under *nix when readline was missing. Patch by
739 Scott Jackson, closes #175.
741 Scott Jackson, closes #175.
740
742
741 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
743 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
742
744
743 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
745 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
744 completer that it traits-aware, so that traits objects don't show
746 completer that it traits-aware, so that traits objects don't show
745 all of their internal attributes all the time.
747 all of their internal attributes all the time.
746
748
747 * IPython/genutils.py (dir2): moved this code from inside
749 * IPython/genutils.py (dir2): moved this code from inside
748 completer.py to expose it publicly, so I could use it in the
750 completer.py to expose it publicly, so I could use it in the
749 wildcards bugfix.
751 wildcards bugfix.
750
752
751 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
753 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
752 Stefan with Traits.
754 Stefan with Traits.
753
755
754 * IPython/completer.py (Completer.attr_matches): change internal
756 * IPython/completer.py (Completer.attr_matches): change internal
755 var name from 'object' to 'obj', since 'object' is now a builtin
757 var name from 'object' to 'obj', since 'object' is now a builtin
756 and this can lead to weird bugs if reusing this code elsewhere.
758 and this can lead to weird bugs if reusing this code elsewhere.
757
759
758 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
760 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
759
761
760 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
762 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
761 'foo?' and update the code to prevent printing of default
763 'foo?' and update the code to prevent printing of default
762 docstrings that started appearing after I added support for
764 docstrings that started appearing after I added support for
763 new-style classes. The approach I'm using isn't ideal (I just
765 new-style classes. The approach I'm using isn't ideal (I just
764 special-case those strings) but I'm not sure how to more robustly
766 special-case those strings) but I'm not sure how to more robustly
765 differentiate between truly user-written strings and Python's
767 differentiate between truly user-written strings and Python's
766 automatic ones.
768 automatic ones.
767
769
768 2007-07-09 Ville Vainio <vivainio@gmail.com>
770 2007-07-09 Ville Vainio <vivainio@gmail.com>
769
771
770 * completer.py: Applied Matthew Neeley's patch:
772 * completer.py: Applied Matthew Neeley's patch:
771 Dynamic attributes from trait_names and _getAttributeNames are added
773 Dynamic attributes from trait_names and _getAttributeNames are added
772 to the list of tab completions, but when this happens, the attribute
774 to the list of tab completions, but when this happens, the attribute
773 list is turned into a set, so the attributes are unordered when
775 list is turned into a set, so the attributes are unordered when
774 printed, which makes it hard to find the right completion. This patch
776 printed, which makes it hard to find the right completion. This patch
775 turns this set back into a list and sort it.
777 turns this set back into a list and sort it.
776
778
777 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
779 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
778
780
779 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
781 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
780 classes in various inspector functions.
782 classes in various inspector functions.
781
783
782 2007-06-28 Ville Vainio <vivainio@gmail.com>
784 2007-06-28 Ville Vainio <vivainio@gmail.com>
783
785
784 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
786 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
785 Implement "shadow" namespace, and callable aliases that reside there.
787 Implement "shadow" namespace, and callable aliases that reside there.
786 Use them by:
788 Use them by:
787
789
788 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
790 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
789
791
790 foo hello world
792 foo hello world
791 (gets translated to:)
793 (gets translated to:)
792 _sh.foo(r"""hello world""")
794 _sh.foo(r"""hello world""")
793
795
794 In practice, this kind of alias can take the role of a magic function
796 In practice, this kind of alias can take the role of a magic function
795
797
796 * New generic inspect_object, called on obj? and obj??
798 * New generic inspect_object, called on obj? and obj??
797
799
798 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
800 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
799
801
800 * IPython/ultraTB.py (findsource): fix a problem with
802 * IPython/ultraTB.py (findsource): fix a problem with
801 inspect.getfile that can cause crashes during traceback construction.
803 inspect.getfile that can cause crashes during traceback construction.
802
804
803 2007-06-14 Ville Vainio <vivainio@gmail.com>
805 2007-06-14 Ville Vainio <vivainio@gmail.com>
804
806
805 * iplib.py (handle_auto): Try to use ascii for printing "--->"
807 * iplib.py (handle_auto): Try to use ascii for printing "--->"
806 autocall rewrite indication, becausesometimes unicode fails to print
808 autocall rewrite indication, becausesometimes unicode fails to print
807 properly (and you get ' - - - '). Use plain uncoloured ---> for
809 properly (and you get ' - - - '). Use plain uncoloured ---> for
808 unicode.
810 unicode.
809
811
810 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
812 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
811
813
812 . pickleshare 'hash' commands (hget, hset, hcompress,
814 . pickleshare 'hash' commands (hget, hset, hcompress,
813 hdict) for efficient shadow history storage.
815 hdict) for efficient shadow history storage.
814
816
815 2007-06-13 Ville Vainio <vivainio@gmail.com>
817 2007-06-13 Ville Vainio <vivainio@gmail.com>
816
818
817 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
819 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
818 Added kw arg 'interactive', tell whether vars should be visible
820 Added kw arg 'interactive', tell whether vars should be visible
819 with %whos.
821 with %whos.
820
822
821 2007-06-11 Ville Vainio <vivainio@gmail.com>
823 2007-06-11 Ville Vainio <vivainio@gmail.com>
822
824
823 * pspersistence.py, Magic.py, iplib.py: directory history now saved
825 * pspersistence.py, Magic.py, iplib.py: directory history now saved
824 to db
826 to db
825
827
826 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
828 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
827 Also, it exits IPython immediately after evaluating the command (just like
829 Also, it exits IPython immediately after evaluating the command (just like
828 std python)
830 std python)
829
831
830 2007-06-05 Walter Doerwald <walter@livinglogic.de>
832 2007-06-05 Walter Doerwald <walter@livinglogic.de>
831
833
832 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
834 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
833 Python string and captures the output. (Idea and original patch by
835 Python string and captures the output. (Idea and original patch by
834 Stefan van der Walt)
836 Stefan van der Walt)
835
837
836 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
838 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
837
839
838 * IPython/ultraTB.py (VerboseTB.text): update printing of
840 * IPython/ultraTB.py (VerboseTB.text): update printing of
839 exception types for Python 2.5 (now all exceptions in the stdlib
841 exception types for Python 2.5 (now all exceptions in the stdlib
840 are new-style classes).
842 are new-style classes).
841
843
842 2007-05-31 Walter Doerwald <walter@livinglogic.de>
844 2007-05-31 Walter Doerwald <walter@livinglogic.de>
843
845
844 * IPython/Extensions/igrid.py: Add new commands refresh and
846 * IPython/Extensions/igrid.py: Add new commands refresh and
845 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
847 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
846 the iterator once (refresh) or after every x seconds (refresh_timer).
848 the iterator once (refresh) or after every x seconds (refresh_timer).
847 Add a working implementation of "searchexpression", where the text
849 Add a working implementation of "searchexpression", where the text
848 entered is not the text to search for, but an expression that must
850 entered is not the text to search for, but an expression that must
849 be true. Added display of shortcuts to the menu. Added commands "pickinput"
851 be true. Added display of shortcuts to the menu. Added commands "pickinput"
850 and "pickinputattr" that put the object or attribute under the cursor
852 and "pickinputattr" that put the object or attribute under the cursor
851 in the input line. Split the statusbar to be able to display the currently
853 in the input line. Split the statusbar to be able to display the currently
852 active refresh interval. (Patch by Nik Tautenhahn)
854 active refresh interval. (Patch by Nik Tautenhahn)
853
855
854 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
856 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
855
857
856 * fixing set_term_title to use ctypes as default
858 * fixing set_term_title to use ctypes as default
857
859
858 * fixing set_term_title fallback to work when curent dir
860 * fixing set_term_title fallback to work when curent dir
859 is on a windows network share
861 is on a windows network share
860
862
861 2007-05-28 Ville Vainio <vivainio@gmail.com>
863 2007-05-28 Ville Vainio <vivainio@gmail.com>
862
864
863 * %cpaste: strip + with > from left (diffs).
865 * %cpaste: strip + with > from left (diffs).
864
866
865 * iplib.py: Fix crash when readline not installed
867 * iplib.py: Fix crash when readline not installed
866
868
867 2007-05-26 Ville Vainio <vivainio@gmail.com>
869 2007-05-26 Ville Vainio <vivainio@gmail.com>
868
870
869 * generics.py: introduce easy to extend result_display generic
871 * generics.py: introduce easy to extend result_display generic
870 function (using simplegeneric.py).
872 function (using simplegeneric.py).
871
873
872 * Fixed the append functionality of %set.
874 * Fixed the append functionality of %set.
873
875
874 2007-05-25 Ville Vainio <vivainio@gmail.com>
876 2007-05-25 Ville Vainio <vivainio@gmail.com>
875
877
876 * New magic: %rep (fetch / run old commands from history)
878 * New magic: %rep (fetch / run old commands from history)
877
879
878 * New extension: mglob (%mglob magic), for powerful glob / find /filter
880 * New extension: mglob (%mglob magic), for powerful glob / find /filter
879 like functionality
881 like functionality
880
882
881 % maghistory.py: %hist -g PATTERM greps the history for pattern
883 % maghistory.py: %hist -g PATTERM greps the history for pattern
882
884
883 2007-05-24 Walter Doerwald <walter@livinglogic.de>
885 2007-05-24 Walter Doerwald <walter@livinglogic.de>
884
886
885 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
887 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
886 browse the IPython input history
888 browse the IPython input history
887
889
888 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
890 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
889 (mapped to "i") can be used to put the object under the curser in the input
891 (mapped to "i") can be used to put the object under the curser in the input
890 line. pickinputattr (mapped to "I") does the same for the attribute under
892 line. pickinputattr (mapped to "I") does the same for the attribute under
891 the cursor.
893 the cursor.
892
894
893 2007-05-24 Ville Vainio <vivainio@gmail.com>
895 2007-05-24 Ville Vainio <vivainio@gmail.com>
894
896
895 * Grand magic cleansing (changeset [2380]):
897 * Grand magic cleansing (changeset [2380]):
896
898
897 * Introduce ipy_legacy.py where the following magics were
899 * Introduce ipy_legacy.py where the following magics were
898 moved:
900 moved:
899
901
900 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
902 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
901
903
902 If you need them, either use default profile or "import ipy_legacy"
904 If you need them, either use default profile or "import ipy_legacy"
903 in your ipy_user_conf.py
905 in your ipy_user_conf.py
904
906
905 * Move sh and scipy profile to Extensions from UserConfig. this implies
907 * Move sh and scipy profile to Extensions from UserConfig. this implies
906 you should not edit them, but you don't need to run %upgrade when
908 you should not edit them, but you don't need to run %upgrade when
907 upgrading IPython anymore.
909 upgrading IPython anymore.
908
910
909 * %hist/%history now operates in "raw" mode by default. To get the old
911 * %hist/%history now operates in "raw" mode by default. To get the old
910 behaviour, run '%hist -n' (native mode).
912 behaviour, run '%hist -n' (native mode).
911
913
912 * split ipy_stock_completers.py to ipy_stock_completers.py and
914 * split ipy_stock_completers.py to ipy_stock_completers.py and
913 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
915 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
914 installed as default.
916 installed as default.
915
917
916 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
918 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
917 handling.
919 handling.
918
920
919 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
921 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
920 input if readline is available.
922 input if readline is available.
921
923
922 2007-05-23 Ville Vainio <vivainio@gmail.com>
924 2007-05-23 Ville Vainio <vivainio@gmail.com>
923
925
924 * macro.py: %store uses __getstate__ properly
926 * macro.py: %store uses __getstate__ properly
925
927
926 * exesetup.py: added new setup script for creating
928 * exesetup.py: added new setup script for creating
927 standalone IPython executables with py2exe (i.e.
929 standalone IPython executables with py2exe (i.e.
928 no python installation required).
930 no python installation required).
929
931
930 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
932 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
931 its place.
933 its place.
932
934
933 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
935 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
934
936
935 2007-05-21 Ville Vainio <vivainio@gmail.com>
937 2007-05-21 Ville Vainio <vivainio@gmail.com>
936
938
937 * platutil_win32.py (set_term_title): handle
939 * platutil_win32.py (set_term_title): handle
938 failure of 'title' system call properly.
940 failure of 'title' system call properly.
939
941
940 2007-05-17 Walter Doerwald <walter@livinglogic.de>
942 2007-05-17 Walter Doerwald <walter@livinglogic.de>
941
943
942 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
944 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
943 (Bug detected by Paul Mueller).
945 (Bug detected by Paul Mueller).
944
946
945 2007-05-16 Ville Vainio <vivainio@gmail.com>
947 2007-05-16 Ville Vainio <vivainio@gmail.com>
946
948
947 * ipy_profile_sci.py, ipython_win_post_install.py: Create
949 * ipy_profile_sci.py, ipython_win_post_install.py: Create
948 new "sci" profile, effectively a modern version of the old
950 new "sci" profile, effectively a modern version of the old
949 "scipy" profile (which is now slated for deprecation).
951 "scipy" profile (which is now slated for deprecation).
950
952
951 2007-05-15 Ville Vainio <vivainio@gmail.com>
953 2007-05-15 Ville Vainio <vivainio@gmail.com>
952
954
953 * pycolorize.py, pycolor.1: Paul Mueller's patches that
955 * pycolorize.py, pycolor.1: Paul Mueller's patches that
954 make pycolorize read input from stdin when run without arguments.
956 make pycolorize read input from stdin when run without arguments.
955
957
956 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
958 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
957
959
958 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
960 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
959 it in sh profile (instead of ipy_system_conf.py).
961 it in sh profile (instead of ipy_system_conf.py).
960
962
961 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
963 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
962 aliases are now lower case on windows (MyCommand.exe => mycommand).
964 aliases are now lower case on windows (MyCommand.exe => mycommand).
963
965
964 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
966 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
965 Macros are now callable objects that inherit from ipapi.IPyAutocall,
967 Macros are now callable objects that inherit from ipapi.IPyAutocall,
966 i.e. get autocalled regardless of system autocall setting.
968 i.e. get autocalled regardless of system autocall setting.
967
969
968 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
970 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
969
971
970 * IPython/rlineimpl.py: check for clear_history in readline and
972 * IPython/rlineimpl.py: check for clear_history in readline and
971 make it a dummy no-op if not available. This function isn't
973 make it a dummy no-op if not available. This function isn't
972 guaranteed to be in the API and appeared in Python 2.4, so we need
974 guaranteed to be in the API and appeared in Python 2.4, so we need
973 to check it ourselves. Also, clean up this file quite a bit.
975 to check it ourselves. Also, clean up this file quite a bit.
974
976
975 * ipython.1: update man page and full manual with information
977 * ipython.1: update man page and full manual with information
976 about threads (remove outdated warning). Closes #151.
978 about threads (remove outdated warning). Closes #151.
977
979
978 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
980 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
979
981
980 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
982 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
981 in trunk (note that this made it into the 0.8.1 release already,
983 in trunk (note that this made it into the 0.8.1 release already,
982 but the changelogs didn't get coordinated). Many thanks to Gael
984 but the changelogs didn't get coordinated). Many thanks to Gael
983 Varoquaux <gael.varoquaux-AT-normalesup.org>
985 Varoquaux <gael.varoquaux-AT-normalesup.org>
984
986
985 2007-05-09 *** Released version 0.8.1
987 2007-05-09 *** Released version 0.8.1
986
988
987 2007-05-10 Walter Doerwald <walter@livinglogic.de>
989 2007-05-10 Walter Doerwald <walter@livinglogic.de>
988
990
989 * IPython/Extensions/igrid.py: Incorporate html help into
991 * IPython/Extensions/igrid.py: Incorporate html help into
990 the module, so we don't have to search for the file.
992 the module, so we don't have to search for the file.
991
993
992 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
994 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
993
995
994 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
996 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
995
997
996 2007-04-30 Ville Vainio <vivainio@gmail.com>
998 2007-04-30 Ville Vainio <vivainio@gmail.com>
997
999
998 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1000 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
999 user has illegal (non-ascii) home directory name
1001 user has illegal (non-ascii) home directory name
1000
1002
1001 2007-04-27 Ville Vainio <vivainio@gmail.com>
1003 2007-04-27 Ville Vainio <vivainio@gmail.com>
1002
1004
1003 * platutils_win32.py: implement set_term_title for windows
1005 * platutils_win32.py: implement set_term_title for windows
1004
1006
1005 * Update version number
1007 * Update version number
1006
1008
1007 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1009 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1008
1010
1009 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1011 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1010
1012
1011 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1013 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1012 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1014 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1013 bug discovered by Ville).
1015 bug discovered by Ville).
1014
1016
1015 2007-04-26 Ville Vainio <vivainio@gmail.com>
1017 2007-04-26 Ville Vainio <vivainio@gmail.com>
1016
1018
1017 * Extensions/ipy_completers.py: Olivier's module completer now
1019 * Extensions/ipy_completers.py: Olivier's module completer now
1018 saves the list of root modules if it takes > 4 secs on the first run.
1020 saves the list of root modules if it takes > 4 secs on the first run.
1019
1021
1020 * Magic.py (%rehashx): %rehashx now clears the completer cache
1022 * Magic.py (%rehashx): %rehashx now clears the completer cache
1021
1023
1022
1024
1023 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1025 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1024
1026
1025 * ipython.el: fix incorrect color scheme, reported by Stefan.
1027 * ipython.el: fix incorrect color scheme, reported by Stefan.
1026 Closes #149.
1028 Closes #149.
1027
1029
1028 * IPython/PyColorize.py (Parser.format2): fix state-handling
1030 * IPython/PyColorize.py (Parser.format2): fix state-handling
1029 logic. I still don't like how that code handles state, but at
1031 logic. I still don't like how that code handles state, but at
1030 least now it should be correct, if inelegant. Closes #146.
1032 least now it should be correct, if inelegant. Closes #146.
1031
1033
1032 2007-04-25 Ville Vainio <vivainio@gmail.com>
1034 2007-04-25 Ville Vainio <vivainio@gmail.com>
1033
1035
1034 * Extensions/ipy_which.py: added extension for %which magic, works
1036 * Extensions/ipy_which.py: added extension for %which magic, works
1035 a lot like unix 'which' but also finds and expands aliases, and
1037 a lot like unix 'which' but also finds and expands aliases, and
1036 allows wildcards.
1038 allows wildcards.
1037
1039
1038 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1040 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1039 as opposed to returning nothing.
1041 as opposed to returning nothing.
1040
1042
1041 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1043 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1042 ipy_stock_completers on default profile, do import on sh profile.
1044 ipy_stock_completers on default profile, do import on sh profile.
1043
1045
1044 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1046 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1045
1047
1046 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1048 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1047 like ipython.py foo.py which raised a IndexError.
1049 like ipython.py foo.py which raised a IndexError.
1048
1050
1049 2007-04-21 Ville Vainio <vivainio@gmail.com>
1051 2007-04-21 Ville Vainio <vivainio@gmail.com>
1050
1052
1051 * Extensions/ipy_extutil.py: added extension to manage other ipython
1053 * Extensions/ipy_extutil.py: added extension to manage other ipython
1052 extensions. Now only supports 'ls' == list extensions.
1054 extensions. Now only supports 'ls' == list extensions.
1053
1055
1054 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1056 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1055
1057
1056 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1058 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1057 would prevent use of the exception system outside of a running
1059 would prevent use of the exception system outside of a running
1058 IPython instance.
1060 IPython instance.
1059
1061
1060 2007-04-20 Ville Vainio <vivainio@gmail.com>
1062 2007-04-20 Ville Vainio <vivainio@gmail.com>
1061
1063
1062 * Extensions/ipy_render.py: added extension for easy
1064 * Extensions/ipy_render.py: added extension for easy
1063 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1065 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1064 'Iptl' template notation,
1066 'Iptl' template notation,
1065
1067
1066 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1068 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1067 safer & faster 'import' completer.
1069 safer & faster 'import' completer.
1068
1070
1069 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1071 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1070 and _ip.defalias(name, command).
1072 and _ip.defalias(name, command).
1071
1073
1072 * Extensions/ipy_exportdb.py: New extension for exporting all the
1074 * Extensions/ipy_exportdb.py: New extension for exporting all the
1073 %store'd data in a portable format (normal ipapi calls like
1075 %store'd data in a portable format (normal ipapi calls like
1074 defmacro() etc.)
1076 defmacro() etc.)
1075
1077
1076 2007-04-19 Ville Vainio <vivainio@gmail.com>
1078 2007-04-19 Ville Vainio <vivainio@gmail.com>
1077
1079
1078 * upgrade_dir.py: skip junk files like *.pyc
1080 * upgrade_dir.py: skip junk files like *.pyc
1079
1081
1080 * Release.py: version number to 0.8.1
1082 * Release.py: version number to 0.8.1
1081
1083
1082 2007-04-18 Ville Vainio <vivainio@gmail.com>
1084 2007-04-18 Ville Vainio <vivainio@gmail.com>
1083
1085
1084 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1086 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1085 and later on win32.
1087 and later on win32.
1086
1088
1087 2007-04-16 Ville Vainio <vivainio@gmail.com>
1089 2007-04-16 Ville Vainio <vivainio@gmail.com>
1088
1090
1089 * iplib.py (showtraceback): Do not crash when running w/o readline.
1091 * iplib.py (showtraceback): Do not crash when running w/o readline.
1090
1092
1091 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1093 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1092
1094
1093 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1095 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1094 sorted (case sensitive with files and dirs mixed).
1096 sorted (case sensitive with files and dirs mixed).
1095
1097
1096 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1098 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1097
1099
1098 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1100 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1099
1101
1100 2007-04-10 *** Released version 0.8.0
1102 2007-04-10 *** Released version 0.8.0
1101
1103
1102 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1104 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1103
1105
1104 * Tag 0.8.0 for release.
1106 * Tag 0.8.0 for release.
1105
1107
1106 * IPython/iplib.py (reloadhist): add API function to cleanly
1108 * IPython/iplib.py (reloadhist): add API function to cleanly
1107 reload the readline history, which was growing inappropriately on
1109 reload the readline history, which was growing inappropriately on
1108 every %run call.
1110 every %run call.
1109
1111
1110 * win32_manual_post_install.py (run): apply last part of Nicolas
1112 * win32_manual_post_install.py (run): apply last part of Nicolas
1111 Pernetty's patch (I'd accidentally applied it in a different
1113 Pernetty's patch (I'd accidentally applied it in a different
1112 directory and this particular file didn't get patched).
1114 directory and this particular file didn't get patched).
1113
1115
1114 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1116 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1115
1117
1116 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1118 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1117 find the main thread id and use the proper API call. Thanks to
1119 find the main thread id and use the proper API call. Thanks to
1118 Stefan for the fix.
1120 Stefan for the fix.
1119
1121
1120 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1122 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1121 unit tests to reflect fixed ticket #52, and add more tests sent by
1123 unit tests to reflect fixed ticket #52, and add more tests sent by
1122 him.
1124 him.
1123
1125
1124 * IPython/iplib.py (raw_input): restore the readline completer
1126 * IPython/iplib.py (raw_input): restore the readline completer
1125 state on every input, in case third-party code messed it up.
1127 state on every input, in case third-party code messed it up.
1126 (_prefilter): revert recent addition of early-escape checks which
1128 (_prefilter): revert recent addition of early-escape checks which
1127 prevent many valid alias calls from working.
1129 prevent many valid alias calls from working.
1128
1130
1129 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1131 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1130 flag for sigint handler so we don't run a full signal() call on
1132 flag for sigint handler so we don't run a full signal() call on
1131 each runcode access.
1133 each runcode access.
1132
1134
1133 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1135 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1134 message.
1136 message.
1135
1137
1136 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1138 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1137
1139
1138 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1140 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1139 asynchronous exceptions working, i.e., Ctrl-C can actually
1141 asynchronous exceptions working, i.e., Ctrl-C can actually
1140 interrupt long-running code in the multithreaded shells.
1142 interrupt long-running code in the multithreaded shells.
1141
1143
1142 This is using Tomer Filiba's great ctypes-based trick:
1144 This is using Tomer Filiba's great ctypes-based trick:
1143 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1145 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1144 this in the past, but hadn't been able to make it work before. So
1146 this in the past, but hadn't been able to make it work before. So
1145 far it looks like it's actually running, but this needs more
1147 far it looks like it's actually running, but this needs more
1146 testing. If it really works, I'll be *very* happy, and we'll owe
1148 testing. If it really works, I'll be *very* happy, and we'll owe
1147 a huge thank you to Tomer. My current implementation is ugly,
1149 a huge thank you to Tomer. My current implementation is ugly,
1148 hackish and uses nasty globals, but I don't want to try and clean
1150 hackish and uses nasty globals, but I don't want to try and clean
1149 anything up until we know if it actually works.
1151 anything up until we know if it actually works.
1150
1152
1151 NOTE: this feature needs ctypes to work. ctypes is included in
1153 NOTE: this feature needs ctypes to work. ctypes is included in
1152 Python2.5, but 2.4 users will need to manually install it. This
1154 Python2.5, but 2.4 users will need to manually install it. This
1153 feature makes multi-threaded shells so much more usable that it's
1155 feature makes multi-threaded shells so much more usable that it's
1154 a minor price to pay (ctypes is very easy to install, already a
1156 a minor price to pay (ctypes is very easy to install, already a
1155 requirement for win32 and available in major linux distros).
1157 requirement for win32 and available in major linux distros).
1156
1158
1157 2007-04-04 Ville Vainio <vivainio@gmail.com>
1159 2007-04-04 Ville Vainio <vivainio@gmail.com>
1158
1160
1159 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1161 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1160 Moved implementations of 'bundled' completers to ipy_completers.py,
1162 Moved implementations of 'bundled' completers to ipy_completers.py,
1161 they are only enabled in ipy_stock_completers.py.
1163 they are only enabled in ipy_stock_completers.py.
1162
1164
1163 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1165 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1164
1166
1165 * IPython/PyColorize.py (Parser.format2): Fix identation of
1167 * IPython/PyColorize.py (Parser.format2): Fix identation of
1166 colorzied output and return early if color scheme is NoColor, to
1168 colorzied output and return early if color scheme is NoColor, to
1167 avoid unnecessary and expensive tokenization. Closes #131.
1169 avoid unnecessary and expensive tokenization. Closes #131.
1168
1170
1169 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1171 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1170
1172
1171 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1173 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1172 has a critical bug (a missing import that makes post-mortem not
1174 has a critical bug (a missing import that makes post-mortem not
1173 work at all). Unfortunately as of this time, this is the version
1175 work at all). Unfortunately as of this time, this is the version
1174 shipped with Ubuntu Edgy, so quite a few people have this one. I
1176 shipped with Ubuntu Edgy, so quite a few people have this one. I
1175 hope Edgy will update to a more recent package.
1177 hope Edgy will update to a more recent package.
1176
1178
1177 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1179 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1178
1180
1179 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1181 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1180 set by Stefan (only the first part had been applied before).
1182 set by Stefan (only the first part had been applied before).
1181
1183
1182 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1184 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1183 remove usage of the dangerous pkgutil.walk_packages(). See
1185 remove usage of the dangerous pkgutil.walk_packages(). See
1184 details in comments left in the code.
1186 details in comments left in the code.
1185
1187
1186 * IPython/Magic.py (magic_whos): add support for numpy arrays
1188 * IPython/Magic.py (magic_whos): add support for numpy arrays
1187 similar to what we had for Numeric.
1189 similar to what we had for Numeric.
1188
1190
1189 * IPython/completer.py (IPCompleter.complete): extend the
1191 * IPython/completer.py (IPCompleter.complete): extend the
1190 complete() call API to support completions by other mechanisms
1192 complete() call API to support completions by other mechanisms
1191 than readline. Closes #109.
1193 than readline. Closes #109.
1192
1194
1193 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1195 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1194 protect against a bug in Python's execfile(). Closes #123.
1196 protect against a bug in Python's execfile(). Closes #123.
1195
1197
1196 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1198 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1197
1199
1198 * IPython/iplib.py (split_user_input): ensure that when splitting
1200 * IPython/iplib.py (split_user_input): ensure that when splitting
1199 user input, the part that can be treated as a python name is pure
1201 user input, the part that can be treated as a python name is pure
1200 ascii (Python identifiers MUST be pure ascii). Part of the
1202 ascii (Python identifiers MUST be pure ascii). Part of the
1201 ongoing Unicode support work.
1203 ongoing Unicode support work.
1202
1204
1203 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1205 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1204 actual prompt number, without any coloring. This allows users to
1206 actual prompt number, without any coloring. This allows users to
1205 produce numbered prompts with their own colors. Added after a
1207 produce numbered prompts with their own colors. Added after a
1206 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1208 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1207
1209
1208 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1210 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1209
1211
1210 * IPython/Extensions/igrid.py: Map the return key
1212 * IPython/Extensions/igrid.py: Map the return key
1211 to enter() and shift-return to enterattr().
1213 to enter() and shift-return to enterattr().
1212
1214
1213 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1215 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1214
1216
1215 * IPython/Magic.py (magic_psearch): add unicode support by
1217 * IPython/Magic.py (magic_psearch): add unicode support by
1216 encoding to ascii the input, since this routine also only deals
1218 encoding to ascii the input, since this routine also only deals
1217 with valid Python names. Fixes a bug reported by Stefan.
1219 with valid Python names. Fixes a bug reported by Stefan.
1218
1220
1219 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1221 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1220
1222
1221 * IPython/Magic.py (_inspect): convert unicode input into ascii
1223 * IPython/Magic.py (_inspect): convert unicode input into ascii
1222 before trying to evaluate it as a Python identifier. This fixes a
1224 before trying to evaluate it as a Python identifier. This fixes a
1223 problem that the new unicode support had introduced when analyzing
1225 problem that the new unicode support had introduced when analyzing
1224 long definition lines for functions.
1226 long definition lines for functions.
1225
1227
1226 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1228 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1227
1229
1228 * IPython/Extensions/igrid.py: Fix picking. Using
1230 * IPython/Extensions/igrid.py: Fix picking. Using
1229 igrid with wxPython 2.6 and -wthread should work now.
1231 igrid with wxPython 2.6 and -wthread should work now.
1230 igrid.display() simply tries to create a frame without
1232 igrid.display() simply tries to create a frame without
1231 an application. Only if this fails an application is created.
1233 an application. Only if this fails an application is created.
1232
1234
1233 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1235 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1234
1236
1235 * IPython/Extensions/path.py: Updated to version 2.2.
1237 * IPython/Extensions/path.py: Updated to version 2.2.
1236
1238
1237 2007-03-23 Ville Vainio <vivainio@gmail.com>
1239 2007-03-23 Ville Vainio <vivainio@gmail.com>
1238
1240
1239 * iplib.py: recursive alias expansion now works better, so that
1241 * iplib.py: recursive alias expansion now works better, so that
1240 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1242 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1241 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1243 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1242
1244
1243 * Extensions/ipy_gnuglobal.py added, provides %global magic
1245 * Extensions/ipy_gnuglobal.py added, provides %global magic
1244 for users of http://www.gnu.org/software/global
1246 for users of http://www.gnu.org/software/global
1245
1247
1246 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1248 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1247 Closes #52. Patch by Stefan van der Walt.
1249 Closes #52. Patch by Stefan van der Walt.
1248
1250
1249 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1251 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1250
1252
1251 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1253 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1252 respect the __file__ attribute when using %run. Thanks to a bug
1254 respect the __file__ attribute when using %run. Thanks to a bug
1253 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1255 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1254
1256
1255 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1257 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1256
1258
1257 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1259 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1258 input. Patch sent by Stefan.
1260 input. Patch sent by Stefan.
1259
1261
1260 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1262 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1261 * IPython/Extensions/ipy_stock_completer.py
1263 * IPython/Extensions/ipy_stock_completer.py
1262 shlex_split, fix bug in shlex_split. len function
1264 shlex_split, fix bug in shlex_split. len function
1263 call was missing an if statement. Caused shlex_split to
1265 call was missing an if statement. Caused shlex_split to
1264 sometimes return "" as last element.
1266 sometimes return "" as last element.
1265
1267
1266 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1268 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1267
1269
1268 * IPython/completer.py
1270 * IPython/completer.py
1269 (IPCompleter.file_matches.single_dir_expand): fix a problem
1271 (IPCompleter.file_matches.single_dir_expand): fix a problem
1270 reported by Stefan, where directories containign a single subdir
1272 reported by Stefan, where directories containign a single subdir
1271 would be completed too early.
1273 would be completed too early.
1272
1274
1273 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1275 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1274 pylab import *' when -pylab is given be optional. A new flag,
1276 pylab import *' when -pylab is given be optional. A new flag,
1275 pylab_import_all controls this behavior, the default is True for
1277 pylab_import_all controls this behavior, the default is True for
1276 backwards compatibility.
1278 backwards compatibility.
1277
1279
1278 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1280 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1279 modified) R. Bernstein's patch for fully syntax highlighted
1281 modified) R. Bernstein's patch for fully syntax highlighted
1280 tracebacks. The functionality is also available under ultraTB for
1282 tracebacks. The functionality is also available under ultraTB for
1281 non-ipython users (someone using ultraTB but outside an ipython
1283 non-ipython users (someone using ultraTB but outside an ipython
1282 session). They can select the color scheme by setting the
1284 session). They can select the color scheme by setting the
1283 module-level global DEFAULT_SCHEME. The highlight functionality
1285 module-level global DEFAULT_SCHEME. The highlight functionality
1284 also works when debugging.
1286 also works when debugging.
1285
1287
1286 * IPython/genutils.py (IOStream.close): small patch by
1288 * IPython/genutils.py (IOStream.close): small patch by
1287 R. Bernstein for improved pydb support.
1289 R. Bernstein for improved pydb support.
1288
1290
1289 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1291 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1290 DaveS <davls@telus.net> to improve support of debugging under
1292 DaveS <davls@telus.net> to improve support of debugging under
1291 NTEmacs, including improved pydb behavior.
1293 NTEmacs, including improved pydb behavior.
1292
1294
1293 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1295 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1294 Python 2.5, where the stats object API changed a little. Thanks
1296 Python 2.5, where the stats object API changed a little. Thanks
1295 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1297 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1296
1298
1297 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1299 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1298 Pernetty's patch to improve support for (X)Emacs under Win32.
1300 Pernetty's patch to improve support for (X)Emacs under Win32.
1299
1301
1300 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1302 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1301
1303
1302 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1304 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1303 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1305 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1304 a report by Nik Tautenhahn.
1306 a report by Nik Tautenhahn.
1305
1307
1306 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1308 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1307
1309
1308 * setup.py: Add the igrid help files to the list of data files
1310 * setup.py: Add the igrid help files to the list of data files
1309 to be installed alongside igrid.
1311 to be installed alongside igrid.
1310 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1312 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1311 Show the input object of the igrid browser as the window tile.
1313 Show the input object of the igrid browser as the window tile.
1312 Show the object the cursor is on in the statusbar.
1314 Show the object the cursor is on in the statusbar.
1313
1315
1314 2007-03-15 Ville Vainio <vivainio@gmail.com>
1316 2007-03-15 Ville Vainio <vivainio@gmail.com>
1315
1317
1316 * Extensions/ipy_stock_completers.py: Fixed exception
1318 * Extensions/ipy_stock_completers.py: Fixed exception
1317 on mismatching quotes in %run completer. Patch by
1319 on mismatching quotes in %run completer. Patch by
1318 Jorgen Stenarson. Closes #127.
1320 Jorgen Stenarson. Closes #127.
1319
1321
1320 2007-03-14 Ville Vainio <vivainio@gmail.com>
1322 2007-03-14 Ville Vainio <vivainio@gmail.com>
1321
1323
1322 * Extensions/ext_rehashdir.py: Do not do auto_alias
1324 * Extensions/ext_rehashdir.py: Do not do auto_alias
1323 in %rehashdir, it clobbers %store'd aliases.
1325 in %rehashdir, it clobbers %store'd aliases.
1324
1326
1325 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1327 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1326 (beefed up %env) imported for sh profile.
1328 (beefed up %env) imported for sh profile.
1327
1329
1328 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1330 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1329
1331
1330 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1332 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1331 as the default browser.
1333 as the default browser.
1332 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1334 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1333 As igrid displays all attributes it ever encounters, fetch() (which has
1335 As igrid displays all attributes it ever encounters, fetch() (which has
1334 been renamed to _fetch()) doesn't have to recalculate the display attributes
1336 been renamed to _fetch()) doesn't have to recalculate the display attributes
1335 every time a new item is fetched. This should speed up scrolling.
1337 every time a new item is fetched. This should speed up scrolling.
1336
1338
1337 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1338
1340
1339 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1341 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1340 Schmolck's recently reported tab-completion bug (my previous one
1342 Schmolck's recently reported tab-completion bug (my previous one
1341 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1343 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1342
1344
1343 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1345 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1344
1346
1345 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1347 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1346 Close help window if exiting igrid.
1348 Close help window if exiting igrid.
1347
1349
1348 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1350 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1349
1351
1350 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1352 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1351 before calling functions from readline.
1353 before calling functions from readline.
1352
1354
1353 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1355 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1354
1356
1355 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1357 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1356 igrid is a wxPython-based display object for ipipe. If your system has
1358 igrid is a wxPython-based display object for ipipe. If your system has
1357 wx installed igrid will be the default display. Without wx ipipe falls
1359 wx installed igrid will be the default display. Without wx ipipe falls
1358 back to ibrowse (which needs curses). If no curses is installed ipipe
1360 back to ibrowse (which needs curses). If no curses is installed ipipe
1359 falls back to idump.
1361 falls back to idump.
1360
1362
1361 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1363 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1364
1363 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1365 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1364 my changes from yesterday, they introduced bugs. Will reactivate
1366 my changes from yesterday, they introduced bugs. Will reactivate
1365 once I get a correct solution, which will be much easier thanks to
1367 once I get a correct solution, which will be much easier thanks to
1366 Dan Milstein's new prefilter test suite.
1368 Dan Milstein's new prefilter test suite.
1367
1369
1368 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1370 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1369
1371
1370 * IPython/iplib.py (split_user_input): fix input splitting so we
1372 * IPython/iplib.py (split_user_input): fix input splitting so we
1371 don't attempt attribute accesses on things that can't possibly be
1373 don't attempt attribute accesses on things that can't possibly be
1372 valid Python attributes. After a bug report by Alex Schmolck.
1374 valid Python attributes. After a bug report by Alex Schmolck.
1373 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1375 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1374 %magic with explicit % prefix.
1376 %magic with explicit % prefix.
1375
1377
1376 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1378 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1379
1378 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1380 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1379 avoid a DeprecationWarning from GTK.
1381 avoid a DeprecationWarning from GTK.
1380
1382
1381 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1383 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1382
1384
1383 * IPython/genutils.py (clock): I modified clock() to return total
1385 * IPython/genutils.py (clock): I modified clock() to return total
1384 time, user+system. This is a more commonly needed metric. I also
1386 time, user+system. This is a more commonly needed metric. I also
1385 introduced the new clocku/clocks to get only user/system time if
1387 introduced the new clocku/clocks to get only user/system time if
1386 one wants those instead.
1388 one wants those instead.
1387
1389
1388 ***WARNING: API CHANGE*** clock() used to return only user time,
1390 ***WARNING: API CHANGE*** clock() used to return only user time,
1389 so if you want exactly the same results as before, use clocku
1391 so if you want exactly the same results as before, use clocku
1390 instead.
1392 instead.
1391
1393
1392 2007-02-22 Ville Vainio <vivainio@gmail.com>
1394 2007-02-22 Ville Vainio <vivainio@gmail.com>
1393
1395
1394 * IPython/Extensions/ipy_p4.py: Extension for improved
1396 * IPython/Extensions/ipy_p4.py: Extension for improved
1395 p4 (perforce version control system) experience.
1397 p4 (perforce version control system) experience.
1396 Adds %p4 magic with p4 command completion and
1398 Adds %p4 magic with p4 command completion and
1397 automatic -G argument (marshall output as python dict)
1399 automatic -G argument (marshall output as python dict)
1398
1400
1399 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1401 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1400
1402
1401 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1403 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1402 stop marks.
1404 stop marks.
1403 (ClearingMixin): a simple mixin to easily make a Demo class clear
1405 (ClearingMixin): a simple mixin to easily make a Demo class clear
1404 the screen in between blocks and have empty marquees. The
1406 the screen in between blocks and have empty marquees. The
1405 ClearDemo and ClearIPDemo classes that use it are included.
1407 ClearDemo and ClearIPDemo classes that use it are included.
1406
1408
1407 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1408
1410
1409 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1411 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1410 protect against exceptions at Python shutdown time. Patch
1412 protect against exceptions at Python shutdown time. Patch
1411 sumbmitted to upstream.
1413 sumbmitted to upstream.
1412
1414
1413 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1415 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1414
1416
1415 * IPython/Extensions/ibrowse.py: If entering the first object level
1417 * IPython/Extensions/ibrowse.py: If entering the first object level
1416 (i.e. the object for which the browser has been started) fails,
1418 (i.e. the object for which the browser has been started) fails,
1417 now the error is raised directly (aborting the browser) instead of
1419 now the error is raised directly (aborting the browser) instead of
1418 running into an empty levels list later.
1420 running into an empty levels list later.
1419
1421
1420 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1422 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1421
1423
1422 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1424 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1423 for the noitem object.
1425 for the noitem object.
1424
1426
1425 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1427 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1428
1427 * IPython/completer.py (Completer.attr_matches): Fix small
1429 * IPython/completer.py (Completer.attr_matches): Fix small
1428 tab-completion bug with Enthought Traits objects with units.
1430 tab-completion bug with Enthought Traits objects with units.
1429 Thanks to a bug report by Tom Denniston
1431 Thanks to a bug report by Tom Denniston
1430 <tom.denniston-AT-alum.dartmouth.org>.
1432 <tom.denniston-AT-alum.dartmouth.org>.
1431
1433
1432 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1434 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1433
1435
1434 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1436 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1435 bug where only .ipy or .py would be completed. Once the first
1437 bug where only .ipy or .py would be completed. Once the first
1436 argument to %run has been given, all completions are valid because
1438 argument to %run has been given, all completions are valid because
1437 they are the arguments to the script, which may well be non-python
1439 they are the arguments to the script, which may well be non-python
1438 filenames.
1440 filenames.
1439
1441
1440 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1442 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1441 to irunner to allow it to correctly support real doctesting of
1443 to irunner to allow it to correctly support real doctesting of
1442 out-of-process ipython code.
1444 out-of-process ipython code.
1443
1445
1444 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1446 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1445 title an option (-noterm_title) because it completely breaks
1447 title an option (-noterm_title) because it completely breaks
1446 doctesting.
1448 doctesting.
1447
1449
1448 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1450 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1449
1451
1450 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1452 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1451
1453
1452 * IPython/irunner.py (main): fix small bug where extensions were
1454 * IPython/irunner.py (main): fix small bug where extensions were
1453 not being correctly recognized.
1455 not being correctly recognized.
1454
1456
1455 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1457 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1456
1458
1457 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1459 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1458 a string containing a single line yields the string itself as the
1460 a string containing a single line yields the string itself as the
1459 only item.
1461 only item.
1460
1462
1461 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1463 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1462 object if it's the same as the one on the last level (This avoids
1464 object if it's the same as the one on the last level (This avoids
1463 infinite recursion for one line strings).
1465 infinite recursion for one line strings).
1464
1466
1465 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1467 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1466
1468
1467 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1469 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1468 all output streams before printing tracebacks. This ensures that
1470 all output streams before printing tracebacks. This ensures that
1469 user output doesn't end up interleaved with traceback output.
1471 user output doesn't end up interleaved with traceback output.
1470
1472
1471 2007-01-10 Ville Vainio <vivainio@gmail.com>
1473 2007-01-10 Ville Vainio <vivainio@gmail.com>
1472
1474
1473 * Extensions/envpersist.py: Turbocharged %env that remembers
1475 * Extensions/envpersist.py: Turbocharged %env that remembers
1474 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1476 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1475 "%env VISUAL=jed".
1477 "%env VISUAL=jed".
1476
1478
1477 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1479 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1478
1480
1479 * IPython/iplib.py (showtraceback): ensure that we correctly call
1481 * IPython/iplib.py (showtraceback): ensure that we correctly call
1480 custom handlers in all cases (some with pdb were slipping through,
1482 custom handlers in all cases (some with pdb were slipping through,
1481 but I'm not exactly sure why).
1483 but I'm not exactly sure why).
1482
1484
1483 * IPython/Debugger.py (Tracer.__init__): added new class to
1485 * IPython/Debugger.py (Tracer.__init__): added new class to
1484 support set_trace-like usage of IPython's enhanced debugger.
1486 support set_trace-like usage of IPython's enhanced debugger.
1485
1487
1486 2006-12-24 Ville Vainio <vivainio@gmail.com>
1488 2006-12-24 Ville Vainio <vivainio@gmail.com>
1487
1489
1488 * ipmaker.py: more informative message when ipy_user_conf
1490 * ipmaker.py: more informative message when ipy_user_conf
1489 import fails (suggest running %upgrade).
1491 import fails (suggest running %upgrade).
1490
1492
1491 * tools/run_ipy_in_profiler.py: Utility to see where
1493 * tools/run_ipy_in_profiler.py: Utility to see where
1492 the time during IPython startup is spent.
1494 the time during IPython startup is spent.
1493
1495
1494 2006-12-20 Ville Vainio <vivainio@gmail.com>
1496 2006-12-20 Ville Vainio <vivainio@gmail.com>
1495
1497
1496 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1498 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1497
1499
1498 * ipapi.py: Add new ipapi method, expand_alias.
1500 * ipapi.py: Add new ipapi method, expand_alias.
1499
1501
1500 * Release.py: Bump up version to 0.7.4.svn
1502 * Release.py: Bump up version to 0.7.4.svn
1501
1503
1502 2006-12-17 Ville Vainio <vivainio@gmail.com>
1504 2006-12-17 Ville Vainio <vivainio@gmail.com>
1503
1505
1504 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1506 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1505 to work properly on posix too
1507 to work properly on posix too
1506
1508
1507 * Release.py: Update revnum (version is still just 0.7.3).
1509 * Release.py: Update revnum (version is still just 0.7.3).
1508
1510
1509 2006-12-15 Ville Vainio <vivainio@gmail.com>
1511 2006-12-15 Ville Vainio <vivainio@gmail.com>
1510
1512
1511 * scripts/ipython_win_post_install: create ipython.py in
1513 * scripts/ipython_win_post_install: create ipython.py in
1512 prefix + "/scripts".
1514 prefix + "/scripts".
1513
1515
1514 * Release.py: Update version to 0.7.3.
1516 * Release.py: Update version to 0.7.3.
1515
1517
1516 2006-12-14 Ville Vainio <vivainio@gmail.com>
1518 2006-12-14 Ville Vainio <vivainio@gmail.com>
1517
1519
1518 * scripts/ipython_win_post_install: Overwrite old shortcuts
1520 * scripts/ipython_win_post_install: Overwrite old shortcuts
1519 if they already exist
1521 if they already exist
1520
1522
1521 * Release.py: release 0.7.3rc2
1523 * Release.py: release 0.7.3rc2
1522
1524
1523 2006-12-13 Ville Vainio <vivainio@gmail.com>
1525 2006-12-13 Ville Vainio <vivainio@gmail.com>
1524
1526
1525 * Branch and update Release.py for 0.7.3rc1
1527 * Branch and update Release.py for 0.7.3rc1
1526
1528
1527 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1529 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1528
1530
1529 * IPython/Shell.py (IPShellWX): update for current WX naming
1531 * IPython/Shell.py (IPShellWX): update for current WX naming
1530 conventions, to avoid a deprecation warning with current WX
1532 conventions, to avoid a deprecation warning with current WX
1531 versions. Thanks to a report by Danny Shevitz.
1533 versions. Thanks to a report by Danny Shevitz.
1532
1534
1533 2006-12-12 Ville Vainio <vivainio@gmail.com>
1535 2006-12-12 Ville Vainio <vivainio@gmail.com>
1534
1536
1535 * ipmaker.py: apply david cournapeau's patch to make
1537 * ipmaker.py: apply david cournapeau's patch to make
1536 import_some work properly even when ipythonrc does
1538 import_some work properly even when ipythonrc does
1537 import_some on empty list (it was an old bug!).
1539 import_some on empty list (it was an old bug!).
1538
1540
1539 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1541 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1540 Add deprecation note to ipythonrc and a url to wiki
1542 Add deprecation note to ipythonrc and a url to wiki
1541 in ipy_user_conf.py
1543 in ipy_user_conf.py
1542
1544
1543
1545
1544 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1546 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1545 as if it was typed on IPython command prompt, i.e.
1547 as if it was typed on IPython command prompt, i.e.
1546 as IPython script.
1548 as IPython script.
1547
1549
1548 * example-magic.py, magic_grepl.py: remove outdated examples
1550 * example-magic.py, magic_grepl.py: remove outdated examples
1549
1551
1550 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1552 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1551
1553
1552 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1554 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1553 is called before any exception has occurred.
1555 is called before any exception has occurred.
1554
1556
1555 2006-12-08 Ville Vainio <vivainio@gmail.com>
1557 2006-12-08 Ville Vainio <vivainio@gmail.com>
1556
1558
1557 * Extensions/ipy_stock_completers.py: fix cd completer
1559 * Extensions/ipy_stock_completers.py: fix cd completer
1558 to translate /'s to \'s again.
1560 to translate /'s to \'s again.
1559
1561
1560 * completer.py: prevent traceback on file completions w/
1562 * completer.py: prevent traceback on file completions w/
1561 backslash.
1563 backslash.
1562
1564
1563 * Release.py: Update release number to 0.7.3b3 for release
1565 * Release.py: Update release number to 0.7.3b3 for release
1564
1566
1565 2006-12-07 Ville Vainio <vivainio@gmail.com>
1567 2006-12-07 Ville Vainio <vivainio@gmail.com>
1566
1568
1567 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1569 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1568 while executing external code. Provides more shell-like behaviour
1570 while executing external code. Provides more shell-like behaviour
1569 and overall better response to ctrl + C / ctrl + break.
1571 and overall better response to ctrl + C / ctrl + break.
1570
1572
1571 * tools/make_tarball.py: new script to create tarball straight from svn
1573 * tools/make_tarball.py: new script to create tarball straight from svn
1572 (setup.py sdist doesn't work on win32).
1574 (setup.py sdist doesn't work on win32).
1573
1575
1574 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1576 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1575 on dirnames with spaces and use the default completer instead.
1577 on dirnames with spaces and use the default completer instead.
1576
1578
1577 * Revision.py: Change version to 0.7.3b2 for release.
1579 * Revision.py: Change version to 0.7.3b2 for release.
1578
1580
1579 2006-12-05 Ville Vainio <vivainio@gmail.com>
1581 2006-12-05 Ville Vainio <vivainio@gmail.com>
1580
1582
1581 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1583 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1582 pydb patch 4 (rm debug printing, py 2.5 checking)
1584 pydb patch 4 (rm debug printing, py 2.5 checking)
1583
1585
1584 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1586 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1585 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1587 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1586 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1588 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1587 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1589 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1588 object the cursor was on before the refresh. The command "markrange" is
1590 object the cursor was on before the refresh. The command "markrange" is
1589 mapped to "%" now.
1591 mapped to "%" now.
1590 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1592 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1591
1593
1592 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1594 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1593
1595
1594 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1596 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1595 interactive debugger on the last traceback, without having to call
1597 interactive debugger on the last traceback, without having to call
1596 %pdb and rerun your code. Made minor changes in various modules,
1598 %pdb and rerun your code. Made minor changes in various modules,
1597 should automatically recognize pydb if available.
1599 should automatically recognize pydb if available.
1598
1600
1599 2006-11-28 Ville Vainio <vivainio@gmail.com>
1601 2006-11-28 Ville Vainio <vivainio@gmail.com>
1600
1602
1601 * completer.py: If the text start with !, show file completions
1603 * completer.py: If the text start with !, show file completions
1602 properly. This helps when trying to complete command name
1604 properly. This helps when trying to complete command name
1603 for shell escapes.
1605 for shell escapes.
1604
1606
1605 2006-11-27 Ville Vainio <vivainio@gmail.com>
1607 2006-11-27 Ville Vainio <vivainio@gmail.com>
1606
1608
1607 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1609 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1608 der Walt. Clean up svn and hg completers by using a common
1610 der Walt. Clean up svn and hg completers by using a common
1609 vcs_completer.
1611 vcs_completer.
1610
1612
1611 2006-11-26 Ville Vainio <vivainio@gmail.com>
1613 2006-11-26 Ville Vainio <vivainio@gmail.com>
1612
1614
1613 * Remove ipconfig and %config; you should use _ip.options structure
1615 * Remove ipconfig and %config; you should use _ip.options structure
1614 directly instead!
1616 directly instead!
1615
1617
1616 * genutils.py: add wrap_deprecated function for deprecating callables
1618 * genutils.py: add wrap_deprecated function for deprecating callables
1617
1619
1618 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1620 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1619 _ip.system instead. ipalias is redundant.
1621 _ip.system instead. ipalias is redundant.
1620
1622
1621 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1623 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1622 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1624 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1623 explicit.
1625 explicit.
1624
1626
1625 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1627 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1626 completer. Try it by entering 'hg ' and pressing tab.
1628 completer. Try it by entering 'hg ' and pressing tab.
1627
1629
1628 * macro.py: Give Macro a useful __repr__ method
1630 * macro.py: Give Macro a useful __repr__ method
1629
1631
1630 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1632 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1631
1633
1632 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1634 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1633 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1635 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1634 we don't get a duplicate ipipe module, where registration of the xrepr
1636 we don't get a duplicate ipipe module, where registration of the xrepr
1635 implementation for Text is useless.
1637 implementation for Text is useless.
1636
1638
1637 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1639 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1638
1640
1639 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1641 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1640
1642
1641 2006-11-24 Ville Vainio <vivainio@gmail.com>
1643 2006-11-24 Ville Vainio <vivainio@gmail.com>
1642
1644
1643 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1645 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1644 try to use "cProfile" instead of the slower pure python
1646 try to use "cProfile" instead of the slower pure python
1645 "profile"
1647 "profile"
1646
1648
1647 2006-11-23 Ville Vainio <vivainio@gmail.com>
1649 2006-11-23 Ville Vainio <vivainio@gmail.com>
1648
1650
1649 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1651 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1650 Qt+IPython+Designer link in documentation.
1652 Qt+IPython+Designer link in documentation.
1651
1653
1652 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1654 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1653 correct Pdb object to %pydb.
1655 correct Pdb object to %pydb.
1654
1656
1655
1657
1656 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1658 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1657 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1659 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1658 generic xrepr(), otherwise the list implementation would kick in.
1660 generic xrepr(), otherwise the list implementation would kick in.
1659
1661
1660 2006-11-21 Ville Vainio <vivainio@gmail.com>
1662 2006-11-21 Ville Vainio <vivainio@gmail.com>
1661
1663
1662 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1664 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1663 with one from UserConfig.
1665 with one from UserConfig.
1664
1666
1665 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1667 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1666 it was missing which broke the sh profile.
1668 it was missing which broke the sh profile.
1667
1669
1668 * completer.py: file completer now uses explicit '/' instead
1670 * completer.py: file completer now uses explicit '/' instead
1669 of os.path.join, expansion of 'foo' was broken on win32
1671 of os.path.join, expansion of 'foo' was broken on win32
1670 if there was one directory with name 'foobar'.
1672 if there was one directory with name 'foobar'.
1671
1673
1672 * A bunch of patches from Kirill Smelkov:
1674 * A bunch of patches from Kirill Smelkov:
1673
1675
1674 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1676 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1675
1677
1676 * [patch 7/9] Implement %page -r (page in raw mode) -
1678 * [patch 7/9] Implement %page -r (page in raw mode) -
1677
1679
1678 * [patch 5/9] ScientificPython webpage has moved
1680 * [patch 5/9] ScientificPython webpage has moved
1679
1681
1680 * [patch 4/9] The manual mentions %ds, should be %dhist
1682 * [patch 4/9] The manual mentions %ds, should be %dhist
1681
1683
1682 * [patch 3/9] Kill old bits from %prun doc.
1684 * [patch 3/9] Kill old bits from %prun doc.
1683
1685
1684 * [patch 1/9] Fix typos here and there.
1686 * [patch 1/9] Fix typos here and there.
1685
1687
1686 2006-11-08 Ville Vainio <vivainio@gmail.com>
1688 2006-11-08 Ville Vainio <vivainio@gmail.com>
1687
1689
1688 * completer.py (attr_matches): catch all exceptions raised
1690 * completer.py (attr_matches): catch all exceptions raised
1689 by eval of expr with dots.
1691 by eval of expr with dots.
1690
1692
1691 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1692
1694
1693 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1695 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1694 input if it starts with whitespace. This allows you to paste
1696 input if it starts with whitespace. This allows you to paste
1695 indented input from any editor without manually having to type in
1697 indented input from any editor without manually having to type in
1696 the 'if 1:', which is convenient when working interactively.
1698 the 'if 1:', which is convenient when working interactively.
1697 Slightly modifed version of a patch by Bo Peng
1699 Slightly modifed version of a patch by Bo Peng
1698 <bpeng-AT-rice.edu>.
1700 <bpeng-AT-rice.edu>.
1699
1701
1700 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1702 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1701
1703
1702 * IPython/irunner.py (main): modified irunner so it automatically
1704 * IPython/irunner.py (main): modified irunner so it automatically
1703 recognizes the right runner to use based on the extension (.py for
1705 recognizes the right runner to use based on the extension (.py for
1704 python, .ipy for ipython and .sage for sage).
1706 python, .ipy for ipython and .sage for sage).
1705
1707
1706 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1708 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1707 visible in ipapi as ip.config(), to programatically control the
1709 visible in ipapi as ip.config(), to programatically control the
1708 internal rc object. There's an accompanying %config magic for
1710 internal rc object. There's an accompanying %config magic for
1709 interactive use, which has been enhanced to match the
1711 interactive use, which has been enhanced to match the
1710 funtionality in ipconfig.
1712 funtionality in ipconfig.
1711
1713
1712 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1714 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1713 so it's not just a toggle, it now takes an argument. Add support
1715 so it's not just a toggle, it now takes an argument. Add support
1714 for a customizable header when making system calls, as the new
1716 for a customizable header when making system calls, as the new
1715 system_header variable in the ipythonrc file.
1717 system_header variable in the ipythonrc file.
1716
1718
1717 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1719 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1718
1720
1719 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1721 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1720 generic functions (using Philip J. Eby's simplegeneric package).
1722 generic functions (using Philip J. Eby's simplegeneric package).
1721 This makes it possible to customize the display of third-party classes
1723 This makes it possible to customize the display of third-party classes
1722 without having to monkeypatch them. xiter() no longer supports a mode
1724 without having to monkeypatch them. xiter() no longer supports a mode
1723 argument and the XMode class has been removed. The same functionality can
1725 argument and the XMode class has been removed. The same functionality can
1724 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1726 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1725 One consequence of the switch to generic functions is that xrepr() and
1727 One consequence of the switch to generic functions is that xrepr() and
1726 xattrs() implementation must define the default value for the mode
1728 xattrs() implementation must define the default value for the mode
1727 argument themselves and xattrs() implementations must return real
1729 argument themselves and xattrs() implementations must return real
1728 descriptors.
1730 descriptors.
1729
1731
1730 * IPython/external: This new subpackage will contain all third-party
1732 * IPython/external: This new subpackage will contain all third-party
1731 packages that are bundled with IPython. (The first one is simplegeneric).
1733 packages that are bundled with IPython. (The first one is simplegeneric).
1732
1734
1733 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1735 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1734 directory which as been dropped in r1703.
1736 directory which as been dropped in r1703.
1735
1737
1736 * IPython/Extensions/ipipe.py (iless): Fixed.
1738 * IPython/Extensions/ipipe.py (iless): Fixed.
1737
1739
1738 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1740 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1739
1741
1740 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1742 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1741
1743
1742 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1744 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1743 handling in variable expansion so that shells and magics recognize
1745 handling in variable expansion so that shells and magics recognize
1744 function local scopes correctly. Bug reported by Brian.
1746 function local scopes correctly. Bug reported by Brian.
1745
1747
1746 * scripts/ipython: remove the very first entry in sys.path which
1748 * scripts/ipython: remove the very first entry in sys.path which
1747 Python auto-inserts for scripts, so that sys.path under IPython is
1749 Python auto-inserts for scripts, so that sys.path under IPython is
1748 as similar as possible to that under plain Python.
1750 as similar as possible to that under plain Python.
1749
1751
1750 * IPython/completer.py (IPCompleter.file_matches): Fix
1752 * IPython/completer.py (IPCompleter.file_matches): Fix
1751 tab-completion so that quotes are not closed unless the completion
1753 tab-completion so that quotes are not closed unless the completion
1752 is unambiguous. After a request by Stefan. Minor cleanups in
1754 is unambiguous. After a request by Stefan. Minor cleanups in
1753 ipy_stock_completers.
1755 ipy_stock_completers.
1754
1756
1755 2006-11-02 Ville Vainio <vivainio@gmail.com>
1757 2006-11-02 Ville Vainio <vivainio@gmail.com>
1756
1758
1757 * ipy_stock_completers.py: Add %run and %cd completers.
1759 * ipy_stock_completers.py: Add %run and %cd completers.
1758
1760
1759 * completer.py: Try running custom completer for both
1761 * completer.py: Try running custom completer for both
1760 "foo" and "%foo" if the command is just "foo". Ignore case
1762 "foo" and "%foo" if the command is just "foo". Ignore case
1761 when filtering possible completions.
1763 when filtering possible completions.
1762
1764
1763 * UserConfig/ipy_user_conf.py: install stock completers as default
1765 * UserConfig/ipy_user_conf.py: install stock completers as default
1764
1766
1765 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1767 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1766 simplified readline history save / restore through a wrapper
1768 simplified readline history save / restore through a wrapper
1767 function
1769 function
1768
1770
1769
1771
1770 2006-10-31 Ville Vainio <vivainio@gmail.com>
1772 2006-10-31 Ville Vainio <vivainio@gmail.com>
1771
1773
1772 * strdispatch.py, completer.py, ipy_stock_completers.py:
1774 * strdispatch.py, completer.py, ipy_stock_completers.py:
1773 Allow str_key ("command") in completer hooks. Implement
1775 Allow str_key ("command") in completer hooks. Implement
1774 trivial completer for 'import' (stdlib modules only). Rename
1776 trivial completer for 'import' (stdlib modules only). Rename
1775 ipy_linux_package_managers.py to ipy_stock_completers.py.
1777 ipy_linux_package_managers.py to ipy_stock_completers.py.
1776 SVN completer.
1778 SVN completer.
1777
1779
1778 * Extensions/ledit.py: %magic line editor for easily and
1780 * Extensions/ledit.py: %magic line editor for easily and
1779 incrementally manipulating lists of strings. The magic command
1781 incrementally manipulating lists of strings. The magic command
1780 name is %led.
1782 name is %led.
1781
1783
1782 2006-10-30 Ville Vainio <vivainio@gmail.com>
1784 2006-10-30 Ville Vainio <vivainio@gmail.com>
1783
1785
1784 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1786 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1785 Bernsteins's patches for pydb integration.
1787 Bernsteins's patches for pydb integration.
1786 http://bashdb.sourceforge.net/pydb/
1788 http://bashdb.sourceforge.net/pydb/
1787
1789
1788 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1790 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1789 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1791 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1790 custom completer hook to allow the users to implement their own
1792 custom completer hook to allow the users to implement their own
1791 completers. See ipy_linux_package_managers.py for example. The
1793 completers. See ipy_linux_package_managers.py for example. The
1792 hook name is 'complete_command'.
1794 hook name is 'complete_command'.
1793
1795
1794 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1796 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1795
1797
1796 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1798 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1797 Numeric leftovers.
1799 Numeric leftovers.
1798
1800
1799 * ipython.el (py-execute-region): apply Stefan's patch to fix
1801 * ipython.el (py-execute-region): apply Stefan's patch to fix
1800 garbled results if the python shell hasn't been previously started.
1802 garbled results if the python shell hasn't been previously started.
1801
1803
1802 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1804 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1803 pretty generic function and useful for other things.
1805 pretty generic function and useful for other things.
1804
1806
1805 * IPython/OInspect.py (getsource): Add customizable source
1807 * IPython/OInspect.py (getsource): Add customizable source
1806 extractor. After a request/patch form W. Stein (SAGE).
1808 extractor. After a request/patch form W. Stein (SAGE).
1807
1809
1808 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1810 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1809 window size to a more reasonable value from what pexpect does,
1811 window size to a more reasonable value from what pexpect does,
1810 since their choice causes wrapping bugs with long input lines.
1812 since their choice causes wrapping bugs with long input lines.
1811
1813
1812 2006-10-28 Ville Vainio <vivainio@gmail.com>
1814 2006-10-28 Ville Vainio <vivainio@gmail.com>
1813
1815
1814 * Magic.py (%run): Save and restore the readline history from
1816 * Magic.py (%run): Save and restore the readline history from
1815 file around %run commands to prevent side effects from
1817 file around %run commands to prevent side effects from
1816 %runned programs that might use readline (e.g. pydb).
1818 %runned programs that might use readline (e.g. pydb).
1817
1819
1818 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1820 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1819 invoking the pydb enhanced debugger.
1821 invoking the pydb enhanced debugger.
1820
1822
1821 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1823 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1822
1824
1823 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1825 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1824 call the base class method and propagate the return value to
1826 call the base class method and propagate the return value to
1825 ifile. This is now done by path itself.
1827 ifile. This is now done by path itself.
1826
1828
1827 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1829 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1828
1830
1829 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1831 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1830 api: set_crash_handler(), to expose the ability to change the
1832 api: set_crash_handler(), to expose the ability to change the
1831 internal crash handler.
1833 internal crash handler.
1832
1834
1833 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1835 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1834 the various parameters of the crash handler so that apps using
1836 the various parameters of the crash handler so that apps using
1835 IPython as their engine can customize crash handling. Ipmlemented
1837 IPython as their engine can customize crash handling. Ipmlemented
1836 at the request of SAGE.
1838 at the request of SAGE.
1837
1839
1838 2006-10-14 Ville Vainio <vivainio@gmail.com>
1840 2006-10-14 Ville Vainio <vivainio@gmail.com>
1839
1841
1840 * Magic.py, ipython.el: applied first "safe" part of Rocky
1842 * Magic.py, ipython.el: applied first "safe" part of Rocky
1841 Bernstein's patch set for pydb integration.
1843 Bernstein's patch set for pydb integration.
1842
1844
1843 * Magic.py (%unalias, %alias): %store'd aliases can now be
1845 * Magic.py (%unalias, %alias): %store'd aliases can now be
1844 removed with '%unalias'. %alias w/o args now shows most
1846 removed with '%unalias'. %alias w/o args now shows most
1845 interesting (stored / manually defined) aliases last
1847 interesting (stored / manually defined) aliases last
1846 where they catch the eye w/o scrolling.
1848 where they catch the eye w/o scrolling.
1847
1849
1848 * Magic.py (%rehashx), ext_rehashdir.py: files with
1850 * Magic.py (%rehashx), ext_rehashdir.py: files with
1849 'py' extension are always considered executable, even
1851 'py' extension are always considered executable, even
1850 when not in PATHEXT environment variable.
1852 when not in PATHEXT environment variable.
1851
1853
1852 2006-10-12 Ville Vainio <vivainio@gmail.com>
1854 2006-10-12 Ville Vainio <vivainio@gmail.com>
1853
1855
1854 * jobctrl.py: Add new "jobctrl" extension for spawning background
1856 * jobctrl.py: Add new "jobctrl" extension for spawning background
1855 processes with "&find /". 'import jobctrl' to try it out. Requires
1857 processes with "&find /". 'import jobctrl' to try it out. Requires
1856 'subprocess' module, standard in python 2.4+.
1858 'subprocess' module, standard in python 2.4+.
1857
1859
1858 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1860 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1859 so if foo -> bar and bar -> baz, then foo -> baz.
1861 so if foo -> bar and bar -> baz, then foo -> baz.
1860
1862
1861 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1863 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1862
1864
1863 * IPython/Magic.py (Magic.parse_options): add a new posix option
1865 * IPython/Magic.py (Magic.parse_options): add a new posix option
1864 to allow parsing of input args in magics that doesn't strip quotes
1866 to allow parsing of input args in magics that doesn't strip quotes
1865 (if posix=False). This also closes %timeit bug reported by
1867 (if posix=False). This also closes %timeit bug reported by
1866 Stefan.
1868 Stefan.
1867
1869
1868 2006-10-03 Ville Vainio <vivainio@gmail.com>
1870 2006-10-03 Ville Vainio <vivainio@gmail.com>
1869
1871
1870 * iplib.py (raw_input, interact): Return ValueError catching for
1872 * iplib.py (raw_input, interact): Return ValueError catching for
1871 raw_input. Fixes infinite loop for sys.stdin.close() or
1873 raw_input. Fixes infinite loop for sys.stdin.close() or
1872 sys.stdout.close().
1874 sys.stdout.close().
1873
1875
1874 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1876 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1875
1877
1876 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1878 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1877 to help in handling doctests. irunner is now pretty useful for
1879 to help in handling doctests. irunner is now pretty useful for
1878 running standalone scripts and simulate a full interactive session
1880 running standalone scripts and simulate a full interactive session
1879 in a format that can be then pasted as a doctest.
1881 in a format that can be then pasted as a doctest.
1880
1882
1881 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1883 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1882 on top of the default (useless) ones. This also fixes the nasty
1884 on top of the default (useless) ones. This also fixes the nasty
1883 way in which 2.5's Quitter() exits (reverted [1785]).
1885 way in which 2.5's Quitter() exits (reverted [1785]).
1884
1886
1885 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1887 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1886 2.5.
1888 2.5.
1887
1889
1888 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1890 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1889 color scheme is updated as well when color scheme is changed
1891 color scheme is updated as well when color scheme is changed
1890 interactively.
1892 interactively.
1891
1893
1892 2006-09-27 Ville Vainio <vivainio@gmail.com>
1894 2006-09-27 Ville Vainio <vivainio@gmail.com>
1893
1895
1894 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1896 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1895 infinite loop and just exit. It's a hack, but will do for a while.
1897 infinite loop and just exit. It's a hack, but will do for a while.
1896
1898
1897 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1899 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1898
1900
1899 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1901 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1900 the constructor, this makes it possible to get a list of only directories
1902 the constructor, this makes it possible to get a list of only directories
1901 or only files.
1903 or only files.
1902
1904
1903 2006-08-12 Ville Vainio <vivainio@gmail.com>
1905 2006-08-12 Ville Vainio <vivainio@gmail.com>
1904
1906
1905 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1907 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1906 they broke unittest
1908 they broke unittest
1907
1909
1908 2006-08-11 Ville Vainio <vivainio@gmail.com>
1910 2006-08-11 Ville Vainio <vivainio@gmail.com>
1909
1911
1910 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1912 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1911 by resolving issue properly, i.e. by inheriting FakeModule
1913 by resolving issue properly, i.e. by inheriting FakeModule
1912 from types.ModuleType. Pickling ipython interactive data
1914 from types.ModuleType. Pickling ipython interactive data
1913 should still work as usual (testing appreciated).
1915 should still work as usual (testing appreciated).
1914
1916
1915 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1917 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1916
1918
1917 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1919 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1918 running under python 2.3 with code from 2.4 to fix a bug with
1920 running under python 2.3 with code from 2.4 to fix a bug with
1919 help(). Reported by the Debian maintainers, Norbert Tretkowski
1921 help(). Reported by the Debian maintainers, Norbert Tretkowski
1920 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1922 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1921 <afayolle-AT-debian.org>.
1923 <afayolle-AT-debian.org>.
1922
1924
1923 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1925 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1924
1926
1925 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1927 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1926 (which was displaying "quit" twice).
1928 (which was displaying "quit" twice).
1927
1929
1928 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1930 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1929
1931
1930 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1932 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1931 the mode argument).
1933 the mode argument).
1932
1934
1933 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1935 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1934
1936
1935 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1937 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1936 not running under IPython.
1938 not running under IPython.
1937
1939
1938 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1940 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1939 and make it iterable (iterating over the attribute itself). Add two new
1941 and make it iterable (iterating over the attribute itself). Add two new
1940 magic strings for __xattrs__(): If the string starts with "-", the attribute
1942 magic strings for __xattrs__(): If the string starts with "-", the attribute
1941 will not be displayed in ibrowse's detail view (but it can still be
1943 will not be displayed in ibrowse's detail view (but it can still be
1942 iterated over). This makes it possible to add attributes that are large
1944 iterated over). This makes it possible to add attributes that are large
1943 lists or generator methods to the detail view. Replace magic attribute names
1945 lists or generator methods to the detail view. Replace magic attribute names
1944 and _attrname() and _getattr() with "descriptors": For each type of magic
1946 and _attrname() and _getattr() with "descriptors": For each type of magic
1945 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1947 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1946 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1948 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1947 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1949 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1948 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1950 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1949 are still supported.
1951 are still supported.
1950
1952
1951 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1953 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1952 fails in ibrowse.fetch(), the exception object is added as the last item
1954 fails in ibrowse.fetch(), the exception object is added as the last item
1953 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1955 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1954 a generator throws an exception midway through execution.
1956 a generator throws an exception midway through execution.
1955
1957
1956 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1958 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1957 encoding into methods.
1959 encoding into methods.
1958
1960
1959 2006-07-26 Ville Vainio <vivainio@gmail.com>
1961 2006-07-26 Ville Vainio <vivainio@gmail.com>
1960
1962
1961 * iplib.py: history now stores multiline input as single
1963 * iplib.py: history now stores multiline input as single
1962 history entries. Patch by Jorgen Cederlof.
1964 history entries. Patch by Jorgen Cederlof.
1963
1965
1964 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1966 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1965
1967
1966 * IPython/Extensions/ibrowse.py: Make cursor visible over
1968 * IPython/Extensions/ibrowse.py: Make cursor visible over
1967 non existing attributes.
1969 non existing attributes.
1968
1970
1969 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1971 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1970
1972
1971 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1973 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1972 error output of the running command doesn't mess up the screen.
1974 error output of the running command doesn't mess up the screen.
1973
1975
1974 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1976 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1975
1977
1976 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1978 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1977 argument. This sorts the items themselves.
1979 argument. This sorts the items themselves.
1978
1980
1979 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1981 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1980
1982
1981 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1983 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1982 Compile expression strings into code objects. This should speed
1984 Compile expression strings into code objects. This should speed
1983 up ifilter and friends somewhat.
1985 up ifilter and friends somewhat.
1984
1986
1985 2006-07-08 Ville Vainio <vivainio@gmail.com>
1987 2006-07-08 Ville Vainio <vivainio@gmail.com>
1986
1988
1987 * Magic.py: %cpaste now strips > from the beginning of lines
1989 * Magic.py: %cpaste now strips > from the beginning of lines
1988 to ease pasting quoted code from emails. Contributed by
1990 to ease pasting quoted code from emails. Contributed by
1989 Stefan van der Walt.
1991 Stefan van der Walt.
1990
1992
1991 2006-06-29 Ville Vainio <vivainio@gmail.com>
1993 2006-06-29 Ville Vainio <vivainio@gmail.com>
1992
1994
1993 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1995 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1994 mode, patch contributed by Darren Dale. NEEDS TESTING!
1996 mode, patch contributed by Darren Dale. NEEDS TESTING!
1995
1997
1996 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1998 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1997
1999
1998 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2000 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1999 a blue background. Fix fetching new display rows when the browser
2001 a blue background. Fix fetching new display rows when the browser
2000 scrolls more than a screenful (e.g. by using the goto command).
2002 scrolls more than a screenful (e.g. by using the goto command).
2001
2003
2002 2006-06-27 Ville Vainio <vivainio@gmail.com>
2004 2006-06-27 Ville Vainio <vivainio@gmail.com>
2003
2005
2004 * Magic.py (_inspect, _ofind) Apply David Huard's
2006 * Magic.py (_inspect, _ofind) Apply David Huard's
2005 patch for displaying the correct docstring for 'property'
2007 patch for displaying the correct docstring for 'property'
2006 attributes.
2008 attributes.
2007
2009
2008 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2010 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2009
2011
2010 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2012 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2011 commands into the methods implementing them.
2013 commands into the methods implementing them.
2012
2014
2013 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2015 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2014
2016
2015 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2017 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2016 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2018 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2017 autoindent support was authored by Jin Liu.
2019 autoindent support was authored by Jin Liu.
2018
2020
2019 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2021 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2020
2022
2021 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2023 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2022 for keymaps with a custom class that simplifies handling.
2024 for keymaps with a custom class that simplifies handling.
2023
2025
2024 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2026 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2025
2027
2026 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2028 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2027 resizing. This requires Python 2.5 to work.
2029 resizing. This requires Python 2.5 to work.
2028
2030
2029 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2031 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2030
2032
2031 * IPython/Extensions/ibrowse.py: Add two new commands to
2033 * IPython/Extensions/ibrowse.py: Add two new commands to
2032 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2034 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2033 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2035 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2034 attributes again. Remapped the help command to "?". Display
2036 attributes again. Remapped the help command to "?". Display
2035 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2037 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2036 as keys for the "home" and "end" commands. Add three new commands
2038 as keys for the "home" and "end" commands. Add three new commands
2037 to the input mode for "find" and friends: "delend" (CTRL-K)
2039 to the input mode for "find" and friends: "delend" (CTRL-K)
2038 deletes to the end of line. "incsearchup" searches upwards in the
2040 deletes to the end of line. "incsearchup" searches upwards in the
2039 command history for an input that starts with the text before the cursor.
2041 command history for an input that starts with the text before the cursor.
2040 "incsearchdown" does the same downwards. Removed a bogus mapping of
2042 "incsearchdown" does the same downwards. Removed a bogus mapping of
2041 the x key to "delete".
2043 the x key to "delete".
2042
2044
2043 2006-06-15 Ville Vainio <vivainio@gmail.com>
2045 2006-06-15 Ville Vainio <vivainio@gmail.com>
2044
2046
2045 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2047 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2046 used to create prompts dynamically, instead of the "old" way of
2048 used to create prompts dynamically, instead of the "old" way of
2047 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2049 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2048 way still works (it's invoked by the default hook), of course.
2050 way still works (it's invoked by the default hook), of course.
2049
2051
2050 * Prompts.py: added generate_output_prompt hook for altering output
2052 * Prompts.py: added generate_output_prompt hook for altering output
2051 prompt
2053 prompt
2052
2054
2053 * Release.py: Changed version string to 0.7.3.svn.
2055 * Release.py: Changed version string to 0.7.3.svn.
2054
2056
2055 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2057 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2056
2058
2057 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2059 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2058 the call to fetch() always tries to fetch enough data for at least one
2060 the call to fetch() always tries to fetch enough data for at least one
2059 full screen. This makes it possible to simply call moveto(0,0,True) in
2061 full screen. This makes it possible to simply call moveto(0,0,True) in
2060 the constructor. Fix typos and removed the obsolete goto attribute.
2062 the constructor. Fix typos and removed the obsolete goto attribute.
2061
2063
2062 2006-06-12 Ville Vainio <vivainio@gmail.com>
2064 2006-06-12 Ville Vainio <vivainio@gmail.com>
2063
2065
2064 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2066 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2065 allowing $variable interpolation within multiline statements,
2067 allowing $variable interpolation within multiline statements,
2066 though so far only with "sh" profile for a testing period.
2068 though so far only with "sh" profile for a testing period.
2067 The patch also enables splitting long commands with \ but it
2069 The patch also enables splitting long commands with \ but it
2068 doesn't work properly yet.
2070 doesn't work properly yet.
2069
2071
2070 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2072 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2071
2073
2072 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2074 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2073 input history and the position of the cursor in the input history for
2075 input history and the position of the cursor in the input history for
2074 the find, findbackwards and goto command.
2076 the find, findbackwards and goto command.
2075
2077
2076 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2078 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2077
2079
2078 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2080 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2079 implements the basic functionality of browser commands that require
2081 implements the basic functionality of browser commands that require
2080 input. Reimplement the goto, find and findbackwards commands as
2082 input. Reimplement the goto, find and findbackwards commands as
2081 subclasses of _CommandInput. Add an input history and keymaps to those
2083 subclasses of _CommandInput. Add an input history and keymaps to those
2082 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2084 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2083 execute commands.
2085 execute commands.
2084
2086
2085 2006-06-07 Ville Vainio <vivainio@gmail.com>
2087 2006-06-07 Ville Vainio <vivainio@gmail.com>
2086
2088
2087 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2089 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2088 running the batch files instead of leaving the session open.
2090 running the batch files instead of leaving the session open.
2089
2091
2090 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2092 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2091
2093
2092 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2094 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2093 the original fix was incomplete. Patch submitted by W. Maier.
2095 the original fix was incomplete. Patch submitted by W. Maier.
2094
2096
2095 2006-06-07 Ville Vainio <vivainio@gmail.com>
2097 2006-06-07 Ville Vainio <vivainio@gmail.com>
2096
2098
2097 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2099 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2098 Confirmation prompts can be supressed by 'quiet' option.
2100 Confirmation prompts can be supressed by 'quiet' option.
2099 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2101 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2100
2102
2101 2006-06-06 *** Released version 0.7.2
2103 2006-06-06 *** Released version 0.7.2
2102
2104
2103 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2105 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2104
2106
2105 * IPython/Release.py (version): Made 0.7.2 final for release.
2107 * IPython/Release.py (version): Made 0.7.2 final for release.
2106 Repo tagged and release cut.
2108 Repo tagged and release cut.
2107
2109
2108 2006-06-05 Ville Vainio <vivainio@gmail.com>
2110 2006-06-05 Ville Vainio <vivainio@gmail.com>
2109
2111
2110 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2112 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2111 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2113 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2112
2114
2113 * upgrade_dir.py: try import 'path' module a bit harder
2115 * upgrade_dir.py: try import 'path' module a bit harder
2114 (for %upgrade)
2116 (for %upgrade)
2115
2117
2116 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2118 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2117
2119
2118 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2120 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2119 instead of looping 20 times.
2121 instead of looping 20 times.
2120
2122
2121 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2123 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2122 correctly at initialization time. Bug reported by Krishna Mohan
2124 correctly at initialization time. Bug reported by Krishna Mohan
2123 Gundu <gkmohan-AT-gmail.com> on the user list.
2125 Gundu <gkmohan-AT-gmail.com> on the user list.
2124
2126
2125 * IPython/Release.py (version): Mark 0.7.2 version to start
2127 * IPython/Release.py (version): Mark 0.7.2 version to start
2126 testing for release on 06/06.
2128 testing for release on 06/06.
2127
2129
2128 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2130 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2129
2131
2130 * scripts/irunner: thin script interface so users don't have to
2132 * scripts/irunner: thin script interface so users don't have to
2131 find the module and call it as an executable, since modules rarely
2133 find the module and call it as an executable, since modules rarely
2132 live in people's PATH.
2134 live in people's PATH.
2133
2135
2134 * IPython/irunner.py (InteractiveRunner.__init__): added
2136 * IPython/irunner.py (InteractiveRunner.__init__): added
2135 delaybeforesend attribute to control delays with newer versions of
2137 delaybeforesend attribute to control delays with newer versions of
2136 pexpect. Thanks to detailed help from pexpect's author, Noah
2138 pexpect. Thanks to detailed help from pexpect's author, Noah
2137 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2139 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2138 correctly (it works in NoColor mode).
2140 correctly (it works in NoColor mode).
2139
2141
2140 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2142 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2141 SAGE list, from improper log() calls.
2143 SAGE list, from improper log() calls.
2142
2144
2143 2006-05-31 Ville Vainio <vivainio@gmail.com>
2145 2006-05-31 Ville Vainio <vivainio@gmail.com>
2144
2146
2145 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2147 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2146 with args in parens to work correctly with dirs that have spaces.
2148 with args in parens to work correctly with dirs that have spaces.
2147
2149
2148 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2150 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2149
2151
2150 * IPython/Logger.py (Logger.logstart): add option to log raw input
2152 * IPython/Logger.py (Logger.logstart): add option to log raw input
2151 instead of the processed one. A -r flag was added to the
2153 instead of the processed one. A -r flag was added to the
2152 %logstart magic used for controlling logging.
2154 %logstart magic used for controlling logging.
2153
2155
2154 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2156 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2155
2157
2156 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2158 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2157 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2159 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2158 recognize the option. After a bug report by Will Maier. This
2160 recognize the option. After a bug report by Will Maier. This
2159 closes #64 (will do it after confirmation from W. Maier).
2161 closes #64 (will do it after confirmation from W. Maier).
2160
2162
2161 * IPython/irunner.py: New module to run scripts as if manually
2163 * IPython/irunner.py: New module to run scripts as if manually
2162 typed into an interactive environment, based on pexpect. After a
2164 typed into an interactive environment, based on pexpect. After a
2163 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2165 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2164 ipython-user list. Simple unittests in the tests/ directory.
2166 ipython-user list. Simple unittests in the tests/ directory.
2165
2167
2166 * tools/release: add Will Maier, OpenBSD port maintainer, to
2168 * tools/release: add Will Maier, OpenBSD port maintainer, to
2167 recepients list. We are now officially part of the OpenBSD ports:
2169 recepients list. We are now officially part of the OpenBSD ports:
2168 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2170 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2169 work.
2171 work.
2170
2172
2171 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2173 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2172
2174
2173 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2175 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2174 so that it doesn't break tkinter apps.
2176 so that it doesn't break tkinter apps.
2175
2177
2176 * IPython/iplib.py (_prefilter): fix bug where aliases would
2178 * IPython/iplib.py (_prefilter): fix bug where aliases would
2177 shadow variables when autocall was fully off. Reported by SAGE
2179 shadow variables when autocall was fully off. Reported by SAGE
2178 author William Stein.
2180 author William Stein.
2179
2181
2180 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2182 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2181 at what detail level strings are computed when foo? is requested.
2183 at what detail level strings are computed when foo? is requested.
2182 This allows users to ask for example that the string form of an
2184 This allows users to ask for example that the string form of an
2183 object is only computed when foo?? is called, or even never, by
2185 object is only computed when foo?? is called, or even never, by
2184 setting the object_info_string_level >= 2 in the configuration
2186 setting the object_info_string_level >= 2 in the configuration
2185 file. This new option has been added and documented. After a
2187 file. This new option has been added and documented. After a
2186 request by SAGE to be able to control the printing of very large
2188 request by SAGE to be able to control the printing of very large
2187 objects more easily.
2189 objects more easily.
2188
2190
2189 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2191 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2190
2192
2191 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2193 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2192 from sys.argv, to be 100% consistent with how Python itself works
2194 from sys.argv, to be 100% consistent with how Python itself works
2193 (as seen for example with python -i file.py). After a bug report
2195 (as seen for example with python -i file.py). After a bug report
2194 by Jeffrey Collins.
2196 by Jeffrey Collins.
2195
2197
2196 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2198 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2197 nasty bug which was preventing custom namespaces with -pylab,
2199 nasty bug which was preventing custom namespaces with -pylab,
2198 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2200 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2199 compatibility (long gone from mpl).
2201 compatibility (long gone from mpl).
2200
2202
2201 * IPython/ipapi.py (make_session): name change: create->make. We
2203 * IPython/ipapi.py (make_session): name change: create->make. We
2202 use make in other places (ipmaker,...), it's shorter and easier to
2204 use make in other places (ipmaker,...), it's shorter and easier to
2203 type and say, etc. I'm trying to clean things before 0.7.2 so
2205 type and say, etc. I'm trying to clean things before 0.7.2 so
2204 that I can keep things stable wrt to ipapi in the chainsaw branch.
2206 that I can keep things stable wrt to ipapi in the chainsaw branch.
2205
2207
2206 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2208 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2207 python-mode recognizes our debugger mode. Add support for
2209 python-mode recognizes our debugger mode. Add support for
2208 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2210 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2209 <m.liu.jin-AT-gmail.com> originally written by
2211 <m.liu.jin-AT-gmail.com> originally written by
2210 doxgen-AT-newsmth.net (with minor modifications for xemacs
2212 doxgen-AT-newsmth.net (with minor modifications for xemacs
2211 compatibility)
2213 compatibility)
2212
2214
2213 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2215 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2214 tracebacks when walking the stack so that the stack tracking system
2216 tracebacks when walking the stack so that the stack tracking system
2215 in emacs' python-mode can identify the frames correctly.
2217 in emacs' python-mode can identify the frames correctly.
2216
2218
2217 * IPython/ipmaker.py (make_IPython): make the internal (and
2219 * IPython/ipmaker.py (make_IPython): make the internal (and
2218 default config) autoedit_syntax value false by default. Too many
2220 default config) autoedit_syntax value false by default. Too many
2219 users have complained to me (both on and off-list) about problems
2221 users have complained to me (both on and off-list) about problems
2220 with this option being on by default, so I'm making it default to
2222 with this option being on by default, so I'm making it default to
2221 off. It can still be enabled by anyone via the usual mechanisms.
2223 off. It can still be enabled by anyone via the usual mechanisms.
2222
2224
2223 * IPython/completer.py (Completer.attr_matches): add support for
2225 * IPython/completer.py (Completer.attr_matches): add support for
2224 PyCrust-style _getAttributeNames magic method. Patch contributed
2226 PyCrust-style _getAttributeNames magic method. Patch contributed
2225 by <mscott-AT-goldenspud.com>. Closes #50.
2227 by <mscott-AT-goldenspud.com>. Closes #50.
2226
2228
2227 * IPython/iplib.py (InteractiveShell.__init__): remove the
2229 * IPython/iplib.py (InteractiveShell.__init__): remove the
2228 deletion of exit/quit from __builtin__, which can break
2230 deletion of exit/quit from __builtin__, which can break
2229 third-party tools like the Zope debugging console. The
2231 third-party tools like the Zope debugging console. The
2230 %exit/%quit magics remain. In general, it's probably a good idea
2232 %exit/%quit magics remain. In general, it's probably a good idea
2231 not to delete anything from __builtin__, since we never know what
2233 not to delete anything from __builtin__, since we never know what
2232 that will break. In any case, python now (for 2.5) will support
2234 that will break. In any case, python now (for 2.5) will support
2233 'real' exit/quit, so this issue is moot. Closes #55.
2235 'real' exit/quit, so this issue is moot. Closes #55.
2234
2236
2235 * IPython/genutils.py (with_obj): rename the 'with' function to
2237 * IPython/genutils.py (with_obj): rename the 'with' function to
2236 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2238 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2237 becomes a language keyword. Closes #53.
2239 becomes a language keyword. Closes #53.
2238
2240
2239 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2241 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2240 __file__ attribute to this so it fools more things into thinking
2242 __file__ attribute to this so it fools more things into thinking
2241 it is a real module. Closes #59.
2243 it is a real module. Closes #59.
2242
2244
2243 * IPython/Magic.py (magic_edit): add -n option to open the editor
2245 * IPython/Magic.py (magic_edit): add -n option to open the editor
2244 at a specific line number. After a patch by Stefan van der Walt.
2246 at a specific line number. After a patch by Stefan van der Walt.
2245
2247
2246 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2248 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2247
2249
2248 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2250 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2249 reason the file could not be opened. After automatic crash
2251 reason the file could not be opened. After automatic crash
2250 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2252 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2251 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2253 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2252 (_should_recompile): Don't fire editor if using %bg, since there
2254 (_should_recompile): Don't fire editor if using %bg, since there
2253 is no file in the first place. From the same report as above.
2255 is no file in the first place. From the same report as above.
2254 (raw_input): protect against faulty third-party prefilters. After
2256 (raw_input): protect against faulty third-party prefilters. After
2255 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2257 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2256 while running under SAGE.
2258 while running under SAGE.
2257
2259
2258 2006-05-23 Ville Vainio <vivainio@gmail.com>
2260 2006-05-23 Ville Vainio <vivainio@gmail.com>
2259
2261
2260 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2262 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2261 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2263 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2262 now returns None (again), unless dummy is specifically allowed by
2264 now returns None (again), unless dummy is specifically allowed by
2263 ipapi.get(allow_dummy=True).
2265 ipapi.get(allow_dummy=True).
2264
2266
2265 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2267 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2266
2268
2267 * IPython: remove all 2.2-compatibility objects and hacks from
2269 * IPython: remove all 2.2-compatibility objects and hacks from
2268 everywhere, since we only support 2.3 at this point. Docs
2270 everywhere, since we only support 2.3 at this point. Docs
2269 updated.
2271 updated.
2270
2272
2271 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2273 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2272 Anything requiring extra validation can be turned into a Python
2274 Anything requiring extra validation can be turned into a Python
2273 property in the future. I used a property for the db one b/c
2275 property in the future. I used a property for the db one b/c
2274 there was a nasty circularity problem with the initialization
2276 there was a nasty circularity problem with the initialization
2275 order, which right now I don't have time to clean up.
2277 order, which right now I don't have time to clean up.
2276
2278
2277 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2279 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2278 another locking bug reported by Jorgen. I'm not 100% sure though,
2280 another locking bug reported by Jorgen. I'm not 100% sure though,
2279 so more testing is needed...
2281 so more testing is needed...
2280
2282
2281 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2283 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2282
2284
2283 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2285 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2284 local variables from any routine in user code (typically executed
2286 local variables from any routine in user code (typically executed
2285 with %run) directly into the interactive namespace. Very useful
2287 with %run) directly into the interactive namespace. Very useful
2286 when doing complex debugging.
2288 when doing complex debugging.
2287 (IPythonNotRunning): Changed the default None object to a dummy
2289 (IPythonNotRunning): Changed the default None object to a dummy
2288 whose attributes can be queried as well as called without
2290 whose attributes can be queried as well as called without
2289 exploding, to ease writing code which works transparently both in
2291 exploding, to ease writing code which works transparently both in
2290 and out of ipython and uses some of this API.
2292 and out of ipython and uses some of this API.
2291
2293
2292 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2294 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2293
2295
2294 * IPython/hooks.py (result_display): Fix the fact that our display
2296 * IPython/hooks.py (result_display): Fix the fact that our display
2295 hook was using str() instead of repr(), as the default python
2297 hook was using str() instead of repr(), as the default python
2296 console does. This had gone unnoticed b/c it only happened if
2298 console does. This had gone unnoticed b/c it only happened if
2297 %Pprint was off, but the inconsistency was there.
2299 %Pprint was off, but the inconsistency was there.
2298
2300
2299 2006-05-15 Ville Vainio <vivainio@gmail.com>
2301 2006-05-15 Ville Vainio <vivainio@gmail.com>
2300
2302
2301 * Oinspect.py: Only show docstring for nonexisting/binary files
2303 * Oinspect.py: Only show docstring for nonexisting/binary files
2302 when doing object??, closing ticket #62
2304 when doing object??, closing ticket #62
2303
2305
2304 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2306 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2305
2307
2306 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2308 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2307 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2309 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2308 was being released in a routine which hadn't checked if it had
2310 was being released in a routine which hadn't checked if it had
2309 been the one to acquire it.
2311 been the one to acquire it.
2310
2312
2311 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2313 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2312
2314
2313 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2315 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2314
2316
2315 2006-04-11 Ville Vainio <vivainio@gmail.com>
2317 2006-04-11 Ville Vainio <vivainio@gmail.com>
2316
2318
2317 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2319 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2318 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2320 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2319 prefilters, allowing stuff like magics and aliases in the file.
2321 prefilters, allowing stuff like magics and aliases in the file.
2320
2322
2321 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2323 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2322 added. Supported now are "%clear in" and "%clear out" (clear input and
2324 added. Supported now are "%clear in" and "%clear out" (clear input and
2323 output history, respectively). Also fixed CachedOutput.flush to
2325 output history, respectively). Also fixed CachedOutput.flush to
2324 properly flush the output cache.
2326 properly flush the output cache.
2325
2327
2326 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2328 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2327 half-success (and fail explicitly).
2329 half-success (and fail explicitly).
2328
2330
2329 2006-03-28 Ville Vainio <vivainio@gmail.com>
2331 2006-03-28 Ville Vainio <vivainio@gmail.com>
2330
2332
2331 * iplib.py: Fix quoting of aliases so that only argless ones
2333 * iplib.py: Fix quoting of aliases so that only argless ones
2332 are quoted
2334 are quoted
2333
2335
2334 2006-03-28 Ville Vainio <vivainio@gmail.com>
2336 2006-03-28 Ville Vainio <vivainio@gmail.com>
2335
2337
2336 * iplib.py: Quote aliases with spaces in the name.
2338 * iplib.py: Quote aliases with spaces in the name.
2337 "c:\program files\blah\bin" is now legal alias target.
2339 "c:\program files\blah\bin" is now legal alias target.
2338
2340
2339 * ext_rehashdir.py: Space no longer allowed as arg
2341 * ext_rehashdir.py: Space no longer allowed as arg
2340 separator, since space is legal in path names.
2342 separator, since space is legal in path names.
2341
2343
2342 2006-03-16 Ville Vainio <vivainio@gmail.com>
2344 2006-03-16 Ville Vainio <vivainio@gmail.com>
2343
2345
2344 * upgrade_dir.py: Take path.py from Extensions, correcting
2346 * upgrade_dir.py: Take path.py from Extensions, correcting
2345 %upgrade magic
2347 %upgrade magic
2346
2348
2347 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2349 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2348
2350
2349 * hooks.py: Only enclose editor binary in quotes if legal and
2351 * hooks.py: Only enclose editor binary in quotes if legal and
2350 necessary (space in the name, and is an existing file). Fixes a bug
2352 necessary (space in the name, and is an existing file). Fixes a bug
2351 reported by Zachary Pincus.
2353 reported by Zachary Pincus.
2352
2354
2353 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2355 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2354
2356
2355 * Manual: thanks to a tip on proper color handling for Emacs, by
2357 * Manual: thanks to a tip on proper color handling for Emacs, by
2356 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2358 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2357
2359
2358 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2360 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2359 by applying the provided patch. Thanks to Liu Jin
2361 by applying the provided patch. Thanks to Liu Jin
2360 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2362 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2361 XEmacs/Linux, I'm trusting the submitter that it actually helps
2363 XEmacs/Linux, I'm trusting the submitter that it actually helps
2362 under win32/GNU Emacs. Will revisit if any problems are reported.
2364 under win32/GNU Emacs. Will revisit if any problems are reported.
2363
2365
2364 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2366 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2365
2367
2366 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2368 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2367 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2369 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2368
2370
2369 2006-03-12 Ville Vainio <vivainio@gmail.com>
2371 2006-03-12 Ville Vainio <vivainio@gmail.com>
2370
2372
2371 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2373 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2372 Torsten Marek.
2374 Torsten Marek.
2373
2375
2374 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2376 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2375
2377
2376 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2378 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2377 line ranges works again.
2379 line ranges works again.
2378
2380
2379 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2381 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2380
2382
2381 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2383 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2382 and friends, after a discussion with Zach Pincus on ipython-user.
2384 and friends, after a discussion with Zach Pincus on ipython-user.
2383 I'm not 100% sure, but after thinking about it quite a bit, it may
2385 I'm not 100% sure, but after thinking about it quite a bit, it may
2384 be OK. Testing with the multithreaded shells didn't reveal any
2386 be OK. Testing with the multithreaded shells didn't reveal any
2385 problems, but let's keep an eye out.
2387 problems, but let's keep an eye out.
2386
2388
2387 In the process, I fixed a few things which were calling
2389 In the process, I fixed a few things which were calling
2388 self.InteractiveTB() directly (like safe_execfile), which is a
2390 self.InteractiveTB() directly (like safe_execfile), which is a
2389 mistake: ALL exception reporting should be done by calling
2391 mistake: ALL exception reporting should be done by calling
2390 self.showtraceback(), which handles state and tab-completion and
2392 self.showtraceback(), which handles state and tab-completion and
2391 more.
2393 more.
2392
2394
2393 2006-03-01 Ville Vainio <vivainio@gmail.com>
2395 2006-03-01 Ville Vainio <vivainio@gmail.com>
2394
2396
2395 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2397 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2396 To use, do "from ipipe import *".
2398 To use, do "from ipipe import *".
2397
2399
2398 2006-02-24 Ville Vainio <vivainio@gmail.com>
2400 2006-02-24 Ville Vainio <vivainio@gmail.com>
2399
2401
2400 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2402 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2401 "cleanly" and safely than the older upgrade mechanism.
2403 "cleanly" and safely than the older upgrade mechanism.
2402
2404
2403 2006-02-21 Ville Vainio <vivainio@gmail.com>
2405 2006-02-21 Ville Vainio <vivainio@gmail.com>
2404
2406
2405 * Magic.py: %save works again.
2407 * Magic.py: %save works again.
2406
2408
2407 2006-02-15 Ville Vainio <vivainio@gmail.com>
2409 2006-02-15 Ville Vainio <vivainio@gmail.com>
2408
2410
2409 * Magic.py: %Pprint works again
2411 * Magic.py: %Pprint works again
2410
2412
2411 * Extensions/ipy_sane_defaults.py: Provide everything provided
2413 * Extensions/ipy_sane_defaults.py: Provide everything provided
2412 in default ipythonrc, to make it possible to have a completely empty
2414 in default ipythonrc, to make it possible to have a completely empty
2413 ipythonrc (and thus completely rc-file free configuration)
2415 ipythonrc (and thus completely rc-file free configuration)
2414
2416
2415 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2417 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2416
2418
2417 * IPython/hooks.py (editor): quote the call to the editor command,
2419 * IPython/hooks.py (editor): quote the call to the editor command,
2418 to allow commands with spaces in them. Problem noted by watching
2420 to allow commands with spaces in them. Problem noted by watching
2419 Ian Oswald's video about textpad under win32 at
2421 Ian Oswald's video about textpad under win32 at
2420 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2422 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2421
2423
2422 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2424 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2423 describing magics (we haven't used @ for a loong time).
2425 describing magics (we haven't used @ for a loong time).
2424
2426
2425 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2427 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2426 contributed by marienz to close
2428 contributed by marienz to close
2427 http://www.scipy.net/roundup/ipython/issue53.
2429 http://www.scipy.net/roundup/ipython/issue53.
2428
2430
2429 2006-02-10 Ville Vainio <vivainio@gmail.com>
2431 2006-02-10 Ville Vainio <vivainio@gmail.com>
2430
2432
2431 * genutils.py: getoutput now works in win32 too
2433 * genutils.py: getoutput now works in win32 too
2432
2434
2433 * completer.py: alias and magic completion only invoked
2435 * completer.py: alias and magic completion only invoked
2434 at the first "item" in the line, to avoid "cd %store"
2436 at the first "item" in the line, to avoid "cd %store"
2435 nonsense.
2437 nonsense.
2436
2438
2437 2006-02-09 Ville Vainio <vivainio@gmail.com>
2439 2006-02-09 Ville Vainio <vivainio@gmail.com>
2438
2440
2439 * test/*: Added a unit testing framework (finally).
2441 * test/*: Added a unit testing framework (finally).
2440 '%run runtests.py' to run test_*.
2442 '%run runtests.py' to run test_*.
2441
2443
2442 * ipapi.py: Exposed runlines and set_custom_exc
2444 * ipapi.py: Exposed runlines and set_custom_exc
2443
2445
2444 2006-02-07 Ville Vainio <vivainio@gmail.com>
2446 2006-02-07 Ville Vainio <vivainio@gmail.com>
2445
2447
2446 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2448 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2447 instead use "f(1 2)" as before.
2449 instead use "f(1 2)" as before.
2448
2450
2449 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2451 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2450
2452
2451 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2453 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2452 facilities, for demos processed by the IPython input filter
2454 facilities, for demos processed by the IPython input filter
2453 (IPythonDemo), and for running a script one-line-at-a-time as a
2455 (IPythonDemo), and for running a script one-line-at-a-time as a
2454 demo, both for pure Python (LineDemo) and for IPython-processed
2456 demo, both for pure Python (LineDemo) and for IPython-processed
2455 input (IPythonLineDemo). After a request by Dave Kohel, from the
2457 input (IPythonLineDemo). After a request by Dave Kohel, from the
2456 SAGE team.
2458 SAGE team.
2457 (Demo.edit): added an edit() method to the demo objects, to edit
2459 (Demo.edit): added an edit() method to the demo objects, to edit
2458 the in-memory copy of the last executed block.
2460 the in-memory copy of the last executed block.
2459
2461
2460 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2462 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2461 processing to %edit, %macro and %save. These commands can now be
2463 processing to %edit, %macro and %save. These commands can now be
2462 invoked on the unprocessed input as it was typed by the user
2464 invoked on the unprocessed input as it was typed by the user
2463 (without any prefilters applied). After requests by the SAGE team
2465 (without any prefilters applied). After requests by the SAGE team
2464 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2466 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2465
2467
2466 2006-02-01 Ville Vainio <vivainio@gmail.com>
2468 2006-02-01 Ville Vainio <vivainio@gmail.com>
2467
2469
2468 * setup.py, eggsetup.py: easy_install ipython==dev works
2470 * setup.py, eggsetup.py: easy_install ipython==dev works
2469 correctly now (on Linux)
2471 correctly now (on Linux)
2470
2472
2471 * ipy_user_conf,ipmaker: user config changes, removed spurious
2473 * ipy_user_conf,ipmaker: user config changes, removed spurious
2472 warnings
2474 warnings
2473
2475
2474 * iplib: if rc.banner is string, use it as is.
2476 * iplib: if rc.banner is string, use it as is.
2475
2477
2476 * Magic: %pycat accepts a string argument and pages it's contents.
2478 * Magic: %pycat accepts a string argument and pages it's contents.
2477
2479
2478
2480
2479 2006-01-30 Ville Vainio <vivainio@gmail.com>
2481 2006-01-30 Ville Vainio <vivainio@gmail.com>
2480
2482
2481 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2483 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2482 Now %store and bookmarks work through PickleShare, meaning that
2484 Now %store and bookmarks work through PickleShare, meaning that
2483 concurrent access is possible and all ipython sessions see the
2485 concurrent access is possible and all ipython sessions see the
2484 same database situation all the time, instead of snapshot of
2486 same database situation all the time, instead of snapshot of
2485 the situation when the session was started. Hence, %bookmark
2487 the situation when the session was started. Hence, %bookmark
2486 results are immediately accessible from othes sessions. The database
2488 results are immediately accessible from othes sessions. The database
2487 is also available for use by user extensions. See:
2489 is also available for use by user extensions. See:
2488 http://www.python.org/pypi/pickleshare
2490 http://www.python.org/pypi/pickleshare
2489
2491
2490 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2492 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2491
2493
2492 * aliases can now be %store'd
2494 * aliases can now be %store'd
2493
2495
2494 * path.py moved to Extensions so that pickleshare does not need
2496 * path.py moved to Extensions so that pickleshare does not need
2495 IPython-specific import. Extensions added to pythonpath right
2497 IPython-specific import. Extensions added to pythonpath right
2496 at __init__.
2498 at __init__.
2497
2499
2498 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2500 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2499 called with _ip.system and the pre-transformed command string.
2501 called with _ip.system and the pre-transformed command string.
2500
2502
2501 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2503 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2502
2504
2503 * IPython/iplib.py (interact): Fix that we were not catching
2505 * IPython/iplib.py (interact): Fix that we were not catching
2504 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2506 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2505 logic here had to change, but it's fixed now.
2507 logic here had to change, but it's fixed now.
2506
2508
2507 2006-01-29 Ville Vainio <vivainio@gmail.com>
2509 2006-01-29 Ville Vainio <vivainio@gmail.com>
2508
2510
2509 * iplib.py: Try to import pyreadline on Windows.
2511 * iplib.py: Try to import pyreadline on Windows.
2510
2512
2511 2006-01-27 Ville Vainio <vivainio@gmail.com>
2513 2006-01-27 Ville Vainio <vivainio@gmail.com>
2512
2514
2513 * iplib.py: Expose ipapi as _ip in builtin namespace.
2515 * iplib.py: Expose ipapi as _ip in builtin namespace.
2514 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2516 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2515 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2517 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2516 syntax now produce _ip.* variant of the commands.
2518 syntax now produce _ip.* variant of the commands.
2517
2519
2518 * "_ip.options().autoedit_syntax = 2" automatically throws
2520 * "_ip.options().autoedit_syntax = 2" automatically throws
2519 user to editor for syntax error correction without prompting.
2521 user to editor for syntax error correction without prompting.
2520
2522
2521 2006-01-27 Ville Vainio <vivainio@gmail.com>
2523 2006-01-27 Ville Vainio <vivainio@gmail.com>
2522
2524
2523 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2525 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2524 'ipython' at argv[0]) executed through command line.
2526 'ipython' at argv[0]) executed through command line.
2525 NOTE: this DEPRECATES calling ipython with multiple scripts
2527 NOTE: this DEPRECATES calling ipython with multiple scripts
2526 ("ipython a.py b.py c.py")
2528 ("ipython a.py b.py c.py")
2527
2529
2528 * iplib.py, hooks.py: Added configurable input prefilter,
2530 * iplib.py, hooks.py: Added configurable input prefilter,
2529 named 'input_prefilter'. See ext_rescapture.py for example
2531 named 'input_prefilter'. See ext_rescapture.py for example
2530 usage.
2532 usage.
2531
2533
2532 * ext_rescapture.py, Magic.py: Better system command output capture
2534 * ext_rescapture.py, Magic.py: Better system command output capture
2533 through 'var = !ls' (deprecates user-visible %sc). Same notation
2535 through 'var = !ls' (deprecates user-visible %sc). Same notation
2534 applies for magics, 'var = %alias' assigns alias list to var.
2536 applies for magics, 'var = %alias' assigns alias list to var.
2535
2537
2536 * ipapi.py: added meta() for accessing extension-usable data store.
2538 * ipapi.py: added meta() for accessing extension-usable data store.
2537
2539
2538 * iplib.py: added InteractiveShell.getapi(). New magics should be
2540 * iplib.py: added InteractiveShell.getapi(). New magics should be
2539 written doing self.getapi() instead of using the shell directly.
2541 written doing self.getapi() instead of using the shell directly.
2540
2542
2541 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2543 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2542 %store foo >> ~/myfoo.txt to store variables to files (in clean
2544 %store foo >> ~/myfoo.txt to store variables to files (in clean
2543 textual form, not a restorable pickle).
2545 textual form, not a restorable pickle).
2544
2546
2545 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2547 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2546
2548
2547 * usage.py, Magic.py: added %quickref
2549 * usage.py, Magic.py: added %quickref
2548
2550
2549 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2551 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2550
2552
2551 * GetoptErrors when invoking magics etc. with wrong args
2553 * GetoptErrors when invoking magics etc. with wrong args
2552 are now more helpful:
2554 are now more helpful:
2553 GetoptError: option -l not recognized (allowed: "qb" )
2555 GetoptError: option -l not recognized (allowed: "qb" )
2554
2556
2555 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2557 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2556
2558
2557 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2559 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2558 computationally intensive blocks don't appear to stall the demo.
2560 computationally intensive blocks don't appear to stall the demo.
2559
2561
2560 2006-01-24 Ville Vainio <vivainio@gmail.com>
2562 2006-01-24 Ville Vainio <vivainio@gmail.com>
2561
2563
2562 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2564 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2563 value to manipulate resulting history entry.
2565 value to manipulate resulting history entry.
2564
2566
2565 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2567 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2566 to instance methods of IPApi class, to make extending an embedded
2568 to instance methods of IPApi class, to make extending an embedded
2567 IPython feasible. See ext_rehashdir.py for example usage.
2569 IPython feasible. See ext_rehashdir.py for example usage.
2568
2570
2569 * Merged 1071-1076 from branches/0.7.1
2571 * Merged 1071-1076 from branches/0.7.1
2570
2572
2571
2573
2572 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2574 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2573
2575
2574 * tools/release (daystamp): Fix build tools to use the new
2576 * tools/release (daystamp): Fix build tools to use the new
2575 eggsetup.py script to build lightweight eggs.
2577 eggsetup.py script to build lightweight eggs.
2576
2578
2577 * Applied changesets 1062 and 1064 before 0.7.1 release.
2579 * Applied changesets 1062 and 1064 before 0.7.1 release.
2578
2580
2579 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2581 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2580 see the raw input history (without conversions like %ls ->
2582 see the raw input history (without conversions like %ls ->
2581 ipmagic("ls")). After a request from W. Stein, SAGE
2583 ipmagic("ls")). After a request from W. Stein, SAGE
2582 (http://modular.ucsd.edu/sage) developer. This information is
2584 (http://modular.ucsd.edu/sage) developer. This information is
2583 stored in the input_hist_raw attribute of the IPython instance, so
2585 stored in the input_hist_raw attribute of the IPython instance, so
2584 developers can access it if needed (it's an InputList instance).
2586 developers can access it if needed (it's an InputList instance).
2585
2587
2586 * Versionstring = 0.7.2.svn
2588 * Versionstring = 0.7.2.svn
2587
2589
2588 * eggsetup.py: A separate script for constructing eggs, creates
2590 * eggsetup.py: A separate script for constructing eggs, creates
2589 proper launch scripts even on Windows (an .exe file in
2591 proper launch scripts even on Windows (an .exe file in
2590 \python24\scripts).
2592 \python24\scripts).
2591
2593
2592 * ipapi.py: launch_new_instance, launch entry point needed for the
2594 * ipapi.py: launch_new_instance, launch entry point needed for the
2593 egg.
2595 egg.
2594
2596
2595 2006-01-23 Ville Vainio <vivainio@gmail.com>
2597 2006-01-23 Ville Vainio <vivainio@gmail.com>
2596
2598
2597 * Added %cpaste magic for pasting python code
2599 * Added %cpaste magic for pasting python code
2598
2600
2599 2006-01-22 Ville Vainio <vivainio@gmail.com>
2601 2006-01-22 Ville Vainio <vivainio@gmail.com>
2600
2602
2601 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2603 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2602
2604
2603 * Versionstring = 0.7.2.svn
2605 * Versionstring = 0.7.2.svn
2604
2606
2605 * eggsetup.py: A separate script for constructing eggs, creates
2607 * eggsetup.py: A separate script for constructing eggs, creates
2606 proper launch scripts even on Windows (an .exe file in
2608 proper launch scripts even on Windows (an .exe file in
2607 \python24\scripts).
2609 \python24\scripts).
2608
2610
2609 * ipapi.py: launch_new_instance, launch entry point needed for the
2611 * ipapi.py: launch_new_instance, launch entry point needed for the
2610 egg.
2612 egg.
2611
2613
2612 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2614 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2613
2615
2614 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2616 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2615 %pfile foo would print the file for foo even if it was a binary.
2617 %pfile foo would print the file for foo even if it was a binary.
2616 Now, extensions '.so' and '.dll' are skipped.
2618 Now, extensions '.so' and '.dll' are skipped.
2617
2619
2618 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2620 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2619 bug, where macros would fail in all threaded modes. I'm not 100%
2621 bug, where macros would fail in all threaded modes. I'm not 100%
2620 sure, so I'm going to put out an rc instead of making a release
2622 sure, so I'm going to put out an rc instead of making a release
2621 today, and wait for feedback for at least a few days.
2623 today, and wait for feedback for at least a few days.
2622
2624
2623 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2625 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2624 it...) the handling of pasting external code with autoindent on.
2626 it...) the handling of pasting external code with autoindent on.
2625 To get out of a multiline input, the rule will appear for most
2627 To get out of a multiline input, the rule will appear for most
2626 users unchanged: two blank lines or change the indent level
2628 users unchanged: two blank lines or change the indent level
2627 proposed by IPython. But there is a twist now: you can
2629 proposed by IPython. But there is a twist now: you can
2628 add/subtract only *one or two spaces*. If you add/subtract three
2630 add/subtract only *one or two spaces*. If you add/subtract three
2629 or more (unless you completely delete the line), IPython will
2631 or more (unless you completely delete the line), IPython will
2630 accept that line, and you'll need to enter a second one of pure
2632 accept that line, and you'll need to enter a second one of pure
2631 whitespace. I know it sounds complicated, but I can't find a
2633 whitespace. I know it sounds complicated, but I can't find a
2632 different solution that covers all the cases, with the right
2634 different solution that covers all the cases, with the right
2633 heuristics. Hopefully in actual use, nobody will really notice
2635 heuristics. Hopefully in actual use, nobody will really notice
2634 all these strange rules and things will 'just work'.
2636 all these strange rules and things will 'just work'.
2635
2637
2636 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2638 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2637
2639
2638 * IPython/iplib.py (interact): catch exceptions which can be
2640 * IPython/iplib.py (interact): catch exceptions which can be
2639 triggered asynchronously by signal handlers. Thanks to an
2641 triggered asynchronously by signal handlers. Thanks to an
2640 automatic crash report, submitted by Colin Kingsley
2642 automatic crash report, submitted by Colin Kingsley
2641 <tercel-AT-gentoo.org>.
2643 <tercel-AT-gentoo.org>.
2642
2644
2643 2006-01-20 Ville Vainio <vivainio@gmail.com>
2645 2006-01-20 Ville Vainio <vivainio@gmail.com>
2644
2646
2645 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2647 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2646 (%rehashdir, very useful, try it out) of how to extend ipython
2648 (%rehashdir, very useful, try it out) of how to extend ipython
2647 with new magics. Also added Extensions dir to pythonpath to make
2649 with new magics. Also added Extensions dir to pythonpath to make
2648 importing extensions easy.
2650 importing extensions easy.
2649
2651
2650 * %store now complains when trying to store interactively declared
2652 * %store now complains when trying to store interactively declared
2651 classes / instances of those classes.
2653 classes / instances of those classes.
2652
2654
2653 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2655 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2654 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2656 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2655 if they exist, and ipy_user_conf.py with some defaults is created for
2657 if they exist, and ipy_user_conf.py with some defaults is created for
2656 the user.
2658 the user.
2657
2659
2658 * Startup rehashing done by the config file, not InterpreterExec.
2660 * Startup rehashing done by the config file, not InterpreterExec.
2659 This means system commands are available even without selecting the
2661 This means system commands are available even without selecting the
2660 pysh profile. It's the sensible default after all.
2662 pysh profile. It's the sensible default after all.
2661
2663
2662 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2664 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2663
2665
2664 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2666 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2665 multiline code with autoindent on working. But I am really not
2667 multiline code with autoindent on working. But I am really not
2666 sure, so this needs more testing. Will commit a debug-enabled
2668 sure, so this needs more testing. Will commit a debug-enabled
2667 version for now, while I test it some more, so that Ville and
2669 version for now, while I test it some more, so that Ville and
2668 others may also catch any problems. Also made
2670 others may also catch any problems. Also made
2669 self.indent_current_str() a method, to ensure that there's no
2671 self.indent_current_str() a method, to ensure that there's no
2670 chance of the indent space count and the corresponding string
2672 chance of the indent space count and the corresponding string
2671 falling out of sync. All code needing the string should just call
2673 falling out of sync. All code needing the string should just call
2672 the method.
2674 the method.
2673
2675
2674 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2676 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2675
2677
2676 * IPython/Magic.py (magic_edit): fix check for when users don't
2678 * IPython/Magic.py (magic_edit): fix check for when users don't
2677 save their output files, the try/except was in the wrong section.
2679 save their output files, the try/except was in the wrong section.
2678
2680
2679 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2681 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2680
2682
2681 * IPython/Magic.py (magic_run): fix __file__ global missing from
2683 * IPython/Magic.py (magic_run): fix __file__ global missing from
2682 script's namespace when executed via %run. After a report by
2684 script's namespace when executed via %run. After a report by
2683 Vivian.
2685 Vivian.
2684
2686
2685 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2687 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2686 when using python 2.4. The parent constructor changed in 2.4, and
2688 when using python 2.4. The parent constructor changed in 2.4, and
2687 we need to track it directly (we can't call it, as it messes up
2689 we need to track it directly (we can't call it, as it messes up
2688 readline and tab-completion inside our pdb would stop working).
2690 readline and tab-completion inside our pdb would stop working).
2689 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2691 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2690
2692
2691 2006-01-16 Ville Vainio <vivainio@gmail.com>
2693 2006-01-16 Ville Vainio <vivainio@gmail.com>
2692
2694
2693 * Ipython/magic.py: Reverted back to old %edit functionality
2695 * Ipython/magic.py: Reverted back to old %edit functionality
2694 that returns file contents on exit.
2696 that returns file contents on exit.
2695
2697
2696 * IPython/path.py: Added Jason Orendorff's "path" module to
2698 * IPython/path.py: Added Jason Orendorff's "path" module to
2697 IPython tree, http://www.jorendorff.com/articles/python/path/.
2699 IPython tree, http://www.jorendorff.com/articles/python/path/.
2698 You can get path objects conveniently through %sc, and !!, e.g.:
2700 You can get path objects conveniently through %sc, and !!, e.g.:
2699 sc files=ls
2701 sc files=ls
2700 for p in files.paths: # or files.p
2702 for p in files.paths: # or files.p
2701 print p,p.mtime
2703 print p,p.mtime
2702
2704
2703 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2705 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2704 now work again without considering the exclusion regexp -
2706 now work again without considering the exclusion regexp -
2705 hence, things like ',foo my/path' turn to 'foo("my/path")'
2707 hence, things like ',foo my/path' turn to 'foo("my/path")'
2706 instead of syntax error.
2708 instead of syntax error.
2707
2709
2708
2710
2709 2006-01-14 Ville Vainio <vivainio@gmail.com>
2711 2006-01-14 Ville Vainio <vivainio@gmail.com>
2710
2712
2711 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2713 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2712 ipapi decorators for python 2.4 users, options() provides access to rc
2714 ipapi decorators for python 2.4 users, options() provides access to rc
2713 data.
2715 data.
2714
2716
2715 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2717 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2716 as path separators (even on Linux ;-). Space character after
2718 as path separators (even on Linux ;-). Space character after
2717 backslash (as yielded by tab completer) is still space;
2719 backslash (as yielded by tab completer) is still space;
2718 "%cd long\ name" works as expected.
2720 "%cd long\ name" works as expected.
2719
2721
2720 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2722 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2721 as "chain of command", with priority. API stays the same,
2723 as "chain of command", with priority. API stays the same,
2722 TryNext exception raised by a hook function signals that
2724 TryNext exception raised by a hook function signals that
2723 current hook failed and next hook should try handling it, as
2725 current hook failed and next hook should try handling it, as
2724 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2726 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2725 requested configurable display hook, which is now implemented.
2727 requested configurable display hook, which is now implemented.
2726
2728
2727 2006-01-13 Ville Vainio <vivainio@gmail.com>
2729 2006-01-13 Ville Vainio <vivainio@gmail.com>
2728
2730
2729 * IPython/platutils*.py: platform specific utility functions,
2731 * IPython/platutils*.py: platform specific utility functions,
2730 so far only set_term_title is implemented (change terminal
2732 so far only set_term_title is implemented (change terminal
2731 label in windowing systems). %cd now changes the title to
2733 label in windowing systems). %cd now changes the title to
2732 current dir.
2734 current dir.
2733
2735
2734 * IPython/Release.py: Added myself to "authors" list,
2736 * IPython/Release.py: Added myself to "authors" list,
2735 had to create new files.
2737 had to create new files.
2736
2738
2737 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2739 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2738 shell escape; not a known bug but had potential to be one in the
2740 shell escape; not a known bug but had potential to be one in the
2739 future.
2741 future.
2740
2742
2741 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2743 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2742 extension API for IPython! See the module for usage example. Fix
2744 extension API for IPython! See the module for usage example. Fix
2743 OInspect for docstring-less magic functions.
2745 OInspect for docstring-less magic functions.
2744
2746
2745
2747
2746 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2748 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2747
2749
2748 * IPython/iplib.py (raw_input): temporarily deactivate all
2750 * IPython/iplib.py (raw_input): temporarily deactivate all
2749 attempts at allowing pasting of code with autoindent on. It
2751 attempts at allowing pasting of code with autoindent on. It
2750 introduced bugs (reported by Prabhu) and I can't seem to find a
2752 introduced bugs (reported by Prabhu) and I can't seem to find a
2751 robust combination which works in all cases. Will have to revisit
2753 robust combination which works in all cases. Will have to revisit
2752 later.
2754 later.
2753
2755
2754 * IPython/genutils.py: remove isspace() function. We've dropped
2756 * IPython/genutils.py: remove isspace() function. We've dropped
2755 2.2 compatibility, so it's OK to use the string method.
2757 2.2 compatibility, so it's OK to use the string method.
2756
2758
2757 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2759 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2758
2760
2759 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2761 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2760 matching what NOT to autocall on, to include all python binary
2762 matching what NOT to autocall on, to include all python binary
2761 operators (including things like 'and', 'or', 'is' and 'in').
2763 operators (including things like 'and', 'or', 'is' and 'in').
2762 Prompted by a bug report on 'foo & bar', but I realized we had
2764 Prompted by a bug report on 'foo & bar', but I realized we had
2763 many more potential bug cases with other operators. The regexp is
2765 many more potential bug cases with other operators. The regexp is
2764 self.re_exclude_auto, it's fairly commented.
2766 self.re_exclude_auto, it's fairly commented.
2765
2767
2766 2006-01-12 Ville Vainio <vivainio@gmail.com>
2768 2006-01-12 Ville Vainio <vivainio@gmail.com>
2767
2769
2768 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2770 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2769 Prettified and hardened string/backslash quoting with ipsystem(),
2771 Prettified and hardened string/backslash quoting with ipsystem(),
2770 ipalias() and ipmagic(). Now even \ characters are passed to
2772 ipalias() and ipmagic(). Now even \ characters are passed to
2771 %magics, !shell escapes and aliases exactly as they are in the
2773 %magics, !shell escapes and aliases exactly as they are in the
2772 ipython command line. Should improve backslash experience,
2774 ipython command line. Should improve backslash experience,
2773 particularly in Windows (path delimiter for some commands that
2775 particularly in Windows (path delimiter for some commands that
2774 won't understand '/'), but Unix benefits as well (regexps). %cd
2776 won't understand '/'), but Unix benefits as well (regexps). %cd
2775 magic still doesn't support backslash path delimiters, though. Also
2777 magic still doesn't support backslash path delimiters, though. Also
2776 deleted all pretense of supporting multiline command strings in
2778 deleted all pretense of supporting multiline command strings in
2777 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2779 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2778
2780
2779 * doc/build_doc_instructions.txt added. Documentation on how to
2781 * doc/build_doc_instructions.txt added. Documentation on how to
2780 use doc/update_manual.py, added yesterday. Both files contributed
2782 use doc/update_manual.py, added yesterday. Both files contributed
2781 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2783 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2782 doc/*.sh for deprecation at a later date.
2784 doc/*.sh for deprecation at a later date.
2783
2785
2784 * /ipython.py Added ipython.py to root directory for
2786 * /ipython.py Added ipython.py to root directory for
2785 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2787 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2786 ipython.py) and development convenience (no need to keep doing
2788 ipython.py) and development convenience (no need to keep doing
2787 "setup.py install" between changes).
2789 "setup.py install" between changes).
2788
2790
2789 * Made ! and !! shell escapes work (again) in multiline expressions:
2791 * Made ! and !! shell escapes work (again) in multiline expressions:
2790 if 1:
2792 if 1:
2791 !ls
2793 !ls
2792 !!ls
2794 !!ls
2793
2795
2794 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2796 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2795
2797
2796 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2798 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2797 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2799 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2798 module in case-insensitive installation. Was causing crashes
2800 module in case-insensitive installation. Was causing crashes
2799 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2801 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2800
2802
2801 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2803 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2802 <marienz-AT-gentoo.org>, closes
2804 <marienz-AT-gentoo.org>, closes
2803 http://www.scipy.net/roundup/ipython/issue51.
2805 http://www.scipy.net/roundup/ipython/issue51.
2804
2806
2805 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2807 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2806
2808
2807 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2809 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2808 problem of excessive CPU usage under *nix and keyboard lag under
2810 problem of excessive CPU usage under *nix and keyboard lag under
2809 win32.
2811 win32.
2810
2812
2811 2006-01-10 *** Released version 0.7.0
2813 2006-01-10 *** Released version 0.7.0
2812
2814
2813 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2815 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2814
2816
2815 * IPython/Release.py (revision): tag version number to 0.7.0,
2817 * IPython/Release.py (revision): tag version number to 0.7.0,
2816 ready for release.
2818 ready for release.
2817
2819
2818 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2820 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2819 it informs the user of the name of the temp. file used. This can
2821 it informs the user of the name of the temp. file used. This can
2820 help if you decide later to reuse that same file, so you know
2822 help if you decide later to reuse that same file, so you know
2821 where to copy the info from.
2823 where to copy the info from.
2822
2824
2823 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2825 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2824
2826
2825 * setup_bdist_egg.py: little script to build an egg. Added
2827 * setup_bdist_egg.py: little script to build an egg. Added
2826 support in the release tools as well.
2828 support in the release tools as well.
2827
2829
2828 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2830 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2829
2831
2830 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2832 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2831 version selection (new -wxversion command line and ipythonrc
2833 version selection (new -wxversion command line and ipythonrc
2832 parameter). Patch contributed by Arnd Baecker
2834 parameter). Patch contributed by Arnd Baecker
2833 <arnd.baecker-AT-web.de>.
2835 <arnd.baecker-AT-web.de>.
2834
2836
2835 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2837 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2836 embedded instances, for variables defined at the interactive
2838 embedded instances, for variables defined at the interactive
2837 prompt of the embedded ipython. Reported by Arnd.
2839 prompt of the embedded ipython. Reported by Arnd.
2838
2840
2839 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2841 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2840 it can be used as a (stateful) toggle, or with a direct parameter.
2842 it can be used as a (stateful) toggle, or with a direct parameter.
2841
2843
2842 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2844 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2843 could be triggered in certain cases and cause the traceback
2845 could be triggered in certain cases and cause the traceback
2844 printer not to work.
2846 printer not to work.
2845
2847
2846 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2848 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2847
2849
2848 * IPython/iplib.py (_should_recompile): Small fix, closes
2850 * IPython/iplib.py (_should_recompile): Small fix, closes
2849 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2851 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2850
2852
2851 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2853 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2852
2854
2853 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2855 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2854 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2856 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2855 Moad for help with tracking it down.
2857 Moad for help with tracking it down.
2856
2858
2857 * IPython/iplib.py (handle_auto): fix autocall handling for
2859 * IPython/iplib.py (handle_auto): fix autocall handling for
2858 objects which support BOTH __getitem__ and __call__ (so that f [x]
2860 objects which support BOTH __getitem__ and __call__ (so that f [x]
2859 is left alone, instead of becoming f([x]) automatically).
2861 is left alone, instead of becoming f([x]) automatically).
2860
2862
2861 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2863 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2862 Ville's patch.
2864 Ville's patch.
2863
2865
2864 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2866 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2865
2867
2866 * IPython/iplib.py (handle_auto): changed autocall semantics to
2868 * IPython/iplib.py (handle_auto): changed autocall semantics to
2867 include 'smart' mode, where the autocall transformation is NOT
2869 include 'smart' mode, where the autocall transformation is NOT
2868 applied if there are no arguments on the line. This allows you to
2870 applied if there are no arguments on the line. This allows you to
2869 just type 'foo' if foo is a callable to see its internal form,
2871 just type 'foo' if foo is a callable to see its internal form,
2870 instead of having it called with no arguments (typically a
2872 instead of having it called with no arguments (typically a
2871 mistake). The old 'full' autocall still exists: for that, you
2873 mistake). The old 'full' autocall still exists: for that, you
2872 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2874 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2873
2875
2874 * IPython/completer.py (Completer.attr_matches): add
2876 * IPython/completer.py (Completer.attr_matches): add
2875 tab-completion support for Enthoughts' traits. After a report by
2877 tab-completion support for Enthoughts' traits. After a report by
2876 Arnd and a patch by Prabhu.
2878 Arnd and a patch by Prabhu.
2877
2879
2878 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2880 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2879
2881
2880 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2882 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2881 Schmolck's patch to fix inspect.getinnerframes().
2883 Schmolck's patch to fix inspect.getinnerframes().
2882
2884
2883 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2885 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2884 for embedded instances, regarding handling of namespaces and items
2886 for embedded instances, regarding handling of namespaces and items
2885 added to the __builtin__ one. Multiple embedded instances and
2887 added to the __builtin__ one. Multiple embedded instances and
2886 recursive embeddings should work better now (though I'm not sure
2888 recursive embeddings should work better now (though I'm not sure
2887 I've got all the corner cases fixed, that code is a bit of a brain
2889 I've got all the corner cases fixed, that code is a bit of a brain
2888 twister).
2890 twister).
2889
2891
2890 * IPython/Magic.py (magic_edit): added support to edit in-memory
2892 * IPython/Magic.py (magic_edit): added support to edit in-memory
2891 macros (automatically creates the necessary temp files). %edit
2893 macros (automatically creates the necessary temp files). %edit
2892 also doesn't return the file contents anymore, it's just noise.
2894 also doesn't return the file contents anymore, it's just noise.
2893
2895
2894 * IPython/completer.py (Completer.attr_matches): revert change to
2896 * IPython/completer.py (Completer.attr_matches): revert change to
2895 complete only on attributes listed in __all__. I realized it
2897 complete only on attributes listed in __all__. I realized it
2896 cripples the tab-completion system as a tool for exploring the
2898 cripples the tab-completion system as a tool for exploring the
2897 internals of unknown libraries (it renders any non-__all__
2899 internals of unknown libraries (it renders any non-__all__
2898 attribute off-limits). I got bit by this when trying to see
2900 attribute off-limits). I got bit by this when trying to see
2899 something inside the dis module.
2901 something inside the dis module.
2900
2902
2901 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2903 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2902
2904
2903 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2905 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2904 namespace for users and extension writers to hold data in. This
2906 namespace for users and extension writers to hold data in. This
2905 follows the discussion in
2907 follows the discussion in
2906 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2908 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2907
2909
2908 * IPython/completer.py (IPCompleter.complete): small patch to help
2910 * IPython/completer.py (IPCompleter.complete): small patch to help
2909 tab-completion under Emacs, after a suggestion by John Barnard
2911 tab-completion under Emacs, after a suggestion by John Barnard
2910 <barnarj-AT-ccf.org>.
2912 <barnarj-AT-ccf.org>.
2911
2913
2912 * IPython/Magic.py (Magic.extract_input_slices): added support for
2914 * IPython/Magic.py (Magic.extract_input_slices): added support for
2913 the slice notation in magics to use N-M to represent numbers N...M
2915 the slice notation in magics to use N-M to represent numbers N...M
2914 (closed endpoints). This is used by %macro and %save.
2916 (closed endpoints). This is used by %macro and %save.
2915
2917
2916 * IPython/completer.py (Completer.attr_matches): for modules which
2918 * IPython/completer.py (Completer.attr_matches): for modules which
2917 define __all__, complete only on those. After a patch by Jeffrey
2919 define __all__, complete only on those. After a patch by Jeffrey
2918 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2920 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2919 speed up this routine.
2921 speed up this routine.
2920
2922
2921 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2923 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2922 don't know if this is the end of it, but the behavior now is
2924 don't know if this is the end of it, but the behavior now is
2923 certainly much more correct. Note that coupled with macros,
2925 certainly much more correct. Note that coupled with macros,
2924 slightly surprising (at first) behavior may occur: a macro will in
2926 slightly surprising (at first) behavior may occur: a macro will in
2925 general expand to multiple lines of input, so upon exiting, the
2927 general expand to multiple lines of input, so upon exiting, the
2926 in/out counters will both be bumped by the corresponding amount
2928 in/out counters will both be bumped by the corresponding amount
2927 (as if the macro's contents had been typed interactively). Typing
2929 (as if the macro's contents had been typed interactively). Typing
2928 %hist will reveal the intermediate (silently processed) lines.
2930 %hist will reveal the intermediate (silently processed) lines.
2929
2931
2930 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2932 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2931 pickle to fail (%run was overwriting __main__ and not restoring
2933 pickle to fail (%run was overwriting __main__ and not restoring
2932 it, but pickle relies on __main__ to operate).
2934 it, but pickle relies on __main__ to operate).
2933
2935
2934 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2936 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2935 using properties, but forgot to make the main InteractiveShell
2937 using properties, but forgot to make the main InteractiveShell
2936 class a new-style class. Properties fail silently, and
2938 class a new-style class. Properties fail silently, and
2937 mysteriously, with old-style class (getters work, but
2939 mysteriously, with old-style class (getters work, but
2938 setters don't do anything).
2940 setters don't do anything).
2939
2941
2940 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2942 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2941
2943
2942 * IPython/Magic.py (magic_history): fix history reporting bug (I
2944 * IPython/Magic.py (magic_history): fix history reporting bug (I
2943 know some nasties are still there, I just can't seem to find a
2945 know some nasties are still there, I just can't seem to find a
2944 reproducible test case to track them down; the input history is
2946 reproducible test case to track them down; the input history is
2945 falling out of sync...)
2947 falling out of sync...)
2946
2948
2947 * IPython/iplib.py (handle_shell_escape): fix bug where both
2949 * IPython/iplib.py (handle_shell_escape): fix bug where both
2948 aliases and system accesses where broken for indented code (such
2950 aliases and system accesses where broken for indented code (such
2949 as loops).
2951 as loops).
2950
2952
2951 * IPython/genutils.py (shell): fix small but critical bug for
2953 * IPython/genutils.py (shell): fix small but critical bug for
2952 win32 system access.
2954 win32 system access.
2953
2955
2954 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2956 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2955
2957
2956 * IPython/iplib.py (showtraceback): remove use of the
2958 * IPython/iplib.py (showtraceback): remove use of the
2957 sys.last_{type/value/traceback} structures, which are non
2959 sys.last_{type/value/traceback} structures, which are non
2958 thread-safe.
2960 thread-safe.
2959 (_prefilter): change control flow to ensure that we NEVER
2961 (_prefilter): change control flow to ensure that we NEVER
2960 introspect objects when autocall is off. This will guarantee that
2962 introspect objects when autocall is off. This will guarantee that
2961 having an input line of the form 'x.y', where access to attribute
2963 having an input line of the form 'x.y', where access to attribute
2962 'y' has side effects, doesn't trigger the side effect TWICE. It
2964 'y' has side effects, doesn't trigger the side effect TWICE. It
2963 is important to note that, with autocall on, these side effects
2965 is important to note that, with autocall on, these side effects
2964 can still happen.
2966 can still happen.
2965 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2967 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2966 trio. IPython offers these three kinds of special calls which are
2968 trio. IPython offers these three kinds of special calls which are
2967 not python code, and it's a good thing to have their call method
2969 not python code, and it's a good thing to have their call method
2968 be accessible as pure python functions (not just special syntax at
2970 be accessible as pure python functions (not just special syntax at
2969 the command line). It gives us a better internal implementation
2971 the command line). It gives us a better internal implementation
2970 structure, as well as exposing these for user scripting more
2972 structure, as well as exposing these for user scripting more
2971 cleanly.
2973 cleanly.
2972
2974
2973 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2975 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2974 file. Now that they'll be more likely to be used with the
2976 file. Now that they'll be more likely to be used with the
2975 persistance system (%store), I want to make sure their module path
2977 persistance system (%store), I want to make sure their module path
2976 doesn't change in the future, so that we don't break things for
2978 doesn't change in the future, so that we don't break things for
2977 users' persisted data.
2979 users' persisted data.
2978
2980
2979 * IPython/iplib.py (autoindent_update): move indentation
2981 * IPython/iplib.py (autoindent_update): move indentation
2980 management into the _text_ processing loop, not the keyboard
2982 management into the _text_ processing loop, not the keyboard
2981 interactive one. This is necessary to correctly process non-typed
2983 interactive one. This is necessary to correctly process non-typed
2982 multiline input (such as macros).
2984 multiline input (such as macros).
2983
2985
2984 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2986 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2985 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2987 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2986 which was producing problems in the resulting manual.
2988 which was producing problems in the resulting manual.
2987 (magic_whos): improve reporting of instances (show their class,
2989 (magic_whos): improve reporting of instances (show their class,
2988 instead of simply printing 'instance' which isn't terribly
2990 instead of simply printing 'instance' which isn't terribly
2989 informative).
2991 informative).
2990
2992
2991 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2993 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2992 (minor mods) to support network shares under win32.
2994 (minor mods) to support network shares under win32.
2993
2995
2994 * IPython/winconsole.py (get_console_size): add new winconsole
2996 * IPython/winconsole.py (get_console_size): add new winconsole
2995 module and fixes to page_dumb() to improve its behavior under
2997 module and fixes to page_dumb() to improve its behavior under
2996 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2998 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2997
2999
2998 * IPython/Magic.py (Macro): simplified Macro class to just
3000 * IPython/Magic.py (Macro): simplified Macro class to just
2999 subclass list. We've had only 2.2 compatibility for a very long
3001 subclass list. We've had only 2.2 compatibility for a very long
3000 time, yet I was still avoiding subclassing the builtin types. No
3002 time, yet I was still avoiding subclassing the builtin types. No
3001 more (I'm also starting to use properties, though I won't shift to
3003 more (I'm also starting to use properties, though I won't shift to
3002 2.3-specific features quite yet).
3004 2.3-specific features quite yet).
3003 (magic_store): added Ville's patch for lightweight variable
3005 (magic_store): added Ville's patch for lightweight variable
3004 persistence, after a request on the user list by Matt Wilkie
3006 persistence, after a request on the user list by Matt Wilkie
3005 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3007 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3006 details.
3008 details.
3007
3009
3008 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3010 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3009 changed the default logfile name from 'ipython.log' to
3011 changed the default logfile name from 'ipython.log' to
3010 'ipython_log.py'. These logs are real python files, and now that
3012 'ipython_log.py'. These logs are real python files, and now that
3011 we have much better multiline support, people are more likely to
3013 we have much better multiline support, people are more likely to
3012 want to use them as such. Might as well name them correctly.
3014 want to use them as such. Might as well name them correctly.
3013
3015
3014 * IPython/Magic.py: substantial cleanup. While we can't stop
3016 * IPython/Magic.py: substantial cleanup. While we can't stop
3015 using magics as mixins, due to the existing customizations 'out
3017 using magics as mixins, due to the existing customizations 'out
3016 there' which rely on the mixin naming conventions, at least I
3018 there' which rely on the mixin naming conventions, at least I
3017 cleaned out all cross-class name usage. So once we are OK with
3019 cleaned out all cross-class name usage. So once we are OK with
3018 breaking compatibility, the two systems can be separated.
3020 breaking compatibility, the two systems can be separated.
3019
3021
3020 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3022 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3021 anymore, and the class is a fair bit less hideous as well. New
3023 anymore, and the class is a fair bit less hideous as well. New
3022 features were also introduced: timestamping of input, and logging
3024 features were also introduced: timestamping of input, and logging
3023 of output results. These are user-visible with the -t and -o
3025 of output results. These are user-visible with the -t and -o
3024 options to %logstart. Closes
3026 options to %logstart. Closes
3025 http://www.scipy.net/roundup/ipython/issue11 and a request by
3027 http://www.scipy.net/roundup/ipython/issue11 and a request by
3026 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3028 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3027
3029
3028 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3030 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3029
3031
3030 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3032 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3031 better handle backslashes in paths. See the thread 'More Windows
3033 better handle backslashes in paths. See the thread 'More Windows
3032 questions part 2 - \/ characters revisited' on the iypthon user
3034 questions part 2 - \/ characters revisited' on the iypthon user
3033 list:
3035 list:
3034 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3036 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3035
3037
3036 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3038 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3037
3039
3038 (InteractiveShell.__init__): change threaded shells to not use the
3040 (InteractiveShell.__init__): change threaded shells to not use the
3039 ipython crash handler. This was causing more problems than not,
3041 ipython crash handler. This was causing more problems than not,
3040 as exceptions in the main thread (GUI code, typically) would
3042 as exceptions in the main thread (GUI code, typically) would
3041 always show up as a 'crash', when they really weren't.
3043 always show up as a 'crash', when they really weren't.
3042
3044
3043 The colors and exception mode commands (%colors/%xmode) have been
3045 The colors and exception mode commands (%colors/%xmode) have been
3044 synchronized to also take this into account, so users can get
3046 synchronized to also take this into account, so users can get
3045 verbose exceptions for their threaded code as well. I also added
3047 verbose exceptions for their threaded code as well. I also added
3046 support for activating pdb inside this exception handler as well,
3048 support for activating pdb inside this exception handler as well,
3047 so now GUI authors can use IPython's enhanced pdb at runtime.
3049 so now GUI authors can use IPython's enhanced pdb at runtime.
3048
3050
3049 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3051 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3050 true by default, and add it to the shipped ipythonrc file. Since
3052 true by default, and add it to the shipped ipythonrc file. Since
3051 this asks the user before proceeding, I think it's OK to make it
3053 this asks the user before proceeding, I think it's OK to make it
3052 true by default.
3054 true by default.
3053
3055
3054 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3056 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3055 of the previous special-casing of input in the eval loop. I think
3057 of the previous special-casing of input in the eval loop. I think
3056 this is cleaner, as they really are commands and shouldn't have
3058 this is cleaner, as they really are commands and shouldn't have
3057 a special role in the middle of the core code.
3059 a special role in the middle of the core code.
3058
3060
3059 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3061 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3060
3062
3061 * IPython/iplib.py (edit_syntax_error): added support for
3063 * IPython/iplib.py (edit_syntax_error): added support for
3062 automatically reopening the editor if the file had a syntax error
3064 automatically reopening the editor if the file had a syntax error
3063 in it. Thanks to scottt who provided the patch at:
3065 in it. Thanks to scottt who provided the patch at:
3064 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3066 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3065 version committed).
3067 version committed).
3066
3068
3067 * IPython/iplib.py (handle_normal): add suport for multi-line
3069 * IPython/iplib.py (handle_normal): add suport for multi-line
3068 input with emtpy lines. This fixes
3070 input with emtpy lines. This fixes
3069 http://www.scipy.net/roundup/ipython/issue43 and a similar
3071 http://www.scipy.net/roundup/ipython/issue43 and a similar
3070 discussion on the user list.
3072 discussion on the user list.
3071
3073
3072 WARNING: a behavior change is necessarily introduced to support
3074 WARNING: a behavior change is necessarily introduced to support
3073 blank lines: now a single blank line with whitespace does NOT
3075 blank lines: now a single blank line with whitespace does NOT
3074 break the input loop, which means that when autoindent is on, by
3076 break the input loop, which means that when autoindent is on, by
3075 default hitting return on the next (indented) line does NOT exit.
3077 default hitting return on the next (indented) line does NOT exit.
3076
3078
3077 Instead, to exit a multiline input you can either have:
3079 Instead, to exit a multiline input you can either have:
3078
3080
3079 - TWO whitespace lines (just hit return again), or
3081 - TWO whitespace lines (just hit return again), or
3080 - a single whitespace line of a different length than provided
3082 - a single whitespace line of a different length than provided
3081 by the autoindent (add or remove a space).
3083 by the autoindent (add or remove a space).
3082
3084
3083 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3085 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3084 module to better organize all readline-related functionality.
3086 module to better organize all readline-related functionality.
3085 I've deleted FlexCompleter and put all completion clases here.
3087 I've deleted FlexCompleter and put all completion clases here.
3086
3088
3087 * IPython/iplib.py (raw_input): improve indentation management.
3089 * IPython/iplib.py (raw_input): improve indentation management.
3088 It is now possible to paste indented code with autoindent on, and
3090 It is now possible to paste indented code with autoindent on, and
3089 the code is interpreted correctly (though it still looks bad on
3091 the code is interpreted correctly (though it still looks bad on
3090 screen, due to the line-oriented nature of ipython).
3092 screen, due to the line-oriented nature of ipython).
3091 (MagicCompleter.complete): change behavior so that a TAB key on an
3093 (MagicCompleter.complete): change behavior so that a TAB key on an
3092 otherwise empty line actually inserts a tab, instead of completing
3094 otherwise empty line actually inserts a tab, instead of completing
3093 on the entire global namespace. This makes it easier to use the
3095 on the entire global namespace. This makes it easier to use the
3094 TAB key for indentation. After a request by Hans Meine
3096 TAB key for indentation. After a request by Hans Meine
3095 <hans_meine-AT-gmx.net>
3097 <hans_meine-AT-gmx.net>
3096 (_prefilter): add support so that typing plain 'exit' or 'quit'
3098 (_prefilter): add support so that typing plain 'exit' or 'quit'
3097 does a sensible thing. Originally I tried to deviate as little as
3099 does a sensible thing. Originally I tried to deviate as little as
3098 possible from the default python behavior, but even that one may
3100 possible from the default python behavior, but even that one may
3099 change in this direction (thread on python-dev to that effect).
3101 change in this direction (thread on python-dev to that effect).
3100 Regardless, ipython should do the right thing even if CPython's
3102 Regardless, ipython should do the right thing even if CPython's
3101 '>>>' prompt doesn't.
3103 '>>>' prompt doesn't.
3102 (InteractiveShell): removed subclassing code.InteractiveConsole
3104 (InteractiveShell): removed subclassing code.InteractiveConsole
3103 class. By now we'd overridden just about all of its methods: I've
3105 class. By now we'd overridden just about all of its methods: I've
3104 copied the remaining two over, and now ipython is a standalone
3106 copied the remaining two over, and now ipython is a standalone
3105 class. This will provide a clearer picture for the chainsaw
3107 class. This will provide a clearer picture for the chainsaw
3106 branch refactoring.
3108 branch refactoring.
3107
3109
3108 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3110 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3109
3111
3110 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3112 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3111 failures for objects which break when dir() is called on them.
3113 failures for objects which break when dir() is called on them.
3112
3114
3113 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3115 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3114 distinct local and global namespaces in the completer API. This
3116 distinct local and global namespaces in the completer API. This
3115 change allows us to properly handle completion with distinct
3117 change allows us to properly handle completion with distinct
3116 scopes, including in embedded instances (this had never really
3118 scopes, including in embedded instances (this had never really
3117 worked correctly).
3119 worked correctly).
3118
3120
3119 Note: this introduces a change in the constructor for
3121 Note: this introduces a change in the constructor for
3120 MagicCompleter, as a new global_namespace parameter is now the
3122 MagicCompleter, as a new global_namespace parameter is now the
3121 second argument (the others were bumped one position).
3123 second argument (the others were bumped one position).
3122
3124
3123 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3125 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3124
3126
3125 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3127 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3126 embedded instances (which can be done now thanks to Vivian's
3128 embedded instances (which can be done now thanks to Vivian's
3127 frame-handling fixes for pdb).
3129 frame-handling fixes for pdb).
3128 (InteractiveShell.__init__): Fix namespace handling problem in
3130 (InteractiveShell.__init__): Fix namespace handling problem in
3129 embedded instances. We were overwriting __main__ unconditionally,
3131 embedded instances. We were overwriting __main__ unconditionally,
3130 and this should only be done for 'full' (non-embedded) IPython;
3132 and this should only be done for 'full' (non-embedded) IPython;
3131 embedded instances must respect the caller's __main__. Thanks to
3133 embedded instances must respect the caller's __main__. Thanks to
3132 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3134 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3133
3135
3134 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3136 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3135
3137
3136 * setup.py: added download_url to setup(). This registers the
3138 * setup.py: added download_url to setup(). This registers the
3137 download address at PyPI, which is not only useful to humans
3139 download address at PyPI, which is not only useful to humans
3138 browsing the site, but is also picked up by setuptools (the Eggs
3140 browsing the site, but is also picked up by setuptools (the Eggs
3139 machinery). Thanks to Ville and R. Kern for the info/discussion
3141 machinery). Thanks to Ville and R. Kern for the info/discussion
3140 on this.
3142 on this.
3141
3143
3142 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3144 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3143
3145
3144 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3146 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3145 This brings a lot of nice functionality to the pdb mode, which now
3147 This brings a lot of nice functionality to the pdb mode, which now
3146 has tab-completion, syntax highlighting, and better stack handling
3148 has tab-completion, syntax highlighting, and better stack handling
3147 than before. Many thanks to Vivian De Smedt
3149 than before. Many thanks to Vivian De Smedt
3148 <vivian-AT-vdesmedt.com> for the original patches.
3150 <vivian-AT-vdesmedt.com> for the original patches.
3149
3151
3150 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3152 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3151
3153
3152 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3154 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3153 sequence to consistently accept the banner argument. The
3155 sequence to consistently accept the banner argument. The
3154 inconsistency was tripping SAGE, thanks to Gary Zablackis
3156 inconsistency was tripping SAGE, thanks to Gary Zablackis
3155 <gzabl-AT-yahoo.com> for the report.
3157 <gzabl-AT-yahoo.com> for the report.
3156
3158
3157 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3159 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3158
3160
3159 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3161 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3160 Fix bug where a naked 'alias' call in the ipythonrc file would
3162 Fix bug where a naked 'alias' call in the ipythonrc file would
3161 cause a crash. Bug reported by Jorgen Stenarson.
3163 cause a crash. Bug reported by Jorgen Stenarson.
3162
3164
3163 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3165 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3164
3166
3165 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3167 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3166 startup time.
3168 startup time.
3167
3169
3168 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3170 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3169 instances had introduced a bug with globals in normal code. Now
3171 instances had introduced a bug with globals in normal code. Now
3170 it's working in all cases.
3172 it's working in all cases.
3171
3173
3172 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3174 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3173 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3175 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3174 has been introduced to set the default case sensitivity of the
3176 has been introduced to set the default case sensitivity of the
3175 searches. Users can still select either mode at runtime on a
3177 searches. Users can still select either mode at runtime on a
3176 per-search basis.
3178 per-search basis.
3177
3179
3178 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3180 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3179
3181
3180 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3182 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3181 attributes in wildcard searches for subclasses. Modified version
3183 attributes in wildcard searches for subclasses. Modified version
3182 of a patch by Jorgen.
3184 of a patch by Jorgen.
3183
3185
3184 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3186 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3185
3187
3186 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3188 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3187 embedded instances. I added a user_global_ns attribute to the
3189 embedded instances. I added a user_global_ns attribute to the
3188 InteractiveShell class to handle this.
3190 InteractiveShell class to handle this.
3189
3191
3190 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3192 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3191
3193
3192 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3194 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3193 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3195 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3194 (reported under win32, but may happen also in other platforms).
3196 (reported under win32, but may happen also in other platforms).
3195 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3197 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3196
3198
3197 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3199 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3198
3200
3199 * IPython/Magic.py (magic_psearch): new support for wildcard
3201 * IPython/Magic.py (magic_psearch): new support for wildcard
3200 patterns. Now, typing ?a*b will list all names which begin with a
3202 patterns. Now, typing ?a*b will list all names which begin with a
3201 and end in b, for example. The %psearch magic has full
3203 and end in b, for example. The %psearch magic has full
3202 docstrings. Many thanks to JΓΆrgen Stenarson
3204 docstrings. Many thanks to JΓΆrgen Stenarson
3203 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3205 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3204 implementing this functionality.
3206 implementing this functionality.
3205
3207
3206 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3208 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3207
3209
3208 * Manual: fixed long-standing annoyance of double-dashes (as in
3210 * Manual: fixed long-standing annoyance of double-dashes (as in
3209 --prefix=~, for example) being stripped in the HTML version. This
3211 --prefix=~, for example) being stripped in the HTML version. This
3210 is a latex2html bug, but a workaround was provided. Many thanks
3212 is a latex2html bug, but a workaround was provided. Many thanks
3211 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3213 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3212 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3214 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3213 rolling. This seemingly small issue had tripped a number of users
3215 rolling. This seemingly small issue had tripped a number of users
3214 when first installing, so I'm glad to see it gone.
3216 when first installing, so I'm glad to see it gone.
3215
3217
3216 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3218 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3217
3219
3218 * IPython/Extensions/numeric_formats.py: fix missing import,
3220 * IPython/Extensions/numeric_formats.py: fix missing import,
3219 reported by Stephen Walton.
3221 reported by Stephen Walton.
3220
3222
3221 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3223 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3222
3224
3223 * IPython/demo.py: finish demo module, fully documented now.
3225 * IPython/demo.py: finish demo module, fully documented now.
3224
3226
3225 * IPython/genutils.py (file_read): simple little utility to read a
3227 * IPython/genutils.py (file_read): simple little utility to read a
3226 file and ensure it's closed afterwards.
3228 file and ensure it's closed afterwards.
3227
3229
3228 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3230 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3229
3231
3230 * IPython/demo.py (Demo.__init__): added support for individually
3232 * IPython/demo.py (Demo.__init__): added support for individually
3231 tagging blocks for automatic execution.
3233 tagging blocks for automatic execution.
3232
3234
3233 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3235 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3234 syntax-highlighted python sources, requested by John.
3236 syntax-highlighted python sources, requested by John.
3235
3237
3236 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3238 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3237
3239
3238 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3240 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3239 finishing.
3241 finishing.
3240
3242
3241 * IPython/genutils.py (shlex_split): moved from Magic to here,
3243 * IPython/genutils.py (shlex_split): moved from Magic to here,
3242 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3244 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3243
3245
3244 * IPython/demo.py (Demo.__init__): added support for silent
3246 * IPython/demo.py (Demo.__init__): added support for silent
3245 blocks, improved marks as regexps, docstrings written.
3247 blocks, improved marks as regexps, docstrings written.
3246 (Demo.__init__): better docstring, added support for sys.argv.
3248 (Demo.__init__): better docstring, added support for sys.argv.
3247
3249
3248 * IPython/genutils.py (marquee): little utility used by the demo
3250 * IPython/genutils.py (marquee): little utility used by the demo
3249 code, handy in general.
3251 code, handy in general.
3250
3252
3251 * IPython/demo.py (Demo.__init__): new class for interactive
3253 * IPython/demo.py (Demo.__init__): new class for interactive
3252 demos. Not documented yet, I just wrote it in a hurry for
3254 demos. Not documented yet, I just wrote it in a hurry for
3253 scipy'05. Will docstring later.
3255 scipy'05. Will docstring later.
3254
3256
3255 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3257 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3256
3258
3257 * IPython/Shell.py (sigint_handler): Drastic simplification which
3259 * IPython/Shell.py (sigint_handler): Drastic simplification which
3258 also seems to make Ctrl-C work correctly across threads! This is
3260 also seems to make Ctrl-C work correctly across threads! This is
3259 so simple, that I can't beleive I'd missed it before. Needs more
3261 so simple, that I can't beleive I'd missed it before. Needs more
3260 testing, though.
3262 testing, though.
3261 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3263 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3262 like this before...
3264 like this before...
3263
3265
3264 * IPython/genutils.py (get_home_dir): add protection against
3266 * IPython/genutils.py (get_home_dir): add protection against
3265 non-dirs in win32 registry.
3267 non-dirs in win32 registry.
3266
3268
3267 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3269 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3268 bug where dict was mutated while iterating (pysh crash).
3270 bug where dict was mutated while iterating (pysh crash).
3269
3271
3270 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3272 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3271
3273
3272 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3274 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3273 spurious newlines added by this routine. After a report by
3275 spurious newlines added by this routine. After a report by
3274 F. Mantegazza.
3276 F. Mantegazza.
3275
3277
3276 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3278 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3277
3279
3278 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3280 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3279 calls. These were a leftover from the GTK 1.x days, and can cause
3281 calls. These were a leftover from the GTK 1.x days, and can cause
3280 problems in certain cases (after a report by John Hunter).
3282 problems in certain cases (after a report by John Hunter).
3281
3283
3282 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3284 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3283 os.getcwd() fails at init time. Thanks to patch from David Remahl
3285 os.getcwd() fails at init time. Thanks to patch from David Remahl
3284 <chmod007-AT-mac.com>.
3286 <chmod007-AT-mac.com>.
3285 (InteractiveShell.__init__): prevent certain special magics from
3287 (InteractiveShell.__init__): prevent certain special magics from
3286 being shadowed by aliases. Closes
3288 being shadowed by aliases. Closes
3287 http://www.scipy.net/roundup/ipython/issue41.
3289 http://www.scipy.net/roundup/ipython/issue41.
3288
3290
3289 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3291 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3290
3292
3291 * IPython/iplib.py (InteractiveShell.complete): Added new
3293 * IPython/iplib.py (InteractiveShell.complete): Added new
3292 top-level completion method to expose the completion mechanism
3294 top-level completion method to expose the completion mechanism
3293 beyond readline-based environments.
3295 beyond readline-based environments.
3294
3296
3295 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3297 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3296
3298
3297 * tools/ipsvnc (svnversion): fix svnversion capture.
3299 * tools/ipsvnc (svnversion): fix svnversion capture.
3298
3300
3299 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3301 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3300 attribute to self, which was missing. Before, it was set by a
3302 attribute to self, which was missing. Before, it was set by a
3301 routine which in certain cases wasn't being called, so the
3303 routine which in certain cases wasn't being called, so the
3302 instance could end up missing the attribute. This caused a crash.
3304 instance could end up missing the attribute. This caused a crash.
3303 Closes http://www.scipy.net/roundup/ipython/issue40.
3305 Closes http://www.scipy.net/roundup/ipython/issue40.
3304
3306
3305 2005-08-16 Fernando Perez <fperez@colorado.edu>
3307 2005-08-16 Fernando Perez <fperez@colorado.edu>
3306
3308
3307 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3309 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3308 contains non-string attribute. Closes
3310 contains non-string attribute. Closes
3309 http://www.scipy.net/roundup/ipython/issue38.
3311 http://www.scipy.net/roundup/ipython/issue38.
3310
3312
3311 2005-08-14 Fernando Perez <fperez@colorado.edu>
3313 2005-08-14 Fernando Perez <fperez@colorado.edu>
3312
3314
3313 * tools/ipsvnc: Minor improvements, to add changeset info.
3315 * tools/ipsvnc: Minor improvements, to add changeset info.
3314
3316
3315 2005-08-12 Fernando Perez <fperez@colorado.edu>
3317 2005-08-12 Fernando Perez <fperez@colorado.edu>
3316
3318
3317 * IPython/iplib.py (runsource): remove self.code_to_run_src
3319 * IPython/iplib.py (runsource): remove self.code_to_run_src
3318 attribute. I realized this is nothing more than
3320 attribute. I realized this is nothing more than
3319 '\n'.join(self.buffer), and having the same data in two different
3321 '\n'.join(self.buffer), and having the same data in two different
3320 places is just asking for synchronization bugs. This may impact
3322 places is just asking for synchronization bugs. This may impact
3321 people who have custom exception handlers, so I need to warn
3323 people who have custom exception handlers, so I need to warn
3322 ipython-dev about it (F. Mantegazza may use them).
3324 ipython-dev about it (F. Mantegazza may use them).
3323
3325
3324 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3326 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3325
3327
3326 * IPython/genutils.py: fix 2.2 compatibility (generators)
3328 * IPython/genutils.py: fix 2.2 compatibility (generators)
3327
3329
3328 2005-07-18 Fernando Perez <fperez@colorado.edu>
3330 2005-07-18 Fernando Perez <fperez@colorado.edu>
3329
3331
3330 * IPython/genutils.py (get_home_dir): fix to help users with
3332 * IPython/genutils.py (get_home_dir): fix to help users with
3331 invalid $HOME under win32.
3333 invalid $HOME under win32.
3332
3334
3333 2005-07-17 Fernando Perez <fperez@colorado.edu>
3335 2005-07-17 Fernando Perez <fperez@colorado.edu>
3334
3336
3335 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3337 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3336 some old hacks and clean up a bit other routines; code should be
3338 some old hacks and clean up a bit other routines; code should be
3337 simpler and a bit faster.
3339 simpler and a bit faster.
3338
3340
3339 * IPython/iplib.py (interact): removed some last-resort attempts
3341 * IPython/iplib.py (interact): removed some last-resort attempts
3340 to survive broken stdout/stderr. That code was only making it
3342 to survive broken stdout/stderr. That code was only making it
3341 harder to abstract out the i/o (necessary for gui integration),
3343 harder to abstract out the i/o (necessary for gui integration),
3342 and the crashes it could prevent were extremely rare in practice
3344 and the crashes it could prevent were extremely rare in practice
3343 (besides being fully user-induced in a pretty violent manner).
3345 (besides being fully user-induced in a pretty violent manner).
3344
3346
3345 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3347 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3346 Nothing major yet, but the code is simpler to read; this should
3348 Nothing major yet, but the code is simpler to read; this should
3347 make it easier to do more serious modifications in the future.
3349 make it easier to do more serious modifications in the future.
3348
3350
3349 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3351 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3350 which broke in .15 (thanks to a report by Ville).
3352 which broke in .15 (thanks to a report by Ville).
3351
3353
3352 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3354 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3353 be quite correct, I know next to nothing about unicode). This
3355 be quite correct, I know next to nothing about unicode). This
3354 will allow unicode strings to be used in prompts, amongst other
3356 will allow unicode strings to be used in prompts, amongst other
3355 cases. It also will prevent ipython from crashing when unicode
3357 cases. It also will prevent ipython from crashing when unicode
3356 shows up unexpectedly in many places. If ascii encoding fails, we
3358 shows up unexpectedly in many places. If ascii encoding fails, we
3357 assume utf_8. Currently the encoding is not a user-visible
3359 assume utf_8. Currently the encoding is not a user-visible
3358 setting, though it could be made so if there is demand for it.
3360 setting, though it could be made so if there is demand for it.
3359
3361
3360 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3362 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3361
3363
3362 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3364 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3363
3365
3364 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3366 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3365
3367
3366 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3368 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3367 code can work transparently for 2.2/2.3.
3369 code can work transparently for 2.2/2.3.
3368
3370
3369 2005-07-16 Fernando Perez <fperez@colorado.edu>
3371 2005-07-16 Fernando Perez <fperez@colorado.edu>
3370
3372
3371 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3373 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3372 out of the color scheme table used for coloring exception
3374 out of the color scheme table used for coloring exception
3373 tracebacks. This allows user code to add new schemes at runtime.
3375 tracebacks. This allows user code to add new schemes at runtime.
3374 This is a minimally modified version of the patch at
3376 This is a minimally modified version of the patch at
3375 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3377 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3376 for the contribution.
3378 for the contribution.
3377
3379
3378 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3380 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3379 slightly modified version of the patch in
3381 slightly modified version of the patch in
3380 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3382 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3381 to remove the previous try/except solution (which was costlier).
3383 to remove the previous try/except solution (which was costlier).
3382 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3384 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3383
3385
3384 2005-06-08 Fernando Perez <fperez@colorado.edu>
3386 2005-06-08 Fernando Perez <fperez@colorado.edu>
3385
3387
3386 * IPython/iplib.py (write/write_err): Add methods to abstract all
3388 * IPython/iplib.py (write/write_err): Add methods to abstract all
3387 I/O a bit more.
3389 I/O a bit more.
3388
3390
3389 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3391 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3390 warning, reported by Aric Hagberg, fix by JD Hunter.
3392 warning, reported by Aric Hagberg, fix by JD Hunter.
3391
3393
3392 2005-06-02 *** Released version 0.6.15
3394 2005-06-02 *** Released version 0.6.15
3393
3395
3394 2005-06-01 Fernando Perez <fperez@colorado.edu>
3396 2005-06-01 Fernando Perez <fperez@colorado.edu>
3395
3397
3396 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3398 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3397 tab-completion of filenames within open-quoted strings. Note that
3399 tab-completion of filenames within open-quoted strings. Note that
3398 this requires that in ~/.ipython/ipythonrc, users change the
3400 this requires that in ~/.ipython/ipythonrc, users change the
3399 readline delimiters configuration to read:
3401 readline delimiters configuration to read:
3400
3402
3401 readline_remove_delims -/~
3403 readline_remove_delims -/~
3402
3404
3403
3405
3404 2005-05-31 *** Released version 0.6.14
3406 2005-05-31 *** Released version 0.6.14
3405
3407
3406 2005-05-29 Fernando Perez <fperez@colorado.edu>
3408 2005-05-29 Fernando Perez <fperez@colorado.edu>
3407
3409
3408 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3410 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3409 with files not on the filesystem. Reported by Eliyahu Sandler
3411 with files not on the filesystem. Reported by Eliyahu Sandler
3410 <eli@gondolin.net>
3412 <eli@gondolin.net>
3411
3413
3412 2005-05-22 Fernando Perez <fperez@colorado.edu>
3414 2005-05-22 Fernando Perez <fperez@colorado.edu>
3413
3415
3414 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3416 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3415 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3417 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3416
3418
3417 2005-05-19 Fernando Perez <fperez@colorado.edu>
3419 2005-05-19 Fernando Perez <fperez@colorado.edu>
3418
3420
3419 * IPython/iplib.py (safe_execfile): close a file which could be
3421 * IPython/iplib.py (safe_execfile): close a file which could be
3420 left open (causing problems in win32, which locks open files).
3422 left open (causing problems in win32, which locks open files).
3421 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3423 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3422
3424
3423 2005-05-18 Fernando Perez <fperez@colorado.edu>
3425 2005-05-18 Fernando Perez <fperez@colorado.edu>
3424
3426
3425 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3427 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3426 keyword arguments correctly to safe_execfile().
3428 keyword arguments correctly to safe_execfile().
3427
3429
3428 2005-05-13 Fernando Perez <fperez@colorado.edu>
3430 2005-05-13 Fernando Perez <fperez@colorado.edu>
3429
3431
3430 * ipython.1: Added info about Qt to manpage, and threads warning
3432 * ipython.1: Added info about Qt to manpage, and threads warning
3431 to usage page (invoked with --help).
3433 to usage page (invoked with --help).
3432
3434
3433 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3435 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3434 new matcher (it goes at the end of the priority list) to do
3436 new matcher (it goes at the end of the priority list) to do
3435 tab-completion on named function arguments. Submitted by George
3437 tab-completion on named function arguments. Submitted by George
3436 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3438 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3437 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3439 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3438 for more details.
3440 for more details.
3439
3441
3440 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3442 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3441 SystemExit exceptions in the script being run. Thanks to a report
3443 SystemExit exceptions in the script being run. Thanks to a report
3442 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3444 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3443 producing very annoying behavior when running unit tests.
3445 producing very annoying behavior when running unit tests.
3444
3446
3445 2005-05-12 Fernando Perez <fperez@colorado.edu>
3447 2005-05-12 Fernando Perez <fperez@colorado.edu>
3446
3448
3447 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3449 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3448 which I'd broken (again) due to a changed regexp. In the process,
3450 which I'd broken (again) due to a changed regexp. In the process,
3449 added ';' as an escape to auto-quote the whole line without
3451 added ';' as an escape to auto-quote the whole line without
3450 splitting its arguments. Thanks to a report by Jerry McRae
3452 splitting its arguments. Thanks to a report by Jerry McRae
3451 <qrs0xyc02-AT-sneakemail.com>.
3453 <qrs0xyc02-AT-sneakemail.com>.
3452
3454
3453 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3455 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3454 possible crashes caused by a TokenError. Reported by Ed Schofield
3456 possible crashes caused by a TokenError. Reported by Ed Schofield
3455 <schofield-AT-ftw.at>.
3457 <schofield-AT-ftw.at>.
3456
3458
3457 2005-05-06 Fernando Perez <fperez@colorado.edu>
3459 2005-05-06 Fernando Perez <fperez@colorado.edu>
3458
3460
3459 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3461 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3460
3462
3461 2005-04-29 Fernando Perez <fperez@colorado.edu>
3463 2005-04-29 Fernando Perez <fperez@colorado.edu>
3462
3464
3463 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3465 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3464 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3466 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3465 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3467 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3466 which provides support for Qt interactive usage (similar to the
3468 which provides support for Qt interactive usage (similar to the
3467 existing one for WX and GTK). This had been often requested.
3469 existing one for WX and GTK). This had been often requested.
3468
3470
3469 2005-04-14 *** Released version 0.6.13
3471 2005-04-14 *** Released version 0.6.13
3470
3472
3471 2005-04-08 Fernando Perez <fperez@colorado.edu>
3473 2005-04-08 Fernando Perez <fperez@colorado.edu>
3472
3474
3473 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3475 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3474 from _ofind, which gets called on almost every input line. Now,
3476 from _ofind, which gets called on almost every input line. Now,
3475 we only try to get docstrings if they are actually going to be
3477 we only try to get docstrings if they are actually going to be
3476 used (the overhead of fetching unnecessary docstrings can be
3478 used (the overhead of fetching unnecessary docstrings can be
3477 noticeable for certain objects, such as Pyro proxies).
3479 noticeable for certain objects, such as Pyro proxies).
3478
3480
3479 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3481 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3480 for completers. For some reason I had been passing them the state
3482 for completers. For some reason I had been passing them the state
3481 variable, which completers never actually need, and was in
3483 variable, which completers never actually need, and was in
3482 conflict with the rlcompleter API. Custom completers ONLY need to
3484 conflict with the rlcompleter API. Custom completers ONLY need to
3483 take the text parameter.
3485 take the text parameter.
3484
3486
3485 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3487 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3486 work correctly in pysh. I've also moved all the logic which used
3488 work correctly in pysh. I've also moved all the logic which used
3487 to be in pysh.py here, which will prevent problems with future
3489 to be in pysh.py here, which will prevent problems with future
3488 upgrades. However, this time I must warn users to update their
3490 upgrades. However, this time I must warn users to update their
3489 pysh profile to include the line
3491 pysh profile to include the line
3490
3492
3491 import_all IPython.Extensions.InterpreterExec
3493 import_all IPython.Extensions.InterpreterExec
3492
3494
3493 because otherwise things won't work for them. They MUST also
3495 because otherwise things won't work for them. They MUST also
3494 delete pysh.py and the line
3496 delete pysh.py and the line
3495
3497
3496 execfile pysh.py
3498 execfile pysh.py
3497
3499
3498 from their ipythonrc-pysh.
3500 from their ipythonrc-pysh.
3499
3501
3500 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3502 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3501 robust in the face of objects whose dir() returns non-strings
3503 robust in the face of objects whose dir() returns non-strings
3502 (which it shouldn't, but some broken libs like ITK do). Thanks to
3504 (which it shouldn't, but some broken libs like ITK do). Thanks to
3503 a patch by John Hunter (implemented differently, though). Also
3505 a patch by John Hunter (implemented differently, though). Also
3504 minor improvements by using .extend instead of + on lists.
3506 minor improvements by using .extend instead of + on lists.
3505
3507
3506 * pysh.py:
3508 * pysh.py:
3507
3509
3508 2005-04-06 Fernando Perez <fperez@colorado.edu>
3510 2005-04-06 Fernando Perez <fperez@colorado.edu>
3509
3511
3510 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3512 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3511 by default, so that all users benefit from it. Those who don't
3513 by default, so that all users benefit from it. Those who don't
3512 want it can still turn it off.
3514 want it can still turn it off.
3513
3515
3514 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3516 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3515 config file, I'd forgotten about this, so users were getting it
3517 config file, I'd forgotten about this, so users were getting it
3516 off by default.
3518 off by default.
3517
3519
3518 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3520 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3519 consistency. Now magics can be called in multiline statements,
3521 consistency. Now magics can be called in multiline statements,
3520 and python variables can be expanded in magic calls via $var.
3522 and python variables can be expanded in magic calls via $var.
3521 This makes the magic system behave just like aliases or !system
3523 This makes the magic system behave just like aliases or !system
3522 calls.
3524 calls.
3523
3525
3524 2005-03-28 Fernando Perez <fperez@colorado.edu>
3526 2005-03-28 Fernando Perez <fperez@colorado.edu>
3525
3527
3526 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3528 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3527 expensive string additions for building command. Add support for
3529 expensive string additions for building command. Add support for
3528 trailing ';' when autocall is used.
3530 trailing ';' when autocall is used.
3529
3531
3530 2005-03-26 Fernando Perez <fperez@colorado.edu>
3532 2005-03-26 Fernando Perez <fperez@colorado.edu>
3531
3533
3532 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3534 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3533 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3535 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3534 ipython.el robust against prompts with any number of spaces
3536 ipython.el robust against prompts with any number of spaces
3535 (including 0) after the ':' character.
3537 (including 0) after the ':' character.
3536
3538
3537 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3539 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3538 continuation prompt, which misled users to think the line was
3540 continuation prompt, which misled users to think the line was
3539 already indented. Closes debian Bug#300847, reported to me by
3541 already indented. Closes debian Bug#300847, reported to me by
3540 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3542 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3541
3543
3542 2005-03-23 Fernando Perez <fperez@colorado.edu>
3544 2005-03-23 Fernando Perez <fperez@colorado.edu>
3543
3545
3544 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3546 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3545 properly aligned if they have embedded newlines.
3547 properly aligned if they have embedded newlines.
3546
3548
3547 * IPython/iplib.py (runlines): Add a public method to expose
3549 * IPython/iplib.py (runlines): Add a public method to expose
3548 IPython's code execution machinery, so that users can run strings
3550 IPython's code execution machinery, so that users can run strings
3549 as if they had been typed at the prompt interactively.
3551 as if they had been typed at the prompt interactively.
3550 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3552 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3551 methods which can call the system shell, but with python variable
3553 methods which can call the system shell, but with python variable
3552 expansion. The three such methods are: __IPYTHON__.system,
3554 expansion. The three such methods are: __IPYTHON__.system,
3553 .getoutput and .getoutputerror. These need to be documented in a
3555 .getoutput and .getoutputerror. These need to be documented in a
3554 'public API' section (to be written) of the manual.
3556 'public API' section (to be written) of the manual.
3555
3557
3556 2005-03-20 Fernando Perez <fperez@colorado.edu>
3558 2005-03-20 Fernando Perez <fperez@colorado.edu>
3557
3559
3558 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3560 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3559 for custom exception handling. This is quite powerful, and it
3561 for custom exception handling. This is quite powerful, and it
3560 allows for user-installable exception handlers which can trap
3562 allows for user-installable exception handlers which can trap
3561 custom exceptions at runtime and treat them separately from
3563 custom exceptions at runtime and treat them separately from
3562 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3564 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3563 Mantegazza <mantegazza-AT-ill.fr>.
3565 Mantegazza <mantegazza-AT-ill.fr>.
3564 (InteractiveShell.set_custom_completer): public API function to
3566 (InteractiveShell.set_custom_completer): public API function to
3565 add new completers at runtime.
3567 add new completers at runtime.
3566
3568
3567 2005-03-19 Fernando Perez <fperez@colorado.edu>
3569 2005-03-19 Fernando Perez <fperez@colorado.edu>
3568
3570
3569 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3571 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3570 allow objects which provide their docstrings via non-standard
3572 allow objects which provide their docstrings via non-standard
3571 mechanisms (like Pyro proxies) to still be inspected by ipython's
3573 mechanisms (like Pyro proxies) to still be inspected by ipython's
3572 ? system.
3574 ? system.
3573
3575
3574 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3576 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3575 automatic capture system. I tried quite hard to make it work
3577 automatic capture system. I tried quite hard to make it work
3576 reliably, and simply failed. I tried many combinations with the
3578 reliably, and simply failed. I tried many combinations with the
3577 subprocess module, but eventually nothing worked in all needed
3579 subprocess module, but eventually nothing worked in all needed
3578 cases (not blocking stdin for the child, duplicating stdout
3580 cases (not blocking stdin for the child, duplicating stdout
3579 without blocking, etc). The new %sc/%sx still do capture to these
3581 without blocking, etc). The new %sc/%sx still do capture to these
3580 magical list/string objects which make shell use much more
3582 magical list/string objects which make shell use much more
3581 conveninent, so not all is lost.
3583 conveninent, so not all is lost.
3582
3584
3583 XXX - FIX MANUAL for the change above!
3585 XXX - FIX MANUAL for the change above!
3584
3586
3585 (runsource): I copied code.py's runsource() into ipython to modify
3587 (runsource): I copied code.py's runsource() into ipython to modify
3586 it a bit. Now the code object and source to be executed are
3588 it a bit. Now the code object and source to be executed are
3587 stored in ipython. This makes this info accessible to third-party
3589 stored in ipython. This makes this info accessible to third-party
3588 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3590 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3589 Mantegazza <mantegazza-AT-ill.fr>.
3591 Mantegazza <mantegazza-AT-ill.fr>.
3590
3592
3591 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3593 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3592 history-search via readline (like C-p/C-n). I'd wanted this for a
3594 history-search via readline (like C-p/C-n). I'd wanted this for a
3593 long time, but only recently found out how to do it. For users
3595 long time, but only recently found out how to do it. For users
3594 who already have their ipythonrc files made and want this, just
3596 who already have their ipythonrc files made and want this, just
3595 add:
3597 add:
3596
3598
3597 readline_parse_and_bind "\e[A": history-search-backward
3599 readline_parse_and_bind "\e[A": history-search-backward
3598 readline_parse_and_bind "\e[B": history-search-forward
3600 readline_parse_and_bind "\e[B": history-search-forward
3599
3601
3600 2005-03-18 Fernando Perez <fperez@colorado.edu>
3602 2005-03-18 Fernando Perez <fperez@colorado.edu>
3601
3603
3602 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3604 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3603 LSString and SList classes which allow transparent conversions
3605 LSString and SList classes which allow transparent conversions
3604 between list mode and whitespace-separated string.
3606 between list mode and whitespace-separated string.
3605 (magic_r): Fix recursion problem in %r.
3607 (magic_r): Fix recursion problem in %r.
3606
3608
3607 * IPython/genutils.py (LSString): New class to be used for
3609 * IPython/genutils.py (LSString): New class to be used for
3608 automatic storage of the results of all alias/system calls in _o
3610 automatic storage of the results of all alias/system calls in _o
3609 and _e (stdout/err). These provide a .l/.list attribute which
3611 and _e (stdout/err). These provide a .l/.list attribute which
3610 does automatic splitting on newlines. This means that for most
3612 does automatic splitting on newlines. This means that for most
3611 uses, you'll never need to do capturing of output with %sc/%sx
3613 uses, you'll never need to do capturing of output with %sc/%sx
3612 anymore, since ipython keeps this always done for you. Note that
3614 anymore, since ipython keeps this always done for you. Note that
3613 only the LAST results are stored, the _o/e variables are
3615 only the LAST results are stored, the _o/e variables are
3614 overwritten on each call. If you need to save their contents
3616 overwritten on each call. If you need to save their contents
3615 further, simply bind them to any other name.
3617 further, simply bind them to any other name.
3616
3618
3617 2005-03-17 Fernando Perez <fperez@colorado.edu>
3619 2005-03-17 Fernando Perez <fperez@colorado.edu>
3618
3620
3619 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3621 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3620 prompt namespace handling.
3622 prompt namespace handling.
3621
3623
3622 2005-03-16 Fernando Perez <fperez@colorado.edu>
3624 2005-03-16 Fernando Perez <fperez@colorado.edu>
3623
3625
3624 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3626 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3625 classic prompts to be '>>> ' (final space was missing, and it
3627 classic prompts to be '>>> ' (final space was missing, and it
3626 trips the emacs python mode).
3628 trips the emacs python mode).
3627 (BasePrompt.__str__): Added safe support for dynamic prompt
3629 (BasePrompt.__str__): Added safe support for dynamic prompt
3628 strings. Now you can set your prompt string to be '$x', and the
3630 strings. Now you can set your prompt string to be '$x', and the
3629 value of x will be printed from your interactive namespace. The
3631 value of x will be printed from your interactive namespace. The
3630 interpolation syntax includes the full Itpl support, so
3632 interpolation syntax includes the full Itpl support, so
3631 ${foo()+x+bar()} is a valid prompt string now, and the function
3633 ${foo()+x+bar()} is a valid prompt string now, and the function
3632 calls will be made at runtime.
3634 calls will be made at runtime.
3633
3635
3634 2005-03-15 Fernando Perez <fperez@colorado.edu>
3636 2005-03-15 Fernando Perez <fperez@colorado.edu>
3635
3637
3636 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3638 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3637 avoid name clashes in pylab. %hist still works, it just forwards
3639 avoid name clashes in pylab. %hist still works, it just forwards
3638 the call to %history.
3640 the call to %history.
3639
3641
3640 2005-03-02 *** Released version 0.6.12
3642 2005-03-02 *** Released version 0.6.12
3641
3643
3642 2005-03-02 Fernando Perez <fperez@colorado.edu>
3644 2005-03-02 Fernando Perez <fperez@colorado.edu>
3643
3645
3644 * IPython/iplib.py (handle_magic): log magic calls properly as
3646 * IPython/iplib.py (handle_magic): log magic calls properly as
3645 ipmagic() function calls.
3647 ipmagic() function calls.
3646
3648
3647 * IPython/Magic.py (magic_time): Improved %time to support
3649 * IPython/Magic.py (magic_time): Improved %time to support
3648 statements and provide wall-clock as well as CPU time.
3650 statements and provide wall-clock as well as CPU time.
3649
3651
3650 2005-02-27 Fernando Perez <fperez@colorado.edu>
3652 2005-02-27 Fernando Perez <fperez@colorado.edu>
3651
3653
3652 * IPython/hooks.py: New hooks module, to expose user-modifiable
3654 * IPython/hooks.py: New hooks module, to expose user-modifiable
3653 IPython functionality in a clean manner. For now only the editor
3655 IPython functionality in a clean manner. For now only the editor
3654 hook is actually written, and other thigns which I intend to turn
3656 hook is actually written, and other thigns which I intend to turn
3655 into proper hooks aren't yet there. The display and prefilter
3657 into proper hooks aren't yet there. The display and prefilter
3656 stuff, for example, should be hooks. But at least now the
3658 stuff, for example, should be hooks. But at least now the
3657 framework is in place, and the rest can be moved here with more
3659 framework is in place, and the rest can be moved here with more
3658 time later. IPython had had a .hooks variable for a long time for
3660 time later. IPython had had a .hooks variable for a long time for
3659 this purpose, but I'd never actually used it for anything.
3661 this purpose, but I'd never actually used it for anything.
3660
3662
3661 2005-02-26 Fernando Perez <fperez@colorado.edu>
3663 2005-02-26 Fernando Perez <fperez@colorado.edu>
3662
3664
3663 * IPython/ipmaker.py (make_IPython): make the default ipython
3665 * IPython/ipmaker.py (make_IPython): make the default ipython
3664 directory be called _ipython under win32, to follow more the
3666 directory be called _ipython under win32, to follow more the
3665 naming peculiarities of that platform (where buggy software like
3667 naming peculiarities of that platform (where buggy software like
3666 Visual Sourcesafe breaks with .named directories). Reported by
3668 Visual Sourcesafe breaks with .named directories). Reported by
3667 Ville Vainio.
3669 Ville Vainio.
3668
3670
3669 2005-02-23 Fernando Perez <fperez@colorado.edu>
3671 2005-02-23 Fernando Perez <fperez@colorado.edu>
3670
3672
3671 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3673 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3672 auto_aliases for win32 which were causing problems. Users can
3674 auto_aliases for win32 which were causing problems. Users can
3673 define the ones they personally like.
3675 define the ones they personally like.
3674
3676
3675 2005-02-21 Fernando Perez <fperez@colorado.edu>
3677 2005-02-21 Fernando Perez <fperez@colorado.edu>
3676
3678
3677 * IPython/Magic.py (magic_time): new magic to time execution of
3679 * IPython/Magic.py (magic_time): new magic to time execution of
3678 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3680 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3679
3681
3680 2005-02-19 Fernando Perez <fperez@colorado.edu>
3682 2005-02-19 Fernando Perez <fperez@colorado.edu>
3681
3683
3682 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3684 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3683 into keys (for prompts, for example).
3685 into keys (for prompts, for example).
3684
3686
3685 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3687 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3686 prompts in case users want them. This introduces a small behavior
3688 prompts in case users want them. This introduces a small behavior
3687 change: ipython does not automatically add a space to all prompts
3689 change: ipython does not automatically add a space to all prompts
3688 anymore. To get the old prompts with a space, users should add it
3690 anymore. To get the old prompts with a space, users should add it
3689 manually to their ipythonrc file, so for example prompt_in1 should
3691 manually to their ipythonrc file, so for example prompt_in1 should
3690 now read 'In [\#]: ' instead of 'In [\#]:'.
3692 now read 'In [\#]: ' instead of 'In [\#]:'.
3691 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3693 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3692 file) to control left-padding of secondary prompts.
3694 file) to control left-padding of secondary prompts.
3693
3695
3694 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3696 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3695 the profiler can't be imported. Fix for Debian, which removed
3697 the profiler can't be imported. Fix for Debian, which removed
3696 profile.py because of License issues. I applied a slightly
3698 profile.py because of License issues. I applied a slightly
3697 modified version of the original Debian patch at
3699 modified version of the original Debian patch at
3698 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3700 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3699
3701
3700 2005-02-17 Fernando Perez <fperez@colorado.edu>
3702 2005-02-17 Fernando Perez <fperez@colorado.edu>
3701
3703
3702 * IPython/genutils.py (native_line_ends): Fix bug which would
3704 * IPython/genutils.py (native_line_ends): Fix bug which would
3703 cause improper line-ends under win32 b/c I was not opening files
3705 cause improper line-ends under win32 b/c I was not opening files
3704 in binary mode. Bug report and fix thanks to Ville.
3706 in binary mode. Bug report and fix thanks to Ville.
3705
3707
3706 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3708 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3707 trying to catch spurious foo[1] autocalls. My fix actually broke
3709 trying to catch spurious foo[1] autocalls. My fix actually broke
3708 ',/' autoquote/call with explicit escape (bad regexp).
3710 ',/' autoquote/call with explicit escape (bad regexp).
3709
3711
3710 2005-02-15 *** Released version 0.6.11
3712 2005-02-15 *** Released version 0.6.11
3711
3713
3712 2005-02-14 Fernando Perez <fperez@colorado.edu>
3714 2005-02-14 Fernando Perez <fperez@colorado.edu>
3713
3715
3714 * IPython/background_jobs.py: New background job management
3716 * IPython/background_jobs.py: New background job management
3715 subsystem. This is implemented via a new set of classes, and
3717 subsystem. This is implemented via a new set of classes, and
3716 IPython now provides a builtin 'jobs' object for background job
3718 IPython now provides a builtin 'jobs' object for background job
3717 execution. A convenience %bg magic serves as a lightweight
3719 execution. A convenience %bg magic serves as a lightweight
3718 frontend for starting the more common type of calls. This was
3720 frontend for starting the more common type of calls. This was
3719 inspired by discussions with B. Granger and the BackgroundCommand
3721 inspired by discussions with B. Granger and the BackgroundCommand
3720 class described in the book Python Scripting for Computational
3722 class described in the book Python Scripting for Computational
3721 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3723 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3722 (although ultimately no code from this text was used, as IPython's
3724 (although ultimately no code from this text was used, as IPython's
3723 system is a separate implementation).
3725 system is a separate implementation).
3724
3726
3725 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3727 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3726 to control the completion of single/double underscore names
3728 to control the completion of single/double underscore names
3727 separately. As documented in the example ipytonrc file, the
3729 separately. As documented in the example ipytonrc file, the
3728 readline_omit__names variable can now be set to 2, to omit even
3730 readline_omit__names variable can now be set to 2, to omit even
3729 single underscore names. Thanks to a patch by Brian Wong
3731 single underscore names. Thanks to a patch by Brian Wong
3730 <BrianWong-AT-AirgoNetworks.Com>.
3732 <BrianWong-AT-AirgoNetworks.Com>.
3731 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3733 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3732 be autocalled as foo([1]) if foo were callable. A problem for
3734 be autocalled as foo([1]) if foo were callable. A problem for
3733 things which are both callable and implement __getitem__.
3735 things which are both callable and implement __getitem__.
3734 (init_readline): Fix autoindentation for win32. Thanks to a patch
3736 (init_readline): Fix autoindentation for win32. Thanks to a patch
3735 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3737 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3736
3738
3737 2005-02-12 Fernando Perez <fperez@colorado.edu>
3739 2005-02-12 Fernando Perez <fperez@colorado.edu>
3738
3740
3739 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3741 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3740 which I had written long ago to sort out user error messages which
3742 which I had written long ago to sort out user error messages which
3741 may occur during startup. This seemed like a good idea initially,
3743 may occur during startup. This seemed like a good idea initially,
3742 but it has proven a disaster in retrospect. I don't want to
3744 but it has proven a disaster in retrospect. I don't want to
3743 change much code for now, so my fix is to set the internal 'debug'
3745 change much code for now, so my fix is to set the internal 'debug'
3744 flag to true everywhere, whose only job was precisely to control
3746 flag to true everywhere, whose only job was precisely to control
3745 this subsystem. This closes issue 28 (as well as avoiding all
3747 this subsystem. This closes issue 28 (as well as avoiding all
3746 sorts of strange hangups which occur from time to time).
3748 sorts of strange hangups which occur from time to time).
3747
3749
3748 2005-02-07 Fernando Perez <fperez@colorado.edu>
3750 2005-02-07 Fernando Perez <fperez@colorado.edu>
3749
3751
3750 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3752 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3751 previous call produced a syntax error.
3753 previous call produced a syntax error.
3752
3754
3753 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3755 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3754 classes without constructor.
3756 classes without constructor.
3755
3757
3756 2005-02-06 Fernando Perez <fperez@colorado.edu>
3758 2005-02-06 Fernando Perez <fperez@colorado.edu>
3757
3759
3758 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3760 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3759 completions with the results of each matcher, so we return results
3761 completions with the results of each matcher, so we return results
3760 to the user from all namespaces. This breaks with ipython
3762 to the user from all namespaces. This breaks with ipython
3761 tradition, but I think it's a nicer behavior. Now you get all
3763 tradition, but I think it's a nicer behavior. Now you get all
3762 possible completions listed, from all possible namespaces (python,
3764 possible completions listed, from all possible namespaces (python,
3763 filesystem, magics...) After a request by John Hunter
3765 filesystem, magics...) After a request by John Hunter
3764 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3766 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3765
3767
3766 2005-02-05 Fernando Perez <fperez@colorado.edu>
3768 2005-02-05 Fernando Perez <fperez@colorado.edu>
3767
3769
3768 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3770 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3769 the call had quote characters in it (the quotes were stripped).
3771 the call had quote characters in it (the quotes were stripped).
3770
3772
3771 2005-01-31 Fernando Perez <fperez@colorado.edu>
3773 2005-01-31 Fernando Perez <fperez@colorado.edu>
3772
3774
3773 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3775 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3774 Itpl.itpl() to make the code more robust against psyco
3776 Itpl.itpl() to make the code more robust against psyco
3775 optimizations.
3777 optimizations.
3776
3778
3777 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3779 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3778 of causing an exception. Quicker, cleaner.
3780 of causing an exception. Quicker, cleaner.
3779
3781
3780 2005-01-28 Fernando Perez <fperez@colorado.edu>
3782 2005-01-28 Fernando Perez <fperez@colorado.edu>
3781
3783
3782 * scripts/ipython_win_post_install.py (install): hardcode
3784 * scripts/ipython_win_post_install.py (install): hardcode
3783 sys.prefix+'python.exe' as the executable path. It turns out that
3785 sys.prefix+'python.exe' as the executable path. It turns out that
3784 during the post-installation run, sys.executable resolves to the
3786 during the post-installation run, sys.executable resolves to the
3785 name of the binary installer! I should report this as a distutils
3787 name of the binary installer! I should report this as a distutils
3786 bug, I think. I updated the .10 release with this tiny fix, to
3788 bug, I think. I updated the .10 release with this tiny fix, to
3787 avoid annoying the lists further.
3789 avoid annoying the lists further.
3788
3790
3789 2005-01-27 *** Released version 0.6.10
3791 2005-01-27 *** Released version 0.6.10
3790
3792
3791 2005-01-27 Fernando Perez <fperez@colorado.edu>
3793 2005-01-27 Fernando Perez <fperez@colorado.edu>
3792
3794
3793 * IPython/numutils.py (norm): Added 'inf' as optional name for
3795 * IPython/numutils.py (norm): Added 'inf' as optional name for
3794 L-infinity norm, included references to mathworld.com for vector
3796 L-infinity norm, included references to mathworld.com for vector
3795 norm definitions.
3797 norm definitions.
3796 (amin/amax): added amin/amax for array min/max. Similar to what
3798 (amin/amax): added amin/amax for array min/max. Similar to what
3797 pylab ships with after the recent reorganization of names.
3799 pylab ships with after the recent reorganization of names.
3798 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3800 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3799
3801
3800 * ipython.el: committed Alex's recent fixes and improvements.
3802 * ipython.el: committed Alex's recent fixes and improvements.
3801 Tested with python-mode from CVS, and it looks excellent. Since
3803 Tested with python-mode from CVS, and it looks excellent. Since
3802 python-mode hasn't released anything in a while, I'm temporarily
3804 python-mode hasn't released anything in a while, I'm temporarily
3803 putting a copy of today's CVS (v 4.70) of python-mode in:
3805 putting a copy of today's CVS (v 4.70) of python-mode in:
3804 http://ipython.scipy.org/tmp/python-mode.el
3806 http://ipython.scipy.org/tmp/python-mode.el
3805
3807
3806 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3808 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3807 sys.executable for the executable name, instead of assuming it's
3809 sys.executable for the executable name, instead of assuming it's
3808 called 'python.exe' (the post-installer would have produced broken
3810 called 'python.exe' (the post-installer would have produced broken
3809 setups on systems with a differently named python binary).
3811 setups on systems with a differently named python binary).
3810
3812
3811 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3813 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3812 references to os.linesep, to make the code more
3814 references to os.linesep, to make the code more
3813 platform-independent. This is also part of the win32 coloring
3815 platform-independent. This is also part of the win32 coloring
3814 fixes.
3816 fixes.
3815
3817
3816 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3818 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3817 lines, which actually cause coloring bugs because the length of
3819 lines, which actually cause coloring bugs because the length of
3818 the line is very difficult to correctly compute with embedded
3820 the line is very difficult to correctly compute with embedded
3819 escapes. This was the source of all the coloring problems under
3821 escapes. This was the source of all the coloring problems under
3820 Win32. I think that _finally_, Win32 users have a properly
3822 Win32. I think that _finally_, Win32 users have a properly
3821 working ipython in all respects. This would never have happened
3823 working ipython in all respects. This would never have happened
3822 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3824 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3823
3825
3824 2005-01-26 *** Released version 0.6.9
3826 2005-01-26 *** Released version 0.6.9
3825
3827
3826 2005-01-25 Fernando Perez <fperez@colorado.edu>
3828 2005-01-25 Fernando Perez <fperez@colorado.edu>
3827
3829
3828 * setup.py: finally, we have a true Windows installer, thanks to
3830 * setup.py: finally, we have a true Windows installer, thanks to
3829 the excellent work of Viktor Ransmayr
3831 the excellent work of Viktor Ransmayr
3830 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3832 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3831 Windows users. The setup routine is quite a bit cleaner thanks to
3833 Windows users. The setup routine is quite a bit cleaner thanks to
3832 this, and the post-install script uses the proper functions to
3834 this, and the post-install script uses the proper functions to
3833 allow a clean de-installation using the standard Windows Control
3835 allow a clean de-installation using the standard Windows Control
3834 Panel.
3836 Panel.
3835
3837
3836 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3838 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3837 environment variable under all OSes (including win32) if
3839 environment variable under all OSes (including win32) if
3838 available. This will give consistency to win32 users who have set
3840 available. This will give consistency to win32 users who have set
3839 this variable for any reason. If os.environ['HOME'] fails, the
3841 this variable for any reason. If os.environ['HOME'] fails, the
3840 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3842 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3841
3843
3842 2005-01-24 Fernando Perez <fperez@colorado.edu>
3844 2005-01-24 Fernando Perez <fperez@colorado.edu>
3843
3845
3844 * IPython/numutils.py (empty_like): add empty_like(), similar to
3846 * IPython/numutils.py (empty_like): add empty_like(), similar to
3845 zeros_like() but taking advantage of the new empty() Numeric routine.
3847 zeros_like() but taking advantage of the new empty() Numeric routine.
3846
3848
3847 2005-01-23 *** Released version 0.6.8
3849 2005-01-23 *** Released version 0.6.8
3848
3850
3849 2005-01-22 Fernando Perez <fperez@colorado.edu>
3851 2005-01-22 Fernando Perez <fperez@colorado.edu>
3850
3852
3851 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3853 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3852 automatic show() calls. After discussing things with JDH, it
3854 automatic show() calls. After discussing things with JDH, it
3853 turns out there are too many corner cases where this can go wrong.
3855 turns out there are too many corner cases where this can go wrong.
3854 It's best not to try to be 'too smart', and simply have ipython
3856 It's best not to try to be 'too smart', and simply have ipython
3855 reproduce as much as possible the default behavior of a normal
3857 reproduce as much as possible the default behavior of a normal
3856 python shell.
3858 python shell.
3857
3859
3858 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3860 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3859 line-splitting regexp and _prefilter() to avoid calling getattr()
3861 line-splitting regexp and _prefilter() to avoid calling getattr()
3860 on assignments. This closes
3862 on assignments. This closes
3861 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3863 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3862 readline uses getattr(), so a simple <TAB> keypress is still
3864 readline uses getattr(), so a simple <TAB> keypress is still
3863 enough to trigger getattr() calls on an object.
3865 enough to trigger getattr() calls on an object.
3864
3866
3865 2005-01-21 Fernando Perez <fperez@colorado.edu>
3867 2005-01-21 Fernando Perez <fperez@colorado.edu>
3866
3868
3867 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3869 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3868 docstring under pylab so it doesn't mask the original.
3870 docstring under pylab so it doesn't mask the original.
3869
3871
3870 2005-01-21 *** Released version 0.6.7
3872 2005-01-21 *** Released version 0.6.7
3871
3873
3872 2005-01-21 Fernando Perez <fperez@colorado.edu>
3874 2005-01-21 Fernando Perez <fperez@colorado.edu>
3873
3875
3874 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3876 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3875 signal handling for win32 users in multithreaded mode.
3877 signal handling for win32 users in multithreaded mode.
3876
3878
3877 2005-01-17 Fernando Perez <fperez@colorado.edu>
3879 2005-01-17 Fernando Perez <fperez@colorado.edu>
3878
3880
3879 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3881 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3880 instances with no __init__. After a crash report by Norbert Nemec
3882 instances with no __init__. After a crash report by Norbert Nemec
3881 <Norbert-AT-nemec-online.de>.
3883 <Norbert-AT-nemec-online.de>.
3882
3884
3883 2005-01-14 Fernando Perez <fperez@colorado.edu>
3885 2005-01-14 Fernando Perez <fperez@colorado.edu>
3884
3886
3885 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3887 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3886 names for verbose exceptions, when multiple dotted names and the
3888 names for verbose exceptions, when multiple dotted names and the
3887 'parent' object were present on the same line.
3889 'parent' object were present on the same line.
3888
3890
3889 2005-01-11 Fernando Perez <fperez@colorado.edu>
3891 2005-01-11 Fernando Perez <fperez@colorado.edu>
3890
3892
3891 * IPython/genutils.py (flag_calls): new utility to trap and flag
3893 * IPython/genutils.py (flag_calls): new utility to trap and flag
3892 calls in functions. I need it to clean up matplotlib support.
3894 calls in functions. I need it to clean up matplotlib support.
3893 Also removed some deprecated code in genutils.
3895 Also removed some deprecated code in genutils.
3894
3896
3895 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3897 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3896 that matplotlib scripts called with %run, which don't call show()
3898 that matplotlib scripts called with %run, which don't call show()
3897 themselves, still have their plotting windows open.
3899 themselves, still have their plotting windows open.
3898
3900
3899 2005-01-05 Fernando Perez <fperez@colorado.edu>
3901 2005-01-05 Fernando Perez <fperez@colorado.edu>
3900
3902
3901 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3903 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3902 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3904 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3903
3905
3904 2004-12-19 Fernando Perez <fperez@colorado.edu>
3906 2004-12-19 Fernando Perez <fperez@colorado.edu>
3905
3907
3906 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3908 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3907 parent_runcode, which was an eyesore. The same result can be
3909 parent_runcode, which was an eyesore. The same result can be
3908 obtained with Python's regular superclass mechanisms.
3910 obtained with Python's regular superclass mechanisms.
3909
3911
3910 2004-12-17 Fernando Perez <fperez@colorado.edu>
3912 2004-12-17 Fernando Perez <fperez@colorado.edu>
3911
3913
3912 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3914 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3913 reported by Prabhu.
3915 reported by Prabhu.
3914 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3916 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3915 sys.stderr) instead of explicitly calling sys.stderr. This helps
3917 sys.stderr) instead of explicitly calling sys.stderr. This helps
3916 maintain our I/O abstractions clean, for future GUI embeddings.
3918 maintain our I/O abstractions clean, for future GUI embeddings.
3917
3919
3918 * IPython/genutils.py (info): added new utility for sys.stderr
3920 * IPython/genutils.py (info): added new utility for sys.stderr
3919 unified info message handling (thin wrapper around warn()).
3921 unified info message handling (thin wrapper around warn()).
3920
3922
3921 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3923 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3922 composite (dotted) names on verbose exceptions.
3924 composite (dotted) names on verbose exceptions.
3923 (VerboseTB.nullrepr): harden against another kind of errors which
3925 (VerboseTB.nullrepr): harden against another kind of errors which
3924 Python's inspect module can trigger, and which were crashing
3926 Python's inspect module can trigger, and which were crashing
3925 IPython. Thanks to a report by Marco Lombardi
3927 IPython. Thanks to a report by Marco Lombardi
3926 <mlombard-AT-ma010192.hq.eso.org>.
3928 <mlombard-AT-ma010192.hq.eso.org>.
3927
3929
3928 2004-12-13 *** Released version 0.6.6
3930 2004-12-13 *** Released version 0.6.6
3929
3931
3930 2004-12-12 Fernando Perez <fperez@colorado.edu>
3932 2004-12-12 Fernando Perez <fperez@colorado.edu>
3931
3933
3932 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3934 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3933 generated by pygtk upon initialization if it was built without
3935 generated by pygtk upon initialization if it was built without
3934 threads (for matplotlib users). After a crash reported by
3936 threads (for matplotlib users). After a crash reported by
3935 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3937 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3936
3938
3937 * IPython/ipmaker.py (make_IPython): fix small bug in the
3939 * IPython/ipmaker.py (make_IPython): fix small bug in the
3938 import_some parameter for multiple imports.
3940 import_some parameter for multiple imports.
3939
3941
3940 * IPython/iplib.py (ipmagic): simplified the interface of
3942 * IPython/iplib.py (ipmagic): simplified the interface of
3941 ipmagic() to take a single string argument, just as it would be
3943 ipmagic() to take a single string argument, just as it would be
3942 typed at the IPython cmd line.
3944 typed at the IPython cmd line.
3943 (ipalias): Added new ipalias() with an interface identical to
3945 (ipalias): Added new ipalias() with an interface identical to
3944 ipmagic(). This completes exposing a pure python interface to the
3946 ipmagic(). This completes exposing a pure python interface to the
3945 alias and magic system, which can be used in loops or more complex
3947 alias and magic system, which can be used in loops or more complex
3946 code where IPython's automatic line mangling is not active.
3948 code where IPython's automatic line mangling is not active.
3947
3949
3948 * IPython/genutils.py (timing): changed interface of timing to
3950 * IPython/genutils.py (timing): changed interface of timing to
3949 simply run code once, which is the most common case. timings()
3951 simply run code once, which is the most common case. timings()
3950 remains unchanged, for the cases where you want multiple runs.
3952 remains unchanged, for the cases where you want multiple runs.
3951
3953
3952 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3954 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3953 bug where Python2.2 crashes with exec'ing code which does not end
3955 bug where Python2.2 crashes with exec'ing code which does not end
3954 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3956 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3955 before.
3957 before.
3956
3958
3957 2004-12-10 Fernando Perez <fperez@colorado.edu>
3959 2004-12-10 Fernando Perez <fperez@colorado.edu>
3958
3960
3959 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3961 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3960 -t to -T, to accomodate the new -t flag in %run (the %run and
3962 -t to -T, to accomodate the new -t flag in %run (the %run and
3961 %prun options are kind of intermixed, and it's not easy to change
3963 %prun options are kind of intermixed, and it's not easy to change
3962 this with the limitations of python's getopt).
3964 this with the limitations of python's getopt).
3963
3965
3964 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3966 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3965 the execution of scripts. It's not as fine-tuned as timeit.py,
3967 the execution of scripts. It's not as fine-tuned as timeit.py,
3966 but it works from inside ipython (and under 2.2, which lacks
3968 but it works from inside ipython (and under 2.2, which lacks
3967 timeit.py). Optionally a number of runs > 1 can be given for
3969 timeit.py). Optionally a number of runs > 1 can be given for
3968 timing very short-running code.
3970 timing very short-running code.
3969
3971
3970 * IPython/genutils.py (uniq_stable): new routine which returns a
3972 * IPython/genutils.py (uniq_stable): new routine which returns a
3971 list of unique elements in any iterable, but in stable order of
3973 list of unique elements in any iterable, but in stable order of
3972 appearance. I needed this for the ultraTB fixes, and it's a handy
3974 appearance. I needed this for the ultraTB fixes, and it's a handy
3973 utility.
3975 utility.
3974
3976
3975 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3977 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3976 dotted names in Verbose exceptions. This had been broken since
3978 dotted names in Verbose exceptions. This had been broken since
3977 the very start, now x.y will properly be printed in a Verbose
3979 the very start, now x.y will properly be printed in a Verbose
3978 traceback, instead of x being shown and y appearing always as an
3980 traceback, instead of x being shown and y appearing always as an
3979 'undefined global'. Getting this to work was a bit tricky,
3981 'undefined global'. Getting this to work was a bit tricky,
3980 because by default python tokenizers are stateless. Saved by
3982 because by default python tokenizers are stateless. Saved by
3981 python's ability to easily add a bit of state to an arbitrary
3983 python's ability to easily add a bit of state to an arbitrary
3982 function (without needing to build a full-blown callable object).
3984 function (without needing to build a full-blown callable object).
3983
3985
3984 Also big cleanup of this code, which had horrendous runtime
3986 Also big cleanup of this code, which had horrendous runtime
3985 lookups of zillions of attributes for colorization. Moved all
3987 lookups of zillions of attributes for colorization. Moved all
3986 this code into a few templates, which make it cleaner and quicker.
3988 this code into a few templates, which make it cleaner and quicker.
3987
3989
3988 Printout quality was also improved for Verbose exceptions: one
3990 Printout quality was also improved for Verbose exceptions: one
3989 variable per line, and memory addresses are printed (this can be
3991 variable per line, and memory addresses are printed (this can be
3990 quite handy in nasty debugging situations, which is what Verbose
3992 quite handy in nasty debugging situations, which is what Verbose
3991 is for).
3993 is for).
3992
3994
3993 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3995 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3994 the command line as scripts to be loaded by embedded instances.
3996 the command line as scripts to be loaded by embedded instances.
3995 Doing so has the potential for an infinite recursion if there are
3997 Doing so has the potential for an infinite recursion if there are
3996 exceptions thrown in the process. This fixes a strange crash
3998 exceptions thrown in the process. This fixes a strange crash
3997 reported by Philippe MULLER <muller-AT-irit.fr>.
3999 reported by Philippe MULLER <muller-AT-irit.fr>.
3998
4000
3999 2004-12-09 Fernando Perez <fperez@colorado.edu>
4001 2004-12-09 Fernando Perez <fperez@colorado.edu>
4000
4002
4001 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4003 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4002 to reflect new names in matplotlib, which now expose the
4004 to reflect new names in matplotlib, which now expose the
4003 matlab-compatible interface via a pylab module instead of the
4005 matlab-compatible interface via a pylab module instead of the
4004 'matlab' name. The new code is backwards compatible, so users of
4006 'matlab' name. The new code is backwards compatible, so users of
4005 all matplotlib versions are OK. Patch by J. Hunter.
4007 all matplotlib versions are OK. Patch by J. Hunter.
4006
4008
4007 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4009 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4008 of __init__ docstrings for instances (class docstrings are already
4010 of __init__ docstrings for instances (class docstrings are already
4009 automatically printed). Instances with customized docstrings
4011 automatically printed). Instances with customized docstrings
4010 (indep. of the class) are also recognized and all 3 separate
4012 (indep. of the class) are also recognized and all 3 separate
4011 docstrings are printed (instance, class, constructor). After some
4013 docstrings are printed (instance, class, constructor). After some
4012 comments/suggestions by J. Hunter.
4014 comments/suggestions by J. Hunter.
4013
4015
4014 2004-12-05 Fernando Perez <fperez@colorado.edu>
4016 2004-12-05 Fernando Perez <fperez@colorado.edu>
4015
4017
4016 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4018 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4017 warnings when tab-completion fails and triggers an exception.
4019 warnings when tab-completion fails and triggers an exception.
4018
4020
4019 2004-12-03 Fernando Perez <fperez@colorado.edu>
4021 2004-12-03 Fernando Perez <fperez@colorado.edu>
4020
4022
4021 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4023 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4022 be triggered when using 'run -p'. An incorrect option flag was
4024 be triggered when using 'run -p'. An incorrect option flag was
4023 being set ('d' instead of 'D').
4025 being set ('d' instead of 'D').
4024 (manpage): fix missing escaped \- sign.
4026 (manpage): fix missing escaped \- sign.
4025
4027
4026 2004-11-30 *** Released version 0.6.5
4028 2004-11-30 *** Released version 0.6.5
4027
4029
4028 2004-11-30 Fernando Perez <fperez@colorado.edu>
4030 2004-11-30 Fernando Perez <fperez@colorado.edu>
4029
4031
4030 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4032 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4031 setting with -d option.
4033 setting with -d option.
4032
4034
4033 * setup.py (docfiles): Fix problem where the doc glob I was using
4035 * setup.py (docfiles): Fix problem where the doc glob I was using
4034 was COMPLETELY BROKEN. It was giving the right files by pure
4036 was COMPLETELY BROKEN. It was giving the right files by pure
4035 accident, but failed once I tried to include ipython.el. Note:
4037 accident, but failed once I tried to include ipython.el. Note:
4036 glob() does NOT allow you to do exclusion on multiple endings!
4038 glob() does NOT allow you to do exclusion on multiple endings!
4037
4039
4038 2004-11-29 Fernando Perez <fperez@colorado.edu>
4040 2004-11-29 Fernando Perez <fperez@colorado.edu>
4039
4041
4040 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4042 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4041 the manpage as the source. Better formatting & consistency.
4043 the manpage as the source. Better formatting & consistency.
4042
4044
4043 * IPython/Magic.py (magic_run): Added new -d option, to run
4045 * IPython/Magic.py (magic_run): Added new -d option, to run
4044 scripts under the control of the python pdb debugger. Note that
4046 scripts under the control of the python pdb debugger. Note that
4045 this required changing the %prun option -d to -D, to avoid a clash
4047 this required changing the %prun option -d to -D, to avoid a clash
4046 (since %run must pass options to %prun, and getopt is too dumb to
4048 (since %run must pass options to %prun, and getopt is too dumb to
4047 handle options with string values with embedded spaces). Thanks
4049 handle options with string values with embedded spaces). Thanks
4048 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4050 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4049 (magic_who_ls): added type matching to %who and %whos, so that one
4051 (magic_who_ls): added type matching to %who and %whos, so that one
4050 can filter their output to only include variables of certain
4052 can filter their output to only include variables of certain
4051 types. Another suggestion by Matthew.
4053 types. Another suggestion by Matthew.
4052 (magic_whos): Added memory summaries in kb and Mb for arrays.
4054 (magic_whos): Added memory summaries in kb and Mb for arrays.
4053 (magic_who): Improve formatting (break lines every 9 vars).
4055 (magic_who): Improve formatting (break lines every 9 vars).
4054
4056
4055 2004-11-28 Fernando Perez <fperez@colorado.edu>
4057 2004-11-28 Fernando Perez <fperez@colorado.edu>
4056
4058
4057 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4059 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4058 cache when empty lines were present.
4060 cache when empty lines were present.
4059
4061
4060 2004-11-24 Fernando Perez <fperez@colorado.edu>
4062 2004-11-24 Fernando Perez <fperez@colorado.edu>
4061
4063
4062 * IPython/usage.py (__doc__): document the re-activated threading
4064 * IPython/usage.py (__doc__): document the re-activated threading
4063 options for WX and GTK.
4065 options for WX and GTK.
4064
4066
4065 2004-11-23 Fernando Perez <fperez@colorado.edu>
4067 2004-11-23 Fernando Perez <fperez@colorado.edu>
4066
4068
4067 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4069 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4068 the -wthread and -gthread options, along with a new -tk one to try
4070 the -wthread and -gthread options, along with a new -tk one to try
4069 and coordinate Tk threading with wx/gtk. The tk support is very
4071 and coordinate Tk threading with wx/gtk. The tk support is very
4070 platform dependent, since it seems to require Tcl and Tk to be
4072 platform dependent, since it seems to require Tcl and Tk to be
4071 built with threads (Fedora1/2 appears NOT to have it, but in
4073 built with threads (Fedora1/2 appears NOT to have it, but in
4072 Prabhu's Debian boxes it works OK). But even with some Tk
4074 Prabhu's Debian boxes it works OK). But even with some Tk
4073 limitations, this is a great improvement.
4075 limitations, this is a great improvement.
4074
4076
4075 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4077 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4076 info in user prompts. Patch by Prabhu.
4078 info in user prompts. Patch by Prabhu.
4077
4079
4078 2004-11-18 Fernando Perez <fperez@colorado.edu>
4080 2004-11-18 Fernando Perez <fperez@colorado.edu>
4079
4081
4080 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4082 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4081 EOFErrors and bail, to avoid infinite loops if a non-terminating
4083 EOFErrors and bail, to avoid infinite loops if a non-terminating
4082 file is fed into ipython. Patch submitted in issue 19 by user,
4084 file is fed into ipython. Patch submitted in issue 19 by user,
4083 many thanks.
4085 many thanks.
4084
4086
4085 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4087 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4086 autoquote/parens in continuation prompts, which can cause lots of
4088 autoquote/parens in continuation prompts, which can cause lots of
4087 problems. Closes roundup issue 20.
4089 problems. Closes roundup issue 20.
4088
4090
4089 2004-11-17 Fernando Perez <fperez@colorado.edu>
4091 2004-11-17 Fernando Perez <fperez@colorado.edu>
4090
4092
4091 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4093 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4092 reported as debian bug #280505. I'm not sure my local changelog
4094 reported as debian bug #280505. I'm not sure my local changelog
4093 entry has the proper debian format (Jack?).
4095 entry has the proper debian format (Jack?).
4094
4096
4095 2004-11-08 *** Released version 0.6.4
4097 2004-11-08 *** Released version 0.6.4
4096
4098
4097 2004-11-08 Fernando Perez <fperez@colorado.edu>
4099 2004-11-08 Fernando Perez <fperez@colorado.edu>
4098
4100
4099 * IPython/iplib.py (init_readline): Fix exit message for Windows
4101 * IPython/iplib.py (init_readline): Fix exit message for Windows
4100 when readline is active. Thanks to a report by Eric Jones
4102 when readline is active. Thanks to a report by Eric Jones
4101 <eric-AT-enthought.com>.
4103 <eric-AT-enthought.com>.
4102
4104
4103 2004-11-07 Fernando Perez <fperez@colorado.edu>
4105 2004-11-07 Fernando Perez <fperez@colorado.edu>
4104
4106
4105 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4107 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4106 sometimes seen by win2k/cygwin users.
4108 sometimes seen by win2k/cygwin users.
4107
4109
4108 2004-11-06 Fernando Perez <fperez@colorado.edu>
4110 2004-11-06 Fernando Perez <fperez@colorado.edu>
4109
4111
4110 * IPython/iplib.py (interact): Change the handling of %Exit from
4112 * IPython/iplib.py (interact): Change the handling of %Exit from
4111 trying to propagate a SystemExit to an internal ipython flag.
4113 trying to propagate a SystemExit to an internal ipython flag.
4112 This is less elegant than using Python's exception mechanism, but
4114 This is less elegant than using Python's exception mechanism, but
4113 I can't get that to work reliably with threads, so under -pylab
4115 I can't get that to work reliably with threads, so under -pylab
4114 %Exit was hanging IPython. Cross-thread exception handling is
4116 %Exit was hanging IPython. Cross-thread exception handling is
4115 really a bitch. Thaks to a bug report by Stephen Walton
4117 really a bitch. Thaks to a bug report by Stephen Walton
4116 <stephen.walton-AT-csun.edu>.
4118 <stephen.walton-AT-csun.edu>.
4117
4119
4118 2004-11-04 Fernando Perez <fperez@colorado.edu>
4120 2004-11-04 Fernando Perez <fperez@colorado.edu>
4119
4121
4120 * IPython/iplib.py (raw_input_original): store a pointer to the
4122 * IPython/iplib.py (raw_input_original): store a pointer to the
4121 true raw_input to harden against code which can modify it
4123 true raw_input to harden against code which can modify it
4122 (wx.py.PyShell does this and would otherwise crash ipython).
4124 (wx.py.PyShell does this and would otherwise crash ipython).
4123 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4125 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4124
4126
4125 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4127 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4126 Ctrl-C problem, which does not mess up the input line.
4128 Ctrl-C problem, which does not mess up the input line.
4127
4129
4128 2004-11-03 Fernando Perez <fperez@colorado.edu>
4130 2004-11-03 Fernando Perez <fperez@colorado.edu>
4129
4131
4130 * IPython/Release.py: Changed licensing to BSD, in all files.
4132 * IPython/Release.py: Changed licensing to BSD, in all files.
4131 (name): lowercase name for tarball/RPM release.
4133 (name): lowercase name for tarball/RPM release.
4132
4134
4133 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4135 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4134 use throughout ipython.
4136 use throughout ipython.
4135
4137
4136 * IPython/Magic.py (Magic._ofind): Switch to using the new
4138 * IPython/Magic.py (Magic._ofind): Switch to using the new
4137 OInspect.getdoc() function.
4139 OInspect.getdoc() function.
4138
4140
4139 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4141 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4140 of the line currently being canceled via Ctrl-C. It's extremely
4142 of the line currently being canceled via Ctrl-C. It's extremely
4141 ugly, but I don't know how to do it better (the problem is one of
4143 ugly, but I don't know how to do it better (the problem is one of
4142 handling cross-thread exceptions).
4144 handling cross-thread exceptions).
4143
4145
4144 2004-10-28 Fernando Perez <fperez@colorado.edu>
4146 2004-10-28 Fernando Perez <fperez@colorado.edu>
4145
4147
4146 * IPython/Shell.py (signal_handler): add signal handlers to trap
4148 * IPython/Shell.py (signal_handler): add signal handlers to trap
4147 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4149 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4148 report by Francesc Alted.
4150 report by Francesc Alted.
4149
4151
4150 2004-10-21 Fernando Perez <fperez@colorado.edu>
4152 2004-10-21 Fernando Perez <fperez@colorado.edu>
4151
4153
4152 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4154 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4153 to % for pysh syntax extensions.
4155 to % for pysh syntax extensions.
4154
4156
4155 2004-10-09 Fernando Perez <fperez@colorado.edu>
4157 2004-10-09 Fernando Perez <fperez@colorado.edu>
4156
4158
4157 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4159 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4158 arrays to print a more useful summary, without calling str(arr).
4160 arrays to print a more useful summary, without calling str(arr).
4159 This avoids the problem of extremely lengthy computations which
4161 This avoids the problem of extremely lengthy computations which
4160 occur if arr is large, and appear to the user as a system lockup
4162 occur if arr is large, and appear to the user as a system lockup
4161 with 100% cpu activity. After a suggestion by Kristian Sandberg
4163 with 100% cpu activity. After a suggestion by Kristian Sandberg
4162 <Kristian.Sandberg@colorado.edu>.
4164 <Kristian.Sandberg@colorado.edu>.
4163 (Magic.__init__): fix bug in global magic escapes not being
4165 (Magic.__init__): fix bug in global magic escapes not being
4164 correctly set.
4166 correctly set.
4165
4167
4166 2004-10-08 Fernando Perez <fperez@colorado.edu>
4168 2004-10-08 Fernando Perez <fperez@colorado.edu>
4167
4169
4168 * IPython/Magic.py (__license__): change to absolute imports of
4170 * IPython/Magic.py (__license__): change to absolute imports of
4169 ipython's own internal packages, to start adapting to the absolute
4171 ipython's own internal packages, to start adapting to the absolute
4170 import requirement of PEP-328.
4172 import requirement of PEP-328.
4171
4173
4172 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4174 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4173 files, and standardize author/license marks through the Release
4175 files, and standardize author/license marks through the Release
4174 module instead of having per/file stuff (except for files with
4176 module instead of having per/file stuff (except for files with
4175 particular licenses, like the MIT/PSF-licensed codes).
4177 particular licenses, like the MIT/PSF-licensed codes).
4176
4178
4177 * IPython/Debugger.py: remove dead code for python 2.1
4179 * IPython/Debugger.py: remove dead code for python 2.1
4178
4180
4179 2004-10-04 Fernando Perez <fperez@colorado.edu>
4181 2004-10-04 Fernando Perez <fperez@colorado.edu>
4180
4182
4181 * IPython/iplib.py (ipmagic): New function for accessing magics
4183 * IPython/iplib.py (ipmagic): New function for accessing magics
4182 via a normal python function call.
4184 via a normal python function call.
4183
4185
4184 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4186 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4185 from '@' to '%', to accomodate the new @decorator syntax of python
4187 from '@' to '%', to accomodate the new @decorator syntax of python
4186 2.4.
4188 2.4.
4187
4189
4188 2004-09-29 Fernando Perez <fperez@colorado.edu>
4190 2004-09-29 Fernando Perez <fperez@colorado.edu>
4189
4191
4190 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4192 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4191 matplotlib.use to prevent running scripts which try to switch
4193 matplotlib.use to prevent running scripts which try to switch
4192 interactive backends from within ipython. This will just crash
4194 interactive backends from within ipython. This will just crash
4193 the python interpreter, so we can't allow it (but a detailed error
4195 the python interpreter, so we can't allow it (but a detailed error
4194 is given to the user).
4196 is given to the user).
4195
4197
4196 2004-09-28 Fernando Perez <fperez@colorado.edu>
4198 2004-09-28 Fernando Perez <fperez@colorado.edu>
4197
4199
4198 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4200 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4199 matplotlib-related fixes so that using @run with non-matplotlib
4201 matplotlib-related fixes so that using @run with non-matplotlib
4200 scripts doesn't pop up spurious plot windows. This requires
4202 scripts doesn't pop up spurious plot windows. This requires
4201 matplotlib >= 0.63, where I had to make some changes as well.
4203 matplotlib >= 0.63, where I had to make some changes as well.
4202
4204
4203 * IPython/ipmaker.py (make_IPython): update version requirement to
4205 * IPython/ipmaker.py (make_IPython): update version requirement to
4204 python 2.2.
4206 python 2.2.
4205
4207
4206 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4208 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4207 banner arg for embedded customization.
4209 banner arg for embedded customization.
4208
4210
4209 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4211 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4210 explicit uses of __IP as the IPython's instance name. Now things
4212 explicit uses of __IP as the IPython's instance name. Now things
4211 are properly handled via the shell.name value. The actual code
4213 are properly handled via the shell.name value. The actual code
4212 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4214 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4213 is much better than before. I'll clean things completely when the
4215 is much better than before. I'll clean things completely when the
4214 magic stuff gets a real overhaul.
4216 magic stuff gets a real overhaul.
4215
4217
4216 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4218 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4217 minor changes to debian dir.
4219 minor changes to debian dir.
4218
4220
4219 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4221 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4220 pointer to the shell itself in the interactive namespace even when
4222 pointer to the shell itself in the interactive namespace even when
4221 a user-supplied dict is provided. This is needed for embedding
4223 a user-supplied dict is provided. This is needed for embedding
4222 purposes (found by tests with Michel Sanner).
4224 purposes (found by tests with Michel Sanner).
4223
4225
4224 2004-09-27 Fernando Perez <fperez@colorado.edu>
4226 2004-09-27 Fernando Perez <fperez@colorado.edu>
4225
4227
4226 * IPython/UserConfig/ipythonrc: remove []{} from
4228 * IPython/UserConfig/ipythonrc: remove []{} from
4227 readline_remove_delims, so that things like [modname.<TAB> do
4229 readline_remove_delims, so that things like [modname.<TAB> do
4228 proper completion. This disables [].TAB, but that's a less common
4230 proper completion. This disables [].TAB, but that's a less common
4229 case than module names in list comprehensions, for example.
4231 case than module names in list comprehensions, for example.
4230 Thanks to a report by Andrea Riciputi.
4232 Thanks to a report by Andrea Riciputi.
4231
4233
4232 2004-09-09 Fernando Perez <fperez@colorado.edu>
4234 2004-09-09 Fernando Perez <fperez@colorado.edu>
4233
4235
4234 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4236 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4235 blocking problems in win32 and osx. Fix by John.
4237 blocking problems in win32 and osx. Fix by John.
4236
4238
4237 2004-09-08 Fernando Perez <fperez@colorado.edu>
4239 2004-09-08 Fernando Perez <fperez@colorado.edu>
4238
4240
4239 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4241 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4240 for Win32 and OSX. Fix by John Hunter.
4242 for Win32 and OSX. Fix by John Hunter.
4241
4243
4242 2004-08-30 *** Released version 0.6.3
4244 2004-08-30 *** Released version 0.6.3
4243
4245
4244 2004-08-30 Fernando Perez <fperez@colorado.edu>
4246 2004-08-30 Fernando Perez <fperez@colorado.edu>
4245
4247
4246 * setup.py (isfile): Add manpages to list of dependent files to be
4248 * setup.py (isfile): Add manpages to list of dependent files to be
4247 updated.
4249 updated.
4248
4250
4249 2004-08-27 Fernando Perez <fperez@colorado.edu>
4251 2004-08-27 Fernando Perez <fperez@colorado.edu>
4250
4252
4251 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4253 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4252 for now. They don't really work with standalone WX/GTK code
4254 for now. They don't really work with standalone WX/GTK code
4253 (though matplotlib IS working fine with both of those backends).
4255 (though matplotlib IS working fine with both of those backends).
4254 This will neeed much more testing. I disabled most things with
4256 This will neeed much more testing. I disabled most things with
4255 comments, so turning it back on later should be pretty easy.
4257 comments, so turning it back on later should be pretty easy.
4256
4258
4257 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4259 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4258 autocalling of expressions like r'foo', by modifying the line
4260 autocalling of expressions like r'foo', by modifying the line
4259 split regexp. Closes
4261 split regexp. Closes
4260 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4262 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4261 Riley <ipythonbugs-AT-sabi.net>.
4263 Riley <ipythonbugs-AT-sabi.net>.
4262 (InteractiveShell.mainloop): honor --nobanner with banner
4264 (InteractiveShell.mainloop): honor --nobanner with banner
4263 extensions.
4265 extensions.
4264
4266
4265 * IPython/Shell.py: Significant refactoring of all classes, so
4267 * IPython/Shell.py: Significant refactoring of all classes, so
4266 that we can really support ALL matplotlib backends and threading
4268 that we can really support ALL matplotlib backends and threading
4267 models (John spotted a bug with Tk which required this). Now we
4269 models (John spotted a bug with Tk which required this). Now we
4268 should support single-threaded, WX-threads and GTK-threads, both
4270 should support single-threaded, WX-threads and GTK-threads, both
4269 for generic code and for matplotlib.
4271 for generic code and for matplotlib.
4270
4272
4271 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4273 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4272 -pylab, to simplify things for users. Will also remove the pylab
4274 -pylab, to simplify things for users. Will also remove the pylab
4273 profile, since now all of matplotlib configuration is directly
4275 profile, since now all of matplotlib configuration is directly
4274 handled here. This also reduces startup time.
4276 handled here. This also reduces startup time.
4275
4277
4276 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4278 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4277 shell wasn't being correctly called. Also in IPShellWX.
4279 shell wasn't being correctly called. Also in IPShellWX.
4278
4280
4279 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4281 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4280 fine-tune banner.
4282 fine-tune banner.
4281
4283
4282 * IPython/numutils.py (spike): Deprecate these spike functions,
4284 * IPython/numutils.py (spike): Deprecate these spike functions,
4283 delete (long deprecated) gnuplot_exec handler.
4285 delete (long deprecated) gnuplot_exec handler.
4284
4286
4285 2004-08-26 Fernando Perez <fperez@colorado.edu>
4287 2004-08-26 Fernando Perez <fperez@colorado.edu>
4286
4288
4287 * ipython.1: Update for threading options, plus some others which
4289 * ipython.1: Update for threading options, plus some others which
4288 were missing.
4290 were missing.
4289
4291
4290 * IPython/ipmaker.py (__call__): Added -wthread option for
4292 * IPython/ipmaker.py (__call__): Added -wthread option for
4291 wxpython thread handling. Make sure threading options are only
4293 wxpython thread handling. Make sure threading options are only
4292 valid at the command line.
4294 valid at the command line.
4293
4295
4294 * scripts/ipython: moved shell selection into a factory function
4296 * scripts/ipython: moved shell selection into a factory function
4295 in Shell.py, to keep the starter script to a minimum.
4297 in Shell.py, to keep the starter script to a minimum.
4296
4298
4297 2004-08-25 Fernando Perez <fperez@colorado.edu>
4299 2004-08-25 Fernando Perez <fperez@colorado.edu>
4298
4300
4299 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4301 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4300 John. Along with some recent changes he made to matplotlib, the
4302 John. Along with some recent changes he made to matplotlib, the
4301 next versions of both systems should work very well together.
4303 next versions of both systems should work very well together.
4302
4304
4303 2004-08-24 Fernando Perez <fperez@colorado.edu>
4305 2004-08-24 Fernando Perez <fperez@colorado.edu>
4304
4306
4305 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4307 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4306 tried to switch the profiling to using hotshot, but I'm getting
4308 tried to switch the profiling to using hotshot, but I'm getting
4307 strange errors from prof.runctx() there. I may be misreading the
4309 strange errors from prof.runctx() there. I may be misreading the
4308 docs, but it looks weird. For now the profiling code will
4310 docs, but it looks weird. For now the profiling code will
4309 continue to use the standard profiler.
4311 continue to use the standard profiler.
4310
4312
4311 2004-08-23 Fernando Perez <fperez@colorado.edu>
4313 2004-08-23 Fernando Perez <fperez@colorado.edu>
4312
4314
4313 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4315 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4314 threaded shell, by John Hunter. It's not quite ready yet, but
4316 threaded shell, by John Hunter. It's not quite ready yet, but
4315 close.
4317 close.
4316
4318
4317 2004-08-22 Fernando Perez <fperez@colorado.edu>
4319 2004-08-22 Fernando Perez <fperez@colorado.edu>
4318
4320
4319 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4321 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4320 in Magic and ultraTB.
4322 in Magic and ultraTB.
4321
4323
4322 * ipython.1: document threading options in manpage.
4324 * ipython.1: document threading options in manpage.
4323
4325
4324 * scripts/ipython: Changed name of -thread option to -gthread,
4326 * scripts/ipython: Changed name of -thread option to -gthread,
4325 since this is GTK specific. I want to leave the door open for a
4327 since this is GTK specific. I want to leave the door open for a
4326 -wthread option for WX, which will most likely be necessary. This
4328 -wthread option for WX, which will most likely be necessary. This
4327 change affects usage and ipmaker as well.
4329 change affects usage and ipmaker as well.
4328
4330
4329 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4331 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4330 handle the matplotlib shell issues. Code by John Hunter
4332 handle the matplotlib shell issues. Code by John Hunter
4331 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4333 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4332 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4334 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4333 broken (and disabled for end users) for now, but it puts the
4335 broken (and disabled for end users) for now, but it puts the
4334 infrastructure in place.
4336 infrastructure in place.
4335
4337
4336 2004-08-21 Fernando Perez <fperez@colorado.edu>
4338 2004-08-21 Fernando Perez <fperez@colorado.edu>
4337
4339
4338 * ipythonrc-pylab: Add matplotlib support.
4340 * ipythonrc-pylab: Add matplotlib support.
4339
4341
4340 * matplotlib_config.py: new files for matplotlib support, part of
4342 * matplotlib_config.py: new files for matplotlib support, part of
4341 the pylab profile.
4343 the pylab profile.
4342
4344
4343 * IPython/usage.py (__doc__): documented the threading options.
4345 * IPython/usage.py (__doc__): documented the threading options.
4344
4346
4345 2004-08-20 Fernando Perez <fperez@colorado.edu>
4347 2004-08-20 Fernando Perez <fperez@colorado.edu>
4346
4348
4347 * ipython: Modified the main calling routine to handle the -thread
4349 * ipython: Modified the main calling routine to handle the -thread
4348 and -mpthread options. This needs to be done as a top-level hack,
4350 and -mpthread options. This needs to be done as a top-level hack,
4349 because it determines which class to instantiate for IPython
4351 because it determines which class to instantiate for IPython
4350 itself.
4352 itself.
4351
4353
4352 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4354 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4353 classes to support multithreaded GTK operation without blocking,
4355 classes to support multithreaded GTK operation without blocking,
4354 and matplotlib with all backends. This is a lot of still very
4356 and matplotlib with all backends. This is a lot of still very
4355 experimental code, and threads are tricky. So it may still have a
4357 experimental code, and threads are tricky. So it may still have a
4356 few rough edges... This code owes a lot to
4358 few rough edges... This code owes a lot to
4357 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4359 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4358 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4360 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4359 to John Hunter for all the matplotlib work.
4361 to John Hunter for all the matplotlib work.
4360
4362
4361 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4363 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4362 options for gtk thread and matplotlib support.
4364 options for gtk thread and matplotlib support.
4363
4365
4364 2004-08-16 Fernando Perez <fperez@colorado.edu>
4366 2004-08-16 Fernando Perez <fperez@colorado.edu>
4365
4367
4366 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4368 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4367 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4369 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4368 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4370 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4369
4371
4370 2004-08-11 Fernando Perez <fperez@colorado.edu>
4372 2004-08-11 Fernando Perez <fperez@colorado.edu>
4371
4373
4372 * setup.py (isfile): Fix build so documentation gets updated for
4374 * setup.py (isfile): Fix build so documentation gets updated for
4373 rpms (it was only done for .tgz builds).
4375 rpms (it was only done for .tgz builds).
4374
4376
4375 2004-08-10 Fernando Perez <fperez@colorado.edu>
4377 2004-08-10 Fernando Perez <fperez@colorado.edu>
4376
4378
4377 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4379 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4378
4380
4379 * iplib.py : Silence syntax error exceptions in tab-completion.
4381 * iplib.py : Silence syntax error exceptions in tab-completion.
4380
4382
4381 2004-08-05 Fernando Perez <fperez@colorado.edu>
4383 2004-08-05 Fernando Perez <fperez@colorado.edu>
4382
4384
4383 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4385 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4384 'color off' mark for continuation prompts. This was causing long
4386 'color off' mark for continuation prompts. This was causing long
4385 continuation lines to mis-wrap.
4387 continuation lines to mis-wrap.
4386
4388
4387 2004-08-01 Fernando Perez <fperez@colorado.edu>
4389 2004-08-01 Fernando Perez <fperez@colorado.edu>
4388
4390
4389 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4391 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4390 for building ipython to be a parameter. All this is necessary
4392 for building ipython to be a parameter. All this is necessary
4391 right now to have a multithreaded version, but this insane
4393 right now to have a multithreaded version, but this insane
4392 non-design will be cleaned up soon. For now, it's a hack that
4394 non-design will be cleaned up soon. For now, it's a hack that
4393 works.
4395 works.
4394
4396
4395 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4397 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4396 args in various places. No bugs so far, but it's a dangerous
4398 args in various places. No bugs so far, but it's a dangerous
4397 practice.
4399 practice.
4398
4400
4399 2004-07-31 Fernando Perez <fperez@colorado.edu>
4401 2004-07-31 Fernando Perez <fperez@colorado.edu>
4400
4402
4401 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4403 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4402 fix completion of files with dots in their names under most
4404 fix completion of files with dots in their names under most
4403 profiles (pysh was OK because the completion order is different).
4405 profiles (pysh was OK because the completion order is different).
4404
4406
4405 2004-07-27 Fernando Perez <fperez@colorado.edu>
4407 2004-07-27 Fernando Perez <fperez@colorado.edu>
4406
4408
4407 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4409 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4408 keywords manually, b/c the one in keyword.py was removed in python
4410 keywords manually, b/c the one in keyword.py was removed in python
4409 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4411 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4410 This is NOT a bug under python 2.3 and earlier.
4412 This is NOT a bug under python 2.3 and earlier.
4411
4413
4412 2004-07-26 Fernando Perez <fperez@colorado.edu>
4414 2004-07-26 Fernando Perez <fperez@colorado.edu>
4413
4415
4414 * IPython/ultraTB.py (VerboseTB.text): Add another
4416 * IPython/ultraTB.py (VerboseTB.text): Add another
4415 linecache.checkcache() call to try to prevent inspect.py from
4417 linecache.checkcache() call to try to prevent inspect.py from
4416 crashing under python 2.3. I think this fixes
4418 crashing under python 2.3. I think this fixes
4417 http://www.scipy.net/roundup/ipython/issue17.
4419 http://www.scipy.net/roundup/ipython/issue17.
4418
4420
4419 2004-07-26 *** Released version 0.6.2
4421 2004-07-26 *** Released version 0.6.2
4420
4422
4421 2004-07-26 Fernando Perez <fperez@colorado.edu>
4423 2004-07-26 Fernando Perez <fperez@colorado.edu>
4422
4424
4423 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4425 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4424 fail for any number.
4426 fail for any number.
4425 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4427 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4426 empty bookmarks.
4428 empty bookmarks.
4427
4429
4428 2004-07-26 *** Released version 0.6.1
4430 2004-07-26 *** Released version 0.6.1
4429
4431
4430 2004-07-26 Fernando Perez <fperez@colorado.edu>
4432 2004-07-26 Fernando Perez <fperez@colorado.edu>
4431
4433
4432 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4434 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4433
4435
4434 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4436 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4435 escaping '()[]{}' in filenames.
4437 escaping '()[]{}' in filenames.
4436
4438
4437 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4439 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4438 Python 2.2 users who lack a proper shlex.split.
4440 Python 2.2 users who lack a proper shlex.split.
4439
4441
4440 2004-07-19 Fernando Perez <fperez@colorado.edu>
4442 2004-07-19 Fernando Perez <fperez@colorado.edu>
4441
4443
4442 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4444 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4443 for reading readline's init file. I follow the normal chain:
4445 for reading readline's init file. I follow the normal chain:
4444 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4446 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4445 report by Mike Heeter. This closes
4447 report by Mike Heeter. This closes
4446 http://www.scipy.net/roundup/ipython/issue16.
4448 http://www.scipy.net/roundup/ipython/issue16.
4447
4449
4448 2004-07-18 Fernando Perez <fperez@colorado.edu>
4450 2004-07-18 Fernando Perez <fperez@colorado.edu>
4449
4451
4450 * IPython/iplib.py (__init__): Add better handling of '\' under
4452 * IPython/iplib.py (__init__): Add better handling of '\' under
4451 Win32 for filenames. After a patch by Ville.
4453 Win32 for filenames. After a patch by Ville.
4452
4454
4453 2004-07-17 Fernando Perez <fperez@colorado.edu>
4455 2004-07-17 Fernando Perez <fperez@colorado.edu>
4454
4456
4455 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4457 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4456 autocalling would be triggered for 'foo is bar' if foo is
4458 autocalling would be triggered for 'foo is bar' if foo is
4457 callable. I also cleaned up the autocall detection code to use a
4459 callable. I also cleaned up the autocall detection code to use a
4458 regexp, which is faster. Bug reported by Alexander Schmolck.
4460 regexp, which is faster. Bug reported by Alexander Schmolck.
4459
4461
4460 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4462 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4461 '?' in them would confuse the help system. Reported by Alex
4463 '?' in them would confuse the help system. Reported by Alex
4462 Schmolck.
4464 Schmolck.
4463
4465
4464 2004-07-16 Fernando Perez <fperez@colorado.edu>
4466 2004-07-16 Fernando Perez <fperez@colorado.edu>
4465
4467
4466 * IPython/GnuplotInteractive.py (__all__): added plot2.
4468 * IPython/GnuplotInteractive.py (__all__): added plot2.
4467
4469
4468 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4470 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4469 plotting dictionaries, lists or tuples of 1d arrays.
4471 plotting dictionaries, lists or tuples of 1d arrays.
4470
4472
4471 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4473 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4472 optimizations.
4474 optimizations.
4473
4475
4474 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4476 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4475 the information which was there from Janko's original IPP code:
4477 the information which was there from Janko's original IPP code:
4476
4478
4477 03.05.99 20:53 porto.ifm.uni-kiel.de
4479 03.05.99 20:53 porto.ifm.uni-kiel.de
4478 --Started changelog.
4480 --Started changelog.
4479 --make clear do what it say it does
4481 --make clear do what it say it does
4480 --added pretty output of lines from inputcache
4482 --added pretty output of lines from inputcache
4481 --Made Logger a mixin class, simplifies handling of switches
4483 --Made Logger a mixin class, simplifies handling of switches
4482 --Added own completer class. .string<TAB> expands to last history
4484 --Added own completer class. .string<TAB> expands to last history
4483 line which starts with string. The new expansion is also present
4485 line which starts with string. The new expansion is also present
4484 with Ctrl-r from the readline library. But this shows, who this
4486 with Ctrl-r from the readline library. But this shows, who this
4485 can be done for other cases.
4487 can be done for other cases.
4486 --Added convention that all shell functions should accept a
4488 --Added convention that all shell functions should accept a
4487 parameter_string This opens the door for different behaviour for
4489 parameter_string This opens the door for different behaviour for
4488 each function. @cd is a good example of this.
4490 each function. @cd is a good example of this.
4489
4491
4490 04.05.99 12:12 porto.ifm.uni-kiel.de
4492 04.05.99 12:12 porto.ifm.uni-kiel.de
4491 --added logfile rotation
4493 --added logfile rotation
4492 --added new mainloop method which freezes first the namespace
4494 --added new mainloop method which freezes first the namespace
4493
4495
4494 07.05.99 21:24 porto.ifm.uni-kiel.de
4496 07.05.99 21:24 porto.ifm.uni-kiel.de
4495 --added the docreader classes. Now there is a help system.
4497 --added the docreader classes. Now there is a help system.
4496 -This is only a first try. Currently it's not easy to put new
4498 -This is only a first try. Currently it's not easy to put new
4497 stuff in the indices. But this is the way to go. Info would be
4499 stuff in the indices. But this is the way to go. Info would be
4498 better, but HTML is every where and not everybody has an info
4500 better, but HTML is every where and not everybody has an info
4499 system installed and it's not so easy to change html-docs to info.
4501 system installed and it's not so easy to change html-docs to info.
4500 --added global logfile option
4502 --added global logfile option
4501 --there is now a hook for object inspection method pinfo needs to
4503 --there is now a hook for object inspection method pinfo needs to
4502 be provided for this. Can be reached by two '??'.
4504 be provided for this. Can be reached by two '??'.
4503
4505
4504 08.05.99 20:51 porto.ifm.uni-kiel.de
4506 08.05.99 20:51 porto.ifm.uni-kiel.de
4505 --added a README
4507 --added a README
4506 --bug in rc file. Something has changed so functions in the rc
4508 --bug in rc file. Something has changed so functions in the rc
4507 file need to reference the shell and not self. Not clear if it's a
4509 file need to reference the shell and not self. Not clear if it's a
4508 bug or feature.
4510 bug or feature.
4509 --changed rc file for new behavior
4511 --changed rc file for new behavior
4510
4512
4511 2004-07-15 Fernando Perez <fperez@colorado.edu>
4513 2004-07-15 Fernando Perez <fperez@colorado.edu>
4512
4514
4513 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4515 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4514 cache was falling out of sync in bizarre manners when multi-line
4516 cache was falling out of sync in bizarre manners when multi-line
4515 input was present. Minor optimizations and cleanup.
4517 input was present. Minor optimizations and cleanup.
4516
4518
4517 (Logger): Remove old Changelog info for cleanup. This is the
4519 (Logger): Remove old Changelog info for cleanup. This is the
4518 information which was there from Janko's original code:
4520 information which was there from Janko's original code:
4519
4521
4520 Changes to Logger: - made the default log filename a parameter
4522 Changes to Logger: - made the default log filename a parameter
4521
4523
4522 - put a check for lines beginning with !@? in log(). Needed
4524 - put a check for lines beginning with !@? in log(). Needed
4523 (even if the handlers properly log their lines) for mid-session
4525 (even if the handlers properly log their lines) for mid-session
4524 logging activation to work properly. Without this, lines logged
4526 logging activation to work properly. Without this, lines logged
4525 in mid session, which get read from the cache, would end up
4527 in mid session, which get read from the cache, would end up
4526 'bare' (with !@? in the open) in the log. Now they are caught
4528 'bare' (with !@? in the open) in the log. Now they are caught
4527 and prepended with a #.
4529 and prepended with a #.
4528
4530
4529 * IPython/iplib.py (InteractiveShell.init_readline): added check
4531 * IPython/iplib.py (InteractiveShell.init_readline): added check
4530 in case MagicCompleter fails to be defined, so we don't crash.
4532 in case MagicCompleter fails to be defined, so we don't crash.
4531
4533
4532 2004-07-13 Fernando Perez <fperez@colorado.edu>
4534 2004-07-13 Fernando Perez <fperez@colorado.edu>
4533
4535
4534 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4536 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4535 of EPS if the requested filename ends in '.eps'.
4537 of EPS if the requested filename ends in '.eps'.
4536
4538
4537 2004-07-04 Fernando Perez <fperez@colorado.edu>
4539 2004-07-04 Fernando Perez <fperez@colorado.edu>
4538
4540
4539 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4541 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4540 escaping of quotes when calling the shell.
4542 escaping of quotes when calling the shell.
4541
4543
4542 2004-07-02 Fernando Perez <fperez@colorado.edu>
4544 2004-07-02 Fernando Perez <fperez@colorado.edu>
4543
4545
4544 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4546 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4545 gettext not working because we were clobbering '_'. Fixes
4547 gettext not working because we were clobbering '_'. Fixes
4546 http://www.scipy.net/roundup/ipython/issue6.
4548 http://www.scipy.net/roundup/ipython/issue6.
4547
4549
4548 2004-07-01 Fernando Perez <fperez@colorado.edu>
4550 2004-07-01 Fernando Perez <fperez@colorado.edu>
4549
4551
4550 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4552 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4551 into @cd. Patch by Ville.
4553 into @cd. Patch by Ville.
4552
4554
4553 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4555 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4554 new function to store things after ipmaker runs. Patch by Ville.
4556 new function to store things after ipmaker runs. Patch by Ville.
4555 Eventually this will go away once ipmaker is removed and the class
4557 Eventually this will go away once ipmaker is removed and the class
4556 gets cleaned up, but for now it's ok. Key functionality here is
4558 gets cleaned up, but for now it's ok. Key functionality here is
4557 the addition of the persistent storage mechanism, a dict for
4559 the addition of the persistent storage mechanism, a dict for
4558 keeping data across sessions (for now just bookmarks, but more can
4560 keeping data across sessions (for now just bookmarks, but more can
4559 be implemented later).
4561 be implemented later).
4560
4562
4561 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4563 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4562 persistent across sections. Patch by Ville, I modified it
4564 persistent across sections. Patch by Ville, I modified it
4563 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4565 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4564 added a '-l' option to list all bookmarks.
4566 added a '-l' option to list all bookmarks.
4565
4567
4566 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4568 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4567 center for cleanup. Registered with atexit.register(). I moved
4569 center for cleanup. Registered with atexit.register(). I moved
4568 here the old exit_cleanup(). After a patch by Ville.
4570 here the old exit_cleanup(). After a patch by Ville.
4569
4571
4570 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4572 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4571 characters in the hacked shlex_split for python 2.2.
4573 characters in the hacked shlex_split for python 2.2.
4572
4574
4573 * IPython/iplib.py (file_matches): more fixes to filenames with
4575 * IPython/iplib.py (file_matches): more fixes to filenames with
4574 whitespace in them. It's not perfect, but limitations in python's
4576 whitespace in them. It's not perfect, but limitations in python's
4575 readline make it impossible to go further.
4577 readline make it impossible to go further.
4576
4578
4577 2004-06-29 Fernando Perez <fperez@colorado.edu>
4579 2004-06-29 Fernando Perez <fperez@colorado.edu>
4578
4580
4579 * IPython/iplib.py (file_matches): escape whitespace correctly in
4581 * IPython/iplib.py (file_matches): escape whitespace correctly in
4580 filename completions. Bug reported by Ville.
4582 filename completions. Bug reported by Ville.
4581
4583
4582 2004-06-28 Fernando Perez <fperez@colorado.edu>
4584 2004-06-28 Fernando Perez <fperez@colorado.edu>
4583
4585
4584 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4586 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4585 the history file will be called 'history-PROFNAME' (or just
4587 the history file will be called 'history-PROFNAME' (or just
4586 'history' if no profile is loaded). I was getting annoyed at
4588 'history' if no profile is loaded). I was getting annoyed at
4587 getting my Numerical work history clobbered by pysh sessions.
4589 getting my Numerical work history clobbered by pysh sessions.
4588
4590
4589 * IPython/iplib.py (InteractiveShell.__init__): Internal
4591 * IPython/iplib.py (InteractiveShell.__init__): Internal
4590 getoutputerror() function so that we can honor the system_verbose
4592 getoutputerror() function so that we can honor the system_verbose
4591 flag for _all_ system calls. I also added escaping of #
4593 flag for _all_ system calls. I also added escaping of #
4592 characters here to avoid confusing Itpl.
4594 characters here to avoid confusing Itpl.
4593
4595
4594 * IPython/Magic.py (shlex_split): removed call to shell in
4596 * IPython/Magic.py (shlex_split): removed call to shell in
4595 parse_options and replaced it with shlex.split(). The annoying
4597 parse_options and replaced it with shlex.split(). The annoying
4596 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4598 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4597 to backport it from 2.3, with several frail hacks (the shlex
4599 to backport it from 2.3, with several frail hacks (the shlex
4598 module is rather limited in 2.2). Thanks to a suggestion by Ville
4600 module is rather limited in 2.2). Thanks to a suggestion by Ville
4599 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4601 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4600 problem.
4602 problem.
4601
4603
4602 (Magic.magic_system_verbose): new toggle to print the actual
4604 (Magic.magic_system_verbose): new toggle to print the actual
4603 system calls made by ipython. Mainly for debugging purposes.
4605 system calls made by ipython. Mainly for debugging purposes.
4604
4606
4605 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4607 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4606 doesn't support persistence. Reported (and fix suggested) by
4608 doesn't support persistence. Reported (and fix suggested) by
4607 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4609 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4608
4610
4609 2004-06-26 Fernando Perez <fperez@colorado.edu>
4611 2004-06-26 Fernando Perez <fperez@colorado.edu>
4610
4612
4611 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4613 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4612 continue prompts.
4614 continue prompts.
4613
4615
4614 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4616 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4615 function (basically a big docstring) and a few more things here to
4617 function (basically a big docstring) and a few more things here to
4616 speedup startup. pysh.py is now very lightweight. We want because
4618 speedup startup. pysh.py is now very lightweight. We want because
4617 it gets execfile'd, while InterpreterExec gets imported, so
4619 it gets execfile'd, while InterpreterExec gets imported, so
4618 byte-compilation saves time.
4620 byte-compilation saves time.
4619
4621
4620 2004-06-25 Fernando Perez <fperez@colorado.edu>
4622 2004-06-25 Fernando Perez <fperez@colorado.edu>
4621
4623
4622 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4624 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4623 -NUM', which was recently broken.
4625 -NUM', which was recently broken.
4624
4626
4625 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4627 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4626 in multi-line input (but not !!, which doesn't make sense there).
4628 in multi-line input (but not !!, which doesn't make sense there).
4627
4629
4628 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4630 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4629 It's just too useful, and people can turn it off in the less
4631 It's just too useful, and people can turn it off in the less
4630 common cases where it's a problem.
4632 common cases where it's a problem.
4631
4633
4632 2004-06-24 Fernando Perez <fperez@colorado.edu>
4634 2004-06-24 Fernando Perez <fperez@colorado.edu>
4633
4635
4634 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4636 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4635 special syntaxes (like alias calling) is now allied in multi-line
4637 special syntaxes (like alias calling) is now allied in multi-line
4636 input. This is still _very_ experimental, but it's necessary for
4638 input. This is still _very_ experimental, but it's necessary for
4637 efficient shell usage combining python looping syntax with system
4639 efficient shell usage combining python looping syntax with system
4638 calls. For now it's restricted to aliases, I don't think it
4640 calls. For now it's restricted to aliases, I don't think it
4639 really even makes sense to have this for magics.
4641 really even makes sense to have this for magics.
4640
4642
4641 2004-06-23 Fernando Perez <fperez@colorado.edu>
4643 2004-06-23 Fernando Perez <fperez@colorado.edu>
4642
4644
4643 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4645 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4644 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4646 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4645
4647
4646 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4648 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4647 extensions under Windows (after code sent by Gary Bishop). The
4649 extensions under Windows (after code sent by Gary Bishop). The
4648 extensions considered 'executable' are stored in IPython's rc
4650 extensions considered 'executable' are stored in IPython's rc
4649 structure as win_exec_ext.
4651 structure as win_exec_ext.
4650
4652
4651 * IPython/genutils.py (shell): new function, like system() but
4653 * IPython/genutils.py (shell): new function, like system() but
4652 without return value. Very useful for interactive shell work.
4654 without return value. Very useful for interactive shell work.
4653
4655
4654 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4656 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4655 delete aliases.
4657 delete aliases.
4656
4658
4657 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4659 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4658 sure that the alias table doesn't contain python keywords.
4660 sure that the alias table doesn't contain python keywords.
4659
4661
4660 2004-06-21 Fernando Perez <fperez@colorado.edu>
4662 2004-06-21 Fernando Perez <fperez@colorado.edu>
4661
4663
4662 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4664 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4663 non-existent items are found in $PATH. Reported by Thorsten.
4665 non-existent items are found in $PATH. Reported by Thorsten.
4664
4666
4665 2004-06-20 Fernando Perez <fperez@colorado.edu>
4667 2004-06-20 Fernando Perez <fperez@colorado.edu>
4666
4668
4667 * IPython/iplib.py (complete): modified the completer so that the
4669 * IPython/iplib.py (complete): modified the completer so that the
4668 order of priorities can be easily changed at runtime.
4670 order of priorities can be easily changed at runtime.
4669
4671
4670 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4672 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4671 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4673 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4672
4674
4673 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4675 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4674 expand Python variables prepended with $ in all system calls. The
4676 expand Python variables prepended with $ in all system calls. The
4675 same was done to InteractiveShell.handle_shell_escape. Now all
4677 same was done to InteractiveShell.handle_shell_escape. Now all
4676 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4678 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4677 expansion of python variables and expressions according to the
4679 expansion of python variables and expressions according to the
4678 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4680 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4679
4681
4680 Though PEP-215 has been rejected, a similar (but simpler) one
4682 Though PEP-215 has been rejected, a similar (but simpler) one
4681 seems like it will go into Python 2.4, PEP-292 -
4683 seems like it will go into Python 2.4, PEP-292 -
4682 http://www.python.org/peps/pep-0292.html.
4684 http://www.python.org/peps/pep-0292.html.
4683
4685
4684 I'll keep the full syntax of PEP-215, since IPython has since the
4686 I'll keep the full syntax of PEP-215, since IPython has since the
4685 start used Ka-Ping Yee's reference implementation discussed there
4687 start used Ka-Ping Yee's reference implementation discussed there
4686 (Itpl), and I actually like the powerful semantics it offers.
4688 (Itpl), and I actually like the powerful semantics it offers.
4687
4689
4688 In order to access normal shell variables, the $ has to be escaped
4690 In order to access normal shell variables, the $ has to be escaped
4689 via an extra $. For example:
4691 via an extra $. For example:
4690
4692
4691 In [7]: PATH='a python variable'
4693 In [7]: PATH='a python variable'
4692
4694
4693 In [8]: !echo $PATH
4695 In [8]: !echo $PATH
4694 a python variable
4696 a python variable
4695
4697
4696 In [9]: !echo $$PATH
4698 In [9]: !echo $$PATH
4697 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4699 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4698
4700
4699 (Magic.parse_options): escape $ so the shell doesn't evaluate
4701 (Magic.parse_options): escape $ so the shell doesn't evaluate
4700 things prematurely.
4702 things prematurely.
4701
4703
4702 * IPython/iplib.py (InteractiveShell.call_alias): added the
4704 * IPython/iplib.py (InteractiveShell.call_alias): added the
4703 ability for aliases to expand python variables via $.
4705 ability for aliases to expand python variables via $.
4704
4706
4705 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4707 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4706 system, now there's a @rehash/@rehashx pair of magics. These work
4708 system, now there's a @rehash/@rehashx pair of magics. These work
4707 like the csh rehash command, and can be invoked at any time. They
4709 like the csh rehash command, and can be invoked at any time. They
4708 build a table of aliases to everything in the user's $PATH
4710 build a table of aliases to everything in the user's $PATH
4709 (@rehash uses everything, @rehashx is slower but only adds
4711 (@rehash uses everything, @rehashx is slower but only adds
4710 executable files). With this, the pysh.py-based shell profile can
4712 executable files). With this, the pysh.py-based shell profile can
4711 now simply call rehash upon startup, and full access to all
4713 now simply call rehash upon startup, and full access to all
4712 programs in the user's path is obtained.
4714 programs in the user's path is obtained.
4713
4715
4714 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4716 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4715 functionality is now fully in place. I removed the old dynamic
4717 functionality is now fully in place. I removed the old dynamic
4716 code generation based approach, in favor of a much lighter one
4718 code generation based approach, in favor of a much lighter one
4717 based on a simple dict. The advantage is that this allows me to
4719 based on a simple dict. The advantage is that this allows me to
4718 now have thousands of aliases with negligible cost (unthinkable
4720 now have thousands of aliases with negligible cost (unthinkable
4719 with the old system).
4721 with the old system).
4720
4722
4721 2004-06-19 Fernando Perez <fperez@colorado.edu>
4723 2004-06-19 Fernando Perez <fperez@colorado.edu>
4722
4724
4723 * IPython/iplib.py (__init__): extended MagicCompleter class to
4725 * IPython/iplib.py (__init__): extended MagicCompleter class to
4724 also complete (last in priority) on user aliases.
4726 also complete (last in priority) on user aliases.
4725
4727
4726 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4728 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4727 call to eval.
4729 call to eval.
4728 (ItplNS.__init__): Added a new class which functions like Itpl,
4730 (ItplNS.__init__): Added a new class which functions like Itpl,
4729 but allows configuring the namespace for the evaluation to occur
4731 but allows configuring the namespace for the evaluation to occur
4730 in.
4732 in.
4731
4733
4732 2004-06-18 Fernando Perez <fperez@colorado.edu>
4734 2004-06-18 Fernando Perez <fperez@colorado.edu>
4733
4735
4734 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4736 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4735 better message when 'exit' or 'quit' are typed (a common newbie
4737 better message when 'exit' or 'quit' are typed (a common newbie
4736 confusion).
4738 confusion).
4737
4739
4738 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4740 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4739 check for Windows users.
4741 check for Windows users.
4740
4742
4741 * IPython/iplib.py (InteractiveShell.user_setup): removed
4743 * IPython/iplib.py (InteractiveShell.user_setup): removed
4742 disabling of colors for Windows. I'll test at runtime and issue a
4744 disabling of colors for Windows. I'll test at runtime and issue a
4743 warning if Gary's readline isn't found, as to nudge users to
4745 warning if Gary's readline isn't found, as to nudge users to
4744 download it.
4746 download it.
4745
4747
4746 2004-06-16 Fernando Perez <fperez@colorado.edu>
4748 2004-06-16 Fernando Perez <fperez@colorado.edu>
4747
4749
4748 * IPython/genutils.py (Stream.__init__): changed to print errors
4750 * IPython/genutils.py (Stream.__init__): changed to print errors
4749 to sys.stderr. I had a circular dependency here. Now it's
4751 to sys.stderr. I had a circular dependency here. Now it's
4750 possible to run ipython as IDLE's shell (consider this pre-alpha,
4752 possible to run ipython as IDLE's shell (consider this pre-alpha,
4751 since true stdout things end up in the starting terminal instead
4753 since true stdout things end up in the starting terminal instead
4752 of IDLE's out).
4754 of IDLE's out).
4753
4755
4754 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4756 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4755 users who haven't # updated their prompt_in2 definitions. Remove
4757 users who haven't # updated their prompt_in2 definitions. Remove
4756 eventually.
4758 eventually.
4757 (multiple_replace): added credit to original ASPN recipe.
4759 (multiple_replace): added credit to original ASPN recipe.
4758
4760
4759 2004-06-15 Fernando Perez <fperez@colorado.edu>
4761 2004-06-15 Fernando Perez <fperez@colorado.edu>
4760
4762
4761 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4763 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4762 list of auto-defined aliases.
4764 list of auto-defined aliases.
4763
4765
4764 2004-06-13 Fernando Perez <fperez@colorado.edu>
4766 2004-06-13 Fernando Perez <fperez@colorado.edu>
4765
4767
4766 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4768 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4767 install was really requested (so setup.py can be used for other
4769 install was really requested (so setup.py can be used for other
4768 things under Windows).
4770 things under Windows).
4769
4771
4770 2004-06-10 Fernando Perez <fperez@colorado.edu>
4772 2004-06-10 Fernando Perez <fperez@colorado.edu>
4771
4773
4772 * IPython/Logger.py (Logger.create_log): Manually remove any old
4774 * IPython/Logger.py (Logger.create_log): Manually remove any old
4773 backup, since os.remove may fail under Windows. Fixes bug
4775 backup, since os.remove may fail under Windows. Fixes bug
4774 reported by Thorsten.
4776 reported by Thorsten.
4775
4777
4776 2004-06-09 Fernando Perez <fperez@colorado.edu>
4778 2004-06-09 Fernando Perez <fperez@colorado.edu>
4777
4779
4778 * examples/example-embed.py: fixed all references to %n (replaced
4780 * examples/example-embed.py: fixed all references to %n (replaced
4779 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4781 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4780 for all examples and the manual as well.
4782 for all examples and the manual as well.
4781
4783
4782 2004-06-08 Fernando Perez <fperez@colorado.edu>
4784 2004-06-08 Fernando Perez <fperez@colorado.edu>
4783
4785
4784 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4786 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4785 alignment and color management. All 3 prompt subsystems now
4787 alignment and color management. All 3 prompt subsystems now
4786 inherit from BasePrompt.
4788 inherit from BasePrompt.
4787
4789
4788 * tools/release: updates for windows installer build and tag rpms
4790 * tools/release: updates for windows installer build and tag rpms
4789 with python version (since paths are fixed).
4791 with python version (since paths are fixed).
4790
4792
4791 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4793 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4792 which will become eventually obsolete. Also fixed the default
4794 which will become eventually obsolete. Also fixed the default
4793 prompt_in2 to use \D, so at least new users start with the correct
4795 prompt_in2 to use \D, so at least new users start with the correct
4794 defaults.
4796 defaults.
4795 WARNING: Users with existing ipythonrc files will need to apply
4797 WARNING: Users with existing ipythonrc files will need to apply
4796 this fix manually!
4798 this fix manually!
4797
4799
4798 * setup.py: make windows installer (.exe). This is finally the
4800 * setup.py: make windows installer (.exe). This is finally the
4799 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4801 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4800 which I hadn't included because it required Python 2.3 (or recent
4802 which I hadn't included because it required Python 2.3 (or recent
4801 distutils).
4803 distutils).
4802
4804
4803 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4805 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4804 usage of new '\D' escape.
4806 usage of new '\D' escape.
4805
4807
4806 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4808 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4807 lacks os.getuid())
4809 lacks os.getuid())
4808 (CachedOutput.set_colors): Added the ability to turn coloring
4810 (CachedOutput.set_colors): Added the ability to turn coloring
4809 on/off with @colors even for manually defined prompt colors. It
4811 on/off with @colors even for manually defined prompt colors. It
4810 uses a nasty global, but it works safely and via the generic color
4812 uses a nasty global, but it works safely and via the generic color
4811 handling mechanism.
4813 handling mechanism.
4812 (Prompt2.__init__): Introduced new escape '\D' for continuation
4814 (Prompt2.__init__): Introduced new escape '\D' for continuation
4813 prompts. It represents the counter ('\#') as dots.
4815 prompts. It represents the counter ('\#') as dots.
4814 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4816 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4815 need to update their ipythonrc files and replace '%n' with '\D' in
4817 need to update their ipythonrc files and replace '%n' with '\D' in
4816 their prompt_in2 settings everywhere. Sorry, but there's
4818 their prompt_in2 settings everywhere. Sorry, but there's
4817 otherwise no clean way to get all prompts to properly align. The
4819 otherwise no clean way to get all prompts to properly align. The
4818 ipythonrc shipped with IPython has been updated.
4820 ipythonrc shipped with IPython has been updated.
4819
4821
4820 2004-06-07 Fernando Perez <fperez@colorado.edu>
4822 2004-06-07 Fernando Perez <fperez@colorado.edu>
4821
4823
4822 * setup.py (isfile): Pass local_icons option to latex2html, so the
4824 * setup.py (isfile): Pass local_icons option to latex2html, so the
4823 resulting HTML file is self-contained. Thanks to
4825 resulting HTML file is self-contained. Thanks to
4824 dryice-AT-liu.com.cn for the tip.
4826 dryice-AT-liu.com.cn for the tip.
4825
4827
4826 * pysh.py: I created a new profile 'shell', which implements a
4828 * pysh.py: I created a new profile 'shell', which implements a
4827 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4829 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4828 system shell, nor will it become one anytime soon. It's mainly
4830 system shell, nor will it become one anytime soon. It's mainly
4829 meant to illustrate the use of the new flexible bash-like prompts.
4831 meant to illustrate the use of the new flexible bash-like prompts.
4830 I guess it could be used by hardy souls for true shell management,
4832 I guess it could be used by hardy souls for true shell management,
4831 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4833 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4832 profile. This uses the InterpreterExec extension provided by
4834 profile. This uses the InterpreterExec extension provided by
4833 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4835 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4834
4836
4835 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4837 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4836 auto-align itself with the length of the previous input prompt
4838 auto-align itself with the length of the previous input prompt
4837 (taking into account the invisible color escapes).
4839 (taking into account the invisible color escapes).
4838 (CachedOutput.__init__): Large restructuring of this class. Now
4840 (CachedOutput.__init__): Large restructuring of this class. Now
4839 all three prompts (primary1, primary2, output) are proper objects,
4841 all three prompts (primary1, primary2, output) are proper objects,
4840 managed by the 'parent' CachedOutput class. The code is still a
4842 managed by the 'parent' CachedOutput class. The code is still a
4841 bit hackish (all prompts share state via a pointer to the cache),
4843 bit hackish (all prompts share state via a pointer to the cache),
4842 but it's overall far cleaner than before.
4844 but it's overall far cleaner than before.
4843
4845
4844 * IPython/genutils.py (getoutputerror): modified to add verbose,
4846 * IPython/genutils.py (getoutputerror): modified to add verbose,
4845 debug and header options. This makes the interface of all getout*
4847 debug and header options. This makes the interface of all getout*
4846 functions uniform.
4848 functions uniform.
4847 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4849 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4848
4850
4849 * IPython/Magic.py (Magic.default_option): added a function to
4851 * IPython/Magic.py (Magic.default_option): added a function to
4850 allow registering default options for any magic command. This
4852 allow registering default options for any magic command. This
4851 makes it easy to have profiles which customize the magics globally
4853 makes it easy to have profiles which customize the magics globally
4852 for a certain use. The values set through this function are
4854 for a certain use. The values set through this function are
4853 picked up by the parse_options() method, which all magics should
4855 picked up by the parse_options() method, which all magics should
4854 use to parse their options.
4856 use to parse their options.
4855
4857
4856 * IPython/genutils.py (warn): modified the warnings framework to
4858 * IPython/genutils.py (warn): modified the warnings framework to
4857 use the Term I/O class. I'm trying to slowly unify all of
4859 use the Term I/O class. I'm trying to slowly unify all of
4858 IPython's I/O operations to pass through Term.
4860 IPython's I/O operations to pass through Term.
4859
4861
4860 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4862 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4861 the secondary prompt to correctly match the length of the primary
4863 the secondary prompt to correctly match the length of the primary
4862 one for any prompt. Now multi-line code will properly line up
4864 one for any prompt. Now multi-line code will properly line up
4863 even for path dependent prompts, such as the new ones available
4865 even for path dependent prompts, such as the new ones available
4864 via the prompt_specials.
4866 via the prompt_specials.
4865
4867
4866 2004-06-06 Fernando Perez <fperez@colorado.edu>
4868 2004-06-06 Fernando Perez <fperez@colorado.edu>
4867
4869
4868 * IPython/Prompts.py (prompt_specials): Added the ability to have
4870 * IPython/Prompts.py (prompt_specials): Added the ability to have
4869 bash-like special sequences in the prompts, which get
4871 bash-like special sequences in the prompts, which get
4870 automatically expanded. Things like hostname, current working
4872 automatically expanded. Things like hostname, current working
4871 directory and username are implemented already, but it's easy to
4873 directory and username are implemented already, but it's easy to
4872 add more in the future. Thanks to a patch by W.J. van der Laan
4874 add more in the future. Thanks to a patch by W.J. van der Laan
4873 <gnufnork-AT-hetdigitalegat.nl>
4875 <gnufnork-AT-hetdigitalegat.nl>
4874 (prompt_specials): Added color support for prompt strings, so
4876 (prompt_specials): Added color support for prompt strings, so
4875 users can define arbitrary color setups for their prompts.
4877 users can define arbitrary color setups for their prompts.
4876
4878
4877 2004-06-05 Fernando Perez <fperez@colorado.edu>
4879 2004-06-05 Fernando Perez <fperez@colorado.edu>
4878
4880
4879 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4881 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4880 code to load Gary Bishop's readline and configure it
4882 code to load Gary Bishop's readline and configure it
4881 automatically. Thanks to Gary for help on this.
4883 automatically. Thanks to Gary for help on this.
4882
4884
4883 2004-06-01 Fernando Perez <fperez@colorado.edu>
4885 2004-06-01 Fernando Perez <fperez@colorado.edu>
4884
4886
4885 * IPython/Logger.py (Logger.create_log): fix bug for logging
4887 * IPython/Logger.py (Logger.create_log): fix bug for logging
4886 with no filename (previous fix was incomplete).
4888 with no filename (previous fix was incomplete).
4887
4889
4888 2004-05-25 Fernando Perez <fperez@colorado.edu>
4890 2004-05-25 Fernando Perez <fperez@colorado.edu>
4889
4891
4890 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4892 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4891 parens would get passed to the shell.
4893 parens would get passed to the shell.
4892
4894
4893 2004-05-20 Fernando Perez <fperez@colorado.edu>
4895 2004-05-20 Fernando Perez <fperez@colorado.edu>
4894
4896
4895 * IPython/Magic.py (Magic.magic_prun): changed default profile
4897 * IPython/Magic.py (Magic.magic_prun): changed default profile
4896 sort order to 'time' (the more common profiling need).
4898 sort order to 'time' (the more common profiling need).
4897
4899
4898 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4900 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4899 so that source code shown is guaranteed in sync with the file on
4901 so that source code shown is guaranteed in sync with the file on
4900 disk (also changed in psource). Similar fix to the one for
4902 disk (also changed in psource). Similar fix to the one for
4901 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4903 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4902 <yann.ledu-AT-noos.fr>.
4904 <yann.ledu-AT-noos.fr>.
4903
4905
4904 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4906 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4905 with a single option would not be correctly parsed. Closes
4907 with a single option would not be correctly parsed. Closes
4906 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4908 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4907 introduced in 0.6.0 (on 2004-05-06).
4909 introduced in 0.6.0 (on 2004-05-06).
4908
4910
4909 2004-05-13 *** Released version 0.6.0
4911 2004-05-13 *** Released version 0.6.0
4910
4912
4911 2004-05-13 Fernando Perez <fperez@colorado.edu>
4913 2004-05-13 Fernando Perez <fperez@colorado.edu>
4912
4914
4913 * debian/: Added debian/ directory to CVS, so that debian support
4915 * debian/: Added debian/ directory to CVS, so that debian support
4914 is publicly accessible. The debian package is maintained by Jack
4916 is publicly accessible. The debian package is maintained by Jack
4915 Moffit <jack-AT-xiph.org>.
4917 Moffit <jack-AT-xiph.org>.
4916
4918
4917 * Documentation: included the notes about an ipython-based system
4919 * Documentation: included the notes about an ipython-based system
4918 shell (the hypothetical 'pysh') into the new_design.pdf document,
4920 shell (the hypothetical 'pysh') into the new_design.pdf document,
4919 so that these ideas get distributed to users along with the
4921 so that these ideas get distributed to users along with the
4920 official documentation.
4922 official documentation.
4921
4923
4922 2004-05-10 Fernando Perez <fperez@colorado.edu>
4924 2004-05-10 Fernando Perez <fperez@colorado.edu>
4923
4925
4924 * IPython/Logger.py (Logger.create_log): fix recently introduced
4926 * IPython/Logger.py (Logger.create_log): fix recently introduced
4925 bug (misindented line) where logstart would fail when not given an
4927 bug (misindented line) where logstart would fail when not given an
4926 explicit filename.
4928 explicit filename.
4927
4929
4928 2004-05-09 Fernando Perez <fperez@colorado.edu>
4930 2004-05-09 Fernando Perez <fperez@colorado.edu>
4929
4931
4930 * IPython/Magic.py (Magic.parse_options): skip system call when
4932 * IPython/Magic.py (Magic.parse_options): skip system call when
4931 there are no options to look for. Faster, cleaner for the common
4933 there are no options to look for. Faster, cleaner for the common
4932 case.
4934 case.
4933
4935
4934 * Documentation: many updates to the manual: describing Windows
4936 * Documentation: many updates to the manual: describing Windows
4935 support better, Gnuplot updates, credits, misc small stuff. Also
4937 support better, Gnuplot updates, credits, misc small stuff. Also
4936 updated the new_design doc a bit.
4938 updated the new_design doc a bit.
4937
4939
4938 2004-05-06 *** Released version 0.6.0.rc1
4940 2004-05-06 *** Released version 0.6.0.rc1
4939
4941
4940 2004-05-06 Fernando Perez <fperez@colorado.edu>
4942 2004-05-06 Fernando Perez <fperez@colorado.edu>
4941
4943
4942 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4944 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4943 operations to use the vastly more efficient list/''.join() method.
4945 operations to use the vastly more efficient list/''.join() method.
4944 (FormattedTB.text): Fix
4946 (FormattedTB.text): Fix
4945 http://www.scipy.net/roundup/ipython/issue12 - exception source
4947 http://www.scipy.net/roundup/ipython/issue12 - exception source
4946 extract not updated after reload. Thanks to Mike Salib
4948 extract not updated after reload. Thanks to Mike Salib
4947 <msalib-AT-mit.edu> for pinning the source of the problem.
4949 <msalib-AT-mit.edu> for pinning the source of the problem.
4948 Fortunately, the solution works inside ipython and doesn't require
4950 Fortunately, the solution works inside ipython and doesn't require
4949 any changes to python proper.
4951 any changes to python proper.
4950
4952
4951 * IPython/Magic.py (Magic.parse_options): Improved to process the
4953 * IPython/Magic.py (Magic.parse_options): Improved to process the
4952 argument list as a true shell would (by actually using the
4954 argument list as a true shell would (by actually using the
4953 underlying system shell). This way, all @magics automatically get
4955 underlying system shell). This way, all @magics automatically get
4954 shell expansion for variables. Thanks to a comment by Alex
4956 shell expansion for variables. Thanks to a comment by Alex
4955 Schmolck.
4957 Schmolck.
4956
4958
4957 2004-04-04 Fernando Perez <fperez@colorado.edu>
4959 2004-04-04 Fernando Perez <fperez@colorado.edu>
4958
4960
4959 * IPython/iplib.py (InteractiveShell.interact): Added a special
4961 * IPython/iplib.py (InteractiveShell.interact): Added a special
4960 trap for a debugger quit exception, which is basically impossible
4962 trap for a debugger quit exception, which is basically impossible
4961 to handle by normal mechanisms, given what pdb does to the stack.
4963 to handle by normal mechanisms, given what pdb does to the stack.
4962 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4964 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4963
4965
4964 2004-04-03 Fernando Perez <fperez@colorado.edu>
4966 2004-04-03 Fernando Perez <fperez@colorado.edu>
4965
4967
4966 * IPython/genutils.py (Term): Standardized the names of the Term
4968 * IPython/genutils.py (Term): Standardized the names of the Term
4967 class streams to cin/cout/cerr, following C++ naming conventions
4969 class streams to cin/cout/cerr, following C++ naming conventions
4968 (I can't use in/out/err because 'in' is not a valid attribute
4970 (I can't use in/out/err because 'in' is not a valid attribute
4969 name).
4971 name).
4970
4972
4971 * IPython/iplib.py (InteractiveShell.interact): don't increment
4973 * IPython/iplib.py (InteractiveShell.interact): don't increment
4972 the prompt if there's no user input. By Daniel 'Dang' Griffith
4974 the prompt if there's no user input. By Daniel 'Dang' Griffith
4973 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4975 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4974 Francois Pinard.
4976 Francois Pinard.
4975
4977
4976 2004-04-02 Fernando Perez <fperez@colorado.edu>
4978 2004-04-02 Fernando Perez <fperez@colorado.edu>
4977
4979
4978 * IPython/genutils.py (Stream.__init__): Modified to survive at
4980 * IPython/genutils.py (Stream.__init__): Modified to survive at
4979 least importing in contexts where stdin/out/err aren't true file
4981 least importing in contexts where stdin/out/err aren't true file
4980 objects, such as PyCrust (they lack fileno() and mode). However,
4982 objects, such as PyCrust (they lack fileno() and mode). However,
4981 the recovery facilities which rely on these things existing will
4983 the recovery facilities which rely on these things existing will
4982 not work.
4984 not work.
4983
4985
4984 2004-04-01 Fernando Perez <fperez@colorado.edu>
4986 2004-04-01 Fernando Perez <fperez@colorado.edu>
4985
4987
4986 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4988 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4987 use the new getoutputerror() function, so it properly
4989 use the new getoutputerror() function, so it properly
4988 distinguishes stdout/err.
4990 distinguishes stdout/err.
4989
4991
4990 * IPython/genutils.py (getoutputerror): added a function to
4992 * IPython/genutils.py (getoutputerror): added a function to
4991 capture separately the standard output and error of a command.
4993 capture separately the standard output and error of a command.
4992 After a comment from dang on the mailing lists. This code is
4994 After a comment from dang on the mailing lists. This code is
4993 basically a modified version of commands.getstatusoutput(), from
4995 basically a modified version of commands.getstatusoutput(), from
4994 the standard library.
4996 the standard library.
4995
4997
4996 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4998 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4997 '!!' as a special syntax (shorthand) to access @sx.
4999 '!!' as a special syntax (shorthand) to access @sx.
4998
5000
4999 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5001 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5000 command and return its output as a list split on '\n'.
5002 command and return its output as a list split on '\n'.
5001
5003
5002 2004-03-31 Fernando Perez <fperez@colorado.edu>
5004 2004-03-31 Fernando Perez <fperez@colorado.edu>
5003
5005
5004 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5006 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5005 method to dictionaries used as FakeModule instances if they lack
5007 method to dictionaries used as FakeModule instances if they lack
5006 it. At least pydoc in python2.3 breaks for runtime-defined
5008 it. At least pydoc in python2.3 breaks for runtime-defined
5007 functions without this hack. At some point I need to _really_
5009 functions without this hack. At some point I need to _really_
5008 understand what FakeModule is doing, because it's a gross hack.
5010 understand what FakeModule is doing, because it's a gross hack.
5009 But it solves Arnd's problem for now...
5011 But it solves Arnd's problem for now...
5010
5012
5011 2004-02-27 Fernando Perez <fperez@colorado.edu>
5013 2004-02-27 Fernando Perez <fperez@colorado.edu>
5012
5014
5013 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5015 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5014 mode would behave erratically. Also increased the number of
5016 mode would behave erratically. Also increased the number of
5015 possible logs in rotate mod to 999. Thanks to Rod Holland
5017 possible logs in rotate mod to 999. Thanks to Rod Holland
5016 <rhh@StructureLABS.com> for the report and fixes.
5018 <rhh@StructureLABS.com> for the report and fixes.
5017
5019
5018 2004-02-26 Fernando Perez <fperez@colorado.edu>
5020 2004-02-26 Fernando Perez <fperez@colorado.edu>
5019
5021
5020 * IPython/genutils.py (page): Check that the curses module really
5022 * IPython/genutils.py (page): Check that the curses module really
5021 has the initscr attribute before trying to use it. For some
5023 has the initscr attribute before trying to use it. For some
5022 reason, the Solaris curses module is missing this. I think this
5024 reason, the Solaris curses module is missing this. I think this
5023 should be considered a Solaris python bug, but I'm not sure.
5025 should be considered a Solaris python bug, but I'm not sure.
5024
5026
5025 2004-01-17 Fernando Perez <fperez@colorado.edu>
5027 2004-01-17 Fernando Perez <fperez@colorado.edu>
5026
5028
5027 * IPython/genutils.py (Stream.__init__): Changes to try to make
5029 * IPython/genutils.py (Stream.__init__): Changes to try to make
5028 ipython robust against stdin/out/err being closed by the user.
5030 ipython robust against stdin/out/err being closed by the user.
5029 This is 'user error' (and blocks a normal python session, at least
5031 This is 'user error' (and blocks a normal python session, at least
5030 the stdout case). However, Ipython should be able to survive such
5032 the stdout case). However, Ipython should be able to survive such
5031 instances of abuse as gracefully as possible. To simplify the
5033 instances of abuse as gracefully as possible. To simplify the
5032 coding and maintain compatibility with Gary Bishop's Term
5034 coding and maintain compatibility with Gary Bishop's Term
5033 contributions, I've made use of classmethods for this. I think
5035 contributions, I've made use of classmethods for this. I think
5034 this introduces a dependency on python 2.2.
5036 this introduces a dependency on python 2.2.
5035
5037
5036 2004-01-13 Fernando Perez <fperez@colorado.edu>
5038 2004-01-13 Fernando Perez <fperez@colorado.edu>
5037
5039
5038 * IPython/numutils.py (exp_safe): simplified the code a bit and
5040 * IPython/numutils.py (exp_safe): simplified the code a bit and
5039 removed the need for importing the kinds module altogether.
5041 removed the need for importing the kinds module altogether.
5040
5042
5041 2004-01-06 Fernando Perez <fperez@colorado.edu>
5043 2004-01-06 Fernando Perez <fperez@colorado.edu>
5042
5044
5043 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5045 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5044 a magic function instead, after some community feedback. No
5046 a magic function instead, after some community feedback. No
5045 special syntax will exist for it, but its name is deliberately
5047 special syntax will exist for it, but its name is deliberately
5046 very short.
5048 very short.
5047
5049
5048 2003-12-20 Fernando Perez <fperez@colorado.edu>
5050 2003-12-20 Fernando Perez <fperez@colorado.edu>
5049
5051
5050 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5052 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5051 new functionality, to automagically assign the result of a shell
5053 new functionality, to automagically assign the result of a shell
5052 command to a variable. I'll solicit some community feedback on
5054 command to a variable. I'll solicit some community feedback on
5053 this before making it permanent.
5055 this before making it permanent.
5054
5056
5055 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5057 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5056 requested about callables for which inspect couldn't obtain a
5058 requested about callables for which inspect couldn't obtain a
5057 proper argspec. Thanks to a crash report sent by Etienne
5059 proper argspec. Thanks to a crash report sent by Etienne
5058 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5060 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5059
5061
5060 2003-12-09 Fernando Perez <fperez@colorado.edu>
5062 2003-12-09 Fernando Perez <fperez@colorado.edu>
5061
5063
5062 * IPython/genutils.py (page): patch for the pager to work across
5064 * IPython/genutils.py (page): patch for the pager to work across
5063 various versions of Windows. By Gary Bishop.
5065 various versions of Windows. By Gary Bishop.
5064
5066
5065 2003-12-04 Fernando Perez <fperez@colorado.edu>
5067 2003-12-04 Fernando Perez <fperez@colorado.edu>
5066
5068
5067 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5069 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5068 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5070 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5069 While I tested this and it looks ok, there may still be corner
5071 While I tested this and it looks ok, there may still be corner
5070 cases I've missed.
5072 cases I've missed.
5071
5073
5072 2003-12-01 Fernando Perez <fperez@colorado.edu>
5074 2003-12-01 Fernando Perez <fperez@colorado.edu>
5073
5075
5074 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5076 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5075 where a line like 'p,q=1,2' would fail because the automagic
5077 where a line like 'p,q=1,2' would fail because the automagic
5076 system would be triggered for @p.
5078 system would be triggered for @p.
5077
5079
5078 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5080 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5079 cleanups, code unmodified.
5081 cleanups, code unmodified.
5080
5082
5081 * IPython/genutils.py (Term): added a class for IPython to handle
5083 * IPython/genutils.py (Term): added a class for IPython to handle
5082 output. In most cases it will just be a proxy for stdout/err, but
5084 output. In most cases it will just be a proxy for stdout/err, but
5083 having this allows modifications to be made for some platforms,
5085 having this allows modifications to be made for some platforms,
5084 such as handling color escapes under Windows. All of this code
5086 such as handling color escapes under Windows. All of this code
5085 was contributed by Gary Bishop, with minor modifications by me.
5087 was contributed by Gary Bishop, with minor modifications by me.
5086 The actual changes affect many files.
5088 The actual changes affect many files.
5087
5089
5088 2003-11-30 Fernando Perez <fperez@colorado.edu>
5090 2003-11-30 Fernando Perez <fperez@colorado.edu>
5089
5091
5090 * IPython/iplib.py (file_matches): new completion code, courtesy
5092 * IPython/iplib.py (file_matches): new completion code, courtesy
5091 of Jeff Collins. This enables filename completion again under
5093 of Jeff Collins. This enables filename completion again under
5092 python 2.3, which disabled it at the C level.
5094 python 2.3, which disabled it at the C level.
5093
5095
5094 2003-11-11 Fernando Perez <fperez@colorado.edu>
5096 2003-11-11 Fernando Perez <fperez@colorado.edu>
5095
5097
5096 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5098 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5097 for Numeric.array(map(...)), but often convenient.
5099 for Numeric.array(map(...)), but often convenient.
5098
5100
5099 2003-11-05 Fernando Perez <fperez@colorado.edu>
5101 2003-11-05 Fernando Perez <fperez@colorado.edu>
5100
5102
5101 * IPython/numutils.py (frange): Changed a call from int() to
5103 * IPython/numutils.py (frange): Changed a call from int() to
5102 int(round()) to prevent a problem reported with arange() in the
5104 int(round()) to prevent a problem reported with arange() in the
5103 numpy list.
5105 numpy list.
5104
5106
5105 2003-10-06 Fernando Perez <fperez@colorado.edu>
5107 2003-10-06 Fernando Perez <fperez@colorado.edu>
5106
5108
5107 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5109 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5108 prevent crashes if sys lacks an argv attribute (it happens with
5110 prevent crashes if sys lacks an argv attribute (it happens with
5109 embedded interpreters which build a bare-bones sys module).
5111 embedded interpreters which build a bare-bones sys module).
5110 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5112 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5111
5113
5112 2003-09-24 Fernando Perez <fperez@colorado.edu>
5114 2003-09-24 Fernando Perez <fperez@colorado.edu>
5113
5115
5114 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5116 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5115 to protect against poorly written user objects where __getattr__
5117 to protect against poorly written user objects where __getattr__
5116 raises exceptions other than AttributeError. Thanks to a bug
5118 raises exceptions other than AttributeError. Thanks to a bug
5117 report by Oliver Sander <osander-AT-gmx.de>.
5119 report by Oliver Sander <osander-AT-gmx.de>.
5118
5120
5119 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5121 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5120 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5122 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5121
5123
5122 2003-09-09 Fernando Perez <fperez@colorado.edu>
5124 2003-09-09 Fernando Perez <fperez@colorado.edu>
5123
5125
5124 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5126 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5125 unpacking a list whith a callable as first element would
5127 unpacking a list whith a callable as first element would
5126 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5128 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5127 Collins.
5129 Collins.
5128
5130
5129 2003-08-25 *** Released version 0.5.0
5131 2003-08-25 *** Released version 0.5.0
5130
5132
5131 2003-08-22 Fernando Perez <fperez@colorado.edu>
5133 2003-08-22 Fernando Perez <fperez@colorado.edu>
5132
5134
5133 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5135 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5134 improperly defined user exceptions. Thanks to feedback from Mark
5136 improperly defined user exceptions. Thanks to feedback from Mark
5135 Russell <mrussell-AT-verio.net>.
5137 Russell <mrussell-AT-verio.net>.
5136
5138
5137 2003-08-20 Fernando Perez <fperez@colorado.edu>
5139 2003-08-20 Fernando Perez <fperez@colorado.edu>
5138
5140
5139 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5141 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5140 printing so that it would print multi-line string forms starting
5142 printing so that it would print multi-line string forms starting
5141 with a new line. This way the formatting is better respected for
5143 with a new line. This way the formatting is better respected for
5142 objects which work hard to make nice string forms.
5144 objects which work hard to make nice string forms.
5143
5145
5144 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5146 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5145 autocall would overtake data access for objects with both
5147 autocall would overtake data access for objects with both
5146 __getitem__ and __call__.
5148 __getitem__ and __call__.
5147
5149
5148 2003-08-19 *** Released version 0.5.0-rc1
5150 2003-08-19 *** Released version 0.5.0-rc1
5149
5151
5150 2003-08-19 Fernando Perez <fperez@colorado.edu>
5152 2003-08-19 Fernando Perez <fperez@colorado.edu>
5151
5153
5152 * IPython/deep_reload.py (load_tail): single tiny change here
5154 * IPython/deep_reload.py (load_tail): single tiny change here
5153 seems to fix the long-standing bug of dreload() failing to work
5155 seems to fix the long-standing bug of dreload() failing to work
5154 for dotted names. But this module is pretty tricky, so I may have
5156 for dotted names. But this module is pretty tricky, so I may have
5155 missed some subtlety. Needs more testing!.
5157 missed some subtlety. Needs more testing!.
5156
5158
5157 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5159 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5158 exceptions which have badly implemented __str__ methods.
5160 exceptions which have badly implemented __str__ methods.
5159 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5161 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5160 which I've been getting reports about from Python 2.3 users. I
5162 which I've been getting reports about from Python 2.3 users. I
5161 wish I had a simple test case to reproduce the problem, so I could
5163 wish I had a simple test case to reproduce the problem, so I could
5162 either write a cleaner workaround or file a bug report if
5164 either write a cleaner workaround or file a bug report if
5163 necessary.
5165 necessary.
5164
5166
5165 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5167 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5166 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5168 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5167 a bug report by Tjabo Kloppenburg.
5169 a bug report by Tjabo Kloppenburg.
5168
5170
5169 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5171 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5170 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5172 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5171 seems rather unstable. Thanks to a bug report by Tjabo
5173 seems rather unstable. Thanks to a bug report by Tjabo
5172 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5174 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5173
5175
5174 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5176 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5175 this out soon because of the critical fixes in the inner loop for
5177 this out soon because of the critical fixes in the inner loop for
5176 generators.
5178 generators.
5177
5179
5178 * IPython/Magic.py (Magic.getargspec): removed. This (and
5180 * IPython/Magic.py (Magic.getargspec): removed. This (and
5179 _get_def) have been obsoleted by OInspect for a long time, I
5181 _get_def) have been obsoleted by OInspect for a long time, I
5180 hadn't noticed that they were dead code.
5182 hadn't noticed that they were dead code.
5181 (Magic._ofind): restored _ofind functionality for a few literals
5183 (Magic._ofind): restored _ofind functionality for a few literals
5182 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5184 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5183 for things like "hello".capitalize?, since that would require a
5185 for things like "hello".capitalize?, since that would require a
5184 potentially dangerous eval() again.
5186 potentially dangerous eval() again.
5185
5187
5186 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5188 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5187 logic a bit more to clean up the escapes handling and minimize the
5189 logic a bit more to clean up the escapes handling and minimize the
5188 use of _ofind to only necessary cases. The interactive 'feel' of
5190 use of _ofind to only necessary cases. The interactive 'feel' of
5189 IPython should have improved quite a bit with the changes in
5191 IPython should have improved quite a bit with the changes in
5190 _prefilter and _ofind (besides being far safer than before).
5192 _prefilter and _ofind (besides being far safer than before).
5191
5193
5192 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5194 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5193 obscure, never reported). Edit would fail to find the object to
5195 obscure, never reported). Edit would fail to find the object to
5194 edit under some circumstances.
5196 edit under some circumstances.
5195 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5197 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5196 which were causing double-calling of generators. Those eval calls
5198 which were causing double-calling of generators. Those eval calls
5197 were _very_ dangerous, since code with side effects could be
5199 were _very_ dangerous, since code with side effects could be
5198 triggered. As they say, 'eval is evil'... These were the
5200 triggered. As they say, 'eval is evil'... These were the
5199 nastiest evals in IPython. Besides, _ofind is now far simpler,
5201 nastiest evals in IPython. Besides, _ofind is now far simpler,
5200 and it should also be quite a bit faster. Its use of inspect is
5202 and it should also be quite a bit faster. Its use of inspect is
5201 also safer, so perhaps some of the inspect-related crashes I've
5203 also safer, so perhaps some of the inspect-related crashes I've
5202 seen lately with Python 2.3 might be taken care of. That will
5204 seen lately with Python 2.3 might be taken care of. That will
5203 need more testing.
5205 need more testing.
5204
5206
5205 2003-08-17 Fernando Perez <fperez@colorado.edu>
5207 2003-08-17 Fernando Perez <fperez@colorado.edu>
5206
5208
5207 * IPython/iplib.py (InteractiveShell._prefilter): significant
5209 * IPython/iplib.py (InteractiveShell._prefilter): significant
5208 simplifications to the logic for handling user escapes. Faster
5210 simplifications to the logic for handling user escapes. Faster
5209 and simpler code.
5211 and simpler code.
5210
5212
5211 2003-08-14 Fernando Perez <fperez@colorado.edu>
5213 2003-08-14 Fernando Perez <fperez@colorado.edu>
5212
5214
5213 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5215 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5214 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5216 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5215 but it should be quite a bit faster. And the recursive version
5217 but it should be quite a bit faster. And the recursive version
5216 generated O(log N) intermediate storage for all rank>1 arrays,
5218 generated O(log N) intermediate storage for all rank>1 arrays,
5217 even if they were contiguous.
5219 even if they were contiguous.
5218 (l1norm): Added this function.
5220 (l1norm): Added this function.
5219 (norm): Added this function for arbitrary norms (including
5221 (norm): Added this function for arbitrary norms (including
5220 l-infinity). l1 and l2 are still special cases for convenience
5222 l-infinity). l1 and l2 are still special cases for convenience
5221 and speed.
5223 and speed.
5222
5224
5223 2003-08-03 Fernando Perez <fperez@colorado.edu>
5225 2003-08-03 Fernando Perez <fperez@colorado.edu>
5224
5226
5225 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5227 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5226 exceptions, which now raise PendingDeprecationWarnings in Python
5228 exceptions, which now raise PendingDeprecationWarnings in Python
5227 2.3. There were some in Magic and some in Gnuplot2.
5229 2.3. There were some in Magic and some in Gnuplot2.
5228
5230
5229 2003-06-30 Fernando Perez <fperez@colorado.edu>
5231 2003-06-30 Fernando Perez <fperez@colorado.edu>
5230
5232
5231 * IPython/genutils.py (page): modified to call curses only for
5233 * IPython/genutils.py (page): modified to call curses only for
5232 terminals where TERM=='xterm'. After problems under many other
5234 terminals where TERM=='xterm'. After problems under many other
5233 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5235 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5234
5236
5235 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5237 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5236 would be triggered when readline was absent. This was just an old
5238 would be triggered when readline was absent. This was just an old
5237 debugging statement I'd forgotten to take out.
5239 debugging statement I'd forgotten to take out.
5238
5240
5239 2003-06-20 Fernando Perez <fperez@colorado.edu>
5241 2003-06-20 Fernando Perez <fperez@colorado.edu>
5240
5242
5241 * IPython/genutils.py (clock): modified to return only user time
5243 * IPython/genutils.py (clock): modified to return only user time
5242 (not counting system time), after a discussion on scipy. While
5244 (not counting system time), after a discussion on scipy. While
5243 system time may be a useful quantity occasionally, it may much
5245 system time may be a useful quantity occasionally, it may much
5244 more easily be skewed by occasional swapping or other similar
5246 more easily be skewed by occasional swapping or other similar
5245 activity.
5247 activity.
5246
5248
5247 2003-06-05 Fernando Perez <fperez@colorado.edu>
5249 2003-06-05 Fernando Perez <fperez@colorado.edu>
5248
5250
5249 * IPython/numutils.py (identity): new function, for building
5251 * IPython/numutils.py (identity): new function, for building
5250 arbitrary rank Kronecker deltas (mostly backwards compatible with
5252 arbitrary rank Kronecker deltas (mostly backwards compatible with
5251 Numeric.identity)
5253 Numeric.identity)
5252
5254
5253 2003-06-03 Fernando Perez <fperez@colorado.edu>
5255 2003-06-03 Fernando Perez <fperez@colorado.edu>
5254
5256
5255 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5257 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5256 arguments passed to magics with spaces, to allow trailing '\' to
5258 arguments passed to magics with spaces, to allow trailing '\' to
5257 work normally (mainly for Windows users).
5259 work normally (mainly for Windows users).
5258
5260
5259 2003-05-29 Fernando Perez <fperez@colorado.edu>
5261 2003-05-29 Fernando Perez <fperez@colorado.edu>
5260
5262
5261 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5263 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5262 instead of pydoc.help. This fixes a bizarre behavior where
5264 instead of pydoc.help. This fixes a bizarre behavior where
5263 printing '%s' % locals() would trigger the help system. Now
5265 printing '%s' % locals() would trigger the help system. Now
5264 ipython behaves like normal python does.
5266 ipython behaves like normal python does.
5265
5267
5266 Note that if one does 'from pydoc import help', the bizarre
5268 Note that if one does 'from pydoc import help', the bizarre
5267 behavior returns, but this will also happen in normal python, so
5269 behavior returns, but this will also happen in normal python, so
5268 it's not an ipython bug anymore (it has to do with how pydoc.help
5270 it's not an ipython bug anymore (it has to do with how pydoc.help
5269 is implemented).
5271 is implemented).
5270
5272
5271 2003-05-22 Fernando Perez <fperez@colorado.edu>
5273 2003-05-22 Fernando Perez <fperez@colorado.edu>
5272
5274
5273 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5275 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5274 return [] instead of None when nothing matches, also match to end
5276 return [] instead of None when nothing matches, also match to end
5275 of line. Patch by Gary Bishop.
5277 of line. Patch by Gary Bishop.
5276
5278
5277 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5279 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5278 protection as before, for files passed on the command line. This
5280 protection as before, for files passed on the command line. This
5279 prevents the CrashHandler from kicking in if user files call into
5281 prevents the CrashHandler from kicking in if user files call into
5280 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5282 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5281 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5283 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5282
5284
5283 2003-05-20 *** Released version 0.4.0
5285 2003-05-20 *** Released version 0.4.0
5284
5286
5285 2003-05-20 Fernando Perez <fperez@colorado.edu>
5287 2003-05-20 Fernando Perez <fperez@colorado.edu>
5286
5288
5287 * setup.py: added support for manpages. It's a bit hackish b/c of
5289 * setup.py: added support for manpages. It's a bit hackish b/c of
5288 a bug in the way the bdist_rpm distutils target handles gzipped
5290 a bug in the way the bdist_rpm distutils target handles gzipped
5289 manpages, but it works. After a patch by Jack.
5291 manpages, but it works. After a patch by Jack.
5290
5292
5291 2003-05-19 Fernando Perez <fperez@colorado.edu>
5293 2003-05-19 Fernando Perez <fperez@colorado.edu>
5292
5294
5293 * IPython/numutils.py: added a mockup of the kinds module, since
5295 * IPython/numutils.py: added a mockup of the kinds module, since
5294 it was recently removed from Numeric. This way, numutils will
5296 it was recently removed from Numeric. This way, numutils will
5295 work for all users even if they are missing kinds.
5297 work for all users even if they are missing kinds.
5296
5298
5297 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5299 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5298 failure, which can occur with SWIG-wrapped extensions. After a
5300 failure, which can occur with SWIG-wrapped extensions. After a
5299 crash report from Prabhu.
5301 crash report from Prabhu.
5300
5302
5301 2003-05-16 Fernando Perez <fperez@colorado.edu>
5303 2003-05-16 Fernando Perez <fperez@colorado.edu>
5302
5304
5303 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5305 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5304 protect ipython from user code which may call directly
5306 protect ipython from user code which may call directly
5305 sys.excepthook (this looks like an ipython crash to the user, even
5307 sys.excepthook (this looks like an ipython crash to the user, even
5306 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5308 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5307 This is especially important to help users of WxWindows, but may
5309 This is especially important to help users of WxWindows, but may
5308 also be useful in other cases.
5310 also be useful in other cases.
5309
5311
5310 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5312 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5311 an optional tb_offset to be specified, and to preserve exception
5313 an optional tb_offset to be specified, and to preserve exception
5312 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5314 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5313
5315
5314 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5316 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5315
5317
5316 2003-05-15 Fernando Perez <fperez@colorado.edu>
5318 2003-05-15 Fernando Perez <fperez@colorado.edu>
5317
5319
5318 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5320 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5319 installing for a new user under Windows.
5321 installing for a new user under Windows.
5320
5322
5321 2003-05-12 Fernando Perez <fperez@colorado.edu>
5323 2003-05-12 Fernando Perez <fperez@colorado.edu>
5322
5324
5323 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5325 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5324 handler for Emacs comint-based lines. Currently it doesn't do
5326 handler for Emacs comint-based lines. Currently it doesn't do
5325 much (but importantly, it doesn't update the history cache). In
5327 much (but importantly, it doesn't update the history cache). In
5326 the future it may be expanded if Alex needs more functionality
5328 the future it may be expanded if Alex needs more functionality
5327 there.
5329 there.
5328
5330
5329 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5331 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5330 info to crash reports.
5332 info to crash reports.
5331
5333
5332 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5334 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5333 just like Python's -c. Also fixed crash with invalid -color
5335 just like Python's -c. Also fixed crash with invalid -color
5334 option value at startup. Thanks to Will French
5336 option value at startup. Thanks to Will French
5335 <wfrench-AT-bestweb.net> for the bug report.
5337 <wfrench-AT-bestweb.net> for the bug report.
5336
5338
5337 2003-05-09 Fernando Perez <fperez@colorado.edu>
5339 2003-05-09 Fernando Perez <fperez@colorado.edu>
5338
5340
5339 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5341 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5340 to EvalDict (it's a mapping, after all) and simplified its code
5342 to EvalDict (it's a mapping, after all) and simplified its code
5341 quite a bit, after a nice discussion on c.l.py where Gustavo
5343 quite a bit, after a nice discussion on c.l.py where Gustavo
5342 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5344 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5343
5345
5344 2003-04-30 Fernando Perez <fperez@colorado.edu>
5346 2003-04-30 Fernando Perez <fperez@colorado.edu>
5345
5347
5346 * IPython/genutils.py (timings_out): modified it to reduce its
5348 * IPython/genutils.py (timings_out): modified it to reduce its
5347 overhead in the common reps==1 case.
5349 overhead in the common reps==1 case.
5348
5350
5349 2003-04-29 Fernando Perez <fperez@colorado.edu>
5351 2003-04-29 Fernando Perez <fperez@colorado.edu>
5350
5352
5351 * IPython/genutils.py (timings_out): Modified to use the resource
5353 * IPython/genutils.py (timings_out): Modified to use the resource
5352 module, which avoids the wraparound problems of time.clock().
5354 module, which avoids the wraparound problems of time.clock().
5353
5355
5354 2003-04-17 *** Released version 0.2.15pre4
5356 2003-04-17 *** Released version 0.2.15pre4
5355
5357
5356 2003-04-17 Fernando Perez <fperez@colorado.edu>
5358 2003-04-17 Fernando Perez <fperez@colorado.edu>
5357
5359
5358 * setup.py (scriptfiles): Split windows-specific stuff over to a
5360 * setup.py (scriptfiles): Split windows-specific stuff over to a
5359 separate file, in an attempt to have a Windows GUI installer.
5361 separate file, in an attempt to have a Windows GUI installer.
5360 That didn't work, but part of the groundwork is done.
5362 That didn't work, but part of the groundwork is done.
5361
5363
5362 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5364 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5363 indent/unindent with 4 spaces. Particularly useful in combination
5365 indent/unindent with 4 spaces. Particularly useful in combination
5364 with the new auto-indent option.
5366 with the new auto-indent option.
5365
5367
5366 2003-04-16 Fernando Perez <fperez@colorado.edu>
5368 2003-04-16 Fernando Perez <fperez@colorado.edu>
5367
5369
5368 * IPython/Magic.py: various replacements of self.rc for
5370 * IPython/Magic.py: various replacements of self.rc for
5369 self.shell.rc. A lot more remains to be done to fully disentangle
5371 self.shell.rc. A lot more remains to be done to fully disentangle
5370 this class from the main Shell class.
5372 this class from the main Shell class.
5371
5373
5372 * IPython/GnuplotRuntime.py: added checks for mouse support so
5374 * IPython/GnuplotRuntime.py: added checks for mouse support so
5373 that we don't try to enable it if the current gnuplot doesn't
5375 that we don't try to enable it if the current gnuplot doesn't
5374 really support it. Also added checks so that we don't try to
5376 really support it. Also added checks so that we don't try to
5375 enable persist under Windows (where Gnuplot doesn't recognize the
5377 enable persist under Windows (where Gnuplot doesn't recognize the
5376 option).
5378 option).
5377
5379
5378 * IPython/iplib.py (InteractiveShell.interact): Added optional
5380 * IPython/iplib.py (InteractiveShell.interact): Added optional
5379 auto-indenting code, after a patch by King C. Shu
5381 auto-indenting code, after a patch by King C. Shu
5380 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5382 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5381 get along well with pasting indented code. If I ever figure out
5383 get along well with pasting indented code. If I ever figure out
5382 how to make that part go well, it will become on by default.
5384 how to make that part go well, it will become on by default.
5383
5385
5384 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5386 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5385 crash ipython if there was an unmatched '%' in the user's prompt
5387 crash ipython if there was an unmatched '%' in the user's prompt
5386 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5388 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5387
5389
5388 * IPython/iplib.py (InteractiveShell.interact): removed the
5390 * IPython/iplib.py (InteractiveShell.interact): removed the
5389 ability to ask the user whether he wants to crash or not at the
5391 ability to ask the user whether he wants to crash or not at the
5390 'last line' exception handler. Calling functions at that point
5392 'last line' exception handler. Calling functions at that point
5391 changes the stack, and the error reports would have incorrect
5393 changes the stack, and the error reports would have incorrect
5392 tracebacks.
5394 tracebacks.
5393
5395
5394 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5396 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5395 pass through a peger a pretty-printed form of any object. After a
5397 pass through a peger a pretty-printed form of any object. After a
5396 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5398 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5397
5399
5398 2003-04-14 Fernando Perez <fperez@colorado.edu>
5400 2003-04-14 Fernando Perez <fperez@colorado.edu>
5399
5401
5400 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5402 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5401 all files in ~ would be modified at first install (instead of
5403 all files in ~ would be modified at first install (instead of
5402 ~/.ipython). This could be potentially disastrous, as the
5404 ~/.ipython). This could be potentially disastrous, as the
5403 modification (make line-endings native) could damage binary files.
5405 modification (make line-endings native) could damage binary files.
5404
5406
5405 2003-04-10 Fernando Perez <fperez@colorado.edu>
5407 2003-04-10 Fernando Perez <fperez@colorado.edu>
5406
5408
5407 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5409 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5408 handle only lines which are invalid python. This now means that
5410 handle only lines which are invalid python. This now means that
5409 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5411 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5410 for the bug report.
5412 for the bug report.
5411
5413
5412 2003-04-01 Fernando Perez <fperez@colorado.edu>
5414 2003-04-01 Fernando Perez <fperez@colorado.edu>
5413
5415
5414 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5416 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5415 where failing to set sys.last_traceback would crash pdb.pm().
5417 where failing to set sys.last_traceback would crash pdb.pm().
5416 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5418 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5417 report.
5419 report.
5418
5420
5419 2003-03-25 Fernando Perez <fperez@colorado.edu>
5421 2003-03-25 Fernando Perez <fperez@colorado.edu>
5420
5422
5421 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5423 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5422 before printing it (it had a lot of spurious blank lines at the
5424 before printing it (it had a lot of spurious blank lines at the
5423 end).
5425 end).
5424
5426
5425 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5427 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5426 output would be sent 21 times! Obviously people don't use this
5428 output would be sent 21 times! Obviously people don't use this
5427 too often, or I would have heard about it.
5429 too often, or I would have heard about it.
5428
5430
5429 2003-03-24 Fernando Perez <fperez@colorado.edu>
5431 2003-03-24 Fernando Perez <fperez@colorado.edu>
5430
5432
5431 * setup.py (scriptfiles): renamed the data_files parameter from
5433 * setup.py (scriptfiles): renamed the data_files parameter from
5432 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5434 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5433 for the patch.
5435 for the patch.
5434
5436
5435 2003-03-20 Fernando Perez <fperez@colorado.edu>
5437 2003-03-20 Fernando Perez <fperez@colorado.edu>
5436
5438
5437 * IPython/genutils.py (error): added error() and fatal()
5439 * IPython/genutils.py (error): added error() and fatal()
5438 functions.
5440 functions.
5439
5441
5440 2003-03-18 *** Released version 0.2.15pre3
5442 2003-03-18 *** Released version 0.2.15pre3
5441
5443
5442 2003-03-18 Fernando Perez <fperez@colorado.edu>
5444 2003-03-18 Fernando Perez <fperez@colorado.edu>
5443
5445
5444 * setupext/install_data_ext.py
5446 * setupext/install_data_ext.py
5445 (install_data_ext.initialize_options): Class contributed by Jack
5447 (install_data_ext.initialize_options): Class contributed by Jack
5446 Moffit for fixing the old distutils hack. He is sending this to
5448 Moffit for fixing the old distutils hack. He is sending this to
5447 the distutils folks so in the future we may not need it as a
5449 the distutils folks so in the future we may not need it as a
5448 private fix.
5450 private fix.
5449
5451
5450 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5452 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5451 changes for Debian packaging. See his patch for full details.
5453 changes for Debian packaging. See his patch for full details.
5452 The old distutils hack of making the ipythonrc* files carry a
5454 The old distutils hack of making the ipythonrc* files carry a
5453 bogus .py extension is gone, at last. Examples were moved to a
5455 bogus .py extension is gone, at last. Examples were moved to a
5454 separate subdir under doc/, and the separate executable scripts
5456 separate subdir under doc/, and the separate executable scripts
5455 now live in their own directory. Overall a great cleanup. The
5457 now live in their own directory. Overall a great cleanup. The
5456 manual was updated to use the new files, and setup.py has been
5458 manual was updated to use the new files, and setup.py has been
5457 fixed for this setup.
5459 fixed for this setup.
5458
5460
5459 * IPython/PyColorize.py (Parser.usage): made non-executable and
5461 * IPython/PyColorize.py (Parser.usage): made non-executable and
5460 created a pycolor wrapper around it to be included as a script.
5462 created a pycolor wrapper around it to be included as a script.
5461
5463
5462 2003-03-12 *** Released version 0.2.15pre2
5464 2003-03-12 *** Released version 0.2.15pre2
5463
5465
5464 2003-03-12 Fernando Perez <fperez@colorado.edu>
5466 2003-03-12 Fernando Perez <fperez@colorado.edu>
5465
5467
5466 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5468 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5467 long-standing problem with garbage characters in some terminals.
5469 long-standing problem with garbage characters in some terminals.
5468 The issue was really that the \001 and \002 escapes must _only_ be
5470 The issue was really that the \001 and \002 escapes must _only_ be
5469 passed to input prompts (which call readline), but _never_ to
5471 passed to input prompts (which call readline), but _never_ to
5470 normal text to be printed on screen. I changed ColorANSI to have
5472 normal text to be printed on screen. I changed ColorANSI to have
5471 two classes: TermColors and InputTermColors, each with the
5473 two classes: TermColors and InputTermColors, each with the
5472 appropriate escapes for input prompts or normal text. The code in
5474 appropriate escapes for input prompts or normal text. The code in
5473 Prompts.py got slightly more complicated, but this very old and
5475 Prompts.py got slightly more complicated, but this very old and
5474 annoying bug is finally fixed.
5476 annoying bug is finally fixed.
5475
5477
5476 All the credit for nailing down the real origin of this problem
5478 All the credit for nailing down the real origin of this problem
5477 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5479 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5478 *Many* thanks to him for spending quite a bit of effort on this.
5480 *Many* thanks to him for spending quite a bit of effort on this.
5479
5481
5480 2003-03-05 *** Released version 0.2.15pre1
5482 2003-03-05 *** Released version 0.2.15pre1
5481
5483
5482 2003-03-03 Fernando Perez <fperez@colorado.edu>
5484 2003-03-03 Fernando Perez <fperez@colorado.edu>
5483
5485
5484 * IPython/FakeModule.py: Moved the former _FakeModule to a
5486 * IPython/FakeModule.py: Moved the former _FakeModule to a
5485 separate file, because it's also needed by Magic (to fix a similar
5487 separate file, because it's also needed by Magic (to fix a similar
5486 pickle-related issue in @run).
5488 pickle-related issue in @run).
5487
5489
5488 2003-03-02 Fernando Perez <fperez@colorado.edu>
5490 2003-03-02 Fernando Perez <fperez@colorado.edu>
5489
5491
5490 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5492 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5491 the autocall option at runtime.
5493 the autocall option at runtime.
5492 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5494 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5493 across Magic.py to start separating Magic from InteractiveShell.
5495 across Magic.py to start separating Magic from InteractiveShell.
5494 (Magic._ofind): Fixed to return proper namespace for dotted
5496 (Magic._ofind): Fixed to return proper namespace for dotted
5495 names. Before, a dotted name would always return 'not currently
5497 names. Before, a dotted name would always return 'not currently
5496 defined', because it would find the 'parent'. s.x would be found,
5498 defined', because it would find the 'parent'. s.x would be found,
5497 but since 'x' isn't defined by itself, it would get confused.
5499 but since 'x' isn't defined by itself, it would get confused.
5498 (Magic.magic_run): Fixed pickling problems reported by Ralf
5500 (Magic.magic_run): Fixed pickling problems reported by Ralf
5499 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5501 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5500 that I'd used when Mike Heeter reported similar issues at the
5502 that I'd used when Mike Heeter reported similar issues at the
5501 top-level, but now for @run. It boils down to injecting the
5503 top-level, but now for @run. It boils down to injecting the
5502 namespace where code is being executed with something that looks
5504 namespace where code is being executed with something that looks
5503 enough like a module to fool pickle.dump(). Since a pickle stores
5505 enough like a module to fool pickle.dump(). Since a pickle stores
5504 a named reference to the importing module, we need this for
5506 a named reference to the importing module, we need this for
5505 pickles to save something sensible.
5507 pickles to save something sensible.
5506
5508
5507 * IPython/ipmaker.py (make_IPython): added an autocall option.
5509 * IPython/ipmaker.py (make_IPython): added an autocall option.
5508
5510
5509 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5511 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5510 the auto-eval code. Now autocalling is an option, and the code is
5512 the auto-eval code. Now autocalling is an option, and the code is
5511 also vastly safer. There is no more eval() involved at all.
5513 also vastly safer. There is no more eval() involved at all.
5512
5514
5513 2003-03-01 Fernando Perez <fperez@colorado.edu>
5515 2003-03-01 Fernando Perez <fperez@colorado.edu>
5514
5516
5515 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5517 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5516 dict with named keys instead of a tuple.
5518 dict with named keys instead of a tuple.
5517
5519
5518 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5520 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5519
5521
5520 * setup.py (make_shortcut): Fixed message about directories
5522 * setup.py (make_shortcut): Fixed message about directories
5521 created during Windows installation (the directories were ok, just
5523 created during Windows installation (the directories were ok, just
5522 the printed message was misleading). Thanks to Chris Liechti
5524 the printed message was misleading). Thanks to Chris Liechti
5523 <cliechti-AT-gmx.net> for the heads up.
5525 <cliechti-AT-gmx.net> for the heads up.
5524
5526
5525 2003-02-21 Fernando Perez <fperez@colorado.edu>
5527 2003-02-21 Fernando Perez <fperez@colorado.edu>
5526
5528
5527 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5529 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5528 of ValueError exception when checking for auto-execution. This
5530 of ValueError exception when checking for auto-execution. This
5529 one is raised by things like Numeric arrays arr.flat when the
5531 one is raised by things like Numeric arrays arr.flat when the
5530 array is non-contiguous.
5532 array is non-contiguous.
5531
5533
5532 2003-01-31 Fernando Perez <fperez@colorado.edu>
5534 2003-01-31 Fernando Perez <fperez@colorado.edu>
5533
5535
5534 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5536 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5535 not return any value at all (even though the command would get
5537 not return any value at all (even though the command would get
5536 executed).
5538 executed).
5537 (xsys): Flush stdout right after printing the command to ensure
5539 (xsys): Flush stdout right after printing the command to ensure
5538 proper ordering of commands and command output in the total
5540 proper ordering of commands and command output in the total
5539 output.
5541 output.
5540 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5542 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5541 system/getoutput as defaults. The old ones are kept for
5543 system/getoutput as defaults. The old ones are kept for
5542 compatibility reasons, so no code which uses this library needs
5544 compatibility reasons, so no code which uses this library needs
5543 changing.
5545 changing.
5544
5546
5545 2003-01-27 *** Released version 0.2.14
5547 2003-01-27 *** Released version 0.2.14
5546
5548
5547 2003-01-25 Fernando Perez <fperez@colorado.edu>
5549 2003-01-25 Fernando Perez <fperez@colorado.edu>
5548
5550
5549 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5551 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5550 functions defined in previous edit sessions could not be re-edited
5552 functions defined in previous edit sessions could not be re-edited
5551 (because the temp files were immediately removed). Now temp files
5553 (because the temp files were immediately removed). Now temp files
5552 are removed only at IPython's exit.
5554 are removed only at IPython's exit.
5553 (Magic.magic_run): Improved @run to perform shell-like expansions
5555 (Magic.magic_run): Improved @run to perform shell-like expansions
5554 on its arguments (~users and $VARS). With this, @run becomes more
5556 on its arguments (~users and $VARS). With this, @run becomes more
5555 like a normal command-line.
5557 like a normal command-line.
5556
5558
5557 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5559 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5558 bugs related to embedding and cleaned up that code. A fairly
5560 bugs related to embedding and cleaned up that code. A fairly
5559 important one was the impossibility to access the global namespace
5561 important one was the impossibility to access the global namespace
5560 through the embedded IPython (only local variables were visible).
5562 through the embedded IPython (only local variables were visible).
5561
5563
5562 2003-01-14 Fernando Perez <fperez@colorado.edu>
5564 2003-01-14 Fernando Perez <fperez@colorado.edu>
5563
5565
5564 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5566 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5565 auto-calling to be a bit more conservative. Now it doesn't get
5567 auto-calling to be a bit more conservative. Now it doesn't get
5566 triggered if any of '!=()<>' are in the rest of the input line, to
5568 triggered if any of '!=()<>' are in the rest of the input line, to
5567 allow comparing callables. Thanks to Alex for the heads up.
5569 allow comparing callables. Thanks to Alex for the heads up.
5568
5570
5569 2003-01-07 Fernando Perez <fperez@colorado.edu>
5571 2003-01-07 Fernando Perez <fperez@colorado.edu>
5570
5572
5571 * IPython/genutils.py (page): fixed estimation of the number of
5573 * IPython/genutils.py (page): fixed estimation of the number of
5572 lines in a string to be paged to simply count newlines. This
5574 lines in a string to be paged to simply count newlines. This
5573 prevents over-guessing due to embedded escape sequences. A better
5575 prevents over-guessing due to embedded escape sequences. A better
5574 long-term solution would involve stripping out the control chars
5576 long-term solution would involve stripping out the control chars
5575 for the count, but it's potentially so expensive I just don't
5577 for the count, but it's potentially so expensive I just don't
5576 think it's worth doing.
5578 think it's worth doing.
5577
5579
5578 2002-12-19 *** Released version 0.2.14pre50
5580 2002-12-19 *** Released version 0.2.14pre50
5579
5581
5580 2002-12-19 Fernando Perez <fperez@colorado.edu>
5582 2002-12-19 Fernando Perez <fperez@colorado.edu>
5581
5583
5582 * tools/release (version): Changed release scripts to inform
5584 * tools/release (version): Changed release scripts to inform
5583 Andrea and build a NEWS file with a list of recent changes.
5585 Andrea and build a NEWS file with a list of recent changes.
5584
5586
5585 * IPython/ColorANSI.py (__all__): changed terminal detection
5587 * IPython/ColorANSI.py (__all__): changed terminal detection
5586 code. Seems to work better for xterms without breaking
5588 code. Seems to work better for xterms without breaking
5587 konsole. Will need more testing to determine if WinXP and Mac OSX
5589 konsole. Will need more testing to determine if WinXP and Mac OSX
5588 also work ok.
5590 also work ok.
5589
5591
5590 2002-12-18 *** Released version 0.2.14pre49
5592 2002-12-18 *** Released version 0.2.14pre49
5591
5593
5592 2002-12-18 Fernando Perez <fperez@colorado.edu>
5594 2002-12-18 Fernando Perez <fperez@colorado.edu>
5593
5595
5594 * Docs: added new info about Mac OSX, from Andrea.
5596 * Docs: added new info about Mac OSX, from Andrea.
5595
5597
5596 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5598 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5597 allow direct plotting of python strings whose format is the same
5599 allow direct plotting of python strings whose format is the same
5598 of gnuplot data files.
5600 of gnuplot data files.
5599
5601
5600 2002-12-16 Fernando Perez <fperez@colorado.edu>
5602 2002-12-16 Fernando Perez <fperez@colorado.edu>
5601
5603
5602 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5604 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5603 value of exit question to be acknowledged.
5605 value of exit question to be acknowledged.
5604
5606
5605 2002-12-03 Fernando Perez <fperez@colorado.edu>
5607 2002-12-03 Fernando Perez <fperez@colorado.edu>
5606
5608
5607 * IPython/ipmaker.py: removed generators, which had been added
5609 * IPython/ipmaker.py: removed generators, which had been added
5608 by mistake in an earlier debugging run. This was causing trouble
5610 by mistake in an earlier debugging run. This was causing trouble
5609 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5611 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5610 for pointing this out.
5612 for pointing this out.
5611
5613
5612 2002-11-17 Fernando Perez <fperez@colorado.edu>
5614 2002-11-17 Fernando Perez <fperez@colorado.edu>
5613
5615
5614 * Manual: updated the Gnuplot section.
5616 * Manual: updated the Gnuplot section.
5615
5617
5616 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5618 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5617 a much better split of what goes in Runtime and what goes in
5619 a much better split of what goes in Runtime and what goes in
5618 Interactive.
5620 Interactive.
5619
5621
5620 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5622 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5621 being imported from iplib.
5623 being imported from iplib.
5622
5624
5623 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5625 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5624 for command-passing. Now the global Gnuplot instance is called
5626 for command-passing. Now the global Gnuplot instance is called
5625 'gp' instead of 'g', which was really a far too fragile and
5627 'gp' instead of 'g', which was really a far too fragile and
5626 common name.
5628 common name.
5627
5629
5628 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5630 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5629 bounding boxes generated by Gnuplot for square plots.
5631 bounding boxes generated by Gnuplot for square plots.
5630
5632
5631 * IPython/genutils.py (popkey): new function added. I should
5633 * IPython/genutils.py (popkey): new function added. I should
5632 suggest this on c.l.py as a dict method, it seems useful.
5634 suggest this on c.l.py as a dict method, it seems useful.
5633
5635
5634 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5636 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5635 to transparently handle PostScript generation. MUCH better than
5637 to transparently handle PostScript generation. MUCH better than
5636 the previous plot_eps/replot_eps (which I removed now). The code
5638 the previous plot_eps/replot_eps (which I removed now). The code
5637 is also fairly clean and well documented now (including
5639 is also fairly clean and well documented now (including
5638 docstrings).
5640 docstrings).
5639
5641
5640 2002-11-13 Fernando Perez <fperez@colorado.edu>
5642 2002-11-13 Fernando Perez <fperez@colorado.edu>
5641
5643
5642 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5644 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5643 (inconsistent with options).
5645 (inconsistent with options).
5644
5646
5645 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5647 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5646 manually disabled, I don't know why. Fixed it.
5648 manually disabled, I don't know why. Fixed it.
5647 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5649 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5648 eps output.
5650 eps output.
5649
5651
5650 2002-11-12 Fernando Perez <fperez@colorado.edu>
5652 2002-11-12 Fernando Perez <fperez@colorado.edu>
5651
5653
5652 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5654 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5653 don't propagate up to caller. Fixes crash reported by François
5655 don't propagate up to caller. Fixes crash reported by François
5654 Pinard.
5656 Pinard.
5655
5657
5656 2002-11-09 Fernando Perez <fperez@colorado.edu>
5658 2002-11-09 Fernando Perez <fperez@colorado.edu>
5657
5659
5658 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5660 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5659 history file for new users.
5661 history file for new users.
5660 (make_IPython): fixed bug where initial install would leave the
5662 (make_IPython): fixed bug where initial install would leave the
5661 user running in the .ipython dir.
5663 user running in the .ipython dir.
5662 (make_IPython): fixed bug where config dir .ipython would be
5664 (make_IPython): fixed bug where config dir .ipython would be
5663 created regardless of the given -ipythondir option. Thanks to Cory
5665 created regardless of the given -ipythondir option. Thanks to Cory
5664 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5666 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5665
5667
5666 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5668 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5667 type confirmations. Will need to use it in all of IPython's code
5669 type confirmations. Will need to use it in all of IPython's code
5668 consistently.
5670 consistently.
5669
5671
5670 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5672 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5671 context to print 31 lines instead of the default 5. This will make
5673 context to print 31 lines instead of the default 5. This will make
5672 the crash reports extremely detailed in case the problem is in
5674 the crash reports extremely detailed in case the problem is in
5673 libraries I don't have access to.
5675 libraries I don't have access to.
5674
5676
5675 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5677 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5676 line of defense' code to still crash, but giving users fair
5678 line of defense' code to still crash, but giving users fair
5677 warning. I don't want internal errors to go unreported: if there's
5679 warning. I don't want internal errors to go unreported: if there's
5678 an internal problem, IPython should crash and generate a full
5680 an internal problem, IPython should crash and generate a full
5679 report.
5681 report.
5680
5682
5681 2002-11-08 Fernando Perez <fperez@colorado.edu>
5683 2002-11-08 Fernando Perez <fperez@colorado.edu>
5682
5684
5683 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5685 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5684 otherwise uncaught exceptions which can appear if people set
5686 otherwise uncaught exceptions which can appear if people set
5685 sys.stdout to something badly broken. Thanks to a crash report
5687 sys.stdout to something badly broken. Thanks to a crash report
5686 from henni-AT-mail.brainbot.com.
5688 from henni-AT-mail.brainbot.com.
5687
5689
5688 2002-11-04 Fernando Perez <fperez@colorado.edu>
5690 2002-11-04 Fernando Perez <fperez@colorado.edu>
5689
5691
5690 * IPython/iplib.py (InteractiveShell.interact): added
5692 * IPython/iplib.py (InteractiveShell.interact): added
5691 __IPYTHON__active to the builtins. It's a flag which goes on when
5693 __IPYTHON__active to the builtins. It's a flag which goes on when
5692 the interaction starts and goes off again when it stops. This
5694 the interaction starts and goes off again when it stops. This
5693 allows embedding code to detect being inside IPython. Before this
5695 allows embedding code to detect being inside IPython. Before this
5694 was done via __IPYTHON__, but that only shows that an IPython
5696 was done via __IPYTHON__, but that only shows that an IPython
5695 instance has been created.
5697 instance has been created.
5696
5698
5697 * IPython/Magic.py (Magic.magic_env): I realized that in a
5699 * IPython/Magic.py (Magic.magic_env): I realized that in a
5698 UserDict, instance.data holds the data as a normal dict. So I
5700 UserDict, instance.data holds the data as a normal dict. So I
5699 modified @env to return os.environ.data instead of rebuilding a
5701 modified @env to return os.environ.data instead of rebuilding a
5700 dict by hand.
5702 dict by hand.
5701
5703
5702 2002-11-02 Fernando Perez <fperez@colorado.edu>
5704 2002-11-02 Fernando Perez <fperez@colorado.edu>
5703
5705
5704 * IPython/genutils.py (warn): changed so that level 1 prints no
5706 * IPython/genutils.py (warn): changed so that level 1 prints no
5705 header. Level 2 is now the default (with 'WARNING' header, as
5707 header. Level 2 is now the default (with 'WARNING' header, as
5706 before). I think I tracked all places where changes were needed in
5708 before). I think I tracked all places where changes were needed in
5707 IPython, but outside code using the old level numbering may have
5709 IPython, but outside code using the old level numbering may have
5708 broken.
5710 broken.
5709
5711
5710 * IPython/iplib.py (InteractiveShell.runcode): added this to
5712 * IPython/iplib.py (InteractiveShell.runcode): added this to
5711 handle the tracebacks in SystemExit traps correctly. The previous
5713 handle the tracebacks in SystemExit traps correctly. The previous
5712 code (through interact) was printing more of the stack than
5714 code (through interact) was printing more of the stack than
5713 necessary, showing IPython internal code to the user.
5715 necessary, showing IPython internal code to the user.
5714
5716
5715 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5717 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5716 default. Now that the default at the confirmation prompt is yes,
5718 default. Now that the default at the confirmation prompt is yes,
5717 it's not so intrusive. François' argument that ipython sessions
5719 it's not so intrusive. François' argument that ipython sessions
5718 tend to be complex enough not to lose them from an accidental C-d,
5720 tend to be complex enough not to lose them from an accidental C-d,
5719 is a valid one.
5721 is a valid one.
5720
5722
5721 * IPython/iplib.py (InteractiveShell.interact): added a
5723 * IPython/iplib.py (InteractiveShell.interact): added a
5722 showtraceback() call to the SystemExit trap, and modified the exit
5724 showtraceback() call to the SystemExit trap, and modified the exit
5723 confirmation to have yes as the default.
5725 confirmation to have yes as the default.
5724
5726
5725 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5727 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5726 this file. It's been gone from the code for a long time, this was
5728 this file. It's been gone from the code for a long time, this was
5727 simply leftover junk.
5729 simply leftover junk.
5728
5730
5729 2002-11-01 Fernando Perez <fperez@colorado.edu>
5731 2002-11-01 Fernando Perez <fperez@colorado.edu>
5730
5732
5731 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5733 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5732 added. If set, IPython now traps EOF and asks for
5734 added. If set, IPython now traps EOF and asks for
5733 confirmation. After a request by François Pinard.
5735 confirmation. After a request by François Pinard.
5734
5736
5735 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5737 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5736 of @abort, and with a new (better) mechanism for handling the
5738 of @abort, and with a new (better) mechanism for handling the
5737 exceptions.
5739 exceptions.
5738
5740
5739 2002-10-27 Fernando Perez <fperez@colorado.edu>
5741 2002-10-27 Fernando Perez <fperez@colorado.edu>
5740
5742
5741 * IPython/usage.py (__doc__): updated the --help information and
5743 * IPython/usage.py (__doc__): updated the --help information and
5742 the ipythonrc file to indicate that -log generates
5744 the ipythonrc file to indicate that -log generates
5743 ./ipython.log. Also fixed the corresponding info in @logstart.
5745 ./ipython.log. Also fixed the corresponding info in @logstart.
5744 This and several other fixes in the manuals thanks to reports by
5746 This and several other fixes in the manuals thanks to reports by
5745 François Pinard <pinard-AT-iro.umontreal.ca>.
5747 François Pinard <pinard-AT-iro.umontreal.ca>.
5746
5748
5747 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5749 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5748 refer to @logstart (instead of @log, which doesn't exist).
5750 refer to @logstart (instead of @log, which doesn't exist).
5749
5751
5750 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5752 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5751 AttributeError crash. Thanks to Christopher Armstrong
5753 AttributeError crash. Thanks to Christopher Armstrong
5752 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5754 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5753 introduced recently (in 0.2.14pre37) with the fix to the eval
5755 introduced recently (in 0.2.14pre37) with the fix to the eval
5754 problem mentioned below.
5756 problem mentioned below.
5755
5757
5756 2002-10-17 Fernando Perez <fperez@colorado.edu>
5758 2002-10-17 Fernando Perez <fperez@colorado.edu>
5757
5759
5758 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5760 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5759 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5761 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5760
5762
5761 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5763 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5762 this function to fix a problem reported by Alex Schmolck. He saw
5764 this function to fix a problem reported by Alex Schmolck. He saw
5763 it with list comprehensions and generators, which were getting
5765 it with list comprehensions and generators, which were getting
5764 called twice. The real problem was an 'eval' call in testing for
5766 called twice. The real problem was an 'eval' call in testing for
5765 automagic which was evaluating the input line silently.
5767 automagic which was evaluating the input line silently.
5766
5768
5767 This is a potentially very nasty bug, if the input has side
5769 This is a potentially very nasty bug, if the input has side
5768 effects which must not be repeated. The code is much cleaner now,
5770 effects which must not be repeated. The code is much cleaner now,
5769 without any blanket 'except' left and with a regexp test for
5771 without any blanket 'except' left and with a regexp test for
5770 actual function names.
5772 actual function names.
5771
5773
5772 But an eval remains, which I'm not fully comfortable with. I just
5774 But an eval remains, which I'm not fully comfortable with. I just
5773 don't know how to find out if an expression could be a callable in
5775 don't know how to find out if an expression could be a callable in
5774 the user's namespace without doing an eval on the string. However
5776 the user's namespace without doing an eval on the string. However
5775 that string is now much more strictly checked so that no code
5777 that string is now much more strictly checked so that no code
5776 slips by, so the eval should only happen for things that can
5778 slips by, so the eval should only happen for things that can
5777 really be only function/method names.
5779 really be only function/method names.
5778
5780
5779 2002-10-15 Fernando Perez <fperez@colorado.edu>
5781 2002-10-15 Fernando Perez <fperez@colorado.edu>
5780
5782
5781 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5783 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5782 OSX information to main manual, removed README_Mac_OSX file from
5784 OSX information to main manual, removed README_Mac_OSX file from
5783 distribution. Also updated credits for recent additions.
5785 distribution. Also updated credits for recent additions.
5784
5786
5785 2002-10-10 Fernando Perez <fperez@colorado.edu>
5787 2002-10-10 Fernando Perez <fperez@colorado.edu>
5786
5788
5787 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5789 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5788 terminal-related issues. Many thanks to Andrea Riciputi
5790 terminal-related issues. Many thanks to Andrea Riciputi
5789 <andrea.riciputi-AT-libero.it> for writing it.
5791 <andrea.riciputi-AT-libero.it> for writing it.
5790
5792
5791 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5793 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5792 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5794 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5793
5795
5794 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5796 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5795 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5797 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5796 <syver-en-AT-online.no> who both submitted patches for this problem.
5798 <syver-en-AT-online.no> who both submitted patches for this problem.
5797
5799
5798 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5800 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5799 global embedding to make sure that things don't overwrite user
5801 global embedding to make sure that things don't overwrite user
5800 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5802 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5801
5803
5802 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5804 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5803 compatibility. Thanks to Hayden Callow
5805 compatibility. Thanks to Hayden Callow
5804 <h.callow-AT-elec.canterbury.ac.nz>
5806 <h.callow-AT-elec.canterbury.ac.nz>
5805
5807
5806 2002-10-04 Fernando Perez <fperez@colorado.edu>
5808 2002-10-04 Fernando Perez <fperez@colorado.edu>
5807
5809
5808 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5810 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5809 Gnuplot.File objects.
5811 Gnuplot.File objects.
5810
5812
5811 2002-07-23 Fernando Perez <fperez@colorado.edu>
5813 2002-07-23 Fernando Perez <fperez@colorado.edu>
5812
5814
5813 * IPython/genutils.py (timing): Added timings() and timing() for
5815 * IPython/genutils.py (timing): Added timings() and timing() for
5814 quick access to the most commonly needed data, the execution
5816 quick access to the most commonly needed data, the execution
5815 times. Old timing() renamed to timings_out().
5817 times. Old timing() renamed to timings_out().
5816
5818
5817 2002-07-18 Fernando Perez <fperez@colorado.edu>
5819 2002-07-18 Fernando Perez <fperez@colorado.edu>
5818
5820
5819 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5821 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5820 bug with nested instances disrupting the parent's tab completion.
5822 bug with nested instances disrupting the parent's tab completion.
5821
5823
5822 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5824 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5823 all_completions code to begin the emacs integration.
5825 all_completions code to begin the emacs integration.
5824
5826
5825 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5827 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5826 argument to allow titling individual arrays when plotting.
5828 argument to allow titling individual arrays when plotting.
5827
5829
5828 2002-07-15 Fernando Perez <fperez@colorado.edu>
5830 2002-07-15 Fernando Perez <fperez@colorado.edu>
5829
5831
5830 * setup.py (make_shortcut): changed to retrieve the value of
5832 * setup.py (make_shortcut): changed to retrieve the value of
5831 'Program Files' directory from the registry (this value changes in
5833 'Program Files' directory from the registry (this value changes in
5832 non-english versions of Windows). Thanks to Thomas Fanslau
5834 non-english versions of Windows). Thanks to Thomas Fanslau
5833 <tfanslau-AT-gmx.de> for the report.
5835 <tfanslau-AT-gmx.de> for the report.
5834
5836
5835 2002-07-10 Fernando Perez <fperez@colorado.edu>
5837 2002-07-10 Fernando Perez <fperez@colorado.edu>
5836
5838
5837 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5839 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5838 a bug in pdb, which crashes if a line with only whitespace is
5840 a bug in pdb, which crashes if a line with only whitespace is
5839 entered. Bug report submitted to sourceforge.
5841 entered. Bug report submitted to sourceforge.
5840
5842
5841 2002-07-09 Fernando Perez <fperez@colorado.edu>
5843 2002-07-09 Fernando Perez <fperez@colorado.edu>
5842
5844
5843 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5845 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5844 reporting exceptions (it's a bug in inspect.py, I just set a
5846 reporting exceptions (it's a bug in inspect.py, I just set a
5845 workaround).
5847 workaround).
5846
5848
5847 2002-07-08 Fernando Perez <fperez@colorado.edu>
5849 2002-07-08 Fernando Perez <fperez@colorado.edu>
5848
5850
5849 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5851 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5850 __IPYTHON__ in __builtins__ to show up in user_ns.
5852 __IPYTHON__ in __builtins__ to show up in user_ns.
5851
5853
5852 2002-07-03 Fernando Perez <fperez@colorado.edu>
5854 2002-07-03 Fernando Perez <fperez@colorado.edu>
5853
5855
5854 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5856 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5855 name from @gp_set_instance to @gp_set_default.
5857 name from @gp_set_instance to @gp_set_default.
5856
5858
5857 * IPython/ipmaker.py (make_IPython): default editor value set to
5859 * IPython/ipmaker.py (make_IPython): default editor value set to
5858 '0' (a string), to match the rc file. Otherwise will crash when
5860 '0' (a string), to match the rc file. Otherwise will crash when
5859 .strip() is called on it.
5861 .strip() is called on it.
5860
5862
5861
5863
5862 2002-06-28 Fernando Perez <fperez@colorado.edu>
5864 2002-06-28 Fernando Perez <fperez@colorado.edu>
5863
5865
5864 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5866 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5865 of files in current directory when a file is executed via
5867 of files in current directory when a file is executed via
5866 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5868 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5867
5869
5868 * setup.py (manfiles): fix for rpm builds, submitted by RA
5870 * setup.py (manfiles): fix for rpm builds, submitted by RA
5869 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5871 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5870
5872
5871 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5873 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5872 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5874 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5873 string!). A. Schmolck caught this one.
5875 string!). A. Schmolck caught this one.
5874
5876
5875 2002-06-27 Fernando Perez <fperez@colorado.edu>
5877 2002-06-27 Fernando Perez <fperez@colorado.edu>
5876
5878
5877 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5879 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5878 defined files at the cmd line. __name__ wasn't being set to
5880 defined files at the cmd line. __name__ wasn't being set to
5879 __main__.
5881 __main__.
5880
5882
5881 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5883 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5882 regular lists and tuples besides Numeric arrays.
5884 regular lists and tuples besides Numeric arrays.
5883
5885
5884 * IPython/Prompts.py (CachedOutput.__call__): Added output
5886 * IPython/Prompts.py (CachedOutput.__call__): Added output
5885 supression for input ending with ';'. Similar to Mathematica and
5887 supression for input ending with ';'. Similar to Mathematica and
5886 Matlab. The _* vars and Out[] list are still updated, just like
5888 Matlab. The _* vars and Out[] list are still updated, just like
5887 Mathematica behaves.
5889 Mathematica behaves.
5888
5890
5889 2002-06-25 Fernando Perez <fperez@colorado.edu>
5891 2002-06-25 Fernando Perez <fperez@colorado.edu>
5890
5892
5891 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5893 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5892 .ini extensions for profiels under Windows.
5894 .ini extensions for profiels under Windows.
5893
5895
5894 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5896 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5895 string form. Fix contributed by Alexander Schmolck
5897 string form. Fix contributed by Alexander Schmolck
5896 <a.schmolck-AT-gmx.net>
5898 <a.schmolck-AT-gmx.net>
5897
5899
5898 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5900 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5899 pre-configured Gnuplot instance.
5901 pre-configured Gnuplot instance.
5900
5902
5901 2002-06-21 Fernando Perez <fperez@colorado.edu>
5903 2002-06-21 Fernando Perez <fperez@colorado.edu>
5902
5904
5903 * IPython/numutils.py (exp_safe): new function, works around the
5905 * IPython/numutils.py (exp_safe): new function, works around the
5904 underflow problems in Numeric.
5906 underflow problems in Numeric.
5905 (log2): New fn. Safe log in base 2: returns exact integer answer
5907 (log2): New fn. Safe log in base 2: returns exact integer answer
5906 for exact integer powers of 2.
5908 for exact integer powers of 2.
5907
5909
5908 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5910 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5909 properly.
5911 properly.
5910
5912
5911 2002-06-20 Fernando Perez <fperez@colorado.edu>
5913 2002-06-20 Fernando Perez <fperez@colorado.edu>
5912
5914
5913 * IPython/genutils.py (timing): new function like
5915 * IPython/genutils.py (timing): new function like
5914 Mathematica's. Similar to time_test, but returns more info.
5916 Mathematica's. Similar to time_test, but returns more info.
5915
5917
5916 2002-06-18 Fernando Perez <fperez@colorado.edu>
5918 2002-06-18 Fernando Perez <fperez@colorado.edu>
5917
5919
5918 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5920 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5919 according to Mike Heeter's suggestions.
5921 according to Mike Heeter's suggestions.
5920
5922
5921 2002-06-16 Fernando Perez <fperez@colorado.edu>
5923 2002-06-16 Fernando Perez <fperez@colorado.edu>
5922
5924
5923 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5925 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5924 system. GnuplotMagic is gone as a user-directory option. New files
5926 system. GnuplotMagic is gone as a user-directory option. New files
5925 make it easier to use all the gnuplot stuff both from external
5927 make it easier to use all the gnuplot stuff both from external
5926 programs as well as from IPython. Had to rewrite part of
5928 programs as well as from IPython. Had to rewrite part of
5927 hardcopy() b/c of a strange bug: often the ps files simply don't
5929 hardcopy() b/c of a strange bug: often the ps files simply don't
5928 get created, and require a repeat of the command (often several
5930 get created, and require a repeat of the command (often several
5929 times).
5931 times).
5930
5932
5931 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5933 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5932 resolve output channel at call time, so that if sys.stderr has
5934 resolve output channel at call time, so that if sys.stderr has
5933 been redirected by user this gets honored.
5935 been redirected by user this gets honored.
5934
5936
5935 2002-06-13 Fernando Perez <fperez@colorado.edu>
5937 2002-06-13 Fernando Perez <fperez@colorado.edu>
5936
5938
5937 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5939 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5938 IPShell. Kept a copy with the old names to avoid breaking people's
5940 IPShell. Kept a copy with the old names to avoid breaking people's
5939 embedded code.
5941 embedded code.
5940
5942
5941 * IPython/ipython: simplified it to the bare minimum after
5943 * IPython/ipython: simplified it to the bare minimum after
5942 Holger's suggestions. Added info about how to use it in
5944 Holger's suggestions. Added info about how to use it in
5943 PYTHONSTARTUP.
5945 PYTHONSTARTUP.
5944
5946
5945 * IPython/Shell.py (IPythonShell): changed the options passing
5947 * IPython/Shell.py (IPythonShell): changed the options passing
5946 from a string with funky %s replacements to a straight list. Maybe
5948 from a string with funky %s replacements to a straight list. Maybe
5947 a bit more typing, but it follows sys.argv conventions, so there's
5949 a bit more typing, but it follows sys.argv conventions, so there's
5948 less special-casing to remember.
5950 less special-casing to remember.
5949
5951
5950 2002-06-12 Fernando Perez <fperez@colorado.edu>
5952 2002-06-12 Fernando Perez <fperez@colorado.edu>
5951
5953
5952 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5954 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5953 command. Thanks to a suggestion by Mike Heeter.
5955 command. Thanks to a suggestion by Mike Heeter.
5954 (Magic.magic_pfile): added behavior to look at filenames if given
5956 (Magic.magic_pfile): added behavior to look at filenames if given
5955 arg is not a defined object.
5957 arg is not a defined object.
5956 (Magic.magic_save): New @save function to save code snippets. Also
5958 (Magic.magic_save): New @save function to save code snippets. Also
5957 a Mike Heeter idea.
5959 a Mike Heeter idea.
5958
5960
5959 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5961 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5960 plot() and replot(). Much more convenient now, especially for
5962 plot() and replot(). Much more convenient now, especially for
5961 interactive use.
5963 interactive use.
5962
5964
5963 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5965 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5964 filenames.
5966 filenames.
5965
5967
5966 2002-06-02 Fernando Perez <fperez@colorado.edu>
5968 2002-06-02 Fernando Perez <fperez@colorado.edu>
5967
5969
5968 * IPython/Struct.py (Struct.__init__): modified to admit
5970 * IPython/Struct.py (Struct.__init__): modified to admit
5969 initialization via another struct.
5971 initialization via another struct.
5970
5972
5971 * IPython/genutils.py (SystemExec.__init__): New stateful
5973 * IPython/genutils.py (SystemExec.__init__): New stateful
5972 interface to xsys and bq. Useful for writing system scripts.
5974 interface to xsys and bq. Useful for writing system scripts.
5973
5975
5974 2002-05-30 Fernando Perez <fperez@colorado.edu>
5976 2002-05-30 Fernando Perez <fperez@colorado.edu>
5975
5977
5976 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5978 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5977 documents. This will make the user download smaller (it's getting
5979 documents. This will make the user download smaller (it's getting
5978 too big).
5980 too big).
5979
5981
5980 2002-05-29 Fernando Perez <fperez@colorado.edu>
5982 2002-05-29 Fernando Perez <fperez@colorado.edu>
5981
5983
5982 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5984 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5983 fix problems with shelve and pickle. Seems to work, but I don't
5985 fix problems with shelve and pickle. Seems to work, but I don't
5984 know if corner cases break it. Thanks to Mike Heeter
5986 know if corner cases break it. Thanks to Mike Heeter
5985 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5987 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5986
5988
5987 2002-05-24 Fernando Perez <fperez@colorado.edu>
5989 2002-05-24 Fernando Perez <fperez@colorado.edu>
5988
5990
5989 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5991 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5990 macros having broken.
5992 macros having broken.
5991
5993
5992 2002-05-21 Fernando Perez <fperez@colorado.edu>
5994 2002-05-21 Fernando Perez <fperez@colorado.edu>
5993
5995
5994 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5996 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5995 introduced logging bug: all history before logging started was
5997 introduced logging bug: all history before logging started was
5996 being written one character per line! This came from the redesign
5998 being written one character per line! This came from the redesign
5997 of the input history as a special list which slices to strings,
5999 of the input history as a special list which slices to strings,
5998 not to lists.
6000 not to lists.
5999
6001
6000 2002-05-20 Fernando Perez <fperez@colorado.edu>
6002 2002-05-20 Fernando Perez <fperez@colorado.edu>
6001
6003
6002 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6004 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6003 be an attribute of all classes in this module. The design of these
6005 be an attribute of all classes in this module. The design of these
6004 classes needs some serious overhauling.
6006 classes needs some serious overhauling.
6005
6007
6006 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6008 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6007 which was ignoring '_' in option names.
6009 which was ignoring '_' in option names.
6008
6010
6009 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6011 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6010 'Verbose_novars' to 'Context' and made it the new default. It's a
6012 'Verbose_novars' to 'Context' and made it the new default. It's a
6011 bit more readable and also safer than verbose.
6013 bit more readable and also safer than verbose.
6012
6014
6013 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6015 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6014 triple-quoted strings.
6016 triple-quoted strings.
6015
6017
6016 * IPython/OInspect.py (__all__): new module exposing the object
6018 * IPython/OInspect.py (__all__): new module exposing the object
6017 introspection facilities. Now the corresponding magics are dummy
6019 introspection facilities. Now the corresponding magics are dummy
6018 wrappers around this. Having this module will make it much easier
6020 wrappers around this. Having this module will make it much easier
6019 to put these functions into our modified pdb.
6021 to put these functions into our modified pdb.
6020 This new object inspector system uses the new colorizing module,
6022 This new object inspector system uses the new colorizing module,
6021 so source code and other things are nicely syntax highlighted.
6023 so source code and other things are nicely syntax highlighted.
6022
6024
6023 2002-05-18 Fernando Perez <fperez@colorado.edu>
6025 2002-05-18 Fernando Perez <fperez@colorado.edu>
6024
6026
6025 * IPython/ColorANSI.py: Split the coloring tools into a separate
6027 * IPython/ColorANSI.py: Split the coloring tools into a separate
6026 module so I can use them in other code easier (they were part of
6028 module so I can use them in other code easier (they were part of
6027 ultraTB).
6029 ultraTB).
6028
6030
6029 2002-05-17 Fernando Perez <fperez@colorado.edu>
6031 2002-05-17 Fernando Perez <fperez@colorado.edu>
6030
6032
6031 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6033 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6032 fixed it to set the global 'g' also to the called instance, as
6034 fixed it to set the global 'g' also to the called instance, as
6033 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6035 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6034 user's 'g' variables).
6036 user's 'g' variables).
6035
6037
6036 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6038 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6037 global variables (aliases to _ih,_oh) so that users which expect
6039 global variables (aliases to _ih,_oh) so that users which expect
6038 In[5] or Out[7] to work aren't unpleasantly surprised.
6040 In[5] or Out[7] to work aren't unpleasantly surprised.
6039 (InputList.__getslice__): new class to allow executing slices of
6041 (InputList.__getslice__): new class to allow executing slices of
6040 input history directly. Very simple class, complements the use of
6042 input history directly. Very simple class, complements the use of
6041 macros.
6043 macros.
6042
6044
6043 2002-05-16 Fernando Perez <fperez@colorado.edu>
6045 2002-05-16 Fernando Perez <fperez@colorado.edu>
6044
6046
6045 * setup.py (docdirbase): make doc directory be just doc/IPython
6047 * setup.py (docdirbase): make doc directory be just doc/IPython
6046 without version numbers, it will reduce clutter for users.
6048 without version numbers, it will reduce clutter for users.
6047
6049
6048 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6050 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6049 execfile call to prevent possible memory leak. See for details:
6051 execfile call to prevent possible memory leak. See for details:
6050 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6052 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6051
6053
6052 2002-05-15 Fernando Perez <fperez@colorado.edu>
6054 2002-05-15 Fernando Perez <fperez@colorado.edu>
6053
6055
6054 * IPython/Magic.py (Magic.magic_psource): made the object
6056 * IPython/Magic.py (Magic.magic_psource): made the object
6055 introspection names be more standard: pdoc, pdef, pfile and
6057 introspection names be more standard: pdoc, pdef, pfile and
6056 psource. They all print/page their output, and it makes
6058 psource. They all print/page their output, and it makes
6057 remembering them easier. Kept old names for compatibility as
6059 remembering them easier. Kept old names for compatibility as
6058 aliases.
6060 aliases.
6059
6061
6060 2002-05-14 Fernando Perez <fperez@colorado.edu>
6062 2002-05-14 Fernando Perez <fperez@colorado.edu>
6061
6063
6062 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6064 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6063 what the mouse problem was. The trick is to use gnuplot with temp
6065 what the mouse problem was. The trick is to use gnuplot with temp
6064 files and NOT with pipes (for data communication), because having
6066 files and NOT with pipes (for data communication), because having
6065 both pipes and the mouse on is bad news.
6067 both pipes and the mouse on is bad news.
6066
6068
6067 2002-05-13 Fernando Perez <fperez@colorado.edu>
6069 2002-05-13 Fernando Perez <fperez@colorado.edu>
6068
6070
6069 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6071 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6070 bug. Information would be reported about builtins even when
6072 bug. Information would be reported about builtins even when
6071 user-defined functions overrode them.
6073 user-defined functions overrode them.
6072
6074
6073 2002-05-11 Fernando Perez <fperez@colorado.edu>
6075 2002-05-11 Fernando Perez <fperez@colorado.edu>
6074
6076
6075 * IPython/__init__.py (__all__): removed FlexCompleter from
6077 * IPython/__init__.py (__all__): removed FlexCompleter from
6076 __all__ so that things don't fail in platforms without readline.
6078 __all__ so that things don't fail in platforms without readline.
6077
6079
6078 2002-05-10 Fernando Perez <fperez@colorado.edu>
6080 2002-05-10 Fernando Perez <fperez@colorado.edu>
6079
6081
6080 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6082 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6081 it requires Numeric, effectively making Numeric a dependency for
6083 it requires Numeric, effectively making Numeric a dependency for
6082 IPython.
6084 IPython.
6083
6085
6084 * Released 0.2.13
6086 * Released 0.2.13
6085
6087
6086 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6088 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6087 profiler interface. Now all the major options from the profiler
6089 profiler interface. Now all the major options from the profiler
6088 module are directly supported in IPython, both for single
6090 module are directly supported in IPython, both for single
6089 expressions (@prun) and for full programs (@run -p).
6091 expressions (@prun) and for full programs (@run -p).
6090
6092
6091 2002-05-09 Fernando Perez <fperez@colorado.edu>
6093 2002-05-09 Fernando Perez <fperez@colorado.edu>
6092
6094
6093 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6095 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6094 magic properly formatted for screen.
6096 magic properly formatted for screen.
6095
6097
6096 * setup.py (make_shortcut): Changed things to put pdf version in
6098 * setup.py (make_shortcut): Changed things to put pdf version in
6097 doc/ instead of doc/manual (had to change lyxport a bit).
6099 doc/ instead of doc/manual (had to change lyxport a bit).
6098
6100
6099 * IPython/Magic.py (Profile.string_stats): made profile runs go
6101 * IPython/Magic.py (Profile.string_stats): made profile runs go
6100 through pager (they are long and a pager allows searching, saving,
6102 through pager (they are long and a pager allows searching, saving,
6101 etc.)
6103 etc.)
6102
6104
6103 2002-05-08 Fernando Perez <fperez@colorado.edu>
6105 2002-05-08 Fernando Perez <fperez@colorado.edu>
6104
6106
6105 * Released 0.2.12
6107 * Released 0.2.12
6106
6108
6107 2002-05-06 Fernando Perez <fperez@colorado.edu>
6109 2002-05-06 Fernando Perez <fperez@colorado.edu>
6108
6110
6109 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6111 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6110 introduced); 'hist n1 n2' was broken.
6112 introduced); 'hist n1 n2' was broken.
6111 (Magic.magic_pdb): added optional on/off arguments to @pdb
6113 (Magic.magic_pdb): added optional on/off arguments to @pdb
6112 (Magic.magic_run): added option -i to @run, which executes code in
6114 (Magic.magic_run): added option -i to @run, which executes code in
6113 the IPython namespace instead of a clean one. Also added @irun as
6115 the IPython namespace instead of a clean one. Also added @irun as
6114 an alias to @run -i.
6116 an alias to @run -i.
6115
6117
6116 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6118 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6117 fixed (it didn't really do anything, the namespaces were wrong).
6119 fixed (it didn't really do anything, the namespaces were wrong).
6118
6120
6119 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6121 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6120
6122
6121 * IPython/__init__.py (__all__): Fixed package namespace, now
6123 * IPython/__init__.py (__all__): Fixed package namespace, now
6122 'import IPython' does give access to IPython.<all> as
6124 'import IPython' does give access to IPython.<all> as
6123 expected. Also renamed __release__ to Release.
6125 expected. Also renamed __release__ to Release.
6124
6126
6125 * IPython/Debugger.py (__license__): created new Pdb class which
6127 * IPython/Debugger.py (__license__): created new Pdb class which
6126 functions like a drop-in for the normal pdb.Pdb but does NOT
6128 functions like a drop-in for the normal pdb.Pdb but does NOT
6127 import readline by default. This way it doesn't muck up IPython's
6129 import readline by default. This way it doesn't muck up IPython's
6128 readline handling, and now tab-completion finally works in the
6130 readline handling, and now tab-completion finally works in the
6129 debugger -- sort of. It completes things globally visible, but the
6131 debugger -- sort of. It completes things globally visible, but the
6130 completer doesn't track the stack as pdb walks it. That's a bit
6132 completer doesn't track the stack as pdb walks it. That's a bit
6131 tricky, and I'll have to implement it later.
6133 tricky, and I'll have to implement it later.
6132
6134
6133 2002-05-05 Fernando Perez <fperez@colorado.edu>
6135 2002-05-05 Fernando Perez <fperez@colorado.edu>
6134
6136
6135 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6137 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6136 magic docstrings when printed via ? (explicit \'s were being
6138 magic docstrings when printed via ? (explicit \'s were being
6137 printed).
6139 printed).
6138
6140
6139 * IPython/ipmaker.py (make_IPython): fixed namespace
6141 * IPython/ipmaker.py (make_IPython): fixed namespace
6140 identification bug. Now variables loaded via logs or command-line
6142 identification bug. Now variables loaded via logs or command-line
6141 files are recognized in the interactive namespace by @who.
6143 files are recognized in the interactive namespace by @who.
6142
6144
6143 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6145 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6144 log replay system stemming from the string form of Structs.
6146 log replay system stemming from the string form of Structs.
6145
6147
6146 * IPython/Magic.py (Macro.__init__): improved macros to properly
6148 * IPython/Magic.py (Macro.__init__): improved macros to properly
6147 handle magic commands in them.
6149 handle magic commands in them.
6148 (Magic.magic_logstart): usernames are now expanded so 'logstart
6150 (Magic.magic_logstart): usernames are now expanded so 'logstart
6149 ~/mylog' now works.
6151 ~/mylog' now works.
6150
6152
6151 * IPython/iplib.py (complete): fixed bug where paths starting with
6153 * IPython/iplib.py (complete): fixed bug where paths starting with
6152 '/' would be completed as magic names.
6154 '/' would be completed as magic names.
6153
6155
6154 2002-05-04 Fernando Perez <fperez@colorado.edu>
6156 2002-05-04 Fernando Perez <fperez@colorado.edu>
6155
6157
6156 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6158 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6157 allow running full programs under the profiler's control.
6159 allow running full programs under the profiler's control.
6158
6160
6159 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6161 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6160 mode to report exceptions verbosely but without formatting
6162 mode to report exceptions verbosely but without formatting
6161 variables. This addresses the issue of ipython 'freezing' (it's
6163 variables. This addresses the issue of ipython 'freezing' (it's
6162 not frozen, but caught in an expensive formatting loop) when huge
6164 not frozen, but caught in an expensive formatting loop) when huge
6163 variables are in the context of an exception.
6165 variables are in the context of an exception.
6164 (VerboseTB.text): Added '--->' markers at line where exception was
6166 (VerboseTB.text): Added '--->' markers at line where exception was
6165 triggered. Much clearer to read, especially in NoColor modes.
6167 triggered. Much clearer to read, especially in NoColor modes.
6166
6168
6167 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6169 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6168 implemented in reverse when changing to the new parse_options().
6170 implemented in reverse when changing to the new parse_options().
6169
6171
6170 2002-05-03 Fernando Perez <fperez@colorado.edu>
6172 2002-05-03 Fernando Perez <fperez@colorado.edu>
6171
6173
6172 * IPython/Magic.py (Magic.parse_options): new function so that
6174 * IPython/Magic.py (Magic.parse_options): new function so that
6173 magics can parse options easier.
6175 magics can parse options easier.
6174 (Magic.magic_prun): new function similar to profile.run(),
6176 (Magic.magic_prun): new function similar to profile.run(),
6175 suggested by Chris Hart.
6177 suggested by Chris Hart.
6176 (Magic.magic_cd): fixed behavior so that it only changes if
6178 (Magic.magic_cd): fixed behavior so that it only changes if
6177 directory actually is in history.
6179 directory actually is in history.
6178
6180
6179 * IPython/usage.py (__doc__): added information about potential
6181 * IPython/usage.py (__doc__): added information about potential
6180 slowness of Verbose exception mode when there are huge data
6182 slowness of Verbose exception mode when there are huge data
6181 structures to be formatted (thanks to Archie Paulson).
6183 structures to be formatted (thanks to Archie Paulson).
6182
6184
6183 * IPython/ipmaker.py (make_IPython): Changed default logging
6185 * IPython/ipmaker.py (make_IPython): Changed default logging
6184 (when simply called with -log) to use curr_dir/ipython.log in
6186 (when simply called with -log) to use curr_dir/ipython.log in
6185 rotate mode. Fixed crash which was occuring with -log before
6187 rotate mode. Fixed crash which was occuring with -log before
6186 (thanks to Jim Boyle).
6188 (thanks to Jim Boyle).
6187
6189
6188 2002-05-01 Fernando Perez <fperez@colorado.edu>
6190 2002-05-01 Fernando Perez <fperez@colorado.edu>
6189
6191
6190 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6192 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6191 was nasty -- though somewhat of a corner case).
6193 was nasty -- though somewhat of a corner case).
6192
6194
6193 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6195 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6194 text (was a bug).
6196 text (was a bug).
6195
6197
6196 2002-04-30 Fernando Perez <fperez@colorado.edu>
6198 2002-04-30 Fernando Perez <fperez@colorado.edu>
6197
6199
6198 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6200 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6199 a print after ^D or ^C from the user so that the In[] prompt
6201 a print after ^D or ^C from the user so that the In[] prompt
6200 doesn't over-run the gnuplot one.
6202 doesn't over-run the gnuplot one.
6201
6203
6202 2002-04-29 Fernando Perez <fperez@colorado.edu>
6204 2002-04-29 Fernando Perez <fperez@colorado.edu>
6203
6205
6204 * Released 0.2.10
6206 * Released 0.2.10
6205
6207
6206 * IPython/__release__.py (version): get date dynamically.
6208 * IPython/__release__.py (version): get date dynamically.
6207
6209
6208 * Misc. documentation updates thanks to Arnd's comments. Also ran
6210 * Misc. documentation updates thanks to Arnd's comments. Also ran
6209 a full spellcheck on the manual (hadn't been done in a while).
6211 a full spellcheck on the manual (hadn't been done in a while).
6210
6212
6211 2002-04-27 Fernando Perez <fperez@colorado.edu>
6213 2002-04-27 Fernando Perez <fperez@colorado.edu>
6212
6214
6213 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6215 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6214 starting a log in mid-session would reset the input history list.
6216 starting a log in mid-session would reset the input history list.
6215
6217
6216 2002-04-26 Fernando Perez <fperez@colorado.edu>
6218 2002-04-26 Fernando Perez <fperez@colorado.edu>
6217
6219
6218 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6220 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6219 all files were being included in an update. Now anything in
6221 all files were being included in an update. Now anything in
6220 UserConfig that matches [A-Za-z]*.py will go (this excludes
6222 UserConfig that matches [A-Za-z]*.py will go (this excludes
6221 __init__.py)
6223 __init__.py)
6222
6224
6223 2002-04-25 Fernando Perez <fperez@colorado.edu>
6225 2002-04-25 Fernando Perez <fperez@colorado.edu>
6224
6226
6225 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6227 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6226 to __builtins__ so that any form of embedded or imported code can
6228 to __builtins__ so that any form of embedded or imported code can
6227 test for being inside IPython.
6229 test for being inside IPython.
6228
6230
6229 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6231 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6230 changed to GnuplotMagic because it's now an importable module,
6232 changed to GnuplotMagic because it's now an importable module,
6231 this makes the name follow that of the standard Gnuplot module.
6233 this makes the name follow that of the standard Gnuplot module.
6232 GnuplotMagic can now be loaded at any time in mid-session.
6234 GnuplotMagic can now be loaded at any time in mid-session.
6233
6235
6234 2002-04-24 Fernando Perez <fperez@colorado.edu>
6236 2002-04-24 Fernando Perez <fperez@colorado.edu>
6235
6237
6236 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6238 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6237 the globals (IPython has its own namespace) and the
6239 the globals (IPython has its own namespace) and the
6238 PhysicalQuantity stuff is much better anyway.
6240 PhysicalQuantity stuff is much better anyway.
6239
6241
6240 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6242 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6241 embedding example to standard user directory for
6243 embedding example to standard user directory for
6242 distribution. Also put it in the manual.
6244 distribution. Also put it in the manual.
6243
6245
6244 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6246 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6245 instance as first argument (so it doesn't rely on some obscure
6247 instance as first argument (so it doesn't rely on some obscure
6246 hidden global).
6248 hidden global).
6247
6249
6248 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6250 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6249 delimiters. While it prevents ().TAB from working, it allows
6251 delimiters. While it prevents ().TAB from working, it allows
6250 completions in open (... expressions. This is by far a more common
6252 completions in open (... expressions. This is by far a more common
6251 case.
6253 case.
6252
6254
6253 2002-04-23 Fernando Perez <fperez@colorado.edu>
6255 2002-04-23 Fernando Perez <fperez@colorado.edu>
6254
6256
6255 * IPython/Extensions/InterpreterPasteInput.py: new
6257 * IPython/Extensions/InterpreterPasteInput.py: new
6256 syntax-processing module for pasting lines with >>> or ... at the
6258 syntax-processing module for pasting lines with >>> or ... at the
6257 start.
6259 start.
6258
6260
6259 * IPython/Extensions/PhysicalQ_Interactive.py
6261 * IPython/Extensions/PhysicalQ_Interactive.py
6260 (PhysicalQuantityInteractive.__int__): fixed to work with either
6262 (PhysicalQuantityInteractive.__int__): fixed to work with either
6261 Numeric or math.
6263 Numeric or math.
6262
6264
6263 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6265 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6264 provided profiles. Now we have:
6266 provided profiles. Now we have:
6265 -math -> math module as * and cmath with its own namespace.
6267 -math -> math module as * and cmath with its own namespace.
6266 -numeric -> Numeric as *, plus gnuplot & grace
6268 -numeric -> Numeric as *, plus gnuplot & grace
6267 -physics -> same as before
6269 -physics -> same as before
6268
6270
6269 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6271 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6270 user-defined magics wouldn't be found by @magic if they were
6272 user-defined magics wouldn't be found by @magic if they were
6271 defined as class methods. Also cleaned up the namespace search
6273 defined as class methods. Also cleaned up the namespace search
6272 logic and the string building (to use %s instead of many repeated
6274 logic and the string building (to use %s instead of many repeated
6273 string adds).
6275 string adds).
6274
6276
6275 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6277 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6276 of user-defined magics to operate with class methods (cleaner, in
6278 of user-defined magics to operate with class methods (cleaner, in
6277 line with the gnuplot code).
6279 line with the gnuplot code).
6278
6280
6279 2002-04-22 Fernando Perez <fperez@colorado.edu>
6281 2002-04-22 Fernando Perez <fperez@colorado.edu>
6280
6282
6281 * setup.py: updated dependency list so that manual is updated when
6283 * setup.py: updated dependency list so that manual is updated when
6282 all included files change.
6284 all included files change.
6283
6285
6284 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6286 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6285 the delimiter removal option (the fix is ugly right now).
6287 the delimiter removal option (the fix is ugly right now).
6286
6288
6287 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6289 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6288 all of the math profile (quicker loading, no conflict between
6290 all of the math profile (quicker loading, no conflict between
6289 g-9.8 and g-gnuplot).
6291 g-9.8 and g-gnuplot).
6290
6292
6291 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6293 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6292 name of post-mortem files to IPython_crash_report.txt.
6294 name of post-mortem files to IPython_crash_report.txt.
6293
6295
6294 * Cleanup/update of the docs. Added all the new readline info and
6296 * Cleanup/update of the docs. Added all the new readline info and
6295 formatted all lists as 'real lists'.
6297 formatted all lists as 'real lists'.
6296
6298
6297 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6299 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6298 tab-completion options, since the full readline parse_and_bind is
6300 tab-completion options, since the full readline parse_and_bind is
6299 now accessible.
6301 now accessible.
6300
6302
6301 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6303 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6302 handling of readline options. Now users can specify any string to
6304 handling of readline options. Now users can specify any string to
6303 be passed to parse_and_bind(), as well as the delimiters to be
6305 be passed to parse_and_bind(), as well as the delimiters to be
6304 removed.
6306 removed.
6305 (InteractiveShell.__init__): Added __name__ to the global
6307 (InteractiveShell.__init__): Added __name__ to the global
6306 namespace so that things like Itpl which rely on its existence
6308 namespace so that things like Itpl which rely on its existence
6307 don't crash.
6309 don't crash.
6308 (InteractiveShell._prefilter): Defined the default with a _ so
6310 (InteractiveShell._prefilter): Defined the default with a _ so
6309 that prefilter() is easier to override, while the default one
6311 that prefilter() is easier to override, while the default one
6310 remains available.
6312 remains available.
6311
6313
6312 2002-04-18 Fernando Perez <fperez@colorado.edu>
6314 2002-04-18 Fernando Perez <fperez@colorado.edu>
6313
6315
6314 * Added information about pdb in the docs.
6316 * Added information about pdb in the docs.
6315
6317
6316 2002-04-17 Fernando Perez <fperez@colorado.edu>
6318 2002-04-17 Fernando Perez <fperez@colorado.edu>
6317
6319
6318 * IPython/ipmaker.py (make_IPython): added rc_override option to
6320 * IPython/ipmaker.py (make_IPython): added rc_override option to
6319 allow passing config options at creation time which may override
6321 allow passing config options at creation time which may override
6320 anything set in the config files or command line. This is
6322 anything set in the config files or command line. This is
6321 particularly useful for configuring embedded instances.
6323 particularly useful for configuring embedded instances.
6322
6324
6323 2002-04-15 Fernando Perez <fperez@colorado.edu>
6325 2002-04-15 Fernando Perez <fperez@colorado.edu>
6324
6326
6325 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6327 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6326 crash embedded instances because of the input cache falling out of
6328 crash embedded instances because of the input cache falling out of
6327 sync with the output counter.
6329 sync with the output counter.
6328
6330
6329 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6331 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6330 mode which calls pdb after an uncaught exception in IPython itself.
6332 mode which calls pdb after an uncaught exception in IPython itself.
6331
6333
6332 2002-04-14 Fernando Perez <fperez@colorado.edu>
6334 2002-04-14 Fernando Perez <fperez@colorado.edu>
6333
6335
6334 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6336 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6335 readline, fix it back after each call.
6337 readline, fix it back after each call.
6336
6338
6337 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6339 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6338 method to force all access via __call__(), which guarantees that
6340 method to force all access via __call__(), which guarantees that
6339 traceback references are properly deleted.
6341 traceback references are properly deleted.
6340
6342
6341 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6343 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6342 improve printing when pprint is in use.
6344 improve printing when pprint is in use.
6343
6345
6344 2002-04-13 Fernando Perez <fperez@colorado.edu>
6346 2002-04-13 Fernando Perez <fperez@colorado.edu>
6345
6347
6346 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6348 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6347 exceptions aren't caught anymore. If the user triggers one, he
6349 exceptions aren't caught anymore. If the user triggers one, he
6348 should know why he's doing it and it should go all the way up,
6350 should know why he's doing it and it should go all the way up,
6349 just like any other exception. So now @abort will fully kill the
6351 just like any other exception. So now @abort will fully kill the
6350 embedded interpreter and the embedding code (unless that happens
6352 embedded interpreter and the embedding code (unless that happens
6351 to catch SystemExit).
6353 to catch SystemExit).
6352
6354
6353 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6355 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6354 and a debugger() method to invoke the interactive pdb debugger
6356 and a debugger() method to invoke the interactive pdb debugger
6355 after printing exception information. Also added the corresponding
6357 after printing exception information. Also added the corresponding
6356 -pdb option and @pdb magic to control this feature, and updated
6358 -pdb option and @pdb magic to control this feature, and updated
6357 the docs. After a suggestion from Christopher Hart
6359 the docs. After a suggestion from Christopher Hart
6358 (hart-AT-caltech.edu).
6360 (hart-AT-caltech.edu).
6359
6361
6360 2002-04-12 Fernando Perez <fperez@colorado.edu>
6362 2002-04-12 Fernando Perez <fperez@colorado.edu>
6361
6363
6362 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6364 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6363 the exception handlers defined by the user (not the CrashHandler)
6365 the exception handlers defined by the user (not the CrashHandler)
6364 so that user exceptions don't trigger an ipython bug report.
6366 so that user exceptions don't trigger an ipython bug report.
6365
6367
6366 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6368 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6367 configurable (it should have always been so).
6369 configurable (it should have always been so).
6368
6370
6369 2002-03-26 Fernando Perez <fperez@colorado.edu>
6371 2002-03-26 Fernando Perez <fperez@colorado.edu>
6370
6372
6371 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6373 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6372 and there to fix embedding namespace issues. This should all be
6374 and there to fix embedding namespace issues. This should all be
6373 done in a more elegant way.
6375 done in a more elegant way.
6374
6376
6375 2002-03-25 Fernando Perez <fperez@colorado.edu>
6377 2002-03-25 Fernando Perez <fperez@colorado.edu>
6376
6378
6377 * IPython/genutils.py (get_home_dir): Try to make it work under
6379 * IPython/genutils.py (get_home_dir): Try to make it work under
6378 win9x also.
6380 win9x also.
6379
6381
6380 2002-03-20 Fernando Perez <fperez@colorado.edu>
6382 2002-03-20 Fernando Perez <fperez@colorado.edu>
6381
6383
6382 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6384 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6383 sys.displayhook untouched upon __init__.
6385 sys.displayhook untouched upon __init__.
6384
6386
6385 2002-03-19 Fernando Perez <fperez@colorado.edu>
6387 2002-03-19 Fernando Perez <fperez@colorado.edu>
6386
6388
6387 * Released 0.2.9 (for embedding bug, basically).
6389 * Released 0.2.9 (for embedding bug, basically).
6388
6390
6389 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6391 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6390 exceptions so that enclosing shell's state can be restored.
6392 exceptions so that enclosing shell's state can be restored.
6391
6393
6392 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6394 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6393 naming conventions in the .ipython/ dir.
6395 naming conventions in the .ipython/ dir.
6394
6396
6395 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6397 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6396 from delimiters list so filenames with - in them get expanded.
6398 from delimiters list so filenames with - in them get expanded.
6397
6399
6398 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6400 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6399 sys.displayhook not being properly restored after an embedded call.
6401 sys.displayhook not being properly restored after an embedded call.
6400
6402
6401 2002-03-18 Fernando Perez <fperez@colorado.edu>
6403 2002-03-18 Fernando Perez <fperez@colorado.edu>
6402
6404
6403 * Released 0.2.8
6405 * Released 0.2.8
6404
6406
6405 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6407 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6406 some files weren't being included in a -upgrade.
6408 some files weren't being included in a -upgrade.
6407 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6409 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6408 on' so that the first tab completes.
6410 on' so that the first tab completes.
6409 (InteractiveShell.handle_magic): fixed bug with spaces around
6411 (InteractiveShell.handle_magic): fixed bug with spaces around
6410 quotes breaking many magic commands.
6412 quotes breaking many magic commands.
6411
6413
6412 * setup.py: added note about ignoring the syntax error messages at
6414 * setup.py: added note about ignoring the syntax error messages at
6413 installation.
6415 installation.
6414
6416
6415 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6417 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6416 streamlining the gnuplot interface, now there's only one magic @gp.
6418 streamlining the gnuplot interface, now there's only one magic @gp.
6417
6419
6418 2002-03-17 Fernando Perez <fperez@colorado.edu>
6420 2002-03-17 Fernando Perez <fperez@colorado.edu>
6419
6421
6420 * IPython/UserConfig/magic_gnuplot.py: new name for the
6422 * IPython/UserConfig/magic_gnuplot.py: new name for the
6421 example-magic_pm.py file. Much enhanced system, now with a shell
6423 example-magic_pm.py file. Much enhanced system, now with a shell
6422 for communicating directly with gnuplot, one command at a time.
6424 for communicating directly with gnuplot, one command at a time.
6423
6425
6424 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6426 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6425 setting __name__=='__main__'.
6427 setting __name__=='__main__'.
6426
6428
6427 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6429 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6428 mini-shell for accessing gnuplot from inside ipython. Should
6430 mini-shell for accessing gnuplot from inside ipython. Should
6429 extend it later for grace access too. Inspired by Arnd's
6431 extend it later for grace access too. Inspired by Arnd's
6430 suggestion.
6432 suggestion.
6431
6433
6432 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6434 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6433 calling magic functions with () in their arguments. Thanks to Arnd
6435 calling magic functions with () in their arguments. Thanks to Arnd
6434 Baecker for pointing this to me.
6436 Baecker for pointing this to me.
6435
6437
6436 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6438 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6437 infinitely for integer or complex arrays (only worked with floats).
6439 infinitely for integer or complex arrays (only worked with floats).
6438
6440
6439 2002-03-16 Fernando Perez <fperez@colorado.edu>
6441 2002-03-16 Fernando Perez <fperez@colorado.edu>
6440
6442
6441 * setup.py: Merged setup and setup_windows into a single script
6443 * setup.py: Merged setup and setup_windows into a single script
6442 which properly handles things for windows users.
6444 which properly handles things for windows users.
6443
6445
6444 2002-03-15 Fernando Perez <fperez@colorado.edu>
6446 2002-03-15 Fernando Perez <fperez@colorado.edu>
6445
6447
6446 * Big change to the manual: now the magics are all automatically
6448 * Big change to the manual: now the magics are all automatically
6447 documented. This information is generated from their docstrings
6449 documented. This information is generated from their docstrings
6448 and put in a latex file included by the manual lyx file. This way
6450 and put in a latex file included by the manual lyx file. This way
6449 we get always up to date information for the magics. The manual
6451 we get always up to date information for the magics. The manual
6450 now also has proper version information, also auto-synced.
6452 now also has proper version information, also auto-synced.
6451
6453
6452 For this to work, an undocumented --magic_docstrings option was added.
6454 For this to work, an undocumented --magic_docstrings option was added.
6453
6455
6454 2002-03-13 Fernando Perez <fperez@colorado.edu>
6456 2002-03-13 Fernando Perez <fperez@colorado.edu>
6455
6457
6456 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6458 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6457 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6459 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6458
6460
6459 2002-03-12 Fernando Perez <fperez@colorado.edu>
6461 2002-03-12 Fernando Perez <fperez@colorado.edu>
6460
6462
6461 * IPython/ultraTB.py (TermColors): changed color escapes again to
6463 * IPython/ultraTB.py (TermColors): changed color escapes again to
6462 fix the (old, reintroduced) line-wrapping bug. Basically, if
6464 fix the (old, reintroduced) line-wrapping bug. Basically, if
6463 \001..\002 aren't given in the color escapes, lines get wrapped
6465 \001..\002 aren't given in the color escapes, lines get wrapped
6464 weirdly. But giving those screws up old xterms and emacs terms. So
6466 weirdly. But giving those screws up old xterms and emacs terms. So
6465 I added some logic for emacs terms to be ok, but I can't identify old
6467 I added some logic for emacs terms to be ok, but I can't identify old
6466 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6468 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6467
6469
6468 2002-03-10 Fernando Perez <fperez@colorado.edu>
6470 2002-03-10 Fernando Perez <fperez@colorado.edu>
6469
6471
6470 * IPython/usage.py (__doc__): Various documentation cleanups and
6472 * IPython/usage.py (__doc__): Various documentation cleanups and
6471 updates, both in usage docstrings and in the manual.
6473 updates, both in usage docstrings and in the manual.
6472
6474
6473 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6475 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6474 handling of caching. Set minimum acceptabe value for having a
6476 handling of caching. Set minimum acceptabe value for having a
6475 cache at 20 values.
6477 cache at 20 values.
6476
6478
6477 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6479 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6478 install_first_time function to a method, renamed it and added an
6480 install_first_time function to a method, renamed it and added an
6479 'upgrade' mode. Now people can update their config directory with
6481 'upgrade' mode. Now people can update their config directory with
6480 a simple command line switch (-upgrade, also new).
6482 a simple command line switch (-upgrade, also new).
6481
6483
6482 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6484 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6483 @file (convenient for automagic users under Python >= 2.2).
6485 @file (convenient for automagic users under Python >= 2.2).
6484 Removed @files (it seemed more like a plural than an abbrev. of
6486 Removed @files (it seemed more like a plural than an abbrev. of
6485 'file show').
6487 'file show').
6486
6488
6487 * IPython/iplib.py (install_first_time): Fixed crash if there were
6489 * IPython/iplib.py (install_first_time): Fixed crash if there were
6488 backup files ('~') in .ipython/ install directory.
6490 backup files ('~') in .ipython/ install directory.
6489
6491
6490 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6492 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6491 system. Things look fine, but these changes are fairly
6493 system. Things look fine, but these changes are fairly
6492 intrusive. Test them for a few days.
6494 intrusive. Test them for a few days.
6493
6495
6494 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6496 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6495 the prompts system. Now all in/out prompt strings are user
6497 the prompts system. Now all in/out prompt strings are user
6496 controllable. This is particularly useful for embedding, as one
6498 controllable. This is particularly useful for embedding, as one
6497 can tag embedded instances with particular prompts.
6499 can tag embedded instances with particular prompts.
6498
6500
6499 Also removed global use of sys.ps1/2, which now allows nested
6501 Also removed global use of sys.ps1/2, which now allows nested
6500 embeddings without any problems. Added command-line options for
6502 embeddings without any problems. Added command-line options for
6501 the prompt strings.
6503 the prompt strings.
6502
6504
6503 2002-03-08 Fernando Perez <fperez@colorado.edu>
6505 2002-03-08 Fernando Perez <fperez@colorado.edu>
6504
6506
6505 * IPython/UserConfig/example-embed-short.py (ipshell): added
6507 * IPython/UserConfig/example-embed-short.py (ipshell): added
6506 example file with the bare minimum code for embedding.
6508 example file with the bare minimum code for embedding.
6507
6509
6508 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6510 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6509 functionality for the embeddable shell to be activated/deactivated
6511 functionality for the embeddable shell to be activated/deactivated
6510 either globally or at each call.
6512 either globally or at each call.
6511
6513
6512 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6514 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6513 rewriting the prompt with '--->' for auto-inputs with proper
6515 rewriting the prompt with '--->' for auto-inputs with proper
6514 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6516 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6515 this is handled by the prompts class itself, as it should.
6517 this is handled by the prompts class itself, as it should.
6516
6518
6517 2002-03-05 Fernando Perez <fperez@colorado.edu>
6519 2002-03-05 Fernando Perez <fperez@colorado.edu>
6518
6520
6519 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6521 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6520 @logstart to avoid name clashes with the math log function.
6522 @logstart to avoid name clashes with the math log function.
6521
6523
6522 * Big updates to X/Emacs section of the manual.
6524 * Big updates to X/Emacs section of the manual.
6523
6525
6524 * Removed ipython_emacs. Milan explained to me how to pass
6526 * Removed ipython_emacs. Milan explained to me how to pass
6525 arguments to ipython through Emacs. Some day I'm going to end up
6527 arguments to ipython through Emacs. Some day I'm going to end up
6526 learning some lisp...
6528 learning some lisp...
6527
6529
6528 2002-03-04 Fernando Perez <fperez@colorado.edu>
6530 2002-03-04 Fernando Perez <fperez@colorado.edu>
6529
6531
6530 * IPython/ipython_emacs: Created script to be used as the
6532 * IPython/ipython_emacs: Created script to be used as the
6531 py-python-command Emacs variable so we can pass IPython
6533 py-python-command Emacs variable so we can pass IPython
6532 parameters. I can't figure out how to tell Emacs directly to pass
6534 parameters. I can't figure out how to tell Emacs directly to pass
6533 parameters to IPython, so a dummy shell script will do it.
6535 parameters to IPython, so a dummy shell script will do it.
6534
6536
6535 Other enhancements made for things to work better under Emacs'
6537 Other enhancements made for things to work better under Emacs'
6536 various types of terminals. Many thanks to Milan Zamazal
6538 various types of terminals. Many thanks to Milan Zamazal
6537 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6539 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6538
6540
6539 2002-03-01 Fernando Perez <fperez@colorado.edu>
6541 2002-03-01 Fernando Perez <fperez@colorado.edu>
6540
6542
6541 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6543 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6542 that loading of readline is now optional. This gives better
6544 that loading of readline is now optional. This gives better
6543 control to emacs users.
6545 control to emacs users.
6544
6546
6545 * IPython/ultraTB.py (__date__): Modified color escape sequences
6547 * IPython/ultraTB.py (__date__): Modified color escape sequences
6546 and now things work fine under xterm and in Emacs' term buffers
6548 and now things work fine under xterm and in Emacs' term buffers
6547 (though not shell ones). Well, in emacs you get colors, but all
6549 (though not shell ones). Well, in emacs you get colors, but all
6548 seem to be 'light' colors (no difference between dark and light
6550 seem to be 'light' colors (no difference between dark and light
6549 ones). But the garbage chars are gone, and also in xterms. It
6551 ones). But the garbage chars are gone, and also in xterms. It
6550 seems that now I'm using 'cleaner' ansi sequences.
6552 seems that now I'm using 'cleaner' ansi sequences.
6551
6553
6552 2002-02-21 Fernando Perez <fperez@colorado.edu>
6554 2002-02-21 Fernando Perez <fperez@colorado.edu>
6553
6555
6554 * Released 0.2.7 (mainly to publish the scoping fix).
6556 * Released 0.2.7 (mainly to publish the scoping fix).
6555
6557
6556 * IPython/Logger.py (Logger.logstate): added. A corresponding
6558 * IPython/Logger.py (Logger.logstate): added. A corresponding
6557 @logstate magic was created.
6559 @logstate magic was created.
6558
6560
6559 * IPython/Magic.py: fixed nested scoping problem under Python
6561 * IPython/Magic.py: fixed nested scoping problem under Python
6560 2.1.x (automagic wasn't working).
6562 2.1.x (automagic wasn't working).
6561
6563
6562 2002-02-20 Fernando Perez <fperez@colorado.edu>
6564 2002-02-20 Fernando Perez <fperez@colorado.edu>
6563
6565
6564 * Released 0.2.6.
6566 * Released 0.2.6.
6565
6567
6566 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6568 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6567 option so that logs can come out without any headers at all.
6569 option so that logs can come out without any headers at all.
6568
6570
6569 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6571 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6570 SciPy.
6572 SciPy.
6571
6573
6572 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6574 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6573 that embedded IPython calls don't require vars() to be explicitly
6575 that embedded IPython calls don't require vars() to be explicitly
6574 passed. Now they are extracted from the caller's frame (code
6576 passed. Now they are extracted from the caller's frame (code
6575 snatched from Eric Jones' weave). Added better documentation to
6577 snatched from Eric Jones' weave). Added better documentation to
6576 the section on embedding and the example file.
6578 the section on embedding and the example file.
6577
6579
6578 * IPython/genutils.py (page): Changed so that under emacs, it just
6580 * IPython/genutils.py (page): Changed so that under emacs, it just
6579 prints the string. You can then page up and down in the emacs
6581 prints the string. You can then page up and down in the emacs
6580 buffer itself. This is how the builtin help() works.
6582 buffer itself. This is how the builtin help() works.
6581
6583
6582 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6584 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6583 macro scoping: macros need to be executed in the user's namespace
6585 macro scoping: macros need to be executed in the user's namespace
6584 to work as if they had been typed by the user.
6586 to work as if they had been typed by the user.
6585
6587
6586 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6588 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6587 execute automatically (no need to type 'exec...'). They then
6589 execute automatically (no need to type 'exec...'). They then
6588 behave like 'true macros'. The printing system was also modified
6590 behave like 'true macros'. The printing system was also modified
6589 for this to work.
6591 for this to work.
6590
6592
6591 2002-02-19 Fernando Perez <fperez@colorado.edu>
6593 2002-02-19 Fernando Perez <fperez@colorado.edu>
6592
6594
6593 * IPython/genutils.py (page_file): new function for paging files
6595 * IPython/genutils.py (page_file): new function for paging files
6594 in an OS-independent way. Also necessary for file viewing to work
6596 in an OS-independent way. Also necessary for file viewing to work
6595 well inside Emacs buffers.
6597 well inside Emacs buffers.
6596 (page): Added checks for being in an emacs buffer.
6598 (page): Added checks for being in an emacs buffer.
6597 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6599 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6598 same bug in iplib.
6600 same bug in iplib.
6599
6601
6600 2002-02-18 Fernando Perez <fperez@colorado.edu>
6602 2002-02-18 Fernando Perez <fperez@colorado.edu>
6601
6603
6602 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6604 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6603 of readline so that IPython can work inside an Emacs buffer.
6605 of readline so that IPython can work inside an Emacs buffer.
6604
6606
6605 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6607 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6606 method signatures (they weren't really bugs, but it looks cleaner
6608 method signatures (they weren't really bugs, but it looks cleaner
6607 and keeps PyChecker happy).
6609 and keeps PyChecker happy).
6608
6610
6609 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6611 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6610 for implementing various user-defined hooks. Currently only
6612 for implementing various user-defined hooks. Currently only
6611 display is done.
6613 display is done.
6612
6614
6613 * IPython/Prompts.py (CachedOutput._display): changed display
6615 * IPython/Prompts.py (CachedOutput._display): changed display
6614 functions so that they can be dynamically changed by users easily.
6616 functions so that they can be dynamically changed by users easily.
6615
6617
6616 * IPython/Extensions/numeric_formats.py (num_display): added an
6618 * IPython/Extensions/numeric_formats.py (num_display): added an
6617 extension for printing NumPy arrays in flexible manners. It
6619 extension for printing NumPy arrays in flexible manners. It
6618 doesn't do anything yet, but all the structure is in
6620 doesn't do anything yet, but all the structure is in
6619 place. Ultimately the plan is to implement output format control
6621 place. Ultimately the plan is to implement output format control
6620 like in Octave.
6622 like in Octave.
6621
6623
6622 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6624 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6623 methods are found at run-time by all the automatic machinery.
6625 methods are found at run-time by all the automatic machinery.
6624
6626
6625 2002-02-17 Fernando Perez <fperez@colorado.edu>
6627 2002-02-17 Fernando Perez <fperez@colorado.edu>
6626
6628
6627 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6629 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6628 whole file a little.
6630 whole file a little.
6629
6631
6630 * ToDo: closed this document. Now there's a new_design.lyx
6632 * ToDo: closed this document. Now there's a new_design.lyx
6631 document for all new ideas. Added making a pdf of it for the
6633 document for all new ideas. Added making a pdf of it for the
6632 end-user distro.
6634 end-user distro.
6633
6635
6634 * IPython/Logger.py (Logger.switch_log): Created this to replace
6636 * IPython/Logger.py (Logger.switch_log): Created this to replace
6635 logon() and logoff(). It also fixes a nasty crash reported by
6637 logon() and logoff(). It also fixes a nasty crash reported by
6636 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6638 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6637
6639
6638 * IPython/iplib.py (complete): got auto-completion to work with
6640 * IPython/iplib.py (complete): got auto-completion to work with
6639 automagic (I had wanted this for a long time).
6641 automagic (I had wanted this for a long time).
6640
6642
6641 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6643 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6642 to @file, since file() is now a builtin and clashes with automagic
6644 to @file, since file() is now a builtin and clashes with automagic
6643 for @file.
6645 for @file.
6644
6646
6645 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6647 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6646 of this was previously in iplib, which had grown to more than 2000
6648 of this was previously in iplib, which had grown to more than 2000
6647 lines, way too long. No new functionality, but it makes managing
6649 lines, way too long. No new functionality, but it makes managing
6648 the code a bit easier.
6650 the code a bit easier.
6649
6651
6650 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6652 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6651 information to crash reports.
6653 information to crash reports.
6652
6654
6653 2002-02-12 Fernando Perez <fperez@colorado.edu>
6655 2002-02-12 Fernando Perez <fperez@colorado.edu>
6654
6656
6655 * Released 0.2.5.
6657 * Released 0.2.5.
6656
6658
6657 2002-02-11 Fernando Perez <fperez@colorado.edu>
6659 2002-02-11 Fernando Perez <fperez@colorado.edu>
6658
6660
6659 * Wrote a relatively complete Windows installer. It puts
6661 * Wrote a relatively complete Windows installer. It puts
6660 everything in place, creates Start Menu entries and fixes the
6662 everything in place, creates Start Menu entries and fixes the
6661 color issues. Nothing fancy, but it works.
6663 color issues. Nothing fancy, but it works.
6662
6664
6663 2002-02-10 Fernando Perez <fperez@colorado.edu>
6665 2002-02-10 Fernando Perez <fperez@colorado.edu>
6664
6666
6665 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6667 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6666 os.path.expanduser() call so that we can type @run ~/myfile.py and
6668 os.path.expanduser() call so that we can type @run ~/myfile.py and
6667 have thigs work as expected.
6669 have thigs work as expected.
6668
6670
6669 * IPython/genutils.py (page): fixed exception handling so things
6671 * IPython/genutils.py (page): fixed exception handling so things
6670 work both in Unix and Windows correctly. Quitting a pager triggers
6672 work both in Unix and Windows correctly. Quitting a pager triggers
6671 an IOError/broken pipe in Unix, and in windows not finding a pager
6673 an IOError/broken pipe in Unix, and in windows not finding a pager
6672 is also an IOError, so I had to actually look at the return value
6674 is also an IOError, so I had to actually look at the return value
6673 of the exception, not just the exception itself. Should be ok now.
6675 of the exception, not just the exception itself. Should be ok now.
6674
6676
6675 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6677 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6676 modified to allow case-insensitive color scheme changes.
6678 modified to allow case-insensitive color scheme changes.
6677
6679
6678 2002-02-09 Fernando Perez <fperez@colorado.edu>
6680 2002-02-09 Fernando Perez <fperez@colorado.edu>
6679
6681
6680 * IPython/genutils.py (native_line_ends): new function to leave
6682 * IPython/genutils.py (native_line_ends): new function to leave
6681 user config files with os-native line-endings.
6683 user config files with os-native line-endings.
6682
6684
6683 * README and manual updates.
6685 * README and manual updates.
6684
6686
6685 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6687 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6686 instead of StringType to catch Unicode strings.
6688 instead of StringType to catch Unicode strings.
6687
6689
6688 * IPython/genutils.py (filefind): fixed bug for paths with
6690 * IPython/genutils.py (filefind): fixed bug for paths with
6689 embedded spaces (very common in Windows).
6691 embedded spaces (very common in Windows).
6690
6692
6691 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6693 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6692 files under Windows, so that they get automatically associated
6694 files under Windows, so that they get automatically associated
6693 with a text editor. Windows makes it a pain to handle
6695 with a text editor. Windows makes it a pain to handle
6694 extension-less files.
6696 extension-less files.
6695
6697
6696 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6698 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6697 warning about readline only occur for Posix. In Windows there's no
6699 warning about readline only occur for Posix. In Windows there's no
6698 way to get readline, so why bother with the warning.
6700 way to get readline, so why bother with the warning.
6699
6701
6700 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6702 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6701 for __str__ instead of dir(self), since dir() changed in 2.2.
6703 for __str__ instead of dir(self), since dir() changed in 2.2.
6702
6704
6703 * Ported to Windows! Tested on XP, I suspect it should work fine
6705 * Ported to Windows! Tested on XP, I suspect it should work fine
6704 on NT/2000, but I don't think it will work on 98 et al. That
6706 on NT/2000, but I don't think it will work on 98 et al. That
6705 series of Windows is such a piece of junk anyway that I won't try
6707 series of Windows is such a piece of junk anyway that I won't try
6706 porting it there. The XP port was straightforward, showed a few
6708 porting it there. The XP port was straightforward, showed a few
6707 bugs here and there (fixed all), in particular some string
6709 bugs here and there (fixed all), in particular some string
6708 handling stuff which required considering Unicode strings (which
6710 handling stuff which required considering Unicode strings (which
6709 Windows uses). This is good, but hasn't been too tested :) No
6711 Windows uses). This is good, but hasn't been too tested :) No
6710 fancy installer yet, I'll put a note in the manual so people at
6712 fancy installer yet, I'll put a note in the manual so people at
6711 least make manually a shortcut.
6713 least make manually a shortcut.
6712
6714
6713 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6715 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6714 into a single one, "colors". This now controls both prompt and
6716 into a single one, "colors". This now controls both prompt and
6715 exception color schemes, and can be changed both at startup
6717 exception color schemes, and can be changed both at startup
6716 (either via command-line switches or via ipythonrc files) and at
6718 (either via command-line switches or via ipythonrc files) and at
6717 runtime, with @colors.
6719 runtime, with @colors.
6718 (Magic.magic_run): renamed @prun to @run and removed the old
6720 (Magic.magic_run): renamed @prun to @run and removed the old
6719 @run. The two were too similar to warrant keeping both.
6721 @run. The two were too similar to warrant keeping both.
6720
6722
6721 2002-02-03 Fernando Perez <fperez@colorado.edu>
6723 2002-02-03 Fernando Perez <fperez@colorado.edu>
6722
6724
6723 * IPython/iplib.py (install_first_time): Added comment on how to
6725 * IPython/iplib.py (install_first_time): Added comment on how to
6724 configure the color options for first-time users. Put a <return>
6726 configure the color options for first-time users. Put a <return>
6725 request at the end so that small-terminal users get a chance to
6727 request at the end so that small-terminal users get a chance to
6726 read the startup info.
6728 read the startup info.
6727
6729
6728 2002-01-23 Fernando Perez <fperez@colorado.edu>
6730 2002-01-23 Fernando Perez <fperez@colorado.edu>
6729
6731
6730 * IPython/iplib.py (CachedOutput.update): Changed output memory
6732 * IPython/iplib.py (CachedOutput.update): Changed output memory
6731 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6733 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6732 input history we still use _i. Did this b/c these variable are
6734 input history we still use _i. Did this b/c these variable are
6733 very commonly used in interactive work, so the less we need to
6735 very commonly used in interactive work, so the less we need to
6734 type the better off we are.
6736 type the better off we are.
6735 (Magic.magic_prun): updated @prun to better handle the namespaces
6737 (Magic.magic_prun): updated @prun to better handle the namespaces
6736 the file will run in, including a fix for __name__ not being set
6738 the file will run in, including a fix for __name__ not being set
6737 before.
6739 before.
6738
6740
6739 2002-01-20 Fernando Perez <fperez@colorado.edu>
6741 2002-01-20 Fernando Perez <fperez@colorado.edu>
6740
6742
6741 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6743 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6742 extra garbage for Python 2.2. Need to look more carefully into
6744 extra garbage for Python 2.2. Need to look more carefully into
6743 this later.
6745 this later.
6744
6746
6745 2002-01-19 Fernando Perez <fperez@colorado.edu>
6747 2002-01-19 Fernando Perez <fperez@colorado.edu>
6746
6748
6747 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6749 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6748 display SyntaxError exceptions properly formatted when they occur
6750 display SyntaxError exceptions properly formatted when they occur
6749 (they can be triggered by imported code).
6751 (they can be triggered by imported code).
6750
6752
6751 2002-01-18 Fernando Perez <fperez@colorado.edu>
6753 2002-01-18 Fernando Perez <fperez@colorado.edu>
6752
6754
6753 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6755 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6754 SyntaxError exceptions are reported nicely formatted, instead of
6756 SyntaxError exceptions are reported nicely formatted, instead of
6755 spitting out only offset information as before.
6757 spitting out only offset information as before.
6756 (Magic.magic_prun): Added the @prun function for executing
6758 (Magic.magic_prun): Added the @prun function for executing
6757 programs with command line args inside IPython.
6759 programs with command line args inside IPython.
6758
6760
6759 2002-01-16 Fernando Perez <fperez@colorado.edu>
6761 2002-01-16 Fernando Perez <fperez@colorado.edu>
6760
6762
6761 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6763 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6762 to *not* include the last item given in a range. This brings their
6764 to *not* include the last item given in a range. This brings their
6763 behavior in line with Python's slicing:
6765 behavior in line with Python's slicing:
6764 a[n1:n2] -> a[n1]...a[n2-1]
6766 a[n1:n2] -> a[n1]...a[n2-1]
6765 It may be a bit less convenient, but I prefer to stick to Python's
6767 It may be a bit less convenient, but I prefer to stick to Python's
6766 conventions *everywhere*, so users never have to wonder.
6768 conventions *everywhere*, so users never have to wonder.
6767 (Magic.magic_macro): Added @macro function to ease the creation of
6769 (Magic.magic_macro): Added @macro function to ease the creation of
6768 macros.
6770 macros.
6769
6771
6770 2002-01-05 Fernando Perez <fperez@colorado.edu>
6772 2002-01-05 Fernando Perez <fperez@colorado.edu>
6771
6773
6772 * Released 0.2.4.
6774 * Released 0.2.4.
6773
6775
6774 * IPython/iplib.py (Magic.magic_pdef):
6776 * IPython/iplib.py (Magic.magic_pdef):
6775 (InteractiveShell.safe_execfile): report magic lines and error
6777 (InteractiveShell.safe_execfile): report magic lines and error
6776 lines without line numbers so one can easily copy/paste them for
6778 lines without line numbers so one can easily copy/paste them for
6777 re-execution.
6779 re-execution.
6778
6780
6779 * Updated manual with recent changes.
6781 * Updated manual with recent changes.
6780
6782
6781 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6783 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6782 docstring printing when class? is called. Very handy for knowing
6784 docstring printing when class? is called. Very handy for knowing
6783 how to create class instances (as long as __init__ is well
6785 how to create class instances (as long as __init__ is well
6784 documented, of course :)
6786 documented, of course :)
6785 (Magic.magic_doc): print both class and constructor docstrings.
6787 (Magic.magic_doc): print both class and constructor docstrings.
6786 (Magic.magic_pdef): give constructor info if passed a class and
6788 (Magic.magic_pdef): give constructor info if passed a class and
6787 __call__ info for callable object instances.
6789 __call__ info for callable object instances.
6788
6790
6789 2002-01-04 Fernando Perez <fperez@colorado.edu>
6791 2002-01-04 Fernando Perez <fperez@colorado.edu>
6790
6792
6791 * Made deep_reload() off by default. It doesn't always work
6793 * Made deep_reload() off by default. It doesn't always work
6792 exactly as intended, so it's probably safer to have it off. It's
6794 exactly as intended, so it's probably safer to have it off. It's
6793 still available as dreload() anyway, so nothing is lost.
6795 still available as dreload() anyway, so nothing is lost.
6794
6796
6795 2002-01-02 Fernando Perez <fperez@colorado.edu>
6797 2002-01-02 Fernando Perez <fperez@colorado.edu>
6796
6798
6797 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6799 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6798 so I wanted an updated release).
6800 so I wanted an updated release).
6799
6801
6800 2001-12-27 Fernando Perez <fperez@colorado.edu>
6802 2001-12-27 Fernando Perez <fperez@colorado.edu>
6801
6803
6802 * IPython/iplib.py (InteractiveShell.interact): Added the original
6804 * IPython/iplib.py (InteractiveShell.interact): Added the original
6803 code from 'code.py' for this module in order to change the
6805 code from 'code.py' for this module in order to change the
6804 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6806 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6805 the history cache would break when the user hit Ctrl-C, and
6807 the history cache would break when the user hit Ctrl-C, and
6806 interact() offers no way to add any hooks to it.
6808 interact() offers no way to add any hooks to it.
6807
6809
6808 2001-12-23 Fernando Perez <fperez@colorado.edu>
6810 2001-12-23 Fernando Perez <fperez@colorado.edu>
6809
6811
6810 * setup.py: added check for 'MANIFEST' before trying to remove
6812 * setup.py: added check for 'MANIFEST' before trying to remove
6811 it. Thanks to Sean Reifschneider.
6813 it. Thanks to Sean Reifschneider.
6812
6814
6813 2001-12-22 Fernando Perez <fperez@colorado.edu>
6815 2001-12-22 Fernando Perez <fperez@colorado.edu>
6814
6816
6815 * Released 0.2.2.
6817 * Released 0.2.2.
6816
6818
6817 * Finished (reasonably) writing the manual. Later will add the
6819 * Finished (reasonably) writing the manual. Later will add the
6818 python-standard navigation stylesheets, but for the time being
6820 python-standard navigation stylesheets, but for the time being
6819 it's fairly complete. Distribution will include html and pdf
6821 it's fairly complete. Distribution will include html and pdf
6820 versions.
6822 versions.
6821
6823
6822 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6824 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6823 (MayaVi author).
6825 (MayaVi author).
6824
6826
6825 2001-12-21 Fernando Perez <fperez@colorado.edu>
6827 2001-12-21 Fernando Perez <fperez@colorado.edu>
6826
6828
6827 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6829 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6828 good public release, I think (with the manual and the distutils
6830 good public release, I think (with the manual and the distutils
6829 installer). The manual can use some work, but that can go
6831 installer). The manual can use some work, but that can go
6830 slowly. Otherwise I think it's quite nice for end users. Next
6832 slowly. Otherwise I think it's quite nice for end users. Next
6831 summer, rewrite the guts of it...
6833 summer, rewrite the guts of it...
6832
6834
6833 * Changed format of ipythonrc files to use whitespace as the
6835 * Changed format of ipythonrc files to use whitespace as the
6834 separator instead of an explicit '='. Cleaner.
6836 separator instead of an explicit '='. Cleaner.
6835
6837
6836 2001-12-20 Fernando Perez <fperez@colorado.edu>
6838 2001-12-20 Fernando Perez <fperez@colorado.edu>
6837
6839
6838 * Started a manual in LyX. For now it's just a quick merge of the
6840 * Started a manual in LyX. For now it's just a quick merge of the
6839 various internal docstrings and READMEs. Later it may grow into a
6841 various internal docstrings and READMEs. Later it may grow into a
6840 nice, full-blown manual.
6842 nice, full-blown manual.
6841
6843
6842 * Set up a distutils based installer. Installation should now be
6844 * Set up a distutils based installer. Installation should now be
6843 trivially simple for end-users.
6845 trivially simple for end-users.
6844
6846
6845 2001-12-11 Fernando Perez <fperez@colorado.edu>
6847 2001-12-11 Fernando Perez <fperez@colorado.edu>
6846
6848
6847 * Released 0.2.0. First public release, announced it at
6849 * Released 0.2.0. First public release, announced it at
6848 comp.lang.python. From now on, just bugfixes...
6850 comp.lang.python. From now on, just bugfixes...
6849
6851
6850 * Went through all the files, set copyright/license notices and
6852 * Went through all the files, set copyright/license notices and
6851 cleaned up things. Ready for release.
6853 cleaned up things. Ready for release.
6852
6854
6853 2001-12-10 Fernando Perez <fperez@colorado.edu>
6855 2001-12-10 Fernando Perez <fperez@colorado.edu>
6854
6856
6855 * Changed the first-time installer not to use tarfiles. It's more
6857 * Changed the first-time installer not to use tarfiles. It's more
6856 robust now and less unix-dependent. Also makes it easier for
6858 robust now and less unix-dependent. Also makes it easier for
6857 people to later upgrade versions.
6859 people to later upgrade versions.
6858
6860
6859 * Changed @exit to @abort to reflect the fact that it's pretty
6861 * Changed @exit to @abort to reflect the fact that it's pretty
6860 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6862 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6861 becomes significant only when IPyhton is embedded: in that case,
6863 becomes significant only when IPyhton is embedded: in that case,
6862 C-D closes IPython only, but @abort kills the enclosing program
6864 C-D closes IPython only, but @abort kills the enclosing program
6863 too (unless it had called IPython inside a try catching
6865 too (unless it had called IPython inside a try catching
6864 SystemExit).
6866 SystemExit).
6865
6867
6866 * Created Shell module which exposes the actuall IPython Shell
6868 * Created Shell module which exposes the actuall IPython Shell
6867 classes, currently the normal and the embeddable one. This at
6869 classes, currently the normal and the embeddable one. This at
6868 least offers a stable interface we won't need to change when
6870 least offers a stable interface we won't need to change when
6869 (later) the internals are rewritten. That rewrite will be confined
6871 (later) the internals are rewritten. That rewrite will be confined
6870 to iplib and ipmaker, but the Shell interface should remain as is.
6872 to iplib and ipmaker, but the Shell interface should remain as is.
6871
6873
6872 * Added embed module which offers an embeddable IPShell object,
6874 * Added embed module which offers an embeddable IPShell object,
6873 useful to fire up IPython *inside* a running program. Great for
6875 useful to fire up IPython *inside* a running program. Great for
6874 debugging or dynamical data analysis.
6876 debugging or dynamical data analysis.
6875
6877
6876 2001-12-08 Fernando Perez <fperez@colorado.edu>
6878 2001-12-08 Fernando Perez <fperez@colorado.edu>
6877
6879
6878 * Fixed small bug preventing seeing info from methods of defined
6880 * Fixed small bug preventing seeing info from methods of defined
6879 objects (incorrect namespace in _ofind()).
6881 objects (incorrect namespace in _ofind()).
6880
6882
6881 * Documentation cleanup. Moved the main usage docstrings to a
6883 * Documentation cleanup. Moved the main usage docstrings to a
6882 separate file, usage.py (cleaner to maintain, and hopefully in the
6884 separate file, usage.py (cleaner to maintain, and hopefully in the
6883 future some perlpod-like way of producing interactive, man and
6885 future some perlpod-like way of producing interactive, man and
6884 html docs out of it will be found).
6886 html docs out of it will be found).
6885
6887
6886 * Added @profile to see your profile at any time.
6888 * Added @profile to see your profile at any time.
6887
6889
6888 * Added @p as an alias for 'print'. It's especially convenient if
6890 * Added @p as an alias for 'print'. It's especially convenient if
6889 using automagic ('p x' prints x).
6891 using automagic ('p x' prints x).
6890
6892
6891 * Small cleanups and fixes after a pychecker run.
6893 * Small cleanups and fixes after a pychecker run.
6892
6894
6893 * Changed the @cd command to handle @cd - and @cd -<n> for
6895 * Changed the @cd command to handle @cd - and @cd -<n> for
6894 visiting any directory in _dh.
6896 visiting any directory in _dh.
6895
6897
6896 * Introduced _dh, a history of visited directories. @dhist prints
6898 * Introduced _dh, a history of visited directories. @dhist prints
6897 it out with numbers.
6899 it out with numbers.
6898
6900
6899 2001-12-07 Fernando Perez <fperez@colorado.edu>
6901 2001-12-07 Fernando Perez <fperez@colorado.edu>
6900
6902
6901 * Released 0.1.22
6903 * Released 0.1.22
6902
6904
6903 * Made initialization a bit more robust against invalid color
6905 * Made initialization a bit more robust against invalid color
6904 options in user input (exit, not traceback-crash).
6906 options in user input (exit, not traceback-crash).
6905
6907
6906 * Changed the bug crash reporter to write the report only in the
6908 * Changed the bug crash reporter to write the report only in the
6907 user's .ipython directory. That way IPython won't litter people's
6909 user's .ipython directory. That way IPython won't litter people's
6908 hard disks with crash files all over the place. Also print on
6910 hard disks with crash files all over the place. Also print on
6909 screen the necessary mail command.
6911 screen the necessary mail command.
6910
6912
6911 * With the new ultraTB, implemented LightBG color scheme for light
6913 * With the new ultraTB, implemented LightBG color scheme for light
6912 background terminals. A lot of people like white backgrounds, so I
6914 background terminals. A lot of people like white backgrounds, so I
6913 guess we should at least give them something readable.
6915 guess we should at least give them something readable.
6914
6916
6915 2001-12-06 Fernando Perez <fperez@colorado.edu>
6917 2001-12-06 Fernando Perez <fperez@colorado.edu>
6916
6918
6917 * Modified the structure of ultraTB. Now there's a proper class
6919 * Modified the structure of ultraTB. Now there's a proper class
6918 for tables of color schemes which allow adding schemes easily and
6920 for tables of color schemes which allow adding schemes easily and
6919 switching the active scheme without creating a new instance every
6921 switching the active scheme without creating a new instance every
6920 time (which was ridiculous). The syntax for creating new schemes
6922 time (which was ridiculous). The syntax for creating new schemes
6921 is also cleaner. I think ultraTB is finally done, with a clean
6923 is also cleaner. I think ultraTB is finally done, with a clean
6922 class structure. Names are also much cleaner (now there's proper
6924 class structure. Names are also much cleaner (now there's proper
6923 color tables, no need for every variable to also have 'color' in
6925 color tables, no need for every variable to also have 'color' in
6924 its name).
6926 its name).
6925
6927
6926 * Broke down genutils into separate files. Now genutils only
6928 * Broke down genutils into separate files. Now genutils only
6927 contains utility functions, and classes have been moved to their
6929 contains utility functions, and classes have been moved to their
6928 own files (they had enough independent functionality to warrant
6930 own files (they had enough independent functionality to warrant
6929 it): ConfigLoader, OutputTrap, Struct.
6931 it): ConfigLoader, OutputTrap, Struct.
6930
6932
6931 2001-12-05 Fernando Perez <fperez@colorado.edu>
6933 2001-12-05 Fernando Perez <fperez@colorado.edu>
6932
6934
6933 * IPython turns 21! Released version 0.1.21, as a candidate for
6935 * IPython turns 21! Released version 0.1.21, as a candidate for
6934 public consumption. If all goes well, release in a few days.
6936 public consumption. If all goes well, release in a few days.
6935
6937
6936 * Fixed path bug (files in Extensions/ directory wouldn't be found
6938 * Fixed path bug (files in Extensions/ directory wouldn't be found
6937 unless IPython/ was explicitly in sys.path).
6939 unless IPython/ was explicitly in sys.path).
6938
6940
6939 * Extended the FlexCompleter class as MagicCompleter to allow
6941 * Extended the FlexCompleter class as MagicCompleter to allow
6940 completion of @-starting lines.
6942 completion of @-starting lines.
6941
6943
6942 * Created __release__.py file as a central repository for release
6944 * Created __release__.py file as a central repository for release
6943 info that other files can read from.
6945 info that other files can read from.
6944
6946
6945 * Fixed small bug in logging: when logging was turned on in
6947 * Fixed small bug in logging: when logging was turned on in
6946 mid-session, old lines with special meanings (!@?) were being
6948 mid-session, old lines with special meanings (!@?) were being
6947 logged without the prepended comment, which is necessary since
6949 logged without the prepended comment, which is necessary since
6948 they are not truly valid python syntax. This should make session
6950 they are not truly valid python syntax. This should make session
6949 restores produce less errors.
6951 restores produce less errors.
6950
6952
6951 * The namespace cleanup forced me to make a FlexCompleter class
6953 * The namespace cleanup forced me to make a FlexCompleter class
6952 which is nothing but a ripoff of rlcompleter, but with selectable
6954 which is nothing but a ripoff of rlcompleter, but with selectable
6953 namespace (rlcompleter only works in __main__.__dict__). I'll try
6955 namespace (rlcompleter only works in __main__.__dict__). I'll try
6954 to submit a note to the authors to see if this change can be
6956 to submit a note to the authors to see if this change can be
6955 incorporated in future rlcompleter releases (Dec.6: done)
6957 incorporated in future rlcompleter releases (Dec.6: done)
6956
6958
6957 * More fixes to namespace handling. It was a mess! Now all
6959 * More fixes to namespace handling. It was a mess! Now all
6958 explicit references to __main__.__dict__ are gone (except when
6960 explicit references to __main__.__dict__ are gone (except when
6959 really needed) and everything is handled through the namespace
6961 really needed) and everything is handled through the namespace
6960 dicts in the IPython instance. We seem to be getting somewhere
6962 dicts in the IPython instance. We seem to be getting somewhere
6961 with this, finally...
6963 with this, finally...
6962
6964
6963 * Small documentation updates.
6965 * Small documentation updates.
6964
6966
6965 * Created the Extensions directory under IPython (with an
6967 * Created the Extensions directory under IPython (with an
6966 __init__.py). Put the PhysicalQ stuff there. This directory should
6968 __init__.py). Put the PhysicalQ stuff there. This directory should
6967 be used for all special-purpose extensions.
6969 be used for all special-purpose extensions.
6968
6970
6969 * File renaming:
6971 * File renaming:
6970 ipythonlib --> ipmaker
6972 ipythonlib --> ipmaker
6971 ipplib --> iplib
6973 ipplib --> iplib
6972 This makes a bit more sense in terms of what these files actually do.
6974 This makes a bit more sense in terms of what these files actually do.
6973
6975
6974 * Moved all the classes and functions in ipythonlib to ipplib, so
6976 * Moved all the classes and functions in ipythonlib to ipplib, so
6975 now ipythonlib only has make_IPython(). This will ease up its
6977 now ipythonlib only has make_IPython(). This will ease up its
6976 splitting in smaller functional chunks later.
6978 splitting in smaller functional chunks later.
6977
6979
6978 * Cleaned up (done, I think) output of @whos. Better column
6980 * Cleaned up (done, I think) output of @whos. Better column
6979 formatting, and now shows str(var) for as much as it can, which is
6981 formatting, and now shows str(var) for as much as it can, which is
6980 typically what one gets with a 'print var'.
6982 typically what one gets with a 'print var'.
6981
6983
6982 2001-12-04 Fernando Perez <fperez@colorado.edu>
6984 2001-12-04 Fernando Perez <fperez@colorado.edu>
6983
6985
6984 * Fixed namespace problems. Now builtin/IPyhton/user names get
6986 * Fixed namespace problems. Now builtin/IPyhton/user names get
6985 properly reported in their namespace. Internal namespace handling
6987 properly reported in their namespace. Internal namespace handling
6986 is finally getting decent (not perfect yet, but much better than
6988 is finally getting decent (not perfect yet, but much better than
6987 the ad-hoc mess we had).
6989 the ad-hoc mess we had).
6988
6990
6989 * Removed -exit option. If people just want to run a python
6991 * Removed -exit option. If people just want to run a python
6990 script, that's what the normal interpreter is for. Less
6992 script, that's what the normal interpreter is for. Less
6991 unnecessary options, less chances for bugs.
6993 unnecessary options, less chances for bugs.
6992
6994
6993 * Added a crash handler which generates a complete post-mortem if
6995 * Added a crash handler which generates a complete post-mortem if
6994 IPython crashes. This will help a lot in tracking bugs down the
6996 IPython crashes. This will help a lot in tracking bugs down the
6995 road.
6997 road.
6996
6998
6997 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6999 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6998 which were boud to functions being reassigned would bypass the
7000 which were boud to functions being reassigned would bypass the
6999 logger, breaking the sync of _il with the prompt counter. This
7001 logger, breaking the sync of _il with the prompt counter. This
7000 would then crash IPython later when a new line was logged.
7002 would then crash IPython later when a new line was logged.
7001
7003
7002 2001-12-02 Fernando Perez <fperez@colorado.edu>
7004 2001-12-02 Fernando Perez <fperez@colorado.edu>
7003
7005
7004 * Made IPython a package. This means people don't have to clutter
7006 * Made IPython a package. This means people don't have to clutter
7005 their sys.path with yet another directory. Changed the INSTALL
7007 their sys.path with yet another directory. Changed the INSTALL
7006 file accordingly.
7008 file accordingly.
7007
7009
7008 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7010 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7009 sorts its output (so @who shows it sorted) and @whos formats the
7011 sorts its output (so @who shows it sorted) and @whos formats the
7010 table according to the width of the first column. Nicer, easier to
7012 table according to the width of the first column. Nicer, easier to
7011 read. Todo: write a generic table_format() which takes a list of
7013 read. Todo: write a generic table_format() which takes a list of
7012 lists and prints it nicely formatted, with optional row/column
7014 lists and prints it nicely formatted, with optional row/column
7013 separators and proper padding and justification.
7015 separators and proper padding and justification.
7014
7016
7015 * Released 0.1.20
7017 * Released 0.1.20
7016
7018
7017 * Fixed bug in @log which would reverse the inputcache list (a
7019 * Fixed bug in @log which would reverse the inputcache list (a
7018 copy operation was missing).
7020 copy operation was missing).
7019
7021
7020 * Code cleanup. @config was changed to use page(). Better, since
7022 * Code cleanup. @config was changed to use page(). Better, since
7021 its output is always quite long.
7023 its output is always quite long.
7022
7024
7023 * Itpl is back as a dependency. I was having too many problems
7025 * Itpl is back as a dependency. I was having too many problems
7024 getting the parametric aliases to work reliably, and it's just
7026 getting the parametric aliases to work reliably, and it's just
7025 easier to code weird string operations with it than playing %()s
7027 easier to code weird string operations with it than playing %()s
7026 games. It's only ~6k, so I don't think it's too big a deal.
7028 games. It's only ~6k, so I don't think it's too big a deal.
7027
7029
7028 * Found (and fixed) a very nasty bug with history. !lines weren't
7030 * Found (and fixed) a very nasty bug with history. !lines weren't
7029 getting cached, and the out of sync caches would crash
7031 getting cached, and the out of sync caches would crash
7030 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7032 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7031 division of labor a bit better. Bug fixed, cleaner structure.
7033 division of labor a bit better. Bug fixed, cleaner structure.
7032
7034
7033 2001-12-01 Fernando Perez <fperez@colorado.edu>
7035 2001-12-01 Fernando Perez <fperez@colorado.edu>
7034
7036
7035 * Released 0.1.19
7037 * Released 0.1.19
7036
7038
7037 * Added option -n to @hist to prevent line number printing. Much
7039 * Added option -n to @hist to prevent line number printing. Much
7038 easier to copy/paste code this way.
7040 easier to copy/paste code this way.
7039
7041
7040 * Created global _il to hold the input list. Allows easy
7042 * Created global _il to hold the input list. Allows easy
7041 re-execution of blocks of code by slicing it (inspired by Janko's
7043 re-execution of blocks of code by slicing it (inspired by Janko's
7042 comment on 'macros').
7044 comment on 'macros').
7043
7045
7044 * Small fixes and doc updates.
7046 * Small fixes and doc updates.
7045
7047
7046 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7048 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7047 much too fragile with automagic. Handles properly multi-line
7049 much too fragile with automagic. Handles properly multi-line
7048 statements and takes parameters.
7050 statements and takes parameters.
7049
7051
7050 2001-11-30 Fernando Perez <fperez@colorado.edu>
7052 2001-11-30 Fernando Perez <fperez@colorado.edu>
7051
7053
7052 * Version 0.1.18 released.
7054 * Version 0.1.18 released.
7053
7055
7054 * Fixed nasty namespace bug in initial module imports.
7056 * Fixed nasty namespace bug in initial module imports.
7055
7057
7056 * Added copyright/license notes to all code files (except
7058 * Added copyright/license notes to all code files (except
7057 DPyGetOpt). For the time being, LGPL. That could change.
7059 DPyGetOpt). For the time being, LGPL. That could change.
7058
7060
7059 * Rewrote a much nicer README, updated INSTALL, cleaned up
7061 * Rewrote a much nicer README, updated INSTALL, cleaned up
7060 ipythonrc-* samples.
7062 ipythonrc-* samples.
7061
7063
7062 * Overall code/documentation cleanup. Basically ready for
7064 * Overall code/documentation cleanup. Basically ready for
7063 release. Only remaining thing: licence decision (LGPL?).
7065 release. Only remaining thing: licence decision (LGPL?).
7064
7066
7065 * Converted load_config to a class, ConfigLoader. Now recursion
7067 * Converted load_config to a class, ConfigLoader. Now recursion
7066 control is better organized. Doesn't include the same file twice.
7068 control is better organized. Doesn't include the same file twice.
7067
7069
7068 2001-11-29 Fernando Perez <fperez@colorado.edu>
7070 2001-11-29 Fernando Perez <fperez@colorado.edu>
7069
7071
7070 * Got input history working. Changed output history variables from
7072 * Got input history working. Changed output history variables from
7071 _p to _o so that _i is for input and _o for output. Just cleaner
7073 _p to _o so that _i is for input and _o for output. Just cleaner
7072 convention.
7074 convention.
7073
7075
7074 * Implemented parametric aliases. This pretty much allows the
7076 * Implemented parametric aliases. This pretty much allows the
7075 alias system to offer full-blown shell convenience, I think.
7077 alias system to offer full-blown shell convenience, I think.
7076
7078
7077 * Version 0.1.17 released, 0.1.18 opened.
7079 * Version 0.1.17 released, 0.1.18 opened.
7078
7080
7079 * dot_ipython/ipythonrc (alias): added documentation.
7081 * dot_ipython/ipythonrc (alias): added documentation.
7080 (xcolor): Fixed small bug (xcolors -> xcolor)
7082 (xcolor): Fixed small bug (xcolors -> xcolor)
7081
7083
7082 * Changed the alias system. Now alias is a magic command to define
7084 * Changed the alias system. Now alias is a magic command to define
7083 aliases just like the shell. Rationale: the builtin magics should
7085 aliases just like the shell. Rationale: the builtin magics should
7084 be there for things deeply connected to IPython's
7086 be there for things deeply connected to IPython's
7085 architecture. And this is a much lighter system for what I think
7087 architecture. And this is a much lighter system for what I think
7086 is the really important feature: allowing users to define quickly
7088 is the really important feature: allowing users to define quickly
7087 magics that will do shell things for them, so they can customize
7089 magics that will do shell things for them, so they can customize
7088 IPython easily to match their work habits. If someone is really
7090 IPython easily to match their work habits. If someone is really
7089 desperate to have another name for a builtin alias, they can
7091 desperate to have another name for a builtin alias, they can
7090 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7092 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7091 works.
7093 works.
7092
7094
7093 2001-11-28 Fernando Perez <fperez@colorado.edu>
7095 2001-11-28 Fernando Perez <fperez@colorado.edu>
7094
7096
7095 * Changed @file so that it opens the source file at the proper
7097 * Changed @file so that it opens the source file at the proper
7096 line. Since it uses less, if your EDITOR environment is
7098 line. Since it uses less, if your EDITOR environment is
7097 configured, typing v will immediately open your editor of choice
7099 configured, typing v will immediately open your editor of choice
7098 right at the line where the object is defined. Not as quick as
7100 right at the line where the object is defined. Not as quick as
7099 having a direct @edit command, but for all intents and purposes it
7101 having a direct @edit command, but for all intents and purposes it
7100 works. And I don't have to worry about writing @edit to deal with
7102 works. And I don't have to worry about writing @edit to deal with
7101 all the editors, less does that.
7103 all the editors, less does that.
7102
7104
7103 * Version 0.1.16 released, 0.1.17 opened.
7105 * Version 0.1.16 released, 0.1.17 opened.
7104
7106
7105 * Fixed some nasty bugs in the page/page_dumb combo that could
7107 * Fixed some nasty bugs in the page/page_dumb combo that could
7106 crash IPython.
7108 crash IPython.
7107
7109
7108 2001-11-27 Fernando Perez <fperez@colorado.edu>
7110 2001-11-27 Fernando Perez <fperez@colorado.edu>
7109
7111
7110 * Version 0.1.15 released, 0.1.16 opened.
7112 * Version 0.1.15 released, 0.1.16 opened.
7111
7113
7112 * Finally got ? and ?? to work for undefined things: now it's
7114 * Finally got ? and ?? to work for undefined things: now it's
7113 possible to type {}.get? and get information about the get method
7115 possible to type {}.get? and get information about the get method
7114 of dicts, or os.path? even if only os is defined (so technically
7116 of dicts, or os.path? even if only os is defined (so technically
7115 os.path isn't). Works at any level. For example, after import os,
7117 os.path isn't). Works at any level. For example, after import os,
7116 os?, os.path?, os.path.abspath? all work. This is great, took some
7118 os?, os.path?, os.path.abspath? all work. This is great, took some
7117 work in _ofind.
7119 work in _ofind.
7118
7120
7119 * Fixed more bugs with logging. The sanest way to do it was to add
7121 * Fixed more bugs with logging. The sanest way to do it was to add
7120 to @log a 'mode' parameter. Killed two in one shot (this mode
7122 to @log a 'mode' parameter. Killed two in one shot (this mode
7121 option was a request of Janko's). I think it's finally clean
7123 option was a request of Janko's). I think it's finally clean
7122 (famous last words).
7124 (famous last words).
7123
7125
7124 * Added a page_dumb() pager which does a decent job of paging on
7126 * Added a page_dumb() pager which does a decent job of paging on
7125 screen, if better things (like less) aren't available. One less
7127 screen, if better things (like less) aren't available. One less
7126 unix dependency (someday maybe somebody will port this to
7128 unix dependency (someday maybe somebody will port this to
7127 windows).
7129 windows).
7128
7130
7129 * Fixed problem in magic_log: would lock of logging out if log
7131 * Fixed problem in magic_log: would lock of logging out if log
7130 creation failed (because it would still think it had succeeded).
7132 creation failed (because it would still think it had succeeded).
7131
7133
7132 * Improved the page() function using curses to auto-detect screen
7134 * Improved the page() function using curses to auto-detect screen
7133 size. Now it can make a much better decision on whether to print
7135 size. Now it can make a much better decision on whether to print
7134 or page a string. Option screen_length was modified: a value 0
7136 or page a string. Option screen_length was modified: a value 0
7135 means auto-detect, and that's the default now.
7137 means auto-detect, and that's the default now.
7136
7138
7137 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7139 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7138 go out. I'll test it for a few days, then talk to Janko about
7140 go out. I'll test it for a few days, then talk to Janko about
7139 licences and announce it.
7141 licences and announce it.
7140
7142
7141 * Fixed the length of the auto-generated ---> prompt which appears
7143 * Fixed the length of the auto-generated ---> prompt which appears
7142 for auto-parens and auto-quotes. Getting this right isn't trivial,
7144 for auto-parens and auto-quotes. Getting this right isn't trivial,
7143 with all the color escapes, different prompt types and optional
7145 with all the color escapes, different prompt types and optional
7144 separators. But it seems to be working in all the combinations.
7146 separators. But it seems to be working in all the combinations.
7145
7147
7146 2001-11-26 Fernando Perez <fperez@colorado.edu>
7148 2001-11-26 Fernando Perez <fperez@colorado.edu>
7147
7149
7148 * Wrote a regexp filter to get option types from the option names
7150 * Wrote a regexp filter to get option types from the option names
7149 string. This eliminates the need to manually keep two duplicate
7151 string. This eliminates the need to manually keep two duplicate
7150 lists.
7152 lists.
7151
7153
7152 * Removed the unneeded check_option_names. Now options are handled
7154 * Removed the unneeded check_option_names. Now options are handled
7153 in a much saner manner and it's easy to visually check that things
7155 in a much saner manner and it's easy to visually check that things
7154 are ok.
7156 are ok.
7155
7157
7156 * Updated version numbers on all files I modified to carry a
7158 * Updated version numbers on all files I modified to carry a
7157 notice so Janko and Nathan have clear version markers.
7159 notice so Janko and Nathan have clear version markers.
7158
7160
7159 * Updated docstring for ultraTB with my changes. I should send
7161 * Updated docstring for ultraTB with my changes. I should send
7160 this to Nathan.
7162 this to Nathan.
7161
7163
7162 * Lots of small fixes. Ran everything through pychecker again.
7164 * Lots of small fixes. Ran everything through pychecker again.
7163
7165
7164 * Made loading of deep_reload an cmd line option. If it's not too
7166 * Made loading of deep_reload an cmd line option. If it's not too
7165 kosher, now people can just disable it. With -nodeep_reload it's
7167 kosher, now people can just disable it. With -nodeep_reload it's
7166 still available as dreload(), it just won't overwrite reload().
7168 still available as dreload(), it just won't overwrite reload().
7167
7169
7168 * Moved many options to the no| form (-opt and -noopt
7170 * Moved many options to the no| form (-opt and -noopt
7169 accepted). Cleaner.
7171 accepted). Cleaner.
7170
7172
7171 * Changed magic_log so that if called with no parameters, it uses
7173 * Changed magic_log so that if called with no parameters, it uses
7172 'rotate' mode. That way auto-generated logs aren't automatically
7174 'rotate' mode. That way auto-generated logs aren't automatically
7173 over-written. For normal logs, now a backup is made if it exists
7175 over-written. For normal logs, now a backup is made if it exists
7174 (only 1 level of backups). A new 'backup' mode was added to the
7176 (only 1 level of backups). A new 'backup' mode was added to the
7175 Logger class to support this. This was a request by Janko.
7177 Logger class to support this. This was a request by Janko.
7176
7178
7177 * Added @logoff/@logon to stop/restart an active log.
7179 * Added @logoff/@logon to stop/restart an active log.
7178
7180
7179 * Fixed a lot of bugs in log saving/replay. It was pretty
7181 * Fixed a lot of bugs in log saving/replay. It was pretty
7180 broken. Now special lines (!@,/) appear properly in the command
7182 broken. Now special lines (!@,/) appear properly in the command
7181 history after a log replay.
7183 history after a log replay.
7182
7184
7183 * Tried and failed to implement full session saving via pickle. My
7185 * Tried and failed to implement full session saving via pickle. My
7184 idea was to pickle __main__.__dict__, but modules can't be
7186 idea was to pickle __main__.__dict__, but modules can't be
7185 pickled. This would be a better alternative to replaying logs, but
7187 pickled. This would be a better alternative to replaying logs, but
7186 seems quite tricky to get to work. Changed -session to be called
7188 seems quite tricky to get to work. Changed -session to be called
7187 -logplay, which more accurately reflects what it does. And if we
7189 -logplay, which more accurately reflects what it does. And if we
7188 ever get real session saving working, -session is now available.
7190 ever get real session saving working, -session is now available.
7189
7191
7190 * Implemented color schemes for prompts also. As for tracebacks,
7192 * Implemented color schemes for prompts also. As for tracebacks,
7191 currently only NoColor and Linux are supported. But now the
7193 currently only NoColor and Linux are supported. But now the
7192 infrastructure is in place, based on a generic ColorScheme
7194 infrastructure is in place, based on a generic ColorScheme
7193 class. So writing and activating new schemes both for the prompts
7195 class. So writing and activating new schemes both for the prompts
7194 and the tracebacks should be straightforward.
7196 and the tracebacks should be straightforward.
7195
7197
7196 * Version 0.1.13 released, 0.1.14 opened.
7198 * Version 0.1.13 released, 0.1.14 opened.
7197
7199
7198 * Changed handling of options for output cache. Now counter is
7200 * Changed handling of options for output cache. Now counter is
7199 hardwired starting at 1 and one specifies the maximum number of
7201 hardwired starting at 1 and one specifies the maximum number of
7200 entries *in the outcache* (not the max prompt counter). This is
7202 entries *in the outcache* (not the max prompt counter). This is
7201 much better, since many statements won't increase the cache
7203 much better, since many statements won't increase the cache
7202 count. It also eliminated some confusing options, now there's only
7204 count. It also eliminated some confusing options, now there's only
7203 one: cache_size.
7205 one: cache_size.
7204
7206
7205 * Added 'alias' magic function and magic_alias option in the
7207 * Added 'alias' magic function and magic_alias option in the
7206 ipythonrc file. Now the user can easily define whatever names he
7208 ipythonrc file. Now the user can easily define whatever names he
7207 wants for the magic functions without having to play weird
7209 wants for the magic functions without having to play weird
7208 namespace games. This gives IPython a real shell-like feel.
7210 namespace games. This gives IPython a real shell-like feel.
7209
7211
7210 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7212 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7211 @ or not).
7213 @ or not).
7212
7214
7213 This was one of the last remaining 'visible' bugs (that I know
7215 This was one of the last remaining 'visible' bugs (that I know
7214 of). I think if I can clean up the session loading so it works
7216 of). I think if I can clean up the session loading so it works
7215 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7217 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7216 about licensing).
7218 about licensing).
7217
7219
7218 2001-11-25 Fernando Perez <fperez@colorado.edu>
7220 2001-11-25 Fernando Perez <fperez@colorado.edu>
7219
7221
7220 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7222 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7221 there's a cleaner distinction between what ? and ?? show.
7223 there's a cleaner distinction between what ? and ?? show.
7222
7224
7223 * Added screen_length option. Now the user can define his own
7225 * Added screen_length option. Now the user can define his own
7224 screen size for page() operations.
7226 screen size for page() operations.
7225
7227
7226 * Implemented magic shell-like functions with automatic code
7228 * Implemented magic shell-like functions with automatic code
7227 generation. Now adding another function is just a matter of adding
7229 generation. Now adding another function is just a matter of adding
7228 an entry to a dict, and the function is dynamically generated at
7230 an entry to a dict, and the function is dynamically generated at
7229 run-time. Python has some really cool features!
7231 run-time. Python has some really cool features!
7230
7232
7231 * Renamed many options to cleanup conventions a little. Now all
7233 * Renamed many options to cleanup conventions a little. Now all
7232 are lowercase, and only underscores where needed. Also in the code
7234 are lowercase, and only underscores where needed. Also in the code
7233 option name tables are clearer.
7235 option name tables are clearer.
7234
7236
7235 * Changed prompts a little. Now input is 'In [n]:' instead of
7237 * Changed prompts a little. Now input is 'In [n]:' instead of
7236 'In[n]:='. This allows it the numbers to be aligned with the
7238 'In[n]:='. This allows it the numbers to be aligned with the
7237 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7239 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7238 Python (it was a Mathematica thing). The '...' continuation prompt
7240 Python (it was a Mathematica thing). The '...' continuation prompt
7239 was also changed a little to align better.
7241 was also changed a little to align better.
7240
7242
7241 * Fixed bug when flushing output cache. Not all _p<n> variables
7243 * Fixed bug when flushing output cache. Not all _p<n> variables
7242 exist, so their deletion needs to be wrapped in a try:
7244 exist, so their deletion needs to be wrapped in a try:
7243
7245
7244 * Figured out how to properly use inspect.formatargspec() (it
7246 * Figured out how to properly use inspect.formatargspec() (it
7245 requires the args preceded by *). So I removed all the code from
7247 requires the args preceded by *). So I removed all the code from
7246 _get_pdef in Magic, which was just replicating that.
7248 _get_pdef in Magic, which was just replicating that.
7247
7249
7248 * Added test to prefilter to allow redefining magic function names
7250 * Added test to prefilter to allow redefining magic function names
7249 as variables. This is ok, since the @ form is always available,
7251 as variables. This is ok, since the @ form is always available,
7250 but whe should allow the user to define a variable called 'ls' if
7252 but whe should allow the user to define a variable called 'ls' if
7251 he needs it.
7253 he needs it.
7252
7254
7253 * Moved the ToDo information from README into a separate ToDo.
7255 * Moved the ToDo information from README into a separate ToDo.
7254
7256
7255 * General code cleanup and small bugfixes. I think it's close to a
7257 * General code cleanup and small bugfixes. I think it's close to a
7256 state where it can be released, obviously with a big 'beta'
7258 state where it can be released, obviously with a big 'beta'
7257 warning on it.
7259 warning on it.
7258
7260
7259 * Got the magic function split to work. Now all magics are defined
7261 * Got the magic function split to work. Now all magics are defined
7260 in a separate class. It just organizes things a bit, and now
7262 in a separate class. It just organizes things a bit, and now
7261 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7263 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7262 was too long).
7264 was too long).
7263
7265
7264 * Changed @clear to @reset to avoid potential confusions with
7266 * Changed @clear to @reset to avoid potential confusions with
7265 the shell command clear. Also renamed @cl to @clear, which does
7267 the shell command clear. Also renamed @cl to @clear, which does
7266 exactly what people expect it to from their shell experience.
7268 exactly what people expect it to from their shell experience.
7267
7269
7268 Added a check to the @reset command (since it's so
7270 Added a check to the @reset command (since it's so
7269 destructive, it's probably a good idea to ask for confirmation).
7271 destructive, it's probably a good idea to ask for confirmation).
7270 But now reset only works for full namespace resetting. Since the
7272 But now reset only works for full namespace resetting. Since the
7271 del keyword is already there for deleting a few specific
7273 del keyword is already there for deleting a few specific
7272 variables, I don't see the point of having a redundant magic
7274 variables, I don't see the point of having a redundant magic
7273 function for the same task.
7275 function for the same task.
7274
7276
7275 2001-11-24 Fernando Perez <fperez@colorado.edu>
7277 2001-11-24 Fernando Perez <fperez@colorado.edu>
7276
7278
7277 * Updated the builtin docs (esp. the ? ones).
7279 * Updated the builtin docs (esp. the ? ones).
7278
7280
7279 * Ran all the code through pychecker. Not terribly impressed with
7281 * Ran all the code through pychecker. Not terribly impressed with
7280 it: lots of spurious warnings and didn't really find anything of
7282 it: lots of spurious warnings and didn't really find anything of
7281 substance (just a few modules being imported and not used).
7283 substance (just a few modules being imported and not used).
7282
7284
7283 * Implemented the new ultraTB functionality into IPython. New
7285 * Implemented the new ultraTB functionality into IPython. New
7284 option: xcolors. This chooses color scheme. xmode now only selects
7286 option: xcolors. This chooses color scheme. xmode now only selects
7285 between Plain and Verbose. Better orthogonality.
7287 between Plain and Verbose. Better orthogonality.
7286
7288
7287 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7289 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7288 mode and color scheme for the exception handlers. Now it's
7290 mode and color scheme for the exception handlers. Now it's
7289 possible to have the verbose traceback with no coloring.
7291 possible to have the verbose traceback with no coloring.
7290
7292
7291 2001-11-23 Fernando Perez <fperez@colorado.edu>
7293 2001-11-23 Fernando Perez <fperez@colorado.edu>
7292
7294
7293 * Version 0.1.12 released, 0.1.13 opened.
7295 * Version 0.1.12 released, 0.1.13 opened.
7294
7296
7295 * Removed option to set auto-quote and auto-paren escapes by
7297 * Removed option to set auto-quote and auto-paren escapes by
7296 user. The chances of breaking valid syntax are just too high. If
7298 user. The chances of breaking valid syntax are just too high. If
7297 someone *really* wants, they can always dig into the code.
7299 someone *really* wants, they can always dig into the code.
7298
7300
7299 * Made prompt separators configurable.
7301 * Made prompt separators configurable.
7300
7302
7301 2001-11-22 Fernando Perez <fperez@colorado.edu>
7303 2001-11-22 Fernando Perez <fperez@colorado.edu>
7302
7304
7303 * Small bugfixes in many places.
7305 * Small bugfixes in many places.
7304
7306
7305 * Removed the MyCompleter class from ipplib. It seemed redundant
7307 * Removed the MyCompleter class from ipplib. It seemed redundant
7306 with the C-p,C-n history search functionality. Less code to
7308 with the C-p,C-n history search functionality. Less code to
7307 maintain.
7309 maintain.
7308
7310
7309 * Moved all the original ipython.py code into ipythonlib.py. Right
7311 * Moved all the original ipython.py code into ipythonlib.py. Right
7310 now it's just one big dump into a function called make_IPython, so
7312 now it's just one big dump into a function called make_IPython, so
7311 no real modularity has been gained. But at least it makes the
7313 no real modularity has been gained. But at least it makes the
7312 wrapper script tiny, and since ipythonlib is a module, it gets
7314 wrapper script tiny, and since ipythonlib is a module, it gets
7313 compiled and startup is much faster.
7315 compiled and startup is much faster.
7314
7316
7315 This is a reasobably 'deep' change, so we should test it for a
7317 This is a reasobably 'deep' change, so we should test it for a
7316 while without messing too much more with the code.
7318 while without messing too much more with the code.
7317
7319
7318 2001-11-21 Fernando Perez <fperez@colorado.edu>
7320 2001-11-21 Fernando Perez <fperez@colorado.edu>
7319
7321
7320 * Version 0.1.11 released, 0.1.12 opened for further work.
7322 * Version 0.1.11 released, 0.1.12 opened for further work.
7321
7323
7322 * Removed dependency on Itpl. It was only needed in one place. It
7324 * Removed dependency on Itpl. It was only needed in one place. It
7323 would be nice if this became part of python, though. It makes life
7325 would be nice if this became part of python, though. It makes life
7324 *a lot* easier in some cases.
7326 *a lot* easier in some cases.
7325
7327
7326 * Simplified the prefilter code a bit. Now all handlers are
7328 * Simplified the prefilter code a bit. Now all handlers are
7327 expected to explicitly return a value (at least a blank string).
7329 expected to explicitly return a value (at least a blank string).
7328
7330
7329 * Heavy edits in ipplib. Removed the help system altogether. Now
7331 * Heavy edits in ipplib. Removed the help system altogether. Now
7330 obj?/?? is used for inspecting objects, a magic @doc prints
7332 obj?/?? is used for inspecting objects, a magic @doc prints
7331 docstrings, and full-blown Python help is accessed via the 'help'
7333 docstrings, and full-blown Python help is accessed via the 'help'
7332 keyword. This cleans up a lot of code (less to maintain) and does
7334 keyword. This cleans up a lot of code (less to maintain) and does
7333 the job. Since 'help' is now a standard Python component, might as
7335 the job. Since 'help' is now a standard Python component, might as
7334 well use it and remove duplicate functionality.
7336 well use it and remove duplicate functionality.
7335
7337
7336 Also removed the option to use ipplib as a standalone program. By
7338 Also removed the option to use ipplib as a standalone program. By
7337 now it's too dependent on other parts of IPython to function alone.
7339 now it's too dependent on other parts of IPython to function alone.
7338
7340
7339 * Fixed bug in genutils.pager. It would crash if the pager was
7341 * Fixed bug in genutils.pager. It would crash if the pager was
7340 exited immediately after opening (broken pipe).
7342 exited immediately after opening (broken pipe).
7341
7343
7342 * Trimmed down the VerboseTB reporting a little. The header is
7344 * Trimmed down the VerboseTB reporting a little. The header is
7343 much shorter now and the repeated exception arguments at the end
7345 much shorter now and the repeated exception arguments at the end
7344 have been removed. For interactive use the old header seemed a bit
7346 have been removed. For interactive use the old header seemed a bit
7345 excessive.
7347 excessive.
7346
7348
7347 * Fixed small bug in output of @whos for variables with multi-word
7349 * Fixed small bug in output of @whos for variables with multi-word
7348 types (only first word was displayed).
7350 types (only first word was displayed).
7349
7351
7350 2001-11-17 Fernando Perez <fperez@colorado.edu>
7352 2001-11-17 Fernando Perez <fperez@colorado.edu>
7351
7353
7352 * Version 0.1.10 released, 0.1.11 opened for further work.
7354 * Version 0.1.10 released, 0.1.11 opened for further work.
7353
7355
7354 * Modified dirs and friends. dirs now *returns* the stack (not
7356 * Modified dirs and friends. dirs now *returns* the stack (not
7355 prints), so one can manipulate it as a variable. Convenient to
7357 prints), so one can manipulate it as a variable. Convenient to
7356 travel along many directories.
7358 travel along many directories.
7357
7359
7358 * Fixed bug in magic_pdef: would only work with functions with
7360 * Fixed bug in magic_pdef: would only work with functions with
7359 arguments with default values.
7361 arguments with default values.
7360
7362
7361 2001-11-14 Fernando Perez <fperez@colorado.edu>
7363 2001-11-14 Fernando Perez <fperez@colorado.edu>
7362
7364
7363 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7365 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7364 example with IPython. Various other minor fixes and cleanups.
7366 example with IPython. Various other minor fixes and cleanups.
7365
7367
7366 * Version 0.1.9 released, 0.1.10 opened for further work.
7368 * Version 0.1.9 released, 0.1.10 opened for further work.
7367
7369
7368 * Added sys.path to the list of directories searched in the
7370 * Added sys.path to the list of directories searched in the
7369 execfile= option. It used to be the current directory and the
7371 execfile= option. It used to be the current directory and the
7370 user's IPYTHONDIR only.
7372 user's IPYTHONDIR only.
7371
7373
7372 2001-11-13 Fernando Perez <fperez@colorado.edu>
7374 2001-11-13 Fernando Perez <fperez@colorado.edu>
7373
7375
7374 * Reinstated the raw_input/prefilter separation that Janko had
7376 * Reinstated the raw_input/prefilter separation that Janko had
7375 initially. This gives a more convenient setup for extending the
7377 initially. This gives a more convenient setup for extending the
7376 pre-processor from the outside: raw_input always gets a string,
7378 pre-processor from the outside: raw_input always gets a string,
7377 and prefilter has to process it. We can then redefine prefilter
7379 and prefilter has to process it. We can then redefine prefilter
7378 from the outside and implement extensions for special
7380 from the outside and implement extensions for special
7379 purposes.
7381 purposes.
7380
7382
7381 Today I got one for inputting PhysicalQuantity objects
7383 Today I got one for inputting PhysicalQuantity objects
7382 (from Scientific) without needing any function calls at
7384 (from Scientific) without needing any function calls at
7383 all. Extremely convenient, and it's all done as a user-level
7385 all. Extremely convenient, and it's all done as a user-level
7384 extension (no IPython code was touched). Now instead of:
7386 extension (no IPython code was touched). Now instead of:
7385 a = PhysicalQuantity(4.2,'m/s**2')
7387 a = PhysicalQuantity(4.2,'m/s**2')
7386 one can simply say
7388 one can simply say
7387 a = 4.2 m/s**2
7389 a = 4.2 m/s**2
7388 or even
7390 or even
7389 a = 4.2 m/s^2
7391 a = 4.2 m/s^2
7390
7392
7391 I use this, but it's also a proof of concept: IPython really is
7393 I use this, but it's also a proof of concept: IPython really is
7392 fully user-extensible, even at the level of the parsing of the
7394 fully user-extensible, even at the level of the parsing of the
7393 command line. It's not trivial, but it's perfectly doable.
7395 command line. It's not trivial, but it's perfectly doable.
7394
7396
7395 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7397 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7396 the problem of modules being loaded in the inverse order in which
7398 the problem of modules being loaded in the inverse order in which
7397 they were defined in
7399 they were defined in
7398
7400
7399 * Version 0.1.8 released, 0.1.9 opened for further work.
7401 * Version 0.1.8 released, 0.1.9 opened for further work.
7400
7402
7401 * Added magics pdef, source and file. They respectively show the
7403 * Added magics pdef, source and file. They respectively show the
7402 definition line ('prototype' in C), source code and full python
7404 definition line ('prototype' in C), source code and full python
7403 file for any callable object. The object inspector oinfo uses
7405 file for any callable object. The object inspector oinfo uses
7404 these to show the same information.
7406 these to show the same information.
7405
7407
7406 * Version 0.1.7 released, 0.1.8 opened for further work.
7408 * Version 0.1.7 released, 0.1.8 opened for further work.
7407
7409
7408 * Separated all the magic functions into a class called Magic. The
7410 * Separated all the magic functions into a class called Magic. The
7409 InteractiveShell class was becoming too big for Xemacs to handle
7411 InteractiveShell class was becoming too big for Xemacs to handle
7410 (de-indenting a line would lock it up for 10 seconds while it
7412 (de-indenting a line would lock it up for 10 seconds while it
7411 backtracked on the whole class!)
7413 backtracked on the whole class!)
7412
7414
7413 FIXME: didn't work. It can be done, but right now namespaces are
7415 FIXME: didn't work. It can be done, but right now namespaces are
7414 all messed up. Do it later (reverted it for now, so at least
7416 all messed up. Do it later (reverted it for now, so at least
7415 everything works as before).
7417 everything works as before).
7416
7418
7417 * Got the object introspection system (magic_oinfo) working! I
7419 * Got the object introspection system (magic_oinfo) working! I
7418 think this is pretty much ready for release to Janko, so he can
7420 think this is pretty much ready for release to Janko, so he can
7419 test it for a while and then announce it. Pretty much 100% of what
7421 test it for a while and then announce it. Pretty much 100% of what
7420 I wanted for the 'phase 1' release is ready. Happy, tired.
7422 I wanted for the 'phase 1' release is ready. Happy, tired.
7421
7423
7422 2001-11-12 Fernando Perez <fperez@colorado.edu>
7424 2001-11-12 Fernando Perez <fperez@colorado.edu>
7423
7425
7424 * Version 0.1.6 released, 0.1.7 opened for further work.
7426 * Version 0.1.6 released, 0.1.7 opened for further work.
7425
7427
7426 * Fixed bug in printing: it used to test for truth before
7428 * Fixed bug in printing: it used to test for truth before
7427 printing, so 0 wouldn't print. Now checks for None.
7429 printing, so 0 wouldn't print. Now checks for None.
7428
7430
7429 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7431 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7430 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7432 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7431 reaches by hand into the outputcache. Think of a better way to do
7433 reaches by hand into the outputcache. Think of a better way to do
7432 this later.
7434 this later.
7433
7435
7434 * Various small fixes thanks to Nathan's comments.
7436 * Various small fixes thanks to Nathan's comments.
7435
7437
7436 * Changed magic_pprint to magic_Pprint. This way it doesn't
7438 * Changed magic_pprint to magic_Pprint. This way it doesn't
7437 collide with pprint() and the name is consistent with the command
7439 collide with pprint() and the name is consistent with the command
7438 line option.
7440 line option.
7439
7441
7440 * Changed prompt counter behavior to be fully like
7442 * Changed prompt counter behavior to be fully like
7441 Mathematica's. That is, even input that doesn't return a result
7443 Mathematica's. That is, even input that doesn't return a result
7442 raises the prompt counter. The old behavior was kind of confusing
7444 raises the prompt counter. The old behavior was kind of confusing
7443 (getting the same prompt number several times if the operation
7445 (getting the same prompt number several times if the operation
7444 didn't return a result).
7446 didn't return a result).
7445
7447
7446 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7448 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7447
7449
7448 * Fixed -Classic mode (wasn't working anymore).
7450 * Fixed -Classic mode (wasn't working anymore).
7449
7451
7450 * Added colored prompts using Nathan's new code. Colors are
7452 * Added colored prompts using Nathan's new code. Colors are
7451 currently hardwired, they can be user-configurable. For
7453 currently hardwired, they can be user-configurable. For
7452 developers, they can be chosen in file ipythonlib.py, at the
7454 developers, they can be chosen in file ipythonlib.py, at the
7453 beginning of the CachedOutput class def.
7455 beginning of the CachedOutput class def.
7454
7456
7455 2001-11-11 Fernando Perez <fperez@colorado.edu>
7457 2001-11-11 Fernando Perez <fperez@colorado.edu>
7456
7458
7457 * Version 0.1.5 released, 0.1.6 opened for further work.
7459 * Version 0.1.5 released, 0.1.6 opened for further work.
7458
7460
7459 * Changed magic_env to *return* the environment as a dict (not to
7461 * Changed magic_env to *return* the environment as a dict (not to
7460 print it). This way it prints, but it can also be processed.
7462 print it). This way it prints, but it can also be processed.
7461
7463
7462 * Added Verbose exception reporting to interactive
7464 * Added Verbose exception reporting to interactive
7463 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7465 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7464 traceback. Had to make some changes to the ultraTB file. This is
7466 traceback. Had to make some changes to the ultraTB file. This is
7465 probably the last 'big' thing in my mental todo list. This ties
7467 probably the last 'big' thing in my mental todo list. This ties
7466 in with the next entry:
7468 in with the next entry:
7467
7469
7468 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7470 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7469 has to specify is Plain, Color or Verbose for all exception
7471 has to specify is Plain, Color or Verbose for all exception
7470 handling.
7472 handling.
7471
7473
7472 * Removed ShellServices option. All this can really be done via
7474 * Removed ShellServices option. All this can really be done via
7473 the magic system. It's easier to extend, cleaner and has automatic
7475 the magic system. It's easier to extend, cleaner and has automatic
7474 namespace protection and documentation.
7476 namespace protection and documentation.
7475
7477
7476 2001-11-09 Fernando Perez <fperez@colorado.edu>
7478 2001-11-09 Fernando Perez <fperez@colorado.edu>
7477
7479
7478 * Fixed bug in output cache flushing (missing parameter to
7480 * Fixed bug in output cache flushing (missing parameter to
7479 __init__). Other small bugs fixed (found using pychecker).
7481 __init__). Other small bugs fixed (found using pychecker).
7480
7482
7481 * Version 0.1.4 opened for bugfixing.
7483 * Version 0.1.4 opened for bugfixing.
7482
7484
7483 2001-11-07 Fernando Perez <fperez@colorado.edu>
7485 2001-11-07 Fernando Perez <fperez@colorado.edu>
7484
7486
7485 * Version 0.1.3 released, mainly because of the raw_input bug.
7487 * Version 0.1.3 released, mainly because of the raw_input bug.
7486
7488
7487 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7489 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7488 and when testing for whether things were callable, a call could
7490 and when testing for whether things were callable, a call could
7489 actually be made to certain functions. They would get called again
7491 actually be made to certain functions. They would get called again
7490 once 'really' executed, with a resulting double call. A disaster
7492 once 'really' executed, with a resulting double call. A disaster
7491 in many cases (list.reverse() would never work!).
7493 in many cases (list.reverse() would never work!).
7492
7494
7493 * Removed prefilter() function, moved its code to raw_input (which
7495 * Removed prefilter() function, moved its code to raw_input (which
7494 after all was just a near-empty caller for prefilter). This saves
7496 after all was just a near-empty caller for prefilter). This saves
7495 a function call on every prompt, and simplifies the class a tiny bit.
7497 a function call on every prompt, and simplifies the class a tiny bit.
7496
7498
7497 * Fix _ip to __ip name in magic example file.
7499 * Fix _ip to __ip name in magic example file.
7498
7500
7499 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7501 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7500 work with non-gnu versions of tar.
7502 work with non-gnu versions of tar.
7501
7503
7502 2001-11-06 Fernando Perez <fperez@colorado.edu>
7504 2001-11-06 Fernando Perez <fperez@colorado.edu>
7503
7505
7504 * Version 0.1.2. Just to keep track of the recent changes.
7506 * Version 0.1.2. Just to keep track of the recent changes.
7505
7507
7506 * Fixed nasty bug in output prompt routine. It used to check 'if
7508 * Fixed nasty bug in output prompt routine. It used to check 'if
7507 arg != None...'. Problem is, this fails if arg implements a
7509 arg != None...'. Problem is, this fails if arg implements a
7508 special comparison (__cmp__) which disallows comparing to
7510 special comparison (__cmp__) which disallows comparing to
7509 None. Found it when trying to use the PhysicalQuantity module from
7511 None. Found it when trying to use the PhysicalQuantity module from
7510 ScientificPython.
7512 ScientificPython.
7511
7513
7512 2001-11-05 Fernando Perez <fperez@colorado.edu>
7514 2001-11-05 Fernando Perez <fperez@colorado.edu>
7513
7515
7514 * Also added dirs. Now the pushd/popd/dirs family functions
7516 * Also added dirs. Now the pushd/popd/dirs family functions
7515 basically like the shell, with the added convenience of going home
7517 basically like the shell, with the added convenience of going home
7516 when called with no args.
7518 when called with no args.
7517
7519
7518 * pushd/popd slightly modified to mimic shell behavior more
7520 * pushd/popd slightly modified to mimic shell behavior more
7519 closely.
7521 closely.
7520
7522
7521 * Added env,pushd,popd from ShellServices as magic functions. I
7523 * Added env,pushd,popd from ShellServices as magic functions. I
7522 think the cleanest will be to port all desired functions from
7524 think the cleanest will be to port all desired functions from
7523 ShellServices as magics and remove ShellServices altogether. This
7525 ShellServices as magics and remove ShellServices altogether. This
7524 will provide a single, clean way of adding functionality
7526 will provide a single, clean way of adding functionality
7525 (shell-type or otherwise) to IP.
7527 (shell-type or otherwise) to IP.
7526
7528
7527 2001-11-04 Fernando Perez <fperez@colorado.edu>
7529 2001-11-04 Fernando Perez <fperez@colorado.edu>
7528
7530
7529 * Added .ipython/ directory to sys.path. This way users can keep
7531 * Added .ipython/ directory to sys.path. This way users can keep
7530 customizations there and access them via import.
7532 customizations there and access them via import.
7531
7533
7532 2001-11-03 Fernando Perez <fperez@colorado.edu>
7534 2001-11-03 Fernando Perez <fperez@colorado.edu>
7533
7535
7534 * Opened version 0.1.1 for new changes.
7536 * Opened version 0.1.1 for new changes.
7535
7537
7536 * Changed version number to 0.1.0: first 'public' release, sent to
7538 * Changed version number to 0.1.0: first 'public' release, sent to
7537 Nathan and Janko.
7539 Nathan and Janko.
7538
7540
7539 * Lots of small fixes and tweaks.
7541 * Lots of small fixes and tweaks.
7540
7542
7541 * Minor changes to whos format. Now strings are shown, snipped if
7543 * Minor changes to whos format. Now strings are shown, snipped if
7542 too long.
7544 too long.
7543
7545
7544 * Changed ShellServices to work on __main__ so they show up in @who
7546 * Changed ShellServices to work on __main__ so they show up in @who
7545
7547
7546 * Help also works with ? at the end of a line:
7548 * Help also works with ? at the end of a line:
7547 ?sin and sin?
7549 ?sin and sin?
7548 both produce the same effect. This is nice, as often I use the
7550 both produce the same effect. This is nice, as often I use the
7549 tab-complete to find the name of a method, but I used to then have
7551 tab-complete to find the name of a method, but I used to then have
7550 to go to the beginning of the line to put a ? if I wanted more
7552 to go to the beginning of the line to put a ? if I wanted more
7551 info. Now I can just add the ? and hit return. Convenient.
7553 info. Now I can just add the ? and hit return. Convenient.
7552
7554
7553 2001-11-02 Fernando Perez <fperez@colorado.edu>
7555 2001-11-02 Fernando Perez <fperez@colorado.edu>
7554
7556
7555 * Python version check (>=2.1) added.
7557 * Python version check (>=2.1) added.
7556
7558
7557 * Added LazyPython documentation. At this point the docs are quite
7559 * Added LazyPython documentation. At this point the docs are quite
7558 a mess. A cleanup is in order.
7560 a mess. A cleanup is in order.
7559
7561
7560 * Auto-installer created. For some bizarre reason, the zipfiles
7562 * Auto-installer created. For some bizarre reason, the zipfiles
7561 module isn't working on my system. So I made a tar version
7563 module isn't working on my system. So I made a tar version
7562 (hopefully the command line options in various systems won't kill
7564 (hopefully the command line options in various systems won't kill
7563 me).
7565 me).
7564
7566
7565 * Fixes to Struct in genutils. Now all dictionary-like methods are
7567 * Fixes to Struct in genutils. Now all dictionary-like methods are
7566 protected (reasonably).
7568 protected (reasonably).
7567
7569
7568 * Added pager function to genutils and changed ? to print usage
7570 * Added pager function to genutils and changed ? to print usage
7569 note through it (it was too long).
7571 note through it (it was too long).
7570
7572
7571 * Added the LazyPython functionality. Works great! I changed the
7573 * Added the LazyPython functionality. Works great! I changed the
7572 auto-quote escape to ';', it's on home row and next to '. But
7574 auto-quote escape to ';', it's on home row and next to '. But
7573 both auto-quote and auto-paren (still /) escapes are command-line
7575 both auto-quote and auto-paren (still /) escapes are command-line
7574 parameters.
7576 parameters.
7575
7577
7576
7578
7577 2001-11-01 Fernando Perez <fperez@colorado.edu>
7579 2001-11-01 Fernando Perez <fperez@colorado.edu>
7578
7580
7579 * Version changed to 0.0.7. Fairly large change: configuration now
7581 * Version changed to 0.0.7. Fairly large change: configuration now
7580 is all stored in a directory, by default .ipython. There, all
7582 is all stored in a directory, by default .ipython. There, all
7581 config files have normal looking names (not .names)
7583 config files have normal looking names (not .names)
7582
7584
7583 * Version 0.0.6 Released first to Lucas and Archie as a test
7585 * Version 0.0.6 Released first to Lucas and Archie as a test
7584 run. Since it's the first 'semi-public' release, change version to
7586 run. Since it's the first 'semi-public' release, change version to
7585 > 0.0.6 for any changes now.
7587 > 0.0.6 for any changes now.
7586
7588
7587 * Stuff I had put in the ipplib.py changelog:
7589 * Stuff I had put in the ipplib.py changelog:
7588
7590
7589 Changes to InteractiveShell:
7591 Changes to InteractiveShell:
7590
7592
7591 - Made the usage message a parameter.
7593 - Made the usage message a parameter.
7592
7594
7593 - Require the name of the shell variable to be given. It's a bit
7595 - Require the name of the shell variable to be given. It's a bit
7594 of a hack, but allows the name 'shell' not to be hardwired in the
7596 of a hack, but allows the name 'shell' not to be hardwired in the
7595 magic (@) handler, which is problematic b/c it requires
7597 magic (@) handler, which is problematic b/c it requires
7596 polluting the global namespace with 'shell'. This in turn is
7598 polluting the global namespace with 'shell'. This in turn is
7597 fragile: if a user redefines a variable called shell, things
7599 fragile: if a user redefines a variable called shell, things
7598 break.
7600 break.
7599
7601
7600 - magic @: all functions available through @ need to be defined
7602 - magic @: all functions available through @ need to be defined
7601 as magic_<name>, even though they can be called simply as
7603 as magic_<name>, even though they can be called simply as
7602 @<name>. This allows the special command @magic to gather
7604 @<name>. This allows the special command @magic to gather
7603 information automatically about all existing magic functions,
7605 information automatically about all existing magic functions,
7604 even if they are run-time user extensions, by parsing the shell
7606 even if they are run-time user extensions, by parsing the shell
7605 instance __dict__ looking for special magic_ names.
7607 instance __dict__ looking for special magic_ names.
7606
7608
7607 - mainloop: added *two* local namespace parameters. This allows
7609 - mainloop: added *two* local namespace parameters. This allows
7608 the class to differentiate between parameters which were there
7610 the class to differentiate between parameters which were there
7609 before and after command line initialization was processed. This
7611 before and after command line initialization was processed. This
7610 way, later @who can show things loaded at startup by the
7612 way, later @who can show things loaded at startup by the
7611 user. This trick was necessary to make session saving/reloading
7613 user. This trick was necessary to make session saving/reloading
7612 really work: ideally after saving/exiting/reloading a session,
7614 really work: ideally after saving/exiting/reloading a session,
7613 *everything* should look the same, including the output of @who. I
7615 *everything* should look the same, including the output of @who. I
7614 was only able to make this work with this double namespace
7616 was only able to make this work with this double namespace
7615 trick.
7617 trick.
7616
7618
7617 - added a header to the logfile which allows (almost) full
7619 - added a header to the logfile which allows (almost) full
7618 session restoring.
7620 session restoring.
7619
7621
7620 - prepend lines beginning with @ or !, with a and log
7622 - prepend lines beginning with @ or !, with a and log
7621 them. Why? !lines: may be useful to know what you did @lines:
7623 them. Why? !lines: may be useful to know what you did @lines:
7622 they may affect session state. So when restoring a session, at
7624 they may affect session state. So when restoring a session, at
7623 least inform the user of their presence. I couldn't quite get
7625 least inform the user of their presence. I couldn't quite get
7624 them to properly re-execute, but at least the user is warned.
7626 them to properly re-execute, but at least the user is warned.
7625
7627
7626 * Started ChangeLog.
7628 * Started ChangeLog.
@@ -1,101 +1,101 b''
1 #!/bin/sh
1 #!/bin/sh
2 # IPython release script
2 # IPython release script
3
3
4 PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' `
4 PYVER=`python -V 2>&1 | awk '{print $2}' | awk -F '.' '{print $1$2}' `
5 version=`ipython -Version`
5 version=`ipython -Version`
6 ipdir=~/ipython/ipython
6 ipdir=~/ipython/ipython
7 ipbackupdir=~/ipython/backup
7 ipbackupdir=~/ipython/backup
8
8
9 echo
9 echo
10 echo "Releasing IPython version $version"
10 echo "Releasing IPython version $version"
11 echo "=================================="
11 echo "=================================="
12
12
13 echo "Marking ChangeLog with release information and making NEWS file..."
13 echo "Marking ChangeLog with release information and making NEWS file..."
14
14
15 # Stamp changelog and save a copy of the status at each version, in case later
15 # Stamp changelog and save a copy of the status at each version, in case later
16 # we want the NEWS file to start from a point before the very last release (if
16 # we want the NEWS file to start from a point before the very last release (if
17 # very small interim releases have no significant changes).
17 # very small interim releases have no significant changes).
18
18
19 cd $ipdir/doc
19 cd $ipdir/doc
20 cp ChangeLog ChangeLog.old
20 cp ChangeLog ChangeLog.old
21 cp ChangeLog ChangeLog.$version
21 cp ChangeLog ChangeLog.$version
22 daystamp=`date +%Y-%m-%d`
22 daystamp=`date +%Y-%m-%d`
23 echo $daystamp " ***" Released version $version > ChangeLog
23 echo $daystamp " ***" Released version $version > ChangeLog
24 echo >> ChangeLog
24 echo >> ChangeLog
25 cat ChangeLog.old >> ChangeLog
25 cat ChangeLog.old >> ChangeLog
26 rm ChangeLog.old
26 rm ChangeLog.old
27
27
28 # Build NEWS file
28 # Build NEWS file
29 echo "Changes between the last two releases (major or minor)" > NEWS
29 echo "Changes between the last two releases (major or minor)" > NEWS
30 echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS
30 echo "Note that this is an auto-generated diff of the ChangeLogs" >> NEWS
31 echo >> NEWS
31 echo >> NEWS
32 diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS
32 diff ChangeLog.previous ChangeLog | grep -v '^0a' | sed 's/^> //g' >> NEWS
33 cp ChangeLog ChangeLog.previous
33 cp ChangeLog ChangeLog.previous
34
34
35 # Clean up build/dist directories
35 # Clean up build/dist directories
36 rm -rf $ipdir/build/*
36 rm -rf $ipdir/build/*
37 rm -rf $ipdir/dist/*
37 rm -rf $ipdir/dist/*
38
38
39 # Perform local backup
39 # Perform local backup
40 cd $ipdir/tools
40 cd $ipdir/tools
41 ./make_tarball.py
41 ./make_tarball.py
42 mv ipython-*.tgz $ipbackupdir
42 mv ipython-*.tgz $ipbackupdir
43
43
44 # Build source and binary distros
44 # Build source and binary distros
45 cd $ipdir
45 cd $ipdir
46 ./setup.py sdist --formats=gztar
46 ./setup.py sdist --formats=gztar
47
47
48 # Build version-specific RPMs, where we must use the --python option to ensure
48 # Build version-specific RPMs, where we must use the --python option to ensure
49 # that the resulting RPM is really built with the requested python version (so
49 # that the resulting RPM is really built with the requested python version (so
50 # things go to lib/python2.X/...)
50 # things go to lib/python2.X/...)
51 python2.4 ./setup.py bdist_rpm --binary-only --release=py24 --python=/usr/bin/python2.4
51 python2.4 ./setup.py bdist_rpm --binary-only --release=py24 --python=/usr/bin/python2.4
52 python2.5 ./setup.py bdist_rpm --binary-only --release=py25 --python=/usr/bin/python2.5
52 python2.5 ./setup.py bdist_rpm --binary-only --release=py25 --python=/usr/bin/python2.5
53
53
54 # Build eggs
54 # Build eggs
55 python2.4 ./setup_bdist_egg.py
55 python2.4 ./setup_bdist_egg.py
56 python2.5 ./setup_bdist_egg.py
56 python2.5 ./setup_bdist_egg.py
57
57
58 # Call the windows build separately, so that the extra Windows scripts don't
58 # Call the windows build separately, so that the extra Windows scripts don't
59 # get pulled into Unix builds (setup.py has code which checks for
59 # get pulled into Unix builds (setup.py has code which checks for
60 # bdist_wininst)
60 # bdist_wininst)
61 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
61 ./setup.py bdist_wininst --install-script=ipython_win_post_install.py
62
62
63 # Change name so retarded Vista runs the installer correctly
63 # Change name so retarded Vista runs the installer correctly
64 rename 's/win32/win32-setup/' $ipdir/dist/*.exe
64 rename 's/win32/win32-setup/' $ipdir/dist/*.exe
65
65
66 # Register with the Python Package Index (PyPI)
66 # Register with the Python Package Index (PyPI)
67 echo "Registering with PyPI..."
67 echo "Registering with PyPI..."
68 cd $ipdir
68 cd $ipdir
69 ./setup.py register
69 ./setup.py register
70
70
71 # Upload all files
71 # Upload all files
72 cd $ipdir/dist
72 cd $ipdir/dist
73 echo "Uploading distribution files..."
73 echo "Uploading distribution files..."
74 scp * ipython@ipython.scipy.org:www/dist/
74 scp * ipython@ipython.scipy.org:www/dist/
75
75
76 echo "Uploading backup files..."
76 echo "Uploading backup files..."
77 cd $ipbackupdir
77 cd $ipbackupdir
78 scp `ls -1tr | tail -1` ipython@ipython.scipy.org:www/backup/
78 scp `ls -1tr *tgz | tail -1` ipython@ipython.scipy.org:www/backup/
79
79
80 echo "Updating webpage..."
80 echo "Updating webpage..."
81 cd $ipdir/doc
81 cd $ipdir/doc
82 www=~/ipython/homepage
82 www=~/ipython/homepage
83 cp ChangeLog NEWS $www
83 cp ChangeLog NEWS $www
84 rm -rf $www/doc/*
84 rm -rf $www/doc/*
85 cp -r manual.pdf manual/ $www/doc
85 cp -r manual.pdf manual/ $www/doc
86 cd $www
86 cd $www
87 ./update
87 ./update
88
88
89 # Alert package maintainers
89 # Alert package maintainers
90 echo "Alerting package maintainers..."
90 echo "Alerting package maintainers..."
91 #maintainers='fernando.perez@berkeley.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com willmaier@ml1.net'
91 #maintainers='fernando.perez@berkeley.edu ariciputi@users.sourceforge.net jack@xiph.org tretkowski@inittab.de dryice@hotpop.com willmaier@ml1.net'
92 maintainers='fernando.perez@berkeley.edu'
92 maintainers='fernando.perez@berkeley.edu'
93
93
94 for email in $maintainers
94 for email in $maintainers
95 do
95 do
96 echo "Emailing $email..."
96 echo "Emailing $email..."
97 mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
97 mail -s "[Package maintainer notice] A new IPython is out. Version: $version" \
98 $email < NEWS
98 $email < NEWS
99 done
99 done
100
100
101 echo "Done!"
101 echo "Done!"
General Comments 0
You need to be logged in to leave comments. Login now