##// END OF EJS Templates
Cleanup scipy profile for numpy use, after comments by Ryan.
fptest -
Show More
@@ -1,43 +1,35 b''
1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
1 # -*- Mode: Shell-Script -*- Not really, but shows comments correctly
2 #***************************************************************************
2 #***************************************************************************
3 #
3 #
4 # Configuration file for ipython -- ipythonrc format
4 # Configuration file for ipython -- ipythonrc format
5 #
5 #
6 # The format of this file is one of 'key value' lines.
6 # The format of this file is one of 'key value' lines.
7 # Lines containing only whitespace at the beginning and then a # are ignored
7 # Lines containing only whitespace at the beginning and then a # are ignored
8 # as comments. But comments can NOT be put on lines with data.
8 # as comments. But comments can NOT be put on lines with data.
9 #***************************************************************************
9 #***************************************************************************
10
10
11 # This is an example of a 'profile' file which includes a base file and adds
11 # This is an example of a 'profile' file which includes a base file and adds
12 # some customizaton for a particular purpose.
12 # some customizaton for a particular purpose.
13
13
14 # If this file is found in the user's ~/.ipython directory as ipythonrc-scipy,
14 # If this file is found in the user's ~/.ipython directory as ipythonrc-scipy,
15 # it can be loaded by calling passing the '-profile scipy' (or '-p scipy')
15 # it can be loaded by calling passing the '-profile scipy' (or '-p scipy')
16 # option to IPython.
16 # option to IPython.
17
17
18 # This example is meant to load several modules to turn ipython into a very
18 # This example is meant to load several modules to turn ipython into a very
19 # capable environment for high-end numerical work, similar to IDL or MatLab
19 # capable environment for high-end numerical work, similar to IDL or MatLab
20 # but with the beauty of the Python language.
20 # but with the beauty of the Python language.
21
21
22 # load our basic configuration with generic options
22 # load our basic configuration with generic options
23 include ipythonrc
23 include ipythonrc
24
24
25 # import ...
25 # import ...
26 # Load SciPy by itself so that 'help scipy' works
26 # Load Numpy an SciPy by themselves so that 'help' works on them
27 import_mod scipy
27 import_mod numpy scipy
28
28
29 # from ... import ...
29 # from ... import ...
30 import_some
30 import_some
31
31
32 # Now we load all of SciPy
32 # Now we load all of SciPy
33 # from ... import *
33 # from ... import *
34 import_all scipy IPython.numutils
34 import_all numpy
35
35 import_all scipy
36 # code
37 execute print 'Welcome to the SciPy Scientific Computing Environment.'
38 execute scipy.alter_numeric()
39
40 # File with alternate printer system for Numeric Arrays.
41 # Files in the 'Extensions' directory will be found by IPython automatically
42 # (otherwise give the explicit path):
43 execfile Extensions/numeric_formats.py
@@ -1,5830 +1,5833 b''
1 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
2
2
3 * IPython/UserConfig/ipythonrc-scipy: minor clenaups to remove old
4 Numeric leftovers.
5
3 * ipython.el (py-execute-region): apply Stefan's patch to fix
6 * ipython.el (py-execute-region): apply Stefan's patch to fix
4 garbled results if the python shell hasn't been previously started.
7 garbled results if the python shell hasn't been previously started.
5
8
6 * IPython/genutils.py (arg_split): moved to genutils, since it's a
9 * IPython/genutils.py (arg_split): moved to genutils, since it's a
7 pretty generic function and useful for other things.
10 pretty generic function and useful for other things.
8
11
9 * IPython/OInspect.py (getsource): Add customizable source
12 * IPython/OInspect.py (getsource): Add customizable source
10 extractor. After a request/patch form W. Stein (SAGE).
13 extractor. After a request/patch form W. Stein (SAGE).
11
14
12 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
15 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
13 window size to a more reasonable value from what pexpect does,
16 window size to a more reasonable value from what pexpect does,
14 since their choice causes wrapping bugs with long input lines.
17 since their choice causes wrapping bugs with long input lines.
15
18
16 2006-10-28 Ville Vainio <vivainio@gmail.com>
19 2006-10-28 Ville Vainio <vivainio@gmail.com>
17
20
18 * Magic.py (%run): Save and restore the readline history from
21 * Magic.py (%run): Save and restore the readline history from
19 file around %run commands to prevent side effects from
22 file around %run commands to prevent side effects from
20 %runned programs that might use readline (e.g. pydb).
23 %runned programs that might use readline (e.g. pydb).
21
24
22 * extensions/pydb_ipy.py: Adds %pydb magic when imported, for
25 * extensions/pydb_ipy.py: Adds %pydb magic when imported, for
23 invoking the pydb enhanced debugger.
26 invoking the pydb enhanced debugger.
24
27
25 2006-10-23 Walter Doerwald <walter@livinglogic.de>
28 2006-10-23 Walter Doerwald <walter@livinglogic.de>
26
29
27 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
30 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
28 call the base class method and propagate the return value to
31 call the base class method and propagate the return value to
29 ifile. This is now done by path itself.
32 ifile. This is now done by path itself.
30
33
31 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
34 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
32
35
33 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
36 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
34 api: set_crash_handler(), to expose the ability to change the
37 api: set_crash_handler(), to expose the ability to change the
35 internal crash handler.
38 internal crash handler.
36
39
37 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
40 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
38 the various parameters of the crash handler so that apps using
41 the various parameters of the crash handler so that apps using
39 IPython as their engine can customize crash handling. Ipmlemented
42 IPython as their engine can customize crash handling. Ipmlemented
40 at the request of SAGE.
43 at the request of SAGE.
41
44
42 2006-10-14 Ville Vainio <vivainio@gmail.com>
45 2006-10-14 Ville Vainio <vivainio@gmail.com>
43
46
44 * Magic.py, ipython.el: applied first "safe" part of Rocky
47 * Magic.py, ipython.el: applied first "safe" part of Rocky
45 Bernstein's patch set for pydb integration.
48 Bernstein's patch set for pydb integration.
46
49
47 * Magic.py (%unalias, %alias): %store'd aliases can now be
50 * Magic.py (%unalias, %alias): %store'd aliases can now be
48 removed with '%unalias'. %alias w/o args now shows most
51 removed with '%unalias'. %alias w/o args now shows most
49 interesting (stored / manually defined) aliases last
52 interesting (stored / manually defined) aliases last
50 where they catch the eye w/o scrolling.
53 where they catch the eye w/o scrolling.
51
54
52 * Magic.py (%rehashx), ext_rehashdir.py: files with
55 * Magic.py (%rehashx), ext_rehashdir.py: files with
53 'py' extension are always considered executable, even
56 'py' extension are always considered executable, even
54 when not in PATHEXT environment variable.
57 when not in PATHEXT environment variable.
55
58
56 2006-10-12 Ville Vainio <vivainio@gmail.com>
59 2006-10-12 Ville Vainio <vivainio@gmail.com>
57
60
58 * jobctrl.py: Add new "jobctrl" extension for spawning background
61 * jobctrl.py: Add new "jobctrl" extension for spawning background
59 processes with "&find /". 'import jobctrl' to try it out. Requires
62 processes with "&find /". 'import jobctrl' to try it out. Requires
60 'subprocess' module, standard in python 2.4+.
63 'subprocess' module, standard in python 2.4+.
61
64
62 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
65 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
63 so if foo -> bar and bar -> baz, then foo -> baz.
66 so if foo -> bar and bar -> baz, then foo -> baz.
64
67
65 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
68 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
66
69
67 * IPython/Magic.py (Magic.parse_options): add a new posix option
70 * IPython/Magic.py (Magic.parse_options): add a new posix option
68 to allow parsing of input args in magics that doesn't strip quotes
71 to allow parsing of input args in magics that doesn't strip quotes
69 (if posix=False). This also closes %timeit bug reported by
72 (if posix=False). This also closes %timeit bug reported by
70 Stefan.
73 Stefan.
71
74
72 2006-10-03 Ville Vainio <vivainio@gmail.com>
75 2006-10-03 Ville Vainio <vivainio@gmail.com>
73
76
74 * iplib.py (raw_input, interact): Return ValueError catching for
77 * iplib.py (raw_input, interact): Return ValueError catching for
75 raw_input. Fixes infinite loop for sys.stdin.close() or
78 raw_input. Fixes infinite loop for sys.stdin.close() or
76 sys.stdout.close().
79 sys.stdout.close().
77
80
78 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
81 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
79
82
80 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
83 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
81 to help in handling doctests. irunner is now pretty useful for
84 to help in handling doctests. irunner is now pretty useful for
82 running standalone scripts and simulate a full interactive session
85 running standalone scripts and simulate a full interactive session
83 in a format that can be then pasted as a doctest.
86 in a format that can be then pasted as a doctest.
84
87
85 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
88 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
86 on top of the default (useless) ones. This also fixes the nasty
89 on top of the default (useless) ones. This also fixes the nasty
87 way in which 2.5's Quitter() exits (reverted [1785]).
90 way in which 2.5's Quitter() exits (reverted [1785]).
88
91
89 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
92 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
90 2.5.
93 2.5.
91
94
92 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
95 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
93 color scheme is updated as well when color scheme is changed
96 color scheme is updated as well when color scheme is changed
94 interactively.
97 interactively.
95
98
96 2006-09-27 Ville Vainio <vivainio@gmail.com>
99 2006-09-27 Ville Vainio <vivainio@gmail.com>
97
100
98 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
101 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
99 infinite loop and just exit. It's a hack, but will do for a while.
102 infinite loop and just exit. It's a hack, but will do for a while.
100
103
101 2006-08-25 Walter Doerwald <walter@livinglogic.de>
104 2006-08-25 Walter Doerwald <walter@livinglogic.de>
102
105
103 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
106 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
104 the constructor, this makes it possible to get a list of only directories
107 the constructor, this makes it possible to get a list of only directories
105 or only files.
108 or only files.
106
109
107 2006-08-12 Ville Vainio <vivainio@gmail.com>
110 2006-08-12 Ville Vainio <vivainio@gmail.com>
108
111
109 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
112 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
110 they broke unittest
113 they broke unittest
111
114
112 2006-08-11 Ville Vainio <vivainio@gmail.com>
115 2006-08-11 Ville Vainio <vivainio@gmail.com>
113
116
114 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
117 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
115 by resolving issue properly, i.e. by inheriting FakeModule
118 by resolving issue properly, i.e. by inheriting FakeModule
116 from types.ModuleType. Pickling ipython interactive data
119 from types.ModuleType. Pickling ipython interactive data
117 should still work as usual (testing appreciated).
120 should still work as usual (testing appreciated).
118
121
119 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
122 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
120
123
121 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
124 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
122 running under python 2.3 with code from 2.4 to fix a bug with
125 running under python 2.3 with code from 2.4 to fix a bug with
123 help(). Reported by the Debian maintainers, Norbert Tretkowski
126 help(). Reported by the Debian maintainers, Norbert Tretkowski
124 <norbert-AT-tretkowski.de> and Alexandre Fayolle
127 <norbert-AT-tretkowski.de> and Alexandre Fayolle
125 <afayolle-AT-debian.org>.
128 <afayolle-AT-debian.org>.
126
129
127 2006-08-04 Walter Doerwald <walter@livinglogic.de>
130 2006-08-04 Walter Doerwald <walter@livinglogic.de>
128
131
129 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
132 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
130 (which was displaying "quit" twice).
133 (which was displaying "quit" twice).
131
134
132 2006-07-28 Walter Doerwald <walter@livinglogic.de>
135 2006-07-28 Walter Doerwald <walter@livinglogic.de>
133
136
134 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
137 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
135 the mode argument).
138 the mode argument).
136
139
137 2006-07-27 Walter Doerwald <walter@livinglogic.de>
140 2006-07-27 Walter Doerwald <walter@livinglogic.de>
138
141
139 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
142 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
140 not running under IPython.
143 not running under IPython.
141
144
142 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
145 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
143 and make it iterable (iterating over the attribute itself). Add two new
146 and make it iterable (iterating over the attribute itself). Add two new
144 magic strings for __xattrs__(): If the string starts with "-", the attribute
147 magic strings for __xattrs__(): If the string starts with "-", the attribute
145 will not be displayed in ibrowse's detail view (but it can still be
148 will not be displayed in ibrowse's detail view (but it can still be
146 iterated over). This makes it possible to add attributes that are large
149 iterated over). This makes it possible to add attributes that are large
147 lists or generator methods to the detail view. Replace magic attribute names
150 lists or generator methods to the detail view. Replace magic attribute names
148 and _attrname() and _getattr() with "descriptors": For each type of magic
151 and _attrname() and _getattr() with "descriptors": For each type of magic
149 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
152 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
150 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
153 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
151 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
154 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
152 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
155 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
153 are still supported.
156 are still supported.
154
157
155 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
158 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
156 fails in ibrowse.fetch(), the exception object is added as the last item
159 fails in ibrowse.fetch(), the exception object is added as the last item
157 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
160 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
158 a generator throws an exception midway through execution.
161 a generator throws an exception midway through execution.
159
162
160 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
163 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
161 encoding into methods.
164 encoding into methods.
162
165
163 2006-07-26 Ville Vainio <vivainio@gmail.com>
166 2006-07-26 Ville Vainio <vivainio@gmail.com>
164
167
165 * iplib.py: history now stores multiline input as single
168 * iplib.py: history now stores multiline input as single
166 history entries. Patch by Jorgen Cederlof.
169 history entries. Patch by Jorgen Cederlof.
167
170
168 2006-07-18 Walter Doerwald <walter@livinglogic.de>
171 2006-07-18 Walter Doerwald <walter@livinglogic.de>
169
172
170 * IPython/Extensions/ibrowse.py: Make cursor visible over
173 * IPython/Extensions/ibrowse.py: Make cursor visible over
171 non existing attributes.
174 non existing attributes.
172
175
173 2006-07-14 Walter Doerwald <walter@livinglogic.de>
176 2006-07-14 Walter Doerwald <walter@livinglogic.de>
174
177
175 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
178 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
176 error output of the running command doesn't mess up the screen.
179 error output of the running command doesn't mess up the screen.
177
180
178 2006-07-13 Walter Doerwald <walter@livinglogic.de>
181 2006-07-13 Walter Doerwald <walter@livinglogic.de>
179
182
180 * IPython/Extensions/ipipe.py (isort): Make isort usable without
183 * IPython/Extensions/ipipe.py (isort): Make isort usable without
181 argument. This sorts the items themselves.
184 argument. This sorts the items themselves.
182
185
183 2006-07-12 Walter Doerwald <walter@livinglogic.de>
186 2006-07-12 Walter Doerwald <walter@livinglogic.de>
184
187
185 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
188 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
186 Compile expression strings into code objects. This should speed
189 Compile expression strings into code objects. This should speed
187 up ifilter and friends somewhat.
190 up ifilter and friends somewhat.
188
191
189 2006-07-08 Ville Vainio <vivainio@gmail.com>
192 2006-07-08 Ville Vainio <vivainio@gmail.com>
190
193
191 * Magic.py: %cpaste now strips > from the beginning of lines
194 * Magic.py: %cpaste now strips > from the beginning of lines
192 to ease pasting quoted code from emails. Contributed by
195 to ease pasting quoted code from emails. Contributed by
193 Stefan van der Walt.
196 Stefan van der Walt.
194
197
195 2006-06-29 Ville Vainio <vivainio@gmail.com>
198 2006-06-29 Ville Vainio <vivainio@gmail.com>
196
199
197 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
200 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
198 mode, patch contributed by Darren Dale. NEEDS TESTING!
201 mode, patch contributed by Darren Dale. NEEDS TESTING!
199
202
200 2006-06-28 Walter Doerwald <walter@livinglogic.de>
203 2006-06-28 Walter Doerwald <walter@livinglogic.de>
201
204
202 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
205 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
203 a blue background. Fix fetching new display rows when the browser
206 a blue background. Fix fetching new display rows when the browser
204 scrolls more than a screenful (e.g. by using the goto command).
207 scrolls more than a screenful (e.g. by using the goto command).
205
208
206 2006-06-27 Ville Vainio <vivainio@gmail.com>
209 2006-06-27 Ville Vainio <vivainio@gmail.com>
207
210
208 * Magic.py (_inspect, _ofind) Apply David Huard's
211 * Magic.py (_inspect, _ofind) Apply David Huard's
209 patch for displaying the correct docstring for 'property'
212 patch for displaying the correct docstring for 'property'
210 attributes.
213 attributes.
211
214
212 2006-06-23 Walter Doerwald <walter@livinglogic.de>
215 2006-06-23 Walter Doerwald <walter@livinglogic.de>
213
216
214 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
217 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
215 commands into the methods implementing them.
218 commands into the methods implementing them.
216
219
217 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
220 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
218
221
219 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
222 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
220 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
223 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
221 autoindent support was authored by Jin Liu.
224 autoindent support was authored by Jin Liu.
222
225
223 2006-06-22 Walter Doerwald <walter@livinglogic.de>
226 2006-06-22 Walter Doerwald <walter@livinglogic.de>
224
227
225 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
228 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
226 for keymaps with a custom class that simplifies handling.
229 for keymaps with a custom class that simplifies handling.
227
230
228 2006-06-19 Walter Doerwald <walter@livinglogic.de>
231 2006-06-19 Walter Doerwald <walter@livinglogic.de>
229
232
230 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
233 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
231 resizing. This requires Python 2.5 to work.
234 resizing. This requires Python 2.5 to work.
232
235
233 2006-06-16 Walter Doerwald <walter@livinglogic.de>
236 2006-06-16 Walter Doerwald <walter@livinglogic.de>
234
237
235 * IPython/Extensions/ibrowse.py: Add two new commands to
238 * IPython/Extensions/ibrowse.py: Add two new commands to
236 ibrowse: "hideattr" (mapped to "h") hides the attribute under
239 ibrowse: "hideattr" (mapped to "h") hides the attribute under
237 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
240 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
238 attributes again. Remapped the help command to "?". Display
241 attributes again. Remapped the help command to "?". Display
239 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
242 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
240 as keys for the "home" and "end" commands. Add three new commands
243 as keys for the "home" and "end" commands. Add three new commands
241 to the input mode for "find" and friends: "delend" (CTRL-K)
244 to the input mode for "find" and friends: "delend" (CTRL-K)
242 deletes to the end of line. "incsearchup" searches upwards in the
245 deletes to the end of line. "incsearchup" searches upwards in the
243 command history for an input that starts with the text before the cursor.
246 command history for an input that starts with the text before the cursor.
244 "incsearchdown" does the same downwards. Removed a bogus mapping of
247 "incsearchdown" does the same downwards. Removed a bogus mapping of
245 the x key to "delete".
248 the x key to "delete".
246
249
247 2006-06-15 Ville Vainio <vivainio@gmail.com>
250 2006-06-15 Ville Vainio <vivainio@gmail.com>
248
251
249 * iplib.py, hooks.py: Added new generate_prompt hook that can be
252 * iplib.py, hooks.py: Added new generate_prompt hook that can be
250 used to create prompts dynamically, instead of the "old" way of
253 used to create prompts dynamically, instead of the "old" way of
251 assigning "magic" strings to prompt_in1 and prompt_in2. The old
254 assigning "magic" strings to prompt_in1 and prompt_in2. The old
252 way still works (it's invoked by the default hook), of course.
255 way still works (it's invoked by the default hook), of course.
253
256
254 * Prompts.py: added generate_output_prompt hook for altering output
257 * Prompts.py: added generate_output_prompt hook for altering output
255 prompt
258 prompt
256
259
257 * Release.py: Changed version string to 0.7.3.svn.
260 * Release.py: Changed version string to 0.7.3.svn.
258
261
259 2006-06-15 Walter Doerwald <walter@livinglogic.de>
262 2006-06-15 Walter Doerwald <walter@livinglogic.de>
260
263
261 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
264 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
262 the call to fetch() always tries to fetch enough data for at least one
265 the call to fetch() always tries to fetch enough data for at least one
263 full screen. This makes it possible to simply call moveto(0,0,True) in
266 full screen. This makes it possible to simply call moveto(0,0,True) in
264 the constructor. Fix typos and removed the obsolete goto attribute.
267 the constructor. Fix typos and removed the obsolete goto attribute.
265
268
266 2006-06-12 Ville Vainio <vivainio@gmail.com>
269 2006-06-12 Ville Vainio <vivainio@gmail.com>
267
270
268 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
271 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
269 allowing $variable interpolation within multiline statements,
272 allowing $variable interpolation within multiline statements,
270 though so far only with "sh" profile for a testing period.
273 though so far only with "sh" profile for a testing period.
271 The patch also enables splitting long commands with \ but it
274 The patch also enables splitting long commands with \ but it
272 doesn't work properly yet.
275 doesn't work properly yet.
273
276
274 2006-06-12 Walter Doerwald <walter@livinglogic.de>
277 2006-06-12 Walter Doerwald <walter@livinglogic.de>
275
278
276 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
279 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
277 input history and the position of the cursor in the input history for
280 input history and the position of the cursor in the input history for
278 the find, findbackwards and goto command.
281 the find, findbackwards and goto command.
279
282
280 2006-06-10 Walter Doerwald <walter@livinglogic.de>
283 2006-06-10 Walter Doerwald <walter@livinglogic.de>
281
284
282 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
285 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
283 implements the basic functionality of browser commands that require
286 implements the basic functionality of browser commands that require
284 input. Reimplement the goto, find and findbackwards commands as
287 input. Reimplement the goto, find and findbackwards commands as
285 subclasses of _CommandInput. Add an input history and keymaps to those
288 subclasses of _CommandInput. Add an input history and keymaps to those
286 commands. Add "\r" as a keyboard shortcut for the enterdefault and
289 commands. Add "\r" as a keyboard shortcut for the enterdefault and
287 execute commands.
290 execute commands.
288
291
289 2006-06-07 Ville Vainio <vivainio@gmail.com>
292 2006-06-07 Ville Vainio <vivainio@gmail.com>
290
293
291 * iplib.py: ipython mybatch.ipy exits ipython immediately after
294 * iplib.py: ipython mybatch.ipy exits ipython immediately after
292 running the batch files instead of leaving the session open.
295 running the batch files instead of leaving the session open.
293
296
294 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
297 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
295
298
296 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
299 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
297 the original fix was incomplete. Patch submitted by W. Maier.
300 the original fix was incomplete. Patch submitted by W. Maier.
298
301
299 2006-06-07 Ville Vainio <vivainio@gmail.com>
302 2006-06-07 Ville Vainio <vivainio@gmail.com>
300
303
301 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
304 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
302 Confirmation prompts can be supressed by 'quiet' option.
305 Confirmation prompts can be supressed by 'quiet' option.
303 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
306 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
304
307
305 2006-06-06 *** Released version 0.7.2
308 2006-06-06 *** Released version 0.7.2
306
309
307 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
310 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
308
311
309 * IPython/Release.py (version): Made 0.7.2 final for release.
312 * IPython/Release.py (version): Made 0.7.2 final for release.
310 Repo tagged and release cut.
313 Repo tagged and release cut.
311
314
312 2006-06-05 Ville Vainio <vivainio@gmail.com>
315 2006-06-05 Ville Vainio <vivainio@gmail.com>
313
316
314 * Magic.py (magic_rehashx): Honor no_alias list earlier in
317 * Magic.py (magic_rehashx): Honor no_alias list earlier in
315 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
318 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
316
319
317 * upgrade_dir.py: try import 'path' module a bit harder
320 * upgrade_dir.py: try import 'path' module a bit harder
318 (for %upgrade)
321 (for %upgrade)
319
322
320 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
323 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
321
324
322 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
325 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
323 instead of looping 20 times.
326 instead of looping 20 times.
324
327
325 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
328 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
326 correctly at initialization time. Bug reported by Krishna Mohan
329 correctly at initialization time. Bug reported by Krishna Mohan
327 Gundu <gkmohan-AT-gmail.com> on the user list.
330 Gundu <gkmohan-AT-gmail.com> on the user list.
328
331
329 * IPython/Release.py (version): Mark 0.7.2 version to start
332 * IPython/Release.py (version): Mark 0.7.2 version to start
330 testing for release on 06/06.
333 testing for release on 06/06.
331
334
332 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
335 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
333
336
334 * scripts/irunner: thin script interface so users don't have to
337 * scripts/irunner: thin script interface so users don't have to
335 find the module and call it as an executable, since modules rarely
338 find the module and call it as an executable, since modules rarely
336 live in people's PATH.
339 live in people's PATH.
337
340
338 * IPython/irunner.py (InteractiveRunner.__init__): added
341 * IPython/irunner.py (InteractiveRunner.__init__): added
339 delaybeforesend attribute to control delays with newer versions of
342 delaybeforesend attribute to control delays with newer versions of
340 pexpect. Thanks to detailed help from pexpect's author, Noah
343 pexpect. Thanks to detailed help from pexpect's author, Noah
341 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
344 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
342 correctly (it works in NoColor mode).
345 correctly (it works in NoColor mode).
343
346
344 * IPython/iplib.py (handle_normal): fix nasty crash reported on
347 * IPython/iplib.py (handle_normal): fix nasty crash reported on
345 SAGE list, from improper log() calls.
348 SAGE list, from improper log() calls.
346
349
347 2006-05-31 Ville Vainio <vivainio@gmail.com>
350 2006-05-31 Ville Vainio <vivainio@gmail.com>
348
351
349 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
352 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
350 with args in parens to work correctly with dirs that have spaces.
353 with args in parens to work correctly with dirs that have spaces.
351
354
352 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
355 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
353
356
354 * IPython/Logger.py (Logger.logstart): add option to log raw input
357 * IPython/Logger.py (Logger.logstart): add option to log raw input
355 instead of the processed one. A -r flag was added to the
358 instead of the processed one. A -r flag was added to the
356 %logstart magic used for controlling logging.
359 %logstart magic used for controlling logging.
357
360
358 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
361 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
359
362
360 * IPython/iplib.py (InteractiveShell.__init__): add check for the
363 * IPython/iplib.py (InteractiveShell.__init__): add check for the
361 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
364 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
362 recognize the option. After a bug report by Will Maier. This
365 recognize the option. After a bug report by Will Maier. This
363 closes #64 (will do it after confirmation from W. Maier).
366 closes #64 (will do it after confirmation from W. Maier).
364
367
365 * IPython/irunner.py: New module to run scripts as if manually
368 * IPython/irunner.py: New module to run scripts as if manually
366 typed into an interactive environment, based on pexpect. After a
369 typed into an interactive environment, based on pexpect. After a
367 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
370 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
368 ipython-user list. Simple unittests in the tests/ directory.
371 ipython-user list. Simple unittests in the tests/ directory.
369
372
370 * tools/release: add Will Maier, OpenBSD port maintainer, to
373 * tools/release: add Will Maier, OpenBSD port maintainer, to
371 recepients list. We are now officially part of the OpenBSD ports:
374 recepients list. We are now officially part of the OpenBSD ports:
372 http://www.openbsd.org/ports.html ! Many thanks to Will for the
375 http://www.openbsd.org/ports.html ! Many thanks to Will for the
373 work.
376 work.
374
377
375 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
378 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
376
379
377 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
380 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
378 so that it doesn't break tkinter apps.
381 so that it doesn't break tkinter apps.
379
382
380 * IPython/iplib.py (_prefilter): fix bug where aliases would
383 * IPython/iplib.py (_prefilter): fix bug where aliases would
381 shadow variables when autocall was fully off. Reported by SAGE
384 shadow variables when autocall was fully off. Reported by SAGE
382 author William Stein.
385 author William Stein.
383
386
384 * IPython/OInspect.py (Inspector.__init__): add a flag to control
387 * IPython/OInspect.py (Inspector.__init__): add a flag to control
385 at what detail level strings are computed when foo? is requested.
388 at what detail level strings are computed when foo? is requested.
386 This allows users to ask for example that the string form of an
389 This allows users to ask for example that the string form of an
387 object is only computed when foo?? is called, or even never, by
390 object is only computed when foo?? is called, or even never, by
388 setting the object_info_string_level >= 2 in the configuration
391 setting the object_info_string_level >= 2 in the configuration
389 file. This new option has been added and documented. After a
392 file. This new option has been added and documented. After a
390 request by SAGE to be able to control the printing of very large
393 request by SAGE to be able to control the printing of very large
391 objects more easily.
394 objects more easily.
392
395
393 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
396 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
394
397
395 * IPython/ipmaker.py (make_IPython): remove the ipython call path
398 * IPython/ipmaker.py (make_IPython): remove the ipython call path
396 from sys.argv, to be 100% consistent with how Python itself works
399 from sys.argv, to be 100% consistent with how Python itself works
397 (as seen for example with python -i file.py). After a bug report
400 (as seen for example with python -i file.py). After a bug report
398 by Jeffrey Collins.
401 by Jeffrey Collins.
399
402
400 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
403 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
401 nasty bug which was preventing custom namespaces with -pylab,
404 nasty bug which was preventing custom namespaces with -pylab,
402 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
405 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
403 compatibility (long gone from mpl).
406 compatibility (long gone from mpl).
404
407
405 * IPython/ipapi.py (make_session): name change: create->make. We
408 * IPython/ipapi.py (make_session): name change: create->make. We
406 use make in other places (ipmaker,...), it's shorter and easier to
409 use make in other places (ipmaker,...), it's shorter and easier to
407 type and say, etc. I'm trying to clean things before 0.7.2 so
410 type and say, etc. I'm trying to clean things before 0.7.2 so
408 that I can keep things stable wrt to ipapi in the chainsaw branch.
411 that I can keep things stable wrt to ipapi in the chainsaw branch.
409
412
410 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
413 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
411 python-mode recognizes our debugger mode. Add support for
414 python-mode recognizes our debugger mode. Add support for
412 autoindent inside (X)emacs. After a patch sent in by Jin Liu
415 autoindent inside (X)emacs. After a patch sent in by Jin Liu
413 <m.liu.jin-AT-gmail.com> originally written by
416 <m.liu.jin-AT-gmail.com> originally written by
414 doxgen-AT-newsmth.net (with minor modifications for xemacs
417 doxgen-AT-newsmth.net (with minor modifications for xemacs
415 compatibility)
418 compatibility)
416
419
417 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
420 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
418 tracebacks when walking the stack so that the stack tracking system
421 tracebacks when walking the stack so that the stack tracking system
419 in emacs' python-mode can identify the frames correctly.
422 in emacs' python-mode can identify the frames correctly.
420
423
421 * IPython/ipmaker.py (make_IPython): make the internal (and
424 * IPython/ipmaker.py (make_IPython): make the internal (and
422 default config) autoedit_syntax value false by default. Too many
425 default config) autoedit_syntax value false by default. Too many
423 users have complained to me (both on and off-list) about problems
426 users have complained to me (both on and off-list) about problems
424 with this option being on by default, so I'm making it default to
427 with this option being on by default, so I'm making it default to
425 off. It can still be enabled by anyone via the usual mechanisms.
428 off. It can still be enabled by anyone via the usual mechanisms.
426
429
427 * IPython/completer.py (Completer.attr_matches): add support for
430 * IPython/completer.py (Completer.attr_matches): add support for
428 PyCrust-style _getAttributeNames magic method. Patch contributed
431 PyCrust-style _getAttributeNames magic method. Patch contributed
429 by <mscott-AT-goldenspud.com>. Closes #50.
432 by <mscott-AT-goldenspud.com>. Closes #50.
430
433
431 * IPython/iplib.py (InteractiveShell.__init__): remove the
434 * IPython/iplib.py (InteractiveShell.__init__): remove the
432 deletion of exit/quit from __builtin__, which can break
435 deletion of exit/quit from __builtin__, which can break
433 third-party tools like the Zope debugging console. The
436 third-party tools like the Zope debugging console. The
434 %exit/%quit magics remain. In general, it's probably a good idea
437 %exit/%quit magics remain. In general, it's probably a good idea
435 not to delete anything from __builtin__, since we never know what
438 not to delete anything from __builtin__, since we never know what
436 that will break. In any case, python now (for 2.5) will support
439 that will break. In any case, python now (for 2.5) will support
437 'real' exit/quit, so this issue is moot. Closes #55.
440 'real' exit/quit, so this issue is moot. Closes #55.
438
441
439 * IPython/genutils.py (with_obj): rename the 'with' function to
442 * IPython/genutils.py (with_obj): rename the 'with' function to
440 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
443 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
441 becomes a language keyword. Closes #53.
444 becomes a language keyword. Closes #53.
442
445
443 * IPython/FakeModule.py (FakeModule.__init__): add a proper
446 * IPython/FakeModule.py (FakeModule.__init__): add a proper
444 __file__ attribute to this so it fools more things into thinking
447 __file__ attribute to this so it fools more things into thinking
445 it is a real module. Closes #59.
448 it is a real module. Closes #59.
446
449
447 * IPython/Magic.py (magic_edit): add -n option to open the editor
450 * IPython/Magic.py (magic_edit): add -n option to open the editor
448 at a specific line number. After a patch by Stefan van der Walt.
451 at a specific line number. After a patch by Stefan van der Walt.
449
452
450 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
453 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
451
454
452 * IPython/iplib.py (edit_syntax_error): fix crash when for some
455 * IPython/iplib.py (edit_syntax_error): fix crash when for some
453 reason the file could not be opened. After automatic crash
456 reason the file could not be opened. After automatic crash
454 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
457 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
455 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
458 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
456 (_should_recompile): Don't fire editor if using %bg, since there
459 (_should_recompile): Don't fire editor if using %bg, since there
457 is no file in the first place. From the same report as above.
460 is no file in the first place. From the same report as above.
458 (raw_input): protect against faulty third-party prefilters. After
461 (raw_input): protect against faulty third-party prefilters. After
459 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
462 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
460 while running under SAGE.
463 while running under SAGE.
461
464
462 2006-05-23 Ville Vainio <vivainio@gmail.com>
465 2006-05-23 Ville Vainio <vivainio@gmail.com>
463
466
464 * ipapi.py: Stripped down ip.to_user_ns() to work only as
467 * ipapi.py: Stripped down ip.to_user_ns() to work only as
465 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
468 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
466 now returns None (again), unless dummy is specifically allowed by
469 now returns None (again), unless dummy is specifically allowed by
467 ipapi.get(allow_dummy=True).
470 ipapi.get(allow_dummy=True).
468
471
469 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
472 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
470
473
471 * IPython: remove all 2.2-compatibility objects and hacks from
474 * IPython: remove all 2.2-compatibility objects and hacks from
472 everywhere, since we only support 2.3 at this point. Docs
475 everywhere, since we only support 2.3 at this point. Docs
473 updated.
476 updated.
474
477
475 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
478 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
476 Anything requiring extra validation can be turned into a Python
479 Anything requiring extra validation can be turned into a Python
477 property in the future. I used a property for the db one b/c
480 property in the future. I used a property for the db one b/c
478 there was a nasty circularity problem with the initialization
481 there was a nasty circularity problem with the initialization
479 order, which right now I don't have time to clean up.
482 order, which right now I don't have time to clean up.
480
483
481 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
484 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
482 another locking bug reported by Jorgen. I'm not 100% sure though,
485 another locking bug reported by Jorgen. I'm not 100% sure though,
483 so more testing is needed...
486 so more testing is needed...
484
487
485 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
488 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
486
489
487 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
490 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
488 local variables from any routine in user code (typically executed
491 local variables from any routine in user code (typically executed
489 with %run) directly into the interactive namespace. Very useful
492 with %run) directly into the interactive namespace. Very useful
490 when doing complex debugging.
493 when doing complex debugging.
491 (IPythonNotRunning): Changed the default None object to a dummy
494 (IPythonNotRunning): Changed the default None object to a dummy
492 whose attributes can be queried as well as called without
495 whose attributes can be queried as well as called without
493 exploding, to ease writing code which works transparently both in
496 exploding, to ease writing code which works transparently both in
494 and out of ipython and uses some of this API.
497 and out of ipython and uses some of this API.
495
498
496 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
499 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
497
500
498 * IPython/hooks.py (result_display): Fix the fact that our display
501 * IPython/hooks.py (result_display): Fix the fact that our display
499 hook was using str() instead of repr(), as the default python
502 hook was using str() instead of repr(), as the default python
500 console does. This had gone unnoticed b/c it only happened if
503 console does. This had gone unnoticed b/c it only happened if
501 %Pprint was off, but the inconsistency was there.
504 %Pprint was off, but the inconsistency was there.
502
505
503 2006-05-15 Ville Vainio <vivainio@gmail.com>
506 2006-05-15 Ville Vainio <vivainio@gmail.com>
504
507
505 * Oinspect.py: Only show docstring for nonexisting/binary files
508 * Oinspect.py: Only show docstring for nonexisting/binary files
506 when doing object??, closing ticket #62
509 when doing object??, closing ticket #62
507
510
508 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
511 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
509
512
510 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
513 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
511 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
514 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
512 was being released in a routine which hadn't checked if it had
515 was being released in a routine which hadn't checked if it had
513 been the one to acquire it.
516 been the one to acquire it.
514
517
515 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
518 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
516
519
517 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
520 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
518
521
519 2006-04-11 Ville Vainio <vivainio@gmail.com>
522 2006-04-11 Ville Vainio <vivainio@gmail.com>
520
523
521 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
524 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
522 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
525 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
523 prefilters, allowing stuff like magics and aliases in the file.
526 prefilters, allowing stuff like magics and aliases in the file.
524
527
525 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
528 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
526 added. Supported now are "%clear in" and "%clear out" (clear input and
529 added. Supported now are "%clear in" and "%clear out" (clear input and
527 output history, respectively). Also fixed CachedOutput.flush to
530 output history, respectively). Also fixed CachedOutput.flush to
528 properly flush the output cache.
531 properly flush the output cache.
529
532
530 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
533 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
531 half-success (and fail explicitly).
534 half-success (and fail explicitly).
532
535
533 2006-03-28 Ville Vainio <vivainio@gmail.com>
536 2006-03-28 Ville Vainio <vivainio@gmail.com>
534
537
535 * iplib.py: Fix quoting of aliases so that only argless ones
538 * iplib.py: Fix quoting of aliases so that only argless ones
536 are quoted
539 are quoted
537
540
538 2006-03-28 Ville Vainio <vivainio@gmail.com>
541 2006-03-28 Ville Vainio <vivainio@gmail.com>
539
542
540 * iplib.py: Quote aliases with spaces in the name.
543 * iplib.py: Quote aliases with spaces in the name.
541 "c:\program files\blah\bin" is now legal alias target.
544 "c:\program files\blah\bin" is now legal alias target.
542
545
543 * ext_rehashdir.py: Space no longer allowed as arg
546 * ext_rehashdir.py: Space no longer allowed as arg
544 separator, since space is legal in path names.
547 separator, since space is legal in path names.
545
548
546 2006-03-16 Ville Vainio <vivainio@gmail.com>
549 2006-03-16 Ville Vainio <vivainio@gmail.com>
547
550
548 * upgrade_dir.py: Take path.py from Extensions, correcting
551 * upgrade_dir.py: Take path.py from Extensions, correcting
549 %upgrade magic
552 %upgrade magic
550
553
551 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
554 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
552
555
553 * hooks.py: Only enclose editor binary in quotes if legal and
556 * hooks.py: Only enclose editor binary in quotes if legal and
554 necessary (space in the name, and is an existing file). Fixes a bug
557 necessary (space in the name, and is an existing file). Fixes a bug
555 reported by Zachary Pincus.
558 reported by Zachary Pincus.
556
559
557 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
560 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
558
561
559 * Manual: thanks to a tip on proper color handling for Emacs, by
562 * Manual: thanks to a tip on proper color handling for Emacs, by
560 Eric J Haywiser <ejh1-AT-MIT.EDU>.
563 Eric J Haywiser <ejh1-AT-MIT.EDU>.
561
564
562 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
565 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
563 by applying the provided patch. Thanks to Liu Jin
566 by applying the provided patch. Thanks to Liu Jin
564 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
567 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
565 XEmacs/Linux, I'm trusting the submitter that it actually helps
568 XEmacs/Linux, I'm trusting the submitter that it actually helps
566 under win32/GNU Emacs. Will revisit if any problems are reported.
569 under win32/GNU Emacs. Will revisit if any problems are reported.
567
570
568 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
571 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
569
572
570 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
573 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
571 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
574 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
572
575
573 2006-03-12 Ville Vainio <vivainio@gmail.com>
576 2006-03-12 Ville Vainio <vivainio@gmail.com>
574
577
575 * Magic.py (magic_timeit): Added %timeit magic, contributed by
578 * Magic.py (magic_timeit): Added %timeit magic, contributed by
576 Torsten Marek.
579 Torsten Marek.
577
580
578 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
581 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
579
582
580 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
583 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
581 line ranges works again.
584 line ranges works again.
582
585
583 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
586 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
584
587
585 * IPython/iplib.py (showtraceback): add back sys.last_traceback
588 * IPython/iplib.py (showtraceback): add back sys.last_traceback
586 and friends, after a discussion with Zach Pincus on ipython-user.
589 and friends, after a discussion with Zach Pincus on ipython-user.
587 I'm not 100% sure, but after thinking about it quite a bit, it may
590 I'm not 100% sure, but after thinking about it quite a bit, it may
588 be OK. Testing with the multithreaded shells didn't reveal any
591 be OK. Testing with the multithreaded shells didn't reveal any
589 problems, but let's keep an eye out.
592 problems, but let's keep an eye out.
590
593
591 In the process, I fixed a few things which were calling
594 In the process, I fixed a few things which were calling
592 self.InteractiveTB() directly (like safe_execfile), which is a
595 self.InteractiveTB() directly (like safe_execfile), which is a
593 mistake: ALL exception reporting should be done by calling
596 mistake: ALL exception reporting should be done by calling
594 self.showtraceback(), which handles state and tab-completion and
597 self.showtraceback(), which handles state and tab-completion and
595 more.
598 more.
596
599
597 2006-03-01 Ville Vainio <vivainio@gmail.com>
600 2006-03-01 Ville Vainio <vivainio@gmail.com>
598
601
599 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
602 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
600 To use, do "from ipipe import *".
603 To use, do "from ipipe import *".
601
604
602 2006-02-24 Ville Vainio <vivainio@gmail.com>
605 2006-02-24 Ville Vainio <vivainio@gmail.com>
603
606
604 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
607 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
605 "cleanly" and safely than the older upgrade mechanism.
608 "cleanly" and safely than the older upgrade mechanism.
606
609
607 2006-02-21 Ville Vainio <vivainio@gmail.com>
610 2006-02-21 Ville Vainio <vivainio@gmail.com>
608
611
609 * Magic.py: %save works again.
612 * Magic.py: %save works again.
610
613
611 2006-02-15 Ville Vainio <vivainio@gmail.com>
614 2006-02-15 Ville Vainio <vivainio@gmail.com>
612
615
613 * Magic.py: %Pprint works again
616 * Magic.py: %Pprint works again
614
617
615 * Extensions/ipy_sane_defaults.py: Provide everything provided
618 * Extensions/ipy_sane_defaults.py: Provide everything provided
616 in default ipythonrc, to make it possible to have a completely empty
619 in default ipythonrc, to make it possible to have a completely empty
617 ipythonrc (and thus completely rc-file free configuration)
620 ipythonrc (and thus completely rc-file free configuration)
618
621
619 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
622 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
620
623
621 * IPython/hooks.py (editor): quote the call to the editor command,
624 * IPython/hooks.py (editor): quote the call to the editor command,
622 to allow commands with spaces in them. Problem noted by watching
625 to allow commands with spaces in them. Problem noted by watching
623 Ian Oswald's video about textpad under win32 at
626 Ian Oswald's video about textpad under win32 at
624 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
627 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
625
628
626 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
629 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
627 describing magics (we haven't used @ for a loong time).
630 describing magics (we haven't used @ for a loong time).
628
631
629 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
632 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
630 contributed by marienz to close
633 contributed by marienz to close
631 http://www.scipy.net/roundup/ipython/issue53.
634 http://www.scipy.net/roundup/ipython/issue53.
632
635
633 2006-02-10 Ville Vainio <vivainio@gmail.com>
636 2006-02-10 Ville Vainio <vivainio@gmail.com>
634
637
635 * genutils.py: getoutput now works in win32 too
638 * genutils.py: getoutput now works in win32 too
636
639
637 * completer.py: alias and magic completion only invoked
640 * completer.py: alias and magic completion only invoked
638 at the first "item" in the line, to avoid "cd %store"
641 at the first "item" in the line, to avoid "cd %store"
639 nonsense.
642 nonsense.
640
643
641 2006-02-09 Ville Vainio <vivainio@gmail.com>
644 2006-02-09 Ville Vainio <vivainio@gmail.com>
642
645
643 * test/*: Added a unit testing framework (finally).
646 * test/*: Added a unit testing framework (finally).
644 '%run runtests.py' to run test_*.
647 '%run runtests.py' to run test_*.
645
648
646 * ipapi.py: Exposed runlines and set_custom_exc
649 * ipapi.py: Exposed runlines and set_custom_exc
647
650
648 2006-02-07 Ville Vainio <vivainio@gmail.com>
651 2006-02-07 Ville Vainio <vivainio@gmail.com>
649
652
650 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
653 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
651 instead use "f(1 2)" as before.
654 instead use "f(1 2)" as before.
652
655
653 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
656 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
654
657
655 * IPython/demo.py (IPythonDemo): Add new classes to the demo
658 * IPython/demo.py (IPythonDemo): Add new classes to the demo
656 facilities, for demos processed by the IPython input filter
659 facilities, for demos processed by the IPython input filter
657 (IPythonDemo), and for running a script one-line-at-a-time as a
660 (IPythonDemo), and for running a script one-line-at-a-time as a
658 demo, both for pure Python (LineDemo) and for IPython-processed
661 demo, both for pure Python (LineDemo) and for IPython-processed
659 input (IPythonLineDemo). After a request by Dave Kohel, from the
662 input (IPythonLineDemo). After a request by Dave Kohel, from the
660 SAGE team.
663 SAGE team.
661 (Demo.edit): added an edit() method to the demo objects, to edit
664 (Demo.edit): added an edit() method to the demo objects, to edit
662 the in-memory copy of the last executed block.
665 the in-memory copy of the last executed block.
663
666
664 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
667 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
665 processing to %edit, %macro and %save. These commands can now be
668 processing to %edit, %macro and %save. These commands can now be
666 invoked on the unprocessed input as it was typed by the user
669 invoked on the unprocessed input as it was typed by the user
667 (without any prefilters applied). After requests by the SAGE team
670 (without any prefilters applied). After requests by the SAGE team
668 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
671 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
669
672
670 2006-02-01 Ville Vainio <vivainio@gmail.com>
673 2006-02-01 Ville Vainio <vivainio@gmail.com>
671
674
672 * setup.py, eggsetup.py: easy_install ipython==dev works
675 * setup.py, eggsetup.py: easy_install ipython==dev works
673 correctly now (on Linux)
676 correctly now (on Linux)
674
677
675 * ipy_user_conf,ipmaker: user config changes, removed spurious
678 * ipy_user_conf,ipmaker: user config changes, removed spurious
676 warnings
679 warnings
677
680
678 * iplib: if rc.banner is string, use it as is.
681 * iplib: if rc.banner is string, use it as is.
679
682
680 * Magic: %pycat accepts a string argument and pages it's contents.
683 * Magic: %pycat accepts a string argument and pages it's contents.
681
684
682
685
683 2006-01-30 Ville Vainio <vivainio@gmail.com>
686 2006-01-30 Ville Vainio <vivainio@gmail.com>
684
687
685 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
688 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
686 Now %store and bookmarks work through PickleShare, meaning that
689 Now %store and bookmarks work through PickleShare, meaning that
687 concurrent access is possible and all ipython sessions see the
690 concurrent access is possible and all ipython sessions see the
688 same database situation all the time, instead of snapshot of
691 same database situation all the time, instead of snapshot of
689 the situation when the session was started. Hence, %bookmark
692 the situation when the session was started. Hence, %bookmark
690 results are immediately accessible from othes sessions. The database
693 results are immediately accessible from othes sessions. The database
691 is also available for use by user extensions. See:
694 is also available for use by user extensions. See:
692 http://www.python.org/pypi/pickleshare
695 http://www.python.org/pypi/pickleshare
693
696
694 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
697 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
695
698
696 * aliases can now be %store'd
699 * aliases can now be %store'd
697
700
698 * path.py moved to Extensions so that pickleshare does not need
701 * path.py moved to Extensions so that pickleshare does not need
699 IPython-specific import. Extensions added to pythonpath right
702 IPython-specific import. Extensions added to pythonpath right
700 at __init__.
703 at __init__.
701
704
702 * iplib.py: ipalias deprecated/redundant; aliases are converted and
705 * iplib.py: ipalias deprecated/redundant; aliases are converted and
703 called with _ip.system and the pre-transformed command string.
706 called with _ip.system and the pre-transformed command string.
704
707
705 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
708 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
706
709
707 * IPython/iplib.py (interact): Fix that we were not catching
710 * IPython/iplib.py (interact): Fix that we were not catching
708 KeyboardInterrupt exceptions properly. I'm not quite sure why the
711 KeyboardInterrupt exceptions properly. I'm not quite sure why the
709 logic here had to change, but it's fixed now.
712 logic here had to change, but it's fixed now.
710
713
711 2006-01-29 Ville Vainio <vivainio@gmail.com>
714 2006-01-29 Ville Vainio <vivainio@gmail.com>
712
715
713 * iplib.py: Try to import pyreadline on Windows.
716 * iplib.py: Try to import pyreadline on Windows.
714
717
715 2006-01-27 Ville Vainio <vivainio@gmail.com>
718 2006-01-27 Ville Vainio <vivainio@gmail.com>
716
719
717 * iplib.py: Expose ipapi as _ip in builtin namespace.
720 * iplib.py: Expose ipapi as _ip in builtin namespace.
718 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
721 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
719 and ip_set_hook (-> _ip.set_hook) redundant. % and !
722 and ip_set_hook (-> _ip.set_hook) redundant. % and !
720 syntax now produce _ip.* variant of the commands.
723 syntax now produce _ip.* variant of the commands.
721
724
722 * "_ip.options().autoedit_syntax = 2" automatically throws
725 * "_ip.options().autoedit_syntax = 2" automatically throws
723 user to editor for syntax error correction without prompting.
726 user to editor for syntax error correction without prompting.
724
727
725 2006-01-27 Ville Vainio <vivainio@gmail.com>
728 2006-01-27 Ville Vainio <vivainio@gmail.com>
726
729
727 * ipmaker.py: Give "realistic" sys.argv for scripts (without
730 * ipmaker.py: Give "realistic" sys.argv for scripts (without
728 'ipython' at argv[0]) executed through command line.
731 'ipython' at argv[0]) executed through command line.
729 NOTE: this DEPRECATES calling ipython with multiple scripts
732 NOTE: this DEPRECATES calling ipython with multiple scripts
730 ("ipython a.py b.py c.py")
733 ("ipython a.py b.py c.py")
731
734
732 * iplib.py, hooks.py: Added configurable input prefilter,
735 * iplib.py, hooks.py: Added configurable input prefilter,
733 named 'input_prefilter'. See ext_rescapture.py for example
736 named 'input_prefilter'. See ext_rescapture.py for example
734 usage.
737 usage.
735
738
736 * ext_rescapture.py, Magic.py: Better system command output capture
739 * ext_rescapture.py, Magic.py: Better system command output capture
737 through 'var = !ls' (deprecates user-visible %sc). Same notation
740 through 'var = !ls' (deprecates user-visible %sc). Same notation
738 applies for magics, 'var = %alias' assigns alias list to var.
741 applies for magics, 'var = %alias' assigns alias list to var.
739
742
740 * ipapi.py: added meta() for accessing extension-usable data store.
743 * ipapi.py: added meta() for accessing extension-usable data store.
741
744
742 * iplib.py: added InteractiveShell.getapi(). New magics should be
745 * iplib.py: added InteractiveShell.getapi(). New magics should be
743 written doing self.getapi() instead of using the shell directly.
746 written doing self.getapi() instead of using the shell directly.
744
747
745 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
748 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
746 %store foo >> ~/myfoo.txt to store variables to files (in clean
749 %store foo >> ~/myfoo.txt to store variables to files (in clean
747 textual form, not a restorable pickle).
750 textual form, not a restorable pickle).
748
751
749 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
752 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
750
753
751 * usage.py, Magic.py: added %quickref
754 * usage.py, Magic.py: added %quickref
752
755
753 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
756 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
754
757
755 * GetoptErrors when invoking magics etc. with wrong args
758 * GetoptErrors when invoking magics etc. with wrong args
756 are now more helpful:
759 are now more helpful:
757 GetoptError: option -l not recognized (allowed: "qb" )
760 GetoptError: option -l not recognized (allowed: "qb" )
758
761
759 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
762 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
760
763
761 * IPython/demo.py (Demo.show): Flush stdout after each block, so
764 * IPython/demo.py (Demo.show): Flush stdout after each block, so
762 computationally intensive blocks don't appear to stall the demo.
765 computationally intensive blocks don't appear to stall the demo.
763
766
764 2006-01-24 Ville Vainio <vivainio@gmail.com>
767 2006-01-24 Ville Vainio <vivainio@gmail.com>
765
768
766 * iplib.py, hooks.py: 'result_display' hook can return a non-None
769 * iplib.py, hooks.py: 'result_display' hook can return a non-None
767 value to manipulate resulting history entry.
770 value to manipulate resulting history entry.
768
771
769 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
772 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
770 to instance methods of IPApi class, to make extending an embedded
773 to instance methods of IPApi class, to make extending an embedded
771 IPython feasible. See ext_rehashdir.py for example usage.
774 IPython feasible. See ext_rehashdir.py for example usage.
772
775
773 * Merged 1071-1076 from branches/0.7.1
776 * Merged 1071-1076 from branches/0.7.1
774
777
775
778
776 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
779 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
777
780
778 * tools/release (daystamp): Fix build tools to use the new
781 * tools/release (daystamp): Fix build tools to use the new
779 eggsetup.py script to build lightweight eggs.
782 eggsetup.py script to build lightweight eggs.
780
783
781 * Applied changesets 1062 and 1064 before 0.7.1 release.
784 * Applied changesets 1062 and 1064 before 0.7.1 release.
782
785
783 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
786 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
784 see the raw input history (without conversions like %ls ->
787 see the raw input history (without conversions like %ls ->
785 ipmagic("ls")). After a request from W. Stein, SAGE
788 ipmagic("ls")). After a request from W. Stein, SAGE
786 (http://modular.ucsd.edu/sage) developer. This information is
789 (http://modular.ucsd.edu/sage) developer. This information is
787 stored in the input_hist_raw attribute of the IPython instance, so
790 stored in the input_hist_raw attribute of the IPython instance, so
788 developers can access it if needed (it's an InputList instance).
791 developers can access it if needed (it's an InputList instance).
789
792
790 * Versionstring = 0.7.2.svn
793 * Versionstring = 0.7.2.svn
791
794
792 * eggsetup.py: A separate script for constructing eggs, creates
795 * eggsetup.py: A separate script for constructing eggs, creates
793 proper launch scripts even on Windows (an .exe file in
796 proper launch scripts even on Windows (an .exe file in
794 \python24\scripts).
797 \python24\scripts).
795
798
796 * ipapi.py: launch_new_instance, launch entry point needed for the
799 * ipapi.py: launch_new_instance, launch entry point needed for the
797 egg.
800 egg.
798
801
799 2006-01-23 Ville Vainio <vivainio@gmail.com>
802 2006-01-23 Ville Vainio <vivainio@gmail.com>
800
803
801 * Added %cpaste magic for pasting python code
804 * Added %cpaste magic for pasting python code
802
805
803 2006-01-22 Ville Vainio <vivainio@gmail.com>
806 2006-01-22 Ville Vainio <vivainio@gmail.com>
804
807
805 * Merge from branches/0.7.1 into trunk, revs 1052-1057
808 * Merge from branches/0.7.1 into trunk, revs 1052-1057
806
809
807 * Versionstring = 0.7.2.svn
810 * Versionstring = 0.7.2.svn
808
811
809 * eggsetup.py: A separate script for constructing eggs, creates
812 * eggsetup.py: A separate script for constructing eggs, creates
810 proper launch scripts even on Windows (an .exe file in
813 proper launch scripts even on Windows (an .exe file in
811 \python24\scripts).
814 \python24\scripts).
812
815
813 * ipapi.py: launch_new_instance, launch entry point needed for the
816 * ipapi.py: launch_new_instance, launch entry point needed for the
814 egg.
817 egg.
815
818
816 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
819 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
817
820
818 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
821 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
819 %pfile foo would print the file for foo even if it was a binary.
822 %pfile foo would print the file for foo even if it was a binary.
820 Now, extensions '.so' and '.dll' are skipped.
823 Now, extensions '.so' and '.dll' are skipped.
821
824
822 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
825 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
823 bug, where macros would fail in all threaded modes. I'm not 100%
826 bug, where macros would fail in all threaded modes. I'm not 100%
824 sure, so I'm going to put out an rc instead of making a release
827 sure, so I'm going to put out an rc instead of making a release
825 today, and wait for feedback for at least a few days.
828 today, and wait for feedback for at least a few days.
826
829
827 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
830 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
828 it...) the handling of pasting external code with autoindent on.
831 it...) the handling of pasting external code with autoindent on.
829 To get out of a multiline input, the rule will appear for most
832 To get out of a multiline input, the rule will appear for most
830 users unchanged: two blank lines or change the indent level
833 users unchanged: two blank lines or change the indent level
831 proposed by IPython. But there is a twist now: you can
834 proposed by IPython. But there is a twist now: you can
832 add/subtract only *one or two spaces*. If you add/subtract three
835 add/subtract only *one or two spaces*. If you add/subtract three
833 or more (unless you completely delete the line), IPython will
836 or more (unless you completely delete the line), IPython will
834 accept that line, and you'll need to enter a second one of pure
837 accept that line, and you'll need to enter a second one of pure
835 whitespace. I know it sounds complicated, but I can't find a
838 whitespace. I know it sounds complicated, but I can't find a
836 different solution that covers all the cases, with the right
839 different solution that covers all the cases, with the right
837 heuristics. Hopefully in actual use, nobody will really notice
840 heuristics. Hopefully in actual use, nobody will really notice
838 all these strange rules and things will 'just work'.
841 all these strange rules and things will 'just work'.
839
842
840 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
843 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
841
844
842 * IPython/iplib.py (interact): catch exceptions which can be
845 * IPython/iplib.py (interact): catch exceptions which can be
843 triggered asynchronously by signal handlers. Thanks to an
846 triggered asynchronously by signal handlers. Thanks to an
844 automatic crash report, submitted by Colin Kingsley
847 automatic crash report, submitted by Colin Kingsley
845 <tercel-AT-gentoo.org>.
848 <tercel-AT-gentoo.org>.
846
849
847 2006-01-20 Ville Vainio <vivainio@gmail.com>
850 2006-01-20 Ville Vainio <vivainio@gmail.com>
848
851
849 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
852 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
850 (%rehashdir, very useful, try it out) of how to extend ipython
853 (%rehashdir, very useful, try it out) of how to extend ipython
851 with new magics. Also added Extensions dir to pythonpath to make
854 with new magics. Also added Extensions dir to pythonpath to make
852 importing extensions easy.
855 importing extensions easy.
853
856
854 * %store now complains when trying to store interactively declared
857 * %store now complains when trying to store interactively declared
855 classes / instances of those classes.
858 classes / instances of those classes.
856
859
857 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
860 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
858 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
861 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
859 if they exist, and ipy_user_conf.py with some defaults is created for
862 if they exist, and ipy_user_conf.py with some defaults is created for
860 the user.
863 the user.
861
864
862 * Startup rehashing done by the config file, not InterpreterExec.
865 * Startup rehashing done by the config file, not InterpreterExec.
863 This means system commands are available even without selecting the
866 This means system commands are available even without selecting the
864 pysh profile. It's the sensible default after all.
867 pysh profile. It's the sensible default after all.
865
868
866 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
869 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
867
870
868 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
871 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
869 multiline code with autoindent on working. But I am really not
872 multiline code with autoindent on working. But I am really not
870 sure, so this needs more testing. Will commit a debug-enabled
873 sure, so this needs more testing. Will commit a debug-enabled
871 version for now, while I test it some more, so that Ville and
874 version for now, while I test it some more, so that Ville and
872 others may also catch any problems. Also made
875 others may also catch any problems. Also made
873 self.indent_current_str() a method, to ensure that there's no
876 self.indent_current_str() a method, to ensure that there's no
874 chance of the indent space count and the corresponding string
877 chance of the indent space count and the corresponding string
875 falling out of sync. All code needing the string should just call
878 falling out of sync. All code needing the string should just call
876 the method.
879 the method.
877
880
878 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
881 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
879
882
880 * IPython/Magic.py (magic_edit): fix check for when users don't
883 * IPython/Magic.py (magic_edit): fix check for when users don't
881 save their output files, the try/except was in the wrong section.
884 save their output files, the try/except was in the wrong section.
882
885
883 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
886 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
884
887
885 * IPython/Magic.py (magic_run): fix __file__ global missing from
888 * IPython/Magic.py (magic_run): fix __file__ global missing from
886 script's namespace when executed via %run. After a report by
889 script's namespace when executed via %run. After a report by
887 Vivian.
890 Vivian.
888
891
889 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
892 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
890 when using python 2.4. The parent constructor changed in 2.4, and
893 when using python 2.4. The parent constructor changed in 2.4, and
891 we need to track it directly (we can't call it, as it messes up
894 we need to track it directly (we can't call it, as it messes up
892 readline and tab-completion inside our pdb would stop working).
895 readline and tab-completion inside our pdb would stop working).
893 After a bug report by R. Bernstein <rocky-AT-panix.com>.
896 After a bug report by R. Bernstein <rocky-AT-panix.com>.
894
897
895 2006-01-16 Ville Vainio <vivainio@gmail.com>
898 2006-01-16 Ville Vainio <vivainio@gmail.com>
896
899
897 * Ipython/magic.py: Reverted back to old %edit functionality
900 * Ipython/magic.py: Reverted back to old %edit functionality
898 that returns file contents on exit.
901 that returns file contents on exit.
899
902
900 * IPython/path.py: Added Jason Orendorff's "path" module to
903 * IPython/path.py: Added Jason Orendorff's "path" module to
901 IPython tree, http://www.jorendorff.com/articles/python/path/.
904 IPython tree, http://www.jorendorff.com/articles/python/path/.
902 You can get path objects conveniently through %sc, and !!, e.g.:
905 You can get path objects conveniently through %sc, and !!, e.g.:
903 sc files=ls
906 sc files=ls
904 for p in files.paths: # or files.p
907 for p in files.paths: # or files.p
905 print p,p.mtime
908 print p,p.mtime
906
909
907 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
910 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
908 now work again without considering the exclusion regexp -
911 now work again without considering the exclusion regexp -
909 hence, things like ',foo my/path' turn to 'foo("my/path")'
912 hence, things like ',foo my/path' turn to 'foo("my/path")'
910 instead of syntax error.
913 instead of syntax error.
911
914
912
915
913 2006-01-14 Ville Vainio <vivainio@gmail.com>
916 2006-01-14 Ville Vainio <vivainio@gmail.com>
914
917
915 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
918 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
916 ipapi decorators for python 2.4 users, options() provides access to rc
919 ipapi decorators for python 2.4 users, options() provides access to rc
917 data.
920 data.
918
921
919 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
922 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
920 as path separators (even on Linux ;-). Space character after
923 as path separators (even on Linux ;-). Space character after
921 backslash (as yielded by tab completer) is still space;
924 backslash (as yielded by tab completer) is still space;
922 "%cd long\ name" works as expected.
925 "%cd long\ name" works as expected.
923
926
924 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
927 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
925 as "chain of command", with priority. API stays the same,
928 as "chain of command", with priority. API stays the same,
926 TryNext exception raised by a hook function signals that
929 TryNext exception raised by a hook function signals that
927 current hook failed and next hook should try handling it, as
930 current hook failed and next hook should try handling it, as
928 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
931 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
929 requested configurable display hook, which is now implemented.
932 requested configurable display hook, which is now implemented.
930
933
931 2006-01-13 Ville Vainio <vivainio@gmail.com>
934 2006-01-13 Ville Vainio <vivainio@gmail.com>
932
935
933 * IPython/platutils*.py: platform specific utility functions,
936 * IPython/platutils*.py: platform specific utility functions,
934 so far only set_term_title is implemented (change terminal
937 so far only set_term_title is implemented (change terminal
935 label in windowing systems). %cd now changes the title to
938 label in windowing systems). %cd now changes the title to
936 current dir.
939 current dir.
937
940
938 * IPython/Release.py: Added myself to "authors" list,
941 * IPython/Release.py: Added myself to "authors" list,
939 had to create new files.
942 had to create new files.
940
943
941 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
944 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
942 shell escape; not a known bug but had potential to be one in the
945 shell escape; not a known bug but had potential to be one in the
943 future.
946 future.
944
947
945 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
948 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
946 extension API for IPython! See the module for usage example. Fix
949 extension API for IPython! See the module for usage example. Fix
947 OInspect for docstring-less magic functions.
950 OInspect for docstring-less magic functions.
948
951
949
952
950 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
953 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
951
954
952 * IPython/iplib.py (raw_input): temporarily deactivate all
955 * IPython/iplib.py (raw_input): temporarily deactivate all
953 attempts at allowing pasting of code with autoindent on. It
956 attempts at allowing pasting of code with autoindent on. It
954 introduced bugs (reported by Prabhu) and I can't seem to find a
957 introduced bugs (reported by Prabhu) and I can't seem to find a
955 robust combination which works in all cases. Will have to revisit
958 robust combination which works in all cases. Will have to revisit
956 later.
959 later.
957
960
958 * IPython/genutils.py: remove isspace() function. We've dropped
961 * IPython/genutils.py: remove isspace() function. We've dropped
959 2.2 compatibility, so it's OK to use the string method.
962 2.2 compatibility, so it's OK to use the string method.
960
963
961 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
964 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
962
965
963 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
966 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
964 matching what NOT to autocall on, to include all python binary
967 matching what NOT to autocall on, to include all python binary
965 operators (including things like 'and', 'or', 'is' and 'in').
968 operators (including things like 'and', 'or', 'is' and 'in').
966 Prompted by a bug report on 'foo & bar', but I realized we had
969 Prompted by a bug report on 'foo & bar', but I realized we had
967 many more potential bug cases with other operators. The regexp is
970 many more potential bug cases with other operators. The regexp is
968 self.re_exclude_auto, it's fairly commented.
971 self.re_exclude_auto, it's fairly commented.
969
972
970 2006-01-12 Ville Vainio <vivainio@gmail.com>
973 2006-01-12 Ville Vainio <vivainio@gmail.com>
971
974
972 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
975 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
973 Prettified and hardened string/backslash quoting with ipsystem(),
976 Prettified and hardened string/backslash quoting with ipsystem(),
974 ipalias() and ipmagic(). Now even \ characters are passed to
977 ipalias() and ipmagic(). Now even \ characters are passed to
975 %magics, !shell escapes and aliases exactly as they are in the
978 %magics, !shell escapes and aliases exactly as they are in the
976 ipython command line. Should improve backslash experience,
979 ipython command line. Should improve backslash experience,
977 particularly in Windows (path delimiter for some commands that
980 particularly in Windows (path delimiter for some commands that
978 won't understand '/'), but Unix benefits as well (regexps). %cd
981 won't understand '/'), but Unix benefits as well (regexps). %cd
979 magic still doesn't support backslash path delimiters, though. Also
982 magic still doesn't support backslash path delimiters, though. Also
980 deleted all pretense of supporting multiline command strings in
983 deleted all pretense of supporting multiline command strings in
981 !system or %magic commands. Thanks to Jerry McRae for suggestions.
984 !system or %magic commands. Thanks to Jerry McRae for suggestions.
982
985
983 * doc/build_doc_instructions.txt added. Documentation on how to
986 * doc/build_doc_instructions.txt added. Documentation on how to
984 use doc/update_manual.py, added yesterday. Both files contributed
987 use doc/update_manual.py, added yesterday. Both files contributed
985 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
988 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
986 doc/*.sh for deprecation at a later date.
989 doc/*.sh for deprecation at a later date.
987
990
988 * /ipython.py Added ipython.py to root directory for
991 * /ipython.py Added ipython.py to root directory for
989 zero-installation (tar xzvf ipython.tgz; cd ipython; python
992 zero-installation (tar xzvf ipython.tgz; cd ipython; python
990 ipython.py) and development convenience (no need to keep doing
993 ipython.py) and development convenience (no need to keep doing
991 "setup.py install" between changes).
994 "setup.py install" between changes).
992
995
993 * Made ! and !! shell escapes work (again) in multiline expressions:
996 * Made ! and !! shell escapes work (again) in multiline expressions:
994 if 1:
997 if 1:
995 !ls
998 !ls
996 !!ls
999 !!ls
997
1000
998 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1001 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
999
1002
1000 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1003 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1001 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1004 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1002 module in case-insensitive installation. Was causing crashes
1005 module in case-insensitive installation. Was causing crashes
1003 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1006 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1004
1007
1005 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1008 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1006 <marienz-AT-gentoo.org>, closes
1009 <marienz-AT-gentoo.org>, closes
1007 http://www.scipy.net/roundup/ipython/issue51.
1010 http://www.scipy.net/roundup/ipython/issue51.
1008
1011
1009 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1012 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1010
1013
1011 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1014 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1012 problem of excessive CPU usage under *nix and keyboard lag under
1015 problem of excessive CPU usage under *nix and keyboard lag under
1013 win32.
1016 win32.
1014
1017
1015 2006-01-10 *** Released version 0.7.0
1018 2006-01-10 *** Released version 0.7.0
1016
1019
1017 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1020 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1018
1021
1019 * IPython/Release.py (revision): tag version number to 0.7.0,
1022 * IPython/Release.py (revision): tag version number to 0.7.0,
1020 ready for release.
1023 ready for release.
1021
1024
1022 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1025 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1023 it informs the user of the name of the temp. file used. This can
1026 it informs the user of the name of the temp. file used. This can
1024 help if you decide later to reuse that same file, so you know
1027 help if you decide later to reuse that same file, so you know
1025 where to copy the info from.
1028 where to copy the info from.
1026
1029
1027 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1030 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1031
1029 * setup_bdist_egg.py: little script to build an egg. Added
1032 * setup_bdist_egg.py: little script to build an egg. Added
1030 support in the release tools as well.
1033 support in the release tools as well.
1031
1034
1032 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1035 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1033
1036
1034 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1037 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1035 version selection (new -wxversion command line and ipythonrc
1038 version selection (new -wxversion command line and ipythonrc
1036 parameter). Patch contributed by Arnd Baecker
1039 parameter). Patch contributed by Arnd Baecker
1037 <arnd.baecker-AT-web.de>.
1040 <arnd.baecker-AT-web.de>.
1038
1041
1039 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1042 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1040 embedded instances, for variables defined at the interactive
1043 embedded instances, for variables defined at the interactive
1041 prompt of the embedded ipython. Reported by Arnd.
1044 prompt of the embedded ipython. Reported by Arnd.
1042
1045
1043 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1046 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1044 it can be used as a (stateful) toggle, or with a direct parameter.
1047 it can be used as a (stateful) toggle, or with a direct parameter.
1045
1048
1046 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1049 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1047 could be triggered in certain cases and cause the traceback
1050 could be triggered in certain cases and cause the traceback
1048 printer not to work.
1051 printer not to work.
1049
1052
1050 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1053 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1051
1054
1052 * IPython/iplib.py (_should_recompile): Small fix, closes
1055 * IPython/iplib.py (_should_recompile): Small fix, closes
1053 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1056 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1054
1057
1055 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1058 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1056
1059
1057 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1060 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1058 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1061 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1059 Moad for help with tracking it down.
1062 Moad for help with tracking it down.
1060
1063
1061 * IPython/iplib.py (handle_auto): fix autocall handling for
1064 * IPython/iplib.py (handle_auto): fix autocall handling for
1062 objects which support BOTH __getitem__ and __call__ (so that f [x]
1065 objects which support BOTH __getitem__ and __call__ (so that f [x]
1063 is left alone, instead of becoming f([x]) automatically).
1066 is left alone, instead of becoming f([x]) automatically).
1064
1067
1065 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1068 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1066 Ville's patch.
1069 Ville's patch.
1067
1070
1068 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1071 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1069
1072
1070 * IPython/iplib.py (handle_auto): changed autocall semantics to
1073 * IPython/iplib.py (handle_auto): changed autocall semantics to
1071 include 'smart' mode, where the autocall transformation is NOT
1074 include 'smart' mode, where the autocall transformation is NOT
1072 applied if there are no arguments on the line. This allows you to
1075 applied if there are no arguments on the line. This allows you to
1073 just type 'foo' if foo is a callable to see its internal form,
1076 just type 'foo' if foo is a callable to see its internal form,
1074 instead of having it called with no arguments (typically a
1077 instead of having it called with no arguments (typically a
1075 mistake). The old 'full' autocall still exists: for that, you
1078 mistake). The old 'full' autocall still exists: for that, you
1076 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1079 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1077
1080
1078 * IPython/completer.py (Completer.attr_matches): add
1081 * IPython/completer.py (Completer.attr_matches): add
1079 tab-completion support for Enthoughts' traits. After a report by
1082 tab-completion support for Enthoughts' traits. After a report by
1080 Arnd and a patch by Prabhu.
1083 Arnd and a patch by Prabhu.
1081
1084
1082 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1085 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1083
1086
1084 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1087 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1085 Schmolck's patch to fix inspect.getinnerframes().
1088 Schmolck's patch to fix inspect.getinnerframes().
1086
1089
1087 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1090 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1088 for embedded instances, regarding handling of namespaces and items
1091 for embedded instances, regarding handling of namespaces and items
1089 added to the __builtin__ one. Multiple embedded instances and
1092 added to the __builtin__ one. Multiple embedded instances and
1090 recursive embeddings should work better now (though I'm not sure
1093 recursive embeddings should work better now (though I'm not sure
1091 I've got all the corner cases fixed, that code is a bit of a brain
1094 I've got all the corner cases fixed, that code is a bit of a brain
1092 twister).
1095 twister).
1093
1096
1094 * IPython/Magic.py (magic_edit): added support to edit in-memory
1097 * IPython/Magic.py (magic_edit): added support to edit in-memory
1095 macros (automatically creates the necessary temp files). %edit
1098 macros (automatically creates the necessary temp files). %edit
1096 also doesn't return the file contents anymore, it's just noise.
1099 also doesn't return the file contents anymore, it's just noise.
1097
1100
1098 * IPython/completer.py (Completer.attr_matches): revert change to
1101 * IPython/completer.py (Completer.attr_matches): revert change to
1099 complete only on attributes listed in __all__. I realized it
1102 complete only on attributes listed in __all__. I realized it
1100 cripples the tab-completion system as a tool for exploring the
1103 cripples the tab-completion system as a tool for exploring the
1101 internals of unknown libraries (it renders any non-__all__
1104 internals of unknown libraries (it renders any non-__all__
1102 attribute off-limits). I got bit by this when trying to see
1105 attribute off-limits). I got bit by this when trying to see
1103 something inside the dis module.
1106 something inside the dis module.
1104
1107
1105 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1108 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1106
1109
1107 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1110 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1108 namespace for users and extension writers to hold data in. This
1111 namespace for users and extension writers to hold data in. This
1109 follows the discussion in
1112 follows the discussion in
1110 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1113 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1111
1114
1112 * IPython/completer.py (IPCompleter.complete): small patch to help
1115 * IPython/completer.py (IPCompleter.complete): small patch to help
1113 tab-completion under Emacs, after a suggestion by John Barnard
1116 tab-completion under Emacs, after a suggestion by John Barnard
1114 <barnarj-AT-ccf.org>.
1117 <barnarj-AT-ccf.org>.
1115
1118
1116 * IPython/Magic.py (Magic.extract_input_slices): added support for
1119 * IPython/Magic.py (Magic.extract_input_slices): added support for
1117 the slice notation in magics to use N-M to represent numbers N...M
1120 the slice notation in magics to use N-M to represent numbers N...M
1118 (closed endpoints). This is used by %macro and %save.
1121 (closed endpoints). This is used by %macro and %save.
1119
1122
1120 * IPython/completer.py (Completer.attr_matches): for modules which
1123 * IPython/completer.py (Completer.attr_matches): for modules which
1121 define __all__, complete only on those. After a patch by Jeffrey
1124 define __all__, complete only on those. After a patch by Jeffrey
1122 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1125 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1123 speed up this routine.
1126 speed up this routine.
1124
1127
1125 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1128 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1126 don't know if this is the end of it, but the behavior now is
1129 don't know if this is the end of it, but the behavior now is
1127 certainly much more correct. Note that coupled with macros,
1130 certainly much more correct. Note that coupled with macros,
1128 slightly surprising (at first) behavior may occur: a macro will in
1131 slightly surprising (at first) behavior may occur: a macro will in
1129 general expand to multiple lines of input, so upon exiting, the
1132 general expand to multiple lines of input, so upon exiting, the
1130 in/out counters will both be bumped by the corresponding amount
1133 in/out counters will both be bumped by the corresponding amount
1131 (as if the macro's contents had been typed interactively). Typing
1134 (as if the macro's contents had been typed interactively). Typing
1132 %hist will reveal the intermediate (silently processed) lines.
1135 %hist will reveal the intermediate (silently processed) lines.
1133
1136
1134 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1137 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1135 pickle to fail (%run was overwriting __main__ and not restoring
1138 pickle to fail (%run was overwriting __main__ and not restoring
1136 it, but pickle relies on __main__ to operate).
1139 it, but pickle relies on __main__ to operate).
1137
1140
1138 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1141 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1139 using properties, but forgot to make the main InteractiveShell
1142 using properties, but forgot to make the main InteractiveShell
1140 class a new-style class. Properties fail silently, and
1143 class a new-style class. Properties fail silently, and
1141 mysteriously, with old-style class (getters work, but
1144 mysteriously, with old-style class (getters work, but
1142 setters don't do anything).
1145 setters don't do anything).
1143
1146
1144 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1147 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1145
1148
1146 * IPython/Magic.py (magic_history): fix history reporting bug (I
1149 * IPython/Magic.py (magic_history): fix history reporting bug (I
1147 know some nasties are still there, I just can't seem to find a
1150 know some nasties are still there, I just can't seem to find a
1148 reproducible test case to track them down; the input history is
1151 reproducible test case to track them down; the input history is
1149 falling out of sync...)
1152 falling out of sync...)
1150
1153
1151 * IPython/iplib.py (handle_shell_escape): fix bug where both
1154 * IPython/iplib.py (handle_shell_escape): fix bug where both
1152 aliases and system accesses where broken for indented code (such
1155 aliases and system accesses where broken for indented code (such
1153 as loops).
1156 as loops).
1154
1157
1155 * IPython/genutils.py (shell): fix small but critical bug for
1158 * IPython/genutils.py (shell): fix small but critical bug for
1156 win32 system access.
1159 win32 system access.
1157
1160
1158 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1161 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1159
1162
1160 * IPython/iplib.py (showtraceback): remove use of the
1163 * IPython/iplib.py (showtraceback): remove use of the
1161 sys.last_{type/value/traceback} structures, which are non
1164 sys.last_{type/value/traceback} structures, which are non
1162 thread-safe.
1165 thread-safe.
1163 (_prefilter): change control flow to ensure that we NEVER
1166 (_prefilter): change control flow to ensure that we NEVER
1164 introspect objects when autocall is off. This will guarantee that
1167 introspect objects when autocall is off. This will guarantee that
1165 having an input line of the form 'x.y', where access to attribute
1168 having an input line of the form 'x.y', where access to attribute
1166 'y' has side effects, doesn't trigger the side effect TWICE. It
1169 'y' has side effects, doesn't trigger the side effect TWICE. It
1167 is important to note that, with autocall on, these side effects
1170 is important to note that, with autocall on, these side effects
1168 can still happen.
1171 can still happen.
1169 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1172 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1170 trio. IPython offers these three kinds of special calls which are
1173 trio. IPython offers these three kinds of special calls which are
1171 not python code, and it's a good thing to have their call method
1174 not python code, and it's a good thing to have their call method
1172 be accessible as pure python functions (not just special syntax at
1175 be accessible as pure python functions (not just special syntax at
1173 the command line). It gives us a better internal implementation
1176 the command line). It gives us a better internal implementation
1174 structure, as well as exposing these for user scripting more
1177 structure, as well as exposing these for user scripting more
1175 cleanly.
1178 cleanly.
1176
1179
1177 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1180 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1178 file. Now that they'll be more likely to be used with the
1181 file. Now that they'll be more likely to be used with the
1179 persistance system (%store), I want to make sure their module path
1182 persistance system (%store), I want to make sure their module path
1180 doesn't change in the future, so that we don't break things for
1183 doesn't change in the future, so that we don't break things for
1181 users' persisted data.
1184 users' persisted data.
1182
1185
1183 * IPython/iplib.py (autoindent_update): move indentation
1186 * IPython/iplib.py (autoindent_update): move indentation
1184 management into the _text_ processing loop, not the keyboard
1187 management into the _text_ processing loop, not the keyboard
1185 interactive one. This is necessary to correctly process non-typed
1188 interactive one. This is necessary to correctly process non-typed
1186 multiline input (such as macros).
1189 multiline input (such as macros).
1187
1190
1188 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1191 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1189 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1192 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1190 which was producing problems in the resulting manual.
1193 which was producing problems in the resulting manual.
1191 (magic_whos): improve reporting of instances (show their class,
1194 (magic_whos): improve reporting of instances (show their class,
1192 instead of simply printing 'instance' which isn't terribly
1195 instead of simply printing 'instance' which isn't terribly
1193 informative).
1196 informative).
1194
1197
1195 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1198 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1196 (minor mods) to support network shares under win32.
1199 (minor mods) to support network shares under win32.
1197
1200
1198 * IPython/winconsole.py (get_console_size): add new winconsole
1201 * IPython/winconsole.py (get_console_size): add new winconsole
1199 module and fixes to page_dumb() to improve its behavior under
1202 module and fixes to page_dumb() to improve its behavior under
1200 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1203 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1201
1204
1202 * IPython/Magic.py (Macro): simplified Macro class to just
1205 * IPython/Magic.py (Macro): simplified Macro class to just
1203 subclass list. We've had only 2.2 compatibility for a very long
1206 subclass list. We've had only 2.2 compatibility for a very long
1204 time, yet I was still avoiding subclassing the builtin types. No
1207 time, yet I was still avoiding subclassing the builtin types. No
1205 more (I'm also starting to use properties, though I won't shift to
1208 more (I'm also starting to use properties, though I won't shift to
1206 2.3-specific features quite yet).
1209 2.3-specific features quite yet).
1207 (magic_store): added Ville's patch for lightweight variable
1210 (magic_store): added Ville's patch for lightweight variable
1208 persistence, after a request on the user list by Matt Wilkie
1211 persistence, after a request on the user list by Matt Wilkie
1209 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1212 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1210 details.
1213 details.
1211
1214
1212 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1215 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1213 changed the default logfile name from 'ipython.log' to
1216 changed the default logfile name from 'ipython.log' to
1214 'ipython_log.py'. These logs are real python files, and now that
1217 'ipython_log.py'. These logs are real python files, and now that
1215 we have much better multiline support, people are more likely to
1218 we have much better multiline support, people are more likely to
1216 want to use them as such. Might as well name them correctly.
1219 want to use them as such. Might as well name them correctly.
1217
1220
1218 * IPython/Magic.py: substantial cleanup. While we can't stop
1221 * IPython/Magic.py: substantial cleanup. While we can't stop
1219 using magics as mixins, due to the existing customizations 'out
1222 using magics as mixins, due to the existing customizations 'out
1220 there' which rely on the mixin naming conventions, at least I
1223 there' which rely on the mixin naming conventions, at least I
1221 cleaned out all cross-class name usage. So once we are OK with
1224 cleaned out all cross-class name usage. So once we are OK with
1222 breaking compatibility, the two systems can be separated.
1225 breaking compatibility, the two systems can be separated.
1223
1226
1224 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1227 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1225 anymore, and the class is a fair bit less hideous as well. New
1228 anymore, and the class is a fair bit less hideous as well. New
1226 features were also introduced: timestamping of input, and logging
1229 features were also introduced: timestamping of input, and logging
1227 of output results. These are user-visible with the -t and -o
1230 of output results. These are user-visible with the -t and -o
1228 options to %logstart. Closes
1231 options to %logstart. Closes
1229 http://www.scipy.net/roundup/ipython/issue11 and a request by
1232 http://www.scipy.net/roundup/ipython/issue11 and a request by
1230 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1233 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1231
1234
1232 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1235 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1233
1236
1234 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1237 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1235 better handle backslashes in paths. See the thread 'More Windows
1238 better handle backslashes in paths. See the thread 'More Windows
1236 questions part 2 - \/ characters revisited' on the iypthon user
1239 questions part 2 - \/ characters revisited' on the iypthon user
1237 list:
1240 list:
1238 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1241 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1239
1242
1240 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1243 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1241
1244
1242 (InteractiveShell.__init__): change threaded shells to not use the
1245 (InteractiveShell.__init__): change threaded shells to not use the
1243 ipython crash handler. This was causing more problems than not,
1246 ipython crash handler. This was causing more problems than not,
1244 as exceptions in the main thread (GUI code, typically) would
1247 as exceptions in the main thread (GUI code, typically) would
1245 always show up as a 'crash', when they really weren't.
1248 always show up as a 'crash', when they really weren't.
1246
1249
1247 The colors and exception mode commands (%colors/%xmode) have been
1250 The colors and exception mode commands (%colors/%xmode) have been
1248 synchronized to also take this into account, so users can get
1251 synchronized to also take this into account, so users can get
1249 verbose exceptions for their threaded code as well. I also added
1252 verbose exceptions for their threaded code as well. I also added
1250 support for activating pdb inside this exception handler as well,
1253 support for activating pdb inside this exception handler as well,
1251 so now GUI authors can use IPython's enhanced pdb at runtime.
1254 so now GUI authors can use IPython's enhanced pdb at runtime.
1252
1255
1253 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1256 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1254 true by default, and add it to the shipped ipythonrc file. Since
1257 true by default, and add it to the shipped ipythonrc file. Since
1255 this asks the user before proceeding, I think it's OK to make it
1258 this asks the user before proceeding, I think it's OK to make it
1256 true by default.
1259 true by default.
1257
1260
1258 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1261 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1259 of the previous special-casing of input in the eval loop. I think
1262 of the previous special-casing of input in the eval loop. I think
1260 this is cleaner, as they really are commands and shouldn't have
1263 this is cleaner, as they really are commands and shouldn't have
1261 a special role in the middle of the core code.
1264 a special role in the middle of the core code.
1262
1265
1263 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1266 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1264
1267
1265 * IPython/iplib.py (edit_syntax_error): added support for
1268 * IPython/iplib.py (edit_syntax_error): added support for
1266 automatically reopening the editor if the file had a syntax error
1269 automatically reopening the editor if the file had a syntax error
1267 in it. Thanks to scottt who provided the patch at:
1270 in it. Thanks to scottt who provided the patch at:
1268 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1271 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1269 version committed).
1272 version committed).
1270
1273
1271 * IPython/iplib.py (handle_normal): add suport for multi-line
1274 * IPython/iplib.py (handle_normal): add suport for multi-line
1272 input with emtpy lines. This fixes
1275 input with emtpy lines. This fixes
1273 http://www.scipy.net/roundup/ipython/issue43 and a similar
1276 http://www.scipy.net/roundup/ipython/issue43 and a similar
1274 discussion on the user list.
1277 discussion on the user list.
1275
1278
1276 WARNING: a behavior change is necessarily introduced to support
1279 WARNING: a behavior change is necessarily introduced to support
1277 blank lines: now a single blank line with whitespace does NOT
1280 blank lines: now a single blank line with whitespace does NOT
1278 break the input loop, which means that when autoindent is on, by
1281 break the input loop, which means that when autoindent is on, by
1279 default hitting return on the next (indented) line does NOT exit.
1282 default hitting return on the next (indented) line does NOT exit.
1280
1283
1281 Instead, to exit a multiline input you can either have:
1284 Instead, to exit a multiline input you can either have:
1282
1285
1283 - TWO whitespace lines (just hit return again), or
1286 - TWO whitespace lines (just hit return again), or
1284 - a single whitespace line of a different length than provided
1287 - a single whitespace line of a different length than provided
1285 by the autoindent (add or remove a space).
1288 by the autoindent (add or remove a space).
1286
1289
1287 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1290 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1288 module to better organize all readline-related functionality.
1291 module to better organize all readline-related functionality.
1289 I've deleted FlexCompleter and put all completion clases here.
1292 I've deleted FlexCompleter and put all completion clases here.
1290
1293
1291 * IPython/iplib.py (raw_input): improve indentation management.
1294 * IPython/iplib.py (raw_input): improve indentation management.
1292 It is now possible to paste indented code with autoindent on, and
1295 It is now possible to paste indented code with autoindent on, and
1293 the code is interpreted correctly (though it still looks bad on
1296 the code is interpreted correctly (though it still looks bad on
1294 screen, due to the line-oriented nature of ipython).
1297 screen, due to the line-oriented nature of ipython).
1295 (MagicCompleter.complete): change behavior so that a TAB key on an
1298 (MagicCompleter.complete): change behavior so that a TAB key on an
1296 otherwise empty line actually inserts a tab, instead of completing
1299 otherwise empty line actually inserts a tab, instead of completing
1297 on the entire global namespace. This makes it easier to use the
1300 on the entire global namespace. This makes it easier to use the
1298 TAB key for indentation. After a request by Hans Meine
1301 TAB key for indentation. After a request by Hans Meine
1299 <hans_meine-AT-gmx.net>
1302 <hans_meine-AT-gmx.net>
1300 (_prefilter): add support so that typing plain 'exit' or 'quit'
1303 (_prefilter): add support so that typing plain 'exit' or 'quit'
1301 does a sensible thing. Originally I tried to deviate as little as
1304 does a sensible thing. Originally I tried to deviate as little as
1302 possible from the default python behavior, but even that one may
1305 possible from the default python behavior, but even that one may
1303 change in this direction (thread on python-dev to that effect).
1306 change in this direction (thread on python-dev to that effect).
1304 Regardless, ipython should do the right thing even if CPython's
1307 Regardless, ipython should do the right thing even if CPython's
1305 '>>>' prompt doesn't.
1308 '>>>' prompt doesn't.
1306 (InteractiveShell): removed subclassing code.InteractiveConsole
1309 (InteractiveShell): removed subclassing code.InteractiveConsole
1307 class. By now we'd overridden just about all of its methods: I've
1310 class. By now we'd overridden just about all of its methods: I've
1308 copied the remaining two over, and now ipython is a standalone
1311 copied the remaining two over, and now ipython is a standalone
1309 class. This will provide a clearer picture for the chainsaw
1312 class. This will provide a clearer picture for the chainsaw
1310 branch refactoring.
1313 branch refactoring.
1311
1314
1312 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1315 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1313
1316
1314 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1317 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1315 failures for objects which break when dir() is called on them.
1318 failures for objects which break when dir() is called on them.
1316
1319
1317 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1320 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1318 distinct local and global namespaces in the completer API. This
1321 distinct local and global namespaces in the completer API. This
1319 change allows us to properly handle completion with distinct
1322 change allows us to properly handle completion with distinct
1320 scopes, including in embedded instances (this had never really
1323 scopes, including in embedded instances (this had never really
1321 worked correctly).
1324 worked correctly).
1322
1325
1323 Note: this introduces a change in the constructor for
1326 Note: this introduces a change in the constructor for
1324 MagicCompleter, as a new global_namespace parameter is now the
1327 MagicCompleter, as a new global_namespace parameter is now the
1325 second argument (the others were bumped one position).
1328 second argument (the others were bumped one position).
1326
1329
1327 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1330 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1328
1331
1329 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1332 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1330 embedded instances (which can be done now thanks to Vivian's
1333 embedded instances (which can be done now thanks to Vivian's
1331 frame-handling fixes for pdb).
1334 frame-handling fixes for pdb).
1332 (InteractiveShell.__init__): Fix namespace handling problem in
1335 (InteractiveShell.__init__): Fix namespace handling problem in
1333 embedded instances. We were overwriting __main__ unconditionally,
1336 embedded instances. We were overwriting __main__ unconditionally,
1334 and this should only be done for 'full' (non-embedded) IPython;
1337 and this should only be done for 'full' (non-embedded) IPython;
1335 embedded instances must respect the caller's __main__. Thanks to
1338 embedded instances must respect the caller's __main__. Thanks to
1336 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1339 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1337
1340
1338 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1341 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1339
1342
1340 * setup.py: added download_url to setup(). This registers the
1343 * setup.py: added download_url to setup(). This registers the
1341 download address at PyPI, which is not only useful to humans
1344 download address at PyPI, which is not only useful to humans
1342 browsing the site, but is also picked up by setuptools (the Eggs
1345 browsing the site, but is also picked up by setuptools (the Eggs
1343 machinery). Thanks to Ville and R. Kern for the info/discussion
1346 machinery). Thanks to Ville and R. Kern for the info/discussion
1344 on this.
1347 on this.
1345
1348
1346 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1349 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1347
1350
1348 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1351 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1349 This brings a lot of nice functionality to the pdb mode, which now
1352 This brings a lot of nice functionality to the pdb mode, which now
1350 has tab-completion, syntax highlighting, and better stack handling
1353 has tab-completion, syntax highlighting, and better stack handling
1351 than before. Many thanks to Vivian De Smedt
1354 than before. Many thanks to Vivian De Smedt
1352 <vivian-AT-vdesmedt.com> for the original patches.
1355 <vivian-AT-vdesmedt.com> for the original patches.
1353
1356
1354 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1357 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1355
1358
1356 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1359 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1357 sequence to consistently accept the banner argument. The
1360 sequence to consistently accept the banner argument. The
1358 inconsistency was tripping SAGE, thanks to Gary Zablackis
1361 inconsistency was tripping SAGE, thanks to Gary Zablackis
1359 <gzabl-AT-yahoo.com> for the report.
1362 <gzabl-AT-yahoo.com> for the report.
1360
1363
1361 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1364 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1365
1363 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1366 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1364 Fix bug where a naked 'alias' call in the ipythonrc file would
1367 Fix bug where a naked 'alias' call in the ipythonrc file would
1365 cause a crash. Bug reported by Jorgen Stenarson.
1368 cause a crash. Bug reported by Jorgen Stenarson.
1366
1369
1367 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1370 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1368
1371
1369 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1372 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1370 startup time.
1373 startup time.
1371
1374
1372 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1375 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1373 instances had introduced a bug with globals in normal code. Now
1376 instances had introduced a bug with globals in normal code. Now
1374 it's working in all cases.
1377 it's working in all cases.
1375
1378
1376 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1379 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1377 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1380 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1378 has been introduced to set the default case sensitivity of the
1381 has been introduced to set the default case sensitivity of the
1379 searches. Users can still select either mode at runtime on a
1382 searches. Users can still select either mode at runtime on a
1380 per-search basis.
1383 per-search basis.
1381
1384
1382 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1385 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1383
1386
1384 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1387 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1385 attributes in wildcard searches for subclasses. Modified version
1388 attributes in wildcard searches for subclasses. Modified version
1386 of a patch by Jorgen.
1389 of a patch by Jorgen.
1387
1390
1388 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1391 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1389
1392
1390 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1393 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1391 embedded instances. I added a user_global_ns attribute to the
1394 embedded instances. I added a user_global_ns attribute to the
1392 InteractiveShell class to handle this.
1395 InteractiveShell class to handle this.
1393
1396
1394 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1397 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1395
1398
1396 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1399 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1397 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1400 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1398 (reported under win32, but may happen also in other platforms).
1401 (reported under win32, but may happen also in other platforms).
1399 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1402 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1400
1403
1401 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1404 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1402
1405
1403 * IPython/Magic.py (magic_psearch): new support for wildcard
1406 * IPython/Magic.py (magic_psearch): new support for wildcard
1404 patterns. Now, typing ?a*b will list all names which begin with a
1407 patterns. Now, typing ?a*b will list all names which begin with a
1405 and end in b, for example. The %psearch magic has full
1408 and end in b, for example. The %psearch magic has full
1406 docstrings. Many thanks to JΓΆrgen Stenarson
1409 docstrings. Many thanks to JΓΆrgen Stenarson
1407 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1410 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1408 implementing this functionality.
1411 implementing this functionality.
1409
1412
1410 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1413 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1411
1414
1412 * Manual: fixed long-standing annoyance of double-dashes (as in
1415 * Manual: fixed long-standing annoyance of double-dashes (as in
1413 --prefix=~, for example) being stripped in the HTML version. This
1416 --prefix=~, for example) being stripped in the HTML version. This
1414 is a latex2html bug, but a workaround was provided. Many thanks
1417 is a latex2html bug, but a workaround was provided. Many thanks
1415 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1418 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1416 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1419 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1417 rolling. This seemingly small issue had tripped a number of users
1420 rolling. This seemingly small issue had tripped a number of users
1418 when first installing, so I'm glad to see it gone.
1421 when first installing, so I'm glad to see it gone.
1419
1422
1420 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1423 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1421
1424
1422 * IPython/Extensions/numeric_formats.py: fix missing import,
1425 * IPython/Extensions/numeric_formats.py: fix missing import,
1423 reported by Stephen Walton.
1426 reported by Stephen Walton.
1424
1427
1425 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1428 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1426
1429
1427 * IPython/demo.py: finish demo module, fully documented now.
1430 * IPython/demo.py: finish demo module, fully documented now.
1428
1431
1429 * IPython/genutils.py (file_read): simple little utility to read a
1432 * IPython/genutils.py (file_read): simple little utility to read a
1430 file and ensure it's closed afterwards.
1433 file and ensure it's closed afterwards.
1431
1434
1432 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1433
1436
1434 * IPython/demo.py (Demo.__init__): added support for individually
1437 * IPython/demo.py (Demo.__init__): added support for individually
1435 tagging blocks for automatic execution.
1438 tagging blocks for automatic execution.
1436
1439
1437 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1440 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1438 syntax-highlighted python sources, requested by John.
1441 syntax-highlighted python sources, requested by John.
1439
1442
1440 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1443 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1441
1444
1442 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1445 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1443 finishing.
1446 finishing.
1444
1447
1445 * IPython/genutils.py (shlex_split): moved from Magic to here,
1448 * IPython/genutils.py (shlex_split): moved from Magic to here,
1446 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1449 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1447
1450
1448 * IPython/demo.py (Demo.__init__): added support for silent
1451 * IPython/demo.py (Demo.__init__): added support for silent
1449 blocks, improved marks as regexps, docstrings written.
1452 blocks, improved marks as regexps, docstrings written.
1450 (Demo.__init__): better docstring, added support for sys.argv.
1453 (Demo.__init__): better docstring, added support for sys.argv.
1451
1454
1452 * IPython/genutils.py (marquee): little utility used by the demo
1455 * IPython/genutils.py (marquee): little utility used by the demo
1453 code, handy in general.
1456 code, handy in general.
1454
1457
1455 * IPython/demo.py (Demo.__init__): new class for interactive
1458 * IPython/demo.py (Demo.__init__): new class for interactive
1456 demos. Not documented yet, I just wrote it in a hurry for
1459 demos. Not documented yet, I just wrote it in a hurry for
1457 scipy'05. Will docstring later.
1460 scipy'05. Will docstring later.
1458
1461
1459 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1462 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1460
1463
1461 * IPython/Shell.py (sigint_handler): Drastic simplification which
1464 * IPython/Shell.py (sigint_handler): Drastic simplification which
1462 also seems to make Ctrl-C work correctly across threads! This is
1465 also seems to make Ctrl-C work correctly across threads! This is
1463 so simple, that I can't beleive I'd missed it before. Needs more
1466 so simple, that I can't beleive I'd missed it before. Needs more
1464 testing, though.
1467 testing, though.
1465 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1468 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1466 like this before...
1469 like this before...
1467
1470
1468 * IPython/genutils.py (get_home_dir): add protection against
1471 * IPython/genutils.py (get_home_dir): add protection against
1469 non-dirs in win32 registry.
1472 non-dirs in win32 registry.
1470
1473
1471 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1474 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1472 bug where dict was mutated while iterating (pysh crash).
1475 bug where dict was mutated while iterating (pysh crash).
1473
1476
1474 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1477 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1475
1478
1476 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1479 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1477 spurious newlines added by this routine. After a report by
1480 spurious newlines added by this routine. After a report by
1478 F. Mantegazza.
1481 F. Mantegazza.
1479
1482
1480 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1483 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1481
1484
1482 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1485 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1483 calls. These were a leftover from the GTK 1.x days, and can cause
1486 calls. These were a leftover from the GTK 1.x days, and can cause
1484 problems in certain cases (after a report by John Hunter).
1487 problems in certain cases (after a report by John Hunter).
1485
1488
1486 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1489 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1487 os.getcwd() fails at init time. Thanks to patch from David Remahl
1490 os.getcwd() fails at init time. Thanks to patch from David Remahl
1488 <chmod007-AT-mac.com>.
1491 <chmod007-AT-mac.com>.
1489 (InteractiveShell.__init__): prevent certain special magics from
1492 (InteractiveShell.__init__): prevent certain special magics from
1490 being shadowed by aliases. Closes
1493 being shadowed by aliases. Closes
1491 http://www.scipy.net/roundup/ipython/issue41.
1494 http://www.scipy.net/roundup/ipython/issue41.
1492
1495
1493 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1496 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1494
1497
1495 * IPython/iplib.py (InteractiveShell.complete): Added new
1498 * IPython/iplib.py (InteractiveShell.complete): Added new
1496 top-level completion method to expose the completion mechanism
1499 top-level completion method to expose the completion mechanism
1497 beyond readline-based environments.
1500 beyond readline-based environments.
1498
1501
1499 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1502 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1500
1503
1501 * tools/ipsvnc (svnversion): fix svnversion capture.
1504 * tools/ipsvnc (svnversion): fix svnversion capture.
1502
1505
1503 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1506 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1504 attribute to self, which was missing. Before, it was set by a
1507 attribute to self, which was missing. Before, it was set by a
1505 routine which in certain cases wasn't being called, so the
1508 routine which in certain cases wasn't being called, so the
1506 instance could end up missing the attribute. This caused a crash.
1509 instance could end up missing the attribute. This caused a crash.
1507 Closes http://www.scipy.net/roundup/ipython/issue40.
1510 Closes http://www.scipy.net/roundup/ipython/issue40.
1508
1511
1509 2005-08-16 Fernando Perez <fperez@colorado.edu>
1512 2005-08-16 Fernando Perez <fperez@colorado.edu>
1510
1513
1511 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1514 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1512 contains non-string attribute. Closes
1515 contains non-string attribute. Closes
1513 http://www.scipy.net/roundup/ipython/issue38.
1516 http://www.scipy.net/roundup/ipython/issue38.
1514
1517
1515 2005-08-14 Fernando Perez <fperez@colorado.edu>
1518 2005-08-14 Fernando Perez <fperez@colorado.edu>
1516
1519
1517 * tools/ipsvnc: Minor improvements, to add changeset info.
1520 * tools/ipsvnc: Minor improvements, to add changeset info.
1518
1521
1519 2005-08-12 Fernando Perez <fperez@colorado.edu>
1522 2005-08-12 Fernando Perez <fperez@colorado.edu>
1520
1523
1521 * IPython/iplib.py (runsource): remove self.code_to_run_src
1524 * IPython/iplib.py (runsource): remove self.code_to_run_src
1522 attribute. I realized this is nothing more than
1525 attribute. I realized this is nothing more than
1523 '\n'.join(self.buffer), and having the same data in two different
1526 '\n'.join(self.buffer), and having the same data in two different
1524 places is just asking for synchronization bugs. This may impact
1527 places is just asking for synchronization bugs. This may impact
1525 people who have custom exception handlers, so I need to warn
1528 people who have custom exception handlers, so I need to warn
1526 ipython-dev about it (F. Mantegazza may use them).
1529 ipython-dev about it (F. Mantegazza may use them).
1527
1530
1528 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1531 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1529
1532
1530 * IPython/genutils.py: fix 2.2 compatibility (generators)
1533 * IPython/genutils.py: fix 2.2 compatibility (generators)
1531
1534
1532 2005-07-18 Fernando Perez <fperez@colorado.edu>
1535 2005-07-18 Fernando Perez <fperez@colorado.edu>
1533
1536
1534 * IPython/genutils.py (get_home_dir): fix to help users with
1537 * IPython/genutils.py (get_home_dir): fix to help users with
1535 invalid $HOME under win32.
1538 invalid $HOME under win32.
1536
1539
1537 2005-07-17 Fernando Perez <fperez@colorado.edu>
1540 2005-07-17 Fernando Perez <fperez@colorado.edu>
1538
1541
1539 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1542 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1540 some old hacks and clean up a bit other routines; code should be
1543 some old hacks and clean up a bit other routines; code should be
1541 simpler and a bit faster.
1544 simpler and a bit faster.
1542
1545
1543 * IPython/iplib.py (interact): removed some last-resort attempts
1546 * IPython/iplib.py (interact): removed some last-resort attempts
1544 to survive broken stdout/stderr. That code was only making it
1547 to survive broken stdout/stderr. That code was only making it
1545 harder to abstract out the i/o (necessary for gui integration),
1548 harder to abstract out the i/o (necessary for gui integration),
1546 and the crashes it could prevent were extremely rare in practice
1549 and the crashes it could prevent were extremely rare in practice
1547 (besides being fully user-induced in a pretty violent manner).
1550 (besides being fully user-induced in a pretty violent manner).
1548
1551
1549 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1552 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1550 Nothing major yet, but the code is simpler to read; this should
1553 Nothing major yet, but the code is simpler to read; this should
1551 make it easier to do more serious modifications in the future.
1554 make it easier to do more serious modifications in the future.
1552
1555
1553 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1556 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1554 which broke in .15 (thanks to a report by Ville).
1557 which broke in .15 (thanks to a report by Ville).
1555
1558
1556 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1559 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1557 be quite correct, I know next to nothing about unicode). This
1560 be quite correct, I know next to nothing about unicode). This
1558 will allow unicode strings to be used in prompts, amongst other
1561 will allow unicode strings to be used in prompts, amongst other
1559 cases. It also will prevent ipython from crashing when unicode
1562 cases. It also will prevent ipython from crashing when unicode
1560 shows up unexpectedly in many places. If ascii encoding fails, we
1563 shows up unexpectedly in many places. If ascii encoding fails, we
1561 assume utf_8. Currently the encoding is not a user-visible
1564 assume utf_8. Currently the encoding is not a user-visible
1562 setting, though it could be made so if there is demand for it.
1565 setting, though it could be made so if there is demand for it.
1563
1566
1564 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1567 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1565
1568
1566 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1569 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1567
1570
1568 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1571 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1569
1572
1570 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1573 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1571 code can work transparently for 2.2/2.3.
1574 code can work transparently for 2.2/2.3.
1572
1575
1573 2005-07-16 Fernando Perez <fperez@colorado.edu>
1576 2005-07-16 Fernando Perez <fperez@colorado.edu>
1574
1577
1575 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1578 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1576 out of the color scheme table used for coloring exception
1579 out of the color scheme table used for coloring exception
1577 tracebacks. This allows user code to add new schemes at runtime.
1580 tracebacks. This allows user code to add new schemes at runtime.
1578 This is a minimally modified version of the patch at
1581 This is a minimally modified version of the patch at
1579 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1582 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1580 for the contribution.
1583 for the contribution.
1581
1584
1582 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1585 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1583 slightly modified version of the patch in
1586 slightly modified version of the patch in
1584 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1587 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1585 to remove the previous try/except solution (which was costlier).
1588 to remove the previous try/except solution (which was costlier).
1586 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1589 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1587
1590
1588 2005-06-08 Fernando Perez <fperez@colorado.edu>
1591 2005-06-08 Fernando Perez <fperez@colorado.edu>
1589
1592
1590 * IPython/iplib.py (write/write_err): Add methods to abstract all
1593 * IPython/iplib.py (write/write_err): Add methods to abstract all
1591 I/O a bit more.
1594 I/O a bit more.
1592
1595
1593 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1596 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1594 warning, reported by Aric Hagberg, fix by JD Hunter.
1597 warning, reported by Aric Hagberg, fix by JD Hunter.
1595
1598
1596 2005-06-02 *** Released version 0.6.15
1599 2005-06-02 *** Released version 0.6.15
1597
1600
1598 2005-06-01 Fernando Perez <fperez@colorado.edu>
1601 2005-06-01 Fernando Perez <fperez@colorado.edu>
1599
1602
1600 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1603 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1601 tab-completion of filenames within open-quoted strings. Note that
1604 tab-completion of filenames within open-quoted strings. Note that
1602 this requires that in ~/.ipython/ipythonrc, users change the
1605 this requires that in ~/.ipython/ipythonrc, users change the
1603 readline delimiters configuration to read:
1606 readline delimiters configuration to read:
1604
1607
1605 readline_remove_delims -/~
1608 readline_remove_delims -/~
1606
1609
1607
1610
1608 2005-05-31 *** Released version 0.6.14
1611 2005-05-31 *** Released version 0.6.14
1609
1612
1610 2005-05-29 Fernando Perez <fperez@colorado.edu>
1613 2005-05-29 Fernando Perez <fperez@colorado.edu>
1611
1614
1612 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1615 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1613 with files not on the filesystem. Reported by Eliyahu Sandler
1616 with files not on the filesystem. Reported by Eliyahu Sandler
1614 <eli@gondolin.net>
1617 <eli@gondolin.net>
1615
1618
1616 2005-05-22 Fernando Perez <fperez@colorado.edu>
1619 2005-05-22 Fernando Perez <fperez@colorado.edu>
1617
1620
1618 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1621 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1619 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1622 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1620
1623
1621 2005-05-19 Fernando Perez <fperez@colorado.edu>
1624 2005-05-19 Fernando Perez <fperez@colorado.edu>
1622
1625
1623 * IPython/iplib.py (safe_execfile): close a file which could be
1626 * IPython/iplib.py (safe_execfile): close a file which could be
1624 left open (causing problems in win32, which locks open files).
1627 left open (causing problems in win32, which locks open files).
1625 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1628 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1626
1629
1627 2005-05-18 Fernando Perez <fperez@colorado.edu>
1630 2005-05-18 Fernando Perez <fperez@colorado.edu>
1628
1631
1629 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1632 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1630 keyword arguments correctly to safe_execfile().
1633 keyword arguments correctly to safe_execfile().
1631
1634
1632 2005-05-13 Fernando Perez <fperez@colorado.edu>
1635 2005-05-13 Fernando Perez <fperez@colorado.edu>
1633
1636
1634 * ipython.1: Added info about Qt to manpage, and threads warning
1637 * ipython.1: Added info about Qt to manpage, and threads warning
1635 to usage page (invoked with --help).
1638 to usage page (invoked with --help).
1636
1639
1637 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1640 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1638 new matcher (it goes at the end of the priority list) to do
1641 new matcher (it goes at the end of the priority list) to do
1639 tab-completion on named function arguments. Submitted by George
1642 tab-completion on named function arguments. Submitted by George
1640 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1643 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1641 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1644 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1642 for more details.
1645 for more details.
1643
1646
1644 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1647 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1645 SystemExit exceptions in the script being run. Thanks to a report
1648 SystemExit exceptions in the script being run. Thanks to a report
1646 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1649 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1647 producing very annoying behavior when running unit tests.
1650 producing very annoying behavior when running unit tests.
1648
1651
1649 2005-05-12 Fernando Perez <fperez@colorado.edu>
1652 2005-05-12 Fernando Perez <fperez@colorado.edu>
1650
1653
1651 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1654 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1652 which I'd broken (again) due to a changed regexp. In the process,
1655 which I'd broken (again) due to a changed regexp. In the process,
1653 added ';' as an escape to auto-quote the whole line without
1656 added ';' as an escape to auto-quote the whole line without
1654 splitting its arguments. Thanks to a report by Jerry McRae
1657 splitting its arguments. Thanks to a report by Jerry McRae
1655 <qrs0xyc02-AT-sneakemail.com>.
1658 <qrs0xyc02-AT-sneakemail.com>.
1656
1659
1657 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1660 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1658 possible crashes caused by a TokenError. Reported by Ed Schofield
1661 possible crashes caused by a TokenError. Reported by Ed Schofield
1659 <schofield-AT-ftw.at>.
1662 <schofield-AT-ftw.at>.
1660
1663
1661 2005-05-06 Fernando Perez <fperez@colorado.edu>
1664 2005-05-06 Fernando Perez <fperez@colorado.edu>
1662
1665
1663 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1666 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1664
1667
1665 2005-04-29 Fernando Perez <fperez@colorado.edu>
1668 2005-04-29 Fernando Perez <fperez@colorado.edu>
1666
1669
1667 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1670 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1668 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1671 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1669 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1672 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1670 which provides support for Qt interactive usage (similar to the
1673 which provides support for Qt interactive usage (similar to the
1671 existing one for WX and GTK). This had been often requested.
1674 existing one for WX and GTK). This had been often requested.
1672
1675
1673 2005-04-14 *** Released version 0.6.13
1676 2005-04-14 *** Released version 0.6.13
1674
1677
1675 2005-04-08 Fernando Perez <fperez@colorado.edu>
1678 2005-04-08 Fernando Perez <fperez@colorado.edu>
1676
1679
1677 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1680 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1678 from _ofind, which gets called on almost every input line. Now,
1681 from _ofind, which gets called on almost every input line. Now,
1679 we only try to get docstrings if they are actually going to be
1682 we only try to get docstrings if they are actually going to be
1680 used (the overhead of fetching unnecessary docstrings can be
1683 used (the overhead of fetching unnecessary docstrings can be
1681 noticeable for certain objects, such as Pyro proxies).
1684 noticeable for certain objects, such as Pyro proxies).
1682
1685
1683 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1686 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1684 for completers. For some reason I had been passing them the state
1687 for completers. For some reason I had been passing them the state
1685 variable, which completers never actually need, and was in
1688 variable, which completers never actually need, and was in
1686 conflict with the rlcompleter API. Custom completers ONLY need to
1689 conflict with the rlcompleter API. Custom completers ONLY need to
1687 take the text parameter.
1690 take the text parameter.
1688
1691
1689 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1692 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1690 work correctly in pysh. I've also moved all the logic which used
1693 work correctly in pysh. I've also moved all the logic which used
1691 to be in pysh.py here, which will prevent problems with future
1694 to be in pysh.py here, which will prevent problems with future
1692 upgrades. However, this time I must warn users to update their
1695 upgrades. However, this time I must warn users to update their
1693 pysh profile to include the line
1696 pysh profile to include the line
1694
1697
1695 import_all IPython.Extensions.InterpreterExec
1698 import_all IPython.Extensions.InterpreterExec
1696
1699
1697 because otherwise things won't work for them. They MUST also
1700 because otherwise things won't work for them. They MUST also
1698 delete pysh.py and the line
1701 delete pysh.py and the line
1699
1702
1700 execfile pysh.py
1703 execfile pysh.py
1701
1704
1702 from their ipythonrc-pysh.
1705 from their ipythonrc-pysh.
1703
1706
1704 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1707 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1705 robust in the face of objects whose dir() returns non-strings
1708 robust in the face of objects whose dir() returns non-strings
1706 (which it shouldn't, but some broken libs like ITK do). Thanks to
1709 (which it shouldn't, but some broken libs like ITK do). Thanks to
1707 a patch by John Hunter (implemented differently, though). Also
1710 a patch by John Hunter (implemented differently, though). Also
1708 minor improvements by using .extend instead of + on lists.
1711 minor improvements by using .extend instead of + on lists.
1709
1712
1710 * pysh.py:
1713 * pysh.py:
1711
1714
1712 2005-04-06 Fernando Perez <fperez@colorado.edu>
1715 2005-04-06 Fernando Perez <fperez@colorado.edu>
1713
1716
1714 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1717 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1715 by default, so that all users benefit from it. Those who don't
1718 by default, so that all users benefit from it. Those who don't
1716 want it can still turn it off.
1719 want it can still turn it off.
1717
1720
1718 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1721 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1719 config file, I'd forgotten about this, so users were getting it
1722 config file, I'd forgotten about this, so users were getting it
1720 off by default.
1723 off by default.
1721
1724
1722 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1725 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1723 consistency. Now magics can be called in multiline statements,
1726 consistency. Now magics can be called in multiline statements,
1724 and python variables can be expanded in magic calls via $var.
1727 and python variables can be expanded in magic calls via $var.
1725 This makes the magic system behave just like aliases or !system
1728 This makes the magic system behave just like aliases or !system
1726 calls.
1729 calls.
1727
1730
1728 2005-03-28 Fernando Perez <fperez@colorado.edu>
1731 2005-03-28 Fernando Perez <fperez@colorado.edu>
1729
1732
1730 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1733 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1731 expensive string additions for building command. Add support for
1734 expensive string additions for building command. Add support for
1732 trailing ';' when autocall is used.
1735 trailing ';' when autocall is used.
1733
1736
1734 2005-03-26 Fernando Perez <fperez@colorado.edu>
1737 2005-03-26 Fernando Perez <fperez@colorado.edu>
1735
1738
1736 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1739 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1737 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1740 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1738 ipython.el robust against prompts with any number of spaces
1741 ipython.el robust against prompts with any number of spaces
1739 (including 0) after the ':' character.
1742 (including 0) after the ':' character.
1740
1743
1741 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1744 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1742 continuation prompt, which misled users to think the line was
1745 continuation prompt, which misled users to think the line was
1743 already indented. Closes debian Bug#300847, reported to me by
1746 already indented. Closes debian Bug#300847, reported to me by
1744 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1747 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1745
1748
1746 2005-03-23 Fernando Perez <fperez@colorado.edu>
1749 2005-03-23 Fernando Perez <fperez@colorado.edu>
1747
1750
1748 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1751 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1749 properly aligned if they have embedded newlines.
1752 properly aligned if they have embedded newlines.
1750
1753
1751 * IPython/iplib.py (runlines): Add a public method to expose
1754 * IPython/iplib.py (runlines): Add a public method to expose
1752 IPython's code execution machinery, so that users can run strings
1755 IPython's code execution machinery, so that users can run strings
1753 as if they had been typed at the prompt interactively.
1756 as if they had been typed at the prompt interactively.
1754 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1757 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1755 methods which can call the system shell, but with python variable
1758 methods which can call the system shell, but with python variable
1756 expansion. The three such methods are: __IPYTHON__.system,
1759 expansion. The three such methods are: __IPYTHON__.system,
1757 .getoutput and .getoutputerror. These need to be documented in a
1760 .getoutput and .getoutputerror. These need to be documented in a
1758 'public API' section (to be written) of the manual.
1761 'public API' section (to be written) of the manual.
1759
1762
1760 2005-03-20 Fernando Perez <fperez@colorado.edu>
1763 2005-03-20 Fernando Perez <fperez@colorado.edu>
1761
1764
1762 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1765 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1763 for custom exception handling. This is quite powerful, and it
1766 for custom exception handling. This is quite powerful, and it
1764 allows for user-installable exception handlers which can trap
1767 allows for user-installable exception handlers which can trap
1765 custom exceptions at runtime and treat them separately from
1768 custom exceptions at runtime and treat them separately from
1766 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1769 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1767 Mantegazza <mantegazza-AT-ill.fr>.
1770 Mantegazza <mantegazza-AT-ill.fr>.
1768 (InteractiveShell.set_custom_completer): public API function to
1771 (InteractiveShell.set_custom_completer): public API function to
1769 add new completers at runtime.
1772 add new completers at runtime.
1770
1773
1771 2005-03-19 Fernando Perez <fperez@colorado.edu>
1774 2005-03-19 Fernando Perez <fperez@colorado.edu>
1772
1775
1773 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1776 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1774 allow objects which provide their docstrings via non-standard
1777 allow objects which provide their docstrings via non-standard
1775 mechanisms (like Pyro proxies) to still be inspected by ipython's
1778 mechanisms (like Pyro proxies) to still be inspected by ipython's
1776 ? system.
1779 ? system.
1777
1780
1778 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1781 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1779 automatic capture system. I tried quite hard to make it work
1782 automatic capture system. I tried quite hard to make it work
1780 reliably, and simply failed. I tried many combinations with the
1783 reliably, and simply failed. I tried many combinations with the
1781 subprocess module, but eventually nothing worked in all needed
1784 subprocess module, but eventually nothing worked in all needed
1782 cases (not blocking stdin for the child, duplicating stdout
1785 cases (not blocking stdin for the child, duplicating stdout
1783 without blocking, etc). The new %sc/%sx still do capture to these
1786 without blocking, etc). The new %sc/%sx still do capture to these
1784 magical list/string objects which make shell use much more
1787 magical list/string objects which make shell use much more
1785 conveninent, so not all is lost.
1788 conveninent, so not all is lost.
1786
1789
1787 XXX - FIX MANUAL for the change above!
1790 XXX - FIX MANUAL for the change above!
1788
1791
1789 (runsource): I copied code.py's runsource() into ipython to modify
1792 (runsource): I copied code.py's runsource() into ipython to modify
1790 it a bit. Now the code object and source to be executed are
1793 it a bit. Now the code object and source to be executed are
1791 stored in ipython. This makes this info accessible to third-party
1794 stored in ipython. This makes this info accessible to third-party
1792 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1795 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1793 Mantegazza <mantegazza-AT-ill.fr>.
1796 Mantegazza <mantegazza-AT-ill.fr>.
1794
1797
1795 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1798 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1796 history-search via readline (like C-p/C-n). I'd wanted this for a
1799 history-search via readline (like C-p/C-n). I'd wanted this for a
1797 long time, but only recently found out how to do it. For users
1800 long time, but only recently found out how to do it. For users
1798 who already have their ipythonrc files made and want this, just
1801 who already have their ipythonrc files made and want this, just
1799 add:
1802 add:
1800
1803
1801 readline_parse_and_bind "\e[A": history-search-backward
1804 readline_parse_and_bind "\e[A": history-search-backward
1802 readline_parse_and_bind "\e[B": history-search-forward
1805 readline_parse_and_bind "\e[B": history-search-forward
1803
1806
1804 2005-03-18 Fernando Perez <fperez@colorado.edu>
1807 2005-03-18 Fernando Perez <fperez@colorado.edu>
1805
1808
1806 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1809 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1807 LSString and SList classes which allow transparent conversions
1810 LSString and SList classes which allow transparent conversions
1808 between list mode and whitespace-separated string.
1811 between list mode and whitespace-separated string.
1809 (magic_r): Fix recursion problem in %r.
1812 (magic_r): Fix recursion problem in %r.
1810
1813
1811 * IPython/genutils.py (LSString): New class to be used for
1814 * IPython/genutils.py (LSString): New class to be used for
1812 automatic storage of the results of all alias/system calls in _o
1815 automatic storage of the results of all alias/system calls in _o
1813 and _e (stdout/err). These provide a .l/.list attribute which
1816 and _e (stdout/err). These provide a .l/.list attribute which
1814 does automatic splitting on newlines. This means that for most
1817 does automatic splitting on newlines. This means that for most
1815 uses, you'll never need to do capturing of output with %sc/%sx
1818 uses, you'll never need to do capturing of output with %sc/%sx
1816 anymore, since ipython keeps this always done for you. Note that
1819 anymore, since ipython keeps this always done for you. Note that
1817 only the LAST results are stored, the _o/e variables are
1820 only the LAST results are stored, the _o/e variables are
1818 overwritten on each call. If you need to save their contents
1821 overwritten on each call. If you need to save their contents
1819 further, simply bind them to any other name.
1822 further, simply bind them to any other name.
1820
1823
1821 2005-03-17 Fernando Perez <fperez@colorado.edu>
1824 2005-03-17 Fernando Perez <fperez@colorado.edu>
1822
1825
1823 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1826 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1824 prompt namespace handling.
1827 prompt namespace handling.
1825
1828
1826 2005-03-16 Fernando Perez <fperez@colorado.edu>
1829 2005-03-16 Fernando Perez <fperez@colorado.edu>
1827
1830
1828 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1831 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1829 classic prompts to be '>>> ' (final space was missing, and it
1832 classic prompts to be '>>> ' (final space was missing, and it
1830 trips the emacs python mode).
1833 trips the emacs python mode).
1831 (BasePrompt.__str__): Added safe support for dynamic prompt
1834 (BasePrompt.__str__): Added safe support for dynamic prompt
1832 strings. Now you can set your prompt string to be '$x', and the
1835 strings. Now you can set your prompt string to be '$x', and the
1833 value of x will be printed from your interactive namespace. The
1836 value of x will be printed from your interactive namespace. The
1834 interpolation syntax includes the full Itpl support, so
1837 interpolation syntax includes the full Itpl support, so
1835 ${foo()+x+bar()} is a valid prompt string now, and the function
1838 ${foo()+x+bar()} is a valid prompt string now, and the function
1836 calls will be made at runtime.
1839 calls will be made at runtime.
1837
1840
1838 2005-03-15 Fernando Perez <fperez@colorado.edu>
1841 2005-03-15 Fernando Perez <fperez@colorado.edu>
1839
1842
1840 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1843 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1841 avoid name clashes in pylab. %hist still works, it just forwards
1844 avoid name clashes in pylab. %hist still works, it just forwards
1842 the call to %history.
1845 the call to %history.
1843
1846
1844 2005-03-02 *** Released version 0.6.12
1847 2005-03-02 *** Released version 0.6.12
1845
1848
1846 2005-03-02 Fernando Perez <fperez@colorado.edu>
1849 2005-03-02 Fernando Perez <fperez@colorado.edu>
1847
1850
1848 * IPython/iplib.py (handle_magic): log magic calls properly as
1851 * IPython/iplib.py (handle_magic): log magic calls properly as
1849 ipmagic() function calls.
1852 ipmagic() function calls.
1850
1853
1851 * IPython/Magic.py (magic_time): Improved %time to support
1854 * IPython/Magic.py (magic_time): Improved %time to support
1852 statements and provide wall-clock as well as CPU time.
1855 statements and provide wall-clock as well as CPU time.
1853
1856
1854 2005-02-27 Fernando Perez <fperez@colorado.edu>
1857 2005-02-27 Fernando Perez <fperez@colorado.edu>
1855
1858
1856 * IPython/hooks.py: New hooks module, to expose user-modifiable
1859 * IPython/hooks.py: New hooks module, to expose user-modifiable
1857 IPython functionality in a clean manner. For now only the editor
1860 IPython functionality in a clean manner. For now only the editor
1858 hook is actually written, and other thigns which I intend to turn
1861 hook is actually written, and other thigns which I intend to turn
1859 into proper hooks aren't yet there. The display and prefilter
1862 into proper hooks aren't yet there. The display and prefilter
1860 stuff, for example, should be hooks. But at least now the
1863 stuff, for example, should be hooks. But at least now the
1861 framework is in place, and the rest can be moved here with more
1864 framework is in place, and the rest can be moved here with more
1862 time later. IPython had had a .hooks variable for a long time for
1865 time later. IPython had had a .hooks variable for a long time for
1863 this purpose, but I'd never actually used it for anything.
1866 this purpose, but I'd never actually used it for anything.
1864
1867
1865 2005-02-26 Fernando Perez <fperez@colorado.edu>
1868 2005-02-26 Fernando Perez <fperez@colorado.edu>
1866
1869
1867 * IPython/ipmaker.py (make_IPython): make the default ipython
1870 * IPython/ipmaker.py (make_IPython): make the default ipython
1868 directory be called _ipython under win32, to follow more the
1871 directory be called _ipython under win32, to follow more the
1869 naming peculiarities of that platform (where buggy software like
1872 naming peculiarities of that platform (where buggy software like
1870 Visual Sourcesafe breaks with .named directories). Reported by
1873 Visual Sourcesafe breaks with .named directories). Reported by
1871 Ville Vainio.
1874 Ville Vainio.
1872
1875
1873 2005-02-23 Fernando Perez <fperez@colorado.edu>
1876 2005-02-23 Fernando Perez <fperez@colorado.edu>
1874
1877
1875 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1878 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1876 auto_aliases for win32 which were causing problems. Users can
1879 auto_aliases for win32 which were causing problems. Users can
1877 define the ones they personally like.
1880 define the ones they personally like.
1878
1881
1879 2005-02-21 Fernando Perez <fperez@colorado.edu>
1882 2005-02-21 Fernando Perez <fperez@colorado.edu>
1880
1883
1881 * IPython/Magic.py (magic_time): new magic to time execution of
1884 * IPython/Magic.py (magic_time): new magic to time execution of
1882 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1885 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1883
1886
1884 2005-02-19 Fernando Perez <fperez@colorado.edu>
1887 2005-02-19 Fernando Perez <fperez@colorado.edu>
1885
1888
1886 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1889 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1887 into keys (for prompts, for example).
1890 into keys (for prompts, for example).
1888
1891
1889 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1892 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1890 prompts in case users want them. This introduces a small behavior
1893 prompts in case users want them. This introduces a small behavior
1891 change: ipython does not automatically add a space to all prompts
1894 change: ipython does not automatically add a space to all prompts
1892 anymore. To get the old prompts with a space, users should add it
1895 anymore. To get the old prompts with a space, users should add it
1893 manually to their ipythonrc file, so for example prompt_in1 should
1896 manually to their ipythonrc file, so for example prompt_in1 should
1894 now read 'In [\#]: ' instead of 'In [\#]:'.
1897 now read 'In [\#]: ' instead of 'In [\#]:'.
1895 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1898 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1896 file) to control left-padding of secondary prompts.
1899 file) to control left-padding of secondary prompts.
1897
1900
1898 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1901 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1899 the profiler can't be imported. Fix for Debian, which removed
1902 the profiler can't be imported. Fix for Debian, which removed
1900 profile.py because of License issues. I applied a slightly
1903 profile.py because of License issues. I applied a slightly
1901 modified version of the original Debian patch at
1904 modified version of the original Debian patch at
1902 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1905 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1903
1906
1904 2005-02-17 Fernando Perez <fperez@colorado.edu>
1907 2005-02-17 Fernando Perez <fperez@colorado.edu>
1905
1908
1906 * IPython/genutils.py (native_line_ends): Fix bug which would
1909 * IPython/genutils.py (native_line_ends): Fix bug which would
1907 cause improper line-ends under win32 b/c I was not opening files
1910 cause improper line-ends under win32 b/c I was not opening files
1908 in binary mode. Bug report and fix thanks to Ville.
1911 in binary mode. Bug report and fix thanks to Ville.
1909
1912
1910 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1913 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1911 trying to catch spurious foo[1] autocalls. My fix actually broke
1914 trying to catch spurious foo[1] autocalls. My fix actually broke
1912 ',/' autoquote/call with explicit escape (bad regexp).
1915 ',/' autoquote/call with explicit escape (bad regexp).
1913
1916
1914 2005-02-15 *** Released version 0.6.11
1917 2005-02-15 *** Released version 0.6.11
1915
1918
1916 2005-02-14 Fernando Perez <fperez@colorado.edu>
1919 2005-02-14 Fernando Perez <fperez@colorado.edu>
1917
1920
1918 * IPython/background_jobs.py: New background job management
1921 * IPython/background_jobs.py: New background job management
1919 subsystem. This is implemented via a new set of classes, and
1922 subsystem. This is implemented via a new set of classes, and
1920 IPython now provides a builtin 'jobs' object for background job
1923 IPython now provides a builtin 'jobs' object for background job
1921 execution. A convenience %bg magic serves as a lightweight
1924 execution. A convenience %bg magic serves as a lightweight
1922 frontend for starting the more common type of calls. This was
1925 frontend for starting the more common type of calls. This was
1923 inspired by discussions with B. Granger and the BackgroundCommand
1926 inspired by discussions with B. Granger and the BackgroundCommand
1924 class described in the book Python Scripting for Computational
1927 class described in the book Python Scripting for Computational
1925 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1928 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1926 (although ultimately no code from this text was used, as IPython's
1929 (although ultimately no code from this text was used, as IPython's
1927 system is a separate implementation).
1930 system is a separate implementation).
1928
1931
1929 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1932 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1930 to control the completion of single/double underscore names
1933 to control the completion of single/double underscore names
1931 separately. As documented in the example ipytonrc file, the
1934 separately. As documented in the example ipytonrc file, the
1932 readline_omit__names variable can now be set to 2, to omit even
1935 readline_omit__names variable can now be set to 2, to omit even
1933 single underscore names. Thanks to a patch by Brian Wong
1936 single underscore names. Thanks to a patch by Brian Wong
1934 <BrianWong-AT-AirgoNetworks.Com>.
1937 <BrianWong-AT-AirgoNetworks.Com>.
1935 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1938 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1936 be autocalled as foo([1]) if foo were callable. A problem for
1939 be autocalled as foo([1]) if foo were callable. A problem for
1937 things which are both callable and implement __getitem__.
1940 things which are both callable and implement __getitem__.
1938 (init_readline): Fix autoindentation for win32. Thanks to a patch
1941 (init_readline): Fix autoindentation for win32. Thanks to a patch
1939 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1942 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1940
1943
1941 2005-02-12 Fernando Perez <fperez@colorado.edu>
1944 2005-02-12 Fernando Perez <fperez@colorado.edu>
1942
1945
1943 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1946 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1944 which I had written long ago to sort out user error messages which
1947 which I had written long ago to sort out user error messages which
1945 may occur during startup. This seemed like a good idea initially,
1948 may occur during startup. This seemed like a good idea initially,
1946 but it has proven a disaster in retrospect. I don't want to
1949 but it has proven a disaster in retrospect. I don't want to
1947 change much code for now, so my fix is to set the internal 'debug'
1950 change much code for now, so my fix is to set the internal 'debug'
1948 flag to true everywhere, whose only job was precisely to control
1951 flag to true everywhere, whose only job was precisely to control
1949 this subsystem. This closes issue 28 (as well as avoiding all
1952 this subsystem. This closes issue 28 (as well as avoiding all
1950 sorts of strange hangups which occur from time to time).
1953 sorts of strange hangups which occur from time to time).
1951
1954
1952 2005-02-07 Fernando Perez <fperez@colorado.edu>
1955 2005-02-07 Fernando Perez <fperez@colorado.edu>
1953
1956
1954 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1957 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1955 previous call produced a syntax error.
1958 previous call produced a syntax error.
1956
1959
1957 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1960 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1958 classes without constructor.
1961 classes without constructor.
1959
1962
1960 2005-02-06 Fernando Perez <fperez@colorado.edu>
1963 2005-02-06 Fernando Perez <fperez@colorado.edu>
1961
1964
1962 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1965 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1963 completions with the results of each matcher, so we return results
1966 completions with the results of each matcher, so we return results
1964 to the user from all namespaces. This breaks with ipython
1967 to the user from all namespaces. This breaks with ipython
1965 tradition, but I think it's a nicer behavior. Now you get all
1968 tradition, but I think it's a nicer behavior. Now you get all
1966 possible completions listed, from all possible namespaces (python,
1969 possible completions listed, from all possible namespaces (python,
1967 filesystem, magics...) After a request by John Hunter
1970 filesystem, magics...) After a request by John Hunter
1968 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1971 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1969
1972
1970 2005-02-05 Fernando Perez <fperez@colorado.edu>
1973 2005-02-05 Fernando Perez <fperez@colorado.edu>
1971
1974
1972 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1975 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1973 the call had quote characters in it (the quotes were stripped).
1976 the call had quote characters in it (the quotes were stripped).
1974
1977
1975 2005-01-31 Fernando Perez <fperez@colorado.edu>
1978 2005-01-31 Fernando Perez <fperez@colorado.edu>
1976
1979
1977 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1980 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1978 Itpl.itpl() to make the code more robust against psyco
1981 Itpl.itpl() to make the code more robust against psyco
1979 optimizations.
1982 optimizations.
1980
1983
1981 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1984 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1982 of causing an exception. Quicker, cleaner.
1985 of causing an exception. Quicker, cleaner.
1983
1986
1984 2005-01-28 Fernando Perez <fperez@colorado.edu>
1987 2005-01-28 Fernando Perez <fperez@colorado.edu>
1985
1988
1986 * scripts/ipython_win_post_install.py (install): hardcode
1989 * scripts/ipython_win_post_install.py (install): hardcode
1987 sys.prefix+'python.exe' as the executable path. It turns out that
1990 sys.prefix+'python.exe' as the executable path. It turns out that
1988 during the post-installation run, sys.executable resolves to the
1991 during the post-installation run, sys.executable resolves to the
1989 name of the binary installer! I should report this as a distutils
1992 name of the binary installer! I should report this as a distutils
1990 bug, I think. I updated the .10 release with this tiny fix, to
1993 bug, I think. I updated the .10 release with this tiny fix, to
1991 avoid annoying the lists further.
1994 avoid annoying the lists further.
1992
1995
1993 2005-01-27 *** Released version 0.6.10
1996 2005-01-27 *** Released version 0.6.10
1994
1997
1995 2005-01-27 Fernando Perez <fperez@colorado.edu>
1998 2005-01-27 Fernando Perez <fperez@colorado.edu>
1996
1999
1997 * IPython/numutils.py (norm): Added 'inf' as optional name for
2000 * IPython/numutils.py (norm): Added 'inf' as optional name for
1998 L-infinity norm, included references to mathworld.com for vector
2001 L-infinity norm, included references to mathworld.com for vector
1999 norm definitions.
2002 norm definitions.
2000 (amin/amax): added amin/amax for array min/max. Similar to what
2003 (amin/amax): added amin/amax for array min/max. Similar to what
2001 pylab ships with after the recent reorganization of names.
2004 pylab ships with after the recent reorganization of names.
2002 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2005 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2003
2006
2004 * ipython.el: committed Alex's recent fixes and improvements.
2007 * ipython.el: committed Alex's recent fixes and improvements.
2005 Tested with python-mode from CVS, and it looks excellent. Since
2008 Tested with python-mode from CVS, and it looks excellent. Since
2006 python-mode hasn't released anything in a while, I'm temporarily
2009 python-mode hasn't released anything in a while, I'm temporarily
2007 putting a copy of today's CVS (v 4.70) of python-mode in:
2010 putting a copy of today's CVS (v 4.70) of python-mode in:
2008 http://ipython.scipy.org/tmp/python-mode.el
2011 http://ipython.scipy.org/tmp/python-mode.el
2009
2012
2010 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2013 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2011 sys.executable for the executable name, instead of assuming it's
2014 sys.executable for the executable name, instead of assuming it's
2012 called 'python.exe' (the post-installer would have produced broken
2015 called 'python.exe' (the post-installer would have produced broken
2013 setups on systems with a differently named python binary).
2016 setups on systems with a differently named python binary).
2014
2017
2015 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2018 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2016 references to os.linesep, to make the code more
2019 references to os.linesep, to make the code more
2017 platform-independent. This is also part of the win32 coloring
2020 platform-independent. This is also part of the win32 coloring
2018 fixes.
2021 fixes.
2019
2022
2020 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2023 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2021 lines, which actually cause coloring bugs because the length of
2024 lines, which actually cause coloring bugs because the length of
2022 the line is very difficult to correctly compute with embedded
2025 the line is very difficult to correctly compute with embedded
2023 escapes. This was the source of all the coloring problems under
2026 escapes. This was the source of all the coloring problems under
2024 Win32. I think that _finally_, Win32 users have a properly
2027 Win32. I think that _finally_, Win32 users have a properly
2025 working ipython in all respects. This would never have happened
2028 working ipython in all respects. This would never have happened
2026 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2029 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2027
2030
2028 2005-01-26 *** Released version 0.6.9
2031 2005-01-26 *** Released version 0.6.9
2029
2032
2030 2005-01-25 Fernando Perez <fperez@colorado.edu>
2033 2005-01-25 Fernando Perez <fperez@colorado.edu>
2031
2034
2032 * setup.py: finally, we have a true Windows installer, thanks to
2035 * setup.py: finally, we have a true Windows installer, thanks to
2033 the excellent work of Viktor Ransmayr
2036 the excellent work of Viktor Ransmayr
2034 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2037 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2035 Windows users. The setup routine is quite a bit cleaner thanks to
2038 Windows users. The setup routine is quite a bit cleaner thanks to
2036 this, and the post-install script uses the proper functions to
2039 this, and the post-install script uses the proper functions to
2037 allow a clean de-installation using the standard Windows Control
2040 allow a clean de-installation using the standard Windows Control
2038 Panel.
2041 Panel.
2039
2042
2040 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2043 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2041 environment variable under all OSes (including win32) if
2044 environment variable under all OSes (including win32) if
2042 available. This will give consistency to win32 users who have set
2045 available. This will give consistency to win32 users who have set
2043 this variable for any reason. If os.environ['HOME'] fails, the
2046 this variable for any reason. If os.environ['HOME'] fails, the
2044 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2047 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2045
2048
2046 2005-01-24 Fernando Perez <fperez@colorado.edu>
2049 2005-01-24 Fernando Perez <fperez@colorado.edu>
2047
2050
2048 * IPython/numutils.py (empty_like): add empty_like(), similar to
2051 * IPython/numutils.py (empty_like): add empty_like(), similar to
2049 zeros_like() but taking advantage of the new empty() Numeric routine.
2052 zeros_like() but taking advantage of the new empty() Numeric routine.
2050
2053
2051 2005-01-23 *** Released version 0.6.8
2054 2005-01-23 *** Released version 0.6.8
2052
2055
2053 2005-01-22 Fernando Perez <fperez@colorado.edu>
2056 2005-01-22 Fernando Perez <fperez@colorado.edu>
2054
2057
2055 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2058 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2056 automatic show() calls. After discussing things with JDH, it
2059 automatic show() calls. After discussing things with JDH, it
2057 turns out there are too many corner cases where this can go wrong.
2060 turns out there are too many corner cases where this can go wrong.
2058 It's best not to try to be 'too smart', and simply have ipython
2061 It's best not to try to be 'too smart', and simply have ipython
2059 reproduce as much as possible the default behavior of a normal
2062 reproduce as much as possible the default behavior of a normal
2060 python shell.
2063 python shell.
2061
2064
2062 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2065 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2063 line-splitting regexp and _prefilter() to avoid calling getattr()
2066 line-splitting regexp and _prefilter() to avoid calling getattr()
2064 on assignments. This closes
2067 on assignments. This closes
2065 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2068 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2066 readline uses getattr(), so a simple <TAB> keypress is still
2069 readline uses getattr(), so a simple <TAB> keypress is still
2067 enough to trigger getattr() calls on an object.
2070 enough to trigger getattr() calls on an object.
2068
2071
2069 2005-01-21 Fernando Perez <fperez@colorado.edu>
2072 2005-01-21 Fernando Perez <fperez@colorado.edu>
2070
2073
2071 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2074 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2072 docstring under pylab so it doesn't mask the original.
2075 docstring under pylab so it doesn't mask the original.
2073
2076
2074 2005-01-21 *** Released version 0.6.7
2077 2005-01-21 *** Released version 0.6.7
2075
2078
2076 2005-01-21 Fernando Perez <fperez@colorado.edu>
2079 2005-01-21 Fernando Perez <fperez@colorado.edu>
2077
2080
2078 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2081 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2079 signal handling for win32 users in multithreaded mode.
2082 signal handling for win32 users in multithreaded mode.
2080
2083
2081 2005-01-17 Fernando Perez <fperez@colorado.edu>
2084 2005-01-17 Fernando Perez <fperez@colorado.edu>
2082
2085
2083 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2086 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2084 instances with no __init__. After a crash report by Norbert Nemec
2087 instances with no __init__. After a crash report by Norbert Nemec
2085 <Norbert-AT-nemec-online.de>.
2088 <Norbert-AT-nemec-online.de>.
2086
2089
2087 2005-01-14 Fernando Perez <fperez@colorado.edu>
2090 2005-01-14 Fernando Perez <fperez@colorado.edu>
2088
2091
2089 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2092 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2090 names for verbose exceptions, when multiple dotted names and the
2093 names for verbose exceptions, when multiple dotted names and the
2091 'parent' object were present on the same line.
2094 'parent' object were present on the same line.
2092
2095
2093 2005-01-11 Fernando Perez <fperez@colorado.edu>
2096 2005-01-11 Fernando Perez <fperez@colorado.edu>
2094
2097
2095 * IPython/genutils.py (flag_calls): new utility to trap and flag
2098 * IPython/genutils.py (flag_calls): new utility to trap and flag
2096 calls in functions. I need it to clean up matplotlib support.
2099 calls in functions. I need it to clean up matplotlib support.
2097 Also removed some deprecated code in genutils.
2100 Also removed some deprecated code in genutils.
2098
2101
2099 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2102 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2100 that matplotlib scripts called with %run, which don't call show()
2103 that matplotlib scripts called with %run, which don't call show()
2101 themselves, still have their plotting windows open.
2104 themselves, still have their plotting windows open.
2102
2105
2103 2005-01-05 Fernando Perez <fperez@colorado.edu>
2106 2005-01-05 Fernando Perez <fperez@colorado.edu>
2104
2107
2105 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2108 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2106 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2109 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2107
2110
2108 2004-12-19 Fernando Perez <fperez@colorado.edu>
2111 2004-12-19 Fernando Perez <fperez@colorado.edu>
2109
2112
2110 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2113 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2111 parent_runcode, which was an eyesore. The same result can be
2114 parent_runcode, which was an eyesore. The same result can be
2112 obtained with Python's regular superclass mechanisms.
2115 obtained with Python's regular superclass mechanisms.
2113
2116
2114 2004-12-17 Fernando Perez <fperez@colorado.edu>
2117 2004-12-17 Fernando Perez <fperez@colorado.edu>
2115
2118
2116 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2119 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2117 reported by Prabhu.
2120 reported by Prabhu.
2118 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2121 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2119 sys.stderr) instead of explicitly calling sys.stderr. This helps
2122 sys.stderr) instead of explicitly calling sys.stderr. This helps
2120 maintain our I/O abstractions clean, for future GUI embeddings.
2123 maintain our I/O abstractions clean, for future GUI embeddings.
2121
2124
2122 * IPython/genutils.py (info): added new utility for sys.stderr
2125 * IPython/genutils.py (info): added new utility for sys.stderr
2123 unified info message handling (thin wrapper around warn()).
2126 unified info message handling (thin wrapper around warn()).
2124
2127
2125 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2128 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2126 composite (dotted) names on verbose exceptions.
2129 composite (dotted) names on verbose exceptions.
2127 (VerboseTB.nullrepr): harden against another kind of errors which
2130 (VerboseTB.nullrepr): harden against another kind of errors which
2128 Python's inspect module can trigger, and which were crashing
2131 Python's inspect module can trigger, and which were crashing
2129 IPython. Thanks to a report by Marco Lombardi
2132 IPython. Thanks to a report by Marco Lombardi
2130 <mlombard-AT-ma010192.hq.eso.org>.
2133 <mlombard-AT-ma010192.hq.eso.org>.
2131
2134
2132 2004-12-13 *** Released version 0.6.6
2135 2004-12-13 *** Released version 0.6.6
2133
2136
2134 2004-12-12 Fernando Perez <fperez@colorado.edu>
2137 2004-12-12 Fernando Perez <fperez@colorado.edu>
2135
2138
2136 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2139 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2137 generated by pygtk upon initialization if it was built without
2140 generated by pygtk upon initialization if it was built without
2138 threads (for matplotlib users). After a crash reported by
2141 threads (for matplotlib users). After a crash reported by
2139 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2142 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2140
2143
2141 * IPython/ipmaker.py (make_IPython): fix small bug in the
2144 * IPython/ipmaker.py (make_IPython): fix small bug in the
2142 import_some parameter for multiple imports.
2145 import_some parameter for multiple imports.
2143
2146
2144 * IPython/iplib.py (ipmagic): simplified the interface of
2147 * IPython/iplib.py (ipmagic): simplified the interface of
2145 ipmagic() to take a single string argument, just as it would be
2148 ipmagic() to take a single string argument, just as it would be
2146 typed at the IPython cmd line.
2149 typed at the IPython cmd line.
2147 (ipalias): Added new ipalias() with an interface identical to
2150 (ipalias): Added new ipalias() with an interface identical to
2148 ipmagic(). This completes exposing a pure python interface to the
2151 ipmagic(). This completes exposing a pure python interface to the
2149 alias and magic system, which can be used in loops or more complex
2152 alias and magic system, which can be used in loops or more complex
2150 code where IPython's automatic line mangling is not active.
2153 code where IPython's automatic line mangling is not active.
2151
2154
2152 * IPython/genutils.py (timing): changed interface of timing to
2155 * IPython/genutils.py (timing): changed interface of timing to
2153 simply run code once, which is the most common case. timings()
2156 simply run code once, which is the most common case. timings()
2154 remains unchanged, for the cases where you want multiple runs.
2157 remains unchanged, for the cases where you want multiple runs.
2155
2158
2156 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2159 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2157 bug where Python2.2 crashes with exec'ing code which does not end
2160 bug where Python2.2 crashes with exec'ing code which does not end
2158 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2161 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2159 before.
2162 before.
2160
2163
2161 2004-12-10 Fernando Perez <fperez@colorado.edu>
2164 2004-12-10 Fernando Perez <fperez@colorado.edu>
2162
2165
2163 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2166 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2164 -t to -T, to accomodate the new -t flag in %run (the %run and
2167 -t to -T, to accomodate the new -t flag in %run (the %run and
2165 %prun options are kind of intermixed, and it's not easy to change
2168 %prun options are kind of intermixed, and it's not easy to change
2166 this with the limitations of python's getopt).
2169 this with the limitations of python's getopt).
2167
2170
2168 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2171 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2169 the execution of scripts. It's not as fine-tuned as timeit.py,
2172 the execution of scripts. It's not as fine-tuned as timeit.py,
2170 but it works from inside ipython (and under 2.2, which lacks
2173 but it works from inside ipython (and under 2.2, which lacks
2171 timeit.py). Optionally a number of runs > 1 can be given for
2174 timeit.py). Optionally a number of runs > 1 can be given for
2172 timing very short-running code.
2175 timing very short-running code.
2173
2176
2174 * IPython/genutils.py (uniq_stable): new routine which returns a
2177 * IPython/genutils.py (uniq_stable): new routine which returns a
2175 list of unique elements in any iterable, but in stable order of
2178 list of unique elements in any iterable, but in stable order of
2176 appearance. I needed this for the ultraTB fixes, and it's a handy
2179 appearance. I needed this for the ultraTB fixes, and it's a handy
2177 utility.
2180 utility.
2178
2181
2179 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2182 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2180 dotted names in Verbose exceptions. This had been broken since
2183 dotted names in Verbose exceptions. This had been broken since
2181 the very start, now x.y will properly be printed in a Verbose
2184 the very start, now x.y will properly be printed in a Verbose
2182 traceback, instead of x being shown and y appearing always as an
2185 traceback, instead of x being shown and y appearing always as an
2183 'undefined global'. Getting this to work was a bit tricky,
2186 'undefined global'. Getting this to work was a bit tricky,
2184 because by default python tokenizers are stateless. Saved by
2187 because by default python tokenizers are stateless. Saved by
2185 python's ability to easily add a bit of state to an arbitrary
2188 python's ability to easily add a bit of state to an arbitrary
2186 function (without needing to build a full-blown callable object).
2189 function (without needing to build a full-blown callable object).
2187
2190
2188 Also big cleanup of this code, which had horrendous runtime
2191 Also big cleanup of this code, which had horrendous runtime
2189 lookups of zillions of attributes for colorization. Moved all
2192 lookups of zillions of attributes for colorization. Moved all
2190 this code into a few templates, which make it cleaner and quicker.
2193 this code into a few templates, which make it cleaner and quicker.
2191
2194
2192 Printout quality was also improved for Verbose exceptions: one
2195 Printout quality was also improved for Verbose exceptions: one
2193 variable per line, and memory addresses are printed (this can be
2196 variable per line, and memory addresses are printed (this can be
2194 quite handy in nasty debugging situations, which is what Verbose
2197 quite handy in nasty debugging situations, which is what Verbose
2195 is for).
2198 is for).
2196
2199
2197 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2200 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2198 the command line as scripts to be loaded by embedded instances.
2201 the command line as scripts to be loaded by embedded instances.
2199 Doing so has the potential for an infinite recursion if there are
2202 Doing so has the potential for an infinite recursion if there are
2200 exceptions thrown in the process. This fixes a strange crash
2203 exceptions thrown in the process. This fixes a strange crash
2201 reported by Philippe MULLER <muller-AT-irit.fr>.
2204 reported by Philippe MULLER <muller-AT-irit.fr>.
2202
2205
2203 2004-12-09 Fernando Perez <fperez@colorado.edu>
2206 2004-12-09 Fernando Perez <fperez@colorado.edu>
2204
2207
2205 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2208 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2206 to reflect new names in matplotlib, which now expose the
2209 to reflect new names in matplotlib, which now expose the
2207 matlab-compatible interface via a pylab module instead of the
2210 matlab-compatible interface via a pylab module instead of the
2208 'matlab' name. The new code is backwards compatible, so users of
2211 'matlab' name. The new code is backwards compatible, so users of
2209 all matplotlib versions are OK. Patch by J. Hunter.
2212 all matplotlib versions are OK. Patch by J. Hunter.
2210
2213
2211 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2214 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2212 of __init__ docstrings for instances (class docstrings are already
2215 of __init__ docstrings for instances (class docstrings are already
2213 automatically printed). Instances with customized docstrings
2216 automatically printed). Instances with customized docstrings
2214 (indep. of the class) are also recognized and all 3 separate
2217 (indep. of the class) are also recognized and all 3 separate
2215 docstrings are printed (instance, class, constructor). After some
2218 docstrings are printed (instance, class, constructor). After some
2216 comments/suggestions by J. Hunter.
2219 comments/suggestions by J. Hunter.
2217
2220
2218 2004-12-05 Fernando Perez <fperez@colorado.edu>
2221 2004-12-05 Fernando Perez <fperez@colorado.edu>
2219
2222
2220 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2223 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2221 warnings when tab-completion fails and triggers an exception.
2224 warnings when tab-completion fails and triggers an exception.
2222
2225
2223 2004-12-03 Fernando Perez <fperez@colorado.edu>
2226 2004-12-03 Fernando Perez <fperez@colorado.edu>
2224
2227
2225 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2228 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2226 be triggered when using 'run -p'. An incorrect option flag was
2229 be triggered when using 'run -p'. An incorrect option flag was
2227 being set ('d' instead of 'D').
2230 being set ('d' instead of 'D').
2228 (manpage): fix missing escaped \- sign.
2231 (manpage): fix missing escaped \- sign.
2229
2232
2230 2004-11-30 *** Released version 0.6.5
2233 2004-11-30 *** Released version 0.6.5
2231
2234
2232 2004-11-30 Fernando Perez <fperez@colorado.edu>
2235 2004-11-30 Fernando Perez <fperez@colorado.edu>
2233
2236
2234 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2237 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2235 setting with -d option.
2238 setting with -d option.
2236
2239
2237 * setup.py (docfiles): Fix problem where the doc glob I was using
2240 * setup.py (docfiles): Fix problem where the doc glob I was using
2238 was COMPLETELY BROKEN. It was giving the right files by pure
2241 was COMPLETELY BROKEN. It was giving the right files by pure
2239 accident, but failed once I tried to include ipython.el. Note:
2242 accident, but failed once I tried to include ipython.el. Note:
2240 glob() does NOT allow you to do exclusion on multiple endings!
2243 glob() does NOT allow you to do exclusion on multiple endings!
2241
2244
2242 2004-11-29 Fernando Perez <fperez@colorado.edu>
2245 2004-11-29 Fernando Perez <fperez@colorado.edu>
2243
2246
2244 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2247 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2245 the manpage as the source. Better formatting & consistency.
2248 the manpage as the source. Better formatting & consistency.
2246
2249
2247 * IPython/Magic.py (magic_run): Added new -d option, to run
2250 * IPython/Magic.py (magic_run): Added new -d option, to run
2248 scripts under the control of the python pdb debugger. Note that
2251 scripts under the control of the python pdb debugger. Note that
2249 this required changing the %prun option -d to -D, to avoid a clash
2252 this required changing the %prun option -d to -D, to avoid a clash
2250 (since %run must pass options to %prun, and getopt is too dumb to
2253 (since %run must pass options to %prun, and getopt is too dumb to
2251 handle options with string values with embedded spaces). Thanks
2254 handle options with string values with embedded spaces). Thanks
2252 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2255 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2253 (magic_who_ls): added type matching to %who and %whos, so that one
2256 (magic_who_ls): added type matching to %who and %whos, so that one
2254 can filter their output to only include variables of certain
2257 can filter their output to only include variables of certain
2255 types. Another suggestion by Matthew.
2258 types. Another suggestion by Matthew.
2256 (magic_whos): Added memory summaries in kb and Mb for arrays.
2259 (magic_whos): Added memory summaries in kb and Mb for arrays.
2257 (magic_who): Improve formatting (break lines every 9 vars).
2260 (magic_who): Improve formatting (break lines every 9 vars).
2258
2261
2259 2004-11-28 Fernando Perez <fperez@colorado.edu>
2262 2004-11-28 Fernando Perez <fperez@colorado.edu>
2260
2263
2261 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2264 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2262 cache when empty lines were present.
2265 cache when empty lines were present.
2263
2266
2264 2004-11-24 Fernando Perez <fperez@colorado.edu>
2267 2004-11-24 Fernando Perez <fperez@colorado.edu>
2265
2268
2266 * IPython/usage.py (__doc__): document the re-activated threading
2269 * IPython/usage.py (__doc__): document the re-activated threading
2267 options for WX and GTK.
2270 options for WX and GTK.
2268
2271
2269 2004-11-23 Fernando Perez <fperez@colorado.edu>
2272 2004-11-23 Fernando Perez <fperez@colorado.edu>
2270
2273
2271 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2274 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2272 the -wthread and -gthread options, along with a new -tk one to try
2275 the -wthread and -gthread options, along with a new -tk one to try
2273 and coordinate Tk threading with wx/gtk. The tk support is very
2276 and coordinate Tk threading with wx/gtk. The tk support is very
2274 platform dependent, since it seems to require Tcl and Tk to be
2277 platform dependent, since it seems to require Tcl and Tk to be
2275 built with threads (Fedora1/2 appears NOT to have it, but in
2278 built with threads (Fedora1/2 appears NOT to have it, but in
2276 Prabhu's Debian boxes it works OK). But even with some Tk
2279 Prabhu's Debian boxes it works OK). But even with some Tk
2277 limitations, this is a great improvement.
2280 limitations, this is a great improvement.
2278
2281
2279 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2282 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2280 info in user prompts. Patch by Prabhu.
2283 info in user prompts. Patch by Prabhu.
2281
2284
2282 2004-11-18 Fernando Perez <fperez@colorado.edu>
2285 2004-11-18 Fernando Perez <fperez@colorado.edu>
2283
2286
2284 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2287 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2285 EOFErrors and bail, to avoid infinite loops if a non-terminating
2288 EOFErrors and bail, to avoid infinite loops if a non-terminating
2286 file is fed into ipython. Patch submitted in issue 19 by user,
2289 file is fed into ipython. Patch submitted in issue 19 by user,
2287 many thanks.
2290 many thanks.
2288
2291
2289 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2292 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2290 autoquote/parens in continuation prompts, which can cause lots of
2293 autoquote/parens in continuation prompts, which can cause lots of
2291 problems. Closes roundup issue 20.
2294 problems. Closes roundup issue 20.
2292
2295
2293 2004-11-17 Fernando Perez <fperez@colorado.edu>
2296 2004-11-17 Fernando Perez <fperez@colorado.edu>
2294
2297
2295 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2298 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2296 reported as debian bug #280505. I'm not sure my local changelog
2299 reported as debian bug #280505. I'm not sure my local changelog
2297 entry has the proper debian format (Jack?).
2300 entry has the proper debian format (Jack?).
2298
2301
2299 2004-11-08 *** Released version 0.6.4
2302 2004-11-08 *** Released version 0.6.4
2300
2303
2301 2004-11-08 Fernando Perez <fperez@colorado.edu>
2304 2004-11-08 Fernando Perez <fperez@colorado.edu>
2302
2305
2303 * IPython/iplib.py (init_readline): Fix exit message for Windows
2306 * IPython/iplib.py (init_readline): Fix exit message for Windows
2304 when readline is active. Thanks to a report by Eric Jones
2307 when readline is active. Thanks to a report by Eric Jones
2305 <eric-AT-enthought.com>.
2308 <eric-AT-enthought.com>.
2306
2309
2307 2004-11-07 Fernando Perez <fperez@colorado.edu>
2310 2004-11-07 Fernando Perez <fperez@colorado.edu>
2308
2311
2309 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2312 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2310 sometimes seen by win2k/cygwin users.
2313 sometimes seen by win2k/cygwin users.
2311
2314
2312 2004-11-06 Fernando Perez <fperez@colorado.edu>
2315 2004-11-06 Fernando Perez <fperez@colorado.edu>
2313
2316
2314 * IPython/iplib.py (interact): Change the handling of %Exit from
2317 * IPython/iplib.py (interact): Change the handling of %Exit from
2315 trying to propagate a SystemExit to an internal ipython flag.
2318 trying to propagate a SystemExit to an internal ipython flag.
2316 This is less elegant than using Python's exception mechanism, but
2319 This is less elegant than using Python's exception mechanism, but
2317 I can't get that to work reliably with threads, so under -pylab
2320 I can't get that to work reliably with threads, so under -pylab
2318 %Exit was hanging IPython. Cross-thread exception handling is
2321 %Exit was hanging IPython. Cross-thread exception handling is
2319 really a bitch. Thaks to a bug report by Stephen Walton
2322 really a bitch. Thaks to a bug report by Stephen Walton
2320 <stephen.walton-AT-csun.edu>.
2323 <stephen.walton-AT-csun.edu>.
2321
2324
2322 2004-11-04 Fernando Perez <fperez@colorado.edu>
2325 2004-11-04 Fernando Perez <fperez@colorado.edu>
2323
2326
2324 * IPython/iplib.py (raw_input_original): store a pointer to the
2327 * IPython/iplib.py (raw_input_original): store a pointer to the
2325 true raw_input to harden against code which can modify it
2328 true raw_input to harden against code which can modify it
2326 (wx.py.PyShell does this and would otherwise crash ipython).
2329 (wx.py.PyShell does this and would otherwise crash ipython).
2327 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2330 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2328
2331
2329 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2332 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2330 Ctrl-C problem, which does not mess up the input line.
2333 Ctrl-C problem, which does not mess up the input line.
2331
2334
2332 2004-11-03 Fernando Perez <fperez@colorado.edu>
2335 2004-11-03 Fernando Perez <fperez@colorado.edu>
2333
2336
2334 * IPython/Release.py: Changed licensing to BSD, in all files.
2337 * IPython/Release.py: Changed licensing to BSD, in all files.
2335 (name): lowercase name for tarball/RPM release.
2338 (name): lowercase name for tarball/RPM release.
2336
2339
2337 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2340 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2338 use throughout ipython.
2341 use throughout ipython.
2339
2342
2340 * IPython/Magic.py (Magic._ofind): Switch to using the new
2343 * IPython/Magic.py (Magic._ofind): Switch to using the new
2341 OInspect.getdoc() function.
2344 OInspect.getdoc() function.
2342
2345
2343 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2346 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2344 of the line currently being canceled via Ctrl-C. It's extremely
2347 of the line currently being canceled via Ctrl-C. It's extremely
2345 ugly, but I don't know how to do it better (the problem is one of
2348 ugly, but I don't know how to do it better (the problem is one of
2346 handling cross-thread exceptions).
2349 handling cross-thread exceptions).
2347
2350
2348 2004-10-28 Fernando Perez <fperez@colorado.edu>
2351 2004-10-28 Fernando Perez <fperez@colorado.edu>
2349
2352
2350 * IPython/Shell.py (signal_handler): add signal handlers to trap
2353 * IPython/Shell.py (signal_handler): add signal handlers to trap
2351 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2354 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2352 report by Francesc Alted.
2355 report by Francesc Alted.
2353
2356
2354 2004-10-21 Fernando Perez <fperez@colorado.edu>
2357 2004-10-21 Fernando Perez <fperez@colorado.edu>
2355
2358
2356 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2359 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2357 to % for pysh syntax extensions.
2360 to % for pysh syntax extensions.
2358
2361
2359 2004-10-09 Fernando Perez <fperez@colorado.edu>
2362 2004-10-09 Fernando Perez <fperez@colorado.edu>
2360
2363
2361 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2364 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2362 arrays to print a more useful summary, without calling str(arr).
2365 arrays to print a more useful summary, without calling str(arr).
2363 This avoids the problem of extremely lengthy computations which
2366 This avoids the problem of extremely lengthy computations which
2364 occur if arr is large, and appear to the user as a system lockup
2367 occur if arr is large, and appear to the user as a system lockup
2365 with 100% cpu activity. After a suggestion by Kristian Sandberg
2368 with 100% cpu activity. After a suggestion by Kristian Sandberg
2366 <Kristian.Sandberg@colorado.edu>.
2369 <Kristian.Sandberg@colorado.edu>.
2367 (Magic.__init__): fix bug in global magic escapes not being
2370 (Magic.__init__): fix bug in global magic escapes not being
2368 correctly set.
2371 correctly set.
2369
2372
2370 2004-10-08 Fernando Perez <fperez@colorado.edu>
2373 2004-10-08 Fernando Perez <fperez@colorado.edu>
2371
2374
2372 * IPython/Magic.py (__license__): change to absolute imports of
2375 * IPython/Magic.py (__license__): change to absolute imports of
2373 ipython's own internal packages, to start adapting to the absolute
2376 ipython's own internal packages, to start adapting to the absolute
2374 import requirement of PEP-328.
2377 import requirement of PEP-328.
2375
2378
2376 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2379 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2377 files, and standardize author/license marks through the Release
2380 files, and standardize author/license marks through the Release
2378 module instead of having per/file stuff (except for files with
2381 module instead of having per/file stuff (except for files with
2379 particular licenses, like the MIT/PSF-licensed codes).
2382 particular licenses, like the MIT/PSF-licensed codes).
2380
2383
2381 * IPython/Debugger.py: remove dead code for python 2.1
2384 * IPython/Debugger.py: remove dead code for python 2.1
2382
2385
2383 2004-10-04 Fernando Perez <fperez@colorado.edu>
2386 2004-10-04 Fernando Perez <fperez@colorado.edu>
2384
2387
2385 * IPython/iplib.py (ipmagic): New function for accessing magics
2388 * IPython/iplib.py (ipmagic): New function for accessing magics
2386 via a normal python function call.
2389 via a normal python function call.
2387
2390
2388 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2391 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2389 from '@' to '%', to accomodate the new @decorator syntax of python
2392 from '@' to '%', to accomodate the new @decorator syntax of python
2390 2.4.
2393 2.4.
2391
2394
2392 2004-09-29 Fernando Perez <fperez@colorado.edu>
2395 2004-09-29 Fernando Perez <fperez@colorado.edu>
2393
2396
2394 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2397 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2395 matplotlib.use to prevent running scripts which try to switch
2398 matplotlib.use to prevent running scripts which try to switch
2396 interactive backends from within ipython. This will just crash
2399 interactive backends from within ipython. This will just crash
2397 the python interpreter, so we can't allow it (but a detailed error
2400 the python interpreter, so we can't allow it (but a detailed error
2398 is given to the user).
2401 is given to the user).
2399
2402
2400 2004-09-28 Fernando Perez <fperez@colorado.edu>
2403 2004-09-28 Fernando Perez <fperez@colorado.edu>
2401
2404
2402 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2405 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2403 matplotlib-related fixes so that using @run with non-matplotlib
2406 matplotlib-related fixes so that using @run with non-matplotlib
2404 scripts doesn't pop up spurious plot windows. This requires
2407 scripts doesn't pop up spurious plot windows. This requires
2405 matplotlib >= 0.63, where I had to make some changes as well.
2408 matplotlib >= 0.63, where I had to make some changes as well.
2406
2409
2407 * IPython/ipmaker.py (make_IPython): update version requirement to
2410 * IPython/ipmaker.py (make_IPython): update version requirement to
2408 python 2.2.
2411 python 2.2.
2409
2412
2410 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2413 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2411 banner arg for embedded customization.
2414 banner arg for embedded customization.
2412
2415
2413 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2416 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2414 explicit uses of __IP as the IPython's instance name. Now things
2417 explicit uses of __IP as the IPython's instance name. Now things
2415 are properly handled via the shell.name value. The actual code
2418 are properly handled via the shell.name value. The actual code
2416 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2419 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2417 is much better than before. I'll clean things completely when the
2420 is much better than before. I'll clean things completely when the
2418 magic stuff gets a real overhaul.
2421 magic stuff gets a real overhaul.
2419
2422
2420 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2423 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2421 minor changes to debian dir.
2424 minor changes to debian dir.
2422
2425
2423 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2426 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2424 pointer to the shell itself in the interactive namespace even when
2427 pointer to the shell itself in the interactive namespace even when
2425 a user-supplied dict is provided. This is needed for embedding
2428 a user-supplied dict is provided. This is needed for embedding
2426 purposes (found by tests with Michel Sanner).
2429 purposes (found by tests with Michel Sanner).
2427
2430
2428 2004-09-27 Fernando Perez <fperez@colorado.edu>
2431 2004-09-27 Fernando Perez <fperez@colorado.edu>
2429
2432
2430 * IPython/UserConfig/ipythonrc: remove []{} from
2433 * IPython/UserConfig/ipythonrc: remove []{} from
2431 readline_remove_delims, so that things like [modname.<TAB> do
2434 readline_remove_delims, so that things like [modname.<TAB> do
2432 proper completion. This disables [].TAB, but that's a less common
2435 proper completion. This disables [].TAB, but that's a less common
2433 case than module names in list comprehensions, for example.
2436 case than module names in list comprehensions, for example.
2434 Thanks to a report by Andrea Riciputi.
2437 Thanks to a report by Andrea Riciputi.
2435
2438
2436 2004-09-09 Fernando Perez <fperez@colorado.edu>
2439 2004-09-09 Fernando Perez <fperez@colorado.edu>
2437
2440
2438 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2441 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2439 blocking problems in win32 and osx. Fix by John.
2442 blocking problems in win32 and osx. Fix by John.
2440
2443
2441 2004-09-08 Fernando Perez <fperez@colorado.edu>
2444 2004-09-08 Fernando Perez <fperez@colorado.edu>
2442
2445
2443 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2446 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2444 for Win32 and OSX. Fix by John Hunter.
2447 for Win32 and OSX. Fix by John Hunter.
2445
2448
2446 2004-08-30 *** Released version 0.6.3
2449 2004-08-30 *** Released version 0.6.3
2447
2450
2448 2004-08-30 Fernando Perez <fperez@colorado.edu>
2451 2004-08-30 Fernando Perez <fperez@colorado.edu>
2449
2452
2450 * setup.py (isfile): Add manpages to list of dependent files to be
2453 * setup.py (isfile): Add manpages to list of dependent files to be
2451 updated.
2454 updated.
2452
2455
2453 2004-08-27 Fernando Perez <fperez@colorado.edu>
2456 2004-08-27 Fernando Perez <fperez@colorado.edu>
2454
2457
2455 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2458 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2456 for now. They don't really work with standalone WX/GTK code
2459 for now. They don't really work with standalone WX/GTK code
2457 (though matplotlib IS working fine with both of those backends).
2460 (though matplotlib IS working fine with both of those backends).
2458 This will neeed much more testing. I disabled most things with
2461 This will neeed much more testing. I disabled most things with
2459 comments, so turning it back on later should be pretty easy.
2462 comments, so turning it back on later should be pretty easy.
2460
2463
2461 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2464 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2462 autocalling of expressions like r'foo', by modifying the line
2465 autocalling of expressions like r'foo', by modifying the line
2463 split regexp. Closes
2466 split regexp. Closes
2464 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2467 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2465 Riley <ipythonbugs-AT-sabi.net>.
2468 Riley <ipythonbugs-AT-sabi.net>.
2466 (InteractiveShell.mainloop): honor --nobanner with banner
2469 (InteractiveShell.mainloop): honor --nobanner with banner
2467 extensions.
2470 extensions.
2468
2471
2469 * IPython/Shell.py: Significant refactoring of all classes, so
2472 * IPython/Shell.py: Significant refactoring of all classes, so
2470 that we can really support ALL matplotlib backends and threading
2473 that we can really support ALL matplotlib backends and threading
2471 models (John spotted a bug with Tk which required this). Now we
2474 models (John spotted a bug with Tk which required this). Now we
2472 should support single-threaded, WX-threads and GTK-threads, both
2475 should support single-threaded, WX-threads and GTK-threads, both
2473 for generic code and for matplotlib.
2476 for generic code and for matplotlib.
2474
2477
2475 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2478 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2476 -pylab, to simplify things for users. Will also remove the pylab
2479 -pylab, to simplify things for users. Will also remove the pylab
2477 profile, since now all of matplotlib configuration is directly
2480 profile, since now all of matplotlib configuration is directly
2478 handled here. This also reduces startup time.
2481 handled here. This also reduces startup time.
2479
2482
2480 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2483 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2481 shell wasn't being correctly called. Also in IPShellWX.
2484 shell wasn't being correctly called. Also in IPShellWX.
2482
2485
2483 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2486 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2484 fine-tune banner.
2487 fine-tune banner.
2485
2488
2486 * IPython/numutils.py (spike): Deprecate these spike functions,
2489 * IPython/numutils.py (spike): Deprecate these spike functions,
2487 delete (long deprecated) gnuplot_exec handler.
2490 delete (long deprecated) gnuplot_exec handler.
2488
2491
2489 2004-08-26 Fernando Perez <fperez@colorado.edu>
2492 2004-08-26 Fernando Perez <fperez@colorado.edu>
2490
2493
2491 * ipython.1: Update for threading options, plus some others which
2494 * ipython.1: Update for threading options, plus some others which
2492 were missing.
2495 were missing.
2493
2496
2494 * IPython/ipmaker.py (__call__): Added -wthread option for
2497 * IPython/ipmaker.py (__call__): Added -wthread option for
2495 wxpython thread handling. Make sure threading options are only
2498 wxpython thread handling. Make sure threading options are only
2496 valid at the command line.
2499 valid at the command line.
2497
2500
2498 * scripts/ipython: moved shell selection into a factory function
2501 * scripts/ipython: moved shell selection into a factory function
2499 in Shell.py, to keep the starter script to a minimum.
2502 in Shell.py, to keep the starter script to a minimum.
2500
2503
2501 2004-08-25 Fernando Perez <fperez@colorado.edu>
2504 2004-08-25 Fernando Perez <fperez@colorado.edu>
2502
2505
2503 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2506 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2504 John. Along with some recent changes he made to matplotlib, the
2507 John. Along with some recent changes he made to matplotlib, the
2505 next versions of both systems should work very well together.
2508 next versions of both systems should work very well together.
2506
2509
2507 2004-08-24 Fernando Perez <fperez@colorado.edu>
2510 2004-08-24 Fernando Perez <fperez@colorado.edu>
2508
2511
2509 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2512 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2510 tried to switch the profiling to using hotshot, but I'm getting
2513 tried to switch the profiling to using hotshot, but I'm getting
2511 strange errors from prof.runctx() there. I may be misreading the
2514 strange errors from prof.runctx() there. I may be misreading the
2512 docs, but it looks weird. For now the profiling code will
2515 docs, but it looks weird. For now the profiling code will
2513 continue to use the standard profiler.
2516 continue to use the standard profiler.
2514
2517
2515 2004-08-23 Fernando Perez <fperez@colorado.edu>
2518 2004-08-23 Fernando Perez <fperez@colorado.edu>
2516
2519
2517 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2520 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2518 threaded shell, by John Hunter. It's not quite ready yet, but
2521 threaded shell, by John Hunter. It's not quite ready yet, but
2519 close.
2522 close.
2520
2523
2521 2004-08-22 Fernando Perez <fperez@colorado.edu>
2524 2004-08-22 Fernando Perez <fperez@colorado.edu>
2522
2525
2523 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2526 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2524 in Magic and ultraTB.
2527 in Magic and ultraTB.
2525
2528
2526 * ipython.1: document threading options in manpage.
2529 * ipython.1: document threading options in manpage.
2527
2530
2528 * scripts/ipython: Changed name of -thread option to -gthread,
2531 * scripts/ipython: Changed name of -thread option to -gthread,
2529 since this is GTK specific. I want to leave the door open for a
2532 since this is GTK specific. I want to leave the door open for a
2530 -wthread option for WX, which will most likely be necessary. This
2533 -wthread option for WX, which will most likely be necessary. This
2531 change affects usage and ipmaker as well.
2534 change affects usage and ipmaker as well.
2532
2535
2533 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2536 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2534 handle the matplotlib shell issues. Code by John Hunter
2537 handle the matplotlib shell issues. Code by John Hunter
2535 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2538 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2536 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2539 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2537 broken (and disabled for end users) for now, but it puts the
2540 broken (and disabled for end users) for now, but it puts the
2538 infrastructure in place.
2541 infrastructure in place.
2539
2542
2540 2004-08-21 Fernando Perez <fperez@colorado.edu>
2543 2004-08-21 Fernando Perez <fperez@colorado.edu>
2541
2544
2542 * ipythonrc-pylab: Add matplotlib support.
2545 * ipythonrc-pylab: Add matplotlib support.
2543
2546
2544 * matplotlib_config.py: new files for matplotlib support, part of
2547 * matplotlib_config.py: new files for matplotlib support, part of
2545 the pylab profile.
2548 the pylab profile.
2546
2549
2547 * IPython/usage.py (__doc__): documented the threading options.
2550 * IPython/usage.py (__doc__): documented the threading options.
2548
2551
2549 2004-08-20 Fernando Perez <fperez@colorado.edu>
2552 2004-08-20 Fernando Perez <fperez@colorado.edu>
2550
2553
2551 * ipython: Modified the main calling routine to handle the -thread
2554 * ipython: Modified the main calling routine to handle the -thread
2552 and -mpthread options. This needs to be done as a top-level hack,
2555 and -mpthread options. This needs to be done as a top-level hack,
2553 because it determines which class to instantiate for IPython
2556 because it determines which class to instantiate for IPython
2554 itself.
2557 itself.
2555
2558
2556 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2559 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2557 classes to support multithreaded GTK operation without blocking,
2560 classes to support multithreaded GTK operation without blocking,
2558 and matplotlib with all backends. This is a lot of still very
2561 and matplotlib with all backends. This is a lot of still very
2559 experimental code, and threads are tricky. So it may still have a
2562 experimental code, and threads are tricky. So it may still have a
2560 few rough edges... This code owes a lot to
2563 few rough edges... This code owes a lot to
2561 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2564 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2562 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2565 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2563 to John Hunter for all the matplotlib work.
2566 to John Hunter for all the matplotlib work.
2564
2567
2565 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2568 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2566 options for gtk thread and matplotlib support.
2569 options for gtk thread and matplotlib support.
2567
2570
2568 2004-08-16 Fernando Perez <fperez@colorado.edu>
2571 2004-08-16 Fernando Perez <fperez@colorado.edu>
2569
2572
2570 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2573 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2571 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2574 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2572 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2575 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2573
2576
2574 2004-08-11 Fernando Perez <fperez@colorado.edu>
2577 2004-08-11 Fernando Perez <fperez@colorado.edu>
2575
2578
2576 * setup.py (isfile): Fix build so documentation gets updated for
2579 * setup.py (isfile): Fix build so documentation gets updated for
2577 rpms (it was only done for .tgz builds).
2580 rpms (it was only done for .tgz builds).
2578
2581
2579 2004-08-10 Fernando Perez <fperez@colorado.edu>
2582 2004-08-10 Fernando Perez <fperez@colorado.edu>
2580
2583
2581 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2584 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2582
2585
2583 * iplib.py : Silence syntax error exceptions in tab-completion.
2586 * iplib.py : Silence syntax error exceptions in tab-completion.
2584
2587
2585 2004-08-05 Fernando Perez <fperez@colorado.edu>
2588 2004-08-05 Fernando Perez <fperez@colorado.edu>
2586
2589
2587 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2590 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2588 'color off' mark for continuation prompts. This was causing long
2591 'color off' mark for continuation prompts. This was causing long
2589 continuation lines to mis-wrap.
2592 continuation lines to mis-wrap.
2590
2593
2591 2004-08-01 Fernando Perez <fperez@colorado.edu>
2594 2004-08-01 Fernando Perez <fperez@colorado.edu>
2592
2595
2593 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2596 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2594 for building ipython to be a parameter. All this is necessary
2597 for building ipython to be a parameter. All this is necessary
2595 right now to have a multithreaded version, but this insane
2598 right now to have a multithreaded version, but this insane
2596 non-design will be cleaned up soon. For now, it's a hack that
2599 non-design will be cleaned up soon. For now, it's a hack that
2597 works.
2600 works.
2598
2601
2599 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2602 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2600 args in various places. No bugs so far, but it's a dangerous
2603 args in various places. No bugs so far, but it's a dangerous
2601 practice.
2604 practice.
2602
2605
2603 2004-07-31 Fernando Perez <fperez@colorado.edu>
2606 2004-07-31 Fernando Perez <fperez@colorado.edu>
2604
2607
2605 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2608 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2606 fix completion of files with dots in their names under most
2609 fix completion of files with dots in their names under most
2607 profiles (pysh was OK because the completion order is different).
2610 profiles (pysh was OK because the completion order is different).
2608
2611
2609 2004-07-27 Fernando Perez <fperez@colorado.edu>
2612 2004-07-27 Fernando Perez <fperez@colorado.edu>
2610
2613
2611 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2614 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2612 keywords manually, b/c the one in keyword.py was removed in python
2615 keywords manually, b/c the one in keyword.py was removed in python
2613 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2616 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2614 This is NOT a bug under python 2.3 and earlier.
2617 This is NOT a bug under python 2.3 and earlier.
2615
2618
2616 2004-07-26 Fernando Perez <fperez@colorado.edu>
2619 2004-07-26 Fernando Perez <fperez@colorado.edu>
2617
2620
2618 * IPython/ultraTB.py (VerboseTB.text): Add another
2621 * IPython/ultraTB.py (VerboseTB.text): Add another
2619 linecache.checkcache() call to try to prevent inspect.py from
2622 linecache.checkcache() call to try to prevent inspect.py from
2620 crashing under python 2.3. I think this fixes
2623 crashing under python 2.3. I think this fixes
2621 http://www.scipy.net/roundup/ipython/issue17.
2624 http://www.scipy.net/roundup/ipython/issue17.
2622
2625
2623 2004-07-26 *** Released version 0.6.2
2626 2004-07-26 *** Released version 0.6.2
2624
2627
2625 2004-07-26 Fernando Perez <fperez@colorado.edu>
2628 2004-07-26 Fernando Perez <fperez@colorado.edu>
2626
2629
2627 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2630 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2628 fail for any number.
2631 fail for any number.
2629 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2632 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2630 empty bookmarks.
2633 empty bookmarks.
2631
2634
2632 2004-07-26 *** Released version 0.6.1
2635 2004-07-26 *** Released version 0.6.1
2633
2636
2634 2004-07-26 Fernando Perez <fperez@colorado.edu>
2637 2004-07-26 Fernando Perez <fperez@colorado.edu>
2635
2638
2636 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2639 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2637
2640
2638 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2641 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2639 escaping '()[]{}' in filenames.
2642 escaping '()[]{}' in filenames.
2640
2643
2641 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2644 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2642 Python 2.2 users who lack a proper shlex.split.
2645 Python 2.2 users who lack a proper shlex.split.
2643
2646
2644 2004-07-19 Fernando Perez <fperez@colorado.edu>
2647 2004-07-19 Fernando Perez <fperez@colorado.edu>
2645
2648
2646 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2649 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2647 for reading readline's init file. I follow the normal chain:
2650 for reading readline's init file. I follow the normal chain:
2648 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2651 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2649 report by Mike Heeter. This closes
2652 report by Mike Heeter. This closes
2650 http://www.scipy.net/roundup/ipython/issue16.
2653 http://www.scipy.net/roundup/ipython/issue16.
2651
2654
2652 2004-07-18 Fernando Perez <fperez@colorado.edu>
2655 2004-07-18 Fernando Perez <fperez@colorado.edu>
2653
2656
2654 * IPython/iplib.py (__init__): Add better handling of '\' under
2657 * IPython/iplib.py (__init__): Add better handling of '\' under
2655 Win32 for filenames. After a patch by Ville.
2658 Win32 for filenames. After a patch by Ville.
2656
2659
2657 2004-07-17 Fernando Perez <fperez@colorado.edu>
2660 2004-07-17 Fernando Perez <fperez@colorado.edu>
2658
2661
2659 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2662 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2660 autocalling would be triggered for 'foo is bar' if foo is
2663 autocalling would be triggered for 'foo is bar' if foo is
2661 callable. I also cleaned up the autocall detection code to use a
2664 callable. I also cleaned up the autocall detection code to use a
2662 regexp, which is faster. Bug reported by Alexander Schmolck.
2665 regexp, which is faster. Bug reported by Alexander Schmolck.
2663
2666
2664 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2667 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2665 '?' in them would confuse the help system. Reported by Alex
2668 '?' in them would confuse the help system. Reported by Alex
2666 Schmolck.
2669 Schmolck.
2667
2670
2668 2004-07-16 Fernando Perez <fperez@colorado.edu>
2671 2004-07-16 Fernando Perez <fperez@colorado.edu>
2669
2672
2670 * IPython/GnuplotInteractive.py (__all__): added plot2.
2673 * IPython/GnuplotInteractive.py (__all__): added plot2.
2671
2674
2672 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2675 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2673 plotting dictionaries, lists or tuples of 1d arrays.
2676 plotting dictionaries, lists or tuples of 1d arrays.
2674
2677
2675 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2678 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2676 optimizations.
2679 optimizations.
2677
2680
2678 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2681 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2679 the information which was there from Janko's original IPP code:
2682 the information which was there from Janko's original IPP code:
2680
2683
2681 03.05.99 20:53 porto.ifm.uni-kiel.de
2684 03.05.99 20:53 porto.ifm.uni-kiel.de
2682 --Started changelog.
2685 --Started changelog.
2683 --make clear do what it say it does
2686 --make clear do what it say it does
2684 --added pretty output of lines from inputcache
2687 --added pretty output of lines from inputcache
2685 --Made Logger a mixin class, simplifies handling of switches
2688 --Made Logger a mixin class, simplifies handling of switches
2686 --Added own completer class. .string<TAB> expands to last history
2689 --Added own completer class. .string<TAB> expands to last history
2687 line which starts with string. The new expansion is also present
2690 line which starts with string. The new expansion is also present
2688 with Ctrl-r from the readline library. But this shows, who this
2691 with Ctrl-r from the readline library. But this shows, who this
2689 can be done for other cases.
2692 can be done for other cases.
2690 --Added convention that all shell functions should accept a
2693 --Added convention that all shell functions should accept a
2691 parameter_string This opens the door for different behaviour for
2694 parameter_string This opens the door for different behaviour for
2692 each function. @cd is a good example of this.
2695 each function. @cd is a good example of this.
2693
2696
2694 04.05.99 12:12 porto.ifm.uni-kiel.de
2697 04.05.99 12:12 porto.ifm.uni-kiel.de
2695 --added logfile rotation
2698 --added logfile rotation
2696 --added new mainloop method which freezes first the namespace
2699 --added new mainloop method which freezes first the namespace
2697
2700
2698 07.05.99 21:24 porto.ifm.uni-kiel.de
2701 07.05.99 21:24 porto.ifm.uni-kiel.de
2699 --added the docreader classes. Now there is a help system.
2702 --added the docreader classes. Now there is a help system.
2700 -This is only a first try. Currently it's not easy to put new
2703 -This is only a first try. Currently it's not easy to put new
2701 stuff in the indices. But this is the way to go. Info would be
2704 stuff in the indices. But this is the way to go. Info would be
2702 better, but HTML is every where and not everybody has an info
2705 better, but HTML is every where and not everybody has an info
2703 system installed and it's not so easy to change html-docs to info.
2706 system installed and it's not so easy to change html-docs to info.
2704 --added global logfile option
2707 --added global logfile option
2705 --there is now a hook for object inspection method pinfo needs to
2708 --there is now a hook for object inspection method pinfo needs to
2706 be provided for this. Can be reached by two '??'.
2709 be provided for this. Can be reached by two '??'.
2707
2710
2708 08.05.99 20:51 porto.ifm.uni-kiel.de
2711 08.05.99 20:51 porto.ifm.uni-kiel.de
2709 --added a README
2712 --added a README
2710 --bug in rc file. Something has changed so functions in the rc
2713 --bug in rc file. Something has changed so functions in the rc
2711 file need to reference the shell and not self. Not clear if it's a
2714 file need to reference the shell and not self. Not clear if it's a
2712 bug or feature.
2715 bug or feature.
2713 --changed rc file for new behavior
2716 --changed rc file for new behavior
2714
2717
2715 2004-07-15 Fernando Perez <fperez@colorado.edu>
2718 2004-07-15 Fernando Perez <fperez@colorado.edu>
2716
2719
2717 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2720 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2718 cache was falling out of sync in bizarre manners when multi-line
2721 cache was falling out of sync in bizarre manners when multi-line
2719 input was present. Minor optimizations and cleanup.
2722 input was present. Minor optimizations and cleanup.
2720
2723
2721 (Logger): Remove old Changelog info for cleanup. This is the
2724 (Logger): Remove old Changelog info for cleanup. This is the
2722 information which was there from Janko's original code:
2725 information which was there from Janko's original code:
2723
2726
2724 Changes to Logger: - made the default log filename a parameter
2727 Changes to Logger: - made the default log filename a parameter
2725
2728
2726 - put a check for lines beginning with !@? in log(). Needed
2729 - put a check for lines beginning with !@? in log(). Needed
2727 (even if the handlers properly log their lines) for mid-session
2730 (even if the handlers properly log their lines) for mid-session
2728 logging activation to work properly. Without this, lines logged
2731 logging activation to work properly. Without this, lines logged
2729 in mid session, which get read from the cache, would end up
2732 in mid session, which get read from the cache, would end up
2730 'bare' (with !@? in the open) in the log. Now they are caught
2733 'bare' (with !@? in the open) in the log. Now they are caught
2731 and prepended with a #.
2734 and prepended with a #.
2732
2735
2733 * IPython/iplib.py (InteractiveShell.init_readline): added check
2736 * IPython/iplib.py (InteractiveShell.init_readline): added check
2734 in case MagicCompleter fails to be defined, so we don't crash.
2737 in case MagicCompleter fails to be defined, so we don't crash.
2735
2738
2736 2004-07-13 Fernando Perez <fperez@colorado.edu>
2739 2004-07-13 Fernando Perez <fperez@colorado.edu>
2737
2740
2738 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2741 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2739 of EPS if the requested filename ends in '.eps'.
2742 of EPS if the requested filename ends in '.eps'.
2740
2743
2741 2004-07-04 Fernando Perez <fperez@colorado.edu>
2744 2004-07-04 Fernando Perez <fperez@colorado.edu>
2742
2745
2743 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2746 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2744 escaping of quotes when calling the shell.
2747 escaping of quotes when calling the shell.
2745
2748
2746 2004-07-02 Fernando Perez <fperez@colorado.edu>
2749 2004-07-02 Fernando Perez <fperez@colorado.edu>
2747
2750
2748 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2751 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2749 gettext not working because we were clobbering '_'. Fixes
2752 gettext not working because we were clobbering '_'. Fixes
2750 http://www.scipy.net/roundup/ipython/issue6.
2753 http://www.scipy.net/roundup/ipython/issue6.
2751
2754
2752 2004-07-01 Fernando Perez <fperez@colorado.edu>
2755 2004-07-01 Fernando Perez <fperez@colorado.edu>
2753
2756
2754 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2757 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2755 into @cd. Patch by Ville.
2758 into @cd. Patch by Ville.
2756
2759
2757 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2760 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2758 new function to store things after ipmaker runs. Patch by Ville.
2761 new function to store things after ipmaker runs. Patch by Ville.
2759 Eventually this will go away once ipmaker is removed and the class
2762 Eventually this will go away once ipmaker is removed and the class
2760 gets cleaned up, but for now it's ok. Key functionality here is
2763 gets cleaned up, but for now it's ok. Key functionality here is
2761 the addition of the persistent storage mechanism, a dict for
2764 the addition of the persistent storage mechanism, a dict for
2762 keeping data across sessions (for now just bookmarks, but more can
2765 keeping data across sessions (for now just bookmarks, but more can
2763 be implemented later).
2766 be implemented later).
2764
2767
2765 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2768 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2766 persistent across sections. Patch by Ville, I modified it
2769 persistent across sections. Patch by Ville, I modified it
2767 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2770 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2768 added a '-l' option to list all bookmarks.
2771 added a '-l' option to list all bookmarks.
2769
2772
2770 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2773 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2771 center for cleanup. Registered with atexit.register(). I moved
2774 center for cleanup. Registered with atexit.register(). I moved
2772 here the old exit_cleanup(). After a patch by Ville.
2775 here the old exit_cleanup(). After a patch by Ville.
2773
2776
2774 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2777 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2775 characters in the hacked shlex_split for python 2.2.
2778 characters in the hacked shlex_split for python 2.2.
2776
2779
2777 * IPython/iplib.py (file_matches): more fixes to filenames with
2780 * IPython/iplib.py (file_matches): more fixes to filenames with
2778 whitespace in them. It's not perfect, but limitations in python's
2781 whitespace in them. It's not perfect, but limitations in python's
2779 readline make it impossible to go further.
2782 readline make it impossible to go further.
2780
2783
2781 2004-06-29 Fernando Perez <fperez@colorado.edu>
2784 2004-06-29 Fernando Perez <fperez@colorado.edu>
2782
2785
2783 * IPython/iplib.py (file_matches): escape whitespace correctly in
2786 * IPython/iplib.py (file_matches): escape whitespace correctly in
2784 filename completions. Bug reported by Ville.
2787 filename completions. Bug reported by Ville.
2785
2788
2786 2004-06-28 Fernando Perez <fperez@colorado.edu>
2789 2004-06-28 Fernando Perez <fperez@colorado.edu>
2787
2790
2788 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2791 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2789 the history file will be called 'history-PROFNAME' (or just
2792 the history file will be called 'history-PROFNAME' (or just
2790 'history' if no profile is loaded). I was getting annoyed at
2793 'history' if no profile is loaded). I was getting annoyed at
2791 getting my Numerical work history clobbered by pysh sessions.
2794 getting my Numerical work history clobbered by pysh sessions.
2792
2795
2793 * IPython/iplib.py (InteractiveShell.__init__): Internal
2796 * IPython/iplib.py (InteractiveShell.__init__): Internal
2794 getoutputerror() function so that we can honor the system_verbose
2797 getoutputerror() function so that we can honor the system_verbose
2795 flag for _all_ system calls. I also added escaping of #
2798 flag for _all_ system calls. I also added escaping of #
2796 characters here to avoid confusing Itpl.
2799 characters here to avoid confusing Itpl.
2797
2800
2798 * IPython/Magic.py (shlex_split): removed call to shell in
2801 * IPython/Magic.py (shlex_split): removed call to shell in
2799 parse_options and replaced it with shlex.split(). The annoying
2802 parse_options and replaced it with shlex.split(). The annoying
2800 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2803 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2801 to backport it from 2.3, with several frail hacks (the shlex
2804 to backport it from 2.3, with several frail hacks (the shlex
2802 module is rather limited in 2.2). Thanks to a suggestion by Ville
2805 module is rather limited in 2.2). Thanks to a suggestion by Ville
2803 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2806 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2804 problem.
2807 problem.
2805
2808
2806 (Magic.magic_system_verbose): new toggle to print the actual
2809 (Magic.magic_system_verbose): new toggle to print the actual
2807 system calls made by ipython. Mainly for debugging purposes.
2810 system calls made by ipython. Mainly for debugging purposes.
2808
2811
2809 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2812 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2810 doesn't support persistence. Reported (and fix suggested) by
2813 doesn't support persistence. Reported (and fix suggested) by
2811 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2814 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2812
2815
2813 2004-06-26 Fernando Perez <fperez@colorado.edu>
2816 2004-06-26 Fernando Perez <fperez@colorado.edu>
2814
2817
2815 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2818 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2816 continue prompts.
2819 continue prompts.
2817
2820
2818 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2821 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2819 function (basically a big docstring) and a few more things here to
2822 function (basically a big docstring) and a few more things here to
2820 speedup startup. pysh.py is now very lightweight. We want because
2823 speedup startup. pysh.py is now very lightweight. We want because
2821 it gets execfile'd, while InterpreterExec gets imported, so
2824 it gets execfile'd, while InterpreterExec gets imported, so
2822 byte-compilation saves time.
2825 byte-compilation saves time.
2823
2826
2824 2004-06-25 Fernando Perez <fperez@colorado.edu>
2827 2004-06-25 Fernando Perez <fperez@colorado.edu>
2825
2828
2826 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2829 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2827 -NUM', which was recently broken.
2830 -NUM', which was recently broken.
2828
2831
2829 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2832 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2830 in multi-line input (but not !!, which doesn't make sense there).
2833 in multi-line input (but not !!, which doesn't make sense there).
2831
2834
2832 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2835 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2833 It's just too useful, and people can turn it off in the less
2836 It's just too useful, and people can turn it off in the less
2834 common cases where it's a problem.
2837 common cases where it's a problem.
2835
2838
2836 2004-06-24 Fernando Perez <fperez@colorado.edu>
2839 2004-06-24 Fernando Perez <fperez@colorado.edu>
2837
2840
2838 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2841 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2839 special syntaxes (like alias calling) is now allied in multi-line
2842 special syntaxes (like alias calling) is now allied in multi-line
2840 input. This is still _very_ experimental, but it's necessary for
2843 input. This is still _very_ experimental, but it's necessary for
2841 efficient shell usage combining python looping syntax with system
2844 efficient shell usage combining python looping syntax with system
2842 calls. For now it's restricted to aliases, I don't think it
2845 calls. For now it's restricted to aliases, I don't think it
2843 really even makes sense to have this for magics.
2846 really even makes sense to have this for magics.
2844
2847
2845 2004-06-23 Fernando Perez <fperez@colorado.edu>
2848 2004-06-23 Fernando Perez <fperez@colorado.edu>
2846
2849
2847 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2850 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2848 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2851 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2849
2852
2850 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2853 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2851 extensions under Windows (after code sent by Gary Bishop). The
2854 extensions under Windows (after code sent by Gary Bishop). The
2852 extensions considered 'executable' are stored in IPython's rc
2855 extensions considered 'executable' are stored in IPython's rc
2853 structure as win_exec_ext.
2856 structure as win_exec_ext.
2854
2857
2855 * IPython/genutils.py (shell): new function, like system() but
2858 * IPython/genutils.py (shell): new function, like system() but
2856 without return value. Very useful for interactive shell work.
2859 without return value. Very useful for interactive shell work.
2857
2860
2858 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2861 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2859 delete aliases.
2862 delete aliases.
2860
2863
2861 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2864 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2862 sure that the alias table doesn't contain python keywords.
2865 sure that the alias table doesn't contain python keywords.
2863
2866
2864 2004-06-21 Fernando Perez <fperez@colorado.edu>
2867 2004-06-21 Fernando Perez <fperez@colorado.edu>
2865
2868
2866 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2869 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2867 non-existent items are found in $PATH. Reported by Thorsten.
2870 non-existent items are found in $PATH. Reported by Thorsten.
2868
2871
2869 2004-06-20 Fernando Perez <fperez@colorado.edu>
2872 2004-06-20 Fernando Perez <fperez@colorado.edu>
2870
2873
2871 * IPython/iplib.py (complete): modified the completer so that the
2874 * IPython/iplib.py (complete): modified the completer so that the
2872 order of priorities can be easily changed at runtime.
2875 order of priorities can be easily changed at runtime.
2873
2876
2874 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2877 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2875 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2878 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2876
2879
2877 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2880 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2878 expand Python variables prepended with $ in all system calls. The
2881 expand Python variables prepended with $ in all system calls. The
2879 same was done to InteractiveShell.handle_shell_escape. Now all
2882 same was done to InteractiveShell.handle_shell_escape. Now all
2880 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2883 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2881 expansion of python variables and expressions according to the
2884 expansion of python variables and expressions according to the
2882 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2885 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2883
2886
2884 Though PEP-215 has been rejected, a similar (but simpler) one
2887 Though PEP-215 has been rejected, a similar (but simpler) one
2885 seems like it will go into Python 2.4, PEP-292 -
2888 seems like it will go into Python 2.4, PEP-292 -
2886 http://www.python.org/peps/pep-0292.html.
2889 http://www.python.org/peps/pep-0292.html.
2887
2890
2888 I'll keep the full syntax of PEP-215, since IPython has since the
2891 I'll keep the full syntax of PEP-215, since IPython has since the
2889 start used Ka-Ping Yee's reference implementation discussed there
2892 start used Ka-Ping Yee's reference implementation discussed there
2890 (Itpl), and I actually like the powerful semantics it offers.
2893 (Itpl), and I actually like the powerful semantics it offers.
2891
2894
2892 In order to access normal shell variables, the $ has to be escaped
2895 In order to access normal shell variables, the $ has to be escaped
2893 via an extra $. For example:
2896 via an extra $. For example:
2894
2897
2895 In [7]: PATH='a python variable'
2898 In [7]: PATH='a python variable'
2896
2899
2897 In [8]: !echo $PATH
2900 In [8]: !echo $PATH
2898 a python variable
2901 a python variable
2899
2902
2900 In [9]: !echo $$PATH
2903 In [9]: !echo $$PATH
2901 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2904 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2902
2905
2903 (Magic.parse_options): escape $ so the shell doesn't evaluate
2906 (Magic.parse_options): escape $ so the shell doesn't evaluate
2904 things prematurely.
2907 things prematurely.
2905
2908
2906 * IPython/iplib.py (InteractiveShell.call_alias): added the
2909 * IPython/iplib.py (InteractiveShell.call_alias): added the
2907 ability for aliases to expand python variables via $.
2910 ability for aliases to expand python variables via $.
2908
2911
2909 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2912 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2910 system, now there's a @rehash/@rehashx pair of magics. These work
2913 system, now there's a @rehash/@rehashx pair of magics. These work
2911 like the csh rehash command, and can be invoked at any time. They
2914 like the csh rehash command, and can be invoked at any time. They
2912 build a table of aliases to everything in the user's $PATH
2915 build a table of aliases to everything in the user's $PATH
2913 (@rehash uses everything, @rehashx is slower but only adds
2916 (@rehash uses everything, @rehashx is slower but only adds
2914 executable files). With this, the pysh.py-based shell profile can
2917 executable files). With this, the pysh.py-based shell profile can
2915 now simply call rehash upon startup, and full access to all
2918 now simply call rehash upon startup, and full access to all
2916 programs in the user's path is obtained.
2919 programs in the user's path is obtained.
2917
2920
2918 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2921 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2919 functionality is now fully in place. I removed the old dynamic
2922 functionality is now fully in place. I removed the old dynamic
2920 code generation based approach, in favor of a much lighter one
2923 code generation based approach, in favor of a much lighter one
2921 based on a simple dict. The advantage is that this allows me to
2924 based on a simple dict. The advantage is that this allows me to
2922 now have thousands of aliases with negligible cost (unthinkable
2925 now have thousands of aliases with negligible cost (unthinkable
2923 with the old system).
2926 with the old system).
2924
2927
2925 2004-06-19 Fernando Perez <fperez@colorado.edu>
2928 2004-06-19 Fernando Perez <fperez@colorado.edu>
2926
2929
2927 * IPython/iplib.py (__init__): extended MagicCompleter class to
2930 * IPython/iplib.py (__init__): extended MagicCompleter class to
2928 also complete (last in priority) on user aliases.
2931 also complete (last in priority) on user aliases.
2929
2932
2930 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2933 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2931 call to eval.
2934 call to eval.
2932 (ItplNS.__init__): Added a new class which functions like Itpl,
2935 (ItplNS.__init__): Added a new class which functions like Itpl,
2933 but allows configuring the namespace for the evaluation to occur
2936 but allows configuring the namespace for the evaluation to occur
2934 in.
2937 in.
2935
2938
2936 2004-06-18 Fernando Perez <fperez@colorado.edu>
2939 2004-06-18 Fernando Perez <fperez@colorado.edu>
2937
2940
2938 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2941 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2939 better message when 'exit' or 'quit' are typed (a common newbie
2942 better message when 'exit' or 'quit' are typed (a common newbie
2940 confusion).
2943 confusion).
2941
2944
2942 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2945 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2943 check for Windows users.
2946 check for Windows users.
2944
2947
2945 * IPython/iplib.py (InteractiveShell.user_setup): removed
2948 * IPython/iplib.py (InteractiveShell.user_setup): removed
2946 disabling of colors for Windows. I'll test at runtime and issue a
2949 disabling of colors for Windows. I'll test at runtime and issue a
2947 warning if Gary's readline isn't found, as to nudge users to
2950 warning if Gary's readline isn't found, as to nudge users to
2948 download it.
2951 download it.
2949
2952
2950 2004-06-16 Fernando Perez <fperez@colorado.edu>
2953 2004-06-16 Fernando Perez <fperez@colorado.edu>
2951
2954
2952 * IPython/genutils.py (Stream.__init__): changed to print errors
2955 * IPython/genutils.py (Stream.__init__): changed to print errors
2953 to sys.stderr. I had a circular dependency here. Now it's
2956 to sys.stderr. I had a circular dependency here. Now it's
2954 possible to run ipython as IDLE's shell (consider this pre-alpha,
2957 possible to run ipython as IDLE's shell (consider this pre-alpha,
2955 since true stdout things end up in the starting terminal instead
2958 since true stdout things end up in the starting terminal instead
2956 of IDLE's out).
2959 of IDLE's out).
2957
2960
2958 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2961 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2959 users who haven't # updated their prompt_in2 definitions. Remove
2962 users who haven't # updated their prompt_in2 definitions. Remove
2960 eventually.
2963 eventually.
2961 (multiple_replace): added credit to original ASPN recipe.
2964 (multiple_replace): added credit to original ASPN recipe.
2962
2965
2963 2004-06-15 Fernando Perez <fperez@colorado.edu>
2966 2004-06-15 Fernando Perez <fperez@colorado.edu>
2964
2967
2965 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2968 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2966 list of auto-defined aliases.
2969 list of auto-defined aliases.
2967
2970
2968 2004-06-13 Fernando Perez <fperez@colorado.edu>
2971 2004-06-13 Fernando Perez <fperez@colorado.edu>
2969
2972
2970 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2973 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2971 install was really requested (so setup.py can be used for other
2974 install was really requested (so setup.py can be used for other
2972 things under Windows).
2975 things under Windows).
2973
2976
2974 2004-06-10 Fernando Perez <fperez@colorado.edu>
2977 2004-06-10 Fernando Perez <fperez@colorado.edu>
2975
2978
2976 * IPython/Logger.py (Logger.create_log): Manually remove any old
2979 * IPython/Logger.py (Logger.create_log): Manually remove any old
2977 backup, since os.remove may fail under Windows. Fixes bug
2980 backup, since os.remove may fail under Windows. Fixes bug
2978 reported by Thorsten.
2981 reported by Thorsten.
2979
2982
2980 2004-06-09 Fernando Perez <fperez@colorado.edu>
2983 2004-06-09 Fernando Perez <fperez@colorado.edu>
2981
2984
2982 * examples/example-embed.py: fixed all references to %n (replaced
2985 * examples/example-embed.py: fixed all references to %n (replaced
2983 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2986 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2984 for all examples and the manual as well.
2987 for all examples and the manual as well.
2985
2988
2986 2004-06-08 Fernando Perez <fperez@colorado.edu>
2989 2004-06-08 Fernando Perez <fperez@colorado.edu>
2987
2990
2988 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2991 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2989 alignment and color management. All 3 prompt subsystems now
2992 alignment and color management. All 3 prompt subsystems now
2990 inherit from BasePrompt.
2993 inherit from BasePrompt.
2991
2994
2992 * tools/release: updates for windows installer build and tag rpms
2995 * tools/release: updates for windows installer build and tag rpms
2993 with python version (since paths are fixed).
2996 with python version (since paths are fixed).
2994
2997
2995 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2998 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2996 which will become eventually obsolete. Also fixed the default
2999 which will become eventually obsolete. Also fixed the default
2997 prompt_in2 to use \D, so at least new users start with the correct
3000 prompt_in2 to use \D, so at least new users start with the correct
2998 defaults.
3001 defaults.
2999 WARNING: Users with existing ipythonrc files will need to apply
3002 WARNING: Users with existing ipythonrc files will need to apply
3000 this fix manually!
3003 this fix manually!
3001
3004
3002 * setup.py: make windows installer (.exe). This is finally the
3005 * setup.py: make windows installer (.exe). This is finally the
3003 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3006 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3004 which I hadn't included because it required Python 2.3 (or recent
3007 which I hadn't included because it required Python 2.3 (or recent
3005 distutils).
3008 distutils).
3006
3009
3007 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3010 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3008 usage of new '\D' escape.
3011 usage of new '\D' escape.
3009
3012
3010 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3013 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3011 lacks os.getuid())
3014 lacks os.getuid())
3012 (CachedOutput.set_colors): Added the ability to turn coloring
3015 (CachedOutput.set_colors): Added the ability to turn coloring
3013 on/off with @colors even for manually defined prompt colors. It
3016 on/off with @colors even for manually defined prompt colors. It
3014 uses a nasty global, but it works safely and via the generic color
3017 uses a nasty global, but it works safely and via the generic color
3015 handling mechanism.
3018 handling mechanism.
3016 (Prompt2.__init__): Introduced new escape '\D' for continuation
3019 (Prompt2.__init__): Introduced new escape '\D' for continuation
3017 prompts. It represents the counter ('\#') as dots.
3020 prompts. It represents the counter ('\#') as dots.
3018 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3021 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3019 need to update their ipythonrc files and replace '%n' with '\D' in
3022 need to update their ipythonrc files and replace '%n' with '\D' in
3020 their prompt_in2 settings everywhere. Sorry, but there's
3023 their prompt_in2 settings everywhere. Sorry, but there's
3021 otherwise no clean way to get all prompts to properly align. The
3024 otherwise no clean way to get all prompts to properly align. The
3022 ipythonrc shipped with IPython has been updated.
3025 ipythonrc shipped with IPython has been updated.
3023
3026
3024 2004-06-07 Fernando Perez <fperez@colorado.edu>
3027 2004-06-07 Fernando Perez <fperez@colorado.edu>
3025
3028
3026 * setup.py (isfile): Pass local_icons option to latex2html, so the
3029 * setup.py (isfile): Pass local_icons option to latex2html, so the
3027 resulting HTML file is self-contained. Thanks to
3030 resulting HTML file is self-contained. Thanks to
3028 dryice-AT-liu.com.cn for the tip.
3031 dryice-AT-liu.com.cn for the tip.
3029
3032
3030 * pysh.py: I created a new profile 'shell', which implements a
3033 * pysh.py: I created a new profile 'shell', which implements a
3031 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3034 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3032 system shell, nor will it become one anytime soon. It's mainly
3035 system shell, nor will it become one anytime soon. It's mainly
3033 meant to illustrate the use of the new flexible bash-like prompts.
3036 meant to illustrate the use of the new flexible bash-like prompts.
3034 I guess it could be used by hardy souls for true shell management,
3037 I guess it could be used by hardy souls for true shell management,
3035 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3038 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3036 profile. This uses the InterpreterExec extension provided by
3039 profile. This uses the InterpreterExec extension provided by
3037 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3040 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3038
3041
3039 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3042 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3040 auto-align itself with the length of the previous input prompt
3043 auto-align itself with the length of the previous input prompt
3041 (taking into account the invisible color escapes).
3044 (taking into account the invisible color escapes).
3042 (CachedOutput.__init__): Large restructuring of this class. Now
3045 (CachedOutput.__init__): Large restructuring of this class. Now
3043 all three prompts (primary1, primary2, output) are proper objects,
3046 all three prompts (primary1, primary2, output) are proper objects,
3044 managed by the 'parent' CachedOutput class. The code is still a
3047 managed by the 'parent' CachedOutput class. The code is still a
3045 bit hackish (all prompts share state via a pointer to the cache),
3048 bit hackish (all prompts share state via a pointer to the cache),
3046 but it's overall far cleaner than before.
3049 but it's overall far cleaner than before.
3047
3050
3048 * IPython/genutils.py (getoutputerror): modified to add verbose,
3051 * IPython/genutils.py (getoutputerror): modified to add verbose,
3049 debug and header options. This makes the interface of all getout*
3052 debug and header options. This makes the interface of all getout*
3050 functions uniform.
3053 functions uniform.
3051 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3054 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3052
3055
3053 * IPython/Magic.py (Magic.default_option): added a function to
3056 * IPython/Magic.py (Magic.default_option): added a function to
3054 allow registering default options for any magic command. This
3057 allow registering default options for any magic command. This
3055 makes it easy to have profiles which customize the magics globally
3058 makes it easy to have profiles which customize the magics globally
3056 for a certain use. The values set through this function are
3059 for a certain use. The values set through this function are
3057 picked up by the parse_options() method, which all magics should
3060 picked up by the parse_options() method, which all magics should
3058 use to parse their options.
3061 use to parse their options.
3059
3062
3060 * IPython/genutils.py (warn): modified the warnings framework to
3063 * IPython/genutils.py (warn): modified the warnings framework to
3061 use the Term I/O class. I'm trying to slowly unify all of
3064 use the Term I/O class. I'm trying to slowly unify all of
3062 IPython's I/O operations to pass through Term.
3065 IPython's I/O operations to pass through Term.
3063
3066
3064 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3067 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3065 the secondary prompt to correctly match the length of the primary
3068 the secondary prompt to correctly match the length of the primary
3066 one for any prompt. Now multi-line code will properly line up
3069 one for any prompt. Now multi-line code will properly line up
3067 even for path dependent prompts, such as the new ones available
3070 even for path dependent prompts, such as the new ones available
3068 via the prompt_specials.
3071 via the prompt_specials.
3069
3072
3070 2004-06-06 Fernando Perez <fperez@colorado.edu>
3073 2004-06-06 Fernando Perez <fperez@colorado.edu>
3071
3074
3072 * IPython/Prompts.py (prompt_specials): Added the ability to have
3075 * IPython/Prompts.py (prompt_specials): Added the ability to have
3073 bash-like special sequences in the prompts, which get
3076 bash-like special sequences in the prompts, which get
3074 automatically expanded. Things like hostname, current working
3077 automatically expanded. Things like hostname, current working
3075 directory and username are implemented already, but it's easy to
3078 directory and username are implemented already, but it's easy to
3076 add more in the future. Thanks to a patch by W.J. van der Laan
3079 add more in the future. Thanks to a patch by W.J. van der Laan
3077 <gnufnork-AT-hetdigitalegat.nl>
3080 <gnufnork-AT-hetdigitalegat.nl>
3078 (prompt_specials): Added color support for prompt strings, so
3081 (prompt_specials): Added color support for prompt strings, so
3079 users can define arbitrary color setups for their prompts.
3082 users can define arbitrary color setups for their prompts.
3080
3083
3081 2004-06-05 Fernando Perez <fperez@colorado.edu>
3084 2004-06-05 Fernando Perez <fperez@colorado.edu>
3082
3085
3083 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3086 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3084 code to load Gary Bishop's readline and configure it
3087 code to load Gary Bishop's readline and configure it
3085 automatically. Thanks to Gary for help on this.
3088 automatically. Thanks to Gary for help on this.
3086
3089
3087 2004-06-01 Fernando Perez <fperez@colorado.edu>
3090 2004-06-01 Fernando Perez <fperez@colorado.edu>
3088
3091
3089 * IPython/Logger.py (Logger.create_log): fix bug for logging
3092 * IPython/Logger.py (Logger.create_log): fix bug for logging
3090 with no filename (previous fix was incomplete).
3093 with no filename (previous fix was incomplete).
3091
3094
3092 2004-05-25 Fernando Perez <fperez@colorado.edu>
3095 2004-05-25 Fernando Perez <fperez@colorado.edu>
3093
3096
3094 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3097 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3095 parens would get passed to the shell.
3098 parens would get passed to the shell.
3096
3099
3097 2004-05-20 Fernando Perez <fperez@colorado.edu>
3100 2004-05-20 Fernando Perez <fperez@colorado.edu>
3098
3101
3099 * IPython/Magic.py (Magic.magic_prun): changed default profile
3102 * IPython/Magic.py (Magic.magic_prun): changed default profile
3100 sort order to 'time' (the more common profiling need).
3103 sort order to 'time' (the more common profiling need).
3101
3104
3102 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3105 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3103 so that source code shown is guaranteed in sync with the file on
3106 so that source code shown is guaranteed in sync with the file on
3104 disk (also changed in psource). Similar fix to the one for
3107 disk (also changed in psource). Similar fix to the one for
3105 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3108 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3106 <yann.ledu-AT-noos.fr>.
3109 <yann.ledu-AT-noos.fr>.
3107
3110
3108 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3111 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3109 with a single option would not be correctly parsed. Closes
3112 with a single option would not be correctly parsed. Closes
3110 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3113 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3111 introduced in 0.6.0 (on 2004-05-06).
3114 introduced in 0.6.0 (on 2004-05-06).
3112
3115
3113 2004-05-13 *** Released version 0.6.0
3116 2004-05-13 *** Released version 0.6.0
3114
3117
3115 2004-05-13 Fernando Perez <fperez@colorado.edu>
3118 2004-05-13 Fernando Perez <fperez@colorado.edu>
3116
3119
3117 * debian/: Added debian/ directory to CVS, so that debian support
3120 * debian/: Added debian/ directory to CVS, so that debian support
3118 is publicly accessible. The debian package is maintained by Jack
3121 is publicly accessible. The debian package is maintained by Jack
3119 Moffit <jack-AT-xiph.org>.
3122 Moffit <jack-AT-xiph.org>.
3120
3123
3121 * Documentation: included the notes about an ipython-based system
3124 * Documentation: included the notes about an ipython-based system
3122 shell (the hypothetical 'pysh') into the new_design.pdf document,
3125 shell (the hypothetical 'pysh') into the new_design.pdf document,
3123 so that these ideas get distributed to users along with the
3126 so that these ideas get distributed to users along with the
3124 official documentation.
3127 official documentation.
3125
3128
3126 2004-05-10 Fernando Perez <fperez@colorado.edu>
3129 2004-05-10 Fernando Perez <fperez@colorado.edu>
3127
3130
3128 * IPython/Logger.py (Logger.create_log): fix recently introduced
3131 * IPython/Logger.py (Logger.create_log): fix recently introduced
3129 bug (misindented line) where logstart would fail when not given an
3132 bug (misindented line) where logstart would fail when not given an
3130 explicit filename.
3133 explicit filename.
3131
3134
3132 2004-05-09 Fernando Perez <fperez@colorado.edu>
3135 2004-05-09 Fernando Perez <fperez@colorado.edu>
3133
3136
3134 * IPython/Magic.py (Magic.parse_options): skip system call when
3137 * IPython/Magic.py (Magic.parse_options): skip system call when
3135 there are no options to look for. Faster, cleaner for the common
3138 there are no options to look for. Faster, cleaner for the common
3136 case.
3139 case.
3137
3140
3138 * Documentation: many updates to the manual: describing Windows
3141 * Documentation: many updates to the manual: describing Windows
3139 support better, Gnuplot updates, credits, misc small stuff. Also
3142 support better, Gnuplot updates, credits, misc small stuff. Also
3140 updated the new_design doc a bit.
3143 updated the new_design doc a bit.
3141
3144
3142 2004-05-06 *** Released version 0.6.0.rc1
3145 2004-05-06 *** Released version 0.6.0.rc1
3143
3146
3144 2004-05-06 Fernando Perez <fperez@colorado.edu>
3147 2004-05-06 Fernando Perez <fperez@colorado.edu>
3145
3148
3146 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3149 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3147 operations to use the vastly more efficient list/''.join() method.
3150 operations to use the vastly more efficient list/''.join() method.
3148 (FormattedTB.text): Fix
3151 (FormattedTB.text): Fix
3149 http://www.scipy.net/roundup/ipython/issue12 - exception source
3152 http://www.scipy.net/roundup/ipython/issue12 - exception source
3150 extract not updated after reload. Thanks to Mike Salib
3153 extract not updated after reload. Thanks to Mike Salib
3151 <msalib-AT-mit.edu> for pinning the source of the problem.
3154 <msalib-AT-mit.edu> for pinning the source of the problem.
3152 Fortunately, the solution works inside ipython and doesn't require
3155 Fortunately, the solution works inside ipython and doesn't require
3153 any changes to python proper.
3156 any changes to python proper.
3154
3157
3155 * IPython/Magic.py (Magic.parse_options): Improved to process the
3158 * IPython/Magic.py (Magic.parse_options): Improved to process the
3156 argument list as a true shell would (by actually using the
3159 argument list as a true shell would (by actually using the
3157 underlying system shell). This way, all @magics automatically get
3160 underlying system shell). This way, all @magics automatically get
3158 shell expansion for variables. Thanks to a comment by Alex
3161 shell expansion for variables. Thanks to a comment by Alex
3159 Schmolck.
3162 Schmolck.
3160
3163
3161 2004-04-04 Fernando Perez <fperez@colorado.edu>
3164 2004-04-04 Fernando Perez <fperez@colorado.edu>
3162
3165
3163 * IPython/iplib.py (InteractiveShell.interact): Added a special
3166 * IPython/iplib.py (InteractiveShell.interact): Added a special
3164 trap for a debugger quit exception, which is basically impossible
3167 trap for a debugger quit exception, which is basically impossible
3165 to handle by normal mechanisms, given what pdb does to the stack.
3168 to handle by normal mechanisms, given what pdb does to the stack.
3166 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3169 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3167
3170
3168 2004-04-03 Fernando Perez <fperez@colorado.edu>
3171 2004-04-03 Fernando Perez <fperez@colorado.edu>
3169
3172
3170 * IPython/genutils.py (Term): Standardized the names of the Term
3173 * IPython/genutils.py (Term): Standardized the names of the Term
3171 class streams to cin/cout/cerr, following C++ naming conventions
3174 class streams to cin/cout/cerr, following C++ naming conventions
3172 (I can't use in/out/err because 'in' is not a valid attribute
3175 (I can't use in/out/err because 'in' is not a valid attribute
3173 name).
3176 name).
3174
3177
3175 * IPython/iplib.py (InteractiveShell.interact): don't increment
3178 * IPython/iplib.py (InteractiveShell.interact): don't increment
3176 the prompt if there's no user input. By Daniel 'Dang' Griffith
3179 the prompt if there's no user input. By Daniel 'Dang' Griffith
3177 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3180 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3178 Francois Pinard.
3181 Francois Pinard.
3179
3182
3180 2004-04-02 Fernando Perez <fperez@colorado.edu>
3183 2004-04-02 Fernando Perez <fperez@colorado.edu>
3181
3184
3182 * IPython/genutils.py (Stream.__init__): Modified to survive at
3185 * IPython/genutils.py (Stream.__init__): Modified to survive at
3183 least importing in contexts where stdin/out/err aren't true file
3186 least importing in contexts where stdin/out/err aren't true file
3184 objects, such as PyCrust (they lack fileno() and mode). However,
3187 objects, such as PyCrust (they lack fileno() and mode). However,
3185 the recovery facilities which rely on these things existing will
3188 the recovery facilities which rely on these things existing will
3186 not work.
3189 not work.
3187
3190
3188 2004-04-01 Fernando Perez <fperez@colorado.edu>
3191 2004-04-01 Fernando Perez <fperez@colorado.edu>
3189
3192
3190 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3193 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3191 use the new getoutputerror() function, so it properly
3194 use the new getoutputerror() function, so it properly
3192 distinguishes stdout/err.
3195 distinguishes stdout/err.
3193
3196
3194 * IPython/genutils.py (getoutputerror): added a function to
3197 * IPython/genutils.py (getoutputerror): added a function to
3195 capture separately the standard output and error of a command.
3198 capture separately the standard output and error of a command.
3196 After a comment from dang on the mailing lists. This code is
3199 After a comment from dang on the mailing lists. This code is
3197 basically a modified version of commands.getstatusoutput(), from
3200 basically a modified version of commands.getstatusoutput(), from
3198 the standard library.
3201 the standard library.
3199
3202
3200 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3203 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3201 '!!' as a special syntax (shorthand) to access @sx.
3204 '!!' as a special syntax (shorthand) to access @sx.
3202
3205
3203 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3206 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3204 command and return its output as a list split on '\n'.
3207 command and return its output as a list split on '\n'.
3205
3208
3206 2004-03-31 Fernando Perez <fperez@colorado.edu>
3209 2004-03-31 Fernando Perez <fperez@colorado.edu>
3207
3210
3208 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3211 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3209 method to dictionaries used as FakeModule instances if they lack
3212 method to dictionaries used as FakeModule instances if they lack
3210 it. At least pydoc in python2.3 breaks for runtime-defined
3213 it. At least pydoc in python2.3 breaks for runtime-defined
3211 functions without this hack. At some point I need to _really_
3214 functions without this hack. At some point I need to _really_
3212 understand what FakeModule is doing, because it's a gross hack.
3215 understand what FakeModule is doing, because it's a gross hack.
3213 But it solves Arnd's problem for now...
3216 But it solves Arnd's problem for now...
3214
3217
3215 2004-02-27 Fernando Perez <fperez@colorado.edu>
3218 2004-02-27 Fernando Perez <fperez@colorado.edu>
3216
3219
3217 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3220 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3218 mode would behave erratically. Also increased the number of
3221 mode would behave erratically. Also increased the number of
3219 possible logs in rotate mod to 999. Thanks to Rod Holland
3222 possible logs in rotate mod to 999. Thanks to Rod Holland
3220 <rhh@StructureLABS.com> for the report and fixes.
3223 <rhh@StructureLABS.com> for the report and fixes.
3221
3224
3222 2004-02-26 Fernando Perez <fperez@colorado.edu>
3225 2004-02-26 Fernando Perez <fperez@colorado.edu>
3223
3226
3224 * IPython/genutils.py (page): Check that the curses module really
3227 * IPython/genutils.py (page): Check that the curses module really
3225 has the initscr attribute before trying to use it. For some
3228 has the initscr attribute before trying to use it. For some
3226 reason, the Solaris curses module is missing this. I think this
3229 reason, the Solaris curses module is missing this. I think this
3227 should be considered a Solaris python bug, but I'm not sure.
3230 should be considered a Solaris python bug, but I'm not sure.
3228
3231
3229 2004-01-17 Fernando Perez <fperez@colorado.edu>
3232 2004-01-17 Fernando Perez <fperez@colorado.edu>
3230
3233
3231 * IPython/genutils.py (Stream.__init__): Changes to try to make
3234 * IPython/genutils.py (Stream.__init__): Changes to try to make
3232 ipython robust against stdin/out/err being closed by the user.
3235 ipython robust against stdin/out/err being closed by the user.
3233 This is 'user error' (and blocks a normal python session, at least
3236 This is 'user error' (and blocks a normal python session, at least
3234 the stdout case). However, Ipython should be able to survive such
3237 the stdout case). However, Ipython should be able to survive such
3235 instances of abuse as gracefully as possible. To simplify the
3238 instances of abuse as gracefully as possible. To simplify the
3236 coding and maintain compatibility with Gary Bishop's Term
3239 coding and maintain compatibility with Gary Bishop's Term
3237 contributions, I've made use of classmethods for this. I think
3240 contributions, I've made use of classmethods for this. I think
3238 this introduces a dependency on python 2.2.
3241 this introduces a dependency on python 2.2.
3239
3242
3240 2004-01-13 Fernando Perez <fperez@colorado.edu>
3243 2004-01-13 Fernando Perez <fperez@colorado.edu>
3241
3244
3242 * IPython/numutils.py (exp_safe): simplified the code a bit and
3245 * IPython/numutils.py (exp_safe): simplified the code a bit and
3243 removed the need for importing the kinds module altogether.
3246 removed the need for importing the kinds module altogether.
3244
3247
3245 2004-01-06 Fernando Perez <fperez@colorado.edu>
3248 2004-01-06 Fernando Perez <fperez@colorado.edu>
3246
3249
3247 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3250 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3248 a magic function instead, after some community feedback. No
3251 a magic function instead, after some community feedback. No
3249 special syntax will exist for it, but its name is deliberately
3252 special syntax will exist for it, but its name is deliberately
3250 very short.
3253 very short.
3251
3254
3252 2003-12-20 Fernando Perez <fperez@colorado.edu>
3255 2003-12-20 Fernando Perez <fperez@colorado.edu>
3253
3256
3254 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3257 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3255 new functionality, to automagically assign the result of a shell
3258 new functionality, to automagically assign the result of a shell
3256 command to a variable. I'll solicit some community feedback on
3259 command to a variable. I'll solicit some community feedback on
3257 this before making it permanent.
3260 this before making it permanent.
3258
3261
3259 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3262 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3260 requested about callables for which inspect couldn't obtain a
3263 requested about callables for which inspect couldn't obtain a
3261 proper argspec. Thanks to a crash report sent by Etienne
3264 proper argspec. Thanks to a crash report sent by Etienne
3262 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3265 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3263
3266
3264 2003-12-09 Fernando Perez <fperez@colorado.edu>
3267 2003-12-09 Fernando Perez <fperez@colorado.edu>
3265
3268
3266 * IPython/genutils.py (page): patch for the pager to work across
3269 * IPython/genutils.py (page): patch for the pager to work across
3267 various versions of Windows. By Gary Bishop.
3270 various versions of Windows. By Gary Bishop.
3268
3271
3269 2003-12-04 Fernando Perez <fperez@colorado.edu>
3272 2003-12-04 Fernando Perez <fperez@colorado.edu>
3270
3273
3271 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3274 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3272 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3275 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3273 While I tested this and it looks ok, there may still be corner
3276 While I tested this and it looks ok, there may still be corner
3274 cases I've missed.
3277 cases I've missed.
3275
3278
3276 2003-12-01 Fernando Perez <fperez@colorado.edu>
3279 2003-12-01 Fernando Perez <fperez@colorado.edu>
3277
3280
3278 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3281 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3279 where a line like 'p,q=1,2' would fail because the automagic
3282 where a line like 'p,q=1,2' would fail because the automagic
3280 system would be triggered for @p.
3283 system would be triggered for @p.
3281
3284
3282 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3285 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3283 cleanups, code unmodified.
3286 cleanups, code unmodified.
3284
3287
3285 * IPython/genutils.py (Term): added a class for IPython to handle
3288 * IPython/genutils.py (Term): added a class for IPython to handle
3286 output. In most cases it will just be a proxy for stdout/err, but
3289 output. In most cases it will just be a proxy for stdout/err, but
3287 having this allows modifications to be made for some platforms,
3290 having this allows modifications to be made for some platforms,
3288 such as handling color escapes under Windows. All of this code
3291 such as handling color escapes under Windows. All of this code
3289 was contributed by Gary Bishop, with minor modifications by me.
3292 was contributed by Gary Bishop, with minor modifications by me.
3290 The actual changes affect many files.
3293 The actual changes affect many files.
3291
3294
3292 2003-11-30 Fernando Perez <fperez@colorado.edu>
3295 2003-11-30 Fernando Perez <fperez@colorado.edu>
3293
3296
3294 * IPython/iplib.py (file_matches): new completion code, courtesy
3297 * IPython/iplib.py (file_matches): new completion code, courtesy
3295 of Jeff Collins. This enables filename completion again under
3298 of Jeff Collins. This enables filename completion again under
3296 python 2.3, which disabled it at the C level.
3299 python 2.3, which disabled it at the C level.
3297
3300
3298 2003-11-11 Fernando Perez <fperez@colorado.edu>
3301 2003-11-11 Fernando Perez <fperez@colorado.edu>
3299
3302
3300 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3303 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3301 for Numeric.array(map(...)), but often convenient.
3304 for Numeric.array(map(...)), but often convenient.
3302
3305
3303 2003-11-05 Fernando Perez <fperez@colorado.edu>
3306 2003-11-05 Fernando Perez <fperez@colorado.edu>
3304
3307
3305 * IPython/numutils.py (frange): Changed a call from int() to
3308 * IPython/numutils.py (frange): Changed a call from int() to
3306 int(round()) to prevent a problem reported with arange() in the
3309 int(round()) to prevent a problem reported with arange() in the
3307 numpy list.
3310 numpy list.
3308
3311
3309 2003-10-06 Fernando Perez <fperez@colorado.edu>
3312 2003-10-06 Fernando Perez <fperez@colorado.edu>
3310
3313
3311 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3314 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3312 prevent crashes if sys lacks an argv attribute (it happens with
3315 prevent crashes if sys lacks an argv attribute (it happens with
3313 embedded interpreters which build a bare-bones sys module).
3316 embedded interpreters which build a bare-bones sys module).
3314 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3317 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3315
3318
3316 2003-09-24 Fernando Perez <fperez@colorado.edu>
3319 2003-09-24 Fernando Perez <fperez@colorado.edu>
3317
3320
3318 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3321 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3319 to protect against poorly written user objects where __getattr__
3322 to protect against poorly written user objects where __getattr__
3320 raises exceptions other than AttributeError. Thanks to a bug
3323 raises exceptions other than AttributeError. Thanks to a bug
3321 report by Oliver Sander <osander-AT-gmx.de>.
3324 report by Oliver Sander <osander-AT-gmx.de>.
3322
3325
3323 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3326 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3324 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3327 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3325
3328
3326 2003-09-09 Fernando Perez <fperez@colorado.edu>
3329 2003-09-09 Fernando Perez <fperez@colorado.edu>
3327
3330
3328 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3331 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3329 unpacking a list whith a callable as first element would
3332 unpacking a list whith a callable as first element would
3330 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3333 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3331 Collins.
3334 Collins.
3332
3335
3333 2003-08-25 *** Released version 0.5.0
3336 2003-08-25 *** Released version 0.5.0
3334
3337
3335 2003-08-22 Fernando Perez <fperez@colorado.edu>
3338 2003-08-22 Fernando Perez <fperez@colorado.edu>
3336
3339
3337 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3340 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3338 improperly defined user exceptions. Thanks to feedback from Mark
3341 improperly defined user exceptions. Thanks to feedback from Mark
3339 Russell <mrussell-AT-verio.net>.
3342 Russell <mrussell-AT-verio.net>.
3340
3343
3341 2003-08-20 Fernando Perez <fperez@colorado.edu>
3344 2003-08-20 Fernando Perez <fperez@colorado.edu>
3342
3345
3343 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3346 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3344 printing so that it would print multi-line string forms starting
3347 printing so that it would print multi-line string forms starting
3345 with a new line. This way the formatting is better respected for
3348 with a new line. This way the formatting is better respected for
3346 objects which work hard to make nice string forms.
3349 objects which work hard to make nice string forms.
3347
3350
3348 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3351 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3349 autocall would overtake data access for objects with both
3352 autocall would overtake data access for objects with both
3350 __getitem__ and __call__.
3353 __getitem__ and __call__.
3351
3354
3352 2003-08-19 *** Released version 0.5.0-rc1
3355 2003-08-19 *** Released version 0.5.0-rc1
3353
3356
3354 2003-08-19 Fernando Perez <fperez@colorado.edu>
3357 2003-08-19 Fernando Perez <fperez@colorado.edu>
3355
3358
3356 * IPython/deep_reload.py (load_tail): single tiny change here
3359 * IPython/deep_reload.py (load_tail): single tiny change here
3357 seems to fix the long-standing bug of dreload() failing to work
3360 seems to fix the long-standing bug of dreload() failing to work
3358 for dotted names. But this module is pretty tricky, so I may have
3361 for dotted names. But this module is pretty tricky, so I may have
3359 missed some subtlety. Needs more testing!.
3362 missed some subtlety. Needs more testing!.
3360
3363
3361 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3364 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3362 exceptions which have badly implemented __str__ methods.
3365 exceptions which have badly implemented __str__ methods.
3363 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3366 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3364 which I've been getting reports about from Python 2.3 users. I
3367 which I've been getting reports about from Python 2.3 users. I
3365 wish I had a simple test case to reproduce the problem, so I could
3368 wish I had a simple test case to reproduce the problem, so I could
3366 either write a cleaner workaround or file a bug report if
3369 either write a cleaner workaround or file a bug report if
3367 necessary.
3370 necessary.
3368
3371
3369 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3372 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3370 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3373 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3371 a bug report by Tjabo Kloppenburg.
3374 a bug report by Tjabo Kloppenburg.
3372
3375
3373 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3376 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3374 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3377 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3375 seems rather unstable. Thanks to a bug report by Tjabo
3378 seems rather unstable. Thanks to a bug report by Tjabo
3376 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3379 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3377
3380
3378 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3381 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3379 this out soon because of the critical fixes in the inner loop for
3382 this out soon because of the critical fixes in the inner loop for
3380 generators.
3383 generators.
3381
3384
3382 * IPython/Magic.py (Magic.getargspec): removed. This (and
3385 * IPython/Magic.py (Magic.getargspec): removed. This (and
3383 _get_def) have been obsoleted by OInspect for a long time, I
3386 _get_def) have been obsoleted by OInspect for a long time, I
3384 hadn't noticed that they were dead code.
3387 hadn't noticed that they were dead code.
3385 (Magic._ofind): restored _ofind functionality for a few literals
3388 (Magic._ofind): restored _ofind functionality for a few literals
3386 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3389 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3387 for things like "hello".capitalize?, since that would require a
3390 for things like "hello".capitalize?, since that would require a
3388 potentially dangerous eval() again.
3391 potentially dangerous eval() again.
3389
3392
3390 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3393 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3391 logic a bit more to clean up the escapes handling and minimize the
3394 logic a bit more to clean up the escapes handling and minimize the
3392 use of _ofind to only necessary cases. The interactive 'feel' of
3395 use of _ofind to only necessary cases. The interactive 'feel' of
3393 IPython should have improved quite a bit with the changes in
3396 IPython should have improved quite a bit with the changes in
3394 _prefilter and _ofind (besides being far safer than before).
3397 _prefilter and _ofind (besides being far safer than before).
3395
3398
3396 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3399 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3397 obscure, never reported). Edit would fail to find the object to
3400 obscure, never reported). Edit would fail to find the object to
3398 edit under some circumstances.
3401 edit under some circumstances.
3399 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3402 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3400 which were causing double-calling of generators. Those eval calls
3403 which were causing double-calling of generators. Those eval calls
3401 were _very_ dangerous, since code with side effects could be
3404 were _very_ dangerous, since code with side effects could be
3402 triggered. As they say, 'eval is evil'... These were the
3405 triggered. As they say, 'eval is evil'... These were the
3403 nastiest evals in IPython. Besides, _ofind is now far simpler,
3406 nastiest evals in IPython. Besides, _ofind is now far simpler,
3404 and it should also be quite a bit faster. Its use of inspect is
3407 and it should also be quite a bit faster. Its use of inspect is
3405 also safer, so perhaps some of the inspect-related crashes I've
3408 also safer, so perhaps some of the inspect-related crashes I've
3406 seen lately with Python 2.3 might be taken care of. That will
3409 seen lately with Python 2.3 might be taken care of. That will
3407 need more testing.
3410 need more testing.
3408
3411
3409 2003-08-17 Fernando Perez <fperez@colorado.edu>
3412 2003-08-17 Fernando Perez <fperez@colorado.edu>
3410
3413
3411 * IPython/iplib.py (InteractiveShell._prefilter): significant
3414 * IPython/iplib.py (InteractiveShell._prefilter): significant
3412 simplifications to the logic for handling user escapes. Faster
3415 simplifications to the logic for handling user escapes. Faster
3413 and simpler code.
3416 and simpler code.
3414
3417
3415 2003-08-14 Fernando Perez <fperez@colorado.edu>
3418 2003-08-14 Fernando Perez <fperez@colorado.edu>
3416
3419
3417 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3420 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3418 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3421 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3419 but it should be quite a bit faster. And the recursive version
3422 but it should be quite a bit faster. And the recursive version
3420 generated O(log N) intermediate storage for all rank>1 arrays,
3423 generated O(log N) intermediate storage for all rank>1 arrays,
3421 even if they were contiguous.
3424 even if they were contiguous.
3422 (l1norm): Added this function.
3425 (l1norm): Added this function.
3423 (norm): Added this function for arbitrary norms (including
3426 (norm): Added this function for arbitrary norms (including
3424 l-infinity). l1 and l2 are still special cases for convenience
3427 l-infinity). l1 and l2 are still special cases for convenience
3425 and speed.
3428 and speed.
3426
3429
3427 2003-08-03 Fernando Perez <fperez@colorado.edu>
3430 2003-08-03 Fernando Perez <fperez@colorado.edu>
3428
3431
3429 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3432 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3430 exceptions, which now raise PendingDeprecationWarnings in Python
3433 exceptions, which now raise PendingDeprecationWarnings in Python
3431 2.3. There were some in Magic and some in Gnuplot2.
3434 2.3. There were some in Magic and some in Gnuplot2.
3432
3435
3433 2003-06-30 Fernando Perez <fperez@colorado.edu>
3436 2003-06-30 Fernando Perez <fperez@colorado.edu>
3434
3437
3435 * IPython/genutils.py (page): modified to call curses only for
3438 * IPython/genutils.py (page): modified to call curses only for
3436 terminals where TERM=='xterm'. After problems under many other
3439 terminals where TERM=='xterm'. After problems under many other
3437 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3440 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3438
3441
3439 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3442 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3440 would be triggered when readline was absent. This was just an old
3443 would be triggered when readline was absent. This was just an old
3441 debugging statement I'd forgotten to take out.
3444 debugging statement I'd forgotten to take out.
3442
3445
3443 2003-06-20 Fernando Perez <fperez@colorado.edu>
3446 2003-06-20 Fernando Perez <fperez@colorado.edu>
3444
3447
3445 * IPython/genutils.py (clock): modified to return only user time
3448 * IPython/genutils.py (clock): modified to return only user time
3446 (not counting system time), after a discussion on scipy. While
3449 (not counting system time), after a discussion on scipy. While
3447 system time may be a useful quantity occasionally, it may much
3450 system time may be a useful quantity occasionally, it may much
3448 more easily be skewed by occasional swapping or other similar
3451 more easily be skewed by occasional swapping or other similar
3449 activity.
3452 activity.
3450
3453
3451 2003-06-05 Fernando Perez <fperez@colorado.edu>
3454 2003-06-05 Fernando Perez <fperez@colorado.edu>
3452
3455
3453 * IPython/numutils.py (identity): new function, for building
3456 * IPython/numutils.py (identity): new function, for building
3454 arbitrary rank Kronecker deltas (mostly backwards compatible with
3457 arbitrary rank Kronecker deltas (mostly backwards compatible with
3455 Numeric.identity)
3458 Numeric.identity)
3456
3459
3457 2003-06-03 Fernando Perez <fperez@colorado.edu>
3460 2003-06-03 Fernando Perez <fperez@colorado.edu>
3458
3461
3459 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3462 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3460 arguments passed to magics with spaces, to allow trailing '\' to
3463 arguments passed to magics with spaces, to allow trailing '\' to
3461 work normally (mainly for Windows users).
3464 work normally (mainly for Windows users).
3462
3465
3463 2003-05-29 Fernando Perez <fperez@colorado.edu>
3466 2003-05-29 Fernando Perez <fperez@colorado.edu>
3464
3467
3465 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3468 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3466 instead of pydoc.help. This fixes a bizarre behavior where
3469 instead of pydoc.help. This fixes a bizarre behavior where
3467 printing '%s' % locals() would trigger the help system. Now
3470 printing '%s' % locals() would trigger the help system. Now
3468 ipython behaves like normal python does.
3471 ipython behaves like normal python does.
3469
3472
3470 Note that if one does 'from pydoc import help', the bizarre
3473 Note that if one does 'from pydoc import help', the bizarre
3471 behavior returns, but this will also happen in normal python, so
3474 behavior returns, but this will also happen in normal python, so
3472 it's not an ipython bug anymore (it has to do with how pydoc.help
3475 it's not an ipython bug anymore (it has to do with how pydoc.help
3473 is implemented).
3476 is implemented).
3474
3477
3475 2003-05-22 Fernando Perez <fperez@colorado.edu>
3478 2003-05-22 Fernando Perez <fperez@colorado.edu>
3476
3479
3477 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3480 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3478 return [] instead of None when nothing matches, also match to end
3481 return [] instead of None when nothing matches, also match to end
3479 of line. Patch by Gary Bishop.
3482 of line. Patch by Gary Bishop.
3480
3483
3481 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3484 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3482 protection as before, for files passed on the command line. This
3485 protection as before, for files passed on the command line. This
3483 prevents the CrashHandler from kicking in if user files call into
3486 prevents the CrashHandler from kicking in if user files call into
3484 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3487 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3485 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3488 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3486
3489
3487 2003-05-20 *** Released version 0.4.0
3490 2003-05-20 *** Released version 0.4.0
3488
3491
3489 2003-05-20 Fernando Perez <fperez@colorado.edu>
3492 2003-05-20 Fernando Perez <fperez@colorado.edu>
3490
3493
3491 * setup.py: added support for manpages. It's a bit hackish b/c of
3494 * setup.py: added support for manpages. It's a bit hackish b/c of
3492 a bug in the way the bdist_rpm distutils target handles gzipped
3495 a bug in the way the bdist_rpm distutils target handles gzipped
3493 manpages, but it works. After a patch by Jack.
3496 manpages, but it works. After a patch by Jack.
3494
3497
3495 2003-05-19 Fernando Perez <fperez@colorado.edu>
3498 2003-05-19 Fernando Perez <fperez@colorado.edu>
3496
3499
3497 * IPython/numutils.py: added a mockup of the kinds module, since
3500 * IPython/numutils.py: added a mockup of the kinds module, since
3498 it was recently removed from Numeric. This way, numutils will
3501 it was recently removed from Numeric. This way, numutils will
3499 work for all users even if they are missing kinds.
3502 work for all users even if they are missing kinds.
3500
3503
3501 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3504 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3502 failure, which can occur with SWIG-wrapped extensions. After a
3505 failure, which can occur with SWIG-wrapped extensions. After a
3503 crash report from Prabhu.
3506 crash report from Prabhu.
3504
3507
3505 2003-05-16 Fernando Perez <fperez@colorado.edu>
3508 2003-05-16 Fernando Perez <fperez@colorado.edu>
3506
3509
3507 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3510 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3508 protect ipython from user code which may call directly
3511 protect ipython from user code which may call directly
3509 sys.excepthook (this looks like an ipython crash to the user, even
3512 sys.excepthook (this looks like an ipython crash to the user, even
3510 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3513 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3511 This is especially important to help users of WxWindows, but may
3514 This is especially important to help users of WxWindows, but may
3512 also be useful in other cases.
3515 also be useful in other cases.
3513
3516
3514 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3517 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3515 an optional tb_offset to be specified, and to preserve exception
3518 an optional tb_offset to be specified, and to preserve exception
3516 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3519 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3517
3520
3518 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3521 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3519
3522
3520 2003-05-15 Fernando Perez <fperez@colorado.edu>
3523 2003-05-15 Fernando Perez <fperez@colorado.edu>
3521
3524
3522 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3525 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3523 installing for a new user under Windows.
3526 installing for a new user under Windows.
3524
3527
3525 2003-05-12 Fernando Perez <fperez@colorado.edu>
3528 2003-05-12 Fernando Perez <fperez@colorado.edu>
3526
3529
3527 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3530 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3528 handler for Emacs comint-based lines. Currently it doesn't do
3531 handler for Emacs comint-based lines. Currently it doesn't do
3529 much (but importantly, it doesn't update the history cache). In
3532 much (but importantly, it doesn't update the history cache). In
3530 the future it may be expanded if Alex needs more functionality
3533 the future it may be expanded if Alex needs more functionality
3531 there.
3534 there.
3532
3535
3533 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3536 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3534 info to crash reports.
3537 info to crash reports.
3535
3538
3536 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3539 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3537 just like Python's -c. Also fixed crash with invalid -color
3540 just like Python's -c. Also fixed crash with invalid -color
3538 option value at startup. Thanks to Will French
3541 option value at startup. Thanks to Will French
3539 <wfrench-AT-bestweb.net> for the bug report.
3542 <wfrench-AT-bestweb.net> for the bug report.
3540
3543
3541 2003-05-09 Fernando Perez <fperez@colorado.edu>
3544 2003-05-09 Fernando Perez <fperez@colorado.edu>
3542
3545
3543 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3546 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3544 to EvalDict (it's a mapping, after all) and simplified its code
3547 to EvalDict (it's a mapping, after all) and simplified its code
3545 quite a bit, after a nice discussion on c.l.py where Gustavo
3548 quite a bit, after a nice discussion on c.l.py where Gustavo
3546 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3549 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3547
3550
3548 2003-04-30 Fernando Perez <fperez@colorado.edu>
3551 2003-04-30 Fernando Perez <fperez@colorado.edu>
3549
3552
3550 * IPython/genutils.py (timings_out): modified it to reduce its
3553 * IPython/genutils.py (timings_out): modified it to reduce its
3551 overhead in the common reps==1 case.
3554 overhead in the common reps==1 case.
3552
3555
3553 2003-04-29 Fernando Perez <fperez@colorado.edu>
3556 2003-04-29 Fernando Perez <fperez@colorado.edu>
3554
3557
3555 * IPython/genutils.py (timings_out): Modified to use the resource
3558 * IPython/genutils.py (timings_out): Modified to use the resource
3556 module, which avoids the wraparound problems of time.clock().
3559 module, which avoids the wraparound problems of time.clock().
3557
3560
3558 2003-04-17 *** Released version 0.2.15pre4
3561 2003-04-17 *** Released version 0.2.15pre4
3559
3562
3560 2003-04-17 Fernando Perez <fperez@colorado.edu>
3563 2003-04-17 Fernando Perez <fperez@colorado.edu>
3561
3564
3562 * setup.py (scriptfiles): Split windows-specific stuff over to a
3565 * setup.py (scriptfiles): Split windows-specific stuff over to a
3563 separate file, in an attempt to have a Windows GUI installer.
3566 separate file, in an attempt to have a Windows GUI installer.
3564 That didn't work, but part of the groundwork is done.
3567 That didn't work, but part of the groundwork is done.
3565
3568
3566 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3569 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3567 indent/unindent with 4 spaces. Particularly useful in combination
3570 indent/unindent with 4 spaces. Particularly useful in combination
3568 with the new auto-indent option.
3571 with the new auto-indent option.
3569
3572
3570 2003-04-16 Fernando Perez <fperez@colorado.edu>
3573 2003-04-16 Fernando Perez <fperez@colorado.edu>
3571
3574
3572 * IPython/Magic.py: various replacements of self.rc for
3575 * IPython/Magic.py: various replacements of self.rc for
3573 self.shell.rc. A lot more remains to be done to fully disentangle
3576 self.shell.rc. A lot more remains to be done to fully disentangle
3574 this class from the main Shell class.
3577 this class from the main Shell class.
3575
3578
3576 * IPython/GnuplotRuntime.py: added checks for mouse support so
3579 * IPython/GnuplotRuntime.py: added checks for mouse support so
3577 that we don't try to enable it if the current gnuplot doesn't
3580 that we don't try to enable it if the current gnuplot doesn't
3578 really support it. Also added checks so that we don't try to
3581 really support it. Also added checks so that we don't try to
3579 enable persist under Windows (where Gnuplot doesn't recognize the
3582 enable persist under Windows (where Gnuplot doesn't recognize the
3580 option).
3583 option).
3581
3584
3582 * IPython/iplib.py (InteractiveShell.interact): Added optional
3585 * IPython/iplib.py (InteractiveShell.interact): Added optional
3583 auto-indenting code, after a patch by King C. Shu
3586 auto-indenting code, after a patch by King C. Shu
3584 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3587 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3585 get along well with pasting indented code. If I ever figure out
3588 get along well with pasting indented code. If I ever figure out
3586 how to make that part go well, it will become on by default.
3589 how to make that part go well, it will become on by default.
3587
3590
3588 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3591 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3589 crash ipython if there was an unmatched '%' in the user's prompt
3592 crash ipython if there was an unmatched '%' in the user's prompt
3590 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3593 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3591
3594
3592 * IPython/iplib.py (InteractiveShell.interact): removed the
3595 * IPython/iplib.py (InteractiveShell.interact): removed the
3593 ability to ask the user whether he wants to crash or not at the
3596 ability to ask the user whether he wants to crash or not at the
3594 'last line' exception handler. Calling functions at that point
3597 'last line' exception handler. Calling functions at that point
3595 changes the stack, and the error reports would have incorrect
3598 changes the stack, and the error reports would have incorrect
3596 tracebacks.
3599 tracebacks.
3597
3600
3598 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3601 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3599 pass through a peger a pretty-printed form of any object. After a
3602 pass through a peger a pretty-printed form of any object. After a
3600 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3603 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3601
3604
3602 2003-04-14 Fernando Perez <fperez@colorado.edu>
3605 2003-04-14 Fernando Perez <fperez@colorado.edu>
3603
3606
3604 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3607 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3605 all files in ~ would be modified at first install (instead of
3608 all files in ~ would be modified at first install (instead of
3606 ~/.ipython). This could be potentially disastrous, as the
3609 ~/.ipython). This could be potentially disastrous, as the
3607 modification (make line-endings native) could damage binary files.
3610 modification (make line-endings native) could damage binary files.
3608
3611
3609 2003-04-10 Fernando Perez <fperez@colorado.edu>
3612 2003-04-10 Fernando Perez <fperez@colorado.edu>
3610
3613
3611 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3614 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3612 handle only lines which are invalid python. This now means that
3615 handle only lines which are invalid python. This now means that
3613 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3616 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3614 for the bug report.
3617 for the bug report.
3615
3618
3616 2003-04-01 Fernando Perez <fperez@colorado.edu>
3619 2003-04-01 Fernando Perez <fperez@colorado.edu>
3617
3620
3618 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3621 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3619 where failing to set sys.last_traceback would crash pdb.pm().
3622 where failing to set sys.last_traceback would crash pdb.pm().
3620 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3623 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3621 report.
3624 report.
3622
3625
3623 2003-03-25 Fernando Perez <fperez@colorado.edu>
3626 2003-03-25 Fernando Perez <fperez@colorado.edu>
3624
3627
3625 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3628 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3626 before printing it (it had a lot of spurious blank lines at the
3629 before printing it (it had a lot of spurious blank lines at the
3627 end).
3630 end).
3628
3631
3629 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3632 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3630 output would be sent 21 times! Obviously people don't use this
3633 output would be sent 21 times! Obviously people don't use this
3631 too often, or I would have heard about it.
3634 too often, or I would have heard about it.
3632
3635
3633 2003-03-24 Fernando Perez <fperez@colorado.edu>
3636 2003-03-24 Fernando Perez <fperez@colorado.edu>
3634
3637
3635 * setup.py (scriptfiles): renamed the data_files parameter from
3638 * setup.py (scriptfiles): renamed the data_files parameter from
3636 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3639 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3637 for the patch.
3640 for the patch.
3638
3641
3639 2003-03-20 Fernando Perez <fperez@colorado.edu>
3642 2003-03-20 Fernando Perez <fperez@colorado.edu>
3640
3643
3641 * IPython/genutils.py (error): added error() and fatal()
3644 * IPython/genutils.py (error): added error() and fatal()
3642 functions.
3645 functions.
3643
3646
3644 2003-03-18 *** Released version 0.2.15pre3
3647 2003-03-18 *** Released version 0.2.15pre3
3645
3648
3646 2003-03-18 Fernando Perez <fperez@colorado.edu>
3649 2003-03-18 Fernando Perez <fperez@colorado.edu>
3647
3650
3648 * setupext/install_data_ext.py
3651 * setupext/install_data_ext.py
3649 (install_data_ext.initialize_options): Class contributed by Jack
3652 (install_data_ext.initialize_options): Class contributed by Jack
3650 Moffit for fixing the old distutils hack. He is sending this to
3653 Moffit for fixing the old distutils hack. He is sending this to
3651 the distutils folks so in the future we may not need it as a
3654 the distutils folks so in the future we may not need it as a
3652 private fix.
3655 private fix.
3653
3656
3654 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3657 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3655 changes for Debian packaging. See his patch for full details.
3658 changes for Debian packaging. See his patch for full details.
3656 The old distutils hack of making the ipythonrc* files carry a
3659 The old distutils hack of making the ipythonrc* files carry a
3657 bogus .py extension is gone, at last. Examples were moved to a
3660 bogus .py extension is gone, at last. Examples were moved to a
3658 separate subdir under doc/, and the separate executable scripts
3661 separate subdir under doc/, and the separate executable scripts
3659 now live in their own directory. Overall a great cleanup. The
3662 now live in their own directory. Overall a great cleanup. The
3660 manual was updated to use the new files, and setup.py has been
3663 manual was updated to use the new files, and setup.py has been
3661 fixed for this setup.
3664 fixed for this setup.
3662
3665
3663 * IPython/PyColorize.py (Parser.usage): made non-executable and
3666 * IPython/PyColorize.py (Parser.usage): made non-executable and
3664 created a pycolor wrapper around it to be included as a script.
3667 created a pycolor wrapper around it to be included as a script.
3665
3668
3666 2003-03-12 *** Released version 0.2.15pre2
3669 2003-03-12 *** Released version 0.2.15pre2
3667
3670
3668 2003-03-12 Fernando Perez <fperez@colorado.edu>
3671 2003-03-12 Fernando Perez <fperez@colorado.edu>
3669
3672
3670 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3673 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3671 long-standing problem with garbage characters in some terminals.
3674 long-standing problem with garbage characters in some terminals.
3672 The issue was really that the \001 and \002 escapes must _only_ be
3675 The issue was really that the \001 and \002 escapes must _only_ be
3673 passed to input prompts (which call readline), but _never_ to
3676 passed to input prompts (which call readline), but _never_ to
3674 normal text to be printed on screen. I changed ColorANSI to have
3677 normal text to be printed on screen. I changed ColorANSI to have
3675 two classes: TermColors and InputTermColors, each with the
3678 two classes: TermColors and InputTermColors, each with the
3676 appropriate escapes for input prompts or normal text. The code in
3679 appropriate escapes for input prompts or normal text. The code in
3677 Prompts.py got slightly more complicated, but this very old and
3680 Prompts.py got slightly more complicated, but this very old and
3678 annoying bug is finally fixed.
3681 annoying bug is finally fixed.
3679
3682
3680 All the credit for nailing down the real origin of this problem
3683 All the credit for nailing down the real origin of this problem
3681 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3684 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3682 *Many* thanks to him for spending quite a bit of effort on this.
3685 *Many* thanks to him for spending quite a bit of effort on this.
3683
3686
3684 2003-03-05 *** Released version 0.2.15pre1
3687 2003-03-05 *** Released version 0.2.15pre1
3685
3688
3686 2003-03-03 Fernando Perez <fperez@colorado.edu>
3689 2003-03-03 Fernando Perez <fperez@colorado.edu>
3687
3690
3688 * IPython/FakeModule.py: Moved the former _FakeModule to a
3691 * IPython/FakeModule.py: Moved the former _FakeModule to a
3689 separate file, because it's also needed by Magic (to fix a similar
3692 separate file, because it's also needed by Magic (to fix a similar
3690 pickle-related issue in @run).
3693 pickle-related issue in @run).
3691
3694
3692 2003-03-02 Fernando Perez <fperez@colorado.edu>
3695 2003-03-02 Fernando Perez <fperez@colorado.edu>
3693
3696
3694 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3697 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3695 the autocall option at runtime.
3698 the autocall option at runtime.
3696 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3699 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3697 across Magic.py to start separating Magic from InteractiveShell.
3700 across Magic.py to start separating Magic from InteractiveShell.
3698 (Magic._ofind): Fixed to return proper namespace for dotted
3701 (Magic._ofind): Fixed to return proper namespace for dotted
3699 names. Before, a dotted name would always return 'not currently
3702 names. Before, a dotted name would always return 'not currently
3700 defined', because it would find the 'parent'. s.x would be found,
3703 defined', because it would find the 'parent'. s.x would be found,
3701 but since 'x' isn't defined by itself, it would get confused.
3704 but since 'x' isn't defined by itself, it would get confused.
3702 (Magic.magic_run): Fixed pickling problems reported by Ralf
3705 (Magic.magic_run): Fixed pickling problems reported by Ralf
3703 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3706 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3704 that I'd used when Mike Heeter reported similar issues at the
3707 that I'd used when Mike Heeter reported similar issues at the
3705 top-level, but now for @run. It boils down to injecting the
3708 top-level, but now for @run. It boils down to injecting the
3706 namespace where code is being executed with something that looks
3709 namespace where code is being executed with something that looks
3707 enough like a module to fool pickle.dump(). Since a pickle stores
3710 enough like a module to fool pickle.dump(). Since a pickle stores
3708 a named reference to the importing module, we need this for
3711 a named reference to the importing module, we need this for
3709 pickles to save something sensible.
3712 pickles to save something sensible.
3710
3713
3711 * IPython/ipmaker.py (make_IPython): added an autocall option.
3714 * IPython/ipmaker.py (make_IPython): added an autocall option.
3712
3715
3713 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3716 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3714 the auto-eval code. Now autocalling is an option, and the code is
3717 the auto-eval code. Now autocalling is an option, and the code is
3715 also vastly safer. There is no more eval() involved at all.
3718 also vastly safer. There is no more eval() involved at all.
3716
3719
3717 2003-03-01 Fernando Perez <fperez@colorado.edu>
3720 2003-03-01 Fernando Perez <fperez@colorado.edu>
3718
3721
3719 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3722 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3720 dict with named keys instead of a tuple.
3723 dict with named keys instead of a tuple.
3721
3724
3722 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3725 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3723
3726
3724 * setup.py (make_shortcut): Fixed message about directories
3727 * setup.py (make_shortcut): Fixed message about directories
3725 created during Windows installation (the directories were ok, just
3728 created during Windows installation (the directories were ok, just
3726 the printed message was misleading). Thanks to Chris Liechti
3729 the printed message was misleading). Thanks to Chris Liechti
3727 <cliechti-AT-gmx.net> for the heads up.
3730 <cliechti-AT-gmx.net> for the heads up.
3728
3731
3729 2003-02-21 Fernando Perez <fperez@colorado.edu>
3732 2003-02-21 Fernando Perez <fperez@colorado.edu>
3730
3733
3731 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3734 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3732 of ValueError exception when checking for auto-execution. This
3735 of ValueError exception when checking for auto-execution. This
3733 one is raised by things like Numeric arrays arr.flat when the
3736 one is raised by things like Numeric arrays arr.flat when the
3734 array is non-contiguous.
3737 array is non-contiguous.
3735
3738
3736 2003-01-31 Fernando Perez <fperez@colorado.edu>
3739 2003-01-31 Fernando Perez <fperez@colorado.edu>
3737
3740
3738 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3741 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3739 not return any value at all (even though the command would get
3742 not return any value at all (even though the command would get
3740 executed).
3743 executed).
3741 (xsys): Flush stdout right after printing the command to ensure
3744 (xsys): Flush stdout right after printing the command to ensure
3742 proper ordering of commands and command output in the total
3745 proper ordering of commands and command output in the total
3743 output.
3746 output.
3744 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3747 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3745 system/getoutput as defaults. The old ones are kept for
3748 system/getoutput as defaults. The old ones are kept for
3746 compatibility reasons, so no code which uses this library needs
3749 compatibility reasons, so no code which uses this library needs
3747 changing.
3750 changing.
3748
3751
3749 2003-01-27 *** Released version 0.2.14
3752 2003-01-27 *** Released version 0.2.14
3750
3753
3751 2003-01-25 Fernando Perez <fperez@colorado.edu>
3754 2003-01-25 Fernando Perez <fperez@colorado.edu>
3752
3755
3753 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3756 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3754 functions defined in previous edit sessions could not be re-edited
3757 functions defined in previous edit sessions could not be re-edited
3755 (because the temp files were immediately removed). Now temp files
3758 (because the temp files were immediately removed). Now temp files
3756 are removed only at IPython's exit.
3759 are removed only at IPython's exit.
3757 (Magic.magic_run): Improved @run to perform shell-like expansions
3760 (Magic.magic_run): Improved @run to perform shell-like expansions
3758 on its arguments (~users and $VARS). With this, @run becomes more
3761 on its arguments (~users and $VARS). With this, @run becomes more
3759 like a normal command-line.
3762 like a normal command-line.
3760
3763
3761 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3764 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3762 bugs related to embedding and cleaned up that code. A fairly
3765 bugs related to embedding and cleaned up that code. A fairly
3763 important one was the impossibility to access the global namespace
3766 important one was the impossibility to access the global namespace
3764 through the embedded IPython (only local variables were visible).
3767 through the embedded IPython (only local variables were visible).
3765
3768
3766 2003-01-14 Fernando Perez <fperez@colorado.edu>
3769 2003-01-14 Fernando Perez <fperez@colorado.edu>
3767
3770
3768 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3771 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3769 auto-calling to be a bit more conservative. Now it doesn't get
3772 auto-calling to be a bit more conservative. Now it doesn't get
3770 triggered if any of '!=()<>' are in the rest of the input line, to
3773 triggered if any of '!=()<>' are in the rest of the input line, to
3771 allow comparing callables. Thanks to Alex for the heads up.
3774 allow comparing callables. Thanks to Alex for the heads up.
3772
3775
3773 2003-01-07 Fernando Perez <fperez@colorado.edu>
3776 2003-01-07 Fernando Perez <fperez@colorado.edu>
3774
3777
3775 * IPython/genutils.py (page): fixed estimation of the number of
3778 * IPython/genutils.py (page): fixed estimation of the number of
3776 lines in a string to be paged to simply count newlines. This
3779 lines in a string to be paged to simply count newlines. This
3777 prevents over-guessing due to embedded escape sequences. A better
3780 prevents over-guessing due to embedded escape sequences. A better
3778 long-term solution would involve stripping out the control chars
3781 long-term solution would involve stripping out the control chars
3779 for the count, but it's potentially so expensive I just don't
3782 for the count, but it's potentially so expensive I just don't
3780 think it's worth doing.
3783 think it's worth doing.
3781
3784
3782 2002-12-19 *** Released version 0.2.14pre50
3785 2002-12-19 *** Released version 0.2.14pre50
3783
3786
3784 2002-12-19 Fernando Perez <fperez@colorado.edu>
3787 2002-12-19 Fernando Perez <fperez@colorado.edu>
3785
3788
3786 * tools/release (version): Changed release scripts to inform
3789 * tools/release (version): Changed release scripts to inform
3787 Andrea and build a NEWS file with a list of recent changes.
3790 Andrea and build a NEWS file with a list of recent changes.
3788
3791
3789 * IPython/ColorANSI.py (__all__): changed terminal detection
3792 * IPython/ColorANSI.py (__all__): changed terminal detection
3790 code. Seems to work better for xterms without breaking
3793 code. Seems to work better for xterms without breaking
3791 konsole. Will need more testing to determine if WinXP and Mac OSX
3794 konsole. Will need more testing to determine if WinXP and Mac OSX
3792 also work ok.
3795 also work ok.
3793
3796
3794 2002-12-18 *** Released version 0.2.14pre49
3797 2002-12-18 *** Released version 0.2.14pre49
3795
3798
3796 2002-12-18 Fernando Perez <fperez@colorado.edu>
3799 2002-12-18 Fernando Perez <fperez@colorado.edu>
3797
3800
3798 * Docs: added new info about Mac OSX, from Andrea.
3801 * Docs: added new info about Mac OSX, from Andrea.
3799
3802
3800 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3803 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3801 allow direct plotting of python strings whose format is the same
3804 allow direct plotting of python strings whose format is the same
3802 of gnuplot data files.
3805 of gnuplot data files.
3803
3806
3804 2002-12-16 Fernando Perez <fperez@colorado.edu>
3807 2002-12-16 Fernando Perez <fperez@colorado.edu>
3805
3808
3806 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3809 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3807 value of exit question to be acknowledged.
3810 value of exit question to be acknowledged.
3808
3811
3809 2002-12-03 Fernando Perez <fperez@colorado.edu>
3812 2002-12-03 Fernando Perez <fperez@colorado.edu>
3810
3813
3811 * IPython/ipmaker.py: removed generators, which had been added
3814 * IPython/ipmaker.py: removed generators, which had been added
3812 by mistake in an earlier debugging run. This was causing trouble
3815 by mistake in an earlier debugging run. This was causing trouble
3813 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3816 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3814 for pointing this out.
3817 for pointing this out.
3815
3818
3816 2002-11-17 Fernando Perez <fperez@colorado.edu>
3819 2002-11-17 Fernando Perez <fperez@colorado.edu>
3817
3820
3818 * Manual: updated the Gnuplot section.
3821 * Manual: updated the Gnuplot section.
3819
3822
3820 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3823 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3821 a much better split of what goes in Runtime and what goes in
3824 a much better split of what goes in Runtime and what goes in
3822 Interactive.
3825 Interactive.
3823
3826
3824 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3827 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3825 being imported from iplib.
3828 being imported from iplib.
3826
3829
3827 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3830 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3828 for command-passing. Now the global Gnuplot instance is called
3831 for command-passing. Now the global Gnuplot instance is called
3829 'gp' instead of 'g', which was really a far too fragile and
3832 'gp' instead of 'g', which was really a far too fragile and
3830 common name.
3833 common name.
3831
3834
3832 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3835 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3833 bounding boxes generated by Gnuplot for square plots.
3836 bounding boxes generated by Gnuplot for square plots.
3834
3837
3835 * IPython/genutils.py (popkey): new function added. I should
3838 * IPython/genutils.py (popkey): new function added. I should
3836 suggest this on c.l.py as a dict method, it seems useful.
3839 suggest this on c.l.py as a dict method, it seems useful.
3837
3840
3838 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3841 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3839 to transparently handle PostScript generation. MUCH better than
3842 to transparently handle PostScript generation. MUCH better than
3840 the previous plot_eps/replot_eps (which I removed now). The code
3843 the previous plot_eps/replot_eps (which I removed now). The code
3841 is also fairly clean and well documented now (including
3844 is also fairly clean and well documented now (including
3842 docstrings).
3845 docstrings).
3843
3846
3844 2002-11-13 Fernando Perez <fperez@colorado.edu>
3847 2002-11-13 Fernando Perez <fperez@colorado.edu>
3845
3848
3846 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3849 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3847 (inconsistent with options).
3850 (inconsistent with options).
3848
3851
3849 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3852 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3850 manually disabled, I don't know why. Fixed it.
3853 manually disabled, I don't know why. Fixed it.
3851 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3854 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3852 eps output.
3855 eps output.
3853
3856
3854 2002-11-12 Fernando Perez <fperez@colorado.edu>
3857 2002-11-12 Fernando Perez <fperez@colorado.edu>
3855
3858
3856 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3859 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3857 don't propagate up to caller. Fixes crash reported by François
3860 don't propagate up to caller. Fixes crash reported by François
3858 Pinard.
3861 Pinard.
3859
3862
3860 2002-11-09 Fernando Perez <fperez@colorado.edu>
3863 2002-11-09 Fernando Perez <fperez@colorado.edu>
3861
3864
3862 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3865 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3863 history file for new users.
3866 history file for new users.
3864 (make_IPython): fixed bug where initial install would leave the
3867 (make_IPython): fixed bug where initial install would leave the
3865 user running in the .ipython dir.
3868 user running in the .ipython dir.
3866 (make_IPython): fixed bug where config dir .ipython would be
3869 (make_IPython): fixed bug where config dir .ipython would be
3867 created regardless of the given -ipythondir option. Thanks to Cory
3870 created regardless of the given -ipythondir option. Thanks to Cory
3868 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3871 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3869
3872
3870 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3873 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3871 type confirmations. Will need to use it in all of IPython's code
3874 type confirmations. Will need to use it in all of IPython's code
3872 consistently.
3875 consistently.
3873
3876
3874 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3877 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3875 context to print 31 lines instead of the default 5. This will make
3878 context to print 31 lines instead of the default 5. This will make
3876 the crash reports extremely detailed in case the problem is in
3879 the crash reports extremely detailed in case the problem is in
3877 libraries I don't have access to.
3880 libraries I don't have access to.
3878
3881
3879 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3882 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3880 line of defense' code to still crash, but giving users fair
3883 line of defense' code to still crash, but giving users fair
3881 warning. I don't want internal errors to go unreported: if there's
3884 warning. I don't want internal errors to go unreported: if there's
3882 an internal problem, IPython should crash and generate a full
3885 an internal problem, IPython should crash and generate a full
3883 report.
3886 report.
3884
3887
3885 2002-11-08 Fernando Perez <fperez@colorado.edu>
3888 2002-11-08 Fernando Perez <fperez@colorado.edu>
3886
3889
3887 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3890 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3888 otherwise uncaught exceptions which can appear if people set
3891 otherwise uncaught exceptions which can appear if people set
3889 sys.stdout to something badly broken. Thanks to a crash report
3892 sys.stdout to something badly broken. Thanks to a crash report
3890 from henni-AT-mail.brainbot.com.
3893 from henni-AT-mail.brainbot.com.
3891
3894
3892 2002-11-04 Fernando Perez <fperez@colorado.edu>
3895 2002-11-04 Fernando Perez <fperez@colorado.edu>
3893
3896
3894 * IPython/iplib.py (InteractiveShell.interact): added
3897 * IPython/iplib.py (InteractiveShell.interact): added
3895 __IPYTHON__active to the builtins. It's a flag which goes on when
3898 __IPYTHON__active to the builtins. It's a flag which goes on when
3896 the interaction starts and goes off again when it stops. This
3899 the interaction starts and goes off again when it stops. This
3897 allows embedding code to detect being inside IPython. Before this
3900 allows embedding code to detect being inside IPython. Before this
3898 was done via __IPYTHON__, but that only shows that an IPython
3901 was done via __IPYTHON__, but that only shows that an IPython
3899 instance has been created.
3902 instance has been created.
3900
3903
3901 * IPython/Magic.py (Magic.magic_env): I realized that in a
3904 * IPython/Magic.py (Magic.magic_env): I realized that in a
3902 UserDict, instance.data holds the data as a normal dict. So I
3905 UserDict, instance.data holds the data as a normal dict. So I
3903 modified @env to return os.environ.data instead of rebuilding a
3906 modified @env to return os.environ.data instead of rebuilding a
3904 dict by hand.
3907 dict by hand.
3905
3908
3906 2002-11-02 Fernando Perez <fperez@colorado.edu>
3909 2002-11-02 Fernando Perez <fperez@colorado.edu>
3907
3910
3908 * IPython/genutils.py (warn): changed so that level 1 prints no
3911 * IPython/genutils.py (warn): changed so that level 1 prints no
3909 header. Level 2 is now the default (with 'WARNING' header, as
3912 header. Level 2 is now the default (with 'WARNING' header, as
3910 before). I think I tracked all places where changes were needed in
3913 before). I think I tracked all places where changes were needed in
3911 IPython, but outside code using the old level numbering may have
3914 IPython, but outside code using the old level numbering may have
3912 broken.
3915 broken.
3913
3916
3914 * IPython/iplib.py (InteractiveShell.runcode): added this to
3917 * IPython/iplib.py (InteractiveShell.runcode): added this to
3915 handle the tracebacks in SystemExit traps correctly. The previous
3918 handle the tracebacks in SystemExit traps correctly. The previous
3916 code (through interact) was printing more of the stack than
3919 code (through interact) was printing more of the stack than
3917 necessary, showing IPython internal code to the user.
3920 necessary, showing IPython internal code to the user.
3918
3921
3919 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3922 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3920 default. Now that the default at the confirmation prompt is yes,
3923 default. Now that the default at the confirmation prompt is yes,
3921 it's not so intrusive. François' argument that ipython sessions
3924 it's not so intrusive. François' argument that ipython sessions
3922 tend to be complex enough not to lose them from an accidental C-d,
3925 tend to be complex enough not to lose them from an accidental C-d,
3923 is a valid one.
3926 is a valid one.
3924
3927
3925 * IPython/iplib.py (InteractiveShell.interact): added a
3928 * IPython/iplib.py (InteractiveShell.interact): added a
3926 showtraceback() call to the SystemExit trap, and modified the exit
3929 showtraceback() call to the SystemExit trap, and modified the exit
3927 confirmation to have yes as the default.
3930 confirmation to have yes as the default.
3928
3931
3929 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3932 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3930 this file. It's been gone from the code for a long time, this was
3933 this file. It's been gone from the code for a long time, this was
3931 simply leftover junk.
3934 simply leftover junk.
3932
3935
3933 2002-11-01 Fernando Perez <fperez@colorado.edu>
3936 2002-11-01 Fernando Perez <fperez@colorado.edu>
3934
3937
3935 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3938 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3936 added. If set, IPython now traps EOF and asks for
3939 added. If set, IPython now traps EOF and asks for
3937 confirmation. After a request by François Pinard.
3940 confirmation. After a request by François Pinard.
3938
3941
3939 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3942 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3940 of @abort, and with a new (better) mechanism for handling the
3943 of @abort, and with a new (better) mechanism for handling the
3941 exceptions.
3944 exceptions.
3942
3945
3943 2002-10-27 Fernando Perez <fperez@colorado.edu>
3946 2002-10-27 Fernando Perez <fperez@colorado.edu>
3944
3947
3945 * IPython/usage.py (__doc__): updated the --help information and
3948 * IPython/usage.py (__doc__): updated the --help information and
3946 the ipythonrc file to indicate that -log generates
3949 the ipythonrc file to indicate that -log generates
3947 ./ipython.log. Also fixed the corresponding info in @logstart.
3950 ./ipython.log. Also fixed the corresponding info in @logstart.
3948 This and several other fixes in the manuals thanks to reports by
3951 This and several other fixes in the manuals thanks to reports by
3949 François Pinard <pinard-AT-iro.umontreal.ca>.
3952 François Pinard <pinard-AT-iro.umontreal.ca>.
3950
3953
3951 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3954 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3952 refer to @logstart (instead of @log, which doesn't exist).
3955 refer to @logstart (instead of @log, which doesn't exist).
3953
3956
3954 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3957 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3955 AttributeError crash. Thanks to Christopher Armstrong
3958 AttributeError crash. Thanks to Christopher Armstrong
3956 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3959 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3957 introduced recently (in 0.2.14pre37) with the fix to the eval
3960 introduced recently (in 0.2.14pre37) with the fix to the eval
3958 problem mentioned below.
3961 problem mentioned below.
3959
3962
3960 2002-10-17 Fernando Perez <fperez@colorado.edu>
3963 2002-10-17 Fernando Perez <fperez@colorado.edu>
3961
3964
3962 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3965 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3963 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3966 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3964
3967
3965 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3968 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3966 this function to fix a problem reported by Alex Schmolck. He saw
3969 this function to fix a problem reported by Alex Schmolck. He saw
3967 it with list comprehensions and generators, which were getting
3970 it with list comprehensions and generators, which were getting
3968 called twice. The real problem was an 'eval' call in testing for
3971 called twice. The real problem was an 'eval' call in testing for
3969 automagic which was evaluating the input line silently.
3972 automagic which was evaluating the input line silently.
3970
3973
3971 This is a potentially very nasty bug, if the input has side
3974 This is a potentially very nasty bug, if the input has side
3972 effects which must not be repeated. The code is much cleaner now,
3975 effects which must not be repeated. The code is much cleaner now,
3973 without any blanket 'except' left and with a regexp test for
3976 without any blanket 'except' left and with a regexp test for
3974 actual function names.
3977 actual function names.
3975
3978
3976 But an eval remains, which I'm not fully comfortable with. I just
3979 But an eval remains, which I'm not fully comfortable with. I just
3977 don't know how to find out if an expression could be a callable in
3980 don't know how to find out if an expression could be a callable in
3978 the user's namespace without doing an eval on the string. However
3981 the user's namespace without doing an eval on the string. However
3979 that string is now much more strictly checked so that no code
3982 that string is now much more strictly checked so that no code
3980 slips by, so the eval should only happen for things that can
3983 slips by, so the eval should only happen for things that can
3981 really be only function/method names.
3984 really be only function/method names.
3982
3985
3983 2002-10-15 Fernando Perez <fperez@colorado.edu>
3986 2002-10-15 Fernando Perez <fperez@colorado.edu>
3984
3987
3985 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3988 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3986 OSX information to main manual, removed README_Mac_OSX file from
3989 OSX information to main manual, removed README_Mac_OSX file from
3987 distribution. Also updated credits for recent additions.
3990 distribution. Also updated credits for recent additions.
3988
3991
3989 2002-10-10 Fernando Perez <fperez@colorado.edu>
3992 2002-10-10 Fernando Perez <fperez@colorado.edu>
3990
3993
3991 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3994 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3992 terminal-related issues. Many thanks to Andrea Riciputi
3995 terminal-related issues. Many thanks to Andrea Riciputi
3993 <andrea.riciputi-AT-libero.it> for writing it.
3996 <andrea.riciputi-AT-libero.it> for writing it.
3994
3997
3995 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3998 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3996 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3999 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3997
4000
3998 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4001 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3999 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4002 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4000 <syver-en-AT-online.no> who both submitted patches for this problem.
4003 <syver-en-AT-online.no> who both submitted patches for this problem.
4001
4004
4002 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4005 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4003 global embedding to make sure that things don't overwrite user
4006 global embedding to make sure that things don't overwrite user
4004 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4007 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4005
4008
4006 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4009 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4007 compatibility. Thanks to Hayden Callow
4010 compatibility. Thanks to Hayden Callow
4008 <h.callow-AT-elec.canterbury.ac.nz>
4011 <h.callow-AT-elec.canterbury.ac.nz>
4009
4012
4010 2002-10-04 Fernando Perez <fperez@colorado.edu>
4013 2002-10-04 Fernando Perez <fperez@colorado.edu>
4011
4014
4012 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4015 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4013 Gnuplot.File objects.
4016 Gnuplot.File objects.
4014
4017
4015 2002-07-23 Fernando Perez <fperez@colorado.edu>
4018 2002-07-23 Fernando Perez <fperez@colorado.edu>
4016
4019
4017 * IPython/genutils.py (timing): Added timings() and timing() for
4020 * IPython/genutils.py (timing): Added timings() and timing() for
4018 quick access to the most commonly needed data, the execution
4021 quick access to the most commonly needed data, the execution
4019 times. Old timing() renamed to timings_out().
4022 times. Old timing() renamed to timings_out().
4020
4023
4021 2002-07-18 Fernando Perez <fperez@colorado.edu>
4024 2002-07-18 Fernando Perez <fperez@colorado.edu>
4022
4025
4023 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4026 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4024 bug with nested instances disrupting the parent's tab completion.
4027 bug with nested instances disrupting the parent's tab completion.
4025
4028
4026 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4029 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4027 all_completions code to begin the emacs integration.
4030 all_completions code to begin the emacs integration.
4028
4031
4029 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4032 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4030 argument to allow titling individual arrays when plotting.
4033 argument to allow titling individual arrays when plotting.
4031
4034
4032 2002-07-15 Fernando Perez <fperez@colorado.edu>
4035 2002-07-15 Fernando Perez <fperez@colorado.edu>
4033
4036
4034 * setup.py (make_shortcut): changed to retrieve the value of
4037 * setup.py (make_shortcut): changed to retrieve the value of
4035 'Program Files' directory from the registry (this value changes in
4038 'Program Files' directory from the registry (this value changes in
4036 non-english versions of Windows). Thanks to Thomas Fanslau
4039 non-english versions of Windows). Thanks to Thomas Fanslau
4037 <tfanslau-AT-gmx.de> for the report.
4040 <tfanslau-AT-gmx.de> for the report.
4038
4041
4039 2002-07-10 Fernando Perez <fperez@colorado.edu>
4042 2002-07-10 Fernando Perez <fperez@colorado.edu>
4040
4043
4041 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4044 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4042 a bug in pdb, which crashes if a line with only whitespace is
4045 a bug in pdb, which crashes if a line with only whitespace is
4043 entered. Bug report submitted to sourceforge.
4046 entered. Bug report submitted to sourceforge.
4044
4047
4045 2002-07-09 Fernando Perez <fperez@colorado.edu>
4048 2002-07-09 Fernando Perez <fperez@colorado.edu>
4046
4049
4047 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4050 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4048 reporting exceptions (it's a bug in inspect.py, I just set a
4051 reporting exceptions (it's a bug in inspect.py, I just set a
4049 workaround).
4052 workaround).
4050
4053
4051 2002-07-08 Fernando Perez <fperez@colorado.edu>
4054 2002-07-08 Fernando Perez <fperez@colorado.edu>
4052
4055
4053 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4056 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4054 __IPYTHON__ in __builtins__ to show up in user_ns.
4057 __IPYTHON__ in __builtins__ to show up in user_ns.
4055
4058
4056 2002-07-03 Fernando Perez <fperez@colorado.edu>
4059 2002-07-03 Fernando Perez <fperez@colorado.edu>
4057
4060
4058 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4061 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4059 name from @gp_set_instance to @gp_set_default.
4062 name from @gp_set_instance to @gp_set_default.
4060
4063
4061 * IPython/ipmaker.py (make_IPython): default editor value set to
4064 * IPython/ipmaker.py (make_IPython): default editor value set to
4062 '0' (a string), to match the rc file. Otherwise will crash when
4065 '0' (a string), to match the rc file. Otherwise will crash when
4063 .strip() is called on it.
4066 .strip() is called on it.
4064
4067
4065
4068
4066 2002-06-28 Fernando Perez <fperez@colorado.edu>
4069 2002-06-28 Fernando Perez <fperez@colorado.edu>
4067
4070
4068 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4071 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4069 of files in current directory when a file is executed via
4072 of files in current directory when a file is executed via
4070 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4073 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4071
4074
4072 * setup.py (manfiles): fix for rpm builds, submitted by RA
4075 * setup.py (manfiles): fix for rpm builds, submitted by RA
4073 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4076 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4074
4077
4075 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4078 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4076 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4079 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4077 string!). A. Schmolck caught this one.
4080 string!). A. Schmolck caught this one.
4078
4081
4079 2002-06-27 Fernando Perez <fperez@colorado.edu>
4082 2002-06-27 Fernando Perez <fperez@colorado.edu>
4080
4083
4081 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4084 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4082 defined files at the cmd line. __name__ wasn't being set to
4085 defined files at the cmd line. __name__ wasn't being set to
4083 __main__.
4086 __main__.
4084
4087
4085 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4088 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4086 regular lists and tuples besides Numeric arrays.
4089 regular lists and tuples besides Numeric arrays.
4087
4090
4088 * IPython/Prompts.py (CachedOutput.__call__): Added output
4091 * IPython/Prompts.py (CachedOutput.__call__): Added output
4089 supression for input ending with ';'. Similar to Mathematica and
4092 supression for input ending with ';'. Similar to Mathematica and
4090 Matlab. The _* vars and Out[] list are still updated, just like
4093 Matlab. The _* vars and Out[] list are still updated, just like
4091 Mathematica behaves.
4094 Mathematica behaves.
4092
4095
4093 2002-06-25 Fernando Perez <fperez@colorado.edu>
4096 2002-06-25 Fernando Perez <fperez@colorado.edu>
4094
4097
4095 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4098 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4096 .ini extensions for profiels under Windows.
4099 .ini extensions for profiels under Windows.
4097
4100
4098 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4101 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4099 string form. Fix contributed by Alexander Schmolck
4102 string form. Fix contributed by Alexander Schmolck
4100 <a.schmolck-AT-gmx.net>
4103 <a.schmolck-AT-gmx.net>
4101
4104
4102 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4105 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4103 pre-configured Gnuplot instance.
4106 pre-configured Gnuplot instance.
4104
4107
4105 2002-06-21 Fernando Perez <fperez@colorado.edu>
4108 2002-06-21 Fernando Perez <fperez@colorado.edu>
4106
4109
4107 * IPython/numutils.py (exp_safe): new function, works around the
4110 * IPython/numutils.py (exp_safe): new function, works around the
4108 underflow problems in Numeric.
4111 underflow problems in Numeric.
4109 (log2): New fn. Safe log in base 2: returns exact integer answer
4112 (log2): New fn. Safe log in base 2: returns exact integer answer
4110 for exact integer powers of 2.
4113 for exact integer powers of 2.
4111
4114
4112 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4115 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4113 properly.
4116 properly.
4114
4117
4115 2002-06-20 Fernando Perez <fperez@colorado.edu>
4118 2002-06-20 Fernando Perez <fperez@colorado.edu>
4116
4119
4117 * IPython/genutils.py (timing): new function like
4120 * IPython/genutils.py (timing): new function like
4118 Mathematica's. Similar to time_test, but returns more info.
4121 Mathematica's. Similar to time_test, but returns more info.
4119
4122
4120 2002-06-18 Fernando Perez <fperez@colorado.edu>
4123 2002-06-18 Fernando Perez <fperez@colorado.edu>
4121
4124
4122 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4125 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4123 according to Mike Heeter's suggestions.
4126 according to Mike Heeter's suggestions.
4124
4127
4125 2002-06-16 Fernando Perez <fperez@colorado.edu>
4128 2002-06-16 Fernando Perez <fperez@colorado.edu>
4126
4129
4127 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4130 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4128 system. GnuplotMagic is gone as a user-directory option. New files
4131 system. GnuplotMagic is gone as a user-directory option. New files
4129 make it easier to use all the gnuplot stuff both from external
4132 make it easier to use all the gnuplot stuff both from external
4130 programs as well as from IPython. Had to rewrite part of
4133 programs as well as from IPython. Had to rewrite part of
4131 hardcopy() b/c of a strange bug: often the ps files simply don't
4134 hardcopy() b/c of a strange bug: often the ps files simply don't
4132 get created, and require a repeat of the command (often several
4135 get created, and require a repeat of the command (often several
4133 times).
4136 times).
4134
4137
4135 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4138 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4136 resolve output channel at call time, so that if sys.stderr has
4139 resolve output channel at call time, so that if sys.stderr has
4137 been redirected by user this gets honored.
4140 been redirected by user this gets honored.
4138
4141
4139 2002-06-13 Fernando Perez <fperez@colorado.edu>
4142 2002-06-13 Fernando Perez <fperez@colorado.edu>
4140
4143
4141 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4144 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4142 IPShell. Kept a copy with the old names to avoid breaking people's
4145 IPShell. Kept a copy with the old names to avoid breaking people's
4143 embedded code.
4146 embedded code.
4144
4147
4145 * IPython/ipython: simplified it to the bare minimum after
4148 * IPython/ipython: simplified it to the bare minimum after
4146 Holger's suggestions. Added info about how to use it in
4149 Holger's suggestions. Added info about how to use it in
4147 PYTHONSTARTUP.
4150 PYTHONSTARTUP.
4148
4151
4149 * IPython/Shell.py (IPythonShell): changed the options passing
4152 * IPython/Shell.py (IPythonShell): changed the options passing
4150 from a string with funky %s replacements to a straight list. Maybe
4153 from a string with funky %s replacements to a straight list. Maybe
4151 a bit more typing, but it follows sys.argv conventions, so there's
4154 a bit more typing, but it follows sys.argv conventions, so there's
4152 less special-casing to remember.
4155 less special-casing to remember.
4153
4156
4154 2002-06-12 Fernando Perez <fperez@colorado.edu>
4157 2002-06-12 Fernando Perez <fperez@colorado.edu>
4155
4158
4156 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4159 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4157 command. Thanks to a suggestion by Mike Heeter.
4160 command. Thanks to a suggestion by Mike Heeter.
4158 (Magic.magic_pfile): added behavior to look at filenames if given
4161 (Magic.magic_pfile): added behavior to look at filenames if given
4159 arg is not a defined object.
4162 arg is not a defined object.
4160 (Magic.magic_save): New @save function to save code snippets. Also
4163 (Magic.magic_save): New @save function to save code snippets. Also
4161 a Mike Heeter idea.
4164 a Mike Heeter idea.
4162
4165
4163 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4166 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4164 plot() and replot(). Much more convenient now, especially for
4167 plot() and replot(). Much more convenient now, especially for
4165 interactive use.
4168 interactive use.
4166
4169
4167 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4170 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4168 filenames.
4171 filenames.
4169
4172
4170 2002-06-02 Fernando Perez <fperez@colorado.edu>
4173 2002-06-02 Fernando Perez <fperez@colorado.edu>
4171
4174
4172 * IPython/Struct.py (Struct.__init__): modified to admit
4175 * IPython/Struct.py (Struct.__init__): modified to admit
4173 initialization via another struct.
4176 initialization via another struct.
4174
4177
4175 * IPython/genutils.py (SystemExec.__init__): New stateful
4178 * IPython/genutils.py (SystemExec.__init__): New stateful
4176 interface to xsys and bq. Useful for writing system scripts.
4179 interface to xsys and bq. Useful for writing system scripts.
4177
4180
4178 2002-05-30 Fernando Perez <fperez@colorado.edu>
4181 2002-05-30 Fernando Perez <fperez@colorado.edu>
4179
4182
4180 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4183 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4181 documents. This will make the user download smaller (it's getting
4184 documents. This will make the user download smaller (it's getting
4182 too big).
4185 too big).
4183
4186
4184 2002-05-29 Fernando Perez <fperez@colorado.edu>
4187 2002-05-29 Fernando Perez <fperez@colorado.edu>
4185
4188
4186 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4189 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4187 fix problems with shelve and pickle. Seems to work, but I don't
4190 fix problems with shelve and pickle. Seems to work, but I don't
4188 know if corner cases break it. Thanks to Mike Heeter
4191 know if corner cases break it. Thanks to Mike Heeter
4189 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4192 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4190
4193
4191 2002-05-24 Fernando Perez <fperez@colorado.edu>
4194 2002-05-24 Fernando Perez <fperez@colorado.edu>
4192
4195
4193 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4196 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4194 macros having broken.
4197 macros having broken.
4195
4198
4196 2002-05-21 Fernando Perez <fperez@colorado.edu>
4199 2002-05-21 Fernando Perez <fperez@colorado.edu>
4197
4200
4198 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4201 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4199 introduced logging bug: all history before logging started was
4202 introduced logging bug: all history before logging started was
4200 being written one character per line! This came from the redesign
4203 being written one character per line! This came from the redesign
4201 of the input history as a special list which slices to strings,
4204 of the input history as a special list which slices to strings,
4202 not to lists.
4205 not to lists.
4203
4206
4204 2002-05-20 Fernando Perez <fperez@colorado.edu>
4207 2002-05-20 Fernando Perez <fperez@colorado.edu>
4205
4208
4206 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4209 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4207 be an attribute of all classes in this module. The design of these
4210 be an attribute of all classes in this module. The design of these
4208 classes needs some serious overhauling.
4211 classes needs some serious overhauling.
4209
4212
4210 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4213 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4211 which was ignoring '_' in option names.
4214 which was ignoring '_' in option names.
4212
4215
4213 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4216 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4214 'Verbose_novars' to 'Context' and made it the new default. It's a
4217 'Verbose_novars' to 'Context' and made it the new default. It's a
4215 bit more readable and also safer than verbose.
4218 bit more readable and also safer than verbose.
4216
4219
4217 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4220 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4218 triple-quoted strings.
4221 triple-quoted strings.
4219
4222
4220 * IPython/OInspect.py (__all__): new module exposing the object
4223 * IPython/OInspect.py (__all__): new module exposing the object
4221 introspection facilities. Now the corresponding magics are dummy
4224 introspection facilities. Now the corresponding magics are dummy
4222 wrappers around this. Having this module will make it much easier
4225 wrappers around this. Having this module will make it much easier
4223 to put these functions into our modified pdb.
4226 to put these functions into our modified pdb.
4224 This new object inspector system uses the new colorizing module,
4227 This new object inspector system uses the new colorizing module,
4225 so source code and other things are nicely syntax highlighted.
4228 so source code and other things are nicely syntax highlighted.
4226
4229
4227 2002-05-18 Fernando Perez <fperez@colorado.edu>
4230 2002-05-18 Fernando Perez <fperez@colorado.edu>
4228
4231
4229 * IPython/ColorANSI.py: Split the coloring tools into a separate
4232 * IPython/ColorANSI.py: Split the coloring tools into a separate
4230 module so I can use them in other code easier (they were part of
4233 module so I can use them in other code easier (they were part of
4231 ultraTB).
4234 ultraTB).
4232
4235
4233 2002-05-17 Fernando Perez <fperez@colorado.edu>
4236 2002-05-17 Fernando Perez <fperez@colorado.edu>
4234
4237
4235 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4238 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4236 fixed it to set the global 'g' also to the called instance, as
4239 fixed it to set the global 'g' also to the called instance, as
4237 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4240 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4238 user's 'g' variables).
4241 user's 'g' variables).
4239
4242
4240 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4243 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4241 global variables (aliases to _ih,_oh) so that users which expect
4244 global variables (aliases to _ih,_oh) so that users which expect
4242 In[5] or Out[7] to work aren't unpleasantly surprised.
4245 In[5] or Out[7] to work aren't unpleasantly surprised.
4243 (InputList.__getslice__): new class to allow executing slices of
4246 (InputList.__getslice__): new class to allow executing slices of
4244 input history directly. Very simple class, complements the use of
4247 input history directly. Very simple class, complements the use of
4245 macros.
4248 macros.
4246
4249
4247 2002-05-16 Fernando Perez <fperez@colorado.edu>
4250 2002-05-16 Fernando Perez <fperez@colorado.edu>
4248
4251
4249 * setup.py (docdirbase): make doc directory be just doc/IPython
4252 * setup.py (docdirbase): make doc directory be just doc/IPython
4250 without version numbers, it will reduce clutter for users.
4253 without version numbers, it will reduce clutter for users.
4251
4254
4252 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4255 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4253 execfile call to prevent possible memory leak. See for details:
4256 execfile call to prevent possible memory leak. See for details:
4254 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4257 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4255
4258
4256 2002-05-15 Fernando Perez <fperez@colorado.edu>
4259 2002-05-15 Fernando Perez <fperez@colorado.edu>
4257
4260
4258 * IPython/Magic.py (Magic.magic_psource): made the object
4261 * IPython/Magic.py (Magic.magic_psource): made the object
4259 introspection names be more standard: pdoc, pdef, pfile and
4262 introspection names be more standard: pdoc, pdef, pfile and
4260 psource. They all print/page their output, and it makes
4263 psource. They all print/page their output, and it makes
4261 remembering them easier. Kept old names for compatibility as
4264 remembering them easier. Kept old names for compatibility as
4262 aliases.
4265 aliases.
4263
4266
4264 2002-05-14 Fernando Perez <fperez@colorado.edu>
4267 2002-05-14 Fernando Perez <fperez@colorado.edu>
4265
4268
4266 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4269 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4267 what the mouse problem was. The trick is to use gnuplot with temp
4270 what the mouse problem was. The trick is to use gnuplot with temp
4268 files and NOT with pipes (for data communication), because having
4271 files and NOT with pipes (for data communication), because having
4269 both pipes and the mouse on is bad news.
4272 both pipes and the mouse on is bad news.
4270
4273
4271 2002-05-13 Fernando Perez <fperez@colorado.edu>
4274 2002-05-13 Fernando Perez <fperez@colorado.edu>
4272
4275
4273 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4276 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4274 bug. Information would be reported about builtins even when
4277 bug. Information would be reported about builtins even when
4275 user-defined functions overrode them.
4278 user-defined functions overrode them.
4276
4279
4277 2002-05-11 Fernando Perez <fperez@colorado.edu>
4280 2002-05-11 Fernando Perez <fperez@colorado.edu>
4278
4281
4279 * IPython/__init__.py (__all__): removed FlexCompleter from
4282 * IPython/__init__.py (__all__): removed FlexCompleter from
4280 __all__ so that things don't fail in platforms without readline.
4283 __all__ so that things don't fail in platforms without readline.
4281
4284
4282 2002-05-10 Fernando Perez <fperez@colorado.edu>
4285 2002-05-10 Fernando Perez <fperez@colorado.edu>
4283
4286
4284 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4287 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4285 it requires Numeric, effectively making Numeric a dependency for
4288 it requires Numeric, effectively making Numeric a dependency for
4286 IPython.
4289 IPython.
4287
4290
4288 * Released 0.2.13
4291 * Released 0.2.13
4289
4292
4290 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4293 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4291 profiler interface. Now all the major options from the profiler
4294 profiler interface. Now all the major options from the profiler
4292 module are directly supported in IPython, both for single
4295 module are directly supported in IPython, both for single
4293 expressions (@prun) and for full programs (@run -p).
4296 expressions (@prun) and for full programs (@run -p).
4294
4297
4295 2002-05-09 Fernando Perez <fperez@colorado.edu>
4298 2002-05-09 Fernando Perez <fperez@colorado.edu>
4296
4299
4297 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4300 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4298 magic properly formatted for screen.
4301 magic properly formatted for screen.
4299
4302
4300 * setup.py (make_shortcut): Changed things to put pdf version in
4303 * setup.py (make_shortcut): Changed things to put pdf version in
4301 doc/ instead of doc/manual (had to change lyxport a bit).
4304 doc/ instead of doc/manual (had to change lyxport a bit).
4302
4305
4303 * IPython/Magic.py (Profile.string_stats): made profile runs go
4306 * IPython/Magic.py (Profile.string_stats): made profile runs go
4304 through pager (they are long and a pager allows searching, saving,
4307 through pager (they are long and a pager allows searching, saving,
4305 etc.)
4308 etc.)
4306
4309
4307 2002-05-08 Fernando Perez <fperez@colorado.edu>
4310 2002-05-08 Fernando Perez <fperez@colorado.edu>
4308
4311
4309 * Released 0.2.12
4312 * Released 0.2.12
4310
4313
4311 2002-05-06 Fernando Perez <fperez@colorado.edu>
4314 2002-05-06 Fernando Perez <fperez@colorado.edu>
4312
4315
4313 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4316 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4314 introduced); 'hist n1 n2' was broken.
4317 introduced); 'hist n1 n2' was broken.
4315 (Magic.magic_pdb): added optional on/off arguments to @pdb
4318 (Magic.magic_pdb): added optional on/off arguments to @pdb
4316 (Magic.magic_run): added option -i to @run, which executes code in
4319 (Magic.magic_run): added option -i to @run, which executes code in
4317 the IPython namespace instead of a clean one. Also added @irun as
4320 the IPython namespace instead of a clean one. Also added @irun as
4318 an alias to @run -i.
4321 an alias to @run -i.
4319
4322
4320 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4323 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4321 fixed (it didn't really do anything, the namespaces were wrong).
4324 fixed (it didn't really do anything, the namespaces were wrong).
4322
4325
4323 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4326 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4324
4327
4325 * IPython/__init__.py (__all__): Fixed package namespace, now
4328 * IPython/__init__.py (__all__): Fixed package namespace, now
4326 'import IPython' does give access to IPython.<all> as
4329 'import IPython' does give access to IPython.<all> as
4327 expected. Also renamed __release__ to Release.
4330 expected. Also renamed __release__ to Release.
4328
4331
4329 * IPython/Debugger.py (__license__): created new Pdb class which
4332 * IPython/Debugger.py (__license__): created new Pdb class which
4330 functions like a drop-in for the normal pdb.Pdb but does NOT
4333 functions like a drop-in for the normal pdb.Pdb but does NOT
4331 import readline by default. This way it doesn't muck up IPython's
4334 import readline by default. This way it doesn't muck up IPython's
4332 readline handling, and now tab-completion finally works in the
4335 readline handling, and now tab-completion finally works in the
4333 debugger -- sort of. It completes things globally visible, but the
4336 debugger -- sort of. It completes things globally visible, but the
4334 completer doesn't track the stack as pdb walks it. That's a bit
4337 completer doesn't track the stack as pdb walks it. That's a bit
4335 tricky, and I'll have to implement it later.
4338 tricky, and I'll have to implement it later.
4336
4339
4337 2002-05-05 Fernando Perez <fperez@colorado.edu>
4340 2002-05-05 Fernando Perez <fperez@colorado.edu>
4338
4341
4339 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4342 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4340 magic docstrings when printed via ? (explicit \'s were being
4343 magic docstrings when printed via ? (explicit \'s were being
4341 printed).
4344 printed).
4342
4345
4343 * IPython/ipmaker.py (make_IPython): fixed namespace
4346 * IPython/ipmaker.py (make_IPython): fixed namespace
4344 identification bug. Now variables loaded via logs or command-line
4347 identification bug. Now variables loaded via logs or command-line
4345 files are recognized in the interactive namespace by @who.
4348 files are recognized in the interactive namespace by @who.
4346
4349
4347 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4350 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4348 log replay system stemming from the string form of Structs.
4351 log replay system stemming from the string form of Structs.
4349
4352
4350 * IPython/Magic.py (Macro.__init__): improved macros to properly
4353 * IPython/Magic.py (Macro.__init__): improved macros to properly
4351 handle magic commands in them.
4354 handle magic commands in them.
4352 (Magic.magic_logstart): usernames are now expanded so 'logstart
4355 (Magic.magic_logstart): usernames are now expanded so 'logstart
4353 ~/mylog' now works.
4356 ~/mylog' now works.
4354
4357
4355 * IPython/iplib.py (complete): fixed bug where paths starting with
4358 * IPython/iplib.py (complete): fixed bug where paths starting with
4356 '/' would be completed as magic names.
4359 '/' would be completed as magic names.
4357
4360
4358 2002-05-04 Fernando Perez <fperez@colorado.edu>
4361 2002-05-04 Fernando Perez <fperez@colorado.edu>
4359
4362
4360 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4363 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4361 allow running full programs under the profiler's control.
4364 allow running full programs under the profiler's control.
4362
4365
4363 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4366 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4364 mode to report exceptions verbosely but without formatting
4367 mode to report exceptions verbosely but without formatting
4365 variables. This addresses the issue of ipython 'freezing' (it's
4368 variables. This addresses the issue of ipython 'freezing' (it's
4366 not frozen, but caught in an expensive formatting loop) when huge
4369 not frozen, but caught in an expensive formatting loop) when huge
4367 variables are in the context of an exception.
4370 variables are in the context of an exception.
4368 (VerboseTB.text): Added '--->' markers at line where exception was
4371 (VerboseTB.text): Added '--->' markers at line where exception was
4369 triggered. Much clearer to read, especially in NoColor modes.
4372 triggered. Much clearer to read, especially in NoColor modes.
4370
4373
4371 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4374 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4372 implemented in reverse when changing to the new parse_options().
4375 implemented in reverse when changing to the new parse_options().
4373
4376
4374 2002-05-03 Fernando Perez <fperez@colorado.edu>
4377 2002-05-03 Fernando Perez <fperez@colorado.edu>
4375
4378
4376 * IPython/Magic.py (Magic.parse_options): new function so that
4379 * IPython/Magic.py (Magic.parse_options): new function so that
4377 magics can parse options easier.
4380 magics can parse options easier.
4378 (Magic.magic_prun): new function similar to profile.run(),
4381 (Magic.magic_prun): new function similar to profile.run(),
4379 suggested by Chris Hart.
4382 suggested by Chris Hart.
4380 (Magic.magic_cd): fixed behavior so that it only changes if
4383 (Magic.magic_cd): fixed behavior so that it only changes if
4381 directory actually is in history.
4384 directory actually is in history.
4382
4385
4383 * IPython/usage.py (__doc__): added information about potential
4386 * IPython/usage.py (__doc__): added information about potential
4384 slowness of Verbose exception mode when there are huge data
4387 slowness of Verbose exception mode when there are huge data
4385 structures to be formatted (thanks to Archie Paulson).
4388 structures to be formatted (thanks to Archie Paulson).
4386
4389
4387 * IPython/ipmaker.py (make_IPython): Changed default logging
4390 * IPython/ipmaker.py (make_IPython): Changed default logging
4388 (when simply called with -log) to use curr_dir/ipython.log in
4391 (when simply called with -log) to use curr_dir/ipython.log in
4389 rotate mode. Fixed crash which was occuring with -log before
4392 rotate mode. Fixed crash which was occuring with -log before
4390 (thanks to Jim Boyle).
4393 (thanks to Jim Boyle).
4391
4394
4392 2002-05-01 Fernando Perez <fperez@colorado.edu>
4395 2002-05-01 Fernando Perez <fperez@colorado.edu>
4393
4396
4394 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4397 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4395 was nasty -- though somewhat of a corner case).
4398 was nasty -- though somewhat of a corner case).
4396
4399
4397 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4400 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4398 text (was a bug).
4401 text (was a bug).
4399
4402
4400 2002-04-30 Fernando Perez <fperez@colorado.edu>
4403 2002-04-30 Fernando Perez <fperez@colorado.edu>
4401
4404
4402 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4405 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4403 a print after ^D or ^C from the user so that the In[] prompt
4406 a print after ^D or ^C from the user so that the In[] prompt
4404 doesn't over-run the gnuplot one.
4407 doesn't over-run the gnuplot one.
4405
4408
4406 2002-04-29 Fernando Perez <fperez@colorado.edu>
4409 2002-04-29 Fernando Perez <fperez@colorado.edu>
4407
4410
4408 * Released 0.2.10
4411 * Released 0.2.10
4409
4412
4410 * IPython/__release__.py (version): get date dynamically.
4413 * IPython/__release__.py (version): get date dynamically.
4411
4414
4412 * Misc. documentation updates thanks to Arnd's comments. Also ran
4415 * Misc. documentation updates thanks to Arnd's comments. Also ran
4413 a full spellcheck on the manual (hadn't been done in a while).
4416 a full spellcheck on the manual (hadn't been done in a while).
4414
4417
4415 2002-04-27 Fernando Perez <fperez@colorado.edu>
4418 2002-04-27 Fernando Perez <fperez@colorado.edu>
4416
4419
4417 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4420 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4418 starting a log in mid-session would reset the input history list.
4421 starting a log in mid-session would reset the input history list.
4419
4422
4420 2002-04-26 Fernando Perez <fperez@colorado.edu>
4423 2002-04-26 Fernando Perez <fperez@colorado.edu>
4421
4424
4422 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4425 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4423 all files were being included in an update. Now anything in
4426 all files were being included in an update. Now anything in
4424 UserConfig that matches [A-Za-z]*.py will go (this excludes
4427 UserConfig that matches [A-Za-z]*.py will go (this excludes
4425 __init__.py)
4428 __init__.py)
4426
4429
4427 2002-04-25 Fernando Perez <fperez@colorado.edu>
4430 2002-04-25 Fernando Perez <fperez@colorado.edu>
4428
4431
4429 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4432 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4430 to __builtins__ so that any form of embedded or imported code can
4433 to __builtins__ so that any form of embedded or imported code can
4431 test for being inside IPython.
4434 test for being inside IPython.
4432
4435
4433 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4436 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4434 changed to GnuplotMagic because it's now an importable module,
4437 changed to GnuplotMagic because it's now an importable module,
4435 this makes the name follow that of the standard Gnuplot module.
4438 this makes the name follow that of the standard Gnuplot module.
4436 GnuplotMagic can now be loaded at any time in mid-session.
4439 GnuplotMagic can now be loaded at any time in mid-session.
4437
4440
4438 2002-04-24 Fernando Perez <fperez@colorado.edu>
4441 2002-04-24 Fernando Perez <fperez@colorado.edu>
4439
4442
4440 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4443 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4441 the globals (IPython has its own namespace) and the
4444 the globals (IPython has its own namespace) and the
4442 PhysicalQuantity stuff is much better anyway.
4445 PhysicalQuantity stuff is much better anyway.
4443
4446
4444 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4447 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4445 embedding example to standard user directory for
4448 embedding example to standard user directory for
4446 distribution. Also put it in the manual.
4449 distribution. Also put it in the manual.
4447
4450
4448 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4451 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4449 instance as first argument (so it doesn't rely on some obscure
4452 instance as first argument (so it doesn't rely on some obscure
4450 hidden global).
4453 hidden global).
4451
4454
4452 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4455 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4453 delimiters. While it prevents ().TAB from working, it allows
4456 delimiters. While it prevents ().TAB from working, it allows
4454 completions in open (... expressions. This is by far a more common
4457 completions in open (... expressions. This is by far a more common
4455 case.
4458 case.
4456
4459
4457 2002-04-23 Fernando Perez <fperez@colorado.edu>
4460 2002-04-23 Fernando Perez <fperez@colorado.edu>
4458
4461
4459 * IPython/Extensions/InterpreterPasteInput.py: new
4462 * IPython/Extensions/InterpreterPasteInput.py: new
4460 syntax-processing module for pasting lines with >>> or ... at the
4463 syntax-processing module for pasting lines with >>> or ... at the
4461 start.
4464 start.
4462
4465
4463 * IPython/Extensions/PhysicalQ_Interactive.py
4466 * IPython/Extensions/PhysicalQ_Interactive.py
4464 (PhysicalQuantityInteractive.__int__): fixed to work with either
4467 (PhysicalQuantityInteractive.__int__): fixed to work with either
4465 Numeric or math.
4468 Numeric or math.
4466
4469
4467 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4470 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4468 provided profiles. Now we have:
4471 provided profiles. Now we have:
4469 -math -> math module as * and cmath with its own namespace.
4472 -math -> math module as * and cmath with its own namespace.
4470 -numeric -> Numeric as *, plus gnuplot & grace
4473 -numeric -> Numeric as *, plus gnuplot & grace
4471 -physics -> same as before
4474 -physics -> same as before
4472
4475
4473 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4476 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4474 user-defined magics wouldn't be found by @magic if they were
4477 user-defined magics wouldn't be found by @magic if they were
4475 defined as class methods. Also cleaned up the namespace search
4478 defined as class methods. Also cleaned up the namespace search
4476 logic and the string building (to use %s instead of many repeated
4479 logic and the string building (to use %s instead of many repeated
4477 string adds).
4480 string adds).
4478
4481
4479 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4482 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4480 of user-defined magics to operate with class methods (cleaner, in
4483 of user-defined magics to operate with class methods (cleaner, in
4481 line with the gnuplot code).
4484 line with the gnuplot code).
4482
4485
4483 2002-04-22 Fernando Perez <fperez@colorado.edu>
4486 2002-04-22 Fernando Perez <fperez@colorado.edu>
4484
4487
4485 * setup.py: updated dependency list so that manual is updated when
4488 * setup.py: updated dependency list so that manual is updated when
4486 all included files change.
4489 all included files change.
4487
4490
4488 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4491 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4489 the delimiter removal option (the fix is ugly right now).
4492 the delimiter removal option (the fix is ugly right now).
4490
4493
4491 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4494 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4492 all of the math profile (quicker loading, no conflict between
4495 all of the math profile (quicker loading, no conflict between
4493 g-9.8 and g-gnuplot).
4496 g-9.8 and g-gnuplot).
4494
4497
4495 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4498 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4496 name of post-mortem files to IPython_crash_report.txt.
4499 name of post-mortem files to IPython_crash_report.txt.
4497
4500
4498 * Cleanup/update of the docs. Added all the new readline info and
4501 * Cleanup/update of the docs. Added all the new readline info and
4499 formatted all lists as 'real lists'.
4502 formatted all lists as 'real lists'.
4500
4503
4501 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4504 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4502 tab-completion options, since the full readline parse_and_bind is
4505 tab-completion options, since the full readline parse_and_bind is
4503 now accessible.
4506 now accessible.
4504
4507
4505 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4508 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4506 handling of readline options. Now users can specify any string to
4509 handling of readline options. Now users can specify any string to
4507 be passed to parse_and_bind(), as well as the delimiters to be
4510 be passed to parse_and_bind(), as well as the delimiters to be
4508 removed.
4511 removed.
4509 (InteractiveShell.__init__): Added __name__ to the global
4512 (InteractiveShell.__init__): Added __name__ to the global
4510 namespace so that things like Itpl which rely on its existence
4513 namespace so that things like Itpl which rely on its existence
4511 don't crash.
4514 don't crash.
4512 (InteractiveShell._prefilter): Defined the default with a _ so
4515 (InteractiveShell._prefilter): Defined the default with a _ so
4513 that prefilter() is easier to override, while the default one
4516 that prefilter() is easier to override, while the default one
4514 remains available.
4517 remains available.
4515
4518
4516 2002-04-18 Fernando Perez <fperez@colorado.edu>
4519 2002-04-18 Fernando Perez <fperez@colorado.edu>
4517
4520
4518 * Added information about pdb in the docs.
4521 * Added information about pdb in the docs.
4519
4522
4520 2002-04-17 Fernando Perez <fperez@colorado.edu>
4523 2002-04-17 Fernando Perez <fperez@colorado.edu>
4521
4524
4522 * IPython/ipmaker.py (make_IPython): added rc_override option to
4525 * IPython/ipmaker.py (make_IPython): added rc_override option to
4523 allow passing config options at creation time which may override
4526 allow passing config options at creation time which may override
4524 anything set in the config files or command line. This is
4527 anything set in the config files or command line. This is
4525 particularly useful for configuring embedded instances.
4528 particularly useful for configuring embedded instances.
4526
4529
4527 2002-04-15 Fernando Perez <fperez@colorado.edu>
4530 2002-04-15 Fernando Perez <fperez@colorado.edu>
4528
4531
4529 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4532 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4530 crash embedded instances because of the input cache falling out of
4533 crash embedded instances because of the input cache falling out of
4531 sync with the output counter.
4534 sync with the output counter.
4532
4535
4533 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4536 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4534 mode which calls pdb after an uncaught exception in IPython itself.
4537 mode which calls pdb after an uncaught exception in IPython itself.
4535
4538
4536 2002-04-14 Fernando Perez <fperez@colorado.edu>
4539 2002-04-14 Fernando Perez <fperez@colorado.edu>
4537
4540
4538 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4541 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4539 readline, fix it back after each call.
4542 readline, fix it back after each call.
4540
4543
4541 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4544 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4542 method to force all access via __call__(), which guarantees that
4545 method to force all access via __call__(), which guarantees that
4543 traceback references are properly deleted.
4546 traceback references are properly deleted.
4544
4547
4545 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4548 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4546 improve printing when pprint is in use.
4549 improve printing when pprint is in use.
4547
4550
4548 2002-04-13 Fernando Perez <fperez@colorado.edu>
4551 2002-04-13 Fernando Perez <fperez@colorado.edu>
4549
4552
4550 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4553 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4551 exceptions aren't caught anymore. If the user triggers one, he
4554 exceptions aren't caught anymore. If the user triggers one, he
4552 should know why he's doing it and it should go all the way up,
4555 should know why he's doing it and it should go all the way up,
4553 just like any other exception. So now @abort will fully kill the
4556 just like any other exception. So now @abort will fully kill the
4554 embedded interpreter and the embedding code (unless that happens
4557 embedded interpreter and the embedding code (unless that happens
4555 to catch SystemExit).
4558 to catch SystemExit).
4556
4559
4557 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4560 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4558 and a debugger() method to invoke the interactive pdb debugger
4561 and a debugger() method to invoke the interactive pdb debugger
4559 after printing exception information. Also added the corresponding
4562 after printing exception information. Also added the corresponding
4560 -pdb option and @pdb magic to control this feature, and updated
4563 -pdb option and @pdb magic to control this feature, and updated
4561 the docs. After a suggestion from Christopher Hart
4564 the docs. After a suggestion from Christopher Hart
4562 (hart-AT-caltech.edu).
4565 (hart-AT-caltech.edu).
4563
4566
4564 2002-04-12 Fernando Perez <fperez@colorado.edu>
4567 2002-04-12 Fernando Perez <fperez@colorado.edu>
4565
4568
4566 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4569 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4567 the exception handlers defined by the user (not the CrashHandler)
4570 the exception handlers defined by the user (not the CrashHandler)
4568 so that user exceptions don't trigger an ipython bug report.
4571 so that user exceptions don't trigger an ipython bug report.
4569
4572
4570 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4573 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4571 configurable (it should have always been so).
4574 configurable (it should have always been so).
4572
4575
4573 2002-03-26 Fernando Perez <fperez@colorado.edu>
4576 2002-03-26 Fernando Perez <fperez@colorado.edu>
4574
4577
4575 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4578 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4576 and there to fix embedding namespace issues. This should all be
4579 and there to fix embedding namespace issues. This should all be
4577 done in a more elegant way.
4580 done in a more elegant way.
4578
4581
4579 2002-03-25 Fernando Perez <fperez@colorado.edu>
4582 2002-03-25 Fernando Perez <fperez@colorado.edu>
4580
4583
4581 * IPython/genutils.py (get_home_dir): Try to make it work under
4584 * IPython/genutils.py (get_home_dir): Try to make it work under
4582 win9x also.
4585 win9x also.
4583
4586
4584 2002-03-20 Fernando Perez <fperez@colorado.edu>
4587 2002-03-20 Fernando Perez <fperez@colorado.edu>
4585
4588
4586 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4589 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4587 sys.displayhook untouched upon __init__.
4590 sys.displayhook untouched upon __init__.
4588
4591
4589 2002-03-19 Fernando Perez <fperez@colorado.edu>
4592 2002-03-19 Fernando Perez <fperez@colorado.edu>
4590
4593
4591 * Released 0.2.9 (for embedding bug, basically).
4594 * Released 0.2.9 (for embedding bug, basically).
4592
4595
4593 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4596 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4594 exceptions so that enclosing shell's state can be restored.
4597 exceptions so that enclosing shell's state can be restored.
4595
4598
4596 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4599 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4597 naming conventions in the .ipython/ dir.
4600 naming conventions in the .ipython/ dir.
4598
4601
4599 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4602 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4600 from delimiters list so filenames with - in them get expanded.
4603 from delimiters list so filenames with - in them get expanded.
4601
4604
4602 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4605 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4603 sys.displayhook not being properly restored after an embedded call.
4606 sys.displayhook not being properly restored after an embedded call.
4604
4607
4605 2002-03-18 Fernando Perez <fperez@colorado.edu>
4608 2002-03-18 Fernando Perez <fperez@colorado.edu>
4606
4609
4607 * Released 0.2.8
4610 * Released 0.2.8
4608
4611
4609 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4612 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4610 some files weren't being included in a -upgrade.
4613 some files weren't being included in a -upgrade.
4611 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4614 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4612 on' so that the first tab completes.
4615 on' so that the first tab completes.
4613 (InteractiveShell.handle_magic): fixed bug with spaces around
4616 (InteractiveShell.handle_magic): fixed bug with spaces around
4614 quotes breaking many magic commands.
4617 quotes breaking many magic commands.
4615
4618
4616 * setup.py: added note about ignoring the syntax error messages at
4619 * setup.py: added note about ignoring the syntax error messages at
4617 installation.
4620 installation.
4618
4621
4619 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4622 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4620 streamlining the gnuplot interface, now there's only one magic @gp.
4623 streamlining the gnuplot interface, now there's only one magic @gp.
4621
4624
4622 2002-03-17 Fernando Perez <fperez@colorado.edu>
4625 2002-03-17 Fernando Perez <fperez@colorado.edu>
4623
4626
4624 * IPython/UserConfig/magic_gnuplot.py: new name for the
4627 * IPython/UserConfig/magic_gnuplot.py: new name for the
4625 example-magic_pm.py file. Much enhanced system, now with a shell
4628 example-magic_pm.py file. Much enhanced system, now with a shell
4626 for communicating directly with gnuplot, one command at a time.
4629 for communicating directly with gnuplot, one command at a time.
4627
4630
4628 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4631 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4629 setting __name__=='__main__'.
4632 setting __name__=='__main__'.
4630
4633
4631 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4634 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4632 mini-shell for accessing gnuplot from inside ipython. Should
4635 mini-shell for accessing gnuplot from inside ipython. Should
4633 extend it later for grace access too. Inspired by Arnd's
4636 extend it later for grace access too. Inspired by Arnd's
4634 suggestion.
4637 suggestion.
4635
4638
4636 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4639 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4637 calling magic functions with () in their arguments. Thanks to Arnd
4640 calling magic functions with () in their arguments. Thanks to Arnd
4638 Baecker for pointing this to me.
4641 Baecker for pointing this to me.
4639
4642
4640 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4643 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4641 infinitely for integer or complex arrays (only worked with floats).
4644 infinitely for integer or complex arrays (only worked with floats).
4642
4645
4643 2002-03-16 Fernando Perez <fperez@colorado.edu>
4646 2002-03-16 Fernando Perez <fperez@colorado.edu>
4644
4647
4645 * setup.py: Merged setup and setup_windows into a single script
4648 * setup.py: Merged setup and setup_windows into a single script
4646 which properly handles things for windows users.
4649 which properly handles things for windows users.
4647
4650
4648 2002-03-15 Fernando Perez <fperez@colorado.edu>
4651 2002-03-15 Fernando Perez <fperez@colorado.edu>
4649
4652
4650 * Big change to the manual: now the magics are all automatically
4653 * Big change to the manual: now the magics are all automatically
4651 documented. This information is generated from their docstrings
4654 documented. This information is generated from their docstrings
4652 and put in a latex file included by the manual lyx file. This way
4655 and put in a latex file included by the manual lyx file. This way
4653 we get always up to date information for the magics. The manual
4656 we get always up to date information for the magics. The manual
4654 now also has proper version information, also auto-synced.
4657 now also has proper version information, also auto-synced.
4655
4658
4656 For this to work, an undocumented --magic_docstrings option was added.
4659 For this to work, an undocumented --magic_docstrings option was added.
4657
4660
4658 2002-03-13 Fernando Perez <fperez@colorado.edu>
4661 2002-03-13 Fernando Perez <fperez@colorado.edu>
4659
4662
4660 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4663 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4661 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4664 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4662
4665
4663 2002-03-12 Fernando Perez <fperez@colorado.edu>
4666 2002-03-12 Fernando Perez <fperez@colorado.edu>
4664
4667
4665 * IPython/ultraTB.py (TermColors): changed color escapes again to
4668 * IPython/ultraTB.py (TermColors): changed color escapes again to
4666 fix the (old, reintroduced) line-wrapping bug. Basically, if
4669 fix the (old, reintroduced) line-wrapping bug. Basically, if
4667 \001..\002 aren't given in the color escapes, lines get wrapped
4670 \001..\002 aren't given in the color escapes, lines get wrapped
4668 weirdly. But giving those screws up old xterms and emacs terms. So
4671 weirdly. But giving those screws up old xterms and emacs terms. So
4669 I added some logic for emacs terms to be ok, but I can't identify old
4672 I added some logic for emacs terms to be ok, but I can't identify old
4670 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4673 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4671
4674
4672 2002-03-10 Fernando Perez <fperez@colorado.edu>
4675 2002-03-10 Fernando Perez <fperez@colorado.edu>
4673
4676
4674 * IPython/usage.py (__doc__): Various documentation cleanups and
4677 * IPython/usage.py (__doc__): Various documentation cleanups and
4675 updates, both in usage docstrings and in the manual.
4678 updates, both in usage docstrings and in the manual.
4676
4679
4677 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4680 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4678 handling of caching. Set minimum acceptabe value for having a
4681 handling of caching. Set minimum acceptabe value for having a
4679 cache at 20 values.
4682 cache at 20 values.
4680
4683
4681 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4684 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4682 install_first_time function to a method, renamed it and added an
4685 install_first_time function to a method, renamed it and added an
4683 'upgrade' mode. Now people can update their config directory with
4686 'upgrade' mode. Now people can update their config directory with
4684 a simple command line switch (-upgrade, also new).
4687 a simple command line switch (-upgrade, also new).
4685
4688
4686 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4689 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4687 @file (convenient for automagic users under Python >= 2.2).
4690 @file (convenient for automagic users under Python >= 2.2).
4688 Removed @files (it seemed more like a plural than an abbrev. of
4691 Removed @files (it seemed more like a plural than an abbrev. of
4689 'file show').
4692 'file show').
4690
4693
4691 * IPython/iplib.py (install_first_time): Fixed crash if there were
4694 * IPython/iplib.py (install_first_time): Fixed crash if there were
4692 backup files ('~') in .ipython/ install directory.
4695 backup files ('~') in .ipython/ install directory.
4693
4696
4694 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4697 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4695 system. Things look fine, but these changes are fairly
4698 system. Things look fine, but these changes are fairly
4696 intrusive. Test them for a few days.
4699 intrusive. Test them for a few days.
4697
4700
4698 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4701 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4699 the prompts system. Now all in/out prompt strings are user
4702 the prompts system. Now all in/out prompt strings are user
4700 controllable. This is particularly useful for embedding, as one
4703 controllable. This is particularly useful for embedding, as one
4701 can tag embedded instances with particular prompts.
4704 can tag embedded instances with particular prompts.
4702
4705
4703 Also removed global use of sys.ps1/2, which now allows nested
4706 Also removed global use of sys.ps1/2, which now allows nested
4704 embeddings without any problems. Added command-line options for
4707 embeddings without any problems. Added command-line options for
4705 the prompt strings.
4708 the prompt strings.
4706
4709
4707 2002-03-08 Fernando Perez <fperez@colorado.edu>
4710 2002-03-08 Fernando Perez <fperez@colorado.edu>
4708
4711
4709 * IPython/UserConfig/example-embed-short.py (ipshell): added
4712 * IPython/UserConfig/example-embed-short.py (ipshell): added
4710 example file with the bare minimum code for embedding.
4713 example file with the bare minimum code for embedding.
4711
4714
4712 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4715 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4713 functionality for the embeddable shell to be activated/deactivated
4716 functionality for the embeddable shell to be activated/deactivated
4714 either globally or at each call.
4717 either globally or at each call.
4715
4718
4716 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4719 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4717 rewriting the prompt with '--->' for auto-inputs with proper
4720 rewriting the prompt with '--->' for auto-inputs with proper
4718 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4721 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4719 this is handled by the prompts class itself, as it should.
4722 this is handled by the prompts class itself, as it should.
4720
4723
4721 2002-03-05 Fernando Perez <fperez@colorado.edu>
4724 2002-03-05 Fernando Perez <fperez@colorado.edu>
4722
4725
4723 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4726 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4724 @logstart to avoid name clashes with the math log function.
4727 @logstart to avoid name clashes with the math log function.
4725
4728
4726 * Big updates to X/Emacs section of the manual.
4729 * Big updates to X/Emacs section of the manual.
4727
4730
4728 * Removed ipython_emacs. Milan explained to me how to pass
4731 * Removed ipython_emacs. Milan explained to me how to pass
4729 arguments to ipython through Emacs. Some day I'm going to end up
4732 arguments to ipython through Emacs. Some day I'm going to end up
4730 learning some lisp...
4733 learning some lisp...
4731
4734
4732 2002-03-04 Fernando Perez <fperez@colorado.edu>
4735 2002-03-04 Fernando Perez <fperez@colorado.edu>
4733
4736
4734 * IPython/ipython_emacs: Created script to be used as the
4737 * IPython/ipython_emacs: Created script to be used as the
4735 py-python-command Emacs variable so we can pass IPython
4738 py-python-command Emacs variable so we can pass IPython
4736 parameters. I can't figure out how to tell Emacs directly to pass
4739 parameters. I can't figure out how to tell Emacs directly to pass
4737 parameters to IPython, so a dummy shell script will do it.
4740 parameters to IPython, so a dummy shell script will do it.
4738
4741
4739 Other enhancements made for things to work better under Emacs'
4742 Other enhancements made for things to work better under Emacs'
4740 various types of terminals. Many thanks to Milan Zamazal
4743 various types of terminals. Many thanks to Milan Zamazal
4741 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4744 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4742
4745
4743 2002-03-01 Fernando Perez <fperez@colorado.edu>
4746 2002-03-01 Fernando Perez <fperez@colorado.edu>
4744
4747
4745 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4748 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4746 that loading of readline is now optional. This gives better
4749 that loading of readline is now optional. This gives better
4747 control to emacs users.
4750 control to emacs users.
4748
4751
4749 * IPython/ultraTB.py (__date__): Modified color escape sequences
4752 * IPython/ultraTB.py (__date__): Modified color escape sequences
4750 and now things work fine under xterm and in Emacs' term buffers
4753 and now things work fine under xterm and in Emacs' term buffers
4751 (though not shell ones). Well, in emacs you get colors, but all
4754 (though not shell ones). Well, in emacs you get colors, but all
4752 seem to be 'light' colors (no difference between dark and light
4755 seem to be 'light' colors (no difference between dark and light
4753 ones). But the garbage chars are gone, and also in xterms. It
4756 ones). But the garbage chars are gone, and also in xterms. It
4754 seems that now I'm using 'cleaner' ansi sequences.
4757 seems that now I'm using 'cleaner' ansi sequences.
4755
4758
4756 2002-02-21 Fernando Perez <fperez@colorado.edu>
4759 2002-02-21 Fernando Perez <fperez@colorado.edu>
4757
4760
4758 * Released 0.2.7 (mainly to publish the scoping fix).
4761 * Released 0.2.7 (mainly to publish the scoping fix).
4759
4762
4760 * IPython/Logger.py (Logger.logstate): added. A corresponding
4763 * IPython/Logger.py (Logger.logstate): added. A corresponding
4761 @logstate magic was created.
4764 @logstate magic was created.
4762
4765
4763 * IPython/Magic.py: fixed nested scoping problem under Python
4766 * IPython/Magic.py: fixed nested scoping problem under Python
4764 2.1.x (automagic wasn't working).
4767 2.1.x (automagic wasn't working).
4765
4768
4766 2002-02-20 Fernando Perez <fperez@colorado.edu>
4769 2002-02-20 Fernando Perez <fperez@colorado.edu>
4767
4770
4768 * Released 0.2.6.
4771 * Released 0.2.6.
4769
4772
4770 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4773 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4771 option so that logs can come out without any headers at all.
4774 option so that logs can come out without any headers at all.
4772
4775
4773 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4776 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4774 SciPy.
4777 SciPy.
4775
4778
4776 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4779 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4777 that embedded IPython calls don't require vars() to be explicitly
4780 that embedded IPython calls don't require vars() to be explicitly
4778 passed. Now they are extracted from the caller's frame (code
4781 passed. Now they are extracted from the caller's frame (code
4779 snatched from Eric Jones' weave). Added better documentation to
4782 snatched from Eric Jones' weave). Added better documentation to
4780 the section on embedding and the example file.
4783 the section on embedding and the example file.
4781
4784
4782 * IPython/genutils.py (page): Changed so that under emacs, it just
4785 * IPython/genutils.py (page): Changed so that under emacs, it just
4783 prints the string. You can then page up and down in the emacs
4786 prints the string. You can then page up and down in the emacs
4784 buffer itself. This is how the builtin help() works.
4787 buffer itself. This is how the builtin help() works.
4785
4788
4786 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4789 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4787 macro scoping: macros need to be executed in the user's namespace
4790 macro scoping: macros need to be executed in the user's namespace
4788 to work as if they had been typed by the user.
4791 to work as if they had been typed by the user.
4789
4792
4790 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4793 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4791 execute automatically (no need to type 'exec...'). They then
4794 execute automatically (no need to type 'exec...'). They then
4792 behave like 'true macros'. The printing system was also modified
4795 behave like 'true macros'. The printing system was also modified
4793 for this to work.
4796 for this to work.
4794
4797
4795 2002-02-19 Fernando Perez <fperez@colorado.edu>
4798 2002-02-19 Fernando Perez <fperez@colorado.edu>
4796
4799
4797 * IPython/genutils.py (page_file): new function for paging files
4800 * IPython/genutils.py (page_file): new function for paging files
4798 in an OS-independent way. Also necessary for file viewing to work
4801 in an OS-independent way. Also necessary for file viewing to work
4799 well inside Emacs buffers.
4802 well inside Emacs buffers.
4800 (page): Added checks for being in an emacs buffer.
4803 (page): Added checks for being in an emacs buffer.
4801 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4804 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4802 same bug in iplib.
4805 same bug in iplib.
4803
4806
4804 2002-02-18 Fernando Perez <fperez@colorado.edu>
4807 2002-02-18 Fernando Perez <fperez@colorado.edu>
4805
4808
4806 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4809 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4807 of readline so that IPython can work inside an Emacs buffer.
4810 of readline so that IPython can work inside an Emacs buffer.
4808
4811
4809 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4812 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4810 method signatures (they weren't really bugs, but it looks cleaner
4813 method signatures (they weren't really bugs, but it looks cleaner
4811 and keeps PyChecker happy).
4814 and keeps PyChecker happy).
4812
4815
4813 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4816 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4814 for implementing various user-defined hooks. Currently only
4817 for implementing various user-defined hooks. Currently only
4815 display is done.
4818 display is done.
4816
4819
4817 * IPython/Prompts.py (CachedOutput._display): changed display
4820 * IPython/Prompts.py (CachedOutput._display): changed display
4818 functions so that they can be dynamically changed by users easily.
4821 functions so that they can be dynamically changed by users easily.
4819
4822
4820 * IPython/Extensions/numeric_formats.py (num_display): added an
4823 * IPython/Extensions/numeric_formats.py (num_display): added an
4821 extension for printing NumPy arrays in flexible manners. It
4824 extension for printing NumPy arrays in flexible manners. It
4822 doesn't do anything yet, but all the structure is in
4825 doesn't do anything yet, but all the structure is in
4823 place. Ultimately the plan is to implement output format control
4826 place. Ultimately the plan is to implement output format control
4824 like in Octave.
4827 like in Octave.
4825
4828
4826 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4829 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4827 methods are found at run-time by all the automatic machinery.
4830 methods are found at run-time by all the automatic machinery.
4828
4831
4829 2002-02-17 Fernando Perez <fperez@colorado.edu>
4832 2002-02-17 Fernando Perez <fperez@colorado.edu>
4830
4833
4831 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4834 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4832 whole file a little.
4835 whole file a little.
4833
4836
4834 * ToDo: closed this document. Now there's a new_design.lyx
4837 * ToDo: closed this document. Now there's a new_design.lyx
4835 document for all new ideas. Added making a pdf of it for the
4838 document for all new ideas. Added making a pdf of it for the
4836 end-user distro.
4839 end-user distro.
4837
4840
4838 * IPython/Logger.py (Logger.switch_log): Created this to replace
4841 * IPython/Logger.py (Logger.switch_log): Created this to replace
4839 logon() and logoff(). It also fixes a nasty crash reported by
4842 logon() and logoff(). It also fixes a nasty crash reported by
4840 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4843 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4841
4844
4842 * IPython/iplib.py (complete): got auto-completion to work with
4845 * IPython/iplib.py (complete): got auto-completion to work with
4843 automagic (I had wanted this for a long time).
4846 automagic (I had wanted this for a long time).
4844
4847
4845 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4848 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4846 to @file, since file() is now a builtin and clashes with automagic
4849 to @file, since file() is now a builtin and clashes with automagic
4847 for @file.
4850 for @file.
4848
4851
4849 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4852 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4850 of this was previously in iplib, which had grown to more than 2000
4853 of this was previously in iplib, which had grown to more than 2000
4851 lines, way too long. No new functionality, but it makes managing
4854 lines, way too long. No new functionality, but it makes managing
4852 the code a bit easier.
4855 the code a bit easier.
4853
4856
4854 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4857 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4855 information to crash reports.
4858 information to crash reports.
4856
4859
4857 2002-02-12 Fernando Perez <fperez@colorado.edu>
4860 2002-02-12 Fernando Perez <fperez@colorado.edu>
4858
4861
4859 * Released 0.2.5.
4862 * Released 0.2.5.
4860
4863
4861 2002-02-11 Fernando Perez <fperez@colorado.edu>
4864 2002-02-11 Fernando Perez <fperez@colorado.edu>
4862
4865
4863 * Wrote a relatively complete Windows installer. It puts
4866 * Wrote a relatively complete Windows installer. It puts
4864 everything in place, creates Start Menu entries and fixes the
4867 everything in place, creates Start Menu entries and fixes the
4865 color issues. Nothing fancy, but it works.
4868 color issues. Nothing fancy, but it works.
4866
4869
4867 2002-02-10 Fernando Perez <fperez@colorado.edu>
4870 2002-02-10 Fernando Perez <fperez@colorado.edu>
4868
4871
4869 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4872 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4870 os.path.expanduser() call so that we can type @run ~/myfile.py and
4873 os.path.expanduser() call so that we can type @run ~/myfile.py and
4871 have thigs work as expected.
4874 have thigs work as expected.
4872
4875
4873 * IPython/genutils.py (page): fixed exception handling so things
4876 * IPython/genutils.py (page): fixed exception handling so things
4874 work both in Unix and Windows correctly. Quitting a pager triggers
4877 work both in Unix and Windows correctly. Quitting a pager triggers
4875 an IOError/broken pipe in Unix, and in windows not finding a pager
4878 an IOError/broken pipe in Unix, and in windows not finding a pager
4876 is also an IOError, so I had to actually look at the return value
4879 is also an IOError, so I had to actually look at the return value
4877 of the exception, not just the exception itself. Should be ok now.
4880 of the exception, not just the exception itself. Should be ok now.
4878
4881
4879 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4882 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4880 modified to allow case-insensitive color scheme changes.
4883 modified to allow case-insensitive color scheme changes.
4881
4884
4882 2002-02-09 Fernando Perez <fperez@colorado.edu>
4885 2002-02-09 Fernando Perez <fperez@colorado.edu>
4883
4886
4884 * IPython/genutils.py (native_line_ends): new function to leave
4887 * IPython/genutils.py (native_line_ends): new function to leave
4885 user config files with os-native line-endings.
4888 user config files with os-native line-endings.
4886
4889
4887 * README and manual updates.
4890 * README and manual updates.
4888
4891
4889 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4892 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4890 instead of StringType to catch Unicode strings.
4893 instead of StringType to catch Unicode strings.
4891
4894
4892 * IPython/genutils.py (filefind): fixed bug for paths with
4895 * IPython/genutils.py (filefind): fixed bug for paths with
4893 embedded spaces (very common in Windows).
4896 embedded spaces (very common in Windows).
4894
4897
4895 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4898 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4896 files under Windows, so that they get automatically associated
4899 files under Windows, so that they get automatically associated
4897 with a text editor. Windows makes it a pain to handle
4900 with a text editor. Windows makes it a pain to handle
4898 extension-less files.
4901 extension-less files.
4899
4902
4900 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4903 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4901 warning about readline only occur for Posix. In Windows there's no
4904 warning about readline only occur for Posix. In Windows there's no
4902 way to get readline, so why bother with the warning.
4905 way to get readline, so why bother with the warning.
4903
4906
4904 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4907 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4905 for __str__ instead of dir(self), since dir() changed in 2.2.
4908 for __str__ instead of dir(self), since dir() changed in 2.2.
4906
4909
4907 * Ported to Windows! Tested on XP, I suspect it should work fine
4910 * Ported to Windows! Tested on XP, I suspect it should work fine
4908 on NT/2000, but I don't think it will work on 98 et al. That
4911 on NT/2000, but I don't think it will work on 98 et al. That
4909 series of Windows is such a piece of junk anyway that I won't try
4912 series of Windows is such a piece of junk anyway that I won't try
4910 porting it there. The XP port was straightforward, showed a few
4913 porting it there. The XP port was straightforward, showed a few
4911 bugs here and there (fixed all), in particular some string
4914 bugs here and there (fixed all), in particular some string
4912 handling stuff which required considering Unicode strings (which
4915 handling stuff which required considering Unicode strings (which
4913 Windows uses). This is good, but hasn't been too tested :) No
4916 Windows uses). This is good, but hasn't been too tested :) No
4914 fancy installer yet, I'll put a note in the manual so people at
4917 fancy installer yet, I'll put a note in the manual so people at
4915 least make manually a shortcut.
4918 least make manually a shortcut.
4916
4919
4917 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4920 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4918 into a single one, "colors". This now controls both prompt and
4921 into a single one, "colors". This now controls both prompt and
4919 exception color schemes, and can be changed both at startup
4922 exception color schemes, and can be changed both at startup
4920 (either via command-line switches or via ipythonrc files) and at
4923 (either via command-line switches or via ipythonrc files) and at
4921 runtime, with @colors.
4924 runtime, with @colors.
4922 (Magic.magic_run): renamed @prun to @run and removed the old
4925 (Magic.magic_run): renamed @prun to @run and removed the old
4923 @run. The two were too similar to warrant keeping both.
4926 @run. The two were too similar to warrant keeping both.
4924
4927
4925 2002-02-03 Fernando Perez <fperez@colorado.edu>
4928 2002-02-03 Fernando Perez <fperez@colorado.edu>
4926
4929
4927 * IPython/iplib.py (install_first_time): Added comment on how to
4930 * IPython/iplib.py (install_first_time): Added comment on how to
4928 configure the color options for first-time users. Put a <return>
4931 configure the color options for first-time users. Put a <return>
4929 request at the end so that small-terminal users get a chance to
4932 request at the end so that small-terminal users get a chance to
4930 read the startup info.
4933 read the startup info.
4931
4934
4932 2002-01-23 Fernando Perez <fperez@colorado.edu>
4935 2002-01-23 Fernando Perez <fperez@colorado.edu>
4933
4936
4934 * IPython/iplib.py (CachedOutput.update): Changed output memory
4937 * IPython/iplib.py (CachedOutput.update): Changed output memory
4935 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4938 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4936 input history we still use _i. Did this b/c these variable are
4939 input history we still use _i. Did this b/c these variable are
4937 very commonly used in interactive work, so the less we need to
4940 very commonly used in interactive work, so the less we need to
4938 type the better off we are.
4941 type the better off we are.
4939 (Magic.magic_prun): updated @prun to better handle the namespaces
4942 (Magic.magic_prun): updated @prun to better handle the namespaces
4940 the file will run in, including a fix for __name__ not being set
4943 the file will run in, including a fix for __name__ not being set
4941 before.
4944 before.
4942
4945
4943 2002-01-20 Fernando Perez <fperez@colorado.edu>
4946 2002-01-20 Fernando Perez <fperez@colorado.edu>
4944
4947
4945 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4948 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4946 extra garbage for Python 2.2. Need to look more carefully into
4949 extra garbage for Python 2.2. Need to look more carefully into
4947 this later.
4950 this later.
4948
4951
4949 2002-01-19 Fernando Perez <fperez@colorado.edu>
4952 2002-01-19 Fernando Perez <fperez@colorado.edu>
4950
4953
4951 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4954 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4952 display SyntaxError exceptions properly formatted when they occur
4955 display SyntaxError exceptions properly formatted when they occur
4953 (they can be triggered by imported code).
4956 (they can be triggered by imported code).
4954
4957
4955 2002-01-18 Fernando Perez <fperez@colorado.edu>
4958 2002-01-18 Fernando Perez <fperez@colorado.edu>
4956
4959
4957 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4960 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4958 SyntaxError exceptions are reported nicely formatted, instead of
4961 SyntaxError exceptions are reported nicely formatted, instead of
4959 spitting out only offset information as before.
4962 spitting out only offset information as before.
4960 (Magic.magic_prun): Added the @prun function for executing
4963 (Magic.magic_prun): Added the @prun function for executing
4961 programs with command line args inside IPython.
4964 programs with command line args inside IPython.
4962
4965
4963 2002-01-16 Fernando Perez <fperez@colorado.edu>
4966 2002-01-16 Fernando Perez <fperez@colorado.edu>
4964
4967
4965 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4968 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4966 to *not* include the last item given in a range. This brings their
4969 to *not* include the last item given in a range. This brings their
4967 behavior in line with Python's slicing:
4970 behavior in line with Python's slicing:
4968 a[n1:n2] -> a[n1]...a[n2-1]
4971 a[n1:n2] -> a[n1]...a[n2-1]
4969 It may be a bit less convenient, but I prefer to stick to Python's
4972 It may be a bit less convenient, but I prefer to stick to Python's
4970 conventions *everywhere*, so users never have to wonder.
4973 conventions *everywhere*, so users never have to wonder.
4971 (Magic.magic_macro): Added @macro function to ease the creation of
4974 (Magic.magic_macro): Added @macro function to ease the creation of
4972 macros.
4975 macros.
4973
4976
4974 2002-01-05 Fernando Perez <fperez@colorado.edu>
4977 2002-01-05 Fernando Perez <fperez@colorado.edu>
4975
4978
4976 * Released 0.2.4.
4979 * Released 0.2.4.
4977
4980
4978 * IPython/iplib.py (Magic.magic_pdef):
4981 * IPython/iplib.py (Magic.magic_pdef):
4979 (InteractiveShell.safe_execfile): report magic lines and error
4982 (InteractiveShell.safe_execfile): report magic lines and error
4980 lines without line numbers so one can easily copy/paste them for
4983 lines without line numbers so one can easily copy/paste them for
4981 re-execution.
4984 re-execution.
4982
4985
4983 * Updated manual with recent changes.
4986 * Updated manual with recent changes.
4984
4987
4985 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4988 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4986 docstring printing when class? is called. Very handy for knowing
4989 docstring printing when class? is called. Very handy for knowing
4987 how to create class instances (as long as __init__ is well
4990 how to create class instances (as long as __init__ is well
4988 documented, of course :)
4991 documented, of course :)
4989 (Magic.magic_doc): print both class and constructor docstrings.
4992 (Magic.magic_doc): print both class and constructor docstrings.
4990 (Magic.magic_pdef): give constructor info if passed a class and
4993 (Magic.magic_pdef): give constructor info if passed a class and
4991 __call__ info for callable object instances.
4994 __call__ info for callable object instances.
4992
4995
4993 2002-01-04 Fernando Perez <fperez@colorado.edu>
4996 2002-01-04 Fernando Perez <fperez@colorado.edu>
4994
4997
4995 * Made deep_reload() off by default. It doesn't always work
4998 * Made deep_reload() off by default. It doesn't always work
4996 exactly as intended, so it's probably safer to have it off. It's
4999 exactly as intended, so it's probably safer to have it off. It's
4997 still available as dreload() anyway, so nothing is lost.
5000 still available as dreload() anyway, so nothing is lost.
4998
5001
4999 2002-01-02 Fernando Perez <fperez@colorado.edu>
5002 2002-01-02 Fernando Perez <fperez@colorado.edu>
5000
5003
5001 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5004 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5002 so I wanted an updated release).
5005 so I wanted an updated release).
5003
5006
5004 2001-12-27 Fernando Perez <fperez@colorado.edu>
5007 2001-12-27 Fernando Perez <fperez@colorado.edu>
5005
5008
5006 * IPython/iplib.py (InteractiveShell.interact): Added the original
5009 * IPython/iplib.py (InteractiveShell.interact): Added the original
5007 code from 'code.py' for this module in order to change the
5010 code from 'code.py' for this module in order to change the
5008 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5011 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5009 the history cache would break when the user hit Ctrl-C, and
5012 the history cache would break when the user hit Ctrl-C, and
5010 interact() offers no way to add any hooks to it.
5013 interact() offers no way to add any hooks to it.
5011
5014
5012 2001-12-23 Fernando Perez <fperez@colorado.edu>
5015 2001-12-23 Fernando Perez <fperez@colorado.edu>
5013
5016
5014 * setup.py: added check for 'MANIFEST' before trying to remove
5017 * setup.py: added check for 'MANIFEST' before trying to remove
5015 it. Thanks to Sean Reifschneider.
5018 it. Thanks to Sean Reifschneider.
5016
5019
5017 2001-12-22 Fernando Perez <fperez@colorado.edu>
5020 2001-12-22 Fernando Perez <fperez@colorado.edu>
5018
5021
5019 * Released 0.2.2.
5022 * Released 0.2.2.
5020
5023
5021 * Finished (reasonably) writing the manual. Later will add the
5024 * Finished (reasonably) writing the manual. Later will add the
5022 python-standard navigation stylesheets, but for the time being
5025 python-standard navigation stylesheets, but for the time being
5023 it's fairly complete. Distribution will include html and pdf
5026 it's fairly complete. Distribution will include html and pdf
5024 versions.
5027 versions.
5025
5028
5026 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5029 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5027 (MayaVi author).
5030 (MayaVi author).
5028
5031
5029 2001-12-21 Fernando Perez <fperez@colorado.edu>
5032 2001-12-21 Fernando Perez <fperez@colorado.edu>
5030
5033
5031 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5034 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5032 good public release, I think (with the manual and the distutils
5035 good public release, I think (with the manual and the distutils
5033 installer). The manual can use some work, but that can go
5036 installer). The manual can use some work, but that can go
5034 slowly. Otherwise I think it's quite nice for end users. Next
5037 slowly. Otherwise I think it's quite nice for end users. Next
5035 summer, rewrite the guts of it...
5038 summer, rewrite the guts of it...
5036
5039
5037 * Changed format of ipythonrc files to use whitespace as the
5040 * Changed format of ipythonrc files to use whitespace as the
5038 separator instead of an explicit '='. Cleaner.
5041 separator instead of an explicit '='. Cleaner.
5039
5042
5040 2001-12-20 Fernando Perez <fperez@colorado.edu>
5043 2001-12-20 Fernando Perez <fperez@colorado.edu>
5041
5044
5042 * Started a manual in LyX. For now it's just a quick merge of the
5045 * Started a manual in LyX. For now it's just a quick merge of the
5043 various internal docstrings and READMEs. Later it may grow into a
5046 various internal docstrings and READMEs. Later it may grow into a
5044 nice, full-blown manual.
5047 nice, full-blown manual.
5045
5048
5046 * Set up a distutils based installer. Installation should now be
5049 * Set up a distutils based installer. Installation should now be
5047 trivially simple for end-users.
5050 trivially simple for end-users.
5048
5051
5049 2001-12-11 Fernando Perez <fperez@colorado.edu>
5052 2001-12-11 Fernando Perez <fperez@colorado.edu>
5050
5053
5051 * Released 0.2.0. First public release, announced it at
5054 * Released 0.2.0. First public release, announced it at
5052 comp.lang.python. From now on, just bugfixes...
5055 comp.lang.python. From now on, just bugfixes...
5053
5056
5054 * Went through all the files, set copyright/license notices and
5057 * Went through all the files, set copyright/license notices and
5055 cleaned up things. Ready for release.
5058 cleaned up things. Ready for release.
5056
5059
5057 2001-12-10 Fernando Perez <fperez@colorado.edu>
5060 2001-12-10 Fernando Perez <fperez@colorado.edu>
5058
5061
5059 * Changed the first-time installer not to use tarfiles. It's more
5062 * Changed the first-time installer not to use tarfiles. It's more
5060 robust now and less unix-dependent. Also makes it easier for
5063 robust now and less unix-dependent. Also makes it easier for
5061 people to later upgrade versions.
5064 people to later upgrade versions.
5062
5065
5063 * Changed @exit to @abort to reflect the fact that it's pretty
5066 * Changed @exit to @abort to reflect the fact that it's pretty
5064 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5067 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5065 becomes significant only when IPyhton is embedded: in that case,
5068 becomes significant only when IPyhton is embedded: in that case,
5066 C-D closes IPython only, but @abort kills the enclosing program
5069 C-D closes IPython only, but @abort kills the enclosing program
5067 too (unless it had called IPython inside a try catching
5070 too (unless it had called IPython inside a try catching
5068 SystemExit).
5071 SystemExit).
5069
5072
5070 * Created Shell module which exposes the actuall IPython Shell
5073 * Created Shell module which exposes the actuall IPython Shell
5071 classes, currently the normal and the embeddable one. This at
5074 classes, currently the normal and the embeddable one. This at
5072 least offers a stable interface we won't need to change when
5075 least offers a stable interface we won't need to change when
5073 (later) the internals are rewritten. That rewrite will be confined
5076 (later) the internals are rewritten. That rewrite will be confined
5074 to iplib and ipmaker, but the Shell interface should remain as is.
5077 to iplib and ipmaker, but the Shell interface should remain as is.
5075
5078
5076 * Added embed module which offers an embeddable IPShell object,
5079 * Added embed module which offers an embeddable IPShell object,
5077 useful to fire up IPython *inside* a running program. Great for
5080 useful to fire up IPython *inside* a running program. Great for
5078 debugging or dynamical data analysis.
5081 debugging or dynamical data analysis.
5079
5082
5080 2001-12-08 Fernando Perez <fperez@colorado.edu>
5083 2001-12-08 Fernando Perez <fperez@colorado.edu>
5081
5084
5082 * Fixed small bug preventing seeing info from methods of defined
5085 * Fixed small bug preventing seeing info from methods of defined
5083 objects (incorrect namespace in _ofind()).
5086 objects (incorrect namespace in _ofind()).
5084
5087
5085 * Documentation cleanup. Moved the main usage docstrings to a
5088 * Documentation cleanup. Moved the main usage docstrings to a
5086 separate file, usage.py (cleaner to maintain, and hopefully in the
5089 separate file, usage.py (cleaner to maintain, and hopefully in the
5087 future some perlpod-like way of producing interactive, man and
5090 future some perlpod-like way of producing interactive, man and
5088 html docs out of it will be found).
5091 html docs out of it will be found).
5089
5092
5090 * Added @profile to see your profile at any time.
5093 * Added @profile to see your profile at any time.
5091
5094
5092 * Added @p as an alias for 'print'. It's especially convenient if
5095 * Added @p as an alias for 'print'. It's especially convenient if
5093 using automagic ('p x' prints x).
5096 using automagic ('p x' prints x).
5094
5097
5095 * Small cleanups and fixes after a pychecker run.
5098 * Small cleanups and fixes after a pychecker run.
5096
5099
5097 * Changed the @cd command to handle @cd - and @cd -<n> for
5100 * Changed the @cd command to handle @cd - and @cd -<n> for
5098 visiting any directory in _dh.
5101 visiting any directory in _dh.
5099
5102
5100 * Introduced _dh, a history of visited directories. @dhist prints
5103 * Introduced _dh, a history of visited directories. @dhist prints
5101 it out with numbers.
5104 it out with numbers.
5102
5105
5103 2001-12-07 Fernando Perez <fperez@colorado.edu>
5106 2001-12-07 Fernando Perez <fperez@colorado.edu>
5104
5107
5105 * Released 0.1.22
5108 * Released 0.1.22
5106
5109
5107 * Made initialization a bit more robust against invalid color
5110 * Made initialization a bit more robust against invalid color
5108 options in user input (exit, not traceback-crash).
5111 options in user input (exit, not traceback-crash).
5109
5112
5110 * Changed the bug crash reporter to write the report only in the
5113 * Changed the bug crash reporter to write the report only in the
5111 user's .ipython directory. That way IPython won't litter people's
5114 user's .ipython directory. That way IPython won't litter people's
5112 hard disks with crash files all over the place. Also print on
5115 hard disks with crash files all over the place. Also print on
5113 screen the necessary mail command.
5116 screen the necessary mail command.
5114
5117
5115 * With the new ultraTB, implemented LightBG color scheme for light
5118 * With the new ultraTB, implemented LightBG color scheme for light
5116 background terminals. A lot of people like white backgrounds, so I
5119 background terminals. A lot of people like white backgrounds, so I
5117 guess we should at least give them something readable.
5120 guess we should at least give them something readable.
5118
5121
5119 2001-12-06 Fernando Perez <fperez@colorado.edu>
5122 2001-12-06 Fernando Perez <fperez@colorado.edu>
5120
5123
5121 * Modified the structure of ultraTB. Now there's a proper class
5124 * Modified the structure of ultraTB. Now there's a proper class
5122 for tables of color schemes which allow adding schemes easily and
5125 for tables of color schemes which allow adding schemes easily and
5123 switching the active scheme without creating a new instance every
5126 switching the active scheme without creating a new instance every
5124 time (which was ridiculous). The syntax for creating new schemes
5127 time (which was ridiculous). The syntax for creating new schemes
5125 is also cleaner. I think ultraTB is finally done, with a clean
5128 is also cleaner. I think ultraTB is finally done, with a clean
5126 class structure. Names are also much cleaner (now there's proper
5129 class structure. Names are also much cleaner (now there's proper
5127 color tables, no need for every variable to also have 'color' in
5130 color tables, no need for every variable to also have 'color' in
5128 its name).
5131 its name).
5129
5132
5130 * Broke down genutils into separate files. Now genutils only
5133 * Broke down genutils into separate files. Now genutils only
5131 contains utility functions, and classes have been moved to their
5134 contains utility functions, and classes have been moved to their
5132 own files (they had enough independent functionality to warrant
5135 own files (they had enough independent functionality to warrant
5133 it): ConfigLoader, OutputTrap, Struct.
5136 it): ConfigLoader, OutputTrap, Struct.
5134
5137
5135 2001-12-05 Fernando Perez <fperez@colorado.edu>
5138 2001-12-05 Fernando Perez <fperez@colorado.edu>
5136
5139
5137 * IPython turns 21! Released version 0.1.21, as a candidate for
5140 * IPython turns 21! Released version 0.1.21, as a candidate for
5138 public consumption. If all goes well, release in a few days.
5141 public consumption. If all goes well, release in a few days.
5139
5142
5140 * Fixed path bug (files in Extensions/ directory wouldn't be found
5143 * Fixed path bug (files in Extensions/ directory wouldn't be found
5141 unless IPython/ was explicitly in sys.path).
5144 unless IPython/ was explicitly in sys.path).
5142
5145
5143 * Extended the FlexCompleter class as MagicCompleter to allow
5146 * Extended the FlexCompleter class as MagicCompleter to allow
5144 completion of @-starting lines.
5147 completion of @-starting lines.
5145
5148
5146 * Created __release__.py file as a central repository for release
5149 * Created __release__.py file as a central repository for release
5147 info that other files can read from.
5150 info that other files can read from.
5148
5151
5149 * Fixed small bug in logging: when logging was turned on in
5152 * Fixed small bug in logging: when logging was turned on in
5150 mid-session, old lines with special meanings (!@?) were being
5153 mid-session, old lines with special meanings (!@?) were being
5151 logged without the prepended comment, which is necessary since
5154 logged without the prepended comment, which is necessary since
5152 they are not truly valid python syntax. This should make session
5155 they are not truly valid python syntax. This should make session
5153 restores produce less errors.
5156 restores produce less errors.
5154
5157
5155 * The namespace cleanup forced me to make a FlexCompleter class
5158 * The namespace cleanup forced me to make a FlexCompleter class
5156 which is nothing but a ripoff of rlcompleter, but with selectable
5159 which is nothing but a ripoff of rlcompleter, but with selectable
5157 namespace (rlcompleter only works in __main__.__dict__). I'll try
5160 namespace (rlcompleter only works in __main__.__dict__). I'll try
5158 to submit a note to the authors to see if this change can be
5161 to submit a note to the authors to see if this change can be
5159 incorporated in future rlcompleter releases (Dec.6: done)
5162 incorporated in future rlcompleter releases (Dec.6: done)
5160
5163
5161 * More fixes to namespace handling. It was a mess! Now all
5164 * More fixes to namespace handling. It was a mess! Now all
5162 explicit references to __main__.__dict__ are gone (except when
5165 explicit references to __main__.__dict__ are gone (except when
5163 really needed) and everything is handled through the namespace
5166 really needed) and everything is handled through the namespace
5164 dicts in the IPython instance. We seem to be getting somewhere
5167 dicts in the IPython instance. We seem to be getting somewhere
5165 with this, finally...
5168 with this, finally...
5166
5169
5167 * Small documentation updates.
5170 * Small documentation updates.
5168
5171
5169 * Created the Extensions directory under IPython (with an
5172 * Created the Extensions directory under IPython (with an
5170 __init__.py). Put the PhysicalQ stuff there. This directory should
5173 __init__.py). Put the PhysicalQ stuff there. This directory should
5171 be used for all special-purpose extensions.
5174 be used for all special-purpose extensions.
5172
5175
5173 * File renaming:
5176 * File renaming:
5174 ipythonlib --> ipmaker
5177 ipythonlib --> ipmaker
5175 ipplib --> iplib
5178 ipplib --> iplib
5176 This makes a bit more sense in terms of what these files actually do.
5179 This makes a bit more sense in terms of what these files actually do.
5177
5180
5178 * Moved all the classes and functions in ipythonlib to ipplib, so
5181 * Moved all the classes and functions in ipythonlib to ipplib, so
5179 now ipythonlib only has make_IPython(). This will ease up its
5182 now ipythonlib only has make_IPython(). This will ease up its
5180 splitting in smaller functional chunks later.
5183 splitting in smaller functional chunks later.
5181
5184
5182 * Cleaned up (done, I think) output of @whos. Better column
5185 * Cleaned up (done, I think) output of @whos. Better column
5183 formatting, and now shows str(var) for as much as it can, which is
5186 formatting, and now shows str(var) for as much as it can, which is
5184 typically what one gets with a 'print var'.
5187 typically what one gets with a 'print var'.
5185
5188
5186 2001-12-04 Fernando Perez <fperez@colorado.edu>
5189 2001-12-04 Fernando Perez <fperez@colorado.edu>
5187
5190
5188 * Fixed namespace problems. Now builtin/IPyhton/user names get
5191 * Fixed namespace problems. Now builtin/IPyhton/user names get
5189 properly reported in their namespace. Internal namespace handling
5192 properly reported in their namespace. Internal namespace handling
5190 is finally getting decent (not perfect yet, but much better than
5193 is finally getting decent (not perfect yet, but much better than
5191 the ad-hoc mess we had).
5194 the ad-hoc mess we had).
5192
5195
5193 * Removed -exit option. If people just want to run a python
5196 * Removed -exit option. If people just want to run a python
5194 script, that's what the normal interpreter is for. Less
5197 script, that's what the normal interpreter is for. Less
5195 unnecessary options, less chances for bugs.
5198 unnecessary options, less chances for bugs.
5196
5199
5197 * Added a crash handler which generates a complete post-mortem if
5200 * Added a crash handler which generates a complete post-mortem if
5198 IPython crashes. This will help a lot in tracking bugs down the
5201 IPython crashes. This will help a lot in tracking bugs down the
5199 road.
5202 road.
5200
5203
5201 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5204 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5202 which were boud to functions being reassigned would bypass the
5205 which were boud to functions being reassigned would bypass the
5203 logger, breaking the sync of _il with the prompt counter. This
5206 logger, breaking the sync of _il with the prompt counter. This
5204 would then crash IPython later when a new line was logged.
5207 would then crash IPython later when a new line was logged.
5205
5208
5206 2001-12-02 Fernando Perez <fperez@colorado.edu>
5209 2001-12-02 Fernando Perez <fperez@colorado.edu>
5207
5210
5208 * Made IPython a package. This means people don't have to clutter
5211 * Made IPython a package. This means people don't have to clutter
5209 their sys.path with yet another directory. Changed the INSTALL
5212 their sys.path with yet another directory. Changed the INSTALL
5210 file accordingly.
5213 file accordingly.
5211
5214
5212 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5215 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5213 sorts its output (so @who shows it sorted) and @whos formats the
5216 sorts its output (so @who shows it sorted) and @whos formats the
5214 table according to the width of the first column. Nicer, easier to
5217 table according to the width of the first column. Nicer, easier to
5215 read. Todo: write a generic table_format() which takes a list of
5218 read. Todo: write a generic table_format() which takes a list of
5216 lists and prints it nicely formatted, with optional row/column
5219 lists and prints it nicely formatted, with optional row/column
5217 separators and proper padding and justification.
5220 separators and proper padding and justification.
5218
5221
5219 * Released 0.1.20
5222 * Released 0.1.20
5220
5223
5221 * Fixed bug in @log which would reverse the inputcache list (a
5224 * Fixed bug in @log which would reverse the inputcache list (a
5222 copy operation was missing).
5225 copy operation was missing).
5223
5226
5224 * Code cleanup. @config was changed to use page(). Better, since
5227 * Code cleanup. @config was changed to use page(). Better, since
5225 its output is always quite long.
5228 its output is always quite long.
5226
5229
5227 * Itpl is back as a dependency. I was having too many problems
5230 * Itpl is back as a dependency. I was having too many problems
5228 getting the parametric aliases to work reliably, and it's just
5231 getting the parametric aliases to work reliably, and it's just
5229 easier to code weird string operations with it than playing %()s
5232 easier to code weird string operations with it than playing %()s
5230 games. It's only ~6k, so I don't think it's too big a deal.
5233 games. It's only ~6k, so I don't think it's too big a deal.
5231
5234
5232 * Found (and fixed) a very nasty bug with history. !lines weren't
5235 * Found (and fixed) a very nasty bug with history. !lines weren't
5233 getting cached, and the out of sync caches would crash
5236 getting cached, and the out of sync caches would crash
5234 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5237 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5235 division of labor a bit better. Bug fixed, cleaner structure.
5238 division of labor a bit better. Bug fixed, cleaner structure.
5236
5239
5237 2001-12-01 Fernando Perez <fperez@colorado.edu>
5240 2001-12-01 Fernando Perez <fperez@colorado.edu>
5238
5241
5239 * Released 0.1.19
5242 * Released 0.1.19
5240
5243
5241 * Added option -n to @hist to prevent line number printing. Much
5244 * Added option -n to @hist to prevent line number printing. Much
5242 easier to copy/paste code this way.
5245 easier to copy/paste code this way.
5243
5246
5244 * Created global _il to hold the input list. Allows easy
5247 * Created global _il to hold the input list. Allows easy
5245 re-execution of blocks of code by slicing it (inspired by Janko's
5248 re-execution of blocks of code by slicing it (inspired by Janko's
5246 comment on 'macros').
5249 comment on 'macros').
5247
5250
5248 * Small fixes and doc updates.
5251 * Small fixes and doc updates.
5249
5252
5250 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5253 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5251 much too fragile with automagic. Handles properly multi-line
5254 much too fragile with automagic. Handles properly multi-line
5252 statements and takes parameters.
5255 statements and takes parameters.
5253
5256
5254 2001-11-30 Fernando Perez <fperez@colorado.edu>
5257 2001-11-30 Fernando Perez <fperez@colorado.edu>
5255
5258
5256 * Version 0.1.18 released.
5259 * Version 0.1.18 released.
5257
5260
5258 * Fixed nasty namespace bug in initial module imports.
5261 * Fixed nasty namespace bug in initial module imports.
5259
5262
5260 * Added copyright/license notes to all code files (except
5263 * Added copyright/license notes to all code files (except
5261 DPyGetOpt). For the time being, LGPL. That could change.
5264 DPyGetOpt). For the time being, LGPL. That could change.
5262
5265
5263 * Rewrote a much nicer README, updated INSTALL, cleaned up
5266 * Rewrote a much nicer README, updated INSTALL, cleaned up
5264 ipythonrc-* samples.
5267 ipythonrc-* samples.
5265
5268
5266 * Overall code/documentation cleanup. Basically ready for
5269 * Overall code/documentation cleanup. Basically ready for
5267 release. Only remaining thing: licence decision (LGPL?).
5270 release. Only remaining thing: licence decision (LGPL?).
5268
5271
5269 * Converted load_config to a class, ConfigLoader. Now recursion
5272 * Converted load_config to a class, ConfigLoader. Now recursion
5270 control is better organized. Doesn't include the same file twice.
5273 control is better organized. Doesn't include the same file twice.
5271
5274
5272 2001-11-29 Fernando Perez <fperez@colorado.edu>
5275 2001-11-29 Fernando Perez <fperez@colorado.edu>
5273
5276
5274 * Got input history working. Changed output history variables from
5277 * Got input history working. Changed output history variables from
5275 _p to _o so that _i is for input and _o for output. Just cleaner
5278 _p to _o so that _i is for input and _o for output. Just cleaner
5276 convention.
5279 convention.
5277
5280
5278 * Implemented parametric aliases. This pretty much allows the
5281 * Implemented parametric aliases. This pretty much allows the
5279 alias system to offer full-blown shell convenience, I think.
5282 alias system to offer full-blown shell convenience, I think.
5280
5283
5281 * Version 0.1.17 released, 0.1.18 opened.
5284 * Version 0.1.17 released, 0.1.18 opened.
5282
5285
5283 * dot_ipython/ipythonrc (alias): added documentation.
5286 * dot_ipython/ipythonrc (alias): added documentation.
5284 (xcolor): Fixed small bug (xcolors -> xcolor)
5287 (xcolor): Fixed small bug (xcolors -> xcolor)
5285
5288
5286 * Changed the alias system. Now alias is a magic command to define
5289 * Changed the alias system. Now alias is a magic command to define
5287 aliases just like the shell. Rationale: the builtin magics should
5290 aliases just like the shell. Rationale: the builtin magics should
5288 be there for things deeply connected to IPython's
5291 be there for things deeply connected to IPython's
5289 architecture. And this is a much lighter system for what I think
5292 architecture. And this is a much lighter system for what I think
5290 is the really important feature: allowing users to define quickly
5293 is the really important feature: allowing users to define quickly
5291 magics that will do shell things for them, so they can customize
5294 magics that will do shell things for them, so they can customize
5292 IPython easily to match their work habits. If someone is really
5295 IPython easily to match their work habits. If someone is really
5293 desperate to have another name for a builtin alias, they can
5296 desperate to have another name for a builtin alias, they can
5294 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5297 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5295 works.
5298 works.
5296
5299
5297 2001-11-28 Fernando Perez <fperez@colorado.edu>
5300 2001-11-28 Fernando Perez <fperez@colorado.edu>
5298
5301
5299 * Changed @file so that it opens the source file at the proper
5302 * Changed @file so that it opens the source file at the proper
5300 line. Since it uses less, if your EDITOR environment is
5303 line. Since it uses less, if your EDITOR environment is
5301 configured, typing v will immediately open your editor of choice
5304 configured, typing v will immediately open your editor of choice
5302 right at the line where the object is defined. Not as quick as
5305 right at the line where the object is defined. Not as quick as
5303 having a direct @edit command, but for all intents and purposes it
5306 having a direct @edit command, but for all intents and purposes it
5304 works. And I don't have to worry about writing @edit to deal with
5307 works. And I don't have to worry about writing @edit to deal with
5305 all the editors, less does that.
5308 all the editors, less does that.
5306
5309
5307 * Version 0.1.16 released, 0.1.17 opened.
5310 * Version 0.1.16 released, 0.1.17 opened.
5308
5311
5309 * Fixed some nasty bugs in the page/page_dumb combo that could
5312 * Fixed some nasty bugs in the page/page_dumb combo that could
5310 crash IPython.
5313 crash IPython.
5311
5314
5312 2001-11-27 Fernando Perez <fperez@colorado.edu>
5315 2001-11-27 Fernando Perez <fperez@colorado.edu>
5313
5316
5314 * Version 0.1.15 released, 0.1.16 opened.
5317 * Version 0.1.15 released, 0.1.16 opened.
5315
5318
5316 * Finally got ? and ?? to work for undefined things: now it's
5319 * Finally got ? and ?? to work for undefined things: now it's
5317 possible to type {}.get? and get information about the get method
5320 possible to type {}.get? and get information about the get method
5318 of dicts, or os.path? even if only os is defined (so technically
5321 of dicts, or os.path? even if only os is defined (so technically
5319 os.path isn't). Works at any level. For example, after import os,
5322 os.path isn't). Works at any level. For example, after import os,
5320 os?, os.path?, os.path.abspath? all work. This is great, took some
5323 os?, os.path?, os.path.abspath? all work. This is great, took some
5321 work in _ofind.
5324 work in _ofind.
5322
5325
5323 * Fixed more bugs with logging. The sanest way to do it was to add
5326 * Fixed more bugs with logging. The sanest way to do it was to add
5324 to @log a 'mode' parameter. Killed two in one shot (this mode
5327 to @log a 'mode' parameter. Killed two in one shot (this mode
5325 option was a request of Janko's). I think it's finally clean
5328 option was a request of Janko's). I think it's finally clean
5326 (famous last words).
5329 (famous last words).
5327
5330
5328 * Added a page_dumb() pager which does a decent job of paging on
5331 * Added a page_dumb() pager which does a decent job of paging on
5329 screen, if better things (like less) aren't available. One less
5332 screen, if better things (like less) aren't available. One less
5330 unix dependency (someday maybe somebody will port this to
5333 unix dependency (someday maybe somebody will port this to
5331 windows).
5334 windows).
5332
5335
5333 * Fixed problem in magic_log: would lock of logging out if log
5336 * Fixed problem in magic_log: would lock of logging out if log
5334 creation failed (because it would still think it had succeeded).
5337 creation failed (because it would still think it had succeeded).
5335
5338
5336 * Improved the page() function using curses to auto-detect screen
5339 * Improved the page() function using curses to auto-detect screen
5337 size. Now it can make a much better decision on whether to print
5340 size. Now it can make a much better decision on whether to print
5338 or page a string. Option screen_length was modified: a value 0
5341 or page a string. Option screen_length was modified: a value 0
5339 means auto-detect, and that's the default now.
5342 means auto-detect, and that's the default now.
5340
5343
5341 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5344 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5342 go out. I'll test it for a few days, then talk to Janko about
5345 go out. I'll test it for a few days, then talk to Janko about
5343 licences and announce it.
5346 licences and announce it.
5344
5347
5345 * Fixed the length of the auto-generated ---> prompt which appears
5348 * Fixed the length of the auto-generated ---> prompt which appears
5346 for auto-parens and auto-quotes. Getting this right isn't trivial,
5349 for auto-parens and auto-quotes. Getting this right isn't trivial,
5347 with all the color escapes, different prompt types and optional
5350 with all the color escapes, different prompt types and optional
5348 separators. But it seems to be working in all the combinations.
5351 separators. But it seems to be working in all the combinations.
5349
5352
5350 2001-11-26 Fernando Perez <fperez@colorado.edu>
5353 2001-11-26 Fernando Perez <fperez@colorado.edu>
5351
5354
5352 * Wrote a regexp filter to get option types from the option names
5355 * Wrote a regexp filter to get option types from the option names
5353 string. This eliminates the need to manually keep two duplicate
5356 string. This eliminates the need to manually keep two duplicate
5354 lists.
5357 lists.
5355
5358
5356 * Removed the unneeded check_option_names. Now options are handled
5359 * Removed the unneeded check_option_names. Now options are handled
5357 in a much saner manner and it's easy to visually check that things
5360 in a much saner manner and it's easy to visually check that things
5358 are ok.
5361 are ok.
5359
5362
5360 * Updated version numbers on all files I modified to carry a
5363 * Updated version numbers on all files I modified to carry a
5361 notice so Janko and Nathan have clear version markers.
5364 notice so Janko and Nathan have clear version markers.
5362
5365
5363 * Updated docstring for ultraTB with my changes. I should send
5366 * Updated docstring for ultraTB with my changes. I should send
5364 this to Nathan.
5367 this to Nathan.
5365
5368
5366 * Lots of small fixes. Ran everything through pychecker again.
5369 * Lots of small fixes. Ran everything through pychecker again.
5367
5370
5368 * Made loading of deep_reload an cmd line option. If it's not too
5371 * Made loading of deep_reload an cmd line option. If it's not too
5369 kosher, now people can just disable it. With -nodeep_reload it's
5372 kosher, now people can just disable it. With -nodeep_reload it's
5370 still available as dreload(), it just won't overwrite reload().
5373 still available as dreload(), it just won't overwrite reload().
5371
5374
5372 * Moved many options to the no| form (-opt and -noopt
5375 * Moved many options to the no| form (-opt and -noopt
5373 accepted). Cleaner.
5376 accepted). Cleaner.
5374
5377
5375 * Changed magic_log so that if called with no parameters, it uses
5378 * Changed magic_log so that if called with no parameters, it uses
5376 'rotate' mode. That way auto-generated logs aren't automatically
5379 'rotate' mode. That way auto-generated logs aren't automatically
5377 over-written. For normal logs, now a backup is made if it exists
5380 over-written. For normal logs, now a backup is made if it exists
5378 (only 1 level of backups). A new 'backup' mode was added to the
5381 (only 1 level of backups). A new 'backup' mode was added to the
5379 Logger class to support this. This was a request by Janko.
5382 Logger class to support this. This was a request by Janko.
5380
5383
5381 * Added @logoff/@logon to stop/restart an active log.
5384 * Added @logoff/@logon to stop/restart an active log.
5382
5385
5383 * Fixed a lot of bugs in log saving/replay. It was pretty
5386 * Fixed a lot of bugs in log saving/replay. It was pretty
5384 broken. Now special lines (!@,/) appear properly in the command
5387 broken. Now special lines (!@,/) appear properly in the command
5385 history after a log replay.
5388 history after a log replay.
5386
5389
5387 * Tried and failed to implement full session saving via pickle. My
5390 * Tried and failed to implement full session saving via pickle. My
5388 idea was to pickle __main__.__dict__, but modules can't be
5391 idea was to pickle __main__.__dict__, but modules can't be
5389 pickled. This would be a better alternative to replaying logs, but
5392 pickled. This would be a better alternative to replaying logs, but
5390 seems quite tricky to get to work. Changed -session to be called
5393 seems quite tricky to get to work. Changed -session to be called
5391 -logplay, which more accurately reflects what it does. And if we
5394 -logplay, which more accurately reflects what it does. And if we
5392 ever get real session saving working, -session is now available.
5395 ever get real session saving working, -session is now available.
5393
5396
5394 * Implemented color schemes for prompts also. As for tracebacks,
5397 * Implemented color schemes for prompts also. As for tracebacks,
5395 currently only NoColor and Linux are supported. But now the
5398 currently only NoColor and Linux are supported. But now the
5396 infrastructure is in place, based on a generic ColorScheme
5399 infrastructure is in place, based on a generic ColorScheme
5397 class. So writing and activating new schemes both for the prompts
5400 class. So writing and activating new schemes both for the prompts
5398 and the tracebacks should be straightforward.
5401 and the tracebacks should be straightforward.
5399
5402
5400 * Version 0.1.13 released, 0.1.14 opened.
5403 * Version 0.1.13 released, 0.1.14 opened.
5401
5404
5402 * Changed handling of options for output cache. Now counter is
5405 * Changed handling of options for output cache. Now counter is
5403 hardwired starting at 1 and one specifies the maximum number of
5406 hardwired starting at 1 and one specifies the maximum number of
5404 entries *in the outcache* (not the max prompt counter). This is
5407 entries *in the outcache* (not the max prompt counter). This is
5405 much better, since many statements won't increase the cache
5408 much better, since many statements won't increase the cache
5406 count. It also eliminated some confusing options, now there's only
5409 count. It also eliminated some confusing options, now there's only
5407 one: cache_size.
5410 one: cache_size.
5408
5411
5409 * Added 'alias' magic function and magic_alias option in the
5412 * Added 'alias' magic function and magic_alias option in the
5410 ipythonrc file. Now the user can easily define whatever names he
5413 ipythonrc file. Now the user can easily define whatever names he
5411 wants for the magic functions without having to play weird
5414 wants for the magic functions without having to play weird
5412 namespace games. This gives IPython a real shell-like feel.
5415 namespace games. This gives IPython a real shell-like feel.
5413
5416
5414 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5417 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5415 @ or not).
5418 @ or not).
5416
5419
5417 This was one of the last remaining 'visible' bugs (that I know
5420 This was one of the last remaining 'visible' bugs (that I know
5418 of). I think if I can clean up the session loading so it works
5421 of). I think if I can clean up the session loading so it works
5419 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5422 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5420 about licensing).
5423 about licensing).
5421
5424
5422 2001-11-25 Fernando Perez <fperez@colorado.edu>
5425 2001-11-25 Fernando Perez <fperez@colorado.edu>
5423
5426
5424 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5427 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5425 there's a cleaner distinction between what ? and ?? show.
5428 there's a cleaner distinction between what ? and ?? show.
5426
5429
5427 * Added screen_length option. Now the user can define his own
5430 * Added screen_length option. Now the user can define his own
5428 screen size for page() operations.
5431 screen size for page() operations.
5429
5432
5430 * Implemented magic shell-like functions with automatic code
5433 * Implemented magic shell-like functions with automatic code
5431 generation. Now adding another function is just a matter of adding
5434 generation. Now adding another function is just a matter of adding
5432 an entry to a dict, and the function is dynamically generated at
5435 an entry to a dict, and the function is dynamically generated at
5433 run-time. Python has some really cool features!
5436 run-time. Python has some really cool features!
5434
5437
5435 * Renamed many options to cleanup conventions a little. Now all
5438 * Renamed many options to cleanup conventions a little. Now all
5436 are lowercase, and only underscores where needed. Also in the code
5439 are lowercase, and only underscores where needed. Also in the code
5437 option name tables are clearer.
5440 option name tables are clearer.
5438
5441
5439 * Changed prompts a little. Now input is 'In [n]:' instead of
5442 * Changed prompts a little. Now input is 'In [n]:' instead of
5440 'In[n]:='. This allows it the numbers to be aligned with the
5443 'In[n]:='. This allows it the numbers to be aligned with the
5441 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5444 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5442 Python (it was a Mathematica thing). The '...' continuation prompt
5445 Python (it was a Mathematica thing). The '...' continuation prompt
5443 was also changed a little to align better.
5446 was also changed a little to align better.
5444
5447
5445 * Fixed bug when flushing output cache. Not all _p<n> variables
5448 * Fixed bug when flushing output cache. Not all _p<n> variables
5446 exist, so their deletion needs to be wrapped in a try:
5449 exist, so their deletion needs to be wrapped in a try:
5447
5450
5448 * Figured out how to properly use inspect.formatargspec() (it
5451 * Figured out how to properly use inspect.formatargspec() (it
5449 requires the args preceded by *). So I removed all the code from
5452 requires the args preceded by *). So I removed all the code from
5450 _get_pdef in Magic, which was just replicating that.
5453 _get_pdef in Magic, which was just replicating that.
5451
5454
5452 * Added test to prefilter to allow redefining magic function names
5455 * Added test to prefilter to allow redefining magic function names
5453 as variables. This is ok, since the @ form is always available,
5456 as variables. This is ok, since the @ form is always available,
5454 but whe should allow the user to define a variable called 'ls' if
5457 but whe should allow the user to define a variable called 'ls' if
5455 he needs it.
5458 he needs it.
5456
5459
5457 * Moved the ToDo information from README into a separate ToDo.
5460 * Moved the ToDo information from README into a separate ToDo.
5458
5461
5459 * General code cleanup and small bugfixes. I think it's close to a
5462 * General code cleanup and small bugfixes. I think it's close to a
5460 state where it can be released, obviously with a big 'beta'
5463 state where it can be released, obviously with a big 'beta'
5461 warning on it.
5464 warning on it.
5462
5465
5463 * Got the magic function split to work. Now all magics are defined
5466 * Got the magic function split to work. Now all magics are defined
5464 in a separate class. It just organizes things a bit, and now
5467 in a separate class. It just organizes things a bit, and now
5465 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5468 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5466 was too long).
5469 was too long).
5467
5470
5468 * Changed @clear to @reset to avoid potential confusions with
5471 * Changed @clear to @reset to avoid potential confusions with
5469 the shell command clear. Also renamed @cl to @clear, which does
5472 the shell command clear. Also renamed @cl to @clear, which does
5470 exactly what people expect it to from their shell experience.
5473 exactly what people expect it to from their shell experience.
5471
5474
5472 Added a check to the @reset command (since it's so
5475 Added a check to the @reset command (since it's so
5473 destructive, it's probably a good idea to ask for confirmation).
5476 destructive, it's probably a good idea to ask for confirmation).
5474 But now reset only works for full namespace resetting. Since the
5477 But now reset only works for full namespace resetting. Since the
5475 del keyword is already there for deleting a few specific
5478 del keyword is already there for deleting a few specific
5476 variables, I don't see the point of having a redundant magic
5479 variables, I don't see the point of having a redundant magic
5477 function for the same task.
5480 function for the same task.
5478
5481
5479 2001-11-24 Fernando Perez <fperez@colorado.edu>
5482 2001-11-24 Fernando Perez <fperez@colorado.edu>
5480
5483
5481 * Updated the builtin docs (esp. the ? ones).
5484 * Updated the builtin docs (esp. the ? ones).
5482
5485
5483 * Ran all the code through pychecker. Not terribly impressed with
5486 * Ran all the code through pychecker. Not terribly impressed with
5484 it: lots of spurious warnings and didn't really find anything of
5487 it: lots of spurious warnings and didn't really find anything of
5485 substance (just a few modules being imported and not used).
5488 substance (just a few modules being imported and not used).
5486
5489
5487 * Implemented the new ultraTB functionality into IPython. New
5490 * Implemented the new ultraTB functionality into IPython. New
5488 option: xcolors. This chooses color scheme. xmode now only selects
5491 option: xcolors. This chooses color scheme. xmode now only selects
5489 between Plain and Verbose. Better orthogonality.
5492 between Plain and Verbose. Better orthogonality.
5490
5493
5491 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5494 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5492 mode and color scheme for the exception handlers. Now it's
5495 mode and color scheme for the exception handlers. Now it's
5493 possible to have the verbose traceback with no coloring.
5496 possible to have the verbose traceback with no coloring.
5494
5497
5495 2001-11-23 Fernando Perez <fperez@colorado.edu>
5498 2001-11-23 Fernando Perez <fperez@colorado.edu>
5496
5499
5497 * Version 0.1.12 released, 0.1.13 opened.
5500 * Version 0.1.12 released, 0.1.13 opened.
5498
5501
5499 * Removed option to set auto-quote and auto-paren escapes by
5502 * Removed option to set auto-quote and auto-paren escapes by
5500 user. The chances of breaking valid syntax are just too high. If
5503 user. The chances of breaking valid syntax are just too high. If
5501 someone *really* wants, they can always dig into the code.
5504 someone *really* wants, they can always dig into the code.
5502
5505
5503 * Made prompt separators configurable.
5506 * Made prompt separators configurable.
5504
5507
5505 2001-11-22 Fernando Perez <fperez@colorado.edu>
5508 2001-11-22 Fernando Perez <fperez@colorado.edu>
5506
5509
5507 * Small bugfixes in many places.
5510 * Small bugfixes in many places.
5508
5511
5509 * Removed the MyCompleter class from ipplib. It seemed redundant
5512 * Removed the MyCompleter class from ipplib. It seemed redundant
5510 with the C-p,C-n history search functionality. Less code to
5513 with the C-p,C-n history search functionality. Less code to
5511 maintain.
5514 maintain.
5512
5515
5513 * Moved all the original ipython.py code into ipythonlib.py. Right
5516 * Moved all the original ipython.py code into ipythonlib.py. Right
5514 now it's just one big dump into a function called make_IPython, so
5517 now it's just one big dump into a function called make_IPython, so
5515 no real modularity has been gained. But at least it makes the
5518 no real modularity has been gained. But at least it makes the
5516 wrapper script tiny, and since ipythonlib is a module, it gets
5519 wrapper script tiny, and since ipythonlib is a module, it gets
5517 compiled and startup is much faster.
5520 compiled and startup is much faster.
5518
5521
5519 This is a reasobably 'deep' change, so we should test it for a
5522 This is a reasobably 'deep' change, so we should test it for a
5520 while without messing too much more with the code.
5523 while without messing too much more with the code.
5521
5524
5522 2001-11-21 Fernando Perez <fperez@colorado.edu>
5525 2001-11-21 Fernando Perez <fperez@colorado.edu>
5523
5526
5524 * Version 0.1.11 released, 0.1.12 opened for further work.
5527 * Version 0.1.11 released, 0.1.12 opened for further work.
5525
5528
5526 * Removed dependency on Itpl. It was only needed in one place. It
5529 * Removed dependency on Itpl. It was only needed in one place. It
5527 would be nice if this became part of python, though. It makes life
5530 would be nice if this became part of python, though. It makes life
5528 *a lot* easier in some cases.
5531 *a lot* easier in some cases.
5529
5532
5530 * Simplified the prefilter code a bit. Now all handlers are
5533 * Simplified the prefilter code a bit. Now all handlers are
5531 expected to explicitly return a value (at least a blank string).
5534 expected to explicitly return a value (at least a blank string).
5532
5535
5533 * Heavy edits in ipplib. Removed the help system altogether. Now
5536 * Heavy edits in ipplib. Removed the help system altogether. Now
5534 obj?/?? is used for inspecting objects, a magic @doc prints
5537 obj?/?? is used for inspecting objects, a magic @doc prints
5535 docstrings, and full-blown Python help is accessed via the 'help'
5538 docstrings, and full-blown Python help is accessed via the 'help'
5536 keyword. This cleans up a lot of code (less to maintain) and does
5539 keyword. This cleans up a lot of code (less to maintain) and does
5537 the job. Since 'help' is now a standard Python component, might as
5540 the job. Since 'help' is now a standard Python component, might as
5538 well use it and remove duplicate functionality.
5541 well use it and remove duplicate functionality.
5539
5542
5540 Also removed the option to use ipplib as a standalone program. By
5543 Also removed the option to use ipplib as a standalone program. By
5541 now it's too dependent on other parts of IPython to function alone.
5544 now it's too dependent on other parts of IPython to function alone.
5542
5545
5543 * Fixed bug in genutils.pager. It would crash if the pager was
5546 * Fixed bug in genutils.pager. It would crash if the pager was
5544 exited immediately after opening (broken pipe).
5547 exited immediately after opening (broken pipe).
5545
5548
5546 * Trimmed down the VerboseTB reporting a little. The header is
5549 * Trimmed down the VerboseTB reporting a little. The header is
5547 much shorter now and the repeated exception arguments at the end
5550 much shorter now and the repeated exception arguments at the end
5548 have been removed. For interactive use the old header seemed a bit
5551 have been removed. For interactive use the old header seemed a bit
5549 excessive.
5552 excessive.
5550
5553
5551 * Fixed small bug in output of @whos for variables with multi-word
5554 * Fixed small bug in output of @whos for variables with multi-word
5552 types (only first word was displayed).
5555 types (only first word was displayed).
5553
5556
5554 2001-11-17 Fernando Perez <fperez@colorado.edu>
5557 2001-11-17 Fernando Perez <fperez@colorado.edu>
5555
5558
5556 * Version 0.1.10 released, 0.1.11 opened for further work.
5559 * Version 0.1.10 released, 0.1.11 opened for further work.
5557
5560
5558 * Modified dirs and friends. dirs now *returns* the stack (not
5561 * Modified dirs and friends. dirs now *returns* the stack (not
5559 prints), so one can manipulate it as a variable. Convenient to
5562 prints), so one can manipulate it as a variable. Convenient to
5560 travel along many directories.
5563 travel along many directories.
5561
5564
5562 * Fixed bug in magic_pdef: would only work with functions with
5565 * Fixed bug in magic_pdef: would only work with functions with
5563 arguments with default values.
5566 arguments with default values.
5564
5567
5565 2001-11-14 Fernando Perez <fperez@colorado.edu>
5568 2001-11-14 Fernando Perez <fperez@colorado.edu>
5566
5569
5567 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5570 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5568 example with IPython. Various other minor fixes and cleanups.
5571 example with IPython. Various other minor fixes and cleanups.
5569
5572
5570 * Version 0.1.9 released, 0.1.10 opened for further work.
5573 * Version 0.1.9 released, 0.1.10 opened for further work.
5571
5574
5572 * Added sys.path to the list of directories searched in the
5575 * Added sys.path to the list of directories searched in the
5573 execfile= option. It used to be the current directory and the
5576 execfile= option. It used to be the current directory and the
5574 user's IPYTHONDIR only.
5577 user's IPYTHONDIR only.
5575
5578
5576 2001-11-13 Fernando Perez <fperez@colorado.edu>
5579 2001-11-13 Fernando Perez <fperez@colorado.edu>
5577
5580
5578 * Reinstated the raw_input/prefilter separation that Janko had
5581 * Reinstated the raw_input/prefilter separation that Janko had
5579 initially. This gives a more convenient setup for extending the
5582 initially. This gives a more convenient setup for extending the
5580 pre-processor from the outside: raw_input always gets a string,
5583 pre-processor from the outside: raw_input always gets a string,
5581 and prefilter has to process it. We can then redefine prefilter
5584 and prefilter has to process it. We can then redefine prefilter
5582 from the outside and implement extensions for special
5585 from the outside and implement extensions for special
5583 purposes.
5586 purposes.
5584
5587
5585 Today I got one for inputting PhysicalQuantity objects
5588 Today I got one for inputting PhysicalQuantity objects
5586 (from Scientific) without needing any function calls at
5589 (from Scientific) without needing any function calls at
5587 all. Extremely convenient, and it's all done as a user-level
5590 all. Extremely convenient, and it's all done as a user-level
5588 extension (no IPython code was touched). Now instead of:
5591 extension (no IPython code was touched). Now instead of:
5589 a = PhysicalQuantity(4.2,'m/s**2')
5592 a = PhysicalQuantity(4.2,'m/s**2')
5590 one can simply say
5593 one can simply say
5591 a = 4.2 m/s**2
5594 a = 4.2 m/s**2
5592 or even
5595 or even
5593 a = 4.2 m/s^2
5596 a = 4.2 m/s^2
5594
5597
5595 I use this, but it's also a proof of concept: IPython really is
5598 I use this, but it's also a proof of concept: IPython really is
5596 fully user-extensible, even at the level of the parsing of the
5599 fully user-extensible, even at the level of the parsing of the
5597 command line. It's not trivial, but it's perfectly doable.
5600 command line. It's not trivial, but it's perfectly doable.
5598
5601
5599 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5602 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5600 the problem of modules being loaded in the inverse order in which
5603 the problem of modules being loaded in the inverse order in which
5601 they were defined in
5604 they were defined in
5602
5605
5603 * Version 0.1.8 released, 0.1.9 opened for further work.
5606 * Version 0.1.8 released, 0.1.9 opened for further work.
5604
5607
5605 * Added magics pdef, source and file. They respectively show the
5608 * Added magics pdef, source and file. They respectively show the
5606 definition line ('prototype' in C), source code and full python
5609 definition line ('prototype' in C), source code and full python
5607 file for any callable object. The object inspector oinfo uses
5610 file for any callable object. The object inspector oinfo uses
5608 these to show the same information.
5611 these to show the same information.
5609
5612
5610 * Version 0.1.7 released, 0.1.8 opened for further work.
5613 * Version 0.1.7 released, 0.1.8 opened for further work.
5611
5614
5612 * Separated all the magic functions into a class called Magic. The
5615 * Separated all the magic functions into a class called Magic. The
5613 InteractiveShell class was becoming too big for Xemacs to handle
5616 InteractiveShell class was becoming too big for Xemacs to handle
5614 (de-indenting a line would lock it up for 10 seconds while it
5617 (de-indenting a line would lock it up for 10 seconds while it
5615 backtracked on the whole class!)
5618 backtracked on the whole class!)
5616
5619
5617 FIXME: didn't work. It can be done, but right now namespaces are
5620 FIXME: didn't work. It can be done, but right now namespaces are
5618 all messed up. Do it later (reverted it for now, so at least
5621 all messed up. Do it later (reverted it for now, so at least
5619 everything works as before).
5622 everything works as before).
5620
5623
5621 * Got the object introspection system (magic_oinfo) working! I
5624 * Got the object introspection system (magic_oinfo) working! I
5622 think this is pretty much ready for release to Janko, so he can
5625 think this is pretty much ready for release to Janko, so he can
5623 test it for a while and then announce it. Pretty much 100% of what
5626 test it for a while and then announce it. Pretty much 100% of what
5624 I wanted for the 'phase 1' release is ready. Happy, tired.
5627 I wanted for the 'phase 1' release is ready. Happy, tired.
5625
5628
5626 2001-11-12 Fernando Perez <fperez@colorado.edu>
5629 2001-11-12 Fernando Perez <fperez@colorado.edu>
5627
5630
5628 * Version 0.1.6 released, 0.1.7 opened for further work.
5631 * Version 0.1.6 released, 0.1.7 opened for further work.
5629
5632
5630 * Fixed bug in printing: it used to test for truth before
5633 * Fixed bug in printing: it used to test for truth before
5631 printing, so 0 wouldn't print. Now checks for None.
5634 printing, so 0 wouldn't print. Now checks for None.
5632
5635
5633 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5636 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5634 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5637 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5635 reaches by hand into the outputcache. Think of a better way to do
5638 reaches by hand into the outputcache. Think of a better way to do
5636 this later.
5639 this later.
5637
5640
5638 * Various small fixes thanks to Nathan's comments.
5641 * Various small fixes thanks to Nathan's comments.
5639
5642
5640 * Changed magic_pprint to magic_Pprint. This way it doesn't
5643 * Changed magic_pprint to magic_Pprint. This way it doesn't
5641 collide with pprint() and the name is consistent with the command
5644 collide with pprint() and the name is consistent with the command
5642 line option.
5645 line option.
5643
5646
5644 * Changed prompt counter behavior to be fully like
5647 * Changed prompt counter behavior to be fully like
5645 Mathematica's. That is, even input that doesn't return a result
5648 Mathematica's. That is, even input that doesn't return a result
5646 raises the prompt counter. The old behavior was kind of confusing
5649 raises the prompt counter. The old behavior was kind of confusing
5647 (getting the same prompt number several times if the operation
5650 (getting the same prompt number several times if the operation
5648 didn't return a result).
5651 didn't return a result).
5649
5652
5650 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5653 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5651
5654
5652 * Fixed -Classic mode (wasn't working anymore).
5655 * Fixed -Classic mode (wasn't working anymore).
5653
5656
5654 * Added colored prompts using Nathan's new code. Colors are
5657 * Added colored prompts using Nathan's new code. Colors are
5655 currently hardwired, they can be user-configurable. For
5658 currently hardwired, they can be user-configurable. For
5656 developers, they can be chosen in file ipythonlib.py, at the
5659 developers, they can be chosen in file ipythonlib.py, at the
5657 beginning of the CachedOutput class def.
5660 beginning of the CachedOutput class def.
5658
5661
5659 2001-11-11 Fernando Perez <fperez@colorado.edu>
5662 2001-11-11 Fernando Perez <fperez@colorado.edu>
5660
5663
5661 * Version 0.1.5 released, 0.1.6 opened for further work.
5664 * Version 0.1.5 released, 0.1.6 opened for further work.
5662
5665
5663 * Changed magic_env to *return* the environment as a dict (not to
5666 * Changed magic_env to *return* the environment as a dict (not to
5664 print it). This way it prints, but it can also be processed.
5667 print it). This way it prints, but it can also be processed.
5665
5668
5666 * Added Verbose exception reporting to interactive
5669 * Added Verbose exception reporting to interactive
5667 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5670 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5668 traceback. Had to make some changes to the ultraTB file. This is
5671 traceback. Had to make some changes to the ultraTB file. This is
5669 probably the last 'big' thing in my mental todo list. This ties
5672 probably the last 'big' thing in my mental todo list. This ties
5670 in with the next entry:
5673 in with the next entry:
5671
5674
5672 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5675 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5673 has to specify is Plain, Color or Verbose for all exception
5676 has to specify is Plain, Color or Verbose for all exception
5674 handling.
5677 handling.
5675
5678
5676 * Removed ShellServices option. All this can really be done via
5679 * Removed ShellServices option. All this can really be done via
5677 the magic system. It's easier to extend, cleaner and has automatic
5680 the magic system. It's easier to extend, cleaner and has automatic
5678 namespace protection and documentation.
5681 namespace protection and documentation.
5679
5682
5680 2001-11-09 Fernando Perez <fperez@colorado.edu>
5683 2001-11-09 Fernando Perez <fperez@colorado.edu>
5681
5684
5682 * Fixed bug in output cache flushing (missing parameter to
5685 * Fixed bug in output cache flushing (missing parameter to
5683 __init__). Other small bugs fixed (found using pychecker).
5686 __init__). Other small bugs fixed (found using pychecker).
5684
5687
5685 * Version 0.1.4 opened for bugfixing.
5688 * Version 0.1.4 opened for bugfixing.
5686
5689
5687 2001-11-07 Fernando Perez <fperez@colorado.edu>
5690 2001-11-07 Fernando Perez <fperez@colorado.edu>
5688
5691
5689 * Version 0.1.3 released, mainly because of the raw_input bug.
5692 * Version 0.1.3 released, mainly because of the raw_input bug.
5690
5693
5691 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5694 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5692 and when testing for whether things were callable, a call could
5695 and when testing for whether things were callable, a call could
5693 actually be made to certain functions. They would get called again
5696 actually be made to certain functions. They would get called again
5694 once 'really' executed, with a resulting double call. A disaster
5697 once 'really' executed, with a resulting double call. A disaster
5695 in many cases (list.reverse() would never work!).
5698 in many cases (list.reverse() would never work!).
5696
5699
5697 * Removed prefilter() function, moved its code to raw_input (which
5700 * Removed prefilter() function, moved its code to raw_input (which
5698 after all was just a near-empty caller for prefilter). This saves
5701 after all was just a near-empty caller for prefilter). This saves
5699 a function call on every prompt, and simplifies the class a tiny bit.
5702 a function call on every prompt, and simplifies the class a tiny bit.
5700
5703
5701 * Fix _ip to __ip name in magic example file.
5704 * Fix _ip to __ip name in magic example file.
5702
5705
5703 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5706 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5704 work with non-gnu versions of tar.
5707 work with non-gnu versions of tar.
5705
5708
5706 2001-11-06 Fernando Perez <fperez@colorado.edu>
5709 2001-11-06 Fernando Perez <fperez@colorado.edu>
5707
5710
5708 * Version 0.1.2. Just to keep track of the recent changes.
5711 * Version 0.1.2. Just to keep track of the recent changes.
5709
5712
5710 * Fixed nasty bug in output prompt routine. It used to check 'if
5713 * Fixed nasty bug in output prompt routine. It used to check 'if
5711 arg != None...'. Problem is, this fails if arg implements a
5714 arg != None...'. Problem is, this fails if arg implements a
5712 special comparison (__cmp__) which disallows comparing to
5715 special comparison (__cmp__) which disallows comparing to
5713 None. Found it when trying to use the PhysicalQuantity module from
5716 None. Found it when trying to use the PhysicalQuantity module from
5714 ScientificPython.
5717 ScientificPython.
5715
5718
5716 2001-11-05 Fernando Perez <fperez@colorado.edu>
5719 2001-11-05 Fernando Perez <fperez@colorado.edu>
5717
5720
5718 * Also added dirs. Now the pushd/popd/dirs family functions
5721 * Also added dirs. Now the pushd/popd/dirs family functions
5719 basically like the shell, with the added convenience of going home
5722 basically like the shell, with the added convenience of going home
5720 when called with no args.
5723 when called with no args.
5721
5724
5722 * pushd/popd slightly modified to mimic shell behavior more
5725 * pushd/popd slightly modified to mimic shell behavior more
5723 closely.
5726 closely.
5724
5727
5725 * Added env,pushd,popd from ShellServices as magic functions. I
5728 * Added env,pushd,popd from ShellServices as magic functions. I
5726 think the cleanest will be to port all desired functions from
5729 think the cleanest will be to port all desired functions from
5727 ShellServices as magics and remove ShellServices altogether. This
5730 ShellServices as magics and remove ShellServices altogether. This
5728 will provide a single, clean way of adding functionality
5731 will provide a single, clean way of adding functionality
5729 (shell-type or otherwise) to IP.
5732 (shell-type or otherwise) to IP.
5730
5733
5731 2001-11-04 Fernando Perez <fperez@colorado.edu>
5734 2001-11-04 Fernando Perez <fperez@colorado.edu>
5732
5735
5733 * Added .ipython/ directory to sys.path. This way users can keep
5736 * Added .ipython/ directory to sys.path. This way users can keep
5734 customizations there and access them via import.
5737 customizations there and access them via import.
5735
5738
5736 2001-11-03 Fernando Perez <fperez@colorado.edu>
5739 2001-11-03 Fernando Perez <fperez@colorado.edu>
5737
5740
5738 * Opened version 0.1.1 for new changes.
5741 * Opened version 0.1.1 for new changes.
5739
5742
5740 * Changed version number to 0.1.0: first 'public' release, sent to
5743 * Changed version number to 0.1.0: first 'public' release, sent to
5741 Nathan and Janko.
5744 Nathan and Janko.
5742
5745
5743 * Lots of small fixes and tweaks.
5746 * Lots of small fixes and tweaks.
5744
5747
5745 * Minor changes to whos format. Now strings are shown, snipped if
5748 * Minor changes to whos format. Now strings are shown, snipped if
5746 too long.
5749 too long.
5747
5750
5748 * Changed ShellServices to work on __main__ so they show up in @who
5751 * Changed ShellServices to work on __main__ so they show up in @who
5749
5752
5750 * Help also works with ? at the end of a line:
5753 * Help also works with ? at the end of a line:
5751 ?sin and sin?
5754 ?sin and sin?
5752 both produce the same effect. This is nice, as often I use the
5755 both produce the same effect. This is nice, as often I use the
5753 tab-complete to find the name of a method, but I used to then have
5756 tab-complete to find the name of a method, but I used to then have
5754 to go to the beginning of the line to put a ? if I wanted more
5757 to go to the beginning of the line to put a ? if I wanted more
5755 info. Now I can just add the ? and hit return. Convenient.
5758 info. Now I can just add the ? and hit return. Convenient.
5756
5759
5757 2001-11-02 Fernando Perez <fperez@colorado.edu>
5760 2001-11-02 Fernando Perez <fperez@colorado.edu>
5758
5761
5759 * Python version check (>=2.1) added.
5762 * Python version check (>=2.1) added.
5760
5763
5761 * Added LazyPython documentation. At this point the docs are quite
5764 * Added LazyPython documentation. At this point the docs are quite
5762 a mess. A cleanup is in order.
5765 a mess. A cleanup is in order.
5763
5766
5764 * Auto-installer created. For some bizarre reason, the zipfiles
5767 * Auto-installer created. For some bizarre reason, the zipfiles
5765 module isn't working on my system. So I made a tar version
5768 module isn't working on my system. So I made a tar version
5766 (hopefully the command line options in various systems won't kill
5769 (hopefully the command line options in various systems won't kill
5767 me).
5770 me).
5768
5771
5769 * Fixes to Struct in genutils. Now all dictionary-like methods are
5772 * Fixes to Struct in genutils. Now all dictionary-like methods are
5770 protected (reasonably).
5773 protected (reasonably).
5771
5774
5772 * Added pager function to genutils and changed ? to print usage
5775 * Added pager function to genutils and changed ? to print usage
5773 note through it (it was too long).
5776 note through it (it was too long).
5774
5777
5775 * Added the LazyPython functionality. Works great! I changed the
5778 * Added the LazyPython functionality. Works great! I changed the
5776 auto-quote escape to ';', it's on home row and next to '. But
5779 auto-quote escape to ';', it's on home row and next to '. But
5777 both auto-quote and auto-paren (still /) escapes are command-line
5780 both auto-quote and auto-paren (still /) escapes are command-line
5778 parameters.
5781 parameters.
5779
5782
5780
5783
5781 2001-11-01 Fernando Perez <fperez@colorado.edu>
5784 2001-11-01 Fernando Perez <fperez@colorado.edu>
5782
5785
5783 * Version changed to 0.0.7. Fairly large change: configuration now
5786 * Version changed to 0.0.7. Fairly large change: configuration now
5784 is all stored in a directory, by default .ipython. There, all
5787 is all stored in a directory, by default .ipython. There, all
5785 config files have normal looking names (not .names)
5788 config files have normal looking names (not .names)
5786
5789
5787 * Version 0.0.6 Released first to Lucas and Archie as a test
5790 * Version 0.0.6 Released first to Lucas and Archie as a test
5788 run. Since it's the first 'semi-public' release, change version to
5791 run. Since it's the first 'semi-public' release, change version to
5789 > 0.0.6 for any changes now.
5792 > 0.0.6 for any changes now.
5790
5793
5791 * Stuff I had put in the ipplib.py changelog:
5794 * Stuff I had put in the ipplib.py changelog:
5792
5795
5793 Changes to InteractiveShell:
5796 Changes to InteractiveShell:
5794
5797
5795 - Made the usage message a parameter.
5798 - Made the usage message a parameter.
5796
5799
5797 - Require the name of the shell variable to be given. It's a bit
5800 - Require the name of the shell variable to be given. It's a bit
5798 of a hack, but allows the name 'shell' not to be hardwired in the
5801 of a hack, but allows the name 'shell' not to be hardwired in the
5799 magic (@) handler, which is problematic b/c it requires
5802 magic (@) handler, which is problematic b/c it requires
5800 polluting the global namespace with 'shell'. This in turn is
5803 polluting the global namespace with 'shell'. This in turn is
5801 fragile: if a user redefines a variable called shell, things
5804 fragile: if a user redefines a variable called shell, things
5802 break.
5805 break.
5803
5806
5804 - magic @: all functions available through @ need to be defined
5807 - magic @: all functions available through @ need to be defined
5805 as magic_<name>, even though they can be called simply as
5808 as magic_<name>, even though they can be called simply as
5806 @<name>. This allows the special command @magic to gather
5809 @<name>. This allows the special command @magic to gather
5807 information automatically about all existing magic functions,
5810 information automatically about all existing magic functions,
5808 even if they are run-time user extensions, by parsing the shell
5811 even if they are run-time user extensions, by parsing the shell
5809 instance __dict__ looking for special magic_ names.
5812 instance __dict__ looking for special magic_ names.
5810
5813
5811 - mainloop: added *two* local namespace parameters. This allows
5814 - mainloop: added *two* local namespace parameters. This allows
5812 the class to differentiate between parameters which were there
5815 the class to differentiate between parameters which were there
5813 before and after command line initialization was processed. This
5816 before and after command line initialization was processed. This
5814 way, later @who can show things loaded at startup by the
5817 way, later @who can show things loaded at startup by the
5815 user. This trick was necessary to make session saving/reloading
5818 user. This trick was necessary to make session saving/reloading
5816 really work: ideally after saving/exiting/reloading a session,
5819 really work: ideally after saving/exiting/reloading a session,
5817 *everything* should look the same, including the output of @who. I
5820 *everything* should look the same, including the output of @who. I
5818 was only able to make this work with this double namespace
5821 was only able to make this work with this double namespace
5819 trick.
5822 trick.
5820
5823
5821 - added a header to the logfile which allows (almost) full
5824 - added a header to the logfile which allows (almost) full
5822 session restoring.
5825 session restoring.
5823
5826
5824 - prepend lines beginning with @ or !, with a and log
5827 - prepend lines beginning with @ or !, with a and log
5825 them. Why? !lines: may be useful to know what you did @lines:
5828 them. Why? !lines: may be useful to know what you did @lines:
5826 they may affect session state. So when restoring a session, at
5829 they may affect session state. So when restoring a session, at
5827 least inform the user of their presence. I couldn't quite get
5830 least inform the user of their presence. I couldn't quite get
5828 them to properly re-execute, but at least the user is warned.
5831 them to properly re-execute, but at least the user is warned.
5829
5832
5830 * Started ChangeLog.
5833 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now