##// END OF EJS Templates
Add jobctrl.py extension
vivainio -
Show More
@@ -0,0 +1,44 b''
1 """ Preliminary "job control" extensions for IPython
2
3 requires python 2.4 (or separate 'subprocess' module
4
5 At the moment this is in a very "unhelpful" form, will be extended in the future.
6
7 Usage:
8
9 [ipython]|2> import jobctrl
10 [ipython]|3> &ls
11 <3> <jobctrl.IpyPopen object at 0x00D87FD0>
12 [ipython]|4> _3.go
13 -----------> _3.go()
14 ChangeLog
15 IPython
16 MANIFEST.in
17 README
18 README_Windows.txt
19
20 ...
21 """
22
23 from subprocess import Popen,PIPE
24
25 from IPython import genutils
26
27 class IpyPopen(Popen):
28 def go(self):
29 print self.communicate()[0]
30
31 def job(job):
32 #p = Popen(r"q:\opt\vlc\vlc.exe http://di.fm/mp3/djmixes.pls")
33 p = IpyPopen(job, stdout=PIPE)
34 p.line = job
35 return p
36
37 def jobctrl_prefilter_f(self,line):
38 if line.startswith('&'):
39 return 'jobctrl.job(%s)' % genutils.make_quoted_expr(line[1:])
40
41 raise IPython.ipapi.TryNext
42
43 import IPython.ipapi
44 IPython.ipapi.get().set_hook('input_prefilter', jobctrl_prefilter_f)
@@ -1,5766 +1,5772 b''
1 2006-10-12 Ville Vainio <vivainio@gmail.com>
2
3 * jobctrl.py: Add new "jobctrl" extension for spawning background
4 processes with "&find /". 'import jobctrl' to try it out. Requires
5 'subprocess' module, standard in python 2.4+.
6
1 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
7 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/Magic.py (Magic.parse_options): add a new posix option
9 * IPython/Magic.py (Magic.parse_options): add a new posix option
4 to allow parsing of input args in magics that doesn't strip quotes
10 to allow parsing of input args in magics that doesn't strip quotes
5 (if posix=False). This also closes %timeit bug reported by
11 (if posix=False). This also closes %timeit bug reported by
6 Stefan.
12 Stefan.
7
13
8 2006-10-03 Ville Vainio <vivainio@gmail.com>
14 2006-10-03 Ville Vainio <vivainio@gmail.com>
9
15
10 * iplib.py (raw_input, interact): Return ValueError catching for
16 * iplib.py (raw_input, interact): Return ValueError catching for
11 raw_input. Fixes infinite loop for sys.stdin.close() or
17 raw_input. Fixes infinite loop for sys.stdin.close() or
12 sys.stdout.close().
18 sys.stdout.close().
13
19
14 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
20 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
15
21
16 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
22 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
17 to help in handling doctests. irunner is now pretty useful for
23 to help in handling doctests. irunner is now pretty useful for
18 running standalone scripts and simulate a full interactive session
24 running standalone scripts and simulate a full interactive session
19 in a format that can be then pasted as a doctest.
25 in a format that can be then pasted as a doctest.
20
26
21 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
27 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
22 on top of the default (useless) ones. This also fixes the nasty
28 on top of the default (useless) ones. This also fixes the nasty
23 way in which 2.5's Quitter() exits (reverted [1785]).
29 way in which 2.5's Quitter() exits (reverted [1785]).
24
30
25 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
31 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
26 2.5.
32 2.5.
27
33
28 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
34 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
29 color scheme is updated as well when color scheme is changed
35 color scheme is updated as well when color scheme is changed
30 interactively.
36 interactively.
31
37
32 2006-09-27 Ville Vainio <vivainio@gmail.com>
38 2006-09-27 Ville Vainio <vivainio@gmail.com>
33
39
34 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
40 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
35 infinite loop and just exit. It's a hack, but will do for a while.
41 infinite loop and just exit. It's a hack, but will do for a while.
36
42
37 2006-08-25 Walter Doerwald <walter@livinglogic.de>
43 2006-08-25 Walter Doerwald <walter@livinglogic.de>
38
44
39 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
45 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
40 the constructor, this makes it possible to get a list of only directories
46 the constructor, this makes it possible to get a list of only directories
41 or only files.
47 or only files.
42
48
43 2006-08-12 Ville Vainio <vivainio@gmail.com>
49 2006-08-12 Ville Vainio <vivainio@gmail.com>
44
50
45 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
51 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
46 they broke unittest
52 they broke unittest
47
53
48 2006-08-11 Ville Vainio <vivainio@gmail.com>
54 2006-08-11 Ville Vainio <vivainio@gmail.com>
49
55
50 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
56 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
51 by resolving issue properly, i.e. by inheriting FakeModule
57 by resolving issue properly, i.e. by inheriting FakeModule
52 from types.ModuleType. Pickling ipython interactive data
58 from types.ModuleType. Pickling ipython interactive data
53 should still work as usual (testing appreciated).
59 should still work as usual (testing appreciated).
54
60
55 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
61 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
56
62
57 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
63 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
58 running under python 2.3 with code from 2.4 to fix a bug with
64 running under python 2.3 with code from 2.4 to fix a bug with
59 help(). Reported by the Debian maintainers, Norbert Tretkowski
65 help(). Reported by the Debian maintainers, Norbert Tretkowski
60 <norbert-AT-tretkowski.de> and Alexandre Fayolle
66 <norbert-AT-tretkowski.de> and Alexandre Fayolle
61 <afayolle-AT-debian.org>.
67 <afayolle-AT-debian.org>.
62
68
63 2006-08-04 Walter Doerwald <walter@livinglogic.de>
69 2006-08-04 Walter Doerwald <walter@livinglogic.de>
64
70
65 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
71 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
66 (which was displaying "quit" twice).
72 (which was displaying "quit" twice).
67
73
68 2006-07-28 Walter Doerwald <walter@livinglogic.de>
74 2006-07-28 Walter Doerwald <walter@livinglogic.de>
69
75
70 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
76 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
71 the mode argument).
77 the mode argument).
72
78
73 2006-07-27 Walter Doerwald <walter@livinglogic.de>
79 2006-07-27 Walter Doerwald <walter@livinglogic.de>
74
80
75 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
81 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
76 not running under IPython.
82 not running under IPython.
77
83
78 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
84 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
79 and make it iterable (iterating over the attribute itself). Add two new
85 and make it iterable (iterating over the attribute itself). Add two new
80 magic strings for __xattrs__(): If the string starts with "-", the attribute
86 magic strings for __xattrs__(): If the string starts with "-", the attribute
81 will not be displayed in ibrowse's detail view (but it can still be
87 will not be displayed in ibrowse's detail view (but it can still be
82 iterated over). This makes it possible to add attributes that are large
88 iterated over). This makes it possible to add attributes that are large
83 lists or generator methods to the detail view. Replace magic attribute names
89 lists or generator methods to the detail view. Replace magic attribute names
84 and _attrname() and _getattr() with "descriptors": For each type of magic
90 and _attrname() and _getattr() with "descriptors": For each type of magic
85 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
91 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
86 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
92 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
87 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
93 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
88 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
94 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
89 are still supported.
95 are still supported.
90
96
91 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
97 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
92 fails in ibrowse.fetch(), the exception object is added as the last item
98 fails in ibrowse.fetch(), the exception object is added as the last item
93 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
99 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
94 a generator throws an exception midway through execution.
100 a generator throws an exception midway through execution.
95
101
96 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
102 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
97 encoding into methods.
103 encoding into methods.
98
104
99 2006-07-26 Ville Vainio <vivainio@gmail.com>
105 2006-07-26 Ville Vainio <vivainio@gmail.com>
100
106
101 * iplib.py: history now stores multiline input as single
107 * iplib.py: history now stores multiline input as single
102 history entries. Patch by Jorgen Cederlof.
108 history entries. Patch by Jorgen Cederlof.
103
109
104 2006-07-18 Walter Doerwald <walter@livinglogic.de>
110 2006-07-18 Walter Doerwald <walter@livinglogic.de>
105
111
106 * IPython/Extensions/ibrowse.py: Make cursor visible over
112 * IPython/Extensions/ibrowse.py: Make cursor visible over
107 non existing attributes.
113 non existing attributes.
108
114
109 2006-07-14 Walter Doerwald <walter@livinglogic.de>
115 2006-07-14 Walter Doerwald <walter@livinglogic.de>
110
116
111 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
117 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
112 error output of the running command doesn't mess up the screen.
118 error output of the running command doesn't mess up the screen.
113
119
114 2006-07-13 Walter Doerwald <walter@livinglogic.de>
120 2006-07-13 Walter Doerwald <walter@livinglogic.de>
115
121
116 * IPython/Extensions/ipipe.py (isort): Make isort usable without
122 * IPython/Extensions/ipipe.py (isort): Make isort usable without
117 argument. This sorts the items themselves.
123 argument. This sorts the items themselves.
118
124
119 2006-07-12 Walter Doerwald <walter@livinglogic.de>
125 2006-07-12 Walter Doerwald <walter@livinglogic.de>
120
126
121 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
127 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
122 Compile expression strings into code objects. This should speed
128 Compile expression strings into code objects. This should speed
123 up ifilter and friends somewhat.
129 up ifilter and friends somewhat.
124
130
125 2006-07-08 Ville Vainio <vivainio@gmail.com>
131 2006-07-08 Ville Vainio <vivainio@gmail.com>
126
132
127 * Magic.py: %cpaste now strips > from the beginning of lines
133 * Magic.py: %cpaste now strips > from the beginning of lines
128 to ease pasting quoted code from emails. Contributed by
134 to ease pasting quoted code from emails. Contributed by
129 Stefan van der Walt.
135 Stefan van der Walt.
130
136
131 2006-06-29 Ville Vainio <vivainio@gmail.com>
137 2006-06-29 Ville Vainio <vivainio@gmail.com>
132
138
133 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
139 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
134 mode, patch contributed by Darren Dale. NEEDS TESTING!
140 mode, patch contributed by Darren Dale. NEEDS TESTING!
135
141
136 2006-06-28 Walter Doerwald <walter@livinglogic.de>
142 2006-06-28 Walter Doerwald <walter@livinglogic.de>
137
143
138 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
144 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
139 a blue background. Fix fetching new display rows when the browser
145 a blue background. Fix fetching new display rows when the browser
140 scrolls more than a screenful (e.g. by using the goto command).
146 scrolls more than a screenful (e.g. by using the goto command).
141
147
142 2006-06-27 Ville Vainio <vivainio@gmail.com>
148 2006-06-27 Ville Vainio <vivainio@gmail.com>
143
149
144 * Magic.py (_inspect, _ofind) Apply David Huard's
150 * Magic.py (_inspect, _ofind) Apply David Huard's
145 patch for displaying the correct docstring for 'property'
151 patch for displaying the correct docstring for 'property'
146 attributes.
152 attributes.
147
153
148 2006-06-23 Walter Doerwald <walter@livinglogic.de>
154 2006-06-23 Walter Doerwald <walter@livinglogic.de>
149
155
150 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
156 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
151 commands into the methods implementing them.
157 commands into the methods implementing them.
152
158
153 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
159 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
154
160
155 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
161 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
156 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
162 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
157 autoindent support was authored by Jin Liu.
163 autoindent support was authored by Jin Liu.
158
164
159 2006-06-22 Walter Doerwald <walter@livinglogic.de>
165 2006-06-22 Walter Doerwald <walter@livinglogic.de>
160
166
161 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
167 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
162 for keymaps with a custom class that simplifies handling.
168 for keymaps with a custom class that simplifies handling.
163
169
164 2006-06-19 Walter Doerwald <walter@livinglogic.de>
170 2006-06-19 Walter Doerwald <walter@livinglogic.de>
165
171
166 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
172 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
167 resizing. This requires Python 2.5 to work.
173 resizing. This requires Python 2.5 to work.
168
174
169 2006-06-16 Walter Doerwald <walter@livinglogic.de>
175 2006-06-16 Walter Doerwald <walter@livinglogic.de>
170
176
171 * IPython/Extensions/ibrowse.py: Add two new commands to
177 * IPython/Extensions/ibrowse.py: Add two new commands to
172 ibrowse: "hideattr" (mapped to "h") hides the attribute under
178 ibrowse: "hideattr" (mapped to "h") hides the attribute under
173 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
179 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
174 attributes again. Remapped the help command to "?". Display
180 attributes again. Remapped the help command to "?". Display
175 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
181 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
176 as keys for the "home" and "end" commands. Add three new commands
182 as keys for the "home" and "end" commands. Add three new commands
177 to the input mode for "find" and friends: "delend" (CTRL-K)
183 to the input mode for "find" and friends: "delend" (CTRL-K)
178 deletes to the end of line. "incsearchup" searches upwards in the
184 deletes to the end of line. "incsearchup" searches upwards in the
179 command history for an input that starts with the text before the cursor.
185 command history for an input that starts with the text before the cursor.
180 "incsearchdown" does the same downwards. Removed a bogus mapping of
186 "incsearchdown" does the same downwards. Removed a bogus mapping of
181 the x key to "delete".
187 the x key to "delete".
182
188
183 2006-06-15 Ville Vainio <vivainio@gmail.com>
189 2006-06-15 Ville Vainio <vivainio@gmail.com>
184
190
185 * iplib.py, hooks.py: Added new generate_prompt hook that can be
191 * iplib.py, hooks.py: Added new generate_prompt hook that can be
186 used to create prompts dynamically, instead of the "old" way of
192 used to create prompts dynamically, instead of the "old" way of
187 assigning "magic" strings to prompt_in1 and prompt_in2. The old
193 assigning "magic" strings to prompt_in1 and prompt_in2. The old
188 way still works (it's invoked by the default hook), of course.
194 way still works (it's invoked by the default hook), of course.
189
195
190 * Prompts.py: added generate_output_prompt hook for altering output
196 * Prompts.py: added generate_output_prompt hook for altering output
191 prompt
197 prompt
192
198
193 * Release.py: Changed version string to 0.7.3.svn.
199 * Release.py: Changed version string to 0.7.3.svn.
194
200
195 2006-06-15 Walter Doerwald <walter@livinglogic.de>
201 2006-06-15 Walter Doerwald <walter@livinglogic.de>
196
202
197 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
203 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
198 the call to fetch() always tries to fetch enough data for at least one
204 the call to fetch() always tries to fetch enough data for at least one
199 full screen. This makes it possible to simply call moveto(0,0,True) in
205 full screen. This makes it possible to simply call moveto(0,0,True) in
200 the constructor. Fix typos and removed the obsolete goto attribute.
206 the constructor. Fix typos and removed the obsolete goto attribute.
201
207
202 2006-06-12 Ville Vainio <vivainio@gmail.com>
208 2006-06-12 Ville Vainio <vivainio@gmail.com>
203
209
204 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
210 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
205 allowing $variable interpolation within multiline statements,
211 allowing $variable interpolation within multiline statements,
206 though so far only with "sh" profile for a testing period.
212 though so far only with "sh" profile for a testing period.
207 The patch also enables splitting long commands with \ but it
213 The patch also enables splitting long commands with \ but it
208 doesn't work properly yet.
214 doesn't work properly yet.
209
215
210 2006-06-12 Walter Doerwald <walter@livinglogic.de>
216 2006-06-12 Walter Doerwald <walter@livinglogic.de>
211
217
212 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
218 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
213 input history and the position of the cursor in the input history for
219 input history and the position of the cursor in the input history for
214 the find, findbackwards and goto command.
220 the find, findbackwards and goto command.
215
221
216 2006-06-10 Walter Doerwald <walter@livinglogic.de>
222 2006-06-10 Walter Doerwald <walter@livinglogic.de>
217
223
218 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
224 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
219 implements the basic functionality of browser commands that require
225 implements the basic functionality of browser commands that require
220 input. Reimplement the goto, find and findbackwards commands as
226 input. Reimplement the goto, find and findbackwards commands as
221 subclasses of _CommandInput. Add an input history and keymaps to those
227 subclasses of _CommandInput. Add an input history and keymaps to those
222 commands. Add "\r" as a keyboard shortcut for the enterdefault and
228 commands. Add "\r" as a keyboard shortcut for the enterdefault and
223 execute commands.
229 execute commands.
224
230
225 2006-06-07 Ville Vainio <vivainio@gmail.com>
231 2006-06-07 Ville Vainio <vivainio@gmail.com>
226
232
227 * iplib.py: ipython mybatch.ipy exits ipython immediately after
233 * iplib.py: ipython mybatch.ipy exits ipython immediately after
228 running the batch files instead of leaving the session open.
234 running the batch files instead of leaving the session open.
229
235
230 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
236 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
231
237
232 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
238 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
233 the original fix was incomplete. Patch submitted by W. Maier.
239 the original fix was incomplete. Patch submitted by W. Maier.
234
240
235 2006-06-07 Ville Vainio <vivainio@gmail.com>
241 2006-06-07 Ville Vainio <vivainio@gmail.com>
236
242
237 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
243 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
238 Confirmation prompts can be supressed by 'quiet' option.
244 Confirmation prompts can be supressed by 'quiet' option.
239 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
245 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
240
246
241 2006-06-06 *** Released version 0.7.2
247 2006-06-06 *** Released version 0.7.2
242
248
243 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
249 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
244
250
245 * IPython/Release.py (version): Made 0.7.2 final for release.
251 * IPython/Release.py (version): Made 0.7.2 final for release.
246 Repo tagged and release cut.
252 Repo tagged and release cut.
247
253
248 2006-06-05 Ville Vainio <vivainio@gmail.com>
254 2006-06-05 Ville Vainio <vivainio@gmail.com>
249
255
250 * Magic.py (magic_rehashx): Honor no_alias list earlier in
256 * Magic.py (magic_rehashx): Honor no_alias list earlier in
251 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
257 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
252
258
253 * upgrade_dir.py: try import 'path' module a bit harder
259 * upgrade_dir.py: try import 'path' module a bit harder
254 (for %upgrade)
260 (for %upgrade)
255
261
256 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
262 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
257
263
258 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
264 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
259 instead of looping 20 times.
265 instead of looping 20 times.
260
266
261 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
267 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
262 correctly at initialization time. Bug reported by Krishna Mohan
268 correctly at initialization time. Bug reported by Krishna Mohan
263 Gundu <gkmohan-AT-gmail.com> on the user list.
269 Gundu <gkmohan-AT-gmail.com> on the user list.
264
270
265 * IPython/Release.py (version): Mark 0.7.2 version to start
271 * IPython/Release.py (version): Mark 0.7.2 version to start
266 testing for release on 06/06.
272 testing for release on 06/06.
267
273
268 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
274 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
269
275
270 * scripts/irunner: thin script interface so users don't have to
276 * scripts/irunner: thin script interface so users don't have to
271 find the module and call it as an executable, since modules rarely
277 find the module and call it as an executable, since modules rarely
272 live in people's PATH.
278 live in people's PATH.
273
279
274 * IPython/irunner.py (InteractiveRunner.__init__): added
280 * IPython/irunner.py (InteractiveRunner.__init__): added
275 delaybeforesend attribute to control delays with newer versions of
281 delaybeforesend attribute to control delays with newer versions of
276 pexpect. Thanks to detailed help from pexpect's author, Noah
282 pexpect. Thanks to detailed help from pexpect's author, Noah
277 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
283 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
278 correctly (it works in NoColor mode).
284 correctly (it works in NoColor mode).
279
285
280 * IPython/iplib.py (handle_normal): fix nasty crash reported on
286 * IPython/iplib.py (handle_normal): fix nasty crash reported on
281 SAGE list, from improper log() calls.
287 SAGE list, from improper log() calls.
282
288
283 2006-05-31 Ville Vainio <vivainio@gmail.com>
289 2006-05-31 Ville Vainio <vivainio@gmail.com>
284
290
285 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
291 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
286 with args in parens to work correctly with dirs that have spaces.
292 with args in parens to work correctly with dirs that have spaces.
287
293
288 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
294 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
289
295
290 * IPython/Logger.py (Logger.logstart): add option to log raw input
296 * IPython/Logger.py (Logger.logstart): add option to log raw input
291 instead of the processed one. A -r flag was added to the
297 instead of the processed one. A -r flag was added to the
292 %logstart magic used for controlling logging.
298 %logstart magic used for controlling logging.
293
299
294 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
300 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
295
301
296 * IPython/iplib.py (InteractiveShell.__init__): add check for the
302 * IPython/iplib.py (InteractiveShell.__init__): add check for the
297 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
303 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
298 recognize the option. After a bug report by Will Maier. This
304 recognize the option. After a bug report by Will Maier. This
299 closes #64 (will do it after confirmation from W. Maier).
305 closes #64 (will do it after confirmation from W. Maier).
300
306
301 * IPython/irunner.py: New module to run scripts as if manually
307 * IPython/irunner.py: New module to run scripts as if manually
302 typed into an interactive environment, based on pexpect. After a
308 typed into an interactive environment, based on pexpect. After a
303 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
309 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
304 ipython-user list. Simple unittests in the tests/ directory.
310 ipython-user list. Simple unittests in the tests/ directory.
305
311
306 * tools/release: add Will Maier, OpenBSD port maintainer, to
312 * tools/release: add Will Maier, OpenBSD port maintainer, to
307 recepients list. We are now officially part of the OpenBSD ports:
313 recepients list. We are now officially part of the OpenBSD ports:
308 http://www.openbsd.org/ports.html ! Many thanks to Will for the
314 http://www.openbsd.org/ports.html ! Many thanks to Will for the
309 work.
315 work.
310
316
311 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
317 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
312
318
313 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
319 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
314 so that it doesn't break tkinter apps.
320 so that it doesn't break tkinter apps.
315
321
316 * IPython/iplib.py (_prefilter): fix bug where aliases would
322 * IPython/iplib.py (_prefilter): fix bug where aliases would
317 shadow variables when autocall was fully off. Reported by SAGE
323 shadow variables when autocall was fully off. Reported by SAGE
318 author William Stein.
324 author William Stein.
319
325
320 * IPython/OInspect.py (Inspector.__init__): add a flag to control
326 * IPython/OInspect.py (Inspector.__init__): add a flag to control
321 at what detail level strings are computed when foo? is requested.
327 at what detail level strings are computed when foo? is requested.
322 This allows users to ask for example that the string form of an
328 This allows users to ask for example that the string form of an
323 object is only computed when foo?? is called, or even never, by
329 object is only computed when foo?? is called, or even never, by
324 setting the object_info_string_level >= 2 in the configuration
330 setting the object_info_string_level >= 2 in the configuration
325 file. This new option has been added and documented. After a
331 file. This new option has been added and documented. After a
326 request by SAGE to be able to control the printing of very large
332 request by SAGE to be able to control the printing of very large
327 objects more easily.
333 objects more easily.
328
334
329 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
335 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
330
336
331 * IPython/ipmaker.py (make_IPython): remove the ipython call path
337 * IPython/ipmaker.py (make_IPython): remove the ipython call path
332 from sys.argv, to be 100% consistent with how Python itself works
338 from sys.argv, to be 100% consistent with how Python itself works
333 (as seen for example with python -i file.py). After a bug report
339 (as seen for example with python -i file.py). After a bug report
334 by Jeffrey Collins.
340 by Jeffrey Collins.
335
341
336 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
342 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
337 nasty bug which was preventing custom namespaces with -pylab,
343 nasty bug which was preventing custom namespaces with -pylab,
338 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
344 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
339 compatibility (long gone from mpl).
345 compatibility (long gone from mpl).
340
346
341 * IPython/ipapi.py (make_session): name change: create->make. We
347 * IPython/ipapi.py (make_session): name change: create->make. We
342 use make in other places (ipmaker,...), it's shorter and easier to
348 use make in other places (ipmaker,...), it's shorter and easier to
343 type and say, etc. I'm trying to clean things before 0.7.2 so
349 type and say, etc. I'm trying to clean things before 0.7.2 so
344 that I can keep things stable wrt to ipapi in the chainsaw branch.
350 that I can keep things stable wrt to ipapi in the chainsaw branch.
345
351
346 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
352 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
347 python-mode recognizes our debugger mode. Add support for
353 python-mode recognizes our debugger mode. Add support for
348 autoindent inside (X)emacs. After a patch sent in by Jin Liu
354 autoindent inside (X)emacs. After a patch sent in by Jin Liu
349 <m.liu.jin-AT-gmail.com> originally written by
355 <m.liu.jin-AT-gmail.com> originally written by
350 doxgen-AT-newsmth.net (with minor modifications for xemacs
356 doxgen-AT-newsmth.net (with minor modifications for xemacs
351 compatibility)
357 compatibility)
352
358
353 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
359 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
354 tracebacks when walking the stack so that the stack tracking system
360 tracebacks when walking the stack so that the stack tracking system
355 in emacs' python-mode can identify the frames correctly.
361 in emacs' python-mode can identify the frames correctly.
356
362
357 * IPython/ipmaker.py (make_IPython): make the internal (and
363 * IPython/ipmaker.py (make_IPython): make the internal (and
358 default config) autoedit_syntax value false by default. Too many
364 default config) autoedit_syntax value false by default. Too many
359 users have complained to me (both on and off-list) about problems
365 users have complained to me (both on and off-list) about problems
360 with this option being on by default, so I'm making it default to
366 with this option being on by default, so I'm making it default to
361 off. It can still be enabled by anyone via the usual mechanisms.
367 off. It can still be enabled by anyone via the usual mechanisms.
362
368
363 * IPython/completer.py (Completer.attr_matches): add support for
369 * IPython/completer.py (Completer.attr_matches): add support for
364 PyCrust-style _getAttributeNames magic method. Patch contributed
370 PyCrust-style _getAttributeNames magic method. Patch contributed
365 by <mscott-AT-goldenspud.com>. Closes #50.
371 by <mscott-AT-goldenspud.com>. Closes #50.
366
372
367 * IPython/iplib.py (InteractiveShell.__init__): remove the
373 * IPython/iplib.py (InteractiveShell.__init__): remove the
368 deletion of exit/quit from __builtin__, which can break
374 deletion of exit/quit from __builtin__, which can break
369 third-party tools like the Zope debugging console. The
375 third-party tools like the Zope debugging console. The
370 %exit/%quit magics remain. In general, it's probably a good idea
376 %exit/%quit magics remain. In general, it's probably a good idea
371 not to delete anything from __builtin__, since we never know what
377 not to delete anything from __builtin__, since we never know what
372 that will break. In any case, python now (for 2.5) will support
378 that will break. In any case, python now (for 2.5) will support
373 'real' exit/quit, so this issue is moot. Closes #55.
379 'real' exit/quit, so this issue is moot. Closes #55.
374
380
375 * IPython/genutils.py (with_obj): rename the 'with' function to
381 * IPython/genutils.py (with_obj): rename the 'with' function to
376 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
382 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
377 becomes a language keyword. Closes #53.
383 becomes a language keyword. Closes #53.
378
384
379 * IPython/FakeModule.py (FakeModule.__init__): add a proper
385 * IPython/FakeModule.py (FakeModule.__init__): add a proper
380 __file__ attribute to this so it fools more things into thinking
386 __file__ attribute to this so it fools more things into thinking
381 it is a real module. Closes #59.
387 it is a real module. Closes #59.
382
388
383 * IPython/Magic.py (magic_edit): add -n option to open the editor
389 * IPython/Magic.py (magic_edit): add -n option to open the editor
384 at a specific line number. After a patch by Stefan van der Walt.
390 at a specific line number. After a patch by Stefan van der Walt.
385
391
386 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
392 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
387
393
388 * IPython/iplib.py (edit_syntax_error): fix crash when for some
394 * IPython/iplib.py (edit_syntax_error): fix crash when for some
389 reason the file could not be opened. After automatic crash
395 reason the file could not be opened. After automatic crash
390 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
396 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
391 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
397 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
392 (_should_recompile): Don't fire editor if using %bg, since there
398 (_should_recompile): Don't fire editor if using %bg, since there
393 is no file in the first place. From the same report as above.
399 is no file in the first place. From the same report as above.
394 (raw_input): protect against faulty third-party prefilters. After
400 (raw_input): protect against faulty third-party prefilters. After
395 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
401 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
396 while running under SAGE.
402 while running under SAGE.
397
403
398 2006-05-23 Ville Vainio <vivainio@gmail.com>
404 2006-05-23 Ville Vainio <vivainio@gmail.com>
399
405
400 * ipapi.py: Stripped down ip.to_user_ns() to work only as
406 * ipapi.py: Stripped down ip.to_user_ns() to work only as
401 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
407 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
402 now returns None (again), unless dummy is specifically allowed by
408 now returns None (again), unless dummy is specifically allowed by
403 ipapi.get(allow_dummy=True).
409 ipapi.get(allow_dummy=True).
404
410
405 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
411 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
406
412
407 * IPython: remove all 2.2-compatibility objects and hacks from
413 * IPython: remove all 2.2-compatibility objects and hacks from
408 everywhere, since we only support 2.3 at this point. Docs
414 everywhere, since we only support 2.3 at this point. Docs
409 updated.
415 updated.
410
416
411 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
417 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
412 Anything requiring extra validation can be turned into a Python
418 Anything requiring extra validation can be turned into a Python
413 property in the future. I used a property for the db one b/c
419 property in the future. I used a property for the db one b/c
414 there was a nasty circularity problem with the initialization
420 there was a nasty circularity problem with the initialization
415 order, which right now I don't have time to clean up.
421 order, which right now I don't have time to clean up.
416
422
417 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
423 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
418 another locking bug reported by Jorgen. I'm not 100% sure though,
424 another locking bug reported by Jorgen. I'm not 100% sure though,
419 so more testing is needed...
425 so more testing is needed...
420
426
421 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
427 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
422
428
423 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
429 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
424 local variables from any routine in user code (typically executed
430 local variables from any routine in user code (typically executed
425 with %run) directly into the interactive namespace. Very useful
431 with %run) directly into the interactive namespace. Very useful
426 when doing complex debugging.
432 when doing complex debugging.
427 (IPythonNotRunning): Changed the default None object to a dummy
433 (IPythonNotRunning): Changed the default None object to a dummy
428 whose attributes can be queried as well as called without
434 whose attributes can be queried as well as called without
429 exploding, to ease writing code which works transparently both in
435 exploding, to ease writing code which works transparently both in
430 and out of ipython and uses some of this API.
436 and out of ipython and uses some of this API.
431
437
432 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
438 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
433
439
434 * IPython/hooks.py (result_display): Fix the fact that our display
440 * IPython/hooks.py (result_display): Fix the fact that our display
435 hook was using str() instead of repr(), as the default python
441 hook was using str() instead of repr(), as the default python
436 console does. This had gone unnoticed b/c it only happened if
442 console does. This had gone unnoticed b/c it only happened if
437 %Pprint was off, but the inconsistency was there.
443 %Pprint was off, but the inconsistency was there.
438
444
439 2006-05-15 Ville Vainio <vivainio@gmail.com>
445 2006-05-15 Ville Vainio <vivainio@gmail.com>
440
446
441 * Oinspect.py: Only show docstring for nonexisting/binary files
447 * Oinspect.py: Only show docstring for nonexisting/binary files
442 when doing object??, closing ticket #62
448 when doing object??, closing ticket #62
443
449
444 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
450 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
445
451
446 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
452 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
447 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
453 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
448 was being released in a routine which hadn't checked if it had
454 was being released in a routine which hadn't checked if it had
449 been the one to acquire it.
455 been the one to acquire it.
450
456
451 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
457 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
452
458
453 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
459 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
454
460
455 2006-04-11 Ville Vainio <vivainio@gmail.com>
461 2006-04-11 Ville Vainio <vivainio@gmail.com>
456
462
457 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
463 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
458 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
464 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
459 prefilters, allowing stuff like magics and aliases in the file.
465 prefilters, allowing stuff like magics and aliases in the file.
460
466
461 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
467 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
462 added. Supported now are "%clear in" and "%clear out" (clear input and
468 added. Supported now are "%clear in" and "%clear out" (clear input and
463 output history, respectively). Also fixed CachedOutput.flush to
469 output history, respectively). Also fixed CachedOutput.flush to
464 properly flush the output cache.
470 properly flush the output cache.
465
471
466 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
472 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
467 half-success (and fail explicitly).
473 half-success (and fail explicitly).
468
474
469 2006-03-28 Ville Vainio <vivainio@gmail.com>
475 2006-03-28 Ville Vainio <vivainio@gmail.com>
470
476
471 * iplib.py: Fix quoting of aliases so that only argless ones
477 * iplib.py: Fix quoting of aliases so that only argless ones
472 are quoted
478 are quoted
473
479
474 2006-03-28 Ville Vainio <vivainio@gmail.com>
480 2006-03-28 Ville Vainio <vivainio@gmail.com>
475
481
476 * iplib.py: Quote aliases with spaces in the name.
482 * iplib.py: Quote aliases with spaces in the name.
477 "c:\program files\blah\bin" is now legal alias target.
483 "c:\program files\blah\bin" is now legal alias target.
478
484
479 * ext_rehashdir.py: Space no longer allowed as arg
485 * ext_rehashdir.py: Space no longer allowed as arg
480 separator, since space is legal in path names.
486 separator, since space is legal in path names.
481
487
482 2006-03-16 Ville Vainio <vivainio@gmail.com>
488 2006-03-16 Ville Vainio <vivainio@gmail.com>
483
489
484 * upgrade_dir.py: Take path.py from Extensions, correcting
490 * upgrade_dir.py: Take path.py from Extensions, correcting
485 %upgrade magic
491 %upgrade magic
486
492
487 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
493 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
488
494
489 * hooks.py: Only enclose editor binary in quotes if legal and
495 * hooks.py: Only enclose editor binary in quotes if legal and
490 necessary (space in the name, and is an existing file). Fixes a bug
496 necessary (space in the name, and is an existing file). Fixes a bug
491 reported by Zachary Pincus.
497 reported by Zachary Pincus.
492
498
493 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
499 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
494
500
495 * Manual: thanks to a tip on proper color handling for Emacs, by
501 * Manual: thanks to a tip on proper color handling for Emacs, by
496 Eric J Haywiser <ejh1-AT-MIT.EDU>.
502 Eric J Haywiser <ejh1-AT-MIT.EDU>.
497
503
498 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
504 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
499 by applying the provided patch. Thanks to Liu Jin
505 by applying the provided patch. Thanks to Liu Jin
500 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
506 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
501 XEmacs/Linux, I'm trusting the submitter that it actually helps
507 XEmacs/Linux, I'm trusting the submitter that it actually helps
502 under win32/GNU Emacs. Will revisit if any problems are reported.
508 under win32/GNU Emacs. Will revisit if any problems are reported.
503
509
504 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
510 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
505
511
506 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
512 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
507 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
513 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
508
514
509 2006-03-12 Ville Vainio <vivainio@gmail.com>
515 2006-03-12 Ville Vainio <vivainio@gmail.com>
510
516
511 * Magic.py (magic_timeit): Added %timeit magic, contributed by
517 * Magic.py (magic_timeit): Added %timeit magic, contributed by
512 Torsten Marek.
518 Torsten Marek.
513
519
514 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
520 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
515
521
516 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
522 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
517 line ranges works again.
523 line ranges works again.
518
524
519 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
525 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
520
526
521 * IPython/iplib.py (showtraceback): add back sys.last_traceback
527 * IPython/iplib.py (showtraceback): add back sys.last_traceback
522 and friends, after a discussion with Zach Pincus on ipython-user.
528 and friends, after a discussion with Zach Pincus on ipython-user.
523 I'm not 100% sure, but after thinking about it quite a bit, it may
529 I'm not 100% sure, but after thinking about it quite a bit, it may
524 be OK. Testing with the multithreaded shells didn't reveal any
530 be OK. Testing with the multithreaded shells didn't reveal any
525 problems, but let's keep an eye out.
531 problems, but let's keep an eye out.
526
532
527 In the process, I fixed a few things which were calling
533 In the process, I fixed a few things which were calling
528 self.InteractiveTB() directly (like safe_execfile), which is a
534 self.InteractiveTB() directly (like safe_execfile), which is a
529 mistake: ALL exception reporting should be done by calling
535 mistake: ALL exception reporting should be done by calling
530 self.showtraceback(), which handles state and tab-completion and
536 self.showtraceback(), which handles state and tab-completion and
531 more.
537 more.
532
538
533 2006-03-01 Ville Vainio <vivainio@gmail.com>
539 2006-03-01 Ville Vainio <vivainio@gmail.com>
534
540
535 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
541 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
536 To use, do "from ipipe import *".
542 To use, do "from ipipe import *".
537
543
538 2006-02-24 Ville Vainio <vivainio@gmail.com>
544 2006-02-24 Ville Vainio <vivainio@gmail.com>
539
545
540 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
546 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
541 "cleanly" and safely than the older upgrade mechanism.
547 "cleanly" and safely than the older upgrade mechanism.
542
548
543 2006-02-21 Ville Vainio <vivainio@gmail.com>
549 2006-02-21 Ville Vainio <vivainio@gmail.com>
544
550
545 * Magic.py: %save works again.
551 * Magic.py: %save works again.
546
552
547 2006-02-15 Ville Vainio <vivainio@gmail.com>
553 2006-02-15 Ville Vainio <vivainio@gmail.com>
548
554
549 * Magic.py: %Pprint works again
555 * Magic.py: %Pprint works again
550
556
551 * Extensions/ipy_sane_defaults.py: Provide everything provided
557 * Extensions/ipy_sane_defaults.py: Provide everything provided
552 in default ipythonrc, to make it possible to have a completely empty
558 in default ipythonrc, to make it possible to have a completely empty
553 ipythonrc (and thus completely rc-file free configuration)
559 ipythonrc (and thus completely rc-file free configuration)
554
560
555 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
561 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
556
562
557 * IPython/hooks.py (editor): quote the call to the editor command,
563 * IPython/hooks.py (editor): quote the call to the editor command,
558 to allow commands with spaces in them. Problem noted by watching
564 to allow commands with spaces in them. Problem noted by watching
559 Ian Oswald's video about textpad under win32 at
565 Ian Oswald's video about textpad under win32 at
560 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
566 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
561
567
562 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
568 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
563 describing magics (we haven't used @ for a loong time).
569 describing magics (we haven't used @ for a loong time).
564
570
565 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
571 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
566 contributed by marienz to close
572 contributed by marienz to close
567 http://www.scipy.net/roundup/ipython/issue53.
573 http://www.scipy.net/roundup/ipython/issue53.
568
574
569 2006-02-10 Ville Vainio <vivainio@gmail.com>
575 2006-02-10 Ville Vainio <vivainio@gmail.com>
570
576
571 * genutils.py: getoutput now works in win32 too
577 * genutils.py: getoutput now works in win32 too
572
578
573 * completer.py: alias and magic completion only invoked
579 * completer.py: alias and magic completion only invoked
574 at the first "item" in the line, to avoid "cd %store"
580 at the first "item" in the line, to avoid "cd %store"
575 nonsense.
581 nonsense.
576
582
577 2006-02-09 Ville Vainio <vivainio@gmail.com>
583 2006-02-09 Ville Vainio <vivainio@gmail.com>
578
584
579 * test/*: Added a unit testing framework (finally).
585 * test/*: Added a unit testing framework (finally).
580 '%run runtests.py' to run test_*.
586 '%run runtests.py' to run test_*.
581
587
582 * ipapi.py: Exposed runlines and set_custom_exc
588 * ipapi.py: Exposed runlines and set_custom_exc
583
589
584 2006-02-07 Ville Vainio <vivainio@gmail.com>
590 2006-02-07 Ville Vainio <vivainio@gmail.com>
585
591
586 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
592 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
587 instead use "f(1 2)" as before.
593 instead use "f(1 2)" as before.
588
594
589 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
595 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
590
596
591 * IPython/demo.py (IPythonDemo): Add new classes to the demo
597 * IPython/demo.py (IPythonDemo): Add new classes to the demo
592 facilities, for demos processed by the IPython input filter
598 facilities, for demos processed by the IPython input filter
593 (IPythonDemo), and for running a script one-line-at-a-time as a
599 (IPythonDemo), and for running a script one-line-at-a-time as a
594 demo, both for pure Python (LineDemo) and for IPython-processed
600 demo, both for pure Python (LineDemo) and for IPython-processed
595 input (IPythonLineDemo). After a request by Dave Kohel, from the
601 input (IPythonLineDemo). After a request by Dave Kohel, from the
596 SAGE team.
602 SAGE team.
597 (Demo.edit): added an edit() method to the demo objects, to edit
603 (Demo.edit): added an edit() method to the demo objects, to edit
598 the in-memory copy of the last executed block.
604 the in-memory copy of the last executed block.
599
605
600 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
606 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
601 processing to %edit, %macro and %save. These commands can now be
607 processing to %edit, %macro and %save. These commands can now be
602 invoked on the unprocessed input as it was typed by the user
608 invoked on the unprocessed input as it was typed by the user
603 (without any prefilters applied). After requests by the SAGE team
609 (without any prefilters applied). After requests by the SAGE team
604 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
610 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
605
611
606 2006-02-01 Ville Vainio <vivainio@gmail.com>
612 2006-02-01 Ville Vainio <vivainio@gmail.com>
607
613
608 * setup.py, eggsetup.py: easy_install ipython==dev works
614 * setup.py, eggsetup.py: easy_install ipython==dev works
609 correctly now (on Linux)
615 correctly now (on Linux)
610
616
611 * ipy_user_conf,ipmaker: user config changes, removed spurious
617 * ipy_user_conf,ipmaker: user config changes, removed spurious
612 warnings
618 warnings
613
619
614 * iplib: if rc.banner is string, use it as is.
620 * iplib: if rc.banner is string, use it as is.
615
621
616 * Magic: %pycat accepts a string argument and pages it's contents.
622 * Magic: %pycat accepts a string argument and pages it's contents.
617
623
618
624
619 2006-01-30 Ville Vainio <vivainio@gmail.com>
625 2006-01-30 Ville Vainio <vivainio@gmail.com>
620
626
621 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
627 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
622 Now %store and bookmarks work through PickleShare, meaning that
628 Now %store and bookmarks work through PickleShare, meaning that
623 concurrent access is possible and all ipython sessions see the
629 concurrent access is possible and all ipython sessions see the
624 same database situation all the time, instead of snapshot of
630 same database situation all the time, instead of snapshot of
625 the situation when the session was started. Hence, %bookmark
631 the situation when the session was started. Hence, %bookmark
626 results are immediately accessible from othes sessions. The database
632 results are immediately accessible from othes sessions. The database
627 is also available for use by user extensions. See:
633 is also available for use by user extensions. See:
628 http://www.python.org/pypi/pickleshare
634 http://www.python.org/pypi/pickleshare
629
635
630 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
636 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
631
637
632 * aliases can now be %store'd
638 * aliases can now be %store'd
633
639
634 * path.py moved to Extensions so that pickleshare does not need
640 * path.py moved to Extensions so that pickleshare does not need
635 IPython-specific import. Extensions added to pythonpath right
641 IPython-specific import. Extensions added to pythonpath right
636 at __init__.
642 at __init__.
637
643
638 * iplib.py: ipalias deprecated/redundant; aliases are converted and
644 * iplib.py: ipalias deprecated/redundant; aliases are converted and
639 called with _ip.system and the pre-transformed command string.
645 called with _ip.system and the pre-transformed command string.
640
646
641 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
647 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
642
648
643 * IPython/iplib.py (interact): Fix that we were not catching
649 * IPython/iplib.py (interact): Fix that we were not catching
644 KeyboardInterrupt exceptions properly. I'm not quite sure why the
650 KeyboardInterrupt exceptions properly. I'm not quite sure why the
645 logic here had to change, but it's fixed now.
651 logic here had to change, but it's fixed now.
646
652
647 2006-01-29 Ville Vainio <vivainio@gmail.com>
653 2006-01-29 Ville Vainio <vivainio@gmail.com>
648
654
649 * iplib.py: Try to import pyreadline on Windows.
655 * iplib.py: Try to import pyreadline on Windows.
650
656
651 2006-01-27 Ville Vainio <vivainio@gmail.com>
657 2006-01-27 Ville Vainio <vivainio@gmail.com>
652
658
653 * iplib.py: Expose ipapi as _ip in builtin namespace.
659 * iplib.py: Expose ipapi as _ip in builtin namespace.
654 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
660 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
655 and ip_set_hook (-> _ip.set_hook) redundant. % and !
661 and ip_set_hook (-> _ip.set_hook) redundant. % and !
656 syntax now produce _ip.* variant of the commands.
662 syntax now produce _ip.* variant of the commands.
657
663
658 * "_ip.options().autoedit_syntax = 2" automatically throws
664 * "_ip.options().autoedit_syntax = 2" automatically throws
659 user to editor for syntax error correction without prompting.
665 user to editor for syntax error correction without prompting.
660
666
661 2006-01-27 Ville Vainio <vivainio@gmail.com>
667 2006-01-27 Ville Vainio <vivainio@gmail.com>
662
668
663 * ipmaker.py: Give "realistic" sys.argv for scripts (without
669 * ipmaker.py: Give "realistic" sys.argv for scripts (without
664 'ipython' at argv[0]) executed through command line.
670 'ipython' at argv[0]) executed through command line.
665 NOTE: this DEPRECATES calling ipython with multiple scripts
671 NOTE: this DEPRECATES calling ipython with multiple scripts
666 ("ipython a.py b.py c.py")
672 ("ipython a.py b.py c.py")
667
673
668 * iplib.py, hooks.py: Added configurable input prefilter,
674 * iplib.py, hooks.py: Added configurable input prefilter,
669 named 'input_prefilter'. See ext_rescapture.py for example
675 named 'input_prefilter'. See ext_rescapture.py for example
670 usage.
676 usage.
671
677
672 * ext_rescapture.py, Magic.py: Better system command output capture
678 * ext_rescapture.py, Magic.py: Better system command output capture
673 through 'var = !ls' (deprecates user-visible %sc). Same notation
679 through 'var = !ls' (deprecates user-visible %sc). Same notation
674 applies for magics, 'var = %alias' assigns alias list to var.
680 applies for magics, 'var = %alias' assigns alias list to var.
675
681
676 * ipapi.py: added meta() for accessing extension-usable data store.
682 * ipapi.py: added meta() for accessing extension-usable data store.
677
683
678 * iplib.py: added InteractiveShell.getapi(). New magics should be
684 * iplib.py: added InteractiveShell.getapi(). New magics should be
679 written doing self.getapi() instead of using the shell directly.
685 written doing self.getapi() instead of using the shell directly.
680
686
681 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
687 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
682 %store foo >> ~/myfoo.txt to store variables to files (in clean
688 %store foo >> ~/myfoo.txt to store variables to files (in clean
683 textual form, not a restorable pickle).
689 textual form, not a restorable pickle).
684
690
685 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
691 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
686
692
687 * usage.py, Magic.py: added %quickref
693 * usage.py, Magic.py: added %quickref
688
694
689 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
695 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
690
696
691 * GetoptErrors when invoking magics etc. with wrong args
697 * GetoptErrors when invoking magics etc. with wrong args
692 are now more helpful:
698 are now more helpful:
693 GetoptError: option -l not recognized (allowed: "qb" )
699 GetoptError: option -l not recognized (allowed: "qb" )
694
700
695 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
701 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
696
702
697 * IPython/demo.py (Demo.show): Flush stdout after each block, so
703 * IPython/demo.py (Demo.show): Flush stdout after each block, so
698 computationally intensive blocks don't appear to stall the demo.
704 computationally intensive blocks don't appear to stall the demo.
699
705
700 2006-01-24 Ville Vainio <vivainio@gmail.com>
706 2006-01-24 Ville Vainio <vivainio@gmail.com>
701
707
702 * iplib.py, hooks.py: 'result_display' hook can return a non-None
708 * iplib.py, hooks.py: 'result_display' hook can return a non-None
703 value to manipulate resulting history entry.
709 value to manipulate resulting history entry.
704
710
705 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
711 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
706 to instance methods of IPApi class, to make extending an embedded
712 to instance methods of IPApi class, to make extending an embedded
707 IPython feasible. See ext_rehashdir.py for example usage.
713 IPython feasible. See ext_rehashdir.py for example usage.
708
714
709 * Merged 1071-1076 from branches/0.7.1
715 * Merged 1071-1076 from branches/0.7.1
710
716
711
717
712 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
718 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
713
719
714 * tools/release (daystamp): Fix build tools to use the new
720 * tools/release (daystamp): Fix build tools to use the new
715 eggsetup.py script to build lightweight eggs.
721 eggsetup.py script to build lightweight eggs.
716
722
717 * Applied changesets 1062 and 1064 before 0.7.1 release.
723 * Applied changesets 1062 and 1064 before 0.7.1 release.
718
724
719 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
725 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
720 see the raw input history (without conversions like %ls ->
726 see the raw input history (without conversions like %ls ->
721 ipmagic("ls")). After a request from W. Stein, SAGE
727 ipmagic("ls")). After a request from W. Stein, SAGE
722 (http://modular.ucsd.edu/sage) developer. This information is
728 (http://modular.ucsd.edu/sage) developer. This information is
723 stored in the input_hist_raw attribute of the IPython instance, so
729 stored in the input_hist_raw attribute of the IPython instance, so
724 developers can access it if needed (it's an InputList instance).
730 developers can access it if needed (it's an InputList instance).
725
731
726 * Versionstring = 0.7.2.svn
732 * Versionstring = 0.7.2.svn
727
733
728 * eggsetup.py: A separate script for constructing eggs, creates
734 * eggsetup.py: A separate script for constructing eggs, creates
729 proper launch scripts even on Windows (an .exe file in
735 proper launch scripts even on Windows (an .exe file in
730 \python24\scripts).
736 \python24\scripts).
731
737
732 * ipapi.py: launch_new_instance, launch entry point needed for the
738 * ipapi.py: launch_new_instance, launch entry point needed for the
733 egg.
739 egg.
734
740
735 2006-01-23 Ville Vainio <vivainio@gmail.com>
741 2006-01-23 Ville Vainio <vivainio@gmail.com>
736
742
737 * Added %cpaste magic for pasting python code
743 * Added %cpaste magic for pasting python code
738
744
739 2006-01-22 Ville Vainio <vivainio@gmail.com>
745 2006-01-22 Ville Vainio <vivainio@gmail.com>
740
746
741 * Merge from branches/0.7.1 into trunk, revs 1052-1057
747 * Merge from branches/0.7.1 into trunk, revs 1052-1057
742
748
743 * Versionstring = 0.7.2.svn
749 * Versionstring = 0.7.2.svn
744
750
745 * eggsetup.py: A separate script for constructing eggs, creates
751 * eggsetup.py: A separate script for constructing eggs, creates
746 proper launch scripts even on Windows (an .exe file in
752 proper launch scripts even on Windows (an .exe file in
747 \python24\scripts).
753 \python24\scripts).
748
754
749 * ipapi.py: launch_new_instance, launch entry point needed for the
755 * ipapi.py: launch_new_instance, launch entry point needed for the
750 egg.
756 egg.
751
757
752 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
758 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
753
759
754 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
760 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
755 %pfile foo would print the file for foo even if it was a binary.
761 %pfile foo would print the file for foo even if it was a binary.
756 Now, extensions '.so' and '.dll' are skipped.
762 Now, extensions '.so' and '.dll' are skipped.
757
763
758 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
764 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
759 bug, where macros would fail in all threaded modes. I'm not 100%
765 bug, where macros would fail in all threaded modes. I'm not 100%
760 sure, so I'm going to put out an rc instead of making a release
766 sure, so I'm going to put out an rc instead of making a release
761 today, and wait for feedback for at least a few days.
767 today, and wait for feedback for at least a few days.
762
768
763 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
769 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
764 it...) the handling of pasting external code with autoindent on.
770 it...) the handling of pasting external code with autoindent on.
765 To get out of a multiline input, the rule will appear for most
771 To get out of a multiline input, the rule will appear for most
766 users unchanged: two blank lines or change the indent level
772 users unchanged: two blank lines or change the indent level
767 proposed by IPython. But there is a twist now: you can
773 proposed by IPython. But there is a twist now: you can
768 add/subtract only *one or two spaces*. If you add/subtract three
774 add/subtract only *one or two spaces*. If you add/subtract three
769 or more (unless you completely delete the line), IPython will
775 or more (unless you completely delete the line), IPython will
770 accept that line, and you'll need to enter a second one of pure
776 accept that line, and you'll need to enter a second one of pure
771 whitespace. I know it sounds complicated, but I can't find a
777 whitespace. I know it sounds complicated, but I can't find a
772 different solution that covers all the cases, with the right
778 different solution that covers all the cases, with the right
773 heuristics. Hopefully in actual use, nobody will really notice
779 heuristics. Hopefully in actual use, nobody will really notice
774 all these strange rules and things will 'just work'.
780 all these strange rules and things will 'just work'.
775
781
776 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
782 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
777
783
778 * IPython/iplib.py (interact): catch exceptions which can be
784 * IPython/iplib.py (interact): catch exceptions which can be
779 triggered asynchronously by signal handlers. Thanks to an
785 triggered asynchronously by signal handlers. Thanks to an
780 automatic crash report, submitted by Colin Kingsley
786 automatic crash report, submitted by Colin Kingsley
781 <tercel-AT-gentoo.org>.
787 <tercel-AT-gentoo.org>.
782
788
783 2006-01-20 Ville Vainio <vivainio@gmail.com>
789 2006-01-20 Ville Vainio <vivainio@gmail.com>
784
790
785 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
791 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
786 (%rehashdir, very useful, try it out) of how to extend ipython
792 (%rehashdir, very useful, try it out) of how to extend ipython
787 with new magics. Also added Extensions dir to pythonpath to make
793 with new magics. Also added Extensions dir to pythonpath to make
788 importing extensions easy.
794 importing extensions easy.
789
795
790 * %store now complains when trying to store interactively declared
796 * %store now complains when trying to store interactively declared
791 classes / instances of those classes.
797 classes / instances of those classes.
792
798
793 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
799 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
794 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
800 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
795 if they exist, and ipy_user_conf.py with some defaults is created for
801 if they exist, and ipy_user_conf.py with some defaults is created for
796 the user.
802 the user.
797
803
798 * Startup rehashing done by the config file, not InterpreterExec.
804 * Startup rehashing done by the config file, not InterpreterExec.
799 This means system commands are available even without selecting the
805 This means system commands are available even without selecting the
800 pysh profile. It's the sensible default after all.
806 pysh profile. It's the sensible default after all.
801
807
802 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
808 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
803
809
804 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
810 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
805 multiline code with autoindent on working. But I am really not
811 multiline code with autoindent on working. But I am really not
806 sure, so this needs more testing. Will commit a debug-enabled
812 sure, so this needs more testing. Will commit a debug-enabled
807 version for now, while I test it some more, so that Ville and
813 version for now, while I test it some more, so that Ville and
808 others may also catch any problems. Also made
814 others may also catch any problems. Also made
809 self.indent_current_str() a method, to ensure that there's no
815 self.indent_current_str() a method, to ensure that there's no
810 chance of the indent space count and the corresponding string
816 chance of the indent space count and the corresponding string
811 falling out of sync. All code needing the string should just call
817 falling out of sync. All code needing the string should just call
812 the method.
818 the method.
813
819
814 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
820 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
815
821
816 * IPython/Magic.py (magic_edit): fix check for when users don't
822 * IPython/Magic.py (magic_edit): fix check for when users don't
817 save their output files, the try/except was in the wrong section.
823 save their output files, the try/except was in the wrong section.
818
824
819 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
825 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
820
826
821 * IPython/Magic.py (magic_run): fix __file__ global missing from
827 * IPython/Magic.py (magic_run): fix __file__ global missing from
822 script's namespace when executed via %run. After a report by
828 script's namespace when executed via %run. After a report by
823 Vivian.
829 Vivian.
824
830
825 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
831 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
826 when using python 2.4. The parent constructor changed in 2.4, and
832 when using python 2.4. The parent constructor changed in 2.4, and
827 we need to track it directly (we can't call it, as it messes up
833 we need to track it directly (we can't call it, as it messes up
828 readline and tab-completion inside our pdb would stop working).
834 readline and tab-completion inside our pdb would stop working).
829 After a bug report by R. Bernstein <rocky-AT-panix.com>.
835 After a bug report by R. Bernstein <rocky-AT-panix.com>.
830
836
831 2006-01-16 Ville Vainio <vivainio@gmail.com>
837 2006-01-16 Ville Vainio <vivainio@gmail.com>
832
838
833 * Ipython/magic.py: Reverted back to old %edit functionality
839 * Ipython/magic.py: Reverted back to old %edit functionality
834 that returns file contents on exit.
840 that returns file contents on exit.
835
841
836 * IPython/path.py: Added Jason Orendorff's "path" module to
842 * IPython/path.py: Added Jason Orendorff's "path" module to
837 IPython tree, http://www.jorendorff.com/articles/python/path/.
843 IPython tree, http://www.jorendorff.com/articles/python/path/.
838 You can get path objects conveniently through %sc, and !!, e.g.:
844 You can get path objects conveniently through %sc, and !!, e.g.:
839 sc files=ls
845 sc files=ls
840 for p in files.paths: # or files.p
846 for p in files.paths: # or files.p
841 print p,p.mtime
847 print p,p.mtime
842
848
843 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
849 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
844 now work again without considering the exclusion regexp -
850 now work again without considering the exclusion regexp -
845 hence, things like ',foo my/path' turn to 'foo("my/path")'
851 hence, things like ',foo my/path' turn to 'foo("my/path")'
846 instead of syntax error.
852 instead of syntax error.
847
853
848
854
849 2006-01-14 Ville Vainio <vivainio@gmail.com>
855 2006-01-14 Ville Vainio <vivainio@gmail.com>
850
856
851 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
857 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
852 ipapi decorators for python 2.4 users, options() provides access to rc
858 ipapi decorators for python 2.4 users, options() provides access to rc
853 data.
859 data.
854
860
855 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
861 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
856 as path separators (even on Linux ;-). Space character after
862 as path separators (even on Linux ;-). Space character after
857 backslash (as yielded by tab completer) is still space;
863 backslash (as yielded by tab completer) is still space;
858 "%cd long\ name" works as expected.
864 "%cd long\ name" works as expected.
859
865
860 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
866 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
861 as "chain of command", with priority. API stays the same,
867 as "chain of command", with priority. API stays the same,
862 TryNext exception raised by a hook function signals that
868 TryNext exception raised by a hook function signals that
863 current hook failed and next hook should try handling it, as
869 current hook failed and next hook should try handling it, as
864 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
870 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
865 requested configurable display hook, which is now implemented.
871 requested configurable display hook, which is now implemented.
866
872
867 2006-01-13 Ville Vainio <vivainio@gmail.com>
873 2006-01-13 Ville Vainio <vivainio@gmail.com>
868
874
869 * IPython/platutils*.py: platform specific utility functions,
875 * IPython/platutils*.py: platform specific utility functions,
870 so far only set_term_title is implemented (change terminal
876 so far only set_term_title is implemented (change terminal
871 label in windowing systems). %cd now changes the title to
877 label in windowing systems). %cd now changes the title to
872 current dir.
878 current dir.
873
879
874 * IPython/Release.py: Added myself to "authors" list,
880 * IPython/Release.py: Added myself to "authors" list,
875 had to create new files.
881 had to create new files.
876
882
877 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
883 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
878 shell escape; not a known bug but had potential to be one in the
884 shell escape; not a known bug but had potential to be one in the
879 future.
885 future.
880
886
881 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
887 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
882 extension API for IPython! See the module for usage example. Fix
888 extension API for IPython! See the module for usage example. Fix
883 OInspect for docstring-less magic functions.
889 OInspect for docstring-less magic functions.
884
890
885
891
886 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
892 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
887
893
888 * IPython/iplib.py (raw_input): temporarily deactivate all
894 * IPython/iplib.py (raw_input): temporarily deactivate all
889 attempts at allowing pasting of code with autoindent on. It
895 attempts at allowing pasting of code with autoindent on. It
890 introduced bugs (reported by Prabhu) and I can't seem to find a
896 introduced bugs (reported by Prabhu) and I can't seem to find a
891 robust combination which works in all cases. Will have to revisit
897 robust combination which works in all cases. Will have to revisit
892 later.
898 later.
893
899
894 * IPython/genutils.py: remove isspace() function. We've dropped
900 * IPython/genutils.py: remove isspace() function. We've dropped
895 2.2 compatibility, so it's OK to use the string method.
901 2.2 compatibility, so it's OK to use the string method.
896
902
897 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
903 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
898
904
899 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
905 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
900 matching what NOT to autocall on, to include all python binary
906 matching what NOT to autocall on, to include all python binary
901 operators (including things like 'and', 'or', 'is' and 'in').
907 operators (including things like 'and', 'or', 'is' and 'in').
902 Prompted by a bug report on 'foo & bar', but I realized we had
908 Prompted by a bug report on 'foo & bar', but I realized we had
903 many more potential bug cases with other operators. The regexp is
909 many more potential bug cases with other operators. The regexp is
904 self.re_exclude_auto, it's fairly commented.
910 self.re_exclude_auto, it's fairly commented.
905
911
906 2006-01-12 Ville Vainio <vivainio@gmail.com>
912 2006-01-12 Ville Vainio <vivainio@gmail.com>
907
913
908 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
914 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
909 Prettified and hardened string/backslash quoting with ipsystem(),
915 Prettified and hardened string/backslash quoting with ipsystem(),
910 ipalias() and ipmagic(). Now even \ characters are passed to
916 ipalias() and ipmagic(). Now even \ characters are passed to
911 %magics, !shell escapes and aliases exactly as they are in the
917 %magics, !shell escapes and aliases exactly as they are in the
912 ipython command line. Should improve backslash experience,
918 ipython command line. Should improve backslash experience,
913 particularly in Windows (path delimiter for some commands that
919 particularly in Windows (path delimiter for some commands that
914 won't understand '/'), but Unix benefits as well (regexps). %cd
920 won't understand '/'), but Unix benefits as well (regexps). %cd
915 magic still doesn't support backslash path delimiters, though. Also
921 magic still doesn't support backslash path delimiters, though. Also
916 deleted all pretense of supporting multiline command strings in
922 deleted all pretense of supporting multiline command strings in
917 !system or %magic commands. Thanks to Jerry McRae for suggestions.
923 !system or %magic commands. Thanks to Jerry McRae for suggestions.
918
924
919 * doc/build_doc_instructions.txt added. Documentation on how to
925 * doc/build_doc_instructions.txt added. Documentation on how to
920 use doc/update_manual.py, added yesterday. Both files contributed
926 use doc/update_manual.py, added yesterday. Both files contributed
921 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
927 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
922 doc/*.sh for deprecation at a later date.
928 doc/*.sh for deprecation at a later date.
923
929
924 * /ipython.py Added ipython.py to root directory for
930 * /ipython.py Added ipython.py to root directory for
925 zero-installation (tar xzvf ipython.tgz; cd ipython; python
931 zero-installation (tar xzvf ipython.tgz; cd ipython; python
926 ipython.py) and development convenience (no need to keep doing
932 ipython.py) and development convenience (no need to keep doing
927 "setup.py install" between changes).
933 "setup.py install" between changes).
928
934
929 * Made ! and !! shell escapes work (again) in multiline expressions:
935 * Made ! and !! shell escapes work (again) in multiline expressions:
930 if 1:
936 if 1:
931 !ls
937 !ls
932 !!ls
938 !!ls
933
939
934 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
940 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
935
941
936 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
942 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
937 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
943 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
938 module in case-insensitive installation. Was causing crashes
944 module in case-insensitive installation. Was causing crashes
939 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
945 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
940
946
941 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
947 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
942 <marienz-AT-gentoo.org>, closes
948 <marienz-AT-gentoo.org>, closes
943 http://www.scipy.net/roundup/ipython/issue51.
949 http://www.scipy.net/roundup/ipython/issue51.
944
950
945 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
951 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
946
952
947 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
953 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
948 problem of excessive CPU usage under *nix and keyboard lag under
954 problem of excessive CPU usage under *nix and keyboard lag under
949 win32.
955 win32.
950
956
951 2006-01-10 *** Released version 0.7.0
957 2006-01-10 *** Released version 0.7.0
952
958
953 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
959 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
954
960
955 * IPython/Release.py (revision): tag version number to 0.7.0,
961 * IPython/Release.py (revision): tag version number to 0.7.0,
956 ready for release.
962 ready for release.
957
963
958 * IPython/Magic.py (magic_edit): Add print statement to %edit so
964 * IPython/Magic.py (magic_edit): Add print statement to %edit so
959 it informs the user of the name of the temp. file used. This can
965 it informs the user of the name of the temp. file used. This can
960 help if you decide later to reuse that same file, so you know
966 help if you decide later to reuse that same file, so you know
961 where to copy the info from.
967 where to copy the info from.
962
968
963 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
969 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
964
970
965 * setup_bdist_egg.py: little script to build an egg. Added
971 * setup_bdist_egg.py: little script to build an egg. Added
966 support in the release tools as well.
972 support in the release tools as well.
967
973
968 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
974 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
969
975
970 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
976 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
971 version selection (new -wxversion command line and ipythonrc
977 version selection (new -wxversion command line and ipythonrc
972 parameter). Patch contributed by Arnd Baecker
978 parameter). Patch contributed by Arnd Baecker
973 <arnd.baecker-AT-web.de>.
979 <arnd.baecker-AT-web.de>.
974
980
975 * IPython/iplib.py (embed_mainloop): fix tab-completion in
981 * IPython/iplib.py (embed_mainloop): fix tab-completion in
976 embedded instances, for variables defined at the interactive
982 embedded instances, for variables defined at the interactive
977 prompt of the embedded ipython. Reported by Arnd.
983 prompt of the embedded ipython. Reported by Arnd.
978
984
979 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
985 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
980 it can be used as a (stateful) toggle, or with a direct parameter.
986 it can be used as a (stateful) toggle, or with a direct parameter.
981
987
982 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
988 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
983 could be triggered in certain cases and cause the traceback
989 could be triggered in certain cases and cause the traceback
984 printer not to work.
990 printer not to work.
985
991
986 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
992 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
987
993
988 * IPython/iplib.py (_should_recompile): Small fix, closes
994 * IPython/iplib.py (_should_recompile): Small fix, closes
989 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
995 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
990
996
991 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
997 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
992
998
993 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
999 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
994 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1000 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
995 Moad for help with tracking it down.
1001 Moad for help with tracking it down.
996
1002
997 * IPython/iplib.py (handle_auto): fix autocall handling for
1003 * IPython/iplib.py (handle_auto): fix autocall handling for
998 objects which support BOTH __getitem__ and __call__ (so that f [x]
1004 objects which support BOTH __getitem__ and __call__ (so that f [x]
999 is left alone, instead of becoming f([x]) automatically).
1005 is left alone, instead of becoming f([x]) automatically).
1000
1006
1001 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1007 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1002 Ville's patch.
1008 Ville's patch.
1003
1009
1004 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1010 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1005
1011
1006 * IPython/iplib.py (handle_auto): changed autocall semantics to
1012 * IPython/iplib.py (handle_auto): changed autocall semantics to
1007 include 'smart' mode, where the autocall transformation is NOT
1013 include 'smart' mode, where the autocall transformation is NOT
1008 applied if there are no arguments on the line. This allows you to
1014 applied if there are no arguments on the line. This allows you to
1009 just type 'foo' if foo is a callable to see its internal form,
1015 just type 'foo' if foo is a callable to see its internal form,
1010 instead of having it called with no arguments (typically a
1016 instead of having it called with no arguments (typically a
1011 mistake). The old 'full' autocall still exists: for that, you
1017 mistake). The old 'full' autocall still exists: for that, you
1012 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1018 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1013
1019
1014 * IPython/completer.py (Completer.attr_matches): add
1020 * IPython/completer.py (Completer.attr_matches): add
1015 tab-completion support for Enthoughts' traits. After a report by
1021 tab-completion support for Enthoughts' traits. After a report by
1016 Arnd and a patch by Prabhu.
1022 Arnd and a patch by Prabhu.
1017
1023
1018 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1024 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1019
1025
1020 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1026 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1021 Schmolck's patch to fix inspect.getinnerframes().
1027 Schmolck's patch to fix inspect.getinnerframes().
1022
1028
1023 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1029 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1024 for embedded instances, regarding handling of namespaces and items
1030 for embedded instances, regarding handling of namespaces and items
1025 added to the __builtin__ one. Multiple embedded instances and
1031 added to the __builtin__ one. Multiple embedded instances and
1026 recursive embeddings should work better now (though I'm not sure
1032 recursive embeddings should work better now (though I'm not sure
1027 I've got all the corner cases fixed, that code is a bit of a brain
1033 I've got all the corner cases fixed, that code is a bit of a brain
1028 twister).
1034 twister).
1029
1035
1030 * IPython/Magic.py (magic_edit): added support to edit in-memory
1036 * IPython/Magic.py (magic_edit): added support to edit in-memory
1031 macros (automatically creates the necessary temp files). %edit
1037 macros (automatically creates the necessary temp files). %edit
1032 also doesn't return the file contents anymore, it's just noise.
1038 also doesn't return the file contents anymore, it's just noise.
1033
1039
1034 * IPython/completer.py (Completer.attr_matches): revert change to
1040 * IPython/completer.py (Completer.attr_matches): revert change to
1035 complete only on attributes listed in __all__. I realized it
1041 complete only on attributes listed in __all__. I realized it
1036 cripples the tab-completion system as a tool for exploring the
1042 cripples the tab-completion system as a tool for exploring the
1037 internals of unknown libraries (it renders any non-__all__
1043 internals of unknown libraries (it renders any non-__all__
1038 attribute off-limits). I got bit by this when trying to see
1044 attribute off-limits). I got bit by this when trying to see
1039 something inside the dis module.
1045 something inside the dis module.
1040
1046
1041 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1047 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1042
1048
1043 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1049 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1044 namespace for users and extension writers to hold data in. This
1050 namespace for users and extension writers to hold data in. This
1045 follows the discussion in
1051 follows the discussion in
1046 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1052 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1047
1053
1048 * IPython/completer.py (IPCompleter.complete): small patch to help
1054 * IPython/completer.py (IPCompleter.complete): small patch to help
1049 tab-completion under Emacs, after a suggestion by John Barnard
1055 tab-completion under Emacs, after a suggestion by John Barnard
1050 <barnarj-AT-ccf.org>.
1056 <barnarj-AT-ccf.org>.
1051
1057
1052 * IPython/Magic.py (Magic.extract_input_slices): added support for
1058 * IPython/Magic.py (Magic.extract_input_slices): added support for
1053 the slice notation in magics to use N-M to represent numbers N...M
1059 the slice notation in magics to use N-M to represent numbers N...M
1054 (closed endpoints). This is used by %macro and %save.
1060 (closed endpoints). This is used by %macro and %save.
1055
1061
1056 * IPython/completer.py (Completer.attr_matches): for modules which
1062 * IPython/completer.py (Completer.attr_matches): for modules which
1057 define __all__, complete only on those. After a patch by Jeffrey
1063 define __all__, complete only on those. After a patch by Jeffrey
1058 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1064 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1059 speed up this routine.
1065 speed up this routine.
1060
1066
1061 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1067 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1062 don't know if this is the end of it, but the behavior now is
1068 don't know if this is the end of it, but the behavior now is
1063 certainly much more correct. Note that coupled with macros,
1069 certainly much more correct. Note that coupled with macros,
1064 slightly surprising (at first) behavior may occur: a macro will in
1070 slightly surprising (at first) behavior may occur: a macro will in
1065 general expand to multiple lines of input, so upon exiting, the
1071 general expand to multiple lines of input, so upon exiting, the
1066 in/out counters will both be bumped by the corresponding amount
1072 in/out counters will both be bumped by the corresponding amount
1067 (as if the macro's contents had been typed interactively). Typing
1073 (as if the macro's contents had been typed interactively). Typing
1068 %hist will reveal the intermediate (silently processed) lines.
1074 %hist will reveal the intermediate (silently processed) lines.
1069
1075
1070 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1076 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1071 pickle to fail (%run was overwriting __main__ and not restoring
1077 pickle to fail (%run was overwriting __main__ and not restoring
1072 it, but pickle relies on __main__ to operate).
1078 it, but pickle relies on __main__ to operate).
1073
1079
1074 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1080 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1075 using properties, but forgot to make the main InteractiveShell
1081 using properties, but forgot to make the main InteractiveShell
1076 class a new-style class. Properties fail silently, and
1082 class a new-style class. Properties fail silently, and
1077 mysteriously, with old-style class (getters work, but
1083 mysteriously, with old-style class (getters work, but
1078 setters don't do anything).
1084 setters don't do anything).
1079
1085
1080 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1086 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1081
1087
1082 * IPython/Magic.py (magic_history): fix history reporting bug (I
1088 * IPython/Magic.py (magic_history): fix history reporting bug (I
1083 know some nasties are still there, I just can't seem to find a
1089 know some nasties are still there, I just can't seem to find a
1084 reproducible test case to track them down; the input history is
1090 reproducible test case to track them down; the input history is
1085 falling out of sync...)
1091 falling out of sync...)
1086
1092
1087 * IPython/iplib.py (handle_shell_escape): fix bug where both
1093 * IPython/iplib.py (handle_shell_escape): fix bug where both
1088 aliases and system accesses where broken for indented code (such
1094 aliases and system accesses where broken for indented code (such
1089 as loops).
1095 as loops).
1090
1096
1091 * IPython/genutils.py (shell): fix small but critical bug for
1097 * IPython/genutils.py (shell): fix small but critical bug for
1092 win32 system access.
1098 win32 system access.
1093
1099
1094 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1100 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1095
1101
1096 * IPython/iplib.py (showtraceback): remove use of the
1102 * IPython/iplib.py (showtraceback): remove use of the
1097 sys.last_{type/value/traceback} structures, which are non
1103 sys.last_{type/value/traceback} structures, which are non
1098 thread-safe.
1104 thread-safe.
1099 (_prefilter): change control flow to ensure that we NEVER
1105 (_prefilter): change control flow to ensure that we NEVER
1100 introspect objects when autocall is off. This will guarantee that
1106 introspect objects when autocall is off. This will guarantee that
1101 having an input line of the form 'x.y', where access to attribute
1107 having an input line of the form 'x.y', where access to attribute
1102 'y' has side effects, doesn't trigger the side effect TWICE. It
1108 'y' has side effects, doesn't trigger the side effect TWICE. It
1103 is important to note that, with autocall on, these side effects
1109 is important to note that, with autocall on, these side effects
1104 can still happen.
1110 can still happen.
1105 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1111 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1106 trio. IPython offers these three kinds of special calls which are
1112 trio. IPython offers these three kinds of special calls which are
1107 not python code, and it's a good thing to have their call method
1113 not python code, and it's a good thing to have their call method
1108 be accessible as pure python functions (not just special syntax at
1114 be accessible as pure python functions (not just special syntax at
1109 the command line). It gives us a better internal implementation
1115 the command line). It gives us a better internal implementation
1110 structure, as well as exposing these for user scripting more
1116 structure, as well as exposing these for user scripting more
1111 cleanly.
1117 cleanly.
1112
1118
1113 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1119 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1114 file. Now that they'll be more likely to be used with the
1120 file. Now that they'll be more likely to be used with the
1115 persistance system (%store), I want to make sure their module path
1121 persistance system (%store), I want to make sure their module path
1116 doesn't change in the future, so that we don't break things for
1122 doesn't change in the future, so that we don't break things for
1117 users' persisted data.
1123 users' persisted data.
1118
1124
1119 * IPython/iplib.py (autoindent_update): move indentation
1125 * IPython/iplib.py (autoindent_update): move indentation
1120 management into the _text_ processing loop, not the keyboard
1126 management into the _text_ processing loop, not the keyboard
1121 interactive one. This is necessary to correctly process non-typed
1127 interactive one. This is necessary to correctly process non-typed
1122 multiline input (such as macros).
1128 multiline input (such as macros).
1123
1129
1124 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1130 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1125 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1131 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1126 which was producing problems in the resulting manual.
1132 which was producing problems in the resulting manual.
1127 (magic_whos): improve reporting of instances (show their class,
1133 (magic_whos): improve reporting of instances (show their class,
1128 instead of simply printing 'instance' which isn't terribly
1134 instead of simply printing 'instance' which isn't terribly
1129 informative).
1135 informative).
1130
1136
1131 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1137 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1132 (minor mods) to support network shares under win32.
1138 (minor mods) to support network shares under win32.
1133
1139
1134 * IPython/winconsole.py (get_console_size): add new winconsole
1140 * IPython/winconsole.py (get_console_size): add new winconsole
1135 module and fixes to page_dumb() to improve its behavior under
1141 module and fixes to page_dumb() to improve its behavior under
1136 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1142 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1137
1143
1138 * IPython/Magic.py (Macro): simplified Macro class to just
1144 * IPython/Magic.py (Macro): simplified Macro class to just
1139 subclass list. We've had only 2.2 compatibility for a very long
1145 subclass list. We've had only 2.2 compatibility for a very long
1140 time, yet I was still avoiding subclassing the builtin types. No
1146 time, yet I was still avoiding subclassing the builtin types. No
1141 more (I'm also starting to use properties, though I won't shift to
1147 more (I'm also starting to use properties, though I won't shift to
1142 2.3-specific features quite yet).
1148 2.3-specific features quite yet).
1143 (magic_store): added Ville's patch for lightweight variable
1149 (magic_store): added Ville's patch for lightweight variable
1144 persistence, after a request on the user list by Matt Wilkie
1150 persistence, after a request on the user list by Matt Wilkie
1145 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1151 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1146 details.
1152 details.
1147
1153
1148 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1154 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1149 changed the default logfile name from 'ipython.log' to
1155 changed the default logfile name from 'ipython.log' to
1150 'ipython_log.py'. These logs are real python files, and now that
1156 'ipython_log.py'. These logs are real python files, and now that
1151 we have much better multiline support, people are more likely to
1157 we have much better multiline support, people are more likely to
1152 want to use them as such. Might as well name them correctly.
1158 want to use them as such. Might as well name them correctly.
1153
1159
1154 * IPython/Magic.py: substantial cleanup. While we can't stop
1160 * IPython/Magic.py: substantial cleanup. While we can't stop
1155 using magics as mixins, due to the existing customizations 'out
1161 using magics as mixins, due to the existing customizations 'out
1156 there' which rely on the mixin naming conventions, at least I
1162 there' which rely on the mixin naming conventions, at least I
1157 cleaned out all cross-class name usage. So once we are OK with
1163 cleaned out all cross-class name usage. So once we are OK with
1158 breaking compatibility, the two systems can be separated.
1164 breaking compatibility, the two systems can be separated.
1159
1165
1160 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1166 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1161 anymore, and the class is a fair bit less hideous as well. New
1167 anymore, and the class is a fair bit less hideous as well. New
1162 features were also introduced: timestamping of input, and logging
1168 features were also introduced: timestamping of input, and logging
1163 of output results. These are user-visible with the -t and -o
1169 of output results. These are user-visible with the -t and -o
1164 options to %logstart. Closes
1170 options to %logstart. Closes
1165 http://www.scipy.net/roundup/ipython/issue11 and a request by
1171 http://www.scipy.net/roundup/ipython/issue11 and a request by
1166 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1172 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1167
1173
1168 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1174 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1169
1175
1170 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1176 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1171 better handle backslashes in paths. See the thread 'More Windows
1177 better handle backslashes in paths. See the thread 'More Windows
1172 questions part 2 - \/ characters revisited' on the iypthon user
1178 questions part 2 - \/ characters revisited' on the iypthon user
1173 list:
1179 list:
1174 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1180 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1175
1181
1176 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1182 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1177
1183
1178 (InteractiveShell.__init__): change threaded shells to not use the
1184 (InteractiveShell.__init__): change threaded shells to not use the
1179 ipython crash handler. This was causing more problems than not,
1185 ipython crash handler. This was causing more problems than not,
1180 as exceptions in the main thread (GUI code, typically) would
1186 as exceptions in the main thread (GUI code, typically) would
1181 always show up as a 'crash', when they really weren't.
1187 always show up as a 'crash', when they really weren't.
1182
1188
1183 The colors and exception mode commands (%colors/%xmode) have been
1189 The colors and exception mode commands (%colors/%xmode) have been
1184 synchronized to also take this into account, so users can get
1190 synchronized to also take this into account, so users can get
1185 verbose exceptions for their threaded code as well. I also added
1191 verbose exceptions for their threaded code as well. I also added
1186 support for activating pdb inside this exception handler as well,
1192 support for activating pdb inside this exception handler as well,
1187 so now GUI authors can use IPython's enhanced pdb at runtime.
1193 so now GUI authors can use IPython's enhanced pdb at runtime.
1188
1194
1189 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1195 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1190 true by default, and add it to the shipped ipythonrc file. Since
1196 true by default, and add it to the shipped ipythonrc file. Since
1191 this asks the user before proceeding, I think it's OK to make it
1197 this asks the user before proceeding, I think it's OK to make it
1192 true by default.
1198 true by default.
1193
1199
1194 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1200 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1195 of the previous special-casing of input in the eval loop. I think
1201 of the previous special-casing of input in the eval loop. I think
1196 this is cleaner, as they really are commands and shouldn't have
1202 this is cleaner, as they really are commands and shouldn't have
1197 a special role in the middle of the core code.
1203 a special role in the middle of the core code.
1198
1204
1199 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1205 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1200
1206
1201 * IPython/iplib.py (edit_syntax_error): added support for
1207 * IPython/iplib.py (edit_syntax_error): added support for
1202 automatically reopening the editor if the file had a syntax error
1208 automatically reopening the editor if the file had a syntax error
1203 in it. Thanks to scottt who provided the patch at:
1209 in it. Thanks to scottt who provided the patch at:
1204 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1210 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1205 version committed).
1211 version committed).
1206
1212
1207 * IPython/iplib.py (handle_normal): add suport for multi-line
1213 * IPython/iplib.py (handle_normal): add suport for multi-line
1208 input with emtpy lines. This fixes
1214 input with emtpy lines. This fixes
1209 http://www.scipy.net/roundup/ipython/issue43 and a similar
1215 http://www.scipy.net/roundup/ipython/issue43 and a similar
1210 discussion on the user list.
1216 discussion on the user list.
1211
1217
1212 WARNING: a behavior change is necessarily introduced to support
1218 WARNING: a behavior change is necessarily introduced to support
1213 blank lines: now a single blank line with whitespace does NOT
1219 blank lines: now a single blank line with whitespace does NOT
1214 break the input loop, which means that when autoindent is on, by
1220 break the input loop, which means that when autoindent is on, by
1215 default hitting return on the next (indented) line does NOT exit.
1221 default hitting return on the next (indented) line does NOT exit.
1216
1222
1217 Instead, to exit a multiline input you can either have:
1223 Instead, to exit a multiline input you can either have:
1218
1224
1219 - TWO whitespace lines (just hit return again), or
1225 - TWO whitespace lines (just hit return again), or
1220 - a single whitespace line of a different length than provided
1226 - a single whitespace line of a different length than provided
1221 by the autoindent (add or remove a space).
1227 by the autoindent (add or remove a space).
1222
1228
1223 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1229 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1224 module to better organize all readline-related functionality.
1230 module to better organize all readline-related functionality.
1225 I've deleted FlexCompleter and put all completion clases here.
1231 I've deleted FlexCompleter and put all completion clases here.
1226
1232
1227 * IPython/iplib.py (raw_input): improve indentation management.
1233 * IPython/iplib.py (raw_input): improve indentation management.
1228 It is now possible to paste indented code with autoindent on, and
1234 It is now possible to paste indented code with autoindent on, and
1229 the code is interpreted correctly (though it still looks bad on
1235 the code is interpreted correctly (though it still looks bad on
1230 screen, due to the line-oriented nature of ipython).
1236 screen, due to the line-oriented nature of ipython).
1231 (MagicCompleter.complete): change behavior so that a TAB key on an
1237 (MagicCompleter.complete): change behavior so that a TAB key on an
1232 otherwise empty line actually inserts a tab, instead of completing
1238 otherwise empty line actually inserts a tab, instead of completing
1233 on the entire global namespace. This makes it easier to use the
1239 on the entire global namespace. This makes it easier to use the
1234 TAB key for indentation. After a request by Hans Meine
1240 TAB key for indentation. After a request by Hans Meine
1235 <hans_meine-AT-gmx.net>
1241 <hans_meine-AT-gmx.net>
1236 (_prefilter): add support so that typing plain 'exit' or 'quit'
1242 (_prefilter): add support so that typing plain 'exit' or 'quit'
1237 does a sensible thing. Originally I tried to deviate as little as
1243 does a sensible thing. Originally I tried to deviate as little as
1238 possible from the default python behavior, but even that one may
1244 possible from the default python behavior, but even that one may
1239 change in this direction (thread on python-dev to that effect).
1245 change in this direction (thread on python-dev to that effect).
1240 Regardless, ipython should do the right thing even if CPython's
1246 Regardless, ipython should do the right thing even if CPython's
1241 '>>>' prompt doesn't.
1247 '>>>' prompt doesn't.
1242 (InteractiveShell): removed subclassing code.InteractiveConsole
1248 (InteractiveShell): removed subclassing code.InteractiveConsole
1243 class. By now we'd overridden just about all of its methods: I've
1249 class. By now we'd overridden just about all of its methods: I've
1244 copied the remaining two over, and now ipython is a standalone
1250 copied the remaining two over, and now ipython is a standalone
1245 class. This will provide a clearer picture for the chainsaw
1251 class. This will provide a clearer picture for the chainsaw
1246 branch refactoring.
1252 branch refactoring.
1247
1253
1248 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1254 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1249
1255
1250 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1256 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1251 failures for objects which break when dir() is called on them.
1257 failures for objects which break when dir() is called on them.
1252
1258
1253 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1259 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1254 distinct local and global namespaces in the completer API. This
1260 distinct local and global namespaces in the completer API. This
1255 change allows us to properly handle completion with distinct
1261 change allows us to properly handle completion with distinct
1256 scopes, including in embedded instances (this had never really
1262 scopes, including in embedded instances (this had never really
1257 worked correctly).
1263 worked correctly).
1258
1264
1259 Note: this introduces a change in the constructor for
1265 Note: this introduces a change in the constructor for
1260 MagicCompleter, as a new global_namespace parameter is now the
1266 MagicCompleter, as a new global_namespace parameter is now the
1261 second argument (the others were bumped one position).
1267 second argument (the others were bumped one position).
1262
1268
1263 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1269 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1264
1270
1265 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1271 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1266 embedded instances (which can be done now thanks to Vivian's
1272 embedded instances (which can be done now thanks to Vivian's
1267 frame-handling fixes for pdb).
1273 frame-handling fixes for pdb).
1268 (InteractiveShell.__init__): Fix namespace handling problem in
1274 (InteractiveShell.__init__): Fix namespace handling problem in
1269 embedded instances. We were overwriting __main__ unconditionally,
1275 embedded instances. We were overwriting __main__ unconditionally,
1270 and this should only be done for 'full' (non-embedded) IPython;
1276 and this should only be done for 'full' (non-embedded) IPython;
1271 embedded instances must respect the caller's __main__. Thanks to
1277 embedded instances must respect the caller's __main__. Thanks to
1272 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1278 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1273
1279
1274 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1280 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1275
1281
1276 * setup.py: added download_url to setup(). This registers the
1282 * setup.py: added download_url to setup(). This registers the
1277 download address at PyPI, which is not only useful to humans
1283 download address at PyPI, which is not only useful to humans
1278 browsing the site, but is also picked up by setuptools (the Eggs
1284 browsing the site, but is also picked up by setuptools (the Eggs
1279 machinery). Thanks to Ville and R. Kern for the info/discussion
1285 machinery). Thanks to Ville and R. Kern for the info/discussion
1280 on this.
1286 on this.
1281
1287
1282 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1288 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1283
1289
1284 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1290 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1285 This brings a lot of nice functionality to the pdb mode, which now
1291 This brings a lot of nice functionality to the pdb mode, which now
1286 has tab-completion, syntax highlighting, and better stack handling
1292 has tab-completion, syntax highlighting, and better stack handling
1287 than before. Many thanks to Vivian De Smedt
1293 than before. Many thanks to Vivian De Smedt
1288 <vivian-AT-vdesmedt.com> for the original patches.
1294 <vivian-AT-vdesmedt.com> for the original patches.
1289
1295
1290 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1296 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1291
1297
1292 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1298 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1293 sequence to consistently accept the banner argument. The
1299 sequence to consistently accept the banner argument. The
1294 inconsistency was tripping SAGE, thanks to Gary Zablackis
1300 inconsistency was tripping SAGE, thanks to Gary Zablackis
1295 <gzabl-AT-yahoo.com> for the report.
1301 <gzabl-AT-yahoo.com> for the report.
1296
1302
1297 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1303 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1298
1304
1299 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1305 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1300 Fix bug where a naked 'alias' call in the ipythonrc file would
1306 Fix bug where a naked 'alias' call in the ipythonrc file would
1301 cause a crash. Bug reported by Jorgen Stenarson.
1307 cause a crash. Bug reported by Jorgen Stenarson.
1302
1308
1303 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1309 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1304
1310
1305 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1311 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1306 startup time.
1312 startup time.
1307
1313
1308 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1314 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1309 instances had introduced a bug with globals in normal code. Now
1315 instances had introduced a bug with globals in normal code. Now
1310 it's working in all cases.
1316 it's working in all cases.
1311
1317
1312 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1318 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1313 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1319 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1314 has been introduced to set the default case sensitivity of the
1320 has been introduced to set the default case sensitivity of the
1315 searches. Users can still select either mode at runtime on a
1321 searches. Users can still select either mode at runtime on a
1316 per-search basis.
1322 per-search basis.
1317
1323
1318 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1324 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1319
1325
1320 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1326 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1321 attributes in wildcard searches for subclasses. Modified version
1327 attributes in wildcard searches for subclasses. Modified version
1322 of a patch by Jorgen.
1328 of a patch by Jorgen.
1323
1329
1324 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1330 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1325
1331
1326 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1332 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1327 embedded instances. I added a user_global_ns attribute to the
1333 embedded instances. I added a user_global_ns attribute to the
1328 InteractiveShell class to handle this.
1334 InteractiveShell class to handle this.
1329
1335
1330 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1336 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1331
1337
1332 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1338 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1333 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1339 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1334 (reported under win32, but may happen also in other platforms).
1340 (reported under win32, but may happen also in other platforms).
1335 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1341 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1336
1342
1337 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1343 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1338
1344
1339 * IPython/Magic.py (magic_psearch): new support for wildcard
1345 * IPython/Magic.py (magic_psearch): new support for wildcard
1340 patterns. Now, typing ?a*b will list all names which begin with a
1346 patterns. Now, typing ?a*b will list all names which begin with a
1341 and end in b, for example. The %psearch magic has full
1347 and end in b, for example. The %psearch magic has full
1342 docstrings. Many thanks to JΓΆrgen Stenarson
1348 docstrings. Many thanks to JΓΆrgen Stenarson
1343 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1349 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1344 implementing this functionality.
1350 implementing this functionality.
1345
1351
1346 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1352 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1347
1353
1348 * Manual: fixed long-standing annoyance of double-dashes (as in
1354 * Manual: fixed long-standing annoyance of double-dashes (as in
1349 --prefix=~, for example) being stripped in the HTML version. This
1355 --prefix=~, for example) being stripped in the HTML version. This
1350 is a latex2html bug, but a workaround was provided. Many thanks
1356 is a latex2html bug, but a workaround was provided. Many thanks
1351 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1357 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1352 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1358 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1353 rolling. This seemingly small issue had tripped a number of users
1359 rolling. This seemingly small issue had tripped a number of users
1354 when first installing, so I'm glad to see it gone.
1360 when first installing, so I'm glad to see it gone.
1355
1361
1356 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1362 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1357
1363
1358 * IPython/Extensions/numeric_formats.py: fix missing import,
1364 * IPython/Extensions/numeric_formats.py: fix missing import,
1359 reported by Stephen Walton.
1365 reported by Stephen Walton.
1360
1366
1361 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1367 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1368
1363 * IPython/demo.py: finish demo module, fully documented now.
1369 * IPython/demo.py: finish demo module, fully documented now.
1364
1370
1365 * IPython/genutils.py (file_read): simple little utility to read a
1371 * IPython/genutils.py (file_read): simple little utility to read a
1366 file and ensure it's closed afterwards.
1372 file and ensure it's closed afterwards.
1367
1373
1368 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1374 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1369
1375
1370 * IPython/demo.py (Demo.__init__): added support for individually
1376 * IPython/demo.py (Demo.__init__): added support for individually
1371 tagging blocks for automatic execution.
1377 tagging blocks for automatic execution.
1372
1378
1373 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1379 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1374 syntax-highlighted python sources, requested by John.
1380 syntax-highlighted python sources, requested by John.
1375
1381
1376 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1382 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1383
1378 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1384 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1379 finishing.
1385 finishing.
1380
1386
1381 * IPython/genutils.py (shlex_split): moved from Magic to here,
1387 * IPython/genutils.py (shlex_split): moved from Magic to here,
1382 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1388 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1383
1389
1384 * IPython/demo.py (Demo.__init__): added support for silent
1390 * IPython/demo.py (Demo.__init__): added support for silent
1385 blocks, improved marks as regexps, docstrings written.
1391 blocks, improved marks as regexps, docstrings written.
1386 (Demo.__init__): better docstring, added support for sys.argv.
1392 (Demo.__init__): better docstring, added support for sys.argv.
1387
1393
1388 * IPython/genutils.py (marquee): little utility used by the demo
1394 * IPython/genutils.py (marquee): little utility used by the demo
1389 code, handy in general.
1395 code, handy in general.
1390
1396
1391 * IPython/demo.py (Demo.__init__): new class for interactive
1397 * IPython/demo.py (Demo.__init__): new class for interactive
1392 demos. Not documented yet, I just wrote it in a hurry for
1398 demos. Not documented yet, I just wrote it in a hurry for
1393 scipy'05. Will docstring later.
1399 scipy'05. Will docstring later.
1394
1400
1395 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1401 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1396
1402
1397 * IPython/Shell.py (sigint_handler): Drastic simplification which
1403 * IPython/Shell.py (sigint_handler): Drastic simplification which
1398 also seems to make Ctrl-C work correctly across threads! This is
1404 also seems to make Ctrl-C work correctly across threads! This is
1399 so simple, that I can't beleive I'd missed it before. Needs more
1405 so simple, that I can't beleive I'd missed it before. Needs more
1400 testing, though.
1406 testing, though.
1401 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1407 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1402 like this before...
1408 like this before...
1403
1409
1404 * IPython/genutils.py (get_home_dir): add protection against
1410 * IPython/genutils.py (get_home_dir): add protection against
1405 non-dirs in win32 registry.
1411 non-dirs in win32 registry.
1406
1412
1407 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1413 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1408 bug where dict was mutated while iterating (pysh crash).
1414 bug where dict was mutated while iterating (pysh crash).
1409
1415
1410 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1416 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1411
1417
1412 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1418 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1413 spurious newlines added by this routine. After a report by
1419 spurious newlines added by this routine. After a report by
1414 F. Mantegazza.
1420 F. Mantegazza.
1415
1421
1416 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1422 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1417
1423
1418 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1424 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1419 calls. These were a leftover from the GTK 1.x days, and can cause
1425 calls. These were a leftover from the GTK 1.x days, and can cause
1420 problems in certain cases (after a report by John Hunter).
1426 problems in certain cases (after a report by John Hunter).
1421
1427
1422 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1428 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1423 os.getcwd() fails at init time. Thanks to patch from David Remahl
1429 os.getcwd() fails at init time. Thanks to patch from David Remahl
1424 <chmod007-AT-mac.com>.
1430 <chmod007-AT-mac.com>.
1425 (InteractiveShell.__init__): prevent certain special magics from
1431 (InteractiveShell.__init__): prevent certain special magics from
1426 being shadowed by aliases. Closes
1432 being shadowed by aliases. Closes
1427 http://www.scipy.net/roundup/ipython/issue41.
1433 http://www.scipy.net/roundup/ipython/issue41.
1428
1434
1429 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1435 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1430
1436
1431 * IPython/iplib.py (InteractiveShell.complete): Added new
1437 * IPython/iplib.py (InteractiveShell.complete): Added new
1432 top-level completion method to expose the completion mechanism
1438 top-level completion method to expose the completion mechanism
1433 beyond readline-based environments.
1439 beyond readline-based environments.
1434
1440
1435 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1441 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1436
1442
1437 * tools/ipsvnc (svnversion): fix svnversion capture.
1443 * tools/ipsvnc (svnversion): fix svnversion capture.
1438
1444
1439 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1445 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1440 attribute to self, which was missing. Before, it was set by a
1446 attribute to self, which was missing. Before, it was set by a
1441 routine which in certain cases wasn't being called, so the
1447 routine which in certain cases wasn't being called, so the
1442 instance could end up missing the attribute. This caused a crash.
1448 instance could end up missing the attribute. This caused a crash.
1443 Closes http://www.scipy.net/roundup/ipython/issue40.
1449 Closes http://www.scipy.net/roundup/ipython/issue40.
1444
1450
1445 2005-08-16 Fernando Perez <fperez@colorado.edu>
1451 2005-08-16 Fernando Perez <fperez@colorado.edu>
1446
1452
1447 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1453 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1448 contains non-string attribute. Closes
1454 contains non-string attribute. Closes
1449 http://www.scipy.net/roundup/ipython/issue38.
1455 http://www.scipy.net/roundup/ipython/issue38.
1450
1456
1451 2005-08-14 Fernando Perez <fperez@colorado.edu>
1457 2005-08-14 Fernando Perez <fperez@colorado.edu>
1452
1458
1453 * tools/ipsvnc: Minor improvements, to add changeset info.
1459 * tools/ipsvnc: Minor improvements, to add changeset info.
1454
1460
1455 2005-08-12 Fernando Perez <fperez@colorado.edu>
1461 2005-08-12 Fernando Perez <fperez@colorado.edu>
1456
1462
1457 * IPython/iplib.py (runsource): remove self.code_to_run_src
1463 * IPython/iplib.py (runsource): remove self.code_to_run_src
1458 attribute. I realized this is nothing more than
1464 attribute. I realized this is nothing more than
1459 '\n'.join(self.buffer), and having the same data in two different
1465 '\n'.join(self.buffer), and having the same data in two different
1460 places is just asking for synchronization bugs. This may impact
1466 places is just asking for synchronization bugs. This may impact
1461 people who have custom exception handlers, so I need to warn
1467 people who have custom exception handlers, so I need to warn
1462 ipython-dev about it (F. Mantegazza may use them).
1468 ipython-dev about it (F. Mantegazza may use them).
1463
1469
1464 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1470 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1465
1471
1466 * IPython/genutils.py: fix 2.2 compatibility (generators)
1472 * IPython/genutils.py: fix 2.2 compatibility (generators)
1467
1473
1468 2005-07-18 Fernando Perez <fperez@colorado.edu>
1474 2005-07-18 Fernando Perez <fperez@colorado.edu>
1469
1475
1470 * IPython/genutils.py (get_home_dir): fix to help users with
1476 * IPython/genutils.py (get_home_dir): fix to help users with
1471 invalid $HOME under win32.
1477 invalid $HOME under win32.
1472
1478
1473 2005-07-17 Fernando Perez <fperez@colorado.edu>
1479 2005-07-17 Fernando Perez <fperez@colorado.edu>
1474
1480
1475 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1481 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1476 some old hacks and clean up a bit other routines; code should be
1482 some old hacks and clean up a bit other routines; code should be
1477 simpler and a bit faster.
1483 simpler and a bit faster.
1478
1484
1479 * IPython/iplib.py (interact): removed some last-resort attempts
1485 * IPython/iplib.py (interact): removed some last-resort attempts
1480 to survive broken stdout/stderr. That code was only making it
1486 to survive broken stdout/stderr. That code was only making it
1481 harder to abstract out the i/o (necessary for gui integration),
1487 harder to abstract out the i/o (necessary for gui integration),
1482 and the crashes it could prevent were extremely rare in practice
1488 and the crashes it could prevent were extremely rare in practice
1483 (besides being fully user-induced in a pretty violent manner).
1489 (besides being fully user-induced in a pretty violent manner).
1484
1490
1485 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1491 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1486 Nothing major yet, but the code is simpler to read; this should
1492 Nothing major yet, but the code is simpler to read; this should
1487 make it easier to do more serious modifications in the future.
1493 make it easier to do more serious modifications in the future.
1488
1494
1489 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1495 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1490 which broke in .15 (thanks to a report by Ville).
1496 which broke in .15 (thanks to a report by Ville).
1491
1497
1492 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1498 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1493 be quite correct, I know next to nothing about unicode). This
1499 be quite correct, I know next to nothing about unicode). This
1494 will allow unicode strings to be used in prompts, amongst other
1500 will allow unicode strings to be used in prompts, amongst other
1495 cases. It also will prevent ipython from crashing when unicode
1501 cases. It also will prevent ipython from crashing when unicode
1496 shows up unexpectedly in many places. If ascii encoding fails, we
1502 shows up unexpectedly in many places. If ascii encoding fails, we
1497 assume utf_8. Currently the encoding is not a user-visible
1503 assume utf_8. Currently the encoding is not a user-visible
1498 setting, though it could be made so if there is demand for it.
1504 setting, though it could be made so if there is demand for it.
1499
1505
1500 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1506 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1501
1507
1502 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1508 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1503
1509
1504 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1510 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1505
1511
1506 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1512 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1507 code can work transparently for 2.2/2.3.
1513 code can work transparently for 2.2/2.3.
1508
1514
1509 2005-07-16 Fernando Perez <fperez@colorado.edu>
1515 2005-07-16 Fernando Perez <fperez@colorado.edu>
1510
1516
1511 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1517 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1512 out of the color scheme table used for coloring exception
1518 out of the color scheme table used for coloring exception
1513 tracebacks. This allows user code to add new schemes at runtime.
1519 tracebacks. This allows user code to add new schemes at runtime.
1514 This is a minimally modified version of the patch at
1520 This is a minimally modified version of the patch at
1515 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1521 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1516 for the contribution.
1522 for the contribution.
1517
1523
1518 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1524 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1519 slightly modified version of the patch in
1525 slightly modified version of the patch in
1520 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1526 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1521 to remove the previous try/except solution (which was costlier).
1527 to remove the previous try/except solution (which was costlier).
1522 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1528 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1523
1529
1524 2005-06-08 Fernando Perez <fperez@colorado.edu>
1530 2005-06-08 Fernando Perez <fperez@colorado.edu>
1525
1531
1526 * IPython/iplib.py (write/write_err): Add methods to abstract all
1532 * IPython/iplib.py (write/write_err): Add methods to abstract all
1527 I/O a bit more.
1533 I/O a bit more.
1528
1534
1529 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1535 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1530 warning, reported by Aric Hagberg, fix by JD Hunter.
1536 warning, reported by Aric Hagberg, fix by JD Hunter.
1531
1537
1532 2005-06-02 *** Released version 0.6.15
1538 2005-06-02 *** Released version 0.6.15
1533
1539
1534 2005-06-01 Fernando Perez <fperez@colorado.edu>
1540 2005-06-01 Fernando Perez <fperez@colorado.edu>
1535
1541
1536 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1542 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1537 tab-completion of filenames within open-quoted strings. Note that
1543 tab-completion of filenames within open-quoted strings. Note that
1538 this requires that in ~/.ipython/ipythonrc, users change the
1544 this requires that in ~/.ipython/ipythonrc, users change the
1539 readline delimiters configuration to read:
1545 readline delimiters configuration to read:
1540
1546
1541 readline_remove_delims -/~
1547 readline_remove_delims -/~
1542
1548
1543
1549
1544 2005-05-31 *** Released version 0.6.14
1550 2005-05-31 *** Released version 0.6.14
1545
1551
1546 2005-05-29 Fernando Perez <fperez@colorado.edu>
1552 2005-05-29 Fernando Perez <fperez@colorado.edu>
1547
1553
1548 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1554 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1549 with files not on the filesystem. Reported by Eliyahu Sandler
1555 with files not on the filesystem. Reported by Eliyahu Sandler
1550 <eli@gondolin.net>
1556 <eli@gondolin.net>
1551
1557
1552 2005-05-22 Fernando Perez <fperez@colorado.edu>
1558 2005-05-22 Fernando Perez <fperez@colorado.edu>
1553
1559
1554 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1560 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1555 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1561 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1556
1562
1557 2005-05-19 Fernando Perez <fperez@colorado.edu>
1563 2005-05-19 Fernando Perez <fperez@colorado.edu>
1558
1564
1559 * IPython/iplib.py (safe_execfile): close a file which could be
1565 * IPython/iplib.py (safe_execfile): close a file which could be
1560 left open (causing problems in win32, which locks open files).
1566 left open (causing problems in win32, which locks open files).
1561 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1567 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1562
1568
1563 2005-05-18 Fernando Perez <fperez@colorado.edu>
1569 2005-05-18 Fernando Perez <fperez@colorado.edu>
1564
1570
1565 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1571 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1566 keyword arguments correctly to safe_execfile().
1572 keyword arguments correctly to safe_execfile().
1567
1573
1568 2005-05-13 Fernando Perez <fperez@colorado.edu>
1574 2005-05-13 Fernando Perez <fperez@colorado.edu>
1569
1575
1570 * ipython.1: Added info about Qt to manpage, and threads warning
1576 * ipython.1: Added info about Qt to manpage, and threads warning
1571 to usage page (invoked with --help).
1577 to usage page (invoked with --help).
1572
1578
1573 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1579 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1574 new matcher (it goes at the end of the priority list) to do
1580 new matcher (it goes at the end of the priority list) to do
1575 tab-completion on named function arguments. Submitted by George
1581 tab-completion on named function arguments. Submitted by George
1576 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1582 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1577 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1583 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1578 for more details.
1584 for more details.
1579
1585
1580 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1586 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1581 SystemExit exceptions in the script being run. Thanks to a report
1587 SystemExit exceptions in the script being run. Thanks to a report
1582 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1588 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1583 producing very annoying behavior when running unit tests.
1589 producing very annoying behavior when running unit tests.
1584
1590
1585 2005-05-12 Fernando Perez <fperez@colorado.edu>
1591 2005-05-12 Fernando Perez <fperez@colorado.edu>
1586
1592
1587 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1593 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1588 which I'd broken (again) due to a changed regexp. In the process,
1594 which I'd broken (again) due to a changed regexp. In the process,
1589 added ';' as an escape to auto-quote the whole line without
1595 added ';' as an escape to auto-quote the whole line without
1590 splitting its arguments. Thanks to a report by Jerry McRae
1596 splitting its arguments. Thanks to a report by Jerry McRae
1591 <qrs0xyc02-AT-sneakemail.com>.
1597 <qrs0xyc02-AT-sneakemail.com>.
1592
1598
1593 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1599 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1594 possible crashes caused by a TokenError. Reported by Ed Schofield
1600 possible crashes caused by a TokenError. Reported by Ed Schofield
1595 <schofield-AT-ftw.at>.
1601 <schofield-AT-ftw.at>.
1596
1602
1597 2005-05-06 Fernando Perez <fperez@colorado.edu>
1603 2005-05-06 Fernando Perez <fperez@colorado.edu>
1598
1604
1599 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1605 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1600
1606
1601 2005-04-29 Fernando Perez <fperez@colorado.edu>
1607 2005-04-29 Fernando Perez <fperez@colorado.edu>
1602
1608
1603 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1609 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1604 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1610 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1605 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1611 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1606 which provides support for Qt interactive usage (similar to the
1612 which provides support for Qt interactive usage (similar to the
1607 existing one for WX and GTK). This had been often requested.
1613 existing one for WX and GTK). This had been often requested.
1608
1614
1609 2005-04-14 *** Released version 0.6.13
1615 2005-04-14 *** Released version 0.6.13
1610
1616
1611 2005-04-08 Fernando Perez <fperez@colorado.edu>
1617 2005-04-08 Fernando Perez <fperez@colorado.edu>
1612
1618
1613 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1619 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1614 from _ofind, which gets called on almost every input line. Now,
1620 from _ofind, which gets called on almost every input line. Now,
1615 we only try to get docstrings if they are actually going to be
1621 we only try to get docstrings if they are actually going to be
1616 used (the overhead of fetching unnecessary docstrings can be
1622 used (the overhead of fetching unnecessary docstrings can be
1617 noticeable for certain objects, such as Pyro proxies).
1623 noticeable for certain objects, such as Pyro proxies).
1618
1624
1619 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1625 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1620 for completers. For some reason I had been passing them the state
1626 for completers. For some reason I had been passing them the state
1621 variable, which completers never actually need, and was in
1627 variable, which completers never actually need, and was in
1622 conflict with the rlcompleter API. Custom completers ONLY need to
1628 conflict with the rlcompleter API. Custom completers ONLY need to
1623 take the text parameter.
1629 take the text parameter.
1624
1630
1625 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1631 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1626 work correctly in pysh. I've also moved all the logic which used
1632 work correctly in pysh. I've also moved all the logic which used
1627 to be in pysh.py here, which will prevent problems with future
1633 to be in pysh.py here, which will prevent problems with future
1628 upgrades. However, this time I must warn users to update their
1634 upgrades. However, this time I must warn users to update their
1629 pysh profile to include the line
1635 pysh profile to include the line
1630
1636
1631 import_all IPython.Extensions.InterpreterExec
1637 import_all IPython.Extensions.InterpreterExec
1632
1638
1633 because otherwise things won't work for them. They MUST also
1639 because otherwise things won't work for them. They MUST also
1634 delete pysh.py and the line
1640 delete pysh.py and the line
1635
1641
1636 execfile pysh.py
1642 execfile pysh.py
1637
1643
1638 from their ipythonrc-pysh.
1644 from their ipythonrc-pysh.
1639
1645
1640 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1646 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1641 robust in the face of objects whose dir() returns non-strings
1647 robust in the face of objects whose dir() returns non-strings
1642 (which it shouldn't, but some broken libs like ITK do). Thanks to
1648 (which it shouldn't, but some broken libs like ITK do). Thanks to
1643 a patch by John Hunter (implemented differently, though). Also
1649 a patch by John Hunter (implemented differently, though). Also
1644 minor improvements by using .extend instead of + on lists.
1650 minor improvements by using .extend instead of + on lists.
1645
1651
1646 * pysh.py:
1652 * pysh.py:
1647
1653
1648 2005-04-06 Fernando Perez <fperez@colorado.edu>
1654 2005-04-06 Fernando Perez <fperez@colorado.edu>
1649
1655
1650 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1656 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1651 by default, so that all users benefit from it. Those who don't
1657 by default, so that all users benefit from it. Those who don't
1652 want it can still turn it off.
1658 want it can still turn it off.
1653
1659
1654 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1660 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1655 config file, I'd forgotten about this, so users were getting it
1661 config file, I'd forgotten about this, so users were getting it
1656 off by default.
1662 off by default.
1657
1663
1658 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1664 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1659 consistency. Now magics can be called in multiline statements,
1665 consistency. Now magics can be called in multiline statements,
1660 and python variables can be expanded in magic calls via $var.
1666 and python variables can be expanded in magic calls via $var.
1661 This makes the magic system behave just like aliases or !system
1667 This makes the magic system behave just like aliases or !system
1662 calls.
1668 calls.
1663
1669
1664 2005-03-28 Fernando Perez <fperez@colorado.edu>
1670 2005-03-28 Fernando Perez <fperez@colorado.edu>
1665
1671
1666 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1672 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1667 expensive string additions for building command. Add support for
1673 expensive string additions for building command. Add support for
1668 trailing ';' when autocall is used.
1674 trailing ';' when autocall is used.
1669
1675
1670 2005-03-26 Fernando Perez <fperez@colorado.edu>
1676 2005-03-26 Fernando Perez <fperez@colorado.edu>
1671
1677
1672 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1678 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1673 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1679 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1674 ipython.el robust against prompts with any number of spaces
1680 ipython.el robust against prompts with any number of spaces
1675 (including 0) after the ':' character.
1681 (including 0) after the ':' character.
1676
1682
1677 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1683 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1678 continuation prompt, which misled users to think the line was
1684 continuation prompt, which misled users to think the line was
1679 already indented. Closes debian Bug#300847, reported to me by
1685 already indented. Closes debian Bug#300847, reported to me by
1680 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1686 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1681
1687
1682 2005-03-23 Fernando Perez <fperez@colorado.edu>
1688 2005-03-23 Fernando Perez <fperez@colorado.edu>
1683
1689
1684 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1690 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1685 properly aligned if they have embedded newlines.
1691 properly aligned if they have embedded newlines.
1686
1692
1687 * IPython/iplib.py (runlines): Add a public method to expose
1693 * IPython/iplib.py (runlines): Add a public method to expose
1688 IPython's code execution machinery, so that users can run strings
1694 IPython's code execution machinery, so that users can run strings
1689 as if they had been typed at the prompt interactively.
1695 as if they had been typed at the prompt interactively.
1690 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1696 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1691 methods which can call the system shell, but with python variable
1697 methods which can call the system shell, but with python variable
1692 expansion. The three such methods are: __IPYTHON__.system,
1698 expansion. The three such methods are: __IPYTHON__.system,
1693 .getoutput and .getoutputerror. These need to be documented in a
1699 .getoutput and .getoutputerror. These need to be documented in a
1694 'public API' section (to be written) of the manual.
1700 'public API' section (to be written) of the manual.
1695
1701
1696 2005-03-20 Fernando Perez <fperez@colorado.edu>
1702 2005-03-20 Fernando Perez <fperez@colorado.edu>
1697
1703
1698 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1704 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1699 for custom exception handling. This is quite powerful, and it
1705 for custom exception handling. This is quite powerful, and it
1700 allows for user-installable exception handlers which can trap
1706 allows for user-installable exception handlers which can trap
1701 custom exceptions at runtime and treat them separately from
1707 custom exceptions at runtime and treat them separately from
1702 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1708 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1703 Mantegazza <mantegazza-AT-ill.fr>.
1709 Mantegazza <mantegazza-AT-ill.fr>.
1704 (InteractiveShell.set_custom_completer): public API function to
1710 (InteractiveShell.set_custom_completer): public API function to
1705 add new completers at runtime.
1711 add new completers at runtime.
1706
1712
1707 2005-03-19 Fernando Perez <fperez@colorado.edu>
1713 2005-03-19 Fernando Perez <fperez@colorado.edu>
1708
1714
1709 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1715 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1710 allow objects which provide their docstrings via non-standard
1716 allow objects which provide their docstrings via non-standard
1711 mechanisms (like Pyro proxies) to still be inspected by ipython's
1717 mechanisms (like Pyro proxies) to still be inspected by ipython's
1712 ? system.
1718 ? system.
1713
1719
1714 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1720 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1715 automatic capture system. I tried quite hard to make it work
1721 automatic capture system. I tried quite hard to make it work
1716 reliably, and simply failed. I tried many combinations with the
1722 reliably, and simply failed. I tried many combinations with the
1717 subprocess module, but eventually nothing worked in all needed
1723 subprocess module, but eventually nothing worked in all needed
1718 cases (not blocking stdin for the child, duplicating stdout
1724 cases (not blocking stdin for the child, duplicating stdout
1719 without blocking, etc). The new %sc/%sx still do capture to these
1725 without blocking, etc). The new %sc/%sx still do capture to these
1720 magical list/string objects which make shell use much more
1726 magical list/string objects which make shell use much more
1721 conveninent, so not all is lost.
1727 conveninent, so not all is lost.
1722
1728
1723 XXX - FIX MANUAL for the change above!
1729 XXX - FIX MANUAL for the change above!
1724
1730
1725 (runsource): I copied code.py's runsource() into ipython to modify
1731 (runsource): I copied code.py's runsource() into ipython to modify
1726 it a bit. Now the code object and source to be executed are
1732 it a bit. Now the code object and source to be executed are
1727 stored in ipython. This makes this info accessible to third-party
1733 stored in ipython. This makes this info accessible to third-party
1728 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1734 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1729 Mantegazza <mantegazza-AT-ill.fr>.
1735 Mantegazza <mantegazza-AT-ill.fr>.
1730
1736
1731 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1737 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1732 history-search via readline (like C-p/C-n). I'd wanted this for a
1738 history-search via readline (like C-p/C-n). I'd wanted this for a
1733 long time, but only recently found out how to do it. For users
1739 long time, but only recently found out how to do it. For users
1734 who already have their ipythonrc files made and want this, just
1740 who already have their ipythonrc files made and want this, just
1735 add:
1741 add:
1736
1742
1737 readline_parse_and_bind "\e[A": history-search-backward
1743 readline_parse_and_bind "\e[A": history-search-backward
1738 readline_parse_and_bind "\e[B": history-search-forward
1744 readline_parse_and_bind "\e[B": history-search-forward
1739
1745
1740 2005-03-18 Fernando Perez <fperez@colorado.edu>
1746 2005-03-18 Fernando Perez <fperez@colorado.edu>
1741
1747
1742 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1748 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1743 LSString and SList classes which allow transparent conversions
1749 LSString and SList classes which allow transparent conversions
1744 between list mode and whitespace-separated string.
1750 between list mode and whitespace-separated string.
1745 (magic_r): Fix recursion problem in %r.
1751 (magic_r): Fix recursion problem in %r.
1746
1752
1747 * IPython/genutils.py (LSString): New class to be used for
1753 * IPython/genutils.py (LSString): New class to be used for
1748 automatic storage of the results of all alias/system calls in _o
1754 automatic storage of the results of all alias/system calls in _o
1749 and _e (stdout/err). These provide a .l/.list attribute which
1755 and _e (stdout/err). These provide a .l/.list attribute which
1750 does automatic splitting on newlines. This means that for most
1756 does automatic splitting on newlines. This means that for most
1751 uses, you'll never need to do capturing of output with %sc/%sx
1757 uses, you'll never need to do capturing of output with %sc/%sx
1752 anymore, since ipython keeps this always done for you. Note that
1758 anymore, since ipython keeps this always done for you. Note that
1753 only the LAST results are stored, the _o/e variables are
1759 only the LAST results are stored, the _o/e variables are
1754 overwritten on each call. If you need to save their contents
1760 overwritten on each call. If you need to save their contents
1755 further, simply bind them to any other name.
1761 further, simply bind them to any other name.
1756
1762
1757 2005-03-17 Fernando Perez <fperez@colorado.edu>
1763 2005-03-17 Fernando Perez <fperez@colorado.edu>
1758
1764
1759 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1765 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1760 prompt namespace handling.
1766 prompt namespace handling.
1761
1767
1762 2005-03-16 Fernando Perez <fperez@colorado.edu>
1768 2005-03-16 Fernando Perez <fperez@colorado.edu>
1763
1769
1764 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1770 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1765 classic prompts to be '>>> ' (final space was missing, and it
1771 classic prompts to be '>>> ' (final space was missing, and it
1766 trips the emacs python mode).
1772 trips the emacs python mode).
1767 (BasePrompt.__str__): Added safe support for dynamic prompt
1773 (BasePrompt.__str__): Added safe support for dynamic prompt
1768 strings. Now you can set your prompt string to be '$x', and the
1774 strings. Now you can set your prompt string to be '$x', and the
1769 value of x will be printed from your interactive namespace. The
1775 value of x will be printed from your interactive namespace. The
1770 interpolation syntax includes the full Itpl support, so
1776 interpolation syntax includes the full Itpl support, so
1771 ${foo()+x+bar()} is a valid prompt string now, and the function
1777 ${foo()+x+bar()} is a valid prompt string now, and the function
1772 calls will be made at runtime.
1778 calls will be made at runtime.
1773
1779
1774 2005-03-15 Fernando Perez <fperez@colorado.edu>
1780 2005-03-15 Fernando Perez <fperez@colorado.edu>
1775
1781
1776 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1782 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1777 avoid name clashes in pylab. %hist still works, it just forwards
1783 avoid name clashes in pylab. %hist still works, it just forwards
1778 the call to %history.
1784 the call to %history.
1779
1785
1780 2005-03-02 *** Released version 0.6.12
1786 2005-03-02 *** Released version 0.6.12
1781
1787
1782 2005-03-02 Fernando Perez <fperez@colorado.edu>
1788 2005-03-02 Fernando Perez <fperez@colorado.edu>
1783
1789
1784 * IPython/iplib.py (handle_magic): log magic calls properly as
1790 * IPython/iplib.py (handle_magic): log magic calls properly as
1785 ipmagic() function calls.
1791 ipmagic() function calls.
1786
1792
1787 * IPython/Magic.py (magic_time): Improved %time to support
1793 * IPython/Magic.py (magic_time): Improved %time to support
1788 statements and provide wall-clock as well as CPU time.
1794 statements and provide wall-clock as well as CPU time.
1789
1795
1790 2005-02-27 Fernando Perez <fperez@colorado.edu>
1796 2005-02-27 Fernando Perez <fperez@colorado.edu>
1791
1797
1792 * IPython/hooks.py: New hooks module, to expose user-modifiable
1798 * IPython/hooks.py: New hooks module, to expose user-modifiable
1793 IPython functionality in a clean manner. For now only the editor
1799 IPython functionality in a clean manner. For now only the editor
1794 hook is actually written, and other thigns which I intend to turn
1800 hook is actually written, and other thigns which I intend to turn
1795 into proper hooks aren't yet there. The display and prefilter
1801 into proper hooks aren't yet there. The display and prefilter
1796 stuff, for example, should be hooks. But at least now the
1802 stuff, for example, should be hooks. But at least now the
1797 framework is in place, and the rest can be moved here with more
1803 framework is in place, and the rest can be moved here with more
1798 time later. IPython had had a .hooks variable for a long time for
1804 time later. IPython had had a .hooks variable for a long time for
1799 this purpose, but I'd never actually used it for anything.
1805 this purpose, but I'd never actually used it for anything.
1800
1806
1801 2005-02-26 Fernando Perez <fperez@colorado.edu>
1807 2005-02-26 Fernando Perez <fperez@colorado.edu>
1802
1808
1803 * IPython/ipmaker.py (make_IPython): make the default ipython
1809 * IPython/ipmaker.py (make_IPython): make the default ipython
1804 directory be called _ipython under win32, to follow more the
1810 directory be called _ipython under win32, to follow more the
1805 naming peculiarities of that platform (where buggy software like
1811 naming peculiarities of that platform (where buggy software like
1806 Visual Sourcesafe breaks with .named directories). Reported by
1812 Visual Sourcesafe breaks with .named directories). Reported by
1807 Ville Vainio.
1813 Ville Vainio.
1808
1814
1809 2005-02-23 Fernando Perez <fperez@colorado.edu>
1815 2005-02-23 Fernando Perez <fperez@colorado.edu>
1810
1816
1811 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1817 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1812 auto_aliases for win32 which were causing problems. Users can
1818 auto_aliases for win32 which were causing problems. Users can
1813 define the ones they personally like.
1819 define the ones they personally like.
1814
1820
1815 2005-02-21 Fernando Perez <fperez@colorado.edu>
1821 2005-02-21 Fernando Perez <fperez@colorado.edu>
1816
1822
1817 * IPython/Magic.py (magic_time): new magic to time execution of
1823 * IPython/Magic.py (magic_time): new magic to time execution of
1818 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1824 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1819
1825
1820 2005-02-19 Fernando Perez <fperez@colorado.edu>
1826 2005-02-19 Fernando Perez <fperez@colorado.edu>
1821
1827
1822 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1828 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1823 into keys (for prompts, for example).
1829 into keys (for prompts, for example).
1824
1830
1825 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1831 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1826 prompts in case users want them. This introduces a small behavior
1832 prompts in case users want them. This introduces a small behavior
1827 change: ipython does not automatically add a space to all prompts
1833 change: ipython does not automatically add a space to all prompts
1828 anymore. To get the old prompts with a space, users should add it
1834 anymore. To get the old prompts with a space, users should add it
1829 manually to their ipythonrc file, so for example prompt_in1 should
1835 manually to their ipythonrc file, so for example prompt_in1 should
1830 now read 'In [\#]: ' instead of 'In [\#]:'.
1836 now read 'In [\#]: ' instead of 'In [\#]:'.
1831 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1837 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1832 file) to control left-padding of secondary prompts.
1838 file) to control left-padding of secondary prompts.
1833
1839
1834 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1840 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1835 the profiler can't be imported. Fix for Debian, which removed
1841 the profiler can't be imported. Fix for Debian, which removed
1836 profile.py because of License issues. I applied a slightly
1842 profile.py because of License issues. I applied a slightly
1837 modified version of the original Debian patch at
1843 modified version of the original Debian patch at
1838 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1844 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1839
1845
1840 2005-02-17 Fernando Perez <fperez@colorado.edu>
1846 2005-02-17 Fernando Perez <fperez@colorado.edu>
1841
1847
1842 * IPython/genutils.py (native_line_ends): Fix bug which would
1848 * IPython/genutils.py (native_line_ends): Fix bug which would
1843 cause improper line-ends under win32 b/c I was not opening files
1849 cause improper line-ends under win32 b/c I was not opening files
1844 in binary mode. Bug report and fix thanks to Ville.
1850 in binary mode. Bug report and fix thanks to Ville.
1845
1851
1846 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1852 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1847 trying to catch spurious foo[1] autocalls. My fix actually broke
1853 trying to catch spurious foo[1] autocalls. My fix actually broke
1848 ',/' autoquote/call with explicit escape (bad regexp).
1854 ',/' autoquote/call with explicit escape (bad regexp).
1849
1855
1850 2005-02-15 *** Released version 0.6.11
1856 2005-02-15 *** Released version 0.6.11
1851
1857
1852 2005-02-14 Fernando Perez <fperez@colorado.edu>
1858 2005-02-14 Fernando Perez <fperez@colorado.edu>
1853
1859
1854 * IPython/background_jobs.py: New background job management
1860 * IPython/background_jobs.py: New background job management
1855 subsystem. This is implemented via a new set of classes, and
1861 subsystem. This is implemented via a new set of classes, and
1856 IPython now provides a builtin 'jobs' object for background job
1862 IPython now provides a builtin 'jobs' object for background job
1857 execution. A convenience %bg magic serves as a lightweight
1863 execution. A convenience %bg magic serves as a lightweight
1858 frontend for starting the more common type of calls. This was
1864 frontend for starting the more common type of calls. This was
1859 inspired by discussions with B. Granger and the BackgroundCommand
1865 inspired by discussions with B. Granger and the BackgroundCommand
1860 class described in the book Python Scripting for Computational
1866 class described in the book Python Scripting for Computational
1861 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1867 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1862 (although ultimately no code from this text was used, as IPython's
1868 (although ultimately no code from this text was used, as IPython's
1863 system is a separate implementation).
1869 system is a separate implementation).
1864
1870
1865 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1871 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1866 to control the completion of single/double underscore names
1872 to control the completion of single/double underscore names
1867 separately. As documented in the example ipytonrc file, the
1873 separately. As documented in the example ipytonrc file, the
1868 readline_omit__names variable can now be set to 2, to omit even
1874 readline_omit__names variable can now be set to 2, to omit even
1869 single underscore names. Thanks to a patch by Brian Wong
1875 single underscore names. Thanks to a patch by Brian Wong
1870 <BrianWong-AT-AirgoNetworks.Com>.
1876 <BrianWong-AT-AirgoNetworks.Com>.
1871 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1877 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1872 be autocalled as foo([1]) if foo were callable. A problem for
1878 be autocalled as foo([1]) if foo were callable. A problem for
1873 things which are both callable and implement __getitem__.
1879 things which are both callable and implement __getitem__.
1874 (init_readline): Fix autoindentation for win32. Thanks to a patch
1880 (init_readline): Fix autoindentation for win32. Thanks to a patch
1875 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1881 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1876
1882
1877 2005-02-12 Fernando Perez <fperez@colorado.edu>
1883 2005-02-12 Fernando Perez <fperez@colorado.edu>
1878
1884
1879 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1885 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1880 which I had written long ago to sort out user error messages which
1886 which I had written long ago to sort out user error messages which
1881 may occur during startup. This seemed like a good idea initially,
1887 may occur during startup. This seemed like a good idea initially,
1882 but it has proven a disaster in retrospect. I don't want to
1888 but it has proven a disaster in retrospect. I don't want to
1883 change much code for now, so my fix is to set the internal 'debug'
1889 change much code for now, so my fix is to set the internal 'debug'
1884 flag to true everywhere, whose only job was precisely to control
1890 flag to true everywhere, whose only job was precisely to control
1885 this subsystem. This closes issue 28 (as well as avoiding all
1891 this subsystem. This closes issue 28 (as well as avoiding all
1886 sorts of strange hangups which occur from time to time).
1892 sorts of strange hangups which occur from time to time).
1887
1893
1888 2005-02-07 Fernando Perez <fperez@colorado.edu>
1894 2005-02-07 Fernando Perez <fperez@colorado.edu>
1889
1895
1890 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1896 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1891 previous call produced a syntax error.
1897 previous call produced a syntax error.
1892
1898
1893 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1899 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1894 classes without constructor.
1900 classes without constructor.
1895
1901
1896 2005-02-06 Fernando Perez <fperez@colorado.edu>
1902 2005-02-06 Fernando Perez <fperez@colorado.edu>
1897
1903
1898 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1904 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1899 completions with the results of each matcher, so we return results
1905 completions with the results of each matcher, so we return results
1900 to the user from all namespaces. This breaks with ipython
1906 to the user from all namespaces. This breaks with ipython
1901 tradition, but I think it's a nicer behavior. Now you get all
1907 tradition, but I think it's a nicer behavior. Now you get all
1902 possible completions listed, from all possible namespaces (python,
1908 possible completions listed, from all possible namespaces (python,
1903 filesystem, magics...) After a request by John Hunter
1909 filesystem, magics...) After a request by John Hunter
1904 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1910 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1905
1911
1906 2005-02-05 Fernando Perez <fperez@colorado.edu>
1912 2005-02-05 Fernando Perez <fperez@colorado.edu>
1907
1913
1908 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1914 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1909 the call had quote characters in it (the quotes were stripped).
1915 the call had quote characters in it (the quotes were stripped).
1910
1916
1911 2005-01-31 Fernando Perez <fperez@colorado.edu>
1917 2005-01-31 Fernando Perez <fperez@colorado.edu>
1912
1918
1913 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1919 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1914 Itpl.itpl() to make the code more robust against psyco
1920 Itpl.itpl() to make the code more robust against psyco
1915 optimizations.
1921 optimizations.
1916
1922
1917 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1923 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1918 of causing an exception. Quicker, cleaner.
1924 of causing an exception. Quicker, cleaner.
1919
1925
1920 2005-01-28 Fernando Perez <fperez@colorado.edu>
1926 2005-01-28 Fernando Perez <fperez@colorado.edu>
1921
1927
1922 * scripts/ipython_win_post_install.py (install): hardcode
1928 * scripts/ipython_win_post_install.py (install): hardcode
1923 sys.prefix+'python.exe' as the executable path. It turns out that
1929 sys.prefix+'python.exe' as the executable path. It turns out that
1924 during the post-installation run, sys.executable resolves to the
1930 during the post-installation run, sys.executable resolves to the
1925 name of the binary installer! I should report this as a distutils
1931 name of the binary installer! I should report this as a distutils
1926 bug, I think. I updated the .10 release with this tiny fix, to
1932 bug, I think. I updated the .10 release with this tiny fix, to
1927 avoid annoying the lists further.
1933 avoid annoying the lists further.
1928
1934
1929 2005-01-27 *** Released version 0.6.10
1935 2005-01-27 *** Released version 0.6.10
1930
1936
1931 2005-01-27 Fernando Perez <fperez@colorado.edu>
1937 2005-01-27 Fernando Perez <fperez@colorado.edu>
1932
1938
1933 * IPython/numutils.py (norm): Added 'inf' as optional name for
1939 * IPython/numutils.py (norm): Added 'inf' as optional name for
1934 L-infinity norm, included references to mathworld.com for vector
1940 L-infinity norm, included references to mathworld.com for vector
1935 norm definitions.
1941 norm definitions.
1936 (amin/amax): added amin/amax for array min/max. Similar to what
1942 (amin/amax): added amin/amax for array min/max. Similar to what
1937 pylab ships with after the recent reorganization of names.
1943 pylab ships with after the recent reorganization of names.
1938 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1944 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1939
1945
1940 * ipython.el: committed Alex's recent fixes and improvements.
1946 * ipython.el: committed Alex's recent fixes and improvements.
1941 Tested with python-mode from CVS, and it looks excellent. Since
1947 Tested with python-mode from CVS, and it looks excellent. Since
1942 python-mode hasn't released anything in a while, I'm temporarily
1948 python-mode hasn't released anything in a while, I'm temporarily
1943 putting a copy of today's CVS (v 4.70) of python-mode in:
1949 putting a copy of today's CVS (v 4.70) of python-mode in:
1944 http://ipython.scipy.org/tmp/python-mode.el
1950 http://ipython.scipy.org/tmp/python-mode.el
1945
1951
1946 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1952 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1947 sys.executable for the executable name, instead of assuming it's
1953 sys.executable for the executable name, instead of assuming it's
1948 called 'python.exe' (the post-installer would have produced broken
1954 called 'python.exe' (the post-installer would have produced broken
1949 setups on systems with a differently named python binary).
1955 setups on systems with a differently named python binary).
1950
1956
1951 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1957 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1952 references to os.linesep, to make the code more
1958 references to os.linesep, to make the code more
1953 platform-independent. This is also part of the win32 coloring
1959 platform-independent. This is also part of the win32 coloring
1954 fixes.
1960 fixes.
1955
1961
1956 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1962 * IPython/genutils.py (page_dumb): Remove attempts to chop long
1957 lines, which actually cause coloring bugs because the length of
1963 lines, which actually cause coloring bugs because the length of
1958 the line is very difficult to correctly compute with embedded
1964 the line is very difficult to correctly compute with embedded
1959 escapes. This was the source of all the coloring problems under
1965 escapes. This was the source of all the coloring problems under
1960 Win32. I think that _finally_, Win32 users have a properly
1966 Win32. I think that _finally_, Win32 users have a properly
1961 working ipython in all respects. This would never have happened
1967 working ipython in all respects. This would never have happened
1962 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1968 if not for Gary Bishop and Viktor Ransmayr's great help and work.
1963
1969
1964 2005-01-26 *** Released version 0.6.9
1970 2005-01-26 *** Released version 0.6.9
1965
1971
1966 2005-01-25 Fernando Perez <fperez@colorado.edu>
1972 2005-01-25 Fernando Perez <fperez@colorado.edu>
1967
1973
1968 * setup.py: finally, we have a true Windows installer, thanks to
1974 * setup.py: finally, we have a true Windows installer, thanks to
1969 the excellent work of Viktor Ransmayr
1975 the excellent work of Viktor Ransmayr
1970 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1976 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
1971 Windows users. The setup routine is quite a bit cleaner thanks to
1977 Windows users. The setup routine is quite a bit cleaner thanks to
1972 this, and the post-install script uses the proper functions to
1978 this, and the post-install script uses the proper functions to
1973 allow a clean de-installation using the standard Windows Control
1979 allow a clean de-installation using the standard Windows Control
1974 Panel.
1980 Panel.
1975
1981
1976 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1982 * IPython/genutils.py (get_home_dir): changed to use the $HOME
1977 environment variable under all OSes (including win32) if
1983 environment variable under all OSes (including win32) if
1978 available. This will give consistency to win32 users who have set
1984 available. This will give consistency to win32 users who have set
1979 this variable for any reason. If os.environ['HOME'] fails, the
1985 this variable for any reason. If os.environ['HOME'] fails, the
1980 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1986 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
1981
1987
1982 2005-01-24 Fernando Perez <fperez@colorado.edu>
1988 2005-01-24 Fernando Perez <fperez@colorado.edu>
1983
1989
1984 * IPython/numutils.py (empty_like): add empty_like(), similar to
1990 * IPython/numutils.py (empty_like): add empty_like(), similar to
1985 zeros_like() but taking advantage of the new empty() Numeric routine.
1991 zeros_like() but taking advantage of the new empty() Numeric routine.
1986
1992
1987 2005-01-23 *** Released version 0.6.8
1993 2005-01-23 *** Released version 0.6.8
1988
1994
1989 2005-01-22 Fernando Perez <fperez@colorado.edu>
1995 2005-01-22 Fernando Perez <fperez@colorado.edu>
1990
1996
1991 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1997 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
1992 automatic show() calls. After discussing things with JDH, it
1998 automatic show() calls. After discussing things with JDH, it
1993 turns out there are too many corner cases where this can go wrong.
1999 turns out there are too many corner cases where this can go wrong.
1994 It's best not to try to be 'too smart', and simply have ipython
2000 It's best not to try to be 'too smart', and simply have ipython
1995 reproduce as much as possible the default behavior of a normal
2001 reproduce as much as possible the default behavior of a normal
1996 python shell.
2002 python shell.
1997
2003
1998 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2004 * IPython/iplib.py (InteractiveShell.__init__): Modified the
1999 line-splitting regexp and _prefilter() to avoid calling getattr()
2005 line-splitting regexp and _prefilter() to avoid calling getattr()
2000 on assignments. This closes
2006 on assignments. This closes
2001 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2007 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2002 readline uses getattr(), so a simple <TAB> keypress is still
2008 readline uses getattr(), so a simple <TAB> keypress is still
2003 enough to trigger getattr() calls on an object.
2009 enough to trigger getattr() calls on an object.
2004
2010
2005 2005-01-21 Fernando Perez <fperez@colorado.edu>
2011 2005-01-21 Fernando Perez <fperez@colorado.edu>
2006
2012
2007 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2013 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2008 docstring under pylab so it doesn't mask the original.
2014 docstring under pylab so it doesn't mask the original.
2009
2015
2010 2005-01-21 *** Released version 0.6.7
2016 2005-01-21 *** Released version 0.6.7
2011
2017
2012 2005-01-21 Fernando Perez <fperez@colorado.edu>
2018 2005-01-21 Fernando Perez <fperez@colorado.edu>
2013
2019
2014 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2020 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2015 signal handling for win32 users in multithreaded mode.
2021 signal handling for win32 users in multithreaded mode.
2016
2022
2017 2005-01-17 Fernando Perez <fperez@colorado.edu>
2023 2005-01-17 Fernando Perez <fperez@colorado.edu>
2018
2024
2019 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2025 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2020 instances with no __init__. After a crash report by Norbert Nemec
2026 instances with no __init__. After a crash report by Norbert Nemec
2021 <Norbert-AT-nemec-online.de>.
2027 <Norbert-AT-nemec-online.de>.
2022
2028
2023 2005-01-14 Fernando Perez <fperez@colorado.edu>
2029 2005-01-14 Fernando Perez <fperez@colorado.edu>
2024
2030
2025 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2031 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2026 names for verbose exceptions, when multiple dotted names and the
2032 names for verbose exceptions, when multiple dotted names and the
2027 'parent' object were present on the same line.
2033 'parent' object were present on the same line.
2028
2034
2029 2005-01-11 Fernando Perez <fperez@colorado.edu>
2035 2005-01-11 Fernando Perez <fperez@colorado.edu>
2030
2036
2031 * IPython/genutils.py (flag_calls): new utility to trap and flag
2037 * IPython/genutils.py (flag_calls): new utility to trap and flag
2032 calls in functions. I need it to clean up matplotlib support.
2038 calls in functions. I need it to clean up matplotlib support.
2033 Also removed some deprecated code in genutils.
2039 Also removed some deprecated code in genutils.
2034
2040
2035 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2041 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2036 that matplotlib scripts called with %run, which don't call show()
2042 that matplotlib scripts called with %run, which don't call show()
2037 themselves, still have their plotting windows open.
2043 themselves, still have their plotting windows open.
2038
2044
2039 2005-01-05 Fernando Perez <fperez@colorado.edu>
2045 2005-01-05 Fernando Perez <fperez@colorado.edu>
2040
2046
2041 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2047 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2042 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2048 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2043
2049
2044 2004-12-19 Fernando Perez <fperez@colorado.edu>
2050 2004-12-19 Fernando Perez <fperez@colorado.edu>
2045
2051
2046 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2052 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2047 parent_runcode, which was an eyesore. The same result can be
2053 parent_runcode, which was an eyesore. The same result can be
2048 obtained with Python's regular superclass mechanisms.
2054 obtained with Python's regular superclass mechanisms.
2049
2055
2050 2004-12-17 Fernando Perez <fperez@colorado.edu>
2056 2004-12-17 Fernando Perez <fperez@colorado.edu>
2051
2057
2052 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2058 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2053 reported by Prabhu.
2059 reported by Prabhu.
2054 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2060 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2055 sys.stderr) instead of explicitly calling sys.stderr. This helps
2061 sys.stderr) instead of explicitly calling sys.stderr. This helps
2056 maintain our I/O abstractions clean, for future GUI embeddings.
2062 maintain our I/O abstractions clean, for future GUI embeddings.
2057
2063
2058 * IPython/genutils.py (info): added new utility for sys.stderr
2064 * IPython/genutils.py (info): added new utility for sys.stderr
2059 unified info message handling (thin wrapper around warn()).
2065 unified info message handling (thin wrapper around warn()).
2060
2066
2061 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2067 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2062 composite (dotted) names on verbose exceptions.
2068 composite (dotted) names on verbose exceptions.
2063 (VerboseTB.nullrepr): harden against another kind of errors which
2069 (VerboseTB.nullrepr): harden against another kind of errors which
2064 Python's inspect module can trigger, and which were crashing
2070 Python's inspect module can trigger, and which were crashing
2065 IPython. Thanks to a report by Marco Lombardi
2071 IPython. Thanks to a report by Marco Lombardi
2066 <mlombard-AT-ma010192.hq.eso.org>.
2072 <mlombard-AT-ma010192.hq.eso.org>.
2067
2073
2068 2004-12-13 *** Released version 0.6.6
2074 2004-12-13 *** Released version 0.6.6
2069
2075
2070 2004-12-12 Fernando Perez <fperez@colorado.edu>
2076 2004-12-12 Fernando Perez <fperez@colorado.edu>
2071
2077
2072 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2078 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2073 generated by pygtk upon initialization if it was built without
2079 generated by pygtk upon initialization if it was built without
2074 threads (for matplotlib users). After a crash reported by
2080 threads (for matplotlib users). After a crash reported by
2075 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2081 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2076
2082
2077 * IPython/ipmaker.py (make_IPython): fix small bug in the
2083 * IPython/ipmaker.py (make_IPython): fix small bug in the
2078 import_some parameter for multiple imports.
2084 import_some parameter for multiple imports.
2079
2085
2080 * IPython/iplib.py (ipmagic): simplified the interface of
2086 * IPython/iplib.py (ipmagic): simplified the interface of
2081 ipmagic() to take a single string argument, just as it would be
2087 ipmagic() to take a single string argument, just as it would be
2082 typed at the IPython cmd line.
2088 typed at the IPython cmd line.
2083 (ipalias): Added new ipalias() with an interface identical to
2089 (ipalias): Added new ipalias() with an interface identical to
2084 ipmagic(). This completes exposing a pure python interface to the
2090 ipmagic(). This completes exposing a pure python interface to the
2085 alias and magic system, which can be used in loops or more complex
2091 alias and magic system, which can be used in loops or more complex
2086 code where IPython's automatic line mangling is not active.
2092 code where IPython's automatic line mangling is not active.
2087
2093
2088 * IPython/genutils.py (timing): changed interface of timing to
2094 * IPython/genutils.py (timing): changed interface of timing to
2089 simply run code once, which is the most common case. timings()
2095 simply run code once, which is the most common case. timings()
2090 remains unchanged, for the cases where you want multiple runs.
2096 remains unchanged, for the cases where you want multiple runs.
2091
2097
2092 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2098 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2093 bug where Python2.2 crashes with exec'ing code which does not end
2099 bug where Python2.2 crashes with exec'ing code which does not end
2094 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2100 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2095 before.
2101 before.
2096
2102
2097 2004-12-10 Fernando Perez <fperez@colorado.edu>
2103 2004-12-10 Fernando Perez <fperez@colorado.edu>
2098
2104
2099 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2105 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2100 -t to -T, to accomodate the new -t flag in %run (the %run and
2106 -t to -T, to accomodate the new -t flag in %run (the %run and
2101 %prun options are kind of intermixed, and it's not easy to change
2107 %prun options are kind of intermixed, and it's not easy to change
2102 this with the limitations of python's getopt).
2108 this with the limitations of python's getopt).
2103
2109
2104 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2110 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2105 the execution of scripts. It's not as fine-tuned as timeit.py,
2111 the execution of scripts. It's not as fine-tuned as timeit.py,
2106 but it works from inside ipython (and under 2.2, which lacks
2112 but it works from inside ipython (and under 2.2, which lacks
2107 timeit.py). Optionally a number of runs > 1 can be given for
2113 timeit.py). Optionally a number of runs > 1 can be given for
2108 timing very short-running code.
2114 timing very short-running code.
2109
2115
2110 * IPython/genutils.py (uniq_stable): new routine which returns a
2116 * IPython/genutils.py (uniq_stable): new routine which returns a
2111 list of unique elements in any iterable, but in stable order of
2117 list of unique elements in any iterable, but in stable order of
2112 appearance. I needed this for the ultraTB fixes, and it's a handy
2118 appearance. I needed this for the ultraTB fixes, and it's a handy
2113 utility.
2119 utility.
2114
2120
2115 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2121 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2116 dotted names in Verbose exceptions. This had been broken since
2122 dotted names in Verbose exceptions. This had been broken since
2117 the very start, now x.y will properly be printed in a Verbose
2123 the very start, now x.y will properly be printed in a Verbose
2118 traceback, instead of x being shown and y appearing always as an
2124 traceback, instead of x being shown and y appearing always as an
2119 'undefined global'. Getting this to work was a bit tricky,
2125 'undefined global'. Getting this to work was a bit tricky,
2120 because by default python tokenizers are stateless. Saved by
2126 because by default python tokenizers are stateless. Saved by
2121 python's ability to easily add a bit of state to an arbitrary
2127 python's ability to easily add a bit of state to an arbitrary
2122 function (without needing to build a full-blown callable object).
2128 function (without needing to build a full-blown callable object).
2123
2129
2124 Also big cleanup of this code, which had horrendous runtime
2130 Also big cleanup of this code, which had horrendous runtime
2125 lookups of zillions of attributes for colorization. Moved all
2131 lookups of zillions of attributes for colorization. Moved all
2126 this code into a few templates, which make it cleaner and quicker.
2132 this code into a few templates, which make it cleaner and quicker.
2127
2133
2128 Printout quality was also improved for Verbose exceptions: one
2134 Printout quality was also improved for Verbose exceptions: one
2129 variable per line, and memory addresses are printed (this can be
2135 variable per line, and memory addresses are printed (this can be
2130 quite handy in nasty debugging situations, which is what Verbose
2136 quite handy in nasty debugging situations, which is what Verbose
2131 is for).
2137 is for).
2132
2138
2133 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2139 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2134 the command line as scripts to be loaded by embedded instances.
2140 the command line as scripts to be loaded by embedded instances.
2135 Doing so has the potential for an infinite recursion if there are
2141 Doing so has the potential for an infinite recursion if there are
2136 exceptions thrown in the process. This fixes a strange crash
2142 exceptions thrown in the process. This fixes a strange crash
2137 reported by Philippe MULLER <muller-AT-irit.fr>.
2143 reported by Philippe MULLER <muller-AT-irit.fr>.
2138
2144
2139 2004-12-09 Fernando Perez <fperez@colorado.edu>
2145 2004-12-09 Fernando Perez <fperez@colorado.edu>
2140
2146
2141 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2147 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2142 to reflect new names in matplotlib, which now expose the
2148 to reflect new names in matplotlib, which now expose the
2143 matlab-compatible interface via a pylab module instead of the
2149 matlab-compatible interface via a pylab module instead of the
2144 'matlab' name. The new code is backwards compatible, so users of
2150 'matlab' name. The new code is backwards compatible, so users of
2145 all matplotlib versions are OK. Patch by J. Hunter.
2151 all matplotlib versions are OK. Patch by J. Hunter.
2146
2152
2147 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2153 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2148 of __init__ docstrings for instances (class docstrings are already
2154 of __init__ docstrings for instances (class docstrings are already
2149 automatically printed). Instances with customized docstrings
2155 automatically printed). Instances with customized docstrings
2150 (indep. of the class) are also recognized and all 3 separate
2156 (indep. of the class) are also recognized and all 3 separate
2151 docstrings are printed (instance, class, constructor). After some
2157 docstrings are printed (instance, class, constructor). After some
2152 comments/suggestions by J. Hunter.
2158 comments/suggestions by J. Hunter.
2153
2159
2154 2004-12-05 Fernando Perez <fperez@colorado.edu>
2160 2004-12-05 Fernando Perez <fperez@colorado.edu>
2155
2161
2156 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2162 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2157 warnings when tab-completion fails and triggers an exception.
2163 warnings when tab-completion fails and triggers an exception.
2158
2164
2159 2004-12-03 Fernando Perez <fperez@colorado.edu>
2165 2004-12-03 Fernando Perez <fperez@colorado.edu>
2160
2166
2161 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2167 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2162 be triggered when using 'run -p'. An incorrect option flag was
2168 be triggered when using 'run -p'. An incorrect option flag was
2163 being set ('d' instead of 'D').
2169 being set ('d' instead of 'D').
2164 (manpage): fix missing escaped \- sign.
2170 (manpage): fix missing escaped \- sign.
2165
2171
2166 2004-11-30 *** Released version 0.6.5
2172 2004-11-30 *** Released version 0.6.5
2167
2173
2168 2004-11-30 Fernando Perez <fperez@colorado.edu>
2174 2004-11-30 Fernando Perez <fperez@colorado.edu>
2169
2175
2170 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2176 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2171 setting with -d option.
2177 setting with -d option.
2172
2178
2173 * setup.py (docfiles): Fix problem where the doc glob I was using
2179 * setup.py (docfiles): Fix problem where the doc glob I was using
2174 was COMPLETELY BROKEN. It was giving the right files by pure
2180 was COMPLETELY BROKEN. It was giving the right files by pure
2175 accident, but failed once I tried to include ipython.el. Note:
2181 accident, but failed once I tried to include ipython.el. Note:
2176 glob() does NOT allow you to do exclusion on multiple endings!
2182 glob() does NOT allow you to do exclusion on multiple endings!
2177
2183
2178 2004-11-29 Fernando Perez <fperez@colorado.edu>
2184 2004-11-29 Fernando Perez <fperez@colorado.edu>
2179
2185
2180 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2186 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2181 the manpage as the source. Better formatting & consistency.
2187 the manpage as the source. Better formatting & consistency.
2182
2188
2183 * IPython/Magic.py (magic_run): Added new -d option, to run
2189 * IPython/Magic.py (magic_run): Added new -d option, to run
2184 scripts under the control of the python pdb debugger. Note that
2190 scripts under the control of the python pdb debugger. Note that
2185 this required changing the %prun option -d to -D, to avoid a clash
2191 this required changing the %prun option -d to -D, to avoid a clash
2186 (since %run must pass options to %prun, and getopt is too dumb to
2192 (since %run must pass options to %prun, and getopt is too dumb to
2187 handle options with string values with embedded spaces). Thanks
2193 handle options with string values with embedded spaces). Thanks
2188 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2194 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2189 (magic_who_ls): added type matching to %who and %whos, so that one
2195 (magic_who_ls): added type matching to %who and %whos, so that one
2190 can filter their output to only include variables of certain
2196 can filter their output to only include variables of certain
2191 types. Another suggestion by Matthew.
2197 types. Another suggestion by Matthew.
2192 (magic_whos): Added memory summaries in kb and Mb for arrays.
2198 (magic_whos): Added memory summaries in kb and Mb for arrays.
2193 (magic_who): Improve formatting (break lines every 9 vars).
2199 (magic_who): Improve formatting (break lines every 9 vars).
2194
2200
2195 2004-11-28 Fernando Perez <fperez@colorado.edu>
2201 2004-11-28 Fernando Perez <fperez@colorado.edu>
2196
2202
2197 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2203 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2198 cache when empty lines were present.
2204 cache when empty lines were present.
2199
2205
2200 2004-11-24 Fernando Perez <fperez@colorado.edu>
2206 2004-11-24 Fernando Perez <fperez@colorado.edu>
2201
2207
2202 * IPython/usage.py (__doc__): document the re-activated threading
2208 * IPython/usage.py (__doc__): document the re-activated threading
2203 options for WX and GTK.
2209 options for WX and GTK.
2204
2210
2205 2004-11-23 Fernando Perez <fperez@colorado.edu>
2211 2004-11-23 Fernando Perez <fperez@colorado.edu>
2206
2212
2207 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2213 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2208 the -wthread and -gthread options, along with a new -tk one to try
2214 the -wthread and -gthread options, along with a new -tk one to try
2209 and coordinate Tk threading with wx/gtk. The tk support is very
2215 and coordinate Tk threading with wx/gtk. The tk support is very
2210 platform dependent, since it seems to require Tcl and Tk to be
2216 platform dependent, since it seems to require Tcl and Tk to be
2211 built with threads (Fedora1/2 appears NOT to have it, but in
2217 built with threads (Fedora1/2 appears NOT to have it, but in
2212 Prabhu's Debian boxes it works OK). But even with some Tk
2218 Prabhu's Debian boxes it works OK). But even with some Tk
2213 limitations, this is a great improvement.
2219 limitations, this is a great improvement.
2214
2220
2215 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2221 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2216 info in user prompts. Patch by Prabhu.
2222 info in user prompts. Patch by Prabhu.
2217
2223
2218 2004-11-18 Fernando Perez <fperez@colorado.edu>
2224 2004-11-18 Fernando Perez <fperez@colorado.edu>
2219
2225
2220 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2226 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2221 EOFErrors and bail, to avoid infinite loops if a non-terminating
2227 EOFErrors and bail, to avoid infinite loops if a non-terminating
2222 file is fed into ipython. Patch submitted in issue 19 by user,
2228 file is fed into ipython. Patch submitted in issue 19 by user,
2223 many thanks.
2229 many thanks.
2224
2230
2225 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2231 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2226 autoquote/parens in continuation prompts, which can cause lots of
2232 autoquote/parens in continuation prompts, which can cause lots of
2227 problems. Closes roundup issue 20.
2233 problems. Closes roundup issue 20.
2228
2234
2229 2004-11-17 Fernando Perez <fperez@colorado.edu>
2235 2004-11-17 Fernando Perez <fperez@colorado.edu>
2230
2236
2231 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2237 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2232 reported as debian bug #280505. I'm not sure my local changelog
2238 reported as debian bug #280505. I'm not sure my local changelog
2233 entry has the proper debian format (Jack?).
2239 entry has the proper debian format (Jack?).
2234
2240
2235 2004-11-08 *** Released version 0.6.4
2241 2004-11-08 *** Released version 0.6.4
2236
2242
2237 2004-11-08 Fernando Perez <fperez@colorado.edu>
2243 2004-11-08 Fernando Perez <fperez@colorado.edu>
2238
2244
2239 * IPython/iplib.py (init_readline): Fix exit message for Windows
2245 * IPython/iplib.py (init_readline): Fix exit message for Windows
2240 when readline is active. Thanks to a report by Eric Jones
2246 when readline is active. Thanks to a report by Eric Jones
2241 <eric-AT-enthought.com>.
2247 <eric-AT-enthought.com>.
2242
2248
2243 2004-11-07 Fernando Perez <fperez@colorado.edu>
2249 2004-11-07 Fernando Perez <fperez@colorado.edu>
2244
2250
2245 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2251 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2246 sometimes seen by win2k/cygwin users.
2252 sometimes seen by win2k/cygwin users.
2247
2253
2248 2004-11-06 Fernando Perez <fperez@colorado.edu>
2254 2004-11-06 Fernando Perez <fperez@colorado.edu>
2249
2255
2250 * IPython/iplib.py (interact): Change the handling of %Exit from
2256 * IPython/iplib.py (interact): Change the handling of %Exit from
2251 trying to propagate a SystemExit to an internal ipython flag.
2257 trying to propagate a SystemExit to an internal ipython flag.
2252 This is less elegant than using Python's exception mechanism, but
2258 This is less elegant than using Python's exception mechanism, but
2253 I can't get that to work reliably with threads, so under -pylab
2259 I can't get that to work reliably with threads, so under -pylab
2254 %Exit was hanging IPython. Cross-thread exception handling is
2260 %Exit was hanging IPython. Cross-thread exception handling is
2255 really a bitch. Thaks to a bug report by Stephen Walton
2261 really a bitch. Thaks to a bug report by Stephen Walton
2256 <stephen.walton-AT-csun.edu>.
2262 <stephen.walton-AT-csun.edu>.
2257
2263
2258 2004-11-04 Fernando Perez <fperez@colorado.edu>
2264 2004-11-04 Fernando Perez <fperez@colorado.edu>
2259
2265
2260 * IPython/iplib.py (raw_input_original): store a pointer to the
2266 * IPython/iplib.py (raw_input_original): store a pointer to the
2261 true raw_input to harden against code which can modify it
2267 true raw_input to harden against code which can modify it
2262 (wx.py.PyShell does this and would otherwise crash ipython).
2268 (wx.py.PyShell does this and would otherwise crash ipython).
2263 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2269 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2264
2270
2265 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2271 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2266 Ctrl-C problem, which does not mess up the input line.
2272 Ctrl-C problem, which does not mess up the input line.
2267
2273
2268 2004-11-03 Fernando Perez <fperez@colorado.edu>
2274 2004-11-03 Fernando Perez <fperez@colorado.edu>
2269
2275
2270 * IPython/Release.py: Changed licensing to BSD, in all files.
2276 * IPython/Release.py: Changed licensing to BSD, in all files.
2271 (name): lowercase name for tarball/RPM release.
2277 (name): lowercase name for tarball/RPM release.
2272
2278
2273 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2279 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2274 use throughout ipython.
2280 use throughout ipython.
2275
2281
2276 * IPython/Magic.py (Magic._ofind): Switch to using the new
2282 * IPython/Magic.py (Magic._ofind): Switch to using the new
2277 OInspect.getdoc() function.
2283 OInspect.getdoc() function.
2278
2284
2279 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2285 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2280 of the line currently being canceled via Ctrl-C. It's extremely
2286 of the line currently being canceled via Ctrl-C. It's extremely
2281 ugly, but I don't know how to do it better (the problem is one of
2287 ugly, but I don't know how to do it better (the problem is one of
2282 handling cross-thread exceptions).
2288 handling cross-thread exceptions).
2283
2289
2284 2004-10-28 Fernando Perez <fperez@colorado.edu>
2290 2004-10-28 Fernando Perez <fperez@colorado.edu>
2285
2291
2286 * IPython/Shell.py (signal_handler): add signal handlers to trap
2292 * IPython/Shell.py (signal_handler): add signal handlers to trap
2287 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2293 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2288 report by Francesc Alted.
2294 report by Francesc Alted.
2289
2295
2290 2004-10-21 Fernando Perez <fperez@colorado.edu>
2296 2004-10-21 Fernando Perez <fperez@colorado.edu>
2291
2297
2292 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2298 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2293 to % for pysh syntax extensions.
2299 to % for pysh syntax extensions.
2294
2300
2295 2004-10-09 Fernando Perez <fperez@colorado.edu>
2301 2004-10-09 Fernando Perez <fperez@colorado.edu>
2296
2302
2297 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2303 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2298 arrays to print a more useful summary, without calling str(arr).
2304 arrays to print a more useful summary, without calling str(arr).
2299 This avoids the problem of extremely lengthy computations which
2305 This avoids the problem of extremely lengthy computations which
2300 occur if arr is large, and appear to the user as a system lockup
2306 occur if arr is large, and appear to the user as a system lockup
2301 with 100% cpu activity. After a suggestion by Kristian Sandberg
2307 with 100% cpu activity. After a suggestion by Kristian Sandberg
2302 <Kristian.Sandberg@colorado.edu>.
2308 <Kristian.Sandberg@colorado.edu>.
2303 (Magic.__init__): fix bug in global magic escapes not being
2309 (Magic.__init__): fix bug in global magic escapes not being
2304 correctly set.
2310 correctly set.
2305
2311
2306 2004-10-08 Fernando Perez <fperez@colorado.edu>
2312 2004-10-08 Fernando Perez <fperez@colorado.edu>
2307
2313
2308 * IPython/Magic.py (__license__): change to absolute imports of
2314 * IPython/Magic.py (__license__): change to absolute imports of
2309 ipython's own internal packages, to start adapting to the absolute
2315 ipython's own internal packages, to start adapting to the absolute
2310 import requirement of PEP-328.
2316 import requirement of PEP-328.
2311
2317
2312 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2318 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2313 files, and standardize author/license marks through the Release
2319 files, and standardize author/license marks through the Release
2314 module instead of having per/file stuff (except for files with
2320 module instead of having per/file stuff (except for files with
2315 particular licenses, like the MIT/PSF-licensed codes).
2321 particular licenses, like the MIT/PSF-licensed codes).
2316
2322
2317 * IPython/Debugger.py: remove dead code for python 2.1
2323 * IPython/Debugger.py: remove dead code for python 2.1
2318
2324
2319 2004-10-04 Fernando Perez <fperez@colorado.edu>
2325 2004-10-04 Fernando Perez <fperez@colorado.edu>
2320
2326
2321 * IPython/iplib.py (ipmagic): New function for accessing magics
2327 * IPython/iplib.py (ipmagic): New function for accessing magics
2322 via a normal python function call.
2328 via a normal python function call.
2323
2329
2324 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2330 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2325 from '@' to '%', to accomodate the new @decorator syntax of python
2331 from '@' to '%', to accomodate the new @decorator syntax of python
2326 2.4.
2332 2.4.
2327
2333
2328 2004-09-29 Fernando Perez <fperez@colorado.edu>
2334 2004-09-29 Fernando Perez <fperez@colorado.edu>
2329
2335
2330 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2336 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2331 matplotlib.use to prevent running scripts which try to switch
2337 matplotlib.use to prevent running scripts which try to switch
2332 interactive backends from within ipython. This will just crash
2338 interactive backends from within ipython. This will just crash
2333 the python interpreter, so we can't allow it (but a detailed error
2339 the python interpreter, so we can't allow it (but a detailed error
2334 is given to the user).
2340 is given to the user).
2335
2341
2336 2004-09-28 Fernando Perez <fperez@colorado.edu>
2342 2004-09-28 Fernando Perez <fperez@colorado.edu>
2337
2343
2338 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2344 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2339 matplotlib-related fixes so that using @run with non-matplotlib
2345 matplotlib-related fixes so that using @run with non-matplotlib
2340 scripts doesn't pop up spurious plot windows. This requires
2346 scripts doesn't pop up spurious plot windows. This requires
2341 matplotlib >= 0.63, where I had to make some changes as well.
2347 matplotlib >= 0.63, where I had to make some changes as well.
2342
2348
2343 * IPython/ipmaker.py (make_IPython): update version requirement to
2349 * IPython/ipmaker.py (make_IPython): update version requirement to
2344 python 2.2.
2350 python 2.2.
2345
2351
2346 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2352 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2347 banner arg for embedded customization.
2353 banner arg for embedded customization.
2348
2354
2349 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2355 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2350 explicit uses of __IP as the IPython's instance name. Now things
2356 explicit uses of __IP as the IPython's instance name. Now things
2351 are properly handled via the shell.name value. The actual code
2357 are properly handled via the shell.name value. The actual code
2352 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2358 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2353 is much better than before. I'll clean things completely when the
2359 is much better than before. I'll clean things completely when the
2354 magic stuff gets a real overhaul.
2360 magic stuff gets a real overhaul.
2355
2361
2356 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2362 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2357 minor changes to debian dir.
2363 minor changes to debian dir.
2358
2364
2359 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2365 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2360 pointer to the shell itself in the interactive namespace even when
2366 pointer to the shell itself in the interactive namespace even when
2361 a user-supplied dict is provided. This is needed for embedding
2367 a user-supplied dict is provided. This is needed for embedding
2362 purposes (found by tests with Michel Sanner).
2368 purposes (found by tests with Michel Sanner).
2363
2369
2364 2004-09-27 Fernando Perez <fperez@colorado.edu>
2370 2004-09-27 Fernando Perez <fperez@colorado.edu>
2365
2371
2366 * IPython/UserConfig/ipythonrc: remove []{} from
2372 * IPython/UserConfig/ipythonrc: remove []{} from
2367 readline_remove_delims, so that things like [modname.<TAB> do
2373 readline_remove_delims, so that things like [modname.<TAB> do
2368 proper completion. This disables [].TAB, but that's a less common
2374 proper completion. This disables [].TAB, but that's a less common
2369 case than module names in list comprehensions, for example.
2375 case than module names in list comprehensions, for example.
2370 Thanks to a report by Andrea Riciputi.
2376 Thanks to a report by Andrea Riciputi.
2371
2377
2372 2004-09-09 Fernando Perez <fperez@colorado.edu>
2378 2004-09-09 Fernando Perez <fperez@colorado.edu>
2373
2379
2374 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2380 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2375 blocking problems in win32 and osx. Fix by John.
2381 blocking problems in win32 and osx. Fix by John.
2376
2382
2377 2004-09-08 Fernando Perez <fperez@colorado.edu>
2383 2004-09-08 Fernando Perez <fperez@colorado.edu>
2378
2384
2379 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2385 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2380 for Win32 and OSX. Fix by John Hunter.
2386 for Win32 and OSX. Fix by John Hunter.
2381
2387
2382 2004-08-30 *** Released version 0.6.3
2388 2004-08-30 *** Released version 0.6.3
2383
2389
2384 2004-08-30 Fernando Perez <fperez@colorado.edu>
2390 2004-08-30 Fernando Perez <fperez@colorado.edu>
2385
2391
2386 * setup.py (isfile): Add manpages to list of dependent files to be
2392 * setup.py (isfile): Add manpages to list of dependent files to be
2387 updated.
2393 updated.
2388
2394
2389 2004-08-27 Fernando Perez <fperez@colorado.edu>
2395 2004-08-27 Fernando Perez <fperez@colorado.edu>
2390
2396
2391 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2397 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2392 for now. They don't really work with standalone WX/GTK code
2398 for now. They don't really work with standalone WX/GTK code
2393 (though matplotlib IS working fine with both of those backends).
2399 (though matplotlib IS working fine with both of those backends).
2394 This will neeed much more testing. I disabled most things with
2400 This will neeed much more testing. I disabled most things with
2395 comments, so turning it back on later should be pretty easy.
2401 comments, so turning it back on later should be pretty easy.
2396
2402
2397 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2403 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2398 autocalling of expressions like r'foo', by modifying the line
2404 autocalling of expressions like r'foo', by modifying the line
2399 split regexp. Closes
2405 split regexp. Closes
2400 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2406 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2401 Riley <ipythonbugs-AT-sabi.net>.
2407 Riley <ipythonbugs-AT-sabi.net>.
2402 (InteractiveShell.mainloop): honor --nobanner with banner
2408 (InteractiveShell.mainloop): honor --nobanner with banner
2403 extensions.
2409 extensions.
2404
2410
2405 * IPython/Shell.py: Significant refactoring of all classes, so
2411 * IPython/Shell.py: Significant refactoring of all classes, so
2406 that we can really support ALL matplotlib backends and threading
2412 that we can really support ALL matplotlib backends and threading
2407 models (John spotted a bug with Tk which required this). Now we
2413 models (John spotted a bug with Tk which required this). Now we
2408 should support single-threaded, WX-threads and GTK-threads, both
2414 should support single-threaded, WX-threads and GTK-threads, both
2409 for generic code and for matplotlib.
2415 for generic code and for matplotlib.
2410
2416
2411 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2417 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2412 -pylab, to simplify things for users. Will also remove the pylab
2418 -pylab, to simplify things for users. Will also remove the pylab
2413 profile, since now all of matplotlib configuration is directly
2419 profile, since now all of matplotlib configuration is directly
2414 handled here. This also reduces startup time.
2420 handled here. This also reduces startup time.
2415
2421
2416 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2422 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2417 shell wasn't being correctly called. Also in IPShellWX.
2423 shell wasn't being correctly called. Also in IPShellWX.
2418
2424
2419 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2425 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2420 fine-tune banner.
2426 fine-tune banner.
2421
2427
2422 * IPython/numutils.py (spike): Deprecate these spike functions,
2428 * IPython/numutils.py (spike): Deprecate these spike functions,
2423 delete (long deprecated) gnuplot_exec handler.
2429 delete (long deprecated) gnuplot_exec handler.
2424
2430
2425 2004-08-26 Fernando Perez <fperez@colorado.edu>
2431 2004-08-26 Fernando Perez <fperez@colorado.edu>
2426
2432
2427 * ipython.1: Update for threading options, plus some others which
2433 * ipython.1: Update for threading options, plus some others which
2428 were missing.
2434 were missing.
2429
2435
2430 * IPython/ipmaker.py (__call__): Added -wthread option for
2436 * IPython/ipmaker.py (__call__): Added -wthread option for
2431 wxpython thread handling. Make sure threading options are only
2437 wxpython thread handling. Make sure threading options are only
2432 valid at the command line.
2438 valid at the command line.
2433
2439
2434 * scripts/ipython: moved shell selection into a factory function
2440 * scripts/ipython: moved shell selection into a factory function
2435 in Shell.py, to keep the starter script to a minimum.
2441 in Shell.py, to keep the starter script to a minimum.
2436
2442
2437 2004-08-25 Fernando Perez <fperez@colorado.edu>
2443 2004-08-25 Fernando Perez <fperez@colorado.edu>
2438
2444
2439 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2445 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2440 John. Along with some recent changes he made to matplotlib, the
2446 John. Along with some recent changes he made to matplotlib, the
2441 next versions of both systems should work very well together.
2447 next versions of both systems should work very well together.
2442
2448
2443 2004-08-24 Fernando Perez <fperez@colorado.edu>
2449 2004-08-24 Fernando Perez <fperez@colorado.edu>
2444
2450
2445 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2451 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2446 tried to switch the profiling to using hotshot, but I'm getting
2452 tried to switch the profiling to using hotshot, but I'm getting
2447 strange errors from prof.runctx() there. I may be misreading the
2453 strange errors from prof.runctx() there. I may be misreading the
2448 docs, but it looks weird. For now the profiling code will
2454 docs, but it looks weird. For now the profiling code will
2449 continue to use the standard profiler.
2455 continue to use the standard profiler.
2450
2456
2451 2004-08-23 Fernando Perez <fperez@colorado.edu>
2457 2004-08-23 Fernando Perez <fperez@colorado.edu>
2452
2458
2453 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2459 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2454 threaded shell, by John Hunter. It's not quite ready yet, but
2460 threaded shell, by John Hunter. It's not quite ready yet, but
2455 close.
2461 close.
2456
2462
2457 2004-08-22 Fernando Perez <fperez@colorado.edu>
2463 2004-08-22 Fernando Perez <fperez@colorado.edu>
2458
2464
2459 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2465 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2460 in Magic and ultraTB.
2466 in Magic and ultraTB.
2461
2467
2462 * ipython.1: document threading options in manpage.
2468 * ipython.1: document threading options in manpage.
2463
2469
2464 * scripts/ipython: Changed name of -thread option to -gthread,
2470 * scripts/ipython: Changed name of -thread option to -gthread,
2465 since this is GTK specific. I want to leave the door open for a
2471 since this is GTK specific. I want to leave the door open for a
2466 -wthread option for WX, which will most likely be necessary. This
2472 -wthread option for WX, which will most likely be necessary. This
2467 change affects usage and ipmaker as well.
2473 change affects usage and ipmaker as well.
2468
2474
2469 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2475 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2470 handle the matplotlib shell issues. Code by John Hunter
2476 handle the matplotlib shell issues. Code by John Hunter
2471 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2477 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2472 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2478 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2473 broken (and disabled for end users) for now, but it puts the
2479 broken (and disabled for end users) for now, but it puts the
2474 infrastructure in place.
2480 infrastructure in place.
2475
2481
2476 2004-08-21 Fernando Perez <fperez@colorado.edu>
2482 2004-08-21 Fernando Perez <fperez@colorado.edu>
2477
2483
2478 * ipythonrc-pylab: Add matplotlib support.
2484 * ipythonrc-pylab: Add matplotlib support.
2479
2485
2480 * matplotlib_config.py: new files for matplotlib support, part of
2486 * matplotlib_config.py: new files for matplotlib support, part of
2481 the pylab profile.
2487 the pylab profile.
2482
2488
2483 * IPython/usage.py (__doc__): documented the threading options.
2489 * IPython/usage.py (__doc__): documented the threading options.
2484
2490
2485 2004-08-20 Fernando Perez <fperez@colorado.edu>
2491 2004-08-20 Fernando Perez <fperez@colorado.edu>
2486
2492
2487 * ipython: Modified the main calling routine to handle the -thread
2493 * ipython: Modified the main calling routine to handle the -thread
2488 and -mpthread options. This needs to be done as a top-level hack,
2494 and -mpthread options. This needs to be done as a top-level hack,
2489 because it determines which class to instantiate for IPython
2495 because it determines which class to instantiate for IPython
2490 itself.
2496 itself.
2491
2497
2492 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2498 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2493 classes to support multithreaded GTK operation without blocking,
2499 classes to support multithreaded GTK operation without blocking,
2494 and matplotlib with all backends. This is a lot of still very
2500 and matplotlib with all backends. This is a lot of still very
2495 experimental code, and threads are tricky. So it may still have a
2501 experimental code, and threads are tricky. So it may still have a
2496 few rough edges... This code owes a lot to
2502 few rough edges... This code owes a lot to
2497 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2503 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2498 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2504 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2499 to John Hunter for all the matplotlib work.
2505 to John Hunter for all the matplotlib work.
2500
2506
2501 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2507 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2502 options for gtk thread and matplotlib support.
2508 options for gtk thread and matplotlib support.
2503
2509
2504 2004-08-16 Fernando Perez <fperez@colorado.edu>
2510 2004-08-16 Fernando Perez <fperez@colorado.edu>
2505
2511
2506 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2512 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2507 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2513 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2508 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2514 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2509
2515
2510 2004-08-11 Fernando Perez <fperez@colorado.edu>
2516 2004-08-11 Fernando Perez <fperez@colorado.edu>
2511
2517
2512 * setup.py (isfile): Fix build so documentation gets updated for
2518 * setup.py (isfile): Fix build so documentation gets updated for
2513 rpms (it was only done for .tgz builds).
2519 rpms (it was only done for .tgz builds).
2514
2520
2515 2004-08-10 Fernando Perez <fperez@colorado.edu>
2521 2004-08-10 Fernando Perez <fperez@colorado.edu>
2516
2522
2517 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2523 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2518
2524
2519 * iplib.py : Silence syntax error exceptions in tab-completion.
2525 * iplib.py : Silence syntax error exceptions in tab-completion.
2520
2526
2521 2004-08-05 Fernando Perez <fperez@colorado.edu>
2527 2004-08-05 Fernando Perez <fperez@colorado.edu>
2522
2528
2523 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2529 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2524 'color off' mark for continuation prompts. This was causing long
2530 'color off' mark for continuation prompts. This was causing long
2525 continuation lines to mis-wrap.
2531 continuation lines to mis-wrap.
2526
2532
2527 2004-08-01 Fernando Perez <fperez@colorado.edu>
2533 2004-08-01 Fernando Perez <fperez@colorado.edu>
2528
2534
2529 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2535 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2530 for building ipython to be a parameter. All this is necessary
2536 for building ipython to be a parameter. All this is necessary
2531 right now to have a multithreaded version, but this insane
2537 right now to have a multithreaded version, but this insane
2532 non-design will be cleaned up soon. For now, it's a hack that
2538 non-design will be cleaned up soon. For now, it's a hack that
2533 works.
2539 works.
2534
2540
2535 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2541 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2536 args in various places. No bugs so far, but it's a dangerous
2542 args in various places. No bugs so far, but it's a dangerous
2537 practice.
2543 practice.
2538
2544
2539 2004-07-31 Fernando Perez <fperez@colorado.edu>
2545 2004-07-31 Fernando Perez <fperez@colorado.edu>
2540
2546
2541 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2547 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2542 fix completion of files with dots in their names under most
2548 fix completion of files with dots in their names under most
2543 profiles (pysh was OK because the completion order is different).
2549 profiles (pysh was OK because the completion order is different).
2544
2550
2545 2004-07-27 Fernando Perez <fperez@colorado.edu>
2551 2004-07-27 Fernando Perez <fperez@colorado.edu>
2546
2552
2547 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2553 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2548 keywords manually, b/c the one in keyword.py was removed in python
2554 keywords manually, b/c the one in keyword.py was removed in python
2549 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2555 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2550 This is NOT a bug under python 2.3 and earlier.
2556 This is NOT a bug under python 2.3 and earlier.
2551
2557
2552 2004-07-26 Fernando Perez <fperez@colorado.edu>
2558 2004-07-26 Fernando Perez <fperez@colorado.edu>
2553
2559
2554 * IPython/ultraTB.py (VerboseTB.text): Add another
2560 * IPython/ultraTB.py (VerboseTB.text): Add another
2555 linecache.checkcache() call to try to prevent inspect.py from
2561 linecache.checkcache() call to try to prevent inspect.py from
2556 crashing under python 2.3. I think this fixes
2562 crashing under python 2.3. I think this fixes
2557 http://www.scipy.net/roundup/ipython/issue17.
2563 http://www.scipy.net/roundup/ipython/issue17.
2558
2564
2559 2004-07-26 *** Released version 0.6.2
2565 2004-07-26 *** Released version 0.6.2
2560
2566
2561 2004-07-26 Fernando Perez <fperez@colorado.edu>
2567 2004-07-26 Fernando Perez <fperez@colorado.edu>
2562
2568
2563 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2569 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2564 fail for any number.
2570 fail for any number.
2565 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2571 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2566 empty bookmarks.
2572 empty bookmarks.
2567
2573
2568 2004-07-26 *** Released version 0.6.1
2574 2004-07-26 *** Released version 0.6.1
2569
2575
2570 2004-07-26 Fernando Perez <fperez@colorado.edu>
2576 2004-07-26 Fernando Perez <fperez@colorado.edu>
2571
2577
2572 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2578 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2573
2579
2574 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2580 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2575 escaping '()[]{}' in filenames.
2581 escaping '()[]{}' in filenames.
2576
2582
2577 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2583 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2578 Python 2.2 users who lack a proper shlex.split.
2584 Python 2.2 users who lack a proper shlex.split.
2579
2585
2580 2004-07-19 Fernando Perez <fperez@colorado.edu>
2586 2004-07-19 Fernando Perez <fperez@colorado.edu>
2581
2587
2582 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2588 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2583 for reading readline's init file. I follow the normal chain:
2589 for reading readline's init file. I follow the normal chain:
2584 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2590 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2585 report by Mike Heeter. This closes
2591 report by Mike Heeter. This closes
2586 http://www.scipy.net/roundup/ipython/issue16.
2592 http://www.scipy.net/roundup/ipython/issue16.
2587
2593
2588 2004-07-18 Fernando Perez <fperez@colorado.edu>
2594 2004-07-18 Fernando Perez <fperez@colorado.edu>
2589
2595
2590 * IPython/iplib.py (__init__): Add better handling of '\' under
2596 * IPython/iplib.py (__init__): Add better handling of '\' under
2591 Win32 for filenames. After a patch by Ville.
2597 Win32 for filenames. After a patch by Ville.
2592
2598
2593 2004-07-17 Fernando Perez <fperez@colorado.edu>
2599 2004-07-17 Fernando Perez <fperez@colorado.edu>
2594
2600
2595 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2601 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2596 autocalling would be triggered for 'foo is bar' if foo is
2602 autocalling would be triggered for 'foo is bar' if foo is
2597 callable. I also cleaned up the autocall detection code to use a
2603 callable. I also cleaned up the autocall detection code to use a
2598 regexp, which is faster. Bug reported by Alexander Schmolck.
2604 regexp, which is faster. Bug reported by Alexander Schmolck.
2599
2605
2600 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2606 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2601 '?' in them would confuse the help system. Reported by Alex
2607 '?' in them would confuse the help system. Reported by Alex
2602 Schmolck.
2608 Schmolck.
2603
2609
2604 2004-07-16 Fernando Perez <fperez@colorado.edu>
2610 2004-07-16 Fernando Perez <fperez@colorado.edu>
2605
2611
2606 * IPython/GnuplotInteractive.py (__all__): added plot2.
2612 * IPython/GnuplotInteractive.py (__all__): added plot2.
2607
2613
2608 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2614 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2609 plotting dictionaries, lists or tuples of 1d arrays.
2615 plotting dictionaries, lists or tuples of 1d arrays.
2610
2616
2611 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2617 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2612 optimizations.
2618 optimizations.
2613
2619
2614 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2620 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2615 the information which was there from Janko's original IPP code:
2621 the information which was there from Janko's original IPP code:
2616
2622
2617 03.05.99 20:53 porto.ifm.uni-kiel.de
2623 03.05.99 20:53 porto.ifm.uni-kiel.de
2618 --Started changelog.
2624 --Started changelog.
2619 --make clear do what it say it does
2625 --make clear do what it say it does
2620 --added pretty output of lines from inputcache
2626 --added pretty output of lines from inputcache
2621 --Made Logger a mixin class, simplifies handling of switches
2627 --Made Logger a mixin class, simplifies handling of switches
2622 --Added own completer class. .string<TAB> expands to last history
2628 --Added own completer class. .string<TAB> expands to last history
2623 line which starts with string. The new expansion is also present
2629 line which starts with string. The new expansion is also present
2624 with Ctrl-r from the readline library. But this shows, who this
2630 with Ctrl-r from the readline library. But this shows, who this
2625 can be done for other cases.
2631 can be done for other cases.
2626 --Added convention that all shell functions should accept a
2632 --Added convention that all shell functions should accept a
2627 parameter_string This opens the door for different behaviour for
2633 parameter_string This opens the door for different behaviour for
2628 each function. @cd is a good example of this.
2634 each function. @cd is a good example of this.
2629
2635
2630 04.05.99 12:12 porto.ifm.uni-kiel.de
2636 04.05.99 12:12 porto.ifm.uni-kiel.de
2631 --added logfile rotation
2637 --added logfile rotation
2632 --added new mainloop method which freezes first the namespace
2638 --added new mainloop method which freezes first the namespace
2633
2639
2634 07.05.99 21:24 porto.ifm.uni-kiel.de
2640 07.05.99 21:24 porto.ifm.uni-kiel.de
2635 --added the docreader classes. Now there is a help system.
2641 --added the docreader classes. Now there is a help system.
2636 -This is only a first try. Currently it's not easy to put new
2642 -This is only a first try. Currently it's not easy to put new
2637 stuff in the indices. But this is the way to go. Info would be
2643 stuff in the indices. But this is the way to go. Info would be
2638 better, but HTML is every where and not everybody has an info
2644 better, but HTML is every where and not everybody has an info
2639 system installed and it's not so easy to change html-docs to info.
2645 system installed and it's not so easy to change html-docs to info.
2640 --added global logfile option
2646 --added global logfile option
2641 --there is now a hook for object inspection method pinfo needs to
2647 --there is now a hook for object inspection method pinfo needs to
2642 be provided for this. Can be reached by two '??'.
2648 be provided for this. Can be reached by two '??'.
2643
2649
2644 08.05.99 20:51 porto.ifm.uni-kiel.de
2650 08.05.99 20:51 porto.ifm.uni-kiel.de
2645 --added a README
2651 --added a README
2646 --bug in rc file. Something has changed so functions in the rc
2652 --bug in rc file. Something has changed so functions in the rc
2647 file need to reference the shell and not self. Not clear if it's a
2653 file need to reference the shell and not self. Not clear if it's a
2648 bug or feature.
2654 bug or feature.
2649 --changed rc file for new behavior
2655 --changed rc file for new behavior
2650
2656
2651 2004-07-15 Fernando Perez <fperez@colorado.edu>
2657 2004-07-15 Fernando Perez <fperez@colorado.edu>
2652
2658
2653 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2659 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2654 cache was falling out of sync in bizarre manners when multi-line
2660 cache was falling out of sync in bizarre manners when multi-line
2655 input was present. Minor optimizations and cleanup.
2661 input was present. Minor optimizations and cleanup.
2656
2662
2657 (Logger): Remove old Changelog info for cleanup. This is the
2663 (Logger): Remove old Changelog info for cleanup. This is the
2658 information which was there from Janko's original code:
2664 information which was there from Janko's original code:
2659
2665
2660 Changes to Logger: - made the default log filename a parameter
2666 Changes to Logger: - made the default log filename a parameter
2661
2667
2662 - put a check for lines beginning with !@? in log(). Needed
2668 - put a check for lines beginning with !@? in log(). Needed
2663 (even if the handlers properly log their lines) for mid-session
2669 (even if the handlers properly log their lines) for mid-session
2664 logging activation to work properly. Without this, lines logged
2670 logging activation to work properly. Without this, lines logged
2665 in mid session, which get read from the cache, would end up
2671 in mid session, which get read from the cache, would end up
2666 'bare' (with !@? in the open) in the log. Now they are caught
2672 'bare' (with !@? in the open) in the log. Now they are caught
2667 and prepended with a #.
2673 and prepended with a #.
2668
2674
2669 * IPython/iplib.py (InteractiveShell.init_readline): added check
2675 * IPython/iplib.py (InteractiveShell.init_readline): added check
2670 in case MagicCompleter fails to be defined, so we don't crash.
2676 in case MagicCompleter fails to be defined, so we don't crash.
2671
2677
2672 2004-07-13 Fernando Perez <fperez@colorado.edu>
2678 2004-07-13 Fernando Perez <fperez@colorado.edu>
2673
2679
2674 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2680 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2675 of EPS if the requested filename ends in '.eps'.
2681 of EPS if the requested filename ends in '.eps'.
2676
2682
2677 2004-07-04 Fernando Perez <fperez@colorado.edu>
2683 2004-07-04 Fernando Perez <fperez@colorado.edu>
2678
2684
2679 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2685 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2680 escaping of quotes when calling the shell.
2686 escaping of quotes when calling the shell.
2681
2687
2682 2004-07-02 Fernando Perez <fperez@colorado.edu>
2688 2004-07-02 Fernando Perez <fperez@colorado.edu>
2683
2689
2684 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2690 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2685 gettext not working because we were clobbering '_'. Fixes
2691 gettext not working because we were clobbering '_'. Fixes
2686 http://www.scipy.net/roundup/ipython/issue6.
2692 http://www.scipy.net/roundup/ipython/issue6.
2687
2693
2688 2004-07-01 Fernando Perez <fperez@colorado.edu>
2694 2004-07-01 Fernando Perez <fperez@colorado.edu>
2689
2695
2690 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2696 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2691 into @cd. Patch by Ville.
2697 into @cd. Patch by Ville.
2692
2698
2693 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2699 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2694 new function to store things after ipmaker runs. Patch by Ville.
2700 new function to store things after ipmaker runs. Patch by Ville.
2695 Eventually this will go away once ipmaker is removed and the class
2701 Eventually this will go away once ipmaker is removed and the class
2696 gets cleaned up, but for now it's ok. Key functionality here is
2702 gets cleaned up, but for now it's ok. Key functionality here is
2697 the addition of the persistent storage mechanism, a dict for
2703 the addition of the persistent storage mechanism, a dict for
2698 keeping data across sessions (for now just bookmarks, but more can
2704 keeping data across sessions (for now just bookmarks, but more can
2699 be implemented later).
2705 be implemented later).
2700
2706
2701 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2707 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2702 persistent across sections. Patch by Ville, I modified it
2708 persistent across sections. Patch by Ville, I modified it
2703 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2709 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2704 added a '-l' option to list all bookmarks.
2710 added a '-l' option to list all bookmarks.
2705
2711
2706 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2712 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2707 center for cleanup. Registered with atexit.register(). I moved
2713 center for cleanup. Registered with atexit.register(). I moved
2708 here the old exit_cleanup(). After a patch by Ville.
2714 here the old exit_cleanup(). After a patch by Ville.
2709
2715
2710 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2716 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2711 characters in the hacked shlex_split for python 2.2.
2717 characters in the hacked shlex_split for python 2.2.
2712
2718
2713 * IPython/iplib.py (file_matches): more fixes to filenames with
2719 * IPython/iplib.py (file_matches): more fixes to filenames with
2714 whitespace in them. It's not perfect, but limitations in python's
2720 whitespace in them. It's not perfect, but limitations in python's
2715 readline make it impossible to go further.
2721 readline make it impossible to go further.
2716
2722
2717 2004-06-29 Fernando Perez <fperez@colorado.edu>
2723 2004-06-29 Fernando Perez <fperez@colorado.edu>
2718
2724
2719 * IPython/iplib.py (file_matches): escape whitespace correctly in
2725 * IPython/iplib.py (file_matches): escape whitespace correctly in
2720 filename completions. Bug reported by Ville.
2726 filename completions. Bug reported by Ville.
2721
2727
2722 2004-06-28 Fernando Perez <fperez@colorado.edu>
2728 2004-06-28 Fernando Perez <fperez@colorado.edu>
2723
2729
2724 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2730 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2725 the history file will be called 'history-PROFNAME' (or just
2731 the history file will be called 'history-PROFNAME' (or just
2726 'history' if no profile is loaded). I was getting annoyed at
2732 'history' if no profile is loaded). I was getting annoyed at
2727 getting my Numerical work history clobbered by pysh sessions.
2733 getting my Numerical work history clobbered by pysh sessions.
2728
2734
2729 * IPython/iplib.py (InteractiveShell.__init__): Internal
2735 * IPython/iplib.py (InteractiveShell.__init__): Internal
2730 getoutputerror() function so that we can honor the system_verbose
2736 getoutputerror() function so that we can honor the system_verbose
2731 flag for _all_ system calls. I also added escaping of #
2737 flag for _all_ system calls. I also added escaping of #
2732 characters here to avoid confusing Itpl.
2738 characters here to avoid confusing Itpl.
2733
2739
2734 * IPython/Magic.py (shlex_split): removed call to shell in
2740 * IPython/Magic.py (shlex_split): removed call to shell in
2735 parse_options and replaced it with shlex.split(). The annoying
2741 parse_options and replaced it with shlex.split(). The annoying
2736 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2742 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2737 to backport it from 2.3, with several frail hacks (the shlex
2743 to backport it from 2.3, with several frail hacks (the shlex
2738 module is rather limited in 2.2). Thanks to a suggestion by Ville
2744 module is rather limited in 2.2). Thanks to a suggestion by Ville
2739 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2745 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2740 problem.
2746 problem.
2741
2747
2742 (Magic.magic_system_verbose): new toggle to print the actual
2748 (Magic.magic_system_verbose): new toggle to print the actual
2743 system calls made by ipython. Mainly for debugging purposes.
2749 system calls made by ipython. Mainly for debugging purposes.
2744
2750
2745 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2751 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2746 doesn't support persistence. Reported (and fix suggested) by
2752 doesn't support persistence. Reported (and fix suggested) by
2747 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2753 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2748
2754
2749 2004-06-26 Fernando Perez <fperez@colorado.edu>
2755 2004-06-26 Fernando Perez <fperez@colorado.edu>
2750
2756
2751 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2757 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2752 continue prompts.
2758 continue prompts.
2753
2759
2754 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2760 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2755 function (basically a big docstring) and a few more things here to
2761 function (basically a big docstring) and a few more things here to
2756 speedup startup. pysh.py is now very lightweight. We want because
2762 speedup startup. pysh.py is now very lightweight. We want because
2757 it gets execfile'd, while InterpreterExec gets imported, so
2763 it gets execfile'd, while InterpreterExec gets imported, so
2758 byte-compilation saves time.
2764 byte-compilation saves time.
2759
2765
2760 2004-06-25 Fernando Perez <fperez@colorado.edu>
2766 2004-06-25 Fernando Perez <fperez@colorado.edu>
2761
2767
2762 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2768 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2763 -NUM', which was recently broken.
2769 -NUM', which was recently broken.
2764
2770
2765 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2771 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2766 in multi-line input (but not !!, which doesn't make sense there).
2772 in multi-line input (but not !!, which doesn't make sense there).
2767
2773
2768 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2774 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2769 It's just too useful, and people can turn it off in the less
2775 It's just too useful, and people can turn it off in the less
2770 common cases where it's a problem.
2776 common cases where it's a problem.
2771
2777
2772 2004-06-24 Fernando Perez <fperez@colorado.edu>
2778 2004-06-24 Fernando Perez <fperez@colorado.edu>
2773
2779
2774 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2780 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2775 special syntaxes (like alias calling) is now allied in multi-line
2781 special syntaxes (like alias calling) is now allied in multi-line
2776 input. This is still _very_ experimental, but it's necessary for
2782 input. This is still _very_ experimental, but it's necessary for
2777 efficient shell usage combining python looping syntax with system
2783 efficient shell usage combining python looping syntax with system
2778 calls. For now it's restricted to aliases, I don't think it
2784 calls. For now it's restricted to aliases, I don't think it
2779 really even makes sense to have this for magics.
2785 really even makes sense to have this for magics.
2780
2786
2781 2004-06-23 Fernando Perez <fperez@colorado.edu>
2787 2004-06-23 Fernando Perez <fperez@colorado.edu>
2782
2788
2783 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2789 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2784 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2790 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2785
2791
2786 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2792 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2787 extensions under Windows (after code sent by Gary Bishop). The
2793 extensions under Windows (after code sent by Gary Bishop). The
2788 extensions considered 'executable' are stored in IPython's rc
2794 extensions considered 'executable' are stored in IPython's rc
2789 structure as win_exec_ext.
2795 structure as win_exec_ext.
2790
2796
2791 * IPython/genutils.py (shell): new function, like system() but
2797 * IPython/genutils.py (shell): new function, like system() but
2792 without return value. Very useful for interactive shell work.
2798 without return value. Very useful for interactive shell work.
2793
2799
2794 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2800 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2795 delete aliases.
2801 delete aliases.
2796
2802
2797 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2803 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2798 sure that the alias table doesn't contain python keywords.
2804 sure that the alias table doesn't contain python keywords.
2799
2805
2800 2004-06-21 Fernando Perez <fperez@colorado.edu>
2806 2004-06-21 Fernando Perez <fperez@colorado.edu>
2801
2807
2802 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2808 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2803 non-existent items are found in $PATH. Reported by Thorsten.
2809 non-existent items are found in $PATH. Reported by Thorsten.
2804
2810
2805 2004-06-20 Fernando Perez <fperez@colorado.edu>
2811 2004-06-20 Fernando Perez <fperez@colorado.edu>
2806
2812
2807 * IPython/iplib.py (complete): modified the completer so that the
2813 * IPython/iplib.py (complete): modified the completer so that the
2808 order of priorities can be easily changed at runtime.
2814 order of priorities can be easily changed at runtime.
2809
2815
2810 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2816 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2811 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2817 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2812
2818
2813 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2819 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2814 expand Python variables prepended with $ in all system calls. The
2820 expand Python variables prepended with $ in all system calls. The
2815 same was done to InteractiveShell.handle_shell_escape. Now all
2821 same was done to InteractiveShell.handle_shell_escape. Now all
2816 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2822 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2817 expansion of python variables and expressions according to the
2823 expansion of python variables and expressions according to the
2818 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2824 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2819
2825
2820 Though PEP-215 has been rejected, a similar (but simpler) one
2826 Though PEP-215 has been rejected, a similar (but simpler) one
2821 seems like it will go into Python 2.4, PEP-292 -
2827 seems like it will go into Python 2.4, PEP-292 -
2822 http://www.python.org/peps/pep-0292.html.
2828 http://www.python.org/peps/pep-0292.html.
2823
2829
2824 I'll keep the full syntax of PEP-215, since IPython has since the
2830 I'll keep the full syntax of PEP-215, since IPython has since the
2825 start used Ka-Ping Yee's reference implementation discussed there
2831 start used Ka-Ping Yee's reference implementation discussed there
2826 (Itpl), and I actually like the powerful semantics it offers.
2832 (Itpl), and I actually like the powerful semantics it offers.
2827
2833
2828 In order to access normal shell variables, the $ has to be escaped
2834 In order to access normal shell variables, the $ has to be escaped
2829 via an extra $. For example:
2835 via an extra $. For example:
2830
2836
2831 In [7]: PATH='a python variable'
2837 In [7]: PATH='a python variable'
2832
2838
2833 In [8]: !echo $PATH
2839 In [8]: !echo $PATH
2834 a python variable
2840 a python variable
2835
2841
2836 In [9]: !echo $$PATH
2842 In [9]: !echo $$PATH
2837 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2843 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2838
2844
2839 (Magic.parse_options): escape $ so the shell doesn't evaluate
2845 (Magic.parse_options): escape $ so the shell doesn't evaluate
2840 things prematurely.
2846 things prematurely.
2841
2847
2842 * IPython/iplib.py (InteractiveShell.call_alias): added the
2848 * IPython/iplib.py (InteractiveShell.call_alias): added the
2843 ability for aliases to expand python variables via $.
2849 ability for aliases to expand python variables via $.
2844
2850
2845 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2851 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2846 system, now there's a @rehash/@rehashx pair of magics. These work
2852 system, now there's a @rehash/@rehashx pair of magics. These work
2847 like the csh rehash command, and can be invoked at any time. They
2853 like the csh rehash command, and can be invoked at any time. They
2848 build a table of aliases to everything in the user's $PATH
2854 build a table of aliases to everything in the user's $PATH
2849 (@rehash uses everything, @rehashx is slower but only adds
2855 (@rehash uses everything, @rehashx is slower but only adds
2850 executable files). With this, the pysh.py-based shell profile can
2856 executable files). With this, the pysh.py-based shell profile can
2851 now simply call rehash upon startup, and full access to all
2857 now simply call rehash upon startup, and full access to all
2852 programs in the user's path is obtained.
2858 programs in the user's path is obtained.
2853
2859
2854 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2860 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2855 functionality is now fully in place. I removed the old dynamic
2861 functionality is now fully in place. I removed the old dynamic
2856 code generation based approach, in favor of a much lighter one
2862 code generation based approach, in favor of a much lighter one
2857 based on a simple dict. The advantage is that this allows me to
2863 based on a simple dict. The advantage is that this allows me to
2858 now have thousands of aliases with negligible cost (unthinkable
2864 now have thousands of aliases with negligible cost (unthinkable
2859 with the old system).
2865 with the old system).
2860
2866
2861 2004-06-19 Fernando Perez <fperez@colorado.edu>
2867 2004-06-19 Fernando Perez <fperez@colorado.edu>
2862
2868
2863 * IPython/iplib.py (__init__): extended MagicCompleter class to
2869 * IPython/iplib.py (__init__): extended MagicCompleter class to
2864 also complete (last in priority) on user aliases.
2870 also complete (last in priority) on user aliases.
2865
2871
2866 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2872 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2867 call to eval.
2873 call to eval.
2868 (ItplNS.__init__): Added a new class which functions like Itpl,
2874 (ItplNS.__init__): Added a new class which functions like Itpl,
2869 but allows configuring the namespace for the evaluation to occur
2875 but allows configuring the namespace for the evaluation to occur
2870 in.
2876 in.
2871
2877
2872 2004-06-18 Fernando Perez <fperez@colorado.edu>
2878 2004-06-18 Fernando Perez <fperez@colorado.edu>
2873
2879
2874 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2880 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2875 better message when 'exit' or 'quit' are typed (a common newbie
2881 better message when 'exit' or 'quit' are typed (a common newbie
2876 confusion).
2882 confusion).
2877
2883
2878 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2884 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2879 check for Windows users.
2885 check for Windows users.
2880
2886
2881 * IPython/iplib.py (InteractiveShell.user_setup): removed
2887 * IPython/iplib.py (InteractiveShell.user_setup): removed
2882 disabling of colors for Windows. I'll test at runtime and issue a
2888 disabling of colors for Windows. I'll test at runtime and issue a
2883 warning if Gary's readline isn't found, as to nudge users to
2889 warning if Gary's readline isn't found, as to nudge users to
2884 download it.
2890 download it.
2885
2891
2886 2004-06-16 Fernando Perez <fperez@colorado.edu>
2892 2004-06-16 Fernando Perez <fperez@colorado.edu>
2887
2893
2888 * IPython/genutils.py (Stream.__init__): changed to print errors
2894 * IPython/genutils.py (Stream.__init__): changed to print errors
2889 to sys.stderr. I had a circular dependency here. Now it's
2895 to sys.stderr. I had a circular dependency here. Now it's
2890 possible to run ipython as IDLE's shell (consider this pre-alpha,
2896 possible to run ipython as IDLE's shell (consider this pre-alpha,
2891 since true stdout things end up in the starting terminal instead
2897 since true stdout things end up in the starting terminal instead
2892 of IDLE's out).
2898 of IDLE's out).
2893
2899
2894 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2900 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2895 users who haven't # updated their prompt_in2 definitions. Remove
2901 users who haven't # updated their prompt_in2 definitions. Remove
2896 eventually.
2902 eventually.
2897 (multiple_replace): added credit to original ASPN recipe.
2903 (multiple_replace): added credit to original ASPN recipe.
2898
2904
2899 2004-06-15 Fernando Perez <fperez@colorado.edu>
2905 2004-06-15 Fernando Perez <fperez@colorado.edu>
2900
2906
2901 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2907 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2902 list of auto-defined aliases.
2908 list of auto-defined aliases.
2903
2909
2904 2004-06-13 Fernando Perez <fperez@colorado.edu>
2910 2004-06-13 Fernando Perez <fperez@colorado.edu>
2905
2911
2906 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2912 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2907 install was really requested (so setup.py can be used for other
2913 install was really requested (so setup.py can be used for other
2908 things under Windows).
2914 things under Windows).
2909
2915
2910 2004-06-10 Fernando Perez <fperez@colorado.edu>
2916 2004-06-10 Fernando Perez <fperez@colorado.edu>
2911
2917
2912 * IPython/Logger.py (Logger.create_log): Manually remove any old
2918 * IPython/Logger.py (Logger.create_log): Manually remove any old
2913 backup, since os.remove may fail under Windows. Fixes bug
2919 backup, since os.remove may fail under Windows. Fixes bug
2914 reported by Thorsten.
2920 reported by Thorsten.
2915
2921
2916 2004-06-09 Fernando Perez <fperez@colorado.edu>
2922 2004-06-09 Fernando Perez <fperez@colorado.edu>
2917
2923
2918 * examples/example-embed.py: fixed all references to %n (replaced
2924 * examples/example-embed.py: fixed all references to %n (replaced
2919 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2925 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2920 for all examples and the manual as well.
2926 for all examples and the manual as well.
2921
2927
2922 2004-06-08 Fernando Perez <fperez@colorado.edu>
2928 2004-06-08 Fernando Perez <fperez@colorado.edu>
2923
2929
2924 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2930 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2925 alignment and color management. All 3 prompt subsystems now
2931 alignment and color management. All 3 prompt subsystems now
2926 inherit from BasePrompt.
2932 inherit from BasePrompt.
2927
2933
2928 * tools/release: updates for windows installer build and tag rpms
2934 * tools/release: updates for windows installer build and tag rpms
2929 with python version (since paths are fixed).
2935 with python version (since paths are fixed).
2930
2936
2931 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2937 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2932 which will become eventually obsolete. Also fixed the default
2938 which will become eventually obsolete. Also fixed the default
2933 prompt_in2 to use \D, so at least new users start with the correct
2939 prompt_in2 to use \D, so at least new users start with the correct
2934 defaults.
2940 defaults.
2935 WARNING: Users with existing ipythonrc files will need to apply
2941 WARNING: Users with existing ipythonrc files will need to apply
2936 this fix manually!
2942 this fix manually!
2937
2943
2938 * setup.py: make windows installer (.exe). This is finally the
2944 * setup.py: make windows installer (.exe). This is finally the
2939 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2945 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2940 which I hadn't included because it required Python 2.3 (or recent
2946 which I hadn't included because it required Python 2.3 (or recent
2941 distutils).
2947 distutils).
2942
2948
2943 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2949 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2944 usage of new '\D' escape.
2950 usage of new '\D' escape.
2945
2951
2946 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2952 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2947 lacks os.getuid())
2953 lacks os.getuid())
2948 (CachedOutput.set_colors): Added the ability to turn coloring
2954 (CachedOutput.set_colors): Added the ability to turn coloring
2949 on/off with @colors even for manually defined prompt colors. It
2955 on/off with @colors even for manually defined prompt colors. It
2950 uses a nasty global, but it works safely and via the generic color
2956 uses a nasty global, but it works safely and via the generic color
2951 handling mechanism.
2957 handling mechanism.
2952 (Prompt2.__init__): Introduced new escape '\D' for continuation
2958 (Prompt2.__init__): Introduced new escape '\D' for continuation
2953 prompts. It represents the counter ('\#') as dots.
2959 prompts. It represents the counter ('\#') as dots.
2954 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2960 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
2955 need to update their ipythonrc files and replace '%n' with '\D' in
2961 need to update their ipythonrc files and replace '%n' with '\D' in
2956 their prompt_in2 settings everywhere. Sorry, but there's
2962 their prompt_in2 settings everywhere. Sorry, but there's
2957 otherwise no clean way to get all prompts to properly align. The
2963 otherwise no clean way to get all prompts to properly align. The
2958 ipythonrc shipped with IPython has been updated.
2964 ipythonrc shipped with IPython has been updated.
2959
2965
2960 2004-06-07 Fernando Perez <fperez@colorado.edu>
2966 2004-06-07 Fernando Perez <fperez@colorado.edu>
2961
2967
2962 * setup.py (isfile): Pass local_icons option to latex2html, so the
2968 * setup.py (isfile): Pass local_icons option to latex2html, so the
2963 resulting HTML file is self-contained. Thanks to
2969 resulting HTML file is self-contained. Thanks to
2964 dryice-AT-liu.com.cn for the tip.
2970 dryice-AT-liu.com.cn for the tip.
2965
2971
2966 * pysh.py: I created a new profile 'shell', which implements a
2972 * pysh.py: I created a new profile 'shell', which implements a
2967 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2973 _rudimentary_ IPython-based shell. This is in NO WAY a realy
2968 system shell, nor will it become one anytime soon. It's mainly
2974 system shell, nor will it become one anytime soon. It's mainly
2969 meant to illustrate the use of the new flexible bash-like prompts.
2975 meant to illustrate the use of the new flexible bash-like prompts.
2970 I guess it could be used by hardy souls for true shell management,
2976 I guess it could be used by hardy souls for true shell management,
2971 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2977 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
2972 profile. This uses the InterpreterExec extension provided by
2978 profile. This uses the InterpreterExec extension provided by
2973 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2979 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
2974
2980
2975 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2981 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
2976 auto-align itself with the length of the previous input prompt
2982 auto-align itself with the length of the previous input prompt
2977 (taking into account the invisible color escapes).
2983 (taking into account the invisible color escapes).
2978 (CachedOutput.__init__): Large restructuring of this class. Now
2984 (CachedOutput.__init__): Large restructuring of this class. Now
2979 all three prompts (primary1, primary2, output) are proper objects,
2985 all three prompts (primary1, primary2, output) are proper objects,
2980 managed by the 'parent' CachedOutput class. The code is still a
2986 managed by the 'parent' CachedOutput class. The code is still a
2981 bit hackish (all prompts share state via a pointer to the cache),
2987 bit hackish (all prompts share state via a pointer to the cache),
2982 but it's overall far cleaner than before.
2988 but it's overall far cleaner than before.
2983
2989
2984 * IPython/genutils.py (getoutputerror): modified to add verbose,
2990 * IPython/genutils.py (getoutputerror): modified to add verbose,
2985 debug and header options. This makes the interface of all getout*
2991 debug and header options. This makes the interface of all getout*
2986 functions uniform.
2992 functions uniform.
2987 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2993 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
2988
2994
2989 * IPython/Magic.py (Magic.default_option): added a function to
2995 * IPython/Magic.py (Magic.default_option): added a function to
2990 allow registering default options for any magic command. This
2996 allow registering default options for any magic command. This
2991 makes it easy to have profiles which customize the magics globally
2997 makes it easy to have profiles which customize the magics globally
2992 for a certain use. The values set through this function are
2998 for a certain use. The values set through this function are
2993 picked up by the parse_options() method, which all magics should
2999 picked up by the parse_options() method, which all magics should
2994 use to parse their options.
3000 use to parse their options.
2995
3001
2996 * IPython/genutils.py (warn): modified the warnings framework to
3002 * IPython/genutils.py (warn): modified the warnings framework to
2997 use the Term I/O class. I'm trying to slowly unify all of
3003 use the Term I/O class. I'm trying to slowly unify all of
2998 IPython's I/O operations to pass through Term.
3004 IPython's I/O operations to pass through Term.
2999
3005
3000 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3006 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3001 the secondary prompt to correctly match the length of the primary
3007 the secondary prompt to correctly match the length of the primary
3002 one for any prompt. Now multi-line code will properly line up
3008 one for any prompt. Now multi-line code will properly line up
3003 even for path dependent prompts, such as the new ones available
3009 even for path dependent prompts, such as the new ones available
3004 via the prompt_specials.
3010 via the prompt_specials.
3005
3011
3006 2004-06-06 Fernando Perez <fperez@colorado.edu>
3012 2004-06-06 Fernando Perez <fperez@colorado.edu>
3007
3013
3008 * IPython/Prompts.py (prompt_specials): Added the ability to have
3014 * IPython/Prompts.py (prompt_specials): Added the ability to have
3009 bash-like special sequences in the prompts, which get
3015 bash-like special sequences in the prompts, which get
3010 automatically expanded. Things like hostname, current working
3016 automatically expanded. Things like hostname, current working
3011 directory and username are implemented already, but it's easy to
3017 directory and username are implemented already, but it's easy to
3012 add more in the future. Thanks to a patch by W.J. van der Laan
3018 add more in the future. Thanks to a patch by W.J. van der Laan
3013 <gnufnork-AT-hetdigitalegat.nl>
3019 <gnufnork-AT-hetdigitalegat.nl>
3014 (prompt_specials): Added color support for prompt strings, so
3020 (prompt_specials): Added color support for prompt strings, so
3015 users can define arbitrary color setups for their prompts.
3021 users can define arbitrary color setups for their prompts.
3016
3022
3017 2004-06-05 Fernando Perez <fperez@colorado.edu>
3023 2004-06-05 Fernando Perez <fperez@colorado.edu>
3018
3024
3019 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3025 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3020 code to load Gary Bishop's readline and configure it
3026 code to load Gary Bishop's readline and configure it
3021 automatically. Thanks to Gary for help on this.
3027 automatically. Thanks to Gary for help on this.
3022
3028
3023 2004-06-01 Fernando Perez <fperez@colorado.edu>
3029 2004-06-01 Fernando Perez <fperez@colorado.edu>
3024
3030
3025 * IPython/Logger.py (Logger.create_log): fix bug for logging
3031 * IPython/Logger.py (Logger.create_log): fix bug for logging
3026 with no filename (previous fix was incomplete).
3032 with no filename (previous fix was incomplete).
3027
3033
3028 2004-05-25 Fernando Perez <fperez@colorado.edu>
3034 2004-05-25 Fernando Perez <fperez@colorado.edu>
3029
3035
3030 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3036 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3031 parens would get passed to the shell.
3037 parens would get passed to the shell.
3032
3038
3033 2004-05-20 Fernando Perez <fperez@colorado.edu>
3039 2004-05-20 Fernando Perez <fperez@colorado.edu>
3034
3040
3035 * IPython/Magic.py (Magic.magic_prun): changed default profile
3041 * IPython/Magic.py (Magic.magic_prun): changed default profile
3036 sort order to 'time' (the more common profiling need).
3042 sort order to 'time' (the more common profiling need).
3037
3043
3038 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3044 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3039 so that source code shown is guaranteed in sync with the file on
3045 so that source code shown is guaranteed in sync with the file on
3040 disk (also changed in psource). Similar fix to the one for
3046 disk (also changed in psource). Similar fix to the one for
3041 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3047 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3042 <yann.ledu-AT-noos.fr>.
3048 <yann.ledu-AT-noos.fr>.
3043
3049
3044 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3050 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3045 with a single option would not be correctly parsed. Closes
3051 with a single option would not be correctly parsed. Closes
3046 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3052 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3047 introduced in 0.6.0 (on 2004-05-06).
3053 introduced in 0.6.0 (on 2004-05-06).
3048
3054
3049 2004-05-13 *** Released version 0.6.0
3055 2004-05-13 *** Released version 0.6.0
3050
3056
3051 2004-05-13 Fernando Perez <fperez@colorado.edu>
3057 2004-05-13 Fernando Perez <fperez@colorado.edu>
3052
3058
3053 * debian/: Added debian/ directory to CVS, so that debian support
3059 * debian/: Added debian/ directory to CVS, so that debian support
3054 is publicly accessible. The debian package is maintained by Jack
3060 is publicly accessible. The debian package is maintained by Jack
3055 Moffit <jack-AT-xiph.org>.
3061 Moffit <jack-AT-xiph.org>.
3056
3062
3057 * Documentation: included the notes about an ipython-based system
3063 * Documentation: included the notes about an ipython-based system
3058 shell (the hypothetical 'pysh') into the new_design.pdf document,
3064 shell (the hypothetical 'pysh') into the new_design.pdf document,
3059 so that these ideas get distributed to users along with the
3065 so that these ideas get distributed to users along with the
3060 official documentation.
3066 official documentation.
3061
3067
3062 2004-05-10 Fernando Perez <fperez@colorado.edu>
3068 2004-05-10 Fernando Perez <fperez@colorado.edu>
3063
3069
3064 * IPython/Logger.py (Logger.create_log): fix recently introduced
3070 * IPython/Logger.py (Logger.create_log): fix recently introduced
3065 bug (misindented line) where logstart would fail when not given an
3071 bug (misindented line) where logstart would fail when not given an
3066 explicit filename.
3072 explicit filename.
3067
3073
3068 2004-05-09 Fernando Perez <fperez@colorado.edu>
3074 2004-05-09 Fernando Perez <fperez@colorado.edu>
3069
3075
3070 * IPython/Magic.py (Magic.parse_options): skip system call when
3076 * IPython/Magic.py (Magic.parse_options): skip system call when
3071 there are no options to look for. Faster, cleaner for the common
3077 there are no options to look for. Faster, cleaner for the common
3072 case.
3078 case.
3073
3079
3074 * Documentation: many updates to the manual: describing Windows
3080 * Documentation: many updates to the manual: describing Windows
3075 support better, Gnuplot updates, credits, misc small stuff. Also
3081 support better, Gnuplot updates, credits, misc small stuff. Also
3076 updated the new_design doc a bit.
3082 updated the new_design doc a bit.
3077
3083
3078 2004-05-06 *** Released version 0.6.0.rc1
3084 2004-05-06 *** Released version 0.6.0.rc1
3079
3085
3080 2004-05-06 Fernando Perez <fperez@colorado.edu>
3086 2004-05-06 Fernando Perez <fperez@colorado.edu>
3081
3087
3082 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3088 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3083 operations to use the vastly more efficient list/''.join() method.
3089 operations to use the vastly more efficient list/''.join() method.
3084 (FormattedTB.text): Fix
3090 (FormattedTB.text): Fix
3085 http://www.scipy.net/roundup/ipython/issue12 - exception source
3091 http://www.scipy.net/roundup/ipython/issue12 - exception source
3086 extract not updated after reload. Thanks to Mike Salib
3092 extract not updated after reload. Thanks to Mike Salib
3087 <msalib-AT-mit.edu> for pinning the source of the problem.
3093 <msalib-AT-mit.edu> for pinning the source of the problem.
3088 Fortunately, the solution works inside ipython and doesn't require
3094 Fortunately, the solution works inside ipython and doesn't require
3089 any changes to python proper.
3095 any changes to python proper.
3090
3096
3091 * IPython/Magic.py (Magic.parse_options): Improved to process the
3097 * IPython/Magic.py (Magic.parse_options): Improved to process the
3092 argument list as a true shell would (by actually using the
3098 argument list as a true shell would (by actually using the
3093 underlying system shell). This way, all @magics automatically get
3099 underlying system shell). This way, all @magics automatically get
3094 shell expansion for variables. Thanks to a comment by Alex
3100 shell expansion for variables. Thanks to a comment by Alex
3095 Schmolck.
3101 Schmolck.
3096
3102
3097 2004-04-04 Fernando Perez <fperez@colorado.edu>
3103 2004-04-04 Fernando Perez <fperez@colorado.edu>
3098
3104
3099 * IPython/iplib.py (InteractiveShell.interact): Added a special
3105 * IPython/iplib.py (InteractiveShell.interact): Added a special
3100 trap for a debugger quit exception, which is basically impossible
3106 trap for a debugger quit exception, which is basically impossible
3101 to handle by normal mechanisms, given what pdb does to the stack.
3107 to handle by normal mechanisms, given what pdb does to the stack.
3102 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3108 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3103
3109
3104 2004-04-03 Fernando Perez <fperez@colorado.edu>
3110 2004-04-03 Fernando Perez <fperez@colorado.edu>
3105
3111
3106 * IPython/genutils.py (Term): Standardized the names of the Term
3112 * IPython/genutils.py (Term): Standardized the names of the Term
3107 class streams to cin/cout/cerr, following C++ naming conventions
3113 class streams to cin/cout/cerr, following C++ naming conventions
3108 (I can't use in/out/err because 'in' is not a valid attribute
3114 (I can't use in/out/err because 'in' is not a valid attribute
3109 name).
3115 name).
3110
3116
3111 * IPython/iplib.py (InteractiveShell.interact): don't increment
3117 * IPython/iplib.py (InteractiveShell.interact): don't increment
3112 the prompt if there's no user input. By Daniel 'Dang' Griffith
3118 the prompt if there's no user input. By Daniel 'Dang' Griffith
3113 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3119 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3114 Francois Pinard.
3120 Francois Pinard.
3115
3121
3116 2004-04-02 Fernando Perez <fperez@colorado.edu>
3122 2004-04-02 Fernando Perez <fperez@colorado.edu>
3117
3123
3118 * IPython/genutils.py (Stream.__init__): Modified to survive at
3124 * IPython/genutils.py (Stream.__init__): Modified to survive at
3119 least importing in contexts where stdin/out/err aren't true file
3125 least importing in contexts where stdin/out/err aren't true file
3120 objects, such as PyCrust (they lack fileno() and mode). However,
3126 objects, such as PyCrust (they lack fileno() and mode). However,
3121 the recovery facilities which rely on these things existing will
3127 the recovery facilities which rely on these things existing will
3122 not work.
3128 not work.
3123
3129
3124 2004-04-01 Fernando Perez <fperez@colorado.edu>
3130 2004-04-01 Fernando Perez <fperez@colorado.edu>
3125
3131
3126 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3132 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3127 use the new getoutputerror() function, so it properly
3133 use the new getoutputerror() function, so it properly
3128 distinguishes stdout/err.
3134 distinguishes stdout/err.
3129
3135
3130 * IPython/genutils.py (getoutputerror): added a function to
3136 * IPython/genutils.py (getoutputerror): added a function to
3131 capture separately the standard output and error of a command.
3137 capture separately the standard output and error of a command.
3132 After a comment from dang on the mailing lists. This code is
3138 After a comment from dang on the mailing lists. This code is
3133 basically a modified version of commands.getstatusoutput(), from
3139 basically a modified version of commands.getstatusoutput(), from
3134 the standard library.
3140 the standard library.
3135
3141
3136 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3142 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3137 '!!' as a special syntax (shorthand) to access @sx.
3143 '!!' as a special syntax (shorthand) to access @sx.
3138
3144
3139 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3145 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3140 command and return its output as a list split on '\n'.
3146 command and return its output as a list split on '\n'.
3141
3147
3142 2004-03-31 Fernando Perez <fperez@colorado.edu>
3148 2004-03-31 Fernando Perez <fperez@colorado.edu>
3143
3149
3144 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3150 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3145 method to dictionaries used as FakeModule instances if they lack
3151 method to dictionaries used as FakeModule instances if they lack
3146 it. At least pydoc in python2.3 breaks for runtime-defined
3152 it. At least pydoc in python2.3 breaks for runtime-defined
3147 functions without this hack. At some point I need to _really_
3153 functions without this hack. At some point I need to _really_
3148 understand what FakeModule is doing, because it's a gross hack.
3154 understand what FakeModule is doing, because it's a gross hack.
3149 But it solves Arnd's problem for now...
3155 But it solves Arnd's problem for now...
3150
3156
3151 2004-02-27 Fernando Perez <fperez@colorado.edu>
3157 2004-02-27 Fernando Perez <fperez@colorado.edu>
3152
3158
3153 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3159 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3154 mode would behave erratically. Also increased the number of
3160 mode would behave erratically. Also increased the number of
3155 possible logs in rotate mod to 999. Thanks to Rod Holland
3161 possible logs in rotate mod to 999. Thanks to Rod Holland
3156 <rhh@StructureLABS.com> for the report and fixes.
3162 <rhh@StructureLABS.com> for the report and fixes.
3157
3163
3158 2004-02-26 Fernando Perez <fperez@colorado.edu>
3164 2004-02-26 Fernando Perez <fperez@colorado.edu>
3159
3165
3160 * IPython/genutils.py (page): Check that the curses module really
3166 * IPython/genutils.py (page): Check that the curses module really
3161 has the initscr attribute before trying to use it. For some
3167 has the initscr attribute before trying to use it. For some
3162 reason, the Solaris curses module is missing this. I think this
3168 reason, the Solaris curses module is missing this. I think this
3163 should be considered a Solaris python bug, but I'm not sure.
3169 should be considered a Solaris python bug, but I'm not sure.
3164
3170
3165 2004-01-17 Fernando Perez <fperez@colorado.edu>
3171 2004-01-17 Fernando Perez <fperez@colorado.edu>
3166
3172
3167 * IPython/genutils.py (Stream.__init__): Changes to try to make
3173 * IPython/genutils.py (Stream.__init__): Changes to try to make
3168 ipython robust against stdin/out/err being closed by the user.
3174 ipython robust against stdin/out/err being closed by the user.
3169 This is 'user error' (and blocks a normal python session, at least
3175 This is 'user error' (and blocks a normal python session, at least
3170 the stdout case). However, Ipython should be able to survive such
3176 the stdout case). However, Ipython should be able to survive such
3171 instances of abuse as gracefully as possible. To simplify the
3177 instances of abuse as gracefully as possible. To simplify the
3172 coding and maintain compatibility with Gary Bishop's Term
3178 coding and maintain compatibility with Gary Bishop's Term
3173 contributions, I've made use of classmethods for this. I think
3179 contributions, I've made use of classmethods for this. I think
3174 this introduces a dependency on python 2.2.
3180 this introduces a dependency on python 2.2.
3175
3181
3176 2004-01-13 Fernando Perez <fperez@colorado.edu>
3182 2004-01-13 Fernando Perez <fperez@colorado.edu>
3177
3183
3178 * IPython/numutils.py (exp_safe): simplified the code a bit and
3184 * IPython/numutils.py (exp_safe): simplified the code a bit and
3179 removed the need for importing the kinds module altogether.
3185 removed the need for importing the kinds module altogether.
3180
3186
3181 2004-01-06 Fernando Perez <fperez@colorado.edu>
3187 2004-01-06 Fernando Perez <fperez@colorado.edu>
3182
3188
3183 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3189 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3184 a magic function instead, after some community feedback. No
3190 a magic function instead, after some community feedback. No
3185 special syntax will exist for it, but its name is deliberately
3191 special syntax will exist for it, but its name is deliberately
3186 very short.
3192 very short.
3187
3193
3188 2003-12-20 Fernando Perez <fperez@colorado.edu>
3194 2003-12-20 Fernando Perez <fperez@colorado.edu>
3189
3195
3190 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3196 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3191 new functionality, to automagically assign the result of a shell
3197 new functionality, to automagically assign the result of a shell
3192 command to a variable. I'll solicit some community feedback on
3198 command to a variable. I'll solicit some community feedback on
3193 this before making it permanent.
3199 this before making it permanent.
3194
3200
3195 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3201 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3196 requested about callables for which inspect couldn't obtain a
3202 requested about callables for which inspect couldn't obtain a
3197 proper argspec. Thanks to a crash report sent by Etienne
3203 proper argspec. Thanks to a crash report sent by Etienne
3198 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3204 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3199
3205
3200 2003-12-09 Fernando Perez <fperez@colorado.edu>
3206 2003-12-09 Fernando Perez <fperez@colorado.edu>
3201
3207
3202 * IPython/genutils.py (page): patch for the pager to work across
3208 * IPython/genutils.py (page): patch for the pager to work across
3203 various versions of Windows. By Gary Bishop.
3209 various versions of Windows. By Gary Bishop.
3204
3210
3205 2003-12-04 Fernando Perez <fperez@colorado.edu>
3211 2003-12-04 Fernando Perez <fperez@colorado.edu>
3206
3212
3207 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3213 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3208 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3214 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3209 While I tested this and it looks ok, there may still be corner
3215 While I tested this and it looks ok, there may still be corner
3210 cases I've missed.
3216 cases I've missed.
3211
3217
3212 2003-12-01 Fernando Perez <fperez@colorado.edu>
3218 2003-12-01 Fernando Perez <fperez@colorado.edu>
3213
3219
3214 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3220 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3215 where a line like 'p,q=1,2' would fail because the automagic
3221 where a line like 'p,q=1,2' would fail because the automagic
3216 system would be triggered for @p.
3222 system would be triggered for @p.
3217
3223
3218 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3224 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3219 cleanups, code unmodified.
3225 cleanups, code unmodified.
3220
3226
3221 * IPython/genutils.py (Term): added a class for IPython to handle
3227 * IPython/genutils.py (Term): added a class for IPython to handle
3222 output. In most cases it will just be a proxy for stdout/err, but
3228 output. In most cases it will just be a proxy for stdout/err, but
3223 having this allows modifications to be made for some platforms,
3229 having this allows modifications to be made for some platforms,
3224 such as handling color escapes under Windows. All of this code
3230 such as handling color escapes under Windows. All of this code
3225 was contributed by Gary Bishop, with minor modifications by me.
3231 was contributed by Gary Bishop, with minor modifications by me.
3226 The actual changes affect many files.
3232 The actual changes affect many files.
3227
3233
3228 2003-11-30 Fernando Perez <fperez@colorado.edu>
3234 2003-11-30 Fernando Perez <fperez@colorado.edu>
3229
3235
3230 * IPython/iplib.py (file_matches): new completion code, courtesy
3236 * IPython/iplib.py (file_matches): new completion code, courtesy
3231 of Jeff Collins. This enables filename completion again under
3237 of Jeff Collins. This enables filename completion again under
3232 python 2.3, which disabled it at the C level.
3238 python 2.3, which disabled it at the C level.
3233
3239
3234 2003-11-11 Fernando Perez <fperez@colorado.edu>
3240 2003-11-11 Fernando Perez <fperez@colorado.edu>
3235
3241
3236 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3242 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3237 for Numeric.array(map(...)), but often convenient.
3243 for Numeric.array(map(...)), but often convenient.
3238
3244
3239 2003-11-05 Fernando Perez <fperez@colorado.edu>
3245 2003-11-05 Fernando Perez <fperez@colorado.edu>
3240
3246
3241 * IPython/numutils.py (frange): Changed a call from int() to
3247 * IPython/numutils.py (frange): Changed a call from int() to
3242 int(round()) to prevent a problem reported with arange() in the
3248 int(round()) to prevent a problem reported with arange() in the
3243 numpy list.
3249 numpy list.
3244
3250
3245 2003-10-06 Fernando Perez <fperez@colorado.edu>
3251 2003-10-06 Fernando Perez <fperez@colorado.edu>
3246
3252
3247 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3253 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3248 prevent crashes if sys lacks an argv attribute (it happens with
3254 prevent crashes if sys lacks an argv attribute (it happens with
3249 embedded interpreters which build a bare-bones sys module).
3255 embedded interpreters which build a bare-bones sys module).
3250 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3256 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3251
3257
3252 2003-09-24 Fernando Perez <fperez@colorado.edu>
3258 2003-09-24 Fernando Perez <fperez@colorado.edu>
3253
3259
3254 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3260 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3255 to protect against poorly written user objects where __getattr__
3261 to protect against poorly written user objects where __getattr__
3256 raises exceptions other than AttributeError. Thanks to a bug
3262 raises exceptions other than AttributeError. Thanks to a bug
3257 report by Oliver Sander <osander-AT-gmx.de>.
3263 report by Oliver Sander <osander-AT-gmx.de>.
3258
3264
3259 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3265 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3260 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3266 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3261
3267
3262 2003-09-09 Fernando Perez <fperez@colorado.edu>
3268 2003-09-09 Fernando Perez <fperez@colorado.edu>
3263
3269
3264 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3270 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3265 unpacking a list whith a callable as first element would
3271 unpacking a list whith a callable as first element would
3266 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3272 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3267 Collins.
3273 Collins.
3268
3274
3269 2003-08-25 *** Released version 0.5.0
3275 2003-08-25 *** Released version 0.5.0
3270
3276
3271 2003-08-22 Fernando Perez <fperez@colorado.edu>
3277 2003-08-22 Fernando Perez <fperez@colorado.edu>
3272
3278
3273 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3279 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3274 improperly defined user exceptions. Thanks to feedback from Mark
3280 improperly defined user exceptions. Thanks to feedback from Mark
3275 Russell <mrussell-AT-verio.net>.
3281 Russell <mrussell-AT-verio.net>.
3276
3282
3277 2003-08-20 Fernando Perez <fperez@colorado.edu>
3283 2003-08-20 Fernando Perez <fperez@colorado.edu>
3278
3284
3279 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3285 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3280 printing so that it would print multi-line string forms starting
3286 printing so that it would print multi-line string forms starting
3281 with a new line. This way the formatting is better respected for
3287 with a new line. This way the formatting is better respected for
3282 objects which work hard to make nice string forms.
3288 objects which work hard to make nice string forms.
3283
3289
3284 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3290 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3285 autocall would overtake data access for objects with both
3291 autocall would overtake data access for objects with both
3286 __getitem__ and __call__.
3292 __getitem__ and __call__.
3287
3293
3288 2003-08-19 *** Released version 0.5.0-rc1
3294 2003-08-19 *** Released version 0.5.0-rc1
3289
3295
3290 2003-08-19 Fernando Perez <fperez@colorado.edu>
3296 2003-08-19 Fernando Perez <fperez@colorado.edu>
3291
3297
3292 * IPython/deep_reload.py (load_tail): single tiny change here
3298 * IPython/deep_reload.py (load_tail): single tiny change here
3293 seems to fix the long-standing bug of dreload() failing to work
3299 seems to fix the long-standing bug of dreload() failing to work
3294 for dotted names. But this module is pretty tricky, so I may have
3300 for dotted names. But this module is pretty tricky, so I may have
3295 missed some subtlety. Needs more testing!.
3301 missed some subtlety. Needs more testing!.
3296
3302
3297 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3303 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3298 exceptions which have badly implemented __str__ methods.
3304 exceptions which have badly implemented __str__ methods.
3299 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3305 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3300 which I've been getting reports about from Python 2.3 users. I
3306 which I've been getting reports about from Python 2.3 users. I
3301 wish I had a simple test case to reproduce the problem, so I could
3307 wish I had a simple test case to reproduce the problem, so I could
3302 either write a cleaner workaround or file a bug report if
3308 either write a cleaner workaround or file a bug report if
3303 necessary.
3309 necessary.
3304
3310
3305 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3311 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3306 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3312 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3307 a bug report by Tjabo Kloppenburg.
3313 a bug report by Tjabo Kloppenburg.
3308
3314
3309 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3315 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3310 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3316 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3311 seems rather unstable. Thanks to a bug report by Tjabo
3317 seems rather unstable. Thanks to a bug report by Tjabo
3312 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3318 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3313
3319
3314 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3320 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3315 this out soon because of the critical fixes in the inner loop for
3321 this out soon because of the critical fixes in the inner loop for
3316 generators.
3322 generators.
3317
3323
3318 * IPython/Magic.py (Magic.getargspec): removed. This (and
3324 * IPython/Magic.py (Magic.getargspec): removed. This (and
3319 _get_def) have been obsoleted by OInspect for a long time, I
3325 _get_def) have been obsoleted by OInspect for a long time, I
3320 hadn't noticed that they were dead code.
3326 hadn't noticed that they were dead code.
3321 (Magic._ofind): restored _ofind functionality for a few literals
3327 (Magic._ofind): restored _ofind functionality for a few literals
3322 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3328 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3323 for things like "hello".capitalize?, since that would require a
3329 for things like "hello".capitalize?, since that would require a
3324 potentially dangerous eval() again.
3330 potentially dangerous eval() again.
3325
3331
3326 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3332 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3327 logic a bit more to clean up the escapes handling and minimize the
3333 logic a bit more to clean up the escapes handling and minimize the
3328 use of _ofind to only necessary cases. The interactive 'feel' of
3334 use of _ofind to only necessary cases. The interactive 'feel' of
3329 IPython should have improved quite a bit with the changes in
3335 IPython should have improved quite a bit with the changes in
3330 _prefilter and _ofind (besides being far safer than before).
3336 _prefilter and _ofind (besides being far safer than before).
3331
3337
3332 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3338 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3333 obscure, never reported). Edit would fail to find the object to
3339 obscure, never reported). Edit would fail to find the object to
3334 edit under some circumstances.
3340 edit under some circumstances.
3335 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3341 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3336 which were causing double-calling of generators. Those eval calls
3342 which were causing double-calling of generators. Those eval calls
3337 were _very_ dangerous, since code with side effects could be
3343 were _very_ dangerous, since code with side effects could be
3338 triggered. As they say, 'eval is evil'... These were the
3344 triggered. As they say, 'eval is evil'... These were the
3339 nastiest evals in IPython. Besides, _ofind is now far simpler,
3345 nastiest evals in IPython. Besides, _ofind is now far simpler,
3340 and it should also be quite a bit faster. Its use of inspect is
3346 and it should also be quite a bit faster. Its use of inspect is
3341 also safer, so perhaps some of the inspect-related crashes I've
3347 also safer, so perhaps some of the inspect-related crashes I've
3342 seen lately with Python 2.3 might be taken care of. That will
3348 seen lately with Python 2.3 might be taken care of. That will
3343 need more testing.
3349 need more testing.
3344
3350
3345 2003-08-17 Fernando Perez <fperez@colorado.edu>
3351 2003-08-17 Fernando Perez <fperez@colorado.edu>
3346
3352
3347 * IPython/iplib.py (InteractiveShell._prefilter): significant
3353 * IPython/iplib.py (InteractiveShell._prefilter): significant
3348 simplifications to the logic for handling user escapes. Faster
3354 simplifications to the logic for handling user escapes. Faster
3349 and simpler code.
3355 and simpler code.
3350
3356
3351 2003-08-14 Fernando Perez <fperez@colorado.edu>
3357 2003-08-14 Fernando Perez <fperez@colorado.edu>
3352
3358
3353 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3359 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3354 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3360 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3355 but it should be quite a bit faster. And the recursive version
3361 but it should be quite a bit faster. And the recursive version
3356 generated O(log N) intermediate storage for all rank>1 arrays,
3362 generated O(log N) intermediate storage for all rank>1 arrays,
3357 even if they were contiguous.
3363 even if they were contiguous.
3358 (l1norm): Added this function.
3364 (l1norm): Added this function.
3359 (norm): Added this function for arbitrary norms (including
3365 (norm): Added this function for arbitrary norms (including
3360 l-infinity). l1 and l2 are still special cases for convenience
3366 l-infinity). l1 and l2 are still special cases for convenience
3361 and speed.
3367 and speed.
3362
3368
3363 2003-08-03 Fernando Perez <fperez@colorado.edu>
3369 2003-08-03 Fernando Perez <fperez@colorado.edu>
3364
3370
3365 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3371 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3366 exceptions, which now raise PendingDeprecationWarnings in Python
3372 exceptions, which now raise PendingDeprecationWarnings in Python
3367 2.3. There were some in Magic and some in Gnuplot2.
3373 2.3. There were some in Magic and some in Gnuplot2.
3368
3374
3369 2003-06-30 Fernando Perez <fperez@colorado.edu>
3375 2003-06-30 Fernando Perez <fperez@colorado.edu>
3370
3376
3371 * IPython/genutils.py (page): modified to call curses only for
3377 * IPython/genutils.py (page): modified to call curses only for
3372 terminals where TERM=='xterm'. After problems under many other
3378 terminals where TERM=='xterm'. After problems under many other
3373 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3379 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3374
3380
3375 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3381 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3376 would be triggered when readline was absent. This was just an old
3382 would be triggered when readline was absent. This was just an old
3377 debugging statement I'd forgotten to take out.
3383 debugging statement I'd forgotten to take out.
3378
3384
3379 2003-06-20 Fernando Perez <fperez@colorado.edu>
3385 2003-06-20 Fernando Perez <fperez@colorado.edu>
3380
3386
3381 * IPython/genutils.py (clock): modified to return only user time
3387 * IPython/genutils.py (clock): modified to return only user time
3382 (not counting system time), after a discussion on scipy. While
3388 (not counting system time), after a discussion on scipy. While
3383 system time may be a useful quantity occasionally, it may much
3389 system time may be a useful quantity occasionally, it may much
3384 more easily be skewed by occasional swapping or other similar
3390 more easily be skewed by occasional swapping or other similar
3385 activity.
3391 activity.
3386
3392
3387 2003-06-05 Fernando Perez <fperez@colorado.edu>
3393 2003-06-05 Fernando Perez <fperez@colorado.edu>
3388
3394
3389 * IPython/numutils.py (identity): new function, for building
3395 * IPython/numutils.py (identity): new function, for building
3390 arbitrary rank Kronecker deltas (mostly backwards compatible with
3396 arbitrary rank Kronecker deltas (mostly backwards compatible with
3391 Numeric.identity)
3397 Numeric.identity)
3392
3398
3393 2003-06-03 Fernando Perez <fperez@colorado.edu>
3399 2003-06-03 Fernando Perez <fperez@colorado.edu>
3394
3400
3395 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3401 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3396 arguments passed to magics with spaces, to allow trailing '\' to
3402 arguments passed to magics with spaces, to allow trailing '\' to
3397 work normally (mainly for Windows users).
3403 work normally (mainly for Windows users).
3398
3404
3399 2003-05-29 Fernando Perez <fperez@colorado.edu>
3405 2003-05-29 Fernando Perez <fperez@colorado.edu>
3400
3406
3401 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3407 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3402 instead of pydoc.help. This fixes a bizarre behavior where
3408 instead of pydoc.help. This fixes a bizarre behavior where
3403 printing '%s' % locals() would trigger the help system. Now
3409 printing '%s' % locals() would trigger the help system. Now
3404 ipython behaves like normal python does.
3410 ipython behaves like normal python does.
3405
3411
3406 Note that if one does 'from pydoc import help', the bizarre
3412 Note that if one does 'from pydoc import help', the bizarre
3407 behavior returns, but this will also happen in normal python, so
3413 behavior returns, but this will also happen in normal python, so
3408 it's not an ipython bug anymore (it has to do with how pydoc.help
3414 it's not an ipython bug anymore (it has to do with how pydoc.help
3409 is implemented).
3415 is implemented).
3410
3416
3411 2003-05-22 Fernando Perez <fperez@colorado.edu>
3417 2003-05-22 Fernando Perez <fperez@colorado.edu>
3412
3418
3413 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3419 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3414 return [] instead of None when nothing matches, also match to end
3420 return [] instead of None when nothing matches, also match to end
3415 of line. Patch by Gary Bishop.
3421 of line. Patch by Gary Bishop.
3416
3422
3417 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3423 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3418 protection as before, for files passed on the command line. This
3424 protection as before, for files passed on the command line. This
3419 prevents the CrashHandler from kicking in if user files call into
3425 prevents the CrashHandler from kicking in if user files call into
3420 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3426 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3421 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3427 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3422
3428
3423 2003-05-20 *** Released version 0.4.0
3429 2003-05-20 *** Released version 0.4.0
3424
3430
3425 2003-05-20 Fernando Perez <fperez@colorado.edu>
3431 2003-05-20 Fernando Perez <fperez@colorado.edu>
3426
3432
3427 * setup.py: added support for manpages. It's a bit hackish b/c of
3433 * setup.py: added support for manpages. It's a bit hackish b/c of
3428 a bug in the way the bdist_rpm distutils target handles gzipped
3434 a bug in the way the bdist_rpm distutils target handles gzipped
3429 manpages, but it works. After a patch by Jack.
3435 manpages, but it works. After a patch by Jack.
3430
3436
3431 2003-05-19 Fernando Perez <fperez@colorado.edu>
3437 2003-05-19 Fernando Perez <fperez@colorado.edu>
3432
3438
3433 * IPython/numutils.py: added a mockup of the kinds module, since
3439 * IPython/numutils.py: added a mockup of the kinds module, since
3434 it was recently removed from Numeric. This way, numutils will
3440 it was recently removed from Numeric. This way, numutils will
3435 work for all users even if they are missing kinds.
3441 work for all users even if they are missing kinds.
3436
3442
3437 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3443 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3438 failure, which can occur with SWIG-wrapped extensions. After a
3444 failure, which can occur with SWIG-wrapped extensions. After a
3439 crash report from Prabhu.
3445 crash report from Prabhu.
3440
3446
3441 2003-05-16 Fernando Perez <fperez@colorado.edu>
3447 2003-05-16 Fernando Perez <fperez@colorado.edu>
3442
3448
3443 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3449 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3444 protect ipython from user code which may call directly
3450 protect ipython from user code which may call directly
3445 sys.excepthook (this looks like an ipython crash to the user, even
3451 sys.excepthook (this looks like an ipython crash to the user, even
3446 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3452 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3447 This is especially important to help users of WxWindows, but may
3453 This is especially important to help users of WxWindows, but may
3448 also be useful in other cases.
3454 also be useful in other cases.
3449
3455
3450 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3456 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3451 an optional tb_offset to be specified, and to preserve exception
3457 an optional tb_offset to be specified, and to preserve exception
3452 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3458 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3453
3459
3454 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3460 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3455
3461
3456 2003-05-15 Fernando Perez <fperez@colorado.edu>
3462 2003-05-15 Fernando Perez <fperez@colorado.edu>
3457
3463
3458 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3464 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3459 installing for a new user under Windows.
3465 installing for a new user under Windows.
3460
3466
3461 2003-05-12 Fernando Perez <fperez@colorado.edu>
3467 2003-05-12 Fernando Perez <fperez@colorado.edu>
3462
3468
3463 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3469 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3464 handler for Emacs comint-based lines. Currently it doesn't do
3470 handler for Emacs comint-based lines. Currently it doesn't do
3465 much (but importantly, it doesn't update the history cache). In
3471 much (but importantly, it doesn't update the history cache). In
3466 the future it may be expanded if Alex needs more functionality
3472 the future it may be expanded if Alex needs more functionality
3467 there.
3473 there.
3468
3474
3469 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3475 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3470 info to crash reports.
3476 info to crash reports.
3471
3477
3472 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3478 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3473 just like Python's -c. Also fixed crash with invalid -color
3479 just like Python's -c. Also fixed crash with invalid -color
3474 option value at startup. Thanks to Will French
3480 option value at startup. Thanks to Will French
3475 <wfrench-AT-bestweb.net> for the bug report.
3481 <wfrench-AT-bestweb.net> for the bug report.
3476
3482
3477 2003-05-09 Fernando Perez <fperez@colorado.edu>
3483 2003-05-09 Fernando Perez <fperez@colorado.edu>
3478
3484
3479 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3485 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3480 to EvalDict (it's a mapping, after all) and simplified its code
3486 to EvalDict (it's a mapping, after all) and simplified its code
3481 quite a bit, after a nice discussion on c.l.py where Gustavo
3487 quite a bit, after a nice discussion on c.l.py where Gustavo
3482 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3488 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3483
3489
3484 2003-04-30 Fernando Perez <fperez@colorado.edu>
3490 2003-04-30 Fernando Perez <fperez@colorado.edu>
3485
3491
3486 * IPython/genutils.py (timings_out): modified it to reduce its
3492 * IPython/genutils.py (timings_out): modified it to reduce its
3487 overhead in the common reps==1 case.
3493 overhead in the common reps==1 case.
3488
3494
3489 2003-04-29 Fernando Perez <fperez@colorado.edu>
3495 2003-04-29 Fernando Perez <fperez@colorado.edu>
3490
3496
3491 * IPython/genutils.py (timings_out): Modified to use the resource
3497 * IPython/genutils.py (timings_out): Modified to use the resource
3492 module, which avoids the wraparound problems of time.clock().
3498 module, which avoids the wraparound problems of time.clock().
3493
3499
3494 2003-04-17 *** Released version 0.2.15pre4
3500 2003-04-17 *** Released version 0.2.15pre4
3495
3501
3496 2003-04-17 Fernando Perez <fperez@colorado.edu>
3502 2003-04-17 Fernando Perez <fperez@colorado.edu>
3497
3503
3498 * setup.py (scriptfiles): Split windows-specific stuff over to a
3504 * setup.py (scriptfiles): Split windows-specific stuff over to a
3499 separate file, in an attempt to have a Windows GUI installer.
3505 separate file, in an attempt to have a Windows GUI installer.
3500 That didn't work, but part of the groundwork is done.
3506 That didn't work, but part of the groundwork is done.
3501
3507
3502 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3508 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3503 indent/unindent with 4 spaces. Particularly useful in combination
3509 indent/unindent with 4 spaces. Particularly useful in combination
3504 with the new auto-indent option.
3510 with the new auto-indent option.
3505
3511
3506 2003-04-16 Fernando Perez <fperez@colorado.edu>
3512 2003-04-16 Fernando Perez <fperez@colorado.edu>
3507
3513
3508 * IPython/Magic.py: various replacements of self.rc for
3514 * IPython/Magic.py: various replacements of self.rc for
3509 self.shell.rc. A lot more remains to be done to fully disentangle
3515 self.shell.rc. A lot more remains to be done to fully disentangle
3510 this class from the main Shell class.
3516 this class from the main Shell class.
3511
3517
3512 * IPython/GnuplotRuntime.py: added checks for mouse support so
3518 * IPython/GnuplotRuntime.py: added checks for mouse support so
3513 that we don't try to enable it if the current gnuplot doesn't
3519 that we don't try to enable it if the current gnuplot doesn't
3514 really support it. Also added checks so that we don't try to
3520 really support it. Also added checks so that we don't try to
3515 enable persist under Windows (where Gnuplot doesn't recognize the
3521 enable persist under Windows (where Gnuplot doesn't recognize the
3516 option).
3522 option).
3517
3523
3518 * IPython/iplib.py (InteractiveShell.interact): Added optional
3524 * IPython/iplib.py (InteractiveShell.interact): Added optional
3519 auto-indenting code, after a patch by King C. Shu
3525 auto-indenting code, after a patch by King C. Shu
3520 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3526 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3521 get along well with pasting indented code. If I ever figure out
3527 get along well with pasting indented code. If I ever figure out
3522 how to make that part go well, it will become on by default.
3528 how to make that part go well, it will become on by default.
3523
3529
3524 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3530 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3525 crash ipython if there was an unmatched '%' in the user's prompt
3531 crash ipython if there was an unmatched '%' in the user's prompt
3526 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3532 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3527
3533
3528 * IPython/iplib.py (InteractiveShell.interact): removed the
3534 * IPython/iplib.py (InteractiveShell.interact): removed the
3529 ability to ask the user whether he wants to crash or not at the
3535 ability to ask the user whether he wants to crash or not at the
3530 'last line' exception handler. Calling functions at that point
3536 'last line' exception handler. Calling functions at that point
3531 changes the stack, and the error reports would have incorrect
3537 changes the stack, and the error reports would have incorrect
3532 tracebacks.
3538 tracebacks.
3533
3539
3534 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3540 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3535 pass through a peger a pretty-printed form of any object. After a
3541 pass through a peger a pretty-printed form of any object. After a
3536 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3542 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3537
3543
3538 2003-04-14 Fernando Perez <fperez@colorado.edu>
3544 2003-04-14 Fernando Perez <fperez@colorado.edu>
3539
3545
3540 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3546 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3541 all files in ~ would be modified at first install (instead of
3547 all files in ~ would be modified at first install (instead of
3542 ~/.ipython). This could be potentially disastrous, as the
3548 ~/.ipython). This could be potentially disastrous, as the
3543 modification (make line-endings native) could damage binary files.
3549 modification (make line-endings native) could damage binary files.
3544
3550
3545 2003-04-10 Fernando Perez <fperez@colorado.edu>
3551 2003-04-10 Fernando Perez <fperez@colorado.edu>
3546
3552
3547 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3553 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3548 handle only lines which are invalid python. This now means that
3554 handle only lines which are invalid python. This now means that
3549 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3555 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3550 for the bug report.
3556 for the bug report.
3551
3557
3552 2003-04-01 Fernando Perez <fperez@colorado.edu>
3558 2003-04-01 Fernando Perez <fperez@colorado.edu>
3553
3559
3554 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3560 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3555 where failing to set sys.last_traceback would crash pdb.pm().
3561 where failing to set sys.last_traceback would crash pdb.pm().
3556 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3562 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3557 report.
3563 report.
3558
3564
3559 2003-03-25 Fernando Perez <fperez@colorado.edu>
3565 2003-03-25 Fernando Perez <fperez@colorado.edu>
3560
3566
3561 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3567 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3562 before printing it (it had a lot of spurious blank lines at the
3568 before printing it (it had a lot of spurious blank lines at the
3563 end).
3569 end).
3564
3570
3565 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3571 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3566 output would be sent 21 times! Obviously people don't use this
3572 output would be sent 21 times! Obviously people don't use this
3567 too often, or I would have heard about it.
3573 too often, or I would have heard about it.
3568
3574
3569 2003-03-24 Fernando Perez <fperez@colorado.edu>
3575 2003-03-24 Fernando Perez <fperez@colorado.edu>
3570
3576
3571 * setup.py (scriptfiles): renamed the data_files parameter from
3577 * setup.py (scriptfiles): renamed the data_files parameter from
3572 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3578 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3573 for the patch.
3579 for the patch.
3574
3580
3575 2003-03-20 Fernando Perez <fperez@colorado.edu>
3581 2003-03-20 Fernando Perez <fperez@colorado.edu>
3576
3582
3577 * IPython/genutils.py (error): added error() and fatal()
3583 * IPython/genutils.py (error): added error() and fatal()
3578 functions.
3584 functions.
3579
3585
3580 2003-03-18 *** Released version 0.2.15pre3
3586 2003-03-18 *** Released version 0.2.15pre3
3581
3587
3582 2003-03-18 Fernando Perez <fperez@colorado.edu>
3588 2003-03-18 Fernando Perez <fperez@colorado.edu>
3583
3589
3584 * setupext/install_data_ext.py
3590 * setupext/install_data_ext.py
3585 (install_data_ext.initialize_options): Class contributed by Jack
3591 (install_data_ext.initialize_options): Class contributed by Jack
3586 Moffit for fixing the old distutils hack. He is sending this to
3592 Moffit for fixing the old distutils hack. He is sending this to
3587 the distutils folks so in the future we may not need it as a
3593 the distutils folks so in the future we may not need it as a
3588 private fix.
3594 private fix.
3589
3595
3590 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3596 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3591 changes for Debian packaging. See his patch for full details.
3597 changes for Debian packaging. See his patch for full details.
3592 The old distutils hack of making the ipythonrc* files carry a
3598 The old distutils hack of making the ipythonrc* files carry a
3593 bogus .py extension is gone, at last. Examples were moved to a
3599 bogus .py extension is gone, at last. Examples were moved to a
3594 separate subdir under doc/, and the separate executable scripts
3600 separate subdir under doc/, and the separate executable scripts
3595 now live in their own directory. Overall a great cleanup. The
3601 now live in their own directory. Overall a great cleanup. The
3596 manual was updated to use the new files, and setup.py has been
3602 manual was updated to use the new files, and setup.py has been
3597 fixed for this setup.
3603 fixed for this setup.
3598
3604
3599 * IPython/PyColorize.py (Parser.usage): made non-executable and
3605 * IPython/PyColorize.py (Parser.usage): made non-executable and
3600 created a pycolor wrapper around it to be included as a script.
3606 created a pycolor wrapper around it to be included as a script.
3601
3607
3602 2003-03-12 *** Released version 0.2.15pre2
3608 2003-03-12 *** Released version 0.2.15pre2
3603
3609
3604 2003-03-12 Fernando Perez <fperez@colorado.edu>
3610 2003-03-12 Fernando Perez <fperez@colorado.edu>
3605
3611
3606 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3612 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3607 long-standing problem with garbage characters in some terminals.
3613 long-standing problem with garbage characters in some terminals.
3608 The issue was really that the \001 and \002 escapes must _only_ be
3614 The issue was really that the \001 and \002 escapes must _only_ be
3609 passed to input prompts (which call readline), but _never_ to
3615 passed to input prompts (which call readline), but _never_ to
3610 normal text to be printed on screen. I changed ColorANSI to have
3616 normal text to be printed on screen. I changed ColorANSI to have
3611 two classes: TermColors and InputTermColors, each with the
3617 two classes: TermColors and InputTermColors, each with the
3612 appropriate escapes for input prompts or normal text. The code in
3618 appropriate escapes for input prompts or normal text. The code in
3613 Prompts.py got slightly more complicated, but this very old and
3619 Prompts.py got slightly more complicated, but this very old and
3614 annoying bug is finally fixed.
3620 annoying bug is finally fixed.
3615
3621
3616 All the credit for nailing down the real origin of this problem
3622 All the credit for nailing down the real origin of this problem
3617 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3623 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3618 *Many* thanks to him for spending quite a bit of effort on this.
3624 *Many* thanks to him for spending quite a bit of effort on this.
3619
3625
3620 2003-03-05 *** Released version 0.2.15pre1
3626 2003-03-05 *** Released version 0.2.15pre1
3621
3627
3622 2003-03-03 Fernando Perez <fperez@colorado.edu>
3628 2003-03-03 Fernando Perez <fperez@colorado.edu>
3623
3629
3624 * IPython/FakeModule.py: Moved the former _FakeModule to a
3630 * IPython/FakeModule.py: Moved the former _FakeModule to a
3625 separate file, because it's also needed by Magic (to fix a similar
3631 separate file, because it's also needed by Magic (to fix a similar
3626 pickle-related issue in @run).
3632 pickle-related issue in @run).
3627
3633
3628 2003-03-02 Fernando Perez <fperez@colorado.edu>
3634 2003-03-02 Fernando Perez <fperez@colorado.edu>
3629
3635
3630 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3636 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3631 the autocall option at runtime.
3637 the autocall option at runtime.
3632 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3638 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3633 across Magic.py to start separating Magic from InteractiveShell.
3639 across Magic.py to start separating Magic from InteractiveShell.
3634 (Magic._ofind): Fixed to return proper namespace for dotted
3640 (Magic._ofind): Fixed to return proper namespace for dotted
3635 names. Before, a dotted name would always return 'not currently
3641 names. Before, a dotted name would always return 'not currently
3636 defined', because it would find the 'parent'. s.x would be found,
3642 defined', because it would find the 'parent'. s.x would be found,
3637 but since 'x' isn't defined by itself, it would get confused.
3643 but since 'x' isn't defined by itself, it would get confused.
3638 (Magic.magic_run): Fixed pickling problems reported by Ralf
3644 (Magic.magic_run): Fixed pickling problems reported by Ralf
3639 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3645 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3640 that I'd used when Mike Heeter reported similar issues at the
3646 that I'd used when Mike Heeter reported similar issues at the
3641 top-level, but now for @run. It boils down to injecting the
3647 top-level, but now for @run. It boils down to injecting the
3642 namespace where code is being executed with something that looks
3648 namespace where code is being executed with something that looks
3643 enough like a module to fool pickle.dump(). Since a pickle stores
3649 enough like a module to fool pickle.dump(). Since a pickle stores
3644 a named reference to the importing module, we need this for
3650 a named reference to the importing module, we need this for
3645 pickles to save something sensible.
3651 pickles to save something sensible.
3646
3652
3647 * IPython/ipmaker.py (make_IPython): added an autocall option.
3653 * IPython/ipmaker.py (make_IPython): added an autocall option.
3648
3654
3649 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3655 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3650 the auto-eval code. Now autocalling is an option, and the code is
3656 the auto-eval code. Now autocalling is an option, and the code is
3651 also vastly safer. There is no more eval() involved at all.
3657 also vastly safer. There is no more eval() involved at all.
3652
3658
3653 2003-03-01 Fernando Perez <fperez@colorado.edu>
3659 2003-03-01 Fernando Perez <fperez@colorado.edu>
3654
3660
3655 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3661 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3656 dict with named keys instead of a tuple.
3662 dict with named keys instead of a tuple.
3657
3663
3658 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3664 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3659
3665
3660 * setup.py (make_shortcut): Fixed message about directories
3666 * setup.py (make_shortcut): Fixed message about directories
3661 created during Windows installation (the directories were ok, just
3667 created during Windows installation (the directories were ok, just
3662 the printed message was misleading). Thanks to Chris Liechti
3668 the printed message was misleading). Thanks to Chris Liechti
3663 <cliechti-AT-gmx.net> for the heads up.
3669 <cliechti-AT-gmx.net> for the heads up.
3664
3670
3665 2003-02-21 Fernando Perez <fperez@colorado.edu>
3671 2003-02-21 Fernando Perez <fperez@colorado.edu>
3666
3672
3667 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3673 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3668 of ValueError exception when checking for auto-execution. This
3674 of ValueError exception when checking for auto-execution. This
3669 one is raised by things like Numeric arrays arr.flat when the
3675 one is raised by things like Numeric arrays arr.flat when the
3670 array is non-contiguous.
3676 array is non-contiguous.
3671
3677
3672 2003-01-31 Fernando Perez <fperez@colorado.edu>
3678 2003-01-31 Fernando Perez <fperez@colorado.edu>
3673
3679
3674 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3680 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3675 not return any value at all (even though the command would get
3681 not return any value at all (even though the command would get
3676 executed).
3682 executed).
3677 (xsys): Flush stdout right after printing the command to ensure
3683 (xsys): Flush stdout right after printing the command to ensure
3678 proper ordering of commands and command output in the total
3684 proper ordering of commands and command output in the total
3679 output.
3685 output.
3680 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3686 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3681 system/getoutput as defaults. The old ones are kept for
3687 system/getoutput as defaults. The old ones are kept for
3682 compatibility reasons, so no code which uses this library needs
3688 compatibility reasons, so no code which uses this library needs
3683 changing.
3689 changing.
3684
3690
3685 2003-01-27 *** Released version 0.2.14
3691 2003-01-27 *** Released version 0.2.14
3686
3692
3687 2003-01-25 Fernando Perez <fperez@colorado.edu>
3693 2003-01-25 Fernando Perez <fperez@colorado.edu>
3688
3694
3689 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3695 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3690 functions defined in previous edit sessions could not be re-edited
3696 functions defined in previous edit sessions could not be re-edited
3691 (because the temp files were immediately removed). Now temp files
3697 (because the temp files were immediately removed). Now temp files
3692 are removed only at IPython's exit.
3698 are removed only at IPython's exit.
3693 (Magic.magic_run): Improved @run to perform shell-like expansions
3699 (Magic.magic_run): Improved @run to perform shell-like expansions
3694 on its arguments (~users and $VARS). With this, @run becomes more
3700 on its arguments (~users and $VARS). With this, @run becomes more
3695 like a normal command-line.
3701 like a normal command-line.
3696
3702
3697 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3703 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3698 bugs related to embedding and cleaned up that code. A fairly
3704 bugs related to embedding and cleaned up that code. A fairly
3699 important one was the impossibility to access the global namespace
3705 important one was the impossibility to access the global namespace
3700 through the embedded IPython (only local variables were visible).
3706 through the embedded IPython (only local variables were visible).
3701
3707
3702 2003-01-14 Fernando Perez <fperez@colorado.edu>
3708 2003-01-14 Fernando Perez <fperez@colorado.edu>
3703
3709
3704 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3710 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3705 auto-calling to be a bit more conservative. Now it doesn't get
3711 auto-calling to be a bit more conservative. Now it doesn't get
3706 triggered if any of '!=()<>' are in the rest of the input line, to
3712 triggered if any of '!=()<>' are in the rest of the input line, to
3707 allow comparing callables. Thanks to Alex for the heads up.
3713 allow comparing callables. Thanks to Alex for the heads up.
3708
3714
3709 2003-01-07 Fernando Perez <fperez@colorado.edu>
3715 2003-01-07 Fernando Perez <fperez@colorado.edu>
3710
3716
3711 * IPython/genutils.py (page): fixed estimation of the number of
3717 * IPython/genutils.py (page): fixed estimation of the number of
3712 lines in a string to be paged to simply count newlines. This
3718 lines in a string to be paged to simply count newlines. This
3713 prevents over-guessing due to embedded escape sequences. A better
3719 prevents over-guessing due to embedded escape sequences. A better
3714 long-term solution would involve stripping out the control chars
3720 long-term solution would involve stripping out the control chars
3715 for the count, but it's potentially so expensive I just don't
3721 for the count, but it's potentially so expensive I just don't
3716 think it's worth doing.
3722 think it's worth doing.
3717
3723
3718 2002-12-19 *** Released version 0.2.14pre50
3724 2002-12-19 *** Released version 0.2.14pre50
3719
3725
3720 2002-12-19 Fernando Perez <fperez@colorado.edu>
3726 2002-12-19 Fernando Perez <fperez@colorado.edu>
3721
3727
3722 * tools/release (version): Changed release scripts to inform
3728 * tools/release (version): Changed release scripts to inform
3723 Andrea and build a NEWS file with a list of recent changes.
3729 Andrea and build a NEWS file with a list of recent changes.
3724
3730
3725 * IPython/ColorANSI.py (__all__): changed terminal detection
3731 * IPython/ColorANSI.py (__all__): changed terminal detection
3726 code. Seems to work better for xterms without breaking
3732 code. Seems to work better for xterms without breaking
3727 konsole. Will need more testing to determine if WinXP and Mac OSX
3733 konsole. Will need more testing to determine if WinXP and Mac OSX
3728 also work ok.
3734 also work ok.
3729
3735
3730 2002-12-18 *** Released version 0.2.14pre49
3736 2002-12-18 *** Released version 0.2.14pre49
3731
3737
3732 2002-12-18 Fernando Perez <fperez@colorado.edu>
3738 2002-12-18 Fernando Perez <fperez@colorado.edu>
3733
3739
3734 * Docs: added new info about Mac OSX, from Andrea.
3740 * Docs: added new info about Mac OSX, from Andrea.
3735
3741
3736 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3742 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3737 allow direct plotting of python strings whose format is the same
3743 allow direct plotting of python strings whose format is the same
3738 of gnuplot data files.
3744 of gnuplot data files.
3739
3745
3740 2002-12-16 Fernando Perez <fperez@colorado.edu>
3746 2002-12-16 Fernando Perez <fperez@colorado.edu>
3741
3747
3742 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3748 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3743 value of exit question to be acknowledged.
3749 value of exit question to be acknowledged.
3744
3750
3745 2002-12-03 Fernando Perez <fperez@colorado.edu>
3751 2002-12-03 Fernando Perez <fperez@colorado.edu>
3746
3752
3747 * IPython/ipmaker.py: removed generators, which had been added
3753 * IPython/ipmaker.py: removed generators, which had been added
3748 by mistake in an earlier debugging run. This was causing trouble
3754 by mistake in an earlier debugging run. This was causing trouble
3749 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3755 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3750 for pointing this out.
3756 for pointing this out.
3751
3757
3752 2002-11-17 Fernando Perez <fperez@colorado.edu>
3758 2002-11-17 Fernando Perez <fperez@colorado.edu>
3753
3759
3754 * Manual: updated the Gnuplot section.
3760 * Manual: updated the Gnuplot section.
3755
3761
3756 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3762 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3757 a much better split of what goes in Runtime and what goes in
3763 a much better split of what goes in Runtime and what goes in
3758 Interactive.
3764 Interactive.
3759
3765
3760 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3766 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3761 being imported from iplib.
3767 being imported from iplib.
3762
3768
3763 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3769 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3764 for command-passing. Now the global Gnuplot instance is called
3770 for command-passing. Now the global Gnuplot instance is called
3765 'gp' instead of 'g', which was really a far too fragile and
3771 'gp' instead of 'g', which was really a far too fragile and
3766 common name.
3772 common name.
3767
3773
3768 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3774 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3769 bounding boxes generated by Gnuplot for square plots.
3775 bounding boxes generated by Gnuplot for square plots.
3770
3776
3771 * IPython/genutils.py (popkey): new function added. I should
3777 * IPython/genutils.py (popkey): new function added. I should
3772 suggest this on c.l.py as a dict method, it seems useful.
3778 suggest this on c.l.py as a dict method, it seems useful.
3773
3779
3774 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3780 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3775 to transparently handle PostScript generation. MUCH better than
3781 to transparently handle PostScript generation. MUCH better than
3776 the previous plot_eps/replot_eps (which I removed now). The code
3782 the previous plot_eps/replot_eps (which I removed now). The code
3777 is also fairly clean and well documented now (including
3783 is also fairly clean and well documented now (including
3778 docstrings).
3784 docstrings).
3779
3785
3780 2002-11-13 Fernando Perez <fperez@colorado.edu>
3786 2002-11-13 Fernando Perez <fperez@colorado.edu>
3781
3787
3782 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3788 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3783 (inconsistent with options).
3789 (inconsistent with options).
3784
3790
3785 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3791 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3786 manually disabled, I don't know why. Fixed it.
3792 manually disabled, I don't know why. Fixed it.
3787 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3793 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3788 eps output.
3794 eps output.
3789
3795
3790 2002-11-12 Fernando Perez <fperez@colorado.edu>
3796 2002-11-12 Fernando Perez <fperez@colorado.edu>
3791
3797
3792 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3798 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3793 don't propagate up to caller. Fixes crash reported by François
3799 don't propagate up to caller. Fixes crash reported by François
3794 Pinard.
3800 Pinard.
3795
3801
3796 2002-11-09 Fernando Perez <fperez@colorado.edu>
3802 2002-11-09 Fernando Perez <fperez@colorado.edu>
3797
3803
3798 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3804 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3799 history file for new users.
3805 history file for new users.
3800 (make_IPython): fixed bug where initial install would leave the
3806 (make_IPython): fixed bug where initial install would leave the
3801 user running in the .ipython dir.
3807 user running in the .ipython dir.
3802 (make_IPython): fixed bug where config dir .ipython would be
3808 (make_IPython): fixed bug where config dir .ipython would be
3803 created regardless of the given -ipythondir option. Thanks to Cory
3809 created regardless of the given -ipythondir option. Thanks to Cory
3804 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3810 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3805
3811
3806 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3812 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3807 type confirmations. Will need to use it in all of IPython's code
3813 type confirmations. Will need to use it in all of IPython's code
3808 consistently.
3814 consistently.
3809
3815
3810 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3816 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3811 context to print 31 lines instead of the default 5. This will make
3817 context to print 31 lines instead of the default 5. This will make
3812 the crash reports extremely detailed in case the problem is in
3818 the crash reports extremely detailed in case the problem is in
3813 libraries I don't have access to.
3819 libraries I don't have access to.
3814
3820
3815 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3821 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3816 line of defense' code to still crash, but giving users fair
3822 line of defense' code to still crash, but giving users fair
3817 warning. I don't want internal errors to go unreported: if there's
3823 warning. I don't want internal errors to go unreported: if there's
3818 an internal problem, IPython should crash and generate a full
3824 an internal problem, IPython should crash and generate a full
3819 report.
3825 report.
3820
3826
3821 2002-11-08 Fernando Perez <fperez@colorado.edu>
3827 2002-11-08 Fernando Perez <fperez@colorado.edu>
3822
3828
3823 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3829 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3824 otherwise uncaught exceptions which can appear if people set
3830 otherwise uncaught exceptions which can appear if people set
3825 sys.stdout to something badly broken. Thanks to a crash report
3831 sys.stdout to something badly broken. Thanks to a crash report
3826 from henni-AT-mail.brainbot.com.
3832 from henni-AT-mail.brainbot.com.
3827
3833
3828 2002-11-04 Fernando Perez <fperez@colorado.edu>
3834 2002-11-04 Fernando Perez <fperez@colorado.edu>
3829
3835
3830 * IPython/iplib.py (InteractiveShell.interact): added
3836 * IPython/iplib.py (InteractiveShell.interact): added
3831 __IPYTHON__active to the builtins. It's a flag which goes on when
3837 __IPYTHON__active to the builtins. It's a flag which goes on when
3832 the interaction starts and goes off again when it stops. This
3838 the interaction starts and goes off again when it stops. This
3833 allows embedding code to detect being inside IPython. Before this
3839 allows embedding code to detect being inside IPython. Before this
3834 was done via __IPYTHON__, but that only shows that an IPython
3840 was done via __IPYTHON__, but that only shows that an IPython
3835 instance has been created.
3841 instance has been created.
3836
3842
3837 * IPython/Magic.py (Magic.magic_env): I realized that in a
3843 * IPython/Magic.py (Magic.magic_env): I realized that in a
3838 UserDict, instance.data holds the data as a normal dict. So I
3844 UserDict, instance.data holds the data as a normal dict. So I
3839 modified @env to return os.environ.data instead of rebuilding a
3845 modified @env to return os.environ.data instead of rebuilding a
3840 dict by hand.
3846 dict by hand.
3841
3847
3842 2002-11-02 Fernando Perez <fperez@colorado.edu>
3848 2002-11-02 Fernando Perez <fperez@colorado.edu>
3843
3849
3844 * IPython/genutils.py (warn): changed so that level 1 prints no
3850 * IPython/genutils.py (warn): changed so that level 1 prints no
3845 header. Level 2 is now the default (with 'WARNING' header, as
3851 header. Level 2 is now the default (with 'WARNING' header, as
3846 before). I think I tracked all places where changes were needed in
3852 before). I think I tracked all places where changes were needed in
3847 IPython, but outside code using the old level numbering may have
3853 IPython, but outside code using the old level numbering may have
3848 broken.
3854 broken.
3849
3855
3850 * IPython/iplib.py (InteractiveShell.runcode): added this to
3856 * IPython/iplib.py (InteractiveShell.runcode): added this to
3851 handle the tracebacks in SystemExit traps correctly. The previous
3857 handle the tracebacks in SystemExit traps correctly. The previous
3852 code (through interact) was printing more of the stack than
3858 code (through interact) was printing more of the stack than
3853 necessary, showing IPython internal code to the user.
3859 necessary, showing IPython internal code to the user.
3854
3860
3855 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3861 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3856 default. Now that the default at the confirmation prompt is yes,
3862 default. Now that the default at the confirmation prompt is yes,
3857 it's not so intrusive. François' argument that ipython sessions
3863 it's not so intrusive. François' argument that ipython sessions
3858 tend to be complex enough not to lose them from an accidental C-d,
3864 tend to be complex enough not to lose them from an accidental C-d,
3859 is a valid one.
3865 is a valid one.
3860
3866
3861 * IPython/iplib.py (InteractiveShell.interact): added a
3867 * IPython/iplib.py (InteractiveShell.interact): added a
3862 showtraceback() call to the SystemExit trap, and modified the exit
3868 showtraceback() call to the SystemExit trap, and modified the exit
3863 confirmation to have yes as the default.
3869 confirmation to have yes as the default.
3864
3870
3865 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3871 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3866 this file. It's been gone from the code for a long time, this was
3872 this file. It's been gone from the code for a long time, this was
3867 simply leftover junk.
3873 simply leftover junk.
3868
3874
3869 2002-11-01 Fernando Perez <fperez@colorado.edu>
3875 2002-11-01 Fernando Perez <fperez@colorado.edu>
3870
3876
3871 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3877 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3872 added. If set, IPython now traps EOF and asks for
3878 added. If set, IPython now traps EOF and asks for
3873 confirmation. After a request by François Pinard.
3879 confirmation. After a request by François Pinard.
3874
3880
3875 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3881 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3876 of @abort, and with a new (better) mechanism for handling the
3882 of @abort, and with a new (better) mechanism for handling the
3877 exceptions.
3883 exceptions.
3878
3884
3879 2002-10-27 Fernando Perez <fperez@colorado.edu>
3885 2002-10-27 Fernando Perez <fperez@colorado.edu>
3880
3886
3881 * IPython/usage.py (__doc__): updated the --help information and
3887 * IPython/usage.py (__doc__): updated the --help information and
3882 the ipythonrc file to indicate that -log generates
3888 the ipythonrc file to indicate that -log generates
3883 ./ipython.log. Also fixed the corresponding info in @logstart.
3889 ./ipython.log. Also fixed the corresponding info in @logstart.
3884 This and several other fixes in the manuals thanks to reports by
3890 This and several other fixes in the manuals thanks to reports by
3885 François Pinard <pinard-AT-iro.umontreal.ca>.
3891 François Pinard <pinard-AT-iro.umontreal.ca>.
3886
3892
3887 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3893 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3888 refer to @logstart (instead of @log, which doesn't exist).
3894 refer to @logstart (instead of @log, which doesn't exist).
3889
3895
3890 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3896 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3891 AttributeError crash. Thanks to Christopher Armstrong
3897 AttributeError crash. Thanks to Christopher Armstrong
3892 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3898 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3893 introduced recently (in 0.2.14pre37) with the fix to the eval
3899 introduced recently (in 0.2.14pre37) with the fix to the eval
3894 problem mentioned below.
3900 problem mentioned below.
3895
3901
3896 2002-10-17 Fernando Perez <fperez@colorado.edu>
3902 2002-10-17 Fernando Perez <fperez@colorado.edu>
3897
3903
3898 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3904 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3899 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3905 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3900
3906
3901 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3907 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3902 this function to fix a problem reported by Alex Schmolck. He saw
3908 this function to fix a problem reported by Alex Schmolck. He saw
3903 it with list comprehensions and generators, which were getting
3909 it with list comprehensions and generators, which were getting
3904 called twice. The real problem was an 'eval' call in testing for
3910 called twice. The real problem was an 'eval' call in testing for
3905 automagic which was evaluating the input line silently.
3911 automagic which was evaluating the input line silently.
3906
3912
3907 This is a potentially very nasty bug, if the input has side
3913 This is a potentially very nasty bug, if the input has side
3908 effects which must not be repeated. The code is much cleaner now,
3914 effects which must not be repeated. The code is much cleaner now,
3909 without any blanket 'except' left and with a regexp test for
3915 without any blanket 'except' left and with a regexp test for
3910 actual function names.
3916 actual function names.
3911
3917
3912 But an eval remains, which I'm not fully comfortable with. I just
3918 But an eval remains, which I'm not fully comfortable with. I just
3913 don't know how to find out if an expression could be a callable in
3919 don't know how to find out if an expression could be a callable in
3914 the user's namespace without doing an eval on the string. However
3920 the user's namespace without doing an eval on the string. However
3915 that string is now much more strictly checked so that no code
3921 that string is now much more strictly checked so that no code
3916 slips by, so the eval should only happen for things that can
3922 slips by, so the eval should only happen for things that can
3917 really be only function/method names.
3923 really be only function/method names.
3918
3924
3919 2002-10-15 Fernando Perez <fperez@colorado.edu>
3925 2002-10-15 Fernando Perez <fperez@colorado.edu>
3920
3926
3921 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3927 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3922 OSX information to main manual, removed README_Mac_OSX file from
3928 OSX information to main manual, removed README_Mac_OSX file from
3923 distribution. Also updated credits for recent additions.
3929 distribution. Also updated credits for recent additions.
3924
3930
3925 2002-10-10 Fernando Perez <fperez@colorado.edu>
3931 2002-10-10 Fernando Perez <fperez@colorado.edu>
3926
3932
3927 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3933 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3928 terminal-related issues. Many thanks to Andrea Riciputi
3934 terminal-related issues. Many thanks to Andrea Riciputi
3929 <andrea.riciputi-AT-libero.it> for writing it.
3935 <andrea.riciputi-AT-libero.it> for writing it.
3930
3936
3931 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3937 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3932 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3938 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3933
3939
3934 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3940 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3935 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3941 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3936 <syver-en-AT-online.no> who both submitted patches for this problem.
3942 <syver-en-AT-online.no> who both submitted patches for this problem.
3937
3943
3938 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3944 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3939 global embedding to make sure that things don't overwrite user
3945 global embedding to make sure that things don't overwrite user
3940 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3946 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3941
3947
3942 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3948 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3943 compatibility. Thanks to Hayden Callow
3949 compatibility. Thanks to Hayden Callow
3944 <h.callow-AT-elec.canterbury.ac.nz>
3950 <h.callow-AT-elec.canterbury.ac.nz>
3945
3951
3946 2002-10-04 Fernando Perez <fperez@colorado.edu>
3952 2002-10-04 Fernando Perez <fperez@colorado.edu>
3947
3953
3948 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3954 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3949 Gnuplot.File objects.
3955 Gnuplot.File objects.
3950
3956
3951 2002-07-23 Fernando Perez <fperez@colorado.edu>
3957 2002-07-23 Fernando Perez <fperez@colorado.edu>
3952
3958
3953 * IPython/genutils.py (timing): Added timings() and timing() for
3959 * IPython/genutils.py (timing): Added timings() and timing() for
3954 quick access to the most commonly needed data, the execution
3960 quick access to the most commonly needed data, the execution
3955 times. Old timing() renamed to timings_out().
3961 times. Old timing() renamed to timings_out().
3956
3962
3957 2002-07-18 Fernando Perez <fperez@colorado.edu>
3963 2002-07-18 Fernando Perez <fperez@colorado.edu>
3958
3964
3959 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3965 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
3960 bug with nested instances disrupting the parent's tab completion.
3966 bug with nested instances disrupting the parent's tab completion.
3961
3967
3962 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3968 * IPython/iplib.py (all_completions): Added Alex Schmolck's
3963 all_completions code to begin the emacs integration.
3969 all_completions code to begin the emacs integration.
3964
3970
3965 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3971 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
3966 argument to allow titling individual arrays when plotting.
3972 argument to allow titling individual arrays when plotting.
3967
3973
3968 2002-07-15 Fernando Perez <fperez@colorado.edu>
3974 2002-07-15 Fernando Perez <fperez@colorado.edu>
3969
3975
3970 * setup.py (make_shortcut): changed to retrieve the value of
3976 * setup.py (make_shortcut): changed to retrieve the value of
3971 'Program Files' directory from the registry (this value changes in
3977 'Program Files' directory from the registry (this value changes in
3972 non-english versions of Windows). Thanks to Thomas Fanslau
3978 non-english versions of Windows). Thanks to Thomas Fanslau
3973 <tfanslau-AT-gmx.de> for the report.
3979 <tfanslau-AT-gmx.de> for the report.
3974
3980
3975 2002-07-10 Fernando Perez <fperez@colorado.edu>
3981 2002-07-10 Fernando Perez <fperez@colorado.edu>
3976
3982
3977 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3983 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
3978 a bug in pdb, which crashes if a line with only whitespace is
3984 a bug in pdb, which crashes if a line with only whitespace is
3979 entered. Bug report submitted to sourceforge.
3985 entered. Bug report submitted to sourceforge.
3980
3986
3981 2002-07-09 Fernando Perez <fperez@colorado.edu>
3987 2002-07-09 Fernando Perez <fperez@colorado.edu>
3982
3988
3983 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3989 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
3984 reporting exceptions (it's a bug in inspect.py, I just set a
3990 reporting exceptions (it's a bug in inspect.py, I just set a
3985 workaround).
3991 workaround).
3986
3992
3987 2002-07-08 Fernando Perez <fperez@colorado.edu>
3993 2002-07-08 Fernando Perez <fperez@colorado.edu>
3988
3994
3989 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3995 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
3990 __IPYTHON__ in __builtins__ to show up in user_ns.
3996 __IPYTHON__ in __builtins__ to show up in user_ns.
3991
3997
3992 2002-07-03 Fernando Perez <fperez@colorado.edu>
3998 2002-07-03 Fernando Perez <fperez@colorado.edu>
3993
3999
3994 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4000 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
3995 name from @gp_set_instance to @gp_set_default.
4001 name from @gp_set_instance to @gp_set_default.
3996
4002
3997 * IPython/ipmaker.py (make_IPython): default editor value set to
4003 * IPython/ipmaker.py (make_IPython): default editor value set to
3998 '0' (a string), to match the rc file. Otherwise will crash when
4004 '0' (a string), to match the rc file. Otherwise will crash when
3999 .strip() is called on it.
4005 .strip() is called on it.
4000
4006
4001
4007
4002 2002-06-28 Fernando Perez <fperez@colorado.edu>
4008 2002-06-28 Fernando Perez <fperez@colorado.edu>
4003
4009
4004 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4010 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4005 of files in current directory when a file is executed via
4011 of files in current directory when a file is executed via
4006 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4012 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4007
4013
4008 * setup.py (manfiles): fix for rpm builds, submitted by RA
4014 * setup.py (manfiles): fix for rpm builds, submitted by RA
4009 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4015 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4010
4016
4011 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4017 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4012 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4018 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4013 string!). A. Schmolck caught this one.
4019 string!). A. Schmolck caught this one.
4014
4020
4015 2002-06-27 Fernando Perez <fperez@colorado.edu>
4021 2002-06-27 Fernando Perez <fperez@colorado.edu>
4016
4022
4017 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4023 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4018 defined files at the cmd line. __name__ wasn't being set to
4024 defined files at the cmd line. __name__ wasn't being set to
4019 __main__.
4025 __main__.
4020
4026
4021 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4027 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4022 regular lists and tuples besides Numeric arrays.
4028 regular lists and tuples besides Numeric arrays.
4023
4029
4024 * IPython/Prompts.py (CachedOutput.__call__): Added output
4030 * IPython/Prompts.py (CachedOutput.__call__): Added output
4025 supression for input ending with ';'. Similar to Mathematica and
4031 supression for input ending with ';'. Similar to Mathematica and
4026 Matlab. The _* vars and Out[] list are still updated, just like
4032 Matlab. The _* vars and Out[] list are still updated, just like
4027 Mathematica behaves.
4033 Mathematica behaves.
4028
4034
4029 2002-06-25 Fernando Perez <fperez@colorado.edu>
4035 2002-06-25 Fernando Perez <fperez@colorado.edu>
4030
4036
4031 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4037 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4032 .ini extensions for profiels under Windows.
4038 .ini extensions for profiels under Windows.
4033
4039
4034 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4040 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4035 string form. Fix contributed by Alexander Schmolck
4041 string form. Fix contributed by Alexander Schmolck
4036 <a.schmolck-AT-gmx.net>
4042 <a.schmolck-AT-gmx.net>
4037
4043
4038 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4044 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4039 pre-configured Gnuplot instance.
4045 pre-configured Gnuplot instance.
4040
4046
4041 2002-06-21 Fernando Perez <fperez@colorado.edu>
4047 2002-06-21 Fernando Perez <fperez@colorado.edu>
4042
4048
4043 * IPython/numutils.py (exp_safe): new function, works around the
4049 * IPython/numutils.py (exp_safe): new function, works around the
4044 underflow problems in Numeric.
4050 underflow problems in Numeric.
4045 (log2): New fn. Safe log in base 2: returns exact integer answer
4051 (log2): New fn. Safe log in base 2: returns exact integer answer
4046 for exact integer powers of 2.
4052 for exact integer powers of 2.
4047
4053
4048 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4054 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4049 properly.
4055 properly.
4050
4056
4051 2002-06-20 Fernando Perez <fperez@colorado.edu>
4057 2002-06-20 Fernando Perez <fperez@colorado.edu>
4052
4058
4053 * IPython/genutils.py (timing): new function like
4059 * IPython/genutils.py (timing): new function like
4054 Mathematica's. Similar to time_test, but returns more info.
4060 Mathematica's. Similar to time_test, but returns more info.
4055
4061
4056 2002-06-18 Fernando Perez <fperez@colorado.edu>
4062 2002-06-18 Fernando Perez <fperez@colorado.edu>
4057
4063
4058 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4064 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4059 according to Mike Heeter's suggestions.
4065 according to Mike Heeter's suggestions.
4060
4066
4061 2002-06-16 Fernando Perez <fperez@colorado.edu>
4067 2002-06-16 Fernando Perez <fperez@colorado.edu>
4062
4068
4063 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4069 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4064 system. GnuplotMagic is gone as a user-directory option. New files
4070 system. GnuplotMagic is gone as a user-directory option. New files
4065 make it easier to use all the gnuplot stuff both from external
4071 make it easier to use all the gnuplot stuff both from external
4066 programs as well as from IPython. Had to rewrite part of
4072 programs as well as from IPython. Had to rewrite part of
4067 hardcopy() b/c of a strange bug: often the ps files simply don't
4073 hardcopy() b/c of a strange bug: often the ps files simply don't
4068 get created, and require a repeat of the command (often several
4074 get created, and require a repeat of the command (often several
4069 times).
4075 times).
4070
4076
4071 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4077 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4072 resolve output channel at call time, so that if sys.stderr has
4078 resolve output channel at call time, so that if sys.stderr has
4073 been redirected by user this gets honored.
4079 been redirected by user this gets honored.
4074
4080
4075 2002-06-13 Fernando Perez <fperez@colorado.edu>
4081 2002-06-13 Fernando Perez <fperez@colorado.edu>
4076
4082
4077 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4083 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4078 IPShell. Kept a copy with the old names to avoid breaking people's
4084 IPShell. Kept a copy with the old names to avoid breaking people's
4079 embedded code.
4085 embedded code.
4080
4086
4081 * IPython/ipython: simplified it to the bare minimum after
4087 * IPython/ipython: simplified it to the bare minimum after
4082 Holger's suggestions. Added info about how to use it in
4088 Holger's suggestions. Added info about how to use it in
4083 PYTHONSTARTUP.
4089 PYTHONSTARTUP.
4084
4090
4085 * IPython/Shell.py (IPythonShell): changed the options passing
4091 * IPython/Shell.py (IPythonShell): changed the options passing
4086 from a string with funky %s replacements to a straight list. Maybe
4092 from a string with funky %s replacements to a straight list. Maybe
4087 a bit more typing, but it follows sys.argv conventions, so there's
4093 a bit more typing, but it follows sys.argv conventions, so there's
4088 less special-casing to remember.
4094 less special-casing to remember.
4089
4095
4090 2002-06-12 Fernando Perez <fperez@colorado.edu>
4096 2002-06-12 Fernando Perez <fperez@colorado.edu>
4091
4097
4092 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4098 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4093 command. Thanks to a suggestion by Mike Heeter.
4099 command. Thanks to a suggestion by Mike Heeter.
4094 (Magic.magic_pfile): added behavior to look at filenames if given
4100 (Magic.magic_pfile): added behavior to look at filenames if given
4095 arg is not a defined object.
4101 arg is not a defined object.
4096 (Magic.magic_save): New @save function to save code snippets. Also
4102 (Magic.magic_save): New @save function to save code snippets. Also
4097 a Mike Heeter idea.
4103 a Mike Heeter idea.
4098
4104
4099 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4105 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4100 plot() and replot(). Much more convenient now, especially for
4106 plot() and replot(). Much more convenient now, especially for
4101 interactive use.
4107 interactive use.
4102
4108
4103 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4109 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4104 filenames.
4110 filenames.
4105
4111
4106 2002-06-02 Fernando Perez <fperez@colorado.edu>
4112 2002-06-02 Fernando Perez <fperez@colorado.edu>
4107
4113
4108 * IPython/Struct.py (Struct.__init__): modified to admit
4114 * IPython/Struct.py (Struct.__init__): modified to admit
4109 initialization via another struct.
4115 initialization via another struct.
4110
4116
4111 * IPython/genutils.py (SystemExec.__init__): New stateful
4117 * IPython/genutils.py (SystemExec.__init__): New stateful
4112 interface to xsys and bq. Useful for writing system scripts.
4118 interface to xsys and bq. Useful for writing system scripts.
4113
4119
4114 2002-05-30 Fernando Perez <fperez@colorado.edu>
4120 2002-05-30 Fernando Perez <fperez@colorado.edu>
4115
4121
4116 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4122 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4117 documents. This will make the user download smaller (it's getting
4123 documents. This will make the user download smaller (it's getting
4118 too big).
4124 too big).
4119
4125
4120 2002-05-29 Fernando Perez <fperez@colorado.edu>
4126 2002-05-29 Fernando Perez <fperez@colorado.edu>
4121
4127
4122 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4128 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4123 fix problems with shelve and pickle. Seems to work, but I don't
4129 fix problems with shelve and pickle. Seems to work, but I don't
4124 know if corner cases break it. Thanks to Mike Heeter
4130 know if corner cases break it. Thanks to Mike Heeter
4125 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4131 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4126
4132
4127 2002-05-24 Fernando Perez <fperez@colorado.edu>
4133 2002-05-24 Fernando Perez <fperez@colorado.edu>
4128
4134
4129 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4135 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4130 macros having broken.
4136 macros having broken.
4131
4137
4132 2002-05-21 Fernando Perez <fperez@colorado.edu>
4138 2002-05-21 Fernando Perez <fperez@colorado.edu>
4133
4139
4134 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4140 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4135 introduced logging bug: all history before logging started was
4141 introduced logging bug: all history before logging started was
4136 being written one character per line! This came from the redesign
4142 being written one character per line! This came from the redesign
4137 of the input history as a special list which slices to strings,
4143 of the input history as a special list which slices to strings,
4138 not to lists.
4144 not to lists.
4139
4145
4140 2002-05-20 Fernando Perez <fperez@colorado.edu>
4146 2002-05-20 Fernando Perez <fperez@colorado.edu>
4141
4147
4142 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4148 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4143 be an attribute of all classes in this module. The design of these
4149 be an attribute of all classes in this module. The design of these
4144 classes needs some serious overhauling.
4150 classes needs some serious overhauling.
4145
4151
4146 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4152 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4147 which was ignoring '_' in option names.
4153 which was ignoring '_' in option names.
4148
4154
4149 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4155 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4150 'Verbose_novars' to 'Context' and made it the new default. It's a
4156 'Verbose_novars' to 'Context' and made it the new default. It's a
4151 bit more readable and also safer than verbose.
4157 bit more readable and also safer than verbose.
4152
4158
4153 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4159 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4154 triple-quoted strings.
4160 triple-quoted strings.
4155
4161
4156 * IPython/OInspect.py (__all__): new module exposing the object
4162 * IPython/OInspect.py (__all__): new module exposing the object
4157 introspection facilities. Now the corresponding magics are dummy
4163 introspection facilities. Now the corresponding magics are dummy
4158 wrappers around this. Having this module will make it much easier
4164 wrappers around this. Having this module will make it much easier
4159 to put these functions into our modified pdb.
4165 to put these functions into our modified pdb.
4160 This new object inspector system uses the new colorizing module,
4166 This new object inspector system uses the new colorizing module,
4161 so source code and other things are nicely syntax highlighted.
4167 so source code and other things are nicely syntax highlighted.
4162
4168
4163 2002-05-18 Fernando Perez <fperez@colorado.edu>
4169 2002-05-18 Fernando Perez <fperez@colorado.edu>
4164
4170
4165 * IPython/ColorANSI.py: Split the coloring tools into a separate
4171 * IPython/ColorANSI.py: Split the coloring tools into a separate
4166 module so I can use them in other code easier (they were part of
4172 module so I can use them in other code easier (they were part of
4167 ultraTB).
4173 ultraTB).
4168
4174
4169 2002-05-17 Fernando Perez <fperez@colorado.edu>
4175 2002-05-17 Fernando Perez <fperez@colorado.edu>
4170
4176
4171 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4177 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4172 fixed it to set the global 'g' also to the called instance, as
4178 fixed it to set the global 'g' also to the called instance, as
4173 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4179 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4174 user's 'g' variables).
4180 user's 'g' variables).
4175
4181
4176 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4182 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4177 global variables (aliases to _ih,_oh) so that users which expect
4183 global variables (aliases to _ih,_oh) so that users which expect
4178 In[5] or Out[7] to work aren't unpleasantly surprised.
4184 In[5] or Out[7] to work aren't unpleasantly surprised.
4179 (InputList.__getslice__): new class to allow executing slices of
4185 (InputList.__getslice__): new class to allow executing slices of
4180 input history directly. Very simple class, complements the use of
4186 input history directly. Very simple class, complements the use of
4181 macros.
4187 macros.
4182
4188
4183 2002-05-16 Fernando Perez <fperez@colorado.edu>
4189 2002-05-16 Fernando Perez <fperez@colorado.edu>
4184
4190
4185 * setup.py (docdirbase): make doc directory be just doc/IPython
4191 * setup.py (docdirbase): make doc directory be just doc/IPython
4186 without version numbers, it will reduce clutter for users.
4192 without version numbers, it will reduce clutter for users.
4187
4193
4188 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4194 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4189 execfile call to prevent possible memory leak. See for details:
4195 execfile call to prevent possible memory leak. See for details:
4190 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4196 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4191
4197
4192 2002-05-15 Fernando Perez <fperez@colorado.edu>
4198 2002-05-15 Fernando Perez <fperez@colorado.edu>
4193
4199
4194 * IPython/Magic.py (Magic.magic_psource): made the object
4200 * IPython/Magic.py (Magic.magic_psource): made the object
4195 introspection names be more standard: pdoc, pdef, pfile and
4201 introspection names be more standard: pdoc, pdef, pfile and
4196 psource. They all print/page their output, and it makes
4202 psource. They all print/page their output, and it makes
4197 remembering them easier. Kept old names for compatibility as
4203 remembering them easier. Kept old names for compatibility as
4198 aliases.
4204 aliases.
4199
4205
4200 2002-05-14 Fernando Perez <fperez@colorado.edu>
4206 2002-05-14 Fernando Perez <fperez@colorado.edu>
4201
4207
4202 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4208 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4203 what the mouse problem was. The trick is to use gnuplot with temp
4209 what the mouse problem was. The trick is to use gnuplot with temp
4204 files and NOT with pipes (for data communication), because having
4210 files and NOT with pipes (for data communication), because having
4205 both pipes and the mouse on is bad news.
4211 both pipes and the mouse on is bad news.
4206
4212
4207 2002-05-13 Fernando Perez <fperez@colorado.edu>
4213 2002-05-13 Fernando Perez <fperez@colorado.edu>
4208
4214
4209 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4215 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4210 bug. Information would be reported about builtins even when
4216 bug. Information would be reported about builtins even when
4211 user-defined functions overrode them.
4217 user-defined functions overrode them.
4212
4218
4213 2002-05-11 Fernando Perez <fperez@colorado.edu>
4219 2002-05-11 Fernando Perez <fperez@colorado.edu>
4214
4220
4215 * IPython/__init__.py (__all__): removed FlexCompleter from
4221 * IPython/__init__.py (__all__): removed FlexCompleter from
4216 __all__ so that things don't fail in platforms without readline.
4222 __all__ so that things don't fail in platforms without readline.
4217
4223
4218 2002-05-10 Fernando Perez <fperez@colorado.edu>
4224 2002-05-10 Fernando Perez <fperez@colorado.edu>
4219
4225
4220 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4226 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4221 it requires Numeric, effectively making Numeric a dependency for
4227 it requires Numeric, effectively making Numeric a dependency for
4222 IPython.
4228 IPython.
4223
4229
4224 * Released 0.2.13
4230 * Released 0.2.13
4225
4231
4226 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4232 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4227 profiler interface. Now all the major options from the profiler
4233 profiler interface. Now all the major options from the profiler
4228 module are directly supported in IPython, both for single
4234 module are directly supported in IPython, both for single
4229 expressions (@prun) and for full programs (@run -p).
4235 expressions (@prun) and for full programs (@run -p).
4230
4236
4231 2002-05-09 Fernando Perez <fperez@colorado.edu>
4237 2002-05-09 Fernando Perez <fperez@colorado.edu>
4232
4238
4233 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4239 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4234 magic properly formatted for screen.
4240 magic properly formatted for screen.
4235
4241
4236 * setup.py (make_shortcut): Changed things to put pdf version in
4242 * setup.py (make_shortcut): Changed things to put pdf version in
4237 doc/ instead of doc/manual (had to change lyxport a bit).
4243 doc/ instead of doc/manual (had to change lyxport a bit).
4238
4244
4239 * IPython/Magic.py (Profile.string_stats): made profile runs go
4245 * IPython/Magic.py (Profile.string_stats): made profile runs go
4240 through pager (they are long and a pager allows searching, saving,
4246 through pager (they are long and a pager allows searching, saving,
4241 etc.)
4247 etc.)
4242
4248
4243 2002-05-08 Fernando Perez <fperez@colorado.edu>
4249 2002-05-08 Fernando Perez <fperez@colorado.edu>
4244
4250
4245 * Released 0.2.12
4251 * Released 0.2.12
4246
4252
4247 2002-05-06 Fernando Perez <fperez@colorado.edu>
4253 2002-05-06 Fernando Perez <fperez@colorado.edu>
4248
4254
4249 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4255 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4250 introduced); 'hist n1 n2' was broken.
4256 introduced); 'hist n1 n2' was broken.
4251 (Magic.magic_pdb): added optional on/off arguments to @pdb
4257 (Magic.magic_pdb): added optional on/off arguments to @pdb
4252 (Magic.magic_run): added option -i to @run, which executes code in
4258 (Magic.magic_run): added option -i to @run, which executes code in
4253 the IPython namespace instead of a clean one. Also added @irun as
4259 the IPython namespace instead of a clean one. Also added @irun as
4254 an alias to @run -i.
4260 an alias to @run -i.
4255
4261
4256 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4262 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4257 fixed (it didn't really do anything, the namespaces were wrong).
4263 fixed (it didn't really do anything, the namespaces were wrong).
4258
4264
4259 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4265 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4260
4266
4261 * IPython/__init__.py (__all__): Fixed package namespace, now
4267 * IPython/__init__.py (__all__): Fixed package namespace, now
4262 'import IPython' does give access to IPython.<all> as
4268 'import IPython' does give access to IPython.<all> as
4263 expected. Also renamed __release__ to Release.
4269 expected. Also renamed __release__ to Release.
4264
4270
4265 * IPython/Debugger.py (__license__): created new Pdb class which
4271 * IPython/Debugger.py (__license__): created new Pdb class which
4266 functions like a drop-in for the normal pdb.Pdb but does NOT
4272 functions like a drop-in for the normal pdb.Pdb but does NOT
4267 import readline by default. This way it doesn't muck up IPython's
4273 import readline by default. This way it doesn't muck up IPython's
4268 readline handling, and now tab-completion finally works in the
4274 readline handling, and now tab-completion finally works in the
4269 debugger -- sort of. It completes things globally visible, but the
4275 debugger -- sort of. It completes things globally visible, but the
4270 completer doesn't track the stack as pdb walks it. That's a bit
4276 completer doesn't track the stack as pdb walks it. That's a bit
4271 tricky, and I'll have to implement it later.
4277 tricky, and I'll have to implement it later.
4272
4278
4273 2002-05-05 Fernando Perez <fperez@colorado.edu>
4279 2002-05-05 Fernando Perez <fperez@colorado.edu>
4274
4280
4275 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4281 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4276 magic docstrings when printed via ? (explicit \'s were being
4282 magic docstrings when printed via ? (explicit \'s were being
4277 printed).
4283 printed).
4278
4284
4279 * IPython/ipmaker.py (make_IPython): fixed namespace
4285 * IPython/ipmaker.py (make_IPython): fixed namespace
4280 identification bug. Now variables loaded via logs or command-line
4286 identification bug. Now variables loaded via logs or command-line
4281 files are recognized in the interactive namespace by @who.
4287 files are recognized in the interactive namespace by @who.
4282
4288
4283 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4289 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4284 log replay system stemming from the string form of Structs.
4290 log replay system stemming from the string form of Structs.
4285
4291
4286 * IPython/Magic.py (Macro.__init__): improved macros to properly
4292 * IPython/Magic.py (Macro.__init__): improved macros to properly
4287 handle magic commands in them.
4293 handle magic commands in them.
4288 (Magic.magic_logstart): usernames are now expanded so 'logstart
4294 (Magic.magic_logstart): usernames are now expanded so 'logstart
4289 ~/mylog' now works.
4295 ~/mylog' now works.
4290
4296
4291 * IPython/iplib.py (complete): fixed bug where paths starting with
4297 * IPython/iplib.py (complete): fixed bug where paths starting with
4292 '/' would be completed as magic names.
4298 '/' would be completed as magic names.
4293
4299
4294 2002-05-04 Fernando Perez <fperez@colorado.edu>
4300 2002-05-04 Fernando Perez <fperez@colorado.edu>
4295
4301
4296 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4302 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4297 allow running full programs under the profiler's control.
4303 allow running full programs under the profiler's control.
4298
4304
4299 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4305 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4300 mode to report exceptions verbosely but without formatting
4306 mode to report exceptions verbosely but without formatting
4301 variables. This addresses the issue of ipython 'freezing' (it's
4307 variables. This addresses the issue of ipython 'freezing' (it's
4302 not frozen, but caught in an expensive formatting loop) when huge
4308 not frozen, but caught in an expensive formatting loop) when huge
4303 variables are in the context of an exception.
4309 variables are in the context of an exception.
4304 (VerboseTB.text): Added '--->' markers at line where exception was
4310 (VerboseTB.text): Added '--->' markers at line where exception was
4305 triggered. Much clearer to read, especially in NoColor modes.
4311 triggered. Much clearer to read, especially in NoColor modes.
4306
4312
4307 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4313 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4308 implemented in reverse when changing to the new parse_options().
4314 implemented in reverse when changing to the new parse_options().
4309
4315
4310 2002-05-03 Fernando Perez <fperez@colorado.edu>
4316 2002-05-03 Fernando Perez <fperez@colorado.edu>
4311
4317
4312 * IPython/Magic.py (Magic.parse_options): new function so that
4318 * IPython/Magic.py (Magic.parse_options): new function so that
4313 magics can parse options easier.
4319 magics can parse options easier.
4314 (Magic.magic_prun): new function similar to profile.run(),
4320 (Magic.magic_prun): new function similar to profile.run(),
4315 suggested by Chris Hart.
4321 suggested by Chris Hart.
4316 (Magic.magic_cd): fixed behavior so that it only changes if
4322 (Magic.magic_cd): fixed behavior so that it only changes if
4317 directory actually is in history.
4323 directory actually is in history.
4318
4324
4319 * IPython/usage.py (__doc__): added information about potential
4325 * IPython/usage.py (__doc__): added information about potential
4320 slowness of Verbose exception mode when there are huge data
4326 slowness of Verbose exception mode when there are huge data
4321 structures to be formatted (thanks to Archie Paulson).
4327 structures to be formatted (thanks to Archie Paulson).
4322
4328
4323 * IPython/ipmaker.py (make_IPython): Changed default logging
4329 * IPython/ipmaker.py (make_IPython): Changed default logging
4324 (when simply called with -log) to use curr_dir/ipython.log in
4330 (when simply called with -log) to use curr_dir/ipython.log in
4325 rotate mode. Fixed crash which was occuring with -log before
4331 rotate mode. Fixed crash which was occuring with -log before
4326 (thanks to Jim Boyle).
4332 (thanks to Jim Boyle).
4327
4333
4328 2002-05-01 Fernando Perez <fperez@colorado.edu>
4334 2002-05-01 Fernando Perez <fperez@colorado.edu>
4329
4335
4330 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4336 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4331 was nasty -- though somewhat of a corner case).
4337 was nasty -- though somewhat of a corner case).
4332
4338
4333 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4339 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4334 text (was a bug).
4340 text (was a bug).
4335
4341
4336 2002-04-30 Fernando Perez <fperez@colorado.edu>
4342 2002-04-30 Fernando Perez <fperez@colorado.edu>
4337
4343
4338 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4344 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4339 a print after ^D or ^C from the user so that the In[] prompt
4345 a print after ^D or ^C from the user so that the In[] prompt
4340 doesn't over-run the gnuplot one.
4346 doesn't over-run the gnuplot one.
4341
4347
4342 2002-04-29 Fernando Perez <fperez@colorado.edu>
4348 2002-04-29 Fernando Perez <fperez@colorado.edu>
4343
4349
4344 * Released 0.2.10
4350 * Released 0.2.10
4345
4351
4346 * IPython/__release__.py (version): get date dynamically.
4352 * IPython/__release__.py (version): get date dynamically.
4347
4353
4348 * Misc. documentation updates thanks to Arnd's comments. Also ran
4354 * Misc. documentation updates thanks to Arnd's comments. Also ran
4349 a full spellcheck on the manual (hadn't been done in a while).
4355 a full spellcheck on the manual (hadn't been done in a while).
4350
4356
4351 2002-04-27 Fernando Perez <fperez@colorado.edu>
4357 2002-04-27 Fernando Perez <fperez@colorado.edu>
4352
4358
4353 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4359 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4354 starting a log in mid-session would reset the input history list.
4360 starting a log in mid-session would reset the input history list.
4355
4361
4356 2002-04-26 Fernando Perez <fperez@colorado.edu>
4362 2002-04-26 Fernando Perez <fperez@colorado.edu>
4357
4363
4358 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4364 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4359 all files were being included in an update. Now anything in
4365 all files were being included in an update. Now anything in
4360 UserConfig that matches [A-Za-z]*.py will go (this excludes
4366 UserConfig that matches [A-Za-z]*.py will go (this excludes
4361 __init__.py)
4367 __init__.py)
4362
4368
4363 2002-04-25 Fernando Perez <fperez@colorado.edu>
4369 2002-04-25 Fernando Perez <fperez@colorado.edu>
4364
4370
4365 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4371 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4366 to __builtins__ so that any form of embedded or imported code can
4372 to __builtins__ so that any form of embedded or imported code can
4367 test for being inside IPython.
4373 test for being inside IPython.
4368
4374
4369 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4375 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4370 changed to GnuplotMagic because it's now an importable module,
4376 changed to GnuplotMagic because it's now an importable module,
4371 this makes the name follow that of the standard Gnuplot module.
4377 this makes the name follow that of the standard Gnuplot module.
4372 GnuplotMagic can now be loaded at any time in mid-session.
4378 GnuplotMagic can now be loaded at any time in mid-session.
4373
4379
4374 2002-04-24 Fernando Perez <fperez@colorado.edu>
4380 2002-04-24 Fernando Perez <fperez@colorado.edu>
4375
4381
4376 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4382 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4377 the globals (IPython has its own namespace) and the
4383 the globals (IPython has its own namespace) and the
4378 PhysicalQuantity stuff is much better anyway.
4384 PhysicalQuantity stuff is much better anyway.
4379
4385
4380 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4386 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4381 embedding example to standard user directory for
4387 embedding example to standard user directory for
4382 distribution. Also put it in the manual.
4388 distribution. Also put it in the manual.
4383
4389
4384 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4390 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4385 instance as first argument (so it doesn't rely on some obscure
4391 instance as first argument (so it doesn't rely on some obscure
4386 hidden global).
4392 hidden global).
4387
4393
4388 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4394 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4389 delimiters. While it prevents ().TAB from working, it allows
4395 delimiters. While it prevents ().TAB from working, it allows
4390 completions in open (... expressions. This is by far a more common
4396 completions in open (... expressions. This is by far a more common
4391 case.
4397 case.
4392
4398
4393 2002-04-23 Fernando Perez <fperez@colorado.edu>
4399 2002-04-23 Fernando Perez <fperez@colorado.edu>
4394
4400
4395 * IPython/Extensions/InterpreterPasteInput.py: new
4401 * IPython/Extensions/InterpreterPasteInput.py: new
4396 syntax-processing module for pasting lines with >>> or ... at the
4402 syntax-processing module for pasting lines with >>> or ... at the
4397 start.
4403 start.
4398
4404
4399 * IPython/Extensions/PhysicalQ_Interactive.py
4405 * IPython/Extensions/PhysicalQ_Interactive.py
4400 (PhysicalQuantityInteractive.__int__): fixed to work with either
4406 (PhysicalQuantityInteractive.__int__): fixed to work with either
4401 Numeric or math.
4407 Numeric or math.
4402
4408
4403 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4409 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4404 provided profiles. Now we have:
4410 provided profiles. Now we have:
4405 -math -> math module as * and cmath with its own namespace.
4411 -math -> math module as * and cmath with its own namespace.
4406 -numeric -> Numeric as *, plus gnuplot & grace
4412 -numeric -> Numeric as *, plus gnuplot & grace
4407 -physics -> same as before
4413 -physics -> same as before
4408
4414
4409 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4415 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4410 user-defined magics wouldn't be found by @magic if they were
4416 user-defined magics wouldn't be found by @magic if they were
4411 defined as class methods. Also cleaned up the namespace search
4417 defined as class methods. Also cleaned up the namespace search
4412 logic and the string building (to use %s instead of many repeated
4418 logic and the string building (to use %s instead of many repeated
4413 string adds).
4419 string adds).
4414
4420
4415 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4421 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4416 of user-defined magics to operate with class methods (cleaner, in
4422 of user-defined magics to operate with class methods (cleaner, in
4417 line with the gnuplot code).
4423 line with the gnuplot code).
4418
4424
4419 2002-04-22 Fernando Perez <fperez@colorado.edu>
4425 2002-04-22 Fernando Perez <fperez@colorado.edu>
4420
4426
4421 * setup.py: updated dependency list so that manual is updated when
4427 * setup.py: updated dependency list so that manual is updated when
4422 all included files change.
4428 all included files change.
4423
4429
4424 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4430 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4425 the delimiter removal option (the fix is ugly right now).
4431 the delimiter removal option (the fix is ugly right now).
4426
4432
4427 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4433 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4428 all of the math profile (quicker loading, no conflict between
4434 all of the math profile (quicker loading, no conflict between
4429 g-9.8 and g-gnuplot).
4435 g-9.8 and g-gnuplot).
4430
4436
4431 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4437 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4432 name of post-mortem files to IPython_crash_report.txt.
4438 name of post-mortem files to IPython_crash_report.txt.
4433
4439
4434 * Cleanup/update of the docs. Added all the new readline info and
4440 * Cleanup/update of the docs. Added all the new readline info and
4435 formatted all lists as 'real lists'.
4441 formatted all lists as 'real lists'.
4436
4442
4437 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4443 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4438 tab-completion options, since the full readline parse_and_bind is
4444 tab-completion options, since the full readline parse_and_bind is
4439 now accessible.
4445 now accessible.
4440
4446
4441 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4447 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4442 handling of readline options. Now users can specify any string to
4448 handling of readline options. Now users can specify any string to
4443 be passed to parse_and_bind(), as well as the delimiters to be
4449 be passed to parse_and_bind(), as well as the delimiters to be
4444 removed.
4450 removed.
4445 (InteractiveShell.__init__): Added __name__ to the global
4451 (InteractiveShell.__init__): Added __name__ to the global
4446 namespace so that things like Itpl which rely on its existence
4452 namespace so that things like Itpl which rely on its existence
4447 don't crash.
4453 don't crash.
4448 (InteractiveShell._prefilter): Defined the default with a _ so
4454 (InteractiveShell._prefilter): Defined the default with a _ so
4449 that prefilter() is easier to override, while the default one
4455 that prefilter() is easier to override, while the default one
4450 remains available.
4456 remains available.
4451
4457
4452 2002-04-18 Fernando Perez <fperez@colorado.edu>
4458 2002-04-18 Fernando Perez <fperez@colorado.edu>
4453
4459
4454 * Added information about pdb in the docs.
4460 * Added information about pdb in the docs.
4455
4461
4456 2002-04-17 Fernando Perez <fperez@colorado.edu>
4462 2002-04-17 Fernando Perez <fperez@colorado.edu>
4457
4463
4458 * IPython/ipmaker.py (make_IPython): added rc_override option to
4464 * IPython/ipmaker.py (make_IPython): added rc_override option to
4459 allow passing config options at creation time which may override
4465 allow passing config options at creation time which may override
4460 anything set in the config files or command line. This is
4466 anything set in the config files or command line. This is
4461 particularly useful for configuring embedded instances.
4467 particularly useful for configuring embedded instances.
4462
4468
4463 2002-04-15 Fernando Perez <fperez@colorado.edu>
4469 2002-04-15 Fernando Perez <fperez@colorado.edu>
4464
4470
4465 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4471 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4466 crash embedded instances because of the input cache falling out of
4472 crash embedded instances because of the input cache falling out of
4467 sync with the output counter.
4473 sync with the output counter.
4468
4474
4469 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4475 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4470 mode which calls pdb after an uncaught exception in IPython itself.
4476 mode which calls pdb after an uncaught exception in IPython itself.
4471
4477
4472 2002-04-14 Fernando Perez <fperez@colorado.edu>
4478 2002-04-14 Fernando Perez <fperez@colorado.edu>
4473
4479
4474 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4480 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4475 readline, fix it back after each call.
4481 readline, fix it back after each call.
4476
4482
4477 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4483 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4478 method to force all access via __call__(), which guarantees that
4484 method to force all access via __call__(), which guarantees that
4479 traceback references are properly deleted.
4485 traceback references are properly deleted.
4480
4486
4481 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4487 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4482 improve printing when pprint is in use.
4488 improve printing when pprint is in use.
4483
4489
4484 2002-04-13 Fernando Perez <fperez@colorado.edu>
4490 2002-04-13 Fernando Perez <fperez@colorado.edu>
4485
4491
4486 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4492 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4487 exceptions aren't caught anymore. If the user triggers one, he
4493 exceptions aren't caught anymore. If the user triggers one, he
4488 should know why he's doing it and it should go all the way up,
4494 should know why he's doing it and it should go all the way up,
4489 just like any other exception. So now @abort will fully kill the
4495 just like any other exception. So now @abort will fully kill the
4490 embedded interpreter and the embedding code (unless that happens
4496 embedded interpreter and the embedding code (unless that happens
4491 to catch SystemExit).
4497 to catch SystemExit).
4492
4498
4493 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4499 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4494 and a debugger() method to invoke the interactive pdb debugger
4500 and a debugger() method to invoke the interactive pdb debugger
4495 after printing exception information. Also added the corresponding
4501 after printing exception information. Also added the corresponding
4496 -pdb option and @pdb magic to control this feature, and updated
4502 -pdb option and @pdb magic to control this feature, and updated
4497 the docs. After a suggestion from Christopher Hart
4503 the docs. After a suggestion from Christopher Hart
4498 (hart-AT-caltech.edu).
4504 (hart-AT-caltech.edu).
4499
4505
4500 2002-04-12 Fernando Perez <fperez@colorado.edu>
4506 2002-04-12 Fernando Perez <fperez@colorado.edu>
4501
4507
4502 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4508 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4503 the exception handlers defined by the user (not the CrashHandler)
4509 the exception handlers defined by the user (not the CrashHandler)
4504 so that user exceptions don't trigger an ipython bug report.
4510 so that user exceptions don't trigger an ipython bug report.
4505
4511
4506 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4512 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4507 configurable (it should have always been so).
4513 configurable (it should have always been so).
4508
4514
4509 2002-03-26 Fernando Perez <fperez@colorado.edu>
4515 2002-03-26 Fernando Perez <fperez@colorado.edu>
4510
4516
4511 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4517 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4512 and there to fix embedding namespace issues. This should all be
4518 and there to fix embedding namespace issues. This should all be
4513 done in a more elegant way.
4519 done in a more elegant way.
4514
4520
4515 2002-03-25 Fernando Perez <fperez@colorado.edu>
4521 2002-03-25 Fernando Perez <fperez@colorado.edu>
4516
4522
4517 * IPython/genutils.py (get_home_dir): Try to make it work under
4523 * IPython/genutils.py (get_home_dir): Try to make it work under
4518 win9x also.
4524 win9x also.
4519
4525
4520 2002-03-20 Fernando Perez <fperez@colorado.edu>
4526 2002-03-20 Fernando Perez <fperez@colorado.edu>
4521
4527
4522 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4528 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4523 sys.displayhook untouched upon __init__.
4529 sys.displayhook untouched upon __init__.
4524
4530
4525 2002-03-19 Fernando Perez <fperez@colorado.edu>
4531 2002-03-19 Fernando Perez <fperez@colorado.edu>
4526
4532
4527 * Released 0.2.9 (for embedding bug, basically).
4533 * Released 0.2.9 (for embedding bug, basically).
4528
4534
4529 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4535 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4530 exceptions so that enclosing shell's state can be restored.
4536 exceptions so that enclosing shell's state can be restored.
4531
4537
4532 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4538 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4533 naming conventions in the .ipython/ dir.
4539 naming conventions in the .ipython/ dir.
4534
4540
4535 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4541 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4536 from delimiters list so filenames with - in them get expanded.
4542 from delimiters list so filenames with - in them get expanded.
4537
4543
4538 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4544 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4539 sys.displayhook not being properly restored after an embedded call.
4545 sys.displayhook not being properly restored after an embedded call.
4540
4546
4541 2002-03-18 Fernando Perez <fperez@colorado.edu>
4547 2002-03-18 Fernando Perez <fperez@colorado.edu>
4542
4548
4543 * Released 0.2.8
4549 * Released 0.2.8
4544
4550
4545 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4551 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4546 some files weren't being included in a -upgrade.
4552 some files weren't being included in a -upgrade.
4547 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4553 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4548 on' so that the first tab completes.
4554 on' so that the first tab completes.
4549 (InteractiveShell.handle_magic): fixed bug with spaces around
4555 (InteractiveShell.handle_magic): fixed bug with spaces around
4550 quotes breaking many magic commands.
4556 quotes breaking many magic commands.
4551
4557
4552 * setup.py: added note about ignoring the syntax error messages at
4558 * setup.py: added note about ignoring the syntax error messages at
4553 installation.
4559 installation.
4554
4560
4555 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4561 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4556 streamlining the gnuplot interface, now there's only one magic @gp.
4562 streamlining the gnuplot interface, now there's only one magic @gp.
4557
4563
4558 2002-03-17 Fernando Perez <fperez@colorado.edu>
4564 2002-03-17 Fernando Perez <fperez@colorado.edu>
4559
4565
4560 * IPython/UserConfig/magic_gnuplot.py: new name for the
4566 * IPython/UserConfig/magic_gnuplot.py: new name for the
4561 example-magic_pm.py file. Much enhanced system, now with a shell
4567 example-magic_pm.py file. Much enhanced system, now with a shell
4562 for communicating directly with gnuplot, one command at a time.
4568 for communicating directly with gnuplot, one command at a time.
4563
4569
4564 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4570 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4565 setting __name__=='__main__'.
4571 setting __name__=='__main__'.
4566
4572
4567 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4573 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4568 mini-shell for accessing gnuplot from inside ipython. Should
4574 mini-shell for accessing gnuplot from inside ipython. Should
4569 extend it later for grace access too. Inspired by Arnd's
4575 extend it later for grace access too. Inspired by Arnd's
4570 suggestion.
4576 suggestion.
4571
4577
4572 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4578 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4573 calling magic functions with () in their arguments. Thanks to Arnd
4579 calling magic functions with () in their arguments. Thanks to Arnd
4574 Baecker for pointing this to me.
4580 Baecker for pointing this to me.
4575
4581
4576 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4582 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4577 infinitely for integer or complex arrays (only worked with floats).
4583 infinitely for integer or complex arrays (only worked with floats).
4578
4584
4579 2002-03-16 Fernando Perez <fperez@colorado.edu>
4585 2002-03-16 Fernando Perez <fperez@colorado.edu>
4580
4586
4581 * setup.py: Merged setup and setup_windows into a single script
4587 * setup.py: Merged setup and setup_windows into a single script
4582 which properly handles things for windows users.
4588 which properly handles things for windows users.
4583
4589
4584 2002-03-15 Fernando Perez <fperez@colorado.edu>
4590 2002-03-15 Fernando Perez <fperez@colorado.edu>
4585
4591
4586 * Big change to the manual: now the magics are all automatically
4592 * Big change to the manual: now the magics are all automatically
4587 documented. This information is generated from their docstrings
4593 documented. This information is generated from their docstrings
4588 and put in a latex file included by the manual lyx file. This way
4594 and put in a latex file included by the manual lyx file. This way
4589 we get always up to date information for the magics. The manual
4595 we get always up to date information for the magics. The manual
4590 now also has proper version information, also auto-synced.
4596 now also has proper version information, also auto-synced.
4591
4597
4592 For this to work, an undocumented --magic_docstrings option was added.
4598 For this to work, an undocumented --magic_docstrings option was added.
4593
4599
4594 2002-03-13 Fernando Perez <fperez@colorado.edu>
4600 2002-03-13 Fernando Perez <fperez@colorado.edu>
4595
4601
4596 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4602 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4597 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4603 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4598
4604
4599 2002-03-12 Fernando Perez <fperez@colorado.edu>
4605 2002-03-12 Fernando Perez <fperez@colorado.edu>
4600
4606
4601 * IPython/ultraTB.py (TermColors): changed color escapes again to
4607 * IPython/ultraTB.py (TermColors): changed color escapes again to
4602 fix the (old, reintroduced) line-wrapping bug. Basically, if
4608 fix the (old, reintroduced) line-wrapping bug. Basically, if
4603 \001..\002 aren't given in the color escapes, lines get wrapped
4609 \001..\002 aren't given in the color escapes, lines get wrapped
4604 weirdly. But giving those screws up old xterms and emacs terms. So
4610 weirdly. But giving those screws up old xterms and emacs terms. So
4605 I added some logic for emacs terms to be ok, but I can't identify old
4611 I added some logic for emacs terms to be ok, but I can't identify old
4606 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4612 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4607
4613
4608 2002-03-10 Fernando Perez <fperez@colorado.edu>
4614 2002-03-10 Fernando Perez <fperez@colorado.edu>
4609
4615
4610 * IPython/usage.py (__doc__): Various documentation cleanups and
4616 * IPython/usage.py (__doc__): Various documentation cleanups and
4611 updates, both in usage docstrings and in the manual.
4617 updates, both in usage docstrings and in the manual.
4612
4618
4613 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4619 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4614 handling of caching. Set minimum acceptabe value for having a
4620 handling of caching. Set minimum acceptabe value for having a
4615 cache at 20 values.
4621 cache at 20 values.
4616
4622
4617 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4623 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4618 install_first_time function to a method, renamed it and added an
4624 install_first_time function to a method, renamed it and added an
4619 'upgrade' mode. Now people can update their config directory with
4625 'upgrade' mode. Now people can update their config directory with
4620 a simple command line switch (-upgrade, also new).
4626 a simple command line switch (-upgrade, also new).
4621
4627
4622 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4628 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4623 @file (convenient for automagic users under Python >= 2.2).
4629 @file (convenient for automagic users under Python >= 2.2).
4624 Removed @files (it seemed more like a plural than an abbrev. of
4630 Removed @files (it seemed more like a plural than an abbrev. of
4625 'file show').
4631 'file show').
4626
4632
4627 * IPython/iplib.py (install_first_time): Fixed crash if there were
4633 * IPython/iplib.py (install_first_time): Fixed crash if there were
4628 backup files ('~') in .ipython/ install directory.
4634 backup files ('~') in .ipython/ install directory.
4629
4635
4630 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4636 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4631 system. Things look fine, but these changes are fairly
4637 system. Things look fine, but these changes are fairly
4632 intrusive. Test them for a few days.
4638 intrusive. Test them for a few days.
4633
4639
4634 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4640 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4635 the prompts system. Now all in/out prompt strings are user
4641 the prompts system. Now all in/out prompt strings are user
4636 controllable. This is particularly useful for embedding, as one
4642 controllable. This is particularly useful for embedding, as one
4637 can tag embedded instances with particular prompts.
4643 can tag embedded instances with particular prompts.
4638
4644
4639 Also removed global use of sys.ps1/2, which now allows nested
4645 Also removed global use of sys.ps1/2, which now allows nested
4640 embeddings without any problems. Added command-line options for
4646 embeddings without any problems. Added command-line options for
4641 the prompt strings.
4647 the prompt strings.
4642
4648
4643 2002-03-08 Fernando Perez <fperez@colorado.edu>
4649 2002-03-08 Fernando Perez <fperez@colorado.edu>
4644
4650
4645 * IPython/UserConfig/example-embed-short.py (ipshell): added
4651 * IPython/UserConfig/example-embed-short.py (ipshell): added
4646 example file with the bare minimum code for embedding.
4652 example file with the bare minimum code for embedding.
4647
4653
4648 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4654 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4649 functionality for the embeddable shell to be activated/deactivated
4655 functionality for the embeddable shell to be activated/deactivated
4650 either globally or at each call.
4656 either globally or at each call.
4651
4657
4652 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4658 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4653 rewriting the prompt with '--->' for auto-inputs with proper
4659 rewriting the prompt with '--->' for auto-inputs with proper
4654 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4660 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4655 this is handled by the prompts class itself, as it should.
4661 this is handled by the prompts class itself, as it should.
4656
4662
4657 2002-03-05 Fernando Perez <fperez@colorado.edu>
4663 2002-03-05 Fernando Perez <fperez@colorado.edu>
4658
4664
4659 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4665 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4660 @logstart to avoid name clashes with the math log function.
4666 @logstart to avoid name clashes with the math log function.
4661
4667
4662 * Big updates to X/Emacs section of the manual.
4668 * Big updates to X/Emacs section of the manual.
4663
4669
4664 * Removed ipython_emacs. Milan explained to me how to pass
4670 * Removed ipython_emacs. Milan explained to me how to pass
4665 arguments to ipython through Emacs. Some day I'm going to end up
4671 arguments to ipython through Emacs. Some day I'm going to end up
4666 learning some lisp...
4672 learning some lisp...
4667
4673
4668 2002-03-04 Fernando Perez <fperez@colorado.edu>
4674 2002-03-04 Fernando Perez <fperez@colorado.edu>
4669
4675
4670 * IPython/ipython_emacs: Created script to be used as the
4676 * IPython/ipython_emacs: Created script to be used as the
4671 py-python-command Emacs variable so we can pass IPython
4677 py-python-command Emacs variable so we can pass IPython
4672 parameters. I can't figure out how to tell Emacs directly to pass
4678 parameters. I can't figure out how to tell Emacs directly to pass
4673 parameters to IPython, so a dummy shell script will do it.
4679 parameters to IPython, so a dummy shell script will do it.
4674
4680
4675 Other enhancements made for things to work better under Emacs'
4681 Other enhancements made for things to work better under Emacs'
4676 various types of terminals. Many thanks to Milan Zamazal
4682 various types of terminals. Many thanks to Milan Zamazal
4677 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4683 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4678
4684
4679 2002-03-01 Fernando Perez <fperez@colorado.edu>
4685 2002-03-01 Fernando Perez <fperez@colorado.edu>
4680
4686
4681 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4687 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4682 that loading of readline is now optional. This gives better
4688 that loading of readline is now optional. This gives better
4683 control to emacs users.
4689 control to emacs users.
4684
4690
4685 * IPython/ultraTB.py (__date__): Modified color escape sequences
4691 * IPython/ultraTB.py (__date__): Modified color escape sequences
4686 and now things work fine under xterm and in Emacs' term buffers
4692 and now things work fine under xterm and in Emacs' term buffers
4687 (though not shell ones). Well, in emacs you get colors, but all
4693 (though not shell ones). Well, in emacs you get colors, but all
4688 seem to be 'light' colors (no difference between dark and light
4694 seem to be 'light' colors (no difference between dark and light
4689 ones). But the garbage chars are gone, and also in xterms. It
4695 ones). But the garbage chars are gone, and also in xterms. It
4690 seems that now I'm using 'cleaner' ansi sequences.
4696 seems that now I'm using 'cleaner' ansi sequences.
4691
4697
4692 2002-02-21 Fernando Perez <fperez@colorado.edu>
4698 2002-02-21 Fernando Perez <fperez@colorado.edu>
4693
4699
4694 * Released 0.2.7 (mainly to publish the scoping fix).
4700 * Released 0.2.7 (mainly to publish the scoping fix).
4695
4701
4696 * IPython/Logger.py (Logger.logstate): added. A corresponding
4702 * IPython/Logger.py (Logger.logstate): added. A corresponding
4697 @logstate magic was created.
4703 @logstate magic was created.
4698
4704
4699 * IPython/Magic.py: fixed nested scoping problem under Python
4705 * IPython/Magic.py: fixed nested scoping problem under Python
4700 2.1.x (automagic wasn't working).
4706 2.1.x (automagic wasn't working).
4701
4707
4702 2002-02-20 Fernando Perez <fperez@colorado.edu>
4708 2002-02-20 Fernando Perez <fperez@colorado.edu>
4703
4709
4704 * Released 0.2.6.
4710 * Released 0.2.6.
4705
4711
4706 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4712 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4707 option so that logs can come out without any headers at all.
4713 option so that logs can come out without any headers at all.
4708
4714
4709 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4715 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4710 SciPy.
4716 SciPy.
4711
4717
4712 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4718 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4713 that embedded IPython calls don't require vars() to be explicitly
4719 that embedded IPython calls don't require vars() to be explicitly
4714 passed. Now they are extracted from the caller's frame (code
4720 passed. Now they are extracted from the caller's frame (code
4715 snatched from Eric Jones' weave). Added better documentation to
4721 snatched from Eric Jones' weave). Added better documentation to
4716 the section on embedding and the example file.
4722 the section on embedding and the example file.
4717
4723
4718 * IPython/genutils.py (page): Changed so that under emacs, it just
4724 * IPython/genutils.py (page): Changed so that under emacs, it just
4719 prints the string. You can then page up and down in the emacs
4725 prints the string. You can then page up and down in the emacs
4720 buffer itself. This is how the builtin help() works.
4726 buffer itself. This is how the builtin help() works.
4721
4727
4722 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4728 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4723 macro scoping: macros need to be executed in the user's namespace
4729 macro scoping: macros need to be executed in the user's namespace
4724 to work as if they had been typed by the user.
4730 to work as if they had been typed by the user.
4725
4731
4726 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4732 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4727 execute automatically (no need to type 'exec...'). They then
4733 execute automatically (no need to type 'exec...'). They then
4728 behave like 'true macros'. The printing system was also modified
4734 behave like 'true macros'. The printing system was also modified
4729 for this to work.
4735 for this to work.
4730
4736
4731 2002-02-19 Fernando Perez <fperez@colorado.edu>
4737 2002-02-19 Fernando Perez <fperez@colorado.edu>
4732
4738
4733 * IPython/genutils.py (page_file): new function for paging files
4739 * IPython/genutils.py (page_file): new function for paging files
4734 in an OS-independent way. Also necessary for file viewing to work
4740 in an OS-independent way. Also necessary for file viewing to work
4735 well inside Emacs buffers.
4741 well inside Emacs buffers.
4736 (page): Added checks for being in an emacs buffer.
4742 (page): Added checks for being in an emacs buffer.
4737 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4743 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4738 same bug in iplib.
4744 same bug in iplib.
4739
4745
4740 2002-02-18 Fernando Perez <fperez@colorado.edu>
4746 2002-02-18 Fernando Perez <fperez@colorado.edu>
4741
4747
4742 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4748 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4743 of readline so that IPython can work inside an Emacs buffer.
4749 of readline so that IPython can work inside an Emacs buffer.
4744
4750
4745 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4751 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4746 method signatures (they weren't really bugs, but it looks cleaner
4752 method signatures (they weren't really bugs, but it looks cleaner
4747 and keeps PyChecker happy).
4753 and keeps PyChecker happy).
4748
4754
4749 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4755 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4750 for implementing various user-defined hooks. Currently only
4756 for implementing various user-defined hooks. Currently only
4751 display is done.
4757 display is done.
4752
4758
4753 * IPython/Prompts.py (CachedOutput._display): changed display
4759 * IPython/Prompts.py (CachedOutput._display): changed display
4754 functions so that they can be dynamically changed by users easily.
4760 functions so that they can be dynamically changed by users easily.
4755
4761
4756 * IPython/Extensions/numeric_formats.py (num_display): added an
4762 * IPython/Extensions/numeric_formats.py (num_display): added an
4757 extension for printing NumPy arrays in flexible manners. It
4763 extension for printing NumPy arrays in flexible manners. It
4758 doesn't do anything yet, but all the structure is in
4764 doesn't do anything yet, but all the structure is in
4759 place. Ultimately the plan is to implement output format control
4765 place. Ultimately the plan is to implement output format control
4760 like in Octave.
4766 like in Octave.
4761
4767
4762 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4768 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4763 methods are found at run-time by all the automatic machinery.
4769 methods are found at run-time by all the automatic machinery.
4764
4770
4765 2002-02-17 Fernando Perez <fperez@colorado.edu>
4771 2002-02-17 Fernando Perez <fperez@colorado.edu>
4766
4772
4767 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4773 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4768 whole file a little.
4774 whole file a little.
4769
4775
4770 * ToDo: closed this document. Now there's a new_design.lyx
4776 * ToDo: closed this document. Now there's a new_design.lyx
4771 document for all new ideas. Added making a pdf of it for the
4777 document for all new ideas. Added making a pdf of it for the
4772 end-user distro.
4778 end-user distro.
4773
4779
4774 * IPython/Logger.py (Logger.switch_log): Created this to replace
4780 * IPython/Logger.py (Logger.switch_log): Created this to replace
4775 logon() and logoff(). It also fixes a nasty crash reported by
4781 logon() and logoff(). It also fixes a nasty crash reported by
4776 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4782 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4777
4783
4778 * IPython/iplib.py (complete): got auto-completion to work with
4784 * IPython/iplib.py (complete): got auto-completion to work with
4779 automagic (I had wanted this for a long time).
4785 automagic (I had wanted this for a long time).
4780
4786
4781 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4787 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4782 to @file, since file() is now a builtin and clashes with automagic
4788 to @file, since file() is now a builtin and clashes with automagic
4783 for @file.
4789 for @file.
4784
4790
4785 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4791 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4786 of this was previously in iplib, which had grown to more than 2000
4792 of this was previously in iplib, which had grown to more than 2000
4787 lines, way too long. No new functionality, but it makes managing
4793 lines, way too long. No new functionality, but it makes managing
4788 the code a bit easier.
4794 the code a bit easier.
4789
4795
4790 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4796 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4791 information to crash reports.
4797 information to crash reports.
4792
4798
4793 2002-02-12 Fernando Perez <fperez@colorado.edu>
4799 2002-02-12 Fernando Perez <fperez@colorado.edu>
4794
4800
4795 * Released 0.2.5.
4801 * Released 0.2.5.
4796
4802
4797 2002-02-11 Fernando Perez <fperez@colorado.edu>
4803 2002-02-11 Fernando Perez <fperez@colorado.edu>
4798
4804
4799 * Wrote a relatively complete Windows installer. It puts
4805 * Wrote a relatively complete Windows installer. It puts
4800 everything in place, creates Start Menu entries and fixes the
4806 everything in place, creates Start Menu entries and fixes the
4801 color issues. Nothing fancy, but it works.
4807 color issues. Nothing fancy, but it works.
4802
4808
4803 2002-02-10 Fernando Perez <fperez@colorado.edu>
4809 2002-02-10 Fernando Perez <fperez@colorado.edu>
4804
4810
4805 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4811 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4806 os.path.expanduser() call so that we can type @run ~/myfile.py and
4812 os.path.expanduser() call so that we can type @run ~/myfile.py and
4807 have thigs work as expected.
4813 have thigs work as expected.
4808
4814
4809 * IPython/genutils.py (page): fixed exception handling so things
4815 * IPython/genutils.py (page): fixed exception handling so things
4810 work both in Unix and Windows correctly. Quitting a pager triggers
4816 work both in Unix and Windows correctly. Quitting a pager triggers
4811 an IOError/broken pipe in Unix, and in windows not finding a pager
4817 an IOError/broken pipe in Unix, and in windows not finding a pager
4812 is also an IOError, so I had to actually look at the return value
4818 is also an IOError, so I had to actually look at the return value
4813 of the exception, not just the exception itself. Should be ok now.
4819 of the exception, not just the exception itself. Should be ok now.
4814
4820
4815 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4821 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4816 modified to allow case-insensitive color scheme changes.
4822 modified to allow case-insensitive color scheme changes.
4817
4823
4818 2002-02-09 Fernando Perez <fperez@colorado.edu>
4824 2002-02-09 Fernando Perez <fperez@colorado.edu>
4819
4825
4820 * IPython/genutils.py (native_line_ends): new function to leave
4826 * IPython/genutils.py (native_line_ends): new function to leave
4821 user config files with os-native line-endings.
4827 user config files with os-native line-endings.
4822
4828
4823 * README and manual updates.
4829 * README and manual updates.
4824
4830
4825 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4831 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4826 instead of StringType to catch Unicode strings.
4832 instead of StringType to catch Unicode strings.
4827
4833
4828 * IPython/genutils.py (filefind): fixed bug for paths with
4834 * IPython/genutils.py (filefind): fixed bug for paths with
4829 embedded spaces (very common in Windows).
4835 embedded spaces (very common in Windows).
4830
4836
4831 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4837 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4832 files under Windows, so that they get automatically associated
4838 files under Windows, so that they get automatically associated
4833 with a text editor. Windows makes it a pain to handle
4839 with a text editor. Windows makes it a pain to handle
4834 extension-less files.
4840 extension-less files.
4835
4841
4836 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4842 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4837 warning about readline only occur for Posix. In Windows there's no
4843 warning about readline only occur for Posix. In Windows there's no
4838 way to get readline, so why bother with the warning.
4844 way to get readline, so why bother with the warning.
4839
4845
4840 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4846 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4841 for __str__ instead of dir(self), since dir() changed in 2.2.
4847 for __str__ instead of dir(self), since dir() changed in 2.2.
4842
4848
4843 * Ported to Windows! Tested on XP, I suspect it should work fine
4849 * Ported to Windows! Tested on XP, I suspect it should work fine
4844 on NT/2000, but I don't think it will work on 98 et al. That
4850 on NT/2000, but I don't think it will work on 98 et al. That
4845 series of Windows is such a piece of junk anyway that I won't try
4851 series of Windows is such a piece of junk anyway that I won't try
4846 porting it there. The XP port was straightforward, showed a few
4852 porting it there. The XP port was straightforward, showed a few
4847 bugs here and there (fixed all), in particular some string
4853 bugs here and there (fixed all), in particular some string
4848 handling stuff which required considering Unicode strings (which
4854 handling stuff which required considering Unicode strings (which
4849 Windows uses). This is good, but hasn't been too tested :) No
4855 Windows uses). This is good, but hasn't been too tested :) No
4850 fancy installer yet, I'll put a note in the manual so people at
4856 fancy installer yet, I'll put a note in the manual so people at
4851 least make manually a shortcut.
4857 least make manually a shortcut.
4852
4858
4853 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4859 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4854 into a single one, "colors". This now controls both prompt and
4860 into a single one, "colors". This now controls both prompt and
4855 exception color schemes, and can be changed both at startup
4861 exception color schemes, and can be changed both at startup
4856 (either via command-line switches or via ipythonrc files) and at
4862 (either via command-line switches or via ipythonrc files) and at
4857 runtime, with @colors.
4863 runtime, with @colors.
4858 (Magic.magic_run): renamed @prun to @run and removed the old
4864 (Magic.magic_run): renamed @prun to @run and removed the old
4859 @run. The two were too similar to warrant keeping both.
4865 @run. The two were too similar to warrant keeping both.
4860
4866
4861 2002-02-03 Fernando Perez <fperez@colorado.edu>
4867 2002-02-03 Fernando Perez <fperez@colorado.edu>
4862
4868
4863 * IPython/iplib.py (install_first_time): Added comment on how to
4869 * IPython/iplib.py (install_first_time): Added comment on how to
4864 configure the color options for first-time users. Put a <return>
4870 configure the color options for first-time users. Put a <return>
4865 request at the end so that small-terminal users get a chance to
4871 request at the end so that small-terminal users get a chance to
4866 read the startup info.
4872 read the startup info.
4867
4873
4868 2002-01-23 Fernando Perez <fperez@colorado.edu>
4874 2002-01-23 Fernando Perez <fperez@colorado.edu>
4869
4875
4870 * IPython/iplib.py (CachedOutput.update): Changed output memory
4876 * IPython/iplib.py (CachedOutput.update): Changed output memory
4871 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4877 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4872 input history we still use _i. Did this b/c these variable are
4878 input history we still use _i. Did this b/c these variable are
4873 very commonly used in interactive work, so the less we need to
4879 very commonly used in interactive work, so the less we need to
4874 type the better off we are.
4880 type the better off we are.
4875 (Magic.magic_prun): updated @prun to better handle the namespaces
4881 (Magic.magic_prun): updated @prun to better handle the namespaces
4876 the file will run in, including a fix for __name__ not being set
4882 the file will run in, including a fix for __name__ not being set
4877 before.
4883 before.
4878
4884
4879 2002-01-20 Fernando Perez <fperez@colorado.edu>
4885 2002-01-20 Fernando Perez <fperez@colorado.edu>
4880
4886
4881 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4887 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4882 extra garbage for Python 2.2. Need to look more carefully into
4888 extra garbage for Python 2.2. Need to look more carefully into
4883 this later.
4889 this later.
4884
4890
4885 2002-01-19 Fernando Perez <fperez@colorado.edu>
4891 2002-01-19 Fernando Perez <fperez@colorado.edu>
4886
4892
4887 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4893 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4888 display SyntaxError exceptions properly formatted when they occur
4894 display SyntaxError exceptions properly formatted when they occur
4889 (they can be triggered by imported code).
4895 (they can be triggered by imported code).
4890
4896
4891 2002-01-18 Fernando Perez <fperez@colorado.edu>
4897 2002-01-18 Fernando Perez <fperez@colorado.edu>
4892
4898
4893 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4899 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4894 SyntaxError exceptions are reported nicely formatted, instead of
4900 SyntaxError exceptions are reported nicely formatted, instead of
4895 spitting out only offset information as before.
4901 spitting out only offset information as before.
4896 (Magic.magic_prun): Added the @prun function for executing
4902 (Magic.magic_prun): Added the @prun function for executing
4897 programs with command line args inside IPython.
4903 programs with command line args inside IPython.
4898
4904
4899 2002-01-16 Fernando Perez <fperez@colorado.edu>
4905 2002-01-16 Fernando Perez <fperez@colorado.edu>
4900
4906
4901 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4907 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4902 to *not* include the last item given in a range. This brings their
4908 to *not* include the last item given in a range. This brings their
4903 behavior in line with Python's slicing:
4909 behavior in line with Python's slicing:
4904 a[n1:n2] -> a[n1]...a[n2-1]
4910 a[n1:n2] -> a[n1]...a[n2-1]
4905 It may be a bit less convenient, but I prefer to stick to Python's
4911 It may be a bit less convenient, but I prefer to stick to Python's
4906 conventions *everywhere*, so users never have to wonder.
4912 conventions *everywhere*, so users never have to wonder.
4907 (Magic.magic_macro): Added @macro function to ease the creation of
4913 (Magic.magic_macro): Added @macro function to ease the creation of
4908 macros.
4914 macros.
4909
4915
4910 2002-01-05 Fernando Perez <fperez@colorado.edu>
4916 2002-01-05 Fernando Perez <fperez@colorado.edu>
4911
4917
4912 * Released 0.2.4.
4918 * Released 0.2.4.
4913
4919
4914 * IPython/iplib.py (Magic.magic_pdef):
4920 * IPython/iplib.py (Magic.magic_pdef):
4915 (InteractiveShell.safe_execfile): report magic lines and error
4921 (InteractiveShell.safe_execfile): report magic lines and error
4916 lines without line numbers so one can easily copy/paste them for
4922 lines without line numbers so one can easily copy/paste them for
4917 re-execution.
4923 re-execution.
4918
4924
4919 * Updated manual with recent changes.
4925 * Updated manual with recent changes.
4920
4926
4921 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4927 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4922 docstring printing when class? is called. Very handy for knowing
4928 docstring printing when class? is called. Very handy for knowing
4923 how to create class instances (as long as __init__ is well
4929 how to create class instances (as long as __init__ is well
4924 documented, of course :)
4930 documented, of course :)
4925 (Magic.magic_doc): print both class and constructor docstrings.
4931 (Magic.magic_doc): print both class and constructor docstrings.
4926 (Magic.magic_pdef): give constructor info if passed a class and
4932 (Magic.magic_pdef): give constructor info if passed a class and
4927 __call__ info for callable object instances.
4933 __call__ info for callable object instances.
4928
4934
4929 2002-01-04 Fernando Perez <fperez@colorado.edu>
4935 2002-01-04 Fernando Perez <fperez@colorado.edu>
4930
4936
4931 * Made deep_reload() off by default. It doesn't always work
4937 * Made deep_reload() off by default. It doesn't always work
4932 exactly as intended, so it's probably safer to have it off. It's
4938 exactly as intended, so it's probably safer to have it off. It's
4933 still available as dreload() anyway, so nothing is lost.
4939 still available as dreload() anyway, so nothing is lost.
4934
4940
4935 2002-01-02 Fernando Perez <fperez@colorado.edu>
4941 2002-01-02 Fernando Perez <fperez@colorado.edu>
4936
4942
4937 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4943 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4938 so I wanted an updated release).
4944 so I wanted an updated release).
4939
4945
4940 2001-12-27 Fernando Perez <fperez@colorado.edu>
4946 2001-12-27 Fernando Perez <fperez@colorado.edu>
4941
4947
4942 * IPython/iplib.py (InteractiveShell.interact): Added the original
4948 * IPython/iplib.py (InteractiveShell.interact): Added the original
4943 code from 'code.py' for this module in order to change the
4949 code from 'code.py' for this module in order to change the
4944 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4950 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4945 the history cache would break when the user hit Ctrl-C, and
4951 the history cache would break when the user hit Ctrl-C, and
4946 interact() offers no way to add any hooks to it.
4952 interact() offers no way to add any hooks to it.
4947
4953
4948 2001-12-23 Fernando Perez <fperez@colorado.edu>
4954 2001-12-23 Fernando Perez <fperez@colorado.edu>
4949
4955
4950 * setup.py: added check for 'MANIFEST' before trying to remove
4956 * setup.py: added check for 'MANIFEST' before trying to remove
4951 it. Thanks to Sean Reifschneider.
4957 it. Thanks to Sean Reifschneider.
4952
4958
4953 2001-12-22 Fernando Perez <fperez@colorado.edu>
4959 2001-12-22 Fernando Perez <fperez@colorado.edu>
4954
4960
4955 * Released 0.2.2.
4961 * Released 0.2.2.
4956
4962
4957 * Finished (reasonably) writing the manual. Later will add the
4963 * Finished (reasonably) writing the manual. Later will add the
4958 python-standard navigation stylesheets, but for the time being
4964 python-standard navigation stylesheets, but for the time being
4959 it's fairly complete. Distribution will include html and pdf
4965 it's fairly complete. Distribution will include html and pdf
4960 versions.
4966 versions.
4961
4967
4962 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4968 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
4963 (MayaVi author).
4969 (MayaVi author).
4964
4970
4965 2001-12-21 Fernando Perez <fperez@colorado.edu>
4971 2001-12-21 Fernando Perez <fperez@colorado.edu>
4966
4972
4967 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4973 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
4968 good public release, I think (with the manual and the distutils
4974 good public release, I think (with the manual and the distutils
4969 installer). The manual can use some work, but that can go
4975 installer). The manual can use some work, but that can go
4970 slowly. Otherwise I think it's quite nice for end users. Next
4976 slowly. Otherwise I think it's quite nice for end users. Next
4971 summer, rewrite the guts of it...
4977 summer, rewrite the guts of it...
4972
4978
4973 * Changed format of ipythonrc files to use whitespace as the
4979 * Changed format of ipythonrc files to use whitespace as the
4974 separator instead of an explicit '='. Cleaner.
4980 separator instead of an explicit '='. Cleaner.
4975
4981
4976 2001-12-20 Fernando Perez <fperez@colorado.edu>
4982 2001-12-20 Fernando Perez <fperez@colorado.edu>
4977
4983
4978 * Started a manual in LyX. For now it's just a quick merge of the
4984 * Started a manual in LyX. For now it's just a quick merge of the
4979 various internal docstrings and READMEs. Later it may grow into a
4985 various internal docstrings and READMEs. Later it may grow into a
4980 nice, full-blown manual.
4986 nice, full-blown manual.
4981
4987
4982 * Set up a distutils based installer. Installation should now be
4988 * Set up a distutils based installer. Installation should now be
4983 trivially simple for end-users.
4989 trivially simple for end-users.
4984
4990
4985 2001-12-11 Fernando Perez <fperez@colorado.edu>
4991 2001-12-11 Fernando Perez <fperez@colorado.edu>
4986
4992
4987 * Released 0.2.0. First public release, announced it at
4993 * Released 0.2.0. First public release, announced it at
4988 comp.lang.python. From now on, just bugfixes...
4994 comp.lang.python. From now on, just bugfixes...
4989
4995
4990 * Went through all the files, set copyright/license notices and
4996 * Went through all the files, set copyright/license notices and
4991 cleaned up things. Ready for release.
4997 cleaned up things. Ready for release.
4992
4998
4993 2001-12-10 Fernando Perez <fperez@colorado.edu>
4999 2001-12-10 Fernando Perez <fperez@colorado.edu>
4994
5000
4995 * Changed the first-time installer not to use tarfiles. It's more
5001 * Changed the first-time installer not to use tarfiles. It's more
4996 robust now and less unix-dependent. Also makes it easier for
5002 robust now and less unix-dependent. Also makes it easier for
4997 people to later upgrade versions.
5003 people to later upgrade versions.
4998
5004
4999 * Changed @exit to @abort to reflect the fact that it's pretty
5005 * Changed @exit to @abort to reflect the fact that it's pretty
5000 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5006 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5001 becomes significant only when IPyhton is embedded: in that case,
5007 becomes significant only when IPyhton is embedded: in that case,
5002 C-D closes IPython only, but @abort kills the enclosing program
5008 C-D closes IPython only, but @abort kills the enclosing program
5003 too (unless it had called IPython inside a try catching
5009 too (unless it had called IPython inside a try catching
5004 SystemExit).
5010 SystemExit).
5005
5011
5006 * Created Shell module which exposes the actuall IPython Shell
5012 * Created Shell module which exposes the actuall IPython Shell
5007 classes, currently the normal and the embeddable one. This at
5013 classes, currently the normal and the embeddable one. This at
5008 least offers a stable interface we won't need to change when
5014 least offers a stable interface we won't need to change when
5009 (later) the internals are rewritten. That rewrite will be confined
5015 (later) the internals are rewritten. That rewrite will be confined
5010 to iplib and ipmaker, but the Shell interface should remain as is.
5016 to iplib and ipmaker, but the Shell interface should remain as is.
5011
5017
5012 * Added embed module which offers an embeddable IPShell object,
5018 * Added embed module which offers an embeddable IPShell object,
5013 useful to fire up IPython *inside* a running program. Great for
5019 useful to fire up IPython *inside* a running program. Great for
5014 debugging or dynamical data analysis.
5020 debugging or dynamical data analysis.
5015
5021
5016 2001-12-08 Fernando Perez <fperez@colorado.edu>
5022 2001-12-08 Fernando Perez <fperez@colorado.edu>
5017
5023
5018 * Fixed small bug preventing seeing info from methods of defined
5024 * Fixed small bug preventing seeing info from methods of defined
5019 objects (incorrect namespace in _ofind()).
5025 objects (incorrect namespace in _ofind()).
5020
5026
5021 * Documentation cleanup. Moved the main usage docstrings to a
5027 * Documentation cleanup. Moved the main usage docstrings to a
5022 separate file, usage.py (cleaner to maintain, and hopefully in the
5028 separate file, usage.py (cleaner to maintain, and hopefully in the
5023 future some perlpod-like way of producing interactive, man and
5029 future some perlpod-like way of producing interactive, man and
5024 html docs out of it will be found).
5030 html docs out of it will be found).
5025
5031
5026 * Added @profile to see your profile at any time.
5032 * Added @profile to see your profile at any time.
5027
5033
5028 * Added @p as an alias for 'print'. It's especially convenient if
5034 * Added @p as an alias for 'print'. It's especially convenient if
5029 using automagic ('p x' prints x).
5035 using automagic ('p x' prints x).
5030
5036
5031 * Small cleanups and fixes after a pychecker run.
5037 * Small cleanups and fixes after a pychecker run.
5032
5038
5033 * Changed the @cd command to handle @cd - and @cd -<n> for
5039 * Changed the @cd command to handle @cd - and @cd -<n> for
5034 visiting any directory in _dh.
5040 visiting any directory in _dh.
5035
5041
5036 * Introduced _dh, a history of visited directories. @dhist prints
5042 * Introduced _dh, a history of visited directories. @dhist prints
5037 it out with numbers.
5043 it out with numbers.
5038
5044
5039 2001-12-07 Fernando Perez <fperez@colorado.edu>
5045 2001-12-07 Fernando Perez <fperez@colorado.edu>
5040
5046
5041 * Released 0.1.22
5047 * Released 0.1.22
5042
5048
5043 * Made initialization a bit more robust against invalid color
5049 * Made initialization a bit more robust against invalid color
5044 options in user input (exit, not traceback-crash).
5050 options in user input (exit, not traceback-crash).
5045
5051
5046 * Changed the bug crash reporter to write the report only in the
5052 * Changed the bug crash reporter to write the report only in the
5047 user's .ipython directory. That way IPython won't litter people's
5053 user's .ipython directory. That way IPython won't litter people's
5048 hard disks with crash files all over the place. Also print on
5054 hard disks with crash files all over the place. Also print on
5049 screen the necessary mail command.
5055 screen the necessary mail command.
5050
5056
5051 * With the new ultraTB, implemented LightBG color scheme for light
5057 * With the new ultraTB, implemented LightBG color scheme for light
5052 background terminals. A lot of people like white backgrounds, so I
5058 background terminals. A lot of people like white backgrounds, so I
5053 guess we should at least give them something readable.
5059 guess we should at least give them something readable.
5054
5060
5055 2001-12-06 Fernando Perez <fperez@colorado.edu>
5061 2001-12-06 Fernando Perez <fperez@colorado.edu>
5056
5062
5057 * Modified the structure of ultraTB. Now there's a proper class
5063 * Modified the structure of ultraTB. Now there's a proper class
5058 for tables of color schemes which allow adding schemes easily and
5064 for tables of color schemes which allow adding schemes easily and
5059 switching the active scheme without creating a new instance every
5065 switching the active scheme without creating a new instance every
5060 time (which was ridiculous). The syntax for creating new schemes
5066 time (which was ridiculous). The syntax for creating new schemes
5061 is also cleaner. I think ultraTB is finally done, with a clean
5067 is also cleaner. I think ultraTB is finally done, with a clean
5062 class structure. Names are also much cleaner (now there's proper
5068 class structure. Names are also much cleaner (now there's proper
5063 color tables, no need for every variable to also have 'color' in
5069 color tables, no need for every variable to also have 'color' in
5064 its name).
5070 its name).
5065
5071
5066 * Broke down genutils into separate files. Now genutils only
5072 * Broke down genutils into separate files. Now genutils only
5067 contains utility functions, and classes have been moved to their
5073 contains utility functions, and classes have been moved to their
5068 own files (they had enough independent functionality to warrant
5074 own files (they had enough independent functionality to warrant
5069 it): ConfigLoader, OutputTrap, Struct.
5075 it): ConfigLoader, OutputTrap, Struct.
5070
5076
5071 2001-12-05 Fernando Perez <fperez@colorado.edu>
5077 2001-12-05 Fernando Perez <fperez@colorado.edu>
5072
5078
5073 * IPython turns 21! Released version 0.1.21, as a candidate for
5079 * IPython turns 21! Released version 0.1.21, as a candidate for
5074 public consumption. If all goes well, release in a few days.
5080 public consumption. If all goes well, release in a few days.
5075
5081
5076 * Fixed path bug (files in Extensions/ directory wouldn't be found
5082 * Fixed path bug (files in Extensions/ directory wouldn't be found
5077 unless IPython/ was explicitly in sys.path).
5083 unless IPython/ was explicitly in sys.path).
5078
5084
5079 * Extended the FlexCompleter class as MagicCompleter to allow
5085 * Extended the FlexCompleter class as MagicCompleter to allow
5080 completion of @-starting lines.
5086 completion of @-starting lines.
5081
5087
5082 * Created __release__.py file as a central repository for release
5088 * Created __release__.py file as a central repository for release
5083 info that other files can read from.
5089 info that other files can read from.
5084
5090
5085 * Fixed small bug in logging: when logging was turned on in
5091 * Fixed small bug in logging: when logging was turned on in
5086 mid-session, old lines with special meanings (!@?) were being
5092 mid-session, old lines with special meanings (!@?) were being
5087 logged without the prepended comment, which is necessary since
5093 logged without the prepended comment, which is necessary since
5088 they are not truly valid python syntax. This should make session
5094 they are not truly valid python syntax. This should make session
5089 restores produce less errors.
5095 restores produce less errors.
5090
5096
5091 * The namespace cleanup forced me to make a FlexCompleter class
5097 * The namespace cleanup forced me to make a FlexCompleter class
5092 which is nothing but a ripoff of rlcompleter, but with selectable
5098 which is nothing but a ripoff of rlcompleter, but with selectable
5093 namespace (rlcompleter only works in __main__.__dict__). I'll try
5099 namespace (rlcompleter only works in __main__.__dict__). I'll try
5094 to submit a note to the authors to see if this change can be
5100 to submit a note to the authors to see if this change can be
5095 incorporated in future rlcompleter releases (Dec.6: done)
5101 incorporated in future rlcompleter releases (Dec.6: done)
5096
5102
5097 * More fixes to namespace handling. It was a mess! Now all
5103 * More fixes to namespace handling. It was a mess! Now all
5098 explicit references to __main__.__dict__ are gone (except when
5104 explicit references to __main__.__dict__ are gone (except when
5099 really needed) and everything is handled through the namespace
5105 really needed) and everything is handled through the namespace
5100 dicts in the IPython instance. We seem to be getting somewhere
5106 dicts in the IPython instance. We seem to be getting somewhere
5101 with this, finally...
5107 with this, finally...
5102
5108
5103 * Small documentation updates.
5109 * Small documentation updates.
5104
5110
5105 * Created the Extensions directory under IPython (with an
5111 * Created the Extensions directory under IPython (with an
5106 __init__.py). Put the PhysicalQ stuff there. This directory should
5112 __init__.py). Put the PhysicalQ stuff there. This directory should
5107 be used for all special-purpose extensions.
5113 be used for all special-purpose extensions.
5108
5114
5109 * File renaming:
5115 * File renaming:
5110 ipythonlib --> ipmaker
5116 ipythonlib --> ipmaker
5111 ipplib --> iplib
5117 ipplib --> iplib
5112 This makes a bit more sense in terms of what these files actually do.
5118 This makes a bit more sense in terms of what these files actually do.
5113
5119
5114 * Moved all the classes and functions in ipythonlib to ipplib, so
5120 * Moved all the classes and functions in ipythonlib to ipplib, so
5115 now ipythonlib only has make_IPython(). This will ease up its
5121 now ipythonlib only has make_IPython(). This will ease up its
5116 splitting in smaller functional chunks later.
5122 splitting in smaller functional chunks later.
5117
5123
5118 * Cleaned up (done, I think) output of @whos. Better column
5124 * Cleaned up (done, I think) output of @whos. Better column
5119 formatting, and now shows str(var) for as much as it can, which is
5125 formatting, and now shows str(var) for as much as it can, which is
5120 typically what one gets with a 'print var'.
5126 typically what one gets with a 'print var'.
5121
5127
5122 2001-12-04 Fernando Perez <fperez@colorado.edu>
5128 2001-12-04 Fernando Perez <fperez@colorado.edu>
5123
5129
5124 * Fixed namespace problems. Now builtin/IPyhton/user names get
5130 * Fixed namespace problems. Now builtin/IPyhton/user names get
5125 properly reported in their namespace. Internal namespace handling
5131 properly reported in their namespace. Internal namespace handling
5126 is finally getting decent (not perfect yet, but much better than
5132 is finally getting decent (not perfect yet, but much better than
5127 the ad-hoc mess we had).
5133 the ad-hoc mess we had).
5128
5134
5129 * Removed -exit option. If people just want to run a python
5135 * Removed -exit option. If people just want to run a python
5130 script, that's what the normal interpreter is for. Less
5136 script, that's what the normal interpreter is for. Less
5131 unnecessary options, less chances for bugs.
5137 unnecessary options, less chances for bugs.
5132
5138
5133 * Added a crash handler which generates a complete post-mortem if
5139 * Added a crash handler which generates a complete post-mortem if
5134 IPython crashes. This will help a lot in tracking bugs down the
5140 IPython crashes. This will help a lot in tracking bugs down the
5135 road.
5141 road.
5136
5142
5137 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5143 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5138 which were boud to functions being reassigned would bypass the
5144 which were boud to functions being reassigned would bypass the
5139 logger, breaking the sync of _il with the prompt counter. This
5145 logger, breaking the sync of _il with the prompt counter. This
5140 would then crash IPython later when a new line was logged.
5146 would then crash IPython later when a new line was logged.
5141
5147
5142 2001-12-02 Fernando Perez <fperez@colorado.edu>
5148 2001-12-02 Fernando Perez <fperez@colorado.edu>
5143
5149
5144 * Made IPython a package. This means people don't have to clutter
5150 * Made IPython a package. This means people don't have to clutter
5145 their sys.path with yet another directory. Changed the INSTALL
5151 their sys.path with yet another directory. Changed the INSTALL
5146 file accordingly.
5152 file accordingly.
5147
5153
5148 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5154 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5149 sorts its output (so @who shows it sorted) and @whos formats the
5155 sorts its output (so @who shows it sorted) and @whos formats the
5150 table according to the width of the first column. Nicer, easier to
5156 table according to the width of the first column. Nicer, easier to
5151 read. Todo: write a generic table_format() which takes a list of
5157 read. Todo: write a generic table_format() which takes a list of
5152 lists and prints it nicely formatted, with optional row/column
5158 lists and prints it nicely formatted, with optional row/column
5153 separators and proper padding and justification.
5159 separators and proper padding and justification.
5154
5160
5155 * Released 0.1.20
5161 * Released 0.1.20
5156
5162
5157 * Fixed bug in @log which would reverse the inputcache list (a
5163 * Fixed bug in @log which would reverse the inputcache list (a
5158 copy operation was missing).
5164 copy operation was missing).
5159
5165
5160 * Code cleanup. @config was changed to use page(). Better, since
5166 * Code cleanup. @config was changed to use page(). Better, since
5161 its output is always quite long.
5167 its output is always quite long.
5162
5168
5163 * Itpl is back as a dependency. I was having too many problems
5169 * Itpl is back as a dependency. I was having too many problems
5164 getting the parametric aliases to work reliably, and it's just
5170 getting the parametric aliases to work reliably, and it's just
5165 easier to code weird string operations with it than playing %()s
5171 easier to code weird string operations with it than playing %()s
5166 games. It's only ~6k, so I don't think it's too big a deal.
5172 games. It's only ~6k, so I don't think it's too big a deal.
5167
5173
5168 * Found (and fixed) a very nasty bug with history. !lines weren't
5174 * Found (and fixed) a very nasty bug with history. !lines weren't
5169 getting cached, and the out of sync caches would crash
5175 getting cached, and the out of sync caches would crash
5170 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5176 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5171 division of labor a bit better. Bug fixed, cleaner structure.
5177 division of labor a bit better. Bug fixed, cleaner structure.
5172
5178
5173 2001-12-01 Fernando Perez <fperez@colorado.edu>
5179 2001-12-01 Fernando Perez <fperez@colorado.edu>
5174
5180
5175 * Released 0.1.19
5181 * Released 0.1.19
5176
5182
5177 * Added option -n to @hist to prevent line number printing. Much
5183 * Added option -n to @hist to prevent line number printing. Much
5178 easier to copy/paste code this way.
5184 easier to copy/paste code this way.
5179
5185
5180 * Created global _il to hold the input list. Allows easy
5186 * Created global _il to hold the input list. Allows easy
5181 re-execution of blocks of code by slicing it (inspired by Janko's
5187 re-execution of blocks of code by slicing it (inspired by Janko's
5182 comment on 'macros').
5188 comment on 'macros').
5183
5189
5184 * Small fixes and doc updates.
5190 * Small fixes and doc updates.
5185
5191
5186 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5192 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5187 much too fragile with automagic. Handles properly multi-line
5193 much too fragile with automagic. Handles properly multi-line
5188 statements and takes parameters.
5194 statements and takes parameters.
5189
5195
5190 2001-11-30 Fernando Perez <fperez@colorado.edu>
5196 2001-11-30 Fernando Perez <fperez@colorado.edu>
5191
5197
5192 * Version 0.1.18 released.
5198 * Version 0.1.18 released.
5193
5199
5194 * Fixed nasty namespace bug in initial module imports.
5200 * Fixed nasty namespace bug in initial module imports.
5195
5201
5196 * Added copyright/license notes to all code files (except
5202 * Added copyright/license notes to all code files (except
5197 DPyGetOpt). For the time being, LGPL. That could change.
5203 DPyGetOpt). For the time being, LGPL. That could change.
5198
5204
5199 * Rewrote a much nicer README, updated INSTALL, cleaned up
5205 * Rewrote a much nicer README, updated INSTALL, cleaned up
5200 ipythonrc-* samples.
5206 ipythonrc-* samples.
5201
5207
5202 * Overall code/documentation cleanup. Basically ready for
5208 * Overall code/documentation cleanup. Basically ready for
5203 release. Only remaining thing: licence decision (LGPL?).
5209 release. Only remaining thing: licence decision (LGPL?).
5204
5210
5205 * Converted load_config to a class, ConfigLoader. Now recursion
5211 * Converted load_config to a class, ConfigLoader. Now recursion
5206 control is better organized. Doesn't include the same file twice.
5212 control is better organized. Doesn't include the same file twice.
5207
5213
5208 2001-11-29 Fernando Perez <fperez@colorado.edu>
5214 2001-11-29 Fernando Perez <fperez@colorado.edu>
5209
5215
5210 * Got input history working. Changed output history variables from
5216 * Got input history working. Changed output history variables from
5211 _p to _o so that _i is for input and _o for output. Just cleaner
5217 _p to _o so that _i is for input and _o for output. Just cleaner
5212 convention.
5218 convention.
5213
5219
5214 * Implemented parametric aliases. This pretty much allows the
5220 * Implemented parametric aliases. This pretty much allows the
5215 alias system to offer full-blown shell convenience, I think.
5221 alias system to offer full-blown shell convenience, I think.
5216
5222
5217 * Version 0.1.17 released, 0.1.18 opened.
5223 * Version 0.1.17 released, 0.1.18 opened.
5218
5224
5219 * dot_ipython/ipythonrc (alias): added documentation.
5225 * dot_ipython/ipythonrc (alias): added documentation.
5220 (xcolor): Fixed small bug (xcolors -> xcolor)
5226 (xcolor): Fixed small bug (xcolors -> xcolor)
5221
5227
5222 * Changed the alias system. Now alias is a magic command to define
5228 * Changed the alias system. Now alias is a magic command to define
5223 aliases just like the shell. Rationale: the builtin magics should
5229 aliases just like the shell. Rationale: the builtin magics should
5224 be there for things deeply connected to IPython's
5230 be there for things deeply connected to IPython's
5225 architecture. And this is a much lighter system for what I think
5231 architecture. And this is a much lighter system for what I think
5226 is the really important feature: allowing users to define quickly
5232 is the really important feature: allowing users to define quickly
5227 magics that will do shell things for them, so they can customize
5233 magics that will do shell things for them, so they can customize
5228 IPython easily to match their work habits. If someone is really
5234 IPython easily to match their work habits. If someone is really
5229 desperate to have another name for a builtin alias, they can
5235 desperate to have another name for a builtin alias, they can
5230 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5236 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5231 works.
5237 works.
5232
5238
5233 2001-11-28 Fernando Perez <fperez@colorado.edu>
5239 2001-11-28 Fernando Perez <fperez@colorado.edu>
5234
5240
5235 * Changed @file so that it opens the source file at the proper
5241 * Changed @file so that it opens the source file at the proper
5236 line. Since it uses less, if your EDITOR environment is
5242 line. Since it uses less, if your EDITOR environment is
5237 configured, typing v will immediately open your editor of choice
5243 configured, typing v will immediately open your editor of choice
5238 right at the line where the object is defined. Not as quick as
5244 right at the line where the object is defined. Not as quick as
5239 having a direct @edit command, but for all intents and purposes it
5245 having a direct @edit command, but for all intents and purposes it
5240 works. And I don't have to worry about writing @edit to deal with
5246 works. And I don't have to worry about writing @edit to deal with
5241 all the editors, less does that.
5247 all the editors, less does that.
5242
5248
5243 * Version 0.1.16 released, 0.1.17 opened.
5249 * Version 0.1.16 released, 0.1.17 opened.
5244
5250
5245 * Fixed some nasty bugs in the page/page_dumb combo that could
5251 * Fixed some nasty bugs in the page/page_dumb combo that could
5246 crash IPython.
5252 crash IPython.
5247
5253
5248 2001-11-27 Fernando Perez <fperez@colorado.edu>
5254 2001-11-27 Fernando Perez <fperez@colorado.edu>
5249
5255
5250 * Version 0.1.15 released, 0.1.16 opened.
5256 * Version 0.1.15 released, 0.1.16 opened.
5251
5257
5252 * Finally got ? and ?? to work for undefined things: now it's
5258 * Finally got ? and ?? to work for undefined things: now it's
5253 possible to type {}.get? and get information about the get method
5259 possible to type {}.get? and get information about the get method
5254 of dicts, or os.path? even if only os is defined (so technically
5260 of dicts, or os.path? even if only os is defined (so technically
5255 os.path isn't). Works at any level. For example, after import os,
5261 os.path isn't). Works at any level. For example, after import os,
5256 os?, os.path?, os.path.abspath? all work. This is great, took some
5262 os?, os.path?, os.path.abspath? all work. This is great, took some
5257 work in _ofind.
5263 work in _ofind.
5258
5264
5259 * Fixed more bugs with logging. The sanest way to do it was to add
5265 * Fixed more bugs with logging. The sanest way to do it was to add
5260 to @log a 'mode' parameter. Killed two in one shot (this mode
5266 to @log a 'mode' parameter. Killed two in one shot (this mode
5261 option was a request of Janko's). I think it's finally clean
5267 option was a request of Janko's). I think it's finally clean
5262 (famous last words).
5268 (famous last words).
5263
5269
5264 * Added a page_dumb() pager which does a decent job of paging on
5270 * Added a page_dumb() pager which does a decent job of paging on
5265 screen, if better things (like less) aren't available. One less
5271 screen, if better things (like less) aren't available. One less
5266 unix dependency (someday maybe somebody will port this to
5272 unix dependency (someday maybe somebody will port this to
5267 windows).
5273 windows).
5268
5274
5269 * Fixed problem in magic_log: would lock of logging out if log
5275 * Fixed problem in magic_log: would lock of logging out if log
5270 creation failed (because it would still think it had succeeded).
5276 creation failed (because it would still think it had succeeded).
5271
5277
5272 * Improved the page() function using curses to auto-detect screen
5278 * Improved the page() function using curses to auto-detect screen
5273 size. Now it can make a much better decision on whether to print
5279 size. Now it can make a much better decision on whether to print
5274 or page a string. Option screen_length was modified: a value 0
5280 or page a string. Option screen_length was modified: a value 0
5275 means auto-detect, and that's the default now.
5281 means auto-detect, and that's the default now.
5276
5282
5277 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5283 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5278 go out. I'll test it for a few days, then talk to Janko about
5284 go out. I'll test it for a few days, then talk to Janko about
5279 licences and announce it.
5285 licences and announce it.
5280
5286
5281 * Fixed the length of the auto-generated ---> prompt which appears
5287 * Fixed the length of the auto-generated ---> prompt which appears
5282 for auto-parens and auto-quotes. Getting this right isn't trivial,
5288 for auto-parens and auto-quotes. Getting this right isn't trivial,
5283 with all the color escapes, different prompt types and optional
5289 with all the color escapes, different prompt types and optional
5284 separators. But it seems to be working in all the combinations.
5290 separators. But it seems to be working in all the combinations.
5285
5291
5286 2001-11-26 Fernando Perez <fperez@colorado.edu>
5292 2001-11-26 Fernando Perez <fperez@colorado.edu>
5287
5293
5288 * Wrote a regexp filter to get option types from the option names
5294 * Wrote a regexp filter to get option types from the option names
5289 string. This eliminates the need to manually keep two duplicate
5295 string. This eliminates the need to manually keep two duplicate
5290 lists.
5296 lists.
5291
5297
5292 * Removed the unneeded check_option_names. Now options are handled
5298 * Removed the unneeded check_option_names. Now options are handled
5293 in a much saner manner and it's easy to visually check that things
5299 in a much saner manner and it's easy to visually check that things
5294 are ok.
5300 are ok.
5295
5301
5296 * Updated version numbers on all files I modified to carry a
5302 * Updated version numbers on all files I modified to carry a
5297 notice so Janko and Nathan have clear version markers.
5303 notice so Janko and Nathan have clear version markers.
5298
5304
5299 * Updated docstring for ultraTB with my changes. I should send
5305 * Updated docstring for ultraTB with my changes. I should send
5300 this to Nathan.
5306 this to Nathan.
5301
5307
5302 * Lots of small fixes. Ran everything through pychecker again.
5308 * Lots of small fixes. Ran everything through pychecker again.
5303
5309
5304 * Made loading of deep_reload an cmd line option. If it's not too
5310 * Made loading of deep_reload an cmd line option. If it's not too
5305 kosher, now people can just disable it. With -nodeep_reload it's
5311 kosher, now people can just disable it. With -nodeep_reload it's
5306 still available as dreload(), it just won't overwrite reload().
5312 still available as dreload(), it just won't overwrite reload().
5307
5313
5308 * Moved many options to the no| form (-opt and -noopt
5314 * Moved many options to the no| form (-opt and -noopt
5309 accepted). Cleaner.
5315 accepted). Cleaner.
5310
5316
5311 * Changed magic_log so that if called with no parameters, it uses
5317 * Changed magic_log so that if called with no parameters, it uses
5312 'rotate' mode. That way auto-generated logs aren't automatically
5318 'rotate' mode. That way auto-generated logs aren't automatically
5313 over-written. For normal logs, now a backup is made if it exists
5319 over-written. For normal logs, now a backup is made if it exists
5314 (only 1 level of backups). A new 'backup' mode was added to the
5320 (only 1 level of backups). A new 'backup' mode was added to the
5315 Logger class to support this. This was a request by Janko.
5321 Logger class to support this. This was a request by Janko.
5316
5322
5317 * Added @logoff/@logon to stop/restart an active log.
5323 * Added @logoff/@logon to stop/restart an active log.
5318
5324
5319 * Fixed a lot of bugs in log saving/replay. It was pretty
5325 * Fixed a lot of bugs in log saving/replay. It was pretty
5320 broken. Now special lines (!@,/) appear properly in the command
5326 broken. Now special lines (!@,/) appear properly in the command
5321 history after a log replay.
5327 history after a log replay.
5322
5328
5323 * Tried and failed to implement full session saving via pickle. My
5329 * Tried and failed to implement full session saving via pickle. My
5324 idea was to pickle __main__.__dict__, but modules can't be
5330 idea was to pickle __main__.__dict__, but modules can't be
5325 pickled. This would be a better alternative to replaying logs, but
5331 pickled. This would be a better alternative to replaying logs, but
5326 seems quite tricky to get to work. Changed -session to be called
5332 seems quite tricky to get to work. Changed -session to be called
5327 -logplay, which more accurately reflects what it does. And if we
5333 -logplay, which more accurately reflects what it does. And if we
5328 ever get real session saving working, -session is now available.
5334 ever get real session saving working, -session is now available.
5329
5335
5330 * Implemented color schemes for prompts also. As for tracebacks,
5336 * Implemented color schemes for prompts also. As for tracebacks,
5331 currently only NoColor and Linux are supported. But now the
5337 currently only NoColor and Linux are supported. But now the
5332 infrastructure is in place, based on a generic ColorScheme
5338 infrastructure is in place, based on a generic ColorScheme
5333 class. So writing and activating new schemes both for the prompts
5339 class. So writing and activating new schemes both for the prompts
5334 and the tracebacks should be straightforward.
5340 and the tracebacks should be straightforward.
5335
5341
5336 * Version 0.1.13 released, 0.1.14 opened.
5342 * Version 0.1.13 released, 0.1.14 opened.
5337
5343
5338 * Changed handling of options for output cache. Now counter is
5344 * Changed handling of options for output cache. Now counter is
5339 hardwired starting at 1 and one specifies the maximum number of
5345 hardwired starting at 1 and one specifies the maximum number of
5340 entries *in the outcache* (not the max prompt counter). This is
5346 entries *in the outcache* (not the max prompt counter). This is
5341 much better, since many statements won't increase the cache
5347 much better, since many statements won't increase the cache
5342 count. It also eliminated some confusing options, now there's only
5348 count. It also eliminated some confusing options, now there's only
5343 one: cache_size.
5349 one: cache_size.
5344
5350
5345 * Added 'alias' magic function and magic_alias option in the
5351 * Added 'alias' magic function and magic_alias option in the
5346 ipythonrc file. Now the user can easily define whatever names he
5352 ipythonrc file. Now the user can easily define whatever names he
5347 wants for the magic functions without having to play weird
5353 wants for the magic functions without having to play weird
5348 namespace games. This gives IPython a real shell-like feel.
5354 namespace games. This gives IPython a real shell-like feel.
5349
5355
5350 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5356 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5351 @ or not).
5357 @ or not).
5352
5358
5353 This was one of the last remaining 'visible' bugs (that I know
5359 This was one of the last remaining 'visible' bugs (that I know
5354 of). I think if I can clean up the session loading so it works
5360 of). I think if I can clean up the session loading so it works
5355 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5361 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5356 about licensing).
5362 about licensing).
5357
5363
5358 2001-11-25 Fernando Perez <fperez@colorado.edu>
5364 2001-11-25 Fernando Perez <fperez@colorado.edu>
5359
5365
5360 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5366 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5361 there's a cleaner distinction between what ? and ?? show.
5367 there's a cleaner distinction between what ? and ?? show.
5362
5368
5363 * Added screen_length option. Now the user can define his own
5369 * Added screen_length option. Now the user can define his own
5364 screen size for page() operations.
5370 screen size for page() operations.
5365
5371
5366 * Implemented magic shell-like functions with automatic code
5372 * Implemented magic shell-like functions with automatic code
5367 generation. Now adding another function is just a matter of adding
5373 generation. Now adding another function is just a matter of adding
5368 an entry to a dict, and the function is dynamically generated at
5374 an entry to a dict, and the function is dynamically generated at
5369 run-time. Python has some really cool features!
5375 run-time. Python has some really cool features!
5370
5376
5371 * Renamed many options to cleanup conventions a little. Now all
5377 * Renamed many options to cleanup conventions a little. Now all
5372 are lowercase, and only underscores where needed. Also in the code
5378 are lowercase, and only underscores where needed. Also in the code
5373 option name tables are clearer.
5379 option name tables are clearer.
5374
5380
5375 * Changed prompts a little. Now input is 'In [n]:' instead of
5381 * Changed prompts a little. Now input is 'In [n]:' instead of
5376 'In[n]:='. This allows it the numbers to be aligned with the
5382 'In[n]:='. This allows it the numbers to be aligned with the
5377 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5383 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5378 Python (it was a Mathematica thing). The '...' continuation prompt
5384 Python (it was a Mathematica thing). The '...' continuation prompt
5379 was also changed a little to align better.
5385 was also changed a little to align better.
5380
5386
5381 * Fixed bug when flushing output cache. Not all _p<n> variables
5387 * Fixed bug when flushing output cache. Not all _p<n> variables
5382 exist, so their deletion needs to be wrapped in a try:
5388 exist, so their deletion needs to be wrapped in a try:
5383
5389
5384 * Figured out how to properly use inspect.formatargspec() (it
5390 * Figured out how to properly use inspect.formatargspec() (it
5385 requires the args preceded by *). So I removed all the code from
5391 requires the args preceded by *). So I removed all the code from
5386 _get_pdef in Magic, which was just replicating that.
5392 _get_pdef in Magic, which was just replicating that.
5387
5393
5388 * Added test to prefilter to allow redefining magic function names
5394 * Added test to prefilter to allow redefining magic function names
5389 as variables. This is ok, since the @ form is always available,
5395 as variables. This is ok, since the @ form is always available,
5390 but whe should allow the user to define a variable called 'ls' if
5396 but whe should allow the user to define a variable called 'ls' if
5391 he needs it.
5397 he needs it.
5392
5398
5393 * Moved the ToDo information from README into a separate ToDo.
5399 * Moved the ToDo information from README into a separate ToDo.
5394
5400
5395 * General code cleanup and small bugfixes. I think it's close to a
5401 * General code cleanup and small bugfixes. I think it's close to a
5396 state where it can be released, obviously with a big 'beta'
5402 state where it can be released, obviously with a big 'beta'
5397 warning on it.
5403 warning on it.
5398
5404
5399 * Got the magic function split to work. Now all magics are defined
5405 * Got the magic function split to work. Now all magics are defined
5400 in a separate class. It just organizes things a bit, and now
5406 in a separate class. It just organizes things a bit, and now
5401 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5407 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5402 was too long).
5408 was too long).
5403
5409
5404 * Changed @clear to @reset to avoid potential confusions with
5410 * Changed @clear to @reset to avoid potential confusions with
5405 the shell command clear. Also renamed @cl to @clear, which does
5411 the shell command clear. Also renamed @cl to @clear, which does
5406 exactly what people expect it to from their shell experience.
5412 exactly what people expect it to from their shell experience.
5407
5413
5408 Added a check to the @reset command (since it's so
5414 Added a check to the @reset command (since it's so
5409 destructive, it's probably a good idea to ask for confirmation).
5415 destructive, it's probably a good idea to ask for confirmation).
5410 But now reset only works for full namespace resetting. Since the
5416 But now reset only works for full namespace resetting. Since the
5411 del keyword is already there for deleting a few specific
5417 del keyword is already there for deleting a few specific
5412 variables, I don't see the point of having a redundant magic
5418 variables, I don't see the point of having a redundant magic
5413 function for the same task.
5419 function for the same task.
5414
5420
5415 2001-11-24 Fernando Perez <fperez@colorado.edu>
5421 2001-11-24 Fernando Perez <fperez@colorado.edu>
5416
5422
5417 * Updated the builtin docs (esp. the ? ones).
5423 * Updated the builtin docs (esp. the ? ones).
5418
5424
5419 * Ran all the code through pychecker. Not terribly impressed with
5425 * Ran all the code through pychecker. Not terribly impressed with
5420 it: lots of spurious warnings and didn't really find anything of
5426 it: lots of spurious warnings and didn't really find anything of
5421 substance (just a few modules being imported and not used).
5427 substance (just a few modules being imported and not used).
5422
5428
5423 * Implemented the new ultraTB functionality into IPython. New
5429 * Implemented the new ultraTB functionality into IPython. New
5424 option: xcolors. This chooses color scheme. xmode now only selects
5430 option: xcolors. This chooses color scheme. xmode now only selects
5425 between Plain and Verbose. Better orthogonality.
5431 between Plain and Verbose. Better orthogonality.
5426
5432
5427 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5433 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5428 mode and color scheme for the exception handlers. Now it's
5434 mode and color scheme for the exception handlers. Now it's
5429 possible to have the verbose traceback with no coloring.
5435 possible to have the verbose traceback with no coloring.
5430
5436
5431 2001-11-23 Fernando Perez <fperez@colorado.edu>
5437 2001-11-23 Fernando Perez <fperez@colorado.edu>
5432
5438
5433 * Version 0.1.12 released, 0.1.13 opened.
5439 * Version 0.1.12 released, 0.1.13 opened.
5434
5440
5435 * Removed option to set auto-quote and auto-paren escapes by
5441 * Removed option to set auto-quote and auto-paren escapes by
5436 user. The chances of breaking valid syntax are just too high. If
5442 user. The chances of breaking valid syntax are just too high. If
5437 someone *really* wants, they can always dig into the code.
5443 someone *really* wants, they can always dig into the code.
5438
5444
5439 * Made prompt separators configurable.
5445 * Made prompt separators configurable.
5440
5446
5441 2001-11-22 Fernando Perez <fperez@colorado.edu>
5447 2001-11-22 Fernando Perez <fperez@colorado.edu>
5442
5448
5443 * Small bugfixes in many places.
5449 * Small bugfixes in many places.
5444
5450
5445 * Removed the MyCompleter class from ipplib. It seemed redundant
5451 * Removed the MyCompleter class from ipplib. It seemed redundant
5446 with the C-p,C-n history search functionality. Less code to
5452 with the C-p,C-n history search functionality. Less code to
5447 maintain.
5453 maintain.
5448
5454
5449 * Moved all the original ipython.py code into ipythonlib.py. Right
5455 * Moved all the original ipython.py code into ipythonlib.py. Right
5450 now it's just one big dump into a function called make_IPython, so
5456 now it's just one big dump into a function called make_IPython, so
5451 no real modularity has been gained. But at least it makes the
5457 no real modularity has been gained. But at least it makes the
5452 wrapper script tiny, and since ipythonlib is a module, it gets
5458 wrapper script tiny, and since ipythonlib is a module, it gets
5453 compiled and startup is much faster.
5459 compiled and startup is much faster.
5454
5460
5455 This is a reasobably 'deep' change, so we should test it for a
5461 This is a reasobably 'deep' change, so we should test it for a
5456 while without messing too much more with the code.
5462 while without messing too much more with the code.
5457
5463
5458 2001-11-21 Fernando Perez <fperez@colorado.edu>
5464 2001-11-21 Fernando Perez <fperez@colorado.edu>
5459
5465
5460 * Version 0.1.11 released, 0.1.12 opened for further work.
5466 * Version 0.1.11 released, 0.1.12 opened for further work.
5461
5467
5462 * Removed dependency on Itpl. It was only needed in one place. It
5468 * Removed dependency on Itpl. It was only needed in one place. It
5463 would be nice if this became part of python, though. It makes life
5469 would be nice if this became part of python, though. It makes life
5464 *a lot* easier in some cases.
5470 *a lot* easier in some cases.
5465
5471
5466 * Simplified the prefilter code a bit. Now all handlers are
5472 * Simplified the prefilter code a bit. Now all handlers are
5467 expected to explicitly return a value (at least a blank string).
5473 expected to explicitly return a value (at least a blank string).
5468
5474
5469 * Heavy edits in ipplib. Removed the help system altogether. Now
5475 * Heavy edits in ipplib. Removed the help system altogether. Now
5470 obj?/?? is used for inspecting objects, a magic @doc prints
5476 obj?/?? is used for inspecting objects, a magic @doc prints
5471 docstrings, and full-blown Python help is accessed via the 'help'
5477 docstrings, and full-blown Python help is accessed via the 'help'
5472 keyword. This cleans up a lot of code (less to maintain) and does
5478 keyword. This cleans up a lot of code (less to maintain) and does
5473 the job. Since 'help' is now a standard Python component, might as
5479 the job. Since 'help' is now a standard Python component, might as
5474 well use it and remove duplicate functionality.
5480 well use it and remove duplicate functionality.
5475
5481
5476 Also removed the option to use ipplib as a standalone program. By
5482 Also removed the option to use ipplib as a standalone program. By
5477 now it's too dependent on other parts of IPython to function alone.
5483 now it's too dependent on other parts of IPython to function alone.
5478
5484
5479 * Fixed bug in genutils.pager. It would crash if the pager was
5485 * Fixed bug in genutils.pager. It would crash if the pager was
5480 exited immediately after opening (broken pipe).
5486 exited immediately after opening (broken pipe).
5481
5487
5482 * Trimmed down the VerboseTB reporting a little. The header is
5488 * Trimmed down the VerboseTB reporting a little. The header is
5483 much shorter now and the repeated exception arguments at the end
5489 much shorter now and the repeated exception arguments at the end
5484 have been removed. For interactive use the old header seemed a bit
5490 have been removed. For interactive use the old header seemed a bit
5485 excessive.
5491 excessive.
5486
5492
5487 * Fixed small bug in output of @whos for variables with multi-word
5493 * Fixed small bug in output of @whos for variables with multi-word
5488 types (only first word was displayed).
5494 types (only first word was displayed).
5489
5495
5490 2001-11-17 Fernando Perez <fperez@colorado.edu>
5496 2001-11-17 Fernando Perez <fperez@colorado.edu>
5491
5497
5492 * Version 0.1.10 released, 0.1.11 opened for further work.
5498 * Version 0.1.10 released, 0.1.11 opened for further work.
5493
5499
5494 * Modified dirs and friends. dirs now *returns* the stack (not
5500 * Modified dirs and friends. dirs now *returns* the stack (not
5495 prints), so one can manipulate it as a variable. Convenient to
5501 prints), so one can manipulate it as a variable. Convenient to
5496 travel along many directories.
5502 travel along many directories.
5497
5503
5498 * Fixed bug in magic_pdef: would only work with functions with
5504 * Fixed bug in magic_pdef: would only work with functions with
5499 arguments with default values.
5505 arguments with default values.
5500
5506
5501 2001-11-14 Fernando Perez <fperez@colorado.edu>
5507 2001-11-14 Fernando Perez <fperez@colorado.edu>
5502
5508
5503 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5509 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5504 example with IPython. Various other minor fixes and cleanups.
5510 example with IPython. Various other minor fixes and cleanups.
5505
5511
5506 * Version 0.1.9 released, 0.1.10 opened for further work.
5512 * Version 0.1.9 released, 0.1.10 opened for further work.
5507
5513
5508 * Added sys.path to the list of directories searched in the
5514 * Added sys.path to the list of directories searched in the
5509 execfile= option. It used to be the current directory and the
5515 execfile= option. It used to be the current directory and the
5510 user's IPYTHONDIR only.
5516 user's IPYTHONDIR only.
5511
5517
5512 2001-11-13 Fernando Perez <fperez@colorado.edu>
5518 2001-11-13 Fernando Perez <fperez@colorado.edu>
5513
5519
5514 * Reinstated the raw_input/prefilter separation that Janko had
5520 * Reinstated the raw_input/prefilter separation that Janko had
5515 initially. This gives a more convenient setup for extending the
5521 initially. This gives a more convenient setup for extending the
5516 pre-processor from the outside: raw_input always gets a string,
5522 pre-processor from the outside: raw_input always gets a string,
5517 and prefilter has to process it. We can then redefine prefilter
5523 and prefilter has to process it. We can then redefine prefilter
5518 from the outside and implement extensions for special
5524 from the outside and implement extensions for special
5519 purposes.
5525 purposes.
5520
5526
5521 Today I got one for inputting PhysicalQuantity objects
5527 Today I got one for inputting PhysicalQuantity objects
5522 (from Scientific) without needing any function calls at
5528 (from Scientific) without needing any function calls at
5523 all. Extremely convenient, and it's all done as a user-level
5529 all. Extremely convenient, and it's all done as a user-level
5524 extension (no IPython code was touched). Now instead of:
5530 extension (no IPython code was touched). Now instead of:
5525 a = PhysicalQuantity(4.2,'m/s**2')
5531 a = PhysicalQuantity(4.2,'m/s**2')
5526 one can simply say
5532 one can simply say
5527 a = 4.2 m/s**2
5533 a = 4.2 m/s**2
5528 or even
5534 or even
5529 a = 4.2 m/s^2
5535 a = 4.2 m/s^2
5530
5536
5531 I use this, but it's also a proof of concept: IPython really is
5537 I use this, but it's also a proof of concept: IPython really is
5532 fully user-extensible, even at the level of the parsing of the
5538 fully user-extensible, even at the level of the parsing of the
5533 command line. It's not trivial, but it's perfectly doable.
5539 command line. It's not trivial, but it's perfectly doable.
5534
5540
5535 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5541 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5536 the problem of modules being loaded in the inverse order in which
5542 the problem of modules being loaded in the inverse order in which
5537 they were defined in
5543 they were defined in
5538
5544
5539 * Version 0.1.8 released, 0.1.9 opened for further work.
5545 * Version 0.1.8 released, 0.1.9 opened for further work.
5540
5546
5541 * Added magics pdef, source and file. They respectively show the
5547 * Added magics pdef, source and file. They respectively show the
5542 definition line ('prototype' in C), source code and full python
5548 definition line ('prototype' in C), source code and full python
5543 file for any callable object. The object inspector oinfo uses
5549 file for any callable object. The object inspector oinfo uses
5544 these to show the same information.
5550 these to show the same information.
5545
5551
5546 * Version 0.1.7 released, 0.1.8 opened for further work.
5552 * Version 0.1.7 released, 0.1.8 opened for further work.
5547
5553
5548 * Separated all the magic functions into a class called Magic. The
5554 * Separated all the magic functions into a class called Magic. The
5549 InteractiveShell class was becoming too big for Xemacs to handle
5555 InteractiveShell class was becoming too big for Xemacs to handle
5550 (de-indenting a line would lock it up for 10 seconds while it
5556 (de-indenting a line would lock it up for 10 seconds while it
5551 backtracked on the whole class!)
5557 backtracked on the whole class!)
5552
5558
5553 FIXME: didn't work. It can be done, but right now namespaces are
5559 FIXME: didn't work. It can be done, but right now namespaces are
5554 all messed up. Do it later (reverted it for now, so at least
5560 all messed up. Do it later (reverted it for now, so at least
5555 everything works as before).
5561 everything works as before).
5556
5562
5557 * Got the object introspection system (magic_oinfo) working! I
5563 * Got the object introspection system (magic_oinfo) working! I
5558 think this is pretty much ready for release to Janko, so he can
5564 think this is pretty much ready for release to Janko, so he can
5559 test it for a while and then announce it. Pretty much 100% of what
5565 test it for a while and then announce it. Pretty much 100% of what
5560 I wanted for the 'phase 1' release is ready. Happy, tired.
5566 I wanted for the 'phase 1' release is ready. Happy, tired.
5561
5567
5562 2001-11-12 Fernando Perez <fperez@colorado.edu>
5568 2001-11-12 Fernando Perez <fperez@colorado.edu>
5563
5569
5564 * Version 0.1.6 released, 0.1.7 opened for further work.
5570 * Version 0.1.6 released, 0.1.7 opened for further work.
5565
5571
5566 * Fixed bug in printing: it used to test for truth before
5572 * Fixed bug in printing: it used to test for truth before
5567 printing, so 0 wouldn't print. Now checks for None.
5573 printing, so 0 wouldn't print. Now checks for None.
5568
5574
5569 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5575 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5570 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5576 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5571 reaches by hand into the outputcache. Think of a better way to do
5577 reaches by hand into the outputcache. Think of a better way to do
5572 this later.
5578 this later.
5573
5579
5574 * Various small fixes thanks to Nathan's comments.
5580 * Various small fixes thanks to Nathan's comments.
5575
5581
5576 * Changed magic_pprint to magic_Pprint. This way it doesn't
5582 * Changed magic_pprint to magic_Pprint. This way it doesn't
5577 collide with pprint() and the name is consistent with the command
5583 collide with pprint() and the name is consistent with the command
5578 line option.
5584 line option.
5579
5585
5580 * Changed prompt counter behavior to be fully like
5586 * Changed prompt counter behavior to be fully like
5581 Mathematica's. That is, even input that doesn't return a result
5587 Mathematica's. That is, even input that doesn't return a result
5582 raises the prompt counter. The old behavior was kind of confusing
5588 raises the prompt counter. The old behavior was kind of confusing
5583 (getting the same prompt number several times if the operation
5589 (getting the same prompt number several times if the operation
5584 didn't return a result).
5590 didn't return a result).
5585
5591
5586 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5592 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5587
5593
5588 * Fixed -Classic mode (wasn't working anymore).
5594 * Fixed -Classic mode (wasn't working anymore).
5589
5595
5590 * Added colored prompts using Nathan's new code. Colors are
5596 * Added colored prompts using Nathan's new code. Colors are
5591 currently hardwired, they can be user-configurable. For
5597 currently hardwired, they can be user-configurable. For
5592 developers, they can be chosen in file ipythonlib.py, at the
5598 developers, they can be chosen in file ipythonlib.py, at the
5593 beginning of the CachedOutput class def.
5599 beginning of the CachedOutput class def.
5594
5600
5595 2001-11-11 Fernando Perez <fperez@colorado.edu>
5601 2001-11-11 Fernando Perez <fperez@colorado.edu>
5596
5602
5597 * Version 0.1.5 released, 0.1.6 opened for further work.
5603 * Version 0.1.5 released, 0.1.6 opened for further work.
5598
5604
5599 * Changed magic_env to *return* the environment as a dict (not to
5605 * Changed magic_env to *return* the environment as a dict (not to
5600 print it). This way it prints, but it can also be processed.
5606 print it). This way it prints, but it can also be processed.
5601
5607
5602 * Added Verbose exception reporting to interactive
5608 * Added Verbose exception reporting to interactive
5603 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5609 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5604 traceback. Had to make some changes to the ultraTB file. This is
5610 traceback. Had to make some changes to the ultraTB file. This is
5605 probably the last 'big' thing in my mental todo list. This ties
5611 probably the last 'big' thing in my mental todo list. This ties
5606 in with the next entry:
5612 in with the next entry:
5607
5613
5608 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5614 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5609 has to specify is Plain, Color or Verbose for all exception
5615 has to specify is Plain, Color or Verbose for all exception
5610 handling.
5616 handling.
5611
5617
5612 * Removed ShellServices option. All this can really be done via
5618 * Removed ShellServices option. All this can really be done via
5613 the magic system. It's easier to extend, cleaner and has automatic
5619 the magic system. It's easier to extend, cleaner and has automatic
5614 namespace protection and documentation.
5620 namespace protection and documentation.
5615
5621
5616 2001-11-09 Fernando Perez <fperez@colorado.edu>
5622 2001-11-09 Fernando Perez <fperez@colorado.edu>
5617
5623
5618 * Fixed bug in output cache flushing (missing parameter to
5624 * Fixed bug in output cache flushing (missing parameter to
5619 __init__). Other small bugs fixed (found using pychecker).
5625 __init__). Other small bugs fixed (found using pychecker).
5620
5626
5621 * Version 0.1.4 opened for bugfixing.
5627 * Version 0.1.4 opened for bugfixing.
5622
5628
5623 2001-11-07 Fernando Perez <fperez@colorado.edu>
5629 2001-11-07 Fernando Perez <fperez@colorado.edu>
5624
5630
5625 * Version 0.1.3 released, mainly because of the raw_input bug.
5631 * Version 0.1.3 released, mainly because of the raw_input bug.
5626
5632
5627 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5633 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5628 and when testing for whether things were callable, a call could
5634 and when testing for whether things were callable, a call could
5629 actually be made to certain functions. They would get called again
5635 actually be made to certain functions. They would get called again
5630 once 'really' executed, with a resulting double call. A disaster
5636 once 'really' executed, with a resulting double call. A disaster
5631 in many cases (list.reverse() would never work!).
5637 in many cases (list.reverse() would never work!).
5632
5638
5633 * Removed prefilter() function, moved its code to raw_input (which
5639 * Removed prefilter() function, moved its code to raw_input (which
5634 after all was just a near-empty caller for prefilter). This saves
5640 after all was just a near-empty caller for prefilter). This saves
5635 a function call on every prompt, and simplifies the class a tiny bit.
5641 a function call on every prompt, and simplifies the class a tiny bit.
5636
5642
5637 * Fix _ip to __ip name in magic example file.
5643 * Fix _ip to __ip name in magic example file.
5638
5644
5639 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5645 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5640 work with non-gnu versions of tar.
5646 work with non-gnu versions of tar.
5641
5647
5642 2001-11-06 Fernando Perez <fperez@colorado.edu>
5648 2001-11-06 Fernando Perez <fperez@colorado.edu>
5643
5649
5644 * Version 0.1.2. Just to keep track of the recent changes.
5650 * Version 0.1.2. Just to keep track of the recent changes.
5645
5651
5646 * Fixed nasty bug in output prompt routine. It used to check 'if
5652 * Fixed nasty bug in output prompt routine. It used to check 'if
5647 arg != None...'. Problem is, this fails if arg implements a
5653 arg != None...'. Problem is, this fails if arg implements a
5648 special comparison (__cmp__) which disallows comparing to
5654 special comparison (__cmp__) which disallows comparing to
5649 None. Found it when trying to use the PhysicalQuantity module from
5655 None. Found it when trying to use the PhysicalQuantity module from
5650 ScientificPython.
5656 ScientificPython.
5651
5657
5652 2001-11-05 Fernando Perez <fperez@colorado.edu>
5658 2001-11-05 Fernando Perez <fperez@colorado.edu>
5653
5659
5654 * Also added dirs. Now the pushd/popd/dirs family functions
5660 * Also added dirs. Now the pushd/popd/dirs family functions
5655 basically like the shell, with the added convenience of going home
5661 basically like the shell, with the added convenience of going home
5656 when called with no args.
5662 when called with no args.
5657
5663
5658 * pushd/popd slightly modified to mimic shell behavior more
5664 * pushd/popd slightly modified to mimic shell behavior more
5659 closely.
5665 closely.
5660
5666
5661 * Added env,pushd,popd from ShellServices as magic functions. I
5667 * Added env,pushd,popd from ShellServices as magic functions. I
5662 think the cleanest will be to port all desired functions from
5668 think the cleanest will be to port all desired functions from
5663 ShellServices as magics and remove ShellServices altogether. This
5669 ShellServices as magics and remove ShellServices altogether. This
5664 will provide a single, clean way of adding functionality
5670 will provide a single, clean way of adding functionality
5665 (shell-type or otherwise) to IP.
5671 (shell-type or otherwise) to IP.
5666
5672
5667 2001-11-04 Fernando Perez <fperez@colorado.edu>
5673 2001-11-04 Fernando Perez <fperez@colorado.edu>
5668
5674
5669 * Added .ipython/ directory to sys.path. This way users can keep
5675 * Added .ipython/ directory to sys.path. This way users can keep
5670 customizations there and access them via import.
5676 customizations there and access them via import.
5671
5677
5672 2001-11-03 Fernando Perez <fperez@colorado.edu>
5678 2001-11-03 Fernando Perez <fperez@colorado.edu>
5673
5679
5674 * Opened version 0.1.1 for new changes.
5680 * Opened version 0.1.1 for new changes.
5675
5681
5676 * Changed version number to 0.1.0: first 'public' release, sent to
5682 * Changed version number to 0.1.0: first 'public' release, sent to
5677 Nathan and Janko.
5683 Nathan and Janko.
5678
5684
5679 * Lots of small fixes and tweaks.
5685 * Lots of small fixes and tweaks.
5680
5686
5681 * Minor changes to whos format. Now strings are shown, snipped if
5687 * Minor changes to whos format. Now strings are shown, snipped if
5682 too long.
5688 too long.
5683
5689
5684 * Changed ShellServices to work on __main__ so they show up in @who
5690 * Changed ShellServices to work on __main__ so they show up in @who
5685
5691
5686 * Help also works with ? at the end of a line:
5692 * Help also works with ? at the end of a line:
5687 ?sin and sin?
5693 ?sin and sin?
5688 both produce the same effect. This is nice, as often I use the
5694 both produce the same effect. This is nice, as often I use the
5689 tab-complete to find the name of a method, but I used to then have
5695 tab-complete to find the name of a method, but I used to then have
5690 to go to the beginning of the line to put a ? if I wanted more
5696 to go to the beginning of the line to put a ? if I wanted more
5691 info. Now I can just add the ? and hit return. Convenient.
5697 info. Now I can just add the ? and hit return. Convenient.
5692
5698
5693 2001-11-02 Fernando Perez <fperez@colorado.edu>
5699 2001-11-02 Fernando Perez <fperez@colorado.edu>
5694
5700
5695 * Python version check (>=2.1) added.
5701 * Python version check (>=2.1) added.
5696
5702
5697 * Added LazyPython documentation. At this point the docs are quite
5703 * Added LazyPython documentation. At this point the docs are quite
5698 a mess. A cleanup is in order.
5704 a mess. A cleanup is in order.
5699
5705
5700 * Auto-installer created. For some bizarre reason, the zipfiles
5706 * Auto-installer created. For some bizarre reason, the zipfiles
5701 module isn't working on my system. So I made a tar version
5707 module isn't working on my system. So I made a tar version
5702 (hopefully the command line options in various systems won't kill
5708 (hopefully the command line options in various systems won't kill
5703 me).
5709 me).
5704
5710
5705 * Fixes to Struct in genutils. Now all dictionary-like methods are
5711 * Fixes to Struct in genutils. Now all dictionary-like methods are
5706 protected (reasonably).
5712 protected (reasonably).
5707
5713
5708 * Added pager function to genutils and changed ? to print usage
5714 * Added pager function to genutils and changed ? to print usage
5709 note through it (it was too long).
5715 note through it (it was too long).
5710
5716
5711 * Added the LazyPython functionality. Works great! I changed the
5717 * Added the LazyPython functionality. Works great! I changed the
5712 auto-quote escape to ';', it's on home row and next to '. But
5718 auto-quote escape to ';', it's on home row and next to '. But
5713 both auto-quote and auto-paren (still /) escapes are command-line
5719 both auto-quote and auto-paren (still /) escapes are command-line
5714 parameters.
5720 parameters.
5715
5721
5716
5722
5717 2001-11-01 Fernando Perez <fperez@colorado.edu>
5723 2001-11-01 Fernando Perez <fperez@colorado.edu>
5718
5724
5719 * Version changed to 0.0.7. Fairly large change: configuration now
5725 * Version changed to 0.0.7. Fairly large change: configuration now
5720 is all stored in a directory, by default .ipython. There, all
5726 is all stored in a directory, by default .ipython. There, all
5721 config files have normal looking names (not .names)
5727 config files have normal looking names (not .names)
5722
5728
5723 * Version 0.0.6 Released first to Lucas and Archie as a test
5729 * Version 0.0.6 Released first to Lucas and Archie as a test
5724 run. Since it's the first 'semi-public' release, change version to
5730 run. Since it's the first 'semi-public' release, change version to
5725 > 0.0.6 for any changes now.
5731 > 0.0.6 for any changes now.
5726
5732
5727 * Stuff I had put in the ipplib.py changelog:
5733 * Stuff I had put in the ipplib.py changelog:
5728
5734
5729 Changes to InteractiveShell:
5735 Changes to InteractiveShell:
5730
5736
5731 - Made the usage message a parameter.
5737 - Made the usage message a parameter.
5732
5738
5733 - Require the name of the shell variable to be given. It's a bit
5739 - Require the name of the shell variable to be given. It's a bit
5734 of a hack, but allows the name 'shell' not to be hardwired in the
5740 of a hack, but allows the name 'shell' not to be hardwired in the
5735 magic (@) handler, which is problematic b/c it requires
5741 magic (@) handler, which is problematic b/c it requires
5736 polluting the global namespace with 'shell'. This in turn is
5742 polluting the global namespace with 'shell'. This in turn is
5737 fragile: if a user redefines a variable called shell, things
5743 fragile: if a user redefines a variable called shell, things
5738 break.
5744 break.
5739
5745
5740 - magic @: all functions available through @ need to be defined
5746 - magic @: all functions available through @ need to be defined
5741 as magic_<name>, even though they can be called simply as
5747 as magic_<name>, even though they can be called simply as
5742 @<name>. This allows the special command @magic to gather
5748 @<name>. This allows the special command @magic to gather
5743 information automatically about all existing magic functions,
5749 information automatically about all existing magic functions,
5744 even if they are run-time user extensions, by parsing the shell
5750 even if they are run-time user extensions, by parsing the shell
5745 instance __dict__ looking for special magic_ names.
5751 instance __dict__ looking for special magic_ names.
5746
5752
5747 - mainloop: added *two* local namespace parameters. This allows
5753 - mainloop: added *two* local namespace parameters. This allows
5748 the class to differentiate between parameters which were there
5754 the class to differentiate between parameters which were there
5749 before and after command line initialization was processed. This
5755 before and after command line initialization was processed. This
5750 way, later @who can show things loaded at startup by the
5756 way, later @who can show things loaded at startup by the
5751 user. This trick was necessary to make session saving/reloading
5757 user. This trick was necessary to make session saving/reloading
5752 really work: ideally after saving/exiting/reloading a session,
5758 really work: ideally after saving/exiting/reloading a session,
5753 *everything* should look the same, including the output of @who. I
5759 *everything* should look the same, including the output of @who. I
5754 was only able to make this work with this double namespace
5760 was only able to make this work with this double namespace
5755 trick.
5761 trick.
5756
5762
5757 - added a header to the logfile which allows (almost) full
5763 - added a header to the logfile which allows (almost) full
5758 session restoring.
5764 session restoring.
5759
5765
5760 - prepend lines beginning with @ or !, with a and log
5766 - prepend lines beginning with @ or !, with a and log
5761 them. Why? !lines: may be useful to know what you did @lines:
5767 them. Why? !lines: may be useful to know what you did @lines:
5762 they may affect session state. So when restoring a session, at
5768 they may affect session state. So when restoring a session, at
5763 least inform the user of their presence. I couldn't quite get
5769 least inform the user of their presence. I couldn't quite get
5764 them to properly re-execute, but at least the user is warned.
5770 them to properly re-execute, but at least the user is warned.
5765
5771
5766 * Started ChangeLog.
5772 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now