##// END OF EJS Templates
pydb_ipy.py extension adds %pydb magic when imported
vivainio -
Show More
@@ -0,0 +1,22 b''
1 import pydb
2 import IPython.ipapi
3 from IPython.genutils import arg_split
4 ip = IPython.ipapi.get()
5
6 def call_pydb(self, args):
7 argl = arg_split(args)
8 print argl
9 if ip.IP.has_readline:
10 ip.IP.savehist()
11 try:
12 pydb.runl(*args)
13 finally:
14
15 if ip.IP.has_readline:
16 ip.IP.readline.read_history_file(self.shell.histfile)
17
18 ip.expose_magic("pydb",call_pydb)
19
20
21
22 No newline at end of file
@@ -1,5812 +1,5815 b''
1 2006-10-28 Ville Vainio <vivainio@gmail.com>
1 2006-10-28 Ville Vainio <vivainio@gmail.com>
2
2
3 * Magic.py (%run): Save and restore the readline history from
3 * Magic.py (%run): Save and restore the readline history from
4 file around %run commands to prevent side effects from
4 file around %run commands to prevent side effects from
5 %runned programs that might use readline (e.g. pydb).
5 %runned programs that might use readline (e.g. pydb).
6
6
7 * extensions/pydb_ipy.py: Adds %pydb magic when imported, for
8 invoking the pydb enhanced debugger.
9
7 2006-10-23 Walter Doerwald <walter@livinglogic.de>
10 2006-10-23 Walter Doerwald <walter@livinglogic.de>
8
11
9 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
12 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
10 call the base class method and propagate the return value to
13 call the base class method and propagate the return value to
11 ifile. This is now done by path itself.
14 ifile. This is now done by path itself.
12
15
13 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
16 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
14
17
15 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
18 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
16 api: set_crash_handler(), to expose the ability to change the
19 api: set_crash_handler(), to expose the ability to change the
17 internal crash handler.
20 internal crash handler.
18
21
19 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
22 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
20 the various parameters of the crash handler so that apps using
23 the various parameters of the crash handler so that apps using
21 IPython as their engine can customize crash handling. Ipmlemented
24 IPython as their engine can customize crash handling. Ipmlemented
22 at the request of SAGE.
25 at the request of SAGE.
23
26
24 2006-10-14 Ville Vainio <vivainio@gmail.com>
27 2006-10-14 Ville Vainio <vivainio@gmail.com>
25
28
26 * Magic.py, ipython.el: applied first "safe" part of Rocky
29 * Magic.py, ipython.el: applied first "safe" part of Rocky
27 Bernstein's patch set for pydb integration.
30 Bernstein's patch set for pydb integration.
28
31
29 * Magic.py (%unalias, %alias): %store'd aliases can now be
32 * Magic.py (%unalias, %alias): %store'd aliases can now be
30 removed with '%unalias'. %alias w/o args now shows most
33 removed with '%unalias'. %alias w/o args now shows most
31 interesting (stored / manually defined) aliases last
34 interesting (stored / manually defined) aliases last
32 where they catch the eye w/o scrolling.
35 where they catch the eye w/o scrolling.
33
36
34 * Magic.py (%rehashx), ext_rehashdir.py: files with
37 * Magic.py (%rehashx), ext_rehashdir.py: files with
35 'py' extension are always considered executable, even
38 'py' extension are always considered executable, even
36 when not in PATHEXT environment variable.
39 when not in PATHEXT environment variable.
37
40
38 2006-10-12 Ville Vainio <vivainio@gmail.com>
41 2006-10-12 Ville Vainio <vivainio@gmail.com>
39
42
40 * jobctrl.py: Add new "jobctrl" extension for spawning background
43 * jobctrl.py: Add new "jobctrl" extension for spawning background
41 processes with "&find /". 'import jobctrl' to try it out. Requires
44 processes with "&find /". 'import jobctrl' to try it out. Requires
42 'subprocess' module, standard in python 2.4+.
45 'subprocess' module, standard in python 2.4+.
43
46
44 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
47 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
45 so if foo -> bar and bar -> baz, then foo -> baz.
48 so if foo -> bar and bar -> baz, then foo -> baz.
46
49
47 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
50 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
48
51
49 * IPython/Magic.py (Magic.parse_options): add a new posix option
52 * IPython/Magic.py (Magic.parse_options): add a new posix option
50 to allow parsing of input args in magics that doesn't strip quotes
53 to allow parsing of input args in magics that doesn't strip quotes
51 (if posix=False). This also closes %timeit bug reported by
54 (if posix=False). This also closes %timeit bug reported by
52 Stefan.
55 Stefan.
53
56
54 2006-10-03 Ville Vainio <vivainio@gmail.com>
57 2006-10-03 Ville Vainio <vivainio@gmail.com>
55
58
56 * iplib.py (raw_input, interact): Return ValueError catching for
59 * iplib.py (raw_input, interact): Return ValueError catching for
57 raw_input. Fixes infinite loop for sys.stdin.close() or
60 raw_input. Fixes infinite loop for sys.stdin.close() or
58 sys.stdout.close().
61 sys.stdout.close().
59
62
60 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
63 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
61
64
62 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
65 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
63 to help in handling doctests. irunner is now pretty useful for
66 to help in handling doctests. irunner is now pretty useful for
64 running standalone scripts and simulate a full interactive session
67 running standalone scripts and simulate a full interactive session
65 in a format that can be then pasted as a doctest.
68 in a format that can be then pasted as a doctest.
66
69
67 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
70 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
68 on top of the default (useless) ones. This also fixes the nasty
71 on top of the default (useless) ones. This also fixes the nasty
69 way in which 2.5's Quitter() exits (reverted [1785]).
72 way in which 2.5's Quitter() exits (reverted [1785]).
70
73
71 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
74 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
72 2.5.
75 2.5.
73
76
74 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
77 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
75 color scheme is updated as well when color scheme is changed
78 color scheme is updated as well when color scheme is changed
76 interactively.
79 interactively.
77
80
78 2006-09-27 Ville Vainio <vivainio@gmail.com>
81 2006-09-27 Ville Vainio <vivainio@gmail.com>
79
82
80 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
83 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
81 infinite loop and just exit. It's a hack, but will do for a while.
84 infinite loop and just exit. It's a hack, but will do for a while.
82
85
83 2006-08-25 Walter Doerwald <walter@livinglogic.de>
86 2006-08-25 Walter Doerwald <walter@livinglogic.de>
84
87
85 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
88 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
86 the constructor, this makes it possible to get a list of only directories
89 the constructor, this makes it possible to get a list of only directories
87 or only files.
90 or only files.
88
91
89 2006-08-12 Ville Vainio <vivainio@gmail.com>
92 2006-08-12 Ville Vainio <vivainio@gmail.com>
90
93
91 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
94 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
92 they broke unittest
95 they broke unittest
93
96
94 2006-08-11 Ville Vainio <vivainio@gmail.com>
97 2006-08-11 Ville Vainio <vivainio@gmail.com>
95
98
96 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
99 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
97 by resolving issue properly, i.e. by inheriting FakeModule
100 by resolving issue properly, i.e. by inheriting FakeModule
98 from types.ModuleType. Pickling ipython interactive data
101 from types.ModuleType. Pickling ipython interactive data
99 should still work as usual (testing appreciated).
102 should still work as usual (testing appreciated).
100
103
101 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
104 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
102
105
103 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
106 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
104 running under python 2.3 with code from 2.4 to fix a bug with
107 running under python 2.3 with code from 2.4 to fix a bug with
105 help(). Reported by the Debian maintainers, Norbert Tretkowski
108 help(). Reported by the Debian maintainers, Norbert Tretkowski
106 <norbert-AT-tretkowski.de> and Alexandre Fayolle
109 <norbert-AT-tretkowski.de> and Alexandre Fayolle
107 <afayolle-AT-debian.org>.
110 <afayolle-AT-debian.org>.
108
111
109 2006-08-04 Walter Doerwald <walter@livinglogic.de>
112 2006-08-04 Walter Doerwald <walter@livinglogic.de>
110
113
111 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
114 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
112 (which was displaying "quit" twice).
115 (which was displaying "quit" twice).
113
116
114 2006-07-28 Walter Doerwald <walter@livinglogic.de>
117 2006-07-28 Walter Doerwald <walter@livinglogic.de>
115
118
116 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
119 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
117 the mode argument).
120 the mode argument).
118
121
119 2006-07-27 Walter Doerwald <walter@livinglogic.de>
122 2006-07-27 Walter Doerwald <walter@livinglogic.de>
120
123
121 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
124 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
122 not running under IPython.
125 not running under IPython.
123
126
124 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
127 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
125 and make it iterable (iterating over the attribute itself). Add two new
128 and make it iterable (iterating over the attribute itself). Add two new
126 magic strings for __xattrs__(): If the string starts with "-", the attribute
129 magic strings for __xattrs__(): If the string starts with "-", the attribute
127 will not be displayed in ibrowse's detail view (but it can still be
130 will not be displayed in ibrowse's detail view (but it can still be
128 iterated over). This makes it possible to add attributes that are large
131 iterated over). This makes it possible to add attributes that are large
129 lists or generator methods to the detail view. Replace magic attribute names
132 lists or generator methods to the detail view. Replace magic attribute names
130 and _attrname() and _getattr() with "descriptors": For each type of magic
133 and _attrname() and _getattr() with "descriptors": For each type of magic
131 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
134 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
132 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
135 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
133 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
136 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
134 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
137 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
135 are still supported.
138 are still supported.
136
139
137 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
140 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
138 fails in ibrowse.fetch(), the exception object is added as the last item
141 fails in ibrowse.fetch(), the exception object is added as the last item
139 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
142 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
140 a generator throws an exception midway through execution.
143 a generator throws an exception midway through execution.
141
144
142 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
145 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
143 encoding into methods.
146 encoding into methods.
144
147
145 2006-07-26 Ville Vainio <vivainio@gmail.com>
148 2006-07-26 Ville Vainio <vivainio@gmail.com>
146
149
147 * iplib.py: history now stores multiline input as single
150 * iplib.py: history now stores multiline input as single
148 history entries. Patch by Jorgen Cederlof.
151 history entries. Patch by Jorgen Cederlof.
149
152
150 2006-07-18 Walter Doerwald <walter@livinglogic.de>
153 2006-07-18 Walter Doerwald <walter@livinglogic.de>
151
154
152 * IPython/Extensions/ibrowse.py: Make cursor visible over
155 * IPython/Extensions/ibrowse.py: Make cursor visible over
153 non existing attributes.
156 non existing attributes.
154
157
155 2006-07-14 Walter Doerwald <walter@livinglogic.de>
158 2006-07-14 Walter Doerwald <walter@livinglogic.de>
156
159
157 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
160 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
158 error output of the running command doesn't mess up the screen.
161 error output of the running command doesn't mess up the screen.
159
162
160 2006-07-13 Walter Doerwald <walter@livinglogic.de>
163 2006-07-13 Walter Doerwald <walter@livinglogic.de>
161
164
162 * IPython/Extensions/ipipe.py (isort): Make isort usable without
165 * IPython/Extensions/ipipe.py (isort): Make isort usable without
163 argument. This sorts the items themselves.
166 argument. This sorts the items themselves.
164
167
165 2006-07-12 Walter Doerwald <walter@livinglogic.de>
168 2006-07-12 Walter Doerwald <walter@livinglogic.de>
166
169
167 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
170 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
168 Compile expression strings into code objects. This should speed
171 Compile expression strings into code objects. This should speed
169 up ifilter and friends somewhat.
172 up ifilter and friends somewhat.
170
173
171 2006-07-08 Ville Vainio <vivainio@gmail.com>
174 2006-07-08 Ville Vainio <vivainio@gmail.com>
172
175
173 * Magic.py: %cpaste now strips > from the beginning of lines
176 * Magic.py: %cpaste now strips > from the beginning of lines
174 to ease pasting quoted code from emails. Contributed by
177 to ease pasting quoted code from emails. Contributed by
175 Stefan van der Walt.
178 Stefan van der Walt.
176
179
177 2006-06-29 Ville Vainio <vivainio@gmail.com>
180 2006-06-29 Ville Vainio <vivainio@gmail.com>
178
181
179 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
182 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
180 mode, patch contributed by Darren Dale. NEEDS TESTING!
183 mode, patch contributed by Darren Dale. NEEDS TESTING!
181
184
182 2006-06-28 Walter Doerwald <walter@livinglogic.de>
185 2006-06-28 Walter Doerwald <walter@livinglogic.de>
183
186
184 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
187 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
185 a blue background. Fix fetching new display rows when the browser
188 a blue background. Fix fetching new display rows when the browser
186 scrolls more than a screenful (e.g. by using the goto command).
189 scrolls more than a screenful (e.g. by using the goto command).
187
190
188 2006-06-27 Ville Vainio <vivainio@gmail.com>
191 2006-06-27 Ville Vainio <vivainio@gmail.com>
189
192
190 * Magic.py (_inspect, _ofind) Apply David Huard's
193 * Magic.py (_inspect, _ofind) Apply David Huard's
191 patch for displaying the correct docstring for 'property'
194 patch for displaying the correct docstring for 'property'
192 attributes.
195 attributes.
193
196
194 2006-06-23 Walter Doerwald <walter@livinglogic.de>
197 2006-06-23 Walter Doerwald <walter@livinglogic.de>
195
198
196 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
199 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
197 commands into the methods implementing them.
200 commands into the methods implementing them.
198
201
199 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
202 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
200
203
201 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
204 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
202 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
205 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
203 autoindent support was authored by Jin Liu.
206 autoindent support was authored by Jin Liu.
204
207
205 2006-06-22 Walter Doerwald <walter@livinglogic.de>
208 2006-06-22 Walter Doerwald <walter@livinglogic.de>
206
209
207 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
210 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
208 for keymaps with a custom class that simplifies handling.
211 for keymaps with a custom class that simplifies handling.
209
212
210 2006-06-19 Walter Doerwald <walter@livinglogic.de>
213 2006-06-19 Walter Doerwald <walter@livinglogic.de>
211
214
212 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
215 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
213 resizing. This requires Python 2.5 to work.
216 resizing. This requires Python 2.5 to work.
214
217
215 2006-06-16 Walter Doerwald <walter@livinglogic.de>
218 2006-06-16 Walter Doerwald <walter@livinglogic.de>
216
219
217 * IPython/Extensions/ibrowse.py: Add two new commands to
220 * IPython/Extensions/ibrowse.py: Add two new commands to
218 ibrowse: "hideattr" (mapped to "h") hides the attribute under
221 ibrowse: "hideattr" (mapped to "h") hides the attribute under
219 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
222 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
220 attributes again. Remapped the help command to "?". Display
223 attributes again. Remapped the help command to "?". Display
221 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
224 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
222 as keys for the "home" and "end" commands. Add three new commands
225 as keys for the "home" and "end" commands. Add three new commands
223 to the input mode for "find" and friends: "delend" (CTRL-K)
226 to the input mode for "find" and friends: "delend" (CTRL-K)
224 deletes to the end of line. "incsearchup" searches upwards in the
227 deletes to the end of line. "incsearchup" searches upwards in the
225 command history for an input that starts with the text before the cursor.
228 command history for an input that starts with the text before the cursor.
226 "incsearchdown" does the same downwards. Removed a bogus mapping of
229 "incsearchdown" does the same downwards. Removed a bogus mapping of
227 the x key to "delete".
230 the x key to "delete".
228
231
229 2006-06-15 Ville Vainio <vivainio@gmail.com>
232 2006-06-15 Ville Vainio <vivainio@gmail.com>
230
233
231 * iplib.py, hooks.py: Added new generate_prompt hook that can be
234 * iplib.py, hooks.py: Added new generate_prompt hook that can be
232 used to create prompts dynamically, instead of the "old" way of
235 used to create prompts dynamically, instead of the "old" way of
233 assigning "magic" strings to prompt_in1 and prompt_in2. The old
236 assigning "magic" strings to prompt_in1 and prompt_in2. The old
234 way still works (it's invoked by the default hook), of course.
237 way still works (it's invoked by the default hook), of course.
235
238
236 * Prompts.py: added generate_output_prompt hook for altering output
239 * Prompts.py: added generate_output_prompt hook for altering output
237 prompt
240 prompt
238
241
239 * Release.py: Changed version string to 0.7.3.svn.
242 * Release.py: Changed version string to 0.7.3.svn.
240
243
241 2006-06-15 Walter Doerwald <walter@livinglogic.de>
244 2006-06-15 Walter Doerwald <walter@livinglogic.de>
242
245
243 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
246 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
244 the call to fetch() always tries to fetch enough data for at least one
247 the call to fetch() always tries to fetch enough data for at least one
245 full screen. This makes it possible to simply call moveto(0,0,True) in
248 full screen. This makes it possible to simply call moveto(0,0,True) in
246 the constructor. Fix typos and removed the obsolete goto attribute.
249 the constructor. Fix typos and removed the obsolete goto attribute.
247
250
248 2006-06-12 Ville Vainio <vivainio@gmail.com>
251 2006-06-12 Ville Vainio <vivainio@gmail.com>
249
252
250 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
253 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
251 allowing $variable interpolation within multiline statements,
254 allowing $variable interpolation within multiline statements,
252 though so far only with "sh" profile for a testing period.
255 though so far only with "sh" profile for a testing period.
253 The patch also enables splitting long commands with \ but it
256 The patch also enables splitting long commands with \ but it
254 doesn't work properly yet.
257 doesn't work properly yet.
255
258
256 2006-06-12 Walter Doerwald <walter@livinglogic.de>
259 2006-06-12 Walter Doerwald <walter@livinglogic.de>
257
260
258 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
261 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
259 input history and the position of the cursor in the input history for
262 input history and the position of the cursor in the input history for
260 the find, findbackwards and goto command.
263 the find, findbackwards and goto command.
261
264
262 2006-06-10 Walter Doerwald <walter@livinglogic.de>
265 2006-06-10 Walter Doerwald <walter@livinglogic.de>
263
266
264 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
267 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
265 implements the basic functionality of browser commands that require
268 implements the basic functionality of browser commands that require
266 input. Reimplement the goto, find and findbackwards commands as
269 input. Reimplement the goto, find and findbackwards commands as
267 subclasses of _CommandInput. Add an input history and keymaps to those
270 subclasses of _CommandInput. Add an input history and keymaps to those
268 commands. Add "\r" as a keyboard shortcut for the enterdefault and
271 commands. Add "\r" as a keyboard shortcut for the enterdefault and
269 execute commands.
272 execute commands.
270
273
271 2006-06-07 Ville Vainio <vivainio@gmail.com>
274 2006-06-07 Ville Vainio <vivainio@gmail.com>
272
275
273 * iplib.py: ipython mybatch.ipy exits ipython immediately after
276 * iplib.py: ipython mybatch.ipy exits ipython immediately after
274 running the batch files instead of leaving the session open.
277 running the batch files instead of leaving the session open.
275
278
276 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
279 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
277
280
278 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
281 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
279 the original fix was incomplete. Patch submitted by W. Maier.
282 the original fix was incomplete. Patch submitted by W. Maier.
280
283
281 2006-06-07 Ville Vainio <vivainio@gmail.com>
284 2006-06-07 Ville Vainio <vivainio@gmail.com>
282
285
283 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
286 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
284 Confirmation prompts can be supressed by 'quiet' option.
287 Confirmation prompts can be supressed by 'quiet' option.
285 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
288 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
286
289
287 2006-06-06 *** Released version 0.7.2
290 2006-06-06 *** Released version 0.7.2
288
291
289 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
292 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
290
293
291 * IPython/Release.py (version): Made 0.7.2 final for release.
294 * IPython/Release.py (version): Made 0.7.2 final for release.
292 Repo tagged and release cut.
295 Repo tagged and release cut.
293
296
294 2006-06-05 Ville Vainio <vivainio@gmail.com>
297 2006-06-05 Ville Vainio <vivainio@gmail.com>
295
298
296 * Magic.py (magic_rehashx): Honor no_alias list earlier in
299 * Magic.py (magic_rehashx): Honor no_alias list earlier in
297 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
300 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
298
301
299 * upgrade_dir.py: try import 'path' module a bit harder
302 * upgrade_dir.py: try import 'path' module a bit harder
300 (for %upgrade)
303 (for %upgrade)
301
304
302 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
305 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
303
306
304 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
307 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
305 instead of looping 20 times.
308 instead of looping 20 times.
306
309
307 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
310 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
308 correctly at initialization time. Bug reported by Krishna Mohan
311 correctly at initialization time. Bug reported by Krishna Mohan
309 Gundu <gkmohan-AT-gmail.com> on the user list.
312 Gundu <gkmohan-AT-gmail.com> on the user list.
310
313
311 * IPython/Release.py (version): Mark 0.7.2 version to start
314 * IPython/Release.py (version): Mark 0.7.2 version to start
312 testing for release on 06/06.
315 testing for release on 06/06.
313
316
314 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
317 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
315
318
316 * scripts/irunner: thin script interface so users don't have to
319 * scripts/irunner: thin script interface so users don't have to
317 find the module and call it as an executable, since modules rarely
320 find the module and call it as an executable, since modules rarely
318 live in people's PATH.
321 live in people's PATH.
319
322
320 * IPython/irunner.py (InteractiveRunner.__init__): added
323 * IPython/irunner.py (InteractiveRunner.__init__): added
321 delaybeforesend attribute to control delays with newer versions of
324 delaybeforesend attribute to control delays with newer versions of
322 pexpect. Thanks to detailed help from pexpect's author, Noah
325 pexpect. Thanks to detailed help from pexpect's author, Noah
323 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
326 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
324 correctly (it works in NoColor mode).
327 correctly (it works in NoColor mode).
325
328
326 * IPython/iplib.py (handle_normal): fix nasty crash reported on
329 * IPython/iplib.py (handle_normal): fix nasty crash reported on
327 SAGE list, from improper log() calls.
330 SAGE list, from improper log() calls.
328
331
329 2006-05-31 Ville Vainio <vivainio@gmail.com>
332 2006-05-31 Ville Vainio <vivainio@gmail.com>
330
333
331 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
334 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
332 with args in parens to work correctly with dirs that have spaces.
335 with args in parens to work correctly with dirs that have spaces.
333
336
334 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
337 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
335
338
336 * IPython/Logger.py (Logger.logstart): add option to log raw input
339 * IPython/Logger.py (Logger.logstart): add option to log raw input
337 instead of the processed one. A -r flag was added to the
340 instead of the processed one. A -r flag was added to the
338 %logstart magic used for controlling logging.
341 %logstart magic used for controlling logging.
339
342
340 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
343 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
341
344
342 * IPython/iplib.py (InteractiveShell.__init__): add check for the
345 * IPython/iplib.py (InteractiveShell.__init__): add check for the
343 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
346 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
344 recognize the option. After a bug report by Will Maier. This
347 recognize the option. After a bug report by Will Maier. This
345 closes #64 (will do it after confirmation from W. Maier).
348 closes #64 (will do it after confirmation from W. Maier).
346
349
347 * IPython/irunner.py: New module to run scripts as if manually
350 * IPython/irunner.py: New module to run scripts as if manually
348 typed into an interactive environment, based on pexpect. After a
351 typed into an interactive environment, based on pexpect. After a
349 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
352 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
350 ipython-user list. Simple unittests in the tests/ directory.
353 ipython-user list. Simple unittests in the tests/ directory.
351
354
352 * tools/release: add Will Maier, OpenBSD port maintainer, to
355 * tools/release: add Will Maier, OpenBSD port maintainer, to
353 recepients list. We are now officially part of the OpenBSD ports:
356 recepients list. We are now officially part of the OpenBSD ports:
354 http://www.openbsd.org/ports.html ! Many thanks to Will for the
357 http://www.openbsd.org/ports.html ! Many thanks to Will for the
355 work.
358 work.
356
359
357 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
360 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
358
361
359 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
362 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
360 so that it doesn't break tkinter apps.
363 so that it doesn't break tkinter apps.
361
364
362 * IPython/iplib.py (_prefilter): fix bug where aliases would
365 * IPython/iplib.py (_prefilter): fix bug where aliases would
363 shadow variables when autocall was fully off. Reported by SAGE
366 shadow variables when autocall was fully off. Reported by SAGE
364 author William Stein.
367 author William Stein.
365
368
366 * IPython/OInspect.py (Inspector.__init__): add a flag to control
369 * IPython/OInspect.py (Inspector.__init__): add a flag to control
367 at what detail level strings are computed when foo? is requested.
370 at what detail level strings are computed when foo? is requested.
368 This allows users to ask for example that the string form of an
371 This allows users to ask for example that the string form of an
369 object is only computed when foo?? is called, or even never, by
372 object is only computed when foo?? is called, or even never, by
370 setting the object_info_string_level >= 2 in the configuration
373 setting the object_info_string_level >= 2 in the configuration
371 file. This new option has been added and documented. After a
374 file. This new option has been added and documented. After a
372 request by SAGE to be able to control the printing of very large
375 request by SAGE to be able to control the printing of very large
373 objects more easily.
376 objects more easily.
374
377
375 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
378 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
376
379
377 * IPython/ipmaker.py (make_IPython): remove the ipython call path
380 * IPython/ipmaker.py (make_IPython): remove the ipython call path
378 from sys.argv, to be 100% consistent with how Python itself works
381 from sys.argv, to be 100% consistent with how Python itself works
379 (as seen for example with python -i file.py). After a bug report
382 (as seen for example with python -i file.py). After a bug report
380 by Jeffrey Collins.
383 by Jeffrey Collins.
381
384
382 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
385 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
383 nasty bug which was preventing custom namespaces with -pylab,
386 nasty bug which was preventing custom namespaces with -pylab,
384 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
387 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
385 compatibility (long gone from mpl).
388 compatibility (long gone from mpl).
386
389
387 * IPython/ipapi.py (make_session): name change: create->make. We
390 * IPython/ipapi.py (make_session): name change: create->make. We
388 use make in other places (ipmaker,...), it's shorter and easier to
391 use make in other places (ipmaker,...), it's shorter and easier to
389 type and say, etc. I'm trying to clean things before 0.7.2 so
392 type and say, etc. I'm trying to clean things before 0.7.2 so
390 that I can keep things stable wrt to ipapi in the chainsaw branch.
393 that I can keep things stable wrt to ipapi in the chainsaw branch.
391
394
392 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
395 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
393 python-mode recognizes our debugger mode. Add support for
396 python-mode recognizes our debugger mode. Add support for
394 autoindent inside (X)emacs. After a patch sent in by Jin Liu
397 autoindent inside (X)emacs. After a patch sent in by Jin Liu
395 <m.liu.jin-AT-gmail.com> originally written by
398 <m.liu.jin-AT-gmail.com> originally written by
396 doxgen-AT-newsmth.net (with minor modifications for xemacs
399 doxgen-AT-newsmth.net (with minor modifications for xemacs
397 compatibility)
400 compatibility)
398
401
399 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
402 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
400 tracebacks when walking the stack so that the stack tracking system
403 tracebacks when walking the stack so that the stack tracking system
401 in emacs' python-mode can identify the frames correctly.
404 in emacs' python-mode can identify the frames correctly.
402
405
403 * IPython/ipmaker.py (make_IPython): make the internal (and
406 * IPython/ipmaker.py (make_IPython): make the internal (and
404 default config) autoedit_syntax value false by default. Too many
407 default config) autoedit_syntax value false by default. Too many
405 users have complained to me (both on and off-list) about problems
408 users have complained to me (both on and off-list) about problems
406 with this option being on by default, so I'm making it default to
409 with this option being on by default, so I'm making it default to
407 off. It can still be enabled by anyone via the usual mechanisms.
410 off. It can still be enabled by anyone via the usual mechanisms.
408
411
409 * IPython/completer.py (Completer.attr_matches): add support for
412 * IPython/completer.py (Completer.attr_matches): add support for
410 PyCrust-style _getAttributeNames magic method. Patch contributed
413 PyCrust-style _getAttributeNames magic method. Patch contributed
411 by <mscott-AT-goldenspud.com>. Closes #50.
414 by <mscott-AT-goldenspud.com>. Closes #50.
412
415
413 * IPython/iplib.py (InteractiveShell.__init__): remove the
416 * IPython/iplib.py (InteractiveShell.__init__): remove the
414 deletion of exit/quit from __builtin__, which can break
417 deletion of exit/quit from __builtin__, which can break
415 third-party tools like the Zope debugging console. The
418 third-party tools like the Zope debugging console. The
416 %exit/%quit magics remain. In general, it's probably a good idea
419 %exit/%quit magics remain. In general, it's probably a good idea
417 not to delete anything from __builtin__, since we never know what
420 not to delete anything from __builtin__, since we never know what
418 that will break. In any case, python now (for 2.5) will support
421 that will break. In any case, python now (for 2.5) will support
419 'real' exit/quit, so this issue is moot. Closes #55.
422 'real' exit/quit, so this issue is moot. Closes #55.
420
423
421 * IPython/genutils.py (with_obj): rename the 'with' function to
424 * IPython/genutils.py (with_obj): rename the 'with' function to
422 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
425 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
423 becomes a language keyword. Closes #53.
426 becomes a language keyword. Closes #53.
424
427
425 * IPython/FakeModule.py (FakeModule.__init__): add a proper
428 * IPython/FakeModule.py (FakeModule.__init__): add a proper
426 __file__ attribute to this so it fools more things into thinking
429 __file__ attribute to this so it fools more things into thinking
427 it is a real module. Closes #59.
430 it is a real module. Closes #59.
428
431
429 * IPython/Magic.py (magic_edit): add -n option to open the editor
432 * IPython/Magic.py (magic_edit): add -n option to open the editor
430 at a specific line number. After a patch by Stefan van der Walt.
433 at a specific line number. After a patch by Stefan van der Walt.
431
434
432 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
435 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
433
436
434 * IPython/iplib.py (edit_syntax_error): fix crash when for some
437 * IPython/iplib.py (edit_syntax_error): fix crash when for some
435 reason the file could not be opened. After automatic crash
438 reason the file could not be opened. After automatic crash
436 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
439 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
437 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
440 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
438 (_should_recompile): Don't fire editor if using %bg, since there
441 (_should_recompile): Don't fire editor if using %bg, since there
439 is no file in the first place. From the same report as above.
442 is no file in the first place. From the same report as above.
440 (raw_input): protect against faulty third-party prefilters. After
443 (raw_input): protect against faulty third-party prefilters. After
441 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
444 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
442 while running under SAGE.
445 while running under SAGE.
443
446
444 2006-05-23 Ville Vainio <vivainio@gmail.com>
447 2006-05-23 Ville Vainio <vivainio@gmail.com>
445
448
446 * ipapi.py: Stripped down ip.to_user_ns() to work only as
449 * ipapi.py: Stripped down ip.to_user_ns() to work only as
447 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
450 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
448 now returns None (again), unless dummy is specifically allowed by
451 now returns None (again), unless dummy is specifically allowed by
449 ipapi.get(allow_dummy=True).
452 ipapi.get(allow_dummy=True).
450
453
451 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
454 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
452
455
453 * IPython: remove all 2.2-compatibility objects and hacks from
456 * IPython: remove all 2.2-compatibility objects and hacks from
454 everywhere, since we only support 2.3 at this point. Docs
457 everywhere, since we only support 2.3 at this point. Docs
455 updated.
458 updated.
456
459
457 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
460 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
458 Anything requiring extra validation can be turned into a Python
461 Anything requiring extra validation can be turned into a Python
459 property in the future. I used a property for the db one b/c
462 property in the future. I used a property for the db one b/c
460 there was a nasty circularity problem with the initialization
463 there was a nasty circularity problem with the initialization
461 order, which right now I don't have time to clean up.
464 order, which right now I don't have time to clean up.
462
465
463 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
466 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
464 another locking bug reported by Jorgen. I'm not 100% sure though,
467 another locking bug reported by Jorgen. I'm not 100% sure though,
465 so more testing is needed...
468 so more testing is needed...
466
469
467 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
470 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
468
471
469 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
472 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
470 local variables from any routine in user code (typically executed
473 local variables from any routine in user code (typically executed
471 with %run) directly into the interactive namespace. Very useful
474 with %run) directly into the interactive namespace. Very useful
472 when doing complex debugging.
475 when doing complex debugging.
473 (IPythonNotRunning): Changed the default None object to a dummy
476 (IPythonNotRunning): Changed the default None object to a dummy
474 whose attributes can be queried as well as called without
477 whose attributes can be queried as well as called without
475 exploding, to ease writing code which works transparently both in
478 exploding, to ease writing code which works transparently both in
476 and out of ipython and uses some of this API.
479 and out of ipython and uses some of this API.
477
480
478 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
481 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
479
482
480 * IPython/hooks.py (result_display): Fix the fact that our display
483 * IPython/hooks.py (result_display): Fix the fact that our display
481 hook was using str() instead of repr(), as the default python
484 hook was using str() instead of repr(), as the default python
482 console does. This had gone unnoticed b/c it only happened if
485 console does. This had gone unnoticed b/c it only happened if
483 %Pprint was off, but the inconsistency was there.
486 %Pprint was off, but the inconsistency was there.
484
487
485 2006-05-15 Ville Vainio <vivainio@gmail.com>
488 2006-05-15 Ville Vainio <vivainio@gmail.com>
486
489
487 * Oinspect.py: Only show docstring for nonexisting/binary files
490 * Oinspect.py: Only show docstring for nonexisting/binary files
488 when doing object??, closing ticket #62
491 when doing object??, closing ticket #62
489
492
490 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
493 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
491
494
492 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
495 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
493 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
496 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
494 was being released in a routine which hadn't checked if it had
497 was being released in a routine which hadn't checked if it had
495 been the one to acquire it.
498 been the one to acquire it.
496
499
497 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
500 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
498
501
499 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
502 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
500
503
501 2006-04-11 Ville Vainio <vivainio@gmail.com>
504 2006-04-11 Ville Vainio <vivainio@gmail.com>
502
505
503 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
506 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
504 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
507 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
505 prefilters, allowing stuff like magics and aliases in the file.
508 prefilters, allowing stuff like magics and aliases in the file.
506
509
507 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
510 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
508 added. Supported now are "%clear in" and "%clear out" (clear input and
511 added. Supported now are "%clear in" and "%clear out" (clear input and
509 output history, respectively). Also fixed CachedOutput.flush to
512 output history, respectively). Also fixed CachedOutput.flush to
510 properly flush the output cache.
513 properly flush the output cache.
511
514
512 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
515 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
513 half-success (and fail explicitly).
516 half-success (and fail explicitly).
514
517
515 2006-03-28 Ville Vainio <vivainio@gmail.com>
518 2006-03-28 Ville Vainio <vivainio@gmail.com>
516
519
517 * iplib.py: Fix quoting of aliases so that only argless ones
520 * iplib.py: Fix quoting of aliases so that only argless ones
518 are quoted
521 are quoted
519
522
520 2006-03-28 Ville Vainio <vivainio@gmail.com>
523 2006-03-28 Ville Vainio <vivainio@gmail.com>
521
524
522 * iplib.py: Quote aliases with spaces in the name.
525 * iplib.py: Quote aliases with spaces in the name.
523 "c:\program files\blah\bin" is now legal alias target.
526 "c:\program files\blah\bin" is now legal alias target.
524
527
525 * ext_rehashdir.py: Space no longer allowed as arg
528 * ext_rehashdir.py: Space no longer allowed as arg
526 separator, since space is legal in path names.
529 separator, since space is legal in path names.
527
530
528 2006-03-16 Ville Vainio <vivainio@gmail.com>
531 2006-03-16 Ville Vainio <vivainio@gmail.com>
529
532
530 * upgrade_dir.py: Take path.py from Extensions, correcting
533 * upgrade_dir.py: Take path.py from Extensions, correcting
531 %upgrade magic
534 %upgrade magic
532
535
533 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
536 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
534
537
535 * hooks.py: Only enclose editor binary in quotes if legal and
538 * hooks.py: Only enclose editor binary in quotes if legal and
536 necessary (space in the name, and is an existing file). Fixes a bug
539 necessary (space in the name, and is an existing file). Fixes a bug
537 reported by Zachary Pincus.
540 reported by Zachary Pincus.
538
541
539 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
542 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
540
543
541 * Manual: thanks to a tip on proper color handling for Emacs, by
544 * Manual: thanks to a tip on proper color handling for Emacs, by
542 Eric J Haywiser <ejh1-AT-MIT.EDU>.
545 Eric J Haywiser <ejh1-AT-MIT.EDU>.
543
546
544 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
547 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
545 by applying the provided patch. Thanks to Liu Jin
548 by applying the provided patch. Thanks to Liu Jin
546 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
549 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
547 XEmacs/Linux, I'm trusting the submitter that it actually helps
550 XEmacs/Linux, I'm trusting the submitter that it actually helps
548 under win32/GNU Emacs. Will revisit if any problems are reported.
551 under win32/GNU Emacs. Will revisit if any problems are reported.
549
552
550 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
553 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
551
554
552 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
555 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
553 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
556 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
554
557
555 2006-03-12 Ville Vainio <vivainio@gmail.com>
558 2006-03-12 Ville Vainio <vivainio@gmail.com>
556
559
557 * Magic.py (magic_timeit): Added %timeit magic, contributed by
560 * Magic.py (magic_timeit): Added %timeit magic, contributed by
558 Torsten Marek.
561 Torsten Marek.
559
562
560 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
563 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
561
564
562 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
565 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
563 line ranges works again.
566 line ranges works again.
564
567
565 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
568 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
566
569
567 * IPython/iplib.py (showtraceback): add back sys.last_traceback
570 * IPython/iplib.py (showtraceback): add back sys.last_traceback
568 and friends, after a discussion with Zach Pincus on ipython-user.
571 and friends, after a discussion with Zach Pincus on ipython-user.
569 I'm not 100% sure, but after thinking about it quite a bit, it may
572 I'm not 100% sure, but after thinking about it quite a bit, it may
570 be OK. Testing with the multithreaded shells didn't reveal any
573 be OK. Testing with the multithreaded shells didn't reveal any
571 problems, but let's keep an eye out.
574 problems, but let's keep an eye out.
572
575
573 In the process, I fixed a few things which were calling
576 In the process, I fixed a few things which were calling
574 self.InteractiveTB() directly (like safe_execfile), which is a
577 self.InteractiveTB() directly (like safe_execfile), which is a
575 mistake: ALL exception reporting should be done by calling
578 mistake: ALL exception reporting should be done by calling
576 self.showtraceback(), which handles state and tab-completion and
579 self.showtraceback(), which handles state and tab-completion and
577 more.
580 more.
578
581
579 2006-03-01 Ville Vainio <vivainio@gmail.com>
582 2006-03-01 Ville Vainio <vivainio@gmail.com>
580
583
581 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
584 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
582 To use, do "from ipipe import *".
585 To use, do "from ipipe import *".
583
586
584 2006-02-24 Ville Vainio <vivainio@gmail.com>
587 2006-02-24 Ville Vainio <vivainio@gmail.com>
585
588
586 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
589 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
587 "cleanly" and safely than the older upgrade mechanism.
590 "cleanly" and safely than the older upgrade mechanism.
588
591
589 2006-02-21 Ville Vainio <vivainio@gmail.com>
592 2006-02-21 Ville Vainio <vivainio@gmail.com>
590
593
591 * Magic.py: %save works again.
594 * Magic.py: %save works again.
592
595
593 2006-02-15 Ville Vainio <vivainio@gmail.com>
596 2006-02-15 Ville Vainio <vivainio@gmail.com>
594
597
595 * Magic.py: %Pprint works again
598 * Magic.py: %Pprint works again
596
599
597 * Extensions/ipy_sane_defaults.py: Provide everything provided
600 * Extensions/ipy_sane_defaults.py: Provide everything provided
598 in default ipythonrc, to make it possible to have a completely empty
601 in default ipythonrc, to make it possible to have a completely empty
599 ipythonrc (and thus completely rc-file free configuration)
602 ipythonrc (and thus completely rc-file free configuration)
600
603
601 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
604 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
602
605
603 * IPython/hooks.py (editor): quote the call to the editor command,
606 * IPython/hooks.py (editor): quote the call to the editor command,
604 to allow commands with spaces in them. Problem noted by watching
607 to allow commands with spaces in them. Problem noted by watching
605 Ian Oswald's video about textpad under win32 at
608 Ian Oswald's video about textpad under win32 at
606 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
609 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
607
610
608 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
611 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
609 describing magics (we haven't used @ for a loong time).
612 describing magics (we haven't used @ for a loong time).
610
613
611 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
614 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
612 contributed by marienz to close
615 contributed by marienz to close
613 http://www.scipy.net/roundup/ipython/issue53.
616 http://www.scipy.net/roundup/ipython/issue53.
614
617
615 2006-02-10 Ville Vainio <vivainio@gmail.com>
618 2006-02-10 Ville Vainio <vivainio@gmail.com>
616
619
617 * genutils.py: getoutput now works in win32 too
620 * genutils.py: getoutput now works in win32 too
618
621
619 * completer.py: alias and magic completion only invoked
622 * completer.py: alias and magic completion only invoked
620 at the first "item" in the line, to avoid "cd %store"
623 at the first "item" in the line, to avoid "cd %store"
621 nonsense.
624 nonsense.
622
625
623 2006-02-09 Ville Vainio <vivainio@gmail.com>
626 2006-02-09 Ville Vainio <vivainio@gmail.com>
624
627
625 * test/*: Added a unit testing framework (finally).
628 * test/*: Added a unit testing framework (finally).
626 '%run runtests.py' to run test_*.
629 '%run runtests.py' to run test_*.
627
630
628 * ipapi.py: Exposed runlines and set_custom_exc
631 * ipapi.py: Exposed runlines and set_custom_exc
629
632
630 2006-02-07 Ville Vainio <vivainio@gmail.com>
633 2006-02-07 Ville Vainio <vivainio@gmail.com>
631
634
632 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
635 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
633 instead use "f(1 2)" as before.
636 instead use "f(1 2)" as before.
634
637
635 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
638 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
636
639
637 * IPython/demo.py (IPythonDemo): Add new classes to the demo
640 * IPython/demo.py (IPythonDemo): Add new classes to the demo
638 facilities, for demos processed by the IPython input filter
641 facilities, for demos processed by the IPython input filter
639 (IPythonDemo), and for running a script one-line-at-a-time as a
642 (IPythonDemo), and for running a script one-line-at-a-time as a
640 demo, both for pure Python (LineDemo) and for IPython-processed
643 demo, both for pure Python (LineDemo) and for IPython-processed
641 input (IPythonLineDemo). After a request by Dave Kohel, from the
644 input (IPythonLineDemo). After a request by Dave Kohel, from the
642 SAGE team.
645 SAGE team.
643 (Demo.edit): added an edit() method to the demo objects, to edit
646 (Demo.edit): added an edit() method to the demo objects, to edit
644 the in-memory copy of the last executed block.
647 the in-memory copy of the last executed block.
645
648
646 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
649 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
647 processing to %edit, %macro and %save. These commands can now be
650 processing to %edit, %macro and %save. These commands can now be
648 invoked on the unprocessed input as it was typed by the user
651 invoked on the unprocessed input as it was typed by the user
649 (without any prefilters applied). After requests by the SAGE team
652 (without any prefilters applied). After requests by the SAGE team
650 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
653 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
651
654
652 2006-02-01 Ville Vainio <vivainio@gmail.com>
655 2006-02-01 Ville Vainio <vivainio@gmail.com>
653
656
654 * setup.py, eggsetup.py: easy_install ipython==dev works
657 * setup.py, eggsetup.py: easy_install ipython==dev works
655 correctly now (on Linux)
658 correctly now (on Linux)
656
659
657 * ipy_user_conf,ipmaker: user config changes, removed spurious
660 * ipy_user_conf,ipmaker: user config changes, removed spurious
658 warnings
661 warnings
659
662
660 * iplib: if rc.banner is string, use it as is.
663 * iplib: if rc.banner is string, use it as is.
661
664
662 * Magic: %pycat accepts a string argument and pages it's contents.
665 * Magic: %pycat accepts a string argument and pages it's contents.
663
666
664
667
665 2006-01-30 Ville Vainio <vivainio@gmail.com>
668 2006-01-30 Ville Vainio <vivainio@gmail.com>
666
669
667 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
670 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
668 Now %store and bookmarks work through PickleShare, meaning that
671 Now %store and bookmarks work through PickleShare, meaning that
669 concurrent access is possible and all ipython sessions see the
672 concurrent access is possible and all ipython sessions see the
670 same database situation all the time, instead of snapshot of
673 same database situation all the time, instead of snapshot of
671 the situation when the session was started. Hence, %bookmark
674 the situation when the session was started. Hence, %bookmark
672 results are immediately accessible from othes sessions. The database
675 results are immediately accessible from othes sessions. The database
673 is also available for use by user extensions. See:
676 is also available for use by user extensions. See:
674 http://www.python.org/pypi/pickleshare
677 http://www.python.org/pypi/pickleshare
675
678
676 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
679 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
677
680
678 * aliases can now be %store'd
681 * aliases can now be %store'd
679
682
680 * path.py moved to Extensions so that pickleshare does not need
683 * path.py moved to Extensions so that pickleshare does not need
681 IPython-specific import. Extensions added to pythonpath right
684 IPython-specific import. Extensions added to pythonpath right
682 at __init__.
685 at __init__.
683
686
684 * iplib.py: ipalias deprecated/redundant; aliases are converted and
687 * iplib.py: ipalias deprecated/redundant; aliases are converted and
685 called with _ip.system and the pre-transformed command string.
688 called with _ip.system and the pre-transformed command string.
686
689
687 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
690 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
688
691
689 * IPython/iplib.py (interact): Fix that we were not catching
692 * IPython/iplib.py (interact): Fix that we were not catching
690 KeyboardInterrupt exceptions properly. I'm not quite sure why the
693 KeyboardInterrupt exceptions properly. I'm not quite sure why the
691 logic here had to change, but it's fixed now.
694 logic here had to change, but it's fixed now.
692
695
693 2006-01-29 Ville Vainio <vivainio@gmail.com>
696 2006-01-29 Ville Vainio <vivainio@gmail.com>
694
697
695 * iplib.py: Try to import pyreadline on Windows.
698 * iplib.py: Try to import pyreadline on Windows.
696
699
697 2006-01-27 Ville Vainio <vivainio@gmail.com>
700 2006-01-27 Ville Vainio <vivainio@gmail.com>
698
701
699 * iplib.py: Expose ipapi as _ip in builtin namespace.
702 * iplib.py: Expose ipapi as _ip in builtin namespace.
700 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
703 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
701 and ip_set_hook (-> _ip.set_hook) redundant. % and !
704 and ip_set_hook (-> _ip.set_hook) redundant. % and !
702 syntax now produce _ip.* variant of the commands.
705 syntax now produce _ip.* variant of the commands.
703
706
704 * "_ip.options().autoedit_syntax = 2" automatically throws
707 * "_ip.options().autoedit_syntax = 2" automatically throws
705 user to editor for syntax error correction without prompting.
708 user to editor for syntax error correction without prompting.
706
709
707 2006-01-27 Ville Vainio <vivainio@gmail.com>
710 2006-01-27 Ville Vainio <vivainio@gmail.com>
708
711
709 * ipmaker.py: Give "realistic" sys.argv for scripts (without
712 * ipmaker.py: Give "realistic" sys.argv for scripts (without
710 'ipython' at argv[0]) executed through command line.
713 'ipython' at argv[0]) executed through command line.
711 NOTE: this DEPRECATES calling ipython with multiple scripts
714 NOTE: this DEPRECATES calling ipython with multiple scripts
712 ("ipython a.py b.py c.py")
715 ("ipython a.py b.py c.py")
713
716
714 * iplib.py, hooks.py: Added configurable input prefilter,
717 * iplib.py, hooks.py: Added configurable input prefilter,
715 named 'input_prefilter'. See ext_rescapture.py for example
718 named 'input_prefilter'. See ext_rescapture.py for example
716 usage.
719 usage.
717
720
718 * ext_rescapture.py, Magic.py: Better system command output capture
721 * ext_rescapture.py, Magic.py: Better system command output capture
719 through 'var = !ls' (deprecates user-visible %sc). Same notation
722 through 'var = !ls' (deprecates user-visible %sc). Same notation
720 applies for magics, 'var = %alias' assigns alias list to var.
723 applies for magics, 'var = %alias' assigns alias list to var.
721
724
722 * ipapi.py: added meta() for accessing extension-usable data store.
725 * ipapi.py: added meta() for accessing extension-usable data store.
723
726
724 * iplib.py: added InteractiveShell.getapi(). New magics should be
727 * iplib.py: added InteractiveShell.getapi(). New magics should be
725 written doing self.getapi() instead of using the shell directly.
728 written doing self.getapi() instead of using the shell directly.
726
729
727 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
730 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
728 %store foo >> ~/myfoo.txt to store variables to files (in clean
731 %store foo >> ~/myfoo.txt to store variables to files (in clean
729 textual form, not a restorable pickle).
732 textual form, not a restorable pickle).
730
733
731 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
734 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
732
735
733 * usage.py, Magic.py: added %quickref
736 * usage.py, Magic.py: added %quickref
734
737
735 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
738 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
736
739
737 * GetoptErrors when invoking magics etc. with wrong args
740 * GetoptErrors when invoking magics etc. with wrong args
738 are now more helpful:
741 are now more helpful:
739 GetoptError: option -l not recognized (allowed: "qb" )
742 GetoptError: option -l not recognized (allowed: "qb" )
740
743
741 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
744 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
742
745
743 * IPython/demo.py (Demo.show): Flush stdout after each block, so
746 * IPython/demo.py (Demo.show): Flush stdout after each block, so
744 computationally intensive blocks don't appear to stall the demo.
747 computationally intensive blocks don't appear to stall the demo.
745
748
746 2006-01-24 Ville Vainio <vivainio@gmail.com>
749 2006-01-24 Ville Vainio <vivainio@gmail.com>
747
750
748 * iplib.py, hooks.py: 'result_display' hook can return a non-None
751 * iplib.py, hooks.py: 'result_display' hook can return a non-None
749 value to manipulate resulting history entry.
752 value to manipulate resulting history entry.
750
753
751 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
754 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
752 to instance methods of IPApi class, to make extending an embedded
755 to instance methods of IPApi class, to make extending an embedded
753 IPython feasible. See ext_rehashdir.py for example usage.
756 IPython feasible. See ext_rehashdir.py for example usage.
754
757
755 * Merged 1071-1076 from branches/0.7.1
758 * Merged 1071-1076 from branches/0.7.1
756
759
757
760
758 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
761 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
759
762
760 * tools/release (daystamp): Fix build tools to use the new
763 * tools/release (daystamp): Fix build tools to use the new
761 eggsetup.py script to build lightweight eggs.
764 eggsetup.py script to build lightweight eggs.
762
765
763 * Applied changesets 1062 and 1064 before 0.7.1 release.
766 * Applied changesets 1062 and 1064 before 0.7.1 release.
764
767
765 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
768 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
766 see the raw input history (without conversions like %ls ->
769 see the raw input history (without conversions like %ls ->
767 ipmagic("ls")). After a request from W. Stein, SAGE
770 ipmagic("ls")). After a request from W. Stein, SAGE
768 (http://modular.ucsd.edu/sage) developer. This information is
771 (http://modular.ucsd.edu/sage) developer. This information is
769 stored in the input_hist_raw attribute of the IPython instance, so
772 stored in the input_hist_raw attribute of the IPython instance, so
770 developers can access it if needed (it's an InputList instance).
773 developers can access it if needed (it's an InputList instance).
771
774
772 * Versionstring = 0.7.2.svn
775 * Versionstring = 0.7.2.svn
773
776
774 * eggsetup.py: A separate script for constructing eggs, creates
777 * eggsetup.py: A separate script for constructing eggs, creates
775 proper launch scripts even on Windows (an .exe file in
778 proper launch scripts even on Windows (an .exe file in
776 \python24\scripts).
779 \python24\scripts).
777
780
778 * ipapi.py: launch_new_instance, launch entry point needed for the
781 * ipapi.py: launch_new_instance, launch entry point needed for the
779 egg.
782 egg.
780
783
781 2006-01-23 Ville Vainio <vivainio@gmail.com>
784 2006-01-23 Ville Vainio <vivainio@gmail.com>
782
785
783 * Added %cpaste magic for pasting python code
786 * Added %cpaste magic for pasting python code
784
787
785 2006-01-22 Ville Vainio <vivainio@gmail.com>
788 2006-01-22 Ville Vainio <vivainio@gmail.com>
786
789
787 * Merge from branches/0.7.1 into trunk, revs 1052-1057
790 * Merge from branches/0.7.1 into trunk, revs 1052-1057
788
791
789 * Versionstring = 0.7.2.svn
792 * Versionstring = 0.7.2.svn
790
793
791 * eggsetup.py: A separate script for constructing eggs, creates
794 * eggsetup.py: A separate script for constructing eggs, creates
792 proper launch scripts even on Windows (an .exe file in
795 proper launch scripts even on Windows (an .exe file in
793 \python24\scripts).
796 \python24\scripts).
794
797
795 * ipapi.py: launch_new_instance, launch entry point needed for the
798 * ipapi.py: launch_new_instance, launch entry point needed for the
796 egg.
799 egg.
797
800
798 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
801 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
799
802
800 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
803 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
801 %pfile foo would print the file for foo even if it was a binary.
804 %pfile foo would print the file for foo even if it was a binary.
802 Now, extensions '.so' and '.dll' are skipped.
805 Now, extensions '.so' and '.dll' are skipped.
803
806
804 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
807 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
805 bug, where macros would fail in all threaded modes. I'm not 100%
808 bug, where macros would fail in all threaded modes. I'm not 100%
806 sure, so I'm going to put out an rc instead of making a release
809 sure, so I'm going to put out an rc instead of making a release
807 today, and wait for feedback for at least a few days.
810 today, and wait for feedback for at least a few days.
808
811
809 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
812 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
810 it...) the handling of pasting external code with autoindent on.
813 it...) the handling of pasting external code with autoindent on.
811 To get out of a multiline input, the rule will appear for most
814 To get out of a multiline input, the rule will appear for most
812 users unchanged: two blank lines or change the indent level
815 users unchanged: two blank lines or change the indent level
813 proposed by IPython. But there is a twist now: you can
816 proposed by IPython. But there is a twist now: you can
814 add/subtract only *one or two spaces*. If you add/subtract three
817 add/subtract only *one or two spaces*. If you add/subtract three
815 or more (unless you completely delete the line), IPython will
818 or more (unless you completely delete the line), IPython will
816 accept that line, and you'll need to enter a second one of pure
819 accept that line, and you'll need to enter a second one of pure
817 whitespace. I know it sounds complicated, but I can't find a
820 whitespace. I know it sounds complicated, but I can't find a
818 different solution that covers all the cases, with the right
821 different solution that covers all the cases, with the right
819 heuristics. Hopefully in actual use, nobody will really notice
822 heuristics. Hopefully in actual use, nobody will really notice
820 all these strange rules and things will 'just work'.
823 all these strange rules and things will 'just work'.
821
824
822 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
825 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
823
826
824 * IPython/iplib.py (interact): catch exceptions which can be
827 * IPython/iplib.py (interact): catch exceptions which can be
825 triggered asynchronously by signal handlers. Thanks to an
828 triggered asynchronously by signal handlers. Thanks to an
826 automatic crash report, submitted by Colin Kingsley
829 automatic crash report, submitted by Colin Kingsley
827 <tercel-AT-gentoo.org>.
830 <tercel-AT-gentoo.org>.
828
831
829 2006-01-20 Ville Vainio <vivainio@gmail.com>
832 2006-01-20 Ville Vainio <vivainio@gmail.com>
830
833
831 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
834 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
832 (%rehashdir, very useful, try it out) of how to extend ipython
835 (%rehashdir, very useful, try it out) of how to extend ipython
833 with new magics. Also added Extensions dir to pythonpath to make
836 with new magics. Also added Extensions dir to pythonpath to make
834 importing extensions easy.
837 importing extensions easy.
835
838
836 * %store now complains when trying to store interactively declared
839 * %store now complains when trying to store interactively declared
837 classes / instances of those classes.
840 classes / instances of those classes.
838
841
839 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
842 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
840 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
843 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
841 if they exist, and ipy_user_conf.py with some defaults is created for
844 if they exist, and ipy_user_conf.py with some defaults is created for
842 the user.
845 the user.
843
846
844 * Startup rehashing done by the config file, not InterpreterExec.
847 * Startup rehashing done by the config file, not InterpreterExec.
845 This means system commands are available even without selecting the
848 This means system commands are available even without selecting the
846 pysh profile. It's the sensible default after all.
849 pysh profile. It's the sensible default after all.
847
850
848 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
851 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
849
852
850 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
853 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
851 multiline code with autoindent on working. But I am really not
854 multiline code with autoindent on working. But I am really not
852 sure, so this needs more testing. Will commit a debug-enabled
855 sure, so this needs more testing. Will commit a debug-enabled
853 version for now, while I test it some more, so that Ville and
856 version for now, while I test it some more, so that Ville and
854 others may also catch any problems. Also made
857 others may also catch any problems. Also made
855 self.indent_current_str() a method, to ensure that there's no
858 self.indent_current_str() a method, to ensure that there's no
856 chance of the indent space count and the corresponding string
859 chance of the indent space count and the corresponding string
857 falling out of sync. All code needing the string should just call
860 falling out of sync. All code needing the string should just call
858 the method.
861 the method.
859
862
860 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
863 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
861
864
862 * IPython/Magic.py (magic_edit): fix check for when users don't
865 * IPython/Magic.py (magic_edit): fix check for when users don't
863 save their output files, the try/except was in the wrong section.
866 save their output files, the try/except was in the wrong section.
864
867
865 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
868 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
866
869
867 * IPython/Magic.py (magic_run): fix __file__ global missing from
870 * IPython/Magic.py (magic_run): fix __file__ global missing from
868 script's namespace when executed via %run. After a report by
871 script's namespace when executed via %run. After a report by
869 Vivian.
872 Vivian.
870
873
871 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
874 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
872 when using python 2.4. The parent constructor changed in 2.4, and
875 when using python 2.4. The parent constructor changed in 2.4, and
873 we need to track it directly (we can't call it, as it messes up
876 we need to track it directly (we can't call it, as it messes up
874 readline and tab-completion inside our pdb would stop working).
877 readline and tab-completion inside our pdb would stop working).
875 After a bug report by R. Bernstein <rocky-AT-panix.com>.
878 After a bug report by R. Bernstein <rocky-AT-panix.com>.
876
879
877 2006-01-16 Ville Vainio <vivainio@gmail.com>
880 2006-01-16 Ville Vainio <vivainio@gmail.com>
878
881
879 * Ipython/magic.py: Reverted back to old %edit functionality
882 * Ipython/magic.py: Reverted back to old %edit functionality
880 that returns file contents on exit.
883 that returns file contents on exit.
881
884
882 * IPython/path.py: Added Jason Orendorff's "path" module to
885 * IPython/path.py: Added Jason Orendorff's "path" module to
883 IPython tree, http://www.jorendorff.com/articles/python/path/.
886 IPython tree, http://www.jorendorff.com/articles/python/path/.
884 You can get path objects conveniently through %sc, and !!, e.g.:
887 You can get path objects conveniently through %sc, and !!, e.g.:
885 sc files=ls
888 sc files=ls
886 for p in files.paths: # or files.p
889 for p in files.paths: # or files.p
887 print p,p.mtime
890 print p,p.mtime
888
891
889 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
892 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
890 now work again without considering the exclusion regexp -
893 now work again without considering the exclusion regexp -
891 hence, things like ',foo my/path' turn to 'foo("my/path")'
894 hence, things like ',foo my/path' turn to 'foo("my/path")'
892 instead of syntax error.
895 instead of syntax error.
893
896
894
897
895 2006-01-14 Ville Vainio <vivainio@gmail.com>
898 2006-01-14 Ville Vainio <vivainio@gmail.com>
896
899
897 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
900 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
898 ipapi decorators for python 2.4 users, options() provides access to rc
901 ipapi decorators for python 2.4 users, options() provides access to rc
899 data.
902 data.
900
903
901 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
904 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
902 as path separators (even on Linux ;-). Space character after
905 as path separators (even on Linux ;-). Space character after
903 backslash (as yielded by tab completer) is still space;
906 backslash (as yielded by tab completer) is still space;
904 "%cd long\ name" works as expected.
907 "%cd long\ name" works as expected.
905
908
906 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
909 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
907 as "chain of command", with priority. API stays the same,
910 as "chain of command", with priority. API stays the same,
908 TryNext exception raised by a hook function signals that
911 TryNext exception raised by a hook function signals that
909 current hook failed and next hook should try handling it, as
912 current hook failed and next hook should try handling it, as
910 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
913 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
911 requested configurable display hook, which is now implemented.
914 requested configurable display hook, which is now implemented.
912
915
913 2006-01-13 Ville Vainio <vivainio@gmail.com>
916 2006-01-13 Ville Vainio <vivainio@gmail.com>
914
917
915 * IPython/platutils*.py: platform specific utility functions,
918 * IPython/platutils*.py: platform specific utility functions,
916 so far only set_term_title is implemented (change terminal
919 so far only set_term_title is implemented (change terminal
917 label in windowing systems). %cd now changes the title to
920 label in windowing systems). %cd now changes the title to
918 current dir.
921 current dir.
919
922
920 * IPython/Release.py: Added myself to "authors" list,
923 * IPython/Release.py: Added myself to "authors" list,
921 had to create new files.
924 had to create new files.
922
925
923 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
926 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
924 shell escape; not a known bug but had potential to be one in the
927 shell escape; not a known bug but had potential to be one in the
925 future.
928 future.
926
929
927 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
930 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
928 extension API for IPython! See the module for usage example. Fix
931 extension API for IPython! See the module for usage example. Fix
929 OInspect for docstring-less magic functions.
932 OInspect for docstring-less magic functions.
930
933
931
934
932 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
935 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
933
936
934 * IPython/iplib.py (raw_input): temporarily deactivate all
937 * IPython/iplib.py (raw_input): temporarily deactivate all
935 attempts at allowing pasting of code with autoindent on. It
938 attempts at allowing pasting of code with autoindent on. It
936 introduced bugs (reported by Prabhu) and I can't seem to find a
939 introduced bugs (reported by Prabhu) and I can't seem to find a
937 robust combination which works in all cases. Will have to revisit
940 robust combination which works in all cases. Will have to revisit
938 later.
941 later.
939
942
940 * IPython/genutils.py: remove isspace() function. We've dropped
943 * IPython/genutils.py: remove isspace() function. We've dropped
941 2.2 compatibility, so it's OK to use the string method.
944 2.2 compatibility, so it's OK to use the string method.
942
945
943 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
946 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
944
947
945 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
948 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
946 matching what NOT to autocall on, to include all python binary
949 matching what NOT to autocall on, to include all python binary
947 operators (including things like 'and', 'or', 'is' and 'in').
950 operators (including things like 'and', 'or', 'is' and 'in').
948 Prompted by a bug report on 'foo & bar', but I realized we had
951 Prompted by a bug report on 'foo & bar', but I realized we had
949 many more potential bug cases with other operators. The regexp is
952 many more potential bug cases with other operators. The regexp is
950 self.re_exclude_auto, it's fairly commented.
953 self.re_exclude_auto, it's fairly commented.
951
954
952 2006-01-12 Ville Vainio <vivainio@gmail.com>
955 2006-01-12 Ville Vainio <vivainio@gmail.com>
953
956
954 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
957 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
955 Prettified and hardened string/backslash quoting with ipsystem(),
958 Prettified and hardened string/backslash quoting with ipsystem(),
956 ipalias() and ipmagic(). Now even \ characters are passed to
959 ipalias() and ipmagic(). Now even \ characters are passed to
957 %magics, !shell escapes and aliases exactly as they are in the
960 %magics, !shell escapes and aliases exactly as they are in the
958 ipython command line. Should improve backslash experience,
961 ipython command line. Should improve backslash experience,
959 particularly in Windows (path delimiter for some commands that
962 particularly in Windows (path delimiter for some commands that
960 won't understand '/'), but Unix benefits as well (regexps). %cd
963 won't understand '/'), but Unix benefits as well (regexps). %cd
961 magic still doesn't support backslash path delimiters, though. Also
964 magic still doesn't support backslash path delimiters, though. Also
962 deleted all pretense of supporting multiline command strings in
965 deleted all pretense of supporting multiline command strings in
963 !system or %magic commands. Thanks to Jerry McRae for suggestions.
966 !system or %magic commands. Thanks to Jerry McRae for suggestions.
964
967
965 * doc/build_doc_instructions.txt added. Documentation on how to
968 * doc/build_doc_instructions.txt added. Documentation on how to
966 use doc/update_manual.py, added yesterday. Both files contributed
969 use doc/update_manual.py, added yesterday. Both files contributed
967 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
970 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
968 doc/*.sh for deprecation at a later date.
971 doc/*.sh for deprecation at a later date.
969
972
970 * /ipython.py Added ipython.py to root directory for
973 * /ipython.py Added ipython.py to root directory for
971 zero-installation (tar xzvf ipython.tgz; cd ipython; python
974 zero-installation (tar xzvf ipython.tgz; cd ipython; python
972 ipython.py) and development convenience (no need to keep doing
975 ipython.py) and development convenience (no need to keep doing
973 "setup.py install" between changes).
976 "setup.py install" between changes).
974
977
975 * Made ! and !! shell escapes work (again) in multiline expressions:
978 * Made ! and !! shell escapes work (again) in multiline expressions:
976 if 1:
979 if 1:
977 !ls
980 !ls
978 !!ls
981 !!ls
979
982
980 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
983 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
981
984
982 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
985 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
983 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
986 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
984 module in case-insensitive installation. Was causing crashes
987 module in case-insensitive installation. Was causing crashes
985 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
988 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
986
989
987 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
990 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
988 <marienz-AT-gentoo.org>, closes
991 <marienz-AT-gentoo.org>, closes
989 http://www.scipy.net/roundup/ipython/issue51.
992 http://www.scipy.net/roundup/ipython/issue51.
990
993
991 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
994 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
992
995
993 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
996 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
994 problem of excessive CPU usage under *nix and keyboard lag under
997 problem of excessive CPU usage under *nix and keyboard lag under
995 win32.
998 win32.
996
999
997 2006-01-10 *** Released version 0.7.0
1000 2006-01-10 *** Released version 0.7.0
998
1001
999 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1002 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1000
1003
1001 * IPython/Release.py (revision): tag version number to 0.7.0,
1004 * IPython/Release.py (revision): tag version number to 0.7.0,
1002 ready for release.
1005 ready for release.
1003
1006
1004 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1007 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1005 it informs the user of the name of the temp. file used. This can
1008 it informs the user of the name of the temp. file used. This can
1006 help if you decide later to reuse that same file, so you know
1009 help if you decide later to reuse that same file, so you know
1007 where to copy the info from.
1010 where to copy the info from.
1008
1011
1009 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1012 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1010
1013
1011 * setup_bdist_egg.py: little script to build an egg. Added
1014 * setup_bdist_egg.py: little script to build an egg. Added
1012 support in the release tools as well.
1015 support in the release tools as well.
1013
1016
1014 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1017 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1015
1018
1016 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1019 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1017 version selection (new -wxversion command line and ipythonrc
1020 version selection (new -wxversion command line and ipythonrc
1018 parameter). Patch contributed by Arnd Baecker
1021 parameter). Patch contributed by Arnd Baecker
1019 <arnd.baecker-AT-web.de>.
1022 <arnd.baecker-AT-web.de>.
1020
1023
1021 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1024 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1022 embedded instances, for variables defined at the interactive
1025 embedded instances, for variables defined at the interactive
1023 prompt of the embedded ipython. Reported by Arnd.
1026 prompt of the embedded ipython. Reported by Arnd.
1024
1027
1025 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1028 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1026 it can be used as a (stateful) toggle, or with a direct parameter.
1029 it can be used as a (stateful) toggle, or with a direct parameter.
1027
1030
1028 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1031 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1029 could be triggered in certain cases and cause the traceback
1032 could be triggered in certain cases and cause the traceback
1030 printer not to work.
1033 printer not to work.
1031
1034
1032 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1035 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1033
1036
1034 * IPython/iplib.py (_should_recompile): Small fix, closes
1037 * IPython/iplib.py (_should_recompile): Small fix, closes
1035 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1038 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1036
1039
1037 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1040 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1038
1041
1039 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1042 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1040 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1043 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1041 Moad for help with tracking it down.
1044 Moad for help with tracking it down.
1042
1045
1043 * IPython/iplib.py (handle_auto): fix autocall handling for
1046 * IPython/iplib.py (handle_auto): fix autocall handling for
1044 objects which support BOTH __getitem__ and __call__ (so that f [x]
1047 objects which support BOTH __getitem__ and __call__ (so that f [x]
1045 is left alone, instead of becoming f([x]) automatically).
1048 is left alone, instead of becoming f([x]) automatically).
1046
1049
1047 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1050 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1048 Ville's patch.
1051 Ville's patch.
1049
1052
1050 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1053 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1051
1054
1052 * IPython/iplib.py (handle_auto): changed autocall semantics to
1055 * IPython/iplib.py (handle_auto): changed autocall semantics to
1053 include 'smart' mode, where the autocall transformation is NOT
1056 include 'smart' mode, where the autocall transformation is NOT
1054 applied if there are no arguments on the line. This allows you to
1057 applied if there are no arguments on the line. This allows you to
1055 just type 'foo' if foo is a callable to see its internal form,
1058 just type 'foo' if foo is a callable to see its internal form,
1056 instead of having it called with no arguments (typically a
1059 instead of having it called with no arguments (typically a
1057 mistake). The old 'full' autocall still exists: for that, you
1060 mistake). The old 'full' autocall still exists: for that, you
1058 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1061 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1059
1062
1060 * IPython/completer.py (Completer.attr_matches): add
1063 * IPython/completer.py (Completer.attr_matches): add
1061 tab-completion support for Enthoughts' traits. After a report by
1064 tab-completion support for Enthoughts' traits. After a report by
1062 Arnd and a patch by Prabhu.
1065 Arnd and a patch by Prabhu.
1063
1066
1064 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1067 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1065
1068
1066 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1069 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1067 Schmolck's patch to fix inspect.getinnerframes().
1070 Schmolck's patch to fix inspect.getinnerframes().
1068
1071
1069 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1072 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1070 for embedded instances, regarding handling of namespaces and items
1073 for embedded instances, regarding handling of namespaces and items
1071 added to the __builtin__ one. Multiple embedded instances and
1074 added to the __builtin__ one. Multiple embedded instances and
1072 recursive embeddings should work better now (though I'm not sure
1075 recursive embeddings should work better now (though I'm not sure
1073 I've got all the corner cases fixed, that code is a bit of a brain
1076 I've got all the corner cases fixed, that code is a bit of a brain
1074 twister).
1077 twister).
1075
1078
1076 * IPython/Magic.py (magic_edit): added support to edit in-memory
1079 * IPython/Magic.py (magic_edit): added support to edit in-memory
1077 macros (automatically creates the necessary temp files). %edit
1080 macros (automatically creates the necessary temp files). %edit
1078 also doesn't return the file contents anymore, it's just noise.
1081 also doesn't return the file contents anymore, it's just noise.
1079
1082
1080 * IPython/completer.py (Completer.attr_matches): revert change to
1083 * IPython/completer.py (Completer.attr_matches): revert change to
1081 complete only on attributes listed in __all__. I realized it
1084 complete only on attributes listed in __all__. I realized it
1082 cripples the tab-completion system as a tool for exploring the
1085 cripples the tab-completion system as a tool for exploring the
1083 internals of unknown libraries (it renders any non-__all__
1086 internals of unknown libraries (it renders any non-__all__
1084 attribute off-limits). I got bit by this when trying to see
1087 attribute off-limits). I got bit by this when trying to see
1085 something inside the dis module.
1088 something inside the dis module.
1086
1089
1087 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1090 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1088
1091
1089 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1092 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1090 namespace for users and extension writers to hold data in. This
1093 namespace for users and extension writers to hold data in. This
1091 follows the discussion in
1094 follows the discussion in
1092 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1095 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1093
1096
1094 * IPython/completer.py (IPCompleter.complete): small patch to help
1097 * IPython/completer.py (IPCompleter.complete): small patch to help
1095 tab-completion under Emacs, after a suggestion by John Barnard
1098 tab-completion under Emacs, after a suggestion by John Barnard
1096 <barnarj-AT-ccf.org>.
1099 <barnarj-AT-ccf.org>.
1097
1100
1098 * IPython/Magic.py (Magic.extract_input_slices): added support for
1101 * IPython/Magic.py (Magic.extract_input_slices): added support for
1099 the slice notation in magics to use N-M to represent numbers N...M
1102 the slice notation in magics to use N-M to represent numbers N...M
1100 (closed endpoints). This is used by %macro and %save.
1103 (closed endpoints). This is used by %macro and %save.
1101
1104
1102 * IPython/completer.py (Completer.attr_matches): for modules which
1105 * IPython/completer.py (Completer.attr_matches): for modules which
1103 define __all__, complete only on those. After a patch by Jeffrey
1106 define __all__, complete only on those. After a patch by Jeffrey
1104 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1107 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1105 speed up this routine.
1108 speed up this routine.
1106
1109
1107 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1110 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1108 don't know if this is the end of it, but the behavior now is
1111 don't know if this is the end of it, but the behavior now is
1109 certainly much more correct. Note that coupled with macros,
1112 certainly much more correct. Note that coupled with macros,
1110 slightly surprising (at first) behavior may occur: a macro will in
1113 slightly surprising (at first) behavior may occur: a macro will in
1111 general expand to multiple lines of input, so upon exiting, the
1114 general expand to multiple lines of input, so upon exiting, the
1112 in/out counters will both be bumped by the corresponding amount
1115 in/out counters will both be bumped by the corresponding amount
1113 (as if the macro's contents had been typed interactively). Typing
1116 (as if the macro's contents had been typed interactively). Typing
1114 %hist will reveal the intermediate (silently processed) lines.
1117 %hist will reveal the intermediate (silently processed) lines.
1115
1118
1116 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1119 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1117 pickle to fail (%run was overwriting __main__ and not restoring
1120 pickle to fail (%run was overwriting __main__ and not restoring
1118 it, but pickle relies on __main__ to operate).
1121 it, but pickle relies on __main__ to operate).
1119
1122
1120 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1123 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1121 using properties, but forgot to make the main InteractiveShell
1124 using properties, but forgot to make the main InteractiveShell
1122 class a new-style class. Properties fail silently, and
1125 class a new-style class. Properties fail silently, and
1123 mysteriously, with old-style class (getters work, but
1126 mysteriously, with old-style class (getters work, but
1124 setters don't do anything).
1127 setters don't do anything).
1125
1128
1126 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1129 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1127
1130
1128 * IPython/Magic.py (magic_history): fix history reporting bug (I
1131 * IPython/Magic.py (magic_history): fix history reporting bug (I
1129 know some nasties are still there, I just can't seem to find a
1132 know some nasties are still there, I just can't seem to find a
1130 reproducible test case to track them down; the input history is
1133 reproducible test case to track them down; the input history is
1131 falling out of sync...)
1134 falling out of sync...)
1132
1135
1133 * IPython/iplib.py (handle_shell_escape): fix bug where both
1136 * IPython/iplib.py (handle_shell_escape): fix bug where both
1134 aliases and system accesses where broken for indented code (such
1137 aliases and system accesses where broken for indented code (such
1135 as loops).
1138 as loops).
1136
1139
1137 * IPython/genutils.py (shell): fix small but critical bug for
1140 * IPython/genutils.py (shell): fix small but critical bug for
1138 win32 system access.
1141 win32 system access.
1139
1142
1140 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1143 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1141
1144
1142 * IPython/iplib.py (showtraceback): remove use of the
1145 * IPython/iplib.py (showtraceback): remove use of the
1143 sys.last_{type/value/traceback} structures, which are non
1146 sys.last_{type/value/traceback} structures, which are non
1144 thread-safe.
1147 thread-safe.
1145 (_prefilter): change control flow to ensure that we NEVER
1148 (_prefilter): change control flow to ensure that we NEVER
1146 introspect objects when autocall is off. This will guarantee that
1149 introspect objects when autocall is off. This will guarantee that
1147 having an input line of the form 'x.y', where access to attribute
1150 having an input line of the form 'x.y', where access to attribute
1148 'y' has side effects, doesn't trigger the side effect TWICE. It
1151 'y' has side effects, doesn't trigger the side effect TWICE. It
1149 is important to note that, with autocall on, these side effects
1152 is important to note that, with autocall on, these side effects
1150 can still happen.
1153 can still happen.
1151 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1154 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1152 trio. IPython offers these three kinds of special calls which are
1155 trio. IPython offers these three kinds of special calls which are
1153 not python code, and it's a good thing to have their call method
1156 not python code, and it's a good thing to have their call method
1154 be accessible as pure python functions (not just special syntax at
1157 be accessible as pure python functions (not just special syntax at
1155 the command line). It gives us a better internal implementation
1158 the command line). It gives us a better internal implementation
1156 structure, as well as exposing these for user scripting more
1159 structure, as well as exposing these for user scripting more
1157 cleanly.
1160 cleanly.
1158
1161
1159 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1162 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1160 file. Now that they'll be more likely to be used with the
1163 file. Now that they'll be more likely to be used with the
1161 persistance system (%store), I want to make sure their module path
1164 persistance system (%store), I want to make sure their module path
1162 doesn't change in the future, so that we don't break things for
1165 doesn't change in the future, so that we don't break things for
1163 users' persisted data.
1166 users' persisted data.
1164
1167
1165 * IPython/iplib.py (autoindent_update): move indentation
1168 * IPython/iplib.py (autoindent_update): move indentation
1166 management into the _text_ processing loop, not the keyboard
1169 management into the _text_ processing loop, not the keyboard
1167 interactive one. This is necessary to correctly process non-typed
1170 interactive one. This is necessary to correctly process non-typed
1168 multiline input (such as macros).
1171 multiline input (such as macros).
1169
1172
1170 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1173 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1171 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1174 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1172 which was producing problems in the resulting manual.
1175 which was producing problems in the resulting manual.
1173 (magic_whos): improve reporting of instances (show their class,
1176 (magic_whos): improve reporting of instances (show their class,
1174 instead of simply printing 'instance' which isn't terribly
1177 instead of simply printing 'instance' which isn't terribly
1175 informative).
1178 informative).
1176
1179
1177 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1180 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1178 (minor mods) to support network shares under win32.
1181 (minor mods) to support network shares under win32.
1179
1182
1180 * IPython/winconsole.py (get_console_size): add new winconsole
1183 * IPython/winconsole.py (get_console_size): add new winconsole
1181 module and fixes to page_dumb() to improve its behavior under
1184 module and fixes to page_dumb() to improve its behavior under
1182 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1185 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1183
1186
1184 * IPython/Magic.py (Macro): simplified Macro class to just
1187 * IPython/Magic.py (Macro): simplified Macro class to just
1185 subclass list. We've had only 2.2 compatibility for a very long
1188 subclass list. We've had only 2.2 compatibility for a very long
1186 time, yet I was still avoiding subclassing the builtin types. No
1189 time, yet I was still avoiding subclassing the builtin types. No
1187 more (I'm also starting to use properties, though I won't shift to
1190 more (I'm also starting to use properties, though I won't shift to
1188 2.3-specific features quite yet).
1191 2.3-specific features quite yet).
1189 (magic_store): added Ville's patch for lightweight variable
1192 (magic_store): added Ville's patch for lightweight variable
1190 persistence, after a request on the user list by Matt Wilkie
1193 persistence, after a request on the user list by Matt Wilkie
1191 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1194 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1192 details.
1195 details.
1193
1196
1194 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1197 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1195 changed the default logfile name from 'ipython.log' to
1198 changed the default logfile name from 'ipython.log' to
1196 'ipython_log.py'. These logs are real python files, and now that
1199 'ipython_log.py'. These logs are real python files, and now that
1197 we have much better multiline support, people are more likely to
1200 we have much better multiline support, people are more likely to
1198 want to use them as such. Might as well name them correctly.
1201 want to use them as such. Might as well name them correctly.
1199
1202
1200 * IPython/Magic.py: substantial cleanup. While we can't stop
1203 * IPython/Magic.py: substantial cleanup. While we can't stop
1201 using magics as mixins, due to the existing customizations 'out
1204 using magics as mixins, due to the existing customizations 'out
1202 there' which rely on the mixin naming conventions, at least I
1205 there' which rely on the mixin naming conventions, at least I
1203 cleaned out all cross-class name usage. So once we are OK with
1206 cleaned out all cross-class name usage. So once we are OK with
1204 breaking compatibility, the two systems can be separated.
1207 breaking compatibility, the two systems can be separated.
1205
1208
1206 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1209 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1207 anymore, and the class is a fair bit less hideous as well. New
1210 anymore, and the class is a fair bit less hideous as well. New
1208 features were also introduced: timestamping of input, and logging
1211 features were also introduced: timestamping of input, and logging
1209 of output results. These are user-visible with the -t and -o
1212 of output results. These are user-visible with the -t and -o
1210 options to %logstart. Closes
1213 options to %logstart. Closes
1211 http://www.scipy.net/roundup/ipython/issue11 and a request by
1214 http://www.scipy.net/roundup/ipython/issue11 and a request by
1212 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1215 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1213
1216
1214 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1217 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1215
1218
1216 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1219 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1217 better handle backslashes in paths. See the thread 'More Windows
1220 better handle backslashes in paths. See the thread 'More Windows
1218 questions part 2 - \/ characters revisited' on the iypthon user
1221 questions part 2 - \/ characters revisited' on the iypthon user
1219 list:
1222 list:
1220 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1223 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1221
1224
1222 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1225 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1223
1226
1224 (InteractiveShell.__init__): change threaded shells to not use the
1227 (InteractiveShell.__init__): change threaded shells to not use the
1225 ipython crash handler. This was causing more problems than not,
1228 ipython crash handler. This was causing more problems than not,
1226 as exceptions in the main thread (GUI code, typically) would
1229 as exceptions in the main thread (GUI code, typically) would
1227 always show up as a 'crash', when they really weren't.
1230 always show up as a 'crash', when they really weren't.
1228
1231
1229 The colors and exception mode commands (%colors/%xmode) have been
1232 The colors and exception mode commands (%colors/%xmode) have been
1230 synchronized to also take this into account, so users can get
1233 synchronized to also take this into account, so users can get
1231 verbose exceptions for their threaded code as well. I also added
1234 verbose exceptions for their threaded code as well. I also added
1232 support for activating pdb inside this exception handler as well,
1235 support for activating pdb inside this exception handler as well,
1233 so now GUI authors can use IPython's enhanced pdb at runtime.
1236 so now GUI authors can use IPython's enhanced pdb at runtime.
1234
1237
1235 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1238 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1236 true by default, and add it to the shipped ipythonrc file. Since
1239 true by default, and add it to the shipped ipythonrc file. Since
1237 this asks the user before proceeding, I think it's OK to make it
1240 this asks the user before proceeding, I think it's OK to make it
1238 true by default.
1241 true by default.
1239
1242
1240 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1243 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1241 of the previous special-casing of input in the eval loop. I think
1244 of the previous special-casing of input in the eval loop. I think
1242 this is cleaner, as they really are commands and shouldn't have
1245 this is cleaner, as they really are commands and shouldn't have
1243 a special role in the middle of the core code.
1246 a special role in the middle of the core code.
1244
1247
1245 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1248 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1246
1249
1247 * IPython/iplib.py (edit_syntax_error): added support for
1250 * IPython/iplib.py (edit_syntax_error): added support for
1248 automatically reopening the editor if the file had a syntax error
1251 automatically reopening the editor if the file had a syntax error
1249 in it. Thanks to scottt who provided the patch at:
1252 in it. Thanks to scottt who provided the patch at:
1250 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1253 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1251 version committed).
1254 version committed).
1252
1255
1253 * IPython/iplib.py (handle_normal): add suport for multi-line
1256 * IPython/iplib.py (handle_normal): add suport for multi-line
1254 input with emtpy lines. This fixes
1257 input with emtpy lines. This fixes
1255 http://www.scipy.net/roundup/ipython/issue43 and a similar
1258 http://www.scipy.net/roundup/ipython/issue43 and a similar
1256 discussion on the user list.
1259 discussion on the user list.
1257
1260
1258 WARNING: a behavior change is necessarily introduced to support
1261 WARNING: a behavior change is necessarily introduced to support
1259 blank lines: now a single blank line with whitespace does NOT
1262 blank lines: now a single blank line with whitespace does NOT
1260 break the input loop, which means that when autoindent is on, by
1263 break the input loop, which means that when autoindent is on, by
1261 default hitting return on the next (indented) line does NOT exit.
1264 default hitting return on the next (indented) line does NOT exit.
1262
1265
1263 Instead, to exit a multiline input you can either have:
1266 Instead, to exit a multiline input you can either have:
1264
1267
1265 - TWO whitespace lines (just hit return again), or
1268 - TWO whitespace lines (just hit return again), or
1266 - a single whitespace line of a different length than provided
1269 - a single whitespace line of a different length than provided
1267 by the autoindent (add or remove a space).
1270 by the autoindent (add or remove a space).
1268
1271
1269 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1272 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1270 module to better organize all readline-related functionality.
1273 module to better organize all readline-related functionality.
1271 I've deleted FlexCompleter and put all completion clases here.
1274 I've deleted FlexCompleter and put all completion clases here.
1272
1275
1273 * IPython/iplib.py (raw_input): improve indentation management.
1276 * IPython/iplib.py (raw_input): improve indentation management.
1274 It is now possible to paste indented code with autoindent on, and
1277 It is now possible to paste indented code with autoindent on, and
1275 the code is interpreted correctly (though it still looks bad on
1278 the code is interpreted correctly (though it still looks bad on
1276 screen, due to the line-oriented nature of ipython).
1279 screen, due to the line-oriented nature of ipython).
1277 (MagicCompleter.complete): change behavior so that a TAB key on an
1280 (MagicCompleter.complete): change behavior so that a TAB key on an
1278 otherwise empty line actually inserts a tab, instead of completing
1281 otherwise empty line actually inserts a tab, instead of completing
1279 on the entire global namespace. This makes it easier to use the
1282 on the entire global namespace. This makes it easier to use the
1280 TAB key for indentation. After a request by Hans Meine
1283 TAB key for indentation. After a request by Hans Meine
1281 <hans_meine-AT-gmx.net>
1284 <hans_meine-AT-gmx.net>
1282 (_prefilter): add support so that typing plain 'exit' or 'quit'
1285 (_prefilter): add support so that typing plain 'exit' or 'quit'
1283 does a sensible thing. Originally I tried to deviate as little as
1286 does a sensible thing. Originally I tried to deviate as little as
1284 possible from the default python behavior, but even that one may
1287 possible from the default python behavior, but even that one may
1285 change in this direction (thread on python-dev to that effect).
1288 change in this direction (thread on python-dev to that effect).
1286 Regardless, ipython should do the right thing even if CPython's
1289 Regardless, ipython should do the right thing even if CPython's
1287 '>>>' prompt doesn't.
1290 '>>>' prompt doesn't.
1288 (InteractiveShell): removed subclassing code.InteractiveConsole
1291 (InteractiveShell): removed subclassing code.InteractiveConsole
1289 class. By now we'd overridden just about all of its methods: I've
1292 class. By now we'd overridden just about all of its methods: I've
1290 copied the remaining two over, and now ipython is a standalone
1293 copied the remaining two over, and now ipython is a standalone
1291 class. This will provide a clearer picture for the chainsaw
1294 class. This will provide a clearer picture for the chainsaw
1292 branch refactoring.
1295 branch refactoring.
1293
1296
1294 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1297 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1295
1298
1296 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1299 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1297 failures for objects which break when dir() is called on them.
1300 failures for objects which break when dir() is called on them.
1298
1301
1299 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1302 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1300 distinct local and global namespaces in the completer API. This
1303 distinct local and global namespaces in the completer API. This
1301 change allows us to properly handle completion with distinct
1304 change allows us to properly handle completion with distinct
1302 scopes, including in embedded instances (this had never really
1305 scopes, including in embedded instances (this had never really
1303 worked correctly).
1306 worked correctly).
1304
1307
1305 Note: this introduces a change in the constructor for
1308 Note: this introduces a change in the constructor for
1306 MagicCompleter, as a new global_namespace parameter is now the
1309 MagicCompleter, as a new global_namespace parameter is now the
1307 second argument (the others were bumped one position).
1310 second argument (the others were bumped one position).
1308
1311
1309 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1312 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1310
1313
1311 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1314 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1312 embedded instances (which can be done now thanks to Vivian's
1315 embedded instances (which can be done now thanks to Vivian's
1313 frame-handling fixes for pdb).
1316 frame-handling fixes for pdb).
1314 (InteractiveShell.__init__): Fix namespace handling problem in
1317 (InteractiveShell.__init__): Fix namespace handling problem in
1315 embedded instances. We were overwriting __main__ unconditionally,
1318 embedded instances. We were overwriting __main__ unconditionally,
1316 and this should only be done for 'full' (non-embedded) IPython;
1319 and this should only be done for 'full' (non-embedded) IPython;
1317 embedded instances must respect the caller's __main__. Thanks to
1320 embedded instances must respect the caller's __main__. Thanks to
1318 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1321 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1319
1322
1320 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1323 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1321
1324
1322 * setup.py: added download_url to setup(). This registers the
1325 * setup.py: added download_url to setup(). This registers the
1323 download address at PyPI, which is not only useful to humans
1326 download address at PyPI, which is not only useful to humans
1324 browsing the site, but is also picked up by setuptools (the Eggs
1327 browsing the site, but is also picked up by setuptools (the Eggs
1325 machinery). Thanks to Ville and R. Kern for the info/discussion
1328 machinery). Thanks to Ville and R. Kern for the info/discussion
1326 on this.
1329 on this.
1327
1330
1328 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1331 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1329
1332
1330 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1333 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1331 This brings a lot of nice functionality to the pdb mode, which now
1334 This brings a lot of nice functionality to the pdb mode, which now
1332 has tab-completion, syntax highlighting, and better stack handling
1335 has tab-completion, syntax highlighting, and better stack handling
1333 than before. Many thanks to Vivian De Smedt
1336 than before. Many thanks to Vivian De Smedt
1334 <vivian-AT-vdesmedt.com> for the original patches.
1337 <vivian-AT-vdesmedt.com> for the original patches.
1335
1338
1336 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1337
1340
1338 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1341 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1339 sequence to consistently accept the banner argument. The
1342 sequence to consistently accept the banner argument. The
1340 inconsistency was tripping SAGE, thanks to Gary Zablackis
1343 inconsistency was tripping SAGE, thanks to Gary Zablackis
1341 <gzabl-AT-yahoo.com> for the report.
1344 <gzabl-AT-yahoo.com> for the report.
1342
1345
1343 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1346 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1344
1347
1345 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1348 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1346 Fix bug where a naked 'alias' call in the ipythonrc file would
1349 Fix bug where a naked 'alias' call in the ipythonrc file would
1347 cause a crash. Bug reported by Jorgen Stenarson.
1350 cause a crash. Bug reported by Jorgen Stenarson.
1348
1351
1349 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1352 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1350
1353
1351 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1354 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1352 startup time.
1355 startup time.
1353
1356
1354 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1357 * IPython/iplib.py (runcode): my globals 'fix' for embedded
1355 instances had introduced a bug with globals in normal code. Now
1358 instances had introduced a bug with globals in normal code. Now
1356 it's working in all cases.
1359 it's working in all cases.
1357
1360
1358 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1361 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
1359 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1362 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
1360 has been introduced to set the default case sensitivity of the
1363 has been introduced to set the default case sensitivity of the
1361 searches. Users can still select either mode at runtime on a
1364 searches. Users can still select either mode at runtime on a
1362 per-search basis.
1365 per-search basis.
1363
1366
1364 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1367 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
1365
1368
1366 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1369 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
1367 attributes in wildcard searches for subclasses. Modified version
1370 attributes in wildcard searches for subclasses. Modified version
1368 of a patch by Jorgen.
1371 of a patch by Jorgen.
1369
1372
1370 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1373 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
1371
1374
1372 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1375 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
1373 embedded instances. I added a user_global_ns attribute to the
1376 embedded instances. I added a user_global_ns attribute to the
1374 InteractiveShell class to handle this.
1377 InteractiveShell class to handle this.
1375
1378
1376 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1379 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
1377
1380
1378 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1381 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
1379 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1382 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
1380 (reported under win32, but may happen also in other platforms).
1383 (reported under win32, but may happen also in other platforms).
1381 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1384 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
1382
1385
1383 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1386 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1384
1387
1385 * IPython/Magic.py (magic_psearch): new support for wildcard
1388 * IPython/Magic.py (magic_psearch): new support for wildcard
1386 patterns. Now, typing ?a*b will list all names which begin with a
1389 patterns. Now, typing ?a*b will list all names which begin with a
1387 and end in b, for example. The %psearch magic has full
1390 and end in b, for example. The %psearch magic has full
1388 docstrings. Many thanks to JΓΆrgen Stenarson
1391 docstrings. Many thanks to JΓΆrgen Stenarson
1389 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1392 <jorgen.stenarson-AT-bostream.nu>, author of the patches
1390 implementing this functionality.
1393 implementing this functionality.
1391
1394
1392 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1395 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1393
1396
1394 * Manual: fixed long-standing annoyance of double-dashes (as in
1397 * Manual: fixed long-standing annoyance of double-dashes (as in
1395 --prefix=~, for example) being stripped in the HTML version. This
1398 --prefix=~, for example) being stripped in the HTML version. This
1396 is a latex2html bug, but a workaround was provided. Many thanks
1399 is a latex2html bug, but a workaround was provided. Many thanks
1397 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1400 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
1398 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1401 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
1399 rolling. This seemingly small issue had tripped a number of users
1402 rolling. This seemingly small issue had tripped a number of users
1400 when first installing, so I'm glad to see it gone.
1403 when first installing, so I'm glad to see it gone.
1401
1404
1402 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1405 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1403
1406
1404 * IPython/Extensions/numeric_formats.py: fix missing import,
1407 * IPython/Extensions/numeric_formats.py: fix missing import,
1405 reported by Stephen Walton.
1408 reported by Stephen Walton.
1406
1409
1407 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1410 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
1408
1411
1409 * IPython/demo.py: finish demo module, fully documented now.
1412 * IPython/demo.py: finish demo module, fully documented now.
1410
1413
1411 * IPython/genutils.py (file_read): simple little utility to read a
1414 * IPython/genutils.py (file_read): simple little utility to read a
1412 file and ensure it's closed afterwards.
1415 file and ensure it's closed afterwards.
1413
1416
1414 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1417 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
1415
1418
1416 * IPython/demo.py (Demo.__init__): added support for individually
1419 * IPython/demo.py (Demo.__init__): added support for individually
1417 tagging blocks for automatic execution.
1420 tagging blocks for automatic execution.
1418
1421
1419 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1422 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
1420 syntax-highlighted python sources, requested by John.
1423 syntax-highlighted python sources, requested by John.
1421
1424
1422 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1425 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
1423
1426
1424 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1427 * IPython/demo.py (Demo.again): fix bug where again() blocks after
1425 finishing.
1428 finishing.
1426
1429
1427 * IPython/genutils.py (shlex_split): moved from Magic to here,
1430 * IPython/genutils.py (shlex_split): moved from Magic to here,
1428 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1431 where all 2.2 compatibility stuff lives. I needed it for demo.py.
1429
1432
1430 * IPython/demo.py (Demo.__init__): added support for silent
1433 * IPython/demo.py (Demo.__init__): added support for silent
1431 blocks, improved marks as regexps, docstrings written.
1434 blocks, improved marks as regexps, docstrings written.
1432 (Demo.__init__): better docstring, added support for sys.argv.
1435 (Demo.__init__): better docstring, added support for sys.argv.
1433
1436
1434 * IPython/genutils.py (marquee): little utility used by the demo
1437 * IPython/genutils.py (marquee): little utility used by the demo
1435 code, handy in general.
1438 code, handy in general.
1436
1439
1437 * IPython/demo.py (Demo.__init__): new class for interactive
1440 * IPython/demo.py (Demo.__init__): new class for interactive
1438 demos. Not documented yet, I just wrote it in a hurry for
1441 demos. Not documented yet, I just wrote it in a hurry for
1439 scipy'05. Will docstring later.
1442 scipy'05. Will docstring later.
1440
1443
1441 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1444 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
1442
1445
1443 * IPython/Shell.py (sigint_handler): Drastic simplification which
1446 * IPython/Shell.py (sigint_handler): Drastic simplification which
1444 also seems to make Ctrl-C work correctly across threads! This is
1447 also seems to make Ctrl-C work correctly across threads! This is
1445 so simple, that I can't beleive I'd missed it before. Needs more
1448 so simple, that I can't beleive I'd missed it before. Needs more
1446 testing, though.
1449 testing, though.
1447 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1450 (KBINT): Never mind, revert changes. I'm sure I'd tried something
1448 like this before...
1451 like this before...
1449
1452
1450 * IPython/genutils.py (get_home_dir): add protection against
1453 * IPython/genutils.py (get_home_dir): add protection against
1451 non-dirs in win32 registry.
1454 non-dirs in win32 registry.
1452
1455
1453 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1456 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
1454 bug where dict was mutated while iterating (pysh crash).
1457 bug where dict was mutated while iterating (pysh crash).
1455
1458
1456 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1459 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
1457
1460
1458 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1461 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
1459 spurious newlines added by this routine. After a report by
1462 spurious newlines added by this routine. After a report by
1460 F. Mantegazza.
1463 F. Mantegazza.
1461
1464
1462 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1465 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
1463
1466
1464 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1467 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
1465 calls. These were a leftover from the GTK 1.x days, and can cause
1468 calls. These were a leftover from the GTK 1.x days, and can cause
1466 problems in certain cases (after a report by John Hunter).
1469 problems in certain cases (after a report by John Hunter).
1467
1470
1468 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1471 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
1469 os.getcwd() fails at init time. Thanks to patch from David Remahl
1472 os.getcwd() fails at init time. Thanks to patch from David Remahl
1470 <chmod007-AT-mac.com>.
1473 <chmod007-AT-mac.com>.
1471 (InteractiveShell.__init__): prevent certain special magics from
1474 (InteractiveShell.__init__): prevent certain special magics from
1472 being shadowed by aliases. Closes
1475 being shadowed by aliases. Closes
1473 http://www.scipy.net/roundup/ipython/issue41.
1476 http://www.scipy.net/roundup/ipython/issue41.
1474
1477
1475 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1478 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
1476
1479
1477 * IPython/iplib.py (InteractiveShell.complete): Added new
1480 * IPython/iplib.py (InteractiveShell.complete): Added new
1478 top-level completion method to expose the completion mechanism
1481 top-level completion method to expose the completion mechanism
1479 beyond readline-based environments.
1482 beyond readline-based environments.
1480
1483
1481 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1484 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
1482
1485
1483 * tools/ipsvnc (svnversion): fix svnversion capture.
1486 * tools/ipsvnc (svnversion): fix svnversion capture.
1484
1487
1485 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1488 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
1486 attribute to self, which was missing. Before, it was set by a
1489 attribute to self, which was missing. Before, it was set by a
1487 routine which in certain cases wasn't being called, so the
1490 routine which in certain cases wasn't being called, so the
1488 instance could end up missing the attribute. This caused a crash.
1491 instance could end up missing the attribute. This caused a crash.
1489 Closes http://www.scipy.net/roundup/ipython/issue40.
1492 Closes http://www.scipy.net/roundup/ipython/issue40.
1490
1493
1491 2005-08-16 Fernando Perez <fperez@colorado.edu>
1494 2005-08-16 Fernando Perez <fperez@colorado.edu>
1492
1495
1493 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1496 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
1494 contains non-string attribute. Closes
1497 contains non-string attribute. Closes
1495 http://www.scipy.net/roundup/ipython/issue38.
1498 http://www.scipy.net/roundup/ipython/issue38.
1496
1499
1497 2005-08-14 Fernando Perez <fperez@colorado.edu>
1500 2005-08-14 Fernando Perez <fperez@colorado.edu>
1498
1501
1499 * tools/ipsvnc: Minor improvements, to add changeset info.
1502 * tools/ipsvnc: Minor improvements, to add changeset info.
1500
1503
1501 2005-08-12 Fernando Perez <fperez@colorado.edu>
1504 2005-08-12 Fernando Perez <fperez@colorado.edu>
1502
1505
1503 * IPython/iplib.py (runsource): remove self.code_to_run_src
1506 * IPython/iplib.py (runsource): remove self.code_to_run_src
1504 attribute. I realized this is nothing more than
1507 attribute. I realized this is nothing more than
1505 '\n'.join(self.buffer), and having the same data in two different
1508 '\n'.join(self.buffer), and having the same data in two different
1506 places is just asking for synchronization bugs. This may impact
1509 places is just asking for synchronization bugs. This may impact
1507 people who have custom exception handlers, so I need to warn
1510 people who have custom exception handlers, so I need to warn
1508 ipython-dev about it (F. Mantegazza may use them).
1511 ipython-dev about it (F. Mantegazza may use them).
1509
1512
1510 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1513 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
1511
1514
1512 * IPython/genutils.py: fix 2.2 compatibility (generators)
1515 * IPython/genutils.py: fix 2.2 compatibility (generators)
1513
1516
1514 2005-07-18 Fernando Perez <fperez@colorado.edu>
1517 2005-07-18 Fernando Perez <fperez@colorado.edu>
1515
1518
1516 * IPython/genutils.py (get_home_dir): fix to help users with
1519 * IPython/genutils.py (get_home_dir): fix to help users with
1517 invalid $HOME under win32.
1520 invalid $HOME under win32.
1518
1521
1519 2005-07-17 Fernando Perez <fperez@colorado.edu>
1522 2005-07-17 Fernando Perez <fperez@colorado.edu>
1520
1523
1521 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1524 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
1522 some old hacks and clean up a bit other routines; code should be
1525 some old hacks and clean up a bit other routines; code should be
1523 simpler and a bit faster.
1526 simpler and a bit faster.
1524
1527
1525 * IPython/iplib.py (interact): removed some last-resort attempts
1528 * IPython/iplib.py (interact): removed some last-resort attempts
1526 to survive broken stdout/stderr. That code was only making it
1529 to survive broken stdout/stderr. That code was only making it
1527 harder to abstract out the i/o (necessary for gui integration),
1530 harder to abstract out the i/o (necessary for gui integration),
1528 and the crashes it could prevent were extremely rare in practice
1531 and the crashes it could prevent were extremely rare in practice
1529 (besides being fully user-induced in a pretty violent manner).
1532 (besides being fully user-induced in a pretty violent manner).
1530
1533
1531 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1534 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
1532 Nothing major yet, but the code is simpler to read; this should
1535 Nothing major yet, but the code is simpler to read; this should
1533 make it easier to do more serious modifications in the future.
1536 make it easier to do more serious modifications in the future.
1534
1537
1535 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1538 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
1536 which broke in .15 (thanks to a report by Ville).
1539 which broke in .15 (thanks to a report by Ville).
1537
1540
1538 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1541 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
1539 be quite correct, I know next to nothing about unicode). This
1542 be quite correct, I know next to nothing about unicode). This
1540 will allow unicode strings to be used in prompts, amongst other
1543 will allow unicode strings to be used in prompts, amongst other
1541 cases. It also will prevent ipython from crashing when unicode
1544 cases. It also will prevent ipython from crashing when unicode
1542 shows up unexpectedly in many places. If ascii encoding fails, we
1545 shows up unexpectedly in many places. If ascii encoding fails, we
1543 assume utf_8. Currently the encoding is not a user-visible
1546 assume utf_8. Currently the encoding is not a user-visible
1544 setting, though it could be made so if there is demand for it.
1547 setting, though it could be made so if there is demand for it.
1545
1548
1546 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1549 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
1547
1550
1548 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1551 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
1549
1552
1550 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1553 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
1551
1554
1552 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1555 * IPython/genutils.py: Add 2.2 compatibility here, so all other
1553 code can work transparently for 2.2/2.3.
1556 code can work transparently for 2.2/2.3.
1554
1557
1555 2005-07-16 Fernando Perez <fperez@colorado.edu>
1558 2005-07-16 Fernando Perez <fperez@colorado.edu>
1556
1559
1557 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1560 * IPython/ultraTB.py (ExceptionColors): Make a global variable
1558 out of the color scheme table used for coloring exception
1561 out of the color scheme table used for coloring exception
1559 tracebacks. This allows user code to add new schemes at runtime.
1562 tracebacks. This allows user code to add new schemes at runtime.
1560 This is a minimally modified version of the patch at
1563 This is a minimally modified version of the patch at
1561 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1564 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
1562 for the contribution.
1565 for the contribution.
1563
1566
1564 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1567 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
1565 slightly modified version of the patch in
1568 slightly modified version of the patch in
1566 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1569 http://www.scipy.net/roundup/ipython/issue34, which also allows me
1567 to remove the previous try/except solution (which was costlier).
1570 to remove the previous try/except solution (which was costlier).
1568 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1571 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
1569
1572
1570 2005-06-08 Fernando Perez <fperez@colorado.edu>
1573 2005-06-08 Fernando Perez <fperez@colorado.edu>
1571
1574
1572 * IPython/iplib.py (write/write_err): Add methods to abstract all
1575 * IPython/iplib.py (write/write_err): Add methods to abstract all
1573 I/O a bit more.
1576 I/O a bit more.
1574
1577
1575 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1578 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
1576 warning, reported by Aric Hagberg, fix by JD Hunter.
1579 warning, reported by Aric Hagberg, fix by JD Hunter.
1577
1580
1578 2005-06-02 *** Released version 0.6.15
1581 2005-06-02 *** Released version 0.6.15
1579
1582
1580 2005-06-01 Fernando Perez <fperez@colorado.edu>
1583 2005-06-01 Fernando Perez <fperez@colorado.edu>
1581
1584
1582 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1585 * IPython/iplib.py (MagicCompleter.file_matches): Fix
1583 tab-completion of filenames within open-quoted strings. Note that
1586 tab-completion of filenames within open-quoted strings. Note that
1584 this requires that in ~/.ipython/ipythonrc, users change the
1587 this requires that in ~/.ipython/ipythonrc, users change the
1585 readline delimiters configuration to read:
1588 readline delimiters configuration to read:
1586
1589
1587 readline_remove_delims -/~
1590 readline_remove_delims -/~
1588
1591
1589
1592
1590 2005-05-31 *** Released version 0.6.14
1593 2005-05-31 *** Released version 0.6.14
1591
1594
1592 2005-05-29 Fernando Perez <fperez@colorado.edu>
1595 2005-05-29 Fernando Perez <fperez@colorado.edu>
1593
1596
1594 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1597 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
1595 with files not on the filesystem. Reported by Eliyahu Sandler
1598 with files not on the filesystem. Reported by Eliyahu Sandler
1596 <eli@gondolin.net>
1599 <eli@gondolin.net>
1597
1600
1598 2005-05-22 Fernando Perez <fperez@colorado.edu>
1601 2005-05-22 Fernando Perez <fperez@colorado.edu>
1599
1602
1600 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1603 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
1601 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1604 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
1602
1605
1603 2005-05-19 Fernando Perez <fperez@colorado.edu>
1606 2005-05-19 Fernando Perez <fperez@colorado.edu>
1604
1607
1605 * IPython/iplib.py (safe_execfile): close a file which could be
1608 * IPython/iplib.py (safe_execfile): close a file which could be
1606 left open (causing problems in win32, which locks open files).
1609 left open (causing problems in win32, which locks open files).
1607 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1610 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
1608
1611
1609 2005-05-18 Fernando Perez <fperez@colorado.edu>
1612 2005-05-18 Fernando Perez <fperez@colorado.edu>
1610
1613
1611 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1614 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
1612 keyword arguments correctly to safe_execfile().
1615 keyword arguments correctly to safe_execfile().
1613
1616
1614 2005-05-13 Fernando Perez <fperez@colorado.edu>
1617 2005-05-13 Fernando Perez <fperez@colorado.edu>
1615
1618
1616 * ipython.1: Added info about Qt to manpage, and threads warning
1619 * ipython.1: Added info about Qt to manpage, and threads warning
1617 to usage page (invoked with --help).
1620 to usage page (invoked with --help).
1618
1621
1619 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1622 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
1620 new matcher (it goes at the end of the priority list) to do
1623 new matcher (it goes at the end of the priority list) to do
1621 tab-completion on named function arguments. Submitted by George
1624 tab-completion on named function arguments. Submitted by George
1622 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1625 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
1623 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1626 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
1624 for more details.
1627 for more details.
1625
1628
1626 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1629 * IPython/Magic.py (magic_run): Added new -e flag to ignore
1627 SystemExit exceptions in the script being run. Thanks to a report
1630 SystemExit exceptions in the script being run. Thanks to a report
1628 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1631 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
1629 producing very annoying behavior when running unit tests.
1632 producing very annoying behavior when running unit tests.
1630
1633
1631 2005-05-12 Fernando Perez <fperez@colorado.edu>
1634 2005-05-12 Fernando Perez <fperez@colorado.edu>
1632
1635
1633 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1636 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
1634 which I'd broken (again) due to a changed regexp. In the process,
1637 which I'd broken (again) due to a changed regexp. In the process,
1635 added ';' as an escape to auto-quote the whole line without
1638 added ';' as an escape to auto-quote the whole line without
1636 splitting its arguments. Thanks to a report by Jerry McRae
1639 splitting its arguments. Thanks to a report by Jerry McRae
1637 <qrs0xyc02-AT-sneakemail.com>.
1640 <qrs0xyc02-AT-sneakemail.com>.
1638
1641
1639 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1642 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
1640 possible crashes caused by a TokenError. Reported by Ed Schofield
1643 possible crashes caused by a TokenError. Reported by Ed Schofield
1641 <schofield-AT-ftw.at>.
1644 <schofield-AT-ftw.at>.
1642
1645
1643 2005-05-06 Fernando Perez <fperez@colorado.edu>
1646 2005-05-06 Fernando Perez <fperez@colorado.edu>
1644
1647
1645 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1648 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
1646
1649
1647 2005-04-29 Fernando Perez <fperez@colorado.edu>
1650 2005-04-29 Fernando Perez <fperez@colorado.edu>
1648
1651
1649 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1652 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
1650 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1653 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
1651 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1654 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
1652 which provides support for Qt interactive usage (similar to the
1655 which provides support for Qt interactive usage (similar to the
1653 existing one for WX and GTK). This had been often requested.
1656 existing one for WX and GTK). This had been often requested.
1654
1657
1655 2005-04-14 *** Released version 0.6.13
1658 2005-04-14 *** Released version 0.6.13
1656
1659
1657 2005-04-08 Fernando Perez <fperez@colorado.edu>
1660 2005-04-08 Fernando Perez <fperez@colorado.edu>
1658
1661
1659 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1662 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
1660 from _ofind, which gets called on almost every input line. Now,
1663 from _ofind, which gets called on almost every input line. Now,
1661 we only try to get docstrings if they are actually going to be
1664 we only try to get docstrings if they are actually going to be
1662 used (the overhead of fetching unnecessary docstrings can be
1665 used (the overhead of fetching unnecessary docstrings can be
1663 noticeable for certain objects, such as Pyro proxies).
1666 noticeable for certain objects, such as Pyro proxies).
1664
1667
1665 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1668 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
1666 for completers. For some reason I had been passing them the state
1669 for completers. For some reason I had been passing them the state
1667 variable, which completers never actually need, and was in
1670 variable, which completers never actually need, and was in
1668 conflict with the rlcompleter API. Custom completers ONLY need to
1671 conflict with the rlcompleter API. Custom completers ONLY need to
1669 take the text parameter.
1672 take the text parameter.
1670
1673
1671 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1674 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
1672 work correctly in pysh. I've also moved all the logic which used
1675 work correctly in pysh. I've also moved all the logic which used
1673 to be in pysh.py here, which will prevent problems with future
1676 to be in pysh.py here, which will prevent problems with future
1674 upgrades. However, this time I must warn users to update their
1677 upgrades. However, this time I must warn users to update their
1675 pysh profile to include the line
1678 pysh profile to include the line
1676
1679
1677 import_all IPython.Extensions.InterpreterExec
1680 import_all IPython.Extensions.InterpreterExec
1678
1681
1679 because otherwise things won't work for them. They MUST also
1682 because otherwise things won't work for them. They MUST also
1680 delete pysh.py and the line
1683 delete pysh.py and the line
1681
1684
1682 execfile pysh.py
1685 execfile pysh.py
1683
1686
1684 from their ipythonrc-pysh.
1687 from their ipythonrc-pysh.
1685
1688
1686 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1689 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
1687 robust in the face of objects whose dir() returns non-strings
1690 robust in the face of objects whose dir() returns non-strings
1688 (which it shouldn't, but some broken libs like ITK do). Thanks to
1691 (which it shouldn't, but some broken libs like ITK do). Thanks to
1689 a patch by John Hunter (implemented differently, though). Also
1692 a patch by John Hunter (implemented differently, though). Also
1690 minor improvements by using .extend instead of + on lists.
1693 minor improvements by using .extend instead of + on lists.
1691
1694
1692 * pysh.py:
1695 * pysh.py:
1693
1696
1694 2005-04-06 Fernando Perez <fperez@colorado.edu>
1697 2005-04-06 Fernando Perez <fperez@colorado.edu>
1695
1698
1696 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1699 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
1697 by default, so that all users benefit from it. Those who don't
1700 by default, so that all users benefit from it. Those who don't
1698 want it can still turn it off.
1701 want it can still turn it off.
1699
1702
1700 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1703 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
1701 config file, I'd forgotten about this, so users were getting it
1704 config file, I'd forgotten about this, so users were getting it
1702 off by default.
1705 off by default.
1703
1706
1704 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1707 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
1705 consistency. Now magics can be called in multiline statements,
1708 consistency. Now magics can be called in multiline statements,
1706 and python variables can be expanded in magic calls via $var.
1709 and python variables can be expanded in magic calls via $var.
1707 This makes the magic system behave just like aliases or !system
1710 This makes the magic system behave just like aliases or !system
1708 calls.
1711 calls.
1709
1712
1710 2005-03-28 Fernando Perez <fperez@colorado.edu>
1713 2005-03-28 Fernando Perez <fperez@colorado.edu>
1711
1714
1712 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1715 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
1713 expensive string additions for building command. Add support for
1716 expensive string additions for building command. Add support for
1714 trailing ';' when autocall is used.
1717 trailing ';' when autocall is used.
1715
1718
1716 2005-03-26 Fernando Perez <fperez@colorado.edu>
1719 2005-03-26 Fernando Perez <fperez@colorado.edu>
1717
1720
1718 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1721 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
1719 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1722 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
1720 ipython.el robust against prompts with any number of spaces
1723 ipython.el robust against prompts with any number of spaces
1721 (including 0) after the ':' character.
1724 (including 0) after the ':' character.
1722
1725
1723 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1726 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
1724 continuation prompt, which misled users to think the line was
1727 continuation prompt, which misled users to think the line was
1725 already indented. Closes debian Bug#300847, reported to me by
1728 already indented. Closes debian Bug#300847, reported to me by
1726 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1729 Norbert Tretkowski <tretkowski-AT-inittab.de>.
1727
1730
1728 2005-03-23 Fernando Perez <fperez@colorado.edu>
1731 2005-03-23 Fernando Perez <fperez@colorado.edu>
1729
1732
1730 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1733 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
1731 properly aligned if they have embedded newlines.
1734 properly aligned if they have embedded newlines.
1732
1735
1733 * IPython/iplib.py (runlines): Add a public method to expose
1736 * IPython/iplib.py (runlines): Add a public method to expose
1734 IPython's code execution machinery, so that users can run strings
1737 IPython's code execution machinery, so that users can run strings
1735 as if they had been typed at the prompt interactively.
1738 as if they had been typed at the prompt interactively.
1736 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1739 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
1737 methods which can call the system shell, but with python variable
1740 methods which can call the system shell, but with python variable
1738 expansion. The three such methods are: __IPYTHON__.system,
1741 expansion. The three such methods are: __IPYTHON__.system,
1739 .getoutput and .getoutputerror. These need to be documented in a
1742 .getoutput and .getoutputerror. These need to be documented in a
1740 'public API' section (to be written) of the manual.
1743 'public API' section (to be written) of the manual.
1741
1744
1742 2005-03-20 Fernando Perez <fperez@colorado.edu>
1745 2005-03-20 Fernando Perez <fperez@colorado.edu>
1743
1746
1744 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1747 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
1745 for custom exception handling. This is quite powerful, and it
1748 for custom exception handling. This is quite powerful, and it
1746 allows for user-installable exception handlers which can trap
1749 allows for user-installable exception handlers which can trap
1747 custom exceptions at runtime and treat them separately from
1750 custom exceptions at runtime and treat them separately from
1748 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1751 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
1749 Mantegazza <mantegazza-AT-ill.fr>.
1752 Mantegazza <mantegazza-AT-ill.fr>.
1750 (InteractiveShell.set_custom_completer): public API function to
1753 (InteractiveShell.set_custom_completer): public API function to
1751 add new completers at runtime.
1754 add new completers at runtime.
1752
1755
1753 2005-03-19 Fernando Perez <fperez@colorado.edu>
1756 2005-03-19 Fernando Perez <fperez@colorado.edu>
1754
1757
1755 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1758 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
1756 allow objects which provide their docstrings via non-standard
1759 allow objects which provide their docstrings via non-standard
1757 mechanisms (like Pyro proxies) to still be inspected by ipython's
1760 mechanisms (like Pyro proxies) to still be inspected by ipython's
1758 ? system.
1761 ? system.
1759
1762
1760 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1763 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
1761 automatic capture system. I tried quite hard to make it work
1764 automatic capture system. I tried quite hard to make it work
1762 reliably, and simply failed. I tried many combinations with the
1765 reliably, and simply failed. I tried many combinations with the
1763 subprocess module, but eventually nothing worked in all needed
1766 subprocess module, but eventually nothing worked in all needed
1764 cases (not blocking stdin for the child, duplicating stdout
1767 cases (not blocking stdin for the child, duplicating stdout
1765 without blocking, etc). The new %sc/%sx still do capture to these
1768 without blocking, etc). The new %sc/%sx still do capture to these
1766 magical list/string objects which make shell use much more
1769 magical list/string objects which make shell use much more
1767 conveninent, so not all is lost.
1770 conveninent, so not all is lost.
1768
1771
1769 XXX - FIX MANUAL for the change above!
1772 XXX - FIX MANUAL for the change above!
1770
1773
1771 (runsource): I copied code.py's runsource() into ipython to modify
1774 (runsource): I copied code.py's runsource() into ipython to modify
1772 it a bit. Now the code object and source to be executed are
1775 it a bit. Now the code object and source to be executed are
1773 stored in ipython. This makes this info accessible to third-party
1776 stored in ipython. This makes this info accessible to third-party
1774 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1777 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
1775 Mantegazza <mantegazza-AT-ill.fr>.
1778 Mantegazza <mantegazza-AT-ill.fr>.
1776
1779
1777 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1780 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
1778 history-search via readline (like C-p/C-n). I'd wanted this for a
1781 history-search via readline (like C-p/C-n). I'd wanted this for a
1779 long time, but only recently found out how to do it. For users
1782 long time, but only recently found out how to do it. For users
1780 who already have their ipythonrc files made and want this, just
1783 who already have their ipythonrc files made and want this, just
1781 add:
1784 add:
1782
1785
1783 readline_parse_and_bind "\e[A": history-search-backward
1786 readline_parse_and_bind "\e[A": history-search-backward
1784 readline_parse_and_bind "\e[B": history-search-forward
1787 readline_parse_and_bind "\e[B": history-search-forward
1785
1788
1786 2005-03-18 Fernando Perez <fperez@colorado.edu>
1789 2005-03-18 Fernando Perez <fperez@colorado.edu>
1787
1790
1788 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1791 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
1789 LSString and SList classes which allow transparent conversions
1792 LSString and SList classes which allow transparent conversions
1790 between list mode and whitespace-separated string.
1793 between list mode and whitespace-separated string.
1791 (magic_r): Fix recursion problem in %r.
1794 (magic_r): Fix recursion problem in %r.
1792
1795
1793 * IPython/genutils.py (LSString): New class to be used for
1796 * IPython/genutils.py (LSString): New class to be used for
1794 automatic storage of the results of all alias/system calls in _o
1797 automatic storage of the results of all alias/system calls in _o
1795 and _e (stdout/err). These provide a .l/.list attribute which
1798 and _e (stdout/err). These provide a .l/.list attribute which
1796 does automatic splitting on newlines. This means that for most
1799 does automatic splitting on newlines. This means that for most
1797 uses, you'll never need to do capturing of output with %sc/%sx
1800 uses, you'll never need to do capturing of output with %sc/%sx
1798 anymore, since ipython keeps this always done for you. Note that
1801 anymore, since ipython keeps this always done for you. Note that
1799 only the LAST results are stored, the _o/e variables are
1802 only the LAST results are stored, the _o/e variables are
1800 overwritten on each call. If you need to save their contents
1803 overwritten on each call. If you need to save their contents
1801 further, simply bind them to any other name.
1804 further, simply bind them to any other name.
1802
1805
1803 2005-03-17 Fernando Perez <fperez@colorado.edu>
1806 2005-03-17 Fernando Perez <fperez@colorado.edu>
1804
1807
1805 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1808 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
1806 prompt namespace handling.
1809 prompt namespace handling.
1807
1810
1808 2005-03-16 Fernando Perez <fperez@colorado.edu>
1811 2005-03-16 Fernando Perez <fperez@colorado.edu>
1809
1812
1810 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1813 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
1811 classic prompts to be '>>> ' (final space was missing, and it
1814 classic prompts to be '>>> ' (final space was missing, and it
1812 trips the emacs python mode).
1815 trips the emacs python mode).
1813 (BasePrompt.__str__): Added safe support for dynamic prompt
1816 (BasePrompt.__str__): Added safe support for dynamic prompt
1814 strings. Now you can set your prompt string to be '$x', and the
1817 strings. Now you can set your prompt string to be '$x', and the
1815 value of x will be printed from your interactive namespace. The
1818 value of x will be printed from your interactive namespace. The
1816 interpolation syntax includes the full Itpl support, so
1819 interpolation syntax includes the full Itpl support, so
1817 ${foo()+x+bar()} is a valid prompt string now, and the function
1820 ${foo()+x+bar()} is a valid prompt string now, and the function
1818 calls will be made at runtime.
1821 calls will be made at runtime.
1819
1822
1820 2005-03-15 Fernando Perez <fperez@colorado.edu>
1823 2005-03-15 Fernando Perez <fperez@colorado.edu>
1821
1824
1822 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1825 * IPython/Magic.py (magic_history): renamed %hist to %history, to
1823 avoid name clashes in pylab. %hist still works, it just forwards
1826 avoid name clashes in pylab. %hist still works, it just forwards
1824 the call to %history.
1827 the call to %history.
1825
1828
1826 2005-03-02 *** Released version 0.6.12
1829 2005-03-02 *** Released version 0.6.12
1827
1830
1828 2005-03-02 Fernando Perez <fperez@colorado.edu>
1831 2005-03-02 Fernando Perez <fperez@colorado.edu>
1829
1832
1830 * IPython/iplib.py (handle_magic): log magic calls properly as
1833 * IPython/iplib.py (handle_magic): log magic calls properly as
1831 ipmagic() function calls.
1834 ipmagic() function calls.
1832
1835
1833 * IPython/Magic.py (magic_time): Improved %time to support
1836 * IPython/Magic.py (magic_time): Improved %time to support
1834 statements and provide wall-clock as well as CPU time.
1837 statements and provide wall-clock as well as CPU time.
1835
1838
1836 2005-02-27 Fernando Perez <fperez@colorado.edu>
1839 2005-02-27 Fernando Perez <fperez@colorado.edu>
1837
1840
1838 * IPython/hooks.py: New hooks module, to expose user-modifiable
1841 * IPython/hooks.py: New hooks module, to expose user-modifiable
1839 IPython functionality in a clean manner. For now only the editor
1842 IPython functionality in a clean manner. For now only the editor
1840 hook is actually written, and other thigns which I intend to turn
1843 hook is actually written, and other thigns which I intend to turn
1841 into proper hooks aren't yet there. The display and prefilter
1844 into proper hooks aren't yet there. The display and prefilter
1842 stuff, for example, should be hooks. But at least now the
1845 stuff, for example, should be hooks. But at least now the
1843 framework is in place, and the rest can be moved here with more
1846 framework is in place, and the rest can be moved here with more
1844 time later. IPython had had a .hooks variable for a long time for
1847 time later. IPython had had a .hooks variable for a long time for
1845 this purpose, but I'd never actually used it for anything.
1848 this purpose, but I'd never actually used it for anything.
1846
1849
1847 2005-02-26 Fernando Perez <fperez@colorado.edu>
1850 2005-02-26 Fernando Perez <fperez@colorado.edu>
1848
1851
1849 * IPython/ipmaker.py (make_IPython): make the default ipython
1852 * IPython/ipmaker.py (make_IPython): make the default ipython
1850 directory be called _ipython under win32, to follow more the
1853 directory be called _ipython under win32, to follow more the
1851 naming peculiarities of that platform (where buggy software like
1854 naming peculiarities of that platform (where buggy software like
1852 Visual Sourcesafe breaks with .named directories). Reported by
1855 Visual Sourcesafe breaks with .named directories). Reported by
1853 Ville Vainio.
1856 Ville Vainio.
1854
1857
1855 2005-02-23 Fernando Perez <fperez@colorado.edu>
1858 2005-02-23 Fernando Perez <fperez@colorado.edu>
1856
1859
1857 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1860 * IPython/iplib.py (InteractiveShell.__init__): removed a few
1858 auto_aliases for win32 which were causing problems. Users can
1861 auto_aliases for win32 which were causing problems. Users can
1859 define the ones they personally like.
1862 define the ones they personally like.
1860
1863
1861 2005-02-21 Fernando Perez <fperez@colorado.edu>
1864 2005-02-21 Fernando Perez <fperez@colorado.edu>
1862
1865
1863 * IPython/Magic.py (magic_time): new magic to time execution of
1866 * IPython/Magic.py (magic_time): new magic to time execution of
1864 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1867 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
1865
1868
1866 2005-02-19 Fernando Perez <fperez@colorado.edu>
1869 2005-02-19 Fernando Perez <fperez@colorado.edu>
1867
1870
1868 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1871 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
1869 into keys (for prompts, for example).
1872 into keys (for prompts, for example).
1870
1873
1871 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1874 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
1872 prompts in case users want them. This introduces a small behavior
1875 prompts in case users want them. This introduces a small behavior
1873 change: ipython does not automatically add a space to all prompts
1876 change: ipython does not automatically add a space to all prompts
1874 anymore. To get the old prompts with a space, users should add it
1877 anymore. To get the old prompts with a space, users should add it
1875 manually to their ipythonrc file, so for example prompt_in1 should
1878 manually to their ipythonrc file, so for example prompt_in1 should
1876 now read 'In [\#]: ' instead of 'In [\#]:'.
1879 now read 'In [\#]: ' instead of 'In [\#]:'.
1877 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1880 (BasePrompt.__init__): New option prompts_pad_left (only in rc
1878 file) to control left-padding of secondary prompts.
1881 file) to control left-padding of secondary prompts.
1879
1882
1880 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1883 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
1881 the profiler can't be imported. Fix for Debian, which removed
1884 the profiler can't be imported. Fix for Debian, which removed
1882 profile.py because of License issues. I applied a slightly
1885 profile.py because of License issues. I applied a slightly
1883 modified version of the original Debian patch at
1886 modified version of the original Debian patch at
1884 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1887 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
1885
1888
1886 2005-02-17 Fernando Perez <fperez@colorado.edu>
1889 2005-02-17 Fernando Perez <fperez@colorado.edu>
1887
1890
1888 * IPython/genutils.py (native_line_ends): Fix bug which would
1891 * IPython/genutils.py (native_line_ends): Fix bug which would
1889 cause improper line-ends under win32 b/c I was not opening files
1892 cause improper line-ends under win32 b/c I was not opening files
1890 in binary mode. Bug report and fix thanks to Ville.
1893 in binary mode. Bug report and fix thanks to Ville.
1891
1894
1892 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1895 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
1893 trying to catch spurious foo[1] autocalls. My fix actually broke
1896 trying to catch spurious foo[1] autocalls. My fix actually broke
1894 ',/' autoquote/call with explicit escape (bad regexp).
1897 ',/' autoquote/call with explicit escape (bad regexp).
1895
1898
1896 2005-02-15 *** Released version 0.6.11
1899 2005-02-15 *** Released version 0.6.11
1897
1900
1898 2005-02-14 Fernando Perez <fperez@colorado.edu>
1901 2005-02-14 Fernando Perez <fperez@colorado.edu>
1899
1902
1900 * IPython/background_jobs.py: New background job management
1903 * IPython/background_jobs.py: New background job management
1901 subsystem. This is implemented via a new set of classes, and
1904 subsystem. This is implemented via a new set of classes, and
1902 IPython now provides a builtin 'jobs' object for background job
1905 IPython now provides a builtin 'jobs' object for background job
1903 execution. A convenience %bg magic serves as a lightweight
1906 execution. A convenience %bg magic serves as a lightweight
1904 frontend for starting the more common type of calls. This was
1907 frontend for starting the more common type of calls. This was
1905 inspired by discussions with B. Granger and the BackgroundCommand
1908 inspired by discussions with B. Granger and the BackgroundCommand
1906 class described in the book Python Scripting for Computational
1909 class described in the book Python Scripting for Computational
1907 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1910 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
1908 (although ultimately no code from this text was used, as IPython's
1911 (although ultimately no code from this text was used, as IPython's
1909 system is a separate implementation).
1912 system is a separate implementation).
1910
1913
1911 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1914 * IPython/iplib.py (MagicCompleter.python_matches): add new option
1912 to control the completion of single/double underscore names
1915 to control the completion of single/double underscore names
1913 separately. As documented in the example ipytonrc file, the
1916 separately. As documented in the example ipytonrc file, the
1914 readline_omit__names variable can now be set to 2, to omit even
1917 readline_omit__names variable can now be set to 2, to omit even
1915 single underscore names. Thanks to a patch by Brian Wong
1918 single underscore names. Thanks to a patch by Brian Wong
1916 <BrianWong-AT-AirgoNetworks.Com>.
1919 <BrianWong-AT-AirgoNetworks.Com>.
1917 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1920 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
1918 be autocalled as foo([1]) if foo were callable. A problem for
1921 be autocalled as foo([1]) if foo were callable. A problem for
1919 things which are both callable and implement __getitem__.
1922 things which are both callable and implement __getitem__.
1920 (init_readline): Fix autoindentation for win32. Thanks to a patch
1923 (init_readline): Fix autoindentation for win32. Thanks to a patch
1921 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1924 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
1922
1925
1923 2005-02-12 Fernando Perez <fperez@colorado.edu>
1926 2005-02-12 Fernando Perez <fperez@colorado.edu>
1924
1927
1925 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1928 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
1926 which I had written long ago to sort out user error messages which
1929 which I had written long ago to sort out user error messages which
1927 may occur during startup. This seemed like a good idea initially,
1930 may occur during startup. This seemed like a good idea initially,
1928 but it has proven a disaster in retrospect. I don't want to
1931 but it has proven a disaster in retrospect. I don't want to
1929 change much code for now, so my fix is to set the internal 'debug'
1932 change much code for now, so my fix is to set the internal 'debug'
1930 flag to true everywhere, whose only job was precisely to control
1933 flag to true everywhere, whose only job was precisely to control
1931 this subsystem. This closes issue 28 (as well as avoiding all
1934 this subsystem. This closes issue 28 (as well as avoiding all
1932 sorts of strange hangups which occur from time to time).
1935 sorts of strange hangups which occur from time to time).
1933
1936
1934 2005-02-07 Fernando Perez <fperez@colorado.edu>
1937 2005-02-07 Fernando Perez <fperez@colorado.edu>
1935
1938
1936 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1939 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
1937 previous call produced a syntax error.
1940 previous call produced a syntax error.
1938
1941
1939 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1942 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
1940 classes without constructor.
1943 classes without constructor.
1941
1944
1942 2005-02-06 Fernando Perez <fperez@colorado.edu>
1945 2005-02-06 Fernando Perez <fperez@colorado.edu>
1943
1946
1944 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1947 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
1945 completions with the results of each matcher, so we return results
1948 completions with the results of each matcher, so we return results
1946 to the user from all namespaces. This breaks with ipython
1949 to the user from all namespaces. This breaks with ipython
1947 tradition, but I think it's a nicer behavior. Now you get all
1950 tradition, but I think it's a nicer behavior. Now you get all
1948 possible completions listed, from all possible namespaces (python,
1951 possible completions listed, from all possible namespaces (python,
1949 filesystem, magics...) After a request by John Hunter
1952 filesystem, magics...) After a request by John Hunter
1950 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1953 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1951
1954
1952 2005-02-05 Fernando Perez <fperez@colorado.edu>
1955 2005-02-05 Fernando Perez <fperez@colorado.edu>
1953
1956
1954 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1957 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
1955 the call had quote characters in it (the quotes were stripped).
1958 the call had quote characters in it (the quotes were stripped).
1956
1959
1957 2005-01-31 Fernando Perez <fperez@colorado.edu>
1960 2005-01-31 Fernando Perez <fperez@colorado.edu>
1958
1961
1959 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1962 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
1960 Itpl.itpl() to make the code more robust against psyco
1963 Itpl.itpl() to make the code more robust against psyco
1961 optimizations.
1964 optimizations.
1962
1965
1963 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1966 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
1964 of causing an exception. Quicker, cleaner.
1967 of causing an exception. Quicker, cleaner.
1965
1968
1966 2005-01-28 Fernando Perez <fperez@colorado.edu>
1969 2005-01-28 Fernando Perez <fperez@colorado.edu>
1967
1970
1968 * scripts/ipython_win_post_install.py (install): hardcode
1971 * scripts/ipython_win_post_install.py (install): hardcode
1969 sys.prefix+'python.exe' as the executable path. It turns out that
1972 sys.prefix+'python.exe' as the executable path. It turns out that
1970 during the post-installation run, sys.executable resolves to the
1973 during the post-installation run, sys.executable resolves to the
1971 name of the binary installer! I should report this as a distutils
1974 name of the binary installer! I should report this as a distutils
1972 bug, I think. I updated the .10 release with this tiny fix, to
1975 bug, I think. I updated the .10 release with this tiny fix, to
1973 avoid annoying the lists further.
1976 avoid annoying the lists further.
1974
1977
1975 2005-01-27 *** Released version 0.6.10
1978 2005-01-27 *** Released version 0.6.10
1976
1979
1977 2005-01-27 Fernando Perez <fperez@colorado.edu>
1980 2005-01-27 Fernando Perez <fperez@colorado.edu>
1978
1981
1979 * IPython/numutils.py (norm): Added 'inf' as optional name for
1982 * IPython/numutils.py (norm): Added 'inf' as optional name for
1980 L-infinity norm, included references to mathworld.com for vector
1983 L-infinity norm, included references to mathworld.com for vector
1981 norm definitions.
1984 norm definitions.
1982 (amin/amax): added amin/amax for array min/max. Similar to what
1985 (amin/amax): added amin/amax for array min/max. Similar to what
1983 pylab ships with after the recent reorganization of names.
1986 pylab ships with after the recent reorganization of names.
1984 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1987 (spike/spike_odd): removed deprecated spike/spike_odd functions.
1985
1988
1986 * ipython.el: committed Alex's recent fixes and improvements.
1989 * ipython.el: committed Alex's recent fixes and improvements.
1987 Tested with python-mode from CVS, and it looks excellent. Since
1990 Tested with python-mode from CVS, and it looks excellent. Since
1988 python-mode hasn't released anything in a while, I'm temporarily
1991 python-mode hasn't released anything in a while, I'm temporarily
1989 putting a copy of today's CVS (v 4.70) of python-mode in:
1992 putting a copy of today's CVS (v 4.70) of python-mode in:
1990 http://ipython.scipy.org/tmp/python-mode.el
1993 http://ipython.scipy.org/tmp/python-mode.el
1991
1994
1992 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1995 * scripts/ipython_win_post_install.py (install): Win32 fix to use
1993 sys.executable for the executable name, instead of assuming it's
1996 sys.executable for the executable name, instead of assuming it's
1994 called 'python.exe' (the post-installer would have produced broken
1997 called 'python.exe' (the post-installer would have produced broken
1995 setups on systems with a differently named python binary).
1998 setups on systems with a differently named python binary).
1996
1999
1997 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2000 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
1998 references to os.linesep, to make the code more
2001 references to os.linesep, to make the code more
1999 platform-independent. This is also part of the win32 coloring
2002 platform-independent. This is also part of the win32 coloring
2000 fixes.
2003 fixes.
2001
2004
2002 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2005 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2003 lines, which actually cause coloring bugs because the length of
2006 lines, which actually cause coloring bugs because the length of
2004 the line is very difficult to correctly compute with embedded
2007 the line is very difficult to correctly compute with embedded
2005 escapes. This was the source of all the coloring problems under
2008 escapes. This was the source of all the coloring problems under
2006 Win32. I think that _finally_, Win32 users have a properly
2009 Win32. I think that _finally_, Win32 users have a properly
2007 working ipython in all respects. This would never have happened
2010 working ipython in all respects. This would never have happened
2008 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2011 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2009
2012
2010 2005-01-26 *** Released version 0.6.9
2013 2005-01-26 *** Released version 0.6.9
2011
2014
2012 2005-01-25 Fernando Perez <fperez@colorado.edu>
2015 2005-01-25 Fernando Perez <fperez@colorado.edu>
2013
2016
2014 * setup.py: finally, we have a true Windows installer, thanks to
2017 * setup.py: finally, we have a true Windows installer, thanks to
2015 the excellent work of Viktor Ransmayr
2018 the excellent work of Viktor Ransmayr
2016 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2019 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2017 Windows users. The setup routine is quite a bit cleaner thanks to
2020 Windows users. The setup routine is quite a bit cleaner thanks to
2018 this, and the post-install script uses the proper functions to
2021 this, and the post-install script uses the proper functions to
2019 allow a clean de-installation using the standard Windows Control
2022 allow a clean de-installation using the standard Windows Control
2020 Panel.
2023 Panel.
2021
2024
2022 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2025 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2023 environment variable under all OSes (including win32) if
2026 environment variable under all OSes (including win32) if
2024 available. This will give consistency to win32 users who have set
2027 available. This will give consistency to win32 users who have set
2025 this variable for any reason. If os.environ['HOME'] fails, the
2028 this variable for any reason. If os.environ['HOME'] fails, the
2026 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2029 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2027
2030
2028 2005-01-24 Fernando Perez <fperez@colorado.edu>
2031 2005-01-24 Fernando Perez <fperez@colorado.edu>
2029
2032
2030 * IPython/numutils.py (empty_like): add empty_like(), similar to
2033 * IPython/numutils.py (empty_like): add empty_like(), similar to
2031 zeros_like() but taking advantage of the new empty() Numeric routine.
2034 zeros_like() but taking advantage of the new empty() Numeric routine.
2032
2035
2033 2005-01-23 *** Released version 0.6.8
2036 2005-01-23 *** Released version 0.6.8
2034
2037
2035 2005-01-22 Fernando Perez <fperez@colorado.edu>
2038 2005-01-22 Fernando Perez <fperez@colorado.edu>
2036
2039
2037 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2040 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2038 automatic show() calls. After discussing things with JDH, it
2041 automatic show() calls. After discussing things with JDH, it
2039 turns out there are too many corner cases where this can go wrong.
2042 turns out there are too many corner cases where this can go wrong.
2040 It's best not to try to be 'too smart', and simply have ipython
2043 It's best not to try to be 'too smart', and simply have ipython
2041 reproduce as much as possible the default behavior of a normal
2044 reproduce as much as possible the default behavior of a normal
2042 python shell.
2045 python shell.
2043
2046
2044 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2047 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2045 line-splitting regexp and _prefilter() to avoid calling getattr()
2048 line-splitting regexp and _prefilter() to avoid calling getattr()
2046 on assignments. This closes
2049 on assignments. This closes
2047 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2050 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2048 readline uses getattr(), so a simple <TAB> keypress is still
2051 readline uses getattr(), so a simple <TAB> keypress is still
2049 enough to trigger getattr() calls on an object.
2052 enough to trigger getattr() calls on an object.
2050
2053
2051 2005-01-21 Fernando Perez <fperez@colorado.edu>
2054 2005-01-21 Fernando Perez <fperez@colorado.edu>
2052
2055
2053 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2056 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2054 docstring under pylab so it doesn't mask the original.
2057 docstring under pylab so it doesn't mask the original.
2055
2058
2056 2005-01-21 *** Released version 0.6.7
2059 2005-01-21 *** Released version 0.6.7
2057
2060
2058 2005-01-21 Fernando Perez <fperez@colorado.edu>
2061 2005-01-21 Fernando Perez <fperez@colorado.edu>
2059
2062
2060 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2063 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2061 signal handling for win32 users in multithreaded mode.
2064 signal handling for win32 users in multithreaded mode.
2062
2065
2063 2005-01-17 Fernando Perez <fperez@colorado.edu>
2066 2005-01-17 Fernando Perez <fperez@colorado.edu>
2064
2067
2065 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2068 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2066 instances with no __init__. After a crash report by Norbert Nemec
2069 instances with no __init__. After a crash report by Norbert Nemec
2067 <Norbert-AT-nemec-online.de>.
2070 <Norbert-AT-nemec-online.de>.
2068
2071
2069 2005-01-14 Fernando Perez <fperez@colorado.edu>
2072 2005-01-14 Fernando Perez <fperez@colorado.edu>
2070
2073
2071 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2074 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2072 names for verbose exceptions, when multiple dotted names and the
2075 names for verbose exceptions, when multiple dotted names and the
2073 'parent' object were present on the same line.
2076 'parent' object were present on the same line.
2074
2077
2075 2005-01-11 Fernando Perez <fperez@colorado.edu>
2078 2005-01-11 Fernando Perez <fperez@colorado.edu>
2076
2079
2077 * IPython/genutils.py (flag_calls): new utility to trap and flag
2080 * IPython/genutils.py (flag_calls): new utility to trap and flag
2078 calls in functions. I need it to clean up matplotlib support.
2081 calls in functions. I need it to clean up matplotlib support.
2079 Also removed some deprecated code in genutils.
2082 Also removed some deprecated code in genutils.
2080
2083
2081 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2084 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2082 that matplotlib scripts called with %run, which don't call show()
2085 that matplotlib scripts called with %run, which don't call show()
2083 themselves, still have their plotting windows open.
2086 themselves, still have their plotting windows open.
2084
2087
2085 2005-01-05 Fernando Perez <fperez@colorado.edu>
2088 2005-01-05 Fernando Perez <fperez@colorado.edu>
2086
2089
2087 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2090 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2088 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2091 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2089
2092
2090 2004-12-19 Fernando Perez <fperez@colorado.edu>
2093 2004-12-19 Fernando Perez <fperez@colorado.edu>
2091
2094
2092 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2095 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2093 parent_runcode, which was an eyesore. The same result can be
2096 parent_runcode, which was an eyesore. The same result can be
2094 obtained with Python's regular superclass mechanisms.
2097 obtained with Python's regular superclass mechanisms.
2095
2098
2096 2004-12-17 Fernando Perez <fperez@colorado.edu>
2099 2004-12-17 Fernando Perez <fperez@colorado.edu>
2097
2100
2098 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2101 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2099 reported by Prabhu.
2102 reported by Prabhu.
2100 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2103 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2101 sys.stderr) instead of explicitly calling sys.stderr. This helps
2104 sys.stderr) instead of explicitly calling sys.stderr. This helps
2102 maintain our I/O abstractions clean, for future GUI embeddings.
2105 maintain our I/O abstractions clean, for future GUI embeddings.
2103
2106
2104 * IPython/genutils.py (info): added new utility for sys.stderr
2107 * IPython/genutils.py (info): added new utility for sys.stderr
2105 unified info message handling (thin wrapper around warn()).
2108 unified info message handling (thin wrapper around warn()).
2106
2109
2107 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2110 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2108 composite (dotted) names on verbose exceptions.
2111 composite (dotted) names on verbose exceptions.
2109 (VerboseTB.nullrepr): harden against another kind of errors which
2112 (VerboseTB.nullrepr): harden against another kind of errors which
2110 Python's inspect module can trigger, and which were crashing
2113 Python's inspect module can trigger, and which were crashing
2111 IPython. Thanks to a report by Marco Lombardi
2114 IPython. Thanks to a report by Marco Lombardi
2112 <mlombard-AT-ma010192.hq.eso.org>.
2115 <mlombard-AT-ma010192.hq.eso.org>.
2113
2116
2114 2004-12-13 *** Released version 0.6.6
2117 2004-12-13 *** Released version 0.6.6
2115
2118
2116 2004-12-12 Fernando Perez <fperez@colorado.edu>
2119 2004-12-12 Fernando Perez <fperez@colorado.edu>
2117
2120
2118 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2121 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2119 generated by pygtk upon initialization if it was built without
2122 generated by pygtk upon initialization if it was built without
2120 threads (for matplotlib users). After a crash reported by
2123 threads (for matplotlib users). After a crash reported by
2121 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2124 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2122
2125
2123 * IPython/ipmaker.py (make_IPython): fix small bug in the
2126 * IPython/ipmaker.py (make_IPython): fix small bug in the
2124 import_some parameter for multiple imports.
2127 import_some parameter for multiple imports.
2125
2128
2126 * IPython/iplib.py (ipmagic): simplified the interface of
2129 * IPython/iplib.py (ipmagic): simplified the interface of
2127 ipmagic() to take a single string argument, just as it would be
2130 ipmagic() to take a single string argument, just as it would be
2128 typed at the IPython cmd line.
2131 typed at the IPython cmd line.
2129 (ipalias): Added new ipalias() with an interface identical to
2132 (ipalias): Added new ipalias() with an interface identical to
2130 ipmagic(). This completes exposing a pure python interface to the
2133 ipmagic(). This completes exposing a pure python interface to the
2131 alias and magic system, which can be used in loops or more complex
2134 alias and magic system, which can be used in loops or more complex
2132 code where IPython's automatic line mangling is not active.
2135 code where IPython's automatic line mangling is not active.
2133
2136
2134 * IPython/genutils.py (timing): changed interface of timing to
2137 * IPython/genutils.py (timing): changed interface of timing to
2135 simply run code once, which is the most common case. timings()
2138 simply run code once, which is the most common case. timings()
2136 remains unchanged, for the cases where you want multiple runs.
2139 remains unchanged, for the cases where you want multiple runs.
2137
2140
2138 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2141 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2139 bug where Python2.2 crashes with exec'ing code which does not end
2142 bug where Python2.2 crashes with exec'ing code which does not end
2140 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2143 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2141 before.
2144 before.
2142
2145
2143 2004-12-10 Fernando Perez <fperez@colorado.edu>
2146 2004-12-10 Fernando Perez <fperez@colorado.edu>
2144
2147
2145 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2148 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2146 -t to -T, to accomodate the new -t flag in %run (the %run and
2149 -t to -T, to accomodate the new -t flag in %run (the %run and
2147 %prun options are kind of intermixed, and it's not easy to change
2150 %prun options are kind of intermixed, and it's not easy to change
2148 this with the limitations of python's getopt).
2151 this with the limitations of python's getopt).
2149
2152
2150 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2153 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2151 the execution of scripts. It's not as fine-tuned as timeit.py,
2154 the execution of scripts. It's not as fine-tuned as timeit.py,
2152 but it works from inside ipython (and under 2.2, which lacks
2155 but it works from inside ipython (and under 2.2, which lacks
2153 timeit.py). Optionally a number of runs > 1 can be given for
2156 timeit.py). Optionally a number of runs > 1 can be given for
2154 timing very short-running code.
2157 timing very short-running code.
2155
2158
2156 * IPython/genutils.py (uniq_stable): new routine which returns a
2159 * IPython/genutils.py (uniq_stable): new routine which returns a
2157 list of unique elements in any iterable, but in stable order of
2160 list of unique elements in any iterable, but in stable order of
2158 appearance. I needed this for the ultraTB fixes, and it's a handy
2161 appearance. I needed this for the ultraTB fixes, and it's a handy
2159 utility.
2162 utility.
2160
2163
2161 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2164 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2162 dotted names in Verbose exceptions. This had been broken since
2165 dotted names in Verbose exceptions. This had been broken since
2163 the very start, now x.y will properly be printed in a Verbose
2166 the very start, now x.y will properly be printed in a Verbose
2164 traceback, instead of x being shown and y appearing always as an
2167 traceback, instead of x being shown and y appearing always as an
2165 'undefined global'. Getting this to work was a bit tricky,
2168 'undefined global'. Getting this to work was a bit tricky,
2166 because by default python tokenizers are stateless. Saved by
2169 because by default python tokenizers are stateless. Saved by
2167 python's ability to easily add a bit of state to an arbitrary
2170 python's ability to easily add a bit of state to an arbitrary
2168 function (without needing to build a full-blown callable object).
2171 function (without needing to build a full-blown callable object).
2169
2172
2170 Also big cleanup of this code, which had horrendous runtime
2173 Also big cleanup of this code, which had horrendous runtime
2171 lookups of zillions of attributes for colorization. Moved all
2174 lookups of zillions of attributes for colorization. Moved all
2172 this code into a few templates, which make it cleaner and quicker.
2175 this code into a few templates, which make it cleaner and quicker.
2173
2176
2174 Printout quality was also improved for Verbose exceptions: one
2177 Printout quality was also improved for Verbose exceptions: one
2175 variable per line, and memory addresses are printed (this can be
2178 variable per line, and memory addresses are printed (this can be
2176 quite handy in nasty debugging situations, which is what Verbose
2179 quite handy in nasty debugging situations, which is what Verbose
2177 is for).
2180 is for).
2178
2181
2179 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2182 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2180 the command line as scripts to be loaded by embedded instances.
2183 the command line as scripts to be loaded by embedded instances.
2181 Doing so has the potential for an infinite recursion if there are
2184 Doing so has the potential for an infinite recursion if there are
2182 exceptions thrown in the process. This fixes a strange crash
2185 exceptions thrown in the process. This fixes a strange crash
2183 reported by Philippe MULLER <muller-AT-irit.fr>.
2186 reported by Philippe MULLER <muller-AT-irit.fr>.
2184
2187
2185 2004-12-09 Fernando Perez <fperez@colorado.edu>
2188 2004-12-09 Fernando Perez <fperez@colorado.edu>
2186
2189
2187 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2190 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2188 to reflect new names in matplotlib, which now expose the
2191 to reflect new names in matplotlib, which now expose the
2189 matlab-compatible interface via a pylab module instead of the
2192 matlab-compatible interface via a pylab module instead of the
2190 'matlab' name. The new code is backwards compatible, so users of
2193 'matlab' name. The new code is backwards compatible, so users of
2191 all matplotlib versions are OK. Patch by J. Hunter.
2194 all matplotlib versions are OK. Patch by J. Hunter.
2192
2195
2193 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2196 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2194 of __init__ docstrings for instances (class docstrings are already
2197 of __init__ docstrings for instances (class docstrings are already
2195 automatically printed). Instances with customized docstrings
2198 automatically printed). Instances with customized docstrings
2196 (indep. of the class) are also recognized and all 3 separate
2199 (indep. of the class) are also recognized and all 3 separate
2197 docstrings are printed (instance, class, constructor). After some
2200 docstrings are printed (instance, class, constructor). After some
2198 comments/suggestions by J. Hunter.
2201 comments/suggestions by J. Hunter.
2199
2202
2200 2004-12-05 Fernando Perez <fperez@colorado.edu>
2203 2004-12-05 Fernando Perez <fperez@colorado.edu>
2201
2204
2202 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2205 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2203 warnings when tab-completion fails and triggers an exception.
2206 warnings when tab-completion fails and triggers an exception.
2204
2207
2205 2004-12-03 Fernando Perez <fperez@colorado.edu>
2208 2004-12-03 Fernando Perez <fperez@colorado.edu>
2206
2209
2207 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2210 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2208 be triggered when using 'run -p'. An incorrect option flag was
2211 be triggered when using 'run -p'. An incorrect option flag was
2209 being set ('d' instead of 'D').
2212 being set ('d' instead of 'D').
2210 (manpage): fix missing escaped \- sign.
2213 (manpage): fix missing escaped \- sign.
2211
2214
2212 2004-11-30 *** Released version 0.6.5
2215 2004-11-30 *** Released version 0.6.5
2213
2216
2214 2004-11-30 Fernando Perez <fperez@colorado.edu>
2217 2004-11-30 Fernando Perez <fperez@colorado.edu>
2215
2218
2216 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2219 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2217 setting with -d option.
2220 setting with -d option.
2218
2221
2219 * setup.py (docfiles): Fix problem where the doc glob I was using
2222 * setup.py (docfiles): Fix problem where the doc glob I was using
2220 was COMPLETELY BROKEN. It was giving the right files by pure
2223 was COMPLETELY BROKEN. It was giving the right files by pure
2221 accident, but failed once I tried to include ipython.el. Note:
2224 accident, but failed once I tried to include ipython.el. Note:
2222 glob() does NOT allow you to do exclusion on multiple endings!
2225 glob() does NOT allow you to do exclusion on multiple endings!
2223
2226
2224 2004-11-29 Fernando Perez <fperez@colorado.edu>
2227 2004-11-29 Fernando Perez <fperez@colorado.edu>
2225
2228
2226 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2229 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2227 the manpage as the source. Better formatting & consistency.
2230 the manpage as the source. Better formatting & consistency.
2228
2231
2229 * IPython/Magic.py (magic_run): Added new -d option, to run
2232 * IPython/Magic.py (magic_run): Added new -d option, to run
2230 scripts under the control of the python pdb debugger. Note that
2233 scripts under the control of the python pdb debugger. Note that
2231 this required changing the %prun option -d to -D, to avoid a clash
2234 this required changing the %prun option -d to -D, to avoid a clash
2232 (since %run must pass options to %prun, and getopt is too dumb to
2235 (since %run must pass options to %prun, and getopt is too dumb to
2233 handle options with string values with embedded spaces). Thanks
2236 handle options with string values with embedded spaces). Thanks
2234 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2237 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2235 (magic_who_ls): added type matching to %who and %whos, so that one
2238 (magic_who_ls): added type matching to %who and %whos, so that one
2236 can filter their output to only include variables of certain
2239 can filter their output to only include variables of certain
2237 types. Another suggestion by Matthew.
2240 types. Another suggestion by Matthew.
2238 (magic_whos): Added memory summaries in kb and Mb for arrays.
2241 (magic_whos): Added memory summaries in kb and Mb for arrays.
2239 (magic_who): Improve formatting (break lines every 9 vars).
2242 (magic_who): Improve formatting (break lines every 9 vars).
2240
2243
2241 2004-11-28 Fernando Perez <fperez@colorado.edu>
2244 2004-11-28 Fernando Perez <fperez@colorado.edu>
2242
2245
2243 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2246 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2244 cache when empty lines were present.
2247 cache when empty lines were present.
2245
2248
2246 2004-11-24 Fernando Perez <fperez@colorado.edu>
2249 2004-11-24 Fernando Perez <fperez@colorado.edu>
2247
2250
2248 * IPython/usage.py (__doc__): document the re-activated threading
2251 * IPython/usage.py (__doc__): document the re-activated threading
2249 options for WX and GTK.
2252 options for WX and GTK.
2250
2253
2251 2004-11-23 Fernando Perez <fperez@colorado.edu>
2254 2004-11-23 Fernando Perez <fperez@colorado.edu>
2252
2255
2253 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2256 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2254 the -wthread and -gthread options, along with a new -tk one to try
2257 the -wthread and -gthread options, along with a new -tk one to try
2255 and coordinate Tk threading with wx/gtk. The tk support is very
2258 and coordinate Tk threading with wx/gtk. The tk support is very
2256 platform dependent, since it seems to require Tcl and Tk to be
2259 platform dependent, since it seems to require Tcl and Tk to be
2257 built with threads (Fedora1/2 appears NOT to have it, but in
2260 built with threads (Fedora1/2 appears NOT to have it, but in
2258 Prabhu's Debian boxes it works OK). But even with some Tk
2261 Prabhu's Debian boxes it works OK). But even with some Tk
2259 limitations, this is a great improvement.
2262 limitations, this is a great improvement.
2260
2263
2261 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2264 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2262 info in user prompts. Patch by Prabhu.
2265 info in user prompts. Patch by Prabhu.
2263
2266
2264 2004-11-18 Fernando Perez <fperez@colorado.edu>
2267 2004-11-18 Fernando Perez <fperez@colorado.edu>
2265
2268
2266 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2269 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2267 EOFErrors and bail, to avoid infinite loops if a non-terminating
2270 EOFErrors and bail, to avoid infinite loops if a non-terminating
2268 file is fed into ipython. Patch submitted in issue 19 by user,
2271 file is fed into ipython. Patch submitted in issue 19 by user,
2269 many thanks.
2272 many thanks.
2270
2273
2271 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2274 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2272 autoquote/parens in continuation prompts, which can cause lots of
2275 autoquote/parens in continuation prompts, which can cause lots of
2273 problems. Closes roundup issue 20.
2276 problems. Closes roundup issue 20.
2274
2277
2275 2004-11-17 Fernando Perez <fperez@colorado.edu>
2278 2004-11-17 Fernando Perez <fperez@colorado.edu>
2276
2279
2277 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2280 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2278 reported as debian bug #280505. I'm not sure my local changelog
2281 reported as debian bug #280505. I'm not sure my local changelog
2279 entry has the proper debian format (Jack?).
2282 entry has the proper debian format (Jack?).
2280
2283
2281 2004-11-08 *** Released version 0.6.4
2284 2004-11-08 *** Released version 0.6.4
2282
2285
2283 2004-11-08 Fernando Perez <fperez@colorado.edu>
2286 2004-11-08 Fernando Perez <fperez@colorado.edu>
2284
2287
2285 * IPython/iplib.py (init_readline): Fix exit message for Windows
2288 * IPython/iplib.py (init_readline): Fix exit message for Windows
2286 when readline is active. Thanks to a report by Eric Jones
2289 when readline is active. Thanks to a report by Eric Jones
2287 <eric-AT-enthought.com>.
2290 <eric-AT-enthought.com>.
2288
2291
2289 2004-11-07 Fernando Perez <fperez@colorado.edu>
2292 2004-11-07 Fernando Perez <fperez@colorado.edu>
2290
2293
2291 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2294 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2292 sometimes seen by win2k/cygwin users.
2295 sometimes seen by win2k/cygwin users.
2293
2296
2294 2004-11-06 Fernando Perez <fperez@colorado.edu>
2297 2004-11-06 Fernando Perez <fperez@colorado.edu>
2295
2298
2296 * IPython/iplib.py (interact): Change the handling of %Exit from
2299 * IPython/iplib.py (interact): Change the handling of %Exit from
2297 trying to propagate a SystemExit to an internal ipython flag.
2300 trying to propagate a SystemExit to an internal ipython flag.
2298 This is less elegant than using Python's exception mechanism, but
2301 This is less elegant than using Python's exception mechanism, but
2299 I can't get that to work reliably with threads, so under -pylab
2302 I can't get that to work reliably with threads, so under -pylab
2300 %Exit was hanging IPython. Cross-thread exception handling is
2303 %Exit was hanging IPython. Cross-thread exception handling is
2301 really a bitch. Thaks to a bug report by Stephen Walton
2304 really a bitch. Thaks to a bug report by Stephen Walton
2302 <stephen.walton-AT-csun.edu>.
2305 <stephen.walton-AT-csun.edu>.
2303
2306
2304 2004-11-04 Fernando Perez <fperez@colorado.edu>
2307 2004-11-04 Fernando Perez <fperez@colorado.edu>
2305
2308
2306 * IPython/iplib.py (raw_input_original): store a pointer to the
2309 * IPython/iplib.py (raw_input_original): store a pointer to the
2307 true raw_input to harden against code which can modify it
2310 true raw_input to harden against code which can modify it
2308 (wx.py.PyShell does this and would otherwise crash ipython).
2311 (wx.py.PyShell does this and would otherwise crash ipython).
2309 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2312 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2310
2313
2311 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2314 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2312 Ctrl-C problem, which does not mess up the input line.
2315 Ctrl-C problem, which does not mess up the input line.
2313
2316
2314 2004-11-03 Fernando Perez <fperez@colorado.edu>
2317 2004-11-03 Fernando Perez <fperez@colorado.edu>
2315
2318
2316 * IPython/Release.py: Changed licensing to BSD, in all files.
2319 * IPython/Release.py: Changed licensing to BSD, in all files.
2317 (name): lowercase name for tarball/RPM release.
2320 (name): lowercase name for tarball/RPM release.
2318
2321
2319 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2322 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2320 use throughout ipython.
2323 use throughout ipython.
2321
2324
2322 * IPython/Magic.py (Magic._ofind): Switch to using the new
2325 * IPython/Magic.py (Magic._ofind): Switch to using the new
2323 OInspect.getdoc() function.
2326 OInspect.getdoc() function.
2324
2327
2325 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2328 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2326 of the line currently being canceled via Ctrl-C. It's extremely
2329 of the line currently being canceled via Ctrl-C. It's extremely
2327 ugly, but I don't know how to do it better (the problem is one of
2330 ugly, but I don't know how to do it better (the problem is one of
2328 handling cross-thread exceptions).
2331 handling cross-thread exceptions).
2329
2332
2330 2004-10-28 Fernando Perez <fperez@colorado.edu>
2333 2004-10-28 Fernando Perez <fperez@colorado.edu>
2331
2334
2332 * IPython/Shell.py (signal_handler): add signal handlers to trap
2335 * IPython/Shell.py (signal_handler): add signal handlers to trap
2333 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2336 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2334 report by Francesc Alted.
2337 report by Francesc Alted.
2335
2338
2336 2004-10-21 Fernando Perez <fperez@colorado.edu>
2339 2004-10-21 Fernando Perez <fperez@colorado.edu>
2337
2340
2338 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2341 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2339 to % for pysh syntax extensions.
2342 to % for pysh syntax extensions.
2340
2343
2341 2004-10-09 Fernando Perez <fperez@colorado.edu>
2344 2004-10-09 Fernando Perez <fperez@colorado.edu>
2342
2345
2343 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2346 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2344 arrays to print a more useful summary, without calling str(arr).
2347 arrays to print a more useful summary, without calling str(arr).
2345 This avoids the problem of extremely lengthy computations which
2348 This avoids the problem of extremely lengthy computations which
2346 occur if arr is large, and appear to the user as a system lockup
2349 occur if arr is large, and appear to the user as a system lockup
2347 with 100% cpu activity. After a suggestion by Kristian Sandberg
2350 with 100% cpu activity. After a suggestion by Kristian Sandberg
2348 <Kristian.Sandberg@colorado.edu>.
2351 <Kristian.Sandberg@colorado.edu>.
2349 (Magic.__init__): fix bug in global magic escapes not being
2352 (Magic.__init__): fix bug in global magic escapes not being
2350 correctly set.
2353 correctly set.
2351
2354
2352 2004-10-08 Fernando Perez <fperez@colorado.edu>
2355 2004-10-08 Fernando Perez <fperez@colorado.edu>
2353
2356
2354 * IPython/Magic.py (__license__): change to absolute imports of
2357 * IPython/Magic.py (__license__): change to absolute imports of
2355 ipython's own internal packages, to start adapting to the absolute
2358 ipython's own internal packages, to start adapting to the absolute
2356 import requirement of PEP-328.
2359 import requirement of PEP-328.
2357
2360
2358 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2361 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
2359 files, and standardize author/license marks through the Release
2362 files, and standardize author/license marks through the Release
2360 module instead of having per/file stuff (except for files with
2363 module instead of having per/file stuff (except for files with
2361 particular licenses, like the MIT/PSF-licensed codes).
2364 particular licenses, like the MIT/PSF-licensed codes).
2362
2365
2363 * IPython/Debugger.py: remove dead code for python 2.1
2366 * IPython/Debugger.py: remove dead code for python 2.1
2364
2367
2365 2004-10-04 Fernando Perez <fperez@colorado.edu>
2368 2004-10-04 Fernando Perez <fperez@colorado.edu>
2366
2369
2367 * IPython/iplib.py (ipmagic): New function for accessing magics
2370 * IPython/iplib.py (ipmagic): New function for accessing magics
2368 via a normal python function call.
2371 via a normal python function call.
2369
2372
2370 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2373 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
2371 from '@' to '%', to accomodate the new @decorator syntax of python
2374 from '@' to '%', to accomodate the new @decorator syntax of python
2372 2.4.
2375 2.4.
2373
2376
2374 2004-09-29 Fernando Perez <fperez@colorado.edu>
2377 2004-09-29 Fernando Perez <fperez@colorado.edu>
2375
2378
2376 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2379 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
2377 matplotlib.use to prevent running scripts which try to switch
2380 matplotlib.use to prevent running scripts which try to switch
2378 interactive backends from within ipython. This will just crash
2381 interactive backends from within ipython. This will just crash
2379 the python interpreter, so we can't allow it (but a detailed error
2382 the python interpreter, so we can't allow it (but a detailed error
2380 is given to the user).
2383 is given to the user).
2381
2384
2382 2004-09-28 Fernando Perez <fperez@colorado.edu>
2385 2004-09-28 Fernando Perez <fperez@colorado.edu>
2383
2386
2384 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2387 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
2385 matplotlib-related fixes so that using @run with non-matplotlib
2388 matplotlib-related fixes so that using @run with non-matplotlib
2386 scripts doesn't pop up spurious plot windows. This requires
2389 scripts doesn't pop up spurious plot windows. This requires
2387 matplotlib >= 0.63, where I had to make some changes as well.
2390 matplotlib >= 0.63, where I had to make some changes as well.
2388
2391
2389 * IPython/ipmaker.py (make_IPython): update version requirement to
2392 * IPython/ipmaker.py (make_IPython): update version requirement to
2390 python 2.2.
2393 python 2.2.
2391
2394
2392 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2395 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
2393 banner arg for embedded customization.
2396 banner arg for embedded customization.
2394
2397
2395 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2398 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
2396 explicit uses of __IP as the IPython's instance name. Now things
2399 explicit uses of __IP as the IPython's instance name. Now things
2397 are properly handled via the shell.name value. The actual code
2400 are properly handled via the shell.name value. The actual code
2398 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2401 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
2399 is much better than before. I'll clean things completely when the
2402 is much better than before. I'll clean things completely when the
2400 magic stuff gets a real overhaul.
2403 magic stuff gets a real overhaul.
2401
2404
2402 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2405 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
2403 minor changes to debian dir.
2406 minor changes to debian dir.
2404
2407
2405 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2408 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
2406 pointer to the shell itself in the interactive namespace even when
2409 pointer to the shell itself in the interactive namespace even when
2407 a user-supplied dict is provided. This is needed for embedding
2410 a user-supplied dict is provided. This is needed for embedding
2408 purposes (found by tests with Michel Sanner).
2411 purposes (found by tests with Michel Sanner).
2409
2412
2410 2004-09-27 Fernando Perez <fperez@colorado.edu>
2413 2004-09-27 Fernando Perez <fperez@colorado.edu>
2411
2414
2412 * IPython/UserConfig/ipythonrc: remove []{} from
2415 * IPython/UserConfig/ipythonrc: remove []{} from
2413 readline_remove_delims, so that things like [modname.<TAB> do
2416 readline_remove_delims, so that things like [modname.<TAB> do
2414 proper completion. This disables [].TAB, but that's a less common
2417 proper completion. This disables [].TAB, but that's a less common
2415 case than module names in list comprehensions, for example.
2418 case than module names in list comprehensions, for example.
2416 Thanks to a report by Andrea Riciputi.
2419 Thanks to a report by Andrea Riciputi.
2417
2420
2418 2004-09-09 Fernando Perez <fperez@colorado.edu>
2421 2004-09-09 Fernando Perez <fperez@colorado.edu>
2419
2422
2420 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2423 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
2421 blocking problems in win32 and osx. Fix by John.
2424 blocking problems in win32 and osx. Fix by John.
2422
2425
2423 2004-09-08 Fernando Perez <fperez@colorado.edu>
2426 2004-09-08 Fernando Perez <fperez@colorado.edu>
2424
2427
2425 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2428 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
2426 for Win32 and OSX. Fix by John Hunter.
2429 for Win32 and OSX. Fix by John Hunter.
2427
2430
2428 2004-08-30 *** Released version 0.6.3
2431 2004-08-30 *** Released version 0.6.3
2429
2432
2430 2004-08-30 Fernando Perez <fperez@colorado.edu>
2433 2004-08-30 Fernando Perez <fperez@colorado.edu>
2431
2434
2432 * setup.py (isfile): Add manpages to list of dependent files to be
2435 * setup.py (isfile): Add manpages to list of dependent files to be
2433 updated.
2436 updated.
2434
2437
2435 2004-08-27 Fernando Perez <fperez@colorado.edu>
2438 2004-08-27 Fernando Perez <fperez@colorado.edu>
2436
2439
2437 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2440 * IPython/Shell.py (start): I've disabled -wthread and -gthread
2438 for now. They don't really work with standalone WX/GTK code
2441 for now. They don't really work with standalone WX/GTK code
2439 (though matplotlib IS working fine with both of those backends).
2442 (though matplotlib IS working fine with both of those backends).
2440 This will neeed much more testing. I disabled most things with
2443 This will neeed much more testing. I disabled most things with
2441 comments, so turning it back on later should be pretty easy.
2444 comments, so turning it back on later should be pretty easy.
2442
2445
2443 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2446 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
2444 autocalling of expressions like r'foo', by modifying the line
2447 autocalling of expressions like r'foo', by modifying the line
2445 split regexp. Closes
2448 split regexp. Closes
2446 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2449 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
2447 Riley <ipythonbugs-AT-sabi.net>.
2450 Riley <ipythonbugs-AT-sabi.net>.
2448 (InteractiveShell.mainloop): honor --nobanner with banner
2451 (InteractiveShell.mainloop): honor --nobanner with banner
2449 extensions.
2452 extensions.
2450
2453
2451 * IPython/Shell.py: Significant refactoring of all classes, so
2454 * IPython/Shell.py: Significant refactoring of all classes, so
2452 that we can really support ALL matplotlib backends and threading
2455 that we can really support ALL matplotlib backends and threading
2453 models (John spotted a bug with Tk which required this). Now we
2456 models (John spotted a bug with Tk which required this). Now we
2454 should support single-threaded, WX-threads and GTK-threads, both
2457 should support single-threaded, WX-threads and GTK-threads, both
2455 for generic code and for matplotlib.
2458 for generic code and for matplotlib.
2456
2459
2457 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2460 * IPython/ipmaker.py (__call__): Changed -mpthread option to
2458 -pylab, to simplify things for users. Will also remove the pylab
2461 -pylab, to simplify things for users. Will also remove the pylab
2459 profile, since now all of matplotlib configuration is directly
2462 profile, since now all of matplotlib configuration is directly
2460 handled here. This also reduces startup time.
2463 handled here. This also reduces startup time.
2461
2464
2462 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2465 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
2463 shell wasn't being correctly called. Also in IPShellWX.
2466 shell wasn't being correctly called. Also in IPShellWX.
2464
2467
2465 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2468 * IPython/iplib.py (InteractiveShell.__init__): Added option to
2466 fine-tune banner.
2469 fine-tune banner.
2467
2470
2468 * IPython/numutils.py (spike): Deprecate these spike functions,
2471 * IPython/numutils.py (spike): Deprecate these spike functions,
2469 delete (long deprecated) gnuplot_exec handler.
2472 delete (long deprecated) gnuplot_exec handler.
2470
2473
2471 2004-08-26 Fernando Perez <fperez@colorado.edu>
2474 2004-08-26 Fernando Perez <fperez@colorado.edu>
2472
2475
2473 * ipython.1: Update for threading options, plus some others which
2476 * ipython.1: Update for threading options, plus some others which
2474 were missing.
2477 were missing.
2475
2478
2476 * IPython/ipmaker.py (__call__): Added -wthread option for
2479 * IPython/ipmaker.py (__call__): Added -wthread option for
2477 wxpython thread handling. Make sure threading options are only
2480 wxpython thread handling. Make sure threading options are only
2478 valid at the command line.
2481 valid at the command line.
2479
2482
2480 * scripts/ipython: moved shell selection into a factory function
2483 * scripts/ipython: moved shell selection into a factory function
2481 in Shell.py, to keep the starter script to a minimum.
2484 in Shell.py, to keep the starter script to a minimum.
2482
2485
2483 2004-08-25 Fernando Perez <fperez@colorado.edu>
2486 2004-08-25 Fernando Perez <fperez@colorado.edu>
2484
2487
2485 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2488 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
2486 John. Along with some recent changes he made to matplotlib, the
2489 John. Along with some recent changes he made to matplotlib, the
2487 next versions of both systems should work very well together.
2490 next versions of both systems should work very well together.
2488
2491
2489 2004-08-24 Fernando Perez <fperez@colorado.edu>
2492 2004-08-24 Fernando Perez <fperez@colorado.edu>
2490
2493
2491 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2494 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
2492 tried to switch the profiling to using hotshot, but I'm getting
2495 tried to switch the profiling to using hotshot, but I'm getting
2493 strange errors from prof.runctx() there. I may be misreading the
2496 strange errors from prof.runctx() there. I may be misreading the
2494 docs, but it looks weird. For now the profiling code will
2497 docs, but it looks weird. For now the profiling code will
2495 continue to use the standard profiler.
2498 continue to use the standard profiler.
2496
2499
2497 2004-08-23 Fernando Perez <fperez@colorado.edu>
2500 2004-08-23 Fernando Perez <fperez@colorado.edu>
2498
2501
2499 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2502 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
2500 threaded shell, by John Hunter. It's not quite ready yet, but
2503 threaded shell, by John Hunter. It's not quite ready yet, but
2501 close.
2504 close.
2502
2505
2503 2004-08-22 Fernando Perez <fperez@colorado.edu>
2506 2004-08-22 Fernando Perez <fperez@colorado.edu>
2504
2507
2505 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2508 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
2506 in Magic and ultraTB.
2509 in Magic and ultraTB.
2507
2510
2508 * ipython.1: document threading options in manpage.
2511 * ipython.1: document threading options in manpage.
2509
2512
2510 * scripts/ipython: Changed name of -thread option to -gthread,
2513 * scripts/ipython: Changed name of -thread option to -gthread,
2511 since this is GTK specific. I want to leave the door open for a
2514 since this is GTK specific. I want to leave the door open for a
2512 -wthread option for WX, which will most likely be necessary. This
2515 -wthread option for WX, which will most likely be necessary. This
2513 change affects usage and ipmaker as well.
2516 change affects usage and ipmaker as well.
2514
2517
2515 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2518 * IPython/Shell.py (matplotlib_shell): Add a factory function to
2516 handle the matplotlib shell issues. Code by John Hunter
2519 handle the matplotlib shell issues. Code by John Hunter
2517 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2520 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2518 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2521 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
2519 broken (and disabled for end users) for now, but it puts the
2522 broken (and disabled for end users) for now, but it puts the
2520 infrastructure in place.
2523 infrastructure in place.
2521
2524
2522 2004-08-21 Fernando Perez <fperez@colorado.edu>
2525 2004-08-21 Fernando Perez <fperez@colorado.edu>
2523
2526
2524 * ipythonrc-pylab: Add matplotlib support.
2527 * ipythonrc-pylab: Add matplotlib support.
2525
2528
2526 * matplotlib_config.py: new files for matplotlib support, part of
2529 * matplotlib_config.py: new files for matplotlib support, part of
2527 the pylab profile.
2530 the pylab profile.
2528
2531
2529 * IPython/usage.py (__doc__): documented the threading options.
2532 * IPython/usage.py (__doc__): documented the threading options.
2530
2533
2531 2004-08-20 Fernando Perez <fperez@colorado.edu>
2534 2004-08-20 Fernando Perez <fperez@colorado.edu>
2532
2535
2533 * ipython: Modified the main calling routine to handle the -thread
2536 * ipython: Modified the main calling routine to handle the -thread
2534 and -mpthread options. This needs to be done as a top-level hack,
2537 and -mpthread options. This needs to be done as a top-level hack,
2535 because it determines which class to instantiate for IPython
2538 because it determines which class to instantiate for IPython
2536 itself.
2539 itself.
2537
2540
2538 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2541 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
2539 classes to support multithreaded GTK operation without blocking,
2542 classes to support multithreaded GTK operation without blocking,
2540 and matplotlib with all backends. This is a lot of still very
2543 and matplotlib with all backends. This is a lot of still very
2541 experimental code, and threads are tricky. So it may still have a
2544 experimental code, and threads are tricky. So it may still have a
2542 few rough edges... This code owes a lot to
2545 few rough edges... This code owes a lot to
2543 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2546 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
2544 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2547 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
2545 to John Hunter for all the matplotlib work.
2548 to John Hunter for all the matplotlib work.
2546
2549
2547 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2550 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
2548 options for gtk thread and matplotlib support.
2551 options for gtk thread and matplotlib support.
2549
2552
2550 2004-08-16 Fernando Perez <fperez@colorado.edu>
2553 2004-08-16 Fernando Perez <fperez@colorado.edu>
2551
2554
2552 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2555 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
2553 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2556 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
2554 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2557 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
2555
2558
2556 2004-08-11 Fernando Perez <fperez@colorado.edu>
2559 2004-08-11 Fernando Perez <fperez@colorado.edu>
2557
2560
2558 * setup.py (isfile): Fix build so documentation gets updated for
2561 * setup.py (isfile): Fix build so documentation gets updated for
2559 rpms (it was only done for .tgz builds).
2562 rpms (it was only done for .tgz builds).
2560
2563
2561 2004-08-10 Fernando Perez <fperez@colorado.edu>
2564 2004-08-10 Fernando Perez <fperez@colorado.edu>
2562
2565
2563 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2566 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
2564
2567
2565 * iplib.py : Silence syntax error exceptions in tab-completion.
2568 * iplib.py : Silence syntax error exceptions in tab-completion.
2566
2569
2567 2004-08-05 Fernando Perez <fperez@colorado.edu>
2570 2004-08-05 Fernando Perez <fperez@colorado.edu>
2568
2571
2569 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2572 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
2570 'color off' mark for continuation prompts. This was causing long
2573 'color off' mark for continuation prompts. This was causing long
2571 continuation lines to mis-wrap.
2574 continuation lines to mis-wrap.
2572
2575
2573 2004-08-01 Fernando Perez <fperez@colorado.edu>
2576 2004-08-01 Fernando Perez <fperez@colorado.edu>
2574
2577
2575 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2578 * IPython/ipmaker.py (make_IPython): Allow the shell class used
2576 for building ipython to be a parameter. All this is necessary
2579 for building ipython to be a parameter. All this is necessary
2577 right now to have a multithreaded version, but this insane
2580 right now to have a multithreaded version, but this insane
2578 non-design will be cleaned up soon. For now, it's a hack that
2581 non-design will be cleaned up soon. For now, it's a hack that
2579 works.
2582 works.
2580
2583
2581 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2584 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
2582 args in various places. No bugs so far, but it's a dangerous
2585 args in various places. No bugs so far, but it's a dangerous
2583 practice.
2586 practice.
2584
2587
2585 2004-07-31 Fernando Perez <fperez@colorado.edu>
2588 2004-07-31 Fernando Perez <fperez@colorado.edu>
2586
2589
2587 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2590 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
2588 fix completion of files with dots in their names under most
2591 fix completion of files with dots in their names under most
2589 profiles (pysh was OK because the completion order is different).
2592 profiles (pysh was OK because the completion order is different).
2590
2593
2591 2004-07-27 Fernando Perez <fperez@colorado.edu>
2594 2004-07-27 Fernando Perez <fperez@colorado.edu>
2592
2595
2593 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2596 * IPython/iplib.py (InteractiveShell.__init__): build dict of
2594 keywords manually, b/c the one in keyword.py was removed in python
2597 keywords manually, b/c the one in keyword.py was removed in python
2595 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2598 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
2596 This is NOT a bug under python 2.3 and earlier.
2599 This is NOT a bug under python 2.3 and earlier.
2597
2600
2598 2004-07-26 Fernando Perez <fperez@colorado.edu>
2601 2004-07-26 Fernando Perez <fperez@colorado.edu>
2599
2602
2600 * IPython/ultraTB.py (VerboseTB.text): Add another
2603 * IPython/ultraTB.py (VerboseTB.text): Add another
2601 linecache.checkcache() call to try to prevent inspect.py from
2604 linecache.checkcache() call to try to prevent inspect.py from
2602 crashing under python 2.3. I think this fixes
2605 crashing under python 2.3. I think this fixes
2603 http://www.scipy.net/roundup/ipython/issue17.
2606 http://www.scipy.net/roundup/ipython/issue17.
2604
2607
2605 2004-07-26 *** Released version 0.6.2
2608 2004-07-26 *** Released version 0.6.2
2606
2609
2607 2004-07-26 Fernando Perez <fperez@colorado.edu>
2610 2004-07-26 Fernando Perez <fperez@colorado.edu>
2608
2611
2609 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2612 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
2610 fail for any number.
2613 fail for any number.
2611 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2614 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
2612 empty bookmarks.
2615 empty bookmarks.
2613
2616
2614 2004-07-26 *** Released version 0.6.1
2617 2004-07-26 *** Released version 0.6.1
2615
2618
2616 2004-07-26 Fernando Perez <fperez@colorado.edu>
2619 2004-07-26 Fernando Perez <fperez@colorado.edu>
2617
2620
2618 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2621 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
2619
2622
2620 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2623 * IPython/iplib.py (protect_filename): Applied Ville's patch for
2621 escaping '()[]{}' in filenames.
2624 escaping '()[]{}' in filenames.
2622
2625
2623 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2626 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
2624 Python 2.2 users who lack a proper shlex.split.
2627 Python 2.2 users who lack a proper shlex.split.
2625
2628
2626 2004-07-19 Fernando Perez <fperez@colorado.edu>
2629 2004-07-19 Fernando Perez <fperez@colorado.edu>
2627
2630
2628 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2631 * IPython/iplib.py (InteractiveShell.init_readline): Add support
2629 for reading readline's init file. I follow the normal chain:
2632 for reading readline's init file. I follow the normal chain:
2630 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2633 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
2631 report by Mike Heeter. This closes
2634 report by Mike Heeter. This closes
2632 http://www.scipy.net/roundup/ipython/issue16.
2635 http://www.scipy.net/roundup/ipython/issue16.
2633
2636
2634 2004-07-18 Fernando Perez <fperez@colorado.edu>
2637 2004-07-18 Fernando Perez <fperez@colorado.edu>
2635
2638
2636 * IPython/iplib.py (__init__): Add better handling of '\' under
2639 * IPython/iplib.py (__init__): Add better handling of '\' under
2637 Win32 for filenames. After a patch by Ville.
2640 Win32 for filenames. After a patch by Ville.
2638
2641
2639 2004-07-17 Fernando Perez <fperez@colorado.edu>
2642 2004-07-17 Fernando Perez <fperez@colorado.edu>
2640
2643
2641 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2644 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
2642 autocalling would be triggered for 'foo is bar' if foo is
2645 autocalling would be triggered for 'foo is bar' if foo is
2643 callable. I also cleaned up the autocall detection code to use a
2646 callable. I also cleaned up the autocall detection code to use a
2644 regexp, which is faster. Bug reported by Alexander Schmolck.
2647 regexp, which is faster. Bug reported by Alexander Schmolck.
2645
2648
2646 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2649 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
2647 '?' in them would confuse the help system. Reported by Alex
2650 '?' in them would confuse the help system. Reported by Alex
2648 Schmolck.
2651 Schmolck.
2649
2652
2650 2004-07-16 Fernando Perez <fperez@colorado.edu>
2653 2004-07-16 Fernando Perez <fperez@colorado.edu>
2651
2654
2652 * IPython/GnuplotInteractive.py (__all__): added plot2.
2655 * IPython/GnuplotInteractive.py (__all__): added plot2.
2653
2656
2654 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2657 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
2655 plotting dictionaries, lists or tuples of 1d arrays.
2658 plotting dictionaries, lists or tuples of 1d arrays.
2656
2659
2657 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2660 * IPython/Magic.py (Magic.magic_hist): small clenaups and
2658 optimizations.
2661 optimizations.
2659
2662
2660 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2663 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
2661 the information which was there from Janko's original IPP code:
2664 the information which was there from Janko's original IPP code:
2662
2665
2663 03.05.99 20:53 porto.ifm.uni-kiel.de
2666 03.05.99 20:53 porto.ifm.uni-kiel.de
2664 --Started changelog.
2667 --Started changelog.
2665 --make clear do what it say it does
2668 --make clear do what it say it does
2666 --added pretty output of lines from inputcache
2669 --added pretty output of lines from inputcache
2667 --Made Logger a mixin class, simplifies handling of switches
2670 --Made Logger a mixin class, simplifies handling of switches
2668 --Added own completer class. .string<TAB> expands to last history
2671 --Added own completer class. .string<TAB> expands to last history
2669 line which starts with string. The new expansion is also present
2672 line which starts with string. The new expansion is also present
2670 with Ctrl-r from the readline library. But this shows, who this
2673 with Ctrl-r from the readline library. But this shows, who this
2671 can be done for other cases.
2674 can be done for other cases.
2672 --Added convention that all shell functions should accept a
2675 --Added convention that all shell functions should accept a
2673 parameter_string This opens the door for different behaviour for
2676 parameter_string This opens the door for different behaviour for
2674 each function. @cd is a good example of this.
2677 each function. @cd is a good example of this.
2675
2678
2676 04.05.99 12:12 porto.ifm.uni-kiel.de
2679 04.05.99 12:12 porto.ifm.uni-kiel.de
2677 --added logfile rotation
2680 --added logfile rotation
2678 --added new mainloop method which freezes first the namespace
2681 --added new mainloop method which freezes first the namespace
2679
2682
2680 07.05.99 21:24 porto.ifm.uni-kiel.de
2683 07.05.99 21:24 porto.ifm.uni-kiel.de
2681 --added the docreader classes. Now there is a help system.
2684 --added the docreader classes. Now there is a help system.
2682 -This is only a first try. Currently it's not easy to put new
2685 -This is only a first try. Currently it's not easy to put new
2683 stuff in the indices. But this is the way to go. Info would be
2686 stuff in the indices. But this is the way to go. Info would be
2684 better, but HTML is every where and not everybody has an info
2687 better, but HTML is every where and not everybody has an info
2685 system installed and it's not so easy to change html-docs to info.
2688 system installed and it's not so easy to change html-docs to info.
2686 --added global logfile option
2689 --added global logfile option
2687 --there is now a hook for object inspection method pinfo needs to
2690 --there is now a hook for object inspection method pinfo needs to
2688 be provided for this. Can be reached by two '??'.
2691 be provided for this. Can be reached by two '??'.
2689
2692
2690 08.05.99 20:51 porto.ifm.uni-kiel.de
2693 08.05.99 20:51 porto.ifm.uni-kiel.de
2691 --added a README
2694 --added a README
2692 --bug in rc file. Something has changed so functions in the rc
2695 --bug in rc file. Something has changed so functions in the rc
2693 file need to reference the shell and not self. Not clear if it's a
2696 file need to reference the shell and not self. Not clear if it's a
2694 bug or feature.
2697 bug or feature.
2695 --changed rc file for new behavior
2698 --changed rc file for new behavior
2696
2699
2697 2004-07-15 Fernando Perez <fperez@colorado.edu>
2700 2004-07-15 Fernando Perez <fperez@colorado.edu>
2698
2701
2699 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2702 * IPython/Logger.py (Logger.log): fixed recent bug where the input
2700 cache was falling out of sync in bizarre manners when multi-line
2703 cache was falling out of sync in bizarre manners when multi-line
2701 input was present. Minor optimizations and cleanup.
2704 input was present. Minor optimizations and cleanup.
2702
2705
2703 (Logger): Remove old Changelog info for cleanup. This is the
2706 (Logger): Remove old Changelog info for cleanup. This is the
2704 information which was there from Janko's original code:
2707 information which was there from Janko's original code:
2705
2708
2706 Changes to Logger: - made the default log filename a parameter
2709 Changes to Logger: - made the default log filename a parameter
2707
2710
2708 - put a check for lines beginning with !@? in log(). Needed
2711 - put a check for lines beginning with !@? in log(). Needed
2709 (even if the handlers properly log their lines) for mid-session
2712 (even if the handlers properly log their lines) for mid-session
2710 logging activation to work properly. Without this, lines logged
2713 logging activation to work properly. Without this, lines logged
2711 in mid session, which get read from the cache, would end up
2714 in mid session, which get read from the cache, would end up
2712 'bare' (with !@? in the open) in the log. Now they are caught
2715 'bare' (with !@? in the open) in the log. Now they are caught
2713 and prepended with a #.
2716 and prepended with a #.
2714
2717
2715 * IPython/iplib.py (InteractiveShell.init_readline): added check
2718 * IPython/iplib.py (InteractiveShell.init_readline): added check
2716 in case MagicCompleter fails to be defined, so we don't crash.
2719 in case MagicCompleter fails to be defined, so we don't crash.
2717
2720
2718 2004-07-13 Fernando Perez <fperez@colorado.edu>
2721 2004-07-13 Fernando Perez <fperez@colorado.edu>
2719
2722
2720 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2723 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
2721 of EPS if the requested filename ends in '.eps'.
2724 of EPS if the requested filename ends in '.eps'.
2722
2725
2723 2004-07-04 Fernando Perez <fperez@colorado.edu>
2726 2004-07-04 Fernando Perez <fperez@colorado.edu>
2724
2727
2725 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2728 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
2726 escaping of quotes when calling the shell.
2729 escaping of quotes when calling the shell.
2727
2730
2728 2004-07-02 Fernando Perez <fperez@colorado.edu>
2731 2004-07-02 Fernando Perez <fperez@colorado.edu>
2729
2732
2730 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2733 * IPython/Prompts.py (CachedOutput.update): Fix problem with
2731 gettext not working because we were clobbering '_'. Fixes
2734 gettext not working because we were clobbering '_'. Fixes
2732 http://www.scipy.net/roundup/ipython/issue6.
2735 http://www.scipy.net/roundup/ipython/issue6.
2733
2736
2734 2004-07-01 Fernando Perez <fperez@colorado.edu>
2737 2004-07-01 Fernando Perez <fperez@colorado.edu>
2735
2738
2736 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2739 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
2737 into @cd. Patch by Ville.
2740 into @cd. Patch by Ville.
2738
2741
2739 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2742 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2740 new function to store things after ipmaker runs. Patch by Ville.
2743 new function to store things after ipmaker runs. Patch by Ville.
2741 Eventually this will go away once ipmaker is removed and the class
2744 Eventually this will go away once ipmaker is removed and the class
2742 gets cleaned up, but for now it's ok. Key functionality here is
2745 gets cleaned up, but for now it's ok. Key functionality here is
2743 the addition of the persistent storage mechanism, a dict for
2746 the addition of the persistent storage mechanism, a dict for
2744 keeping data across sessions (for now just bookmarks, but more can
2747 keeping data across sessions (for now just bookmarks, but more can
2745 be implemented later).
2748 be implemented later).
2746
2749
2747 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2750 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
2748 persistent across sections. Patch by Ville, I modified it
2751 persistent across sections. Patch by Ville, I modified it
2749 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2752 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
2750 added a '-l' option to list all bookmarks.
2753 added a '-l' option to list all bookmarks.
2751
2754
2752 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2755 * IPython/iplib.py (InteractiveShell.atexit_operations): new
2753 center for cleanup. Registered with atexit.register(). I moved
2756 center for cleanup. Registered with atexit.register(). I moved
2754 here the old exit_cleanup(). After a patch by Ville.
2757 here the old exit_cleanup(). After a patch by Ville.
2755
2758
2756 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2759 * IPython/Magic.py (get_py_filename): added '~' to the accepted
2757 characters in the hacked shlex_split for python 2.2.
2760 characters in the hacked shlex_split for python 2.2.
2758
2761
2759 * IPython/iplib.py (file_matches): more fixes to filenames with
2762 * IPython/iplib.py (file_matches): more fixes to filenames with
2760 whitespace in them. It's not perfect, but limitations in python's
2763 whitespace in them. It's not perfect, but limitations in python's
2761 readline make it impossible to go further.
2764 readline make it impossible to go further.
2762
2765
2763 2004-06-29 Fernando Perez <fperez@colorado.edu>
2766 2004-06-29 Fernando Perez <fperez@colorado.edu>
2764
2767
2765 * IPython/iplib.py (file_matches): escape whitespace correctly in
2768 * IPython/iplib.py (file_matches): escape whitespace correctly in
2766 filename completions. Bug reported by Ville.
2769 filename completions. Bug reported by Ville.
2767
2770
2768 2004-06-28 Fernando Perez <fperez@colorado.edu>
2771 2004-06-28 Fernando Perez <fperez@colorado.edu>
2769
2772
2770 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2773 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
2771 the history file will be called 'history-PROFNAME' (or just
2774 the history file will be called 'history-PROFNAME' (or just
2772 'history' if no profile is loaded). I was getting annoyed at
2775 'history' if no profile is loaded). I was getting annoyed at
2773 getting my Numerical work history clobbered by pysh sessions.
2776 getting my Numerical work history clobbered by pysh sessions.
2774
2777
2775 * IPython/iplib.py (InteractiveShell.__init__): Internal
2778 * IPython/iplib.py (InteractiveShell.__init__): Internal
2776 getoutputerror() function so that we can honor the system_verbose
2779 getoutputerror() function so that we can honor the system_verbose
2777 flag for _all_ system calls. I also added escaping of #
2780 flag for _all_ system calls. I also added escaping of #
2778 characters here to avoid confusing Itpl.
2781 characters here to avoid confusing Itpl.
2779
2782
2780 * IPython/Magic.py (shlex_split): removed call to shell in
2783 * IPython/Magic.py (shlex_split): removed call to shell in
2781 parse_options and replaced it with shlex.split(). The annoying
2784 parse_options and replaced it with shlex.split(). The annoying
2782 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2785 part was that in Python 2.2, shlex.split() doesn't exist, so I had
2783 to backport it from 2.3, with several frail hacks (the shlex
2786 to backport it from 2.3, with several frail hacks (the shlex
2784 module is rather limited in 2.2). Thanks to a suggestion by Ville
2787 module is rather limited in 2.2). Thanks to a suggestion by Ville
2785 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2788 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
2786 problem.
2789 problem.
2787
2790
2788 (Magic.magic_system_verbose): new toggle to print the actual
2791 (Magic.magic_system_verbose): new toggle to print the actual
2789 system calls made by ipython. Mainly for debugging purposes.
2792 system calls made by ipython. Mainly for debugging purposes.
2790
2793
2791 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2794 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
2792 doesn't support persistence. Reported (and fix suggested) by
2795 doesn't support persistence. Reported (and fix suggested) by
2793 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2796 Travis Caldwell <travis_caldwell2000@yahoo.com>.
2794
2797
2795 2004-06-26 Fernando Perez <fperez@colorado.edu>
2798 2004-06-26 Fernando Perez <fperez@colorado.edu>
2796
2799
2797 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2800 * IPython/Logger.py (Logger.log): fix to handle correctly empty
2798 continue prompts.
2801 continue prompts.
2799
2802
2800 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2803 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
2801 function (basically a big docstring) and a few more things here to
2804 function (basically a big docstring) and a few more things here to
2802 speedup startup. pysh.py is now very lightweight. We want because
2805 speedup startup. pysh.py is now very lightweight. We want because
2803 it gets execfile'd, while InterpreterExec gets imported, so
2806 it gets execfile'd, while InterpreterExec gets imported, so
2804 byte-compilation saves time.
2807 byte-compilation saves time.
2805
2808
2806 2004-06-25 Fernando Perez <fperez@colorado.edu>
2809 2004-06-25 Fernando Perez <fperez@colorado.edu>
2807
2810
2808 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2811 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
2809 -NUM', which was recently broken.
2812 -NUM', which was recently broken.
2810
2813
2811 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2814 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
2812 in multi-line input (but not !!, which doesn't make sense there).
2815 in multi-line input (but not !!, which doesn't make sense there).
2813
2816
2814 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2817 * IPython/UserConfig/ipythonrc: made autoindent on by default.
2815 It's just too useful, and people can turn it off in the less
2818 It's just too useful, and people can turn it off in the less
2816 common cases where it's a problem.
2819 common cases where it's a problem.
2817
2820
2818 2004-06-24 Fernando Perez <fperez@colorado.edu>
2821 2004-06-24 Fernando Perez <fperez@colorado.edu>
2819
2822
2820 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2823 * IPython/iplib.py (InteractiveShell._prefilter): big change -
2821 special syntaxes (like alias calling) is now allied in multi-line
2824 special syntaxes (like alias calling) is now allied in multi-line
2822 input. This is still _very_ experimental, but it's necessary for
2825 input. This is still _very_ experimental, but it's necessary for
2823 efficient shell usage combining python looping syntax with system
2826 efficient shell usage combining python looping syntax with system
2824 calls. For now it's restricted to aliases, I don't think it
2827 calls. For now it's restricted to aliases, I don't think it
2825 really even makes sense to have this for magics.
2828 really even makes sense to have this for magics.
2826
2829
2827 2004-06-23 Fernando Perez <fperez@colorado.edu>
2830 2004-06-23 Fernando Perez <fperez@colorado.edu>
2828
2831
2829 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2832 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
2830 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2833 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
2831
2834
2832 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2835 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
2833 extensions under Windows (after code sent by Gary Bishop). The
2836 extensions under Windows (after code sent by Gary Bishop). The
2834 extensions considered 'executable' are stored in IPython's rc
2837 extensions considered 'executable' are stored in IPython's rc
2835 structure as win_exec_ext.
2838 structure as win_exec_ext.
2836
2839
2837 * IPython/genutils.py (shell): new function, like system() but
2840 * IPython/genutils.py (shell): new function, like system() but
2838 without return value. Very useful for interactive shell work.
2841 without return value. Very useful for interactive shell work.
2839
2842
2840 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2843 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
2841 delete aliases.
2844 delete aliases.
2842
2845
2843 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2846 * IPython/iplib.py (InteractiveShell.alias_table_update): make
2844 sure that the alias table doesn't contain python keywords.
2847 sure that the alias table doesn't contain python keywords.
2845
2848
2846 2004-06-21 Fernando Perez <fperez@colorado.edu>
2849 2004-06-21 Fernando Perez <fperez@colorado.edu>
2847
2850
2848 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2851 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
2849 non-existent items are found in $PATH. Reported by Thorsten.
2852 non-existent items are found in $PATH. Reported by Thorsten.
2850
2853
2851 2004-06-20 Fernando Perez <fperez@colorado.edu>
2854 2004-06-20 Fernando Perez <fperez@colorado.edu>
2852
2855
2853 * IPython/iplib.py (complete): modified the completer so that the
2856 * IPython/iplib.py (complete): modified the completer so that the
2854 order of priorities can be easily changed at runtime.
2857 order of priorities can be easily changed at runtime.
2855
2858
2856 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2859 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
2857 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2860 Modified to auto-execute all lines beginning with '~', '/' or '.'.
2858
2861
2859 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2862 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
2860 expand Python variables prepended with $ in all system calls. The
2863 expand Python variables prepended with $ in all system calls. The
2861 same was done to InteractiveShell.handle_shell_escape. Now all
2864 same was done to InteractiveShell.handle_shell_escape. Now all
2862 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2865 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
2863 expansion of python variables and expressions according to the
2866 expansion of python variables and expressions according to the
2864 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2867 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
2865
2868
2866 Though PEP-215 has been rejected, a similar (but simpler) one
2869 Though PEP-215 has been rejected, a similar (but simpler) one
2867 seems like it will go into Python 2.4, PEP-292 -
2870 seems like it will go into Python 2.4, PEP-292 -
2868 http://www.python.org/peps/pep-0292.html.
2871 http://www.python.org/peps/pep-0292.html.
2869
2872
2870 I'll keep the full syntax of PEP-215, since IPython has since the
2873 I'll keep the full syntax of PEP-215, since IPython has since the
2871 start used Ka-Ping Yee's reference implementation discussed there
2874 start used Ka-Ping Yee's reference implementation discussed there
2872 (Itpl), and I actually like the powerful semantics it offers.
2875 (Itpl), and I actually like the powerful semantics it offers.
2873
2876
2874 In order to access normal shell variables, the $ has to be escaped
2877 In order to access normal shell variables, the $ has to be escaped
2875 via an extra $. For example:
2878 via an extra $. For example:
2876
2879
2877 In [7]: PATH='a python variable'
2880 In [7]: PATH='a python variable'
2878
2881
2879 In [8]: !echo $PATH
2882 In [8]: !echo $PATH
2880 a python variable
2883 a python variable
2881
2884
2882 In [9]: !echo $$PATH
2885 In [9]: !echo $$PATH
2883 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2886 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
2884
2887
2885 (Magic.parse_options): escape $ so the shell doesn't evaluate
2888 (Magic.parse_options): escape $ so the shell doesn't evaluate
2886 things prematurely.
2889 things prematurely.
2887
2890
2888 * IPython/iplib.py (InteractiveShell.call_alias): added the
2891 * IPython/iplib.py (InteractiveShell.call_alias): added the
2889 ability for aliases to expand python variables via $.
2892 ability for aliases to expand python variables via $.
2890
2893
2891 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2894 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
2892 system, now there's a @rehash/@rehashx pair of magics. These work
2895 system, now there's a @rehash/@rehashx pair of magics. These work
2893 like the csh rehash command, and can be invoked at any time. They
2896 like the csh rehash command, and can be invoked at any time. They
2894 build a table of aliases to everything in the user's $PATH
2897 build a table of aliases to everything in the user's $PATH
2895 (@rehash uses everything, @rehashx is slower but only adds
2898 (@rehash uses everything, @rehashx is slower but only adds
2896 executable files). With this, the pysh.py-based shell profile can
2899 executable files). With this, the pysh.py-based shell profile can
2897 now simply call rehash upon startup, and full access to all
2900 now simply call rehash upon startup, and full access to all
2898 programs in the user's path is obtained.
2901 programs in the user's path is obtained.
2899
2902
2900 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2903 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
2901 functionality is now fully in place. I removed the old dynamic
2904 functionality is now fully in place. I removed the old dynamic
2902 code generation based approach, in favor of a much lighter one
2905 code generation based approach, in favor of a much lighter one
2903 based on a simple dict. The advantage is that this allows me to
2906 based on a simple dict. The advantage is that this allows me to
2904 now have thousands of aliases with negligible cost (unthinkable
2907 now have thousands of aliases with negligible cost (unthinkable
2905 with the old system).
2908 with the old system).
2906
2909
2907 2004-06-19 Fernando Perez <fperez@colorado.edu>
2910 2004-06-19 Fernando Perez <fperez@colorado.edu>
2908
2911
2909 * IPython/iplib.py (__init__): extended MagicCompleter class to
2912 * IPython/iplib.py (__init__): extended MagicCompleter class to
2910 also complete (last in priority) on user aliases.
2913 also complete (last in priority) on user aliases.
2911
2914
2912 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2915 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
2913 call to eval.
2916 call to eval.
2914 (ItplNS.__init__): Added a new class which functions like Itpl,
2917 (ItplNS.__init__): Added a new class which functions like Itpl,
2915 but allows configuring the namespace for the evaluation to occur
2918 but allows configuring the namespace for the evaluation to occur
2916 in.
2919 in.
2917
2920
2918 2004-06-18 Fernando Perez <fperez@colorado.edu>
2921 2004-06-18 Fernando Perez <fperez@colorado.edu>
2919
2922
2920 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2923 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
2921 better message when 'exit' or 'quit' are typed (a common newbie
2924 better message when 'exit' or 'quit' are typed (a common newbie
2922 confusion).
2925 confusion).
2923
2926
2924 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2927 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
2925 check for Windows users.
2928 check for Windows users.
2926
2929
2927 * IPython/iplib.py (InteractiveShell.user_setup): removed
2930 * IPython/iplib.py (InteractiveShell.user_setup): removed
2928 disabling of colors for Windows. I'll test at runtime and issue a
2931 disabling of colors for Windows. I'll test at runtime and issue a
2929 warning if Gary's readline isn't found, as to nudge users to
2932 warning if Gary's readline isn't found, as to nudge users to
2930 download it.
2933 download it.
2931
2934
2932 2004-06-16 Fernando Perez <fperez@colorado.edu>
2935 2004-06-16 Fernando Perez <fperez@colorado.edu>
2933
2936
2934 * IPython/genutils.py (Stream.__init__): changed to print errors
2937 * IPython/genutils.py (Stream.__init__): changed to print errors
2935 to sys.stderr. I had a circular dependency here. Now it's
2938 to sys.stderr. I had a circular dependency here. Now it's
2936 possible to run ipython as IDLE's shell (consider this pre-alpha,
2939 possible to run ipython as IDLE's shell (consider this pre-alpha,
2937 since true stdout things end up in the starting terminal instead
2940 since true stdout things end up in the starting terminal instead
2938 of IDLE's out).
2941 of IDLE's out).
2939
2942
2940 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2943 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
2941 users who haven't # updated their prompt_in2 definitions. Remove
2944 users who haven't # updated their prompt_in2 definitions. Remove
2942 eventually.
2945 eventually.
2943 (multiple_replace): added credit to original ASPN recipe.
2946 (multiple_replace): added credit to original ASPN recipe.
2944
2947
2945 2004-06-15 Fernando Perez <fperez@colorado.edu>
2948 2004-06-15 Fernando Perez <fperez@colorado.edu>
2946
2949
2947 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2950 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
2948 list of auto-defined aliases.
2951 list of auto-defined aliases.
2949
2952
2950 2004-06-13 Fernando Perez <fperez@colorado.edu>
2953 2004-06-13 Fernando Perez <fperez@colorado.edu>
2951
2954
2952 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2955 * setup.py (scriptfiles): Don't trigger win_post_install unless an
2953 install was really requested (so setup.py can be used for other
2956 install was really requested (so setup.py can be used for other
2954 things under Windows).
2957 things under Windows).
2955
2958
2956 2004-06-10 Fernando Perez <fperez@colorado.edu>
2959 2004-06-10 Fernando Perez <fperez@colorado.edu>
2957
2960
2958 * IPython/Logger.py (Logger.create_log): Manually remove any old
2961 * IPython/Logger.py (Logger.create_log): Manually remove any old
2959 backup, since os.remove may fail under Windows. Fixes bug
2962 backup, since os.remove may fail under Windows. Fixes bug
2960 reported by Thorsten.
2963 reported by Thorsten.
2961
2964
2962 2004-06-09 Fernando Perez <fperez@colorado.edu>
2965 2004-06-09 Fernando Perez <fperez@colorado.edu>
2963
2966
2964 * examples/example-embed.py: fixed all references to %n (replaced
2967 * examples/example-embed.py: fixed all references to %n (replaced
2965 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2968 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
2966 for all examples and the manual as well.
2969 for all examples and the manual as well.
2967
2970
2968 2004-06-08 Fernando Perez <fperez@colorado.edu>
2971 2004-06-08 Fernando Perez <fperez@colorado.edu>
2969
2972
2970 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2973 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
2971 alignment and color management. All 3 prompt subsystems now
2974 alignment and color management. All 3 prompt subsystems now
2972 inherit from BasePrompt.
2975 inherit from BasePrompt.
2973
2976
2974 * tools/release: updates for windows installer build and tag rpms
2977 * tools/release: updates for windows installer build and tag rpms
2975 with python version (since paths are fixed).
2978 with python version (since paths are fixed).
2976
2979
2977 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2980 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
2978 which will become eventually obsolete. Also fixed the default
2981 which will become eventually obsolete. Also fixed the default
2979 prompt_in2 to use \D, so at least new users start with the correct
2982 prompt_in2 to use \D, so at least new users start with the correct
2980 defaults.
2983 defaults.
2981 WARNING: Users with existing ipythonrc files will need to apply
2984 WARNING: Users with existing ipythonrc files will need to apply
2982 this fix manually!
2985 this fix manually!
2983
2986
2984 * setup.py: make windows installer (.exe). This is finally the
2987 * setup.py: make windows installer (.exe). This is finally the
2985 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2988 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
2986 which I hadn't included because it required Python 2.3 (or recent
2989 which I hadn't included because it required Python 2.3 (or recent
2987 distutils).
2990 distutils).
2988
2991
2989 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2992 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
2990 usage of new '\D' escape.
2993 usage of new '\D' escape.
2991
2994
2992 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2995 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
2993 lacks os.getuid())
2996 lacks os.getuid())
2994 (CachedOutput.set_colors): Added the ability to turn coloring
2997 (CachedOutput.set_colors): Added the ability to turn coloring
2995 on/off with @colors even for manually defined prompt colors. It
2998 on/off with @colors even for manually defined prompt colors. It
2996 uses a nasty global, but it works safely and via the generic color
2999 uses a nasty global, but it works safely and via the generic color
2997 handling mechanism.
3000 handling mechanism.
2998 (Prompt2.__init__): Introduced new escape '\D' for continuation
3001 (Prompt2.__init__): Introduced new escape '\D' for continuation
2999 prompts. It represents the counter ('\#') as dots.
3002 prompts. It represents the counter ('\#') as dots.
3000 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3003 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3001 need to update their ipythonrc files and replace '%n' with '\D' in
3004 need to update their ipythonrc files and replace '%n' with '\D' in
3002 their prompt_in2 settings everywhere. Sorry, but there's
3005 their prompt_in2 settings everywhere. Sorry, but there's
3003 otherwise no clean way to get all prompts to properly align. The
3006 otherwise no clean way to get all prompts to properly align. The
3004 ipythonrc shipped with IPython has been updated.
3007 ipythonrc shipped with IPython has been updated.
3005
3008
3006 2004-06-07 Fernando Perez <fperez@colorado.edu>
3009 2004-06-07 Fernando Perez <fperez@colorado.edu>
3007
3010
3008 * setup.py (isfile): Pass local_icons option to latex2html, so the
3011 * setup.py (isfile): Pass local_icons option to latex2html, so the
3009 resulting HTML file is self-contained. Thanks to
3012 resulting HTML file is self-contained. Thanks to
3010 dryice-AT-liu.com.cn for the tip.
3013 dryice-AT-liu.com.cn for the tip.
3011
3014
3012 * pysh.py: I created a new profile 'shell', which implements a
3015 * pysh.py: I created a new profile 'shell', which implements a
3013 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3016 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3014 system shell, nor will it become one anytime soon. It's mainly
3017 system shell, nor will it become one anytime soon. It's mainly
3015 meant to illustrate the use of the new flexible bash-like prompts.
3018 meant to illustrate the use of the new flexible bash-like prompts.
3016 I guess it could be used by hardy souls for true shell management,
3019 I guess it could be used by hardy souls for true shell management,
3017 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3020 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3018 profile. This uses the InterpreterExec extension provided by
3021 profile. This uses the InterpreterExec extension provided by
3019 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3022 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3020
3023
3021 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3024 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3022 auto-align itself with the length of the previous input prompt
3025 auto-align itself with the length of the previous input prompt
3023 (taking into account the invisible color escapes).
3026 (taking into account the invisible color escapes).
3024 (CachedOutput.__init__): Large restructuring of this class. Now
3027 (CachedOutput.__init__): Large restructuring of this class. Now
3025 all three prompts (primary1, primary2, output) are proper objects,
3028 all three prompts (primary1, primary2, output) are proper objects,
3026 managed by the 'parent' CachedOutput class. The code is still a
3029 managed by the 'parent' CachedOutput class. The code is still a
3027 bit hackish (all prompts share state via a pointer to the cache),
3030 bit hackish (all prompts share state via a pointer to the cache),
3028 but it's overall far cleaner than before.
3031 but it's overall far cleaner than before.
3029
3032
3030 * IPython/genutils.py (getoutputerror): modified to add verbose,
3033 * IPython/genutils.py (getoutputerror): modified to add verbose,
3031 debug and header options. This makes the interface of all getout*
3034 debug and header options. This makes the interface of all getout*
3032 functions uniform.
3035 functions uniform.
3033 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3036 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3034
3037
3035 * IPython/Magic.py (Magic.default_option): added a function to
3038 * IPython/Magic.py (Magic.default_option): added a function to
3036 allow registering default options for any magic command. This
3039 allow registering default options for any magic command. This
3037 makes it easy to have profiles which customize the magics globally
3040 makes it easy to have profiles which customize the magics globally
3038 for a certain use. The values set through this function are
3041 for a certain use. The values set through this function are
3039 picked up by the parse_options() method, which all magics should
3042 picked up by the parse_options() method, which all magics should
3040 use to parse their options.
3043 use to parse their options.
3041
3044
3042 * IPython/genutils.py (warn): modified the warnings framework to
3045 * IPython/genutils.py (warn): modified the warnings framework to
3043 use the Term I/O class. I'm trying to slowly unify all of
3046 use the Term I/O class. I'm trying to slowly unify all of
3044 IPython's I/O operations to pass through Term.
3047 IPython's I/O operations to pass through Term.
3045
3048
3046 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3049 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3047 the secondary prompt to correctly match the length of the primary
3050 the secondary prompt to correctly match the length of the primary
3048 one for any prompt. Now multi-line code will properly line up
3051 one for any prompt. Now multi-line code will properly line up
3049 even for path dependent prompts, such as the new ones available
3052 even for path dependent prompts, such as the new ones available
3050 via the prompt_specials.
3053 via the prompt_specials.
3051
3054
3052 2004-06-06 Fernando Perez <fperez@colorado.edu>
3055 2004-06-06 Fernando Perez <fperez@colorado.edu>
3053
3056
3054 * IPython/Prompts.py (prompt_specials): Added the ability to have
3057 * IPython/Prompts.py (prompt_specials): Added the ability to have
3055 bash-like special sequences in the prompts, which get
3058 bash-like special sequences in the prompts, which get
3056 automatically expanded. Things like hostname, current working
3059 automatically expanded. Things like hostname, current working
3057 directory and username are implemented already, but it's easy to
3060 directory and username are implemented already, but it's easy to
3058 add more in the future. Thanks to a patch by W.J. van der Laan
3061 add more in the future. Thanks to a patch by W.J. van der Laan
3059 <gnufnork-AT-hetdigitalegat.nl>
3062 <gnufnork-AT-hetdigitalegat.nl>
3060 (prompt_specials): Added color support for prompt strings, so
3063 (prompt_specials): Added color support for prompt strings, so
3061 users can define arbitrary color setups for their prompts.
3064 users can define arbitrary color setups for their prompts.
3062
3065
3063 2004-06-05 Fernando Perez <fperez@colorado.edu>
3066 2004-06-05 Fernando Perez <fperez@colorado.edu>
3064
3067
3065 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3068 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3066 code to load Gary Bishop's readline and configure it
3069 code to load Gary Bishop's readline and configure it
3067 automatically. Thanks to Gary for help on this.
3070 automatically. Thanks to Gary for help on this.
3068
3071
3069 2004-06-01 Fernando Perez <fperez@colorado.edu>
3072 2004-06-01 Fernando Perez <fperez@colorado.edu>
3070
3073
3071 * IPython/Logger.py (Logger.create_log): fix bug for logging
3074 * IPython/Logger.py (Logger.create_log): fix bug for logging
3072 with no filename (previous fix was incomplete).
3075 with no filename (previous fix was incomplete).
3073
3076
3074 2004-05-25 Fernando Perez <fperez@colorado.edu>
3077 2004-05-25 Fernando Perez <fperez@colorado.edu>
3075
3078
3076 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3079 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3077 parens would get passed to the shell.
3080 parens would get passed to the shell.
3078
3081
3079 2004-05-20 Fernando Perez <fperez@colorado.edu>
3082 2004-05-20 Fernando Perez <fperez@colorado.edu>
3080
3083
3081 * IPython/Magic.py (Magic.magic_prun): changed default profile
3084 * IPython/Magic.py (Magic.magic_prun): changed default profile
3082 sort order to 'time' (the more common profiling need).
3085 sort order to 'time' (the more common profiling need).
3083
3086
3084 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3087 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3085 so that source code shown is guaranteed in sync with the file on
3088 so that source code shown is guaranteed in sync with the file on
3086 disk (also changed in psource). Similar fix to the one for
3089 disk (also changed in psource). Similar fix to the one for
3087 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3090 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3088 <yann.ledu-AT-noos.fr>.
3091 <yann.ledu-AT-noos.fr>.
3089
3092
3090 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3093 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3091 with a single option would not be correctly parsed. Closes
3094 with a single option would not be correctly parsed. Closes
3092 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3095 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3093 introduced in 0.6.0 (on 2004-05-06).
3096 introduced in 0.6.0 (on 2004-05-06).
3094
3097
3095 2004-05-13 *** Released version 0.6.0
3098 2004-05-13 *** Released version 0.6.0
3096
3099
3097 2004-05-13 Fernando Perez <fperez@colorado.edu>
3100 2004-05-13 Fernando Perez <fperez@colorado.edu>
3098
3101
3099 * debian/: Added debian/ directory to CVS, so that debian support
3102 * debian/: Added debian/ directory to CVS, so that debian support
3100 is publicly accessible. The debian package is maintained by Jack
3103 is publicly accessible. The debian package is maintained by Jack
3101 Moffit <jack-AT-xiph.org>.
3104 Moffit <jack-AT-xiph.org>.
3102
3105
3103 * Documentation: included the notes about an ipython-based system
3106 * Documentation: included the notes about an ipython-based system
3104 shell (the hypothetical 'pysh') into the new_design.pdf document,
3107 shell (the hypothetical 'pysh') into the new_design.pdf document,
3105 so that these ideas get distributed to users along with the
3108 so that these ideas get distributed to users along with the
3106 official documentation.
3109 official documentation.
3107
3110
3108 2004-05-10 Fernando Perez <fperez@colorado.edu>
3111 2004-05-10 Fernando Perez <fperez@colorado.edu>
3109
3112
3110 * IPython/Logger.py (Logger.create_log): fix recently introduced
3113 * IPython/Logger.py (Logger.create_log): fix recently introduced
3111 bug (misindented line) where logstart would fail when not given an
3114 bug (misindented line) where logstart would fail when not given an
3112 explicit filename.
3115 explicit filename.
3113
3116
3114 2004-05-09 Fernando Perez <fperez@colorado.edu>
3117 2004-05-09 Fernando Perez <fperez@colorado.edu>
3115
3118
3116 * IPython/Magic.py (Magic.parse_options): skip system call when
3119 * IPython/Magic.py (Magic.parse_options): skip system call when
3117 there are no options to look for. Faster, cleaner for the common
3120 there are no options to look for. Faster, cleaner for the common
3118 case.
3121 case.
3119
3122
3120 * Documentation: many updates to the manual: describing Windows
3123 * Documentation: many updates to the manual: describing Windows
3121 support better, Gnuplot updates, credits, misc small stuff. Also
3124 support better, Gnuplot updates, credits, misc small stuff. Also
3122 updated the new_design doc a bit.
3125 updated the new_design doc a bit.
3123
3126
3124 2004-05-06 *** Released version 0.6.0.rc1
3127 2004-05-06 *** Released version 0.6.0.rc1
3125
3128
3126 2004-05-06 Fernando Perez <fperez@colorado.edu>
3129 2004-05-06 Fernando Perez <fperez@colorado.edu>
3127
3130
3128 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3131 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3129 operations to use the vastly more efficient list/''.join() method.
3132 operations to use the vastly more efficient list/''.join() method.
3130 (FormattedTB.text): Fix
3133 (FormattedTB.text): Fix
3131 http://www.scipy.net/roundup/ipython/issue12 - exception source
3134 http://www.scipy.net/roundup/ipython/issue12 - exception source
3132 extract not updated after reload. Thanks to Mike Salib
3135 extract not updated after reload. Thanks to Mike Salib
3133 <msalib-AT-mit.edu> for pinning the source of the problem.
3136 <msalib-AT-mit.edu> for pinning the source of the problem.
3134 Fortunately, the solution works inside ipython and doesn't require
3137 Fortunately, the solution works inside ipython and doesn't require
3135 any changes to python proper.
3138 any changes to python proper.
3136
3139
3137 * IPython/Magic.py (Magic.parse_options): Improved to process the
3140 * IPython/Magic.py (Magic.parse_options): Improved to process the
3138 argument list as a true shell would (by actually using the
3141 argument list as a true shell would (by actually using the
3139 underlying system shell). This way, all @magics automatically get
3142 underlying system shell). This way, all @magics automatically get
3140 shell expansion for variables. Thanks to a comment by Alex
3143 shell expansion for variables. Thanks to a comment by Alex
3141 Schmolck.
3144 Schmolck.
3142
3145
3143 2004-04-04 Fernando Perez <fperez@colorado.edu>
3146 2004-04-04 Fernando Perez <fperez@colorado.edu>
3144
3147
3145 * IPython/iplib.py (InteractiveShell.interact): Added a special
3148 * IPython/iplib.py (InteractiveShell.interact): Added a special
3146 trap for a debugger quit exception, which is basically impossible
3149 trap for a debugger quit exception, which is basically impossible
3147 to handle by normal mechanisms, given what pdb does to the stack.
3150 to handle by normal mechanisms, given what pdb does to the stack.
3148 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3151 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3149
3152
3150 2004-04-03 Fernando Perez <fperez@colorado.edu>
3153 2004-04-03 Fernando Perez <fperez@colorado.edu>
3151
3154
3152 * IPython/genutils.py (Term): Standardized the names of the Term
3155 * IPython/genutils.py (Term): Standardized the names of the Term
3153 class streams to cin/cout/cerr, following C++ naming conventions
3156 class streams to cin/cout/cerr, following C++ naming conventions
3154 (I can't use in/out/err because 'in' is not a valid attribute
3157 (I can't use in/out/err because 'in' is not a valid attribute
3155 name).
3158 name).
3156
3159
3157 * IPython/iplib.py (InteractiveShell.interact): don't increment
3160 * IPython/iplib.py (InteractiveShell.interact): don't increment
3158 the prompt if there's no user input. By Daniel 'Dang' Griffith
3161 the prompt if there's no user input. By Daniel 'Dang' Griffith
3159 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3162 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3160 Francois Pinard.
3163 Francois Pinard.
3161
3164
3162 2004-04-02 Fernando Perez <fperez@colorado.edu>
3165 2004-04-02 Fernando Perez <fperez@colorado.edu>
3163
3166
3164 * IPython/genutils.py (Stream.__init__): Modified to survive at
3167 * IPython/genutils.py (Stream.__init__): Modified to survive at
3165 least importing in contexts where stdin/out/err aren't true file
3168 least importing in contexts where stdin/out/err aren't true file
3166 objects, such as PyCrust (they lack fileno() and mode). However,
3169 objects, such as PyCrust (they lack fileno() and mode). However,
3167 the recovery facilities which rely on these things existing will
3170 the recovery facilities which rely on these things existing will
3168 not work.
3171 not work.
3169
3172
3170 2004-04-01 Fernando Perez <fperez@colorado.edu>
3173 2004-04-01 Fernando Perez <fperez@colorado.edu>
3171
3174
3172 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3175 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3173 use the new getoutputerror() function, so it properly
3176 use the new getoutputerror() function, so it properly
3174 distinguishes stdout/err.
3177 distinguishes stdout/err.
3175
3178
3176 * IPython/genutils.py (getoutputerror): added a function to
3179 * IPython/genutils.py (getoutputerror): added a function to
3177 capture separately the standard output and error of a command.
3180 capture separately the standard output and error of a command.
3178 After a comment from dang on the mailing lists. This code is
3181 After a comment from dang on the mailing lists. This code is
3179 basically a modified version of commands.getstatusoutput(), from
3182 basically a modified version of commands.getstatusoutput(), from
3180 the standard library.
3183 the standard library.
3181
3184
3182 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3185 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3183 '!!' as a special syntax (shorthand) to access @sx.
3186 '!!' as a special syntax (shorthand) to access @sx.
3184
3187
3185 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3188 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3186 command and return its output as a list split on '\n'.
3189 command and return its output as a list split on '\n'.
3187
3190
3188 2004-03-31 Fernando Perez <fperez@colorado.edu>
3191 2004-03-31 Fernando Perez <fperez@colorado.edu>
3189
3192
3190 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3193 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3191 method to dictionaries used as FakeModule instances if they lack
3194 method to dictionaries used as FakeModule instances if they lack
3192 it. At least pydoc in python2.3 breaks for runtime-defined
3195 it. At least pydoc in python2.3 breaks for runtime-defined
3193 functions without this hack. At some point I need to _really_
3196 functions without this hack. At some point I need to _really_
3194 understand what FakeModule is doing, because it's a gross hack.
3197 understand what FakeModule is doing, because it's a gross hack.
3195 But it solves Arnd's problem for now...
3198 But it solves Arnd's problem for now...
3196
3199
3197 2004-02-27 Fernando Perez <fperez@colorado.edu>
3200 2004-02-27 Fernando Perez <fperez@colorado.edu>
3198
3201
3199 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3202 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3200 mode would behave erratically. Also increased the number of
3203 mode would behave erratically. Also increased the number of
3201 possible logs in rotate mod to 999. Thanks to Rod Holland
3204 possible logs in rotate mod to 999. Thanks to Rod Holland
3202 <rhh@StructureLABS.com> for the report and fixes.
3205 <rhh@StructureLABS.com> for the report and fixes.
3203
3206
3204 2004-02-26 Fernando Perez <fperez@colorado.edu>
3207 2004-02-26 Fernando Perez <fperez@colorado.edu>
3205
3208
3206 * IPython/genutils.py (page): Check that the curses module really
3209 * IPython/genutils.py (page): Check that the curses module really
3207 has the initscr attribute before trying to use it. For some
3210 has the initscr attribute before trying to use it. For some
3208 reason, the Solaris curses module is missing this. I think this
3211 reason, the Solaris curses module is missing this. I think this
3209 should be considered a Solaris python bug, but I'm not sure.
3212 should be considered a Solaris python bug, but I'm not sure.
3210
3213
3211 2004-01-17 Fernando Perez <fperez@colorado.edu>
3214 2004-01-17 Fernando Perez <fperez@colorado.edu>
3212
3215
3213 * IPython/genutils.py (Stream.__init__): Changes to try to make
3216 * IPython/genutils.py (Stream.__init__): Changes to try to make
3214 ipython robust against stdin/out/err being closed by the user.
3217 ipython robust against stdin/out/err being closed by the user.
3215 This is 'user error' (and blocks a normal python session, at least
3218 This is 'user error' (and blocks a normal python session, at least
3216 the stdout case). However, Ipython should be able to survive such
3219 the stdout case). However, Ipython should be able to survive such
3217 instances of abuse as gracefully as possible. To simplify the
3220 instances of abuse as gracefully as possible. To simplify the
3218 coding and maintain compatibility with Gary Bishop's Term
3221 coding and maintain compatibility with Gary Bishop's Term
3219 contributions, I've made use of classmethods for this. I think
3222 contributions, I've made use of classmethods for this. I think
3220 this introduces a dependency on python 2.2.
3223 this introduces a dependency on python 2.2.
3221
3224
3222 2004-01-13 Fernando Perez <fperez@colorado.edu>
3225 2004-01-13 Fernando Perez <fperez@colorado.edu>
3223
3226
3224 * IPython/numutils.py (exp_safe): simplified the code a bit and
3227 * IPython/numutils.py (exp_safe): simplified the code a bit and
3225 removed the need for importing the kinds module altogether.
3228 removed the need for importing the kinds module altogether.
3226
3229
3227 2004-01-06 Fernando Perez <fperez@colorado.edu>
3230 2004-01-06 Fernando Perez <fperez@colorado.edu>
3228
3231
3229 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3232 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3230 a magic function instead, after some community feedback. No
3233 a magic function instead, after some community feedback. No
3231 special syntax will exist for it, but its name is deliberately
3234 special syntax will exist for it, but its name is deliberately
3232 very short.
3235 very short.
3233
3236
3234 2003-12-20 Fernando Perez <fperez@colorado.edu>
3237 2003-12-20 Fernando Perez <fperez@colorado.edu>
3235
3238
3236 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3239 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3237 new functionality, to automagically assign the result of a shell
3240 new functionality, to automagically assign the result of a shell
3238 command to a variable. I'll solicit some community feedback on
3241 command to a variable. I'll solicit some community feedback on
3239 this before making it permanent.
3242 this before making it permanent.
3240
3243
3241 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3244 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3242 requested about callables for which inspect couldn't obtain a
3245 requested about callables for which inspect couldn't obtain a
3243 proper argspec. Thanks to a crash report sent by Etienne
3246 proper argspec. Thanks to a crash report sent by Etienne
3244 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3247 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3245
3248
3246 2003-12-09 Fernando Perez <fperez@colorado.edu>
3249 2003-12-09 Fernando Perez <fperez@colorado.edu>
3247
3250
3248 * IPython/genutils.py (page): patch for the pager to work across
3251 * IPython/genutils.py (page): patch for the pager to work across
3249 various versions of Windows. By Gary Bishop.
3252 various versions of Windows. By Gary Bishop.
3250
3253
3251 2003-12-04 Fernando Perez <fperez@colorado.edu>
3254 2003-12-04 Fernando Perez <fperez@colorado.edu>
3252
3255
3253 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3256 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3254 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3257 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3255 While I tested this and it looks ok, there may still be corner
3258 While I tested this and it looks ok, there may still be corner
3256 cases I've missed.
3259 cases I've missed.
3257
3260
3258 2003-12-01 Fernando Perez <fperez@colorado.edu>
3261 2003-12-01 Fernando Perez <fperez@colorado.edu>
3259
3262
3260 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3263 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3261 where a line like 'p,q=1,2' would fail because the automagic
3264 where a line like 'p,q=1,2' would fail because the automagic
3262 system would be triggered for @p.
3265 system would be triggered for @p.
3263
3266
3264 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3267 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3265 cleanups, code unmodified.
3268 cleanups, code unmodified.
3266
3269
3267 * IPython/genutils.py (Term): added a class for IPython to handle
3270 * IPython/genutils.py (Term): added a class for IPython to handle
3268 output. In most cases it will just be a proxy for stdout/err, but
3271 output. In most cases it will just be a proxy for stdout/err, but
3269 having this allows modifications to be made for some platforms,
3272 having this allows modifications to be made for some platforms,
3270 such as handling color escapes under Windows. All of this code
3273 such as handling color escapes under Windows. All of this code
3271 was contributed by Gary Bishop, with minor modifications by me.
3274 was contributed by Gary Bishop, with minor modifications by me.
3272 The actual changes affect many files.
3275 The actual changes affect many files.
3273
3276
3274 2003-11-30 Fernando Perez <fperez@colorado.edu>
3277 2003-11-30 Fernando Perez <fperez@colorado.edu>
3275
3278
3276 * IPython/iplib.py (file_matches): new completion code, courtesy
3279 * IPython/iplib.py (file_matches): new completion code, courtesy
3277 of Jeff Collins. This enables filename completion again under
3280 of Jeff Collins. This enables filename completion again under
3278 python 2.3, which disabled it at the C level.
3281 python 2.3, which disabled it at the C level.
3279
3282
3280 2003-11-11 Fernando Perez <fperez@colorado.edu>
3283 2003-11-11 Fernando Perez <fperez@colorado.edu>
3281
3284
3282 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3285 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3283 for Numeric.array(map(...)), but often convenient.
3286 for Numeric.array(map(...)), but often convenient.
3284
3287
3285 2003-11-05 Fernando Perez <fperez@colorado.edu>
3288 2003-11-05 Fernando Perez <fperez@colorado.edu>
3286
3289
3287 * IPython/numutils.py (frange): Changed a call from int() to
3290 * IPython/numutils.py (frange): Changed a call from int() to
3288 int(round()) to prevent a problem reported with arange() in the
3291 int(round()) to prevent a problem reported with arange() in the
3289 numpy list.
3292 numpy list.
3290
3293
3291 2003-10-06 Fernando Perez <fperez@colorado.edu>
3294 2003-10-06 Fernando Perez <fperez@colorado.edu>
3292
3295
3293 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3296 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3294 prevent crashes if sys lacks an argv attribute (it happens with
3297 prevent crashes if sys lacks an argv attribute (it happens with
3295 embedded interpreters which build a bare-bones sys module).
3298 embedded interpreters which build a bare-bones sys module).
3296 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3299 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3297
3300
3298 2003-09-24 Fernando Perez <fperez@colorado.edu>
3301 2003-09-24 Fernando Perez <fperez@colorado.edu>
3299
3302
3300 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3303 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3301 to protect against poorly written user objects where __getattr__
3304 to protect against poorly written user objects where __getattr__
3302 raises exceptions other than AttributeError. Thanks to a bug
3305 raises exceptions other than AttributeError. Thanks to a bug
3303 report by Oliver Sander <osander-AT-gmx.de>.
3306 report by Oliver Sander <osander-AT-gmx.de>.
3304
3307
3305 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3308 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3306 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3309 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3307
3310
3308 2003-09-09 Fernando Perez <fperez@colorado.edu>
3311 2003-09-09 Fernando Perez <fperez@colorado.edu>
3309
3312
3310 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3313 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3311 unpacking a list whith a callable as first element would
3314 unpacking a list whith a callable as first element would
3312 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3315 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3313 Collins.
3316 Collins.
3314
3317
3315 2003-08-25 *** Released version 0.5.0
3318 2003-08-25 *** Released version 0.5.0
3316
3319
3317 2003-08-22 Fernando Perez <fperez@colorado.edu>
3320 2003-08-22 Fernando Perez <fperez@colorado.edu>
3318
3321
3319 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3322 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3320 improperly defined user exceptions. Thanks to feedback from Mark
3323 improperly defined user exceptions. Thanks to feedback from Mark
3321 Russell <mrussell-AT-verio.net>.
3324 Russell <mrussell-AT-verio.net>.
3322
3325
3323 2003-08-20 Fernando Perez <fperez@colorado.edu>
3326 2003-08-20 Fernando Perez <fperez@colorado.edu>
3324
3327
3325 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3328 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3326 printing so that it would print multi-line string forms starting
3329 printing so that it would print multi-line string forms starting
3327 with a new line. This way the formatting is better respected for
3330 with a new line. This way the formatting is better respected for
3328 objects which work hard to make nice string forms.
3331 objects which work hard to make nice string forms.
3329
3332
3330 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3333 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3331 autocall would overtake data access for objects with both
3334 autocall would overtake data access for objects with both
3332 __getitem__ and __call__.
3335 __getitem__ and __call__.
3333
3336
3334 2003-08-19 *** Released version 0.5.0-rc1
3337 2003-08-19 *** Released version 0.5.0-rc1
3335
3338
3336 2003-08-19 Fernando Perez <fperez@colorado.edu>
3339 2003-08-19 Fernando Perez <fperez@colorado.edu>
3337
3340
3338 * IPython/deep_reload.py (load_tail): single tiny change here
3341 * IPython/deep_reload.py (load_tail): single tiny change here
3339 seems to fix the long-standing bug of dreload() failing to work
3342 seems to fix the long-standing bug of dreload() failing to work
3340 for dotted names. But this module is pretty tricky, so I may have
3343 for dotted names. But this module is pretty tricky, so I may have
3341 missed some subtlety. Needs more testing!.
3344 missed some subtlety. Needs more testing!.
3342
3345
3343 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3346 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3344 exceptions which have badly implemented __str__ methods.
3347 exceptions which have badly implemented __str__ methods.
3345 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3348 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3346 which I've been getting reports about from Python 2.3 users. I
3349 which I've been getting reports about from Python 2.3 users. I
3347 wish I had a simple test case to reproduce the problem, so I could
3350 wish I had a simple test case to reproduce the problem, so I could
3348 either write a cleaner workaround or file a bug report if
3351 either write a cleaner workaround or file a bug report if
3349 necessary.
3352 necessary.
3350
3353
3351 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3354 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3352 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3355 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3353 a bug report by Tjabo Kloppenburg.
3356 a bug report by Tjabo Kloppenburg.
3354
3357
3355 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3358 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
3356 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3359 crashes. Wrapped the pdb call in a blanket try/except, since pdb
3357 seems rather unstable. Thanks to a bug report by Tjabo
3360 seems rather unstable. Thanks to a bug report by Tjabo
3358 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3361 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
3359
3362
3360 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3363 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
3361 this out soon because of the critical fixes in the inner loop for
3364 this out soon because of the critical fixes in the inner loop for
3362 generators.
3365 generators.
3363
3366
3364 * IPython/Magic.py (Magic.getargspec): removed. This (and
3367 * IPython/Magic.py (Magic.getargspec): removed. This (and
3365 _get_def) have been obsoleted by OInspect for a long time, I
3368 _get_def) have been obsoleted by OInspect for a long time, I
3366 hadn't noticed that they were dead code.
3369 hadn't noticed that they were dead code.
3367 (Magic._ofind): restored _ofind functionality for a few literals
3370 (Magic._ofind): restored _ofind functionality for a few literals
3368 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3371 (those in ["''",'""','[]','{}','()']). But it won't work anymore
3369 for things like "hello".capitalize?, since that would require a
3372 for things like "hello".capitalize?, since that would require a
3370 potentially dangerous eval() again.
3373 potentially dangerous eval() again.
3371
3374
3372 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3375 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
3373 logic a bit more to clean up the escapes handling and minimize the
3376 logic a bit more to clean up the escapes handling and minimize the
3374 use of _ofind to only necessary cases. The interactive 'feel' of
3377 use of _ofind to only necessary cases. The interactive 'feel' of
3375 IPython should have improved quite a bit with the changes in
3378 IPython should have improved quite a bit with the changes in
3376 _prefilter and _ofind (besides being far safer than before).
3379 _prefilter and _ofind (besides being far safer than before).
3377
3380
3378 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3381 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
3379 obscure, never reported). Edit would fail to find the object to
3382 obscure, never reported). Edit would fail to find the object to
3380 edit under some circumstances.
3383 edit under some circumstances.
3381 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3384 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
3382 which were causing double-calling of generators. Those eval calls
3385 which were causing double-calling of generators. Those eval calls
3383 were _very_ dangerous, since code with side effects could be
3386 were _very_ dangerous, since code with side effects could be
3384 triggered. As they say, 'eval is evil'... These were the
3387 triggered. As they say, 'eval is evil'... These were the
3385 nastiest evals in IPython. Besides, _ofind is now far simpler,
3388 nastiest evals in IPython. Besides, _ofind is now far simpler,
3386 and it should also be quite a bit faster. Its use of inspect is
3389 and it should also be quite a bit faster. Its use of inspect is
3387 also safer, so perhaps some of the inspect-related crashes I've
3390 also safer, so perhaps some of the inspect-related crashes I've
3388 seen lately with Python 2.3 might be taken care of. That will
3391 seen lately with Python 2.3 might be taken care of. That will
3389 need more testing.
3392 need more testing.
3390
3393
3391 2003-08-17 Fernando Perez <fperez@colorado.edu>
3394 2003-08-17 Fernando Perez <fperez@colorado.edu>
3392
3395
3393 * IPython/iplib.py (InteractiveShell._prefilter): significant
3396 * IPython/iplib.py (InteractiveShell._prefilter): significant
3394 simplifications to the logic for handling user escapes. Faster
3397 simplifications to the logic for handling user escapes. Faster
3395 and simpler code.
3398 and simpler code.
3396
3399
3397 2003-08-14 Fernando Perez <fperez@colorado.edu>
3400 2003-08-14 Fernando Perez <fperez@colorado.edu>
3398
3401
3399 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3402 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
3400 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3403 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
3401 but it should be quite a bit faster. And the recursive version
3404 but it should be quite a bit faster. And the recursive version
3402 generated O(log N) intermediate storage for all rank>1 arrays,
3405 generated O(log N) intermediate storage for all rank>1 arrays,
3403 even if they were contiguous.
3406 even if they were contiguous.
3404 (l1norm): Added this function.
3407 (l1norm): Added this function.
3405 (norm): Added this function for arbitrary norms (including
3408 (norm): Added this function for arbitrary norms (including
3406 l-infinity). l1 and l2 are still special cases for convenience
3409 l-infinity). l1 and l2 are still special cases for convenience
3407 and speed.
3410 and speed.
3408
3411
3409 2003-08-03 Fernando Perez <fperez@colorado.edu>
3412 2003-08-03 Fernando Perez <fperez@colorado.edu>
3410
3413
3411 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3414 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
3412 exceptions, which now raise PendingDeprecationWarnings in Python
3415 exceptions, which now raise PendingDeprecationWarnings in Python
3413 2.3. There were some in Magic and some in Gnuplot2.
3416 2.3. There were some in Magic and some in Gnuplot2.
3414
3417
3415 2003-06-30 Fernando Perez <fperez@colorado.edu>
3418 2003-06-30 Fernando Perez <fperez@colorado.edu>
3416
3419
3417 * IPython/genutils.py (page): modified to call curses only for
3420 * IPython/genutils.py (page): modified to call curses only for
3418 terminals where TERM=='xterm'. After problems under many other
3421 terminals where TERM=='xterm'. After problems under many other
3419 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3422 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
3420
3423
3421 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3424 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
3422 would be triggered when readline was absent. This was just an old
3425 would be triggered when readline was absent. This was just an old
3423 debugging statement I'd forgotten to take out.
3426 debugging statement I'd forgotten to take out.
3424
3427
3425 2003-06-20 Fernando Perez <fperez@colorado.edu>
3428 2003-06-20 Fernando Perez <fperez@colorado.edu>
3426
3429
3427 * IPython/genutils.py (clock): modified to return only user time
3430 * IPython/genutils.py (clock): modified to return only user time
3428 (not counting system time), after a discussion on scipy. While
3431 (not counting system time), after a discussion on scipy. While
3429 system time may be a useful quantity occasionally, it may much
3432 system time may be a useful quantity occasionally, it may much
3430 more easily be skewed by occasional swapping or other similar
3433 more easily be skewed by occasional swapping or other similar
3431 activity.
3434 activity.
3432
3435
3433 2003-06-05 Fernando Perez <fperez@colorado.edu>
3436 2003-06-05 Fernando Perez <fperez@colorado.edu>
3434
3437
3435 * IPython/numutils.py (identity): new function, for building
3438 * IPython/numutils.py (identity): new function, for building
3436 arbitrary rank Kronecker deltas (mostly backwards compatible with
3439 arbitrary rank Kronecker deltas (mostly backwards compatible with
3437 Numeric.identity)
3440 Numeric.identity)
3438
3441
3439 2003-06-03 Fernando Perez <fperez@colorado.edu>
3442 2003-06-03 Fernando Perez <fperez@colorado.edu>
3440
3443
3441 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3444 * IPython/iplib.py (InteractiveShell.handle_magic): protect
3442 arguments passed to magics with spaces, to allow trailing '\' to
3445 arguments passed to magics with spaces, to allow trailing '\' to
3443 work normally (mainly for Windows users).
3446 work normally (mainly for Windows users).
3444
3447
3445 2003-05-29 Fernando Perez <fperez@colorado.edu>
3448 2003-05-29 Fernando Perez <fperez@colorado.edu>
3446
3449
3447 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3450 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
3448 instead of pydoc.help. This fixes a bizarre behavior where
3451 instead of pydoc.help. This fixes a bizarre behavior where
3449 printing '%s' % locals() would trigger the help system. Now
3452 printing '%s' % locals() would trigger the help system. Now
3450 ipython behaves like normal python does.
3453 ipython behaves like normal python does.
3451
3454
3452 Note that if one does 'from pydoc import help', the bizarre
3455 Note that if one does 'from pydoc import help', the bizarre
3453 behavior returns, but this will also happen in normal python, so
3456 behavior returns, but this will also happen in normal python, so
3454 it's not an ipython bug anymore (it has to do with how pydoc.help
3457 it's not an ipython bug anymore (it has to do with how pydoc.help
3455 is implemented).
3458 is implemented).
3456
3459
3457 2003-05-22 Fernando Perez <fperez@colorado.edu>
3460 2003-05-22 Fernando Perez <fperez@colorado.edu>
3458
3461
3459 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3462 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
3460 return [] instead of None when nothing matches, also match to end
3463 return [] instead of None when nothing matches, also match to end
3461 of line. Patch by Gary Bishop.
3464 of line. Patch by Gary Bishop.
3462
3465
3463 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3466 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
3464 protection as before, for files passed on the command line. This
3467 protection as before, for files passed on the command line. This
3465 prevents the CrashHandler from kicking in if user files call into
3468 prevents the CrashHandler from kicking in if user files call into
3466 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3469 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
3467 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3470 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
3468
3471
3469 2003-05-20 *** Released version 0.4.0
3472 2003-05-20 *** Released version 0.4.0
3470
3473
3471 2003-05-20 Fernando Perez <fperez@colorado.edu>
3474 2003-05-20 Fernando Perez <fperez@colorado.edu>
3472
3475
3473 * setup.py: added support for manpages. It's a bit hackish b/c of
3476 * setup.py: added support for manpages. It's a bit hackish b/c of
3474 a bug in the way the bdist_rpm distutils target handles gzipped
3477 a bug in the way the bdist_rpm distutils target handles gzipped
3475 manpages, but it works. After a patch by Jack.
3478 manpages, but it works. After a patch by Jack.
3476
3479
3477 2003-05-19 Fernando Perez <fperez@colorado.edu>
3480 2003-05-19 Fernando Perez <fperez@colorado.edu>
3478
3481
3479 * IPython/numutils.py: added a mockup of the kinds module, since
3482 * IPython/numutils.py: added a mockup of the kinds module, since
3480 it was recently removed from Numeric. This way, numutils will
3483 it was recently removed from Numeric. This way, numutils will
3481 work for all users even if they are missing kinds.
3484 work for all users even if they are missing kinds.
3482
3485
3483 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3486 * IPython/Magic.py (Magic._ofind): Harden against an inspect
3484 failure, which can occur with SWIG-wrapped extensions. After a
3487 failure, which can occur with SWIG-wrapped extensions. After a
3485 crash report from Prabhu.
3488 crash report from Prabhu.
3486
3489
3487 2003-05-16 Fernando Perez <fperez@colorado.edu>
3490 2003-05-16 Fernando Perez <fperez@colorado.edu>
3488
3491
3489 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3492 * IPython/iplib.py (InteractiveShell.excepthook): New method to
3490 protect ipython from user code which may call directly
3493 protect ipython from user code which may call directly
3491 sys.excepthook (this looks like an ipython crash to the user, even
3494 sys.excepthook (this looks like an ipython crash to the user, even
3492 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3495 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3493 This is especially important to help users of WxWindows, but may
3496 This is especially important to help users of WxWindows, but may
3494 also be useful in other cases.
3497 also be useful in other cases.
3495
3498
3496 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3499 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
3497 an optional tb_offset to be specified, and to preserve exception
3500 an optional tb_offset to be specified, and to preserve exception
3498 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3501 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
3499
3502
3500 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3503 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
3501
3504
3502 2003-05-15 Fernando Perez <fperez@colorado.edu>
3505 2003-05-15 Fernando Perez <fperez@colorado.edu>
3503
3506
3504 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3507 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
3505 installing for a new user under Windows.
3508 installing for a new user under Windows.
3506
3509
3507 2003-05-12 Fernando Perez <fperez@colorado.edu>
3510 2003-05-12 Fernando Perez <fperez@colorado.edu>
3508
3511
3509 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3512 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
3510 handler for Emacs comint-based lines. Currently it doesn't do
3513 handler for Emacs comint-based lines. Currently it doesn't do
3511 much (but importantly, it doesn't update the history cache). In
3514 much (but importantly, it doesn't update the history cache). In
3512 the future it may be expanded if Alex needs more functionality
3515 the future it may be expanded if Alex needs more functionality
3513 there.
3516 there.
3514
3517
3515 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3518 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
3516 info to crash reports.
3519 info to crash reports.
3517
3520
3518 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3521 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
3519 just like Python's -c. Also fixed crash with invalid -color
3522 just like Python's -c. Also fixed crash with invalid -color
3520 option value at startup. Thanks to Will French
3523 option value at startup. Thanks to Will French
3521 <wfrench-AT-bestweb.net> for the bug report.
3524 <wfrench-AT-bestweb.net> for the bug report.
3522
3525
3523 2003-05-09 Fernando Perez <fperez@colorado.edu>
3526 2003-05-09 Fernando Perez <fperez@colorado.edu>
3524
3527
3525 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3528 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
3526 to EvalDict (it's a mapping, after all) and simplified its code
3529 to EvalDict (it's a mapping, after all) and simplified its code
3527 quite a bit, after a nice discussion on c.l.py where Gustavo
3530 quite a bit, after a nice discussion on c.l.py where Gustavo
3528 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3531 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
3529
3532
3530 2003-04-30 Fernando Perez <fperez@colorado.edu>
3533 2003-04-30 Fernando Perez <fperez@colorado.edu>
3531
3534
3532 * IPython/genutils.py (timings_out): modified it to reduce its
3535 * IPython/genutils.py (timings_out): modified it to reduce its
3533 overhead in the common reps==1 case.
3536 overhead in the common reps==1 case.
3534
3537
3535 2003-04-29 Fernando Perez <fperez@colorado.edu>
3538 2003-04-29 Fernando Perez <fperez@colorado.edu>
3536
3539
3537 * IPython/genutils.py (timings_out): Modified to use the resource
3540 * IPython/genutils.py (timings_out): Modified to use the resource
3538 module, which avoids the wraparound problems of time.clock().
3541 module, which avoids the wraparound problems of time.clock().
3539
3542
3540 2003-04-17 *** Released version 0.2.15pre4
3543 2003-04-17 *** Released version 0.2.15pre4
3541
3544
3542 2003-04-17 Fernando Perez <fperez@colorado.edu>
3545 2003-04-17 Fernando Perez <fperez@colorado.edu>
3543
3546
3544 * setup.py (scriptfiles): Split windows-specific stuff over to a
3547 * setup.py (scriptfiles): Split windows-specific stuff over to a
3545 separate file, in an attempt to have a Windows GUI installer.
3548 separate file, in an attempt to have a Windows GUI installer.
3546 That didn't work, but part of the groundwork is done.
3549 That didn't work, but part of the groundwork is done.
3547
3550
3548 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3551 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
3549 indent/unindent with 4 spaces. Particularly useful in combination
3552 indent/unindent with 4 spaces. Particularly useful in combination
3550 with the new auto-indent option.
3553 with the new auto-indent option.
3551
3554
3552 2003-04-16 Fernando Perez <fperez@colorado.edu>
3555 2003-04-16 Fernando Perez <fperez@colorado.edu>
3553
3556
3554 * IPython/Magic.py: various replacements of self.rc for
3557 * IPython/Magic.py: various replacements of self.rc for
3555 self.shell.rc. A lot more remains to be done to fully disentangle
3558 self.shell.rc. A lot more remains to be done to fully disentangle
3556 this class from the main Shell class.
3559 this class from the main Shell class.
3557
3560
3558 * IPython/GnuplotRuntime.py: added checks for mouse support so
3561 * IPython/GnuplotRuntime.py: added checks for mouse support so
3559 that we don't try to enable it if the current gnuplot doesn't
3562 that we don't try to enable it if the current gnuplot doesn't
3560 really support it. Also added checks so that we don't try to
3563 really support it. Also added checks so that we don't try to
3561 enable persist under Windows (where Gnuplot doesn't recognize the
3564 enable persist under Windows (where Gnuplot doesn't recognize the
3562 option).
3565 option).
3563
3566
3564 * IPython/iplib.py (InteractiveShell.interact): Added optional
3567 * IPython/iplib.py (InteractiveShell.interact): Added optional
3565 auto-indenting code, after a patch by King C. Shu
3568 auto-indenting code, after a patch by King C. Shu
3566 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3569 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
3567 get along well with pasting indented code. If I ever figure out
3570 get along well with pasting indented code. If I ever figure out
3568 how to make that part go well, it will become on by default.
3571 how to make that part go well, it will become on by default.
3569
3572
3570 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3573 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
3571 crash ipython if there was an unmatched '%' in the user's prompt
3574 crash ipython if there was an unmatched '%' in the user's prompt
3572 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3575 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3573
3576
3574 * IPython/iplib.py (InteractiveShell.interact): removed the
3577 * IPython/iplib.py (InteractiveShell.interact): removed the
3575 ability to ask the user whether he wants to crash or not at the
3578 ability to ask the user whether he wants to crash or not at the
3576 'last line' exception handler. Calling functions at that point
3579 'last line' exception handler. Calling functions at that point
3577 changes the stack, and the error reports would have incorrect
3580 changes the stack, and the error reports would have incorrect
3578 tracebacks.
3581 tracebacks.
3579
3582
3580 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3583 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
3581 pass through a peger a pretty-printed form of any object. After a
3584 pass through a peger a pretty-printed form of any object. After a
3582 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3585 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
3583
3586
3584 2003-04-14 Fernando Perez <fperez@colorado.edu>
3587 2003-04-14 Fernando Perez <fperez@colorado.edu>
3585
3588
3586 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3589 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
3587 all files in ~ would be modified at first install (instead of
3590 all files in ~ would be modified at first install (instead of
3588 ~/.ipython). This could be potentially disastrous, as the
3591 ~/.ipython). This could be potentially disastrous, as the
3589 modification (make line-endings native) could damage binary files.
3592 modification (make line-endings native) could damage binary files.
3590
3593
3591 2003-04-10 Fernando Perez <fperez@colorado.edu>
3594 2003-04-10 Fernando Perez <fperez@colorado.edu>
3592
3595
3593 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3596 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
3594 handle only lines which are invalid python. This now means that
3597 handle only lines which are invalid python. This now means that
3595 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3598 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
3596 for the bug report.
3599 for the bug report.
3597
3600
3598 2003-04-01 Fernando Perez <fperez@colorado.edu>
3601 2003-04-01 Fernando Perez <fperez@colorado.edu>
3599
3602
3600 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3603 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
3601 where failing to set sys.last_traceback would crash pdb.pm().
3604 where failing to set sys.last_traceback would crash pdb.pm().
3602 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3605 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
3603 report.
3606 report.
3604
3607
3605 2003-03-25 Fernando Perez <fperez@colorado.edu>
3608 2003-03-25 Fernando Perez <fperez@colorado.edu>
3606
3609
3607 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3610 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
3608 before printing it (it had a lot of spurious blank lines at the
3611 before printing it (it had a lot of spurious blank lines at the
3609 end).
3612 end).
3610
3613
3611 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3614 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
3612 output would be sent 21 times! Obviously people don't use this
3615 output would be sent 21 times! Obviously people don't use this
3613 too often, or I would have heard about it.
3616 too often, or I would have heard about it.
3614
3617
3615 2003-03-24 Fernando Perez <fperez@colorado.edu>
3618 2003-03-24 Fernando Perez <fperez@colorado.edu>
3616
3619
3617 * setup.py (scriptfiles): renamed the data_files parameter from
3620 * setup.py (scriptfiles): renamed the data_files parameter from
3618 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3621 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
3619 for the patch.
3622 for the patch.
3620
3623
3621 2003-03-20 Fernando Perez <fperez@colorado.edu>
3624 2003-03-20 Fernando Perez <fperez@colorado.edu>
3622
3625
3623 * IPython/genutils.py (error): added error() and fatal()
3626 * IPython/genutils.py (error): added error() and fatal()
3624 functions.
3627 functions.
3625
3628
3626 2003-03-18 *** Released version 0.2.15pre3
3629 2003-03-18 *** Released version 0.2.15pre3
3627
3630
3628 2003-03-18 Fernando Perez <fperez@colorado.edu>
3631 2003-03-18 Fernando Perez <fperez@colorado.edu>
3629
3632
3630 * setupext/install_data_ext.py
3633 * setupext/install_data_ext.py
3631 (install_data_ext.initialize_options): Class contributed by Jack
3634 (install_data_ext.initialize_options): Class contributed by Jack
3632 Moffit for fixing the old distutils hack. He is sending this to
3635 Moffit for fixing the old distutils hack. He is sending this to
3633 the distutils folks so in the future we may not need it as a
3636 the distutils folks so in the future we may not need it as a
3634 private fix.
3637 private fix.
3635
3638
3636 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3639 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
3637 changes for Debian packaging. See his patch for full details.
3640 changes for Debian packaging. See his patch for full details.
3638 The old distutils hack of making the ipythonrc* files carry a
3641 The old distutils hack of making the ipythonrc* files carry a
3639 bogus .py extension is gone, at last. Examples were moved to a
3642 bogus .py extension is gone, at last. Examples were moved to a
3640 separate subdir under doc/, and the separate executable scripts
3643 separate subdir under doc/, and the separate executable scripts
3641 now live in their own directory. Overall a great cleanup. The
3644 now live in their own directory. Overall a great cleanup. The
3642 manual was updated to use the new files, and setup.py has been
3645 manual was updated to use the new files, and setup.py has been
3643 fixed for this setup.
3646 fixed for this setup.
3644
3647
3645 * IPython/PyColorize.py (Parser.usage): made non-executable and
3648 * IPython/PyColorize.py (Parser.usage): made non-executable and
3646 created a pycolor wrapper around it to be included as a script.
3649 created a pycolor wrapper around it to be included as a script.
3647
3650
3648 2003-03-12 *** Released version 0.2.15pre2
3651 2003-03-12 *** Released version 0.2.15pre2
3649
3652
3650 2003-03-12 Fernando Perez <fperez@colorado.edu>
3653 2003-03-12 Fernando Perez <fperez@colorado.edu>
3651
3654
3652 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3655 * IPython/ColorANSI.py (make_color_table): Finally fixed the
3653 long-standing problem with garbage characters in some terminals.
3656 long-standing problem with garbage characters in some terminals.
3654 The issue was really that the \001 and \002 escapes must _only_ be
3657 The issue was really that the \001 and \002 escapes must _only_ be
3655 passed to input prompts (which call readline), but _never_ to
3658 passed to input prompts (which call readline), but _never_ to
3656 normal text to be printed on screen. I changed ColorANSI to have
3659 normal text to be printed on screen. I changed ColorANSI to have
3657 two classes: TermColors and InputTermColors, each with the
3660 two classes: TermColors and InputTermColors, each with the
3658 appropriate escapes for input prompts or normal text. The code in
3661 appropriate escapes for input prompts or normal text. The code in
3659 Prompts.py got slightly more complicated, but this very old and
3662 Prompts.py got slightly more complicated, but this very old and
3660 annoying bug is finally fixed.
3663 annoying bug is finally fixed.
3661
3664
3662 All the credit for nailing down the real origin of this problem
3665 All the credit for nailing down the real origin of this problem
3663 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3666 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
3664 *Many* thanks to him for spending quite a bit of effort on this.
3667 *Many* thanks to him for spending quite a bit of effort on this.
3665
3668
3666 2003-03-05 *** Released version 0.2.15pre1
3669 2003-03-05 *** Released version 0.2.15pre1
3667
3670
3668 2003-03-03 Fernando Perez <fperez@colorado.edu>
3671 2003-03-03 Fernando Perez <fperez@colorado.edu>
3669
3672
3670 * IPython/FakeModule.py: Moved the former _FakeModule to a
3673 * IPython/FakeModule.py: Moved the former _FakeModule to a
3671 separate file, because it's also needed by Magic (to fix a similar
3674 separate file, because it's also needed by Magic (to fix a similar
3672 pickle-related issue in @run).
3675 pickle-related issue in @run).
3673
3676
3674 2003-03-02 Fernando Perez <fperez@colorado.edu>
3677 2003-03-02 Fernando Perez <fperez@colorado.edu>
3675
3678
3676 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3679 * IPython/Magic.py (Magic.magic_autocall): new magic to control
3677 the autocall option at runtime.
3680 the autocall option at runtime.
3678 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3681 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
3679 across Magic.py to start separating Magic from InteractiveShell.
3682 across Magic.py to start separating Magic from InteractiveShell.
3680 (Magic._ofind): Fixed to return proper namespace for dotted
3683 (Magic._ofind): Fixed to return proper namespace for dotted
3681 names. Before, a dotted name would always return 'not currently
3684 names. Before, a dotted name would always return 'not currently
3682 defined', because it would find the 'parent'. s.x would be found,
3685 defined', because it would find the 'parent'. s.x would be found,
3683 but since 'x' isn't defined by itself, it would get confused.
3686 but since 'x' isn't defined by itself, it would get confused.
3684 (Magic.magic_run): Fixed pickling problems reported by Ralf
3687 (Magic.magic_run): Fixed pickling problems reported by Ralf
3685 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3688 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
3686 that I'd used when Mike Heeter reported similar issues at the
3689 that I'd used when Mike Heeter reported similar issues at the
3687 top-level, but now for @run. It boils down to injecting the
3690 top-level, but now for @run. It boils down to injecting the
3688 namespace where code is being executed with something that looks
3691 namespace where code is being executed with something that looks
3689 enough like a module to fool pickle.dump(). Since a pickle stores
3692 enough like a module to fool pickle.dump(). Since a pickle stores
3690 a named reference to the importing module, we need this for
3693 a named reference to the importing module, we need this for
3691 pickles to save something sensible.
3694 pickles to save something sensible.
3692
3695
3693 * IPython/ipmaker.py (make_IPython): added an autocall option.
3696 * IPython/ipmaker.py (make_IPython): added an autocall option.
3694
3697
3695 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3698 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
3696 the auto-eval code. Now autocalling is an option, and the code is
3699 the auto-eval code. Now autocalling is an option, and the code is
3697 also vastly safer. There is no more eval() involved at all.
3700 also vastly safer. There is no more eval() involved at all.
3698
3701
3699 2003-03-01 Fernando Perez <fperez@colorado.edu>
3702 2003-03-01 Fernando Perez <fperez@colorado.edu>
3700
3703
3701 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3704 * IPython/Magic.py (Magic._ofind): Changed interface to return a
3702 dict with named keys instead of a tuple.
3705 dict with named keys instead of a tuple.
3703
3706
3704 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3707 * IPython: Started using CVS for IPython as of 0.2.15pre1.
3705
3708
3706 * setup.py (make_shortcut): Fixed message about directories
3709 * setup.py (make_shortcut): Fixed message about directories
3707 created during Windows installation (the directories were ok, just
3710 created during Windows installation (the directories were ok, just
3708 the printed message was misleading). Thanks to Chris Liechti
3711 the printed message was misleading). Thanks to Chris Liechti
3709 <cliechti-AT-gmx.net> for the heads up.
3712 <cliechti-AT-gmx.net> for the heads up.
3710
3713
3711 2003-02-21 Fernando Perez <fperez@colorado.edu>
3714 2003-02-21 Fernando Perez <fperez@colorado.edu>
3712
3715
3713 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3716 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
3714 of ValueError exception when checking for auto-execution. This
3717 of ValueError exception when checking for auto-execution. This
3715 one is raised by things like Numeric arrays arr.flat when the
3718 one is raised by things like Numeric arrays arr.flat when the
3716 array is non-contiguous.
3719 array is non-contiguous.
3717
3720
3718 2003-01-31 Fernando Perez <fperez@colorado.edu>
3721 2003-01-31 Fernando Perez <fperez@colorado.edu>
3719
3722
3720 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3723 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
3721 not return any value at all (even though the command would get
3724 not return any value at all (even though the command would get
3722 executed).
3725 executed).
3723 (xsys): Flush stdout right after printing the command to ensure
3726 (xsys): Flush stdout right after printing the command to ensure
3724 proper ordering of commands and command output in the total
3727 proper ordering of commands and command output in the total
3725 output.
3728 output.
3726 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3729 (SystemExec/xsys/bq): Switched the names of xsys/bq and
3727 system/getoutput as defaults. The old ones are kept for
3730 system/getoutput as defaults. The old ones are kept for
3728 compatibility reasons, so no code which uses this library needs
3731 compatibility reasons, so no code which uses this library needs
3729 changing.
3732 changing.
3730
3733
3731 2003-01-27 *** Released version 0.2.14
3734 2003-01-27 *** Released version 0.2.14
3732
3735
3733 2003-01-25 Fernando Perez <fperez@colorado.edu>
3736 2003-01-25 Fernando Perez <fperez@colorado.edu>
3734
3737
3735 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3738 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
3736 functions defined in previous edit sessions could not be re-edited
3739 functions defined in previous edit sessions could not be re-edited
3737 (because the temp files were immediately removed). Now temp files
3740 (because the temp files were immediately removed). Now temp files
3738 are removed only at IPython's exit.
3741 are removed only at IPython's exit.
3739 (Magic.magic_run): Improved @run to perform shell-like expansions
3742 (Magic.magic_run): Improved @run to perform shell-like expansions
3740 on its arguments (~users and $VARS). With this, @run becomes more
3743 on its arguments (~users and $VARS). With this, @run becomes more
3741 like a normal command-line.
3744 like a normal command-line.
3742
3745
3743 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3746 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
3744 bugs related to embedding and cleaned up that code. A fairly
3747 bugs related to embedding and cleaned up that code. A fairly
3745 important one was the impossibility to access the global namespace
3748 important one was the impossibility to access the global namespace
3746 through the embedded IPython (only local variables were visible).
3749 through the embedded IPython (only local variables were visible).
3747
3750
3748 2003-01-14 Fernando Perez <fperez@colorado.edu>
3751 2003-01-14 Fernando Perez <fperez@colorado.edu>
3749
3752
3750 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3753 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
3751 auto-calling to be a bit more conservative. Now it doesn't get
3754 auto-calling to be a bit more conservative. Now it doesn't get
3752 triggered if any of '!=()<>' are in the rest of the input line, to
3755 triggered if any of '!=()<>' are in the rest of the input line, to
3753 allow comparing callables. Thanks to Alex for the heads up.
3756 allow comparing callables. Thanks to Alex for the heads up.
3754
3757
3755 2003-01-07 Fernando Perez <fperez@colorado.edu>
3758 2003-01-07 Fernando Perez <fperez@colorado.edu>
3756
3759
3757 * IPython/genutils.py (page): fixed estimation of the number of
3760 * IPython/genutils.py (page): fixed estimation of the number of
3758 lines in a string to be paged to simply count newlines. This
3761 lines in a string to be paged to simply count newlines. This
3759 prevents over-guessing due to embedded escape sequences. A better
3762 prevents over-guessing due to embedded escape sequences. A better
3760 long-term solution would involve stripping out the control chars
3763 long-term solution would involve stripping out the control chars
3761 for the count, but it's potentially so expensive I just don't
3764 for the count, but it's potentially so expensive I just don't
3762 think it's worth doing.
3765 think it's worth doing.
3763
3766
3764 2002-12-19 *** Released version 0.2.14pre50
3767 2002-12-19 *** Released version 0.2.14pre50
3765
3768
3766 2002-12-19 Fernando Perez <fperez@colorado.edu>
3769 2002-12-19 Fernando Perez <fperez@colorado.edu>
3767
3770
3768 * tools/release (version): Changed release scripts to inform
3771 * tools/release (version): Changed release scripts to inform
3769 Andrea and build a NEWS file with a list of recent changes.
3772 Andrea and build a NEWS file with a list of recent changes.
3770
3773
3771 * IPython/ColorANSI.py (__all__): changed terminal detection
3774 * IPython/ColorANSI.py (__all__): changed terminal detection
3772 code. Seems to work better for xterms without breaking
3775 code. Seems to work better for xterms without breaking
3773 konsole. Will need more testing to determine if WinXP and Mac OSX
3776 konsole. Will need more testing to determine if WinXP and Mac OSX
3774 also work ok.
3777 also work ok.
3775
3778
3776 2002-12-18 *** Released version 0.2.14pre49
3779 2002-12-18 *** Released version 0.2.14pre49
3777
3780
3778 2002-12-18 Fernando Perez <fperez@colorado.edu>
3781 2002-12-18 Fernando Perez <fperez@colorado.edu>
3779
3782
3780 * Docs: added new info about Mac OSX, from Andrea.
3783 * Docs: added new info about Mac OSX, from Andrea.
3781
3784
3782 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3785 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
3783 allow direct plotting of python strings whose format is the same
3786 allow direct plotting of python strings whose format is the same
3784 of gnuplot data files.
3787 of gnuplot data files.
3785
3788
3786 2002-12-16 Fernando Perez <fperez@colorado.edu>
3789 2002-12-16 Fernando Perez <fperez@colorado.edu>
3787
3790
3788 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3791 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
3789 value of exit question to be acknowledged.
3792 value of exit question to be acknowledged.
3790
3793
3791 2002-12-03 Fernando Perez <fperez@colorado.edu>
3794 2002-12-03 Fernando Perez <fperez@colorado.edu>
3792
3795
3793 * IPython/ipmaker.py: removed generators, which had been added
3796 * IPython/ipmaker.py: removed generators, which had been added
3794 by mistake in an earlier debugging run. This was causing trouble
3797 by mistake in an earlier debugging run. This was causing trouble
3795 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3798 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
3796 for pointing this out.
3799 for pointing this out.
3797
3800
3798 2002-11-17 Fernando Perez <fperez@colorado.edu>
3801 2002-11-17 Fernando Perez <fperez@colorado.edu>
3799
3802
3800 * Manual: updated the Gnuplot section.
3803 * Manual: updated the Gnuplot section.
3801
3804
3802 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3805 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
3803 a much better split of what goes in Runtime and what goes in
3806 a much better split of what goes in Runtime and what goes in
3804 Interactive.
3807 Interactive.
3805
3808
3806 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3809 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
3807 being imported from iplib.
3810 being imported from iplib.
3808
3811
3809 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3812 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
3810 for command-passing. Now the global Gnuplot instance is called
3813 for command-passing. Now the global Gnuplot instance is called
3811 'gp' instead of 'g', which was really a far too fragile and
3814 'gp' instead of 'g', which was really a far too fragile and
3812 common name.
3815 common name.
3813
3816
3814 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3817 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
3815 bounding boxes generated by Gnuplot for square plots.
3818 bounding boxes generated by Gnuplot for square plots.
3816
3819
3817 * IPython/genutils.py (popkey): new function added. I should
3820 * IPython/genutils.py (popkey): new function added. I should
3818 suggest this on c.l.py as a dict method, it seems useful.
3821 suggest this on c.l.py as a dict method, it seems useful.
3819
3822
3820 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3823 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
3821 to transparently handle PostScript generation. MUCH better than
3824 to transparently handle PostScript generation. MUCH better than
3822 the previous plot_eps/replot_eps (which I removed now). The code
3825 the previous plot_eps/replot_eps (which I removed now). The code
3823 is also fairly clean and well documented now (including
3826 is also fairly clean and well documented now (including
3824 docstrings).
3827 docstrings).
3825
3828
3826 2002-11-13 Fernando Perez <fperez@colorado.edu>
3829 2002-11-13 Fernando Perez <fperez@colorado.edu>
3827
3830
3828 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3831 * IPython/Magic.py (Magic.magic_edit): fixed docstring
3829 (inconsistent with options).
3832 (inconsistent with options).
3830
3833
3831 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3834 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
3832 manually disabled, I don't know why. Fixed it.
3835 manually disabled, I don't know why. Fixed it.
3833 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3836 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
3834 eps output.
3837 eps output.
3835
3838
3836 2002-11-12 Fernando Perez <fperez@colorado.edu>
3839 2002-11-12 Fernando Perez <fperez@colorado.edu>
3837
3840
3838 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3841 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
3839 don't propagate up to caller. Fixes crash reported by François
3842 don't propagate up to caller. Fixes crash reported by François
3840 Pinard.
3843 Pinard.
3841
3844
3842 2002-11-09 Fernando Perez <fperez@colorado.edu>
3845 2002-11-09 Fernando Perez <fperez@colorado.edu>
3843
3846
3844 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3847 * IPython/ipmaker.py (make_IPython): fixed problem with writing
3845 history file for new users.
3848 history file for new users.
3846 (make_IPython): fixed bug where initial install would leave the
3849 (make_IPython): fixed bug where initial install would leave the
3847 user running in the .ipython dir.
3850 user running in the .ipython dir.
3848 (make_IPython): fixed bug where config dir .ipython would be
3851 (make_IPython): fixed bug where config dir .ipython would be
3849 created regardless of the given -ipythondir option. Thanks to Cory
3852 created regardless of the given -ipythondir option. Thanks to Cory
3850 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3853 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
3851
3854
3852 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3855 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
3853 type confirmations. Will need to use it in all of IPython's code
3856 type confirmations. Will need to use it in all of IPython's code
3854 consistently.
3857 consistently.
3855
3858
3856 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3859 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
3857 context to print 31 lines instead of the default 5. This will make
3860 context to print 31 lines instead of the default 5. This will make
3858 the crash reports extremely detailed in case the problem is in
3861 the crash reports extremely detailed in case the problem is in
3859 libraries I don't have access to.
3862 libraries I don't have access to.
3860
3863
3861 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3864 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
3862 line of defense' code to still crash, but giving users fair
3865 line of defense' code to still crash, but giving users fair
3863 warning. I don't want internal errors to go unreported: if there's
3866 warning. I don't want internal errors to go unreported: if there's
3864 an internal problem, IPython should crash and generate a full
3867 an internal problem, IPython should crash and generate a full
3865 report.
3868 report.
3866
3869
3867 2002-11-08 Fernando Perez <fperez@colorado.edu>
3870 2002-11-08 Fernando Perez <fperez@colorado.edu>
3868
3871
3869 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3872 * IPython/iplib.py (InteractiveShell.interact): added code to trap
3870 otherwise uncaught exceptions which can appear if people set
3873 otherwise uncaught exceptions which can appear if people set
3871 sys.stdout to something badly broken. Thanks to a crash report
3874 sys.stdout to something badly broken. Thanks to a crash report
3872 from henni-AT-mail.brainbot.com.
3875 from henni-AT-mail.brainbot.com.
3873
3876
3874 2002-11-04 Fernando Perez <fperez@colorado.edu>
3877 2002-11-04 Fernando Perez <fperez@colorado.edu>
3875
3878
3876 * IPython/iplib.py (InteractiveShell.interact): added
3879 * IPython/iplib.py (InteractiveShell.interact): added
3877 __IPYTHON__active to the builtins. It's a flag which goes on when
3880 __IPYTHON__active to the builtins. It's a flag which goes on when
3878 the interaction starts and goes off again when it stops. This
3881 the interaction starts and goes off again when it stops. This
3879 allows embedding code to detect being inside IPython. Before this
3882 allows embedding code to detect being inside IPython. Before this
3880 was done via __IPYTHON__, but that only shows that an IPython
3883 was done via __IPYTHON__, but that only shows that an IPython
3881 instance has been created.
3884 instance has been created.
3882
3885
3883 * IPython/Magic.py (Magic.magic_env): I realized that in a
3886 * IPython/Magic.py (Magic.magic_env): I realized that in a
3884 UserDict, instance.data holds the data as a normal dict. So I
3887 UserDict, instance.data holds the data as a normal dict. So I
3885 modified @env to return os.environ.data instead of rebuilding a
3888 modified @env to return os.environ.data instead of rebuilding a
3886 dict by hand.
3889 dict by hand.
3887
3890
3888 2002-11-02 Fernando Perez <fperez@colorado.edu>
3891 2002-11-02 Fernando Perez <fperez@colorado.edu>
3889
3892
3890 * IPython/genutils.py (warn): changed so that level 1 prints no
3893 * IPython/genutils.py (warn): changed so that level 1 prints no
3891 header. Level 2 is now the default (with 'WARNING' header, as
3894 header. Level 2 is now the default (with 'WARNING' header, as
3892 before). I think I tracked all places where changes were needed in
3895 before). I think I tracked all places where changes were needed in
3893 IPython, but outside code using the old level numbering may have
3896 IPython, but outside code using the old level numbering may have
3894 broken.
3897 broken.
3895
3898
3896 * IPython/iplib.py (InteractiveShell.runcode): added this to
3899 * IPython/iplib.py (InteractiveShell.runcode): added this to
3897 handle the tracebacks in SystemExit traps correctly. The previous
3900 handle the tracebacks in SystemExit traps correctly. The previous
3898 code (through interact) was printing more of the stack than
3901 code (through interact) was printing more of the stack than
3899 necessary, showing IPython internal code to the user.
3902 necessary, showing IPython internal code to the user.
3900
3903
3901 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3904 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
3902 default. Now that the default at the confirmation prompt is yes,
3905 default. Now that the default at the confirmation prompt is yes,
3903 it's not so intrusive. François' argument that ipython sessions
3906 it's not so intrusive. François' argument that ipython sessions
3904 tend to be complex enough not to lose them from an accidental C-d,
3907 tend to be complex enough not to lose them from an accidental C-d,
3905 is a valid one.
3908 is a valid one.
3906
3909
3907 * IPython/iplib.py (InteractiveShell.interact): added a
3910 * IPython/iplib.py (InteractiveShell.interact): added a
3908 showtraceback() call to the SystemExit trap, and modified the exit
3911 showtraceback() call to the SystemExit trap, and modified the exit
3909 confirmation to have yes as the default.
3912 confirmation to have yes as the default.
3910
3913
3911 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3914 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
3912 this file. It's been gone from the code for a long time, this was
3915 this file. It's been gone from the code for a long time, this was
3913 simply leftover junk.
3916 simply leftover junk.
3914
3917
3915 2002-11-01 Fernando Perez <fperez@colorado.edu>
3918 2002-11-01 Fernando Perez <fperez@colorado.edu>
3916
3919
3917 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3920 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
3918 added. If set, IPython now traps EOF and asks for
3921 added. If set, IPython now traps EOF and asks for
3919 confirmation. After a request by François Pinard.
3922 confirmation. After a request by François Pinard.
3920
3923
3921 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3924 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
3922 of @abort, and with a new (better) mechanism for handling the
3925 of @abort, and with a new (better) mechanism for handling the
3923 exceptions.
3926 exceptions.
3924
3927
3925 2002-10-27 Fernando Perez <fperez@colorado.edu>
3928 2002-10-27 Fernando Perez <fperez@colorado.edu>
3926
3929
3927 * IPython/usage.py (__doc__): updated the --help information and
3930 * IPython/usage.py (__doc__): updated the --help information and
3928 the ipythonrc file to indicate that -log generates
3931 the ipythonrc file to indicate that -log generates
3929 ./ipython.log. Also fixed the corresponding info in @logstart.
3932 ./ipython.log. Also fixed the corresponding info in @logstart.
3930 This and several other fixes in the manuals thanks to reports by
3933 This and several other fixes in the manuals thanks to reports by
3931 François Pinard <pinard-AT-iro.umontreal.ca>.
3934 François Pinard <pinard-AT-iro.umontreal.ca>.
3932
3935
3933 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3936 * IPython/Logger.py (Logger.switch_log): Fixed error message to
3934 refer to @logstart (instead of @log, which doesn't exist).
3937 refer to @logstart (instead of @log, which doesn't exist).
3935
3938
3936 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3939 * IPython/iplib.py (InteractiveShell._prefilter): fixed
3937 AttributeError crash. Thanks to Christopher Armstrong
3940 AttributeError crash. Thanks to Christopher Armstrong
3938 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3941 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
3939 introduced recently (in 0.2.14pre37) with the fix to the eval
3942 introduced recently (in 0.2.14pre37) with the fix to the eval
3940 problem mentioned below.
3943 problem mentioned below.
3941
3944
3942 2002-10-17 Fernando Perez <fperez@colorado.edu>
3945 2002-10-17 Fernando Perez <fperez@colorado.edu>
3943
3946
3944 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3947 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
3945 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3948 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
3946
3949
3947 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3950 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
3948 this function to fix a problem reported by Alex Schmolck. He saw
3951 this function to fix a problem reported by Alex Schmolck. He saw
3949 it with list comprehensions and generators, which were getting
3952 it with list comprehensions and generators, which were getting
3950 called twice. The real problem was an 'eval' call in testing for
3953 called twice. The real problem was an 'eval' call in testing for
3951 automagic which was evaluating the input line silently.
3954 automagic which was evaluating the input line silently.
3952
3955
3953 This is a potentially very nasty bug, if the input has side
3956 This is a potentially very nasty bug, if the input has side
3954 effects which must not be repeated. The code is much cleaner now,
3957 effects which must not be repeated. The code is much cleaner now,
3955 without any blanket 'except' left and with a regexp test for
3958 without any blanket 'except' left and with a regexp test for
3956 actual function names.
3959 actual function names.
3957
3960
3958 But an eval remains, which I'm not fully comfortable with. I just
3961 But an eval remains, which I'm not fully comfortable with. I just
3959 don't know how to find out if an expression could be a callable in
3962 don't know how to find out if an expression could be a callable in
3960 the user's namespace without doing an eval on the string. However
3963 the user's namespace without doing an eval on the string. However
3961 that string is now much more strictly checked so that no code
3964 that string is now much more strictly checked so that no code
3962 slips by, so the eval should only happen for things that can
3965 slips by, so the eval should only happen for things that can
3963 really be only function/method names.
3966 really be only function/method names.
3964
3967
3965 2002-10-15 Fernando Perez <fperez@colorado.edu>
3968 2002-10-15 Fernando Perez <fperez@colorado.edu>
3966
3969
3967 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3970 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
3968 OSX information to main manual, removed README_Mac_OSX file from
3971 OSX information to main manual, removed README_Mac_OSX file from
3969 distribution. Also updated credits for recent additions.
3972 distribution. Also updated credits for recent additions.
3970
3973
3971 2002-10-10 Fernando Perez <fperez@colorado.edu>
3974 2002-10-10 Fernando Perez <fperez@colorado.edu>
3972
3975
3973 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3976 * README_Mac_OSX: Added a README for Mac OSX users for fixing
3974 terminal-related issues. Many thanks to Andrea Riciputi
3977 terminal-related issues. Many thanks to Andrea Riciputi
3975 <andrea.riciputi-AT-libero.it> for writing it.
3978 <andrea.riciputi-AT-libero.it> for writing it.
3976
3979
3977 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3980 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
3978 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3981 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
3979
3982
3980 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3983 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
3981 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3984 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
3982 <syver-en-AT-online.no> who both submitted patches for this problem.
3985 <syver-en-AT-online.no> who both submitted patches for this problem.
3983
3986
3984 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3987 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
3985 global embedding to make sure that things don't overwrite user
3988 global embedding to make sure that things don't overwrite user
3986 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3989 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
3987
3990
3988 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3991 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
3989 compatibility. Thanks to Hayden Callow
3992 compatibility. Thanks to Hayden Callow
3990 <h.callow-AT-elec.canterbury.ac.nz>
3993 <h.callow-AT-elec.canterbury.ac.nz>
3991
3994
3992 2002-10-04 Fernando Perez <fperez@colorado.edu>
3995 2002-10-04 Fernando Perez <fperez@colorado.edu>
3993
3996
3994 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3997 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
3995 Gnuplot.File objects.
3998 Gnuplot.File objects.
3996
3999
3997 2002-07-23 Fernando Perez <fperez@colorado.edu>
4000 2002-07-23 Fernando Perez <fperez@colorado.edu>
3998
4001
3999 * IPython/genutils.py (timing): Added timings() and timing() for
4002 * IPython/genutils.py (timing): Added timings() and timing() for
4000 quick access to the most commonly needed data, the execution
4003 quick access to the most commonly needed data, the execution
4001 times. Old timing() renamed to timings_out().
4004 times. Old timing() renamed to timings_out().
4002
4005
4003 2002-07-18 Fernando Perez <fperez@colorado.edu>
4006 2002-07-18 Fernando Perez <fperez@colorado.edu>
4004
4007
4005 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4008 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4006 bug with nested instances disrupting the parent's tab completion.
4009 bug with nested instances disrupting the parent's tab completion.
4007
4010
4008 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4011 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4009 all_completions code to begin the emacs integration.
4012 all_completions code to begin the emacs integration.
4010
4013
4011 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4014 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4012 argument to allow titling individual arrays when plotting.
4015 argument to allow titling individual arrays when plotting.
4013
4016
4014 2002-07-15 Fernando Perez <fperez@colorado.edu>
4017 2002-07-15 Fernando Perez <fperez@colorado.edu>
4015
4018
4016 * setup.py (make_shortcut): changed to retrieve the value of
4019 * setup.py (make_shortcut): changed to retrieve the value of
4017 'Program Files' directory from the registry (this value changes in
4020 'Program Files' directory from the registry (this value changes in
4018 non-english versions of Windows). Thanks to Thomas Fanslau
4021 non-english versions of Windows). Thanks to Thomas Fanslau
4019 <tfanslau-AT-gmx.de> for the report.
4022 <tfanslau-AT-gmx.de> for the report.
4020
4023
4021 2002-07-10 Fernando Perez <fperez@colorado.edu>
4024 2002-07-10 Fernando Perez <fperez@colorado.edu>
4022
4025
4023 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4026 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4024 a bug in pdb, which crashes if a line with only whitespace is
4027 a bug in pdb, which crashes if a line with only whitespace is
4025 entered. Bug report submitted to sourceforge.
4028 entered. Bug report submitted to sourceforge.
4026
4029
4027 2002-07-09 Fernando Perez <fperez@colorado.edu>
4030 2002-07-09 Fernando Perez <fperez@colorado.edu>
4028
4031
4029 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4032 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4030 reporting exceptions (it's a bug in inspect.py, I just set a
4033 reporting exceptions (it's a bug in inspect.py, I just set a
4031 workaround).
4034 workaround).
4032
4035
4033 2002-07-08 Fernando Perez <fperez@colorado.edu>
4036 2002-07-08 Fernando Perez <fperez@colorado.edu>
4034
4037
4035 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4038 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4036 __IPYTHON__ in __builtins__ to show up in user_ns.
4039 __IPYTHON__ in __builtins__ to show up in user_ns.
4037
4040
4038 2002-07-03 Fernando Perez <fperez@colorado.edu>
4041 2002-07-03 Fernando Perez <fperez@colorado.edu>
4039
4042
4040 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4043 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4041 name from @gp_set_instance to @gp_set_default.
4044 name from @gp_set_instance to @gp_set_default.
4042
4045
4043 * IPython/ipmaker.py (make_IPython): default editor value set to
4046 * IPython/ipmaker.py (make_IPython): default editor value set to
4044 '0' (a string), to match the rc file. Otherwise will crash when
4047 '0' (a string), to match the rc file. Otherwise will crash when
4045 .strip() is called on it.
4048 .strip() is called on it.
4046
4049
4047
4050
4048 2002-06-28 Fernando Perez <fperez@colorado.edu>
4051 2002-06-28 Fernando Perez <fperez@colorado.edu>
4049
4052
4050 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4053 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4051 of files in current directory when a file is executed via
4054 of files in current directory when a file is executed via
4052 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4055 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4053
4056
4054 * setup.py (manfiles): fix for rpm builds, submitted by RA
4057 * setup.py (manfiles): fix for rpm builds, submitted by RA
4055 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4058 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4056
4059
4057 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4060 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4058 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4061 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4059 string!). A. Schmolck caught this one.
4062 string!). A. Schmolck caught this one.
4060
4063
4061 2002-06-27 Fernando Perez <fperez@colorado.edu>
4064 2002-06-27 Fernando Perez <fperez@colorado.edu>
4062
4065
4063 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4066 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4064 defined files at the cmd line. __name__ wasn't being set to
4067 defined files at the cmd line. __name__ wasn't being set to
4065 __main__.
4068 __main__.
4066
4069
4067 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4070 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4068 regular lists and tuples besides Numeric arrays.
4071 regular lists and tuples besides Numeric arrays.
4069
4072
4070 * IPython/Prompts.py (CachedOutput.__call__): Added output
4073 * IPython/Prompts.py (CachedOutput.__call__): Added output
4071 supression for input ending with ';'. Similar to Mathematica and
4074 supression for input ending with ';'. Similar to Mathematica and
4072 Matlab. The _* vars and Out[] list are still updated, just like
4075 Matlab. The _* vars and Out[] list are still updated, just like
4073 Mathematica behaves.
4076 Mathematica behaves.
4074
4077
4075 2002-06-25 Fernando Perez <fperez@colorado.edu>
4078 2002-06-25 Fernando Perez <fperez@colorado.edu>
4076
4079
4077 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4080 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4078 .ini extensions for profiels under Windows.
4081 .ini extensions for profiels under Windows.
4079
4082
4080 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4083 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4081 string form. Fix contributed by Alexander Schmolck
4084 string form. Fix contributed by Alexander Schmolck
4082 <a.schmolck-AT-gmx.net>
4085 <a.schmolck-AT-gmx.net>
4083
4086
4084 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4087 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4085 pre-configured Gnuplot instance.
4088 pre-configured Gnuplot instance.
4086
4089
4087 2002-06-21 Fernando Perez <fperez@colorado.edu>
4090 2002-06-21 Fernando Perez <fperez@colorado.edu>
4088
4091
4089 * IPython/numutils.py (exp_safe): new function, works around the
4092 * IPython/numutils.py (exp_safe): new function, works around the
4090 underflow problems in Numeric.
4093 underflow problems in Numeric.
4091 (log2): New fn. Safe log in base 2: returns exact integer answer
4094 (log2): New fn. Safe log in base 2: returns exact integer answer
4092 for exact integer powers of 2.
4095 for exact integer powers of 2.
4093
4096
4094 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4097 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4095 properly.
4098 properly.
4096
4099
4097 2002-06-20 Fernando Perez <fperez@colorado.edu>
4100 2002-06-20 Fernando Perez <fperez@colorado.edu>
4098
4101
4099 * IPython/genutils.py (timing): new function like
4102 * IPython/genutils.py (timing): new function like
4100 Mathematica's. Similar to time_test, but returns more info.
4103 Mathematica's. Similar to time_test, but returns more info.
4101
4104
4102 2002-06-18 Fernando Perez <fperez@colorado.edu>
4105 2002-06-18 Fernando Perez <fperez@colorado.edu>
4103
4106
4104 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4107 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4105 according to Mike Heeter's suggestions.
4108 according to Mike Heeter's suggestions.
4106
4109
4107 2002-06-16 Fernando Perez <fperez@colorado.edu>
4110 2002-06-16 Fernando Perez <fperez@colorado.edu>
4108
4111
4109 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4112 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4110 system. GnuplotMagic is gone as a user-directory option. New files
4113 system. GnuplotMagic is gone as a user-directory option. New files
4111 make it easier to use all the gnuplot stuff both from external
4114 make it easier to use all the gnuplot stuff both from external
4112 programs as well as from IPython. Had to rewrite part of
4115 programs as well as from IPython. Had to rewrite part of
4113 hardcopy() b/c of a strange bug: often the ps files simply don't
4116 hardcopy() b/c of a strange bug: often the ps files simply don't
4114 get created, and require a repeat of the command (often several
4117 get created, and require a repeat of the command (often several
4115 times).
4118 times).
4116
4119
4117 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4120 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4118 resolve output channel at call time, so that if sys.stderr has
4121 resolve output channel at call time, so that if sys.stderr has
4119 been redirected by user this gets honored.
4122 been redirected by user this gets honored.
4120
4123
4121 2002-06-13 Fernando Perez <fperez@colorado.edu>
4124 2002-06-13 Fernando Perez <fperez@colorado.edu>
4122
4125
4123 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4126 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4124 IPShell. Kept a copy with the old names to avoid breaking people's
4127 IPShell. Kept a copy with the old names to avoid breaking people's
4125 embedded code.
4128 embedded code.
4126
4129
4127 * IPython/ipython: simplified it to the bare minimum after
4130 * IPython/ipython: simplified it to the bare minimum after
4128 Holger's suggestions. Added info about how to use it in
4131 Holger's suggestions. Added info about how to use it in
4129 PYTHONSTARTUP.
4132 PYTHONSTARTUP.
4130
4133
4131 * IPython/Shell.py (IPythonShell): changed the options passing
4134 * IPython/Shell.py (IPythonShell): changed the options passing
4132 from a string with funky %s replacements to a straight list. Maybe
4135 from a string with funky %s replacements to a straight list. Maybe
4133 a bit more typing, but it follows sys.argv conventions, so there's
4136 a bit more typing, but it follows sys.argv conventions, so there's
4134 less special-casing to remember.
4137 less special-casing to remember.
4135
4138
4136 2002-06-12 Fernando Perez <fperez@colorado.edu>
4139 2002-06-12 Fernando Perez <fperez@colorado.edu>
4137
4140
4138 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4141 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4139 command. Thanks to a suggestion by Mike Heeter.
4142 command. Thanks to a suggestion by Mike Heeter.
4140 (Magic.magic_pfile): added behavior to look at filenames if given
4143 (Magic.magic_pfile): added behavior to look at filenames if given
4141 arg is not a defined object.
4144 arg is not a defined object.
4142 (Magic.magic_save): New @save function to save code snippets. Also
4145 (Magic.magic_save): New @save function to save code snippets. Also
4143 a Mike Heeter idea.
4146 a Mike Heeter idea.
4144
4147
4145 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4148 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4146 plot() and replot(). Much more convenient now, especially for
4149 plot() and replot(). Much more convenient now, especially for
4147 interactive use.
4150 interactive use.
4148
4151
4149 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4152 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4150 filenames.
4153 filenames.
4151
4154
4152 2002-06-02 Fernando Perez <fperez@colorado.edu>
4155 2002-06-02 Fernando Perez <fperez@colorado.edu>
4153
4156
4154 * IPython/Struct.py (Struct.__init__): modified to admit
4157 * IPython/Struct.py (Struct.__init__): modified to admit
4155 initialization via another struct.
4158 initialization via another struct.
4156
4159
4157 * IPython/genutils.py (SystemExec.__init__): New stateful
4160 * IPython/genutils.py (SystemExec.__init__): New stateful
4158 interface to xsys and bq. Useful for writing system scripts.
4161 interface to xsys and bq. Useful for writing system scripts.
4159
4162
4160 2002-05-30 Fernando Perez <fperez@colorado.edu>
4163 2002-05-30 Fernando Perez <fperez@colorado.edu>
4161
4164
4162 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4165 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4163 documents. This will make the user download smaller (it's getting
4166 documents. This will make the user download smaller (it's getting
4164 too big).
4167 too big).
4165
4168
4166 2002-05-29 Fernando Perez <fperez@colorado.edu>
4169 2002-05-29 Fernando Perez <fperez@colorado.edu>
4167
4170
4168 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4171 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4169 fix problems with shelve and pickle. Seems to work, but I don't
4172 fix problems with shelve and pickle. Seems to work, but I don't
4170 know if corner cases break it. Thanks to Mike Heeter
4173 know if corner cases break it. Thanks to Mike Heeter
4171 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4174 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4172
4175
4173 2002-05-24 Fernando Perez <fperez@colorado.edu>
4176 2002-05-24 Fernando Perez <fperez@colorado.edu>
4174
4177
4175 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4178 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4176 macros having broken.
4179 macros having broken.
4177
4180
4178 2002-05-21 Fernando Perez <fperez@colorado.edu>
4181 2002-05-21 Fernando Perez <fperez@colorado.edu>
4179
4182
4180 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4183 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4181 introduced logging bug: all history before logging started was
4184 introduced logging bug: all history before logging started was
4182 being written one character per line! This came from the redesign
4185 being written one character per line! This came from the redesign
4183 of the input history as a special list which slices to strings,
4186 of the input history as a special list which slices to strings,
4184 not to lists.
4187 not to lists.
4185
4188
4186 2002-05-20 Fernando Perez <fperez@colorado.edu>
4189 2002-05-20 Fernando Perez <fperez@colorado.edu>
4187
4190
4188 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4191 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4189 be an attribute of all classes in this module. The design of these
4192 be an attribute of all classes in this module. The design of these
4190 classes needs some serious overhauling.
4193 classes needs some serious overhauling.
4191
4194
4192 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4195 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4193 which was ignoring '_' in option names.
4196 which was ignoring '_' in option names.
4194
4197
4195 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4198 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4196 'Verbose_novars' to 'Context' and made it the new default. It's a
4199 'Verbose_novars' to 'Context' and made it the new default. It's a
4197 bit more readable and also safer than verbose.
4200 bit more readable and also safer than verbose.
4198
4201
4199 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4202 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4200 triple-quoted strings.
4203 triple-quoted strings.
4201
4204
4202 * IPython/OInspect.py (__all__): new module exposing the object
4205 * IPython/OInspect.py (__all__): new module exposing the object
4203 introspection facilities. Now the corresponding magics are dummy
4206 introspection facilities. Now the corresponding magics are dummy
4204 wrappers around this. Having this module will make it much easier
4207 wrappers around this. Having this module will make it much easier
4205 to put these functions into our modified pdb.
4208 to put these functions into our modified pdb.
4206 This new object inspector system uses the new colorizing module,
4209 This new object inspector system uses the new colorizing module,
4207 so source code and other things are nicely syntax highlighted.
4210 so source code and other things are nicely syntax highlighted.
4208
4211
4209 2002-05-18 Fernando Perez <fperez@colorado.edu>
4212 2002-05-18 Fernando Perez <fperez@colorado.edu>
4210
4213
4211 * IPython/ColorANSI.py: Split the coloring tools into a separate
4214 * IPython/ColorANSI.py: Split the coloring tools into a separate
4212 module so I can use them in other code easier (they were part of
4215 module so I can use them in other code easier (they were part of
4213 ultraTB).
4216 ultraTB).
4214
4217
4215 2002-05-17 Fernando Perez <fperez@colorado.edu>
4218 2002-05-17 Fernando Perez <fperez@colorado.edu>
4216
4219
4217 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4220 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4218 fixed it to set the global 'g' also to the called instance, as
4221 fixed it to set the global 'g' also to the called instance, as
4219 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4222 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4220 user's 'g' variables).
4223 user's 'g' variables).
4221
4224
4222 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4225 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4223 global variables (aliases to _ih,_oh) so that users which expect
4226 global variables (aliases to _ih,_oh) so that users which expect
4224 In[5] or Out[7] to work aren't unpleasantly surprised.
4227 In[5] or Out[7] to work aren't unpleasantly surprised.
4225 (InputList.__getslice__): new class to allow executing slices of
4228 (InputList.__getslice__): new class to allow executing slices of
4226 input history directly. Very simple class, complements the use of
4229 input history directly. Very simple class, complements the use of
4227 macros.
4230 macros.
4228
4231
4229 2002-05-16 Fernando Perez <fperez@colorado.edu>
4232 2002-05-16 Fernando Perez <fperez@colorado.edu>
4230
4233
4231 * setup.py (docdirbase): make doc directory be just doc/IPython
4234 * setup.py (docdirbase): make doc directory be just doc/IPython
4232 without version numbers, it will reduce clutter for users.
4235 without version numbers, it will reduce clutter for users.
4233
4236
4234 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4237 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4235 execfile call to prevent possible memory leak. See for details:
4238 execfile call to prevent possible memory leak. See for details:
4236 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4239 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4237
4240
4238 2002-05-15 Fernando Perez <fperez@colorado.edu>
4241 2002-05-15 Fernando Perez <fperez@colorado.edu>
4239
4242
4240 * IPython/Magic.py (Magic.magic_psource): made the object
4243 * IPython/Magic.py (Magic.magic_psource): made the object
4241 introspection names be more standard: pdoc, pdef, pfile and
4244 introspection names be more standard: pdoc, pdef, pfile and
4242 psource. They all print/page their output, and it makes
4245 psource. They all print/page their output, and it makes
4243 remembering them easier. Kept old names for compatibility as
4246 remembering them easier. Kept old names for compatibility as
4244 aliases.
4247 aliases.
4245
4248
4246 2002-05-14 Fernando Perez <fperez@colorado.edu>
4249 2002-05-14 Fernando Perez <fperez@colorado.edu>
4247
4250
4248 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4251 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4249 what the mouse problem was. The trick is to use gnuplot with temp
4252 what the mouse problem was. The trick is to use gnuplot with temp
4250 files and NOT with pipes (for data communication), because having
4253 files and NOT with pipes (for data communication), because having
4251 both pipes and the mouse on is bad news.
4254 both pipes and the mouse on is bad news.
4252
4255
4253 2002-05-13 Fernando Perez <fperez@colorado.edu>
4256 2002-05-13 Fernando Perez <fperez@colorado.edu>
4254
4257
4255 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4258 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4256 bug. Information would be reported about builtins even when
4259 bug. Information would be reported about builtins even when
4257 user-defined functions overrode them.
4260 user-defined functions overrode them.
4258
4261
4259 2002-05-11 Fernando Perez <fperez@colorado.edu>
4262 2002-05-11 Fernando Perez <fperez@colorado.edu>
4260
4263
4261 * IPython/__init__.py (__all__): removed FlexCompleter from
4264 * IPython/__init__.py (__all__): removed FlexCompleter from
4262 __all__ so that things don't fail in platforms without readline.
4265 __all__ so that things don't fail in platforms without readline.
4263
4266
4264 2002-05-10 Fernando Perez <fperez@colorado.edu>
4267 2002-05-10 Fernando Perez <fperez@colorado.edu>
4265
4268
4266 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4269 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4267 it requires Numeric, effectively making Numeric a dependency for
4270 it requires Numeric, effectively making Numeric a dependency for
4268 IPython.
4271 IPython.
4269
4272
4270 * Released 0.2.13
4273 * Released 0.2.13
4271
4274
4272 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4275 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4273 profiler interface. Now all the major options from the profiler
4276 profiler interface. Now all the major options from the profiler
4274 module are directly supported in IPython, both for single
4277 module are directly supported in IPython, both for single
4275 expressions (@prun) and for full programs (@run -p).
4278 expressions (@prun) and for full programs (@run -p).
4276
4279
4277 2002-05-09 Fernando Perez <fperez@colorado.edu>
4280 2002-05-09 Fernando Perez <fperez@colorado.edu>
4278
4281
4279 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4282 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4280 magic properly formatted for screen.
4283 magic properly formatted for screen.
4281
4284
4282 * setup.py (make_shortcut): Changed things to put pdf version in
4285 * setup.py (make_shortcut): Changed things to put pdf version in
4283 doc/ instead of doc/manual (had to change lyxport a bit).
4286 doc/ instead of doc/manual (had to change lyxport a bit).
4284
4287
4285 * IPython/Magic.py (Profile.string_stats): made profile runs go
4288 * IPython/Magic.py (Profile.string_stats): made profile runs go
4286 through pager (they are long and a pager allows searching, saving,
4289 through pager (they are long and a pager allows searching, saving,
4287 etc.)
4290 etc.)
4288
4291
4289 2002-05-08 Fernando Perez <fperez@colorado.edu>
4292 2002-05-08 Fernando Perez <fperez@colorado.edu>
4290
4293
4291 * Released 0.2.12
4294 * Released 0.2.12
4292
4295
4293 2002-05-06 Fernando Perez <fperez@colorado.edu>
4296 2002-05-06 Fernando Perez <fperez@colorado.edu>
4294
4297
4295 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4298 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4296 introduced); 'hist n1 n2' was broken.
4299 introduced); 'hist n1 n2' was broken.
4297 (Magic.magic_pdb): added optional on/off arguments to @pdb
4300 (Magic.magic_pdb): added optional on/off arguments to @pdb
4298 (Magic.magic_run): added option -i to @run, which executes code in
4301 (Magic.magic_run): added option -i to @run, which executes code in
4299 the IPython namespace instead of a clean one. Also added @irun as
4302 the IPython namespace instead of a clean one. Also added @irun as
4300 an alias to @run -i.
4303 an alias to @run -i.
4301
4304
4302 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4305 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4303 fixed (it didn't really do anything, the namespaces were wrong).
4306 fixed (it didn't really do anything, the namespaces were wrong).
4304
4307
4305 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4308 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4306
4309
4307 * IPython/__init__.py (__all__): Fixed package namespace, now
4310 * IPython/__init__.py (__all__): Fixed package namespace, now
4308 'import IPython' does give access to IPython.<all> as
4311 'import IPython' does give access to IPython.<all> as
4309 expected. Also renamed __release__ to Release.
4312 expected. Also renamed __release__ to Release.
4310
4313
4311 * IPython/Debugger.py (__license__): created new Pdb class which
4314 * IPython/Debugger.py (__license__): created new Pdb class which
4312 functions like a drop-in for the normal pdb.Pdb but does NOT
4315 functions like a drop-in for the normal pdb.Pdb but does NOT
4313 import readline by default. This way it doesn't muck up IPython's
4316 import readline by default. This way it doesn't muck up IPython's
4314 readline handling, and now tab-completion finally works in the
4317 readline handling, and now tab-completion finally works in the
4315 debugger -- sort of. It completes things globally visible, but the
4318 debugger -- sort of. It completes things globally visible, but the
4316 completer doesn't track the stack as pdb walks it. That's a bit
4319 completer doesn't track the stack as pdb walks it. That's a bit
4317 tricky, and I'll have to implement it later.
4320 tricky, and I'll have to implement it later.
4318
4321
4319 2002-05-05 Fernando Perez <fperez@colorado.edu>
4322 2002-05-05 Fernando Perez <fperez@colorado.edu>
4320
4323
4321 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4324 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4322 magic docstrings when printed via ? (explicit \'s were being
4325 magic docstrings when printed via ? (explicit \'s were being
4323 printed).
4326 printed).
4324
4327
4325 * IPython/ipmaker.py (make_IPython): fixed namespace
4328 * IPython/ipmaker.py (make_IPython): fixed namespace
4326 identification bug. Now variables loaded via logs or command-line
4329 identification bug. Now variables loaded via logs or command-line
4327 files are recognized in the interactive namespace by @who.
4330 files are recognized in the interactive namespace by @who.
4328
4331
4329 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4332 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4330 log replay system stemming from the string form of Structs.
4333 log replay system stemming from the string form of Structs.
4331
4334
4332 * IPython/Magic.py (Macro.__init__): improved macros to properly
4335 * IPython/Magic.py (Macro.__init__): improved macros to properly
4333 handle magic commands in them.
4336 handle magic commands in them.
4334 (Magic.magic_logstart): usernames are now expanded so 'logstart
4337 (Magic.magic_logstart): usernames are now expanded so 'logstart
4335 ~/mylog' now works.
4338 ~/mylog' now works.
4336
4339
4337 * IPython/iplib.py (complete): fixed bug where paths starting with
4340 * IPython/iplib.py (complete): fixed bug where paths starting with
4338 '/' would be completed as magic names.
4341 '/' would be completed as magic names.
4339
4342
4340 2002-05-04 Fernando Perez <fperez@colorado.edu>
4343 2002-05-04 Fernando Perez <fperez@colorado.edu>
4341
4344
4342 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4345 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4343 allow running full programs under the profiler's control.
4346 allow running full programs under the profiler's control.
4344
4347
4345 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4348 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4346 mode to report exceptions verbosely but without formatting
4349 mode to report exceptions verbosely but without formatting
4347 variables. This addresses the issue of ipython 'freezing' (it's
4350 variables. This addresses the issue of ipython 'freezing' (it's
4348 not frozen, but caught in an expensive formatting loop) when huge
4351 not frozen, but caught in an expensive formatting loop) when huge
4349 variables are in the context of an exception.
4352 variables are in the context of an exception.
4350 (VerboseTB.text): Added '--->' markers at line where exception was
4353 (VerboseTB.text): Added '--->' markers at line where exception was
4351 triggered. Much clearer to read, especially in NoColor modes.
4354 triggered. Much clearer to read, especially in NoColor modes.
4352
4355
4353 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4356 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
4354 implemented in reverse when changing to the new parse_options().
4357 implemented in reverse when changing to the new parse_options().
4355
4358
4356 2002-05-03 Fernando Perez <fperez@colorado.edu>
4359 2002-05-03 Fernando Perez <fperez@colorado.edu>
4357
4360
4358 * IPython/Magic.py (Magic.parse_options): new function so that
4361 * IPython/Magic.py (Magic.parse_options): new function so that
4359 magics can parse options easier.
4362 magics can parse options easier.
4360 (Magic.magic_prun): new function similar to profile.run(),
4363 (Magic.magic_prun): new function similar to profile.run(),
4361 suggested by Chris Hart.
4364 suggested by Chris Hart.
4362 (Magic.magic_cd): fixed behavior so that it only changes if
4365 (Magic.magic_cd): fixed behavior so that it only changes if
4363 directory actually is in history.
4366 directory actually is in history.
4364
4367
4365 * IPython/usage.py (__doc__): added information about potential
4368 * IPython/usage.py (__doc__): added information about potential
4366 slowness of Verbose exception mode when there are huge data
4369 slowness of Verbose exception mode when there are huge data
4367 structures to be formatted (thanks to Archie Paulson).
4370 structures to be formatted (thanks to Archie Paulson).
4368
4371
4369 * IPython/ipmaker.py (make_IPython): Changed default logging
4372 * IPython/ipmaker.py (make_IPython): Changed default logging
4370 (when simply called with -log) to use curr_dir/ipython.log in
4373 (when simply called with -log) to use curr_dir/ipython.log in
4371 rotate mode. Fixed crash which was occuring with -log before
4374 rotate mode. Fixed crash which was occuring with -log before
4372 (thanks to Jim Boyle).
4375 (thanks to Jim Boyle).
4373
4376
4374 2002-05-01 Fernando Perez <fperez@colorado.edu>
4377 2002-05-01 Fernando Perez <fperez@colorado.edu>
4375
4378
4376 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4379 * Released 0.2.11 for these fixes (mainly the ultraTB one which
4377 was nasty -- though somewhat of a corner case).
4380 was nasty -- though somewhat of a corner case).
4378
4381
4379 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4382 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
4380 text (was a bug).
4383 text (was a bug).
4381
4384
4382 2002-04-30 Fernando Perez <fperez@colorado.edu>
4385 2002-04-30 Fernando Perez <fperez@colorado.edu>
4383
4386
4384 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4387 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
4385 a print after ^D or ^C from the user so that the In[] prompt
4388 a print after ^D or ^C from the user so that the In[] prompt
4386 doesn't over-run the gnuplot one.
4389 doesn't over-run the gnuplot one.
4387
4390
4388 2002-04-29 Fernando Perez <fperez@colorado.edu>
4391 2002-04-29 Fernando Perez <fperez@colorado.edu>
4389
4392
4390 * Released 0.2.10
4393 * Released 0.2.10
4391
4394
4392 * IPython/__release__.py (version): get date dynamically.
4395 * IPython/__release__.py (version): get date dynamically.
4393
4396
4394 * Misc. documentation updates thanks to Arnd's comments. Also ran
4397 * Misc. documentation updates thanks to Arnd's comments. Also ran
4395 a full spellcheck on the manual (hadn't been done in a while).
4398 a full spellcheck on the manual (hadn't been done in a while).
4396
4399
4397 2002-04-27 Fernando Perez <fperez@colorado.edu>
4400 2002-04-27 Fernando Perez <fperez@colorado.edu>
4398
4401
4399 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4402 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
4400 starting a log in mid-session would reset the input history list.
4403 starting a log in mid-session would reset the input history list.
4401
4404
4402 2002-04-26 Fernando Perez <fperez@colorado.edu>
4405 2002-04-26 Fernando Perez <fperez@colorado.edu>
4403
4406
4404 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4407 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
4405 all files were being included in an update. Now anything in
4408 all files were being included in an update. Now anything in
4406 UserConfig that matches [A-Za-z]*.py will go (this excludes
4409 UserConfig that matches [A-Za-z]*.py will go (this excludes
4407 __init__.py)
4410 __init__.py)
4408
4411
4409 2002-04-25 Fernando Perez <fperez@colorado.edu>
4412 2002-04-25 Fernando Perez <fperez@colorado.edu>
4410
4413
4411 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4414 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
4412 to __builtins__ so that any form of embedded or imported code can
4415 to __builtins__ so that any form of embedded or imported code can
4413 test for being inside IPython.
4416 test for being inside IPython.
4414
4417
4415 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4418 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
4416 changed to GnuplotMagic because it's now an importable module,
4419 changed to GnuplotMagic because it's now an importable module,
4417 this makes the name follow that of the standard Gnuplot module.
4420 this makes the name follow that of the standard Gnuplot module.
4418 GnuplotMagic can now be loaded at any time in mid-session.
4421 GnuplotMagic can now be loaded at any time in mid-session.
4419
4422
4420 2002-04-24 Fernando Perez <fperez@colorado.edu>
4423 2002-04-24 Fernando Perez <fperez@colorado.edu>
4421
4424
4422 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4425 * IPython/numutils.py: removed SIUnits. It doesn't properly set
4423 the globals (IPython has its own namespace) and the
4426 the globals (IPython has its own namespace) and the
4424 PhysicalQuantity stuff is much better anyway.
4427 PhysicalQuantity stuff is much better anyway.
4425
4428
4426 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4429 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
4427 embedding example to standard user directory for
4430 embedding example to standard user directory for
4428 distribution. Also put it in the manual.
4431 distribution. Also put it in the manual.
4429
4432
4430 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4433 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
4431 instance as first argument (so it doesn't rely on some obscure
4434 instance as first argument (so it doesn't rely on some obscure
4432 hidden global).
4435 hidden global).
4433
4436
4434 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4437 * IPython/UserConfig/ipythonrc.py: put () back in accepted
4435 delimiters. While it prevents ().TAB from working, it allows
4438 delimiters. While it prevents ().TAB from working, it allows
4436 completions in open (... expressions. This is by far a more common
4439 completions in open (... expressions. This is by far a more common
4437 case.
4440 case.
4438
4441
4439 2002-04-23 Fernando Perez <fperez@colorado.edu>
4442 2002-04-23 Fernando Perez <fperez@colorado.edu>
4440
4443
4441 * IPython/Extensions/InterpreterPasteInput.py: new
4444 * IPython/Extensions/InterpreterPasteInput.py: new
4442 syntax-processing module for pasting lines with >>> or ... at the
4445 syntax-processing module for pasting lines with >>> or ... at the
4443 start.
4446 start.
4444
4447
4445 * IPython/Extensions/PhysicalQ_Interactive.py
4448 * IPython/Extensions/PhysicalQ_Interactive.py
4446 (PhysicalQuantityInteractive.__int__): fixed to work with either
4449 (PhysicalQuantityInteractive.__int__): fixed to work with either
4447 Numeric or math.
4450 Numeric or math.
4448
4451
4449 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4452 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
4450 provided profiles. Now we have:
4453 provided profiles. Now we have:
4451 -math -> math module as * and cmath with its own namespace.
4454 -math -> math module as * and cmath with its own namespace.
4452 -numeric -> Numeric as *, plus gnuplot & grace
4455 -numeric -> Numeric as *, plus gnuplot & grace
4453 -physics -> same as before
4456 -physics -> same as before
4454
4457
4455 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4458 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
4456 user-defined magics wouldn't be found by @magic if they were
4459 user-defined magics wouldn't be found by @magic if they were
4457 defined as class methods. Also cleaned up the namespace search
4460 defined as class methods. Also cleaned up the namespace search
4458 logic and the string building (to use %s instead of many repeated
4461 logic and the string building (to use %s instead of many repeated
4459 string adds).
4462 string adds).
4460
4463
4461 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4464 * IPython/UserConfig/example-magic.py (magic_foo): updated example
4462 of user-defined magics to operate with class methods (cleaner, in
4465 of user-defined magics to operate with class methods (cleaner, in
4463 line with the gnuplot code).
4466 line with the gnuplot code).
4464
4467
4465 2002-04-22 Fernando Perez <fperez@colorado.edu>
4468 2002-04-22 Fernando Perez <fperez@colorado.edu>
4466
4469
4467 * setup.py: updated dependency list so that manual is updated when
4470 * setup.py: updated dependency list so that manual is updated when
4468 all included files change.
4471 all included files change.
4469
4472
4470 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4473 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
4471 the delimiter removal option (the fix is ugly right now).
4474 the delimiter removal option (the fix is ugly right now).
4472
4475
4473 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4476 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
4474 all of the math profile (quicker loading, no conflict between
4477 all of the math profile (quicker loading, no conflict between
4475 g-9.8 and g-gnuplot).
4478 g-9.8 and g-gnuplot).
4476
4479
4477 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4480 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
4478 name of post-mortem files to IPython_crash_report.txt.
4481 name of post-mortem files to IPython_crash_report.txt.
4479
4482
4480 * Cleanup/update of the docs. Added all the new readline info and
4483 * Cleanup/update of the docs. Added all the new readline info and
4481 formatted all lists as 'real lists'.
4484 formatted all lists as 'real lists'.
4482
4485
4483 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4486 * IPython/ipmaker.py (make_IPython): removed now-obsolete
4484 tab-completion options, since the full readline parse_and_bind is
4487 tab-completion options, since the full readline parse_and_bind is
4485 now accessible.
4488 now accessible.
4486
4489
4487 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4490 * IPython/iplib.py (InteractiveShell.init_readline): Changed
4488 handling of readline options. Now users can specify any string to
4491 handling of readline options. Now users can specify any string to
4489 be passed to parse_and_bind(), as well as the delimiters to be
4492 be passed to parse_and_bind(), as well as the delimiters to be
4490 removed.
4493 removed.
4491 (InteractiveShell.__init__): Added __name__ to the global
4494 (InteractiveShell.__init__): Added __name__ to the global
4492 namespace so that things like Itpl which rely on its existence
4495 namespace so that things like Itpl which rely on its existence
4493 don't crash.
4496 don't crash.
4494 (InteractiveShell._prefilter): Defined the default with a _ so
4497 (InteractiveShell._prefilter): Defined the default with a _ so
4495 that prefilter() is easier to override, while the default one
4498 that prefilter() is easier to override, while the default one
4496 remains available.
4499 remains available.
4497
4500
4498 2002-04-18 Fernando Perez <fperez@colorado.edu>
4501 2002-04-18 Fernando Perez <fperez@colorado.edu>
4499
4502
4500 * Added information about pdb in the docs.
4503 * Added information about pdb in the docs.
4501
4504
4502 2002-04-17 Fernando Perez <fperez@colorado.edu>
4505 2002-04-17 Fernando Perez <fperez@colorado.edu>
4503
4506
4504 * IPython/ipmaker.py (make_IPython): added rc_override option to
4507 * IPython/ipmaker.py (make_IPython): added rc_override option to
4505 allow passing config options at creation time which may override
4508 allow passing config options at creation time which may override
4506 anything set in the config files or command line. This is
4509 anything set in the config files or command line. This is
4507 particularly useful for configuring embedded instances.
4510 particularly useful for configuring embedded instances.
4508
4511
4509 2002-04-15 Fernando Perez <fperez@colorado.edu>
4512 2002-04-15 Fernando Perez <fperez@colorado.edu>
4510
4513
4511 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4514 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
4512 crash embedded instances because of the input cache falling out of
4515 crash embedded instances because of the input cache falling out of
4513 sync with the output counter.
4516 sync with the output counter.
4514
4517
4515 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4518 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
4516 mode which calls pdb after an uncaught exception in IPython itself.
4519 mode which calls pdb after an uncaught exception in IPython itself.
4517
4520
4518 2002-04-14 Fernando Perez <fperez@colorado.edu>
4521 2002-04-14 Fernando Perez <fperez@colorado.edu>
4519
4522
4520 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4523 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
4521 readline, fix it back after each call.
4524 readline, fix it back after each call.
4522
4525
4523 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4526 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
4524 method to force all access via __call__(), which guarantees that
4527 method to force all access via __call__(), which guarantees that
4525 traceback references are properly deleted.
4528 traceback references are properly deleted.
4526
4529
4527 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4530 * IPython/Prompts.py (CachedOutput._display): minor fixes to
4528 improve printing when pprint is in use.
4531 improve printing when pprint is in use.
4529
4532
4530 2002-04-13 Fernando Perez <fperez@colorado.edu>
4533 2002-04-13 Fernando Perez <fperez@colorado.edu>
4531
4534
4532 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4535 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
4533 exceptions aren't caught anymore. If the user triggers one, he
4536 exceptions aren't caught anymore. If the user triggers one, he
4534 should know why he's doing it and it should go all the way up,
4537 should know why he's doing it and it should go all the way up,
4535 just like any other exception. So now @abort will fully kill the
4538 just like any other exception. So now @abort will fully kill the
4536 embedded interpreter and the embedding code (unless that happens
4539 embedded interpreter and the embedding code (unless that happens
4537 to catch SystemExit).
4540 to catch SystemExit).
4538
4541
4539 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4542 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
4540 and a debugger() method to invoke the interactive pdb debugger
4543 and a debugger() method to invoke the interactive pdb debugger
4541 after printing exception information. Also added the corresponding
4544 after printing exception information. Also added the corresponding
4542 -pdb option and @pdb magic to control this feature, and updated
4545 -pdb option and @pdb magic to control this feature, and updated
4543 the docs. After a suggestion from Christopher Hart
4546 the docs. After a suggestion from Christopher Hart
4544 (hart-AT-caltech.edu).
4547 (hart-AT-caltech.edu).
4545
4548
4546 2002-04-12 Fernando Perez <fperez@colorado.edu>
4549 2002-04-12 Fernando Perez <fperez@colorado.edu>
4547
4550
4548 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4551 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
4549 the exception handlers defined by the user (not the CrashHandler)
4552 the exception handlers defined by the user (not the CrashHandler)
4550 so that user exceptions don't trigger an ipython bug report.
4553 so that user exceptions don't trigger an ipython bug report.
4551
4554
4552 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4555 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
4553 configurable (it should have always been so).
4556 configurable (it should have always been so).
4554
4557
4555 2002-03-26 Fernando Perez <fperez@colorado.edu>
4558 2002-03-26 Fernando Perez <fperez@colorado.edu>
4556
4559
4557 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4560 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
4558 and there to fix embedding namespace issues. This should all be
4561 and there to fix embedding namespace issues. This should all be
4559 done in a more elegant way.
4562 done in a more elegant way.
4560
4563
4561 2002-03-25 Fernando Perez <fperez@colorado.edu>
4564 2002-03-25 Fernando Perez <fperez@colorado.edu>
4562
4565
4563 * IPython/genutils.py (get_home_dir): Try to make it work under
4566 * IPython/genutils.py (get_home_dir): Try to make it work under
4564 win9x also.
4567 win9x also.
4565
4568
4566 2002-03-20 Fernando Perez <fperez@colorado.edu>
4569 2002-03-20 Fernando Perez <fperez@colorado.edu>
4567
4570
4568 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4571 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
4569 sys.displayhook untouched upon __init__.
4572 sys.displayhook untouched upon __init__.
4570
4573
4571 2002-03-19 Fernando Perez <fperez@colorado.edu>
4574 2002-03-19 Fernando Perez <fperez@colorado.edu>
4572
4575
4573 * Released 0.2.9 (for embedding bug, basically).
4576 * Released 0.2.9 (for embedding bug, basically).
4574
4577
4575 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4578 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
4576 exceptions so that enclosing shell's state can be restored.
4579 exceptions so that enclosing shell's state can be restored.
4577
4580
4578 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4581 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
4579 naming conventions in the .ipython/ dir.
4582 naming conventions in the .ipython/ dir.
4580
4583
4581 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4584 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
4582 from delimiters list so filenames with - in them get expanded.
4585 from delimiters list so filenames with - in them get expanded.
4583
4586
4584 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4587 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
4585 sys.displayhook not being properly restored after an embedded call.
4588 sys.displayhook not being properly restored after an embedded call.
4586
4589
4587 2002-03-18 Fernando Perez <fperez@colorado.edu>
4590 2002-03-18 Fernando Perez <fperez@colorado.edu>
4588
4591
4589 * Released 0.2.8
4592 * Released 0.2.8
4590
4593
4591 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4594 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
4592 some files weren't being included in a -upgrade.
4595 some files weren't being included in a -upgrade.
4593 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4596 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
4594 on' so that the first tab completes.
4597 on' so that the first tab completes.
4595 (InteractiveShell.handle_magic): fixed bug with spaces around
4598 (InteractiveShell.handle_magic): fixed bug with spaces around
4596 quotes breaking many magic commands.
4599 quotes breaking many magic commands.
4597
4600
4598 * setup.py: added note about ignoring the syntax error messages at
4601 * setup.py: added note about ignoring the syntax error messages at
4599 installation.
4602 installation.
4600
4603
4601 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4604 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
4602 streamlining the gnuplot interface, now there's only one magic @gp.
4605 streamlining the gnuplot interface, now there's only one magic @gp.
4603
4606
4604 2002-03-17 Fernando Perez <fperez@colorado.edu>
4607 2002-03-17 Fernando Perez <fperez@colorado.edu>
4605
4608
4606 * IPython/UserConfig/magic_gnuplot.py: new name for the
4609 * IPython/UserConfig/magic_gnuplot.py: new name for the
4607 example-magic_pm.py file. Much enhanced system, now with a shell
4610 example-magic_pm.py file. Much enhanced system, now with a shell
4608 for communicating directly with gnuplot, one command at a time.
4611 for communicating directly with gnuplot, one command at a time.
4609
4612
4610 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4613 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
4611 setting __name__=='__main__'.
4614 setting __name__=='__main__'.
4612
4615
4613 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4616 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
4614 mini-shell for accessing gnuplot from inside ipython. Should
4617 mini-shell for accessing gnuplot from inside ipython. Should
4615 extend it later for grace access too. Inspired by Arnd's
4618 extend it later for grace access too. Inspired by Arnd's
4616 suggestion.
4619 suggestion.
4617
4620
4618 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4621 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
4619 calling magic functions with () in their arguments. Thanks to Arnd
4622 calling magic functions with () in their arguments. Thanks to Arnd
4620 Baecker for pointing this to me.
4623 Baecker for pointing this to me.
4621
4624
4622 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4625 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
4623 infinitely for integer or complex arrays (only worked with floats).
4626 infinitely for integer or complex arrays (only worked with floats).
4624
4627
4625 2002-03-16 Fernando Perez <fperez@colorado.edu>
4628 2002-03-16 Fernando Perez <fperez@colorado.edu>
4626
4629
4627 * setup.py: Merged setup and setup_windows into a single script
4630 * setup.py: Merged setup and setup_windows into a single script
4628 which properly handles things for windows users.
4631 which properly handles things for windows users.
4629
4632
4630 2002-03-15 Fernando Perez <fperez@colorado.edu>
4633 2002-03-15 Fernando Perez <fperez@colorado.edu>
4631
4634
4632 * Big change to the manual: now the magics are all automatically
4635 * Big change to the manual: now the magics are all automatically
4633 documented. This information is generated from their docstrings
4636 documented. This information is generated from their docstrings
4634 and put in a latex file included by the manual lyx file. This way
4637 and put in a latex file included by the manual lyx file. This way
4635 we get always up to date information for the magics. The manual
4638 we get always up to date information for the magics. The manual
4636 now also has proper version information, also auto-synced.
4639 now also has proper version information, also auto-synced.
4637
4640
4638 For this to work, an undocumented --magic_docstrings option was added.
4641 For this to work, an undocumented --magic_docstrings option was added.
4639
4642
4640 2002-03-13 Fernando Perez <fperez@colorado.edu>
4643 2002-03-13 Fernando Perez <fperez@colorado.edu>
4641
4644
4642 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4645 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
4643 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4646 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
4644
4647
4645 2002-03-12 Fernando Perez <fperez@colorado.edu>
4648 2002-03-12 Fernando Perez <fperez@colorado.edu>
4646
4649
4647 * IPython/ultraTB.py (TermColors): changed color escapes again to
4650 * IPython/ultraTB.py (TermColors): changed color escapes again to
4648 fix the (old, reintroduced) line-wrapping bug. Basically, if
4651 fix the (old, reintroduced) line-wrapping bug. Basically, if
4649 \001..\002 aren't given in the color escapes, lines get wrapped
4652 \001..\002 aren't given in the color escapes, lines get wrapped
4650 weirdly. But giving those screws up old xterms and emacs terms. So
4653 weirdly. But giving those screws up old xterms and emacs terms. So
4651 I added some logic for emacs terms to be ok, but I can't identify old
4654 I added some logic for emacs terms to be ok, but I can't identify old
4652 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4655 xterms separately ($TERM=='xterm' for many terminals, like konsole).
4653
4656
4654 2002-03-10 Fernando Perez <fperez@colorado.edu>
4657 2002-03-10 Fernando Perez <fperez@colorado.edu>
4655
4658
4656 * IPython/usage.py (__doc__): Various documentation cleanups and
4659 * IPython/usage.py (__doc__): Various documentation cleanups and
4657 updates, both in usage docstrings and in the manual.
4660 updates, both in usage docstrings and in the manual.
4658
4661
4659 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4662 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
4660 handling of caching. Set minimum acceptabe value for having a
4663 handling of caching. Set minimum acceptabe value for having a
4661 cache at 20 values.
4664 cache at 20 values.
4662
4665
4663 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4666 * IPython/iplib.py (InteractiveShell.user_setup): moved the
4664 install_first_time function to a method, renamed it and added an
4667 install_first_time function to a method, renamed it and added an
4665 'upgrade' mode. Now people can update their config directory with
4668 'upgrade' mode. Now people can update their config directory with
4666 a simple command line switch (-upgrade, also new).
4669 a simple command line switch (-upgrade, also new).
4667
4670
4668 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4671 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
4669 @file (convenient for automagic users under Python >= 2.2).
4672 @file (convenient for automagic users under Python >= 2.2).
4670 Removed @files (it seemed more like a plural than an abbrev. of
4673 Removed @files (it seemed more like a plural than an abbrev. of
4671 'file show').
4674 'file show').
4672
4675
4673 * IPython/iplib.py (install_first_time): Fixed crash if there were
4676 * IPython/iplib.py (install_first_time): Fixed crash if there were
4674 backup files ('~') in .ipython/ install directory.
4677 backup files ('~') in .ipython/ install directory.
4675
4678
4676 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4679 * IPython/ipmaker.py (make_IPython): fixes for new prompt
4677 system. Things look fine, but these changes are fairly
4680 system. Things look fine, but these changes are fairly
4678 intrusive. Test them for a few days.
4681 intrusive. Test them for a few days.
4679
4682
4680 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4683 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
4681 the prompts system. Now all in/out prompt strings are user
4684 the prompts system. Now all in/out prompt strings are user
4682 controllable. This is particularly useful for embedding, as one
4685 controllable. This is particularly useful for embedding, as one
4683 can tag embedded instances with particular prompts.
4686 can tag embedded instances with particular prompts.
4684
4687
4685 Also removed global use of sys.ps1/2, which now allows nested
4688 Also removed global use of sys.ps1/2, which now allows nested
4686 embeddings without any problems. Added command-line options for
4689 embeddings without any problems. Added command-line options for
4687 the prompt strings.
4690 the prompt strings.
4688
4691
4689 2002-03-08 Fernando Perez <fperez@colorado.edu>
4692 2002-03-08 Fernando Perez <fperez@colorado.edu>
4690
4693
4691 * IPython/UserConfig/example-embed-short.py (ipshell): added
4694 * IPython/UserConfig/example-embed-short.py (ipshell): added
4692 example file with the bare minimum code for embedding.
4695 example file with the bare minimum code for embedding.
4693
4696
4694 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4697 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
4695 functionality for the embeddable shell to be activated/deactivated
4698 functionality for the embeddable shell to be activated/deactivated
4696 either globally or at each call.
4699 either globally or at each call.
4697
4700
4698 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4701 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
4699 rewriting the prompt with '--->' for auto-inputs with proper
4702 rewriting the prompt with '--->' for auto-inputs with proper
4700 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4703 coloring. Now the previous UGLY hack in handle_auto() is gone, and
4701 this is handled by the prompts class itself, as it should.
4704 this is handled by the prompts class itself, as it should.
4702
4705
4703 2002-03-05 Fernando Perez <fperez@colorado.edu>
4706 2002-03-05 Fernando Perez <fperez@colorado.edu>
4704
4707
4705 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4708 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
4706 @logstart to avoid name clashes with the math log function.
4709 @logstart to avoid name clashes with the math log function.
4707
4710
4708 * Big updates to X/Emacs section of the manual.
4711 * Big updates to X/Emacs section of the manual.
4709
4712
4710 * Removed ipython_emacs. Milan explained to me how to pass
4713 * Removed ipython_emacs. Milan explained to me how to pass
4711 arguments to ipython through Emacs. Some day I'm going to end up
4714 arguments to ipython through Emacs. Some day I'm going to end up
4712 learning some lisp...
4715 learning some lisp...
4713
4716
4714 2002-03-04 Fernando Perez <fperez@colorado.edu>
4717 2002-03-04 Fernando Perez <fperez@colorado.edu>
4715
4718
4716 * IPython/ipython_emacs: Created script to be used as the
4719 * IPython/ipython_emacs: Created script to be used as the
4717 py-python-command Emacs variable so we can pass IPython
4720 py-python-command Emacs variable so we can pass IPython
4718 parameters. I can't figure out how to tell Emacs directly to pass
4721 parameters. I can't figure out how to tell Emacs directly to pass
4719 parameters to IPython, so a dummy shell script will do it.
4722 parameters to IPython, so a dummy shell script will do it.
4720
4723
4721 Other enhancements made for things to work better under Emacs'
4724 Other enhancements made for things to work better under Emacs'
4722 various types of terminals. Many thanks to Milan Zamazal
4725 various types of terminals. Many thanks to Milan Zamazal
4723 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4726 <pdm-AT-zamazal.org> for all the suggestions and pointers.
4724
4727
4725 2002-03-01 Fernando Perez <fperez@colorado.edu>
4728 2002-03-01 Fernando Perez <fperez@colorado.edu>
4726
4729
4727 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4730 * IPython/ipmaker.py (make_IPython): added a --readline! option so
4728 that loading of readline is now optional. This gives better
4731 that loading of readline is now optional. This gives better
4729 control to emacs users.
4732 control to emacs users.
4730
4733
4731 * IPython/ultraTB.py (__date__): Modified color escape sequences
4734 * IPython/ultraTB.py (__date__): Modified color escape sequences
4732 and now things work fine under xterm and in Emacs' term buffers
4735 and now things work fine under xterm and in Emacs' term buffers
4733 (though not shell ones). Well, in emacs you get colors, but all
4736 (though not shell ones). Well, in emacs you get colors, but all
4734 seem to be 'light' colors (no difference between dark and light
4737 seem to be 'light' colors (no difference between dark and light
4735 ones). But the garbage chars are gone, and also in xterms. It
4738 ones). But the garbage chars are gone, and also in xterms. It
4736 seems that now I'm using 'cleaner' ansi sequences.
4739 seems that now I'm using 'cleaner' ansi sequences.
4737
4740
4738 2002-02-21 Fernando Perez <fperez@colorado.edu>
4741 2002-02-21 Fernando Perez <fperez@colorado.edu>
4739
4742
4740 * Released 0.2.7 (mainly to publish the scoping fix).
4743 * Released 0.2.7 (mainly to publish the scoping fix).
4741
4744
4742 * IPython/Logger.py (Logger.logstate): added. A corresponding
4745 * IPython/Logger.py (Logger.logstate): added. A corresponding
4743 @logstate magic was created.
4746 @logstate magic was created.
4744
4747
4745 * IPython/Magic.py: fixed nested scoping problem under Python
4748 * IPython/Magic.py: fixed nested scoping problem under Python
4746 2.1.x (automagic wasn't working).
4749 2.1.x (automagic wasn't working).
4747
4750
4748 2002-02-20 Fernando Perez <fperez@colorado.edu>
4751 2002-02-20 Fernando Perez <fperez@colorado.edu>
4749
4752
4750 * Released 0.2.6.
4753 * Released 0.2.6.
4751
4754
4752 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4755 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
4753 option so that logs can come out without any headers at all.
4756 option so that logs can come out without any headers at all.
4754
4757
4755 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4758 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
4756 SciPy.
4759 SciPy.
4757
4760
4758 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4761 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
4759 that embedded IPython calls don't require vars() to be explicitly
4762 that embedded IPython calls don't require vars() to be explicitly
4760 passed. Now they are extracted from the caller's frame (code
4763 passed. Now they are extracted from the caller's frame (code
4761 snatched from Eric Jones' weave). Added better documentation to
4764 snatched from Eric Jones' weave). Added better documentation to
4762 the section on embedding and the example file.
4765 the section on embedding and the example file.
4763
4766
4764 * IPython/genutils.py (page): Changed so that under emacs, it just
4767 * IPython/genutils.py (page): Changed so that under emacs, it just
4765 prints the string. You can then page up and down in the emacs
4768 prints the string. You can then page up and down in the emacs
4766 buffer itself. This is how the builtin help() works.
4769 buffer itself. This is how the builtin help() works.
4767
4770
4768 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4771 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
4769 macro scoping: macros need to be executed in the user's namespace
4772 macro scoping: macros need to be executed in the user's namespace
4770 to work as if they had been typed by the user.
4773 to work as if they had been typed by the user.
4771
4774
4772 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4775 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
4773 execute automatically (no need to type 'exec...'). They then
4776 execute automatically (no need to type 'exec...'). They then
4774 behave like 'true macros'. The printing system was also modified
4777 behave like 'true macros'. The printing system was also modified
4775 for this to work.
4778 for this to work.
4776
4779
4777 2002-02-19 Fernando Perez <fperez@colorado.edu>
4780 2002-02-19 Fernando Perez <fperez@colorado.edu>
4778
4781
4779 * IPython/genutils.py (page_file): new function for paging files
4782 * IPython/genutils.py (page_file): new function for paging files
4780 in an OS-independent way. Also necessary for file viewing to work
4783 in an OS-independent way. Also necessary for file viewing to work
4781 well inside Emacs buffers.
4784 well inside Emacs buffers.
4782 (page): Added checks for being in an emacs buffer.
4785 (page): Added checks for being in an emacs buffer.
4783 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4786 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
4784 same bug in iplib.
4787 same bug in iplib.
4785
4788
4786 2002-02-18 Fernando Perez <fperez@colorado.edu>
4789 2002-02-18 Fernando Perez <fperez@colorado.edu>
4787
4790
4788 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4791 * IPython/iplib.py (InteractiveShell.init_readline): modified use
4789 of readline so that IPython can work inside an Emacs buffer.
4792 of readline so that IPython can work inside an Emacs buffer.
4790
4793
4791 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4794 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
4792 method signatures (they weren't really bugs, but it looks cleaner
4795 method signatures (they weren't really bugs, but it looks cleaner
4793 and keeps PyChecker happy).
4796 and keeps PyChecker happy).
4794
4797
4795 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4798 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
4796 for implementing various user-defined hooks. Currently only
4799 for implementing various user-defined hooks. Currently only
4797 display is done.
4800 display is done.
4798
4801
4799 * IPython/Prompts.py (CachedOutput._display): changed display
4802 * IPython/Prompts.py (CachedOutput._display): changed display
4800 functions so that they can be dynamically changed by users easily.
4803 functions so that they can be dynamically changed by users easily.
4801
4804
4802 * IPython/Extensions/numeric_formats.py (num_display): added an
4805 * IPython/Extensions/numeric_formats.py (num_display): added an
4803 extension for printing NumPy arrays in flexible manners. It
4806 extension for printing NumPy arrays in flexible manners. It
4804 doesn't do anything yet, but all the structure is in
4807 doesn't do anything yet, but all the structure is in
4805 place. Ultimately the plan is to implement output format control
4808 place. Ultimately the plan is to implement output format control
4806 like in Octave.
4809 like in Octave.
4807
4810
4808 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4811 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
4809 methods are found at run-time by all the automatic machinery.
4812 methods are found at run-time by all the automatic machinery.
4810
4813
4811 2002-02-17 Fernando Perez <fperez@colorado.edu>
4814 2002-02-17 Fernando Perez <fperez@colorado.edu>
4812
4815
4813 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4816 * setup_Windows.py (make_shortcut): documented. Cleaned up the
4814 whole file a little.
4817 whole file a little.
4815
4818
4816 * ToDo: closed this document. Now there's a new_design.lyx
4819 * ToDo: closed this document. Now there's a new_design.lyx
4817 document for all new ideas. Added making a pdf of it for the
4820 document for all new ideas. Added making a pdf of it for the
4818 end-user distro.
4821 end-user distro.
4819
4822
4820 * IPython/Logger.py (Logger.switch_log): Created this to replace
4823 * IPython/Logger.py (Logger.switch_log): Created this to replace
4821 logon() and logoff(). It also fixes a nasty crash reported by
4824 logon() and logoff(). It also fixes a nasty crash reported by
4822 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4825 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
4823
4826
4824 * IPython/iplib.py (complete): got auto-completion to work with
4827 * IPython/iplib.py (complete): got auto-completion to work with
4825 automagic (I had wanted this for a long time).
4828 automagic (I had wanted this for a long time).
4826
4829
4827 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4830 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
4828 to @file, since file() is now a builtin and clashes with automagic
4831 to @file, since file() is now a builtin and clashes with automagic
4829 for @file.
4832 for @file.
4830
4833
4831 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4834 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
4832 of this was previously in iplib, which had grown to more than 2000
4835 of this was previously in iplib, which had grown to more than 2000
4833 lines, way too long. No new functionality, but it makes managing
4836 lines, way too long. No new functionality, but it makes managing
4834 the code a bit easier.
4837 the code a bit easier.
4835
4838
4836 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4839 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
4837 information to crash reports.
4840 information to crash reports.
4838
4841
4839 2002-02-12 Fernando Perez <fperez@colorado.edu>
4842 2002-02-12 Fernando Perez <fperez@colorado.edu>
4840
4843
4841 * Released 0.2.5.
4844 * Released 0.2.5.
4842
4845
4843 2002-02-11 Fernando Perez <fperez@colorado.edu>
4846 2002-02-11 Fernando Perez <fperez@colorado.edu>
4844
4847
4845 * Wrote a relatively complete Windows installer. It puts
4848 * Wrote a relatively complete Windows installer. It puts
4846 everything in place, creates Start Menu entries and fixes the
4849 everything in place, creates Start Menu entries and fixes the
4847 color issues. Nothing fancy, but it works.
4850 color issues. Nothing fancy, but it works.
4848
4851
4849 2002-02-10 Fernando Perez <fperez@colorado.edu>
4852 2002-02-10 Fernando Perez <fperez@colorado.edu>
4850
4853
4851 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4854 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
4852 os.path.expanduser() call so that we can type @run ~/myfile.py and
4855 os.path.expanduser() call so that we can type @run ~/myfile.py and
4853 have thigs work as expected.
4856 have thigs work as expected.
4854
4857
4855 * IPython/genutils.py (page): fixed exception handling so things
4858 * IPython/genutils.py (page): fixed exception handling so things
4856 work both in Unix and Windows correctly. Quitting a pager triggers
4859 work both in Unix and Windows correctly. Quitting a pager triggers
4857 an IOError/broken pipe in Unix, and in windows not finding a pager
4860 an IOError/broken pipe in Unix, and in windows not finding a pager
4858 is also an IOError, so I had to actually look at the return value
4861 is also an IOError, so I had to actually look at the return value
4859 of the exception, not just the exception itself. Should be ok now.
4862 of the exception, not just the exception itself. Should be ok now.
4860
4863
4861 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4864 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
4862 modified to allow case-insensitive color scheme changes.
4865 modified to allow case-insensitive color scheme changes.
4863
4866
4864 2002-02-09 Fernando Perez <fperez@colorado.edu>
4867 2002-02-09 Fernando Perez <fperez@colorado.edu>
4865
4868
4866 * IPython/genutils.py (native_line_ends): new function to leave
4869 * IPython/genutils.py (native_line_ends): new function to leave
4867 user config files with os-native line-endings.
4870 user config files with os-native line-endings.
4868
4871
4869 * README and manual updates.
4872 * README and manual updates.
4870
4873
4871 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4874 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
4872 instead of StringType to catch Unicode strings.
4875 instead of StringType to catch Unicode strings.
4873
4876
4874 * IPython/genutils.py (filefind): fixed bug for paths with
4877 * IPython/genutils.py (filefind): fixed bug for paths with
4875 embedded spaces (very common in Windows).
4878 embedded spaces (very common in Windows).
4876
4879
4877 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4880 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
4878 files under Windows, so that they get automatically associated
4881 files under Windows, so that they get automatically associated
4879 with a text editor. Windows makes it a pain to handle
4882 with a text editor. Windows makes it a pain to handle
4880 extension-less files.
4883 extension-less files.
4881
4884
4882 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4885 * IPython/iplib.py (InteractiveShell.init_readline): Made the
4883 warning about readline only occur for Posix. In Windows there's no
4886 warning about readline only occur for Posix. In Windows there's no
4884 way to get readline, so why bother with the warning.
4887 way to get readline, so why bother with the warning.
4885
4888
4886 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4889 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
4887 for __str__ instead of dir(self), since dir() changed in 2.2.
4890 for __str__ instead of dir(self), since dir() changed in 2.2.
4888
4891
4889 * Ported to Windows! Tested on XP, I suspect it should work fine
4892 * Ported to Windows! Tested on XP, I suspect it should work fine
4890 on NT/2000, but I don't think it will work on 98 et al. That
4893 on NT/2000, but I don't think it will work on 98 et al. That
4891 series of Windows is such a piece of junk anyway that I won't try
4894 series of Windows is such a piece of junk anyway that I won't try
4892 porting it there. The XP port was straightforward, showed a few
4895 porting it there. The XP port was straightforward, showed a few
4893 bugs here and there (fixed all), in particular some string
4896 bugs here and there (fixed all), in particular some string
4894 handling stuff which required considering Unicode strings (which
4897 handling stuff which required considering Unicode strings (which
4895 Windows uses). This is good, but hasn't been too tested :) No
4898 Windows uses). This is good, but hasn't been too tested :) No
4896 fancy installer yet, I'll put a note in the manual so people at
4899 fancy installer yet, I'll put a note in the manual so people at
4897 least make manually a shortcut.
4900 least make manually a shortcut.
4898
4901
4899 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4902 * IPython/iplib.py (Magic.magic_colors): Unified the color options
4900 into a single one, "colors". This now controls both prompt and
4903 into a single one, "colors". This now controls both prompt and
4901 exception color schemes, and can be changed both at startup
4904 exception color schemes, and can be changed both at startup
4902 (either via command-line switches or via ipythonrc files) and at
4905 (either via command-line switches or via ipythonrc files) and at
4903 runtime, with @colors.
4906 runtime, with @colors.
4904 (Magic.magic_run): renamed @prun to @run and removed the old
4907 (Magic.magic_run): renamed @prun to @run and removed the old
4905 @run. The two were too similar to warrant keeping both.
4908 @run. The two were too similar to warrant keeping both.
4906
4909
4907 2002-02-03 Fernando Perez <fperez@colorado.edu>
4910 2002-02-03 Fernando Perez <fperez@colorado.edu>
4908
4911
4909 * IPython/iplib.py (install_first_time): Added comment on how to
4912 * IPython/iplib.py (install_first_time): Added comment on how to
4910 configure the color options for first-time users. Put a <return>
4913 configure the color options for first-time users. Put a <return>
4911 request at the end so that small-terminal users get a chance to
4914 request at the end so that small-terminal users get a chance to
4912 read the startup info.
4915 read the startup info.
4913
4916
4914 2002-01-23 Fernando Perez <fperez@colorado.edu>
4917 2002-01-23 Fernando Perez <fperez@colorado.edu>
4915
4918
4916 * IPython/iplib.py (CachedOutput.update): Changed output memory
4919 * IPython/iplib.py (CachedOutput.update): Changed output memory
4917 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4920 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
4918 input history we still use _i. Did this b/c these variable are
4921 input history we still use _i. Did this b/c these variable are
4919 very commonly used in interactive work, so the less we need to
4922 very commonly used in interactive work, so the less we need to
4920 type the better off we are.
4923 type the better off we are.
4921 (Magic.magic_prun): updated @prun to better handle the namespaces
4924 (Magic.magic_prun): updated @prun to better handle the namespaces
4922 the file will run in, including a fix for __name__ not being set
4925 the file will run in, including a fix for __name__ not being set
4923 before.
4926 before.
4924
4927
4925 2002-01-20 Fernando Perez <fperez@colorado.edu>
4928 2002-01-20 Fernando Perez <fperez@colorado.edu>
4926
4929
4927 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4930 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
4928 extra garbage for Python 2.2. Need to look more carefully into
4931 extra garbage for Python 2.2. Need to look more carefully into
4929 this later.
4932 this later.
4930
4933
4931 2002-01-19 Fernando Perez <fperez@colorado.edu>
4934 2002-01-19 Fernando Perez <fperez@colorado.edu>
4932
4935
4933 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4936 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
4934 display SyntaxError exceptions properly formatted when they occur
4937 display SyntaxError exceptions properly formatted when they occur
4935 (they can be triggered by imported code).
4938 (they can be triggered by imported code).
4936
4939
4937 2002-01-18 Fernando Perez <fperez@colorado.edu>
4940 2002-01-18 Fernando Perez <fperez@colorado.edu>
4938
4941
4939 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4942 * IPython/iplib.py (InteractiveShell.safe_execfile): now
4940 SyntaxError exceptions are reported nicely formatted, instead of
4943 SyntaxError exceptions are reported nicely formatted, instead of
4941 spitting out only offset information as before.
4944 spitting out only offset information as before.
4942 (Magic.magic_prun): Added the @prun function for executing
4945 (Magic.magic_prun): Added the @prun function for executing
4943 programs with command line args inside IPython.
4946 programs with command line args inside IPython.
4944
4947
4945 2002-01-16 Fernando Perez <fperez@colorado.edu>
4948 2002-01-16 Fernando Perez <fperez@colorado.edu>
4946
4949
4947 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4950 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
4948 to *not* include the last item given in a range. This brings their
4951 to *not* include the last item given in a range. This brings their
4949 behavior in line with Python's slicing:
4952 behavior in line with Python's slicing:
4950 a[n1:n2] -> a[n1]...a[n2-1]
4953 a[n1:n2] -> a[n1]...a[n2-1]
4951 It may be a bit less convenient, but I prefer to stick to Python's
4954 It may be a bit less convenient, but I prefer to stick to Python's
4952 conventions *everywhere*, so users never have to wonder.
4955 conventions *everywhere*, so users never have to wonder.
4953 (Magic.magic_macro): Added @macro function to ease the creation of
4956 (Magic.magic_macro): Added @macro function to ease the creation of
4954 macros.
4957 macros.
4955
4958
4956 2002-01-05 Fernando Perez <fperez@colorado.edu>
4959 2002-01-05 Fernando Perez <fperez@colorado.edu>
4957
4960
4958 * Released 0.2.4.
4961 * Released 0.2.4.
4959
4962
4960 * IPython/iplib.py (Magic.magic_pdef):
4963 * IPython/iplib.py (Magic.magic_pdef):
4961 (InteractiveShell.safe_execfile): report magic lines and error
4964 (InteractiveShell.safe_execfile): report magic lines and error
4962 lines without line numbers so one can easily copy/paste them for
4965 lines without line numbers so one can easily copy/paste them for
4963 re-execution.
4966 re-execution.
4964
4967
4965 * Updated manual with recent changes.
4968 * Updated manual with recent changes.
4966
4969
4967 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4970 * IPython/iplib.py (Magic.magic_oinfo): added constructor
4968 docstring printing when class? is called. Very handy for knowing
4971 docstring printing when class? is called. Very handy for knowing
4969 how to create class instances (as long as __init__ is well
4972 how to create class instances (as long as __init__ is well
4970 documented, of course :)
4973 documented, of course :)
4971 (Magic.magic_doc): print both class and constructor docstrings.
4974 (Magic.magic_doc): print both class and constructor docstrings.
4972 (Magic.magic_pdef): give constructor info if passed a class and
4975 (Magic.magic_pdef): give constructor info if passed a class and
4973 __call__ info for callable object instances.
4976 __call__ info for callable object instances.
4974
4977
4975 2002-01-04 Fernando Perez <fperez@colorado.edu>
4978 2002-01-04 Fernando Perez <fperez@colorado.edu>
4976
4979
4977 * Made deep_reload() off by default. It doesn't always work
4980 * Made deep_reload() off by default. It doesn't always work
4978 exactly as intended, so it's probably safer to have it off. It's
4981 exactly as intended, so it's probably safer to have it off. It's
4979 still available as dreload() anyway, so nothing is lost.
4982 still available as dreload() anyway, so nothing is lost.
4980
4983
4981 2002-01-02 Fernando Perez <fperez@colorado.edu>
4984 2002-01-02 Fernando Perez <fperez@colorado.edu>
4982
4985
4983 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4986 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
4984 so I wanted an updated release).
4987 so I wanted an updated release).
4985
4988
4986 2001-12-27 Fernando Perez <fperez@colorado.edu>
4989 2001-12-27 Fernando Perez <fperez@colorado.edu>
4987
4990
4988 * IPython/iplib.py (InteractiveShell.interact): Added the original
4991 * IPython/iplib.py (InteractiveShell.interact): Added the original
4989 code from 'code.py' for this module in order to change the
4992 code from 'code.py' for this module in order to change the
4990 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4993 handling of a KeyboardInterrupt. This was necessary b/c otherwise
4991 the history cache would break when the user hit Ctrl-C, and
4994 the history cache would break when the user hit Ctrl-C, and
4992 interact() offers no way to add any hooks to it.
4995 interact() offers no way to add any hooks to it.
4993
4996
4994 2001-12-23 Fernando Perez <fperez@colorado.edu>
4997 2001-12-23 Fernando Perez <fperez@colorado.edu>
4995
4998
4996 * setup.py: added check for 'MANIFEST' before trying to remove
4999 * setup.py: added check for 'MANIFEST' before trying to remove
4997 it. Thanks to Sean Reifschneider.
5000 it. Thanks to Sean Reifschneider.
4998
5001
4999 2001-12-22 Fernando Perez <fperez@colorado.edu>
5002 2001-12-22 Fernando Perez <fperez@colorado.edu>
5000
5003
5001 * Released 0.2.2.
5004 * Released 0.2.2.
5002
5005
5003 * Finished (reasonably) writing the manual. Later will add the
5006 * Finished (reasonably) writing the manual. Later will add the
5004 python-standard navigation stylesheets, but for the time being
5007 python-standard navigation stylesheets, but for the time being
5005 it's fairly complete. Distribution will include html and pdf
5008 it's fairly complete. Distribution will include html and pdf
5006 versions.
5009 versions.
5007
5010
5008 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5011 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5009 (MayaVi author).
5012 (MayaVi author).
5010
5013
5011 2001-12-21 Fernando Perez <fperez@colorado.edu>
5014 2001-12-21 Fernando Perez <fperez@colorado.edu>
5012
5015
5013 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5016 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5014 good public release, I think (with the manual and the distutils
5017 good public release, I think (with the manual and the distutils
5015 installer). The manual can use some work, but that can go
5018 installer). The manual can use some work, but that can go
5016 slowly. Otherwise I think it's quite nice for end users. Next
5019 slowly. Otherwise I think it's quite nice for end users. Next
5017 summer, rewrite the guts of it...
5020 summer, rewrite the guts of it...
5018
5021
5019 * Changed format of ipythonrc files to use whitespace as the
5022 * Changed format of ipythonrc files to use whitespace as the
5020 separator instead of an explicit '='. Cleaner.
5023 separator instead of an explicit '='. Cleaner.
5021
5024
5022 2001-12-20 Fernando Perez <fperez@colorado.edu>
5025 2001-12-20 Fernando Perez <fperez@colorado.edu>
5023
5026
5024 * Started a manual in LyX. For now it's just a quick merge of the
5027 * Started a manual in LyX. For now it's just a quick merge of the
5025 various internal docstrings and READMEs. Later it may grow into a
5028 various internal docstrings and READMEs. Later it may grow into a
5026 nice, full-blown manual.
5029 nice, full-blown manual.
5027
5030
5028 * Set up a distutils based installer. Installation should now be
5031 * Set up a distutils based installer. Installation should now be
5029 trivially simple for end-users.
5032 trivially simple for end-users.
5030
5033
5031 2001-12-11 Fernando Perez <fperez@colorado.edu>
5034 2001-12-11 Fernando Perez <fperez@colorado.edu>
5032
5035
5033 * Released 0.2.0. First public release, announced it at
5036 * Released 0.2.0. First public release, announced it at
5034 comp.lang.python. From now on, just bugfixes...
5037 comp.lang.python. From now on, just bugfixes...
5035
5038
5036 * Went through all the files, set copyright/license notices and
5039 * Went through all the files, set copyright/license notices and
5037 cleaned up things. Ready for release.
5040 cleaned up things. Ready for release.
5038
5041
5039 2001-12-10 Fernando Perez <fperez@colorado.edu>
5042 2001-12-10 Fernando Perez <fperez@colorado.edu>
5040
5043
5041 * Changed the first-time installer not to use tarfiles. It's more
5044 * Changed the first-time installer not to use tarfiles. It's more
5042 robust now and less unix-dependent. Also makes it easier for
5045 robust now and less unix-dependent. Also makes it easier for
5043 people to later upgrade versions.
5046 people to later upgrade versions.
5044
5047
5045 * Changed @exit to @abort to reflect the fact that it's pretty
5048 * Changed @exit to @abort to reflect the fact that it's pretty
5046 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5049 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5047 becomes significant only when IPyhton is embedded: in that case,
5050 becomes significant only when IPyhton is embedded: in that case,
5048 C-D closes IPython only, but @abort kills the enclosing program
5051 C-D closes IPython only, but @abort kills the enclosing program
5049 too (unless it had called IPython inside a try catching
5052 too (unless it had called IPython inside a try catching
5050 SystemExit).
5053 SystemExit).
5051
5054
5052 * Created Shell module which exposes the actuall IPython Shell
5055 * Created Shell module which exposes the actuall IPython Shell
5053 classes, currently the normal and the embeddable one. This at
5056 classes, currently the normal and the embeddable one. This at
5054 least offers a stable interface we won't need to change when
5057 least offers a stable interface we won't need to change when
5055 (later) the internals are rewritten. That rewrite will be confined
5058 (later) the internals are rewritten. That rewrite will be confined
5056 to iplib and ipmaker, but the Shell interface should remain as is.
5059 to iplib and ipmaker, but the Shell interface should remain as is.
5057
5060
5058 * Added embed module which offers an embeddable IPShell object,
5061 * Added embed module which offers an embeddable IPShell object,
5059 useful to fire up IPython *inside* a running program. Great for
5062 useful to fire up IPython *inside* a running program. Great for
5060 debugging or dynamical data analysis.
5063 debugging or dynamical data analysis.
5061
5064
5062 2001-12-08 Fernando Perez <fperez@colorado.edu>
5065 2001-12-08 Fernando Perez <fperez@colorado.edu>
5063
5066
5064 * Fixed small bug preventing seeing info from methods of defined
5067 * Fixed small bug preventing seeing info from methods of defined
5065 objects (incorrect namespace in _ofind()).
5068 objects (incorrect namespace in _ofind()).
5066
5069
5067 * Documentation cleanup. Moved the main usage docstrings to a
5070 * Documentation cleanup. Moved the main usage docstrings to a
5068 separate file, usage.py (cleaner to maintain, and hopefully in the
5071 separate file, usage.py (cleaner to maintain, and hopefully in the
5069 future some perlpod-like way of producing interactive, man and
5072 future some perlpod-like way of producing interactive, man and
5070 html docs out of it will be found).
5073 html docs out of it will be found).
5071
5074
5072 * Added @profile to see your profile at any time.
5075 * Added @profile to see your profile at any time.
5073
5076
5074 * Added @p as an alias for 'print'. It's especially convenient if
5077 * Added @p as an alias for 'print'. It's especially convenient if
5075 using automagic ('p x' prints x).
5078 using automagic ('p x' prints x).
5076
5079
5077 * Small cleanups and fixes after a pychecker run.
5080 * Small cleanups and fixes after a pychecker run.
5078
5081
5079 * Changed the @cd command to handle @cd - and @cd -<n> for
5082 * Changed the @cd command to handle @cd - and @cd -<n> for
5080 visiting any directory in _dh.
5083 visiting any directory in _dh.
5081
5084
5082 * Introduced _dh, a history of visited directories. @dhist prints
5085 * Introduced _dh, a history of visited directories. @dhist prints
5083 it out with numbers.
5086 it out with numbers.
5084
5087
5085 2001-12-07 Fernando Perez <fperez@colorado.edu>
5088 2001-12-07 Fernando Perez <fperez@colorado.edu>
5086
5089
5087 * Released 0.1.22
5090 * Released 0.1.22
5088
5091
5089 * Made initialization a bit more robust against invalid color
5092 * Made initialization a bit more robust against invalid color
5090 options in user input (exit, not traceback-crash).
5093 options in user input (exit, not traceback-crash).
5091
5094
5092 * Changed the bug crash reporter to write the report only in the
5095 * Changed the bug crash reporter to write the report only in the
5093 user's .ipython directory. That way IPython won't litter people's
5096 user's .ipython directory. That way IPython won't litter people's
5094 hard disks with crash files all over the place. Also print on
5097 hard disks with crash files all over the place. Also print on
5095 screen the necessary mail command.
5098 screen the necessary mail command.
5096
5099
5097 * With the new ultraTB, implemented LightBG color scheme for light
5100 * With the new ultraTB, implemented LightBG color scheme for light
5098 background terminals. A lot of people like white backgrounds, so I
5101 background terminals. A lot of people like white backgrounds, so I
5099 guess we should at least give them something readable.
5102 guess we should at least give them something readable.
5100
5103
5101 2001-12-06 Fernando Perez <fperez@colorado.edu>
5104 2001-12-06 Fernando Perez <fperez@colorado.edu>
5102
5105
5103 * Modified the structure of ultraTB. Now there's a proper class
5106 * Modified the structure of ultraTB. Now there's a proper class
5104 for tables of color schemes which allow adding schemes easily and
5107 for tables of color schemes which allow adding schemes easily and
5105 switching the active scheme without creating a new instance every
5108 switching the active scheme without creating a new instance every
5106 time (which was ridiculous). The syntax for creating new schemes
5109 time (which was ridiculous). The syntax for creating new schemes
5107 is also cleaner. I think ultraTB is finally done, with a clean
5110 is also cleaner. I think ultraTB is finally done, with a clean
5108 class structure. Names are also much cleaner (now there's proper
5111 class structure. Names are also much cleaner (now there's proper
5109 color tables, no need for every variable to also have 'color' in
5112 color tables, no need for every variable to also have 'color' in
5110 its name).
5113 its name).
5111
5114
5112 * Broke down genutils into separate files. Now genutils only
5115 * Broke down genutils into separate files. Now genutils only
5113 contains utility functions, and classes have been moved to their
5116 contains utility functions, and classes have been moved to their
5114 own files (they had enough independent functionality to warrant
5117 own files (they had enough independent functionality to warrant
5115 it): ConfigLoader, OutputTrap, Struct.
5118 it): ConfigLoader, OutputTrap, Struct.
5116
5119
5117 2001-12-05 Fernando Perez <fperez@colorado.edu>
5120 2001-12-05 Fernando Perez <fperez@colorado.edu>
5118
5121
5119 * IPython turns 21! Released version 0.1.21, as a candidate for
5122 * IPython turns 21! Released version 0.1.21, as a candidate for
5120 public consumption. If all goes well, release in a few days.
5123 public consumption. If all goes well, release in a few days.
5121
5124
5122 * Fixed path bug (files in Extensions/ directory wouldn't be found
5125 * Fixed path bug (files in Extensions/ directory wouldn't be found
5123 unless IPython/ was explicitly in sys.path).
5126 unless IPython/ was explicitly in sys.path).
5124
5127
5125 * Extended the FlexCompleter class as MagicCompleter to allow
5128 * Extended the FlexCompleter class as MagicCompleter to allow
5126 completion of @-starting lines.
5129 completion of @-starting lines.
5127
5130
5128 * Created __release__.py file as a central repository for release
5131 * Created __release__.py file as a central repository for release
5129 info that other files can read from.
5132 info that other files can read from.
5130
5133
5131 * Fixed small bug in logging: when logging was turned on in
5134 * Fixed small bug in logging: when logging was turned on in
5132 mid-session, old lines with special meanings (!@?) were being
5135 mid-session, old lines with special meanings (!@?) were being
5133 logged without the prepended comment, which is necessary since
5136 logged without the prepended comment, which is necessary since
5134 they are not truly valid python syntax. This should make session
5137 they are not truly valid python syntax. This should make session
5135 restores produce less errors.
5138 restores produce less errors.
5136
5139
5137 * The namespace cleanup forced me to make a FlexCompleter class
5140 * The namespace cleanup forced me to make a FlexCompleter class
5138 which is nothing but a ripoff of rlcompleter, but with selectable
5141 which is nothing but a ripoff of rlcompleter, but with selectable
5139 namespace (rlcompleter only works in __main__.__dict__). I'll try
5142 namespace (rlcompleter only works in __main__.__dict__). I'll try
5140 to submit a note to the authors to see if this change can be
5143 to submit a note to the authors to see if this change can be
5141 incorporated in future rlcompleter releases (Dec.6: done)
5144 incorporated in future rlcompleter releases (Dec.6: done)
5142
5145
5143 * More fixes to namespace handling. It was a mess! Now all
5146 * More fixes to namespace handling. It was a mess! Now all
5144 explicit references to __main__.__dict__ are gone (except when
5147 explicit references to __main__.__dict__ are gone (except when
5145 really needed) and everything is handled through the namespace
5148 really needed) and everything is handled through the namespace
5146 dicts in the IPython instance. We seem to be getting somewhere
5149 dicts in the IPython instance. We seem to be getting somewhere
5147 with this, finally...
5150 with this, finally...
5148
5151
5149 * Small documentation updates.
5152 * Small documentation updates.
5150
5153
5151 * Created the Extensions directory under IPython (with an
5154 * Created the Extensions directory under IPython (with an
5152 __init__.py). Put the PhysicalQ stuff there. This directory should
5155 __init__.py). Put the PhysicalQ stuff there. This directory should
5153 be used for all special-purpose extensions.
5156 be used for all special-purpose extensions.
5154
5157
5155 * File renaming:
5158 * File renaming:
5156 ipythonlib --> ipmaker
5159 ipythonlib --> ipmaker
5157 ipplib --> iplib
5160 ipplib --> iplib
5158 This makes a bit more sense in terms of what these files actually do.
5161 This makes a bit more sense in terms of what these files actually do.
5159
5162
5160 * Moved all the classes and functions in ipythonlib to ipplib, so
5163 * Moved all the classes and functions in ipythonlib to ipplib, so
5161 now ipythonlib only has make_IPython(). This will ease up its
5164 now ipythonlib only has make_IPython(). This will ease up its
5162 splitting in smaller functional chunks later.
5165 splitting in smaller functional chunks later.
5163
5166
5164 * Cleaned up (done, I think) output of @whos. Better column
5167 * Cleaned up (done, I think) output of @whos. Better column
5165 formatting, and now shows str(var) for as much as it can, which is
5168 formatting, and now shows str(var) for as much as it can, which is
5166 typically what one gets with a 'print var'.
5169 typically what one gets with a 'print var'.
5167
5170
5168 2001-12-04 Fernando Perez <fperez@colorado.edu>
5171 2001-12-04 Fernando Perez <fperez@colorado.edu>
5169
5172
5170 * Fixed namespace problems. Now builtin/IPyhton/user names get
5173 * Fixed namespace problems. Now builtin/IPyhton/user names get
5171 properly reported in their namespace. Internal namespace handling
5174 properly reported in their namespace. Internal namespace handling
5172 is finally getting decent (not perfect yet, but much better than
5175 is finally getting decent (not perfect yet, but much better than
5173 the ad-hoc mess we had).
5176 the ad-hoc mess we had).
5174
5177
5175 * Removed -exit option. If people just want to run a python
5178 * Removed -exit option. If people just want to run a python
5176 script, that's what the normal interpreter is for. Less
5179 script, that's what the normal interpreter is for. Less
5177 unnecessary options, less chances for bugs.
5180 unnecessary options, less chances for bugs.
5178
5181
5179 * Added a crash handler which generates a complete post-mortem if
5182 * Added a crash handler which generates a complete post-mortem if
5180 IPython crashes. This will help a lot in tracking bugs down the
5183 IPython crashes. This will help a lot in tracking bugs down the
5181 road.
5184 road.
5182
5185
5183 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5186 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5184 which were boud to functions being reassigned would bypass the
5187 which were boud to functions being reassigned would bypass the
5185 logger, breaking the sync of _il with the prompt counter. This
5188 logger, breaking the sync of _il with the prompt counter. This
5186 would then crash IPython later when a new line was logged.
5189 would then crash IPython later when a new line was logged.
5187
5190
5188 2001-12-02 Fernando Perez <fperez@colorado.edu>
5191 2001-12-02 Fernando Perez <fperez@colorado.edu>
5189
5192
5190 * Made IPython a package. This means people don't have to clutter
5193 * Made IPython a package. This means people don't have to clutter
5191 their sys.path with yet another directory. Changed the INSTALL
5194 their sys.path with yet another directory. Changed the INSTALL
5192 file accordingly.
5195 file accordingly.
5193
5196
5194 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5197 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5195 sorts its output (so @who shows it sorted) and @whos formats the
5198 sorts its output (so @who shows it sorted) and @whos formats the
5196 table according to the width of the first column. Nicer, easier to
5199 table according to the width of the first column. Nicer, easier to
5197 read. Todo: write a generic table_format() which takes a list of
5200 read. Todo: write a generic table_format() which takes a list of
5198 lists and prints it nicely formatted, with optional row/column
5201 lists and prints it nicely formatted, with optional row/column
5199 separators and proper padding and justification.
5202 separators and proper padding and justification.
5200
5203
5201 * Released 0.1.20
5204 * Released 0.1.20
5202
5205
5203 * Fixed bug in @log which would reverse the inputcache list (a
5206 * Fixed bug in @log which would reverse the inputcache list (a
5204 copy operation was missing).
5207 copy operation was missing).
5205
5208
5206 * Code cleanup. @config was changed to use page(). Better, since
5209 * Code cleanup. @config was changed to use page(). Better, since
5207 its output is always quite long.
5210 its output is always quite long.
5208
5211
5209 * Itpl is back as a dependency. I was having too many problems
5212 * Itpl is back as a dependency. I was having too many problems
5210 getting the parametric aliases to work reliably, and it's just
5213 getting the parametric aliases to work reliably, and it's just
5211 easier to code weird string operations with it than playing %()s
5214 easier to code weird string operations with it than playing %()s
5212 games. It's only ~6k, so I don't think it's too big a deal.
5215 games. It's only ~6k, so I don't think it's too big a deal.
5213
5216
5214 * Found (and fixed) a very nasty bug with history. !lines weren't
5217 * Found (and fixed) a very nasty bug with history. !lines weren't
5215 getting cached, and the out of sync caches would crash
5218 getting cached, and the out of sync caches would crash
5216 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5219 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5217 division of labor a bit better. Bug fixed, cleaner structure.
5220 division of labor a bit better. Bug fixed, cleaner structure.
5218
5221
5219 2001-12-01 Fernando Perez <fperez@colorado.edu>
5222 2001-12-01 Fernando Perez <fperez@colorado.edu>
5220
5223
5221 * Released 0.1.19
5224 * Released 0.1.19
5222
5225
5223 * Added option -n to @hist to prevent line number printing. Much
5226 * Added option -n to @hist to prevent line number printing. Much
5224 easier to copy/paste code this way.
5227 easier to copy/paste code this way.
5225
5228
5226 * Created global _il to hold the input list. Allows easy
5229 * Created global _il to hold the input list. Allows easy
5227 re-execution of blocks of code by slicing it (inspired by Janko's
5230 re-execution of blocks of code by slicing it (inspired by Janko's
5228 comment on 'macros').
5231 comment on 'macros').
5229
5232
5230 * Small fixes and doc updates.
5233 * Small fixes and doc updates.
5231
5234
5232 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5235 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5233 much too fragile with automagic. Handles properly multi-line
5236 much too fragile with automagic. Handles properly multi-line
5234 statements and takes parameters.
5237 statements and takes parameters.
5235
5238
5236 2001-11-30 Fernando Perez <fperez@colorado.edu>
5239 2001-11-30 Fernando Perez <fperez@colorado.edu>
5237
5240
5238 * Version 0.1.18 released.
5241 * Version 0.1.18 released.
5239
5242
5240 * Fixed nasty namespace bug in initial module imports.
5243 * Fixed nasty namespace bug in initial module imports.
5241
5244
5242 * Added copyright/license notes to all code files (except
5245 * Added copyright/license notes to all code files (except
5243 DPyGetOpt). For the time being, LGPL. That could change.
5246 DPyGetOpt). For the time being, LGPL. That could change.
5244
5247
5245 * Rewrote a much nicer README, updated INSTALL, cleaned up
5248 * Rewrote a much nicer README, updated INSTALL, cleaned up
5246 ipythonrc-* samples.
5249 ipythonrc-* samples.
5247
5250
5248 * Overall code/documentation cleanup. Basically ready for
5251 * Overall code/documentation cleanup. Basically ready for
5249 release. Only remaining thing: licence decision (LGPL?).
5252 release. Only remaining thing: licence decision (LGPL?).
5250
5253
5251 * Converted load_config to a class, ConfigLoader. Now recursion
5254 * Converted load_config to a class, ConfigLoader. Now recursion
5252 control is better organized. Doesn't include the same file twice.
5255 control is better organized. Doesn't include the same file twice.
5253
5256
5254 2001-11-29 Fernando Perez <fperez@colorado.edu>
5257 2001-11-29 Fernando Perez <fperez@colorado.edu>
5255
5258
5256 * Got input history working. Changed output history variables from
5259 * Got input history working. Changed output history variables from
5257 _p to _o so that _i is for input and _o for output. Just cleaner
5260 _p to _o so that _i is for input and _o for output. Just cleaner
5258 convention.
5261 convention.
5259
5262
5260 * Implemented parametric aliases. This pretty much allows the
5263 * Implemented parametric aliases. This pretty much allows the
5261 alias system to offer full-blown shell convenience, I think.
5264 alias system to offer full-blown shell convenience, I think.
5262
5265
5263 * Version 0.1.17 released, 0.1.18 opened.
5266 * Version 0.1.17 released, 0.1.18 opened.
5264
5267
5265 * dot_ipython/ipythonrc (alias): added documentation.
5268 * dot_ipython/ipythonrc (alias): added documentation.
5266 (xcolor): Fixed small bug (xcolors -> xcolor)
5269 (xcolor): Fixed small bug (xcolors -> xcolor)
5267
5270
5268 * Changed the alias system. Now alias is a magic command to define
5271 * Changed the alias system. Now alias is a magic command to define
5269 aliases just like the shell. Rationale: the builtin magics should
5272 aliases just like the shell. Rationale: the builtin magics should
5270 be there for things deeply connected to IPython's
5273 be there for things deeply connected to IPython's
5271 architecture. And this is a much lighter system for what I think
5274 architecture. And this is a much lighter system for what I think
5272 is the really important feature: allowing users to define quickly
5275 is the really important feature: allowing users to define quickly
5273 magics that will do shell things for them, so they can customize
5276 magics that will do shell things for them, so they can customize
5274 IPython easily to match their work habits. If someone is really
5277 IPython easily to match their work habits. If someone is really
5275 desperate to have another name for a builtin alias, they can
5278 desperate to have another name for a builtin alias, they can
5276 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5279 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5277 works.
5280 works.
5278
5281
5279 2001-11-28 Fernando Perez <fperez@colorado.edu>
5282 2001-11-28 Fernando Perez <fperez@colorado.edu>
5280
5283
5281 * Changed @file so that it opens the source file at the proper
5284 * Changed @file so that it opens the source file at the proper
5282 line. Since it uses less, if your EDITOR environment is
5285 line. Since it uses less, if your EDITOR environment is
5283 configured, typing v will immediately open your editor of choice
5286 configured, typing v will immediately open your editor of choice
5284 right at the line where the object is defined. Not as quick as
5287 right at the line where the object is defined. Not as quick as
5285 having a direct @edit command, but for all intents and purposes it
5288 having a direct @edit command, but for all intents and purposes it
5286 works. And I don't have to worry about writing @edit to deal with
5289 works. And I don't have to worry about writing @edit to deal with
5287 all the editors, less does that.
5290 all the editors, less does that.
5288
5291
5289 * Version 0.1.16 released, 0.1.17 opened.
5292 * Version 0.1.16 released, 0.1.17 opened.
5290
5293
5291 * Fixed some nasty bugs in the page/page_dumb combo that could
5294 * Fixed some nasty bugs in the page/page_dumb combo that could
5292 crash IPython.
5295 crash IPython.
5293
5296
5294 2001-11-27 Fernando Perez <fperez@colorado.edu>
5297 2001-11-27 Fernando Perez <fperez@colorado.edu>
5295
5298
5296 * Version 0.1.15 released, 0.1.16 opened.
5299 * Version 0.1.15 released, 0.1.16 opened.
5297
5300
5298 * Finally got ? and ?? to work for undefined things: now it's
5301 * Finally got ? and ?? to work for undefined things: now it's
5299 possible to type {}.get? and get information about the get method
5302 possible to type {}.get? and get information about the get method
5300 of dicts, or os.path? even if only os is defined (so technically
5303 of dicts, or os.path? even if only os is defined (so technically
5301 os.path isn't). Works at any level. For example, after import os,
5304 os.path isn't). Works at any level. For example, after import os,
5302 os?, os.path?, os.path.abspath? all work. This is great, took some
5305 os?, os.path?, os.path.abspath? all work. This is great, took some
5303 work in _ofind.
5306 work in _ofind.
5304
5307
5305 * Fixed more bugs with logging. The sanest way to do it was to add
5308 * Fixed more bugs with logging. The sanest way to do it was to add
5306 to @log a 'mode' parameter. Killed two in one shot (this mode
5309 to @log a 'mode' parameter. Killed two in one shot (this mode
5307 option was a request of Janko's). I think it's finally clean
5310 option was a request of Janko's). I think it's finally clean
5308 (famous last words).
5311 (famous last words).
5309
5312
5310 * Added a page_dumb() pager which does a decent job of paging on
5313 * Added a page_dumb() pager which does a decent job of paging on
5311 screen, if better things (like less) aren't available. One less
5314 screen, if better things (like less) aren't available. One less
5312 unix dependency (someday maybe somebody will port this to
5315 unix dependency (someday maybe somebody will port this to
5313 windows).
5316 windows).
5314
5317
5315 * Fixed problem in magic_log: would lock of logging out if log
5318 * Fixed problem in magic_log: would lock of logging out if log
5316 creation failed (because it would still think it had succeeded).
5319 creation failed (because it would still think it had succeeded).
5317
5320
5318 * Improved the page() function using curses to auto-detect screen
5321 * Improved the page() function using curses to auto-detect screen
5319 size. Now it can make a much better decision on whether to print
5322 size. Now it can make a much better decision on whether to print
5320 or page a string. Option screen_length was modified: a value 0
5323 or page a string. Option screen_length was modified: a value 0
5321 means auto-detect, and that's the default now.
5324 means auto-detect, and that's the default now.
5322
5325
5323 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5326 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5324 go out. I'll test it for a few days, then talk to Janko about
5327 go out. I'll test it for a few days, then talk to Janko about
5325 licences and announce it.
5328 licences and announce it.
5326
5329
5327 * Fixed the length of the auto-generated ---> prompt which appears
5330 * Fixed the length of the auto-generated ---> prompt which appears
5328 for auto-parens and auto-quotes. Getting this right isn't trivial,
5331 for auto-parens and auto-quotes. Getting this right isn't trivial,
5329 with all the color escapes, different prompt types and optional
5332 with all the color escapes, different prompt types and optional
5330 separators. But it seems to be working in all the combinations.
5333 separators. But it seems to be working in all the combinations.
5331
5334
5332 2001-11-26 Fernando Perez <fperez@colorado.edu>
5335 2001-11-26 Fernando Perez <fperez@colorado.edu>
5333
5336
5334 * Wrote a regexp filter to get option types from the option names
5337 * Wrote a regexp filter to get option types from the option names
5335 string. This eliminates the need to manually keep two duplicate
5338 string. This eliminates the need to manually keep two duplicate
5336 lists.
5339 lists.
5337
5340
5338 * Removed the unneeded check_option_names. Now options are handled
5341 * Removed the unneeded check_option_names. Now options are handled
5339 in a much saner manner and it's easy to visually check that things
5342 in a much saner manner and it's easy to visually check that things
5340 are ok.
5343 are ok.
5341
5344
5342 * Updated version numbers on all files I modified to carry a
5345 * Updated version numbers on all files I modified to carry a
5343 notice so Janko and Nathan have clear version markers.
5346 notice so Janko and Nathan have clear version markers.
5344
5347
5345 * Updated docstring for ultraTB with my changes. I should send
5348 * Updated docstring for ultraTB with my changes. I should send
5346 this to Nathan.
5349 this to Nathan.
5347
5350
5348 * Lots of small fixes. Ran everything through pychecker again.
5351 * Lots of small fixes. Ran everything through pychecker again.
5349
5352
5350 * Made loading of deep_reload an cmd line option. If it's not too
5353 * Made loading of deep_reload an cmd line option. If it's not too
5351 kosher, now people can just disable it. With -nodeep_reload it's
5354 kosher, now people can just disable it. With -nodeep_reload it's
5352 still available as dreload(), it just won't overwrite reload().
5355 still available as dreload(), it just won't overwrite reload().
5353
5356
5354 * Moved many options to the no| form (-opt and -noopt
5357 * Moved many options to the no| form (-opt and -noopt
5355 accepted). Cleaner.
5358 accepted). Cleaner.
5356
5359
5357 * Changed magic_log so that if called with no parameters, it uses
5360 * Changed magic_log so that if called with no parameters, it uses
5358 'rotate' mode. That way auto-generated logs aren't automatically
5361 'rotate' mode. That way auto-generated logs aren't automatically
5359 over-written. For normal logs, now a backup is made if it exists
5362 over-written. For normal logs, now a backup is made if it exists
5360 (only 1 level of backups). A new 'backup' mode was added to the
5363 (only 1 level of backups). A new 'backup' mode was added to the
5361 Logger class to support this. This was a request by Janko.
5364 Logger class to support this. This was a request by Janko.
5362
5365
5363 * Added @logoff/@logon to stop/restart an active log.
5366 * Added @logoff/@logon to stop/restart an active log.
5364
5367
5365 * Fixed a lot of bugs in log saving/replay. It was pretty
5368 * Fixed a lot of bugs in log saving/replay. It was pretty
5366 broken. Now special lines (!@,/) appear properly in the command
5369 broken. Now special lines (!@,/) appear properly in the command
5367 history after a log replay.
5370 history after a log replay.
5368
5371
5369 * Tried and failed to implement full session saving via pickle. My
5372 * Tried and failed to implement full session saving via pickle. My
5370 idea was to pickle __main__.__dict__, but modules can't be
5373 idea was to pickle __main__.__dict__, but modules can't be
5371 pickled. This would be a better alternative to replaying logs, but
5374 pickled. This would be a better alternative to replaying logs, but
5372 seems quite tricky to get to work. Changed -session to be called
5375 seems quite tricky to get to work. Changed -session to be called
5373 -logplay, which more accurately reflects what it does. And if we
5376 -logplay, which more accurately reflects what it does. And if we
5374 ever get real session saving working, -session is now available.
5377 ever get real session saving working, -session is now available.
5375
5378
5376 * Implemented color schemes for prompts also. As for tracebacks,
5379 * Implemented color schemes for prompts also. As for tracebacks,
5377 currently only NoColor and Linux are supported. But now the
5380 currently only NoColor and Linux are supported. But now the
5378 infrastructure is in place, based on a generic ColorScheme
5381 infrastructure is in place, based on a generic ColorScheme
5379 class. So writing and activating new schemes both for the prompts
5382 class. So writing and activating new schemes both for the prompts
5380 and the tracebacks should be straightforward.
5383 and the tracebacks should be straightforward.
5381
5384
5382 * Version 0.1.13 released, 0.1.14 opened.
5385 * Version 0.1.13 released, 0.1.14 opened.
5383
5386
5384 * Changed handling of options for output cache. Now counter is
5387 * Changed handling of options for output cache. Now counter is
5385 hardwired starting at 1 and one specifies the maximum number of
5388 hardwired starting at 1 and one specifies the maximum number of
5386 entries *in the outcache* (not the max prompt counter). This is
5389 entries *in the outcache* (not the max prompt counter). This is
5387 much better, since many statements won't increase the cache
5390 much better, since many statements won't increase the cache
5388 count. It also eliminated some confusing options, now there's only
5391 count. It also eliminated some confusing options, now there's only
5389 one: cache_size.
5392 one: cache_size.
5390
5393
5391 * Added 'alias' magic function and magic_alias option in the
5394 * Added 'alias' magic function and magic_alias option in the
5392 ipythonrc file. Now the user can easily define whatever names he
5395 ipythonrc file. Now the user can easily define whatever names he
5393 wants for the magic functions without having to play weird
5396 wants for the magic functions without having to play weird
5394 namespace games. This gives IPython a real shell-like feel.
5397 namespace games. This gives IPython a real shell-like feel.
5395
5398
5396 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5399 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
5397 @ or not).
5400 @ or not).
5398
5401
5399 This was one of the last remaining 'visible' bugs (that I know
5402 This was one of the last remaining 'visible' bugs (that I know
5400 of). I think if I can clean up the session loading so it works
5403 of). I think if I can clean up the session loading so it works
5401 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5404 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
5402 about licensing).
5405 about licensing).
5403
5406
5404 2001-11-25 Fernando Perez <fperez@colorado.edu>
5407 2001-11-25 Fernando Perez <fperez@colorado.edu>
5405
5408
5406 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5409 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
5407 there's a cleaner distinction between what ? and ?? show.
5410 there's a cleaner distinction between what ? and ?? show.
5408
5411
5409 * Added screen_length option. Now the user can define his own
5412 * Added screen_length option. Now the user can define his own
5410 screen size for page() operations.
5413 screen size for page() operations.
5411
5414
5412 * Implemented magic shell-like functions with automatic code
5415 * Implemented magic shell-like functions with automatic code
5413 generation. Now adding another function is just a matter of adding
5416 generation. Now adding another function is just a matter of adding
5414 an entry to a dict, and the function is dynamically generated at
5417 an entry to a dict, and the function is dynamically generated at
5415 run-time. Python has some really cool features!
5418 run-time. Python has some really cool features!
5416
5419
5417 * Renamed many options to cleanup conventions a little. Now all
5420 * Renamed many options to cleanup conventions a little. Now all
5418 are lowercase, and only underscores where needed. Also in the code
5421 are lowercase, and only underscores where needed. Also in the code
5419 option name tables are clearer.
5422 option name tables are clearer.
5420
5423
5421 * Changed prompts a little. Now input is 'In [n]:' instead of
5424 * Changed prompts a little. Now input is 'In [n]:' instead of
5422 'In[n]:='. This allows it the numbers to be aligned with the
5425 'In[n]:='. This allows it the numbers to be aligned with the
5423 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5426 Out[n] numbers, and removes usage of ':=' which doesn't exist in
5424 Python (it was a Mathematica thing). The '...' continuation prompt
5427 Python (it was a Mathematica thing). The '...' continuation prompt
5425 was also changed a little to align better.
5428 was also changed a little to align better.
5426
5429
5427 * Fixed bug when flushing output cache. Not all _p<n> variables
5430 * Fixed bug when flushing output cache. Not all _p<n> variables
5428 exist, so their deletion needs to be wrapped in a try:
5431 exist, so their deletion needs to be wrapped in a try:
5429
5432
5430 * Figured out how to properly use inspect.formatargspec() (it
5433 * Figured out how to properly use inspect.formatargspec() (it
5431 requires the args preceded by *). So I removed all the code from
5434 requires the args preceded by *). So I removed all the code from
5432 _get_pdef in Magic, which was just replicating that.
5435 _get_pdef in Magic, which was just replicating that.
5433
5436
5434 * Added test to prefilter to allow redefining magic function names
5437 * Added test to prefilter to allow redefining magic function names
5435 as variables. This is ok, since the @ form is always available,
5438 as variables. This is ok, since the @ form is always available,
5436 but whe should allow the user to define a variable called 'ls' if
5439 but whe should allow the user to define a variable called 'ls' if
5437 he needs it.
5440 he needs it.
5438
5441
5439 * Moved the ToDo information from README into a separate ToDo.
5442 * Moved the ToDo information from README into a separate ToDo.
5440
5443
5441 * General code cleanup and small bugfixes. I think it's close to a
5444 * General code cleanup and small bugfixes. I think it's close to a
5442 state where it can be released, obviously with a big 'beta'
5445 state where it can be released, obviously with a big 'beta'
5443 warning on it.
5446 warning on it.
5444
5447
5445 * Got the magic function split to work. Now all magics are defined
5448 * Got the magic function split to work. Now all magics are defined
5446 in a separate class. It just organizes things a bit, and now
5449 in a separate class. It just organizes things a bit, and now
5447 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5450 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
5448 was too long).
5451 was too long).
5449
5452
5450 * Changed @clear to @reset to avoid potential confusions with
5453 * Changed @clear to @reset to avoid potential confusions with
5451 the shell command clear. Also renamed @cl to @clear, which does
5454 the shell command clear. Also renamed @cl to @clear, which does
5452 exactly what people expect it to from their shell experience.
5455 exactly what people expect it to from their shell experience.
5453
5456
5454 Added a check to the @reset command (since it's so
5457 Added a check to the @reset command (since it's so
5455 destructive, it's probably a good idea to ask for confirmation).
5458 destructive, it's probably a good idea to ask for confirmation).
5456 But now reset only works for full namespace resetting. Since the
5459 But now reset only works for full namespace resetting. Since the
5457 del keyword is already there for deleting a few specific
5460 del keyword is already there for deleting a few specific
5458 variables, I don't see the point of having a redundant magic
5461 variables, I don't see the point of having a redundant magic
5459 function for the same task.
5462 function for the same task.
5460
5463
5461 2001-11-24 Fernando Perez <fperez@colorado.edu>
5464 2001-11-24 Fernando Perez <fperez@colorado.edu>
5462
5465
5463 * Updated the builtin docs (esp. the ? ones).
5466 * Updated the builtin docs (esp. the ? ones).
5464
5467
5465 * Ran all the code through pychecker. Not terribly impressed with
5468 * Ran all the code through pychecker. Not terribly impressed with
5466 it: lots of spurious warnings and didn't really find anything of
5469 it: lots of spurious warnings and didn't really find anything of
5467 substance (just a few modules being imported and not used).
5470 substance (just a few modules being imported and not used).
5468
5471
5469 * Implemented the new ultraTB functionality into IPython. New
5472 * Implemented the new ultraTB functionality into IPython. New
5470 option: xcolors. This chooses color scheme. xmode now only selects
5473 option: xcolors. This chooses color scheme. xmode now only selects
5471 between Plain and Verbose. Better orthogonality.
5474 between Plain and Verbose. Better orthogonality.
5472
5475
5473 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5476 * Large rewrite of ultraTB. Much cleaner now, with a separation of
5474 mode and color scheme for the exception handlers. Now it's
5477 mode and color scheme for the exception handlers. Now it's
5475 possible to have the verbose traceback with no coloring.
5478 possible to have the verbose traceback with no coloring.
5476
5479
5477 2001-11-23 Fernando Perez <fperez@colorado.edu>
5480 2001-11-23 Fernando Perez <fperez@colorado.edu>
5478
5481
5479 * Version 0.1.12 released, 0.1.13 opened.
5482 * Version 0.1.12 released, 0.1.13 opened.
5480
5483
5481 * Removed option to set auto-quote and auto-paren escapes by
5484 * Removed option to set auto-quote and auto-paren escapes by
5482 user. The chances of breaking valid syntax are just too high. If
5485 user. The chances of breaking valid syntax are just too high. If
5483 someone *really* wants, they can always dig into the code.
5486 someone *really* wants, they can always dig into the code.
5484
5487
5485 * Made prompt separators configurable.
5488 * Made prompt separators configurable.
5486
5489
5487 2001-11-22 Fernando Perez <fperez@colorado.edu>
5490 2001-11-22 Fernando Perez <fperez@colorado.edu>
5488
5491
5489 * Small bugfixes in many places.
5492 * Small bugfixes in many places.
5490
5493
5491 * Removed the MyCompleter class from ipplib. It seemed redundant
5494 * Removed the MyCompleter class from ipplib. It seemed redundant
5492 with the C-p,C-n history search functionality. Less code to
5495 with the C-p,C-n history search functionality. Less code to
5493 maintain.
5496 maintain.
5494
5497
5495 * Moved all the original ipython.py code into ipythonlib.py. Right
5498 * Moved all the original ipython.py code into ipythonlib.py. Right
5496 now it's just one big dump into a function called make_IPython, so
5499 now it's just one big dump into a function called make_IPython, so
5497 no real modularity has been gained. But at least it makes the
5500 no real modularity has been gained. But at least it makes the
5498 wrapper script tiny, and since ipythonlib is a module, it gets
5501 wrapper script tiny, and since ipythonlib is a module, it gets
5499 compiled and startup is much faster.
5502 compiled and startup is much faster.
5500
5503
5501 This is a reasobably 'deep' change, so we should test it for a
5504 This is a reasobably 'deep' change, so we should test it for a
5502 while without messing too much more with the code.
5505 while without messing too much more with the code.
5503
5506
5504 2001-11-21 Fernando Perez <fperez@colorado.edu>
5507 2001-11-21 Fernando Perez <fperez@colorado.edu>
5505
5508
5506 * Version 0.1.11 released, 0.1.12 opened for further work.
5509 * Version 0.1.11 released, 0.1.12 opened for further work.
5507
5510
5508 * Removed dependency on Itpl. It was only needed in one place. It
5511 * Removed dependency on Itpl. It was only needed in one place. It
5509 would be nice if this became part of python, though. It makes life
5512 would be nice if this became part of python, though. It makes life
5510 *a lot* easier in some cases.
5513 *a lot* easier in some cases.
5511
5514
5512 * Simplified the prefilter code a bit. Now all handlers are
5515 * Simplified the prefilter code a bit. Now all handlers are
5513 expected to explicitly return a value (at least a blank string).
5516 expected to explicitly return a value (at least a blank string).
5514
5517
5515 * Heavy edits in ipplib. Removed the help system altogether. Now
5518 * Heavy edits in ipplib. Removed the help system altogether. Now
5516 obj?/?? is used for inspecting objects, a magic @doc prints
5519 obj?/?? is used for inspecting objects, a magic @doc prints
5517 docstrings, and full-blown Python help is accessed via the 'help'
5520 docstrings, and full-blown Python help is accessed via the 'help'
5518 keyword. This cleans up a lot of code (less to maintain) and does
5521 keyword. This cleans up a lot of code (less to maintain) and does
5519 the job. Since 'help' is now a standard Python component, might as
5522 the job. Since 'help' is now a standard Python component, might as
5520 well use it and remove duplicate functionality.
5523 well use it and remove duplicate functionality.
5521
5524
5522 Also removed the option to use ipplib as a standalone program. By
5525 Also removed the option to use ipplib as a standalone program. By
5523 now it's too dependent on other parts of IPython to function alone.
5526 now it's too dependent on other parts of IPython to function alone.
5524
5527
5525 * Fixed bug in genutils.pager. It would crash if the pager was
5528 * Fixed bug in genutils.pager. It would crash if the pager was
5526 exited immediately after opening (broken pipe).
5529 exited immediately after opening (broken pipe).
5527
5530
5528 * Trimmed down the VerboseTB reporting a little. The header is
5531 * Trimmed down the VerboseTB reporting a little. The header is
5529 much shorter now and the repeated exception arguments at the end
5532 much shorter now and the repeated exception arguments at the end
5530 have been removed. For interactive use the old header seemed a bit
5533 have been removed. For interactive use the old header seemed a bit
5531 excessive.
5534 excessive.
5532
5535
5533 * Fixed small bug in output of @whos for variables with multi-word
5536 * Fixed small bug in output of @whos for variables with multi-word
5534 types (only first word was displayed).
5537 types (only first word was displayed).
5535
5538
5536 2001-11-17 Fernando Perez <fperez@colorado.edu>
5539 2001-11-17 Fernando Perez <fperez@colorado.edu>
5537
5540
5538 * Version 0.1.10 released, 0.1.11 opened for further work.
5541 * Version 0.1.10 released, 0.1.11 opened for further work.
5539
5542
5540 * Modified dirs and friends. dirs now *returns* the stack (not
5543 * Modified dirs and friends. dirs now *returns* the stack (not
5541 prints), so one can manipulate it as a variable. Convenient to
5544 prints), so one can manipulate it as a variable. Convenient to
5542 travel along many directories.
5545 travel along many directories.
5543
5546
5544 * Fixed bug in magic_pdef: would only work with functions with
5547 * Fixed bug in magic_pdef: would only work with functions with
5545 arguments with default values.
5548 arguments with default values.
5546
5549
5547 2001-11-14 Fernando Perez <fperez@colorado.edu>
5550 2001-11-14 Fernando Perez <fperez@colorado.edu>
5548
5551
5549 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5552 * Added the PhysicsInput stuff to dot_ipython so it ships as an
5550 example with IPython. Various other minor fixes and cleanups.
5553 example with IPython. Various other minor fixes and cleanups.
5551
5554
5552 * Version 0.1.9 released, 0.1.10 opened for further work.
5555 * Version 0.1.9 released, 0.1.10 opened for further work.
5553
5556
5554 * Added sys.path to the list of directories searched in the
5557 * Added sys.path to the list of directories searched in the
5555 execfile= option. It used to be the current directory and the
5558 execfile= option. It used to be the current directory and the
5556 user's IPYTHONDIR only.
5559 user's IPYTHONDIR only.
5557
5560
5558 2001-11-13 Fernando Perez <fperez@colorado.edu>
5561 2001-11-13 Fernando Perez <fperez@colorado.edu>
5559
5562
5560 * Reinstated the raw_input/prefilter separation that Janko had
5563 * Reinstated the raw_input/prefilter separation that Janko had
5561 initially. This gives a more convenient setup for extending the
5564 initially. This gives a more convenient setup for extending the
5562 pre-processor from the outside: raw_input always gets a string,
5565 pre-processor from the outside: raw_input always gets a string,
5563 and prefilter has to process it. We can then redefine prefilter
5566 and prefilter has to process it. We can then redefine prefilter
5564 from the outside and implement extensions for special
5567 from the outside and implement extensions for special
5565 purposes.
5568 purposes.
5566
5569
5567 Today I got one for inputting PhysicalQuantity objects
5570 Today I got one for inputting PhysicalQuantity objects
5568 (from Scientific) without needing any function calls at
5571 (from Scientific) without needing any function calls at
5569 all. Extremely convenient, and it's all done as a user-level
5572 all. Extremely convenient, and it's all done as a user-level
5570 extension (no IPython code was touched). Now instead of:
5573 extension (no IPython code was touched). Now instead of:
5571 a = PhysicalQuantity(4.2,'m/s**2')
5574 a = PhysicalQuantity(4.2,'m/s**2')
5572 one can simply say
5575 one can simply say
5573 a = 4.2 m/s**2
5576 a = 4.2 m/s**2
5574 or even
5577 or even
5575 a = 4.2 m/s^2
5578 a = 4.2 m/s^2
5576
5579
5577 I use this, but it's also a proof of concept: IPython really is
5580 I use this, but it's also a proof of concept: IPython really is
5578 fully user-extensible, even at the level of the parsing of the
5581 fully user-extensible, even at the level of the parsing of the
5579 command line. It's not trivial, but it's perfectly doable.
5582 command line. It's not trivial, but it's perfectly doable.
5580
5583
5581 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5584 * Added 'add_flip' method to inclusion conflict resolver. Fixes
5582 the problem of modules being loaded in the inverse order in which
5585 the problem of modules being loaded in the inverse order in which
5583 they were defined in
5586 they were defined in
5584
5587
5585 * Version 0.1.8 released, 0.1.9 opened for further work.
5588 * Version 0.1.8 released, 0.1.9 opened for further work.
5586
5589
5587 * Added magics pdef, source and file. They respectively show the
5590 * Added magics pdef, source and file. They respectively show the
5588 definition line ('prototype' in C), source code and full python
5591 definition line ('prototype' in C), source code and full python
5589 file for any callable object. The object inspector oinfo uses
5592 file for any callable object. The object inspector oinfo uses
5590 these to show the same information.
5593 these to show the same information.
5591
5594
5592 * Version 0.1.7 released, 0.1.8 opened for further work.
5595 * Version 0.1.7 released, 0.1.8 opened for further work.
5593
5596
5594 * Separated all the magic functions into a class called Magic. The
5597 * Separated all the magic functions into a class called Magic. The
5595 InteractiveShell class was becoming too big for Xemacs to handle
5598 InteractiveShell class was becoming too big for Xemacs to handle
5596 (de-indenting a line would lock it up for 10 seconds while it
5599 (de-indenting a line would lock it up for 10 seconds while it
5597 backtracked on the whole class!)
5600 backtracked on the whole class!)
5598
5601
5599 FIXME: didn't work. It can be done, but right now namespaces are
5602 FIXME: didn't work. It can be done, but right now namespaces are
5600 all messed up. Do it later (reverted it for now, so at least
5603 all messed up. Do it later (reverted it for now, so at least
5601 everything works as before).
5604 everything works as before).
5602
5605
5603 * Got the object introspection system (magic_oinfo) working! I
5606 * Got the object introspection system (magic_oinfo) working! I
5604 think this is pretty much ready for release to Janko, so he can
5607 think this is pretty much ready for release to Janko, so he can
5605 test it for a while and then announce it. Pretty much 100% of what
5608 test it for a while and then announce it. Pretty much 100% of what
5606 I wanted for the 'phase 1' release is ready. Happy, tired.
5609 I wanted for the 'phase 1' release is ready. Happy, tired.
5607
5610
5608 2001-11-12 Fernando Perez <fperez@colorado.edu>
5611 2001-11-12 Fernando Perez <fperez@colorado.edu>
5609
5612
5610 * Version 0.1.6 released, 0.1.7 opened for further work.
5613 * Version 0.1.6 released, 0.1.7 opened for further work.
5611
5614
5612 * Fixed bug in printing: it used to test for truth before
5615 * Fixed bug in printing: it used to test for truth before
5613 printing, so 0 wouldn't print. Now checks for None.
5616 printing, so 0 wouldn't print. Now checks for None.
5614
5617
5615 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5618 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
5616 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5619 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
5617 reaches by hand into the outputcache. Think of a better way to do
5620 reaches by hand into the outputcache. Think of a better way to do
5618 this later.
5621 this later.
5619
5622
5620 * Various small fixes thanks to Nathan's comments.
5623 * Various small fixes thanks to Nathan's comments.
5621
5624
5622 * Changed magic_pprint to magic_Pprint. This way it doesn't
5625 * Changed magic_pprint to magic_Pprint. This way it doesn't
5623 collide with pprint() and the name is consistent with the command
5626 collide with pprint() and the name is consistent with the command
5624 line option.
5627 line option.
5625
5628
5626 * Changed prompt counter behavior to be fully like
5629 * Changed prompt counter behavior to be fully like
5627 Mathematica's. That is, even input that doesn't return a result
5630 Mathematica's. That is, even input that doesn't return a result
5628 raises the prompt counter. The old behavior was kind of confusing
5631 raises the prompt counter. The old behavior was kind of confusing
5629 (getting the same prompt number several times if the operation
5632 (getting the same prompt number several times if the operation
5630 didn't return a result).
5633 didn't return a result).
5631
5634
5632 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5635 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
5633
5636
5634 * Fixed -Classic mode (wasn't working anymore).
5637 * Fixed -Classic mode (wasn't working anymore).
5635
5638
5636 * Added colored prompts using Nathan's new code. Colors are
5639 * Added colored prompts using Nathan's new code. Colors are
5637 currently hardwired, they can be user-configurable. For
5640 currently hardwired, they can be user-configurable. For
5638 developers, they can be chosen in file ipythonlib.py, at the
5641 developers, they can be chosen in file ipythonlib.py, at the
5639 beginning of the CachedOutput class def.
5642 beginning of the CachedOutput class def.
5640
5643
5641 2001-11-11 Fernando Perez <fperez@colorado.edu>
5644 2001-11-11 Fernando Perez <fperez@colorado.edu>
5642
5645
5643 * Version 0.1.5 released, 0.1.6 opened for further work.
5646 * Version 0.1.5 released, 0.1.6 opened for further work.
5644
5647
5645 * Changed magic_env to *return* the environment as a dict (not to
5648 * Changed magic_env to *return* the environment as a dict (not to
5646 print it). This way it prints, but it can also be processed.
5649 print it). This way it prints, but it can also be processed.
5647
5650
5648 * Added Verbose exception reporting to interactive
5651 * Added Verbose exception reporting to interactive
5649 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5652 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
5650 traceback. Had to make some changes to the ultraTB file. This is
5653 traceback. Had to make some changes to the ultraTB file. This is
5651 probably the last 'big' thing in my mental todo list. This ties
5654 probably the last 'big' thing in my mental todo list. This ties
5652 in with the next entry:
5655 in with the next entry:
5653
5656
5654 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5657 * Changed -Xi and -Xf to a single -xmode option. Now all the user
5655 has to specify is Plain, Color or Verbose for all exception
5658 has to specify is Plain, Color or Verbose for all exception
5656 handling.
5659 handling.
5657
5660
5658 * Removed ShellServices option. All this can really be done via
5661 * Removed ShellServices option. All this can really be done via
5659 the magic system. It's easier to extend, cleaner and has automatic
5662 the magic system. It's easier to extend, cleaner and has automatic
5660 namespace protection and documentation.
5663 namespace protection and documentation.
5661
5664
5662 2001-11-09 Fernando Perez <fperez@colorado.edu>
5665 2001-11-09 Fernando Perez <fperez@colorado.edu>
5663
5666
5664 * Fixed bug in output cache flushing (missing parameter to
5667 * Fixed bug in output cache flushing (missing parameter to
5665 __init__). Other small bugs fixed (found using pychecker).
5668 __init__). Other small bugs fixed (found using pychecker).
5666
5669
5667 * Version 0.1.4 opened for bugfixing.
5670 * Version 0.1.4 opened for bugfixing.
5668
5671
5669 2001-11-07 Fernando Perez <fperez@colorado.edu>
5672 2001-11-07 Fernando Perez <fperez@colorado.edu>
5670
5673
5671 * Version 0.1.3 released, mainly because of the raw_input bug.
5674 * Version 0.1.3 released, mainly because of the raw_input bug.
5672
5675
5673 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5676 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
5674 and when testing for whether things were callable, a call could
5677 and when testing for whether things were callable, a call could
5675 actually be made to certain functions. They would get called again
5678 actually be made to certain functions. They would get called again
5676 once 'really' executed, with a resulting double call. A disaster
5679 once 'really' executed, with a resulting double call. A disaster
5677 in many cases (list.reverse() would never work!).
5680 in many cases (list.reverse() would never work!).
5678
5681
5679 * Removed prefilter() function, moved its code to raw_input (which
5682 * Removed prefilter() function, moved its code to raw_input (which
5680 after all was just a near-empty caller for prefilter). This saves
5683 after all was just a near-empty caller for prefilter). This saves
5681 a function call on every prompt, and simplifies the class a tiny bit.
5684 a function call on every prompt, and simplifies the class a tiny bit.
5682
5685
5683 * Fix _ip to __ip name in magic example file.
5686 * Fix _ip to __ip name in magic example file.
5684
5687
5685 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5688 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
5686 work with non-gnu versions of tar.
5689 work with non-gnu versions of tar.
5687
5690
5688 2001-11-06 Fernando Perez <fperez@colorado.edu>
5691 2001-11-06 Fernando Perez <fperez@colorado.edu>
5689
5692
5690 * Version 0.1.2. Just to keep track of the recent changes.
5693 * Version 0.1.2. Just to keep track of the recent changes.
5691
5694
5692 * Fixed nasty bug in output prompt routine. It used to check 'if
5695 * Fixed nasty bug in output prompt routine. It used to check 'if
5693 arg != None...'. Problem is, this fails if arg implements a
5696 arg != None...'. Problem is, this fails if arg implements a
5694 special comparison (__cmp__) which disallows comparing to
5697 special comparison (__cmp__) which disallows comparing to
5695 None. Found it when trying to use the PhysicalQuantity module from
5698 None. Found it when trying to use the PhysicalQuantity module from
5696 ScientificPython.
5699 ScientificPython.
5697
5700
5698 2001-11-05 Fernando Perez <fperez@colorado.edu>
5701 2001-11-05 Fernando Perez <fperez@colorado.edu>
5699
5702
5700 * Also added dirs. Now the pushd/popd/dirs family functions
5703 * Also added dirs. Now the pushd/popd/dirs family functions
5701 basically like the shell, with the added convenience of going home
5704 basically like the shell, with the added convenience of going home
5702 when called with no args.
5705 when called with no args.
5703
5706
5704 * pushd/popd slightly modified to mimic shell behavior more
5707 * pushd/popd slightly modified to mimic shell behavior more
5705 closely.
5708 closely.
5706
5709
5707 * Added env,pushd,popd from ShellServices as magic functions. I
5710 * Added env,pushd,popd from ShellServices as magic functions. I
5708 think the cleanest will be to port all desired functions from
5711 think the cleanest will be to port all desired functions from
5709 ShellServices as magics and remove ShellServices altogether. This
5712 ShellServices as magics and remove ShellServices altogether. This
5710 will provide a single, clean way of adding functionality
5713 will provide a single, clean way of adding functionality
5711 (shell-type or otherwise) to IP.
5714 (shell-type or otherwise) to IP.
5712
5715
5713 2001-11-04 Fernando Perez <fperez@colorado.edu>
5716 2001-11-04 Fernando Perez <fperez@colorado.edu>
5714
5717
5715 * Added .ipython/ directory to sys.path. This way users can keep
5718 * Added .ipython/ directory to sys.path. This way users can keep
5716 customizations there and access them via import.
5719 customizations there and access them via import.
5717
5720
5718 2001-11-03 Fernando Perez <fperez@colorado.edu>
5721 2001-11-03 Fernando Perez <fperez@colorado.edu>
5719
5722
5720 * Opened version 0.1.1 for new changes.
5723 * Opened version 0.1.1 for new changes.
5721
5724
5722 * Changed version number to 0.1.0: first 'public' release, sent to
5725 * Changed version number to 0.1.0: first 'public' release, sent to
5723 Nathan and Janko.
5726 Nathan and Janko.
5724
5727
5725 * Lots of small fixes and tweaks.
5728 * Lots of small fixes and tweaks.
5726
5729
5727 * Minor changes to whos format. Now strings are shown, snipped if
5730 * Minor changes to whos format. Now strings are shown, snipped if
5728 too long.
5731 too long.
5729
5732
5730 * Changed ShellServices to work on __main__ so they show up in @who
5733 * Changed ShellServices to work on __main__ so they show up in @who
5731
5734
5732 * Help also works with ? at the end of a line:
5735 * Help also works with ? at the end of a line:
5733 ?sin and sin?
5736 ?sin and sin?
5734 both produce the same effect. This is nice, as often I use the
5737 both produce the same effect. This is nice, as often I use the
5735 tab-complete to find the name of a method, but I used to then have
5738 tab-complete to find the name of a method, but I used to then have
5736 to go to the beginning of the line to put a ? if I wanted more
5739 to go to the beginning of the line to put a ? if I wanted more
5737 info. Now I can just add the ? and hit return. Convenient.
5740 info. Now I can just add the ? and hit return. Convenient.
5738
5741
5739 2001-11-02 Fernando Perez <fperez@colorado.edu>
5742 2001-11-02 Fernando Perez <fperez@colorado.edu>
5740
5743
5741 * Python version check (>=2.1) added.
5744 * Python version check (>=2.1) added.
5742
5745
5743 * Added LazyPython documentation. At this point the docs are quite
5746 * Added LazyPython documentation. At this point the docs are quite
5744 a mess. A cleanup is in order.
5747 a mess. A cleanup is in order.
5745
5748
5746 * Auto-installer created. For some bizarre reason, the zipfiles
5749 * Auto-installer created. For some bizarre reason, the zipfiles
5747 module isn't working on my system. So I made a tar version
5750 module isn't working on my system. So I made a tar version
5748 (hopefully the command line options in various systems won't kill
5751 (hopefully the command line options in various systems won't kill
5749 me).
5752 me).
5750
5753
5751 * Fixes to Struct in genutils. Now all dictionary-like methods are
5754 * Fixes to Struct in genutils. Now all dictionary-like methods are
5752 protected (reasonably).
5755 protected (reasonably).
5753
5756
5754 * Added pager function to genutils and changed ? to print usage
5757 * Added pager function to genutils and changed ? to print usage
5755 note through it (it was too long).
5758 note through it (it was too long).
5756
5759
5757 * Added the LazyPython functionality. Works great! I changed the
5760 * Added the LazyPython functionality. Works great! I changed the
5758 auto-quote escape to ';', it's on home row and next to '. But
5761 auto-quote escape to ';', it's on home row and next to '. But
5759 both auto-quote and auto-paren (still /) escapes are command-line
5762 both auto-quote and auto-paren (still /) escapes are command-line
5760 parameters.
5763 parameters.
5761
5764
5762
5765
5763 2001-11-01 Fernando Perez <fperez@colorado.edu>
5766 2001-11-01 Fernando Perez <fperez@colorado.edu>
5764
5767
5765 * Version changed to 0.0.7. Fairly large change: configuration now
5768 * Version changed to 0.0.7. Fairly large change: configuration now
5766 is all stored in a directory, by default .ipython. There, all
5769 is all stored in a directory, by default .ipython. There, all
5767 config files have normal looking names (not .names)
5770 config files have normal looking names (not .names)
5768
5771
5769 * Version 0.0.6 Released first to Lucas and Archie as a test
5772 * Version 0.0.6 Released first to Lucas and Archie as a test
5770 run. Since it's the first 'semi-public' release, change version to
5773 run. Since it's the first 'semi-public' release, change version to
5771 > 0.0.6 for any changes now.
5774 > 0.0.6 for any changes now.
5772
5775
5773 * Stuff I had put in the ipplib.py changelog:
5776 * Stuff I had put in the ipplib.py changelog:
5774
5777
5775 Changes to InteractiveShell:
5778 Changes to InteractiveShell:
5776
5779
5777 - Made the usage message a parameter.
5780 - Made the usage message a parameter.
5778
5781
5779 - Require the name of the shell variable to be given. It's a bit
5782 - Require the name of the shell variable to be given. It's a bit
5780 of a hack, but allows the name 'shell' not to be hardwired in the
5783 of a hack, but allows the name 'shell' not to be hardwired in the
5781 magic (@) handler, which is problematic b/c it requires
5784 magic (@) handler, which is problematic b/c it requires
5782 polluting the global namespace with 'shell'. This in turn is
5785 polluting the global namespace with 'shell'. This in turn is
5783 fragile: if a user redefines a variable called shell, things
5786 fragile: if a user redefines a variable called shell, things
5784 break.
5787 break.
5785
5788
5786 - magic @: all functions available through @ need to be defined
5789 - magic @: all functions available through @ need to be defined
5787 as magic_<name>, even though they can be called simply as
5790 as magic_<name>, even though they can be called simply as
5788 @<name>. This allows the special command @magic to gather
5791 @<name>. This allows the special command @magic to gather
5789 information automatically about all existing magic functions,
5792 information automatically about all existing magic functions,
5790 even if they are run-time user extensions, by parsing the shell
5793 even if they are run-time user extensions, by parsing the shell
5791 instance __dict__ looking for special magic_ names.
5794 instance __dict__ looking for special magic_ names.
5792
5795
5793 - mainloop: added *two* local namespace parameters. This allows
5796 - mainloop: added *two* local namespace parameters. This allows
5794 the class to differentiate between parameters which were there
5797 the class to differentiate between parameters which were there
5795 before and after command line initialization was processed. This
5798 before and after command line initialization was processed. This
5796 way, later @who can show things loaded at startup by the
5799 way, later @who can show things loaded at startup by the
5797 user. This trick was necessary to make session saving/reloading
5800 user. This trick was necessary to make session saving/reloading
5798 really work: ideally after saving/exiting/reloading a session,
5801 really work: ideally after saving/exiting/reloading a session,
5799 *everything* should look the same, including the output of @who. I
5802 *everything* should look the same, including the output of @who. I
5800 was only able to make this work with this double namespace
5803 was only able to make this work with this double namespace
5801 trick.
5804 trick.
5802
5805
5803 - added a header to the logfile which allows (almost) full
5806 - added a header to the logfile which allows (almost) full
5804 session restoring.
5807 session restoring.
5805
5808
5806 - prepend lines beginning with @ or !, with a and log
5809 - prepend lines beginning with @ or !, with a and log
5807 them. Why? !lines: may be useful to know what you did @lines:
5810 them. Why? !lines: may be useful to know what you did @lines:
5808 they may affect session state. So when restoring a session, at
5811 they may affect session state. So when restoring a session, at
5809 least inform the user of their presence. I couldn't quite get
5812 least inform the user of their presence. I couldn't quite get
5810 them to properly re-execute, but at least the user is warned.
5813 them to properly re-execute, but at least the user is warned.
5811
5814
5812 * Started ChangeLog.
5815 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now