##// END OF EJS Templates
Release IPython 0.8.4.
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 = '124'
25 revision = '128'
26 branch = 'ipython'
26 branch = 'ipython'
27
27
28 if branch == 'ipython':
28 if branch == 'ipython':
29 version = '0.8.4.bzr.r' + revision
29 version = '0.8.4.bzr.r' + revision
30 else:
30 else:
31 version = '0.8.4.bzr.r%s.%s' % (revision,branch)
31 version = '0.8.4.bzr.r%s.%s' % (revision,branch)
32
32
33 version = '0.8.4'
33 version = '0.8.4'
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,7652 +1,7654 b''
1 2008-05-31 *** Released version 0.8.4
2
1 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
3 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
2
4
3 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
5 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
4 disabled.
6 disabled.
5
7
6 * IPython/Shell.py (_select_shell): completely disable -twisted.
8 * IPython/Shell.py (_select_shell): completely disable -twisted.
7 This code is of dubious quality and normal users should not
9 This code is of dubious quality and normal users should not
8 encounter it until we can clarify things further, even under
10 encounter it until we can clarify things further, even under
9 win32. Since we need a quick emergency 0.8.4 release, it is now
11 win32. Since we need a quick emergency 0.8.4 release, it is now
10 disabled completely. Users who want to run it can use the
12 disabled completely. Users who want to run it can use the
11 following command (it's easy to put it in an alias or script):
13 following command (it's easy to put it in an alias or script):
12
14
13 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
15 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
14
16
15 2008-05-30 Ville Vainio <vivainio@gmail.com>
17 2008-05-30 Ville Vainio <vivainio@gmail.com>
16
18
17 * shell.py: disable -twisted on non-win32 platforms.
19 * shell.py: disable -twisted on non-win32 platforms.
18 import sets module on python 2.3.
20 import sets module on python 2.3.
19
21
20 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
22 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
21 is verified to work with python 2.3
23 is verified to work with python 2.3
22
24
23 * Release.py: update version to 0.8.4 for quick point fix
25 * Release.py: update version to 0.8.4 for quick point fix
24
26
25 2008-05-28 *** Released version 0.8.3
27 2008-05-28 *** Released version 0.8.3
26
28
27 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
29 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
28
30
29 * ../win32_manual_post_install.py (run): Fix the windows installer
31 * ../win32_manual_post_install.py (run): Fix the windows installer
30 so the links to the docs are correct.
32 so the links to the docs are correct.
31
33
32 * IPython/ultraTB.py: flush stderr after writing to it to fix
34 * IPython/ultraTB.py: flush stderr after writing to it to fix
33 problems with exception traceback ordering in some platforms.
35 problems with exception traceback ordering in some platforms.
34 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
36 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
35
37
36 * IPython/Magic.py (magic_cpaste): add stripping of continuation
38 * IPython/Magic.py (magic_cpaste): add stripping of continuation
37 prompts, feature requested by Stefan vdW.
39 prompts, feature requested by Stefan vdW.
38
40
39 * ../setup.py: updates to build and release tools in preparation
41 * ../setup.py: updates to build and release tools in preparation
40 for 0.8.3 release.
42 for 0.8.3 release.
41
43
42 2008-05-27 Ville Vainio <vivainio@gmail.com>
44 2008-05-27 Ville Vainio <vivainio@gmail.com>
43
45
44 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
46 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
45 for minimal environments (e.g. Maemo sdk python)
47 for minimal environments (e.g. Maemo sdk python)
46
48
47 * Magic.py: cpaste strips whitespace before >>> (allow pasting
49 * Magic.py: cpaste strips whitespace before >>> (allow pasting
48 doctests)
50 doctests)
49
51
50 * ipy_completers.py: cd completer now does recursive path expand
52 * ipy_completers.py: cd completer now does recursive path expand
51 (old behaviour is buggy on some readline versions)
53 (old behaviour is buggy on some readline versions)
52
54
53 2008-05-14 Ville Vainio <vivainio@gmail.com>
55 2008-05-14 Ville Vainio <vivainio@gmail.com>
54
56
55 * Extensions/ipy_greedycompleter.py:
57 * Extensions/ipy_greedycompleter.py:
56 New extension that enables a bit more "relaxed" tab
58 New extension that enables a bit more "relaxed" tab
57 completer that evaluates code without safety checks
59 completer that evaluates code without safety checks
58 (i.e. there can be side effects like function calls)
60 (i.e. there can be side effects like function calls)
59
61
60 2008-04-20 Ville Vainio <vivainio@gmail.com>
62 2008-04-20 Ville Vainio <vivainio@gmail.com>
61
63
62 * Extensions/ipy_lookfor.py: add %lookfor magic command
64 * Extensions/ipy_lookfor.py: add %lookfor magic command
63 (search docstrings for words) by Pauli Virtanen. Close #245.
65 (search docstrings for words) by Pauli Virtanen. Close #245.
64
66
65 * Extension/ipy_jot.py: %jot and %read magics, analogous
67 * Extension/ipy_jot.py: %jot and %read magics, analogous
66 to %store but you can specify some notes. Not read
68 to %store but you can specify some notes. Not read
67 in automatically on startup, you need %read.
69 in automatically on startup, you need %read.
68 Contributed by Yichun Wei.
70 Contributed by Yichun Wei.
69
71
70 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
72 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
71
73
72 * IPython/genutils.py (page): apply workaround to curses bug that
74 * IPython/genutils.py (page): apply workaround to curses bug that
73 can leave terminal corrupted after a call to initscr().
75 can leave terminal corrupted after a call to initscr().
74
76
75 2008-04-15 Ville Vainio <vivainio@gmail.com>
77 2008-04-15 Ville Vainio <vivainio@gmail.com>
76
78
77 * genutils.py: SList.grep supports 'field' argument
79 * genutils.py: SList.grep supports 'field' argument
78
80
79 * ipy_completers.py: module completer looks inside
81 * ipy_completers.py: module completer looks inside
80 .egg zip files (patch by mc). Close #196.
82 .egg zip files (patch by mc). Close #196.
81
83
82 2008-04-09 Ville Vainio <vivainio@gmail.com>
84 2008-04-09 Ville Vainio <vivainio@gmail.com>
83
85
84 * deep_reload.py: do not crash on from __future__ import
86 * deep_reload.py: do not crash on from __future__ import
85 absolute_import. Close #244.
87 absolute_import. Close #244.
86
88
87 2008-04-02 Ville Vainio <vivainio@gmail.com>
89 2008-04-02 Ville Vainio <vivainio@gmail.com>
88
90
89 * ipy_winpdb.py: New extension for winpdb integration. %wdb
91 * ipy_winpdb.py: New extension for winpdb integration. %wdb
90 test.py is winpdb equivalent of %run -d test.py. winpdb is a
92 test.py is winpdb equivalent of %run -d test.py. winpdb is a
91 crossplatform remote GUI debugger based on wxpython.
93 crossplatform remote GUI debugger based on wxpython.
92
94
93 2008-03-29 Ville Vainio <vivainio@gmail.com>
95 2008-03-29 Ville Vainio <vivainio@gmail.com>
94
96
95 * ipython.rst, do_sphinx.py: New documentation base, based on
97 * ipython.rst, do_sphinx.py: New documentation base, based on
96 reStucturedText and Sphinx (html/pdf generation). The old Lyx
98 reStucturedText and Sphinx (html/pdf generation). The old Lyx
97 based documentation will not be updated anymore.
99 based documentation will not be updated anymore.
98
100
99 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
101 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
100
102
101 2008-03-24 Ville Vainio <vivainio@gmail.com>
103 2008-03-24 Ville Vainio <vivainio@gmail.com>
102
104
103 * ipython.rst, do_sphinx.py: New documentation base, based on
105 * ipython.rst, do_sphinx.py: New documentation base, based on
104 reStucturedText and Sphinx (html/pdf generation). The old Lyx
106 reStucturedText and Sphinx (html/pdf generation). The old Lyx
105 based documentation will not be updated anymore.
107 based documentation will not be updated anymore.
106
108
107 ipython.rst has up to date documentation on matters that were not
109 ipython.rst has up to date documentation on matters that were not
108 documented at all, and it also removes various
110 documented at all, and it also removes various
109 misdocumented/deprecated features.
111 misdocumented/deprecated features.
110
112
111 2008-03-22 Ville Vainio <vivainio@gmail.com>
113 2008-03-22 Ville Vainio <vivainio@gmail.com>
112
114
113 * Shell.py: Merge mtexp branch:
115 * Shell.py: Merge mtexp branch:
114 https://code.launchpad.net/~ipython/ipython/mtexp
116 https://code.launchpad.net/~ipython/ipython/mtexp
115
117
116 Privides simpler and more robust MTInteractiveShell that won't
118 Privides simpler and more robust MTInteractiveShell that won't
117 deadlock, even when the worker thread (GUI) stops doing runcode()
119 deadlock, even when the worker thread (GUI) stops doing runcode()
118 regularly. r71.
120 regularly. r71.
119
121
120 2008-03-20 Ville Vainio <vivainio@gmail.com>
122 2008-03-20 Ville Vainio <vivainio@gmail.com>
121
123
122 * twshell.py: New shell that runs IPython code in Twisted reactor.
124 * twshell.py: New shell that runs IPython code in Twisted reactor.
123 Launch by doing ipython -twisted. r67.
125 Launch by doing ipython -twisted. r67.
124
126
125 2008-03-19 Ville Vainio <vivainio@gmail.com>
127 2008-03-19 Ville Vainio <vivainio@gmail.com>
126
128
127 * Magic.py: %rehashx works correctly when shadowed system commands
129 * Magic.py: %rehashx works correctly when shadowed system commands
128 have upper case characters (e.g. Print.exe). r64.
130 have upper case characters (e.g. Print.exe). r64.
129
131
130 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
132 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
131 knows options to commands, based on bzrtools. Uses bzrlib
133 knows options to commands, based on bzrtools. Uses bzrlib
132 directly. r66.
134 directly. r66.
133
135
134 2008-03-16 Ville Vainio <vivainio@gmail.com>
136 2008-03-16 Ville Vainio <vivainio@gmail.com>
135
137
136 * make_tarball.py: Fixed for bzr.
138 * make_tarball.py: Fixed for bzr.
137
139
138 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
140 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
139
141
140 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
142 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
141 by Erich Heine.
143 by Erich Heine.
142
144
143 2008-03-12 Ville Vainio <vivainio@gmail.com>
145 2008-03-12 Ville Vainio <vivainio@gmail.com>
144
146
145 * ipmaker.py: Force (reload?) import of ipy_user_conf and
147 * ipmaker.py: Force (reload?) import of ipy_user_conf and
146 ipy_profile_foo, so that embedded instances can be relaunched and
148 ipy_profile_foo, so that embedded instances can be relaunched and
147 configuration is still done. r50
149 configuration is still done. r50
148
150
149 * ipapi.py, test_embed.py: Allow specifying shell class in
151 * ipapi.py, test_embed.py: Allow specifying shell class in
150 launch_new_instance & make_new instance. Use this in
152 launch_new_instance & make_new instance. Use this in
151 test_embed.py. r51.
153 test_embed.py. r51.
152
154
153 test_embed.py is also a good and simple demo of embedding IPython.
155 test_embed.py is also a good and simple demo of embedding IPython.
154
156
155
157
156 2008-03-10 Ville Vainio <vivainio@gmail.com>
158 2008-03-10 Ville Vainio <vivainio@gmail.com>
157
159
158 * tool/update_revnum.py: Change to bzr revisioning scheme in
160 * tool/update_revnum.py: Change to bzr revisioning scheme in
159 revision numbers.
161 revision numbers.
160
162
161 * Shell.py: Threading improvements:
163 * Shell.py: Threading improvements:
162
164
163 In multithreaded shells, do not hang on macros and o.autoexec
165 In multithreaded shells, do not hang on macros and o.autoexec
164 commands (or anything executed with _ip.runlines()) anymore. Allow
166 commands (or anything executed with _ip.runlines()) anymore. Allow
165 recursive execution of IPython code in
167 recursive execution of IPython code in
166 MTInteractiveShell.runsource by checking if we are already in
168 MTInteractiveShell.runsource by checking if we are already in
167 worker thread, and execute code directly if we are. r48.
169 worker thread, and execute code directly if we are. r48.
168
170
169 MTInteractiveShell.runsource: execute code directly if worker
171 MTInteractiveShell.runsource: execute code directly if worker
170 thread is not running yet (this is the case in config files). r49.
172 thread is not running yet (this is the case in config files). r49.
171
173
172 2008-03-09 Ville Vainio <vivainio@gmail.com>
174 2008-03-09 Ville Vainio <vivainio@gmail.com>
173
175
174 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
176 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
175 argument of previous command in sh profile. Similar to bash '!$'.
177 argument of previous command in sh profile. Similar to bash '!$'.
176 LA(3) or $LA(3) stands for last argument of input history command
178 LA(3) or $LA(3) stands for last argument of input history command
177 3.
179 3.
178
180
179 * Shell.py: -pylab names don't clutter %whos listing.
181 * Shell.py: -pylab names don't clutter %whos listing.
180
182
181 2008-03-07 Ville Vainio <vivainio@gmail.com>
183 2008-03-07 Ville Vainio <vivainio@gmail.com>
182
184
183 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
185 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
184 autoreloading modules; try %autoreload and %aimport. Close #154.
186 autoreloading modules; try %autoreload and %aimport. Close #154.
185 Uses the new pre_runcode_hook.
187 Uses the new pre_runcode_hook.
186
188
187 2008-02-24 Ville Vainio <vivainio@gmail.com>
189 2008-02-24 Ville Vainio <vivainio@gmail.com>
188
190
189 * platutils_posix.py: freeze_term_title works
191 * platutils_posix.py: freeze_term_title works
190
192
191 2008-02-21 Ville Vainio <vivainio@gmail.com>
193 2008-02-21 Ville Vainio <vivainio@gmail.com>
192
194
193 * Magic.py: %quickref does not crash with empty docstring
195 * Magic.py: %quickref does not crash with empty docstring
194
196
195 2008-02-20 Ville Vainio <vivainio@gmail.com>
197 2008-02-20 Ville Vainio <vivainio@gmail.com>
196
198
197 * completer.py: do not treat [](){} as protectable chars anymore,
199 * completer.py: do not treat [](){} as protectable chars anymore,
198 close #233.
200 close #233.
199
201
200 * completer.py: do not treat [](){} as protectable chars anymore
202 * completer.py: do not treat [](){} as protectable chars anymore
201
203
202 * magic.py, test_cpaste.py: Allow different prefix for pasting
204 * magic.py, test_cpaste.py: Allow different prefix for pasting
203 from email
205 from email
204
206
205 2008-02-17 Ville Vainio <vivainio@gmail.com>
207 2008-02-17 Ville Vainio <vivainio@gmail.com>
206
208
207 * Switched over to Launchpad/bzr as primary VCS.
209 * Switched over to Launchpad/bzr as primary VCS.
208
210
209 2008-02-14 Ville Vainio <vivainio@gmail.com>
211 2008-02-14 Ville Vainio <vivainio@gmail.com>
210
212
211 * ipapi.py: _ip.runlines() is now much more liberal about
213 * ipapi.py: _ip.runlines() is now much more liberal about
212 indentation - it cleans up the scripts it gets
214 indentation - it cleans up the scripts it gets
213
215
214 2008-02-14 Ville Vainio <vivainio@gmail.com>
216 2008-02-14 Ville Vainio <vivainio@gmail.com>
215
217
216 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
218 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
217 Changes to it (later on) are too numerous to list in ChangeLog
219 Changes to it (later on) are too numerous to list in ChangeLog
218 until it stabilizes
220 until it stabilizes
219
221
220 2008-02-07 Darren Dale <darren.dale@cornell.edu>
222 2008-02-07 Darren Dale <darren.dale@cornell.edu>
221
223
222 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
224 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
223 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
225 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
224 interaction in the interpreter (like Tkinter does), but it seems to
226 interaction in the interpreter (like Tkinter does), but it seems to
225 partially interfere with the IPython implementation and exec_()
227 partially interfere with the IPython implementation and exec_()
226 still seems to block. So we disable the PyQt implementation and
228 still seems to block. So we disable the PyQt implementation and
227 stick with the IPython one for now.
229 stick with the IPython one for now.
228
230
229 2008-02-02 Walter Doerwald <walter@livinglogic.de>
231 2008-02-02 Walter Doerwald <walter@livinglogic.de>
230
232
231 * ipipe.py: A new ipipe table has been added: ialias produces all
233 * ipipe.py: A new ipipe table has been added: ialias produces all
232 entries from IPython's alias table.
234 entries from IPython's alias table.
233
235
234 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
236 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
235
237
236 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
238 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
237 of KBINT in threaded shells. After code provided by Marc in #212.
239 of KBINT in threaded shells. After code provided by Marc in #212.
238
240
239 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
241 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
240
242
241 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
243 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
242 that could occur due to a race condition in threaded shells.
244 that could occur due to a race condition in threaded shells.
243 Thanks to code provided by Marc, as #210.
245 Thanks to code provided by Marc, as #210.
244
246
245 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
247 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
246
248
247 * IPython/Magic.py (magic_doctest_mode): respect the user's
249 * IPython/Magic.py (magic_doctest_mode): respect the user's
248 settings for input separators rather than overriding them. After
250 settings for input separators rather than overriding them. After
249 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
251 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
250
252
251 * IPython/history.py (magic_history): Add support for declaring an
253 * IPython/history.py (magic_history): Add support for declaring an
252 output file directly from the history command.
254 output file directly from the history command.
253
255
254 2008-01-21 Walter Doerwald <walter@livinglogic.de>
256 2008-01-21 Walter Doerwald <walter@livinglogic.de>
255
257
256 * ipipe.py: Register ipipe's displayhooks via the generic function
258 * ipipe.py: Register ipipe's displayhooks via the generic function
257 generics.result_display() instead of using ipapi.set_hook().
259 generics.result_display() instead of using ipapi.set_hook().
258
260
259 2008-01-19 Walter Doerwald <walter@livinglogic.de>
261 2008-01-19 Walter Doerwald <walter@livinglogic.de>
260
262
261 * ibrowse.py, igrid.py, ipipe.py:
263 * ibrowse.py, igrid.py, ipipe.py:
262 The input object can now be passed to the constructor of the display classes.
264 The input object can now be passed to the constructor of the display classes.
263 This makes it possible to use them with objects that implement __or__.
265 This makes it possible to use them with objects that implement __or__.
264 Use this constructor in the displayhook instead of piping.
266 Use this constructor in the displayhook instead of piping.
265
267
266 * ipipe.py: Importing astyle.py is done as late as possible to
268 * ipipe.py: Importing astyle.py is done as late as possible to
267 avoid problems with circular imports.
269 avoid problems with circular imports.
268
270
269 2008-01-19 Ville Vainio <vivainio@gmail.com>
271 2008-01-19 Ville Vainio <vivainio@gmail.com>
270
272
271 * hooks.py, iplib.py: Added 'shell_hook' to customize how
273 * hooks.py, iplib.py: Added 'shell_hook' to customize how
272 IPython calls shell.
274 IPython calls shell.
273
275
274 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
276 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
275 how IPython pages text (%page, %pycat, %pdoc etc.)
277 how IPython pages text (%page, %pycat, %pdoc etc.)
276
278
277 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
279 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
278 and '%kill' to kill hanging processes that won't obey ctrl+C.
280 and '%kill' to kill hanging processes that won't obey ctrl+C.
279
281
280 2008-01-16 Ville Vainio <vivainio@gmail.com>
282 2008-01-16 Ville Vainio <vivainio@gmail.com>
281
283
282 * ipy_completers.py: pyw extension support for %run completer.
284 * ipy_completers.py: pyw extension support for %run completer.
283
285
284 2008-01-11 Ville Vainio <vivainio@gmail.com>
286 2008-01-11 Ville Vainio <vivainio@gmail.com>
285
287
286 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
288 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
287 of ipython commands to be run when IPython has started up
289 of ipython commands to be run when IPython has started up
288 (just before running the scripts and -c arg on command line).
290 (just before running the scripts and -c arg on command line).
289
291
290 * ipy_user_conf.py: Added an example on how to change term
292 * ipy_user_conf.py: Added an example on how to change term
291 colors in config file (through using autoexec).
293 colors in config file (through using autoexec).
292
294
293 * completer.py, test_completer.py: Ability to specify custom
295 * completer.py, test_completer.py: Ability to specify custom
294 get_endidx to replace readline.get_endidx. For emacs users.
296 get_endidx to replace readline.get_endidx. For emacs users.
295
297
296 2008-01-10 Ville Vainio <vivainio@gmail.com>
298 2008-01-10 Ville Vainio <vivainio@gmail.com>
297
299
298 * Prompts.py (set_p_str): do not crash on illegal prompt strings
300 * Prompts.py (set_p_str): do not crash on illegal prompt strings
299
301
300 2008-01-08 Ville Vainio <vivainio@gmail.com>
302 2008-01-08 Ville Vainio <vivainio@gmail.com>
301
303
302 * '%macro -r' (raw mode) is now default in sh profile.
304 * '%macro -r' (raw mode) is now default in sh profile.
303
305
304 2007-12-31 Ville Vainio <vivainio@gmail.com>
306 2007-12-31 Ville Vainio <vivainio@gmail.com>
305
307
306 * completer.py: custom completer matching is now case sensitive
308 * completer.py: custom completer matching is now case sensitive
307 (#207).
309 (#207).
308
310
309 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
311 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
310 an attempt to prevent occasional crashes.
312 an attempt to prevent occasional crashes.
311
313
312 * CrashHandler.py: Crash log dump now asks user to press enter
314 * CrashHandler.py: Crash log dump now asks user to press enter
313 before exiting.
315 before exiting.
314
316
315 * Store _ip in user_ns instead of __builtin__, enabling safer
317 * Store _ip in user_ns instead of __builtin__, enabling safer
316 coexistence of multiple IPython instances in the same python
318 coexistence of multiple IPython instances in the same python
317 interpreter (#197).
319 interpreter (#197).
318
320
319 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
321 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
320 switch to enable pydb in post-mortem debugging and %run -d.
322 switch to enable pydb in post-mortem debugging and %run -d.
321
323
322 2007-12-28 Ville Vainio <vivainio@gmail.com>
324 2007-12-28 Ville Vainio <vivainio@gmail.com>
323
325
324 * ipy_server.py: TCP socket server for "remote control" of an IPython
326 * ipy_server.py: TCP socket server for "remote control" of an IPython
325 instance.
327 instance.
326
328
327 * Debugger.py: Change to PSF license
329 * Debugger.py: Change to PSF license
328
330
329 * simplegeneric.py: Add license & author notes.
331 * simplegeneric.py: Add license & author notes.
330
332
331 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
333 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
332 to navigate file system with a custom completer. Run
334 to navigate file system with a custom completer. Run
333 ipy_fsops.test_pathobj() to play with it.
335 ipy_fsops.test_pathobj() to play with it.
334
336
335 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
337 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
336
338
337 * IPython/dtutils.py: Add utilities for interactively running
339 * IPython/dtutils.py: Add utilities for interactively running
338 doctests. Still needs work to more easily handle the namespace of
340 doctests. Still needs work to more easily handle the namespace of
339 the package one may be working on, but the basics are in place.
341 the package one may be working on, but the basics are in place.
340
342
341 2007-12-27 Ville Vainio <vivainio@gmail.com>
343 2007-12-27 Ville Vainio <vivainio@gmail.com>
342
344
343 * ipy_completers.py: Applied arno's patch to get proper list of
345 * ipy_completers.py: Applied arno's patch to get proper list of
344 packages in import completer. Closes #196.
346 packages in import completer. Closes #196.
345
347
346 2007-12-20 Ville Vainio <vivainio@gmail.com>
348 2007-12-20 Ville Vainio <vivainio@gmail.com>
347
349
348 * completer.py, generics.py(complete_object): Allow
350 * completer.py, generics.py(complete_object): Allow
349 custom complers based on python objects via simplegeneric.
351 custom complers based on python objects via simplegeneric.
350 See generics.py / my_demo_complete_object
352 See generics.py / my_demo_complete_object
351
353
352 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
354 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
353
355
354 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
356 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
355 behavior to prompt objects, useful for display hooks to adjust
357 behavior to prompt objects, useful for display hooks to adjust
356 themselves depending on whether prompts will be there or not.
358 themselves depending on whether prompts will be there or not.
357
359
358 2007-12-13 Ville Vainio <vivainio@gmail.com>
360 2007-12-13 Ville Vainio <vivainio@gmail.com>
359
361
360 * iplib.py(raw_input): unix readline does not allow unicode in
362 * iplib.py(raw_input): unix readline does not allow unicode in
361 history, encode to normal string. After patch by Tiago.
363 history, encode to normal string. After patch by Tiago.
362 Close #201
364 Close #201
363
365
364 2007-12-12 Ville Vainio <vivainio@gmail.com>
366 2007-12-12 Ville Vainio <vivainio@gmail.com>
365
367
366 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
368 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
367 current directory.
369 current directory.
368
370
369 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
371 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
370
372
371 * IPython/Shell.py (_select_shell): add support for controlling
373 * IPython/Shell.py (_select_shell): add support for controlling
372 the pylab threading mode directly at the command line, without
374 the pylab threading mode directly at the command line, without
373 having to modify MPL config files. Added unit tests for this
375 having to modify MPL config files. Added unit tests for this
374 feature, though manual/docs update is still pending, will do later.
376 feature, though manual/docs update is still pending, will do later.
375
377
376 2007-12-11 Ville Vainio <vivainio@gmail.com>
378 2007-12-11 Ville Vainio <vivainio@gmail.com>
377
379
378 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
380 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
379 use in scripts)
381 use in scripts)
380
382
381 2007-12-07 Ville Vainio <vivainio@gmail.com>
383 2007-12-07 Ville Vainio <vivainio@gmail.com>
382
384
383 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
385 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
384 anymore (to \#) - even if it is a comment char that is implicitly
386 anymore (to \#) - even if it is a comment char that is implicitly
385 escaped in some unix shells in interactive mode, it is ok to leave
387 escaped in some unix shells in interactive mode, it is ok to leave
386 it in IPython as such.
388 it in IPython as such.
387
389
388
390
389 2007-12-01 Robert Kern <robert.kern@gmail.com>
391 2007-12-01 Robert Kern <robert.kern@gmail.com>
390
392
391 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
393 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
392 inspect.findsource(). It can now find source lines inside zipped
394 inspect.findsource(). It can now find source lines inside zipped
393 packages.
395 packages.
394
396
395 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
397 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
396 in the frame's namespace before trusting the filename in the code object
398 in the frame's namespace before trusting the filename in the code object
397 which created the frame.
399 which created the frame.
398
400
399 2007-11-29 *** Released version 0.8.2
401 2007-11-29 *** Released version 0.8.2
400
402
401 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
403 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
402
404
403 * IPython/Logger.py (Logger.logstop): add a proper logstop()
405 * IPython/Logger.py (Logger.logstop): add a proper logstop()
404 method to fully stop the logger, along with a corresponding
406 method to fully stop the logger, along with a corresponding
405 %logstop magic for interactive use.
407 %logstop magic for interactive use.
406
408
407 * IPython/Extensions/ipy_host_completers.py: added new host
409 * IPython/Extensions/ipy_host_completers.py: added new host
408 completers functionality, contributed by Gael Pasgrimaud
410 completers functionality, contributed by Gael Pasgrimaud
409 <gawel-AT-afpy.org>.
411 <gawel-AT-afpy.org>.
410
412
411 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
413 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
412
414
413 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
415 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
414 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
416 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
415 options handling. Unicode fix in %whos (committed a while ago)
417 options handling. Unicode fix in %whos (committed a while ago)
416 was also contributed by Paul.
418 was also contributed by Paul.
417
419
418 2007-11-23 Darren Dale <darren.dale@cornell.edu>
420 2007-11-23 Darren Dale <darren.dale@cornell.edu>
419 * ipy_traits_completer.py: let traits_completer respect the user's
421 * ipy_traits_completer.py: let traits_completer respect the user's
420 readline_omit__names setting.
422 readline_omit__names setting.
421
423
422 2007-11-08 Ville Vainio <vivainio@gmail.com>
424 2007-11-08 Ville Vainio <vivainio@gmail.com>
423
425
424 * ipy_completers.py (import completer): assume 'xml' module exists.
426 * ipy_completers.py (import completer): assume 'xml' module exists.
425 Do not add every module twice anymore. Closes #196.
427 Do not add every module twice anymore. Closes #196.
426
428
427 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
429 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
428 completer that uses apt-cache to search for existing packages.
430 completer that uses apt-cache to search for existing packages.
429
431
430 2007-11-06 Ville Vainio <vivainio@gmail.com>
432 2007-11-06 Ville Vainio <vivainio@gmail.com>
431
433
432 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
434 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
433 true. Closes #194.
435 true. Closes #194.
434
436
435 2007-11-01 Brian Granger <ellisonbg@gmail.com>
437 2007-11-01 Brian Granger <ellisonbg@gmail.com>
436
438
437 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
439 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
438 working with OS X 10.5 libedit implementation of readline.
440 working with OS X 10.5 libedit implementation of readline.
439
441
440 2007-10-24 Ville Vainio <vivainio@gmail.com>
442 2007-10-24 Ville Vainio <vivainio@gmail.com>
441
443
442 * iplib.py(user_setup): To route around buggy installations where
444 * iplib.py(user_setup): To route around buggy installations where
443 UserConfig is not available, create a minimal _ipython.
445 UserConfig is not available, create a minimal _ipython.
444
446
445 * iplib.py: Unicode fixes from Jorgen.
447 * iplib.py: Unicode fixes from Jorgen.
446
448
447 * genutils.py: Slist now has new method 'fields()' for extraction of
449 * genutils.py: Slist now has new method 'fields()' for extraction of
448 whitespace-separated fields from line-oriented data.
450 whitespace-separated fields from line-oriented data.
449
451
450 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
452 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
451
453
452 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
454 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
453 when querying objects with no __class__ attribute (such as
455 when querying objects with no __class__ attribute (such as
454 f2py-generated modules).
456 f2py-generated modules).
455
457
456 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
458 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
457
459
458 * IPython/Magic.py (magic_time): track compilation time and report
460 * IPython/Magic.py (magic_time): track compilation time and report
459 it if longer than 0.1s (fix done to %time and %timeit). After a
461 it if longer than 0.1s (fix done to %time and %timeit). After a
460 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
462 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
461
463
462 2007-09-18 Ville Vainio <vivainio@gmail.com>
464 2007-09-18 Ville Vainio <vivainio@gmail.com>
463
465
464 * genutils.py(make_quoted_expr): Do not use Itpl, it does
466 * genutils.py(make_quoted_expr): Do not use Itpl, it does
465 not support unicode at the moment. Fixes (many) magic calls with
467 not support unicode at the moment. Fixes (many) magic calls with
466 special characters.
468 special characters.
467
469
468 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
470 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
469
471
470 * IPython/genutils.py (doctest_reload): expose the doctest
472 * IPython/genutils.py (doctest_reload): expose the doctest
471 reloader to the user so that people can easily reset doctest while
473 reloader to the user so that people can easily reset doctest while
472 using it interactively. Fixes a problem reported by Jorgen.
474 using it interactively. Fixes a problem reported by Jorgen.
473
475
474 * IPython/iplib.py (InteractiveShell.__init__): protect the
476 * IPython/iplib.py (InteractiveShell.__init__): protect the
475 FakeModule instances used for __main__ in %run calls from
477 FakeModule instances used for __main__ in %run calls from
476 deletion, so that user code defined in them isn't left with
478 deletion, so that user code defined in them isn't left with
477 dangling references due to the Python module deletion machinery.
479 dangling references due to the Python module deletion machinery.
478 This should fix the problems reported by Darren.
480 This should fix the problems reported by Darren.
479
481
480 2007-09-10 Darren Dale <dd55@cornell.edu>
482 2007-09-10 Darren Dale <dd55@cornell.edu>
481
483
482 * Cleanup of IPShellQt and IPShellQt4
484 * Cleanup of IPShellQt and IPShellQt4
483
485
484 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
486 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
485
487
486 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
488 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
487 doctest support.
489 doctest support.
488
490
489 * IPython/iplib.py (safe_execfile): minor docstring improvements.
491 * IPython/iplib.py (safe_execfile): minor docstring improvements.
490
492
491 2007-09-08 Ville Vainio <vivainio@gmail.com>
493 2007-09-08 Ville Vainio <vivainio@gmail.com>
492
494
493 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
495 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
494 directory, not the target directory.
496 directory, not the target directory.
495
497
496 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
498 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
497 exception that won't print the tracebacks. Switched many magics to
499 exception that won't print the tracebacks. Switched many magics to
498 raise them on error situations, also GetoptError is not printed
500 raise them on error situations, also GetoptError is not printed
499 anymore.
501 anymore.
500
502
501 2007-09-07 Ville Vainio <vivainio@gmail.com>
503 2007-09-07 Ville Vainio <vivainio@gmail.com>
502
504
503 * iplib.py: do not auto-alias "dir", it screws up other dir auto
505 * iplib.py: do not auto-alias "dir", it screws up other dir auto
504 aliases.
506 aliases.
505
507
506 * genutils.py: SList.grep() implemented.
508 * genutils.py: SList.grep() implemented.
507
509
508 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
510 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
509 for easy "out of the box" setup of several common editors, so that
511 for easy "out of the box" setup of several common editors, so that
510 e.g. '%edit os.path.isfile' will jump to the correct line
512 e.g. '%edit os.path.isfile' will jump to the correct line
511 automatically. Contributions for command lines of your favourite
513 automatically. Contributions for command lines of your favourite
512 editors welcome.
514 editors welcome.
513
515
514 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
516 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
515
517
516 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
518 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
517 preventing source display in certain cases. In reality I think
519 preventing source display in certain cases. In reality I think
518 the problem is with Ubuntu's Python build, but this change works
520 the problem is with Ubuntu's Python build, but this change works
519 around the issue in some cases (not in all, unfortunately). I'd
521 around the issue in some cases (not in all, unfortunately). I'd
520 filed a Python bug on this with more details, but in the change of
522 filed a Python bug on this with more details, but in the change of
521 bug trackers it seems to have been lost.
523 bug trackers it seems to have been lost.
522
524
523 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
525 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
524 not the same, it's not self-documenting, doesn't allow range
526 not the same, it's not self-documenting, doesn't allow range
525 selection, and sorts alphabetically instead of numerically.
527 selection, and sorts alphabetically instead of numerically.
526 (magic_r): restore %r. No, "up + enter. One char magic" is not
528 (magic_r): restore %r. No, "up + enter. One char magic" is not
527 the same thing, since %r takes parameters to allow fast retrieval
529 the same thing, since %r takes parameters to allow fast retrieval
528 of old commands. I've received emails from users who use this a
530 of old commands. I've received emails from users who use this a
529 LOT, so it stays.
531 LOT, so it stays.
530 (magic_automagic): restore %automagic. "use _ip.option.automagic"
532 (magic_automagic): restore %automagic. "use _ip.option.automagic"
531 is not a valid replacement b/c it doesn't provide an complete
533 is not a valid replacement b/c it doesn't provide an complete
532 explanation (which the automagic docstring does).
534 explanation (which the automagic docstring does).
533 (magic_autocall): restore %autocall, with improved docstring.
535 (magic_autocall): restore %autocall, with improved docstring.
534 Same argument as for others, "use _ip.options.autocall" is not a
536 Same argument as for others, "use _ip.options.autocall" is not a
535 valid replacement.
537 valid replacement.
536 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
538 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
537 tutorials and online docs.
539 tutorials and online docs.
538
540
539 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
541 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
540
542
541 * IPython/usage.py (quick_reference): mention magics in quickref,
543 * IPython/usage.py (quick_reference): mention magics in quickref,
542 modified main banner to mention %quickref.
544 modified main banner to mention %quickref.
543
545
544 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
546 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
545
547
546 2007-09-06 Ville Vainio <vivainio@gmail.com>
548 2007-09-06 Ville Vainio <vivainio@gmail.com>
547
549
548 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
550 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
549 Callable aliases now pass the _ip as first arg. This breaks
551 Callable aliases now pass the _ip as first arg. This breaks
550 compatibility with earlier 0.8.2.svn series! (though they should
552 compatibility with earlier 0.8.2.svn series! (though they should
551 not have been in use yet outside these few extensions)
553 not have been in use yet outside these few extensions)
552
554
553 2007-09-05 Ville Vainio <vivainio@gmail.com>
555 2007-09-05 Ville Vainio <vivainio@gmail.com>
554
556
555 * external/mglob.py: expand('dirname') => ['dirname'], instead
557 * external/mglob.py: expand('dirname') => ['dirname'], instead
556 of ['dirname/foo','dirname/bar', ...].
558 of ['dirname/foo','dirname/bar', ...].
557
559
558 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
560 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
559 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
561 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
560 is useful for others as well).
562 is useful for others as well).
561
563
562 * iplib.py: on callable aliases (as opposed to old style aliases),
564 * iplib.py: on callable aliases (as opposed to old style aliases),
563 do var_expand() immediately, and use make_quoted_expr instead
565 do var_expand() immediately, and use make_quoted_expr instead
564 of hardcoded r"""
566 of hardcoded r"""
565
567
566 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
568 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
567 if not available load ipy_fsops.py for cp, mv, etc. replacements
569 if not available load ipy_fsops.py for cp, mv, etc. replacements
568
570
569 * OInspect.py, ipy_which.py: improve %which and obj? for callable
571 * OInspect.py, ipy_which.py: improve %which and obj? for callable
570 aliases
572 aliases
571
573
572 2007-09-04 Ville Vainio <vivainio@gmail.com>
574 2007-09-04 Ville Vainio <vivainio@gmail.com>
573
575
574 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
576 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
575 Relicensed under BSD with the authors approval.
577 Relicensed under BSD with the authors approval.
576
578
577 * ipmaker.py, usage.py: Remove %magic from default banner, improve
579 * ipmaker.py, usage.py: Remove %magic from default banner, improve
578 %quickref
580 %quickref
579
581
580 2007-09-03 Ville Vainio <vivainio@gmail.com>
582 2007-09-03 Ville Vainio <vivainio@gmail.com>
581
583
582 * Magic.py: %time now passes expression through prefilter,
584 * Magic.py: %time now passes expression through prefilter,
583 allowing IPython syntax.
585 allowing IPython syntax.
584
586
585 2007-09-01 Ville Vainio <vivainio@gmail.com>
587 2007-09-01 Ville Vainio <vivainio@gmail.com>
586
588
587 * ipmaker.py: Always show full traceback when newstyle config fails
589 * ipmaker.py: Always show full traceback when newstyle config fails
588
590
589 2007-08-27 Ville Vainio <vivainio@gmail.com>
591 2007-08-27 Ville Vainio <vivainio@gmail.com>
590
592
591 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
593 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
592
594
593 2007-08-26 Ville Vainio <vivainio@gmail.com>
595 2007-08-26 Ville Vainio <vivainio@gmail.com>
594
596
595 * ipmaker.py: Command line args have the highest priority again
597 * ipmaker.py: Command line args have the highest priority again
596
598
597 * iplib.py, ipmaker.py: -i command line argument now behaves as in
599 * iplib.py, ipmaker.py: -i command line argument now behaves as in
598 normal python, i.e. leaves the IPython session running after -c
600 normal python, i.e. leaves the IPython session running after -c
599 command or running a batch file from command line.
601 command or running a batch file from command line.
600
602
601 2007-08-22 Ville Vainio <vivainio@gmail.com>
603 2007-08-22 Ville Vainio <vivainio@gmail.com>
602
604
603 * iplib.py: no extra empty (last) line in raw hist w/ multiline
605 * iplib.py: no extra empty (last) line in raw hist w/ multiline
604 statements
606 statements
605
607
606 * logger.py: Fix bug where blank lines in history were not
608 * logger.py: Fix bug where blank lines in history were not
607 added until AFTER adding the current line; translated and raw
609 added until AFTER adding the current line; translated and raw
608 history should finally be in sync with prompt now.
610 history should finally be in sync with prompt now.
609
611
610 * ipy_completers.py: quick_completer now makes it easy to create
612 * ipy_completers.py: quick_completer now makes it easy to create
611 trivial custom completers
613 trivial custom completers
612
614
613 * clearcmd.py: shadow history compression & erasing, fixed input hist
615 * clearcmd.py: shadow history compression & erasing, fixed input hist
614 clearing.
616 clearing.
615
617
616 * envpersist.py, history.py: %env (sh profile only), %hist completers
618 * envpersist.py, history.py: %env (sh profile only), %hist completers
617
619
618 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
620 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
619 term title now include the drive letter, and always use / instead of
621 term title now include the drive letter, and always use / instead of
620 os.sep (as per recommended approach for win32 ipython in general).
622 os.sep (as per recommended approach for win32 ipython in general).
621
623
622 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
624 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
623 plain python scripts from ipykit command line by running
625 plain python scripts from ipykit command line by running
624 "py myscript.py", even w/o installed python.
626 "py myscript.py", even w/o installed python.
625
627
626 2007-08-21 Ville Vainio <vivainio@gmail.com>
628 2007-08-21 Ville Vainio <vivainio@gmail.com>
627
629
628 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
630 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
629 (for backwards compatibility)
631 (for backwards compatibility)
630
632
631 * history.py: switch back to %hist -t from %hist -r as default.
633 * history.py: switch back to %hist -t from %hist -r as default.
632 At least until raw history is fixed for good.
634 At least until raw history is fixed for good.
633
635
634 2007-08-20 Ville Vainio <vivainio@gmail.com>
636 2007-08-20 Ville Vainio <vivainio@gmail.com>
635
637
636 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
638 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
637 locate alias redeclarations etc. Also, avoid handling
639 locate alias redeclarations etc. Also, avoid handling
638 _ip.IP.alias_table directly, prefer using _ip.defalias.
640 _ip.IP.alias_table directly, prefer using _ip.defalias.
639
641
640
642
641 2007-08-15 Ville Vainio <vivainio@gmail.com>
643 2007-08-15 Ville Vainio <vivainio@gmail.com>
642
644
643 * prefilter.py: ! is now always served first
645 * prefilter.py: ! is now always served first
644
646
645 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
647 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
646
648
647 * IPython/iplib.py (safe_execfile): fix the SystemExit
649 * IPython/iplib.py (safe_execfile): fix the SystemExit
648 auto-suppression code to work in Python2.4 (the internal structure
650 auto-suppression code to work in Python2.4 (the internal structure
649 of that exception changed and I'd only tested the code with 2.5).
651 of that exception changed and I'd only tested the code with 2.5).
650 Bug reported by a SciPy attendee.
652 Bug reported by a SciPy attendee.
651
653
652 2007-08-13 Ville Vainio <vivainio@gmail.com>
654 2007-08-13 Ville Vainio <vivainio@gmail.com>
653
655
654 * prefilter.py: reverted !c:/bin/foo fix, made % in
656 * prefilter.py: reverted !c:/bin/foo fix, made % in
655 multiline specials work again
657 multiline specials work again
656
658
657 2007-08-13 Ville Vainio <vivainio@gmail.com>
659 2007-08-13 Ville Vainio <vivainio@gmail.com>
658
660
659 * prefilter.py: Take more care to special-case !, so that
661 * prefilter.py: Take more care to special-case !, so that
660 !c:/bin/foo.exe works.
662 !c:/bin/foo.exe works.
661
663
662 * setup.py: if we are building eggs, strip all docs and
664 * setup.py: if we are building eggs, strip all docs and
663 examples (it doesn't make sense to bytecompile examples,
665 examples (it doesn't make sense to bytecompile examples,
664 and docs would be in an awkward place anyway).
666 and docs would be in an awkward place anyway).
665
667
666 * Ryan Krauss' patch fixes start menu shortcuts when IPython
668 * Ryan Krauss' patch fixes start menu shortcuts when IPython
667 is installed into a directory that has spaces in the name.
669 is installed into a directory that has spaces in the name.
668
670
669 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
671 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
670
672
671 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
673 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
672 doctest profile and %doctest_mode, so they actually generate the
674 doctest profile and %doctest_mode, so they actually generate the
673 blank lines needed by doctest to separate individual tests.
675 blank lines needed by doctest to separate individual tests.
674
676
675 * IPython/iplib.py (safe_execfile): modify so that running code
677 * IPython/iplib.py (safe_execfile): modify so that running code
676 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
678 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
677 doesn't get a printed traceback. Any other value in sys.exit(),
679 doesn't get a printed traceback. Any other value in sys.exit(),
678 including the empty call, still generates a traceback. This
680 including the empty call, still generates a traceback. This
679 enables use of %run without having to pass '-e' for codes that
681 enables use of %run without having to pass '-e' for codes that
680 correctly set the exit status flag.
682 correctly set the exit status flag.
681
683
682 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
684 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
683
685
684 * IPython/iplib.py (InteractiveShell.post_config_initialization):
686 * IPython/iplib.py (InteractiveShell.post_config_initialization):
685 fix problems with doctests failing when run inside IPython due to
687 fix problems with doctests failing when run inside IPython due to
686 IPython's modifications of sys.displayhook.
688 IPython's modifications of sys.displayhook.
687
689
688 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
690 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
689
691
690 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
692 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
691 a string with names.
693 a string with names.
692
694
693 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
695 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
694
696
695 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
697 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
696 magic to toggle on/off the doctest pasting support without having
698 magic to toggle on/off the doctest pasting support without having
697 to leave a session to switch to a separate profile.
699 to leave a session to switch to a separate profile.
698
700
699 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
701 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
700
702
701 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
703 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
702 introduce a blank line between inputs, to conform to doctest
704 introduce a blank line between inputs, to conform to doctest
703 requirements.
705 requirements.
704
706
705 * IPython/OInspect.py (Inspector.pinfo): fix another part where
707 * IPython/OInspect.py (Inspector.pinfo): fix another part where
706 auto-generated docstrings for new-style classes were showing up.
708 auto-generated docstrings for new-style classes were showing up.
707
709
708 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
710 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
709
711
710 * api_changes: Add new file to track backward-incompatible
712 * api_changes: Add new file to track backward-incompatible
711 user-visible changes.
713 user-visible changes.
712
714
713 2007-08-06 Ville Vainio <vivainio@gmail.com>
715 2007-08-06 Ville Vainio <vivainio@gmail.com>
714
716
715 * ipmaker.py: fix bug where user_config_ns didn't exist at all
717 * ipmaker.py: fix bug where user_config_ns didn't exist at all
716 before all the config files were handled.
718 before all the config files were handled.
717
719
718 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
720 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
719
721
720 * IPython/irunner.py (RunnerFactory): Add new factory class for
722 * IPython/irunner.py (RunnerFactory): Add new factory class for
721 creating reusable runners based on filenames.
723 creating reusable runners based on filenames.
722
724
723 * IPython/Extensions/ipy_profile_doctest.py: New profile for
725 * IPython/Extensions/ipy_profile_doctest.py: New profile for
724 doctest support. It sets prompts/exceptions as similar to
726 doctest support. It sets prompts/exceptions as similar to
725 standard Python as possible, so that ipython sessions in this
727 standard Python as possible, so that ipython sessions in this
726 profile can be easily pasted as doctests with minimal
728 profile can be easily pasted as doctests with minimal
727 modifications. It also enables pasting of doctests from external
729 modifications. It also enables pasting of doctests from external
728 sources (even if they have leading whitespace), so that you can
730 sources (even if they have leading whitespace), so that you can
729 rerun doctests from existing sources.
731 rerun doctests from existing sources.
730
732
731 * IPython/iplib.py (_prefilter): fix a buglet where after entering
733 * IPython/iplib.py (_prefilter): fix a buglet where after entering
732 some whitespace, the prompt would become a continuation prompt
734 some whitespace, the prompt would become a continuation prompt
733 with no way of exiting it other than Ctrl-C. This fix brings us
735 with no way of exiting it other than Ctrl-C. This fix brings us
734 into conformity with how the default python prompt works.
736 into conformity with how the default python prompt works.
735
737
736 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
738 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
737 Add support for pasting not only lines that start with '>>>', but
739 Add support for pasting not only lines that start with '>>>', but
738 also with ' >>>'. That is, arbitrary whitespace can now precede
740 also with ' >>>'. That is, arbitrary whitespace can now precede
739 the prompts. This makes the system useful for pasting doctests
741 the prompts. This makes the system useful for pasting doctests
740 from docstrings back into a normal session.
742 from docstrings back into a normal session.
741
743
742 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
744 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
743
745
744 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
746 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
745 r1357, which had killed multiple invocations of an embedded
747 r1357, which had killed multiple invocations of an embedded
746 ipython (this means that example-embed has been broken for over 1
748 ipython (this means that example-embed has been broken for over 1
747 year!!!). Rather than possibly breaking the batch stuff for which
749 year!!!). Rather than possibly breaking the batch stuff for which
748 the code in iplib.py/interact was introduced, I worked around the
750 the code in iplib.py/interact was introduced, I worked around the
749 problem in the embedding class in Shell.py. We really need a
751 problem in the embedding class in Shell.py. We really need a
750 bloody test suite for this code, I'm sick of finding stuff that
752 bloody test suite for this code, I'm sick of finding stuff that
751 used to work breaking left and right every time I use an old
753 used to work breaking left and right every time I use an old
752 feature I hadn't touched in a few months.
754 feature I hadn't touched in a few months.
753 (kill_embedded): Add a new magic that only shows up in embedded
755 (kill_embedded): Add a new magic that only shows up in embedded
754 mode, to allow users to permanently deactivate an embedded instance.
756 mode, to allow users to permanently deactivate an embedded instance.
755
757
756 2007-08-01 Ville Vainio <vivainio@gmail.com>
758 2007-08-01 Ville Vainio <vivainio@gmail.com>
757
759
758 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
760 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
759 history gets out of sync on runlines (e.g. when running macros).
761 history gets out of sync on runlines (e.g. when running macros).
760
762
761 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
763 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
762
764
763 * IPython/Magic.py (magic_colors): fix win32-related error message
765 * IPython/Magic.py (magic_colors): fix win32-related error message
764 that could appear under *nix when readline was missing. Patch by
766 that could appear under *nix when readline was missing. Patch by
765 Scott Jackson, closes #175.
767 Scott Jackson, closes #175.
766
768
767 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
769 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
768
770
769 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
771 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
770 completer that it traits-aware, so that traits objects don't show
772 completer that it traits-aware, so that traits objects don't show
771 all of their internal attributes all the time.
773 all of their internal attributes all the time.
772
774
773 * IPython/genutils.py (dir2): moved this code from inside
775 * IPython/genutils.py (dir2): moved this code from inside
774 completer.py to expose it publicly, so I could use it in the
776 completer.py to expose it publicly, so I could use it in the
775 wildcards bugfix.
777 wildcards bugfix.
776
778
777 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
779 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
778 Stefan with Traits.
780 Stefan with Traits.
779
781
780 * IPython/completer.py (Completer.attr_matches): change internal
782 * IPython/completer.py (Completer.attr_matches): change internal
781 var name from 'object' to 'obj', since 'object' is now a builtin
783 var name from 'object' to 'obj', since 'object' is now a builtin
782 and this can lead to weird bugs if reusing this code elsewhere.
784 and this can lead to weird bugs if reusing this code elsewhere.
783
785
784 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
786 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
785
787
786 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
788 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
787 'foo?' and update the code to prevent printing of default
789 'foo?' and update the code to prevent printing of default
788 docstrings that started appearing after I added support for
790 docstrings that started appearing after I added support for
789 new-style classes. The approach I'm using isn't ideal (I just
791 new-style classes. The approach I'm using isn't ideal (I just
790 special-case those strings) but I'm not sure how to more robustly
792 special-case those strings) but I'm not sure how to more robustly
791 differentiate between truly user-written strings and Python's
793 differentiate between truly user-written strings and Python's
792 automatic ones.
794 automatic ones.
793
795
794 2007-07-09 Ville Vainio <vivainio@gmail.com>
796 2007-07-09 Ville Vainio <vivainio@gmail.com>
795
797
796 * completer.py: Applied Matthew Neeley's patch:
798 * completer.py: Applied Matthew Neeley's patch:
797 Dynamic attributes from trait_names and _getAttributeNames are added
799 Dynamic attributes from trait_names and _getAttributeNames are added
798 to the list of tab completions, but when this happens, the attribute
800 to the list of tab completions, but when this happens, the attribute
799 list is turned into a set, so the attributes are unordered when
801 list is turned into a set, so the attributes are unordered when
800 printed, which makes it hard to find the right completion. This patch
802 printed, which makes it hard to find the right completion. This patch
801 turns this set back into a list and sort it.
803 turns this set back into a list and sort it.
802
804
803 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
805 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
804
806
805 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
807 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
806 classes in various inspector functions.
808 classes in various inspector functions.
807
809
808 2007-06-28 Ville Vainio <vivainio@gmail.com>
810 2007-06-28 Ville Vainio <vivainio@gmail.com>
809
811
810 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
812 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
811 Implement "shadow" namespace, and callable aliases that reside there.
813 Implement "shadow" namespace, and callable aliases that reside there.
812 Use them by:
814 Use them by:
813
815
814 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
816 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
815
817
816 foo hello world
818 foo hello world
817 (gets translated to:)
819 (gets translated to:)
818 _sh.foo(r"""hello world""")
820 _sh.foo(r"""hello world""")
819
821
820 In practice, this kind of alias can take the role of a magic function
822 In practice, this kind of alias can take the role of a magic function
821
823
822 * New generic inspect_object, called on obj? and obj??
824 * New generic inspect_object, called on obj? and obj??
823
825
824 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
826 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
825
827
826 * IPython/ultraTB.py (findsource): fix a problem with
828 * IPython/ultraTB.py (findsource): fix a problem with
827 inspect.getfile that can cause crashes during traceback construction.
829 inspect.getfile that can cause crashes during traceback construction.
828
830
829 2007-06-14 Ville Vainio <vivainio@gmail.com>
831 2007-06-14 Ville Vainio <vivainio@gmail.com>
830
832
831 * iplib.py (handle_auto): Try to use ascii for printing "--->"
833 * iplib.py (handle_auto): Try to use ascii for printing "--->"
832 autocall rewrite indication, becausesometimes unicode fails to print
834 autocall rewrite indication, becausesometimes unicode fails to print
833 properly (and you get ' - - - '). Use plain uncoloured ---> for
835 properly (and you get ' - - - '). Use plain uncoloured ---> for
834 unicode.
836 unicode.
835
837
836 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
838 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
837
839
838 . pickleshare 'hash' commands (hget, hset, hcompress,
840 . pickleshare 'hash' commands (hget, hset, hcompress,
839 hdict) for efficient shadow history storage.
841 hdict) for efficient shadow history storage.
840
842
841 2007-06-13 Ville Vainio <vivainio@gmail.com>
843 2007-06-13 Ville Vainio <vivainio@gmail.com>
842
844
843 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
845 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
844 Added kw arg 'interactive', tell whether vars should be visible
846 Added kw arg 'interactive', tell whether vars should be visible
845 with %whos.
847 with %whos.
846
848
847 2007-06-11 Ville Vainio <vivainio@gmail.com>
849 2007-06-11 Ville Vainio <vivainio@gmail.com>
848
850
849 * pspersistence.py, Magic.py, iplib.py: directory history now saved
851 * pspersistence.py, Magic.py, iplib.py: directory history now saved
850 to db
852 to db
851
853
852 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
854 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
853 Also, it exits IPython immediately after evaluating the command (just like
855 Also, it exits IPython immediately after evaluating the command (just like
854 std python)
856 std python)
855
857
856 2007-06-05 Walter Doerwald <walter@livinglogic.de>
858 2007-06-05 Walter Doerwald <walter@livinglogic.de>
857
859
858 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
860 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
859 Python string and captures the output. (Idea and original patch by
861 Python string and captures the output. (Idea and original patch by
860 Stefan van der Walt)
862 Stefan van der Walt)
861
863
862 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
864 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
863
865
864 * IPython/ultraTB.py (VerboseTB.text): update printing of
866 * IPython/ultraTB.py (VerboseTB.text): update printing of
865 exception types for Python 2.5 (now all exceptions in the stdlib
867 exception types for Python 2.5 (now all exceptions in the stdlib
866 are new-style classes).
868 are new-style classes).
867
869
868 2007-05-31 Walter Doerwald <walter@livinglogic.de>
870 2007-05-31 Walter Doerwald <walter@livinglogic.de>
869
871
870 * IPython/Extensions/igrid.py: Add new commands refresh and
872 * IPython/Extensions/igrid.py: Add new commands refresh and
871 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
873 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
872 the iterator once (refresh) or after every x seconds (refresh_timer).
874 the iterator once (refresh) or after every x seconds (refresh_timer).
873 Add a working implementation of "searchexpression", where the text
875 Add a working implementation of "searchexpression", where the text
874 entered is not the text to search for, but an expression that must
876 entered is not the text to search for, but an expression that must
875 be true. Added display of shortcuts to the menu. Added commands "pickinput"
877 be true. Added display of shortcuts to the menu. Added commands "pickinput"
876 and "pickinputattr" that put the object or attribute under the cursor
878 and "pickinputattr" that put the object or attribute under the cursor
877 in the input line. Split the statusbar to be able to display the currently
879 in the input line. Split the statusbar to be able to display the currently
878 active refresh interval. (Patch by Nik Tautenhahn)
880 active refresh interval. (Patch by Nik Tautenhahn)
879
881
880 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
882 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
881
883
882 * fixing set_term_title to use ctypes as default
884 * fixing set_term_title to use ctypes as default
883
885
884 * fixing set_term_title fallback to work when curent dir
886 * fixing set_term_title fallback to work when curent dir
885 is on a windows network share
887 is on a windows network share
886
888
887 2007-05-28 Ville Vainio <vivainio@gmail.com>
889 2007-05-28 Ville Vainio <vivainio@gmail.com>
888
890
889 * %cpaste: strip + with > from left (diffs).
891 * %cpaste: strip + with > from left (diffs).
890
892
891 * iplib.py: Fix crash when readline not installed
893 * iplib.py: Fix crash when readline not installed
892
894
893 2007-05-26 Ville Vainio <vivainio@gmail.com>
895 2007-05-26 Ville Vainio <vivainio@gmail.com>
894
896
895 * generics.py: introduce easy to extend result_display generic
897 * generics.py: introduce easy to extend result_display generic
896 function (using simplegeneric.py).
898 function (using simplegeneric.py).
897
899
898 * Fixed the append functionality of %set.
900 * Fixed the append functionality of %set.
899
901
900 2007-05-25 Ville Vainio <vivainio@gmail.com>
902 2007-05-25 Ville Vainio <vivainio@gmail.com>
901
903
902 * New magic: %rep (fetch / run old commands from history)
904 * New magic: %rep (fetch / run old commands from history)
903
905
904 * New extension: mglob (%mglob magic), for powerful glob / find /filter
906 * New extension: mglob (%mglob magic), for powerful glob / find /filter
905 like functionality
907 like functionality
906
908
907 % maghistory.py: %hist -g PATTERM greps the history for pattern
909 % maghistory.py: %hist -g PATTERM greps the history for pattern
908
910
909 2007-05-24 Walter Doerwald <walter@livinglogic.de>
911 2007-05-24 Walter Doerwald <walter@livinglogic.de>
910
912
911 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
913 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
912 browse the IPython input history
914 browse the IPython input history
913
915
914 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
916 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
915 (mapped to "i") can be used to put the object under the curser in the input
917 (mapped to "i") can be used to put the object under the curser in the input
916 line. pickinputattr (mapped to "I") does the same for the attribute under
918 line. pickinputattr (mapped to "I") does the same for the attribute under
917 the cursor.
919 the cursor.
918
920
919 2007-05-24 Ville Vainio <vivainio@gmail.com>
921 2007-05-24 Ville Vainio <vivainio@gmail.com>
920
922
921 * Grand magic cleansing (changeset [2380]):
923 * Grand magic cleansing (changeset [2380]):
922
924
923 * Introduce ipy_legacy.py where the following magics were
925 * Introduce ipy_legacy.py where the following magics were
924 moved:
926 moved:
925
927
926 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
928 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
927
929
928 If you need them, either use default profile or "import ipy_legacy"
930 If you need them, either use default profile or "import ipy_legacy"
929 in your ipy_user_conf.py
931 in your ipy_user_conf.py
930
932
931 * Move sh and scipy profile to Extensions from UserConfig. this implies
933 * Move sh and scipy profile to Extensions from UserConfig. this implies
932 you should not edit them, but you don't need to run %upgrade when
934 you should not edit them, but you don't need to run %upgrade when
933 upgrading IPython anymore.
935 upgrading IPython anymore.
934
936
935 * %hist/%history now operates in "raw" mode by default. To get the old
937 * %hist/%history now operates in "raw" mode by default. To get the old
936 behaviour, run '%hist -n' (native mode).
938 behaviour, run '%hist -n' (native mode).
937
939
938 * split ipy_stock_completers.py to ipy_stock_completers.py and
940 * split ipy_stock_completers.py to ipy_stock_completers.py and
939 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
941 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
940 installed as default.
942 installed as default.
941
943
942 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
944 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
943 handling.
945 handling.
944
946
945 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
947 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
946 input if readline is available.
948 input if readline is available.
947
949
948 2007-05-23 Ville Vainio <vivainio@gmail.com>
950 2007-05-23 Ville Vainio <vivainio@gmail.com>
949
951
950 * macro.py: %store uses __getstate__ properly
952 * macro.py: %store uses __getstate__ properly
951
953
952 * exesetup.py: added new setup script for creating
954 * exesetup.py: added new setup script for creating
953 standalone IPython executables with py2exe (i.e.
955 standalone IPython executables with py2exe (i.e.
954 no python installation required).
956 no python installation required).
955
957
956 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
958 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
957 its place.
959 its place.
958
960
959 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
961 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
960
962
961 2007-05-21 Ville Vainio <vivainio@gmail.com>
963 2007-05-21 Ville Vainio <vivainio@gmail.com>
962
964
963 * platutil_win32.py (set_term_title): handle
965 * platutil_win32.py (set_term_title): handle
964 failure of 'title' system call properly.
966 failure of 'title' system call properly.
965
967
966 2007-05-17 Walter Doerwald <walter@livinglogic.de>
968 2007-05-17 Walter Doerwald <walter@livinglogic.de>
967
969
968 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
970 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
969 (Bug detected by Paul Mueller).
971 (Bug detected by Paul Mueller).
970
972
971 2007-05-16 Ville Vainio <vivainio@gmail.com>
973 2007-05-16 Ville Vainio <vivainio@gmail.com>
972
974
973 * ipy_profile_sci.py, ipython_win_post_install.py: Create
975 * ipy_profile_sci.py, ipython_win_post_install.py: Create
974 new "sci" profile, effectively a modern version of the old
976 new "sci" profile, effectively a modern version of the old
975 "scipy" profile (which is now slated for deprecation).
977 "scipy" profile (which is now slated for deprecation).
976
978
977 2007-05-15 Ville Vainio <vivainio@gmail.com>
979 2007-05-15 Ville Vainio <vivainio@gmail.com>
978
980
979 * pycolorize.py, pycolor.1: Paul Mueller's patches that
981 * pycolorize.py, pycolor.1: Paul Mueller's patches that
980 make pycolorize read input from stdin when run without arguments.
982 make pycolorize read input from stdin when run without arguments.
981
983
982 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
984 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
983
985
984 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
986 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
985 it in sh profile (instead of ipy_system_conf.py).
987 it in sh profile (instead of ipy_system_conf.py).
986
988
987 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
989 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
988 aliases are now lower case on windows (MyCommand.exe => mycommand).
990 aliases are now lower case on windows (MyCommand.exe => mycommand).
989
991
990 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
992 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
991 Macros are now callable objects that inherit from ipapi.IPyAutocall,
993 Macros are now callable objects that inherit from ipapi.IPyAutocall,
992 i.e. get autocalled regardless of system autocall setting.
994 i.e. get autocalled regardless of system autocall setting.
993
995
994 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
996 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
995
997
996 * IPython/rlineimpl.py: check for clear_history in readline and
998 * IPython/rlineimpl.py: check for clear_history in readline and
997 make it a dummy no-op if not available. This function isn't
999 make it a dummy no-op if not available. This function isn't
998 guaranteed to be in the API and appeared in Python 2.4, so we need
1000 guaranteed to be in the API and appeared in Python 2.4, so we need
999 to check it ourselves. Also, clean up this file quite a bit.
1001 to check it ourselves. Also, clean up this file quite a bit.
1000
1002
1001 * ipython.1: update man page and full manual with information
1003 * ipython.1: update man page and full manual with information
1002 about threads (remove outdated warning). Closes #151.
1004 about threads (remove outdated warning). Closes #151.
1003
1005
1004 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1006 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1005
1007
1006 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1008 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1007 in trunk (note that this made it into the 0.8.1 release already,
1009 in trunk (note that this made it into the 0.8.1 release already,
1008 but the changelogs didn't get coordinated). Many thanks to Gael
1010 but the changelogs didn't get coordinated). Many thanks to Gael
1009 Varoquaux <gael.varoquaux-AT-normalesup.org>
1011 Varoquaux <gael.varoquaux-AT-normalesup.org>
1010
1012
1011 2007-05-09 *** Released version 0.8.1
1013 2007-05-09 *** Released version 0.8.1
1012
1014
1013 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1015 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1014
1016
1015 * IPython/Extensions/igrid.py: Incorporate html help into
1017 * IPython/Extensions/igrid.py: Incorporate html help into
1016 the module, so we don't have to search for the file.
1018 the module, so we don't have to search for the file.
1017
1019
1018 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1020 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1019
1021
1020 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1022 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1021
1023
1022 2007-04-30 Ville Vainio <vivainio@gmail.com>
1024 2007-04-30 Ville Vainio <vivainio@gmail.com>
1023
1025
1024 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1026 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1025 user has illegal (non-ascii) home directory name
1027 user has illegal (non-ascii) home directory name
1026
1028
1027 2007-04-27 Ville Vainio <vivainio@gmail.com>
1029 2007-04-27 Ville Vainio <vivainio@gmail.com>
1028
1030
1029 * platutils_win32.py: implement set_term_title for windows
1031 * platutils_win32.py: implement set_term_title for windows
1030
1032
1031 * Update version number
1033 * Update version number
1032
1034
1033 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1035 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1034
1036
1035 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1037 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1036
1038
1037 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1039 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1038 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1040 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1039 bug discovered by Ville).
1041 bug discovered by Ville).
1040
1042
1041 2007-04-26 Ville Vainio <vivainio@gmail.com>
1043 2007-04-26 Ville Vainio <vivainio@gmail.com>
1042
1044
1043 * Extensions/ipy_completers.py: Olivier's module completer now
1045 * Extensions/ipy_completers.py: Olivier's module completer now
1044 saves the list of root modules if it takes > 4 secs on the first run.
1046 saves the list of root modules if it takes > 4 secs on the first run.
1045
1047
1046 * Magic.py (%rehashx): %rehashx now clears the completer cache
1048 * Magic.py (%rehashx): %rehashx now clears the completer cache
1047
1049
1048
1050
1049 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1051 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1050
1052
1051 * ipython.el: fix incorrect color scheme, reported by Stefan.
1053 * ipython.el: fix incorrect color scheme, reported by Stefan.
1052 Closes #149.
1054 Closes #149.
1053
1055
1054 * IPython/PyColorize.py (Parser.format2): fix state-handling
1056 * IPython/PyColorize.py (Parser.format2): fix state-handling
1055 logic. I still don't like how that code handles state, but at
1057 logic. I still don't like how that code handles state, but at
1056 least now it should be correct, if inelegant. Closes #146.
1058 least now it should be correct, if inelegant. Closes #146.
1057
1059
1058 2007-04-25 Ville Vainio <vivainio@gmail.com>
1060 2007-04-25 Ville Vainio <vivainio@gmail.com>
1059
1061
1060 * Extensions/ipy_which.py: added extension for %which magic, works
1062 * Extensions/ipy_which.py: added extension for %which magic, works
1061 a lot like unix 'which' but also finds and expands aliases, and
1063 a lot like unix 'which' but also finds and expands aliases, and
1062 allows wildcards.
1064 allows wildcards.
1063
1065
1064 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1066 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1065 as opposed to returning nothing.
1067 as opposed to returning nothing.
1066
1068
1067 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1069 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1068 ipy_stock_completers on default profile, do import on sh profile.
1070 ipy_stock_completers on default profile, do import on sh profile.
1069
1071
1070 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1072 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1071
1073
1072 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1074 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1073 like ipython.py foo.py which raised a IndexError.
1075 like ipython.py foo.py which raised a IndexError.
1074
1076
1075 2007-04-21 Ville Vainio <vivainio@gmail.com>
1077 2007-04-21 Ville Vainio <vivainio@gmail.com>
1076
1078
1077 * Extensions/ipy_extutil.py: added extension to manage other ipython
1079 * Extensions/ipy_extutil.py: added extension to manage other ipython
1078 extensions. Now only supports 'ls' == list extensions.
1080 extensions. Now only supports 'ls' == list extensions.
1079
1081
1080 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1082 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1081
1083
1082 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1084 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1083 would prevent use of the exception system outside of a running
1085 would prevent use of the exception system outside of a running
1084 IPython instance.
1086 IPython instance.
1085
1087
1086 2007-04-20 Ville Vainio <vivainio@gmail.com>
1088 2007-04-20 Ville Vainio <vivainio@gmail.com>
1087
1089
1088 * Extensions/ipy_render.py: added extension for easy
1090 * Extensions/ipy_render.py: added extension for easy
1089 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1091 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1090 'Iptl' template notation,
1092 'Iptl' template notation,
1091
1093
1092 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1094 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1093 safer & faster 'import' completer.
1095 safer & faster 'import' completer.
1094
1096
1095 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1097 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1096 and _ip.defalias(name, command).
1098 and _ip.defalias(name, command).
1097
1099
1098 * Extensions/ipy_exportdb.py: New extension for exporting all the
1100 * Extensions/ipy_exportdb.py: New extension for exporting all the
1099 %store'd data in a portable format (normal ipapi calls like
1101 %store'd data in a portable format (normal ipapi calls like
1100 defmacro() etc.)
1102 defmacro() etc.)
1101
1103
1102 2007-04-19 Ville Vainio <vivainio@gmail.com>
1104 2007-04-19 Ville Vainio <vivainio@gmail.com>
1103
1105
1104 * upgrade_dir.py: skip junk files like *.pyc
1106 * upgrade_dir.py: skip junk files like *.pyc
1105
1107
1106 * Release.py: version number to 0.8.1
1108 * Release.py: version number to 0.8.1
1107
1109
1108 2007-04-18 Ville Vainio <vivainio@gmail.com>
1110 2007-04-18 Ville Vainio <vivainio@gmail.com>
1109
1111
1110 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1112 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1111 and later on win32.
1113 and later on win32.
1112
1114
1113 2007-04-16 Ville Vainio <vivainio@gmail.com>
1115 2007-04-16 Ville Vainio <vivainio@gmail.com>
1114
1116
1115 * iplib.py (showtraceback): Do not crash when running w/o readline.
1117 * iplib.py (showtraceback): Do not crash when running w/o readline.
1116
1118
1117 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1119 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1118
1120
1119 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1121 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1120 sorted (case sensitive with files and dirs mixed).
1122 sorted (case sensitive with files and dirs mixed).
1121
1123
1122 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1124 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1123
1125
1124 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1126 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1125
1127
1126 2007-04-10 *** Released version 0.8.0
1128 2007-04-10 *** Released version 0.8.0
1127
1129
1128 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1129
1131
1130 * Tag 0.8.0 for release.
1132 * Tag 0.8.0 for release.
1131
1133
1132 * IPython/iplib.py (reloadhist): add API function to cleanly
1134 * IPython/iplib.py (reloadhist): add API function to cleanly
1133 reload the readline history, which was growing inappropriately on
1135 reload the readline history, which was growing inappropriately on
1134 every %run call.
1136 every %run call.
1135
1137
1136 * win32_manual_post_install.py (run): apply last part of Nicolas
1138 * win32_manual_post_install.py (run): apply last part of Nicolas
1137 Pernetty's patch (I'd accidentally applied it in a different
1139 Pernetty's patch (I'd accidentally applied it in a different
1138 directory and this particular file didn't get patched).
1140 directory and this particular file didn't get patched).
1139
1141
1140 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1142 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1141
1143
1142 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1144 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1143 find the main thread id and use the proper API call. Thanks to
1145 find the main thread id and use the proper API call. Thanks to
1144 Stefan for the fix.
1146 Stefan for the fix.
1145
1147
1146 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1148 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1147 unit tests to reflect fixed ticket #52, and add more tests sent by
1149 unit tests to reflect fixed ticket #52, and add more tests sent by
1148 him.
1150 him.
1149
1151
1150 * IPython/iplib.py (raw_input): restore the readline completer
1152 * IPython/iplib.py (raw_input): restore the readline completer
1151 state on every input, in case third-party code messed it up.
1153 state on every input, in case third-party code messed it up.
1152 (_prefilter): revert recent addition of early-escape checks which
1154 (_prefilter): revert recent addition of early-escape checks which
1153 prevent many valid alias calls from working.
1155 prevent many valid alias calls from working.
1154
1156
1155 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1157 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1156 flag for sigint handler so we don't run a full signal() call on
1158 flag for sigint handler so we don't run a full signal() call on
1157 each runcode access.
1159 each runcode access.
1158
1160
1159 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1161 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1160 message.
1162 message.
1161
1163
1162 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1164 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1163
1165
1164 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1166 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1165 asynchronous exceptions working, i.e., Ctrl-C can actually
1167 asynchronous exceptions working, i.e., Ctrl-C can actually
1166 interrupt long-running code in the multithreaded shells.
1168 interrupt long-running code in the multithreaded shells.
1167
1169
1168 This is using Tomer Filiba's great ctypes-based trick:
1170 This is using Tomer Filiba's great ctypes-based trick:
1169 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1171 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1170 this in the past, but hadn't been able to make it work before. So
1172 this in the past, but hadn't been able to make it work before. So
1171 far it looks like it's actually running, but this needs more
1173 far it looks like it's actually running, but this needs more
1172 testing. If it really works, I'll be *very* happy, and we'll owe
1174 testing. If it really works, I'll be *very* happy, and we'll owe
1173 a huge thank you to Tomer. My current implementation is ugly,
1175 a huge thank you to Tomer. My current implementation is ugly,
1174 hackish and uses nasty globals, but I don't want to try and clean
1176 hackish and uses nasty globals, but I don't want to try and clean
1175 anything up until we know if it actually works.
1177 anything up until we know if it actually works.
1176
1178
1177 NOTE: this feature needs ctypes to work. ctypes is included in
1179 NOTE: this feature needs ctypes to work. ctypes is included in
1178 Python2.5, but 2.4 users will need to manually install it. This
1180 Python2.5, but 2.4 users will need to manually install it. This
1179 feature makes multi-threaded shells so much more usable that it's
1181 feature makes multi-threaded shells so much more usable that it's
1180 a minor price to pay (ctypes is very easy to install, already a
1182 a minor price to pay (ctypes is very easy to install, already a
1181 requirement for win32 and available in major linux distros).
1183 requirement for win32 and available in major linux distros).
1182
1184
1183 2007-04-04 Ville Vainio <vivainio@gmail.com>
1185 2007-04-04 Ville Vainio <vivainio@gmail.com>
1184
1186
1185 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1187 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1186 Moved implementations of 'bundled' completers to ipy_completers.py,
1188 Moved implementations of 'bundled' completers to ipy_completers.py,
1187 they are only enabled in ipy_stock_completers.py.
1189 they are only enabled in ipy_stock_completers.py.
1188
1190
1189 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1191 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1190
1192
1191 * IPython/PyColorize.py (Parser.format2): Fix identation of
1193 * IPython/PyColorize.py (Parser.format2): Fix identation of
1192 colorzied output and return early if color scheme is NoColor, to
1194 colorzied output and return early if color scheme is NoColor, to
1193 avoid unnecessary and expensive tokenization. Closes #131.
1195 avoid unnecessary and expensive tokenization. Closes #131.
1194
1196
1195 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1197 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1196
1198
1197 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1199 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1198 has a critical bug (a missing import that makes post-mortem not
1200 has a critical bug (a missing import that makes post-mortem not
1199 work at all). Unfortunately as of this time, this is the version
1201 work at all). Unfortunately as of this time, this is the version
1200 shipped with Ubuntu Edgy, so quite a few people have this one. I
1202 shipped with Ubuntu Edgy, so quite a few people have this one. I
1201 hope Edgy will update to a more recent package.
1203 hope Edgy will update to a more recent package.
1202
1204
1203 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1204
1206
1205 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1207 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1206 set by Stefan (only the first part had been applied before).
1208 set by Stefan (only the first part had been applied before).
1207
1209
1208 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1210 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1209 remove usage of the dangerous pkgutil.walk_packages(). See
1211 remove usage of the dangerous pkgutil.walk_packages(). See
1210 details in comments left in the code.
1212 details in comments left in the code.
1211
1213
1212 * IPython/Magic.py (magic_whos): add support for numpy arrays
1214 * IPython/Magic.py (magic_whos): add support for numpy arrays
1213 similar to what we had for Numeric.
1215 similar to what we had for Numeric.
1214
1216
1215 * IPython/completer.py (IPCompleter.complete): extend the
1217 * IPython/completer.py (IPCompleter.complete): extend the
1216 complete() call API to support completions by other mechanisms
1218 complete() call API to support completions by other mechanisms
1217 than readline. Closes #109.
1219 than readline. Closes #109.
1218
1220
1219 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1221 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1220 protect against a bug in Python's execfile(). Closes #123.
1222 protect against a bug in Python's execfile(). Closes #123.
1221
1223
1222 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1224 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1223
1225
1224 * IPython/iplib.py (split_user_input): ensure that when splitting
1226 * IPython/iplib.py (split_user_input): ensure that when splitting
1225 user input, the part that can be treated as a python name is pure
1227 user input, the part that can be treated as a python name is pure
1226 ascii (Python identifiers MUST be pure ascii). Part of the
1228 ascii (Python identifiers MUST be pure ascii). Part of the
1227 ongoing Unicode support work.
1229 ongoing Unicode support work.
1228
1230
1229 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1231 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1230 actual prompt number, without any coloring. This allows users to
1232 actual prompt number, without any coloring. This allows users to
1231 produce numbered prompts with their own colors. Added after a
1233 produce numbered prompts with their own colors. Added after a
1232 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1234 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1233
1235
1234 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1236 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1235
1237
1236 * IPython/Extensions/igrid.py: Map the return key
1238 * IPython/Extensions/igrid.py: Map the return key
1237 to enter() and shift-return to enterattr().
1239 to enter() and shift-return to enterattr().
1238
1240
1239 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1241 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1240
1242
1241 * IPython/Magic.py (magic_psearch): add unicode support by
1243 * IPython/Magic.py (magic_psearch): add unicode support by
1242 encoding to ascii the input, since this routine also only deals
1244 encoding to ascii the input, since this routine also only deals
1243 with valid Python names. Fixes a bug reported by Stefan.
1245 with valid Python names. Fixes a bug reported by Stefan.
1244
1246
1245 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1247 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1248
1247 * IPython/Magic.py (_inspect): convert unicode input into ascii
1249 * IPython/Magic.py (_inspect): convert unicode input into ascii
1248 before trying to evaluate it as a Python identifier. This fixes a
1250 before trying to evaluate it as a Python identifier. This fixes a
1249 problem that the new unicode support had introduced when analyzing
1251 problem that the new unicode support had introduced when analyzing
1250 long definition lines for functions.
1252 long definition lines for functions.
1251
1253
1252 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1254 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1253
1255
1254 * IPython/Extensions/igrid.py: Fix picking. Using
1256 * IPython/Extensions/igrid.py: Fix picking. Using
1255 igrid with wxPython 2.6 and -wthread should work now.
1257 igrid with wxPython 2.6 and -wthread should work now.
1256 igrid.display() simply tries to create a frame without
1258 igrid.display() simply tries to create a frame without
1257 an application. Only if this fails an application is created.
1259 an application. Only if this fails an application is created.
1258
1260
1259 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1261 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1260
1262
1261 * IPython/Extensions/path.py: Updated to version 2.2.
1263 * IPython/Extensions/path.py: Updated to version 2.2.
1262
1264
1263 2007-03-23 Ville Vainio <vivainio@gmail.com>
1265 2007-03-23 Ville Vainio <vivainio@gmail.com>
1264
1266
1265 * iplib.py: recursive alias expansion now works better, so that
1267 * iplib.py: recursive alias expansion now works better, so that
1266 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1268 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1267 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1269 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1268
1270
1269 * Extensions/ipy_gnuglobal.py added, provides %global magic
1271 * Extensions/ipy_gnuglobal.py added, provides %global magic
1270 for users of http://www.gnu.org/software/global
1272 for users of http://www.gnu.org/software/global
1271
1273
1272 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1274 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1273 Closes #52. Patch by Stefan van der Walt.
1275 Closes #52. Patch by Stefan van der Walt.
1274
1276
1275 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1277 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1276
1278
1277 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1279 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1278 respect the __file__ attribute when using %run. Thanks to a bug
1280 respect the __file__ attribute when using %run. Thanks to a bug
1279 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1281 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1280
1282
1281 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1283 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1282
1284
1283 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1285 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1284 input. Patch sent by Stefan.
1286 input. Patch sent by Stefan.
1285
1287
1286 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1288 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1287 * IPython/Extensions/ipy_stock_completer.py
1289 * IPython/Extensions/ipy_stock_completer.py
1288 shlex_split, fix bug in shlex_split. len function
1290 shlex_split, fix bug in shlex_split. len function
1289 call was missing an if statement. Caused shlex_split to
1291 call was missing an if statement. Caused shlex_split to
1290 sometimes return "" as last element.
1292 sometimes return "" as last element.
1291
1293
1292 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1293
1295
1294 * IPython/completer.py
1296 * IPython/completer.py
1295 (IPCompleter.file_matches.single_dir_expand): fix a problem
1297 (IPCompleter.file_matches.single_dir_expand): fix a problem
1296 reported by Stefan, where directories containign a single subdir
1298 reported by Stefan, where directories containign a single subdir
1297 would be completed too early.
1299 would be completed too early.
1298
1300
1299 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1301 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1300 pylab import *' when -pylab is given be optional. A new flag,
1302 pylab import *' when -pylab is given be optional. A new flag,
1301 pylab_import_all controls this behavior, the default is True for
1303 pylab_import_all controls this behavior, the default is True for
1302 backwards compatibility.
1304 backwards compatibility.
1303
1305
1304 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1306 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1305 modified) R. Bernstein's patch for fully syntax highlighted
1307 modified) R. Bernstein's patch for fully syntax highlighted
1306 tracebacks. The functionality is also available under ultraTB for
1308 tracebacks. The functionality is also available under ultraTB for
1307 non-ipython users (someone using ultraTB but outside an ipython
1309 non-ipython users (someone using ultraTB but outside an ipython
1308 session). They can select the color scheme by setting the
1310 session). They can select the color scheme by setting the
1309 module-level global DEFAULT_SCHEME. The highlight functionality
1311 module-level global DEFAULT_SCHEME. The highlight functionality
1310 also works when debugging.
1312 also works when debugging.
1311
1313
1312 * IPython/genutils.py (IOStream.close): small patch by
1314 * IPython/genutils.py (IOStream.close): small patch by
1313 R. Bernstein for improved pydb support.
1315 R. Bernstein for improved pydb support.
1314
1316
1315 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1317 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1316 DaveS <davls@telus.net> to improve support of debugging under
1318 DaveS <davls@telus.net> to improve support of debugging under
1317 NTEmacs, including improved pydb behavior.
1319 NTEmacs, including improved pydb behavior.
1318
1320
1319 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1321 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1320 Python 2.5, where the stats object API changed a little. Thanks
1322 Python 2.5, where the stats object API changed a little. Thanks
1321 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1323 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1322
1324
1323 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1325 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1324 Pernetty's patch to improve support for (X)Emacs under Win32.
1326 Pernetty's patch to improve support for (X)Emacs under Win32.
1325
1327
1326 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1328 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1327
1329
1328 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1330 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1329 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1331 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1330 a report by Nik Tautenhahn.
1332 a report by Nik Tautenhahn.
1331
1333
1332 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1334 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1333
1335
1334 * setup.py: Add the igrid help files to the list of data files
1336 * setup.py: Add the igrid help files to the list of data files
1335 to be installed alongside igrid.
1337 to be installed alongside igrid.
1336 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1338 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1337 Show the input object of the igrid browser as the window tile.
1339 Show the input object of the igrid browser as the window tile.
1338 Show the object the cursor is on in the statusbar.
1340 Show the object the cursor is on in the statusbar.
1339
1341
1340 2007-03-15 Ville Vainio <vivainio@gmail.com>
1342 2007-03-15 Ville Vainio <vivainio@gmail.com>
1341
1343
1342 * Extensions/ipy_stock_completers.py: Fixed exception
1344 * Extensions/ipy_stock_completers.py: Fixed exception
1343 on mismatching quotes in %run completer. Patch by
1345 on mismatching quotes in %run completer. Patch by
1344 Jorgen Stenarson. Closes #127.
1346 Jorgen Stenarson. Closes #127.
1345
1347
1346 2007-03-14 Ville Vainio <vivainio@gmail.com>
1348 2007-03-14 Ville Vainio <vivainio@gmail.com>
1347
1349
1348 * Extensions/ext_rehashdir.py: Do not do auto_alias
1350 * Extensions/ext_rehashdir.py: Do not do auto_alias
1349 in %rehashdir, it clobbers %store'd aliases.
1351 in %rehashdir, it clobbers %store'd aliases.
1350
1352
1351 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1353 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1352 (beefed up %env) imported for sh profile.
1354 (beefed up %env) imported for sh profile.
1353
1355
1354 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1356 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1355
1357
1356 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1358 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1357 as the default browser.
1359 as the default browser.
1358 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1360 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1359 As igrid displays all attributes it ever encounters, fetch() (which has
1361 As igrid displays all attributes it ever encounters, fetch() (which has
1360 been renamed to _fetch()) doesn't have to recalculate the display attributes
1362 been renamed to _fetch()) doesn't have to recalculate the display attributes
1361 every time a new item is fetched. This should speed up scrolling.
1363 every time a new item is fetched. This should speed up scrolling.
1362
1364
1363 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1365 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1364
1366
1365 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1367 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1366 Schmolck's recently reported tab-completion bug (my previous one
1368 Schmolck's recently reported tab-completion bug (my previous one
1367 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1369 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1368
1370
1369 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1371 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1370
1372
1371 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1373 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1372 Close help window if exiting igrid.
1374 Close help window if exiting igrid.
1373
1375
1374 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1376 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1375
1377
1376 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1378 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1377 before calling functions from readline.
1379 before calling functions from readline.
1378
1380
1379 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1381 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1380
1382
1381 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1383 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1382 igrid is a wxPython-based display object for ipipe. If your system has
1384 igrid is a wxPython-based display object for ipipe. If your system has
1383 wx installed igrid will be the default display. Without wx ipipe falls
1385 wx installed igrid will be the default display. Without wx ipipe falls
1384 back to ibrowse (which needs curses). If no curses is installed ipipe
1386 back to ibrowse (which needs curses). If no curses is installed ipipe
1385 falls back to idump.
1387 falls back to idump.
1386
1388
1387 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1389 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1388
1390
1389 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1391 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1390 my changes from yesterday, they introduced bugs. Will reactivate
1392 my changes from yesterday, they introduced bugs. Will reactivate
1391 once I get a correct solution, which will be much easier thanks to
1393 once I get a correct solution, which will be much easier thanks to
1392 Dan Milstein's new prefilter test suite.
1394 Dan Milstein's new prefilter test suite.
1393
1395
1394 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1396 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1395
1397
1396 * IPython/iplib.py (split_user_input): fix input splitting so we
1398 * IPython/iplib.py (split_user_input): fix input splitting so we
1397 don't attempt attribute accesses on things that can't possibly be
1399 don't attempt attribute accesses on things that can't possibly be
1398 valid Python attributes. After a bug report by Alex Schmolck.
1400 valid Python attributes. After a bug report by Alex Schmolck.
1399 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1401 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1400 %magic with explicit % prefix.
1402 %magic with explicit % prefix.
1401
1403
1402 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1404 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1403
1405
1404 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1406 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1405 avoid a DeprecationWarning from GTK.
1407 avoid a DeprecationWarning from GTK.
1406
1408
1407 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1409 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1408
1410
1409 * IPython/genutils.py (clock): I modified clock() to return total
1411 * IPython/genutils.py (clock): I modified clock() to return total
1410 time, user+system. This is a more commonly needed metric. I also
1412 time, user+system. This is a more commonly needed metric. I also
1411 introduced the new clocku/clocks to get only user/system time if
1413 introduced the new clocku/clocks to get only user/system time if
1412 one wants those instead.
1414 one wants those instead.
1413
1415
1414 ***WARNING: API CHANGE*** clock() used to return only user time,
1416 ***WARNING: API CHANGE*** clock() used to return only user time,
1415 so if you want exactly the same results as before, use clocku
1417 so if you want exactly the same results as before, use clocku
1416 instead.
1418 instead.
1417
1419
1418 2007-02-22 Ville Vainio <vivainio@gmail.com>
1420 2007-02-22 Ville Vainio <vivainio@gmail.com>
1419
1421
1420 * IPython/Extensions/ipy_p4.py: Extension for improved
1422 * IPython/Extensions/ipy_p4.py: Extension for improved
1421 p4 (perforce version control system) experience.
1423 p4 (perforce version control system) experience.
1422 Adds %p4 magic with p4 command completion and
1424 Adds %p4 magic with p4 command completion and
1423 automatic -G argument (marshall output as python dict)
1425 automatic -G argument (marshall output as python dict)
1424
1426
1425 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1427 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1428
1427 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1429 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1428 stop marks.
1430 stop marks.
1429 (ClearingMixin): a simple mixin to easily make a Demo class clear
1431 (ClearingMixin): a simple mixin to easily make a Demo class clear
1430 the screen in between blocks and have empty marquees. The
1432 the screen in between blocks and have empty marquees. The
1431 ClearDemo and ClearIPDemo classes that use it are included.
1433 ClearDemo and ClearIPDemo classes that use it are included.
1432
1434
1433 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1434
1436
1435 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1437 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1436 protect against exceptions at Python shutdown time. Patch
1438 protect against exceptions at Python shutdown time. Patch
1437 sumbmitted to upstream.
1439 sumbmitted to upstream.
1438
1440
1439 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1441 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1440
1442
1441 * IPython/Extensions/ibrowse.py: If entering the first object level
1443 * IPython/Extensions/ibrowse.py: If entering the first object level
1442 (i.e. the object for which the browser has been started) fails,
1444 (i.e. the object for which the browser has been started) fails,
1443 now the error is raised directly (aborting the browser) instead of
1445 now the error is raised directly (aborting the browser) instead of
1444 running into an empty levels list later.
1446 running into an empty levels list later.
1445
1447
1446 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1448 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1447
1449
1448 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1450 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1449 for the noitem object.
1451 for the noitem object.
1450
1452
1451 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1453 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1452
1454
1453 * IPython/completer.py (Completer.attr_matches): Fix small
1455 * IPython/completer.py (Completer.attr_matches): Fix small
1454 tab-completion bug with Enthought Traits objects with units.
1456 tab-completion bug with Enthought Traits objects with units.
1455 Thanks to a bug report by Tom Denniston
1457 Thanks to a bug report by Tom Denniston
1456 <tom.denniston-AT-alum.dartmouth.org>.
1458 <tom.denniston-AT-alum.dartmouth.org>.
1457
1459
1458 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1460 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1459
1461
1460 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1462 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1461 bug where only .ipy or .py would be completed. Once the first
1463 bug where only .ipy or .py would be completed. Once the first
1462 argument to %run has been given, all completions are valid because
1464 argument to %run has been given, all completions are valid because
1463 they are the arguments to the script, which may well be non-python
1465 they are the arguments to the script, which may well be non-python
1464 filenames.
1466 filenames.
1465
1467
1466 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1468 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1467 to irunner to allow it to correctly support real doctesting of
1469 to irunner to allow it to correctly support real doctesting of
1468 out-of-process ipython code.
1470 out-of-process ipython code.
1469
1471
1470 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1472 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1471 title an option (-noterm_title) because it completely breaks
1473 title an option (-noterm_title) because it completely breaks
1472 doctesting.
1474 doctesting.
1473
1475
1474 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1476 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1475
1477
1476 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1478 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1477
1479
1478 * IPython/irunner.py (main): fix small bug where extensions were
1480 * IPython/irunner.py (main): fix small bug where extensions were
1479 not being correctly recognized.
1481 not being correctly recognized.
1480
1482
1481 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1483 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1482
1484
1483 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1485 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1484 a string containing a single line yields the string itself as the
1486 a string containing a single line yields the string itself as the
1485 only item.
1487 only item.
1486
1488
1487 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1489 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1488 object if it's the same as the one on the last level (This avoids
1490 object if it's the same as the one on the last level (This avoids
1489 infinite recursion for one line strings).
1491 infinite recursion for one line strings).
1490
1492
1491 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1493 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1492
1494
1493 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1495 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1494 all output streams before printing tracebacks. This ensures that
1496 all output streams before printing tracebacks. This ensures that
1495 user output doesn't end up interleaved with traceback output.
1497 user output doesn't end up interleaved with traceback output.
1496
1498
1497 2007-01-10 Ville Vainio <vivainio@gmail.com>
1499 2007-01-10 Ville Vainio <vivainio@gmail.com>
1498
1500
1499 * Extensions/envpersist.py: Turbocharged %env that remembers
1501 * Extensions/envpersist.py: Turbocharged %env that remembers
1500 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1502 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1501 "%env VISUAL=jed".
1503 "%env VISUAL=jed".
1502
1504
1503 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1505 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1504
1506
1505 * IPython/iplib.py (showtraceback): ensure that we correctly call
1507 * IPython/iplib.py (showtraceback): ensure that we correctly call
1506 custom handlers in all cases (some with pdb were slipping through,
1508 custom handlers in all cases (some with pdb were slipping through,
1507 but I'm not exactly sure why).
1509 but I'm not exactly sure why).
1508
1510
1509 * IPython/Debugger.py (Tracer.__init__): added new class to
1511 * IPython/Debugger.py (Tracer.__init__): added new class to
1510 support set_trace-like usage of IPython's enhanced debugger.
1512 support set_trace-like usage of IPython's enhanced debugger.
1511
1513
1512 2006-12-24 Ville Vainio <vivainio@gmail.com>
1514 2006-12-24 Ville Vainio <vivainio@gmail.com>
1513
1515
1514 * ipmaker.py: more informative message when ipy_user_conf
1516 * ipmaker.py: more informative message when ipy_user_conf
1515 import fails (suggest running %upgrade).
1517 import fails (suggest running %upgrade).
1516
1518
1517 * tools/run_ipy_in_profiler.py: Utility to see where
1519 * tools/run_ipy_in_profiler.py: Utility to see where
1518 the time during IPython startup is spent.
1520 the time during IPython startup is spent.
1519
1521
1520 2006-12-20 Ville Vainio <vivainio@gmail.com>
1522 2006-12-20 Ville Vainio <vivainio@gmail.com>
1521
1523
1522 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1524 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1523
1525
1524 * ipapi.py: Add new ipapi method, expand_alias.
1526 * ipapi.py: Add new ipapi method, expand_alias.
1525
1527
1526 * Release.py: Bump up version to 0.7.4.svn
1528 * Release.py: Bump up version to 0.7.4.svn
1527
1529
1528 2006-12-17 Ville Vainio <vivainio@gmail.com>
1530 2006-12-17 Ville Vainio <vivainio@gmail.com>
1529
1531
1530 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1532 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1531 to work properly on posix too
1533 to work properly on posix too
1532
1534
1533 * Release.py: Update revnum (version is still just 0.7.3).
1535 * Release.py: Update revnum (version is still just 0.7.3).
1534
1536
1535 2006-12-15 Ville Vainio <vivainio@gmail.com>
1537 2006-12-15 Ville Vainio <vivainio@gmail.com>
1536
1538
1537 * scripts/ipython_win_post_install: create ipython.py in
1539 * scripts/ipython_win_post_install: create ipython.py in
1538 prefix + "/scripts".
1540 prefix + "/scripts".
1539
1541
1540 * Release.py: Update version to 0.7.3.
1542 * Release.py: Update version to 0.7.3.
1541
1543
1542 2006-12-14 Ville Vainio <vivainio@gmail.com>
1544 2006-12-14 Ville Vainio <vivainio@gmail.com>
1543
1545
1544 * scripts/ipython_win_post_install: Overwrite old shortcuts
1546 * scripts/ipython_win_post_install: Overwrite old shortcuts
1545 if they already exist
1547 if they already exist
1546
1548
1547 * Release.py: release 0.7.3rc2
1549 * Release.py: release 0.7.3rc2
1548
1550
1549 2006-12-13 Ville Vainio <vivainio@gmail.com>
1551 2006-12-13 Ville Vainio <vivainio@gmail.com>
1550
1552
1551 * Branch and update Release.py for 0.7.3rc1
1553 * Branch and update Release.py for 0.7.3rc1
1552
1554
1553 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1555 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1554
1556
1555 * IPython/Shell.py (IPShellWX): update for current WX naming
1557 * IPython/Shell.py (IPShellWX): update for current WX naming
1556 conventions, to avoid a deprecation warning with current WX
1558 conventions, to avoid a deprecation warning with current WX
1557 versions. Thanks to a report by Danny Shevitz.
1559 versions. Thanks to a report by Danny Shevitz.
1558
1560
1559 2006-12-12 Ville Vainio <vivainio@gmail.com>
1561 2006-12-12 Ville Vainio <vivainio@gmail.com>
1560
1562
1561 * ipmaker.py: apply david cournapeau's patch to make
1563 * ipmaker.py: apply david cournapeau's patch to make
1562 import_some work properly even when ipythonrc does
1564 import_some work properly even when ipythonrc does
1563 import_some on empty list (it was an old bug!).
1565 import_some on empty list (it was an old bug!).
1564
1566
1565 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1567 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1566 Add deprecation note to ipythonrc and a url to wiki
1568 Add deprecation note to ipythonrc and a url to wiki
1567 in ipy_user_conf.py
1569 in ipy_user_conf.py
1568
1570
1569
1571
1570 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1572 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1571 as if it was typed on IPython command prompt, i.e.
1573 as if it was typed on IPython command prompt, i.e.
1572 as IPython script.
1574 as IPython script.
1573
1575
1574 * example-magic.py, magic_grepl.py: remove outdated examples
1576 * example-magic.py, magic_grepl.py: remove outdated examples
1575
1577
1576 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1578 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1577
1579
1578 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1580 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1579 is called before any exception has occurred.
1581 is called before any exception has occurred.
1580
1582
1581 2006-12-08 Ville Vainio <vivainio@gmail.com>
1583 2006-12-08 Ville Vainio <vivainio@gmail.com>
1582
1584
1583 * Extensions/ipy_stock_completers.py: fix cd completer
1585 * Extensions/ipy_stock_completers.py: fix cd completer
1584 to translate /'s to \'s again.
1586 to translate /'s to \'s again.
1585
1587
1586 * completer.py: prevent traceback on file completions w/
1588 * completer.py: prevent traceback on file completions w/
1587 backslash.
1589 backslash.
1588
1590
1589 * Release.py: Update release number to 0.7.3b3 for release
1591 * Release.py: Update release number to 0.7.3b3 for release
1590
1592
1591 2006-12-07 Ville Vainio <vivainio@gmail.com>
1593 2006-12-07 Ville Vainio <vivainio@gmail.com>
1592
1594
1593 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1595 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1594 while executing external code. Provides more shell-like behaviour
1596 while executing external code. Provides more shell-like behaviour
1595 and overall better response to ctrl + C / ctrl + break.
1597 and overall better response to ctrl + C / ctrl + break.
1596
1598
1597 * tools/make_tarball.py: new script to create tarball straight from svn
1599 * tools/make_tarball.py: new script to create tarball straight from svn
1598 (setup.py sdist doesn't work on win32).
1600 (setup.py sdist doesn't work on win32).
1599
1601
1600 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1602 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1601 on dirnames with spaces and use the default completer instead.
1603 on dirnames with spaces and use the default completer instead.
1602
1604
1603 * Revision.py: Change version to 0.7.3b2 for release.
1605 * Revision.py: Change version to 0.7.3b2 for release.
1604
1606
1605 2006-12-05 Ville Vainio <vivainio@gmail.com>
1607 2006-12-05 Ville Vainio <vivainio@gmail.com>
1606
1608
1607 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1609 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1608 pydb patch 4 (rm debug printing, py 2.5 checking)
1610 pydb patch 4 (rm debug printing, py 2.5 checking)
1609
1611
1610 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1612 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1611 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1613 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1612 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1614 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1613 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1615 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1614 object the cursor was on before the refresh. The command "markrange" is
1616 object the cursor was on before the refresh. The command "markrange" is
1615 mapped to "%" now.
1617 mapped to "%" now.
1616 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1618 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1617
1619
1618 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1620 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1619
1621
1620 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1622 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1621 interactive debugger on the last traceback, without having to call
1623 interactive debugger on the last traceback, without having to call
1622 %pdb and rerun your code. Made minor changes in various modules,
1624 %pdb and rerun your code. Made minor changes in various modules,
1623 should automatically recognize pydb if available.
1625 should automatically recognize pydb if available.
1624
1626
1625 2006-11-28 Ville Vainio <vivainio@gmail.com>
1627 2006-11-28 Ville Vainio <vivainio@gmail.com>
1626
1628
1627 * completer.py: If the text start with !, show file completions
1629 * completer.py: If the text start with !, show file completions
1628 properly. This helps when trying to complete command name
1630 properly. This helps when trying to complete command name
1629 for shell escapes.
1631 for shell escapes.
1630
1632
1631 2006-11-27 Ville Vainio <vivainio@gmail.com>
1633 2006-11-27 Ville Vainio <vivainio@gmail.com>
1632
1634
1633 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1635 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1634 der Walt. Clean up svn and hg completers by using a common
1636 der Walt. Clean up svn and hg completers by using a common
1635 vcs_completer.
1637 vcs_completer.
1636
1638
1637 2006-11-26 Ville Vainio <vivainio@gmail.com>
1639 2006-11-26 Ville Vainio <vivainio@gmail.com>
1638
1640
1639 * Remove ipconfig and %config; you should use _ip.options structure
1641 * Remove ipconfig and %config; you should use _ip.options structure
1640 directly instead!
1642 directly instead!
1641
1643
1642 * genutils.py: add wrap_deprecated function for deprecating callables
1644 * genutils.py: add wrap_deprecated function for deprecating callables
1643
1645
1644 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1646 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1645 _ip.system instead. ipalias is redundant.
1647 _ip.system instead. ipalias is redundant.
1646
1648
1647 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1649 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1648 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1650 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1649 explicit.
1651 explicit.
1650
1652
1651 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1653 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1652 completer. Try it by entering 'hg ' and pressing tab.
1654 completer. Try it by entering 'hg ' and pressing tab.
1653
1655
1654 * macro.py: Give Macro a useful __repr__ method
1656 * macro.py: Give Macro a useful __repr__ method
1655
1657
1656 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1658 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1657
1659
1658 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1660 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1659 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1661 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1660 we don't get a duplicate ipipe module, where registration of the xrepr
1662 we don't get a duplicate ipipe module, where registration of the xrepr
1661 implementation for Text is useless.
1663 implementation for Text is useless.
1662
1664
1663 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1665 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1664
1666
1665 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1667 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1666
1668
1667 2006-11-24 Ville Vainio <vivainio@gmail.com>
1669 2006-11-24 Ville Vainio <vivainio@gmail.com>
1668
1670
1669 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1671 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1670 try to use "cProfile" instead of the slower pure python
1672 try to use "cProfile" instead of the slower pure python
1671 "profile"
1673 "profile"
1672
1674
1673 2006-11-23 Ville Vainio <vivainio@gmail.com>
1675 2006-11-23 Ville Vainio <vivainio@gmail.com>
1674
1676
1675 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1677 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1676 Qt+IPython+Designer link in documentation.
1678 Qt+IPython+Designer link in documentation.
1677
1679
1678 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1680 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1679 correct Pdb object to %pydb.
1681 correct Pdb object to %pydb.
1680
1682
1681
1683
1682 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1684 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1683 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1685 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1684 generic xrepr(), otherwise the list implementation would kick in.
1686 generic xrepr(), otherwise the list implementation would kick in.
1685
1687
1686 2006-11-21 Ville Vainio <vivainio@gmail.com>
1688 2006-11-21 Ville Vainio <vivainio@gmail.com>
1687
1689
1688 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1690 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1689 with one from UserConfig.
1691 with one from UserConfig.
1690
1692
1691 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1693 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1692 it was missing which broke the sh profile.
1694 it was missing which broke the sh profile.
1693
1695
1694 * completer.py: file completer now uses explicit '/' instead
1696 * completer.py: file completer now uses explicit '/' instead
1695 of os.path.join, expansion of 'foo' was broken on win32
1697 of os.path.join, expansion of 'foo' was broken on win32
1696 if there was one directory with name 'foobar'.
1698 if there was one directory with name 'foobar'.
1697
1699
1698 * A bunch of patches from Kirill Smelkov:
1700 * A bunch of patches from Kirill Smelkov:
1699
1701
1700 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1702 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1701
1703
1702 * [patch 7/9] Implement %page -r (page in raw mode) -
1704 * [patch 7/9] Implement %page -r (page in raw mode) -
1703
1705
1704 * [patch 5/9] ScientificPython webpage has moved
1706 * [patch 5/9] ScientificPython webpage has moved
1705
1707
1706 * [patch 4/9] The manual mentions %ds, should be %dhist
1708 * [patch 4/9] The manual mentions %ds, should be %dhist
1707
1709
1708 * [patch 3/9] Kill old bits from %prun doc.
1710 * [patch 3/9] Kill old bits from %prun doc.
1709
1711
1710 * [patch 1/9] Fix typos here and there.
1712 * [patch 1/9] Fix typos here and there.
1711
1713
1712 2006-11-08 Ville Vainio <vivainio@gmail.com>
1714 2006-11-08 Ville Vainio <vivainio@gmail.com>
1713
1715
1714 * completer.py (attr_matches): catch all exceptions raised
1716 * completer.py (attr_matches): catch all exceptions raised
1715 by eval of expr with dots.
1717 by eval of expr with dots.
1716
1718
1717 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1719 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1718
1720
1719 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1721 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1720 input if it starts with whitespace. This allows you to paste
1722 input if it starts with whitespace. This allows you to paste
1721 indented input from any editor without manually having to type in
1723 indented input from any editor without manually having to type in
1722 the 'if 1:', which is convenient when working interactively.
1724 the 'if 1:', which is convenient when working interactively.
1723 Slightly modifed version of a patch by Bo Peng
1725 Slightly modifed version of a patch by Bo Peng
1724 <bpeng-AT-rice.edu>.
1726 <bpeng-AT-rice.edu>.
1725
1727
1726 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1728 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1727
1729
1728 * IPython/irunner.py (main): modified irunner so it automatically
1730 * IPython/irunner.py (main): modified irunner so it automatically
1729 recognizes the right runner to use based on the extension (.py for
1731 recognizes the right runner to use based on the extension (.py for
1730 python, .ipy for ipython and .sage for sage).
1732 python, .ipy for ipython and .sage for sage).
1731
1733
1732 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1734 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1733 visible in ipapi as ip.config(), to programatically control the
1735 visible in ipapi as ip.config(), to programatically control the
1734 internal rc object. There's an accompanying %config magic for
1736 internal rc object. There's an accompanying %config magic for
1735 interactive use, which has been enhanced to match the
1737 interactive use, which has been enhanced to match the
1736 funtionality in ipconfig.
1738 funtionality in ipconfig.
1737
1739
1738 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1740 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1739 so it's not just a toggle, it now takes an argument. Add support
1741 so it's not just a toggle, it now takes an argument. Add support
1740 for a customizable header when making system calls, as the new
1742 for a customizable header when making system calls, as the new
1741 system_header variable in the ipythonrc file.
1743 system_header variable in the ipythonrc file.
1742
1744
1743 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1745 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1744
1746
1745 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1747 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1746 generic functions (using Philip J. Eby's simplegeneric package).
1748 generic functions (using Philip J. Eby's simplegeneric package).
1747 This makes it possible to customize the display of third-party classes
1749 This makes it possible to customize the display of third-party classes
1748 without having to monkeypatch them. xiter() no longer supports a mode
1750 without having to monkeypatch them. xiter() no longer supports a mode
1749 argument and the XMode class has been removed. The same functionality can
1751 argument and the XMode class has been removed. The same functionality can
1750 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1752 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1751 One consequence of the switch to generic functions is that xrepr() and
1753 One consequence of the switch to generic functions is that xrepr() and
1752 xattrs() implementation must define the default value for the mode
1754 xattrs() implementation must define the default value for the mode
1753 argument themselves and xattrs() implementations must return real
1755 argument themselves and xattrs() implementations must return real
1754 descriptors.
1756 descriptors.
1755
1757
1756 * IPython/external: This new subpackage will contain all third-party
1758 * IPython/external: This new subpackage will contain all third-party
1757 packages that are bundled with IPython. (The first one is simplegeneric).
1759 packages that are bundled with IPython. (The first one is simplegeneric).
1758
1760
1759 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1761 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1760 directory which as been dropped in r1703.
1762 directory which as been dropped in r1703.
1761
1763
1762 * IPython/Extensions/ipipe.py (iless): Fixed.
1764 * IPython/Extensions/ipipe.py (iless): Fixed.
1763
1765
1764 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1766 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1765
1767
1766 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1768 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1767
1769
1768 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1770 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1769 handling in variable expansion so that shells and magics recognize
1771 handling in variable expansion so that shells and magics recognize
1770 function local scopes correctly. Bug reported by Brian.
1772 function local scopes correctly. Bug reported by Brian.
1771
1773
1772 * scripts/ipython: remove the very first entry in sys.path which
1774 * scripts/ipython: remove the very first entry in sys.path which
1773 Python auto-inserts for scripts, so that sys.path under IPython is
1775 Python auto-inserts for scripts, so that sys.path under IPython is
1774 as similar as possible to that under plain Python.
1776 as similar as possible to that under plain Python.
1775
1777
1776 * IPython/completer.py (IPCompleter.file_matches): Fix
1778 * IPython/completer.py (IPCompleter.file_matches): Fix
1777 tab-completion so that quotes are not closed unless the completion
1779 tab-completion so that quotes are not closed unless the completion
1778 is unambiguous. After a request by Stefan. Minor cleanups in
1780 is unambiguous. After a request by Stefan. Minor cleanups in
1779 ipy_stock_completers.
1781 ipy_stock_completers.
1780
1782
1781 2006-11-02 Ville Vainio <vivainio@gmail.com>
1783 2006-11-02 Ville Vainio <vivainio@gmail.com>
1782
1784
1783 * ipy_stock_completers.py: Add %run and %cd completers.
1785 * ipy_stock_completers.py: Add %run and %cd completers.
1784
1786
1785 * completer.py: Try running custom completer for both
1787 * completer.py: Try running custom completer for both
1786 "foo" and "%foo" if the command is just "foo". Ignore case
1788 "foo" and "%foo" if the command is just "foo". Ignore case
1787 when filtering possible completions.
1789 when filtering possible completions.
1788
1790
1789 * UserConfig/ipy_user_conf.py: install stock completers as default
1791 * UserConfig/ipy_user_conf.py: install stock completers as default
1790
1792
1791 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1793 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1792 simplified readline history save / restore through a wrapper
1794 simplified readline history save / restore through a wrapper
1793 function
1795 function
1794
1796
1795
1797
1796 2006-10-31 Ville Vainio <vivainio@gmail.com>
1798 2006-10-31 Ville Vainio <vivainio@gmail.com>
1797
1799
1798 * strdispatch.py, completer.py, ipy_stock_completers.py:
1800 * strdispatch.py, completer.py, ipy_stock_completers.py:
1799 Allow str_key ("command") in completer hooks. Implement
1801 Allow str_key ("command") in completer hooks. Implement
1800 trivial completer for 'import' (stdlib modules only). Rename
1802 trivial completer for 'import' (stdlib modules only). Rename
1801 ipy_linux_package_managers.py to ipy_stock_completers.py.
1803 ipy_linux_package_managers.py to ipy_stock_completers.py.
1802 SVN completer.
1804 SVN completer.
1803
1805
1804 * Extensions/ledit.py: %magic line editor for easily and
1806 * Extensions/ledit.py: %magic line editor for easily and
1805 incrementally manipulating lists of strings. The magic command
1807 incrementally manipulating lists of strings. The magic command
1806 name is %led.
1808 name is %led.
1807
1809
1808 2006-10-30 Ville Vainio <vivainio@gmail.com>
1810 2006-10-30 Ville Vainio <vivainio@gmail.com>
1809
1811
1810 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1812 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1811 Bernsteins's patches for pydb integration.
1813 Bernsteins's patches for pydb integration.
1812 http://bashdb.sourceforge.net/pydb/
1814 http://bashdb.sourceforge.net/pydb/
1813
1815
1814 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1816 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1815 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1817 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1816 custom completer hook to allow the users to implement their own
1818 custom completer hook to allow the users to implement their own
1817 completers. See ipy_linux_package_managers.py for example. The
1819 completers. See ipy_linux_package_managers.py for example. The
1818 hook name is 'complete_command'.
1820 hook name is 'complete_command'.
1819
1821
1820 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1822 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1821
1823
1822 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1824 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1823 Numeric leftovers.
1825 Numeric leftovers.
1824
1826
1825 * ipython.el (py-execute-region): apply Stefan's patch to fix
1827 * ipython.el (py-execute-region): apply Stefan's patch to fix
1826 garbled results if the python shell hasn't been previously started.
1828 garbled results if the python shell hasn't been previously started.
1827
1829
1828 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1830 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1829 pretty generic function and useful for other things.
1831 pretty generic function and useful for other things.
1830
1832
1831 * IPython/OInspect.py (getsource): Add customizable source
1833 * IPython/OInspect.py (getsource): Add customizable source
1832 extractor. After a request/patch form W. Stein (SAGE).
1834 extractor. After a request/patch form W. Stein (SAGE).
1833
1835
1834 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1836 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1835 window size to a more reasonable value from what pexpect does,
1837 window size to a more reasonable value from what pexpect does,
1836 since their choice causes wrapping bugs with long input lines.
1838 since their choice causes wrapping bugs with long input lines.
1837
1839
1838 2006-10-28 Ville Vainio <vivainio@gmail.com>
1840 2006-10-28 Ville Vainio <vivainio@gmail.com>
1839
1841
1840 * Magic.py (%run): Save and restore the readline history from
1842 * Magic.py (%run): Save and restore the readline history from
1841 file around %run commands to prevent side effects from
1843 file around %run commands to prevent side effects from
1842 %runned programs that might use readline (e.g. pydb).
1844 %runned programs that might use readline (e.g. pydb).
1843
1845
1844 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1846 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1845 invoking the pydb enhanced debugger.
1847 invoking the pydb enhanced debugger.
1846
1848
1847 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1849 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1848
1850
1849 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1851 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1850 call the base class method and propagate the return value to
1852 call the base class method and propagate the return value to
1851 ifile. This is now done by path itself.
1853 ifile. This is now done by path itself.
1852
1854
1853 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1855 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1854
1856
1855 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1857 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1856 api: set_crash_handler(), to expose the ability to change the
1858 api: set_crash_handler(), to expose the ability to change the
1857 internal crash handler.
1859 internal crash handler.
1858
1860
1859 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1861 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1860 the various parameters of the crash handler so that apps using
1862 the various parameters of the crash handler so that apps using
1861 IPython as their engine can customize crash handling. Ipmlemented
1863 IPython as their engine can customize crash handling. Ipmlemented
1862 at the request of SAGE.
1864 at the request of SAGE.
1863
1865
1864 2006-10-14 Ville Vainio <vivainio@gmail.com>
1866 2006-10-14 Ville Vainio <vivainio@gmail.com>
1865
1867
1866 * Magic.py, ipython.el: applied first "safe" part of Rocky
1868 * Magic.py, ipython.el: applied first "safe" part of Rocky
1867 Bernstein's patch set for pydb integration.
1869 Bernstein's patch set for pydb integration.
1868
1870
1869 * Magic.py (%unalias, %alias): %store'd aliases can now be
1871 * Magic.py (%unalias, %alias): %store'd aliases can now be
1870 removed with '%unalias'. %alias w/o args now shows most
1872 removed with '%unalias'. %alias w/o args now shows most
1871 interesting (stored / manually defined) aliases last
1873 interesting (stored / manually defined) aliases last
1872 where they catch the eye w/o scrolling.
1874 where they catch the eye w/o scrolling.
1873
1875
1874 * Magic.py (%rehashx), ext_rehashdir.py: files with
1876 * Magic.py (%rehashx), ext_rehashdir.py: files with
1875 'py' extension are always considered executable, even
1877 'py' extension are always considered executable, even
1876 when not in PATHEXT environment variable.
1878 when not in PATHEXT environment variable.
1877
1879
1878 2006-10-12 Ville Vainio <vivainio@gmail.com>
1880 2006-10-12 Ville Vainio <vivainio@gmail.com>
1879
1881
1880 * jobctrl.py: Add new "jobctrl" extension for spawning background
1882 * jobctrl.py: Add new "jobctrl" extension for spawning background
1881 processes with "&find /". 'import jobctrl' to try it out. Requires
1883 processes with "&find /". 'import jobctrl' to try it out. Requires
1882 'subprocess' module, standard in python 2.4+.
1884 'subprocess' module, standard in python 2.4+.
1883
1885
1884 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1886 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1885 so if foo -> bar and bar -> baz, then foo -> baz.
1887 so if foo -> bar and bar -> baz, then foo -> baz.
1886
1888
1887 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1889 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1888
1890
1889 * IPython/Magic.py (Magic.parse_options): add a new posix option
1891 * IPython/Magic.py (Magic.parse_options): add a new posix option
1890 to allow parsing of input args in magics that doesn't strip quotes
1892 to allow parsing of input args in magics that doesn't strip quotes
1891 (if posix=False). This also closes %timeit bug reported by
1893 (if posix=False). This also closes %timeit bug reported by
1892 Stefan.
1894 Stefan.
1893
1895
1894 2006-10-03 Ville Vainio <vivainio@gmail.com>
1896 2006-10-03 Ville Vainio <vivainio@gmail.com>
1895
1897
1896 * iplib.py (raw_input, interact): Return ValueError catching for
1898 * iplib.py (raw_input, interact): Return ValueError catching for
1897 raw_input. Fixes infinite loop for sys.stdin.close() or
1899 raw_input. Fixes infinite loop for sys.stdin.close() or
1898 sys.stdout.close().
1900 sys.stdout.close().
1899
1901
1900 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1902 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1901
1903
1902 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1904 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1903 to help in handling doctests. irunner is now pretty useful for
1905 to help in handling doctests. irunner is now pretty useful for
1904 running standalone scripts and simulate a full interactive session
1906 running standalone scripts and simulate a full interactive session
1905 in a format that can be then pasted as a doctest.
1907 in a format that can be then pasted as a doctest.
1906
1908
1907 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1909 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1908 on top of the default (useless) ones. This also fixes the nasty
1910 on top of the default (useless) ones. This also fixes the nasty
1909 way in which 2.5's Quitter() exits (reverted [1785]).
1911 way in which 2.5's Quitter() exits (reverted [1785]).
1910
1912
1911 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1913 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1912 2.5.
1914 2.5.
1913
1915
1914 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1916 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1915 color scheme is updated as well when color scheme is changed
1917 color scheme is updated as well when color scheme is changed
1916 interactively.
1918 interactively.
1917
1919
1918 2006-09-27 Ville Vainio <vivainio@gmail.com>
1920 2006-09-27 Ville Vainio <vivainio@gmail.com>
1919
1921
1920 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1922 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1921 infinite loop and just exit. It's a hack, but will do for a while.
1923 infinite loop and just exit. It's a hack, but will do for a while.
1922
1924
1923 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1925 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1924
1926
1925 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1927 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1926 the constructor, this makes it possible to get a list of only directories
1928 the constructor, this makes it possible to get a list of only directories
1927 or only files.
1929 or only files.
1928
1930
1929 2006-08-12 Ville Vainio <vivainio@gmail.com>
1931 2006-08-12 Ville Vainio <vivainio@gmail.com>
1930
1932
1931 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1933 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1932 they broke unittest
1934 they broke unittest
1933
1935
1934 2006-08-11 Ville Vainio <vivainio@gmail.com>
1936 2006-08-11 Ville Vainio <vivainio@gmail.com>
1935
1937
1936 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1938 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1937 by resolving issue properly, i.e. by inheriting FakeModule
1939 by resolving issue properly, i.e. by inheriting FakeModule
1938 from types.ModuleType. Pickling ipython interactive data
1940 from types.ModuleType. Pickling ipython interactive data
1939 should still work as usual (testing appreciated).
1941 should still work as usual (testing appreciated).
1940
1942
1941 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1943 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1942
1944
1943 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1945 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1944 running under python 2.3 with code from 2.4 to fix a bug with
1946 running under python 2.3 with code from 2.4 to fix a bug with
1945 help(). Reported by the Debian maintainers, Norbert Tretkowski
1947 help(). Reported by the Debian maintainers, Norbert Tretkowski
1946 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1948 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1947 <afayolle-AT-debian.org>.
1949 <afayolle-AT-debian.org>.
1948
1950
1949 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1951 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1950
1952
1951 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1953 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1952 (which was displaying "quit" twice).
1954 (which was displaying "quit" twice).
1953
1955
1954 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1956 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1955
1957
1956 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1958 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1957 the mode argument).
1959 the mode argument).
1958
1960
1959 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1961 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1960
1962
1961 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1963 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1962 not running under IPython.
1964 not running under IPython.
1963
1965
1964 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1966 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1965 and make it iterable (iterating over the attribute itself). Add two new
1967 and make it iterable (iterating over the attribute itself). Add two new
1966 magic strings for __xattrs__(): If the string starts with "-", the attribute
1968 magic strings for __xattrs__(): If the string starts with "-", the attribute
1967 will not be displayed in ibrowse's detail view (but it can still be
1969 will not be displayed in ibrowse's detail view (but it can still be
1968 iterated over). This makes it possible to add attributes that are large
1970 iterated over). This makes it possible to add attributes that are large
1969 lists or generator methods to the detail view. Replace magic attribute names
1971 lists or generator methods to the detail view. Replace magic attribute names
1970 and _attrname() and _getattr() with "descriptors": For each type of magic
1972 and _attrname() and _getattr() with "descriptors": For each type of magic
1971 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1973 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1972 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1974 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1973 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1975 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1974 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1976 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1975 are still supported.
1977 are still supported.
1976
1978
1977 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1979 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1978 fails in ibrowse.fetch(), the exception object is added as the last item
1980 fails in ibrowse.fetch(), the exception object is added as the last item
1979 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1981 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1980 a generator throws an exception midway through execution.
1982 a generator throws an exception midway through execution.
1981
1983
1982 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1984 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1983 encoding into methods.
1985 encoding into methods.
1984
1986
1985 2006-07-26 Ville Vainio <vivainio@gmail.com>
1987 2006-07-26 Ville Vainio <vivainio@gmail.com>
1986
1988
1987 * iplib.py: history now stores multiline input as single
1989 * iplib.py: history now stores multiline input as single
1988 history entries. Patch by Jorgen Cederlof.
1990 history entries. Patch by Jorgen Cederlof.
1989
1991
1990 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1992 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1991
1993
1992 * IPython/Extensions/ibrowse.py: Make cursor visible over
1994 * IPython/Extensions/ibrowse.py: Make cursor visible over
1993 non existing attributes.
1995 non existing attributes.
1994
1996
1995 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1997 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1996
1998
1997 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1999 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1998 error output of the running command doesn't mess up the screen.
2000 error output of the running command doesn't mess up the screen.
1999
2001
2000 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2002 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2001
2003
2002 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2004 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2003 argument. This sorts the items themselves.
2005 argument. This sorts the items themselves.
2004
2006
2005 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2007 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2006
2008
2007 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2009 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2008 Compile expression strings into code objects. This should speed
2010 Compile expression strings into code objects. This should speed
2009 up ifilter and friends somewhat.
2011 up ifilter and friends somewhat.
2010
2012
2011 2006-07-08 Ville Vainio <vivainio@gmail.com>
2013 2006-07-08 Ville Vainio <vivainio@gmail.com>
2012
2014
2013 * Magic.py: %cpaste now strips > from the beginning of lines
2015 * Magic.py: %cpaste now strips > from the beginning of lines
2014 to ease pasting quoted code from emails. Contributed by
2016 to ease pasting quoted code from emails. Contributed by
2015 Stefan van der Walt.
2017 Stefan van der Walt.
2016
2018
2017 2006-06-29 Ville Vainio <vivainio@gmail.com>
2019 2006-06-29 Ville Vainio <vivainio@gmail.com>
2018
2020
2019 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2021 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2020 mode, patch contributed by Darren Dale. NEEDS TESTING!
2022 mode, patch contributed by Darren Dale. NEEDS TESTING!
2021
2023
2022 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2024 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2023
2025
2024 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2026 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2025 a blue background. Fix fetching new display rows when the browser
2027 a blue background. Fix fetching new display rows when the browser
2026 scrolls more than a screenful (e.g. by using the goto command).
2028 scrolls more than a screenful (e.g. by using the goto command).
2027
2029
2028 2006-06-27 Ville Vainio <vivainio@gmail.com>
2030 2006-06-27 Ville Vainio <vivainio@gmail.com>
2029
2031
2030 * Magic.py (_inspect, _ofind) Apply David Huard's
2032 * Magic.py (_inspect, _ofind) Apply David Huard's
2031 patch for displaying the correct docstring for 'property'
2033 patch for displaying the correct docstring for 'property'
2032 attributes.
2034 attributes.
2033
2035
2034 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2036 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2035
2037
2036 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2038 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2037 commands into the methods implementing them.
2039 commands into the methods implementing them.
2038
2040
2039 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2041 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2040
2042
2041 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2043 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2042 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2044 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2043 autoindent support was authored by Jin Liu.
2045 autoindent support was authored by Jin Liu.
2044
2046
2045 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2047 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2046
2048
2047 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2049 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2048 for keymaps with a custom class that simplifies handling.
2050 for keymaps with a custom class that simplifies handling.
2049
2051
2050 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2052 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2051
2053
2052 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2054 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2053 resizing. This requires Python 2.5 to work.
2055 resizing. This requires Python 2.5 to work.
2054
2056
2055 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2057 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2056
2058
2057 * IPython/Extensions/ibrowse.py: Add two new commands to
2059 * IPython/Extensions/ibrowse.py: Add two new commands to
2058 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2060 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2059 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2061 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2060 attributes again. Remapped the help command to "?". Display
2062 attributes again. Remapped the help command to "?". Display
2061 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2063 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2062 as keys for the "home" and "end" commands. Add three new commands
2064 as keys for the "home" and "end" commands. Add three new commands
2063 to the input mode for "find" and friends: "delend" (CTRL-K)
2065 to the input mode for "find" and friends: "delend" (CTRL-K)
2064 deletes to the end of line. "incsearchup" searches upwards in the
2066 deletes to the end of line. "incsearchup" searches upwards in the
2065 command history for an input that starts with the text before the cursor.
2067 command history for an input that starts with the text before the cursor.
2066 "incsearchdown" does the same downwards. Removed a bogus mapping of
2068 "incsearchdown" does the same downwards. Removed a bogus mapping of
2067 the x key to "delete".
2069 the x key to "delete".
2068
2070
2069 2006-06-15 Ville Vainio <vivainio@gmail.com>
2071 2006-06-15 Ville Vainio <vivainio@gmail.com>
2070
2072
2071 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2073 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2072 used to create prompts dynamically, instead of the "old" way of
2074 used to create prompts dynamically, instead of the "old" way of
2073 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2075 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2074 way still works (it's invoked by the default hook), of course.
2076 way still works (it's invoked by the default hook), of course.
2075
2077
2076 * Prompts.py: added generate_output_prompt hook for altering output
2078 * Prompts.py: added generate_output_prompt hook for altering output
2077 prompt
2079 prompt
2078
2080
2079 * Release.py: Changed version string to 0.7.3.svn.
2081 * Release.py: Changed version string to 0.7.3.svn.
2080
2082
2081 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2083 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2082
2084
2083 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2085 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2084 the call to fetch() always tries to fetch enough data for at least one
2086 the call to fetch() always tries to fetch enough data for at least one
2085 full screen. This makes it possible to simply call moveto(0,0,True) in
2087 full screen. This makes it possible to simply call moveto(0,0,True) in
2086 the constructor. Fix typos and removed the obsolete goto attribute.
2088 the constructor. Fix typos and removed the obsolete goto attribute.
2087
2089
2088 2006-06-12 Ville Vainio <vivainio@gmail.com>
2090 2006-06-12 Ville Vainio <vivainio@gmail.com>
2089
2091
2090 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2092 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2091 allowing $variable interpolation within multiline statements,
2093 allowing $variable interpolation within multiline statements,
2092 though so far only with "sh" profile for a testing period.
2094 though so far only with "sh" profile for a testing period.
2093 The patch also enables splitting long commands with \ but it
2095 The patch also enables splitting long commands with \ but it
2094 doesn't work properly yet.
2096 doesn't work properly yet.
2095
2097
2096 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2098 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2097
2099
2098 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2100 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2099 input history and the position of the cursor in the input history for
2101 input history and the position of the cursor in the input history for
2100 the find, findbackwards and goto command.
2102 the find, findbackwards and goto command.
2101
2103
2102 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2104 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2103
2105
2104 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2106 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2105 implements the basic functionality of browser commands that require
2107 implements the basic functionality of browser commands that require
2106 input. Reimplement the goto, find and findbackwards commands as
2108 input. Reimplement the goto, find and findbackwards commands as
2107 subclasses of _CommandInput. Add an input history and keymaps to those
2109 subclasses of _CommandInput. Add an input history and keymaps to those
2108 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2110 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2109 execute commands.
2111 execute commands.
2110
2112
2111 2006-06-07 Ville Vainio <vivainio@gmail.com>
2113 2006-06-07 Ville Vainio <vivainio@gmail.com>
2112
2114
2113 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2115 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2114 running the batch files instead of leaving the session open.
2116 running the batch files instead of leaving the session open.
2115
2117
2116 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2118 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2117
2119
2118 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2120 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2119 the original fix was incomplete. Patch submitted by W. Maier.
2121 the original fix was incomplete. Patch submitted by W. Maier.
2120
2122
2121 2006-06-07 Ville Vainio <vivainio@gmail.com>
2123 2006-06-07 Ville Vainio <vivainio@gmail.com>
2122
2124
2123 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2125 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2124 Confirmation prompts can be supressed by 'quiet' option.
2126 Confirmation prompts can be supressed by 'quiet' option.
2125 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2127 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2126
2128
2127 2006-06-06 *** Released version 0.7.2
2129 2006-06-06 *** Released version 0.7.2
2128
2130
2129 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2131 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2130
2132
2131 * IPython/Release.py (version): Made 0.7.2 final for release.
2133 * IPython/Release.py (version): Made 0.7.2 final for release.
2132 Repo tagged and release cut.
2134 Repo tagged and release cut.
2133
2135
2134 2006-06-05 Ville Vainio <vivainio@gmail.com>
2136 2006-06-05 Ville Vainio <vivainio@gmail.com>
2135
2137
2136 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2138 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2137 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2139 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2138
2140
2139 * upgrade_dir.py: try import 'path' module a bit harder
2141 * upgrade_dir.py: try import 'path' module a bit harder
2140 (for %upgrade)
2142 (for %upgrade)
2141
2143
2142 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2144 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2143
2145
2144 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2146 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2145 instead of looping 20 times.
2147 instead of looping 20 times.
2146
2148
2147 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2149 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2148 correctly at initialization time. Bug reported by Krishna Mohan
2150 correctly at initialization time. Bug reported by Krishna Mohan
2149 Gundu <gkmohan-AT-gmail.com> on the user list.
2151 Gundu <gkmohan-AT-gmail.com> on the user list.
2150
2152
2151 * IPython/Release.py (version): Mark 0.7.2 version to start
2153 * IPython/Release.py (version): Mark 0.7.2 version to start
2152 testing for release on 06/06.
2154 testing for release on 06/06.
2153
2155
2154 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2156 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2155
2157
2156 * scripts/irunner: thin script interface so users don't have to
2158 * scripts/irunner: thin script interface so users don't have to
2157 find the module and call it as an executable, since modules rarely
2159 find the module and call it as an executable, since modules rarely
2158 live in people's PATH.
2160 live in people's PATH.
2159
2161
2160 * IPython/irunner.py (InteractiveRunner.__init__): added
2162 * IPython/irunner.py (InteractiveRunner.__init__): added
2161 delaybeforesend attribute to control delays with newer versions of
2163 delaybeforesend attribute to control delays with newer versions of
2162 pexpect. Thanks to detailed help from pexpect's author, Noah
2164 pexpect. Thanks to detailed help from pexpect's author, Noah
2163 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2165 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2164 correctly (it works in NoColor mode).
2166 correctly (it works in NoColor mode).
2165
2167
2166 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2168 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2167 SAGE list, from improper log() calls.
2169 SAGE list, from improper log() calls.
2168
2170
2169 2006-05-31 Ville Vainio <vivainio@gmail.com>
2171 2006-05-31 Ville Vainio <vivainio@gmail.com>
2170
2172
2171 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2173 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2172 with args in parens to work correctly with dirs that have spaces.
2174 with args in parens to work correctly with dirs that have spaces.
2173
2175
2174 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2176 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2175
2177
2176 * IPython/Logger.py (Logger.logstart): add option to log raw input
2178 * IPython/Logger.py (Logger.logstart): add option to log raw input
2177 instead of the processed one. A -r flag was added to the
2179 instead of the processed one. A -r flag was added to the
2178 %logstart magic used for controlling logging.
2180 %logstart magic used for controlling logging.
2179
2181
2180 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2182 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2181
2183
2182 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2184 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2183 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2185 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2184 recognize the option. After a bug report by Will Maier. This
2186 recognize the option. After a bug report by Will Maier. This
2185 closes #64 (will do it after confirmation from W. Maier).
2187 closes #64 (will do it after confirmation from W. Maier).
2186
2188
2187 * IPython/irunner.py: New module to run scripts as if manually
2189 * IPython/irunner.py: New module to run scripts as if manually
2188 typed into an interactive environment, based on pexpect. After a
2190 typed into an interactive environment, based on pexpect. After a
2189 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2191 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2190 ipython-user list. Simple unittests in the tests/ directory.
2192 ipython-user list. Simple unittests in the tests/ directory.
2191
2193
2192 * tools/release: add Will Maier, OpenBSD port maintainer, to
2194 * tools/release: add Will Maier, OpenBSD port maintainer, to
2193 recepients list. We are now officially part of the OpenBSD ports:
2195 recepients list. We are now officially part of the OpenBSD ports:
2194 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2196 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2195 work.
2197 work.
2196
2198
2197 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2199 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2198
2200
2199 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2201 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2200 so that it doesn't break tkinter apps.
2202 so that it doesn't break tkinter apps.
2201
2203
2202 * IPython/iplib.py (_prefilter): fix bug where aliases would
2204 * IPython/iplib.py (_prefilter): fix bug where aliases would
2203 shadow variables when autocall was fully off. Reported by SAGE
2205 shadow variables when autocall was fully off. Reported by SAGE
2204 author William Stein.
2206 author William Stein.
2205
2207
2206 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2208 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2207 at what detail level strings are computed when foo? is requested.
2209 at what detail level strings are computed when foo? is requested.
2208 This allows users to ask for example that the string form of an
2210 This allows users to ask for example that the string form of an
2209 object is only computed when foo?? is called, or even never, by
2211 object is only computed when foo?? is called, or even never, by
2210 setting the object_info_string_level >= 2 in the configuration
2212 setting the object_info_string_level >= 2 in the configuration
2211 file. This new option has been added and documented. After a
2213 file. This new option has been added and documented. After a
2212 request by SAGE to be able to control the printing of very large
2214 request by SAGE to be able to control the printing of very large
2213 objects more easily.
2215 objects more easily.
2214
2216
2215 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2217 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2216
2218
2217 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2219 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2218 from sys.argv, to be 100% consistent with how Python itself works
2220 from sys.argv, to be 100% consistent with how Python itself works
2219 (as seen for example with python -i file.py). After a bug report
2221 (as seen for example with python -i file.py). After a bug report
2220 by Jeffrey Collins.
2222 by Jeffrey Collins.
2221
2223
2222 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2224 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2223 nasty bug which was preventing custom namespaces with -pylab,
2225 nasty bug which was preventing custom namespaces with -pylab,
2224 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2226 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2225 compatibility (long gone from mpl).
2227 compatibility (long gone from mpl).
2226
2228
2227 * IPython/ipapi.py (make_session): name change: create->make. We
2229 * IPython/ipapi.py (make_session): name change: create->make. We
2228 use make in other places (ipmaker,...), it's shorter and easier to
2230 use make in other places (ipmaker,...), it's shorter and easier to
2229 type and say, etc. I'm trying to clean things before 0.7.2 so
2231 type and say, etc. I'm trying to clean things before 0.7.2 so
2230 that I can keep things stable wrt to ipapi in the chainsaw branch.
2232 that I can keep things stable wrt to ipapi in the chainsaw branch.
2231
2233
2232 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2234 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2233 python-mode recognizes our debugger mode. Add support for
2235 python-mode recognizes our debugger mode. Add support for
2234 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2236 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2235 <m.liu.jin-AT-gmail.com> originally written by
2237 <m.liu.jin-AT-gmail.com> originally written by
2236 doxgen-AT-newsmth.net (with minor modifications for xemacs
2238 doxgen-AT-newsmth.net (with minor modifications for xemacs
2237 compatibility)
2239 compatibility)
2238
2240
2239 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2241 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2240 tracebacks when walking the stack so that the stack tracking system
2242 tracebacks when walking the stack so that the stack tracking system
2241 in emacs' python-mode can identify the frames correctly.
2243 in emacs' python-mode can identify the frames correctly.
2242
2244
2243 * IPython/ipmaker.py (make_IPython): make the internal (and
2245 * IPython/ipmaker.py (make_IPython): make the internal (and
2244 default config) autoedit_syntax value false by default. Too many
2246 default config) autoedit_syntax value false by default. Too many
2245 users have complained to me (both on and off-list) about problems
2247 users have complained to me (both on and off-list) about problems
2246 with this option being on by default, so I'm making it default to
2248 with this option being on by default, so I'm making it default to
2247 off. It can still be enabled by anyone via the usual mechanisms.
2249 off. It can still be enabled by anyone via the usual mechanisms.
2248
2250
2249 * IPython/completer.py (Completer.attr_matches): add support for
2251 * IPython/completer.py (Completer.attr_matches): add support for
2250 PyCrust-style _getAttributeNames magic method. Patch contributed
2252 PyCrust-style _getAttributeNames magic method. Patch contributed
2251 by <mscott-AT-goldenspud.com>. Closes #50.
2253 by <mscott-AT-goldenspud.com>. Closes #50.
2252
2254
2253 * IPython/iplib.py (InteractiveShell.__init__): remove the
2255 * IPython/iplib.py (InteractiveShell.__init__): remove the
2254 deletion of exit/quit from __builtin__, which can break
2256 deletion of exit/quit from __builtin__, which can break
2255 third-party tools like the Zope debugging console. The
2257 third-party tools like the Zope debugging console. The
2256 %exit/%quit magics remain. In general, it's probably a good idea
2258 %exit/%quit magics remain. In general, it's probably a good idea
2257 not to delete anything from __builtin__, since we never know what
2259 not to delete anything from __builtin__, since we never know what
2258 that will break. In any case, python now (for 2.5) will support
2260 that will break. In any case, python now (for 2.5) will support
2259 'real' exit/quit, so this issue is moot. Closes #55.
2261 'real' exit/quit, so this issue is moot. Closes #55.
2260
2262
2261 * IPython/genutils.py (with_obj): rename the 'with' function to
2263 * IPython/genutils.py (with_obj): rename the 'with' function to
2262 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2264 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2263 becomes a language keyword. Closes #53.
2265 becomes a language keyword. Closes #53.
2264
2266
2265 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2267 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2266 __file__ attribute to this so it fools more things into thinking
2268 __file__ attribute to this so it fools more things into thinking
2267 it is a real module. Closes #59.
2269 it is a real module. Closes #59.
2268
2270
2269 * IPython/Magic.py (magic_edit): add -n option to open the editor
2271 * IPython/Magic.py (magic_edit): add -n option to open the editor
2270 at a specific line number. After a patch by Stefan van der Walt.
2272 at a specific line number. After a patch by Stefan van der Walt.
2271
2273
2272 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2273
2275
2274 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2276 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2275 reason the file could not be opened. After automatic crash
2277 reason the file could not be opened. After automatic crash
2276 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2278 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2277 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2279 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2278 (_should_recompile): Don't fire editor if using %bg, since there
2280 (_should_recompile): Don't fire editor if using %bg, since there
2279 is no file in the first place. From the same report as above.
2281 is no file in the first place. From the same report as above.
2280 (raw_input): protect against faulty third-party prefilters. After
2282 (raw_input): protect against faulty third-party prefilters. After
2281 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2283 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2282 while running under SAGE.
2284 while running under SAGE.
2283
2285
2284 2006-05-23 Ville Vainio <vivainio@gmail.com>
2286 2006-05-23 Ville Vainio <vivainio@gmail.com>
2285
2287
2286 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2288 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2287 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2289 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2288 now returns None (again), unless dummy is specifically allowed by
2290 now returns None (again), unless dummy is specifically allowed by
2289 ipapi.get(allow_dummy=True).
2291 ipapi.get(allow_dummy=True).
2290
2292
2291 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2293 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2292
2294
2293 * IPython: remove all 2.2-compatibility objects and hacks from
2295 * IPython: remove all 2.2-compatibility objects and hacks from
2294 everywhere, since we only support 2.3 at this point. Docs
2296 everywhere, since we only support 2.3 at this point. Docs
2295 updated.
2297 updated.
2296
2298
2297 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2299 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2298 Anything requiring extra validation can be turned into a Python
2300 Anything requiring extra validation can be turned into a Python
2299 property in the future. I used a property for the db one b/c
2301 property in the future. I used a property for the db one b/c
2300 there was a nasty circularity problem with the initialization
2302 there was a nasty circularity problem with the initialization
2301 order, which right now I don't have time to clean up.
2303 order, which right now I don't have time to clean up.
2302
2304
2303 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2305 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2304 another locking bug reported by Jorgen. I'm not 100% sure though,
2306 another locking bug reported by Jorgen. I'm not 100% sure though,
2305 so more testing is needed...
2307 so more testing is needed...
2306
2308
2307 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2309 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2308
2310
2309 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2311 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2310 local variables from any routine in user code (typically executed
2312 local variables from any routine in user code (typically executed
2311 with %run) directly into the interactive namespace. Very useful
2313 with %run) directly into the interactive namespace. Very useful
2312 when doing complex debugging.
2314 when doing complex debugging.
2313 (IPythonNotRunning): Changed the default None object to a dummy
2315 (IPythonNotRunning): Changed the default None object to a dummy
2314 whose attributes can be queried as well as called without
2316 whose attributes can be queried as well as called without
2315 exploding, to ease writing code which works transparently both in
2317 exploding, to ease writing code which works transparently both in
2316 and out of ipython and uses some of this API.
2318 and out of ipython and uses some of this API.
2317
2319
2318 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2320 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2319
2321
2320 * IPython/hooks.py (result_display): Fix the fact that our display
2322 * IPython/hooks.py (result_display): Fix the fact that our display
2321 hook was using str() instead of repr(), as the default python
2323 hook was using str() instead of repr(), as the default python
2322 console does. This had gone unnoticed b/c it only happened if
2324 console does. This had gone unnoticed b/c it only happened if
2323 %Pprint was off, but the inconsistency was there.
2325 %Pprint was off, but the inconsistency was there.
2324
2326
2325 2006-05-15 Ville Vainio <vivainio@gmail.com>
2327 2006-05-15 Ville Vainio <vivainio@gmail.com>
2326
2328
2327 * Oinspect.py: Only show docstring for nonexisting/binary files
2329 * Oinspect.py: Only show docstring for nonexisting/binary files
2328 when doing object??, closing ticket #62
2330 when doing object??, closing ticket #62
2329
2331
2330 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2332 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2331
2333
2332 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2334 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2333 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2335 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2334 was being released in a routine which hadn't checked if it had
2336 was being released in a routine which hadn't checked if it had
2335 been the one to acquire it.
2337 been the one to acquire it.
2336
2338
2337 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2339 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2338
2340
2339 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2341 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2340
2342
2341 2006-04-11 Ville Vainio <vivainio@gmail.com>
2343 2006-04-11 Ville Vainio <vivainio@gmail.com>
2342
2344
2343 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2345 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2344 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2346 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2345 prefilters, allowing stuff like magics and aliases in the file.
2347 prefilters, allowing stuff like magics and aliases in the file.
2346
2348
2347 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2349 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2348 added. Supported now are "%clear in" and "%clear out" (clear input and
2350 added. Supported now are "%clear in" and "%clear out" (clear input and
2349 output history, respectively). Also fixed CachedOutput.flush to
2351 output history, respectively). Also fixed CachedOutput.flush to
2350 properly flush the output cache.
2352 properly flush the output cache.
2351
2353
2352 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2354 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2353 half-success (and fail explicitly).
2355 half-success (and fail explicitly).
2354
2356
2355 2006-03-28 Ville Vainio <vivainio@gmail.com>
2357 2006-03-28 Ville Vainio <vivainio@gmail.com>
2356
2358
2357 * iplib.py: Fix quoting of aliases so that only argless ones
2359 * iplib.py: Fix quoting of aliases so that only argless ones
2358 are quoted
2360 are quoted
2359
2361
2360 2006-03-28 Ville Vainio <vivainio@gmail.com>
2362 2006-03-28 Ville Vainio <vivainio@gmail.com>
2361
2363
2362 * iplib.py: Quote aliases with spaces in the name.
2364 * iplib.py: Quote aliases with spaces in the name.
2363 "c:\program files\blah\bin" is now legal alias target.
2365 "c:\program files\blah\bin" is now legal alias target.
2364
2366
2365 * ext_rehashdir.py: Space no longer allowed as arg
2367 * ext_rehashdir.py: Space no longer allowed as arg
2366 separator, since space is legal in path names.
2368 separator, since space is legal in path names.
2367
2369
2368 2006-03-16 Ville Vainio <vivainio@gmail.com>
2370 2006-03-16 Ville Vainio <vivainio@gmail.com>
2369
2371
2370 * upgrade_dir.py: Take path.py from Extensions, correcting
2372 * upgrade_dir.py: Take path.py from Extensions, correcting
2371 %upgrade magic
2373 %upgrade magic
2372
2374
2373 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2375 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2374
2376
2375 * hooks.py: Only enclose editor binary in quotes if legal and
2377 * hooks.py: Only enclose editor binary in quotes if legal and
2376 necessary (space in the name, and is an existing file). Fixes a bug
2378 necessary (space in the name, and is an existing file). Fixes a bug
2377 reported by Zachary Pincus.
2379 reported by Zachary Pincus.
2378
2380
2379 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2381 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2380
2382
2381 * Manual: thanks to a tip on proper color handling for Emacs, by
2383 * Manual: thanks to a tip on proper color handling for Emacs, by
2382 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2384 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2383
2385
2384 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2386 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2385 by applying the provided patch. Thanks to Liu Jin
2387 by applying the provided patch. Thanks to Liu Jin
2386 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2388 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2387 XEmacs/Linux, I'm trusting the submitter that it actually helps
2389 XEmacs/Linux, I'm trusting the submitter that it actually helps
2388 under win32/GNU Emacs. Will revisit if any problems are reported.
2390 under win32/GNU Emacs. Will revisit if any problems are reported.
2389
2391
2390 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2392 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2391
2393
2392 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2394 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2393 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2395 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2394
2396
2395 2006-03-12 Ville Vainio <vivainio@gmail.com>
2397 2006-03-12 Ville Vainio <vivainio@gmail.com>
2396
2398
2397 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2399 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2398 Torsten Marek.
2400 Torsten Marek.
2399
2401
2400 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2402 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2401
2403
2402 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2404 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2403 line ranges works again.
2405 line ranges works again.
2404
2406
2405 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2407 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2406
2408
2407 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2409 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2408 and friends, after a discussion with Zach Pincus on ipython-user.
2410 and friends, after a discussion with Zach Pincus on ipython-user.
2409 I'm not 100% sure, but after thinking about it quite a bit, it may
2411 I'm not 100% sure, but after thinking about it quite a bit, it may
2410 be OK. Testing with the multithreaded shells didn't reveal any
2412 be OK. Testing with the multithreaded shells didn't reveal any
2411 problems, but let's keep an eye out.
2413 problems, but let's keep an eye out.
2412
2414
2413 In the process, I fixed a few things which were calling
2415 In the process, I fixed a few things which were calling
2414 self.InteractiveTB() directly (like safe_execfile), which is a
2416 self.InteractiveTB() directly (like safe_execfile), which is a
2415 mistake: ALL exception reporting should be done by calling
2417 mistake: ALL exception reporting should be done by calling
2416 self.showtraceback(), which handles state and tab-completion and
2418 self.showtraceback(), which handles state and tab-completion and
2417 more.
2419 more.
2418
2420
2419 2006-03-01 Ville Vainio <vivainio@gmail.com>
2421 2006-03-01 Ville Vainio <vivainio@gmail.com>
2420
2422
2421 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2423 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2422 To use, do "from ipipe import *".
2424 To use, do "from ipipe import *".
2423
2425
2424 2006-02-24 Ville Vainio <vivainio@gmail.com>
2426 2006-02-24 Ville Vainio <vivainio@gmail.com>
2425
2427
2426 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2428 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2427 "cleanly" and safely than the older upgrade mechanism.
2429 "cleanly" and safely than the older upgrade mechanism.
2428
2430
2429 2006-02-21 Ville Vainio <vivainio@gmail.com>
2431 2006-02-21 Ville Vainio <vivainio@gmail.com>
2430
2432
2431 * Magic.py: %save works again.
2433 * Magic.py: %save works again.
2432
2434
2433 2006-02-15 Ville Vainio <vivainio@gmail.com>
2435 2006-02-15 Ville Vainio <vivainio@gmail.com>
2434
2436
2435 * Magic.py: %Pprint works again
2437 * Magic.py: %Pprint works again
2436
2438
2437 * Extensions/ipy_sane_defaults.py: Provide everything provided
2439 * Extensions/ipy_sane_defaults.py: Provide everything provided
2438 in default ipythonrc, to make it possible to have a completely empty
2440 in default ipythonrc, to make it possible to have a completely empty
2439 ipythonrc (and thus completely rc-file free configuration)
2441 ipythonrc (and thus completely rc-file free configuration)
2440
2442
2441 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2443 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2442
2444
2443 * IPython/hooks.py (editor): quote the call to the editor command,
2445 * IPython/hooks.py (editor): quote the call to the editor command,
2444 to allow commands with spaces in them. Problem noted by watching
2446 to allow commands with spaces in them. Problem noted by watching
2445 Ian Oswald's video about textpad under win32 at
2447 Ian Oswald's video about textpad under win32 at
2446 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2448 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2447
2449
2448 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2450 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2449 describing magics (we haven't used @ for a loong time).
2451 describing magics (we haven't used @ for a loong time).
2450
2452
2451 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2453 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2452 contributed by marienz to close
2454 contributed by marienz to close
2453 http://www.scipy.net/roundup/ipython/issue53.
2455 http://www.scipy.net/roundup/ipython/issue53.
2454
2456
2455 2006-02-10 Ville Vainio <vivainio@gmail.com>
2457 2006-02-10 Ville Vainio <vivainio@gmail.com>
2456
2458
2457 * genutils.py: getoutput now works in win32 too
2459 * genutils.py: getoutput now works in win32 too
2458
2460
2459 * completer.py: alias and magic completion only invoked
2461 * completer.py: alias and magic completion only invoked
2460 at the first "item" in the line, to avoid "cd %store"
2462 at the first "item" in the line, to avoid "cd %store"
2461 nonsense.
2463 nonsense.
2462
2464
2463 2006-02-09 Ville Vainio <vivainio@gmail.com>
2465 2006-02-09 Ville Vainio <vivainio@gmail.com>
2464
2466
2465 * test/*: Added a unit testing framework (finally).
2467 * test/*: Added a unit testing framework (finally).
2466 '%run runtests.py' to run test_*.
2468 '%run runtests.py' to run test_*.
2467
2469
2468 * ipapi.py: Exposed runlines and set_custom_exc
2470 * ipapi.py: Exposed runlines and set_custom_exc
2469
2471
2470 2006-02-07 Ville Vainio <vivainio@gmail.com>
2472 2006-02-07 Ville Vainio <vivainio@gmail.com>
2471
2473
2472 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2474 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2473 instead use "f(1 2)" as before.
2475 instead use "f(1 2)" as before.
2474
2476
2475 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2477 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2476
2478
2477 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2479 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2478 facilities, for demos processed by the IPython input filter
2480 facilities, for demos processed by the IPython input filter
2479 (IPythonDemo), and for running a script one-line-at-a-time as a
2481 (IPythonDemo), and for running a script one-line-at-a-time as a
2480 demo, both for pure Python (LineDemo) and for IPython-processed
2482 demo, both for pure Python (LineDemo) and for IPython-processed
2481 input (IPythonLineDemo). After a request by Dave Kohel, from the
2483 input (IPythonLineDemo). After a request by Dave Kohel, from the
2482 SAGE team.
2484 SAGE team.
2483 (Demo.edit): added an edit() method to the demo objects, to edit
2485 (Demo.edit): added an edit() method to the demo objects, to edit
2484 the in-memory copy of the last executed block.
2486 the in-memory copy of the last executed block.
2485
2487
2486 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2488 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2487 processing to %edit, %macro and %save. These commands can now be
2489 processing to %edit, %macro and %save. These commands can now be
2488 invoked on the unprocessed input as it was typed by the user
2490 invoked on the unprocessed input as it was typed by the user
2489 (without any prefilters applied). After requests by the SAGE team
2491 (without any prefilters applied). After requests by the SAGE team
2490 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2492 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2491
2493
2492 2006-02-01 Ville Vainio <vivainio@gmail.com>
2494 2006-02-01 Ville Vainio <vivainio@gmail.com>
2493
2495
2494 * setup.py, eggsetup.py: easy_install ipython==dev works
2496 * setup.py, eggsetup.py: easy_install ipython==dev works
2495 correctly now (on Linux)
2497 correctly now (on Linux)
2496
2498
2497 * ipy_user_conf,ipmaker: user config changes, removed spurious
2499 * ipy_user_conf,ipmaker: user config changes, removed spurious
2498 warnings
2500 warnings
2499
2501
2500 * iplib: if rc.banner is string, use it as is.
2502 * iplib: if rc.banner is string, use it as is.
2501
2503
2502 * Magic: %pycat accepts a string argument and pages it's contents.
2504 * Magic: %pycat accepts a string argument and pages it's contents.
2503
2505
2504
2506
2505 2006-01-30 Ville Vainio <vivainio@gmail.com>
2507 2006-01-30 Ville Vainio <vivainio@gmail.com>
2506
2508
2507 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2509 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2508 Now %store and bookmarks work through PickleShare, meaning that
2510 Now %store and bookmarks work through PickleShare, meaning that
2509 concurrent access is possible and all ipython sessions see the
2511 concurrent access is possible and all ipython sessions see the
2510 same database situation all the time, instead of snapshot of
2512 same database situation all the time, instead of snapshot of
2511 the situation when the session was started. Hence, %bookmark
2513 the situation when the session was started. Hence, %bookmark
2512 results are immediately accessible from othes sessions. The database
2514 results are immediately accessible from othes sessions. The database
2513 is also available for use by user extensions. See:
2515 is also available for use by user extensions. See:
2514 http://www.python.org/pypi/pickleshare
2516 http://www.python.org/pypi/pickleshare
2515
2517
2516 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2518 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2517
2519
2518 * aliases can now be %store'd
2520 * aliases can now be %store'd
2519
2521
2520 * path.py moved to Extensions so that pickleshare does not need
2522 * path.py moved to Extensions so that pickleshare does not need
2521 IPython-specific import. Extensions added to pythonpath right
2523 IPython-specific import. Extensions added to pythonpath right
2522 at __init__.
2524 at __init__.
2523
2525
2524 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2526 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2525 called with _ip.system and the pre-transformed command string.
2527 called with _ip.system and the pre-transformed command string.
2526
2528
2527 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2529 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2528
2530
2529 * IPython/iplib.py (interact): Fix that we were not catching
2531 * IPython/iplib.py (interact): Fix that we were not catching
2530 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2532 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2531 logic here had to change, but it's fixed now.
2533 logic here had to change, but it's fixed now.
2532
2534
2533 2006-01-29 Ville Vainio <vivainio@gmail.com>
2535 2006-01-29 Ville Vainio <vivainio@gmail.com>
2534
2536
2535 * iplib.py: Try to import pyreadline on Windows.
2537 * iplib.py: Try to import pyreadline on Windows.
2536
2538
2537 2006-01-27 Ville Vainio <vivainio@gmail.com>
2539 2006-01-27 Ville Vainio <vivainio@gmail.com>
2538
2540
2539 * iplib.py: Expose ipapi as _ip in builtin namespace.
2541 * iplib.py: Expose ipapi as _ip in builtin namespace.
2540 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2542 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2541 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2543 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2542 syntax now produce _ip.* variant of the commands.
2544 syntax now produce _ip.* variant of the commands.
2543
2545
2544 * "_ip.options().autoedit_syntax = 2" automatically throws
2546 * "_ip.options().autoedit_syntax = 2" automatically throws
2545 user to editor for syntax error correction without prompting.
2547 user to editor for syntax error correction without prompting.
2546
2548
2547 2006-01-27 Ville Vainio <vivainio@gmail.com>
2549 2006-01-27 Ville Vainio <vivainio@gmail.com>
2548
2550
2549 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2551 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2550 'ipython' at argv[0]) executed through command line.
2552 'ipython' at argv[0]) executed through command line.
2551 NOTE: this DEPRECATES calling ipython with multiple scripts
2553 NOTE: this DEPRECATES calling ipython with multiple scripts
2552 ("ipython a.py b.py c.py")
2554 ("ipython a.py b.py c.py")
2553
2555
2554 * iplib.py, hooks.py: Added configurable input prefilter,
2556 * iplib.py, hooks.py: Added configurable input prefilter,
2555 named 'input_prefilter'. See ext_rescapture.py for example
2557 named 'input_prefilter'. See ext_rescapture.py for example
2556 usage.
2558 usage.
2557
2559
2558 * ext_rescapture.py, Magic.py: Better system command output capture
2560 * ext_rescapture.py, Magic.py: Better system command output capture
2559 through 'var = !ls' (deprecates user-visible %sc). Same notation
2561 through 'var = !ls' (deprecates user-visible %sc). Same notation
2560 applies for magics, 'var = %alias' assigns alias list to var.
2562 applies for magics, 'var = %alias' assigns alias list to var.
2561
2563
2562 * ipapi.py: added meta() for accessing extension-usable data store.
2564 * ipapi.py: added meta() for accessing extension-usable data store.
2563
2565
2564 * iplib.py: added InteractiveShell.getapi(). New magics should be
2566 * iplib.py: added InteractiveShell.getapi(). New magics should be
2565 written doing self.getapi() instead of using the shell directly.
2567 written doing self.getapi() instead of using the shell directly.
2566
2568
2567 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2569 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2568 %store foo >> ~/myfoo.txt to store variables to files (in clean
2570 %store foo >> ~/myfoo.txt to store variables to files (in clean
2569 textual form, not a restorable pickle).
2571 textual form, not a restorable pickle).
2570
2572
2571 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2573 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2572
2574
2573 * usage.py, Magic.py: added %quickref
2575 * usage.py, Magic.py: added %quickref
2574
2576
2575 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2577 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2576
2578
2577 * GetoptErrors when invoking magics etc. with wrong args
2579 * GetoptErrors when invoking magics etc. with wrong args
2578 are now more helpful:
2580 are now more helpful:
2579 GetoptError: option -l not recognized (allowed: "qb" )
2581 GetoptError: option -l not recognized (allowed: "qb" )
2580
2582
2581 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2583 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2582
2584
2583 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2585 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2584 computationally intensive blocks don't appear to stall the demo.
2586 computationally intensive blocks don't appear to stall the demo.
2585
2587
2586 2006-01-24 Ville Vainio <vivainio@gmail.com>
2588 2006-01-24 Ville Vainio <vivainio@gmail.com>
2587
2589
2588 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2590 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2589 value to manipulate resulting history entry.
2591 value to manipulate resulting history entry.
2590
2592
2591 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2593 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2592 to instance methods of IPApi class, to make extending an embedded
2594 to instance methods of IPApi class, to make extending an embedded
2593 IPython feasible. See ext_rehashdir.py for example usage.
2595 IPython feasible. See ext_rehashdir.py for example usage.
2594
2596
2595 * Merged 1071-1076 from branches/0.7.1
2597 * Merged 1071-1076 from branches/0.7.1
2596
2598
2597
2599
2598 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2600 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2599
2601
2600 * tools/release (daystamp): Fix build tools to use the new
2602 * tools/release (daystamp): Fix build tools to use the new
2601 eggsetup.py script to build lightweight eggs.
2603 eggsetup.py script to build lightweight eggs.
2602
2604
2603 * Applied changesets 1062 and 1064 before 0.7.1 release.
2605 * Applied changesets 1062 and 1064 before 0.7.1 release.
2604
2606
2605 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2607 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2606 see the raw input history (without conversions like %ls ->
2608 see the raw input history (without conversions like %ls ->
2607 ipmagic("ls")). After a request from W. Stein, SAGE
2609 ipmagic("ls")). After a request from W. Stein, SAGE
2608 (http://modular.ucsd.edu/sage) developer. This information is
2610 (http://modular.ucsd.edu/sage) developer. This information is
2609 stored in the input_hist_raw attribute of the IPython instance, so
2611 stored in the input_hist_raw attribute of the IPython instance, so
2610 developers can access it if needed (it's an InputList instance).
2612 developers can access it if needed (it's an InputList instance).
2611
2613
2612 * Versionstring = 0.7.2.svn
2614 * Versionstring = 0.7.2.svn
2613
2615
2614 * eggsetup.py: A separate script for constructing eggs, creates
2616 * eggsetup.py: A separate script for constructing eggs, creates
2615 proper launch scripts even on Windows (an .exe file in
2617 proper launch scripts even on Windows (an .exe file in
2616 \python24\scripts).
2618 \python24\scripts).
2617
2619
2618 * ipapi.py: launch_new_instance, launch entry point needed for the
2620 * ipapi.py: launch_new_instance, launch entry point needed for the
2619 egg.
2621 egg.
2620
2622
2621 2006-01-23 Ville Vainio <vivainio@gmail.com>
2623 2006-01-23 Ville Vainio <vivainio@gmail.com>
2622
2624
2623 * Added %cpaste magic for pasting python code
2625 * Added %cpaste magic for pasting python code
2624
2626
2625 2006-01-22 Ville Vainio <vivainio@gmail.com>
2627 2006-01-22 Ville Vainio <vivainio@gmail.com>
2626
2628
2627 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2629 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2628
2630
2629 * Versionstring = 0.7.2.svn
2631 * Versionstring = 0.7.2.svn
2630
2632
2631 * eggsetup.py: A separate script for constructing eggs, creates
2633 * eggsetup.py: A separate script for constructing eggs, creates
2632 proper launch scripts even on Windows (an .exe file in
2634 proper launch scripts even on Windows (an .exe file in
2633 \python24\scripts).
2635 \python24\scripts).
2634
2636
2635 * ipapi.py: launch_new_instance, launch entry point needed for the
2637 * ipapi.py: launch_new_instance, launch entry point needed for the
2636 egg.
2638 egg.
2637
2639
2638 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2640 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2639
2641
2640 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2642 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2641 %pfile foo would print the file for foo even if it was a binary.
2643 %pfile foo would print the file for foo even if it was a binary.
2642 Now, extensions '.so' and '.dll' are skipped.
2644 Now, extensions '.so' and '.dll' are skipped.
2643
2645
2644 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2646 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2645 bug, where macros would fail in all threaded modes. I'm not 100%
2647 bug, where macros would fail in all threaded modes. I'm not 100%
2646 sure, so I'm going to put out an rc instead of making a release
2648 sure, so I'm going to put out an rc instead of making a release
2647 today, and wait for feedback for at least a few days.
2649 today, and wait for feedback for at least a few days.
2648
2650
2649 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2651 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2650 it...) the handling of pasting external code with autoindent on.
2652 it...) the handling of pasting external code with autoindent on.
2651 To get out of a multiline input, the rule will appear for most
2653 To get out of a multiline input, the rule will appear for most
2652 users unchanged: two blank lines or change the indent level
2654 users unchanged: two blank lines or change the indent level
2653 proposed by IPython. But there is a twist now: you can
2655 proposed by IPython. But there is a twist now: you can
2654 add/subtract only *one or two spaces*. If you add/subtract three
2656 add/subtract only *one or two spaces*. If you add/subtract three
2655 or more (unless you completely delete the line), IPython will
2657 or more (unless you completely delete the line), IPython will
2656 accept that line, and you'll need to enter a second one of pure
2658 accept that line, and you'll need to enter a second one of pure
2657 whitespace. I know it sounds complicated, but I can't find a
2659 whitespace. I know it sounds complicated, but I can't find a
2658 different solution that covers all the cases, with the right
2660 different solution that covers all the cases, with the right
2659 heuristics. Hopefully in actual use, nobody will really notice
2661 heuristics. Hopefully in actual use, nobody will really notice
2660 all these strange rules and things will 'just work'.
2662 all these strange rules and things will 'just work'.
2661
2663
2662 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2664 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2663
2665
2664 * IPython/iplib.py (interact): catch exceptions which can be
2666 * IPython/iplib.py (interact): catch exceptions which can be
2665 triggered asynchronously by signal handlers. Thanks to an
2667 triggered asynchronously by signal handlers. Thanks to an
2666 automatic crash report, submitted by Colin Kingsley
2668 automatic crash report, submitted by Colin Kingsley
2667 <tercel-AT-gentoo.org>.
2669 <tercel-AT-gentoo.org>.
2668
2670
2669 2006-01-20 Ville Vainio <vivainio@gmail.com>
2671 2006-01-20 Ville Vainio <vivainio@gmail.com>
2670
2672
2671 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2673 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2672 (%rehashdir, very useful, try it out) of how to extend ipython
2674 (%rehashdir, very useful, try it out) of how to extend ipython
2673 with new magics. Also added Extensions dir to pythonpath to make
2675 with new magics. Also added Extensions dir to pythonpath to make
2674 importing extensions easy.
2676 importing extensions easy.
2675
2677
2676 * %store now complains when trying to store interactively declared
2678 * %store now complains when trying to store interactively declared
2677 classes / instances of those classes.
2679 classes / instances of those classes.
2678
2680
2679 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2681 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2680 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2682 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2681 if they exist, and ipy_user_conf.py with some defaults is created for
2683 if they exist, and ipy_user_conf.py with some defaults is created for
2682 the user.
2684 the user.
2683
2685
2684 * Startup rehashing done by the config file, not InterpreterExec.
2686 * Startup rehashing done by the config file, not InterpreterExec.
2685 This means system commands are available even without selecting the
2687 This means system commands are available even without selecting the
2686 pysh profile. It's the sensible default after all.
2688 pysh profile. It's the sensible default after all.
2687
2689
2688 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2690 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2689
2691
2690 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2692 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2691 multiline code with autoindent on working. But I am really not
2693 multiline code with autoindent on working. But I am really not
2692 sure, so this needs more testing. Will commit a debug-enabled
2694 sure, so this needs more testing. Will commit a debug-enabled
2693 version for now, while I test it some more, so that Ville and
2695 version for now, while I test it some more, so that Ville and
2694 others may also catch any problems. Also made
2696 others may also catch any problems. Also made
2695 self.indent_current_str() a method, to ensure that there's no
2697 self.indent_current_str() a method, to ensure that there's no
2696 chance of the indent space count and the corresponding string
2698 chance of the indent space count and the corresponding string
2697 falling out of sync. All code needing the string should just call
2699 falling out of sync. All code needing the string should just call
2698 the method.
2700 the method.
2699
2701
2700 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2702 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2701
2703
2702 * IPython/Magic.py (magic_edit): fix check for when users don't
2704 * IPython/Magic.py (magic_edit): fix check for when users don't
2703 save their output files, the try/except was in the wrong section.
2705 save their output files, the try/except was in the wrong section.
2704
2706
2705 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2707 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2706
2708
2707 * IPython/Magic.py (magic_run): fix __file__ global missing from
2709 * IPython/Magic.py (magic_run): fix __file__ global missing from
2708 script's namespace when executed via %run. After a report by
2710 script's namespace when executed via %run. After a report by
2709 Vivian.
2711 Vivian.
2710
2712
2711 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2713 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2712 when using python 2.4. The parent constructor changed in 2.4, and
2714 when using python 2.4. The parent constructor changed in 2.4, and
2713 we need to track it directly (we can't call it, as it messes up
2715 we need to track it directly (we can't call it, as it messes up
2714 readline and tab-completion inside our pdb would stop working).
2716 readline and tab-completion inside our pdb would stop working).
2715 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2717 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2716
2718
2717 2006-01-16 Ville Vainio <vivainio@gmail.com>
2719 2006-01-16 Ville Vainio <vivainio@gmail.com>
2718
2720
2719 * Ipython/magic.py: Reverted back to old %edit functionality
2721 * Ipython/magic.py: Reverted back to old %edit functionality
2720 that returns file contents on exit.
2722 that returns file contents on exit.
2721
2723
2722 * IPython/path.py: Added Jason Orendorff's "path" module to
2724 * IPython/path.py: Added Jason Orendorff's "path" module to
2723 IPython tree, http://www.jorendorff.com/articles/python/path/.
2725 IPython tree, http://www.jorendorff.com/articles/python/path/.
2724 You can get path objects conveniently through %sc, and !!, e.g.:
2726 You can get path objects conveniently through %sc, and !!, e.g.:
2725 sc files=ls
2727 sc files=ls
2726 for p in files.paths: # or files.p
2728 for p in files.paths: # or files.p
2727 print p,p.mtime
2729 print p,p.mtime
2728
2730
2729 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2731 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2730 now work again without considering the exclusion regexp -
2732 now work again without considering the exclusion regexp -
2731 hence, things like ',foo my/path' turn to 'foo("my/path")'
2733 hence, things like ',foo my/path' turn to 'foo("my/path")'
2732 instead of syntax error.
2734 instead of syntax error.
2733
2735
2734
2736
2735 2006-01-14 Ville Vainio <vivainio@gmail.com>
2737 2006-01-14 Ville Vainio <vivainio@gmail.com>
2736
2738
2737 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2739 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2738 ipapi decorators for python 2.4 users, options() provides access to rc
2740 ipapi decorators for python 2.4 users, options() provides access to rc
2739 data.
2741 data.
2740
2742
2741 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2743 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2742 as path separators (even on Linux ;-). Space character after
2744 as path separators (even on Linux ;-). Space character after
2743 backslash (as yielded by tab completer) is still space;
2745 backslash (as yielded by tab completer) is still space;
2744 "%cd long\ name" works as expected.
2746 "%cd long\ name" works as expected.
2745
2747
2746 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2748 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2747 as "chain of command", with priority. API stays the same,
2749 as "chain of command", with priority. API stays the same,
2748 TryNext exception raised by a hook function signals that
2750 TryNext exception raised by a hook function signals that
2749 current hook failed and next hook should try handling it, as
2751 current hook failed and next hook should try handling it, as
2750 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2752 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2751 requested configurable display hook, which is now implemented.
2753 requested configurable display hook, which is now implemented.
2752
2754
2753 2006-01-13 Ville Vainio <vivainio@gmail.com>
2755 2006-01-13 Ville Vainio <vivainio@gmail.com>
2754
2756
2755 * IPython/platutils*.py: platform specific utility functions,
2757 * IPython/platutils*.py: platform specific utility functions,
2756 so far only set_term_title is implemented (change terminal
2758 so far only set_term_title is implemented (change terminal
2757 label in windowing systems). %cd now changes the title to
2759 label in windowing systems). %cd now changes the title to
2758 current dir.
2760 current dir.
2759
2761
2760 * IPython/Release.py: Added myself to "authors" list,
2762 * IPython/Release.py: Added myself to "authors" list,
2761 had to create new files.
2763 had to create new files.
2762
2764
2763 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2765 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2764 shell escape; not a known bug but had potential to be one in the
2766 shell escape; not a known bug but had potential to be one in the
2765 future.
2767 future.
2766
2768
2767 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2769 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2768 extension API for IPython! See the module for usage example. Fix
2770 extension API for IPython! See the module for usage example. Fix
2769 OInspect for docstring-less magic functions.
2771 OInspect for docstring-less magic functions.
2770
2772
2771
2773
2772 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2774 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2773
2775
2774 * IPython/iplib.py (raw_input): temporarily deactivate all
2776 * IPython/iplib.py (raw_input): temporarily deactivate all
2775 attempts at allowing pasting of code with autoindent on. It
2777 attempts at allowing pasting of code with autoindent on. It
2776 introduced bugs (reported by Prabhu) and I can't seem to find a
2778 introduced bugs (reported by Prabhu) and I can't seem to find a
2777 robust combination which works in all cases. Will have to revisit
2779 robust combination which works in all cases. Will have to revisit
2778 later.
2780 later.
2779
2781
2780 * IPython/genutils.py: remove isspace() function. We've dropped
2782 * IPython/genutils.py: remove isspace() function. We've dropped
2781 2.2 compatibility, so it's OK to use the string method.
2783 2.2 compatibility, so it's OK to use the string method.
2782
2784
2783 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2785 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2784
2786
2785 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2787 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2786 matching what NOT to autocall on, to include all python binary
2788 matching what NOT to autocall on, to include all python binary
2787 operators (including things like 'and', 'or', 'is' and 'in').
2789 operators (including things like 'and', 'or', 'is' and 'in').
2788 Prompted by a bug report on 'foo & bar', but I realized we had
2790 Prompted by a bug report on 'foo & bar', but I realized we had
2789 many more potential bug cases with other operators. The regexp is
2791 many more potential bug cases with other operators. The regexp is
2790 self.re_exclude_auto, it's fairly commented.
2792 self.re_exclude_auto, it's fairly commented.
2791
2793
2792 2006-01-12 Ville Vainio <vivainio@gmail.com>
2794 2006-01-12 Ville Vainio <vivainio@gmail.com>
2793
2795
2794 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2796 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2795 Prettified and hardened string/backslash quoting with ipsystem(),
2797 Prettified and hardened string/backslash quoting with ipsystem(),
2796 ipalias() and ipmagic(). Now even \ characters are passed to
2798 ipalias() and ipmagic(). Now even \ characters are passed to
2797 %magics, !shell escapes and aliases exactly as they are in the
2799 %magics, !shell escapes and aliases exactly as they are in the
2798 ipython command line. Should improve backslash experience,
2800 ipython command line. Should improve backslash experience,
2799 particularly in Windows (path delimiter for some commands that
2801 particularly in Windows (path delimiter for some commands that
2800 won't understand '/'), but Unix benefits as well (regexps). %cd
2802 won't understand '/'), but Unix benefits as well (regexps). %cd
2801 magic still doesn't support backslash path delimiters, though. Also
2803 magic still doesn't support backslash path delimiters, though. Also
2802 deleted all pretense of supporting multiline command strings in
2804 deleted all pretense of supporting multiline command strings in
2803 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2805 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2804
2806
2805 * doc/build_doc_instructions.txt added. Documentation on how to
2807 * doc/build_doc_instructions.txt added. Documentation on how to
2806 use doc/update_manual.py, added yesterday. Both files contributed
2808 use doc/update_manual.py, added yesterday. Both files contributed
2807 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2809 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2808 doc/*.sh for deprecation at a later date.
2810 doc/*.sh for deprecation at a later date.
2809
2811
2810 * /ipython.py Added ipython.py to root directory for
2812 * /ipython.py Added ipython.py to root directory for
2811 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2813 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2812 ipython.py) and development convenience (no need to keep doing
2814 ipython.py) and development convenience (no need to keep doing
2813 "setup.py install" between changes).
2815 "setup.py install" between changes).
2814
2816
2815 * Made ! and !! shell escapes work (again) in multiline expressions:
2817 * Made ! and !! shell escapes work (again) in multiline expressions:
2816 if 1:
2818 if 1:
2817 !ls
2819 !ls
2818 !!ls
2820 !!ls
2819
2821
2820 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2822 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2821
2823
2822 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2824 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2823 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2825 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2824 module in case-insensitive installation. Was causing crashes
2826 module in case-insensitive installation. Was causing crashes
2825 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2827 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2826
2828
2827 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2829 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2828 <marienz-AT-gentoo.org>, closes
2830 <marienz-AT-gentoo.org>, closes
2829 http://www.scipy.net/roundup/ipython/issue51.
2831 http://www.scipy.net/roundup/ipython/issue51.
2830
2832
2831 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2833 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2832
2834
2833 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2835 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2834 problem of excessive CPU usage under *nix and keyboard lag under
2836 problem of excessive CPU usage under *nix and keyboard lag under
2835 win32.
2837 win32.
2836
2838
2837 2006-01-10 *** Released version 0.7.0
2839 2006-01-10 *** Released version 0.7.0
2838
2840
2839 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2841 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2840
2842
2841 * IPython/Release.py (revision): tag version number to 0.7.0,
2843 * IPython/Release.py (revision): tag version number to 0.7.0,
2842 ready for release.
2844 ready for release.
2843
2845
2844 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2846 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2845 it informs the user of the name of the temp. file used. This can
2847 it informs the user of the name of the temp. file used. This can
2846 help if you decide later to reuse that same file, so you know
2848 help if you decide later to reuse that same file, so you know
2847 where to copy the info from.
2849 where to copy the info from.
2848
2850
2849 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2851 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2850
2852
2851 * setup_bdist_egg.py: little script to build an egg. Added
2853 * setup_bdist_egg.py: little script to build an egg. Added
2852 support in the release tools as well.
2854 support in the release tools as well.
2853
2855
2854 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2856 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2855
2857
2856 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2858 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2857 version selection (new -wxversion command line and ipythonrc
2859 version selection (new -wxversion command line and ipythonrc
2858 parameter). Patch contributed by Arnd Baecker
2860 parameter). Patch contributed by Arnd Baecker
2859 <arnd.baecker-AT-web.de>.
2861 <arnd.baecker-AT-web.de>.
2860
2862
2861 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2863 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2862 embedded instances, for variables defined at the interactive
2864 embedded instances, for variables defined at the interactive
2863 prompt of the embedded ipython. Reported by Arnd.
2865 prompt of the embedded ipython. Reported by Arnd.
2864
2866
2865 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2867 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2866 it can be used as a (stateful) toggle, or with a direct parameter.
2868 it can be used as a (stateful) toggle, or with a direct parameter.
2867
2869
2868 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2870 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2869 could be triggered in certain cases and cause the traceback
2871 could be triggered in certain cases and cause the traceback
2870 printer not to work.
2872 printer not to work.
2871
2873
2872 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2874 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2873
2875
2874 * IPython/iplib.py (_should_recompile): Small fix, closes
2876 * IPython/iplib.py (_should_recompile): Small fix, closes
2875 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2877 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2876
2878
2877 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2879 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2878
2880
2879 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2881 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2880 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2882 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2881 Moad for help with tracking it down.
2883 Moad for help with tracking it down.
2882
2884
2883 * IPython/iplib.py (handle_auto): fix autocall handling for
2885 * IPython/iplib.py (handle_auto): fix autocall handling for
2884 objects which support BOTH __getitem__ and __call__ (so that f [x]
2886 objects which support BOTH __getitem__ and __call__ (so that f [x]
2885 is left alone, instead of becoming f([x]) automatically).
2887 is left alone, instead of becoming f([x]) automatically).
2886
2888
2887 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2889 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2888 Ville's patch.
2890 Ville's patch.
2889
2891
2890 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2892 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2891
2893
2892 * IPython/iplib.py (handle_auto): changed autocall semantics to
2894 * IPython/iplib.py (handle_auto): changed autocall semantics to
2893 include 'smart' mode, where the autocall transformation is NOT
2895 include 'smart' mode, where the autocall transformation is NOT
2894 applied if there are no arguments on the line. This allows you to
2896 applied if there are no arguments on the line. This allows you to
2895 just type 'foo' if foo is a callable to see its internal form,
2897 just type 'foo' if foo is a callable to see its internal form,
2896 instead of having it called with no arguments (typically a
2898 instead of having it called with no arguments (typically a
2897 mistake). The old 'full' autocall still exists: for that, you
2899 mistake). The old 'full' autocall still exists: for that, you
2898 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2900 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2899
2901
2900 * IPython/completer.py (Completer.attr_matches): add
2902 * IPython/completer.py (Completer.attr_matches): add
2901 tab-completion support for Enthoughts' traits. After a report by
2903 tab-completion support for Enthoughts' traits. After a report by
2902 Arnd and a patch by Prabhu.
2904 Arnd and a patch by Prabhu.
2903
2905
2904 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2906 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2905
2907
2906 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2908 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2907 Schmolck's patch to fix inspect.getinnerframes().
2909 Schmolck's patch to fix inspect.getinnerframes().
2908
2910
2909 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2911 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2910 for embedded instances, regarding handling of namespaces and items
2912 for embedded instances, regarding handling of namespaces and items
2911 added to the __builtin__ one. Multiple embedded instances and
2913 added to the __builtin__ one. Multiple embedded instances and
2912 recursive embeddings should work better now (though I'm not sure
2914 recursive embeddings should work better now (though I'm not sure
2913 I've got all the corner cases fixed, that code is a bit of a brain
2915 I've got all the corner cases fixed, that code is a bit of a brain
2914 twister).
2916 twister).
2915
2917
2916 * IPython/Magic.py (magic_edit): added support to edit in-memory
2918 * IPython/Magic.py (magic_edit): added support to edit in-memory
2917 macros (automatically creates the necessary temp files). %edit
2919 macros (automatically creates the necessary temp files). %edit
2918 also doesn't return the file contents anymore, it's just noise.
2920 also doesn't return the file contents anymore, it's just noise.
2919
2921
2920 * IPython/completer.py (Completer.attr_matches): revert change to
2922 * IPython/completer.py (Completer.attr_matches): revert change to
2921 complete only on attributes listed in __all__. I realized it
2923 complete only on attributes listed in __all__. I realized it
2922 cripples the tab-completion system as a tool for exploring the
2924 cripples the tab-completion system as a tool for exploring the
2923 internals of unknown libraries (it renders any non-__all__
2925 internals of unknown libraries (it renders any non-__all__
2924 attribute off-limits). I got bit by this when trying to see
2926 attribute off-limits). I got bit by this when trying to see
2925 something inside the dis module.
2927 something inside the dis module.
2926
2928
2927 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2929 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2928
2930
2929 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2931 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2930 namespace for users and extension writers to hold data in. This
2932 namespace for users and extension writers to hold data in. This
2931 follows the discussion in
2933 follows the discussion in
2932 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2934 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2933
2935
2934 * IPython/completer.py (IPCompleter.complete): small patch to help
2936 * IPython/completer.py (IPCompleter.complete): small patch to help
2935 tab-completion under Emacs, after a suggestion by John Barnard
2937 tab-completion under Emacs, after a suggestion by John Barnard
2936 <barnarj-AT-ccf.org>.
2938 <barnarj-AT-ccf.org>.
2937
2939
2938 * IPython/Magic.py (Magic.extract_input_slices): added support for
2940 * IPython/Magic.py (Magic.extract_input_slices): added support for
2939 the slice notation in magics to use N-M to represent numbers N...M
2941 the slice notation in magics to use N-M to represent numbers N...M
2940 (closed endpoints). This is used by %macro and %save.
2942 (closed endpoints). This is used by %macro and %save.
2941
2943
2942 * IPython/completer.py (Completer.attr_matches): for modules which
2944 * IPython/completer.py (Completer.attr_matches): for modules which
2943 define __all__, complete only on those. After a patch by Jeffrey
2945 define __all__, complete only on those. After a patch by Jeffrey
2944 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2946 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2945 speed up this routine.
2947 speed up this routine.
2946
2948
2947 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2949 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2948 don't know if this is the end of it, but the behavior now is
2950 don't know if this is the end of it, but the behavior now is
2949 certainly much more correct. Note that coupled with macros,
2951 certainly much more correct. Note that coupled with macros,
2950 slightly surprising (at first) behavior may occur: a macro will in
2952 slightly surprising (at first) behavior may occur: a macro will in
2951 general expand to multiple lines of input, so upon exiting, the
2953 general expand to multiple lines of input, so upon exiting, the
2952 in/out counters will both be bumped by the corresponding amount
2954 in/out counters will both be bumped by the corresponding amount
2953 (as if the macro's contents had been typed interactively). Typing
2955 (as if the macro's contents had been typed interactively). Typing
2954 %hist will reveal the intermediate (silently processed) lines.
2956 %hist will reveal the intermediate (silently processed) lines.
2955
2957
2956 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2958 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2957 pickle to fail (%run was overwriting __main__ and not restoring
2959 pickle to fail (%run was overwriting __main__ and not restoring
2958 it, but pickle relies on __main__ to operate).
2960 it, but pickle relies on __main__ to operate).
2959
2961
2960 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2962 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2961 using properties, but forgot to make the main InteractiveShell
2963 using properties, but forgot to make the main InteractiveShell
2962 class a new-style class. Properties fail silently, and
2964 class a new-style class. Properties fail silently, and
2963 mysteriously, with old-style class (getters work, but
2965 mysteriously, with old-style class (getters work, but
2964 setters don't do anything).
2966 setters don't do anything).
2965
2967
2966 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2968 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2967
2969
2968 * IPython/Magic.py (magic_history): fix history reporting bug (I
2970 * IPython/Magic.py (magic_history): fix history reporting bug (I
2969 know some nasties are still there, I just can't seem to find a
2971 know some nasties are still there, I just can't seem to find a
2970 reproducible test case to track them down; the input history is
2972 reproducible test case to track them down; the input history is
2971 falling out of sync...)
2973 falling out of sync...)
2972
2974
2973 * IPython/iplib.py (handle_shell_escape): fix bug where both
2975 * IPython/iplib.py (handle_shell_escape): fix bug where both
2974 aliases and system accesses where broken for indented code (such
2976 aliases and system accesses where broken for indented code (such
2975 as loops).
2977 as loops).
2976
2978
2977 * IPython/genutils.py (shell): fix small but critical bug for
2979 * IPython/genutils.py (shell): fix small but critical bug for
2978 win32 system access.
2980 win32 system access.
2979
2981
2980 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2982 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2981
2983
2982 * IPython/iplib.py (showtraceback): remove use of the
2984 * IPython/iplib.py (showtraceback): remove use of the
2983 sys.last_{type/value/traceback} structures, which are non
2985 sys.last_{type/value/traceback} structures, which are non
2984 thread-safe.
2986 thread-safe.
2985 (_prefilter): change control flow to ensure that we NEVER
2987 (_prefilter): change control flow to ensure that we NEVER
2986 introspect objects when autocall is off. This will guarantee that
2988 introspect objects when autocall is off. This will guarantee that
2987 having an input line of the form 'x.y', where access to attribute
2989 having an input line of the form 'x.y', where access to attribute
2988 'y' has side effects, doesn't trigger the side effect TWICE. It
2990 'y' has side effects, doesn't trigger the side effect TWICE. It
2989 is important to note that, with autocall on, these side effects
2991 is important to note that, with autocall on, these side effects
2990 can still happen.
2992 can still happen.
2991 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2993 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2992 trio. IPython offers these three kinds of special calls which are
2994 trio. IPython offers these three kinds of special calls which are
2993 not python code, and it's a good thing to have their call method
2995 not python code, and it's a good thing to have their call method
2994 be accessible as pure python functions (not just special syntax at
2996 be accessible as pure python functions (not just special syntax at
2995 the command line). It gives us a better internal implementation
2997 the command line). It gives us a better internal implementation
2996 structure, as well as exposing these for user scripting more
2998 structure, as well as exposing these for user scripting more
2997 cleanly.
2999 cleanly.
2998
3000
2999 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3001 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3000 file. Now that they'll be more likely to be used with the
3002 file. Now that they'll be more likely to be used with the
3001 persistance system (%store), I want to make sure their module path
3003 persistance system (%store), I want to make sure their module path
3002 doesn't change in the future, so that we don't break things for
3004 doesn't change in the future, so that we don't break things for
3003 users' persisted data.
3005 users' persisted data.
3004
3006
3005 * IPython/iplib.py (autoindent_update): move indentation
3007 * IPython/iplib.py (autoindent_update): move indentation
3006 management into the _text_ processing loop, not the keyboard
3008 management into the _text_ processing loop, not the keyboard
3007 interactive one. This is necessary to correctly process non-typed
3009 interactive one. This is necessary to correctly process non-typed
3008 multiline input (such as macros).
3010 multiline input (such as macros).
3009
3011
3010 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3012 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3011 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3013 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3012 which was producing problems in the resulting manual.
3014 which was producing problems in the resulting manual.
3013 (magic_whos): improve reporting of instances (show their class,
3015 (magic_whos): improve reporting of instances (show their class,
3014 instead of simply printing 'instance' which isn't terribly
3016 instead of simply printing 'instance' which isn't terribly
3015 informative).
3017 informative).
3016
3018
3017 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3019 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3018 (minor mods) to support network shares under win32.
3020 (minor mods) to support network shares under win32.
3019
3021
3020 * IPython/winconsole.py (get_console_size): add new winconsole
3022 * IPython/winconsole.py (get_console_size): add new winconsole
3021 module and fixes to page_dumb() to improve its behavior under
3023 module and fixes to page_dumb() to improve its behavior under
3022 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3024 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3023
3025
3024 * IPython/Magic.py (Macro): simplified Macro class to just
3026 * IPython/Magic.py (Macro): simplified Macro class to just
3025 subclass list. We've had only 2.2 compatibility for a very long
3027 subclass list. We've had only 2.2 compatibility for a very long
3026 time, yet I was still avoiding subclassing the builtin types. No
3028 time, yet I was still avoiding subclassing the builtin types. No
3027 more (I'm also starting to use properties, though I won't shift to
3029 more (I'm also starting to use properties, though I won't shift to
3028 2.3-specific features quite yet).
3030 2.3-specific features quite yet).
3029 (magic_store): added Ville's patch for lightweight variable
3031 (magic_store): added Ville's patch for lightweight variable
3030 persistence, after a request on the user list by Matt Wilkie
3032 persistence, after a request on the user list by Matt Wilkie
3031 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3033 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3032 details.
3034 details.
3033
3035
3034 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3036 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3035 changed the default logfile name from 'ipython.log' to
3037 changed the default logfile name from 'ipython.log' to
3036 'ipython_log.py'. These logs are real python files, and now that
3038 'ipython_log.py'. These logs are real python files, and now that
3037 we have much better multiline support, people are more likely to
3039 we have much better multiline support, people are more likely to
3038 want to use them as such. Might as well name them correctly.
3040 want to use them as such. Might as well name them correctly.
3039
3041
3040 * IPython/Magic.py: substantial cleanup. While we can't stop
3042 * IPython/Magic.py: substantial cleanup. While we can't stop
3041 using magics as mixins, due to the existing customizations 'out
3043 using magics as mixins, due to the existing customizations 'out
3042 there' which rely on the mixin naming conventions, at least I
3044 there' which rely on the mixin naming conventions, at least I
3043 cleaned out all cross-class name usage. So once we are OK with
3045 cleaned out all cross-class name usage. So once we are OK with
3044 breaking compatibility, the two systems can be separated.
3046 breaking compatibility, the two systems can be separated.
3045
3047
3046 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3048 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3047 anymore, and the class is a fair bit less hideous as well. New
3049 anymore, and the class is a fair bit less hideous as well. New
3048 features were also introduced: timestamping of input, and logging
3050 features were also introduced: timestamping of input, and logging
3049 of output results. These are user-visible with the -t and -o
3051 of output results. These are user-visible with the -t and -o
3050 options to %logstart. Closes
3052 options to %logstart. Closes
3051 http://www.scipy.net/roundup/ipython/issue11 and a request by
3053 http://www.scipy.net/roundup/ipython/issue11 and a request by
3052 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3054 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3053
3055
3054 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3056 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3055
3057
3056 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3058 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3057 better handle backslashes in paths. See the thread 'More Windows
3059 better handle backslashes in paths. See the thread 'More Windows
3058 questions part 2 - \/ characters revisited' on the iypthon user
3060 questions part 2 - \/ characters revisited' on the iypthon user
3059 list:
3061 list:
3060 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3062 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3061
3063
3062 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3064 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3063
3065
3064 (InteractiveShell.__init__): change threaded shells to not use the
3066 (InteractiveShell.__init__): change threaded shells to not use the
3065 ipython crash handler. This was causing more problems than not,
3067 ipython crash handler. This was causing more problems than not,
3066 as exceptions in the main thread (GUI code, typically) would
3068 as exceptions in the main thread (GUI code, typically) would
3067 always show up as a 'crash', when they really weren't.
3069 always show up as a 'crash', when they really weren't.
3068
3070
3069 The colors and exception mode commands (%colors/%xmode) have been
3071 The colors and exception mode commands (%colors/%xmode) have been
3070 synchronized to also take this into account, so users can get
3072 synchronized to also take this into account, so users can get
3071 verbose exceptions for their threaded code as well. I also added
3073 verbose exceptions for their threaded code as well. I also added
3072 support for activating pdb inside this exception handler as well,
3074 support for activating pdb inside this exception handler as well,
3073 so now GUI authors can use IPython's enhanced pdb at runtime.
3075 so now GUI authors can use IPython's enhanced pdb at runtime.
3074
3076
3075 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3077 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3076 true by default, and add it to the shipped ipythonrc file. Since
3078 true by default, and add it to the shipped ipythonrc file. Since
3077 this asks the user before proceeding, I think it's OK to make it
3079 this asks the user before proceeding, I think it's OK to make it
3078 true by default.
3080 true by default.
3079
3081
3080 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3082 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3081 of the previous special-casing of input in the eval loop. I think
3083 of the previous special-casing of input in the eval loop. I think
3082 this is cleaner, as they really are commands and shouldn't have
3084 this is cleaner, as they really are commands and shouldn't have
3083 a special role in the middle of the core code.
3085 a special role in the middle of the core code.
3084
3086
3085 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3087 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3086
3088
3087 * IPython/iplib.py (edit_syntax_error): added support for
3089 * IPython/iplib.py (edit_syntax_error): added support for
3088 automatically reopening the editor if the file had a syntax error
3090 automatically reopening the editor if the file had a syntax error
3089 in it. Thanks to scottt who provided the patch at:
3091 in it. Thanks to scottt who provided the patch at:
3090 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3092 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3091 version committed).
3093 version committed).
3092
3094
3093 * IPython/iplib.py (handle_normal): add suport for multi-line
3095 * IPython/iplib.py (handle_normal): add suport for multi-line
3094 input with emtpy lines. This fixes
3096 input with emtpy lines. This fixes
3095 http://www.scipy.net/roundup/ipython/issue43 and a similar
3097 http://www.scipy.net/roundup/ipython/issue43 and a similar
3096 discussion on the user list.
3098 discussion on the user list.
3097
3099
3098 WARNING: a behavior change is necessarily introduced to support
3100 WARNING: a behavior change is necessarily introduced to support
3099 blank lines: now a single blank line with whitespace does NOT
3101 blank lines: now a single blank line with whitespace does NOT
3100 break the input loop, which means that when autoindent is on, by
3102 break the input loop, which means that when autoindent is on, by
3101 default hitting return on the next (indented) line does NOT exit.
3103 default hitting return on the next (indented) line does NOT exit.
3102
3104
3103 Instead, to exit a multiline input you can either have:
3105 Instead, to exit a multiline input you can either have:
3104
3106
3105 - TWO whitespace lines (just hit return again), or
3107 - TWO whitespace lines (just hit return again), or
3106 - a single whitespace line of a different length than provided
3108 - a single whitespace line of a different length than provided
3107 by the autoindent (add or remove a space).
3109 by the autoindent (add or remove a space).
3108
3110
3109 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3111 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3110 module to better organize all readline-related functionality.
3112 module to better organize all readline-related functionality.
3111 I've deleted FlexCompleter and put all completion clases here.
3113 I've deleted FlexCompleter and put all completion clases here.
3112
3114
3113 * IPython/iplib.py (raw_input): improve indentation management.
3115 * IPython/iplib.py (raw_input): improve indentation management.
3114 It is now possible to paste indented code with autoindent on, and
3116 It is now possible to paste indented code with autoindent on, and
3115 the code is interpreted correctly (though it still looks bad on
3117 the code is interpreted correctly (though it still looks bad on
3116 screen, due to the line-oriented nature of ipython).
3118 screen, due to the line-oriented nature of ipython).
3117 (MagicCompleter.complete): change behavior so that a TAB key on an
3119 (MagicCompleter.complete): change behavior so that a TAB key on an
3118 otherwise empty line actually inserts a tab, instead of completing
3120 otherwise empty line actually inserts a tab, instead of completing
3119 on the entire global namespace. This makes it easier to use the
3121 on the entire global namespace. This makes it easier to use the
3120 TAB key for indentation. After a request by Hans Meine
3122 TAB key for indentation. After a request by Hans Meine
3121 <hans_meine-AT-gmx.net>
3123 <hans_meine-AT-gmx.net>
3122 (_prefilter): add support so that typing plain 'exit' or 'quit'
3124 (_prefilter): add support so that typing plain 'exit' or 'quit'
3123 does a sensible thing. Originally I tried to deviate as little as
3125 does a sensible thing. Originally I tried to deviate as little as
3124 possible from the default python behavior, but even that one may
3126 possible from the default python behavior, but even that one may
3125 change in this direction (thread on python-dev to that effect).
3127 change in this direction (thread on python-dev to that effect).
3126 Regardless, ipython should do the right thing even if CPython's
3128 Regardless, ipython should do the right thing even if CPython's
3127 '>>>' prompt doesn't.
3129 '>>>' prompt doesn't.
3128 (InteractiveShell): removed subclassing code.InteractiveConsole
3130 (InteractiveShell): removed subclassing code.InteractiveConsole
3129 class. By now we'd overridden just about all of its methods: I've
3131 class. By now we'd overridden just about all of its methods: I've
3130 copied the remaining two over, and now ipython is a standalone
3132 copied the remaining two over, and now ipython is a standalone
3131 class. This will provide a clearer picture for the chainsaw
3133 class. This will provide a clearer picture for the chainsaw
3132 branch refactoring.
3134 branch refactoring.
3133
3135
3134 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3136 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3135
3137
3136 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3138 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3137 failures for objects which break when dir() is called on them.
3139 failures for objects which break when dir() is called on them.
3138
3140
3139 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3141 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3140 distinct local and global namespaces in the completer API. This
3142 distinct local and global namespaces in the completer API. This
3141 change allows us to properly handle completion with distinct
3143 change allows us to properly handle completion with distinct
3142 scopes, including in embedded instances (this had never really
3144 scopes, including in embedded instances (this had never really
3143 worked correctly).
3145 worked correctly).
3144
3146
3145 Note: this introduces a change in the constructor for
3147 Note: this introduces a change in the constructor for
3146 MagicCompleter, as a new global_namespace parameter is now the
3148 MagicCompleter, as a new global_namespace parameter is now the
3147 second argument (the others were bumped one position).
3149 second argument (the others were bumped one position).
3148
3150
3149 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3151 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3150
3152
3151 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3153 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3152 embedded instances (which can be done now thanks to Vivian's
3154 embedded instances (which can be done now thanks to Vivian's
3153 frame-handling fixes for pdb).
3155 frame-handling fixes for pdb).
3154 (InteractiveShell.__init__): Fix namespace handling problem in
3156 (InteractiveShell.__init__): Fix namespace handling problem in
3155 embedded instances. We were overwriting __main__ unconditionally,
3157 embedded instances. We were overwriting __main__ unconditionally,
3156 and this should only be done for 'full' (non-embedded) IPython;
3158 and this should only be done for 'full' (non-embedded) IPython;
3157 embedded instances must respect the caller's __main__. Thanks to
3159 embedded instances must respect the caller's __main__. Thanks to
3158 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3160 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3159
3161
3160 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3162 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3161
3163
3162 * setup.py: added download_url to setup(). This registers the
3164 * setup.py: added download_url to setup(). This registers the
3163 download address at PyPI, which is not only useful to humans
3165 download address at PyPI, which is not only useful to humans
3164 browsing the site, but is also picked up by setuptools (the Eggs
3166 browsing the site, but is also picked up by setuptools (the Eggs
3165 machinery). Thanks to Ville and R. Kern for the info/discussion
3167 machinery). Thanks to Ville and R. Kern for the info/discussion
3166 on this.
3168 on this.
3167
3169
3168 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3170 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3169
3171
3170 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3172 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3171 This brings a lot of nice functionality to the pdb mode, which now
3173 This brings a lot of nice functionality to the pdb mode, which now
3172 has tab-completion, syntax highlighting, and better stack handling
3174 has tab-completion, syntax highlighting, and better stack handling
3173 than before. Many thanks to Vivian De Smedt
3175 than before. Many thanks to Vivian De Smedt
3174 <vivian-AT-vdesmedt.com> for the original patches.
3176 <vivian-AT-vdesmedt.com> for the original patches.
3175
3177
3176 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3178 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3177
3179
3178 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3180 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3179 sequence to consistently accept the banner argument. The
3181 sequence to consistently accept the banner argument. The
3180 inconsistency was tripping SAGE, thanks to Gary Zablackis
3182 inconsistency was tripping SAGE, thanks to Gary Zablackis
3181 <gzabl-AT-yahoo.com> for the report.
3183 <gzabl-AT-yahoo.com> for the report.
3182
3184
3183 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3185 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3184
3186
3185 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3187 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3186 Fix bug where a naked 'alias' call in the ipythonrc file would
3188 Fix bug where a naked 'alias' call in the ipythonrc file would
3187 cause a crash. Bug reported by Jorgen Stenarson.
3189 cause a crash. Bug reported by Jorgen Stenarson.
3188
3190
3189 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3191 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3190
3192
3191 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3193 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3192 startup time.
3194 startup time.
3193
3195
3194 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3196 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3195 instances had introduced a bug with globals in normal code. Now
3197 instances had introduced a bug with globals in normal code. Now
3196 it's working in all cases.
3198 it's working in all cases.
3197
3199
3198 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3200 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3199 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3201 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3200 has been introduced to set the default case sensitivity of the
3202 has been introduced to set the default case sensitivity of the
3201 searches. Users can still select either mode at runtime on a
3203 searches. Users can still select either mode at runtime on a
3202 per-search basis.
3204 per-search basis.
3203
3205
3204 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3206 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3205
3207
3206 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3208 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3207 attributes in wildcard searches for subclasses. Modified version
3209 attributes in wildcard searches for subclasses. Modified version
3208 of a patch by Jorgen.
3210 of a patch by Jorgen.
3209
3211
3210 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3212 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3211
3213
3212 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3214 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3213 embedded instances. I added a user_global_ns attribute to the
3215 embedded instances. I added a user_global_ns attribute to the
3214 InteractiveShell class to handle this.
3216 InteractiveShell class to handle this.
3215
3217
3216 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3218 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3217
3219
3218 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3220 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3219 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3221 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3220 (reported under win32, but may happen also in other platforms).
3222 (reported under win32, but may happen also in other platforms).
3221 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3223 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3222
3224
3223 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3225 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3224
3226
3225 * IPython/Magic.py (magic_psearch): new support for wildcard
3227 * IPython/Magic.py (magic_psearch): new support for wildcard
3226 patterns. Now, typing ?a*b will list all names which begin with a
3228 patterns. Now, typing ?a*b will list all names which begin with a
3227 and end in b, for example. The %psearch magic has full
3229 and end in b, for example. The %psearch magic has full
3228 docstrings. Many thanks to JΓΆrgen Stenarson
3230 docstrings. Many thanks to JΓΆrgen Stenarson
3229 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3231 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3230 implementing this functionality.
3232 implementing this functionality.
3231
3233
3232 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3234 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3233
3235
3234 * Manual: fixed long-standing annoyance of double-dashes (as in
3236 * Manual: fixed long-standing annoyance of double-dashes (as in
3235 --prefix=~, for example) being stripped in the HTML version. This
3237 --prefix=~, for example) being stripped in the HTML version. This
3236 is a latex2html bug, but a workaround was provided. Many thanks
3238 is a latex2html bug, but a workaround was provided. Many thanks
3237 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3239 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3238 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3240 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3239 rolling. This seemingly small issue had tripped a number of users
3241 rolling. This seemingly small issue had tripped a number of users
3240 when first installing, so I'm glad to see it gone.
3242 when first installing, so I'm glad to see it gone.
3241
3243
3242 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3244 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3243
3245
3244 * IPython/Extensions/numeric_formats.py: fix missing import,
3246 * IPython/Extensions/numeric_formats.py: fix missing import,
3245 reported by Stephen Walton.
3247 reported by Stephen Walton.
3246
3248
3247 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3249 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3248
3250
3249 * IPython/demo.py: finish demo module, fully documented now.
3251 * IPython/demo.py: finish demo module, fully documented now.
3250
3252
3251 * IPython/genutils.py (file_read): simple little utility to read a
3253 * IPython/genutils.py (file_read): simple little utility to read a
3252 file and ensure it's closed afterwards.
3254 file and ensure it's closed afterwards.
3253
3255
3254 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3256 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3255
3257
3256 * IPython/demo.py (Demo.__init__): added support for individually
3258 * IPython/demo.py (Demo.__init__): added support for individually
3257 tagging blocks for automatic execution.
3259 tagging blocks for automatic execution.
3258
3260
3259 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3261 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3260 syntax-highlighted python sources, requested by John.
3262 syntax-highlighted python sources, requested by John.
3261
3263
3262 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3264 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3263
3265
3264 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3266 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3265 finishing.
3267 finishing.
3266
3268
3267 * IPython/genutils.py (shlex_split): moved from Magic to here,
3269 * IPython/genutils.py (shlex_split): moved from Magic to here,
3268 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3270 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3269
3271
3270 * IPython/demo.py (Demo.__init__): added support for silent
3272 * IPython/demo.py (Demo.__init__): added support for silent
3271 blocks, improved marks as regexps, docstrings written.
3273 blocks, improved marks as regexps, docstrings written.
3272 (Demo.__init__): better docstring, added support for sys.argv.
3274 (Demo.__init__): better docstring, added support for sys.argv.
3273
3275
3274 * IPython/genutils.py (marquee): little utility used by the demo
3276 * IPython/genutils.py (marquee): little utility used by the demo
3275 code, handy in general.
3277 code, handy in general.
3276
3278
3277 * IPython/demo.py (Demo.__init__): new class for interactive
3279 * IPython/demo.py (Demo.__init__): new class for interactive
3278 demos. Not documented yet, I just wrote it in a hurry for
3280 demos. Not documented yet, I just wrote it in a hurry for
3279 scipy'05. Will docstring later.
3281 scipy'05. Will docstring later.
3280
3282
3281 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3283 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3282
3284
3283 * IPython/Shell.py (sigint_handler): Drastic simplification which
3285 * IPython/Shell.py (sigint_handler): Drastic simplification which
3284 also seems to make Ctrl-C work correctly across threads! This is
3286 also seems to make Ctrl-C work correctly across threads! This is
3285 so simple, that I can't beleive I'd missed it before. Needs more
3287 so simple, that I can't beleive I'd missed it before. Needs more
3286 testing, though.
3288 testing, though.
3287 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3289 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3288 like this before...
3290 like this before...
3289
3291
3290 * IPython/genutils.py (get_home_dir): add protection against
3292 * IPython/genutils.py (get_home_dir): add protection against
3291 non-dirs in win32 registry.
3293 non-dirs in win32 registry.
3292
3294
3293 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3295 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3294 bug where dict was mutated while iterating (pysh crash).
3296 bug where dict was mutated while iterating (pysh crash).
3295
3297
3296 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3298 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3297
3299
3298 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3300 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3299 spurious newlines added by this routine. After a report by
3301 spurious newlines added by this routine. After a report by
3300 F. Mantegazza.
3302 F. Mantegazza.
3301
3303
3302 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3304 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3303
3305
3304 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3306 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3305 calls. These were a leftover from the GTK 1.x days, and can cause
3307 calls. These were a leftover from the GTK 1.x days, and can cause
3306 problems in certain cases (after a report by John Hunter).
3308 problems in certain cases (after a report by John Hunter).
3307
3309
3308 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3310 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3309 os.getcwd() fails at init time. Thanks to patch from David Remahl
3311 os.getcwd() fails at init time. Thanks to patch from David Remahl
3310 <chmod007-AT-mac.com>.
3312 <chmod007-AT-mac.com>.
3311 (InteractiveShell.__init__): prevent certain special magics from
3313 (InteractiveShell.__init__): prevent certain special magics from
3312 being shadowed by aliases. Closes
3314 being shadowed by aliases. Closes
3313 http://www.scipy.net/roundup/ipython/issue41.
3315 http://www.scipy.net/roundup/ipython/issue41.
3314
3316
3315 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3317 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3316
3318
3317 * IPython/iplib.py (InteractiveShell.complete): Added new
3319 * IPython/iplib.py (InteractiveShell.complete): Added new
3318 top-level completion method to expose the completion mechanism
3320 top-level completion method to expose the completion mechanism
3319 beyond readline-based environments.
3321 beyond readline-based environments.
3320
3322
3321 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3323 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3322
3324
3323 * tools/ipsvnc (svnversion): fix svnversion capture.
3325 * tools/ipsvnc (svnversion): fix svnversion capture.
3324
3326
3325 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3327 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3326 attribute to self, which was missing. Before, it was set by a
3328 attribute to self, which was missing. Before, it was set by a
3327 routine which in certain cases wasn't being called, so the
3329 routine which in certain cases wasn't being called, so the
3328 instance could end up missing the attribute. This caused a crash.
3330 instance could end up missing the attribute. This caused a crash.
3329 Closes http://www.scipy.net/roundup/ipython/issue40.
3331 Closes http://www.scipy.net/roundup/ipython/issue40.
3330
3332
3331 2005-08-16 Fernando Perez <fperez@colorado.edu>
3333 2005-08-16 Fernando Perez <fperez@colorado.edu>
3332
3334
3333 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3335 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3334 contains non-string attribute. Closes
3336 contains non-string attribute. Closes
3335 http://www.scipy.net/roundup/ipython/issue38.
3337 http://www.scipy.net/roundup/ipython/issue38.
3336
3338
3337 2005-08-14 Fernando Perez <fperez@colorado.edu>
3339 2005-08-14 Fernando Perez <fperez@colorado.edu>
3338
3340
3339 * tools/ipsvnc: Minor improvements, to add changeset info.
3341 * tools/ipsvnc: Minor improvements, to add changeset info.
3340
3342
3341 2005-08-12 Fernando Perez <fperez@colorado.edu>
3343 2005-08-12 Fernando Perez <fperez@colorado.edu>
3342
3344
3343 * IPython/iplib.py (runsource): remove self.code_to_run_src
3345 * IPython/iplib.py (runsource): remove self.code_to_run_src
3344 attribute. I realized this is nothing more than
3346 attribute. I realized this is nothing more than
3345 '\n'.join(self.buffer), and having the same data in two different
3347 '\n'.join(self.buffer), and having the same data in two different
3346 places is just asking for synchronization bugs. This may impact
3348 places is just asking for synchronization bugs. This may impact
3347 people who have custom exception handlers, so I need to warn
3349 people who have custom exception handlers, so I need to warn
3348 ipython-dev about it (F. Mantegazza may use them).
3350 ipython-dev about it (F. Mantegazza may use them).
3349
3351
3350 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3352 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3351
3353
3352 * IPython/genutils.py: fix 2.2 compatibility (generators)
3354 * IPython/genutils.py: fix 2.2 compatibility (generators)
3353
3355
3354 2005-07-18 Fernando Perez <fperez@colorado.edu>
3356 2005-07-18 Fernando Perez <fperez@colorado.edu>
3355
3357
3356 * IPython/genutils.py (get_home_dir): fix to help users with
3358 * IPython/genutils.py (get_home_dir): fix to help users with
3357 invalid $HOME under win32.
3359 invalid $HOME under win32.
3358
3360
3359 2005-07-17 Fernando Perez <fperez@colorado.edu>
3361 2005-07-17 Fernando Perez <fperez@colorado.edu>
3360
3362
3361 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3363 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3362 some old hacks and clean up a bit other routines; code should be
3364 some old hacks and clean up a bit other routines; code should be
3363 simpler and a bit faster.
3365 simpler and a bit faster.
3364
3366
3365 * IPython/iplib.py (interact): removed some last-resort attempts
3367 * IPython/iplib.py (interact): removed some last-resort attempts
3366 to survive broken stdout/stderr. That code was only making it
3368 to survive broken stdout/stderr. That code was only making it
3367 harder to abstract out the i/o (necessary for gui integration),
3369 harder to abstract out the i/o (necessary for gui integration),
3368 and the crashes it could prevent were extremely rare in practice
3370 and the crashes it could prevent were extremely rare in practice
3369 (besides being fully user-induced in a pretty violent manner).
3371 (besides being fully user-induced in a pretty violent manner).
3370
3372
3371 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3373 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3372 Nothing major yet, but the code is simpler to read; this should
3374 Nothing major yet, but the code is simpler to read; this should
3373 make it easier to do more serious modifications in the future.
3375 make it easier to do more serious modifications in the future.
3374
3376
3375 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3377 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3376 which broke in .15 (thanks to a report by Ville).
3378 which broke in .15 (thanks to a report by Ville).
3377
3379
3378 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3380 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3379 be quite correct, I know next to nothing about unicode). This
3381 be quite correct, I know next to nothing about unicode). This
3380 will allow unicode strings to be used in prompts, amongst other
3382 will allow unicode strings to be used in prompts, amongst other
3381 cases. It also will prevent ipython from crashing when unicode
3383 cases. It also will prevent ipython from crashing when unicode
3382 shows up unexpectedly in many places. If ascii encoding fails, we
3384 shows up unexpectedly in many places. If ascii encoding fails, we
3383 assume utf_8. Currently the encoding is not a user-visible
3385 assume utf_8. Currently the encoding is not a user-visible
3384 setting, though it could be made so if there is demand for it.
3386 setting, though it could be made so if there is demand for it.
3385
3387
3386 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3388 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3387
3389
3388 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3390 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3389
3391
3390 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3392 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3391
3393
3392 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3394 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3393 code can work transparently for 2.2/2.3.
3395 code can work transparently for 2.2/2.3.
3394
3396
3395 2005-07-16 Fernando Perez <fperez@colorado.edu>
3397 2005-07-16 Fernando Perez <fperez@colorado.edu>
3396
3398
3397 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3399 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3398 out of the color scheme table used for coloring exception
3400 out of the color scheme table used for coloring exception
3399 tracebacks. This allows user code to add new schemes at runtime.
3401 tracebacks. This allows user code to add new schemes at runtime.
3400 This is a minimally modified version of the patch at
3402 This is a minimally modified version of the patch at
3401 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3403 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3402 for the contribution.
3404 for the contribution.
3403
3405
3404 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3406 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3405 slightly modified version of the patch in
3407 slightly modified version of the patch in
3406 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3408 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3407 to remove the previous try/except solution (which was costlier).
3409 to remove the previous try/except solution (which was costlier).
3408 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3410 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3409
3411
3410 2005-06-08 Fernando Perez <fperez@colorado.edu>
3412 2005-06-08 Fernando Perez <fperez@colorado.edu>
3411
3413
3412 * IPython/iplib.py (write/write_err): Add methods to abstract all
3414 * IPython/iplib.py (write/write_err): Add methods to abstract all
3413 I/O a bit more.
3415 I/O a bit more.
3414
3416
3415 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3417 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3416 warning, reported by Aric Hagberg, fix by JD Hunter.
3418 warning, reported by Aric Hagberg, fix by JD Hunter.
3417
3419
3418 2005-06-02 *** Released version 0.6.15
3420 2005-06-02 *** Released version 0.6.15
3419
3421
3420 2005-06-01 Fernando Perez <fperez@colorado.edu>
3422 2005-06-01 Fernando Perez <fperez@colorado.edu>
3421
3423
3422 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3424 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3423 tab-completion of filenames within open-quoted strings. Note that
3425 tab-completion of filenames within open-quoted strings. Note that
3424 this requires that in ~/.ipython/ipythonrc, users change the
3426 this requires that in ~/.ipython/ipythonrc, users change the
3425 readline delimiters configuration to read:
3427 readline delimiters configuration to read:
3426
3428
3427 readline_remove_delims -/~
3429 readline_remove_delims -/~
3428
3430
3429
3431
3430 2005-05-31 *** Released version 0.6.14
3432 2005-05-31 *** Released version 0.6.14
3431
3433
3432 2005-05-29 Fernando Perez <fperez@colorado.edu>
3434 2005-05-29 Fernando Perez <fperez@colorado.edu>
3433
3435
3434 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3436 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3435 with files not on the filesystem. Reported by Eliyahu Sandler
3437 with files not on the filesystem. Reported by Eliyahu Sandler
3436 <eli@gondolin.net>
3438 <eli@gondolin.net>
3437
3439
3438 2005-05-22 Fernando Perez <fperez@colorado.edu>
3440 2005-05-22 Fernando Perez <fperez@colorado.edu>
3439
3441
3440 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3442 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3441 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3443 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3442
3444
3443 2005-05-19 Fernando Perez <fperez@colorado.edu>
3445 2005-05-19 Fernando Perez <fperez@colorado.edu>
3444
3446
3445 * IPython/iplib.py (safe_execfile): close a file which could be
3447 * IPython/iplib.py (safe_execfile): close a file which could be
3446 left open (causing problems in win32, which locks open files).
3448 left open (causing problems in win32, which locks open files).
3447 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3449 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3448
3450
3449 2005-05-18 Fernando Perez <fperez@colorado.edu>
3451 2005-05-18 Fernando Perez <fperez@colorado.edu>
3450
3452
3451 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3453 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3452 keyword arguments correctly to safe_execfile().
3454 keyword arguments correctly to safe_execfile().
3453
3455
3454 2005-05-13 Fernando Perez <fperez@colorado.edu>
3456 2005-05-13 Fernando Perez <fperez@colorado.edu>
3455
3457
3456 * ipython.1: Added info about Qt to manpage, and threads warning
3458 * ipython.1: Added info about Qt to manpage, and threads warning
3457 to usage page (invoked with --help).
3459 to usage page (invoked with --help).
3458
3460
3459 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3461 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3460 new matcher (it goes at the end of the priority list) to do
3462 new matcher (it goes at the end of the priority list) to do
3461 tab-completion on named function arguments. Submitted by George
3463 tab-completion on named function arguments. Submitted by George
3462 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3464 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3463 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3465 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3464 for more details.
3466 for more details.
3465
3467
3466 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3468 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3467 SystemExit exceptions in the script being run. Thanks to a report
3469 SystemExit exceptions in the script being run. Thanks to a report
3468 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3470 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3469 producing very annoying behavior when running unit tests.
3471 producing very annoying behavior when running unit tests.
3470
3472
3471 2005-05-12 Fernando Perez <fperez@colorado.edu>
3473 2005-05-12 Fernando Perez <fperez@colorado.edu>
3472
3474
3473 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3475 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3474 which I'd broken (again) due to a changed regexp. In the process,
3476 which I'd broken (again) due to a changed regexp. In the process,
3475 added ';' as an escape to auto-quote the whole line without
3477 added ';' as an escape to auto-quote the whole line without
3476 splitting its arguments. Thanks to a report by Jerry McRae
3478 splitting its arguments. Thanks to a report by Jerry McRae
3477 <qrs0xyc02-AT-sneakemail.com>.
3479 <qrs0xyc02-AT-sneakemail.com>.
3478
3480
3479 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3481 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3480 possible crashes caused by a TokenError. Reported by Ed Schofield
3482 possible crashes caused by a TokenError. Reported by Ed Schofield
3481 <schofield-AT-ftw.at>.
3483 <schofield-AT-ftw.at>.
3482
3484
3483 2005-05-06 Fernando Perez <fperez@colorado.edu>
3485 2005-05-06 Fernando Perez <fperez@colorado.edu>
3484
3486
3485 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3487 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3486
3488
3487 2005-04-29 Fernando Perez <fperez@colorado.edu>
3489 2005-04-29 Fernando Perez <fperez@colorado.edu>
3488
3490
3489 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3491 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3490 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3492 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3491 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3493 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3492 which provides support for Qt interactive usage (similar to the
3494 which provides support for Qt interactive usage (similar to the
3493 existing one for WX and GTK). This had been often requested.
3495 existing one for WX and GTK). This had been often requested.
3494
3496
3495 2005-04-14 *** Released version 0.6.13
3497 2005-04-14 *** Released version 0.6.13
3496
3498
3497 2005-04-08 Fernando Perez <fperez@colorado.edu>
3499 2005-04-08 Fernando Perez <fperez@colorado.edu>
3498
3500
3499 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3501 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3500 from _ofind, which gets called on almost every input line. Now,
3502 from _ofind, which gets called on almost every input line. Now,
3501 we only try to get docstrings if they are actually going to be
3503 we only try to get docstrings if they are actually going to be
3502 used (the overhead of fetching unnecessary docstrings can be
3504 used (the overhead of fetching unnecessary docstrings can be
3503 noticeable for certain objects, such as Pyro proxies).
3505 noticeable for certain objects, such as Pyro proxies).
3504
3506
3505 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3507 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3506 for completers. For some reason I had been passing them the state
3508 for completers. For some reason I had been passing them the state
3507 variable, which completers never actually need, and was in
3509 variable, which completers never actually need, and was in
3508 conflict with the rlcompleter API. Custom completers ONLY need to
3510 conflict with the rlcompleter API. Custom completers ONLY need to
3509 take the text parameter.
3511 take the text parameter.
3510
3512
3511 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3513 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3512 work correctly in pysh. I've also moved all the logic which used
3514 work correctly in pysh. I've also moved all the logic which used
3513 to be in pysh.py here, which will prevent problems with future
3515 to be in pysh.py here, which will prevent problems with future
3514 upgrades. However, this time I must warn users to update their
3516 upgrades. However, this time I must warn users to update their
3515 pysh profile to include the line
3517 pysh profile to include the line
3516
3518
3517 import_all IPython.Extensions.InterpreterExec
3519 import_all IPython.Extensions.InterpreterExec
3518
3520
3519 because otherwise things won't work for them. They MUST also
3521 because otherwise things won't work for them. They MUST also
3520 delete pysh.py and the line
3522 delete pysh.py and the line
3521
3523
3522 execfile pysh.py
3524 execfile pysh.py
3523
3525
3524 from their ipythonrc-pysh.
3526 from their ipythonrc-pysh.
3525
3527
3526 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3528 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3527 robust in the face of objects whose dir() returns non-strings
3529 robust in the face of objects whose dir() returns non-strings
3528 (which it shouldn't, but some broken libs like ITK do). Thanks to
3530 (which it shouldn't, but some broken libs like ITK do). Thanks to
3529 a patch by John Hunter (implemented differently, though). Also
3531 a patch by John Hunter (implemented differently, though). Also
3530 minor improvements by using .extend instead of + on lists.
3532 minor improvements by using .extend instead of + on lists.
3531
3533
3532 * pysh.py:
3534 * pysh.py:
3533
3535
3534 2005-04-06 Fernando Perez <fperez@colorado.edu>
3536 2005-04-06 Fernando Perez <fperez@colorado.edu>
3535
3537
3536 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3538 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3537 by default, so that all users benefit from it. Those who don't
3539 by default, so that all users benefit from it. Those who don't
3538 want it can still turn it off.
3540 want it can still turn it off.
3539
3541
3540 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3542 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3541 config file, I'd forgotten about this, so users were getting it
3543 config file, I'd forgotten about this, so users were getting it
3542 off by default.
3544 off by default.
3543
3545
3544 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3546 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3545 consistency. Now magics can be called in multiline statements,
3547 consistency. Now magics can be called in multiline statements,
3546 and python variables can be expanded in magic calls via $var.
3548 and python variables can be expanded in magic calls via $var.
3547 This makes the magic system behave just like aliases or !system
3549 This makes the magic system behave just like aliases or !system
3548 calls.
3550 calls.
3549
3551
3550 2005-03-28 Fernando Perez <fperez@colorado.edu>
3552 2005-03-28 Fernando Perez <fperez@colorado.edu>
3551
3553
3552 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3554 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3553 expensive string additions for building command. Add support for
3555 expensive string additions for building command. Add support for
3554 trailing ';' when autocall is used.
3556 trailing ';' when autocall is used.
3555
3557
3556 2005-03-26 Fernando Perez <fperez@colorado.edu>
3558 2005-03-26 Fernando Perez <fperez@colorado.edu>
3557
3559
3558 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3560 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3559 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3561 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3560 ipython.el robust against prompts with any number of spaces
3562 ipython.el robust against prompts with any number of spaces
3561 (including 0) after the ':' character.
3563 (including 0) after the ':' character.
3562
3564
3563 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3565 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3564 continuation prompt, which misled users to think the line was
3566 continuation prompt, which misled users to think the line was
3565 already indented. Closes debian Bug#300847, reported to me by
3567 already indented. Closes debian Bug#300847, reported to me by
3566 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3568 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3567
3569
3568 2005-03-23 Fernando Perez <fperez@colorado.edu>
3570 2005-03-23 Fernando Perez <fperez@colorado.edu>
3569
3571
3570 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3572 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3571 properly aligned if they have embedded newlines.
3573 properly aligned if they have embedded newlines.
3572
3574
3573 * IPython/iplib.py (runlines): Add a public method to expose
3575 * IPython/iplib.py (runlines): Add a public method to expose
3574 IPython's code execution machinery, so that users can run strings
3576 IPython's code execution machinery, so that users can run strings
3575 as if they had been typed at the prompt interactively.
3577 as if they had been typed at the prompt interactively.
3576 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3578 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3577 methods which can call the system shell, but with python variable
3579 methods which can call the system shell, but with python variable
3578 expansion. The three such methods are: __IPYTHON__.system,
3580 expansion. The three such methods are: __IPYTHON__.system,
3579 .getoutput and .getoutputerror. These need to be documented in a
3581 .getoutput and .getoutputerror. These need to be documented in a
3580 'public API' section (to be written) of the manual.
3582 'public API' section (to be written) of the manual.
3581
3583
3582 2005-03-20 Fernando Perez <fperez@colorado.edu>
3584 2005-03-20 Fernando Perez <fperez@colorado.edu>
3583
3585
3584 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3586 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3585 for custom exception handling. This is quite powerful, and it
3587 for custom exception handling. This is quite powerful, and it
3586 allows for user-installable exception handlers which can trap
3588 allows for user-installable exception handlers which can trap
3587 custom exceptions at runtime and treat them separately from
3589 custom exceptions at runtime and treat them separately from
3588 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3590 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3589 Mantegazza <mantegazza-AT-ill.fr>.
3591 Mantegazza <mantegazza-AT-ill.fr>.
3590 (InteractiveShell.set_custom_completer): public API function to
3592 (InteractiveShell.set_custom_completer): public API function to
3591 add new completers at runtime.
3593 add new completers at runtime.
3592
3594
3593 2005-03-19 Fernando Perez <fperez@colorado.edu>
3595 2005-03-19 Fernando Perez <fperez@colorado.edu>
3594
3596
3595 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3597 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3596 allow objects which provide their docstrings via non-standard
3598 allow objects which provide their docstrings via non-standard
3597 mechanisms (like Pyro proxies) to still be inspected by ipython's
3599 mechanisms (like Pyro proxies) to still be inspected by ipython's
3598 ? system.
3600 ? system.
3599
3601
3600 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3602 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3601 automatic capture system. I tried quite hard to make it work
3603 automatic capture system. I tried quite hard to make it work
3602 reliably, and simply failed. I tried many combinations with the
3604 reliably, and simply failed. I tried many combinations with the
3603 subprocess module, but eventually nothing worked in all needed
3605 subprocess module, but eventually nothing worked in all needed
3604 cases (not blocking stdin for the child, duplicating stdout
3606 cases (not blocking stdin for the child, duplicating stdout
3605 without blocking, etc). The new %sc/%sx still do capture to these
3607 without blocking, etc). The new %sc/%sx still do capture to these
3606 magical list/string objects which make shell use much more
3608 magical list/string objects which make shell use much more
3607 conveninent, so not all is lost.
3609 conveninent, so not all is lost.
3608
3610
3609 XXX - FIX MANUAL for the change above!
3611 XXX - FIX MANUAL for the change above!
3610
3612
3611 (runsource): I copied code.py's runsource() into ipython to modify
3613 (runsource): I copied code.py's runsource() into ipython to modify
3612 it a bit. Now the code object and source to be executed are
3614 it a bit. Now the code object and source to be executed are
3613 stored in ipython. This makes this info accessible to third-party
3615 stored in ipython. This makes this info accessible to third-party
3614 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3616 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3615 Mantegazza <mantegazza-AT-ill.fr>.
3617 Mantegazza <mantegazza-AT-ill.fr>.
3616
3618
3617 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3619 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3618 history-search via readline (like C-p/C-n). I'd wanted this for a
3620 history-search via readline (like C-p/C-n). I'd wanted this for a
3619 long time, but only recently found out how to do it. For users
3621 long time, but only recently found out how to do it. For users
3620 who already have their ipythonrc files made and want this, just
3622 who already have their ipythonrc files made and want this, just
3621 add:
3623 add:
3622
3624
3623 readline_parse_and_bind "\e[A": history-search-backward
3625 readline_parse_and_bind "\e[A": history-search-backward
3624 readline_parse_and_bind "\e[B": history-search-forward
3626 readline_parse_and_bind "\e[B": history-search-forward
3625
3627
3626 2005-03-18 Fernando Perez <fperez@colorado.edu>
3628 2005-03-18 Fernando Perez <fperez@colorado.edu>
3627
3629
3628 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3630 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3629 LSString and SList classes which allow transparent conversions
3631 LSString and SList classes which allow transparent conversions
3630 between list mode and whitespace-separated string.
3632 between list mode and whitespace-separated string.
3631 (magic_r): Fix recursion problem in %r.
3633 (magic_r): Fix recursion problem in %r.
3632
3634
3633 * IPython/genutils.py (LSString): New class to be used for
3635 * IPython/genutils.py (LSString): New class to be used for
3634 automatic storage of the results of all alias/system calls in _o
3636 automatic storage of the results of all alias/system calls in _o
3635 and _e (stdout/err). These provide a .l/.list attribute which
3637 and _e (stdout/err). These provide a .l/.list attribute which
3636 does automatic splitting on newlines. This means that for most
3638 does automatic splitting on newlines. This means that for most
3637 uses, you'll never need to do capturing of output with %sc/%sx
3639 uses, you'll never need to do capturing of output with %sc/%sx
3638 anymore, since ipython keeps this always done for you. Note that
3640 anymore, since ipython keeps this always done for you. Note that
3639 only the LAST results are stored, the _o/e variables are
3641 only the LAST results are stored, the _o/e variables are
3640 overwritten on each call. If you need to save their contents
3642 overwritten on each call. If you need to save their contents
3641 further, simply bind them to any other name.
3643 further, simply bind them to any other name.
3642
3644
3643 2005-03-17 Fernando Perez <fperez@colorado.edu>
3645 2005-03-17 Fernando Perez <fperez@colorado.edu>
3644
3646
3645 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3647 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3646 prompt namespace handling.
3648 prompt namespace handling.
3647
3649
3648 2005-03-16 Fernando Perez <fperez@colorado.edu>
3650 2005-03-16 Fernando Perez <fperez@colorado.edu>
3649
3651
3650 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3652 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3651 classic prompts to be '>>> ' (final space was missing, and it
3653 classic prompts to be '>>> ' (final space was missing, and it
3652 trips the emacs python mode).
3654 trips the emacs python mode).
3653 (BasePrompt.__str__): Added safe support for dynamic prompt
3655 (BasePrompt.__str__): Added safe support for dynamic prompt
3654 strings. Now you can set your prompt string to be '$x', and the
3656 strings. Now you can set your prompt string to be '$x', and the
3655 value of x will be printed from your interactive namespace. The
3657 value of x will be printed from your interactive namespace. The
3656 interpolation syntax includes the full Itpl support, so
3658 interpolation syntax includes the full Itpl support, so
3657 ${foo()+x+bar()} is a valid prompt string now, and the function
3659 ${foo()+x+bar()} is a valid prompt string now, and the function
3658 calls will be made at runtime.
3660 calls will be made at runtime.
3659
3661
3660 2005-03-15 Fernando Perez <fperez@colorado.edu>
3662 2005-03-15 Fernando Perez <fperez@colorado.edu>
3661
3663
3662 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3664 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3663 avoid name clashes in pylab. %hist still works, it just forwards
3665 avoid name clashes in pylab. %hist still works, it just forwards
3664 the call to %history.
3666 the call to %history.
3665
3667
3666 2005-03-02 *** Released version 0.6.12
3668 2005-03-02 *** Released version 0.6.12
3667
3669
3668 2005-03-02 Fernando Perez <fperez@colorado.edu>
3670 2005-03-02 Fernando Perez <fperez@colorado.edu>
3669
3671
3670 * IPython/iplib.py (handle_magic): log magic calls properly as
3672 * IPython/iplib.py (handle_magic): log magic calls properly as
3671 ipmagic() function calls.
3673 ipmagic() function calls.
3672
3674
3673 * IPython/Magic.py (magic_time): Improved %time to support
3675 * IPython/Magic.py (magic_time): Improved %time to support
3674 statements and provide wall-clock as well as CPU time.
3676 statements and provide wall-clock as well as CPU time.
3675
3677
3676 2005-02-27 Fernando Perez <fperez@colorado.edu>
3678 2005-02-27 Fernando Perez <fperez@colorado.edu>
3677
3679
3678 * IPython/hooks.py: New hooks module, to expose user-modifiable
3680 * IPython/hooks.py: New hooks module, to expose user-modifiable
3679 IPython functionality in a clean manner. For now only the editor
3681 IPython functionality in a clean manner. For now only the editor
3680 hook is actually written, and other thigns which I intend to turn
3682 hook is actually written, and other thigns which I intend to turn
3681 into proper hooks aren't yet there. The display and prefilter
3683 into proper hooks aren't yet there. The display and prefilter
3682 stuff, for example, should be hooks. But at least now the
3684 stuff, for example, should be hooks. But at least now the
3683 framework is in place, and the rest can be moved here with more
3685 framework is in place, and the rest can be moved here with more
3684 time later. IPython had had a .hooks variable for a long time for
3686 time later. IPython had had a .hooks variable for a long time for
3685 this purpose, but I'd never actually used it for anything.
3687 this purpose, but I'd never actually used it for anything.
3686
3688
3687 2005-02-26 Fernando Perez <fperez@colorado.edu>
3689 2005-02-26 Fernando Perez <fperez@colorado.edu>
3688
3690
3689 * IPython/ipmaker.py (make_IPython): make the default ipython
3691 * IPython/ipmaker.py (make_IPython): make the default ipython
3690 directory be called _ipython under win32, to follow more the
3692 directory be called _ipython under win32, to follow more the
3691 naming peculiarities of that platform (where buggy software like
3693 naming peculiarities of that platform (where buggy software like
3692 Visual Sourcesafe breaks with .named directories). Reported by
3694 Visual Sourcesafe breaks with .named directories). Reported by
3693 Ville Vainio.
3695 Ville Vainio.
3694
3696
3695 2005-02-23 Fernando Perez <fperez@colorado.edu>
3697 2005-02-23 Fernando Perez <fperez@colorado.edu>
3696
3698
3697 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3699 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3698 auto_aliases for win32 which were causing problems. Users can
3700 auto_aliases for win32 which were causing problems. Users can
3699 define the ones they personally like.
3701 define the ones they personally like.
3700
3702
3701 2005-02-21 Fernando Perez <fperez@colorado.edu>
3703 2005-02-21 Fernando Perez <fperez@colorado.edu>
3702
3704
3703 * IPython/Magic.py (magic_time): new magic to time execution of
3705 * IPython/Magic.py (magic_time): new magic to time execution of
3704 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3706 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3705
3707
3706 2005-02-19 Fernando Perez <fperez@colorado.edu>
3708 2005-02-19 Fernando Perez <fperez@colorado.edu>
3707
3709
3708 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3710 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3709 into keys (for prompts, for example).
3711 into keys (for prompts, for example).
3710
3712
3711 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3713 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3712 prompts in case users want them. This introduces a small behavior
3714 prompts in case users want them. This introduces a small behavior
3713 change: ipython does not automatically add a space to all prompts
3715 change: ipython does not automatically add a space to all prompts
3714 anymore. To get the old prompts with a space, users should add it
3716 anymore. To get the old prompts with a space, users should add it
3715 manually to their ipythonrc file, so for example prompt_in1 should
3717 manually to their ipythonrc file, so for example prompt_in1 should
3716 now read 'In [\#]: ' instead of 'In [\#]:'.
3718 now read 'In [\#]: ' instead of 'In [\#]:'.
3717 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3719 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3718 file) to control left-padding of secondary prompts.
3720 file) to control left-padding of secondary prompts.
3719
3721
3720 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3722 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3721 the profiler can't be imported. Fix for Debian, which removed
3723 the profiler can't be imported. Fix for Debian, which removed
3722 profile.py because of License issues. I applied a slightly
3724 profile.py because of License issues. I applied a slightly
3723 modified version of the original Debian patch at
3725 modified version of the original Debian patch at
3724 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3726 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3725
3727
3726 2005-02-17 Fernando Perez <fperez@colorado.edu>
3728 2005-02-17 Fernando Perez <fperez@colorado.edu>
3727
3729
3728 * IPython/genutils.py (native_line_ends): Fix bug which would
3730 * IPython/genutils.py (native_line_ends): Fix bug which would
3729 cause improper line-ends under win32 b/c I was not opening files
3731 cause improper line-ends under win32 b/c I was not opening files
3730 in binary mode. Bug report and fix thanks to Ville.
3732 in binary mode. Bug report and fix thanks to Ville.
3731
3733
3732 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3734 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3733 trying to catch spurious foo[1] autocalls. My fix actually broke
3735 trying to catch spurious foo[1] autocalls. My fix actually broke
3734 ',/' autoquote/call with explicit escape (bad regexp).
3736 ',/' autoquote/call with explicit escape (bad regexp).
3735
3737
3736 2005-02-15 *** Released version 0.6.11
3738 2005-02-15 *** Released version 0.6.11
3737
3739
3738 2005-02-14 Fernando Perez <fperez@colorado.edu>
3740 2005-02-14 Fernando Perez <fperez@colorado.edu>
3739
3741
3740 * IPython/background_jobs.py: New background job management
3742 * IPython/background_jobs.py: New background job management
3741 subsystem. This is implemented via a new set of classes, and
3743 subsystem. This is implemented via a new set of classes, and
3742 IPython now provides a builtin 'jobs' object for background job
3744 IPython now provides a builtin 'jobs' object for background job
3743 execution. A convenience %bg magic serves as a lightweight
3745 execution. A convenience %bg magic serves as a lightweight
3744 frontend for starting the more common type of calls. This was
3746 frontend for starting the more common type of calls. This was
3745 inspired by discussions with B. Granger and the BackgroundCommand
3747 inspired by discussions with B. Granger and the BackgroundCommand
3746 class described in the book Python Scripting for Computational
3748 class described in the book Python Scripting for Computational
3747 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3749 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3748 (although ultimately no code from this text was used, as IPython's
3750 (although ultimately no code from this text was used, as IPython's
3749 system is a separate implementation).
3751 system is a separate implementation).
3750
3752
3751 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3753 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3752 to control the completion of single/double underscore names
3754 to control the completion of single/double underscore names
3753 separately. As documented in the example ipytonrc file, the
3755 separately. As documented in the example ipytonrc file, the
3754 readline_omit__names variable can now be set to 2, to omit even
3756 readline_omit__names variable can now be set to 2, to omit even
3755 single underscore names. Thanks to a patch by Brian Wong
3757 single underscore names. Thanks to a patch by Brian Wong
3756 <BrianWong-AT-AirgoNetworks.Com>.
3758 <BrianWong-AT-AirgoNetworks.Com>.
3757 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3759 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3758 be autocalled as foo([1]) if foo were callable. A problem for
3760 be autocalled as foo([1]) if foo were callable. A problem for
3759 things which are both callable and implement __getitem__.
3761 things which are both callable and implement __getitem__.
3760 (init_readline): Fix autoindentation for win32. Thanks to a patch
3762 (init_readline): Fix autoindentation for win32. Thanks to a patch
3761 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3763 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3762
3764
3763 2005-02-12 Fernando Perez <fperez@colorado.edu>
3765 2005-02-12 Fernando Perez <fperez@colorado.edu>
3764
3766
3765 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3767 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3766 which I had written long ago to sort out user error messages which
3768 which I had written long ago to sort out user error messages which
3767 may occur during startup. This seemed like a good idea initially,
3769 may occur during startup. This seemed like a good idea initially,
3768 but it has proven a disaster in retrospect. I don't want to
3770 but it has proven a disaster in retrospect. I don't want to
3769 change much code for now, so my fix is to set the internal 'debug'
3771 change much code for now, so my fix is to set the internal 'debug'
3770 flag to true everywhere, whose only job was precisely to control
3772 flag to true everywhere, whose only job was precisely to control
3771 this subsystem. This closes issue 28 (as well as avoiding all
3773 this subsystem. This closes issue 28 (as well as avoiding all
3772 sorts of strange hangups which occur from time to time).
3774 sorts of strange hangups which occur from time to time).
3773
3775
3774 2005-02-07 Fernando Perez <fperez@colorado.edu>
3776 2005-02-07 Fernando Perez <fperez@colorado.edu>
3775
3777
3776 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3778 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3777 previous call produced a syntax error.
3779 previous call produced a syntax error.
3778
3780
3779 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3781 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3780 classes without constructor.
3782 classes without constructor.
3781
3783
3782 2005-02-06 Fernando Perez <fperez@colorado.edu>
3784 2005-02-06 Fernando Perez <fperez@colorado.edu>
3783
3785
3784 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3786 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3785 completions with the results of each matcher, so we return results
3787 completions with the results of each matcher, so we return results
3786 to the user from all namespaces. This breaks with ipython
3788 to the user from all namespaces. This breaks with ipython
3787 tradition, but I think it's a nicer behavior. Now you get all
3789 tradition, but I think it's a nicer behavior. Now you get all
3788 possible completions listed, from all possible namespaces (python,
3790 possible completions listed, from all possible namespaces (python,
3789 filesystem, magics...) After a request by John Hunter
3791 filesystem, magics...) After a request by John Hunter
3790 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3792 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3791
3793
3792 2005-02-05 Fernando Perez <fperez@colorado.edu>
3794 2005-02-05 Fernando Perez <fperez@colorado.edu>
3793
3795
3794 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3796 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3795 the call had quote characters in it (the quotes were stripped).
3797 the call had quote characters in it (the quotes were stripped).
3796
3798
3797 2005-01-31 Fernando Perez <fperez@colorado.edu>
3799 2005-01-31 Fernando Perez <fperez@colorado.edu>
3798
3800
3799 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3801 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3800 Itpl.itpl() to make the code more robust against psyco
3802 Itpl.itpl() to make the code more robust against psyco
3801 optimizations.
3803 optimizations.
3802
3804
3803 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3805 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3804 of causing an exception. Quicker, cleaner.
3806 of causing an exception. Quicker, cleaner.
3805
3807
3806 2005-01-28 Fernando Perez <fperez@colorado.edu>
3808 2005-01-28 Fernando Perez <fperez@colorado.edu>
3807
3809
3808 * scripts/ipython_win_post_install.py (install): hardcode
3810 * scripts/ipython_win_post_install.py (install): hardcode
3809 sys.prefix+'python.exe' as the executable path. It turns out that
3811 sys.prefix+'python.exe' as the executable path. It turns out that
3810 during the post-installation run, sys.executable resolves to the
3812 during the post-installation run, sys.executable resolves to the
3811 name of the binary installer! I should report this as a distutils
3813 name of the binary installer! I should report this as a distutils
3812 bug, I think. I updated the .10 release with this tiny fix, to
3814 bug, I think. I updated the .10 release with this tiny fix, to
3813 avoid annoying the lists further.
3815 avoid annoying the lists further.
3814
3816
3815 2005-01-27 *** Released version 0.6.10
3817 2005-01-27 *** Released version 0.6.10
3816
3818
3817 2005-01-27 Fernando Perez <fperez@colorado.edu>
3819 2005-01-27 Fernando Perez <fperez@colorado.edu>
3818
3820
3819 * IPython/numutils.py (norm): Added 'inf' as optional name for
3821 * IPython/numutils.py (norm): Added 'inf' as optional name for
3820 L-infinity norm, included references to mathworld.com for vector
3822 L-infinity norm, included references to mathworld.com for vector
3821 norm definitions.
3823 norm definitions.
3822 (amin/amax): added amin/amax for array min/max. Similar to what
3824 (amin/amax): added amin/amax for array min/max. Similar to what
3823 pylab ships with after the recent reorganization of names.
3825 pylab ships with after the recent reorganization of names.
3824 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3826 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3825
3827
3826 * ipython.el: committed Alex's recent fixes and improvements.
3828 * ipython.el: committed Alex's recent fixes and improvements.
3827 Tested with python-mode from CVS, and it looks excellent. Since
3829 Tested with python-mode from CVS, and it looks excellent. Since
3828 python-mode hasn't released anything in a while, I'm temporarily
3830 python-mode hasn't released anything in a while, I'm temporarily
3829 putting a copy of today's CVS (v 4.70) of python-mode in:
3831 putting a copy of today's CVS (v 4.70) of python-mode in:
3830 http://ipython.scipy.org/tmp/python-mode.el
3832 http://ipython.scipy.org/tmp/python-mode.el
3831
3833
3832 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3834 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3833 sys.executable for the executable name, instead of assuming it's
3835 sys.executable for the executable name, instead of assuming it's
3834 called 'python.exe' (the post-installer would have produced broken
3836 called 'python.exe' (the post-installer would have produced broken
3835 setups on systems with a differently named python binary).
3837 setups on systems with a differently named python binary).
3836
3838
3837 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3839 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3838 references to os.linesep, to make the code more
3840 references to os.linesep, to make the code more
3839 platform-independent. This is also part of the win32 coloring
3841 platform-independent. This is also part of the win32 coloring
3840 fixes.
3842 fixes.
3841
3843
3842 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3844 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3843 lines, which actually cause coloring bugs because the length of
3845 lines, which actually cause coloring bugs because the length of
3844 the line is very difficult to correctly compute with embedded
3846 the line is very difficult to correctly compute with embedded
3845 escapes. This was the source of all the coloring problems under
3847 escapes. This was the source of all the coloring problems under
3846 Win32. I think that _finally_, Win32 users have a properly
3848 Win32. I think that _finally_, Win32 users have a properly
3847 working ipython in all respects. This would never have happened
3849 working ipython in all respects. This would never have happened
3848 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3850 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3849
3851
3850 2005-01-26 *** Released version 0.6.9
3852 2005-01-26 *** Released version 0.6.9
3851
3853
3852 2005-01-25 Fernando Perez <fperez@colorado.edu>
3854 2005-01-25 Fernando Perez <fperez@colorado.edu>
3853
3855
3854 * setup.py: finally, we have a true Windows installer, thanks to
3856 * setup.py: finally, we have a true Windows installer, thanks to
3855 the excellent work of Viktor Ransmayr
3857 the excellent work of Viktor Ransmayr
3856 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3858 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3857 Windows users. The setup routine is quite a bit cleaner thanks to
3859 Windows users. The setup routine is quite a bit cleaner thanks to
3858 this, and the post-install script uses the proper functions to
3860 this, and the post-install script uses the proper functions to
3859 allow a clean de-installation using the standard Windows Control
3861 allow a clean de-installation using the standard Windows Control
3860 Panel.
3862 Panel.
3861
3863
3862 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3864 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3863 environment variable under all OSes (including win32) if
3865 environment variable under all OSes (including win32) if
3864 available. This will give consistency to win32 users who have set
3866 available. This will give consistency to win32 users who have set
3865 this variable for any reason. If os.environ['HOME'] fails, the
3867 this variable for any reason. If os.environ['HOME'] fails, the
3866 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3868 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3867
3869
3868 2005-01-24 Fernando Perez <fperez@colorado.edu>
3870 2005-01-24 Fernando Perez <fperez@colorado.edu>
3869
3871
3870 * IPython/numutils.py (empty_like): add empty_like(), similar to
3872 * IPython/numutils.py (empty_like): add empty_like(), similar to
3871 zeros_like() but taking advantage of the new empty() Numeric routine.
3873 zeros_like() but taking advantage of the new empty() Numeric routine.
3872
3874
3873 2005-01-23 *** Released version 0.6.8
3875 2005-01-23 *** Released version 0.6.8
3874
3876
3875 2005-01-22 Fernando Perez <fperez@colorado.edu>
3877 2005-01-22 Fernando Perez <fperez@colorado.edu>
3876
3878
3877 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3879 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3878 automatic show() calls. After discussing things with JDH, it
3880 automatic show() calls. After discussing things with JDH, it
3879 turns out there are too many corner cases where this can go wrong.
3881 turns out there are too many corner cases where this can go wrong.
3880 It's best not to try to be 'too smart', and simply have ipython
3882 It's best not to try to be 'too smart', and simply have ipython
3881 reproduce as much as possible the default behavior of a normal
3883 reproduce as much as possible the default behavior of a normal
3882 python shell.
3884 python shell.
3883
3885
3884 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3886 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3885 line-splitting regexp and _prefilter() to avoid calling getattr()
3887 line-splitting regexp and _prefilter() to avoid calling getattr()
3886 on assignments. This closes
3888 on assignments. This closes
3887 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3889 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3888 readline uses getattr(), so a simple <TAB> keypress is still
3890 readline uses getattr(), so a simple <TAB> keypress is still
3889 enough to trigger getattr() calls on an object.
3891 enough to trigger getattr() calls on an object.
3890
3892
3891 2005-01-21 Fernando Perez <fperez@colorado.edu>
3893 2005-01-21 Fernando Perez <fperez@colorado.edu>
3892
3894
3893 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3895 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3894 docstring under pylab so it doesn't mask the original.
3896 docstring under pylab so it doesn't mask the original.
3895
3897
3896 2005-01-21 *** Released version 0.6.7
3898 2005-01-21 *** Released version 0.6.7
3897
3899
3898 2005-01-21 Fernando Perez <fperez@colorado.edu>
3900 2005-01-21 Fernando Perez <fperez@colorado.edu>
3899
3901
3900 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3902 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3901 signal handling for win32 users in multithreaded mode.
3903 signal handling for win32 users in multithreaded mode.
3902
3904
3903 2005-01-17 Fernando Perez <fperez@colorado.edu>
3905 2005-01-17 Fernando Perez <fperez@colorado.edu>
3904
3906
3905 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3907 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3906 instances with no __init__. After a crash report by Norbert Nemec
3908 instances with no __init__. After a crash report by Norbert Nemec
3907 <Norbert-AT-nemec-online.de>.
3909 <Norbert-AT-nemec-online.de>.
3908
3910
3909 2005-01-14 Fernando Perez <fperez@colorado.edu>
3911 2005-01-14 Fernando Perez <fperez@colorado.edu>
3910
3912
3911 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3913 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3912 names for verbose exceptions, when multiple dotted names and the
3914 names for verbose exceptions, when multiple dotted names and the
3913 'parent' object were present on the same line.
3915 'parent' object were present on the same line.
3914
3916
3915 2005-01-11 Fernando Perez <fperez@colorado.edu>
3917 2005-01-11 Fernando Perez <fperez@colorado.edu>
3916
3918
3917 * IPython/genutils.py (flag_calls): new utility to trap and flag
3919 * IPython/genutils.py (flag_calls): new utility to trap and flag
3918 calls in functions. I need it to clean up matplotlib support.
3920 calls in functions. I need it to clean up matplotlib support.
3919 Also removed some deprecated code in genutils.
3921 Also removed some deprecated code in genutils.
3920
3922
3921 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3923 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3922 that matplotlib scripts called with %run, which don't call show()
3924 that matplotlib scripts called with %run, which don't call show()
3923 themselves, still have their plotting windows open.
3925 themselves, still have their plotting windows open.
3924
3926
3925 2005-01-05 Fernando Perez <fperez@colorado.edu>
3927 2005-01-05 Fernando Perez <fperez@colorado.edu>
3926
3928
3927 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3929 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3928 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3930 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3929
3931
3930 2004-12-19 Fernando Perez <fperez@colorado.edu>
3932 2004-12-19 Fernando Perez <fperez@colorado.edu>
3931
3933
3932 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3934 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3933 parent_runcode, which was an eyesore. The same result can be
3935 parent_runcode, which was an eyesore. The same result can be
3934 obtained with Python's regular superclass mechanisms.
3936 obtained with Python's regular superclass mechanisms.
3935
3937
3936 2004-12-17 Fernando Perez <fperez@colorado.edu>
3938 2004-12-17 Fernando Perez <fperez@colorado.edu>
3937
3939
3938 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3940 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3939 reported by Prabhu.
3941 reported by Prabhu.
3940 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3942 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3941 sys.stderr) instead of explicitly calling sys.stderr. This helps
3943 sys.stderr) instead of explicitly calling sys.stderr. This helps
3942 maintain our I/O abstractions clean, for future GUI embeddings.
3944 maintain our I/O abstractions clean, for future GUI embeddings.
3943
3945
3944 * IPython/genutils.py (info): added new utility for sys.stderr
3946 * IPython/genutils.py (info): added new utility for sys.stderr
3945 unified info message handling (thin wrapper around warn()).
3947 unified info message handling (thin wrapper around warn()).
3946
3948
3947 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3949 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3948 composite (dotted) names on verbose exceptions.
3950 composite (dotted) names on verbose exceptions.
3949 (VerboseTB.nullrepr): harden against another kind of errors which
3951 (VerboseTB.nullrepr): harden against another kind of errors which
3950 Python's inspect module can trigger, and which were crashing
3952 Python's inspect module can trigger, and which were crashing
3951 IPython. Thanks to a report by Marco Lombardi
3953 IPython. Thanks to a report by Marco Lombardi
3952 <mlombard-AT-ma010192.hq.eso.org>.
3954 <mlombard-AT-ma010192.hq.eso.org>.
3953
3955
3954 2004-12-13 *** Released version 0.6.6
3956 2004-12-13 *** Released version 0.6.6
3955
3957
3956 2004-12-12 Fernando Perez <fperez@colorado.edu>
3958 2004-12-12 Fernando Perez <fperez@colorado.edu>
3957
3959
3958 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3960 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3959 generated by pygtk upon initialization if it was built without
3961 generated by pygtk upon initialization if it was built without
3960 threads (for matplotlib users). After a crash reported by
3962 threads (for matplotlib users). After a crash reported by
3961 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3963 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3962
3964
3963 * IPython/ipmaker.py (make_IPython): fix small bug in the
3965 * IPython/ipmaker.py (make_IPython): fix small bug in the
3964 import_some parameter for multiple imports.
3966 import_some parameter for multiple imports.
3965
3967
3966 * IPython/iplib.py (ipmagic): simplified the interface of
3968 * IPython/iplib.py (ipmagic): simplified the interface of
3967 ipmagic() to take a single string argument, just as it would be
3969 ipmagic() to take a single string argument, just as it would be
3968 typed at the IPython cmd line.
3970 typed at the IPython cmd line.
3969 (ipalias): Added new ipalias() with an interface identical to
3971 (ipalias): Added new ipalias() with an interface identical to
3970 ipmagic(). This completes exposing a pure python interface to the
3972 ipmagic(). This completes exposing a pure python interface to the
3971 alias and magic system, which can be used in loops or more complex
3973 alias and magic system, which can be used in loops or more complex
3972 code where IPython's automatic line mangling is not active.
3974 code where IPython's automatic line mangling is not active.
3973
3975
3974 * IPython/genutils.py (timing): changed interface of timing to
3976 * IPython/genutils.py (timing): changed interface of timing to
3975 simply run code once, which is the most common case. timings()
3977 simply run code once, which is the most common case. timings()
3976 remains unchanged, for the cases where you want multiple runs.
3978 remains unchanged, for the cases where you want multiple runs.
3977
3979
3978 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3980 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3979 bug where Python2.2 crashes with exec'ing code which does not end
3981 bug where Python2.2 crashes with exec'ing code which does not end
3980 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3982 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3981 before.
3983 before.
3982
3984
3983 2004-12-10 Fernando Perez <fperez@colorado.edu>
3985 2004-12-10 Fernando Perez <fperez@colorado.edu>
3984
3986
3985 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3987 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3986 -t to -T, to accomodate the new -t flag in %run (the %run and
3988 -t to -T, to accomodate the new -t flag in %run (the %run and
3987 %prun options are kind of intermixed, and it's not easy to change
3989 %prun options are kind of intermixed, and it's not easy to change
3988 this with the limitations of python's getopt).
3990 this with the limitations of python's getopt).
3989
3991
3990 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3992 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3991 the execution of scripts. It's not as fine-tuned as timeit.py,
3993 the execution of scripts. It's not as fine-tuned as timeit.py,
3992 but it works from inside ipython (and under 2.2, which lacks
3994 but it works from inside ipython (and under 2.2, which lacks
3993 timeit.py). Optionally a number of runs > 1 can be given for
3995 timeit.py). Optionally a number of runs > 1 can be given for
3994 timing very short-running code.
3996 timing very short-running code.
3995
3997
3996 * IPython/genutils.py (uniq_stable): new routine which returns a
3998 * IPython/genutils.py (uniq_stable): new routine which returns a
3997 list of unique elements in any iterable, but in stable order of
3999 list of unique elements in any iterable, but in stable order of
3998 appearance. I needed this for the ultraTB fixes, and it's a handy
4000 appearance. I needed this for the ultraTB fixes, and it's a handy
3999 utility.
4001 utility.
4000
4002
4001 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4003 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4002 dotted names in Verbose exceptions. This had been broken since
4004 dotted names in Verbose exceptions. This had been broken since
4003 the very start, now x.y will properly be printed in a Verbose
4005 the very start, now x.y will properly be printed in a Verbose
4004 traceback, instead of x being shown and y appearing always as an
4006 traceback, instead of x being shown and y appearing always as an
4005 'undefined global'. Getting this to work was a bit tricky,
4007 'undefined global'. Getting this to work was a bit tricky,
4006 because by default python tokenizers are stateless. Saved by
4008 because by default python tokenizers are stateless. Saved by
4007 python's ability to easily add a bit of state to an arbitrary
4009 python's ability to easily add a bit of state to an arbitrary
4008 function (without needing to build a full-blown callable object).
4010 function (without needing to build a full-blown callable object).
4009
4011
4010 Also big cleanup of this code, which had horrendous runtime
4012 Also big cleanup of this code, which had horrendous runtime
4011 lookups of zillions of attributes for colorization. Moved all
4013 lookups of zillions of attributes for colorization. Moved all
4012 this code into a few templates, which make it cleaner and quicker.
4014 this code into a few templates, which make it cleaner and quicker.
4013
4015
4014 Printout quality was also improved for Verbose exceptions: one
4016 Printout quality was also improved for Verbose exceptions: one
4015 variable per line, and memory addresses are printed (this can be
4017 variable per line, and memory addresses are printed (this can be
4016 quite handy in nasty debugging situations, which is what Verbose
4018 quite handy in nasty debugging situations, which is what Verbose
4017 is for).
4019 is for).
4018
4020
4019 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4021 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4020 the command line as scripts to be loaded by embedded instances.
4022 the command line as scripts to be loaded by embedded instances.
4021 Doing so has the potential for an infinite recursion if there are
4023 Doing so has the potential for an infinite recursion if there are
4022 exceptions thrown in the process. This fixes a strange crash
4024 exceptions thrown in the process. This fixes a strange crash
4023 reported by Philippe MULLER <muller-AT-irit.fr>.
4025 reported by Philippe MULLER <muller-AT-irit.fr>.
4024
4026
4025 2004-12-09 Fernando Perez <fperez@colorado.edu>
4027 2004-12-09 Fernando Perez <fperez@colorado.edu>
4026
4028
4027 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4029 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4028 to reflect new names in matplotlib, which now expose the
4030 to reflect new names in matplotlib, which now expose the
4029 matlab-compatible interface via a pylab module instead of the
4031 matlab-compatible interface via a pylab module instead of the
4030 'matlab' name. The new code is backwards compatible, so users of
4032 'matlab' name. The new code is backwards compatible, so users of
4031 all matplotlib versions are OK. Patch by J. Hunter.
4033 all matplotlib versions are OK. Patch by J. Hunter.
4032
4034
4033 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4035 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4034 of __init__ docstrings for instances (class docstrings are already
4036 of __init__ docstrings for instances (class docstrings are already
4035 automatically printed). Instances with customized docstrings
4037 automatically printed). Instances with customized docstrings
4036 (indep. of the class) are also recognized and all 3 separate
4038 (indep. of the class) are also recognized and all 3 separate
4037 docstrings are printed (instance, class, constructor). After some
4039 docstrings are printed (instance, class, constructor). After some
4038 comments/suggestions by J. Hunter.
4040 comments/suggestions by J. Hunter.
4039
4041
4040 2004-12-05 Fernando Perez <fperez@colorado.edu>
4042 2004-12-05 Fernando Perez <fperez@colorado.edu>
4041
4043
4042 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4044 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4043 warnings when tab-completion fails and triggers an exception.
4045 warnings when tab-completion fails and triggers an exception.
4044
4046
4045 2004-12-03 Fernando Perez <fperez@colorado.edu>
4047 2004-12-03 Fernando Perez <fperez@colorado.edu>
4046
4048
4047 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4049 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4048 be triggered when using 'run -p'. An incorrect option flag was
4050 be triggered when using 'run -p'. An incorrect option flag was
4049 being set ('d' instead of 'D').
4051 being set ('d' instead of 'D').
4050 (manpage): fix missing escaped \- sign.
4052 (manpage): fix missing escaped \- sign.
4051
4053
4052 2004-11-30 *** Released version 0.6.5
4054 2004-11-30 *** Released version 0.6.5
4053
4055
4054 2004-11-30 Fernando Perez <fperez@colorado.edu>
4056 2004-11-30 Fernando Perez <fperez@colorado.edu>
4055
4057
4056 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4058 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4057 setting with -d option.
4059 setting with -d option.
4058
4060
4059 * setup.py (docfiles): Fix problem where the doc glob I was using
4061 * setup.py (docfiles): Fix problem where the doc glob I was using
4060 was COMPLETELY BROKEN. It was giving the right files by pure
4062 was COMPLETELY BROKEN. It was giving the right files by pure
4061 accident, but failed once I tried to include ipython.el. Note:
4063 accident, but failed once I tried to include ipython.el. Note:
4062 glob() does NOT allow you to do exclusion on multiple endings!
4064 glob() does NOT allow you to do exclusion on multiple endings!
4063
4065
4064 2004-11-29 Fernando Perez <fperez@colorado.edu>
4066 2004-11-29 Fernando Perez <fperez@colorado.edu>
4065
4067
4066 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4068 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4067 the manpage as the source. Better formatting & consistency.
4069 the manpage as the source. Better formatting & consistency.
4068
4070
4069 * IPython/Magic.py (magic_run): Added new -d option, to run
4071 * IPython/Magic.py (magic_run): Added new -d option, to run
4070 scripts under the control of the python pdb debugger. Note that
4072 scripts under the control of the python pdb debugger. Note that
4071 this required changing the %prun option -d to -D, to avoid a clash
4073 this required changing the %prun option -d to -D, to avoid a clash
4072 (since %run must pass options to %prun, and getopt is too dumb to
4074 (since %run must pass options to %prun, and getopt is too dumb to
4073 handle options with string values with embedded spaces). Thanks
4075 handle options with string values with embedded spaces). Thanks
4074 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4076 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4075 (magic_who_ls): added type matching to %who and %whos, so that one
4077 (magic_who_ls): added type matching to %who and %whos, so that one
4076 can filter their output to only include variables of certain
4078 can filter their output to only include variables of certain
4077 types. Another suggestion by Matthew.
4079 types. Another suggestion by Matthew.
4078 (magic_whos): Added memory summaries in kb and Mb for arrays.
4080 (magic_whos): Added memory summaries in kb and Mb for arrays.
4079 (magic_who): Improve formatting (break lines every 9 vars).
4081 (magic_who): Improve formatting (break lines every 9 vars).
4080
4082
4081 2004-11-28 Fernando Perez <fperez@colorado.edu>
4083 2004-11-28 Fernando Perez <fperez@colorado.edu>
4082
4084
4083 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4085 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4084 cache when empty lines were present.
4086 cache when empty lines were present.
4085
4087
4086 2004-11-24 Fernando Perez <fperez@colorado.edu>
4088 2004-11-24 Fernando Perez <fperez@colorado.edu>
4087
4089
4088 * IPython/usage.py (__doc__): document the re-activated threading
4090 * IPython/usage.py (__doc__): document the re-activated threading
4089 options for WX and GTK.
4091 options for WX and GTK.
4090
4092
4091 2004-11-23 Fernando Perez <fperez@colorado.edu>
4093 2004-11-23 Fernando Perez <fperez@colorado.edu>
4092
4094
4093 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4095 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4094 the -wthread and -gthread options, along with a new -tk one to try
4096 the -wthread and -gthread options, along with a new -tk one to try
4095 and coordinate Tk threading with wx/gtk. The tk support is very
4097 and coordinate Tk threading with wx/gtk. The tk support is very
4096 platform dependent, since it seems to require Tcl and Tk to be
4098 platform dependent, since it seems to require Tcl and Tk to be
4097 built with threads (Fedora1/2 appears NOT to have it, but in
4099 built with threads (Fedora1/2 appears NOT to have it, but in
4098 Prabhu's Debian boxes it works OK). But even with some Tk
4100 Prabhu's Debian boxes it works OK). But even with some Tk
4099 limitations, this is a great improvement.
4101 limitations, this is a great improvement.
4100
4102
4101 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4103 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4102 info in user prompts. Patch by Prabhu.
4104 info in user prompts. Patch by Prabhu.
4103
4105
4104 2004-11-18 Fernando Perez <fperez@colorado.edu>
4106 2004-11-18 Fernando Perez <fperez@colorado.edu>
4105
4107
4106 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4108 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4107 EOFErrors and bail, to avoid infinite loops if a non-terminating
4109 EOFErrors and bail, to avoid infinite loops if a non-terminating
4108 file is fed into ipython. Patch submitted in issue 19 by user,
4110 file is fed into ipython. Patch submitted in issue 19 by user,
4109 many thanks.
4111 many thanks.
4110
4112
4111 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4113 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4112 autoquote/parens in continuation prompts, which can cause lots of
4114 autoquote/parens in continuation prompts, which can cause lots of
4113 problems. Closes roundup issue 20.
4115 problems. Closes roundup issue 20.
4114
4116
4115 2004-11-17 Fernando Perez <fperez@colorado.edu>
4117 2004-11-17 Fernando Perez <fperez@colorado.edu>
4116
4118
4117 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4119 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4118 reported as debian bug #280505. I'm not sure my local changelog
4120 reported as debian bug #280505. I'm not sure my local changelog
4119 entry has the proper debian format (Jack?).
4121 entry has the proper debian format (Jack?).
4120
4122
4121 2004-11-08 *** Released version 0.6.4
4123 2004-11-08 *** Released version 0.6.4
4122
4124
4123 2004-11-08 Fernando Perez <fperez@colorado.edu>
4125 2004-11-08 Fernando Perez <fperez@colorado.edu>
4124
4126
4125 * IPython/iplib.py (init_readline): Fix exit message for Windows
4127 * IPython/iplib.py (init_readline): Fix exit message for Windows
4126 when readline is active. Thanks to a report by Eric Jones
4128 when readline is active. Thanks to a report by Eric Jones
4127 <eric-AT-enthought.com>.
4129 <eric-AT-enthought.com>.
4128
4130
4129 2004-11-07 Fernando Perez <fperez@colorado.edu>
4131 2004-11-07 Fernando Perez <fperez@colorado.edu>
4130
4132
4131 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4133 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4132 sometimes seen by win2k/cygwin users.
4134 sometimes seen by win2k/cygwin users.
4133
4135
4134 2004-11-06 Fernando Perez <fperez@colorado.edu>
4136 2004-11-06 Fernando Perez <fperez@colorado.edu>
4135
4137
4136 * IPython/iplib.py (interact): Change the handling of %Exit from
4138 * IPython/iplib.py (interact): Change the handling of %Exit from
4137 trying to propagate a SystemExit to an internal ipython flag.
4139 trying to propagate a SystemExit to an internal ipython flag.
4138 This is less elegant than using Python's exception mechanism, but
4140 This is less elegant than using Python's exception mechanism, but
4139 I can't get that to work reliably with threads, so under -pylab
4141 I can't get that to work reliably with threads, so under -pylab
4140 %Exit was hanging IPython. Cross-thread exception handling is
4142 %Exit was hanging IPython. Cross-thread exception handling is
4141 really a bitch. Thaks to a bug report by Stephen Walton
4143 really a bitch. Thaks to a bug report by Stephen Walton
4142 <stephen.walton-AT-csun.edu>.
4144 <stephen.walton-AT-csun.edu>.
4143
4145
4144 2004-11-04 Fernando Perez <fperez@colorado.edu>
4146 2004-11-04 Fernando Perez <fperez@colorado.edu>
4145
4147
4146 * IPython/iplib.py (raw_input_original): store a pointer to the
4148 * IPython/iplib.py (raw_input_original): store a pointer to the
4147 true raw_input to harden against code which can modify it
4149 true raw_input to harden against code which can modify it
4148 (wx.py.PyShell does this and would otherwise crash ipython).
4150 (wx.py.PyShell does this and would otherwise crash ipython).
4149 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4151 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4150
4152
4151 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4153 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4152 Ctrl-C problem, which does not mess up the input line.
4154 Ctrl-C problem, which does not mess up the input line.
4153
4155
4154 2004-11-03 Fernando Perez <fperez@colorado.edu>
4156 2004-11-03 Fernando Perez <fperez@colorado.edu>
4155
4157
4156 * IPython/Release.py: Changed licensing to BSD, in all files.
4158 * IPython/Release.py: Changed licensing to BSD, in all files.
4157 (name): lowercase name for tarball/RPM release.
4159 (name): lowercase name for tarball/RPM release.
4158
4160
4159 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4161 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4160 use throughout ipython.
4162 use throughout ipython.
4161
4163
4162 * IPython/Magic.py (Magic._ofind): Switch to using the new
4164 * IPython/Magic.py (Magic._ofind): Switch to using the new
4163 OInspect.getdoc() function.
4165 OInspect.getdoc() function.
4164
4166
4165 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4167 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4166 of the line currently being canceled via Ctrl-C. It's extremely
4168 of the line currently being canceled via Ctrl-C. It's extremely
4167 ugly, but I don't know how to do it better (the problem is one of
4169 ugly, but I don't know how to do it better (the problem is one of
4168 handling cross-thread exceptions).
4170 handling cross-thread exceptions).
4169
4171
4170 2004-10-28 Fernando Perez <fperez@colorado.edu>
4172 2004-10-28 Fernando Perez <fperez@colorado.edu>
4171
4173
4172 * IPython/Shell.py (signal_handler): add signal handlers to trap
4174 * IPython/Shell.py (signal_handler): add signal handlers to trap
4173 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4175 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4174 report by Francesc Alted.
4176 report by Francesc Alted.
4175
4177
4176 2004-10-21 Fernando Perez <fperez@colorado.edu>
4178 2004-10-21 Fernando Perez <fperez@colorado.edu>
4177
4179
4178 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4180 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4179 to % for pysh syntax extensions.
4181 to % for pysh syntax extensions.
4180
4182
4181 2004-10-09 Fernando Perez <fperez@colorado.edu>
4183 2004-10-09 Fernando Perez <fperez@colorado.edu>
4182
4184
4183 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4185 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4184 arrays to print a more useful summary, without calling str(arr).
4186 arrays to print a more useful summary, without calling str(arr).
4185 This avoids the problem of extremely lengthy computations which
4187 This avoids the problem of extremely lengthy computations which
4186 occur if arr is large, and appear to the user as a system lockup
4188 occur if arr is large, and appear to the user as a system lockup
4187 with 100% cpu activity. After a suggestion by Kristian Sandberg
4189 with 100% cpu activity. After a suggestion by Kristian Sandberg
4188 <Kristian.Sandberg@colorado.edu>.
4190 <Kristian.Sandberg@colorado.edu>.
4189 (Magic.__init__): fix bug in global magic escapes not being
4191 (Magic.__init__): fix bug in global magic escapes not being
4190 correctly set.
4192 correctly set.
4191
4193
4192 2004-10-08 Fernando Perez <fperez@colorado.edu>
4194 2004-10-08 Fernando Perez <fperez@colorado.edu>
4193
4195
4194 * IPython/Magic.py (__license__): change to absolute imports of
4196 * IPython/Magic.py (__license__): change to absolute imports of
4195 ipython's own internal packages, to start adapting to the absolute
4197 ipython's own internal packages, to start adapting to the absolute
4196 import requirement of PEP-328.
4198 import requirement of PEP-328.
4197
4199
4198 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4200 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4199 files, and standardize author/license marks through the Release
4201 files, and standardize author/license marks through the Release
4200 module instead of having per/file stuff (except for files with
4202 module instead of having per/file stuff (except for files with
4201 particular licenses, like the MIT/PSF-licensed codes).
4203 particular licenses, like the MIT/PSF-licensed codes).
4202
4204
4203 * IPython/Debugger.py: remove dead code for python 2.1
4205 * IPython/Debugger.py: remove dead code for python 2.1
4204
4206
4205 2004-10-04 Fernando Perez <fperez@colorado.edu>
4207 2004-10-04 Fernando Perez <fperez@colorado.edu>
4206
4208
4207 * IPython/iplib.py (ipmagic): New function for accessing magics
4209 * IPython/iplib.py (ipmagic): New function for accessing magics
4208 via a normal python function call.
4210 via a normal python function call.
4209
4211
4210 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4212 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4211 from '@' to '%', to accomodate the new @decorator syntax of python
4213 from '@' to '%', to accomodate the new @decorator syntax of python
4212 2.4.
4214 2.4.
4213
4215
4214 2004-09-29 Fernando Perez <fperez@colorado.edu>
4216 2004-09-29 Fernando Perez <fperez@colorado.edu>
4215
4217
4216 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4218 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4217 matplotlib.use to prevent running scripts which try to switch
4219 matplotlib.use to prevent running scripts which try to switch
4218 interactive backends from within ipython. This will just crash
4220 interactive backends from within ipython. This will just crash
4219 the python interpreter, so we can't allow it (but a detailed error
4221 the python interpreter, so we can't allow it (but a detailed error
4220 is given to the user).
4222 is given to the user).
4221
4223
4222 2004-09-28 Fernando Perez <fperez@colorado.edu>
4224 2004-09-28 Fernando Perez <fperez@colorado.edu>
4223
4225
4224 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4226 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4225 matplotlib-related fixes so that using @run with non-matplotlib
4227 matplotlib-related fixes so that using @run with non-matplotlib
4226 scripts doesn't pop up spurious plot windows. This requires
4228 scripts doesn't pop up spurious plot windows. This requires
4227 matplotlib >= 0.63, where I had to make some changes as well.
4229 matplotlib >= 0.63, where I had to make some changes as well.
4228
4230
4229 * IPython/ipmaker.py (make_IPython): update version requirement to
4231 * IPython/ipmaker.py (make_IPython): update version requirement to
4230 python 2.2.
4232 python 2.2.
4231
4233
4232 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4234 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4233 banner arg for embedded customization.
4235 banner arg for embedded customization.
4234
4236
4235 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4237 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4236 explicit uses of __IP as the IPython's instance name. Now things
4238 explicit uses of __IP as the IPython's instance name. Now things
4237 are properly handled via the shell.name value. The actual code
4239 are properly handled via the shell.name value. The actual code
4238 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4240 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4239 is much better than before. I'll clean things completely when the
4241 is much better than before. I'll clean things completely when the
4240 magic stuff gets a real overhaul.
4242 magic stuff gets a real overhaul.
4241
4243
4242 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4244 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4243 minor changes to debian dir.
4245 minor changes to debian dir.
4244
4246
4245 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4247 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4246 pointer to the shell itself in the interactive namespace even when
4248 pointer to the shell itself in the interactive namespace even when
4247 a user-supplied dict is provided. This is needed for embedding
4249 a user-supplied dict is provided. This is needed for embedding
4248 purposes (found by tests with Michel Sanner).
4250 purposes (found by tests with Michel Sanner).
4249
4251
4250 2004-09-27 Fernando Perez <fperez@colorado.edu>
4252 2004-09-27 Fernando Perez <fperez@colorado.edu>
4251
4253
4252 * IPython/UserConfig/ipythonrc: remove []{} from
4254 * IPython/UserConfig/ipythonrc: remove []{} from
4253 readline_remove_delims, so that things like [modname.<TAB> do
4255 readline_remove_delims, so that things like [modname.<TAB> do
4254 proper completion. This disables [].TAB, but that's a less common
4256 proper completion. This disables [].TAB, but that's a less common
4255 case than module names in list comprehensions, for example.
4257 case than module names in list comprehensions, for example.
4256 Thanks to a report by Andrea Riciputi.
4258 Thanks to a report by Andrea Riciputi.
4257
4259
4258 2004-09-09 Fernando Perez <fperez@colorado.edu>
4260 2004-09-09 Fernando Perez <fperez@colorado.edu>
4259
4261
4260 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4262 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4261 blocking problems in win32 and osx. Fix by John.
4263 blocking problems in win32 and osx. Fix by John.
4262
4264
4263 2004-09-08 Fernando Perez <fperez@colorado.edu>
4265 2004-09-08 Fernando Perez <fperez@colorado.edu>
4264
4266
4265 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4267 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4266 for Win32 and OSX. Fix by John Hunter.
4268 for Win32 and OSX. Fix by John Hunter.
4267
4269
4268 2004-08-30 *** Released version 0.6.3
4270 2004-08-30 *** Released version 0.6.3
4269
4271
4270 2004-08-30 Fernando Perez <fperez@colorado.edu>
4272 2004-08-30 Fernando Perez <fperez@colorado.edu>
4271
4273
4272 * setup.py (isfile): Add manpages to list of dependent files to be
4274 * setup.py (isfile): Add manpages to list of dependent files to be
4273 updated.
4275 updated.
4274
4276
4275 2004-08-27 Fernando Perez <fperez@colorado.edu>
4277 2004-08-27 Fernando Perez <fperez@colorado.edu>
4276
4278
4277 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4279 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4278 for now. They don't really work with standalone WX/GTK code
4280 for now. They don't really work with standalone WX/GTK code
4279 (though matplotlib IS working fine with both of those backends).
4281 (though matplotlib IS working fine with both of those backends).
4280 This will neeed much more testing. I disabled most things with
4282 This will neeed much more testing. I disabled most things with
4281 comments, so turning it back on later should be pretty easy.
4283 comments, so turning it back on later should be pretty easy.
4282
4284
4283 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4285 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4284 autocalling of expressions like r'foo', by modifying the line
4286 autocalling of expressions like r'foo', by modifying the line
4285 split regexp. Closes
4287 split regexp. Closes
4286 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4288 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4287 Riley <ipythonbugs-AT-sabi.net>.
4289 Riley <ipythonbugs-AT-sabi.net>.
4288 (InteractiveShell.mainloop): honor --nobanner with banner
4290 (InteractiveShell.mainloop): honor --nobanner with banner
4289 extensions.
4291 extensions.
4290
4292
4291 * IPython/Shell.py: Significant refactoring of all classes, so
4293 * IPython/Shell.py: Significant refactoring of all classes, so
4292 that we can really support ALL matplotlib backends and threading
4294 that we can really support ALL matplotlib backends and threading
4293 models (John spotted a bug with Tk which required this). Now we
4295 models (John spotted a bug with Tk which required this). Now we
4294 should support single-threaded, WX-threads and GTK-threads, both
4296 should support single-threaded, WX-threads and GTK-threads, both
4295 for generic code and for matplotlib.
4297 for generic code and for matplotlib.
4296
4298
4297 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4299 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4298 -pylab, to simplify things for users. Will also remove the pylab
4300 -pylab, to simplify things for users. Will also remove the pylab
4299 profile, since now all of matplotlib configuration is directly
4301 profile, since now all of matplotlib configuration is directly
4300 handled here. This also reduces startup time.
4302 handled here. This also reduces startup time.
4301
4303
4302 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4304 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4303 shell wasn't being correctly called. Also in IPShellWX.
4305 shell wasn't being correctly called. Also in IPShellWX.
4304
4306
4305 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4307 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4306 fine-tune banner.
4308 fine-tune banner.
4307
4309
4308 * IPython/numutils.py (spike): Deprecate these spike functions,
4310 * IPython/numutils.py (spike): Deprecate these spike functions,
4309 delete (long deprecated) gnuplot_exec handler.
4311 delete (long deprecated) gnuplot_exec handler.
4310
4312
4311 2004-08-26 Fernando Perez <fperez@colorado.edu>
4313 2004-08-26 Fernando Perez <fperez@colorado.edu>
4312
4314
4313 * ipython.1: Update for threading options, plus some others which
4315 * ipython.1: Update for threading options, plus some others which
4314 were missing.
4316 were missing.
4315
4317
4316 * IPython/ipmaker.py (__call__): Added -wthread option for
4318 * IPython/ipmaker.py (__call__): Added -wthread option for
4317 wxpython thread handling. Make sure threading options are only
4319 wxpython thread handling. Make sure threading options are only
4318 valid at the command line.
4320 valid at the command line.
4319
4321
4320 * scripts/ipython: moved shell selection into a factory function
4322 * scripts/ipython: moved shell selection into a factory function
4321 in Shell.py, to keep the starter script to a minimum.
4323 in Shell.py, to keep the starter script to a minimum.
4322
4324
4323 2004-08-25 Fernando Perez <fperez@colorado.edu>
4325 2004-08-25 Fernando Perez <fperez@colorado.edu>
4324
4326
4325 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4327 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4326 John. Along with some recent changes he made to matplotlib, the
4328 John. Along with some recent changes he made to matplotlib, the
4327 next versions of both systems should work very well together.
4329 next versions of both systems should work very well together.
4328
4330
4329 2004-08-24 Fernando Perez <fperez@colorado.edu>
4331 2004-08-24 Fernando Perez <fperez@colorado.edu>
4330
4332
4331 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4333 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4332 tried to switch the profiling to using hotshot, but I'm getting
4334 tried to switch the profiling to using hotshot, but I'm getting
4333 strange errors from prof.runctx() there. I may be misreading the
4335 strange errors from prof.runctx() there. I may be misreading the
4334 docs, but it looks weird. For now the profiling code will
4336 docs, but it looks weird. For now the profiling code will
4335 continue to use the standard profiler.
4337 continue to use the standard profiler.
4336
4338
4337 2004-08-23 Fernando Perez <fperez@colorado.edu>
4339 2004-08-23 Fernando Perez <fperez@colorado.edu>
4338
4340
4339 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4341 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4340 threaded shell, by John Hunter. It's not quite ready yet, but
4342 threaded shell, by John Hunter. It's not quite ready yet, but
4341 close.
4343 close.
4342
4344
4343 2004-08-22 Fernando Perez <fperez@colorado.edu>
4345 2004-08-22 Fernando Perez <fperez@colorado.edu>
4344
4346
4345 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4347 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4346 in Magic and ultraTB.
4348 in Magic and ultraTB.
4347
4349
4348 * ipython.1: document threading options in manpage.
4350 * ipython.1: document threading options in manpage.
4349
4351
4350 * scripts/ipython: Changed name of -thread option to -gthread,
4352 * scripts/ipython: Changed name of -thread option to -gthread,
4351 since this is GTK specific. I want to leave the door open for a
4353 since this is GTK specific. I want to leave the door open for a
4352 -wthread option for WX, which will most likely be necessary. This
4354 -wthread option for WX, which will most likely be necessary. This
4353 change affects usage and ipmaker as well.
4355 change affects usage and ipmaker as well.
4354
4356
4355 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4357 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4356 handle the matplotlib shell issues. Code by John Hunter
4358 handle the matplotlib shell issues. Code by John Hunter
4357 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4359 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4358 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4360 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4359 broken (and disabled for end users) for now, but it puts the
4361 broken (and disabled for end users) for now, but it puts the
4360 infrastructure in place.
4362 infrastructure in place.
4361
4363
4362 2004-08-21 Fernando Perez <fperez@colorado.edu>
4364 2004-08-21 Fernando Perez <fperez@colorado.edu>
4363
4365
4364 * ipythonrc-pylab: Add matplotlib support.
4366 * ipythonrc-pylab: Add matplotlib support.
4365
4367
4366 * matplotlib_config.py: new files for matplotlib support, part of
4368 * matplotlib_config.py: new files for matplotlib support, part of
4367 the pylab profile.
4369 the pylab profile.
4368
4370
4369 * IPython/usage.py (__doc__): documented the threading options.
4371 * IPython/usage.py (__doc__): documented the threading options.
4370
4372
4371 2004-08-20 Fernando Perez <fperez@colorado.edu>
4373 2004-08-20 Fernando Perez <fperez@colorado.edu>
4372
4374
4373 * ipython: Modified the main calling routine to handle the -thread
4375 * ipython: Modified the main calling routine to handle the -thread
4374 and -mpthread options. This needs to be done as a top-level hack,
4376 and -mpthread options. This needs to be done as a top-level hack,
4375 because it determines which class to instantiate for IPython
4377 because it determines which class to instantiate for IPython
4376 itself.
4378 itself.
4377
4379
4378 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4380 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4379 classes to support multithreaded GTK operation without blocking,
4381 classes to support multithreaded GTK operation without blocking,
4380 and matplotlib with all backends. This is a lot of still very
4382 and matplotlib with all backends. This is a lot of still very
4381 experimental code, and threads are tricky. So it may still have a
4383 experimental code, and threads are tricky. So it may still have a
4382 few rough edges... This code owes a lot to
4384 few rough edges... This code owes a lot to
4383 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4385 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4384 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4386 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4385 to John Hunter for all the matplotlib work.
4387 to John Hunter for all the matplotlib work.
4386
4388
4387 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4389 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4388 options for gtk thread and matplotlib support.
4390 options for gtk thread and matplotlib support.
4389
4391
4390 2004-08-16 Fernando Perez <fperez@colorado.edu>
4392 2004-08-16 Fernando Perez <fperez@colorado.edu>
4391
4393
4392 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4394 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4393 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4395 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4394 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4396 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4395
4397
4396 2004-08-11 Fernando Perez <fperez@colorado.edu>
4398 2004-08-11 Fernando Perez <fperez@colorado.edu>
4397
4399
4398 * setup.py (isfile): Fix build so documentation gets updated for
4400 * setup.py (isfile): Fix build so documentation gets updated for
4399 rpms (it was only done for .tgz builds).
4401 rpms (it was only done for .tgz builds).
4400
4402
4401 2004-08-10 Fernando Perez <fperez@colorado.edu>
4403 2004-08-10 Fernando Perez <fperez@colorado.edu>
4402
4404
4403 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4405 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4404
4406
4405 * iplib.py : Silence syntax error exceptions in tab-completion.
4407 * iplib.py : Silence syntax error exceptions in tab-completion.
4406
4408
4407 2004-08-05 Fernando Perez <fperez@colorado.edu>
4409 2004-08-05 Fernando Perez <fperez@colorado.edu>
4408
4410
4409 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4411 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4410 'color off' mark for continuation prompts. This was causing long
4412 'color off' mark for continuation prompts. This was causing long
4411 continuation lines to mis-wrap.
4413 continuation lines to mis-wrap.
4412
4414
4413 2004-08-01 Fernando Perez <fperez@colorado.edu>
4415 2004-08-01 Fernando Perez <fperez@colorado.edu>
4414
4416
4415 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4417 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4416 for building ipython to be a parameter. All this is necessary
4418 for building ipython to be a parameter. All this is necessary
4417 right now to have a multithreaded version, but this insane
4419 right now to have a multithreaded version, but this insane
4418 non-design will be cleaned up soon. For now, it's a hack that
4420 non-design will be cleaned up soon. For now, it's a hack that
4419 works.
4421 works.
4420
4422
4421 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4423 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4422 args in various places. No bugs so far, but it's a dangerous
4424 args in various places. No bugs so far, but it's a dangerous
4423 practice.
4425 practice.
4424
4426
4425 2004-07-31 Fernando Perez <fperez@colorado.edu>
4427 2004-07-31 Fernando Perez <fperez@colorado.edu>
4426
4428
4427 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4429 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4428 fix completion of files with dots in their names under most
4430 fix completion of files with dots in their names under most
4429 profiles (pysh was OK because the completion order is different).
4431 profiles (pysh was OK because the completion order is different).
4430
4432
4431 2004-07-27 Fernando Perez <fperez@colorado.edu>
4433 2004-07-27 Fernando Perez <fperez@colorado.edu>
4432
4434
4433 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4435 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4434 keywords manually, b/c the one in keyword.py was removed in python
4436 keywords manually, b/c the one in keyword.py was removed in python
4435 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4437 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4436 This is NOT a bug under python 2.3 and earlier.
4438 This is NOT a bug under python 2.3 and earlier.
4437
4439
4438 2004-07-26 Fernando Perez <fperez@colorado.edu>
4440 2004-07-26 Fernando Perez <fperez@colorado.edu>
4439
4441
4440 * IPython/ultraTB.py (VerboseTB.text): Add another
4442 * IPython/ultraTB.py (VerboseTB.text): Add another
4441 linecache.checkcache() call to try to prevent inspect.py from
4443 linecache.checkcache() call to try to prevent inspect.py from
4442 crashing under python 2.3. I think this fixes
4444 crashing under python 2.3. I think this fixes
4443 http://www.scipy.net/roundup/ipython/issue17.
4445 http://www.scipy.net/roundup/ipython/issue17.
4444
4446
4445 2004-07-26 *** Released version 0.6.2
4447 2004-07-26 *** Released version 0.6.2
4446
4448
4447 2004-07-26 Fernando Perez <fperez@colorado.edu>
4449 2004-07-26 Fernando Perez <fperez@colorado.edu>
4448
4450
4449 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4451 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4450 fail for any number.
4452 fail for any number.
4451 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4453 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4452 empty bookmarks.
4454 empty bookmarks.
4453
4455
4454 2004-07-26 *** Released version 0.6.1
4456 2004-07-26 *** Released version 0.6.1
4455
4457
4456 2004-07-26 Fernando Perez <fperez@colorado.edu>
4458 2004-07-26 Fernando Perez <fperez@colorado.edu>
4457
4459
4458 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4460 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4459
4461
4460 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4462 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4461 escaping '()[]{}' in filenames.
4463 escaping '()[]{}' in filenames.
4462
4464
4463 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4465 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4464 Python 2.2 users who lack a proper shlex.split.
4466 Python 2.2 users who lack a proper shlex.split.
4465
4467
4466 2004-07-19 Fernando Perez <fperez@colorado.edu>
4468 2004-07-19 Fernando Perez <fperez@colorado.edu>
4467
4469
4468 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4470 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4469 for reading readline's init file. I follow the normal chain:
4471 for reading readline's init file. I follow the normal chain:
4470 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4472 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4471 report by Mike Heeter. This closes
4473 report by Mike Heeter. This closes
4472 http://www.scipy.net/roundup/ipython/issue16.
4474 http://www.scipy.net/roundup/ipython/issue16.
4473
4475
4474 2004-07-18 Fernando Perez <fperez@colorado.edu>
4476 2004-07-18 Fernando Perez <fperez@colorado.edu>
4475
4477
4476 * IPython/iplib.py (__init__): Add better handling of '\' under
4478 * IPython/iplib.py (__init__): Add better handling of '\' under
4477 Win32 for filenames. After a patch by Ville.
4479 Win32 for filenames. After a patch by Ville.
4478
4480
4479 2004-07-17 Fernando Perez <fperez@colorado.edu>
4481 2004-07-17 Fernando Perez <fperez@colorado.edu>
4480
4482
4481 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4483 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4482 autocalling would be triggered for 'foo is bar' if foo is
4484 autocalling would be triggered for 'foo is bar' if foo is
4483 callable. I also cleaned up the autocall detection code to use a
4485 callable. I also cleaned up the autocall detection code to use a
4484 regexp, which is faster. Bug reported by Alexander Schmolck.
4486 regexp, which is faster. Bug reported by Alexander Schmolck.
4485
4487
4486 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4488 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4487 '?' in them would confuse the help system. Reported by Alex
4489 '?' in them would confuse the help system. Reported by Alex
4488 Schmolck.
4490 Schmolck.
4489
4491
4490 2004-07-16 Fernando Perez <fperez@colorado.edu>
4492 2004-07-16 Fernando Perez <fperez@colorado.edu>
4491
4493
4492 * IPython/GnuplotInteractive.py (__all__): added plot2.
4494 * IPython/GnuplotInteractive.py (__all__): added plot2.
4493
4495
4494 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4496 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4495 plotting dictionaries, lists or tuples of 1d arrays.
4497 plotting dictionaries, lists or tuples of 1d arrays.
4496
4498
4497 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4499 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4498 optimizations.
4500 optimizations.
4499
4501
4500 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4502 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4501 the information which was there from Janko's original IPP code:
4503 the information which was there from Janko's original IPP code:
4502
4504
4503 03.05.99 20:53 porto.ifm.uni-kiel.de
4505 03.05.99 20:53 porto.ifm.uni-kiel.de
4504 --Started changelog.
4506 --Started changelog.
4505 --make clear do what it say it does
4507 --make clear do what it say it does
4506 --added pretty output of lines from inputcache
4508 --added pretty output of lines from inputcache
4507 --Made Logger a mixin class, simplifies handling of switches
4509 --Made Logger a mixin class, simplifies handling of switches
4508 --Added own completer class. .string<TAB> expands to last history
4510 --Added own completer class. .string<TAB> expands to last history
4509 line which starts with string. The new expansion is also present
4511 line which starts with string. The new expansion is also present
4510 with Ctrl-r from the readline library. But this shows, who this
4512 with Ctrl-r from the readline library. But this shows, who this
4511 can be done for other cases.
4513 can be done for other cases.
4512 --Added convention that all shell functions should accept a
4514 --Added convention that all shell functions should accept a
4513 parameter_string This opens the door for different behaviour for
4515 parameter_string This opens the door for different behaviour for
4514 each function. @cd is a good example of this.
4516 each function. @cd is a good example of this.
4515
4517
4516 04.05.99 12:12 porto.ifm.uni-kiel.de
4518 04.05.99 12:12 porto.ifm.uni-kiel.de
4517 --added logfile rotation
4519 --added logfile rotation
4518 --added new mainloop method which freezes first the namespace
4520 --added new mainloop method which freezes first the namespace
4519
4521
4520 07.05.99 21:24 porto.ifm.uni-kiel.de
4522 07.05.99 21:24 porto.ifm.uni-kiel.de
4521 --added the docreader classes. Now there is a help system.
4523 --added the docreader classes. Now there is a help system.
4522 -This is only a first try. Currently it's not easy to put new
4524 -This is only a first try. Currently it's not easy to put new
4523 stuff in the indices. But this is the way to go. Info would be
4525 stuff in the indices. But this is the way to go. Info would be
4524 better, but HTML is every where and not everybody has an info
4526 better, but HTML is every where and not everybody has an info
4525 system installed and it's not so easy to change html-docs to info.
4527 system installed and it's not so easy to change html-docs to info.
4526 --added global logfile option
4528 --added global logfile option
4527 --there is now a hook for object inspection method pinfo needs to
4529 --there is now a hook for object inspection method pinfo needs to
4528 be provided for this. Can be reached by two '??'.
4530 be provided for this. Can be reached by two '??'.
4529
4531
4530 08.05.99 20:51 porto.ifm.uni-kiel.de
4532 08.05.99 20:51 porto.ifm.uni-kiel.de
4531 --added a README
4533 --added a README
4532 --bug in rc file. Something has changed so functions in the rc
4534 --bug in rc file. Something has changed so functions in the rc
4533 file need to reference the shell and not self. Not clear if it's a
4535 file need to reference the shell and not self. Not clear if it's a
4534 bug or feature.
4536 bug or feature.
4535 --changed rc file for new behavior
4537 --changed rc file for new behavior
4536
4538
4537 2004-07-15 Fernando Perez <fperez@colorado.edu>
4539 2004-07-15 Fernando Perez <fperez@colorado.edu>
4538
4540
4539 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4541 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4540 cache was falling out of sync in bizarre manners when multi-line
4542 cache was falling out of sync in bizarre manners when multi-line
4541 input was present. Minor optimizations and cleanup.
4543 input was present. Minor optimizations and cleanup.
4542
4544
4543 (Logger): Remove old Changelog info for cleanup. This is the
4545 (Logger): Remove old Changelog info for cleanup. This is the
4544 information which was there from Janko's original code:
4546 information which was there from Janko's original code:
4545
4547
4546 Changes to Logger: - made the default log filename a parameter
4548 Changes to Logger: - made the default log filename a parameter
4547
4549
4548 - put a check for lines beginning with !@? in log(). Needed
4550 - put a check for lines beginning with !@? in log(). Needed
4549 (even if the handlers properly log their lines) for mid-session
4551 (even if the handlers properly log their lines) for mid-session
4550 logging activation to work properly. Without this, lines logged
4552 logging activation to work properly. Without this, lines logged
4551 in mid session, which get read from the cache, would end up
4553 in mid session, which get read from the cache, would end up
4552 'bare' (with !@? in the open) in the log. Now they are caught
4554 'bare' (with !@? in the open) in the log. Now they are caught
4553 and prepended with a #.
4555 and prepended with a #.
4554
4556
4555 * IPython/iplib.py (InteractiveShell.init_readline): added check
4557 * IPython/iplib.py (InteractiveShell.init_readline): added check
4556 in case MagicCompleter fails to be defined, so we don't crash.
4558 in case MagicCompleter fails to be defined, so we don't crash.
4557
4559
4558 2004-07-13 Fernando Perez <fperez@colorado.edu>
4560 2004-07-13 Fernando Perez <fperez@colorado.edu>
4559
4561
4560 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4562 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4561 of EPS if the requested filename ends in '.eps'.
4563 of EPS if the requested filename ends in '.eps'.
4562
4564
4563 2004-07-04 Fernando Perez <fperez@colorado.edu>
4565 2004-07-04 Fernando Perez <fperez@colorado.edu>
4564
4566
4565 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4567 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4566 escaping of quotes when calling the shell.
4568 escaping of quotes when calling the shell.
4567
4569
4568 2004-07-02 Fernando Perez <fperez@colorado.edu>
4570 2004-07-02 Fernando Perez <fperez@colorado.edu>
4569
4571
4570 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4572 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4571 gettext not working because we were clobbering '_'. Fixes
4573 gettext not working because we were clobbering '_'. Fixes
4572 http://www.scipy.net/roundup/ipython/issue6.
4574 http://www.scipy.net/roundup/ipython/issue6.
4573
4575
4574 2004-07-01 Fernando Perez <fperez@colorado.edu>
4576 2004-07-01 Fernando Perez <fperez@colorado.edu>
4575
4577
4576 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4578 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4577 into @cd. Patch by Ville.
4579 into @cd. Patch by Ville.
4578
4580
4579 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4581 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4580 new function to store things after ipmaker runs. Patch by Ville.
4582 new function to store things after ipmaker runs. Patch by Ville.
4581 Eventually this will go away once ipmaker is removed and the class
4583 Eventually this will go away once ipmaker is removed and the class
4582 gets cleaned up, but for now it's ok. Key functionality here is
4584 gets cleaned up, but for now it's ok. Key functionality here is
4583 the addition of the persistent storage mechanism, a dict for
4585 the addition of the persistent storage mechanism, a dict for
4584 keeping data across sessions (for now just bookmarks, but more can
4586 keeping data across sessions (for now just bookmarks, but more can
4585 be implemented later).
4587 be implemented later).
4586
4588
4587 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4589 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4588 persistent across sections. Patch by Ville, I modified it
4590 persistent across sections. Patch by Ville, I modified it
4589 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4591 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4590 added a '-l' option to list all bookmarks.
4592 added a '-l' option to list all bookmarks.
4591
4593
4592 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4594 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4593 center for cleanup. Registered with atexit.register(). I moved
4595 center for cleanup. Registered with atexit.register(). I moved
4594 here the old exit_cleanup(). After a patch by Ville.
4596 here the old exit_cleanup(). After a patch by Ville.
4595
4597
4596 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4598 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4597 characters in the hacked shlex_split for python 2.2.
4599 characters in the hacked shlex_split for python 2.2.
4598
4600
4599 * IPython/iplib.py (file_matches): more fixes to filenames with
4601 * IPython/iplib.py (file_matches): more fixes to filenames with
4600 whitespace in them. It's not perfect, but limitations in python's
4602 whitespace in them. It's not perfect, but limitations in python's
4601 readline make it impossible to go further.
4603 readline make it impossible to go further.
4602
4604
4603 2004-06-29 Fernando Perez <fperez@colorado.edu>
4605 2004-06-29 Fernando Perez <fperez@colorado.edu>
4604
4606
4605 * IPython/iplib.py (file_matches): escape whitespace correctly in
4607 * IPython/iplib.py (file_matches): escape whitespace correctly in
4606 filename completions. Bug reported by Ville.
4608 filename completions. Bug reported by Ville.
4607
4609
4608 2004-06-28 Fernando Perez <fperez@colorado.edu>
4610 2004-06-28 Fernando Perez <fperez@colorado.edu>
4609
4611
4610 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4612 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4611 the history file will be called 'history-PROFNAME' (or just
4613 the history file will be called 'history-PROFNAME' (or just
4612 'history' if no profile is loaded). I was getting annoyed at
4614 'history' if no profile is loaded). I was getting annoyed at
4613 getting my Numerical work history clobbered by pysh sessions.
4615 getting my Numerical work history clobbered by pysh sessions.
4614
4616
4615 * IPython/iplib.py (InteractiveShell.__init__): Internal
4617 * IPython/iplib.py (InteractiveShell.__init__): Internal
4616 getoutputerror() function so that we can honor the system_verbose
4618 getoutputerror() function so that we can honor the system_verbose
4617 flag for _all_ system calls. I also added escaping of #
4619 flag for _all_ system calls. I also added escaping of #
4618 characters here to avoid confusing Itpl.
4620 characters here to avoid confusing Itpl.
4619
4621
4620 * IPython/Magic.py (shlex_split): removed call to shell in
4622 * IPython/Magic.py (shlex_split): removed call to shell in
4621 parse_options and replaced it with shlex.split(). The annoying
4623 parse_options and replaced it with shlex.split(). The annoying
4622 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4624 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4623 to backport it from 2.3, with several frail hacks (the shlex
4625 to backport it from 2.3, with several frail hacks (the shlex
4624 module is rather limited in 2.2). Thanks to a suggestion by Ville
4626 module is rather limited in 2.2). Thanks to a suggestion by Ville
4625 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4627 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4626 problem.
4628 problem.
4627
4629
4628 (Magic.magic_system_verbose): new toggle to print the actual
4630 (Magic.magic_system_verbose): new toggle to print the actual
4629 system calls made by ipython. Mainly for debugging purposes.
4631 system calls made by ipython. Mainly for debugging purposes.
4630
4632
4631 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4633 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4632 doesn't support persistence. Reported (and fix suggested) by
4634 doesn't support persistence. Reported (and fix suggested) by
4633 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4635 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4634
4636
4635 2004-06-26 Fernando Perez <fperez@colorado.edu>
4637 2004-06-26 Fernando Perez <fperez@colorado.edu>
4636
4638
4637 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4639 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4638 continue prompts.
4640 continue prompts.
4639
4641
4640 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4642 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4641 function (basically a big docstring) and a few more things here to
4643 function (basically a big docstring) and a few more things here to
4642 speedup startup. pysh.py is now very lightweight. We want because
4644 speedup startup. pysh.py is now very lightweight. We want because
4643 it gets execfile'd, while InterpreterExec gets imported, so
4645 it gets execfile'd, while InterpreterExec gets imported, so
4644 byte-compilation saves time.
4646 byte-compilation saves time.
4645
4647
4646 2004-06-25 Fernando Perez <fperez@colorado.edu>
4648 2004-06-25 Fernando Perez <fperez@colorado.edu>
4647
4649
4648 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4650 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4649 -NUM', which was recently broken.
4651 -NUM', which was recently broken.
4650
4652
4651 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4653 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4652 in multi-line input (but not !!, which doesn't make sense there).
4654 in multi-line input (but not !!, which doesn't make sense there).
4653
4655
4654 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4656 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4655 It's just too useful, and people can turn it off in the less
4657 It's just too useful, and people can turn it off in the less
4656 common cases where it's a problem.
4658 common cases where it's a problem.
4657
4659
4658 2004-06-24 Fernando Perez <fperez@colorado.edu>
4660 2004-06-24 Fernando Perez <fperez@colorado.edu>
4659
4661
4660 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4662 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4661 special syntaxes (like alias calling) is now allied in multi-line
4663 special syntaxes (like alias calling) is now allied in multi-line
4662 input. This is still _very_ experimental, but it's necessary for
4664 input. This is still _very_ experimental, but it's necessary for
4663 efficient shell usage combining python looping syntax with system
4665 efficient shell usage combining python looping syntax with system
4664 calls. For now it's restricted to aliases, I don't think it
4666 calls. For now it's restricted to aliases, I don't think it
4665 really even makes sense to have this for magics.
4667 really even makes sense to have this for magics.
4666
4668
4667 2004-06-23 Fernando Perez <fperez@colorado.edu>
4669 2004-06-23 Fernando Perez <fperez@colorado.edu>
4668
4670
4669 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4671 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4670 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4672 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4671
4673
4672 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4674 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4673 extensions under Windows (after code sent by Gary Bishop). The
4675 extensions under Windows (after code sent by Gary Bishop). The
4674 extensions considered 'executable' are stored in IPython's rc
4676 extensions considered 'executable' are stored in IPython's rc
4675 structure as win_exec_ext.
4677 structure as win_exec_ext.
4676
4678
4677 * IPython/genutils.py (shell): new function, like system() but
4679 * IPython/genutils.py (shell): new function, like system() but
4678 without return value. Very useful for interactive shell work.
4680 without return value. Very useful for interactive shell work.
4679
4681
4680 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4682 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4681 delete aliases.
4683 delete aliases.
4682
4684
4683 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4685 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4684 sure that the alias table doesn't contain python keywords.
4686 sure that the alias table doesn't contain python keywords.
4685
4687
4686 2004-06-21 Fernando Perez <fperez@colorado.edu>
4688 2004-06-21 Fernando Perez <fperez@colorado.edu>
4687
4689
4688 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4690 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4689 non-existent items are found in $PATH. Reported by Thorsten.
4691 non-existent items are found in $PATH. Reported by Thorsten.
4690
4692
4691 2004-06-20 Fernando Perez <fperez@colorado.edu>
4693 2004-06-20 Fernando Perez <fperez@colorado.edu>
4692
4694
4693 * IPython/iplib.py (complete): modified the completer so that the
4695 * IPython/iplib.py (complete): modified the completer so that the
4694 order of priorities can be easily changed at runtime.
4696 order of priorities can be easily changed at runtime.
4695
4697
4696 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4698 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4697 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4699 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4698
4700
4699 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4701 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4700 expand Python variables prepended with $ in all system calls. The
4702 expand Python variables prepended with $ in all system calls. The
4701 same was done to InteractiveShell.handle_shell_escape. Now all
4703 same was done to InteractiveShell.handle_shell_escape. Now all
4702 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4704 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4703 expansion of python variables and expressions according to the
4705 expansion of python variables and expressions according to the
4704 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4706 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4705
4707
4706 Though PEP-215 has been rejected, a similar (but simpler) one
4708 Though PEP-215 has been rejected, a similar (but simpler) one
4707 seems like it will go into Python 2.4, PEP-292 -
4709 seems like it will go into Python 2.4, PEP-292 -
4708 http://www.python.org/peps/pep-0292.html.
4710 http://www.python.org/peps/pep-0292.html.
4709
4711
4710 I'll keep the full syntax of PEP-215, since IPython has since the
4712 I'll keep the full syntax of PEP-215, since IPython has since the
4711 start used Ka-Ping Yee's reference implementation discussed there
4713 start used Ka-Ping Yee's reference implementation discussed there
4712 (Itpl), and I actually like the powerful semantics it offers.
4714 (Itpl), and I actually like the powerful semantics it offers.
4713
4715
4714 In order to access normal shell variables, the $ has to be escaped
4716 In order to access normal shell variables, the $ has to be escaped
4715 via an extra $. For example:
4717 via an extra $. For example:
4716
4718
4717 In [7]: PATH='a python variable'
4719 In [7]: PATH='a python variable'
4718
4720
4719 In [8]: !echo $PATH
4721 In [8]: !echo $PATH
4720 a python variable
4722 a python variable
4721
4723
4722 In [9]: !echo $$PATH
4724 In [9]: !echo $$PATH
4723 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4725 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4724
4726
4725 (Magic.parse_options): escape $ so the shell doesn't evaluate
4727 (Magic.parse_options): escape $ so the shell doesn't evaluate
4726 things prematurely.
4728 things prematurely.
4727
4729
4728 * IPython/iplib.py (InteractiveShell.call_alias): added the
4730 * IPython/iplib.py (InteractiveShell.call_alias): added the
4729 ability for aliases to expand python variables via $.
4731 ability for aliases to expand python variables via $.
4730
4732
4731 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4733 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4732 system, now there's a @rehash/@rehashx pair of magics. These work
4734 system, now there's a @rehash/@rehashx pair of magics. These work
4733 like the csh rehash command, and can be invoked at any time. They
4735 like the csh rehash command, and can be invoked at any time. They
4734 build a table of aliases to everything in the user's $PATH
4736 build a table of aliases to everything in the user's $PATH
4735 (@rehash uses everything, @rehashx is slower but only adds
4737 (@rehash uses everything, @rehashx is slower but only adds
4736 executable files). With this, the pysh.py-based shell profile can
4738 executable files). With this, the pysh.py-based shell profile can
4737 now simply call rehash upon startup, and full access to all
4739 now simply call rehash upon startup, and full access to all
4738 programs in the user's path is obtained.
4740 programs in the user's path is obtained.
4739
4741
4740 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4742 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4741 functionality is now fully in place. I removed the old dynamic
4743 functionality is now fully in place. I removed the old dynamic
4742 code generation based approach, in favor of a much lighter one
4744 code generation based approach, in favor of a much lighter one
4743 based on a simple dict. The advantage is that this allows me to
4745 based on a simple dict. The advantage is that this allows me to
4744 now have thousands of aliases with negligible cost (unthinkable
4746 now have thousands of aliases with negligible cost (unthinkable
4745 with the old system).
4747 with the old system).
4746
4748
4747 2004-06-19 Fernando Perez <fperez@colorado.edu>
4749 2004-06-19 Fernando Perez <fperez@colorado.edu>
4748
4750
4749 * IPython/iplib.py (__init__): extended MagicCompleter class to
4751 * IPython/iplib.py (__init__): extended MagicCompleter class to
4750 also complete (last in priority) on user aliases.
4752 also complete (last in priority) on user aliases.
4751
4753
4752 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4754 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4753 call to eval.
4755 call to eval.
4754 (ItplNS.__init__): Added a new class which functions like Itpl,
4756 (ItplNS.__init__): Added a new class which functions like Itpl,
4755 but allows configuring the namespace for the evaluation to occur
4757 but allows configuring the namespace for the evaluation to occur
4756 in.
4758 in.
4757
4759
4758 2004-06-18 Fernando Perez <fperez@colorado.edu>
4760 2004-06-18 Fernando Perez <fperez@colorado.edu>
4759
4761
4760 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4762 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4761 better message when 'exit' or 'quit' are typed (a common newbie
4763 better message when 'exit' or 'quit' are typed (a common newbie
4762 confusion).
4764 confusion).
4763
4765
4764 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4766 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4765 check for Windows users.
4767 check for Windows users.
4766
4768
4767 * IPython/iplib.py (InteractiveShell.user_setup): removed
4769 * IPython/iplib.py (InteractiveShell.user_setup): removed
4768 disabling of colors for Windows. I'll test at runtime and issue a
4770 disabling of colors for Windows. I'll test at runtime and issue a
4769 warning if Gary's readline isn't found, as to nudge users to
4771 warning if Gary's readline isn't found, as to nudge users to
4770 download it.
4772 download it.
4771
4773
4772 2004-06-16 Fernando Perez <fperez@colorado.edu>
4774 2004-06-16 Fernando Perez <fperez@colorado.edu>
4773
4775
4774 * IPython/genutils.py (Stream.__init__): changed to print errors
4776 * IPython/genutils.py (Stream.__init__): changed to print errors
4775 to sys.stderr. I had a circular dependency here. Now it's
4777 to sys.stderr. I had a circular dependency here. Now it's
4776 possible to run ipython as IDLE's shell (consider this pre-alpha,
4778 possible to run ipython as IDLE's shell (consider this pre-alpha,
4777 since true stdout things end up in the starting terminal instead
4779 since true stdout things end up in the starting terminal instead
4778 of IDLE's out).
4780 of IDLE's out).
4779
4781
4780 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4782 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4781 users who haven't # updated their prompt_in2 definitions. Remove
4783 users who haven't # updated their prompt_in2 definitions. Remove
4782 eventually.
4784 eventually.
4783 (multiple_replace): added credit to original ASPN recipe.
4785 (multiple_replace): added credit to original ASPN recipe.
4784
4786
4785 2004-06-15 Fernando Perez <fperez@colorado.edu>
4787 2004-06-15 Fernando Perez <fperez@colorado.edu>
4786
4788
4787 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4789 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4788 list of auto-defined aliases.
4790 list of auto-defined aliases.
4789
4791
4790 2004-06-13 Fernando Perez <fperez@colorado.edu>
4792 2004-06-13 Fernando Perez <fperez@colorado.edu>
4791
4793
4792 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4794 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4793 install was really requested (so setup.py can be used for other
4795 install was really requested (so setup.py can be used for other
4794 things under Windows).
4796 things under Windows).
4795
4797
4796 2004-06-10 Fernando Perez <fperez@colorado.edu>
4798 2004-06-10 Fernando Perez <fperez@colorado.edu>
4797
4799
4798 * IPython/Logger.py (Logger.create_log): Manually remove any old
4800 * IPython/Logger.py (Logger.create_log): Manually remove any old
4799 backup, since os.remove may fail under Windows. Fixes bug
4801 backup, since os.remove may fail under Windows. Fixes bug
4800 reported by Thorsten.
4802 reported by Thorsten.
4801
4803
4802 2004-06-09 Fernando Perez <fperez@colorado.edu>
4804 2004-06-09 Fernando Perez <fperez@colorado.edu>
4803
4805
4804 * examples/example-embed.py: fixed all references to %n (replaced
4806 * examples/example-embed.py: fixed all references to %n (replaced
4805 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4807 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4806 for all examples and the manual as well.
4808 for all examples and the manual as well.
4807
4809
4808 2004-06-08 Fernando Perez <fperez@colorado.edu>
4810 2004-06-08 Fernando Perez <fperez@colorado.edu>
4809
4811
4810 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4812 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4811 alignment and color management. All 3 prompt subsystems now
4813 alignment and color management. All 3 prompt subsystems now
4812 inherit from BasePrompt.
4814 inherit from BasePrompt.
4813
4815
4814 * tools/release: updates for windows installer build and tag rpms
4816 * tools/release: updates for windows installer build and tag rpms
4815 with python version (since paths are fixed).
4817 with python version (since paths are fixed).
4816
4818
4817 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4819 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4818 which will become eventually obsolete. Also fixed the default
4820 which will become eventually obsolete. Also fixed the default
4819 prompt_in2 to use \D, so at least new users start with the correct
4821 prompt_in2 to use \D, so at least new users start with the correct
4820 defaults.
4822 defaults.
4821 WARNING: Users with existing ipythonrc files will need to apply
4823 WARNING: Users with existing ipythonrc files will need to apply
4822 this fix manually!
4824 this fix manually!
4823
4825
4824 * setup.py: make windows installer (.exe). This is finally the
4826 * setup.py: make windows installer (.exe). This is finally the
4825 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4827 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4826 which I hadn't included because it required Python 2.3 (or recent
4828 which I hadn't included because it required Python 2.3 (or recent
4827 distutils).
4829 distutils).
4828
4830
4829 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4831 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4830 usage of new '\D' escape.
4832 usage of new '\D' escape.
4831
4833
4832 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4834 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4833 lacks os.getuid())
4835 lacks os.getuid())
4834 (CachedOutput.set_colors): Added the ability to turn coloring
4836 (CachedOutput.set_colors): Added the ability to turn coloring
4835 on/off with @colors even for manually defined prompt colors. It
4837 on/off with @colors even for manually defined prompt colors. It
4836 uses a nasty global, but it works safely and via the generic color
4838 uses a nasty global, but it works safely and via the generic color
4837 handling mechanism.
4839 handling mechanism.
4838 (Prompt2.__init__): Introduced new escape '\D' for continuation
4840 (Prompt2.__init__): Introduced new escape '\D' for continuation
4839 prompts. It represents the counter ('\#') as dots.
4841 prompts. It represents the counter ('\#') as dots.
4840 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4842 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4841 need to update their ipythonrc files and replace '%n' with '\D' in
4843 need to update their ipythonrc files and replace '%n' with '\D' in
4842 their prompt_in2 settings everywhere. Sorry, but there's
4844 their prompt_in2 settings everywhere. Sorry, but there's
4843 otherwise no clean way to get all prompts to properly align. The
4845 otherwise no clean way to get all prompts to properly align. The
4844 ipythonrc shipped with IPython has been updated.
4846 ipythonrc shipped with IPython has been updated.
4845
4847
4846 2004-06-07 Fernando Perez <fperez@colorado.edu>
4848 2004-06-07 Fernando Perez <fperez@colorado.edu>
4847
4849
4848 * setup.py (isfile): Pass local_icons option to latex2html, so the
4850 * setup.py (isfile): Pass local_icons option to latex2html, so the
4849 resulting HTML file is self-contained. Thanks to
4851 resulting HTML file is self-contained. Thanks to
4850 dryice-AT-liu.com.cn for the tip.
4852 dryice-AT-liu.com.cn for the tip.
4851
4853
4852 * pysh.py: I created a new profile 'shell', which implements a
4854 * pysh.py: I created a new profile 'shell', which implements a
4853 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4855 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4854 system shell, nor will it become one anytime soon. It's mainly
4856 system shell, nor will it become one anytime soon. It's mainly
4855 meant to illustrate the use of the new flexible bash-like prompts.
4857 meant to illustrate the use of the new flexible bash-like prompts.
4856 I guess it could be used by hardy souls for true shell management,
4858 I guess it could be used by hardy souls for true shell management,
4857 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4859 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4858 profile. This uses the InterpreterExec extension provided by
4860 profile. This uses the InterpreterExec extension provided by
4859 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4861 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4860
4862
4861 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4863 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4862 auto-align itself with the length of the previous input prompt
4864 auto-align itself with the length of the previous input prompt
4863 (taking into account the invisible color escapes).
4865 (taking into account the invisible color escapes).
4864 (CachedOutput.__init__): Large restructuring of this class. Now
4866 (CachedOutput.__init__): Large restructuring of this class. Now
4865 all three prompts (primary1, primary2, output) are proper objects,
4867 all three prompts (primary1, primary2, output) are proper objects,
4866 managed by the 'parent' CachedOutput class. The code is still a
4868 managed by the 'parent' CachedOutput class. The code is still a
4867 bit hackish (all prompts share state via a pointer to the cache),
4869 bit hackish (all prompts share state via a pointer to the cache),
4868 but it's overall far cleaner than before.
4870 but it's overall far cleaner than before.
4869
4871
4870 * IPython/genutils.py (getoutputerror): modified to add verbose,
4872 * IPython/genutils.py (getoutputerror): modified to add verbose,
4871 debug and header options. This makes the interface of all getout*
4873 debug and header options. This makes the interface of all getout*
4872 functions uniform.
4874 functions uniform.
4873 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4875 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4874
4876
4875 * IPython/Magic.py (Magic.default_option): added a function to
4877 * IPython/Magic.py (Magic.default_option): added a function to
4876 allow registering default options for any magic command. This
4878 allow registering default options for any magic command. This
4877 makes it easy to have profiles which customize the magics globally
4879 makes it easy to have profiles which customize the magics globally
4878 for a certain use. The values set through this function are
4880 for a certain use. The values set through this function are
4879 picked up by the parse_options() method, which all magics should
4881 picked up by the parse_options() method, which all magics should
4880 use to parse their options.
4882 use to parse their options.
4881
4883
4882 * IPython/genutils.py (warn): modified the warnings framework to
4884 * IPython/genutils.py (warn): modified the warnings framework to
4883 use the Term I/O class. I'm trying to slowly unify all of
4885 use the Term I/O class. I'm trying to slowly unify all of
4884 IPython's I/O operations to pass through Term.
4886 IPython's I/O operations to pass through Term.
4885
4887
4886 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4888 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4887 the secondary prompt to correctly match the length of the primary
4889 the secondary prompt to correctly match the length of the primary
4888 one for any prompt. Now multi-line code will properly line up
4890 one for any prompt. Now multi-line code will properly line up
4889 even for path dependent prompts, such as the new ones available
4891 even for path dependent prompts, such as the new ones available
4890 via the prompt_specials.
4892 via the prompt_specials.
4891
4893
4892 2004-06-06 Fernando Perez <fperez@colorado.edu>
4894 2004-06-06 Fernando Perez <fperez@colorado.edu>
4893
4895
4894 * IPython/Prompts.py (prompt_specials): Added the ability to have
4896 * IPython/Prompts.py (prompt_specials): Added the ability to have
4895 bash-like special sequences in the prompts, which get
4897 bash-like special sequences in the prompts, which get
4896 automatically expanded. Things like hostname, current working
4898 automatically expanded. Things like hostname, current working
4897 directory and username are implemented already, but it's easy to
4899 directory and username are implemented already, but it's easy to
4898 add more in the future. Thanks to a patch by W.J. van der Laan
4900 add more in the future. Thanks to a patch by W.J. van der Laan
4899 <gnufnork-AT-hetdigitalegat.nl>
4901 <gnufnork-AT-hetdigitalegat.nl>
4900 (prompt_specials): Added color support for prompt strings, so
4902 (prompt_specials): Added color support for prompt strings, so
4901 users can define arbitrary color setups for their prompts.
4903 users can define arbitrary color setups for their prompts.
4902
4904
4903 2004-06-05 Fernando Perez <fperez@colorado.edu>
4905 2004-06-05 Fernando Perez <fperez@colorado.edu>
4904
4906
4905 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4907 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4906 code to load Gary Bishop's readline and configure it
4908 code to load Gary Bishop's readline and configure it
4907 automatically. Thanks to Gary for help on this.
4909 automatically. Thanks to Gary for help on this.
4908
4910
4909 2004-06-01 Fernando Perez <fperez@colorado.edu>
4911 2004-06-01 Fernando Perez <fperez@colorado.edu>
4910
4912
4911 * IPython/Logger.py (Logger.create_log): fix bug for logging
4913 * IPython/Logger.py (Logger.create_log): fix bug for logging
4912 with no filename (previous fix was incomplete).
4914 with no filename (previous fix was incomplete).
4913
4915
4914 2004-05-25 Fernando Perez <fperez@colorado.edu>
4916 2004-05-25 Fernando Perez <fperez@colorado.edu>
4915
4917
4916 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4918 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4917 parens would get passed to the shell.
4919 parens would get passed to the shell.
4918
4920
4919 2004-05-20 Fernando Perez <fperez@colorado.edu>
4921 2004-05-20 Fernando Perez <fperez@colorado.edu>
4920
4922
4921 * IPython/Magic.py (Magic.magic_prun): changed default profile
4923 * IPython/Magic.py (Magic.magic_prun): changed default profile
4922 sort order to 'time' (the more common profiling need).
4924 sort order to 'time' (the more common profiling need).
4923
4925
4924 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4926 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4925 so that source code shown is guaranteed in sync with the file on
4927 so that source code shown is guaranteed in sync with the file on
4926 disk (also changed in psource). Similar fix to the one for
4928 disk (also changed in psource). Similar fix to the one for
4927 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4929 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4928 <yann.ledu-AT-noos.fr>.
4930 <yann.ledu-AT-noos.fr>.
4929
4931
4930 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4932 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4931 with a single option would not be correctly parsed. Closes
4933 with a single option would not be correctly parsed. Closes
4932 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4934 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4933 introduced in 0.6.0 (on 2004-05-06).
4935 introduced in 0.6.0 (on 2004-05-06).
4934
4936
4935 2004-05-13 *** Released version 0.6.0
4937 2004-05-13 *** Released version 0.6.0
4936
4938
4937 2004-05-13 Fernando Perez <fperez@colorado.edu>
4939 2004-05-13 Fernando Perez <fperez@colorado.edu>
4938
4940
4939 * debian/: Added debian/ directory to CVS, so that debian support
4941 * debian/: Added debian/ directory to CVS, so that debian support
4940 is publicly accessible. The debian package is maintained by Jack
4942 is publicly accessible. The debian package is maintained by Jack
4941 Moffit <jack-AT-xiph.org>.
4943 Moffit <jack-AT-xiph.org>.
4942
4944
4943 * Documentation: included the notes about an ipython-based system
4945 * Documentation: included the notes about an ipython-based system
4944 shell (the hypothetical 'pysh') into the new_design.pdf document,
4946 shell (the hypothetical 'pysh') into the new_design.pdf document,
4945 so that these ideas get distributed to users along with the
4947 so that these ideas get distributed to users along with the
4946 official documentation.
4948 official documentation.
4947
4949
4948 2004-05-10 Fernando Perez <fperez@colorado.edu>
4950 2004-05-10 Fernando Perez <fperez@colorado.edu>
4949
4951
4950 * IPython/Logger.py (Logger.create_log): fix recently introduced
4952 * IPython/Logger.py (Logger.create_log): fix recently introduced
4951 bug (misindented line) where logstart would fail when not given an
4953 bug (misindented line) where logstart would fail when not given an
4952 explicit filename.
4954 explicit filename.
4953
4955
4954 2004-05-09 Fernando Perez <fperez@colorado.edu>
4956 2004-05-09 Fernando Perez <fperez@colorado.edu>
4955
4957
4956 * IPython/Magic.py (Magic.parse_options): skip system call when
4958 * IPython/Magic.py (Magic.parse_options): skip system call when
4957 there are no options to look for. Faster, cleaner for the common
4959 there are no options to look for. Faster, cleaner for the common
4958 case.
4960 case.
4959
4961
4960 * Documentation: many updates to the manual: describing Windows
4962 * Documentation: many updates to the manual: describing Windows
4961 support better, Gnuplot updates, credits, misc small stuff. Also
4963 support better, Gnuplot updates, credits, misc small stuff. Also
4962 updated the new_design doc a bit.
4964 updated the new_design doc a bit.
4963
4965
4964 2004-05-06 *** Released version 0.6.0.rc1
4966 2004-05-06 *** Released version 0.6.0.rc1
4965
4967
4966 2004-05-06 Fernando Perez <fperez@colorado.edu>
4968 2004-05-06 Fernando Perez <fperez@colorado.edu>
4967
4969
4968 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4970 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4969 operations to use the vastly more efficient list/''.join() method.
4971 operations to use the vastly more efficient list/''.join() method.
4970 (FormattedTB.text): Fix
4972 (FormattedTB.text): Fix
4971 http://www.scipy.net/roundup/ipython/issue12 - exception source
4973 http://www.scipy.net/roundup/ipython/issue12 - exception source
4972 extract not updated after reload. Thanks to Mike Salib
4974 extract not updated after reload. Thanks to Mike Salib
4973 <msalib-AT-mit.edu> for pinning the source of the problem.
4975 <msalib-AT-mit.edu> for pinning the source of the problem.
4974 Fortunately, the solution works inside ipython and doesn't require
4976 Fortunately, the solution works inside ipython and doesn't require
4975 any changes to python proper.
4977 any changes to python proper.
4976
4978
4977 * IPython/Magic.py (Magic.parse_options): Improved to process the
4979 * IPython/Magic.py (Magic.parse_options): Improved to process the
4978 argument list as a true shell would (by actually using the
4980 argument list as a true shell would (by actually using the
4979 underlying system shell). This way, all @magics automatically get
4981 underlying system shell). This way, all @magics automatically get
4980 shell expansion for variables. Thanks to a comment by Alex
4982 shell expansion for variables. Thanks to a comment by Alex
4981 Schmolck.
4983 Schmolck.
4982
4984
4983 2004-04-04 Fernando Perez <fperez@colorado.edu>
4985 2004-04-04 Fernando Perez <fperez@colorado.edu>
4984
4986
4985 * IPython/iplib.py (InteractiveShell.interact): Added a special
4987 * IPython/iplib.py (InteractiveShell.interact): Added a special
4986 trap for a debugger quit exception, which is basically impossible
4988 trap for a debugger quit exception, which is basically impossible
4987 to handle by normal mechanisms, given what pdb does to the stack.
4989 to handle by normal mechanisms, given what pdb does to the stack.
4988 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4990 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4989
4991
4990 2004-04-03 Fernando Perez <fperez@colorado.edu>
4992 2004-04-03 Fernando Perez <fperez@colorado.edu>
4991
4993
4992 * IPython/genutils.py (Term): Standardized the names of the Term
4994 * IPython/genutils.py (Term): Standardized the names of the Term
4993 class streams to cin/cout/cerr, following C++ naming conventions
4995 class streams to cin/cout/cerr, following C++ naming conventions
4994 (I can't use in/out/err because 'in' is not a valid attribute
4996 (I can't use in/out/err because 'in' is not a valid attribute
4995 name).
4997 name).
4996
4998
4997 * IPython/iplib.py (InteractiveShell.interact): don't increment
4999 * IPython/iplib.py (InteractiveShell.interact): don't increment
4998 the prompt if there's no user input. By Daniel 'Dang' Griffith
5000 the prompt if there's no user input. By Daniel 'Dang' Griffith
4999 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5001 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5000 Francois Pinard.
5002 Francois Pinard.
5001
5003
5002 2004-04-02 Fernando Perez <fperez@colorado.edu>
5004 2004-04-02 Fernando Perez <fperez@colorado.edu>
5003
5005
5004 * IPython/genutils.py (Stream.__init__): Modified to survive at
5006 * IPython/genutils.py (Stream.__init__): Modified to survive at
5005 least importing in contexts where stdin/out/err aren't true file
5007 least importing in contexts where stdin/out/err aren't true file
5006 objects, such as PyCrust (they lack fileno() and mode). However,
5008 objects, such as PyCrust (they lack fileno() and mode). However,
5007 the recovery facilities which rely on these things existing will
5009 the recovery facilities which rely on these things existing will
5008 not work.
5010 not work.
5009
5011
5010 2004-04-01 Fernando Perez <fperez@colorado.edu>
5012 2004-04-01 Fernando Perez <fperez@colorado.edu>
5011
5013
5012 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5014 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5013 use the new getoutputerror() function, so it properly
5015 use the new getoutputerror() function, so it properly
5014 distinguishes stdout/err.
5016 distinguishes stdout/err.
5015
5017
5016 * IPython/genutils.py (getoutputerror): added a function to
5018 * IPython/genutils.py (getoutputerror): added a function to
5017 capture separately the standard output and error of a command.
5019 capture separately the standard output and error of a command.
5018 After a comment from dang on the mailing lists. This code is
5020 After a comment from dang on the mailing lists. This code is
5019 basically a modified version of commands.getstatusoutput(), from
5021 basically a modified version of commands.getstatusoutput(), from
5020 the standard library.
5022 the standard library.
5021
5023
5022 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5024 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5023 '!!' as a special syntax (shorthand) to access @sx.
5025 '!!' as a special syntax (shorthand) to access @sx.
5024
5026
5025 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5027 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5026 command and return its output as a list split on '\n'.
5028 command and return its output as a list split on '\n'.
5027
5029
5028 2004-03-31 Fernando Perez <fperez@colorado.edu>
5030 2004-03-31 Fernando Perez <fperez@colorado.edu>
5029
5031
5030 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5032 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5031 method to dictionaries used as FakeModule instances if they lack
5033 method to dictionaries used as FakeModule instances if they lack
5032 it. At least pydoc in python2.3 breaks for runtime-defined
5034 it. At least pydoc in python2.3 breaks for runtime-defined
5033 functions without this hack. At some point I need to _really_
5035 functions without this hack. At some point I need to _really_
5034 understand what FakeModule is doing, because it's a gross hack.
5036 understand what FakeModule is doing, because it's a gross hack.
5035 But it solves Arnd's problem for now...
5037 But it solves Arnd's problem for now...
5036
5038
5037 2004-02-27 Fernando Perez <fperez@colorado.edu>
5039 2004-02-27 Fernando Perez <fperez@colorado.edu>
5038
5040
5039 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5041 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5040 mode would behave erratically. Also increased the number of
5042 mode would behave erratically. Also increased the number of
5041 possible logs in rotate mod to 999. Thanks to Rod Holland
5043 possible logs in rotate mod to 999. Thanks to Rod Holland
5042 <rhh@StructureLABS.com> for the report and fixes.
5044 <rhh@StructureLABS.com> for the report and fixes.
5043
5045
5044 2004-02-26 Fernando Perez <fperez@colorado.edu>
5046 2004-02-26 Fernando Perez <fperez@colorado.edu>
5045
5047
5046 * IPython/genutils.py (page): Check that the curses module really
5048 * IPython/genutils.py (page): Check that the curses module really
5047 has the initscr attribute before trying to use it. For some
5049 has the initscr attribute before trying to use it. For some
5048 reason, the Solaris curses module is missing this. I think this
5050 reason, the Solaris curses module is missing this. I think this
5049 should be considered a Solaris python bug, but I'm not sure.
5051 should be considered a Solaris python bug, but I'm not sure.
5050
5052
5051 2004-01-17 Fernando Perez <fperez@colorado.edu>
5053 2004-01-17 Fernando Perez <fperez@colorado.edu>
5052
5054
5053 * IPython/genutils.py (Stream.__init__): Changes to try to make
5055 * IPython/genutils.py (Stream.__init__): Changes to try to make
5054 ipython robust against stdin/out/err being closed by the user.
5056 ipython robust against stdin/out/err being closed by the user.
5055 This is 'user error' (and blocks a normal python session, at least
5057 This is 'user error' (and blocks a normal python session, at least
5056 the stdout case). However, Ipython should be able to survive such
5058 the stdout case). However, Ipython should be able to survive such
5057 instances of abuse as gracefully as possible. To simplify the
5059 instances of abuse as gracefully as possible. To simplify the
5058 coding and maintain compatibility with Gary Bishop's Term
5060 coding and maintain compatibility with Gary Bishop's Term
5059 contributions, I've made use of classmethods for this. I think
5061 contributions, I've made use of classmethods for this. I think
5060 this introduces a dependency on python 2.2.
5062 this introduces a dependency on python 2.2.
5061
5063
5062 2004-01-13 Fernando Perez <fperez@colorado.edu>
5064 2004-01-13 Fernando Perez <fperez@colorado.edu>
5063
5065
5064 * IPython/numutils.py (exp_safe): simplified the code a bit and
5066 * IPython/numutils.py (exp_safe): simplified the code a bit and
5065 removed the need for importing the kinds module altogether.
5067 removed the need for importing the kinds module altogether.
5066
5068
5067 2004-01-06 Fernando Perez <fperez@colorado.edu>
5069 2004-01-06 Fernando Perez <fperez@colorado.edu>
5068
5070
5069 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5071 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5070 a magic function instead, after some community feedback. No
5072 a magic function instead, after some community feedback. No
5071 special syntax will exist for it, but its name is deliberately
5073 special syntax will exist for it, but its name is deliberately
5072 very short.
5074 very short.
5073
5075
5074 2003-12-20 Fernando Perez <fperez@colorado.edu>
5076 2003-12-20 Fernando Perez <fperez@colorado.edu>
5075
5077
5076 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5078 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5077 new functionality, to automagically assign the result of a shell
5079 new functionality, to automagically assign the result of a shell
5078 command to a variable. I'll solicit some community feedback on
5080 command to a variable. I'll solicit some community feedback on
5079 this before making it permanent.
5081 this before making it permanent.
5080
5082
5081 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5083 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5082 requested about callables for which inspect couldn't obtain a
5084 requested about callables for which inspect couldn't obtain a
5083 proper argspec. Thanks to a crash report sent by Etienne
5085 proper argspec. Thanks to a crash report sent by Etienne
5084 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5086 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5085
5087
5086 2003-12-09 Fernando Perez <fperez@colorado.edu>
5088 2003-12-09 Fernando Perez <fperez@colorado.edu>
5087
5089
5088 * IPython/genutils.py (page): patch for the pager to work across
5090 * IPython/genutils.py (page): patch for the pager to work across
5089 various versions of Windows. By Gary Bishop.
5091 various versions of Windows. By Gary Bishop.
5090
5092
5091 2003-12-04 Fernando Perez <fperez@colorado.edu>
5093 2003-12-04 Fernando Perez <fperez@colorado.edu>
5092
5094
5093 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5095 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5094 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5096 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5095 While I tested this and it looks ok, there may still be corner
5097 While I tested this and it looks ok, there may still be corner
5096 cases I've missed.
5098 cases I've missed.
5097
5099
5098 2003-12-01 Fernando Perez <fperez@colorado.edu>
5100 2003-12-01 Fernando Perez <fperez@colorado.edu>
5099
5101
5100 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5102 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5101 where a line like 'p,q=1,2' would fail because the automagic
5103 where a line like 'p,q=1,2' would fail because the automagic
5102 system would be triggered for @p.
5104 system would be triggered for @p.
5103
5105
5104 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5106 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5105 cleanups, code unmodified.
5107 cleanups, code unmodified.
5106
5108
5107 * IPython/genutils.py (Term): added a class for IPython to handle
5109 * IPython/genutils.py (Term): added a class for IPython to handle
5108 output. In most cases it will just be a proxy for stdout/err, but
5110 output. In most cases it will just be a proxy for stdout/err, but
5109 having this allows modifications to be made for some platforms,
5111 having this allows modifications to be made for some platforms,
5110 such as handling color escapes under Windows. All of this code
5112 such as handling color escapes under Windows. All of this code
5111 was contributed by Gary Bishop, with minor modifications by me.
5113 was contributed by Gary Bishop, with minor modifications by me.
5112 The actual changes affect many files.
5114 The actual changes affect many files.
5113
5115
5114 2003-11-30 Fernando Perez <fperez@colorado.edu>
5116 2003-11-30 Fernando Perez <fperez@colorado.edu>
5115
5117
5116 * IPython/iplib.py (file_matches): new completion code, courtesy
5118 * IPython/iplib.py (file_matches): new completion code, courtesy
5117 of Jeff Collins. This enables filename completion again under
5119 of Jeff Collins. This enables filename completion again under
5118 python 2.3, which disabled it at the C level.
5120 python 2.3, which disabled it at the C level.
5119
5121
5120 2003-11-11 Fernando Perez <fperez@colorado.edu>
5122 2003-11-11 Fernando Perez <fperez@colorado.edu>
5121
5123
5122 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5124 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5123 for Numeric.array(map(...)), but often convenient.
5125 for Numeric.array(map(...)), but often convenient.
5124
5126
5125 2003-11-05 Fernando Perez <fperez@colorado.edu>
5127 2003-11-05 Fernando Perez <fperez@colorado.edu>
5126
5128
5127 * IPython/numutils.py (frange): Changed a call from int() to
5129 * IPython/numutils.py (frange): Changed a call from int() to
5128 int(round()) to prevent a problem reported with arange() in the
5130 int(round()) to prevent a problem reported with arange() in the
5129 numpy list.
5131 numpy list.
5130
5132
5131 2003-10-06 Fernando Perez <fperez@colorado.edu>
5133 2003-10-06 Fernando Perez <fperez@colorado.edu>
5132
5134
5133 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5135 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5134 prevent crashes if sys lacks an argv attribute (it happens with
5136 prevent crashes if sys lacks an argv attribute (it happens with
5135 embedded interpreters which build a bare-bones sys module).
5137 embedded interpreters which build a bare-bones sys module).
5136 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5138 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5137
5139
5138 2003-09-24 Fernando Perez <fperez@colorado.edu>
5140 2003-09-24 Fernando Perez <fperez@colorado.edu>
5139
5141
5140 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5142 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5141 to protect against poorly written user objects where __getattr__
5143 to protect against poorly written user objects where __getattr__
5142 raises exceptions other than AttributeError. Thanks to a bug
5144 raises exceptions other than AttributeError. Thanks to a bug
5143 report by Oliver Sander <osander-AT-gmx.de>.
5145 report by Oliver Sander <osander-AT-gmx.de>.
5144
5146
5145 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5147 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5146 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5148 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5147
5149
5148 2003-09-09 Fernando Perez <fperez@colorado.edu>
5150 2003-09-09 Fernando Perez <fperez@colorado.edu>
5149
5151
5150 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5152 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5151 unpacking a list whith a callable as first element would
5153 unpacking a list whith a callable as first element would
5152 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5154 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5153 Collins.
5155 Collins.
5154
5156
5155 2003-08-25 *** Released version 0.5.0
5157 2003-08-25 *** Released version 0.5.0
5156
5158
5157 2003-08-22 Fernando Perez <fperez@colorado.edu>
5159 2003-08-22 Fernando Perez <fperez@colorado.edu>
5158
5160
5159 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5161 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5160 improperly defined user exceptions. Thanks to feedback from Mark
5162 improperly defined user exceptions. Thanks to feedback from Mark
5161 Russell <mrussell-AT-verio.net>.
5163 Russell <mrussell-AT-verio.net>.
5162
5164
5163 2003-08-20 Fernando Perez <fperez@colorado.edu>
5165 2003-08-20 Fernando Perez <fperez@colorado.edu>
5164
5166
5165 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5167 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5166 printing so that it would print multi-line string forms starting
5168 printing so that it would print multi-line string forms starting
5167 with a new line. This way the formatting is better respected for
5169 with a new line. This way the formatting is better respected for
5168 objects which work hard to make nice string forms.
5170 objects which work hard to make nice string forms.
5169
5171
5170 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5172 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5171 autocall would overtake data access for objects with both
5173 autocall would overtake data access for objects with both
5172 __getitem__ and __call__.
5174 __getitem__ and __call__.
5173
5175
5174 2003-08-19 *** Released version 0.5.0-rc1
5176 2003-08-19 *** Released version 0.5.0-rc1
5175
5177
5176 2003-08-19 Fernando Perez <fperez@colorado.edu>
5178 2003-08-19 Fernando Perez <fperez@colorado.edu>
5177
5179
5178 * IPython/deep_reload.py (load_tail): single tiny change here
5180 * IPython/deep_reload.py (load_tail): single tiny change here
5179 seems to fix the long-standing bug of dreload() failing to work
5181 seems to fix the long-standing bug of dreload() failing to work
5180 for dotted names. But this module is pretty tricky, so I may have
5182 for dotted names. But this module is pretty tricky, so I may have
5181 missed some subtlety. Needs more testing!.
5183 missed some subtlety. Needs more testing!.
5182
5184
5183 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5185 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5184 exceptions which have badly implemented __str__ methods.
5186 exceptions which have badly implemented __str__ methods.
5185 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5187 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5186 which I've been getting reports about from Python 2.3 users. I
5188 which I've been getting reports about from Python 2.3 users. I
5187 wish I had a simple test case to reproduce the problem, so I could
5189 wish I had a simple test case to reproduce the problem, so I could
5188 either write a cleaner workaround or file a bug report if
5190 either write a cleaner workaround or file a bug report if
5189 necessary.
5191 necessary.
5190
5192
5191 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5193 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5192 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5194 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5193 a bug report by Tjabo Kloppenburg.
5195 a bug report by Tjabo Kloppenburg.
5194
5196
5195 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5197 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5196 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5198 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5197 seems rather unstable. Thanks to a bug report by Tjabo
5199 seems rather unstable. Thanks to a bug report by Tjabo
5198 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5200 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5199
5201
5200 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5202 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5201 this out soon because of the critical fixes in the inner loop for
5203 this out soon because of the critical fixes in the inner loop for
5202 generators.
5204 generators.
5203
5205
5204 * IPython/Magic.py (Magic.getargspec): removed. This (and
5206 * IPython/Magic.py (Magic.getargspec): removed. This (and
5205 _get_def) have been obsoleted by OInspect for a long time, I
5207 _get_def) have been obsoleted by OInspect for a long time, I
5206 hadn't noticed that they were dead code.
5208 hadn't noticed that they were dead code.
5207 (Magic._ofind): restored _ofind functionality for a few literals
5209 (Magic._ofind): restored _ofind functionality for a few literals
5208 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5210 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5209 for things like "hello".capitalize?, since that would require a
5211 for things like "hello".capitalize?, since that would require a
5210 potentially dangerous eval() again.
5212 potentially dangerous eval() again.
5211
5213
5212 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5214 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5213 logic a bit more to clean up the escapes handling and minimize the
5215 logic a bit more to clean up the escapes handling and minimize the
5214 use of _ofind to only necessary cases. The interactive 'feel' of
5216 use of _ofind to only necessary cases. The interactive 'feel' of
5215 IPython should have improved quite a bit with the changes in
5217 IPython should have improved quite a bit with the changes in
5216 _prefilter and _ofind (besides being far safer than before).
5218 _prefilter and _ofind (besides being far safer than before).
5217
5219
5218 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5220 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5219 obscure, never reported). Edit would fail to find the object to
5221 obscure, never reported). Edit would fail to find the object to
5220 edit under some circumstances.
5222 edit under some circumstances.
5221 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5223 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5222 which were causing double-calling of generators. Those eval calls
5224 which were causing double-calling of generators. Those eval calls
5223 were _very_ dangerous, since code with side effects could be
5225 were _very_ dangerous, since code with side effects could be
5224 triggered. As they say, 'eval is evil'... These were the
5226 triggered. As they say, 'eval is evil'... These were the
5225 nastiest evals in IPython. Besides, _ofind is now far simpler,
5227 nastiest evals in IPython. Besides, _ofind is now far simpler,
5226 and it should also be quite a bit faster. Its use of inspect is
5228 and it should also be quite a bit faster. Its use of inspect is
5227 also safer, so perhaps some of the inspect-related crashes I've
5229 also safer, so perhaps some of the inspect-related crashes I've
5228 seen lately with Python 2.3 might be taken care of. That will
5230 seen lately with Python 2.3 might be taken care of. That will
5229 need more testing.
5231 need more testing.
5230
5232
5231 2003-08-17 Fernando Perez <fperez@colorado.edu>
5233 2003-08-17 Fernando Perez <fperez@colorado.edu>
5232
5234
5233 * IPython/iplib.py (InteractiveShell._prefilter): significant
5235 * IPython/iplib.py (InteractiveShell._prefilter): significant
5234 simplifications to the logic for handling user escapes. Faster
5236 simplifications to the logic for handling user escapes. Faster
5235 and simpler code.
5237 and simpler code.
5236
5238
5237 2003-08-14 Fernando Perez <fperez@colorado.edu>
5239 2003-08-14 Fernando Perez <fperez@colorado.edu>
5238
5240
5239 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5241 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5240 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5242 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5241 but it should be quite a bit faster. And the recursive version
5243 but it should be quite a bit faster. And the recursive version
5242 generated O(log N) intermediate storage for all rank>1 arrays,
5244 generated O(log N) intermediate storage for all rank>1 arrays,
5243 even if they were contiguous.
5245 even if they were contiguous.
5244 (l1norm): Added this function.
5246 (l1norm): Added this function.
5245 (norm): Added this function for arbitrary norms (including
5247 (norm): Added this function for arbitrary norms (including
5246 l-infinity). l1 and l2 are still special cases for convenience
5248 l-infinity). l1 and l2 are still special cases for convenience
5247 and speed.
5249 and speed.
5248
5250
5249 2003-08-03 Fernando Perez <fperez@colorado.edu>
5251 2003-08-03 Fernando Perez <fperez@colorado.edu>
5250
5252
5251 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5253 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5252 exceptions, which now raise PendingDeprecationWarnings in Python
5254 exceptions, which now raise PendingDeprecationWarnings in Python
5253 2.3. There were some in Magic and some in Gnuplot2.
5255 2.3. There were some in Magic and some in Gnuplot2.
5254
5256
5255 2003-06-30 Fernando Perez <fperez@colorado.edu>
5257 2003-06-30 Fernando Perez <fperez@colorado.edu>
5256
5258
5257 * IPython/genutils.py (page): modified to call curses only for
5259 * IPython/genutils.py (page): modified to call curses only for
5258 terminals where TERM=='xterm'. After problems under many other
5260 terminals where TERM=='xterm'. After problems under many other
5259 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5261 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5260
5262
5261 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5263 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5262 would be triggered when readline was absent. This was just an old
5264 would be triggered when readline was absent. This was just an old
5263 debugging statement I'd forgotten to take out.
5265 debugging statement I'd forgotten to take out.
5264
5266
5265 2003-06-20 Fernando Perez <fperez@colorado.edu>
5267 2003-06-20 Fernando Perez <fperez@colorado.edu>
5266
5268
5267 * IPython/genutils.py (clock): modified to return only user time
5269 * IPython/genutils.py (clock): modified to return only user time
5268 (not counting system time), after a discussion on scipy. While
5270 (not counting system time), after a discussion on scipy. While
5269 system time may be a useful quantity occasionally, it may much
5271 system time may be a useful quantity occasionally, it may much
5270 more easily be skewed by occasional swapping or other similar
5272 more easily be skewed by occasional swapping or other similar
5271 activity.
5273 activity.
5272
5274
5273 2003-06-05 Fernando Perez <fperez@colorado.edu>
5275 2003-06-05 Fernando Perez <fperez@colorado.edu>
5274
5276
5275 * IPython/numutils.py (identity): new function, for building
5277 * IPython/numutils.py (identity): new function, for building
5276 arbitrary rank Kronecker deltas (mostly backwards compatible with
5278 arbitrary rank Kronecker deltas (mostly backwards compatible with
5277 Numeric.identity)
5279 Numeric.identity)
5278
5280
5279 2003-06-03 Fernando Perez <fperez@colorado.edu>
5281 2003-06-03 Fernando Perez <fperez@colorado.edu>
5280
5282
5281 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5283 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5282 arguments passed to magics with spaces, to allow trailing '\' to
5284 arguments passed to magics with spaces, to allow trailing '\' to
5283 work normally (mainly for Windows users).
5285 work normally (mainly for Windows users).
5284
5286
5285 2003-05-29 Fernando Perez <fperez@colorado.edu>
5287 2003-05-29 Fernando Perez <fperez@colorado.edu>
5286
5288
5287 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5289 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5288 instead of pydoc.help. This fixes a bizarre behavior where
5290 instead of pydoc.help. This fixes a bizarre behavior where
5289 printing '%s' % locals() would trigger the help system. Now
5291 printing '%s' % locals() would trigger the help system. Now
5290 ipython behaves like normal python does.
5292 ipython behaves like normal python does.
5291
5293
5292 Note that if one does 'from pydoc import help', the bizarre
5294 Note that if one does 'from pydoc import help', the bizarre
5293 behavior returns, but this will also happen in normal python, so
5295 behavior returns, but this will also happen in normal python, so
5294 it's not an ipython bug anymore (it has to do with how pydoc.help
5296 it's not an ipython bug anymore (it has to do with how pydoc.help
5295 is implemented).
5297 is implemented).
5296
5298
5297 2003-05-22 Fernando Perez <fperez@colorado.edu>
5299 2003-05-22 Fernando Perez <fperez@colorado.edu>
5298
5300
5299 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5301 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5300 return [] instead of None when nothing matches, also match to end
5302 return [] instead of None when nothing matches, also match to end
5301 of line. Patch by Gary Bishop.
5303 of line. Patch by Gary Bishop.
5302
5304
5303 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5305 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5304 protection as before, for files passed on the command line. This
5306 protection as before, for files passed on the command line. This
5305 prevents the CrashHandler from kicking in if user files call into
5307 prevents the CrashHandler from kicking in if user files call into
5306 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5308 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5307 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5309 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5308
5310
5309 2003-05-20 *** Released version 0.4.0
5311 2003-05-20 *** Released version 0.4.0
5310
5312
5311 2003-05-20 Fernando Perez <fperez@colorado.edu>
5313 2003-05-20 Fernando Perez <fperez@colorado.edu>
5312
5314
5313 * setup.py: added support for manpages. It's a bit hackish b/c of
5315 * setup.py: added support for manpages. It's a bit hackish b/c of
5314 a bug in the way the bdist_rpm distutils target handles gzipped
5316 a bug in the way the bdist_rpm distutils target handles gzipped
5315 manpages, but it works. After a patch by Jack.
5317 manpages, but it works. After a patch by Jack.
5316
5318
5317 2003-05-19 Fernando Perez <fperez@colorado.edu>
5319 2003-05-19 Fernando Perez <fperez@colorado.edu>
5318
5320
5319 * IPython/numutils.py: added a mockup of the kinds module, since
5321 * IPython/numutils.py: added a mockup of the kinds module, since
5320 it was recently removed from Numeric. This way, numutils will
5322 it was recently removed from Numeric. This way, numutils will
5321 work for all users even if they are missing kinds.
5323 work for all users even if they are missing kinds.
5322
5324
5323 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5325 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5324 failure, which can occur with SWIG-wrapped extensions. After a
5326 failure, which can occur with SWIG-wrapped extensions. After a
5325 crash report from Prabhu.
5327 crash report from Prabhu.
5326
5328
5327 2003-05-16 Fernando Perez <fperez@colorado.edu>
5329 2003-05-16 Fernando Perez <fperez@colorado.edu>
5328
5330
5329 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5331 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5330 protect ipython from user code which may call directly
5332 protect ipython from user code which may call directly
5331 sys.excepthook (this looks like an ipython crash to the user, even
5333 sys.excepthook (this looks like an ipython crash to the user, even
5332 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5334 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5333 This is especially important to help users of WxWindows, but may
5335 This is especially important to help users of WxWindows, but may
5334 also be useful in other cases.
5336 also be useful in other cases.
5335
5337
5336 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5338 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5337 an optional tb_offset to be specified, and to preserve exception
5339 an optional tb_offset to be specified, and to preserve exception
5338 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5340 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5339
5341
5340 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5342 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5341
5343
5342 2003-05-15 Fernando Perez <fperez@colorado.edu>
5344 2003-05-15 Fernando Perez <fperez@colorado.edu>
5343
5345
5344 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5346 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5345 installing for a new user under Windows.
5347 installing for a new user under Windows.
5346
5348
5347 2003-05-12 Fernando Perez <fperez@colorado.edu>
5349 2003-05-12 Fernando Perez <fperez@colorado.edu>
5348
5350
5349 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5351 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5350 handler for Emacs comint-based lines. Currently it doesn't do
5352 handler for Emacs comint-based lines. Currently it doesn't do
5351 much (but importantly, it doesn't update the history cache). In
5353 much (but importantly, it doesn't update the history cache). In
5352 the future it may be expanded if Alex needs more functionality
5354 the future it may be expanded if Alex needs more functionality
5353 there.
5355 there.
5354
5356
5355 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5357 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5356 info to crash reports.
5358 info to crash reports.
5357
5359
5358 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5360 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5359 just like Python's -c. Also fixed crash with invalid -color
5361 just like Python's -c. Also fixed crash with invalid -color
5360 option value at startup. Thanks to Will French
5362 option value at startup. Thanks to Will French
5361 <wfrench-AT-bestweb.net> for the bug report.
5363 <wfrench-AT-bestweb.net> for the bug report.
5362
5364
5363 2003-05-09 Fernando Perez <fperez@colorado.edu>
5365 2003-05-09 Fernando Perez <fperez@colorado.edu>
5364
5366
5365 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5367 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5366 to EvalDict (it's a mapping, after all) and simplified its code
5368 to EvalDict (it's a mapping, after all) and simplified its code
5367 quite a bit, after a nice discussion on c.l.py where Gustavo
5369 quite a bit, after a nice discussion on c.l.py where Gustavo
5368 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5370 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5369
5371
5370 2003-04-30 Fernando Perez <fperez@colorado.edu>
5372 2003-04-30 Fernando Perez <fperez@colorado.edu>
5371
5373
5372 * IPython/genutils.py (timings_out): modified it to reduce its
5374 * IPython/genutils.py (timings_out): modified it to reduce its
5373 overhead in the common reps==1 case.
5375 overhead in the common reps==1 case.
5374
5376
5375 2003-04-29 Fernando Perez <fperez@colorado.edu>
5377 2003-04-29 Fernando Perez <fperez@colorado.edu>
5376
5378
5377 * IPython/genutils.py (timings_out): Modified to use the resource
5379 * IPython/genutils.py (timings_out): Modified to use the resource
5378 module, which avoids the wraparound problems of time.clock().
5380 module, which avoids the wraparound problems of time.clock().
5379
5381
5380 2003-04-17 *** Released version 0.2.15pre4
5382 2003-04-17 *** Released version 0.2.15pre4
5381
5383
5382 2003-04-17 Fernando Perez <fperez@colorado.edu>
5384 2003-04-17 Fernando Perez <fperez@colorado.edu>
5383
5385
5384 * setup.py (scriptfiles): Split windows-specific stuff over to a
5386 * setup.py (scriptfiles): Split windows-specific stuff over to a
5385 separate file, in an attempt to have a Windows GUI installer.
5387 separate file, in an attempt to have a Windows GUI installer.
5386 That didn't work, but part of the groundwork is done.
5388 That didn't work, but part of the groundwork is done.
5387
5389
5388 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5390 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5389 indent/unindent with 4 spaces. Particularly useful in combination
5391 indent/unindent with 4 spaces. Particularly useful in combination
5390 with the new auto-indent option.
5392 with the new auto-indent option.
5391
5393
5392 2003-04-16 Fernando Perez <fperez@colorado.edu>
5394 2003-04-16 Fernando Perez <fperez@colorado.edu>
5393
5395
5394 * IPython/Magic.py: various replacements of self.rc for
5396 * IPython/Magic.py: various replacements of self.rc for
5395 self.shell.rc. A lot more remains to be done to fully disentangle
5397 self.shell.rc. A lot more remains to be done to fully disentangle
5396 this class from the main Shell class.
5398 this class from the main Shell class.
5397
5399
5398 * IPython/GnuplotRuntime.py: added checks for mouse support so
5400 * IPython/GnuplotRuntime.py: added checks for mouse support so
5399 that we don't try to enable it if the current gnuplot doesn't
5401 that we don't try to enable it if the current gnuplot doesn't
5400 really support it. Also added checks so that we don't try to
5402 really support it. Also added checks so that we don't try to
5401 enable persist under Windows (where Gnuplot doesn't recognize the
5403 enable persist under Windows (where Gnuplot doesn't recognize the
5402 option).
5404 option).
5403
5405
5404 * IPython/iplib.py (InteractiveShell.interact): Added optional
5406 * IPython/iplib.py (InteractiveShell.interact): Added optional
5405 auto-indenting code, after a patch by King C. Shu
5407 auto-indenting code, after a patch by King C. Shu
5406 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5408 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5407 get along well with pasting indented code. If I ever figure out
5409 get along well with pasting indented code. If I ever figure out
5408 how to make that part go well, it will become on by default.
5410 how to make that part go well, it will become on by default.
5409
5411
5410 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5412 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5411 crash ipython if there was an unmatched '%' in the user's prompt
5413 crash ipython if there was an unmatched '%' in the user's prompt
5412 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5414 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5413
5415
5414 * IPython/iplib.py (InteractiveShell.interact): removed the
5416 * IPython/iplib.py (InteractiveShell.interact): removed the
5415 ability to ask the user whether he wants to crash or not at the
5417 ability to ask the user whether he wants to crash or not at the
5416 'last line' exception handler. Calling functions at that point
5418 'last line' exception handler. Calling functions at that point
5417 changes the stack, and the error reports would have incorrect
5419 changes the stack, and the error reports would have incorrect
5418 tracebacks.
5420 tracebacks.
5419
5421
5420 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5422 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5421 pass through a peger a pretty-printed form of any object. After a
5423 pass through a peger a pretty-printed form of any object. After a
5422 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5424 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5423
5425
5424 2003-04-14 Fernando Perez <fperez@colorado.edu>
5426 2003-04-14 Fernando Perez <fperez@colorado.edu>
5425
5427
5426 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5428 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5427 all files in ~ would be modified at first install (instead of
5429 all files in ~ would be modified at first install (instead of
5428 ~/.ipython). This could be potentially disastrous, as the
5430 ~/.ipython). This could be potentially disastrous, as the
5429 modification (make line-endings native) could damage binary files.
5431 modification (make line-endings native) could damage binary files.
5430
5432
5431 2003-04-10 Fernando Perez <fperez@colorado.edu>
5433 2003-04-10 Fernando Perez <fperez@colorado.edu>
5432
5434
5433 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5435 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5434 handle only lines which are invalid python. This now means that
5436 handle only lines which are invalid python. This now means that
5435 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5437 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5436 for the bug report.
5438 for the bug report.
5437
5439
5438 2003-04-01 Fernando Perez <fperez@colorado.edu>
5440 2003-04-01 Fernando Perez <fperez@colorado.edu>
5439
5441
5440 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5442 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5441 where failing to set sys.last_traceback would crash pdb.pm().
5443 where failing to set sys.last_traceback would crash pdb.pm().
5442 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5444 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5443 report.
5445 report.
5444
5446
5445 2003-03-25 Fernando Perez <fperez@colorado.edu>
5447 2003-03-25 Fernando Perez <fperez@colorado.edu>
5446
5448
5447 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5449 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5448 before printing it (it had a lot of spurious blank lines at the
5450 before printing it (it had a lot of spurious blank lines at the
5449 end).
5451 end).
5450
5452
5451 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5453 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5452 output would be sent 21 times! Obviously people don't use this
5454 output would be sent 21 times! Obviously people don't use this
5453 too often, or I would have heard about it.
5455 too often, or I would have heard about it.
5454
5456
5455 2003-03-24 Fernando Perez <fperez@colorado.edu>
5457 2003-03-24 Fernando Perez <fperez@colorado.edu>
5456
5458
5457 * setup.py (scriptfiles): renamed the data_files parameter from
5459 * setup.py (scriptfiles): renamed the data_files parameter from
5458 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5460 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5459 for the patch.
5461 for the patch.
5460
5462
5461 2003-03-20 Fernando Perez <fperez@colorado.edu>
5463 2003-03-20 Fernando Perez <fperez@colorado.edu>
5462
5464
5463 * IPython/genutils.py (error): added error() and fatal()
5465 * IPython/genutils.py (error): added error() and fatal()
5464 functions.
5466 functions.
5465
5467
5466 2003-03-18 *** Released version 0.2.15pre3
5468 2003-03-18 *** Released version 0.2.15pre3
5467
5469
5468 2003-03-18 Fernando Perez <fperez@colorado.edu>
5470 2003-03-18 Fernando Perez <fperez@colorado.edu>
5469
5471
5470 * setupext/install_data_ext.py
5472 * setupext/install_data_ext.py
5471 (install_data_ext.initialize_options): Class contributed by Jack
5473 (install_data_ext.initialize_options): Class contributed by Jack
5472 Moffit for fixing the old distutils hack. He is sending this to
5474 Moffit for fixing the old distutils hack. He is sending this to
5473 the distutils folks so in the future we may not need it as a
5475 the distutils folks so in the future we may not need it as a
5474 private fix.
5476 private fix.
5475
5477
5476 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5478 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5477 changes for Debian packaging. See his patch for full details.
5479 changes for Debian packaging. See his patch for full details.
5478 The old distutils hack of making the ipythonrc* files carry a
5480 The old distutils hack of making the ipythonrc* files carry a
5479 bogus .py extension is gone, at last. Examples were moved to a
5481 bogus .py extension is gone, at last. Examples were moved to a
5480 separate subdir under doc/, and the separate executable scripts
5482 separate subdir under doc/, and the separate executable scripts
5481 now live in their own directory. Overall a great cleanup. The
5483 now live in their own directory. Overall a great cleanup. The
5482 manual was updated to use the new files, and setup.py has been
5484 manual was updated to use the new files, and setup.py has been
5483 fixed for this setup.
5485 fixed for this setup.
5484
5486
5485 * IPython/PyColorize.py (Parser.usage): made non-executable and
5487 * IPython/PyColorize.py (Parser.usage): made non-executable and
5486 created a pycolor wrapper around it to be included as a script.
5488 created a pycolor wrapper around it to be included as a script.
5487
5489
5488 2003-03-12 *** Released version 0.2.15pre2
5490 2003-03-12 *** Released version 0.2.15pre2
5489
5491
5490 2003-03-12 Fernando Perez <fperez@colorado.edu>
5492 2003-03-12 Fernando Perez <fperez@colorado.edu>
5491
5493
5492 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5494 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5493 long-standing problem with garbage characters in some terminals.
5495 long-standing problem with garbage characters in some terminals.
5494 The issue was really that the \001 and \002 escapes must _only_ be
5496 The issue was really that the \001 and \002 escapes must _only_ be
5495 passed to input prompts (which call readline), but _never_ to
5497 passed to input prompts (which call readline), but _never_ to
5496 normal text to be printed on screen. I changed ColorANSI to have
5498 normal text to be printed on screen. I changed ColorANSI to have
5497 two classes: TermColors and InputTermColors, each with the
5499 two classes: TermColors and InputTermColors, each with the
5498 appropriate escapes for input prompts or normal text. The code in
5500 appropriate escapes for input prompts or normal text. The code in
5499 Prompts.py got slightly more complicated, but this very old and
5501 Prompts.py got slightly more complicated, but this very old and
5500 annoying bug is finally fixed.
5502 annoying bug is finally fixed.
5501
5503
5502 All the credit for nailing down the real origin of this problem
5504 All the credit for nailing down the real origin of this problem
5503 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5505 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5504 *Many* thanks to him for spending quite a bit of effort on this.
5506 *Many* thanks to him for spending quite a bit of effort on this.
5505
5507
5506 2003-03-05 *** Released version 0.2.15pre1
5508 2003-03-05 *** Released version 0.2.15pre1
5507
5509
5508 2003-03-03 Fernando Perez <fperez@colorado.edu>
5510 2003-03-03 Fernando Perez <fperez@colorado.edu>
5509
5511
5510 * IPython/FakeModule.py: Moved the former _FakeModule to a
5512 * IPython/FakeModule.py: Moved the former _FakeModule to a
5511 separate file, because it's also needed by Magic (to fix a similar
5513 separate file, because it's also needed by Magic (to fix a similar
5512 pickle-related issue in @run).
5514 pickle-related issue in @run).
5513
5515
5514 2003-03-02 Fernando Perez <fperez@colorado.edu>
5516 2003-03-02 Fernando Perez <fperez@colorado.edu>
5515
5517
5516 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5518 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5517 the autocall option at runtime.
5519 the autocall option at runtime.
5518 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5520 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5519 across Magic.py to start separating Magic from InteractiveShell.
5521 across Magic.py to start separating Magic from InteractiveShell.
5520 (Magic._ofind): Fixed to return proper namespace for dotted
5522 (Magic._ofind): Fixed to return proper namespace for dotted
5521 names. Before, a dotted name would always return 'not currently
5523 names. Before, a dotted name would always return 'not currently
5522 defined', because it would find the 'parent'. s.x would be found,
5524 defined', because it would find the 'parent'. s.x would be found,
5523 but since 'x' isn't defined by itself, it would get confused.
5525 but since 'x' isn't defined by itself, it would get confused.
5524 (Magic.magic_run): Fixed pickling problems reported by Ralf
5526 (Magic.magic_run): Fixed pickling problems reported by Ralf
5525 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5527 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5526 that I'd used when Mike Heeter reported similar issues at the
5528 that I'd used when Mike Heeter reported similar issues at the
5527 top-level, but now for @run. It boils down to injecting the
5529 top-level, but now for @run. It boils down to injecting the
5528 namespace where code is being executed with something that looks
5530 namespace where code is being executed with something that looks
5529 enough like a module to fool pickle.dump(). Since a pickle stores
5531 enough like a module to fool pickle.dump(). Since a pickle stores
5530 a named reference to the importing module, we need this for
5532 a named reference to the importing module, we need this for
5531 pickles to save something sensible.
5533 pickles to save something sensible.
5532
5534
5533 * IPython/ipmaker.py (make_IPython): added an autocall option.
5535 * IPython/ipmaker.py (make_IPython): added an autocall option.
5534
5536
5535 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5537 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5536 the auto-eval code. Now autocalling is an option, and the code is
5538 the auto-eval code. Now autocalling is an option, and the code is
5537 also vastly safer. There is no more eval() involved at all.
5539 also vastly safer. There is no more eval() involved at all.
5538
5540
5539 2003-03-01 Fernando Perez <fperez@colorado.edu>
5541 2003-03-01 Fernando Perez <fperez@colorado.edu>
5540
5542
5541 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5543 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5542 dict with named keys instead of a tuple.
5544 dict with named keys instead of a tuple.
5543
5545
5544 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5546 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5545
5547
5546 * setup.py (make_shortcut): Fixed message about directories
5548 * setup.py (make_shortcut): Fixed message about directories
5547 created during Windows installation (the directories were ok, just
5549 created during Windows installation (the directories were ok, just
5548 the printed message was misleading). Thanks to Chris Liechti
5550 the printed message was misleading). Thanks to Chris Liechti
5549 <cliechti-AT-gmx.net> for the heads up.
5551 <cliechti-AT-gmx.net> for the heads up.
5550
5552
5551 2003-02-21 Fernando Perez <fperez@colorado.edu>
5553 2003-02-21 Fernando Perez <fperez@colorado.edu>
5552
5554
5553 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5555 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5554 of ValueError exception when checking for auto-execution. This
5556 of ValueError exception when checking for auto-execution. This
5555 one is raised by things like Numeric arrays arr.flat when the
5557 one is raised by things like Numeric arrays arr.flat when the
5556 array is non-contiguous.
5558 array is non-contiguous.
5557
5559
5558 2003-01-31 Fernando Perez <fperez@colorado.edu>
5560 2003-01-31 Fernando Perez <fperez@colorado.edu>
5559
5561
5560 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5562 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5561 not return any value at all (even though the command would get
5563 not return any value at all (even though the command would get
5562 executed).
5564 executed).
5563 (xsys): Flush stdout right after printing the command to ensure
5565 (xsys): Flush stdout right after printing the command to ensure
5564 proper ordering of commands and command output in the total
5566 proper ordering of commands and command output in the total
5565 output.
5567 output.
5566 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5568 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5567 system/getoutput as defaults. The old ones are kept for
5569 system/getoutput as defaults. The old ones are kept for
5568 compatibility reasons, so no code which uses this library needs
5570 compatibility reasons, so no code which uses this library needs
5569 changing.
5571 changing.
5570
5572
5571 2003-01-27 *** Released version 0.2.14
5573 2003-01-27 *** Released version 0.2.14
5572
5574
5573 2003-01-25 Fernando Perez <fperez@colorado.edu>
5575 2003-01-25 Fernando Perez <fperez@colorado.edu>
5574
5576
5575 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5577 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5576 functions defined in previous edit sessions could not be re-edited
5578 functions defined in previous edit sessions could not be re-edited
5577 (because the temp files were immediately removed). Now temp files
5579 (because the temp files were immediately removed). Now temp files
5578 are removed only at IPython's exit.
5580 are removed only at IPython's exit.
5579 (Magic.magic_run): Improved @run to perform shell-like expansions
5581 (Magic.magic_run): Improved @run to perform shell-like expansions
5580 on its arguments (~users and $VARS). With this, @run becomes more
5582 on its arguments (~users and $VARS). With this, @run becomes more
5581 like a normal command-line.
5583 like a normal command-line.
5582
5584
5583 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5585 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5584 bugs related to embedding and cleaned up that code. A fairly
5586 bugs related to embedding and cleaned up that code. A fairly
5585 important one was the impossibility to access the global namespace
5587 important one was the impossibility to access the global namespace
5586 through the embedded IPython (only local variables were visible).
5588 through the embedded IPython (only local variables were visible).
5587
5589
5588 2003-01-14 Fernando Perez <fperez@colorado.edu>
5590 2003-01-14 Fernando Perez <fperez@colorado.edu>
5589
5591
5590 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5592 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5591 auto-calling to be a bit more conservative. Now it doesn't get
5593 auto-calling to be a bit more conservative. Now it doesn't get
5592 triggered if any of '!=()<>' are in the rest of the input line, to
5594 triggered if any of '!=()<>' are in the rest of the input line, to
5593 allow comparing callables. Thanks to Alex for the heads up.
5595 allow comparing callables. Thanks to Alex for the heads up.
5594
5596
5595 2003-01-07 Fernando Perez <fperez@colorado.edu>
5597 2003-01-07 Fernando Perez <fperez@colorado.edu>
5596
5598
5597 * IPython/genutils.py (page): fixed estimation of the number of
5599 * IPython/genutils.py (page): fixed estimation of the number of
5598 lines in a string to be paged to simply count newlines. This
5600 lines in a string to be paged to simply count newlines. This
5599 prevents over-guessing due to embedded escape sequences. A better
5601 prevents over-guessing due to embedded escape sequences. A better
5600 long-term solution would involve stripping out the control chars
5602 long-term solution would involve stripping out the control chars
5601 for the count, but it's potentially so expensive I just don't
5603 for the count, but it's potentially so expensive I just don't
5602 think it's worth doing.
5604 think it's worth doing.
5603
5605
5604 2002-12-19 *** Released version 0.2.14pre50
5606 2002-12-19 *** Released version 0.2.14pre50
5605
5607
5606 2002-12-19 Fernando Perez <fperez@colorado.edu>
5608 2002-12-19 Fernando Perez <fperez@colorado.edu>
5607
5609
5608 * tools/release (version): Changed release scripts to inform
5610 * tools/release (version): Changed release scripts to inform
5609 Andrea and build a NEWS file with a list of recent changes.
5611 Andrea and build a NEWS file with a list of recent changes.
5610
5612
5611 * IPython/ColorANSI.py (__all__): changed terminal detection
5613 * IPython/ColorANSI.py (__all__): changed terminal detection
5612 code. Seems to work better for xterms without breaking
5614 code. Seems to work better for xterms without breaking
5613 konsole. Will need more testing to determine if WinXP and Mac OSX
5615 konsole. Will need more testing to determine if WinXP and Mac OSX
5614 also work ok.
5616 also work ok.
5615
5617
5616 2002-12-18 *** Released version 0.2.14pre49
5618 2002-12-18 *** Released version 0.2.14pre49
5617
5619
5618 2002-12-18 Fernando Perez <fperez@colorado.edu>
5620 2002-12-18 Fernando Perez <fperez@colorado.edu>
5619
5621
5620 * Docs: added new info about Mac OSX, from Andrea.
5622 * Docs: added new info about Mac OSX, from Andrea.
5621
5623
5622 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5624 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5623 allow direct plotting of python strings whose format is the same
5625 allow direct plotting of python strings whose format is the same
5624 of gnuplot data files.
5626 of gnuplot data files.
5625
5627
5626 2002-12-16 Fernando Perez <fperez@colorado.edu>
5628 2002-12-16 Fernando Perez <fperez@colorado.edu>
5627
5629
5628 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5630 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5629 value of exit question to be acknowledged.
5631 value of exit question to be acknowledged.
5630
5632
5631 2002-12-03 Fernando Perez <fperez@colorado.edu>
5633 2002-12-03 Fernando Perez <fperez@colorado.edu>
5632
5634
5633 * IPython/ipmaker.py: removed generators, which had been added
5635 * IPython/ipmaker.py: removed generators, which had been added
5634 by mistake in an earlier debugging run. This was causing trouble
5636 by mistake in an earlier debugging run. This was causing trouble
5635 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5637 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5636 for pointing this out.
5638 for pointing this out.
5637
5639
5638 2002-11-17 Fernando Perez <fperez@colorado.edu>
5640 2002-11-17 Fernando Perez <fperez@colorado.edu>
5639
5641
5640 * Manual: updated the Gnuplot section.
5642 * Manual: updated the Gnuplot section.
5641
5643
5642 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5644 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5643 a much better split of what goes in Runtime and what goes in
5645 a much better split of what goes in Runtime and what goes in
5644 Interactive.
5646 Interactive.
5645
5647
5646 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5648 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5647 being imported from iplib.
5649 being imported from iplib.
5648
5650
5649 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5651 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5650 for command-passing. Now the global Gnuplot instance is called
5652 for command-passing. Now the global Gnuplot instance is called
5651 'gp' instead of 'g', which was really a far too fragile and
5653 'gp' instead of 'g', which was really a far too fragile and
5652 common name.
5654 common name.
5653
5655
5654 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5656 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5655 bounding boxes generated by Gnuplot for square plots.
5657 bounding boxes generated by Gnuplot for square plots.
5656
5658
5657 * IPython/genutils.py (popkey): new function added. I should
5659 * IPython/genutils.py (popkey): new function added. I should
5658 suggest this on c.l.py as a dict method, it seems useful.
5660 suggest this on c.l.py as a dict method, it seems useful.
5659
5661
5660 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5662 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5661 to transparently handle PostScript generation. MUCH better than
5663 to transparently handle PostScript generation. MUCH better than
5662 the previous plot_eps/replot_eps (which I removed now). The code
5664 the previous plot_eps/replot_eps (which I removed now). The code
5663 is also fairly clean and well documented now (including
5665 is also fairly clean and well documented now (including
5664 docstrings).
5666 docstrings).
5665
5667
5666 2002-11-13 Fernando Perez <fperez@colorado.edu>
5668 2002-11-13 Fernando Perez <fperez@colorado.edu>
5667
5669
5668 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5670 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5669 (inconsistent with options).
5671 (inconsistent with options).
5670
5672
5671 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5673 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5672 manually disabled, I don't know why. Fixed it.
5674 manually disabled, I don't know why. Fixed it.
5673 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5675 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5674 eps output.
5676 eps output.
5675
5677
5676 2002-11-12 Fernando Perez <fperez@colorado.edu>
5678 2002-11-12 Fernando Perez <fperez@colorado.edu>
5677
5679
5678 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5680 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5679 don't propagate up to caller. Fixes crash reported by François
5681 don't propagate up to caller. Fixes crash reported by François
5680 Pinard.
5682 Pinard.
5681
5683
5682 2002-11-09 Fernando Perez <fperez@colorado.edu>
5684 2002-11-09 Fernando Perez <fperez@colorado.edu>
5683
5685
5684 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5686 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5685 history file for new users.
5687 history file for new users.
5686 (make_IPython): fixed bug where initial install would leave the
5688 (make_IPython): fixed bug where initial install would leave the
5687 user running in the .ipython dir.
5689 user running in the .ipython dir.
5688 (make_IPython): fixed bug where config dir .ipython would be
5690 (make_IPython): fixed bug where config dir .ipython would be
5689 created regardless of the given -ipythondir option. Thanks to Cory
5691 created regardless of the given -ipythondir option. Thanks to Cory
5690 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5692 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5691
5693
5692 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5694 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5693 type confirmations. Will need to use it in all of IPython's code
5695 type confirmations. Will need to use it in all of IPython's code
5694 consistently.
5696 consistently.
5695
5697
5696 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5698 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5697 context to print 31 lines instead of the default 5. This will make
5699 context to print 31 lines instead of the default 5. This will make
5698 the crash reports extremely detailed in case the problem is in
5700 the crash reports extremely detailed in case the problem is in
5699 libraries I don't have access to.
5701 libraries I don't have access to.
5700
5702
5701 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5703 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5702 line of defense' code to still crash, but giving users fair
5704 line of defense' code to still crash, but giving users fair
5703 warning. I don't want internal errors to go unreported: if there's
5705 warning. I don't want internal errors to go unreported: if there's
5704 an internal problem, IPython should crash and generate a full
5706 an internal problem, IPython should crash and generate a full
5705 report.
5707 report.
5706
5708
5707 2002-11-08 Fernando Perez <fperez@colorado.edu>
5709 2002-11-08 Fernando Perez <fperez@colorado.edu>
5708
5710
5709 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5711 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5710 otherwise uncaught exceptions which can appear if people set
5712 otherwise uncaught exceptions which can appear if people set
5711 sys.stdout to something badly broken. Thanks to a crash report
5713 sys.stdout to something badly broken. Thanks to a crash report
5712 from henni-AT-mail.brainbot.com.
5714 from henni-AT-mail.brainbot.com.
5713
5715
5714 2002-11-04 Fernando Perez <fperez@colorado.edu>
5716 2002-11-04 Fernando Perez <fperez@colorado.edu>
5715
5717
5716 * IPython/iplib.py (InteractiveShell.interact): added
5718 * IPython/iplib.py (InteractiveShell.interact): added
5717 __IPYTHON__active to the builtins. It's a flag which goes on when
5719 __IPYTHON__active to the builtins. It's a flag which goes on when
5718 the interaction starts and goes off again when it stops. This
5720 the interaction starts and goes off again when it stops. This
5719 allows embedding code to detect being inside IPython. Before this
5721 allows embedding code to detect being inside IPython. Before this
5720 was done via __IPYTHON__, but that only shows that an IPython
5722 was done via __IPYTHON__, but that only shows that an IPython
5721 instance has been created.
5723 instance has been created.
5722
5724
5723 * IPython/Magic.py (Magic.magic_env): I realized that in a
5725 * IPython/Magic.py (Magic.magic_env): I realized that in a
5724 UserDict, instance.data holds the data as a normal dict. So I
5726 UserDict, instance.data holds the data as a normal dict. So I
5725 modified @env to return os.environ.data instead of rebuilding a
5727 modified @env to return os.environ.data instead of rebuilding a
5726 dict by hand.
5728 dict by hand.
5727
5729
5728 2002-11-02 Fernando Perez <fperez@colorado.edu>
5730 2002-11-02 Fernando Perez <fperez@colorado.edu>
5729
5731
5730 * IPython/genutils.py (warn): changed so that level 1 prints no
5732 * IPython/genutils.py (warn): changed so that level 1 prints no
5731 header. Level 2 is now the default (with 'WARNING' header, as
5733 header. Level 2 is now the default (with 'WARNING' header, as
5732 before). I think I tracked all places where changes were needed in
5734 before). I think I tracked all places where changes were needed in
5733 IPython, but outside code using the old level numbering may have
5735 IPython, but outside code using the old level numbering may have
5734 broken.
5736 broken.
5735
5737
5736 * IPython/iplib.py (InteractiveShell.runcode): added this to
5738 * IPython/iplib.py (InteractiveShell.runcode): added this to
5737 handle the tracebacks in SystemExit traps correctly. The previous
5739 handle the tracebacks in SystemExit traps correctly. The previous
5738 code (through interact) was printing more of the stack than
5740 code (through interact) was printing more of the stack than
5739 necessary, showing IPython internal code to the user.
5741 necessary, showing IPython internal code to the user.
5740
5742
5741 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5743 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5742 default. Now that the default at the confirmation prompt is yes,
5744 default. Now that the default at the confirmation prompt is yes,
5743 it's not so intrusive. François' argument that ipython sessions
5745 it's not so intrusive. François' argument that ipython sessions
5744 tend to be complex enough not to lose them from an accidental C-d,
5746 tend to be complex enough not to lose them from an accidental C-d,
5745 is a valid one.
5747 is a valid one.
5746
5748
5747 * IPython/iplib.py (InteractiveShell.interact): added a
5749 * IPython/iplib.py (InteractiveShell.interact): added a
5748 showtraceback() call to the SystemExit trap, and modified the exit
5750 showtraceback() call to the SystemExit trap, and modified the exit
5749 confirmation to have yes as the default.
5751 confirmation to have yes as the default.
5750
5752
5751 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5753 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5752 this file. It's been gone from the code for a long time, this was
5754 this file. It's been gone from the code for a long time, this was
5753 simply leftover junk.
5755 simply leftover junk.
5754
5756
5755 2002-11-01 Fernando Perez <fperez@colorado.edu>
5757 2002-11-01 Fernando Perez <fperez@colorado.edu>
5756
5758
5757 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5759 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5758 added. If set, IPython now traps EOF and asks for
5760 added. If set, IPython now traps EOF and asks for
5759 confirmation. After a request by François Pinard.
5761 confirmation. After a request by François Pinard.
5760
5762
5761 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5763 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5762 of @abort, and with a new (better) mechanism for handling the
5764 of @abort, and with a new (better) mechanism for handling the
5763 exceptions.
5765 exceptions.
5764
5766
5765 2002-10-27 Fernando Perez <fperez@colorado.edu>
5767 2002-10-27 Fernando Perez <fperez@colorado.edu>
5766
5768
5767 * IPython/usage.py (__doc__): updated the --help information and
5769 * IPython/usage.py (__doc__): updated the --help information and
5768 the ipythonrc file to indicate that -log generates
5770 the ipythonrc file to indicate that -log generates
5769 ./ipython.log. Also fixed the corresponding info in @logstart.
5771 ./ipython.log. Also fixed the corresponding info in @logstart.
5770 This and several other fixes in the manuals thanks to reports by
5772 This and several other fixes in the manuals thanks to reports by
5771 François Pinard <pinard-AT-iro.umontreal.ca>.
5773 François Pinard <pinard-AT-iro.umontreal.ca>.
5772
5774
5773 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5775 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5774 refer to @logstart (instead of @log, which doesn't exist).
5776 refer to @logstart (instead of @log, which doesn't exist).
5775
5777
5776 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5778 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5777 AttributeError crash. Thanks to Christopher Armstrong
5779 AttributeError crash. Thanks to Christopher Armstrong
5778 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5780 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5779 introduced recently (in 0.2.14pre37) with the fix to the eval
5781 introduced recently (in 0.2.14pre37) with the fix to the eval
5780 problem mentioned below.
5782 problem mentioned below.
5781
5783
5782 2002-10-17 Fernando Perez <fperez@colorado.edu>
5784 2002-10-17 Fernando Perez <fperez@colorado.edu>
5783
5785
5784 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5786 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5785 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5787 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5786
5788
5787 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5789 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5788 this function to fix a problem reported by Alex Schmolck. He saw
5790 this function to fix a problem reported by Alex Schmolck. He saw
5789 it with list comprehensions and generators, which were getting
5791 it with list comprehensions and generators, which were getting
5790 called twice. The real problem was an 'eval' call in testing for
5792 called twice. The real problem was an 'eval' call in testing for
5791 automagic which was evaluating the input line silently.
5793 automagic which was evaluating the input line silently.
5792
5794
5793 This is a potentially very nasty bug, if the input has side
5795 This is a potentially very nasty bug, if the input has side
5794 effects which must not be repeated. The code is much cleaner now,
5796 effects which must not be repeated. The code is much cleaner now,
5795 without any blanket 'except' left and with a regexp test for
5797 without any blanket 'except' left and with a regexp test for
5796 actual function names.
5798 actual function names.
5797
5799
5798 But an eval remains, which I'm not fully comfortable with. I just
5800 But an eval remains, which I'm not fully comfortable with. I just
5799 don't know how to find out if an expression could be a callable in
5801 don't know how to find out if an expression could be a callable in
5800 the user's namespace without doing an eval on the string. However
5802 the user's namespace without doing an eval on the string. However
5801 that string is now much more strictly checked so that no code
5803 that string is now much more strictly checked so that no code
5802 slips by, so the eval should only happen for things that can
5804 slips by, so the eval should only happen for things that can
5803 really be only function/method names.
5805 really be only function/method names.
5804
5806
5805 2002-10-15 Fernando Perez <fperez@colorado.edu>
5807 2002-10-15 Fernando Perez <fperez@colorado.edu>
5806
5808
5807 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5809 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5808 OSX information to main manual, removed README_Mac_OSX file from
5810 OSX information to main manual, removed README_Mac_OSX file from
5809 distribution. Also updated credits for recent additions.
5811 distribution. Also updated credits for recent additions.
5810
5812
5811 2002-10-10 Fernando Perez <fperez@colorado.edu>
5813 2002-10-10 Fernando Perez <fperez@colorado.edu>
5812
5814
5813 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5815 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5814 terminal-related issues. Many thanks to Andrea Riciputi
5816 terminal-related issues. Many thanks to Andrea Riciputi
5815 <andrea.riciputi-AT-libero.it> for writing it.
5817 <andrea.riciputi-AT-libero.it> for writing it.
5816
5818
5817 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5819 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5818 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5820 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5819
5821
5820 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5822 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5821 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5823 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5822 <syver-en-AT-online.no> who both submitted patches for this problem.
5824 <syver-en-AT-online.no> who both submitted patches for this problem.
5823
5825
5824 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5826 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5825 global embedding to make sure that things don't overwrite user
5827 global embedding to make sure that things don't overwrite user
5826 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5828 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5827
5829
5828 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5830 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5829 compatibility. Thanks to Hayden Callow
5831 compatibility. Thanks to Hayden Callow
5830 <h.callow-AT-elec.canterbury.ac.nz>
5832 <h.callow-AT-elec.canterbury.ac.nz>
5831
5833
5832 2002-10-04 Fernando Perez <fperez@colorado.edu>
5834 2002-10-04 Fernando Perez <fperez@colorado.edu>
5833
5835
5834 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5836 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5835 Gnuplot.File objects.
5837 Gnuplot.File objects.
5836
5838
5837 2002-07-23 Fernando Perez <fperez@colorado.edu>
5839 2002-07-23 Fernando Perez <fperez@colorado.edu>
5838
5840
5839 * IPython/genutils.py (timing): Added timings() and timing() for
5841 * IPython/genutils.py (timing): Added timings() and timing() for
5840 quick access to the most commonly needed data, the execution
5842 quick access to the most commonly needed data, the execution
5841 times. Old timing() renamed to timings_out().
5843 times. Old timing() renamed to timings_out().
5842
5844
5843 2002-07-18 Fernando Perez <fperez@colorado.edu>
5845 2002-07-18 Fernando Perez <fperez@colorado.edu>
5844
5846
5845 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5847 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5846 bug with nested instances disrupting the parent's tab completion.
5848 bug with nested instances disrupting the parent's tab completion.
5847
5849
5848 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5850 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5849 all_completions code to begin the emacs integration.
5851 all_completions code to begin the emacs integration.
5850
5852
5851 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5853 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5852 argument to allow titling individual arrays when plotting.
5854 argument to allow titling individual arrays when plotting.
5853
5855
5854 2002-07-15 Fernando Perez <fperez@colorado.edu>
5856 2002-07-15 Fernando Perez <fperez@colorado.edu>
5855
5857
5856 * setup.py (make_shortcut): changed to retrieve the value of
5858 * setup.py (make_shortcut): changed to retrieve the value of
5857 'Program Files' directory from the registry (this value changes in
5859 'Program Files' directory from the registry (this value changes in
5858 non-english versions of Windows). Thanks to Thomas Fanslau
5860 non-english versions of Windows). Thanks to Thomas Fanslau
5859 <tfanslau-AT-gmx.de> for the report.
5861 <tfanslau-AT-gmx.de> for the report.
5860
5862
5861 2002-07-10 Fernando Perez <fperez@colorado.edu>
5863 2002-07-10 Fernando Perez <fperez@colorado.edu>
5862
5864
5863 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5865 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5864 a bug in pdb, which crashes if a line with only whitespace is
5866 a bug in pdb, which crashes if a line with only whitespace is
5865 entered. Bug report submitted to sourceforge.
5867 entered. Bug report submitted to sourceforge.
5866
5868
5867 2002-07-09 Fernando Perez <fperez@colorado.edu>
5869 2002-07-09 Fernando Perez <fperez@colorado.edu>
5868
5870
5869 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5871 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5870 reporting exceptions (it's a bug in inspect.py, I just set a
5872 reporting exceptions (it's a bug in inspect.py, I just set a
5871 workaround).
5873 workaround).
5872
5874
5873 2002-07-08 Fernando Perez <fperez@colorado.edu>
5875 2002-07-08 Fernando Perez <fperez@colorado.edu>
5874
5876
5875 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5877 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5876 __IPYTHON__ in __builtins__ to show up in user_ns.
5878 __IPYTHON__ in __builtins__ to show up in user_ns.
5877
5879
5878 2002-07-03 Fernando Perez <fperez@colorado.edu>
5880 2002-07-03 Fernando Perez <fperez@colorado.edu>
5879
5881
5880 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5882 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5881 name from @gp_set_instance to @gp_set_default.
5883 name from @gp_set_instance to @gp_set_default.
5882
5884
5883 * IPython/ipmaker.py (make_IPython): default editor value set to
5885 * IPython/ipmaker.py (make_IPython): default editor value set to
5884 '0' (a string), to match the rc file. Otherwise will crash when
5886 '0' (a string), to match the rc file. Otherwise will crash when
5885 .strip() is called on it.
5887 .strip() is called on it.
5886
5888
5887
5889
5888 2002-06-28 Fernando Perez <fperez@colorado.edu>
5890 2002-06-28 Fernando Perez <fperez@colorado.edu>
5889
5891
5890 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5892 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5891 of files in current directory when a file is executed via
5893 of files in current directory when a file is executed via
5892 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5894 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5893
5895
5894 * setup.py (manfiles): fix for rpm builds, submitted by RA
5896 * setup.py (manfiles): fix for rpm builds, submitted by RA
5895 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5897 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5896
5898
5897 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5899 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5898 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5900 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5899 string!). A. Schmolck caught this one.
5901 string!). A. Schmolck caught this one.
5900
5902
5901 2002-06-27 Fernando Perez <fperez@colorado.edu>
5903 2002-06-27 Fernando Perez <fperez@colorado.edu>
5902
5904
5903 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5905 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5904 defined files at the cmd line. __name__ wasn't being set to
5906 defined files at the cmd line. __name__ wasn't being set to
5905 __main__.
5907 __main__.
5906
5908
5907 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5909 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5908 regular lists and tuples besides Numeric arrays.
5910 regular lists and tuples besides Numeric arrays.
5909
5911
5910 * IPython/Prompts.py (CachedOutput.__call__): Added output
5912 * IPython/Prompts.py (CachedOutput.__call__): Added output
5911 supression for input ending with ';'. Similar to Mathematica and
5913 supression for input ending with ';'. Similar to Mathematica and
5912 Matlab. The _* vars and Out[] list are still updated, just like
5914 Matlab. The _* vars and Out[] list are still updated, just like
5913 Mathematica behaves.
5915 Mathematica behaves.
5914
5916
5915 2002-06-25 Fernando Perez <fperez@colorado.edu>
5917 2002-06-25 Fernando Perez <fperez@colorado.edu>
5916
5918
5917 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5919 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5918 .ini extensions for profiels under Windows.
5920 .ini extensions for profiels under Windows.
5919
5921
5920 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5922 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5921 string form. Fix contributed by Alexander Schmolck
5923 string form. Fix contributed by Alexander Schmolck
5922 <a.schmolck-AT-gmx.net>
5924 <a.schmolck-AT-gmx.net>
5923
5925
5924 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5926 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5925 pre-configured Gnuplot instance.
5927 pre-configured Gnuplot instance.
5926
5928
5927 2002-06-21 Fernando Perez <fperez@colorado.edu>
5929 2002-06-21 Fernando Perez <fperez@colorado.edu>
5928
5930
5929 * IPython/numutils.py (exp_safe): new function, works around the
5931 * IPython/numutils.py (exp_safe): new function, works around the
5930 underflow problems in Numeric.
5932 underflow problems in Numeric.
5931 (log2): New fn. Safe log in base 2: returns exact integer answer
5933 (log2): New fn. Safe log in base 2: returns exact integer answer
5932 for exact integer powers of 2.
5934 for exact integer powers of 2.
5933
5935
5934 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5936 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5935 properly.
5937 properly.
5936
5938
5937 2002-06-20 Fernando Perez <fperez@colorado.edu>
5939 2002-06-20 Fernando Perez <fperez@colorado.edu>
5938
5940
5939 * IPython/genutils.py (timing): new function like
5941 * IPython/genutils.py (timing): new function like
5940 Mathematica's. Similar to time_test, but returns more info.
5942 Mathematica's. Similar to time_test, but returns more info.
5941
5943
5942 2002-06-18 Fernando Perez <fperez@colorado.edu>
5944 2002-06-18 Fernando Perez <fperez@colorado.edu>
5943
5945
5944 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5946 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5945 according to Mike Heeter's suggestions.
5947 according to Mike Heeter's suggestions.
5946
5948
5947 2002-06-16 Fernando Perez <fperez@colorado.edu>
5949 2002-06-16 Fernando Perez <fperez@colorado.edu>
5948
5950
5949 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5951 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5950 system. GnuplotMagic is gone as a user-directory option. New files
5952 system. GnuplotMagic is gone as a user-directory option. New files
5951 make it easier to use all the gnuplot stuff both from external
5953 make it easier to use all the gnuplot stuff both from external
5952 programs as well as from IPython. Had to rewrite part of
5954 programs as well as from IPython. Had to rewrite part of
5953 hardcopy() b/c of a strange bug: often the ps files simply don't
5955 hardcopy() b/c of a strange bug: often the ps files simply don't
5954 get created, and require a repeat of the command (often several
5956 get created, and require a repeat of the command (often several
5955 times).
5957 times).
5956
5958
5957 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5959 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5958 resolve output channel at call time, so that if sys.stderr has
5960 resolve output channel at call time, so that if sys.stderr has
5959 been redirected by user this gets honored.
5961 been redirected by user this gets honored.
5960
5962
5961 2002-06-13 Fernando Perez <fperez@colorado.edu>
5963 2002-06-13 Fernando Perez <fperez@colorado.edu>
5962
5964
5963 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5965 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5964 IPShell. Kept a copy with the old names to avoid breaking people's
5966 IPShell. Kept a copy with the old names to avoid breaking people's
5965 embedded code.
5967 embedded code.
5966
5968
5967 * IPython/ipython: simplified it to the bare minimum after
5969 * IPython/ipython: simplified it to the bare minimum after
5968 Holger's suggestions. Added info about how to use it in
5970 Holger's suggestions. Added info about how to use it in
5969 PYTHONSTARTUP.
5971 PYTHONSTARTUP.
5970
5972
5971 * IPython/Shell.py (IPythonShell): changed the options passing
5973 * IPython/Shell.py (IPythonShell): changed the options passing
5972 from a string with funky %s replacements to a straight list. Maybe
5974 from a string with funky %s replacements to a straight list. Maybe
5973 a bit more typing, but it follows sys.argv conventions, so there's
5975 a bit more typing, but it follows sys.argv conventions, so there's
5974 less special-casing to remember.
5976 less special-casing to remember.
5975
5977
5976 2002-06-12 Fernando Perez <fperez@colorado.edu>
5978 2002-06-12 Fernando Perez <fperez@colorado.edu>
5977
5979
5978 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5980 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5979 command. Thanks to a suggestion by Mike Heeter.
5981 command. Thanks to a suggestion by Mike Heeter.
5980 (Magic.magic_pfile): added behavior to look at filenames if given
5982 (Magic.magic_pfile): added behavior to look at filenames if given
5981 arg is not a defined object.
5983 arg is not a defined object.
5982 (Magic.magic_save): New @save function to save code snippets. Also
5984 (Magic.magic_save): New @save function to save code snippets. Also
5983 a Mike Heeter idea.
5985 a Mike Heeter idea.
5984
5986
5985 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5987 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5986 plot() and replot(). Much more convenient now, especially for
5988 plot() and replot(). Much more convenient now, especially for
5987 interactive use.
5989 interactive use.
5988
5990
5989 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5991 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5990 filenames.
5992 filenames.
5991
5993
5992 2002-06-02 Fernando Perez <fperez@colorado.edu>
5994 2002-06-02 Fernando Perez <fperez@colorado.edu>
5993
5995
5994 * IPython/Struct.py (Struct.__init__): modified to admit
5996 * IPython/Struct.py (Struct.__init__): modified to admit
5995 initialization via another struct.
5997 initialization via another struct.
5996
5998
5997 * IPython/genutils.py (SystemExec.__init__): New stateful
5999 * IPython/genutils.py (SystemExec.__init__): New stateful
5998 interface to xsys and bq. Useful for writing system scripts.
6000 interface to xsys and bq. Useful for writing system scripts.
5999
6001
6000 2002-05-30 Fernando Perez <fperez@colorado.edu>
6002 2002-05-30 Fernando Perez <fperez@colorado.edu>
6001
6003
6002 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6004 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6003 documents. This will make the user download smaller (it's getting
6005 documents. This will make the user download smaller (it's getting
6004 too big).
6006 too big).
6005
6007
6006 2002-05-29 Fernando Perez <fperez@colorado.edu>
6008 2002-05-29 Fernando Perez <fperez@colorado.edu>
6007
6009
6008 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6010 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6009 fix problems with shelve and pickle. Seems to work, but I don't
6011 fix problems with shelve and pickle. Seems to work, but I don't
6010 know if corner cases break it. Thanks to Mike Heeter
6012 know if corner cases break it. Thanks to Mike Heeter
6011 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6013 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6012
6014
6013 2002-05-24 Fernando Perez <fperez@colorado.edu>
6015 2002-05-24 Fernando Perez <fperez@colorado.edu>
6014
6016
6015 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6017 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6016 macros having broken.
6018 macros having broken.
6017
6019
6018 2002-05-21 Fernando Perez <fperez@colorado.edu>
6020 2002-05-21 Fernando Perez <fperez@colorado.edu>
6019
6021
6020 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6022 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6021 introduced logging bug: all history before logging started was
6023 introduced logging bug: all history before logging started was
6022 being written one character per line! This came from the redesign
6024 being written one character per line! This came from the redesign
6023 of the input history as a special list which slices to strings,
6025 of the input history as a special list which slices to strings,
6024 not to lists.
6026 not to lists.
6025
6027
6026 2002-05-20 Fernando Perez <fperez@colorado.edu>
6028 2002-05-20 Fernando Perez <fperez@colorado.edu>
6027
6029
6028 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6030 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6029 be an attribute of all classes in this module. The design of these
6031 be an attribute of all classes in this module. The design of these
6030 classes needs some serious overhauling.
6032 classes needs some serious overhauling.
6031
6033
6032 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6034 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6033 which was ignoring '_' in option names.
6035 which was ignoring '_' in option names.
6034
6036
6035 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6037 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6036 'Verbose_novars' to 'Context' and made it the new default. It's a
6038 'Verbose_novars' to 'Context' and made it the new default. It's a
6037 bit more readable and also safer than verbose.
6039 bit more readable and also safer than verbose.
6038
6040
6039 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6041 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6040 triple-quoted strings.
6042 triple-quoted strings.
6041
6043
6042 * IPython/OInspect.py (__all__): new module exposing the object
6044 * IPython/OInspect.py (__all__): new module exposing the object
6043 introspection facilities. Now the corresponding magics are dummy
6045 introspection facilities. Now the corresponding magics are dummy
6044 wrappers around this. Having this module will make it much easier
6046 wrappers around this. Having this module will make it much easier
6045 to put these functions into our modified pdb.
6047 to put these functions into our modified pdb.
6046 This new object inspector system uses the new colorizing module,
6048 This new object inspector system uses the new colorizing module,
6047 so source code and other things are nicely syntax highlighted.
6049 so source code and other things are nicely syntax highlighted.
6048
6050
6049 2002-05-18 Fernando Perez <fperez@colorado.edu>
6051 2002-05-18 Fernando Perez <fperez@colorado.edu>
6050
6052
6051 * IPython/ColorANSI.py: Split the coloring tools into a separate
6053 * IPython/ColorANSI.py: Split the coloring tools into a separate
6052 module so I can use them in other code easier (they were part of
6054 module so I can use them in other code easier (they were part of
6053 ultraTB).
6055 ultraTB).
6054
6056
6055 2002-05-17 Fernando Perez <fperez@colorado.edu>
6057 2002-05-17 Fernando Perez <fperez@colorado.edu>
6056
6058
6057 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6059 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6058 fixed it to set the global 'g' also to the called instance, as
6060 fixed it to set the global 'g' also to the called instance, as
6059 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6061 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6060 user's 'g' variables).
6062 user's 'g' variables).
6061
6063
6062 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6064 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6063 global variables (aliases to _ih,_oh) so that users which expect
6065 global variables (aliases to _ih,_oh) so that users which expect
6064 In[5] or Out[7] to work aren't unpleasantly surprised.
6066 In[5] or Out[7] to work aren't unpleasantly surprised.
6065 (InputList.__getslice__): new class to allow executing slices of
6067 (InputList.__getslice__): new class to allow executing slices of
6066 input history directly. Very simple class, complements the use of
6068 input history directly. Very simple class, complements the use of
6067 macros.
6069 macros.
6068
6070
6069 2002-05-16 Fernando Perez <fperez@colorado.edu>
6071 2002-05-16 Fernando Perez <fperez@colorado.edu>
6070
6072
6071 * setup.py (docdirbase): make doc directory be just doc/IPython
6073 * setup.py (docdirbase): make doc directory be just doc/IPython
6072 without version numbers, it will reduce clutter for users.
6074 without version numbers, it will reduce clutter for users.
6073
6075
6074 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6076 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6075 execfile call to prevent possible memory leak. See for details:
6077 execfile call to prevent possible memory leak. See for details:
6076 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6078 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6077
6079
6078 2002-05-15 Fernando Perez <fperez@colorado.edu>
6080 2002-05-15 Fernando Perez <fperez@colorado.edu>
6079
6081
6080 * IPython/Magic.py (Magic.magic_psource): made the object
6082 * IPython/Magic.py (Magic.magic_psource): made the object
6081 introspection names be more standard: pdoc, pdef, pfile and
6083 introspection names be more standard: pdoc, pdef, pfile and
6082 psource. They all print/page their output, and it makes
6084 psource. They all print/page their output, and it makes
6083 remembering them easier. Kept old names for compatibility as
6085 remembering them easier. Kept old names for compatibility as
6084 aliases.
6086 aliases.
6085
6087
6086 2002-05-14 Fernando Perez <fperez@colorado.edu>
6088 2002-05-14 Fernando Perez <fperez@colorado.edu>
6087
6089
6088 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6090 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6089 what the mouse problem was. The trick is to use gnuplot with temp
6091 what the mouse problem was. The trick is to use gnuplot with temp
6090 files and NOT with pipes (for data communication), because having
6092 files and NOT with pipes (for data communication), because having
6091 both pipes and the mouse on is bad news.
6093 both pipes and the mouse on is bad news.
6092
6094
6093 2002-05-13 Fernando Perez <fperez@colorado.edu>
6095 2002-05-13 Fernando Perez <fperez@colorado.edu>
6094
6096
6095 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6097 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6096 bug. Information would be reported about builtins even when
6098 bug. Information would be reported about builtins even when
6097 user-defined functions overrode them.
6099 user-defined functions overrode them.
6098
6100
6099 2002-05-11 Fernando Perez <fperez@colorado.edu>
6101 2002-05-11 Fernando Perez <fperez@colorado.edu>
6100
6102
6101 * IPython/__init__.py (__all__): removed FlexCompleter from
6103 * IPython/__init__.py (__all__): removed FlexCompleter from
6102 __all__ so that things don't fail in platforms without readline.
6104 __all__ so that things don't fail in platforms without readline.
6103
6105
6104 2002-05-10 Fernando Perez <fperez@colorado.edu>
6106 2002-05-10 Fernando Perez <fperez@colorado.edu>
6105
6107
6106 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6108 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6107 it requires Numeric, effectively making Numeric a dependency for
6109 it requires Numeric, effectively making Numeric a dependency for
6108 IPython.
6110 IPython.
6109
6111
6110 * Released 0.2.13
6112 * Released 0.2.13
6111
6113
6112 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6114 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6113 profiler interface. Now all the major options from the profiler
6115 profiler interface. Now all the major options from the profiler
6114 module are directly supported in IPython, both for single
6116 module are directly supported in IPython, both for single
6115 expressions (@prun) and for full programs (@run -p).
6117 expressions (@prun) and for full programs (@run -p).
6116
6118
6117 2002-05-09 Fernando Perez <fperez@colorado.edu>
6119 2002-05-09 Fernando Perez <fperez@colorado.edu>
6118
6120
6119 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6121 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6120 magic properly formatted for screen.
6122 magic properly formatted for screen.
6121
6123
6122 * setup.py (make_shortcut): Changed things to put pdf version in
6124 * setup.py (make_shortcut): Changed things to put pdf version in
6123 doc/ instead of doc/manual (had to change lyxport a bit).
6125 doc/ instead of doc/manual (had to change lyxport a bit).
6124
6126
6125 * IPython/Magic.py (Profile.string_stats): made profile runs go
6127 * IPython/Magic.py (Profile.string_stats): made profile runs go
6126 through pager (they are long and a pager allows searching, saving,
6128 through pager (they are long and a pager allows searching, saving,
6127 etc.)
6129 etc.)
6128
6130
6129 2002-05-08 Fernando Perez <fperez@colorado.edu>
6131 2002-05-08 Fernando Perez <fperez@colorado.edu>
6130
6132
6131 * Released 0.2.12
6133 * Released 0.2.12
6132
6134
6133 2002-05-06 Fernando Perez <fperez@colorado.edu>
6135 2002-05-06 Fernando Perez <fperez@colorado.edu>
6134
6136
6135 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6137 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6136 introduced); 'hist n1 n2' was broken.
6138 introduced); 'hist n1 n2' was broken.
6137 (Magic.magic_pdb): added optional on/off arguments to @pdb
6139 (Magic.magic_pdb): added optional on/off arguments to @pdb
6138 (Magic.magic_run): added option -i to @run, which executes code in
6140 (Magic.magic_run): added option -i to @run, which executes code in
6139 the IPython namespace instead of a clean one. Also added @irun as
6141 the IPython namespace instead of a clean one. Also added @irun as
6140 an alias to @run -i.
6142 an alias to @run -i.
6141
6143
6142 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6144 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6143 fixed (it didn't really do anything, the namespaces were wrong).
6145 fixed (it didn't really do anything, the namespaces were wrong).
6144
6146
6145 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6147 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6146
6148
6147 * IPython/__init__.py (__all__): Fixed package namespace, now
6149 * IPython/__init__.py (__all__): Fixed package namespace, now
6148 'import IPython' does give access to IPython.<all> as
6150 'import IPython' does give access to IPython.<all> as
6149 expected. Also renamed __release__ to Release.
6151 expected. Also renamed __release__ to Release.
6150
6152
6151 * IPython/Debugger.py (__license__): created new Pdb class which
6153 * IPython/Debugger.py (__license__): created new Pdb class which
6152 functions like a drop-in for the normal pdb.Pdb but does NOT
6154 functions like a drop-in for the normal pdb.Pdb but does NOT
6153 import readline by default. This way it doesn't muck up IPython's
6155 import readline by default. This way it doesn't muck up IPython's
6154 readline handling, and now tab-completion finally works in the
6156 readline handling, and now tab-completion finally works in the
6155 debugger -- sort of. It completes things globally visible, but the
6157 debugger -- sort of. It completes things globally visible, but the
6156 completer doesn't track the stack as pdb walks it. That's a bit
6158 completer doesn't track the stack as pdb walks it. That's a bit
6157 tricky, and I'll have to implement it later.
6159 tricky, and I'll have to implement it later.
6158
6160
6159 2002-05-05 Fernando Perez <fperez@colorado.edu>
6161 2002-05-05 Fernando Perez <fperez@colorado.edu>
6160
6162
6161 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6163 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6162 magic docstrings when printed via ? (explicit \'s were being
6164 magic docstrings when printed via ? (explicit \'s were being
6163 printed).
6165 printed).
6164
6166
6165 * IPython/ipmaker.py (make_IPython): fixed namespace
6167 * IPython/ipmaker.py (make_IPython): fixed namespace
6166 identification bug. Now variables loaded via logs or command-line
6168 identification bug. Now variables loaded via logs or command-line
6167 files are recognized in the interactive namespace by @who.
6169 files are recognized in the interactive namespace by @who.
6168
6170
6169 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6171 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6170 log replay system stemming from the string form of Structs.
6172 log replay system stemming from the string form of Structs.
6171
6173
6172 * IPython/Magic.py (Macro.__init__): improved macros to properly
6174 * IPython/Magic.py (Macro.__init__): improved macros to properly
6173 handle magic commands in them.
6175 handle magic commands in them.
6174 (Magic.magic_logstart): usernames are now expanded so 'logstart
6176 (Magic.magic_logstart): usernames are now expanded so 'logstart
6175 ~/mylog' now works.
6177 ~/mylog' now works.
6176
6178
6177 * IPython/iplib.py (complete): fixed bug where paths starting with
6179 * IPython/iplib.py (complete): fixed bug where paths starting with
6178 '/' would be completed as magic names.
6180 '/' would be completed as magic names.
6179
6181
6180 2002-05-04 Fernando Perez <fperez@colorado.edu>
6182 2002-05-04 Fernando Perez <fperez@colorado.edu>
6181
6183
6182 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6184 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6183 allow running full programs under the profiler's control.
6185 allow running full programs under the profiler's control.
6184
6186
6185 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6187 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6186 mode to report exceptions verbosely but without formatting
6188 mode to report exceptions verbosely but without formatting
6187 variables. This addresses the issue of ipython 'freezing' (it's
6189 variables. This addresses the issue of ipython 'freezing' (it's
6188 not frozen, but caught in an expensive formatting loop) when huge
6190 not frozen, but caught in an expensive formatting loop) when huge
6189 variables are in the context of an exception.
6191 variables are in the context of an exception.
6190 (VerboseTB.text): Added '--->' markers at line where exception was
6192 (VerboseTB.text): Added '--->' markers at line where exception was
6191 triggered. Much clearer to read, especially in NoColor modes.
6193 triggered. Much clearer to read, especially in NoColor modes.
6192
6194
6193 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6195 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6194 implemented in reverse when changing to the new parse_options().
6196 implemented in reverse when changing to the new parse_options().
6195
6197
6196 2002-05-03 Fernando Perez <fperez@colorado.edu>
6198 2002-05-03 Fernando Perez <fperez@colorado.edu>
6197
6199
6198 * IPython/Magic.py (Magic.parse_options): new function so that
6200 * IPython/Magic.py (Magic.parse_options): new function so that
6199 magics can parse options easier.
6201 magics can parse options easier.
6200 (Magic.magic_prun): new function similar to profile.run(),
6202 (Magic.magic_prun): new function similar to profile.run(),
6201 suggested by Chris Hart.
6203 suggested by Chris Hart.
6202 (Magic.magic_cd): fixed behavior so that it only changes if
6204 (Magic.magic_cd): fixed behavior so that it only changes if
6203 directory actually is in history.
6205 directory actually is in history.
6204
6206
6205 * IPython/usage.py (__doc__): added information about potential
6207 * IPython/usage.py (__doc__): added information about potential
6206 slowness of Verbose exception mode when there are huge data
6208 slowness of Verbose exception mode when there are huge data
6207 structures to be formatted (thanks to Archie Paulson).
6209 structures to be formatted (thanks to Archie Paulson).
6208
6210
6209 * IPython/ipmaker.py (make_IPython): Changed default logging
6211 * IPython/ipmaker.py (make_IPython): Changed default logging
6210 (when simply called with -log) to use curr_dir/ipython.log in
6212 (when simply called with -log) to use curr_dir/ipython.log in
6211 rotate mode. Fixed crash which was occuring with -log before
6213 rotate mode. Fixed crash which was occuring with -log before
6212 (thanks to Jim Boyle).
6214 (thanks to Jim Boyle).
6213
6215
6214 2002-05-01 Fernando Perez <fperez@colorado.edu>
6216 2002-05-01 Fernando Perez <fperez@colorado.edu>
6215
6217
6216 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6218 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6217 was nasty -- though somewhat of a corner case).
6219 was nasty -- though somewhat of a corner case).
6218
6220
6219 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6221 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6220 text (was a bug).
6222 text (was a bug).
6221
6223
6222 2002-04-30 Fernando Perez <fperez@colorado.edu>
6224 2002-04-30 Fernando Perez <fperez@colorado.edu>
6223
6225
6224 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6226 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6225 a print after ^D or ^C from the user so that the In[] prompt
6227 a print after ^D or ^C from the user so that the In[] prompt
6226 doesn't over-run the gnuplot one.
6228 doesn't over-run the gnuplot one.
6227
6229
6228 2002-04-29 Fernando Perez <fperez@colorado.edu>
6230 2002-04-29 Fernando Perez <fperez@colorado.edu>
6229
6231
6230 * Released 0.2.10
6232 * Released 0.2.10
6231
6233
6232 * IPython/__release__.py (version): get date dynamically.
6234 * IPython/__release__.py (version): get date dynamically.
6233
6235
6234 * Misc. documentation updates thanks to Arnd's comments. Also ran
6236 * Misc. documentation updates thanks to Arnd's comments. Also ran
6235 a full spellcheck on the manual (hadn't been done in a while).
6237 a full spellcheck on the manual (hadn't been done in a while).
6236
6238
6237 2002-04-27 Fernando Perez <fperez@colorado.edu>
6239 2002-04-27 Fernando Perez <fperez@colorado.edu>
6238
6240
6239 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6241 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6240 starting a log in mid-session would reset the input history list.
6242 starting a log in mid-session would reset the input history list.
6241
6243
6242 2002-04-26 Fernando Perez <fperez@colorado.edu>
6244 2002-04-26 Fernando Perez <fperez@colorado.edu>
6243
6245
6244 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6246 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6245 all files were being included in an update. Now anything in
6247 all files were being included in an update. Now anything in
6246 UserConfig that matches [A-Za-z]*.py will go (this excludes
6248 UserConfig that matches [A-Za-z]*.py will go (this excludes
6247 __init__.py)
6249 __init__.py)
6248
6250
6249 2002-04-25 Fernando Perez <fperez@colorado.edu>
6251 2002-04-25 Fernando Perez <fperez@colorado.edu>
6250
6252
6251 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6253 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6252 to __builtins__ so that any form of embedded or imported code can
6254 to __builtins__ so that any form of embedded or imported code can
6253 test for being inside IPython.
6255 test for being inside IPython.
6254
6256
6255 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6257 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6256 changed to GnuplotMagic because it's now an importable module,
6258 changed to GnuplotMagic because it's now an importable module,
6257 this makes the name follow that of the standard Gnuplot module.
6259 this makes the name follow that of the standard Gnuplot module.
6258 GnuplotMagic can now be loaded at any time in mid-session.
6260 GnuplotMagic can now be loaded at any time in mid-session.
6259
6261
6260 2002-04-24 Fernando Perez <fperez@colorado.edu>
6262 2002-04-24 Fernando Perez <fperez@colorado.edu>
6261
6263
6262 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6264 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6263 the globals (IPython has its own namespace) and the
6265 the globals (IPython has its own namespace) and the
6264 PhysicalQuantity stuff is much better anyway.
6266 PhysicalQuantity stuff is much better anyway.
6265
6267
6266 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6268 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6267 embedding example to standard user directory for
6269 embedding example to standard user directory for
6268 distribution. Also put it in the manual.
6270 distribution. Also put it in the manual.
6269
6271
6270 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6272 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6271 instance as first argument (so it doesn't rely on some obscure
6273 instance as first argument (so it doesn't rely on some obscure
6272 hidden global).
6274 hidden global).
6273
6275
6274 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6276 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6275 delimiters. While it prevents ().TAB from working, it allows
6277 delimiters. While it prevents ().TAB from working, it allows
6276 completions in open (... expressions. This is by far a more common
6278 completions in open (... expressions. This is by far a more common
6277 case.
6279 case.
6278
6280
6279 2002-04-23 Fernando Perez <fperez@colorado.edu>
6281 2002-04-23 Fernando Perez <fperez@colorado.edu>
6280
6282
6281 * IPython/Extensions/InterpreterPasteInput.py: new
6283 * IPython/Extensions/InterpreterPasteInput.py: new
6282 syntax-processing module for pasting lines with >>> or ... at the
6284 syntax-processing module for pasting lines with >>> or ... at the
6283 start.
6285 start.
6284
6286
6285 * IPython/Extensions/PhysicalQ_Interactive.py
6287 * IPython/Extensions/PhysicalQ_Interactive.py
6286 (PhysicalQuantityInteractive.__int__): fixed to work with either
6288 (PhysicalQuantityInteractive.__int__): fixed to work with either
6287 Numeric or math.
6289 Numeric or math.
6288
6290
6289 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6291 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6290 provided profiles. Now we have:
6292 provided profiles. Now we have:
6291 -math -> math module as * and cmath with its own namespace.
6293 -math -> math module as * and cmath with its own namespace.
6292 -numeric -> Numeric as *, plus gnuplot & grace
6294 -numeric -> Numeric as *, plus gnuplot & grace
6293 -physics -> same as before
6295 -physics -> same as before
6294
6296
6295 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6297 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6296 user-defined magics wouldn't be found by @magic if they were
6298 user-defined magics wouldn't be found by @magic if they were
6297 defined as class methods. Also cleaned up the namespace search
6299 defined as class methods. Also cleaned up the namespace search
6298 logic and the string building (to use %s instead of many repeated
6300 logic and the string building (to use %s instead of many repeated
6299 string adds).
6301 string adds).
6300
6302
6301 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6303 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6302 of user-defined magics to operate with class methods (cleaner, in
6304 of user-defined magics to operate with class methods (cleaner, in
6303 line with the gnuplot code).
6305 line with the gnuplot code).
6304
6306
6305 2002-04-22 Fernando Perez <fperez@colorado.edu>
6307 2002-04-22 Fernando Perez <fperez@colorado.edu>
6306
6308
6307 * setup.py: updated dependency list so that manual is updated when
6309 * setup.py: updated dependency list so that manual is updated when
6308 all included files change.
6310 all included files change.
6309
6311
6310 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6312 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6311 the delimiter removal option (the fix is ugly right now).
6313 the delimiter removal option (the fix is ugly right now).
6312
6314
6313 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6315 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6314 all of the math profile (quicker loading, no conflict between
6316 all of the math profile (quicker loading, no conflict between
6315 g-9.8 and g-gnuplot).
6317 g-9.8 and g-gnuplot).
6316
6318
6317 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6319 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6318 name of post-mortem files to IPython_crash_report.txt.
6320 name of post-mortem files to IPython_crash_report.txt.
6319
6321
6320 * Cleanup/update of the docs. Added all the new readline info and
6322 * Cleanup/update of the docs. Added all the new readline info and
6321 formatted all lists as 'real lists'.
6323 formatted all lists as 'real lists'.
6322
6324
6323 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6325 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6324 tab-completion options, since the full readline parse_and_bind is
6326 tab-completion options, since the full readline parse_and_bind is
6325 now accessible.
6327 now accessible.
6326
6328
6327 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6329 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6328 handling of readline options. Now users can specify any string to
6330 handling of readline options. Now users can specify any string to
6329 be passed to parse_and_bind(), as well as the delimiters to be
6331 be passed to parse_and_bind(), as well as the delimiters to be
6330 removed.
6332 removed.
6331 (InteractiveShell.__init__): Added __name__ to the global
6333 (InteractiveShell.__init__): Added __name__ to the global
6332 namespace so that things like Itpl which rely on its existence
6334 namespace so that things like Itpl which rely on its existence
6333 don't crash.
6335 don't crash.
6334 (InteractiveShell._prefilter): Defined the default with a _ so
6336 (InteractiveShell._prefilter): Defined the default with a _ so
6335 that prefilter() is easier to override, while the default one
6337 that prefilter() is easier to override, while the default one
6336 remains available.
6338 remains available.
6337
6339
6338 2002-04-18 Fernando Perez <fperez@colorado.edu>
6340 2002-04-18 Fernando Perez <fperez@colorado.edu>
6339
6341
6340 * Added information about pdb in the docs.
6342 * Added information about pdb in the docs.
6341
6343
6342 2002-04-17 Fernando Perez <fperez@colorado.edu>
6344 2002-04-17 Fernando Perez <fperez@colorado.edu>
6343
6345
6344 * IPython/ipmaker.py (make_IPython): added rc_override option to
6346 * IPython/ipmaker.py (make_IPython): added rc_override option to
6345 allow passing config options at creation time which may override
6347 allow passing config options at creation time which may override
6346 anything set in the config files or command line. This is
6348 anything set in the config files or command line. This is
6347 particularly useful for configuring embedded instances.
6349 particularly useful for configuring embedded instances.
6348
6350
6349 2002-04-15 Fernando Perez <fperez@colorado.edu>
6351 2002-04-15 Fernando Perez <fperez@colorado.edu>
6350
6352
6351 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6353 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6352 crash embedded instances because of the input cache falling out of
6354 crash embedded instances because of the input cache falling out of
6353 sync with the output counter.
6355 sync with the output counter.
6354
6356
6355 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6357 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6356 mode which calls pdb after an uncaught exception in IPython itself.
6358 mode which calls pdb after an uncaught exception in IPython itself.
6357
6359
6358 2002-04-14 Fernando Perez <fperez@colorado.edu>
6360 2002-04-14 Fernando Perez <fperez@colorado.edu>
6359
6361
6360 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6362 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6361 readline, fix it back after each call.
6363 readline, fix it back after each call.
6362
6364
6363 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6365 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6364 method to force all access via __call__(), which guarantees that
6366 method to force all access via __call__(), which guarantees that
6365 traceback references are properly deleted.
6367 traceback references are properly deleted.
6366
6368
6367 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6369 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6368 improve printing when pprint is in use.
6370 improve printing when pprint is in use.
6369
6371
6370 2002-04-13 Fernando Perez <fperez@colorado.edu>
6372 2002-04-13 Fernando Perez <fperez@colorado.edu>
6371
6373
6372 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6374 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6373 exceptions aren't caught anymore. If the user triggers one, he
6375 exceptions aren't caught anymore. If the user triggers one, he
6374 should know why he's doing it and it should go all the way up,
6376 should know why he's doing it and it should go all the way up,
6375 just like any other exception. So now @abort will fully kill the
6377 just like any other exception. So now @abort will fully kill the
6376 embedded interpreter and the embedding code (unless that happens
6378 embedded interpreter and the embedding code (unless that happens
6377 to catch SystemExit).
6379 to catch SystemExit).
6378
6380
6379 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6381 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6380 and a debugger() method to invoke the interactive pdb debugger
6382 and a debugger() method to invoke the interactive pdb debugger
6381 after printing exception information. Also added the corresponding
6383 after printing exception information. Also added the corresponding
6382 -pdb option and @pdb magic to control this feature, and updated
6384 -pdb option and @pdb magic to control this feature, and updated
6383 the docs. After a suggestion from Christopher Hart
6385 the docs. After a suggestion from Christopher Hart
6384 (hart-AT-caltech.edu).
6386 (hart-AT-caltech.edu).
6385
6387
6386 2002-04-12 Fernando Perez <fperez@colorado.edu>
6388 2002-04-12 Fernando Perez <fperez@colorado.edu>
6387
6389
6388 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6390 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6389 the exception handlers defined by the user (not the CrashHandler)
6391 the exception handlers defined by the user (not the CrashHandler)
6390 so that user exceptions don't trigger an ipython bug report.
6392 so that user exceptions don't trigger an ipython bug report.
6391
6393
6392 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6394 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6393 configurable (it should have always been so).
6395 configurable (it should have always been so).
6394
6396
6395 2002-03-26 Fernando Perez <fperez@colorado.edu>
6397 2002-03-26 Fernando Perez <fperez@colorado.edu>
6396
6398
6397 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6399 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6398 and there to fix embedding namespace issues. This should all be
6400 and there to fix embedding namespace issues. This should all be
6399 done in a more elegant way.
6401 done in a more elegant way.
6400
6402
6401 2002-03-25 Fernando Perez <fperez@colorado.edu>
6403 2002-03-25 Fernando Perez <fperez@colorado.edu>
6402
6404
6403 * IPython/genutils.py (get_home_dir): Try to make it work under
6405 * IPython/genutils.py (get_home_dir): Try to make it work under
6404 win9x also.
6406 win9x also.
6405
6407
6406 2002-03-20 Fernando Perez <fperez@colorado.edu>
6408 2002-03-20 Fernando Perez <fperez@colorado.edu>
6407
6409
6408 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6410 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6409 sys.displayhook untouched upon __init__.
6411 sys.displayhook untouched upon __init__.
6410
6412
6411 2002-03-19 Fernando Perez <fperez@colorado.edu>
6413 2002-03-19 Fernando Perez <fperez@colorado.edu>
6412
6414
6413 * Released 0.2.9 (for embedding bug, basically).
6415 * Released 0.2.9 (for embedding bug, basically).
6414
6416
6415 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6417 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6416 exceptions so that enclosing shell's state can be restored.
6418 exceptions so that enclosing shell's state can be restored.
6417
6419
6418 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6420 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6419 naming conventions in the .ipython/ dir.
6421 naming conventions in the .ipython/ dir.
6420
6422
6421 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6423 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6422 from delimiters list so filenames with - in them get expanded.
6424 from delimiters list so filenames with - in them get expanded.
6423
6425
6424 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6426 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6425 sys.displayhook not being properly restored after an embedded call.
6427 sys.displayhook not being properly restored after an embedded call.
6426
6428
6427 2002-03-18 Fernando Perez <fperez@colorado.edu>
6429 2002-03-18 Fernando Perez <fperez@colorado.edu>
6428
6430
6429 * Released 0.2.8
6431 * Released 0.2.8
6430
6432
6431 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6433 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6432 some files weren't being included in a -upgrade.
6434 some files weren't being included in a -upgrade.
6433 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6435 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6434 on' so that the first tab completes.
6436 on' so that the first tab completes.
6435 (InteractiveShell.handle_magic): fixed bug with spaces around
6437 (InteractiveShell.handle_magic): fixed bug with spaces around
6436 quotes breaking many magic commands.
6438 quotes breaking many magic commands.
6437
6439
6438 * setup.py: added note about ignoring the syntax error messages at
6440 * setup.py: added note about ignoring the syntax error messages at
6439 installation.
6441 installation.
6440
6442
6441 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6443 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6442 streamlining the gnuplot interface, now there's only one magic @gp.
6444 streamlining the gnuplot interface, now there's only one magic @gp.
6443
6445
6444 2002-03-17 Fernando Perez <fperez@colorado.edu>
6446 2002-03-17 Fernando Perez <fperez@colorado.edu>
6445
6447
6446 * IPython/UserConfig/magic_gnuplot.py: new name for the
6448 * IPython/UserConfig/magic_gnuplot.py: new name for the
6447 example-magic_pm.py file. Much enhanced system, now with a shell
6449 example-magic_pm.py file. Much enhanced system, now with a shell
6448 for communicating directly with gnuplot, one command at a time.
6450 for communicating directly with gnuplot, one command at a time.
6449
6451
6450 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6452 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6451 setting __name__=='__main__'.
6453 setting __name__=='__main__'.
6452
6454
6453 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6455 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6454 mini-shell for accessing gnuplot from inside ipython. Should
6456 mini-shell for accessing gnuplot from inside ipython. Should
6455 extend it later for grace access too. Inspired by Arnd's
6457 extend it later for grace access too. Inspired by Arnd's
6456 suggestion.
6458 suggestion.
6457
6459
6458 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6460 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6459 calling magic functions with () in their arguments. Thanks to Arnd
6461 calling magic functions with () in their arguments. Thanks to Arnd
6460 Baecker for pointing this to me.
6462 Baecker for pointing this to me.
6461
6463
6462 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6464 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6463 infinitely for integer or complex arrays (only worked with floats).
6465 infinitely for integer or complex arrays (only worked with floats).
6464
6466
6465 2002-03-16 Fernando Perez <fperez@colorado.edu>
6467 2002-03-16 Fernando Perez <fperez@colorado.edu>
6466
6468
6467 * setup.py: Merged setup and setup_windows into a single script
6469 * setup.py: Merged setup and setup_windows into a single script
6468 which properly handles things for windows users.
6470 which properly handles things for windows users.
6469
6471
6470 2002-03-15 Fernando Perez <fperez@colorado.edu>
6472 2002-03-15 Fernando Perez <fperez@colorado.edu>
6471
6473
6472 * Big change to the manual: now the magics are all automatically
6474 * Big change to the manual: now the magics are all automatically
6473 documented. This information is generated from their docstrings
6475 documented. This information is generated from their docstrings
6474 and put in a latex file included by the manual lyx file. This way
6476 and put in a latex file included by the manual lyx file. This way
6475 we get always up to date information for the magics. The manual
6477 we get always up to date information for the magics. The manual
6476 now also has proper version information, also auto-synced.
6478 now also has proper version information, also auto-synced.
6477
6479
6478 For this to work, an undocumented --magic_docstrings option was added.
6480 For this to work, an undocumented --magic_docstrings option was added.
6479
6481
6480 2002-03-13 Fernando Perez <fperez@colorado.edu>
6482 2002-03-13 Fernando Perez <fperez@colorado.edu>
6481
6483
6482 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6484 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6483 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6485 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6484
6486
6485 2002-03-12 Fernando Perez <fperez@colorado.edu>
6487 2002-03-12 Fernando Perez <fperez@colorado.edu>
6486
6488
6487 * IPython/ultraTB.py (TermColors): changed color escapes again to
6489 * IPython/ultraTB.py (TermColors): changed color escapes again to
6488 fix the (old, reintroduced) line-wrapping bug. Basically, if
6490 fix the (old, reintroduced) line-wrapping bug. Basically, if
6489 \001..\002 aren't given in the color escapes, lines get wrapped
6491 \001..\002 aren't given in the color escapes, lines get wrapped
6490 weirdly. But giving those screws up old xterms and emacs terms. So
6492 weirdly. But giving those screws up old xterms and emacs terms. So
6491 I added some logic for emacs terms to be ok, but I can't identify old
6493 I added some logic for emacs terms to be ok, but I can't identify old
6492 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6494 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6493
6495
6494 2002-03-10 Fernando Perez <fperez@colorado.edu>
6496 2002-03-10 Fernando Perez <fperez@colorado.edu>
6495
6497
6496 * IPython/usage.py (__doc__): Various documentation cleanups and
6498 * IPython/usage.py (__doc__): Various documentation cleanups and
6497 updates, both in usage docstrings and in the manual.
6499 updates, both in usage docstrings and in the manual.
6498
6500
6499 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6501 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6500 handling of caching. Set minimum acceptabe value for having a
6502 handling of caching. Set minimum acceptabe value for having a
6501 cache at 20 values.
6503 cache at 20 values.
6502
6504
6503 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6505 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6504 install_first_time function to a method, renamed it and added an
6506 install_first_time function to a method, renamed it and added an
6505 'upgrade' mode. Now people can update their config directory with
6507 'upgrade' mode. Now people can update their config directory with
6506 a simple command line switch (-upgrade, also new).
6508 a simple command line switch (-upgrade, also new).
6507
6509
6508 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6510 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6509 @file (convenient for automagic users under Python >= 2.2).
6511 @file (convenient for automagic users under Python >= 2.2).
6510 Removed @files (it seemed more like a plural than an abbrev. of
6512 Removed @files (it seemed more like a plural than an abbrev. of
6511 'file show').
6513 'file show').
6512
6514
6513 * IPython/iplib.py (install_first_time): Fixed crash if there were
6515 * IPython/iplib.py (install_first_time): Fixed crash if there were
6514 backup files ('~') in .ipython/ install directory.
6516 backup files ('~') in .ipython/ install directory.
6515
6517
6516 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6518 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6517 system. Things look fine, but these changes are fairly
6519 system. Things look fine, but these changes are fairly
6518 intrusive. Test them for a few days.
6520 intrusive. Test them for a few days.
6519
6521
6520 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6522 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6521 the prompts system. Now all in/out prompt strings are user
6523 the prompts system. Now all in/out prompt strings are user
6522 controllable. This is particularly useful for embedding, as one
6524 controllable. This is particularly useful for embedding, as one
6523 can tag embedded instances with particular prompts.
6525 can tag embedded instances with particular prompts.
6524
6526
6525 Also removed global use of sys.ps1/2, which now allows nested
6527 Also removed global use of sys.ps1/2, which now allows nested
6526 embeddings without any problems. Added command-line options for
6528 embeddings without any problems. Added command-line options for
6527 the prompt strings.
6529 the prompt strings.
6528
6530
6529 2002-03-08 Fernando Perez <fperez@colorado.edu>
6531 2002-03-08 Fernando Perez <fperez@colorado.edu>
6530
6532
6531 * IPython/UserConfig/example-embed-short.py (ipshell): added
6533 * IPython/UserConfig/example-embed-short.py (ipshell): added
6532 example file with the bare minimum code for embedding.
6534 example file with the bare minimum code for embedding.
6533
6535
6534 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6536 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6535 functionality for the embeddable shell to be activated/deactivated
6537 functionality for the embeddable shell to be activated/deactivated
6536 either globally or at each call.
6538 either globally or at each call.
6537
6539
6538 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6540 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6539 rewriting the prompt with '--->' for auto-inputs with proper
6541 rewriting the prompt with '--->' for auto-inputs with proper
6540 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6542 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6541 this is handled by the prompts class itself, as it should.
6543 this is handled by the prompts class itself, as it should.
6542
6544
6543 2002-03-05 Fernando Perez <fperez@colorado.edu>
6545 2002-03-05 Fernando Perez <fperez@colorado.edu>
6544
6546
6545 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6547 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6546 @logstart to avoid name clashes with the math log function.
6548 @logstart to avoid name clashes with the math log function.
6547
6549
6548 * Big updates to X/Emacs section of the manual.
6550 * Big updates to X/Emacs section of the manual.
6549
6551
6550 * Removed ipython_emacs. Milan explained to me how to pass
6552 * Removed ipython_emacs. Milan explained to me how to pass
6551 arguments to ipython through Emacs. Some day I'm going to end up
6553 arguments to ipython through Emacs. Some day I'm going to end up
6552 learning some lisp...
6554 learning some lisp...
6553
6555
6554 2002-03-04 Fernando Perez <fperez@colorado.edu>
6556 2002-03-04 Fernando Perez <fperez@colorado.edu>
6555
6557
6556 * IPython/ipython_emacs: Created script to be used as the
6558 * IPython/ipython_emacs: Created script to be used as the
6557 py-python-command Emacs variable so we can pass IPython
6559 py-python-command Emacs variable so we can pass IPython
6558 parameters. I can't figure out how to tell Emacs directly to pass
6560 parameters. I can't figure out how to tell Emacs directly to pass
6559 parameters to IPython, so a dummy shell script will do it.
6561 parameters to IPython, so a dummy shell script will do it.
6560
6562
6561 Other enhancements made for things to work better under Emacs'
6563 Other enhancements made for things to work better under Emacs'
6562 various types of terminals. Many thanks to Milan Zamazal
6564 various types of terminals. Many thanks to Milan Zamazal
6563 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6565 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6564
6566
6565 2002-03-01 Fernando Perez <fperez@colorado.edu>
6567 2002-03-01 Fernando Perez <fperez@colorado.edu>
6566
6568
6567 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6569 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6568 that loading of readline is now optional. This gives better
6570 that loading of readline is now optional. This gives better
6569 control to emacs users.
6571 control to emacs users.
6570
6572
6571 * IPython/ultraTB.py (__date__): Modified color escape sequences
6573 * IPython/ultraTB.py (__date__): Modified color escape sequences
6572 and now things work fine under xterm and in Emacs' term buffers
6574 and now things work fine under xterm and in Emacs' term buffers
6573 (though not shell ones). Well, in emacs you get colors, but all
6575 (though not shell ones). Well, in emacs you get colors, but all
6574 seem to be 'light' colors (no difference between dark and light
6576 seem to be 'light' colors (no difference between dark and light
6575 ones). But the garbage chars are gone, and also in xterms. It
6577 ones). But the garbage chars are gone, and also in xterms. It
6576 seems that now I'm using 'cleaner' ansi sequences.
6578 seems that now I'm using 'cleaner' ansi sequences.
6577
6579
6578 2002-02-21 Fernando Perez <fperez@colorado.edu>
6580 2002-02-21 Fernando Perez <fperez@colorado.edu>
6579
6581
6580 * Released 0.2.7 (mainly to publish the scoping fix).
6582 * Released 0.2.7 (mainly to publish the scoping fix).
6581
6583
6582 * IPython/Logger.py (Logger.logstate): added. A corresponding
6584 * IPython/Logger.py (Logger.logstate): added. A corresponding
6583 @logstate magic was created.
6585 @logstate magic was created.
6584
6586
6585 * IPython/Magic.py: fixed nested scoping problem under Python
6587 * IPython/Magic.py: fixed nested scoping problem under Python
6586 2.1.x (automagic wasn't working).
6588 2.1.x (automagic wasn't working).
6587
6589
6588 2002-02-20 Fernando Perez <fperez@colorado.edu>
6590 2002-02-20 Fernando Perez <fperez@colorado.edu>
6589
6591
6590 * Released 0.2.6.
6592 * Released 0.2.6.
6591
6593
6592 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6594 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6593 option so that logs can come out without any headers at all.
6595 option so that logs can come out without any headers at all.
6594
6596
6595 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6597 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6596 SciPy.
6598 SciPy.
6597
6599
6598 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6600 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6599 that embedded IPython calls don't require vars() to be explicitly
6601 that embedded IPython calls don't require vars() to be explicitly
6600 passed. Now they are extracted from the caller's frame (code
6602 passed. Now they are extracted from the caller's frame (code
6601 snatched from Eric Jones' weave). Added better documentation to
6603 snatched from Eric Jones' weave). Added better documentation to
6602 the section on embedding and the example file.
6604 the section on embedding and the example file.
6603
6605
6604 * IPython/genutils.py (page): Changed so that under emacs, it just
6606 * IPython/genutils.py (page): Changed so that under emacs, it just
6605 prints the string. You can then page up and down in the emacs
6607 prints the string. You can then page up and down in the emacs
6606 buffer itself. This is how the builtin help() works.
6608 buffer itself. This is how the builtin help() works.
6607
6609
6608 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6610 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6609 macro scoping: macros need to be executed in the user's namespace
6611 macro scoping: macros need to be executed in the user's namespace
6610 to work as if they had been typed by the user.
6612 to work as if they had been typed by the user.
6611
6613
6612 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6614 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6613 execute automatically (no need to type 'exec...'). They then
6615 execute automatically (no need to type 'exec...'). They then
6614 behave like 'true macros'. The printing system was also modified
6616 behave like 'true macros'. The printing system was also modified
6615 for this to work.
6617 for this to work.
6616
6618
6617 2002-02-19 Fernando Perez <fperez@colorado.edu>
6619 2002-02-19 Fernando Perez <fperez@colorado.edu>
6618
6620
6619 * IPython/genutils.py (page_file): new function for paging files
6621 * IPython/genutils.py (page_file): new function for paging files
6620 in an OS-independent way. Also necessary for file viewing to work
6622 in an OS-independent way. Also necessary for file viewing to work
6621 well inside Emacs buffers.
6623 well inside Emacs buffers.
6622 (page): Added checks for being in an emacs buffer.
6624 (page): Added checks for being in an emacs buffer.
6623 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6625 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6624 same bug in iplib.
6626 same bug in iplib.
6625
6627
6626 2002-02-18 Fernando Perez <fperez@colorado.edu>
6628 2002-02-18 Fernando Perez <fperez@colorado.edu>
6627
6629
6628 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6630 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6629 of readline so that IPython can work inside an Emacs buffer.
6631 of readline so that IPython can work inside an Emacs buffer.
6630
6632
6631 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6633 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6632 method signatures (they weren't really bugs, but it looks cleaner
6634 method signatures (they weren't really bugs, but it looks cleaner
6633 and keeps PyChecker happy).
6635 and keeps PyChecker happy).
6634
6636
6635 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6637 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6636 for implementing various user-defined hooks. Currently only
6638 for implementing various user-defined hooks. Currently only
6637 display is done.
6639 display is done.
6638
6640
6639 * IPython/Prompts.py (CachedOutput._display): changed display
6641 * IPython/Prompts.py (CachedOutput._display): changed display
6640 functions so that they can be dynamically changed by users easily.
6642 functions so that they can be dynamically changed by users easily.
6641
6643
6642 * IPython/Extensions/numeric_formats.py (num_display): added an
6644 * IPython/Extensions/numeric_formats.py (num_display): added an
6643 extension for printing NumPy arrays in flexible manners. It
6645 extension for printing NumPy arrays in flexible manners. It
6644 doesn't do anything yet, but all the structure is in
6646 doesn't do anything yet, but all the structure is in
6645 place. Ultimately the plan is to implement output format control
6647 place. Ultimately the plan is to implement output format control
6646 like in Octave.
6648 like in Octave.
6647
6649
6648 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6650 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6649 methods are found at run-time by all the automatic machinery.
6651 methods are found at run-time by all the automatic machinery.
6650
6652
6651 2002-02-17 Fernando Perez <fperez@colorado.edu>
6653 2002-02-17 Fernando Perez <fperez@colorado.edu>
6652
6654
6653 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6655 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6654 whole file a little.
6656 whole file a little.
6655
6657
6656 * ToDo: closed this document. Now there's a new_design.lyx
6658 * ToDo: closed this document. Now there's a new_design.lyx
6657 document for all new ideas. Added making a pdf of it for the
6659 document for all new ideas. Added making a pdf of it for the
6658 end-user distro.
6660 end-user distro.
6659
6661
6660 * IPython/Logger.py (Logger.switch_log): Created this to replace
6662 * IPython/Logger.py (Logger.switch_log): Created this to replace
6661 logon() and logoff(). It also fixes a nasty crash reported by
6663 logon() and logoff(). It also fixes a nasty crash reported by
6662 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6664 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6663
6665
6664 * IPython/iplib.py (complete): got auto-completion to work with
6666 * IPython/iplib.py (complete): got auto-completion to work with
6665 automagic (I had wanted this for a long time).
6667 automagic (I had wanted this for a long time).
6666
6668
6667 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6669 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6668 to @file, since file() is now a builtin and clashes with automagic
6670 to @file, since file() is now a builtin and clashes with automagic
6669 for @file.
6671 for @file.
6670
6672
6671 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6673 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6672 of this was previously in iplib, which had grown to more than 2000
6674 of this was previously in iplib, which had grown to more than 2000
6673 lines, way too long. No new functionality, but it makes managing
6675 lines, way too long. No new functionality, but it makes managing
6674 the code a bit easier.
6676 the code a bit easier.
6675
6677
6676 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6678 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6677 information to crash reports.
6679 information to crash reports.
6678
6680
6679 2002-02-12 Fernando Perez <fperez@colorado.edu>
6681 2002-02-12 Fernando Perez <fperez@colorado.edu>
6680
6682
6681 * Released 0.2.5.
6683 * Released 0.2.5.
6682
6684
6683 2002-02-11 Fernando Perez <fperez@colorado.edu>
6685 2002-02-11 Fernando Perez <fperez@colorado.edu>
6684
6686
6685 * Wrote a relatively complete Windows installer. It puts
6687 * Wrote a relatively complete Windows installer. It puts
6686 everything in place, creates Start Menu entries and fixes the
6688 everything in place, creates Start Menu entries and fixes the
6687 color issues. Nothing fancy, but it works.
6689 color issues. Nothing fancy, but it works.
6688
6690
6689 2002-02-10 Fernando Perez <fperez@colorado.edu>
6691 2002-02-10 Fernando Perez <fperez@colorado.edu>
6690
6692
6691 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6693 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6692 os.path.expanduser() call so that we can type @run ~/myfile.py and
6694 os.path.expanduser() call so that we can type @run ~/myfile.py and
6693 have thigs work as expected.
6695 have thigs work as expected.
6694
6696
6695 * IPython/genutils.py (page): fixed exception handling so things
6697 * IPython/genutils.py (page): fixed exception handling so things
6696 work both in Unix and Windows correctly. Quitting a pager triggers
6698 work both in Unix and Windows correctly. Quitting a pager triggers
6697 an IOError/broken pipe in Unix, and in windows not finding a pager
6699 an IOError/broken pipe in Unix, and in windows not finding a pager
6698 is also an IOError, so I had to actually look at the return value
6700 is also an IOError, so I had to actually look at the return value
6699 of the exception, not just the exception itself. Should be ok now.
6701 of the exception, not just the exception itself. Should be ok now.
6700
6702
6701 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6703 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6702 modified to allow case-insensitive color scheme changes.
6704 modified to allow case-insensitive color scheme changes.
6703
6705
6704 2002-02-09 Fernando Perez <fperez@colorado.edu>
6706 2002-02-09 Fernando Perez <fperez@colorado.edu>
6705
6707
6706 * IPython/genutils.py (native_line_ends): new function to leave
6708 * IPython/genutils.py (native_line_ends): new function to leave
6707 user config files with os-native line-endings.
6709 user config files with os-native line-endings.
6708
6710
6709 * README and manual updates.
6711 * README and manual updates.
6710
6712
6711 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6713 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6712 instead of StringType to catch Unicode strings.
6714 instead of StringType to catch Unicode strings.
6713
6715
6714 * IPython/genutils.py (filefind): fixed bug for paths with
6716 * IPython/genutils.py (filefind): fixed bug for paths with
6715 embedded spaces (very common in Windows).
6717 embedded spaces (very common in Windows).
6716
6718
6717 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6719 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6718 files under Windows, so that they get automatically associated
6720 files under Windows, so that they get automatically associated
6719 with a text editor. Windows makes it a pain to handle
6721 with a text editor. Windows makes it a pain to handle
6720 extension-less files.
6722 extension-less files.
6721
6723
6722 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6724 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6723 warning about readline only occur for Posix. In Windows there's no
6725 warning about readline only occur for Posix. In Windows there's no
6724 way to get readline, so why bother with the warning.
6726 way to get readline, so why bother with the warning.
6725
6727
6726 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6728 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6727 for __str__ instead of dir(self), since dir() changed in 2.2.
6729 for __str__ instead of dir(self), since dir() changed in 2.2.
6728
6730
6729 * Ported to Windows! Tested on XP, I suspect it should work fine
6731 * Ported to Windows! Tested on XP, I suspect it should work fine
6730 on NT/2000, but I don't think it will work on 98 et al. That
6732 on NT/2000, but I don't think it will work on 98 et al. That
6731 series of Windows is such a piece of junk anyway that I won't try
6733 series of Windows is such a piece of junk anyway that I won't try
6732 porting it there. The XP port was straightforward, showed a few
6734 porting it there. The XP port was straightforward, showed a few
6733 bugs here and there (fixed all), in particular some string
6735 bugs here and there (fixed all), in particular some string
6734 handling stuff which required considering Unicode strings (which
6736 handling stuff which required considering Unicode strings (which
6735 Windows uses). This is good, but hasn't been too tested :) No
6737 Windows uses). This is good, but hasn't been too tested :) No
6736 fancy installer yet, I'll put a note in the manual so people at
6738 fancy installer yet, I'll put a note in the manual so people at
6737 least make manually a shortcut.
6739 least make manually a shortcut.
6738
6740
6739 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6741 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6740 into a single one, "colors". This now controls both prompt and
6742 into a single one, "colors". This now controls both prompt and
6741 exception color schemes, and can be changed both at startup
6743 exception color schemes, and can be changed both at startup
6742 (either via command-line switches or via ipythonrc files) and at
6744 (either via command-line switches or via ipythonrc files) and at
6743 runtime, with @colors.
6745 runtime, with @colors.
6744 (Magic.magic_run): renamed @prun to @run and removed the old
6746 (Magic.magic_run): renamed @prun to @run and removed the old
6745 @run. The two were too similar to warrant keeping both.
6747 @run. The two were too similar to warrant keeping both.
6746
6748
6747 2002-02-03 Fernando Perez <fperez@colorado.edu>
6749 2002-02-03 Fernando Perez <fperez@colorado.edu>
6748
6750
6749 * IPython/iplib.py (install_first_time): Added comment on how to
6751 * IPython/iplib.py (install_first_time): Added comment on how to
6750 configure the color options for first-time users. Put a <return>
6752 configure the color options for first-time users. Put a <return>
6751 request at the end so that small-terminal users get a chance to
6753 request at the end so that small-terminal users get a chance to
6752 read the startup info.
6754 read the startup info.
6753
6755
6754 2002-01-23 Fernando Perez <fperez@colorado.edu>
6756 2002-01-23 Fernando Perez <fperez@colorado.edu>
6755
6757
6756 * IPython/iplib.py (CachedOutput.update): Changed output memory
6758 * IPython/iplib.py (CachedOutput.update): Changed output memory
6757 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6759 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6758 input history we still use _i. Did this b/c these variable are
6760 input history we still use _i. Did this b/c these variable are
6759 very commonly used in interactive work, so the less we need to
6761 very commonly used in interactive work, so the less we need to
6760 type the better off we are.
6762 type the better off we are.
6761 (Magic.magic_prun): updated @prun to better handle the namespaces
6763 (Magic.magic_prun): updated @prun to better handle the namespaces
6762 the file will run in, including a fix for __name__ not being set
6764 the file will run in, including a fix for __name__ not being set
6763 before.
6765 before.
6764
6766
6765 2002-01-20 Fernando Perez <fperez@colorado.edu>
6767 2002-01-20 Fernando Perez <fperez@colorado.edu>
6766
6768
6767 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6769 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6768 extra garbage for Python 2.2. Need to look more carefully into
6770 extra garbage for Python 2.2. Need to look more carefully into
6769 this later.
6771 this later.
6770
6772
6771 2002-01-19 Fernando Perez <fperez@colorado.edu>
6773 2002-01-19 Fernando Perez <fperez@colorado.edu>
6772
6774
6773 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6775 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6774 display SyntaxError exceptions properly formatted when they occur
6776 display SyntaxError exceptions properly formatted when they occur
6775 (they can be triggered by imported code).
6777 (they can be triggered by imported code).
6776
6778
6777 2002-01-18 Fernando Perez <fperez@colorado.edu>
6779 2002-01-18 Fernando Perez <fperez@colorado.edu>
6778
6780
6779 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6781 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6780 SyntaxError exceptions are reported nicely formatted, instead of
6782 SyntaxError exceptions are reported nicely formatted, instead of
6781 spitting out only offset information as before.
6783 spitting out only offset information as before.
6782 (Magic.magic_prun): Added the @prun function for executing
6784 (Magic.magic_prun): Added the @prun function for executing
6783 programs with command line args inside IPython.
6785 programs with command line args inside IPython.
6784
6786
6785 2002-01-16 Fernando Perez <fperez@colorado.edu>
6787 2002-01-16 Fernando Perez <fperez@colorado.edu>
6786
6788
6787 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6789 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6788 to *not* include the last item given in a range. This brings their
6790 to *not* include the last item given in a range. This brings their
6789 behavior in line with Python's slicing:
6791 behavior in line with Python's slicing:
6790 a[n1:n2] -> a[n1]...a[n2-1]
6792 a[n1:n2] -> a[n1]...a[n2-1]
6791 It may be a bit less convenient, but I prefer to stick to Python's
6793 It may be a bit less convenient, but I prefer to stick to Python's
6792 conventions *everywhere*, so users never have to wonder.
6794 conventions *everywhere*, so users never have to wonder.
6793 (Magic.magic_macro): Added @macro function to ease the creation of
6795 (Magic.magic_macro): Added @macro function to ease the creation of
6794 macros.
6796 macros.
6795
6797
6796 2002-01-05 Fernando Perez <fperez@colorado.edu>
6798 2002-01-05 Fernando Perez <fperez@colorado.edu>
6797
6799
6798 * Released 0.2.4.
6800 * Released 0.2.4.
6799
6801
6800 * IPython/iplib.py (Magic.magic_pdef):
6802 * IPython/iplib.py (Magic.magic_pdef):
6801 (InteractiveShell.safe_execfile): report magic lines and error
6803 (InteractiveShell.safe_execfile): report magic lines and error
6802 lines without line numbers so one can easily copy/paste them for
6804 lines without line numbers so one can easily copy/paste them for
6803 re-execution.
6805 re-execution.
6804
6806
6805 * Updated manual with recent changes.
6807 * Updated manual with recent changes.
6806
6808
6807 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6809 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6808 docstring printing when class? is called. Very handy for knowing
6810 docstring printing when class? is called. Very handy for knowing
6809 how to create class instances (as long as __init__ is well
6811 how to create class instances (as long as __init__ is well
6810 documented, of course :)
6812 documented, of course :)
6811 (Magic.magic_doc): print both class and constructor docstrings.
6813 (Magic.magic_doc): print both class and constructor docstrings.
6812 (Magic.magic_pdef): give constructor info if passed a class and
6814 (Magic.magic_pdef): give constructor info if passed a class and
6813 __call__ info for callable object instances.
6815 __call__ info for callable object instances.
6814
6816
6815 2002-01-04 Fernando Perez <fperez@colorado.edu>
6817 2002-01-04 Fernando Perez <fperez@colorado.edu>
6816
6818
6817 * Made deep_reload() off by default. It doesn't always work
6819 * Made deep_reload() off by default. It doesn't always work
6818 exactly as intended, so it's probably safer to have it off. It's
6820 exactly as intended, so it's probably safer to have it off. It's
6819 still available as dreload() anyway, so nothing is lost.
6821 still available as dreload() anyway, so nothing is lost.
6820
6822
6821 2002-01-02 Fernando Perez <fperez@colorado.edu>
6823 2002-01-02 Fernando Perez <fperez@colorado.edu>
6822
6824
6823 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6825 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6824 so I wanted an updated release).
6826 so I wanted an updated release).
6825
6827
6826 2001-12-27 Fernando Perez <fperez@colorado.edu>
6828 2001-12-27 Fernando Perez <fperez@colorado.edu>
6827
6829
6828 * IPython/iplib.py (InteractiveShell.interact): Added the original
6830 * IPython/iplib.py (InteractiveShell.interact): Added the original
6829 code from 'code.py' for this module in order to change the
6831 code from 'code.py' for this module in order to change the
6830 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6832 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6831 the history cache would break when the user hit Ctrl-C, and
6833 the history cache would break when the user hit Ctrl-C, and
6832 interact() offers no way to add any hooks to it.
6834 interact() offers no way to add any hooks to it.
6833
6835
6834 2001-12-23 Fernando Perez <fperez@colorado.edu>
6836 2001-12-23 Fernando Perez <fperez@colorado.edu>
6835
6837
6836 * setup.py: added check for 'MANIFEST' before trying to remove
6838 * setup.py: added check for 'MANIFEST' before trying to remove
6837 it. Thanks to Sean Reifschneider.
6839 it. Thanks to Sean Reifschneider.
6838
6840
6839 2001-12-22 Fernando Perez <fperez@colorado.edu>
6841 2001-12-22 Fernando Perez <fperez@colorado.edu>
6840
6842
6841 * Released 0.2.2.
6843 * Released 0.2.2.
6842
6844
6843 * Finished (reasonably) writing the manual. Later will add the
6845 * Finished (reasonably) writing the manual. Later will add the
6844 python-standard navigation stylesheets, but for the time being
6846 python-standard navigation stylesheets, but for the time being
6845 it's fairly complete. Distribution will include html and pdf
6847 it's fairly complete. Distribution will include html and pdf
6846 versions.
6848 versions.
6847
6849
6848 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6850 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6849 (MayaVi author).
6851 (MayaVi author).
6850
6852
6851 2001-12-21 Fernando Perez <fperez@colorado.edu>
6853 2001-12-21 Fernando Perez <fperez@colorado.edu>
6852
6854
6853 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6855 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6854 good public release, I think (with the manual and the distutils
6856 good public release, I think (with the manual and the distutils
6855 installer). The manual can use some work, but that can go
6857 installer). The manual can use some work, but that can go
6856 slowly. Otherwise I think it's quite nice for end users. Next
6858 slowly. Otherwise I think it's quite nice for end users. Next
6857 summer, rewrite the guts of it...
6859 summer, rewrite the guts of it...
6858
6860
6859 * Changed format of ipythonrc files to use whitespace as the
6861 * Changed format of ipythonrc files to use whitespace as the
6860 separator instead of an explicit '='. Cleaner.
6862 separator instead of an explicit '='. Cleaner.
6861
6863
6862 2001-12-20 Fernando Perez <fperez@colorado.edu>
6864 2001-12-20 Fernando Perez <fperez@colorado.edu>
6863
6865
6864 * Started a manual in LyX. For now it's just a quick merge of the
6866 * Started a manual in LyX. For now it's just a quick merge of the
6865 various internal docstrings and READMEs. Later it may grow into a
6867 various internal docstrings and READMEs. Later it may grow into a
6866 nice, full-blown manual.
6868 nice, full-blown manual.
6867
6869
6868 * Set up a distutils based installer. Installation should now be
6870 * Set up a distutils based installer. Installation should now be
6869 trivially simple for end-users.
6871 trivially simple for end-users.
6870
6872
6871 2001-12-11 Fernando Perez <fperez@colorado.edu>
6873 2001-12-11 Fernando Perez <fperez@colorado.edu>
6872
6874
6873 * Released 0.2.0. First public release, announced it at
6875 * Released 0.2.0. First public release, announced it at
6874 comp.lang.python. From now on, just bugfixes...
6876 comp.lang.python. From now on, just bugfixes...
6875
6877
6876 * Went through all the files, set copyright/license notices and
6878 * Went through all the files, set copyright/license notices and
6877 cleaned up things. Ready for release.
6879 cleaned up things. Ready for release.
6878
6880
6879 2001-12-10 Fernando Perez <fperez@colorado.edu>
6881 2001-12-10 Fernando Perez <fperez@colorado.edu>
6880
6882
6881 * Changed the first-time installer not to use tarfiles. It's more
6883 * Changed the first-time installer not to use tarfiles. It's more
6882 robust now and less unix-dependent. Also makes it easier for
6884 robust now and less unix-dependent. Also makes it easier for
6883 people to later upgrade versions.
6885 people to later upgrade versions.
6884
6886
6885 * Changed @exit to @abort to reflect the fact that it's pretty
6887 * Changed @exit to @abort to reflect the fact that it's pretty
6886 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6888 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6887 becomes significant only when IPyhton is embedded: in that case,
6889 becomes significant only when IPyhton is embedded: in that case,
6888 C-D closes IPython only, but @abort kills the enclosing program
6890 C-D closes IPython only, but @abort kills the enclosing program
6889 too (unless it had called IPython inside a try catching
6891 too (unless it had called IPython inside a try catching
6890 SystemExit).
6892 SystemExit).
6891
6893
6892 * Created Shell module which exposes the actuall IPython Shell
6894 * Created Shell module which exposes the actuall IPython Shell
6893 classes, currently the normal and the embeddable one. This at
6895 classes, currently the normal and the embeddable one. This at
6894 least offers a stable interface we won't need to change when
6896 least offers a stable interface we won't need to change when
6895 (later) the internals are rewritten. That rewrite will be confined
6897 (later) the internals are rewritten. That rewrite will be confined
6896 to iplib and ipmaker, but the Shell interface should remain as is.
6898 to iplib and ipmaker, but the Shell interface should remain as is.
6897
6899
6898 * Added embed module which offers an embeddable IPShell object,
6900 * Added embed module which offers an embeddable IPShell object,
6899 useful to fire up IPython *inside* a running program. Great for
6901 useful to fire up IPython *inside* a running program. Great for
6900 debugging or dynamical data analysis.
6902 debugging or dynamical data analysis.
6901
6903
6902 2001-12-08 Fernando Perez <fperez@colorado.edu>
6904 2001-12-08 Fernando Perez <fperez@colorado.edu>
6903
6905
6904 * Fixed small bug preventing seeing info from methods of defined
6906 * Fixed small bug preventing seeing info from methods of defined
6905 objects (incorrect namespace in _ofind()).
6907 objects (incorrect namespace in _ofind()).
6906
6908
6907 * Documentation cleanup. Moved the main usage docstrings to a
6909 * Documentation cleanup. Moved the main usage docstrings to a
6908 separate file, usage.py (cleaner to maintain, and hopefully in the
6910 separate file, usage.py (cleaner to maintain, and hopefully in the
6909 future some perlpod-like way of producing interactive, man and
6911 future some perlpod-like way of producing interactive, man and
6910 html docs out of it will be found).
6912 html docs out of it will be found).
6911
6913
6912 * Added @profile to see your profile at any time.
6914 * Added @profile to see your profile at any time.
6913
6915
6914 * Added @p as an alias for 'print'. It's especially convenient if
6916 * Added @p as an alias for 'print'. It's especially convenient if
6915 using automagic ('p x' prints x).
6917 using automagic ('p x' prints x).
6916
6918
6917 * Small cleanups and fixes after a pychecker run.
6919 * Small cleanups and fixes after a pychecker run.
6918
6920
6919 * Changed the @cd command to handle @cd - and @cd -<n> for
6921 * Changed the @cd command to handle @cd - and @cd -<n> for
6920 visiting any directory in _dh.
6922 visiting any directory in _dh.
6921
6923
6922 * Introduced _dh, a history of visited directories. @dhist prints
6924 * Introduced _dh, a history of visited directories. @dhist prints
6923 it out with numbers.
6925 it out with numbers.
6924
6926
6925 2001-12-07 Fernando Perez <fperez@colorado.edu>
6927 2001-12-07 Fernando Perez <fperez@colorado.edu>
6926
6928
6927 * Released 0.1.22
6929 * Released 0.1.22
6928
6930
6929 * Made initialization a bit more robust against invalid color
6931 * Made initialization a bit more robust against invalid color
6930 options in user input (exit, not traceback-crash).
6932 options in user input (exit, not traceback-crash).
6931
6933
6932 * Changed the bug crash reporter to write the report only in the
6934 * Changed the bug crash reporter to write the report only in the
6933 user's .ipython directory. That way IPython won't litter people's
6935 user's .ipython directory. That way IPython won't litter people's
6934 hard disks with crash files all over the place. Also print on
6936 hard disks with crash files all over the place. Also print on
6935 screen the necessary mail command.
6937 screen the necessary mail command.
6936
6938
6937 * With the new ultraTB, implemented LightBG color scheme for light
6939 * With the new ultraTB, implemented LightBG color scheme for light
6938 background terminals. A lot of people like white backgrounds, so I
6940 background terminals. A lot of people like white backgrounds, so I
6939 guess we should at least give them something readable.
6941 guess we should at least give them something readable.
6940
6942
6941 2001-12-06 Fernando Perez <fperez@colorado.edu>
6943 2001-12-06 Fernando Perez <fperez@colorado.edu>
6942
6944
6943 * Modified the structure of ultraTB. Now there's a proper class
6945 * Modified the structure of ultraTB. Now there's a proper class
6944 for tables of color schemes which allow adding schemes easily and
6946 for tables of color schemes which allow adding schemes easily and
6945 switching the active scheme without creating a new instance every
6947 switching the active scheme without creating a new instance every
6946 time (which was ridiculous). The syntax for creating new schemes
6948 time (which was ridiculous). The syntax for creating new schemes
6947 is also cleaner. I think ultraTB is finally done, with a clean
6949 is also cleaner. I think ultraTB is finally done, with a clean
6948 class structure. Names are also much cleaner (now there's proper
6950 class structure. Names are also much cleaner (now there's proper
6949 color tables, no need for every variable to also have 'color' in
6951 color tables, no need for every variable to also have 'color' in
6950 its name).
6952 its name).
6951
6953
6952 * Broke down genutils into separate files. Now genutils only
6954 * Broke down genutils into separate files. Now genutils only
6953 contains utility functions, and classes have been moved to their
6955 contains utility functions, and classes have been moved to their
6954 own files (they had enough independent functionality to warrant
6956 own files (they had enough independent functionality to warrant
6955 it): ConfigLoader, OutputTrap, Struct.
6957 it): ConfigLoader, OutputTrap, Struct.
6956
6958
6957 2001-12-05 Fernando Perez <fperez@colorado.edu>
6959 2001-12-05 Fernando Perez <fperez@colorado.edu>
6958
6960
6959 * IPython turns 21! Released version 0.1.21, as a candidate for
6961 * IPython turns 21! Released version 0.1.21, as a candidate for
6960 public consumption. If all goes well, release in a few days.
6962 public consumption. If all goes well, release in a few days.
6961
6963
6962 * Fixed path bug (files in Extensions/ directory wouldn't be found
6964 * Fixed path bug (files in Extensions/ directory wouldn't be found
6963 unless IPython/ was explicitly in sys.path).
6965 unless IPython/ was explicitly in sys.path).
6964
6966
6965 * Extended the FlexCompleter class as MagicCompleter to allow
6967 * Extended the FlexCompleter class as MagicCompleter to allow
6966 completion of @-starting lines.
6968 completion of @-starting lines.
6967
6969
6968 * Created __release__.py file as a central repository for release
6970 * Created __release__.py file as a central repository for release
6969 info that other files can read from.
6971 info that other files can read from.
6970
6972
6971 * Fixed small bug in logging: when logging was turned on in
6973 * Fixed small bug in logging: when logging was turned on in
6972 mid-session, old lines with special meanings (!@?) were being
6974 mid-session, old lines with special meanings (!@?) were being
6973 logged without the prepended comment, which is necessary since
6975 logged without the prepended comment, which is necessary since
6974 they are not truly valid python syntax. This should make session
6976 they are not truly valid python syntax. This should make session
6975 restores produce less errors.
6977 restores produce less errors.
6976
6978
6977 * The namespace cleanup forced me to make a FlexCompleter class
6979 * The namespace cleanup forced me to make a FlexCompleter class
6978 which is nothing but a ripoff of rlcompleter, but with selectable
6980 which is nothing but a ripoff of rlcompleter, but with selectable
6979 namespace (rlcompleter only works in __main__.__dict__). I'll try
6981 namespace (rlcompleter only works in __main__.__dict__). I'll try
6980 to submit a note to the authors to see if this change can be
6982 to submit a note to the authors to see if this change can be
6981 incorporated in future rlcompleter releases (Dec.6: done)
6983 incorporated in future rlcompleter releases (Dec.6: done)
6982
6984
6983 * More fixes to namespace handling. It was a mess! Now all
6985 * More fixes to namespace handling. It was a mess! Now all
6984 explicit references to __main__.__dict__ are gone (except when
6986 explicit references to __main__.__dict__ are gone (except when
6985 really needed) and everything is handled through the namespace
6987 really needed) and everything is handled through the namespace
6986 dicts in the IPython instance. We seem to be getting somewhere
6988 dicts in the IPython instance. We seem to be getting somewhere
6987 with this, finally...
6989 with this, finally...
6988
6990
6989 * Small documentation updates.
6991 * Small documentation updates.
6990
6992
6991 * Created the Extensions directory under IPython (with an
6993 * Created the Extensions directory under IPython (with an
6992 __init__.py). Put the PhysicalQ stuff there. This directory should
6994 __init__.py). Put the PhysicalQ stuff there. This directory should
6993 be used for all special-purpose extensions.
6995 be used for all special-purpose extensions.
6994
6996
6995 * File renaming:
6997 * File renaming:
6996 ipythonlib --> ipmaker
6998 ipythonlib --> ipmaker
6997 ipplib --> iplib
6999 ipplib --> iplib
6998 This makes a bit more sense in terms of what these files actually do.
7000 This makes a bit more sense in terms of what these files actually do.
6999
7001
7000 * Moved all the classes and functions in ipythonlib to ipplib, so
7002 * Moved all the classes and functions in ipythonlib to ipplib, so
7001 now ipythonlib only has make_IPython(). This will ease up its
7003 now ipythonlib only has make_IPython(). This will ease up its
7002 splitting in smaller functional chunks later.
7004 splitting in smaller functional chunks later.
7003
7005
7004 * Cleaned up (done, I think) output of @whos. Better column
7006 * Cleaned up (done, I think) output of @whos. Better column
7005 formatting, and now shows str(var) for as much as it can, which is
7007 formatting, and now shows str(var) for as much as it can, which is
7006 typically what one gets with a 'print var'.
7008 typically what one gets with a 'print var'.
7007
7009
7008 2001-12-04 Fernando Perez <fperez@colorado.edu>
7010 2001-12-04 Fernando Perez <fperez@colorado.edu>
7009
7011
7010 * Fixed namespace problems. Now builtin/IPyhton/user names get
7012 * Fixed namespace problems. Now builtin/IPyhton/user names get
7011 properly reported in their namespace. Internal namespace handling
7013 properly reported in their namespace. Internal namespace handling
7012 is finally getting decent (not perfect yet, but much better than
7014 is finally getting decent (not perfect yet, but much better than
7013 the ad-hoc mess we had).
7015 the ad-hoc mess we had).
7014
7016
7015 * Removed -exit option. If people just want to run a python
7017 * Removed -exit option. If people just want to run a python
7016 script, that's what the normal interpreter is for. Less
7018 script, that's what the normal interpreter is for. Less
7017 unnecessary options, less chances for bugs.
7019 unnecessary options, less chances for bugs.
7018
7020
7019 * Added a crash handler which generates a complete post-mortem if
7021 * Added a crash handler which generates a complete post-mortem if
7020 IPython crashes. This will help a lot in tracking bugs down the
7022 IPython crashes. This will help a lot in tracking bugs down the
7021 road.
7023 road.
7022
7024
7023 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7025 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7024 which were boud to functions being reassigned would bypass the
7026 which were boud to functions being reassigned would bypass the
7025 logger, breaking the sync of _il with the prompt counter. This
7027 logger, breaking the sync of _il with the prompt counter. This
7026 would then crash IPython later when a new line was logged.
7028 would then crash IPython later when a new line was logged.
7027
7029
7028 2001-12-02 Fernando Perez <fperez@colorado.edu>
7030 2001-12-02 Fernando Perez <fperez@colorado.edu>
7029
7031
7030 * Made IPython a package. This means people don't have to clutter
7032 * Made IPython a package. This means people don't have to clutter
7031 their sys.path with yet another directory. Changed the INSTALL
7033 their sys.path with yet another directory. Changed the INSTALL
7032 file accordingly.
7034 file accordingly.
7033
7035
7034 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7036 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7035 sorts its output (so @who shows it sorted) and @whos formats the
7037 sorts its output (so @who shows it sorted) and @whos formats the
7036 table according to the width of the first column. Nicer, easier to
7038 table according to the width of the first column. Nicer, easier to
7037 read. Todo: write a generic table_format() which takes a list of
7039 read. Todo: write a generic table_format() which takes a list of
7038 lists and prints it nicely formatted, with optional row/column
7040 lists and prints it nicely formatted, with optional row/column
7039 separators and proper padding and justification.
7041 separators and proper padding and justification.
7040
7042
7041 * Released 0.1.20
7043 * Released 0.1.20
7042
7044
7043 * Fixed bug in @log which would reverse the inputcache list (a
7045 * Fixed bug in @log which would reverse the inputcache list (a
7044 copy operation was missing).
7046 copy operation was missing).
7045
7047
7046 * Code cleanup. @config was changed to use page(). Better, since
7048 * Code cleanup. @config was changed to use page(). Better, since
7047 its output is always quite long.
7049 its output is always quite long.
7048
7050
7049 * Itpl is back as a dependency. I was having too many problems
7051 * Itpl is back as a dependency. I was having too many problems
7050 getting the parametric aliases to work reliably, and it's just
7052 getting the parametric aliases to work reliably, and it's just
7051 easier to code weird string operations with it than playing %()s
7053 easier to code weird string operations with it than playing %()s
7052 games. It's only ~6k, so I don't think it's too big a deal.
7054 games. It's only ~6k, so I don't think it's too big a deal.
7053
7055
7054 * Found (and fixed) a very nasty bug with history. !lines weren't
7056 * Found (and fixed) a very nasty bug with history. !lines weren't
7055 getting cached, and the out of sync caches would crash
7057 getting cached, and the out of sync caches would crash
7056 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7058 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7057 division of labor a bit better. Bug fixed, cleaner structure.
7059 division of labor a bit better. Bug fixed, cleaner structure.
7058
7060
7059 2001-12-01 Fernando Perez <fperez@colorado.edu>
7061 2001-12-01 Fernando Perez <fperez@colorado.edu>
7060
7062
7061 * Released 0.1.19
7063 * Released 0.1.19
7062
7064
7063 * Added option -n to @hist to prevent line number printing. Much
7065 * Added option -n to @hist to prevent line number printing. Much
7064 easier to copy/paste code this way.
7066 easier to copy/paste code this way.
7065
7067
7066 * Created global _il to hold the input list. Allows easy
7068 * Created global _il to hold the input list. Allows easy
7067 re-execution of blocks of code by slicing it (inspired by Janko's
7069 re-execution of blocks of code by slicing it (inspired by Janko's
7068 comment on 'macros').
7070 comment on 'macros').
7069
7071
7070 * Small fixes and doc updates.
7072 * Small fixes and doc updates.
7071
7073
7072 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7074 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7073 much too fragile with automagic. Handles properly multi-line
7075 much too fragile with automagic. Handles properly multi-line
7074 statements and takes parameters.
7076 statements and takes parameters.
7075
7077
7076 2001-11-30 Fernando Perez <fperez@colorado.edu>
7078 2001-11-30 Fernando Perez <fperez@colorado.edu>
7077
7079
7078 * Version 0.1.18 released.
7080 * Version 0.1.18 released.
7079
7081
7080 * Fixed nasty namespace bug in initial module imports.
7082 * Fixed nasty namespace bug in initial module imports.
7081
7083
7082 * Added copyright/license notes to all code files (except
7084 * Added copyright/license notes to all code files (except
7083 DPyGetOpt). For the time being, LGPL. That could change.
7085 DPyGetOpt). For the time being, LGPL. That could change.
7084
7086
7085 * Rewrote a much nicer README, updated INSTALL, cleaned up
7087 * Rewrote a much nicer README, updated INSTALL, cleaned up
7086 ipythonrc-* samples.
7088 ipythonrc-* samples.
7087
7089
7088 * Overall code/documentation cleanup. Basically ready for
7090 * Overall code/documentation cleanup. Basically ready for
7089 release. Only remaining thing: licence decision (LGPL?).
7091 release. Only remaining thing: licence decision (LGPL?).
7090
7092
7091 * Converted load_config to a class, ConfigLoader. Now recursion
7093 * Converted load_config to a class, ConfigLoader. Now recursion
7092 control is better organized. Doesn't include the same file twice.
7094 control is better organized. Doesn't include the same file twice.
7093
7095
7094 2001-11-29 Fernando Perez <fperez@colorado.edu>
7096 2001-11-29 Fernando Perez <fperez@colorado.edu>
7095
7097
7096 * Got input history working. Changed output history variables from
7098 * Got input history working. Changed output history variables from
7097 _p to _o so that _i is for input and _o for output. Just cleaner
7099 _p to _o so that _i is for input and _o for output. Just cleaner
7098 convention.
7100 convention.
7099
7101
7100 * Implemented parametric aliases. This pretty much allows the
7102 * Implemented parametric aliases. This pretty much allows the
7101 alias system to offer full-blown shell convenience, I think.
7103 alias system to offer full-blown shell convenience, I think.
7102
7104
7103 * Version 0.1.17 released, 0.1.18 opened.
7105 * Version 0.1.17 released, 0.1.18 opened.
7104
7106
7105 * dot_ipython/ipythonrc (alias): added documentation.
7107 * dot_ipython/ipythonrc (alias): added documentation.
7106 (xcolor): Fixed small bug (xcolors -> xcolor)
7108 (xcolor): Fixed small bug (xcolors -> xcolor)
7107
7109
7108 * Changed the alias system. Now alias is a magic command to define
7110 * Changed the alias system. Now alias is a magic command to define
7109 aliases just like the shell. Rationale: the builtin magics should
7111 aliases just like the shell. Rationale: the builtin magics should
7110 be there for things deeply connected to IPython's
7112 be there for things deeply connected to IPython's
7111 architecture. And this is a much lighter system for what I think
7113 architecture. And this is a much lighter system for what I think
7112 is the really important feature: allowing users to define quickly
7114 is the really important feature: allowing users to define quickly
7113 magics that will do shell things for them, so they can customize
7115 magics that will do shell things for them, so they can customize
7114 IPython easily to match their work habits. If someone is really
7116 IPython easily to match their work habits. If someone is really
7115 desperate to have another name for a builtin alias, they can
7117 desperate to have another name for a builtin alias, they can
7116 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7118 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7117 works.
7119 works.
7118
7120
7119 2001-11-28 Fernando Perez <fperez@colorado.edu>
7121 2001-11-28 Fernando Perez <fperez@colorado.edu>
7120
7122
7121 * Changed @file so that it opens the source file at the proper
7123 * Changed @file so that it opens the source file at the proper
7122 line. Since it uses less, if your EDITOR environment is
7124 line. Since it uses less, if your EDITOR environment is
7123 configured, typing v will immediately open your editor of choice
7125 configured, typing v will immediately open your editor of choice
7124 right at the line where the object is defined. Not as quick as
7126 right at the line where the object is defined. Not as quick as
7125 having a direct @edit command, but for all intents and purposes it
7127 having a direct @edit command, but for all intents and purposes it
7126 works. And I don't have to worry about writing @edit to deal with
7128 works. And I don't have to worry about writing @edit to deal with
7127 all the editors, less does that.
7129 all the editors, less does that.
7128
7130
7129 * Version 0.1.16 released, 0.1.17 opened.
7131 * Version 0.1.16 released, 0.1.17 opened.
7130
7132
7131 * Fixed some nasty bugs in the page/page_dumb combo that could
7133 * Fixed some nasty bugs in the page/page_dumb combo that could
7132 crash IPython.
7134 crash IPython.
7133
7135
7134 2001-11-27 Fernando Perez <fperez@colorado.edu>
7136 2001-11-27 Fernando Perez <fperez@colorado.edu>
7135
7137
7136 * Version 0.1.15 released, 0.1.16 opened.
7138 * Version 0.1.15 released, 0.1.16 opened.
7137
7139
7138 * Finally got ? and ?? to work for undefined things: now it's
7140 * Finally got ? and ?? to work for undefined things: now it's
7139 possible to type {}.get? and get information about the get method
7141 possible to type {}.get? and get information about the get method
7140 of dicts, or os.path? even if only os is defined (so technically
7142 of dicts, or os.path? even if only os is defined (so technically
7141 os.path isn't). Works at any level. For example, after import os,
7143 os.path isn't). Works at any level. For example, after import os,
7142 os?, os.path?, os.path.abspath? all work. This is great, took some
7144 os?, os.path?, os.path.abspath? all work. This is great, took some
7143 work in _ofind.
7145 work in _ofind.
7144
7146
7145 * Fixed more bugs with logging. The sanest way to do it was to add
7147 * Fixed more bugs with logging. The sanest way to do it was to add
7146 to @log a 'mode' parameter. Killed two in one shot (this mode
7148 to @log a 'mode' parameter. Killed two in one shot (this mode
7147 option was a request of Janko's). I think it's finally clean
7149 option was a request of Janko's). I think it's finally clean
7148 (famous last words).
7150 (famous last words).
7149
7151
7150 * Added a page_dumb() pager which does a decent job of paging on
7152 * Added a page_dumb() pager which does a decent job of paging on
7151 screen, if better things (like less) aren't available. One less
7153 screen, if better things (like less) aren't available. One less
7152 unix dependency (someday maybe somebody will port this to
7154 unix dependency (someday maybe somebody will port this to
7153 windows).
7155 windows).
7154
7156
7155 * Fixed problem in magic_log: would lock of logging out if log
7157 * Fixed problem in magic_log: would lock of logging out if log
7156 creation failed (because it would still think it had succeeded).
7158 creation failed (because it would still think it had succeeded).
7157
7159
7158 * Improved the page() function using curses to auto-detect screen
7160 * Improved the page() function using curses to auto-detect screen
7159 size. Now it can make a much better decision on whether to print
7161 size. Now it can make a much better decision on whether to print
7160 or page a string. Option screen_length was modified: a value 0
7162 or page a string. Option screen_length was modified: a value 0
7161 means auto-detect, and that's the default now.
7163 means auto-detect, and that's the default now.
7162
7164
7163 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7165 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7164 go out. I'll test it for a few days, then talk to Janko about
7166 go out. I'll test it for a few days, then talk to Janko about
7165 licences and announce it.
7167 licences and announce it.
7166
7168
7167 * Fixed the length of the auto-generated ---> prompt which appears
7169 * Fixed the length of the auto-generated ---> prompt which appears
7168 for auto-parens and auto-quotes. Getting this right isn't trivial,
7170 for auto-parens and auto-quotes. Getting this right isn't trivial,
7169 with all the color escapes, different prompt types and optional
7171 with all the color escapes, different prompt types and optional
7170 separators. But it seems to be working in all the combinations.
7172 separators. But it seems to be working in all the combinations.
7171
7173
7172 2001-11-26 Fernando Perez <fperez@colorado.edu>
7174 2001-11-26 Fernando Perez <fperez@colorado.edu>
7173
7175
7174 * Wrote a regexp filter to get option types from the option names
7176 * Wrote a regexp filter to get option types from the option names
7175 string. This eliminates the need to manually keep two duplicate
7177 string. This eliminates the need to manually keep two duplicate
7176 lists.
7178 lists.
7177
7179
7178 * Removed the unneeded check_option_names. Now options are handled
7180 * Removed the unneeded check_option_names. Now options are handled
7179 in a much saner manner and it's easy to visually check that things
7181 in a much saner manner and it's easy to visually check that things
7180 are ok.
7182 are ok.
7181
7183
7182 * Updated version numbers on all files I modified to carry a
7184 * Updated version numbers on all files I modified to carry a
7183 notice so Janko and Nathan have clear version markers.
7185 notice so Janko and Nathan have clear version markers.
7184
7186
7185 * Updated docstring for ultraTB with my changes. I should send
7187 * Updated docstring for ultraTB with my changes. I should send
7186 this to Nathan.
7188 this to Nathan.
7187
7189
7188 * Lots of small fixes. Ran everything through pychecker again.
7190 * Lots of small fixes. Ran everything through pychecker again.
7189
7191
7190 * Made loading of deep_reload an cmd line option. If it's not too
7192 * Made loading of deep_reload an cmd line option. If it's not too
7191 kosher, now people can just disable it. With -nodeep_reload it's
7193 kosher, now people can just disable it. With -nodeep_reload it's
7192 still available as dreload(), it just won't overwrite reload().
7194 still available as dreload(), it just won't overwrite reload().
7193
7195
7194 * Moved many options to the no| form (-opt and -noopt
7196 * Moved many options to the no| form (-opt and -noopt
7195 accepted). Cleaner.
7197 accepted). Cleaner.
7196
7198
7197 * Changed magic_log so that if called with no parameters, it uses
7199 * Changed magic_log so that if called with no parameters, it uses
7198 'rotate' mode. That way auto-generated logs aren't automatically
7200 'rotate' mode. That way auto-generated logs aren't automatically
7199 over-written. For normal logs, now a backup is made if it exists
7201 over-written. For normal logs, now a backup is made if it exists
7200 (only 1 level of backups). A new 'backup' mode was added to the
7202 (only 1 level of backups). A new 'backup' mode was added to the
7201 Logger class to support this. This was a request by Janko.
7203 Logger class to support this. This was a request by Janko.
7202
7204
7203 * Added @logoff/@logon to stop/restart an active log.
7205 * Added @logoff/@logon to stop/restart an active log.
7204
7206
7205 * Fixed a lot of bugs in log saving/replay. It was pretty
7207 * Fixed a lot of bugs in log saving/replay. It was pretty
7206 broken. Now special lines (!@,/) appear properly in the command
7208 broken. Now special lines (!@,/) appear properly in the command
7207 history after a log replay.
7209 history after a log replay.
7208
7210
7209 * Tried and failed to implement full session saving via pickle. My
7211 * Tried and failed to implement full session saving via pickle. My
7210 idea was to pickle __main__.__dict__, but modules can't be
7212 idea was to pickle __main__.__dict__, but modules can't be
7211 pickled. This would be a better alternative to replaying logs, but
7213 pickled. This would be a better alternative to replaying logs, but
7212 seems quite tricky to get to work. Changed -session to be called
7214 seems quite tricky to get to work. Changed -session to be called
7213 -logplay, which more accurately reflects what it does. And if we
7215 -logplay, which more accurately reflects what it does. And if we
7214 ever get real session saving working, -session is now available.
7216 ever get real session saving working, -session is now available.
7215
7217
7216 * Implemented color schemes for prompts also. As for tracebacks,
7218 * Implemented color schemes for prompts also. As for tracebacks,
7217 currently only NoColor and Linux are supported. But now the
7219 currently only NoColor and Linux are supported. But now the
7218 infrastructure is in place, based on a generic ColorScheme
7220 infrastructure is in place, based on a generic ColorScheme
7219 class. So writing and activating new schemes both for the prompts
7221 class. So writing and activating new schemes both for the prompts
7220 and the tracebacks should be straightforward.
7222 and the tracebacks should be straightforward.
7221
7223
7222 * Version 0.1.13 released, 0.1.14 opened.
7224 * Version 0.1.13 released, 0.1.14 opened.
7223
7225
7224 * Changed handling of options for output cache. Now counter is
7226 * Changed handling of options for output cache. Now counter is
7225 hardwired starting at 1 and one specifies the maximum number of
7227 hardwired starting at 1 and one specifies the maximum number of
7226 entries *in the outcache* (not the max prompt counter). This is
7228 entries *in the outcache* (not the max prompt counter). This is
7227 much better, since many statements won't increase the cache
7229 much better, since many statements won't increase the cache
7228 count. It also eliminated some confusing options, now there's only
7230 count. It also eliminated some confusing options, now there's only
7229 one: cache_size.
7231 one: cache_size.
7230
7232
7231 * Added 'alias' magic function and magic_alias option in the
7233 * Added 'alias' magic function and magic_alias option in the
7232 ipythonrc file. Now the user can easily define whatever names he
7234 ipythonrc file. Now the user can easily define whatever names he
7233 wants for the magic functions without having to play weird
7235 wants for the magic functions without having to play weird
7234 namespace games. This gives IPython a real shell-like feel.
7236 namespace games. This gives IPython a real shell-like feel.
7235
7237
7236 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7238 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7237 @ or not).
7239 @ or not).
7238
7240
7239 This was one of the last remaining 'visible' bugs (that I know
7241 This was one of the last remaining 'visible' bugs (that I know
7240 of). I think if I can clean up the session loading so it works
7242 of). I think if I can clean up the session loading so it works
7241 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7243 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7242 about licensing).
7244 about licensing).
7243
7245
7244 2001-11-25 Fernando Perez <fperez@colorado.edu>
7246 2001-11-25 Fernando Perez <fperez@colorado.edu>
7245
7247
7246 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7248 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7247 there's a cleaner distinction between what ? and ?? show.
7249 there's a cleaner distinction between what ? and ?? show.
7248
7250
7249 * Added screen_length option. Now the user can define his own
7251 * Added screen_length option. Now the user can define his own
7250 screen size for page() operations.
7252 screen size for page() operations.
7251
7253
7252 * Implemented magic shell-like functions with automatic code
7254 * Implemented magic shell-like functions with automatic code
7253 generation. Now adding another function is just a matter of adding
7255 generation. Now adding another function is just a matter of adding
7254 an entry to a dict, and the function is dynamically generated at
7256 an entry to a dict, and the function is dynamically generated at
7255 run-time. Python has some really cool features!
7257 run-time. Python has some really cool features!
7256
7258
7257 * Renamed many options to cleanup conventions a little. Now all
7259 * Renamed many options to cleanup conventions a little. Now all
7258 are lowercase, and only underscores where needed. Also in the code
7260 are lowercase, and only underscores where needed. Also in the code
7259 option name tables are clearer.
7261 option name tables are clearer.
7260
7262
7261 * Changed prompts a little. Now input is 'In [n]:' instead of
7263 * Changed prompts a little. Now input is 'In [n]:' instead of
7262 'In[n]:='. This allows it the numbers to be aligned with the
7264 'In[n]:='. This allows it the numbers to be aligned with the
7263 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7265 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7264 Python (it was a Mathematica thing). The '...' continuation prompt
7266 Python (it was a Mathematica thing). The '...' continuation prompt
7265 was also changed a little to align better.
7267 was also changed a little to align better.
7266
7268
7267 * Fixed bug when flushing output cache. Not all _p<n> variables
7269 * Fixed bug when flushing output cache. Not all _p<n> variables
7268 exist, so their deletion needs to be wrapped in a try:
7270 exist, so their deletion needs to be wrapped in a try:
7269
7271
7270 * Figured out how to properly use inspect.formatargspec() (it
7272 * Figured out how to properly use inspect.formatargspec() (it
7271 requires the args preceded by *). So I removed all the code from
7273 requires the args preceded by *). So I removed all the code from
7272 _get_pdef in Magic, which was just replicating that.
7274 _get_pdef in Magic, which was just replicating that.
7273
7275
7274 * Added test to prefilter to allow redefining magic function names
7276 * Added test to prefilter to allow redefining magic function names
7275 as variables. This is ok, since the @ form is always available,
7277 as variables. This is ok, since the @ form is always available,
7276 but whe should allow the user to define a variable called 'ls' if
7278 but whe should allow the user to define a variable called 'ls' if
7277 he needs it.
7279 he needs it.
7278
7280
7279 * Moved the ToDo information from README into a separate ToDo.
7281 * Moved the ToDo information from README into a separate ToDo.
7280
7282
7281 * General code cleanup and small bugfixes. I think it's close to a
7283 * General code cleanup and small bugfixes. I think it's close to a
7282 state where it can be released, obviously with a big 'beta'
7284 state where it can be released, obviously with a big 'beta'
7283 warning on it.
7285 warning on it.
7284
7286
7285 * Got the magic function split to work. Now all magics are defined
7287 * Got the magic function split to work. Now all magics are defined
7286 in a separate class. It just organizes things a bit, and now
7288 in a separate class. It just organizes things a bit, and now
7287 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7289 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7288 was too long).
7290 was too long).
7289
7291
7290 * Changed @clear to @reset to avoid potential confusions with
7292 * Changed @clear to @reset to avoid potential confusions with
7291 the shell command clear. Also renamed @cl to @clear, which does
7293 the shell command clear. Also renamed @cl to @clear, which does
7292 exactly what people expect it to from their shell experience.
7294 exactly what people expect it to from their shell experience.
7293
7295
7294 Added a check to the @reset command (since it's so
7296 Added a check to the @reset command (since it's so
7295 destructive, it's probably a good idea to ask for confirmation).
7297 destructive, it's probably a good idea to ask for confirmation).
7296 But now reset only works for full namespace resetting. Since the
7298 But now reset only works for full namespace resetting. Since the
7297 del keyword is already there for deleting a few specific
7299 del keyword is already there for deleting a few specific
7298 variables, I don't see the point of having a redundant magic
7300 variables, I don't see the point of having a redundant magic
7299 function for the same task.
7301 function for the same task.
7300
7302
7301 2001-11-24 Fernando Perez <fperez@colorado.edu>
7303 2001-11-24 Fernando Perez <fperez@colorado.edu>
7302
7304
7303 * Updated the builtin docs (esp. the ? ones).
7305 * Updated the builtin docs (esp. the ? ones).
7304
7306
7305 * Ran all the code through pychecker. Not terribly impressed with
7307 * Ran all the code through pychecker. Not terribly impressed with
7306 it: lots of spurious warnings and didn't really find anything of
7308 it: lots of spurious warnings and didn't really find anything of
7307 substance (just a few modules being imported and not used).
7309 substance (just a few modules being imported and not used).
7308
7310
7309 * Implemented the new ultraTB functionality into IPython. New
7311 * Implemented the new ultraTB functionality into IPython. New
7310 option: xcolors. This chooses color scheme. xmode now only selects
7312 option: xcolors. This chooses color scheme. xmode now only selects
7311 between Plain and Verbose. Better orthogonality.
7313 between Plain and Verbose. Better orthogonality.
7312
7314
7313 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7315 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7314 mode and color scheme for the exception handlers. Now it's
7316 mode and color scheme for the exception handlers. Now it's
7315 possible to have the verbose traceback with no coloring.
7317 possible to have the verbose traceback with no coloring.
7316
7318
7317 2001-11-23 Fernando Perez <fperez@colorado.edu>
7319 2001-11-23 Fernando Perez <fperez@colorado.edu>
7318
7320
7319 * Version 0.1.12 released, 0.1.13 opened.
7321 * Version 0.1.12 released, 0.1.13 opened.
7320
7322
7321 * Removed option to set auto-quote and auto-paren escapes by
7323 * Removed option to set auto-quote and auto-paren escapes by
7322 user. The chances of breaking valid syntax are just too high. If
7324 user. The chances of breaking valid syntax are just too high. If
7323 someone *really* wants, they can always dig into the code.
7325 someone *really* wants, they can always dig into the code.
7324
7326
7325 * Made prompt separators configurable.
7327 * Made prompt separators configurable.
7326
7328
7327 2001-11-22 Fernando Perez <fperez@colorado.edu>
7329 2001-11-22 Fernando Perez <fperez@colorado.edu>
7328
7330
7329 * Small bugfixes in many places.
7331 * Small bugfixes in many places.
7330
7332
7331 * Removed the MyCompleter class from ipplib. It seemed redundant
7333 * Removed the MyCompleter class from ipplib. It seemed redundant
7332 with the C-p,C-n history search functionality. Less code to
7334 with the C-p,C-n history search functionality. Less code to
7333 maintain.
7335 maintain.
7334
7336
7335 * Moved all the original ipython.py code into ipythonlib.py. Right
7337 * Moved all the original ipython.py code into ipythonlib.py. Right
7336 now it's just one big dump into a function called make_IPython, so
7338 now it's just one big dump into a function called make_IPython, so
7337 no real modularity has been gained. But at least it makes the
7339 no real modularity has been gained. But at least it makes the
7338 wrapper script tiny, and since ipythonlib is a module, it gets
7340 wrapper script tiny, and since ipythonlib is a module, it gets
7339 compiled and startup is much faster.
7341 compiled and startup is much faster.
7340
7342
7341 This is a reasobably 'deep' change, so we should test it for a
7343 This is a reasobably 'deep' change, so we should test it for a
7342 while without messing too much more with the code.
7344 while without messing too much more with the code.
7343
7345
7344 2001-11-21 Fernando Perez <fperez@colorado.edu>
7346 2001-11-21 Fernando Perez <fperez@colorado.edu>
7345
7347
7346 * Version 0.1.11 released, 0.1.12 opened for further work.
7348 * Version 0.1.11 released, 0.1.12 opened for further work.
7347
7349
7348 * Removed dependency on Itpl. It was only needed in one place. It
7350 * Removed dependency on Itpl. It was only needed in one place. It
7349 would be nice if this became part of python, though. It makes life
7351 would be nice if this became part of python, though. It makes life
7350 *a lot* easier in some cases.
7352 *a lot* easier in some cases.
7351
7353
7352 * Simplified the prefilter code a bit. Now all handlers are
7354 * Simplified the prefilter code a bit. Now all handlers are
7353 expected to explicitly return a value (at least a blank string).
7355 expected to explicitly return a value (at least a blank string).
7354
7356
7355 * Heavy edits in ipplib. Removed the help system altogether. Now
7357 * Heavy edits in ipplib. Removed the help system altogether. Now
7356 obj?/?? is used for inspecting objects, a magic @doc prints
7358 obj?/?? is used for inspecting objects, a magic @doc prints
7357 docstrings, and full-blown Python help is accessed via the 'help'
7359 docstrings, and full-blown Python help is accessed via the 'help'
7358 keyword. This cleans up a lot of code (less to maintain) and does
7360 keyword. This cleans up a lot of code (less to maintain) and does
7359 the job. Since 'help' is now a standard Python component, might as
7361 the job. Since 'help' is now a standard Python component, might as
7360 well use it and remove duplicate functionality.
7362 well use it and remove duplicate functionality.
7361
7363
7362 Also removed the option to use ipplib as a standalone program. By
7364 Also removed the option to use ipplib as a standalone program. By
7363 now it's too dependent on other parts of IPython to function alone.
7365 now it's too dependent on other parts of IPython to function alone.
7364
7366
7365 * Fixed bug in genutils.pager. It would crash if the pager was
7367 * Fixed bug in genutils.pager. It would crash if the pager was
7366 exited immediately after opening (broken pipe).
7368 exited immediately after opening (broken pipe).
7367
7369
7368 * Trimmed down the VerboseTB reporting a little. The header is
7370 * Trimmed down the VerboseTB reporting a little. The header is
7369 much shorter now and the repeated exception arguments at the end
7371 much shorter now and the repeated exception arguments at the end
7370 have been removed. For interactive use the old header seemed a bit
7372 have been removed. For interactive use the old header seemed a bit
7371 excessive.
7373 excessive.
7372
7374
7373 * Fixed small bug in output of @whos for variables with multi-word
7375 * Fixed small bug in output of @whos for variables with multi-word
7374 types (only first word was displayed).
7376 types (only first word was displayed).
7375
7377
7376 2001-11-17 Fernando Perez <fperez@colorado.edu>
7378 2001-11-17 Fernando Perez <fperez@colorado.edu>
7377
7379
7378 * Version 0.1.10 released, 0.1.11 opened for further work.
7380 * Version 0.1.10 released, 0.1.11 opened for further work.
7379
7381
7380 * Modified dirs and friends. dirs now *returns* the stack (not
7382 * Modified dirs and friends. dirs now *returns* the stack (not
7381 prints), so one can manipulate it as a variable. Convenient to
7383 prints), so one can manipulate it as a variable. Convenient to
7382 travel along many directories.
7384 travel along many directories.
7383
7385
7384 * Fixed bug in magic_pdef: would only work with functions with
7386 * Fixed bug in magic_pdef: would only work with functions with
7385 arguments with default values.
7387 arguments with default values.
7386
7388
7387 2001-11-14 Fernando Perez <fperez@colorado.edu>
7389 2001-11-14 Fernando Perez <fperez@colorado.edu>
7388
7390
7389 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7391 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7390 example with IPython. Various other minor fixes and cleanups.
7392 example with IPython. Various other minor fixes and cleanups.
7391
7393
7392 * Version 0.1.9 released, 0.1.10 opened for further work.
7394 * Version 0.1.9 released, 0.1.10 opened for further work.
7393
7395
7394 * Added sys.path to the list of directories searched in the
7396 * Added sys.path to the list of directories searched in the
7395 execfile= option. It used to be the current directory and the
7397 execfile= option. It used to be the current directory and the
7396 user's IPYTHONDIR only.
7398 user's IPYTHONDIR only.
7397
7399
7398 2001-11-13 Fernando Perez <fperez@colorado.edu>
7400 2001-11-13 Fernando Perez <fperez@colorado.edu>
7399
7401
7400 * Reinstated the raw_input/prefilter separation that Janko had
7402 * Reinstated the raw_input/prefilter separation that Janko had
7401 initially. This gives a more convenient setup for extending the
7403 initially. This gives a more convenient setup for extending the
7402 pre-processor from the outside: raw_input always gets a string,
7404 pre-processor from the outside: raw_input always gets a string,
7403 and prefilter has to process it. We can then redefine prefilter
7405 and prefilter has to process it. We can then redefine prefilter
7404 from the outside and implement extensions for special
7406 from the outside and implement extensions for special
7405 purposes.
7407 purposes.
7406
7408
7407 Today I got one for inputting PhysicalQuantity objects
7409 Today I got one for inputting PhysicalQuantity objects
7408 (from Scientific) without needing any function calls at
7410 (from Scientific) without needing any function calls at
7409 all. Extremely convenient, and it's all done as a user-level
7411 all. Extremely convenient, and it's all done as a user-level
7410 extension (no IPython code was touched). Now instead of:
7412 extension (no IPython code was touched). Now instead of:
7411 a = PhysicalQuantity(4.2,'m/s**2')
7413 a = PhysicalQuantity(4.2,'m/s**2')
7412 one can simply say
7414 one can simply say
7413 a = 4.2 m/s**2
7415 a = 4.2 m/s**2
7414 or even
7416 or even
7415 a = 4.2 m/s^2
7417 a = 4.2 m/s^2
7416
7418
7417 I use this, but it's also a proof of concept: IPython really is
7419 I use this, but it's also a proof of concept: IPython really is
7418 fully user-extensible, even at the level of the parsing of the
7420 fully user-extensible, even at the level of the parsing of the
7419 command line. It's not trivial, but it's perfectly doable.
7421 command line. It's not trivial, but it's perfectly doable.
7420
7422
7421 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7423 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7422 the problem of modules being loaded in the inverse order in which
7424 the problem of modules being loaded in the inverse order in which
7423 they were defined in
7425 they were defined in
7424
7426
7425 * Version 0.1.8 released, 0.1.9 opened for further work.
7427 * Version 0.1.8 released, 0.1.9 opened for further work.
7426
7428
7427 * Added magics pdef, source and file. They respectively show the
7429 * Added magics pdef, source and file. They respectively show the
7428 definition line ('prototype' in C), source code and full python
7430 definition line ('prototype' in C), source code and full python
7429 file for any callable object. The object inspector oinfo uses
7431 file for any callable object. The object inspector oinfo uses
7430 these to show the same information.
7432 these to show the same information.
7431
7433
7432 * Version 0.1.7 released, 0.1.8 opened for further work.
7434 * Version 0.1.7 released, 0.1.8 opened for further work.
7433
7435
7434 * Separated all the magic functions into a class called Magic. The
7436 * Separated all the magic functions into a class called Magic. The
7435 InteractiveShell class was becoming too big for Xemacs to handle
7437 InteractiveShell class was becoming too big for Xemacs to handle
7436 (de-indenting a line would lock it up for 10 seconds while it
7438 (de-indenting a line would lock it up for 10 seconds while it
7437 backtracked on the whole class!)
7439 backtracked on the whole class!)
7438
7440
7439 FIXME: didn't work. It can be done, but right now namespaces are
7441 FIXME: didn't work. It can be done, but right now namespaces are
7440 all messed up. Do it later (reverted it for now, so at least
7442 all messed up. Do it later (reverted it for now, so at least
7441 everything works as before).
7443 everything works as before).
7442
7444
7443 * Got the object introspection system (magic_oinfo) working! I
7445 * Got the object introspection system (magic_oinfo) working! I
7444 think this is pretty much ready for release to Janko, so he can
7446 think this is pretty much ready for release to Janko, so he can
7445 test it for a while and then announce it. Pretty much 100% of what
7447 test it for a while and then announce it. Pretty much 100% of what
7446 I wanted for the 'phase 1' release is ready. Happy, tired.
7448 I wanted for the 'phase 1' release is ready. Happy, tired.
7447
7449
7448 2001-11-12 Fernando Perez <fperez@colorado.edu>
7450 2001-11-12 Fernando Perez <fperez@colorado.edu>
7449
7451
7450 * Version 0.1.6 released, 0.1.7 opened for further work.
7452 * Version 0.1.6 released, 0.1.7 opened for further work.
7451
7453
7452 * Fixed bug in printing: it used to test for truth before
7454 * Fixed bug in printing: it used to test for truth before
7453 printing, so 0 wouldn't print. Now checks for None.
7455 printing, so 0 wouldn't print. Now checks for None.
7454
7456
7455 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7457 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7456 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7458 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7457 reaches by hand into the outputcache. Think of a better way to do
7459 reaches by hand into the outputcache. Think of a better way to do
7458 this later.
7460 this later.
7459
7461
7460 * Various small fixes thanks to Nathan's comments.
7462 * Various small fixes thanks to Nathan's comments.
7461
7463
7462 * Changed magic_pprint to magic_Pprint. This way it doesn't
7464 * Changed magic_pprint to magic_Pprint. This way it doesn't
7463 collide with pprint() and the name is consistent with the command
7465 collide with pprint() and the name is consistent with the command
7464 line option.
7466 line option.
7465
7467
7466 * Changed prompt counter behavior to be fully like
7468 * Changed prompt counter behavior to be fully like
7467 Mathematica's. That is, even input that doesn't return a result
7469 Mathematica's. That is, even input that doesn't return a result
7468 raises the prompt counter. The old behavior was kind of confusing
7470 raises the prompt counter. The old behavior was kind of confusing
7469 (getting the same prompt number several times if the operation
7471 (getting the same prompt number several times if the operation
7470 didn't return a result).
7472 didn't return a result).
7471
7473
7472 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7474 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7473
7475
7474 * Fixed -Classic mode (wasn't working anymore).
7476 * Fixed -Classic mode (wasn't working anymore).
7475
7477
7476 * Added colored prompts using Nathan's new code. Colors are
7478 * Added colored prompts using Nathan's new code. Colors are
7477 currently hardwired, they can be user-configurable. For
7479 currently hardwired, they can be user-configurable. For
7478 developers, they can be chosen in file ipythonlib.py, at the
7480 developers, they can be chosen in file ipythonlib.py, at the
7479 beginning of the CachedOutput class def.
7481 beginning of the CachedOutput class def.
7480
7482
7481 2001-11-11 Fernando Perez <fperez@colorado.edu>
7483 2001-11-11 Fernando Perez <fperez@colorado.edu>
7482
7484
7483 * Version 0.1.5 released, 0.1.6 opened for further work.
7485 * Version 0.1.5 released, 0.1.6 opened for further work.
7484
7486
7485 * Changed magic_env to *return* the environment as a dict (not to
7487 * Changed magic_env to *return* the environment as a dict (not to
7486 print it). This way it prints, but it can also be processed.
7488 print it). This way it prints, but it can also be processed.
7487
7489
7488 * Added Verbose exception reporting to interactive
7490 * Added Verbose exception reporting to interactive
7489 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7491 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7490 traceback. Had to make some changes to the ultraTB file. This is
7492 traceback. Had to make some changes to the ultraTB file. This is
7491 probably the last 'big' thing in my mental todo list. This ties
7493 probably the last 'big' thing in my mental todo list. This ties
7492 in with the next entry:
7494 in with the next entry:
7493
7495
7494 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7496 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7495 has to specify is Plain, Color or Verbose for all exception
7497 has to specify is Plain, Color or Verbose for all exception
7496 handling.
7498 handling.
7497
7499
7498 * Removed ShellServices option. All this can really be done via
7500 * Removed ShellServices option. All this can really be done via
7499 the magic system. It's easier to extend, cleaner and has automatic
7501 the magic system. It's easier to extend, cleaner and has automatic
7500 namespace protection and documentation.
7502 namespace protection and documentation.
7501
7503
7502 2001-11-09 Fernando Perez <fperez@colorado.edu>
7504 2001-11-09 Fernando Perez <fperez@colorado.edu>
7503
7505
7504 * Fixed bug in output cache flushing (missing parameter to
7506 * Fixed bug in output cache flushing (missing parameter to
7505 __init__). Other small bugs fixed (found using pychecker).
7507 __init__). Other small bugs fixed (found using pychecker).
7506
7508
7507 * Version 0.1.4 opened for bugfixing.
7509 * Version 0.1.4 opened for bugfixing.
7508
7510
7509 2001-11-07 Fernando Perez <fperez@colorado.edu>
7511 2001-11-07 Fernando Perez <fperez@colorado.edu>
7510
7512
7511 * Version 0.1.3 released, mainly because of the raw_input bug.
7513 * Version 0.1.3 released, mainly because of the raw_input bug.
7512
7514
7513 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7515 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7514 and when testing for whether things were callable, a call could
7516 and when testing for whether things were callable, a call could
7515 actually be made to certain functions. They would get called again
7517 actually be made to certain functions. They would get called again
7516 once 'really' executed, with a resulting double call. A disaster
7518 once 'really' executed, with a resulting double call. A disaster
7517 in many cases (list.reverse() would never work!).
7519 in many cases (list.reverse() would never work!).
7518
7520
7519 * Removed prefilter() function, moved its code to raw_input (which
7521 * Removed prefilter() function, moved its code to raw_input (which
7520 after all was just a near-empty caller for prefilter). This saves
7522 after all was just a near-empty caller for prefilter). This saves
7521 a function call on every prompt, and simplifies the class a tiny bit.
7523 a function call on every prompt, and simplifies the class a tiny bit.
7522
7524
7523 * Fix _ip to __ip name in magic example file.
7525 * Fix _ip to __ip name in magic example file.
7524
7526
7525 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7527 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7526 work with non-gnu versions of tar.
7528 work with non-gnu versions of tar.
7527
7529
7528 2001-11-06 Fernando Perez <fperez@colorado.edu>
7530 2001-11-06 Fernando Perez <fperez@colorado.edu>
7529
7531
7530 * Version 0.1.2. Just to keep track of the recent changes.
7532 * Version 0.1.2. Just to keep track of the recent changes.
7531
7533
7532 * Fixed nasty bug in output prompt routine. It used to check 'if
7534 * Fixed nasty bug in output prompt routine. It used to check 'if
7533 arg != None...'. Problem is, this fails if arg implements a
7535 arg != None...'. Problem is, this fails if arg implements a
7534 special comparison (__cmp__) which disallows comparing to
7536 special comparison (__cmp__) which disallows comparing to
7535 None. Found it when trying to use the PhysicalQuantity module from
7537 None. Found it when trying to use the PhysicalQuantity module from
7536 ScientificPython.
7538 ScientificPython.
7537
7539
7538 2001-11-05 Fernando Perez <fperez@colorado.edu>
7540 2001-11-05 Fernando Perez <fperez@colorado.edu>
7539
7541
7540 * Also added dirs. Now the pushd/popd/dirs family functions
7542 * Also added dirs. Now the pushd/popd/dirs family functions
7541 basically like the shell, with the added convenience of going home
7543 basically like the shell, with the added convenience of going home
7542 when called with no args.
7544 when called with no args.
7543
7545
7544 * pushd/popd slightly modified to mimic shell behavior more
7546 * pushd/popd slightly modified to mimic shell behavior more
7545 closely.
7547 closely.
7546
7548
7547 * Added env,pushd,popd from ShellServices as magic functions. I
7549 * Added env,pushd,popd from ShellServices as magic functions. I
7548 think the cleanest will be to port all desired functions from
7550 think the cleanest will be to port all desired functions from
7549 ShellServices as magics and remove ShellServices altogether. This
7551 ShellServices as magics and remove ShellServices altogether. This
7550 will provide a single, clean way of adding functionality
7552 will provide a single, clean way of adding functionality
7551 (shell-type or otherwise) to IP.
7553 (shell-type or otherwise) to IP.
7552
7554
7553 2001-11-04 Fernando Perez <fperez@colorado.edu>
7555 2001-11-04 Fernando Perez <fperez@colorado.edu>
7554
7556
7555 * Added .ipython/ directory to sys.path. This way users can keep
7557 * Added .ipython/ directory to sys.path. This way users can keep
7556 customizations there and access them via import.
7558 customizations there and access them via import.
7557
7559
7558 2001-11-03 Fernando Perez <fperez@colorado.edu>
7560 2001-11-03 Fernando Perez <fperez@colorado.edu>
7559
7561
7560 * Opened version 0.1.1 for new changes.
7562 * Opened version 0.1.1 for new changes.
7561
7563
7562 * Changed version number to 0.1.0: first 'public' release, sent to
7564 * Changed version number to 0.1.0: first 'public' release, sent to
7563 Nathan and Janko.
7565 Nathan and Janko.
7564
7566
7565 * Lots of small fixes and tweaks.
7567 * Lots of small fixes and tweaks.
7566
7568
7567 * Minor changes to whos format. Now strings are shown, snipped if
7569 * Minor changes to whos format. Now strings are shown, snipped if
7568 too long.
7570 too long.
7569
7571
7570 * Changed ShellServices to work on __main__ so they show up in @who
7572 * Changed ShellServices to work on __main__ so they show up in @who
7571
7573
7572 * Help also works with ? at the end of a line:
7574 * Help also works with ? at the end of a line:
7573 ?sin and sin?
7575 ?sin and sin?
7574 both produce the same effect. This is nice, as often I use the
7576 both produce the same effect. This is nice, as often I use the
7575 tab-complete to find the name of a method, but I used to then have
7577 tab-complete to find the name of a method, but I used to then have
7576 to go to the beginning of the line to put a ? if I wanted more
7578 to go to the beginning of the line to put a ? if I wanted more
7577 info. Now I can just add the ? and hit return. Convenient.
7579 info. Now I can just add the ? and hit return. Convenient.
7578
7580
7579 2001-11-02 Fernando Perez <fperez@colorado.edu>
7581 2001-11-02 Fernando Perez <fperez@colorado.edu>
7580
7582
7581 * Python version check (>=2.1) added.
7583 * Python version check (>=2.1) added.
7582
7584
7583 * Added LazyPython documentation. At this point the docs are quite
7585 * Added LazyPython documentation. At this point the docs are quite
7584 a mess. A cleanup is in order.
7586 a mess. A cleanup is in order.
7585
7587
7586 * Auto-installer created. For some bizarre reason, the zipfiles
7588 * Auto-installer created. For some bizarre reason, the zipfiles
7587 module isn't working on my system. So I made a tar version
7589 module isn't working on my system. So I made a tar version
7588 (hopefully the command line options in various systems won't kill
7590 (hopefully the command line options in various systems won't kill
7589 me).
7591 me).
7590
7592
7591 * Fixes to Struct in genutils. Now all dictionary-like methods are
7593 * Fixes to Struct in genutils. Now all dictionary-like methods are
7592 protected (reasonably).
7594 protected (reasonably).
7593
7595
7594 * Added pager function to genutils and changed ? to print usage
7596 * Added pager function to genutils and changed ? to print usage
7595 note through it (it was too long).
7597 note through it (it was too long).
7596
7598
7597 * Added the LazyPython functionality. Works great! I changed the
7599 * Added the LazyPython functionality. Works great! I changed the
7598 auto-quote escape to ';', it's on home row and next to '. But
7600 auto-quote escape to ';', it's on home row and next to '. But
7599 both auto-quote and auto-paren (still /) escapes are command-line
7601 both auto-quote and auto-paren (still /) escapes are command-line
7600 parameters.
7602 parameters.
7601
7603
7602
7604
7603 2001-11-01 Fernando Perez <fperez@colorado.edu>
7605 2001-11-01 Fernando Perez <fperez@colorado.edu>
7604
7606
7605 * Version changed to 0.0.7. Fairly large change: configuration now
7607 * Version changed to 0.0.7. Fairly large change: configuration now
7606 is all stored in a directory, by default .ipython. There, all
7608 is all stored in a directory, by default .ipython. There, all
7607 config files have normal looking names (not .names)
7609 config files have normal looking names (not .names)
7608
7610
7609 * Version 0.0.6 Released first to Lucas and Archie as a test
7611 * Version 0.0.6 Released first to Lucas and Archie as a test
7610 run. Since it's the first 'semi-public' release, change version to
7612 run. Since it's the first 'semi-public' release, change version to
7611 > 0.0.6 for any changes now.
7613 > 0.0.6 for any changes now.
7612
7614
7613 * Stuff I had put in the ipplib.py changelog:
7615 * Stuff I had put in the ipplib.py changelog:
7614
7616
7615 Changes to InteractiveShell:
7617 Changes to InteractiveShell:
7616
7618
7617 - Made the usage message a parameter.
7619 - Made the usage message a parameter.
7618
7620
7619 - Require the name of the shell variable to be given. It's a bit
7621 - Require the name of the shell variable to be given. It's a bit
7620 of a hack, but allows the name 'shell' not to be hardwired in the
7622 of a hack, but allows the name 'shell' not to be hardwired in the
7621 magic (@) handler, which is problematic b/c it requires
7623 magic (@) handler, which is problematic b/c it requires
7622 polluting the global namespace with 'shell'. This in turn is
7624 polluting the global namespace with 'shell'. This in turn is
7623 fragile: if a user redefines a variable called shell, things
7625 fragile: if a user redefines a variable called shell, things
7624 break.
7626 break.
7625
7627
7626 - magic @: all functions available through @ need to be defined
7628 - magic @: all functions available through @ need to be defined
7627 as magic_<name>, even though they can be called simply as
7629 as magic_<name>, even though they can be called simply as
7628 @<name>. This allows the special command @magic to gather
7630 @<name>. This allows the special command @magic to gather
7629 information automatically about all existing magic functions,
7631 information automatically about all existing magic functions,
7630 even if they are run-time user extensions, by parsing the shell
7632 even if they are run-time user extensions, by parsing the shell
7631 instance __dict__ looking for special magic_ names.
7633 instance __dict__ looking for special magic_ names.
7632
7634
7633 - mainloop: added *two* local namespace parameters. This allows
7635 - mainloop: added *two* local namespace parameters. This allows
7634 the class to differentiate between parameters which were there
7636 the class to differentiate between parameters which were there
7635 before and after command line initialization was processed. This
7637 before and after command line initialization was processed. This
7636 way, later @who can show things loaded at startup by the
7638 way, later @who can show things loaded at startup by the
7637 user. This trick was necessary to make session saving/reloading
7639 user. This trick was necessary to make session saving/reloading
7638 really work: ideally after saving/exiting/reloading a session,
7640 really work: ideally after saving/exiting/reloading a session,
7639 *everything* should look the same, including the output of @who. I
7641 *everything* should look the same, including the output of @who. I
7640 was only able to make this work with this double namespace
7642 was only able to make this work with this double namespace
7641 trick.
7643 trick.
7642
7644
7643 - added a header to the logfile which allows (almost) full
7645 - added a header to the logfile which allows (almost) full
7644 session restoring.
7646 session restoring.
7645
7647
7646 - prepend lines beginning with @ or !, with a and log
7648 - prepend lines beginning with @ or !, with a and log
7647 them. Why? !lines: may be useful to know what you did @lines:
7649 them. Why? !lines: may be useful to know what you did @lines:
7648 they may affect session state. So when restoring a session, at
7650 they may affect session state. So when restoring a session, at
7649 least inform the user of their presence. I couldn't quite get
7651 least inform the user of their presence. I couldn't quite get
7650 them to properly re-execute, but at least the user is warned.
7652 them to properly re-execute, but at least the user is warned.
7651
7653
7652 * Started ChangeLog.
7654 * 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 *tgz | 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/ $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