##// END OF EJS Templates
small import bug
fperez -
Show More
@@ -1,41 +1,43 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 Extension for printing Numeric Arrays in flexible ways.
3 Extension for printing Numeric Arrays in flexible ways.
4 """
4 """
5
5
6 from Numeric import ArrayType
7
6 def num_display(self,arg):
8 def num_display(self,arg):
7 """Display method for printing which treats Numeric arrays specially.
9 """Display method for printing which treats Numeric arrays specially.
8 """
10 """
9
11
10 # Non-numpy variables are printed using the system default
12 # Non-numpy variables are printed using the system default
11 if type(arg) != ArrayType:
13 if type(arg) != ArrayType:
12 self._display(arg)
14 self._display(arg)
13 return
15 return
14 # Otherwise, we do work.
16 # Otherwise, we do work.
15 format = __IPYTHON__.runtime_rc.numarray_print_format
17 format = __IPYTHON__.runtime_rc.numarray_print_format
16 print 'NumPy array, format:',format
18 print 'NumPy array, format:',format
17 # Here is where all the printing logic needs to be implemented
19 # Here is where all the printing logic needs to be implemented
18 print arg # nothing yet :)
20 print arg # nothing yet :)
19
21
20
22
21 def magic_format(self,parameter_s=''):
23 def magic_format(self,parameter_s=''):
22 """Specifies format of numerical output.
24 """Specifies format of numerical output.
23
25
24 This command is similar to Ocave's format command.
26 This command is similar to Ocave's format command.
25 """
27 """
26
28
27 valid_formats = ['long','short']
29 valid_formats = ['long','short']
28
30
29 if parameter_s in valid_formats:
31 if parameter_s in valid_formats:
30 self.runtime_rc.numarray_print_format = parameter_s
32 self.runtime_rc.numarray_print_format = parameter_s
31 print 'Numeric output format is now:',parameter_s
33 print 'Numeric output format is now:',parameter_s
32 else:
34 else:
33 print 'Invalid format:',parameter_s
35 print 'Invalid format:',parameter_s
34 print 'Valid formats:',valid_formats
36 print 'Valid formats:',valid_formats
35
37
36 # setup default format
38 # setup default format
37 __IPYTHON__.runtime_rc.numarray_print_format = 'long'
39 __IPYTHON__.runtime_rc.numarray_print_format = 'long'
38
40
39 # Bind our new functions to the interpreter
41 # Bind our new functions to the interpreter
40 __IPYTHON__.__class__.magic_format = magic_format
42 __IPYTHON__.__class__.magic_format = magic_format
41 __IPYTHON__.hooks.display = num_display
43 __IPYTHON__.hooks.display = num_display
@@ -1,4406 +1,4411 b''
1 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/Extensions/numeric_formats.py: fix missing import,
4 reported by Stephen Walton.
5
1 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
6 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2
7
3 * IPython/demo.py: finish demo module, fully documented now.
8 * IPython/demo.py: finish demo module, fully documented now.
4
9
5 * IPython/genutils.py (file_read): simple little utility to read a
10 * IPython/genutils.py (file_read): simple little utility to read a
6 file and ensure it's closed afterwards.
11 file and ensure it's closed afterwards.
7
12
8 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
13 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
9
14
10 * IPython/demo.py (Demo.__init__): added support for individually
15 * IPython/demo.py (Demo.__init__): added support for individually
11 tagging blocks for automatic execution.
16 tagging blocks for automatic execution.
12
17
13 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
18 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
14 syntax-highlighted python sources, requested by John.
19 syntax-highlighted python sources, requested by John.
15
20
16 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
21 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
17
22
18 * IPython/demo.py (Demo.again): fix bug where again() blocks after
23 * IPython/demo.py (Demo.again): fix bug where again() blocks after
19 finishing.
24 finishing.
20
25
21 * IPython/genutils.py (shlex_split): moved from Magic to here,
26 * IPython/genutils.py (shlex_split): moved from Magic to here,
22 where all 2.2 compatibility stuff lives. I needed it for demo.py.
27 where all 2.2 compatibility stuff lives. I needed it for demo.py.
23
28
24 * IPython/demo.py (Demo.__init__): added support for silent
29 * IPython/demo.py (Demo.__init__): added support for silent
25 blocks, improved marks as regexps, docstrings written.
30 blocks, improved marks as regexps, docstrings written.
26 (Demo.__init__): better docstring, added support for sys.argv.
31 (Demo.__init__): better docstring, added support for sys.argv.
27
32
28 * IPython/genutils.py (marquee): little utility used by the demo
33 * IPython/genutils.py (marquee): little utility used by the demo
29 code, handy in general.
34 code, handy in general.
30
35
31 * IPython/demo.py (Demo.__init__): new class for interactive
36 * IPython/demo.py (Demo.__init__): new class for interactive
32 demos. Not documented yet, I just wrote it in a hurry for
37 demos. Not documented yet, I just wrote it in a hurry for
33 scipy'05. Will docstring later.
38 scipy'05. Will docstring later.
34
39
35 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
40 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
36
41
37 * IPython/Shell.py (sigint_handler): Drastic simplification which
42 * IPython/Shell.py (sigint_handler): Drastic simplification which
38 also seems to make Ctrl-C work correctly across threads! This is
43 also seems to make Ctrl-C work correctly across threads! This is
39 so simple, that I can't beleive I'd missed it before. Needs more
44 so simple, that I can't beleive I'd missed it before. Needs more
40 testing, though.
45 testing, though.
41 (KBINT): Never mind, revert changes. I'm sure I'd tried something
46 (KBINT): Never mind, revert changes. I'm sure I'd tried something
42 like this before...
47 like this before...
43
48
44 * IPython/genutils.py (get_home_dir): add protection against
49 * IPython/genutils.py (get_home_dir): add protection against
45 non-dirs in win32 registry.
50 non-dirs in win32 registry.
46
51
47 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
52 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
48 bug where dict was mutated while iterating (pysh crash).
53 bug where dict was mutated while iterating (pysh crash).
49
54
50 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
55 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
51
56
52 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
57 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
53 spurious newlines added by this routine. After a report by
58 spurious newlines added by this routine. After a report by
54 F. Mantegazza.
59 F. Mantegazza.
55
60
56 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
61 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
57
62
58 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
63 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
59 calls. These were a leftover from the GTK 1.x days, and can cause
64 calls. These were a leftover from the GTK 1.x days, and can cause
60 problems in certain cases (after a report by John Hunter).
65 problems in certain cases (after a report by John Hunter).
61
66
62 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
67 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
63 os.getcwd() fails at init time. Thanks to patch from David Remahl
68 os.getcwd() fails at init time. Thanks to patch from David Remahl
64 <chmod007 AT mac.com>.
69 <chmod007 AT mac.com>.
65 (InteractiveShell.__init__): prevent certain special magics from
70 (InteractiveShell.__init__): prevent certain special magics from
66 being shadowed by aliases. Closes
71 being shadowed by aliases. Closes
67 http://www.scipy.net/roundup/ipython/issue41.
72 http://www.scipy.net/roundup/ipython/issue41.
68
73
69 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
74 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
70
75
71 * IPython/iplib.py (InteractiveShell.complete): Added new
76 * IPython/iplib.py (InteractiveShell.complete): Added new
72 top-level completion method to expose the completion mechanism
77 top-level completion method to expose the completion mechanism
73 beyond readline-based environments.
78 beyond readline-based environments.
74
79
75 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
80 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
76
81
77 * tools/ipsvnc (svnversion): fix svnversion capture.
82 * tools/ipsvnc (svnversion): fix svnversion capture.
78
83
79 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
84 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
80 attribute to self, which was missing. Before, it was set by a
85 attribute to self, which was missing. Before, it was set by a
81 routine which in certain cases wasn't being called, so the
86 routine which in certain cases wasn't being called, so the
82 instance could end up missing the attribute. This caused a crash.
87 instance could end up missing the attribute. This caused a crash.
83 Closes http://www.scipy.net/roundup/ipython/issue40.
88 Closes http://www.scipy.net/roundup/ipython/issue40.
84
89
85 2005-08-16 Fernando Perez <fperez@colorado.edu>
90 2005-08-16 Fernando Perez <fperez@colorado.edu>
86
91
87 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
92 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
88 contains non-string attribute. Closes
93 contains non-string attribute. Closes
89 http://www.scipy.net/roundup/ipython/issue38.
94 http://www.scipy.net/roundup/ipython/issue38.
90
95
91 2005-08-14 Fernando Perez <fperez@colorado.edu>
96 2005-08-14 Fernando Perez <fperez@colorado.edu>
92
97
93 * tools/ipsvnc: Minor improvements, to add changeset info.
98 * tools/ipsvnc: Minor improvements, to add changeset info.
94
99
95 2005-08-12 Fernando Perez <fperez@colorado.edu>
100 2005-08-12 Fernando Perez <fperez@colorado.edu>
96
101
97 * IPython/iplib.py (runsource): remove self.code_to_run_src
102 * IPython/iplib.py (runsource): remove self.code_to_run_src
98 attribute. I realized this is nothing more than
103 attribute. I realized this is nothing more than
99 '\n'.join(self.buffer), and having the same data in two different
104 '\n'.join(self.buffer), and having the same data in two different
100 places is just asking for synchronization bugs. This may impact
105 places is just asking for synchronization bugs. This may impact
101 people who have custom exception handlers, so I need to warn
106 people who have custom exception handlers, so I need to warn
102 ipython-dev about it (F. Mantegazza may use them).
107 ipython-dev about it (F. Mantegazza may use them).
103
108
104 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
109 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
105
110
106 * IPython/genutils.py: fix 2.2 compatibility (generators)
111 * IPython/genutils.py: fix 2.2 compatibility (generators)
107
112
108 2005-07-18 Fernando Perez <fperez@colorado.edu>
113 2005-07-18 Fernando Perez <fperez@colorado.edu>
109
114
110 * IPython/genutils.py (get_home_dir): fix to help users with
115 * IPython/genutils.py (get_home_dir): fix to help users with
111 invalid $HOME under win32.
116 invalid $HOME under win32.
112
117
113 2005-07-17 Fernando Perez <fperez@colorado.edu>
118 2005-07-17 Fernando Perez <fperez@colorado.edu>
114
119
115 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
120 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
116 some old hacks and clean up a bit other routines; code should be
121 some old hacks and clean up a bit other routines; code should be
117 simpler and a bit faster.
122 simpler and a bit faster.
118
123
119 * IPython/iplib.py (interact): removed some last-resort attempts
124 * IPython/iplib.py (interact): removed some last-resort attempts
120 to survive broken stdout/stderr. That code was only making it
125 to survive broken stdout/stderr. That code was only making it
121 harder to abstract out the i/o (necessary for gui integration),
126 harder to abstract out the i/o (necessary for gui integration),
122 and the crashes it could prevent were extremely rare in practice
127 and the crashes it could prevent were extremely rare in practice
123 (besides being fully user-induced in a pretty violent manner).
128 (besides being fully user-induced in a pretty violent manner).
124
129
125 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
130 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
126 Nothing major yet, but the code is simpler to read; this should
131 Nothing major yet, but the code is simpler to read; this should
127 make it easier to do more serious modifications in the future.
132 make it easier to do more serious modifications in the future.
128
133
129 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
134 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
130 which broke in .15 (thanks to a report by Ville).
135 which broke in .15 (thanks to a report by Ville).
131
136
132 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
137 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
133 be quite correct, I know next to nothing about unicode). This
138 be quite correct, I know next to nothing about unicode). This
134 will allow unicode strings to be used in prompts, amongst other
139 will allow unicode strings to be used in prompts, amongst other
135 cases. It also will prevent ipython from crashing when unicode
140 cases. It also will prevent ipython from crashing when unicode
136 shows up unexpectedly in many places. If ascii encoding fails, we
141 shows up unexpectedly in many places. If ascii encoding fails, we
137 assume utf_8. Currently the encoding is not a user-visible
142 assume utf_8. Currently the encoding is not a user-visible
138 setting, though it could be made so if there is demand for it.
143 setting, though it could be made so if there is demand for it.
139
144
140 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
145 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
141
146
142 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
147 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
143
148
144 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
149 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
145
150
146 * IPython/genutils.py: Add 2.2 compatibility here, so all other
151 * IPython/genutils.py: Add 2.2 compatibility here, so all other
147 code can work transparently for 2.2/2.3.
152 code can work transparently for 2.2/2.3.
148
153
149 2005-07-16 Fernando Perez <fperez@colorado.edu>
154 2005-07-16 Fernando Perez <fperez@colorado.edu>
150
155
151 * IPython/ultraTB.py (ExceptionColors): Make a global variable
156 * IPython/ultraTB.py (ExceptionColors): Make a global variable
152 out of the color scheme table used for coloring exception
157 out of the color scheme table used for coloring exception
153 tracebacks. This allows user code to add new schemes at runtime.
158 tracebacks. This allows user code to add new schemes at runtime.
154 This is a minimally modified version of the patch at
159 This is a minimally modified version of the patch at
155 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
160 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
156 for the contribution.
161 for the contribution.
157
162
158 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
163 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
159 slightly modified version of the patch in
164 slightly modified version of the patch in
160 http://www.scipy.net/roundup/ipython/issue34, which also allows me
165 http://www.scipy.net/roundup/ipython/issue34, which also allows me
161 to remove the previous try/except solution (which was costlier).
166 to remove the previous try/except solution (which was costlier).
162 Thanks to Gaetan Lehmann <gaetan.lehmann AT jouy.inra.fr> for the fix.
167 Thanks to Gaetan Lehmann <gaetan.lehmann AT jouy.inra.fr> for the fix.
163
168
164 2005-06-08 Fernando Perez <fperez@colorado.edu>
169 2005-06-08 Fernando Perez <fperez@colorado.edu>
165
170
166 * IPython/iplib.py (write/write_err): Add methods to abstract all
171 * IPython/iplib.py (write/write_err): Add methods to abstract all
167 I/O a bit more.
172 I/O a bit more.
168
173
169 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
174 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
170 warning, reported by Aric Hagberg, fix by JD Hunter.
175 warning, reported by Aric Hagberg, fix by JD Hunter.
171
176
172 2005-06-02 *** Released version 0.6.15
177 2005-06-02 *** Released version 0.6.15
173
178
174 2005-06-01 Fernando Perez <fperez@colorado.edu>
179 2005-06-01 Fernando Perez <fperez@colorado.edu>
175
180
176 * IPython/iplib.py (MagicCompleter.file_matches): Fix
181 * IPython/iplib.py (MagicCompleter.file_matches): Fix
177 tab-completion of filenames within open-quoted strings. Note that
182 tab-completion of filenames within open-quoted strings. Note that
178 this requires that in ~/.ipython/ipythonrc, users change the
183 this requires that in ~/.ipython/ipythonrc, users change the
179 readline delimiters configuration to read:
184 readline delimiters configuration to read:
180
185
181 readline_remove_delims -/~
186 readline_remove_delims -/~
182
187
183
188
184 2005-05-31 *** Released version 0.6.14
189 2005-05-31 *** Released version 0.6.14
185
190
186 2005-05-29 Fernando Perez <fperez@colorado.edu>
191 2005-05-29 Fernando Perez <fperez@colorado.edu>
187
192
188 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
193 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
189 with files not on the filesystem. Reported by Eliyahu Sandler
194 with files not on the filesystem. Reported by Eliyahu Sandler
190 <eli@gondolin.net>
195 <eli@gondolin.net>
191
196
192 2005-05-22 Fernando Perez <fperez@colorado.edu>
197 2005-05-22 Fernando Perez <fperez@colorado.edu>
193
198
194 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
199 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
195 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
200 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
196
201
197 2005-05-19 Fernando Perez <fperez@colorado.edu>
202 2005-05-19 Fernando Perez <fperez@colorado.edu>
198
203
199 * IPython/iplib.py (safe_execfile): close a file which could be
204 * IPython/iplib.py (safe_execfile): close a file which could be
200 left open (causing problems in win32, which locks open files).
205 left open (causing problems in win32, which locks open files).
201 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
206 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
202
207
203 2005-05-18 Fernando Perez <fperez@colorado.edu>
208 2005-05-18 Fernando Perez <fperez@colorado.edu>
204
209
205 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
210 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
206 keyword arguments correctly to safe_execfile().
211 keyword arguments correctly to safe_execfile().
207
212
208 2005-05-13 Fernando Perez <fperez@colorado.edu>
213 2005-05-13 Fernando Perez <fperez@colorado.edu>
209
214
210 * ipython.1: Added info about Qt to manpage, and threads warning
215 * ipython.1: Added info about Qt to manpage, and threads warning
211 to usage page (invoked with --help).
216 to usage page (invoked with --help).
212
217
213 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
218 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
214 new matcher (it goes at the end of the priority list) to do
219 new matcher (it goes at the end of the priority list) to do
215 tab-completion on named function arguments. Submitted by George
220 tab-completion on named function arguments. Submitted by George
216 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
221 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
217 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
222 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
218 for more details.
223 for more details.
219
224
220 * IPython/Magic.py (magic_run): Added new -e flag to ignore
225 * IPython/Magic.py (magic_run): Added new -e flag to ignore
221 SystemExit exceptions in the script being run. Thanks to a report
226 SystemExit exceptions in the script being run. Thanks to a report
222 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
227 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
223 producing very annoying behavior when running unit tests.
228 producing very annoying behavior when running unit tests.
224
229
225 2005-05-12 Fernando Perez <fperez@colorado.edu>
230 2005-05-12 Fernando Perez <fperez@colorado.edu>
226
231
227 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
232 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
228 which I'd broken (again) due to a changed regexp. In the process,
233 which I'd broken (again) due to a changed regexp. In the process,
229 added ';' as an escape to auto-quote the whole line without
234 added ';' as an escape to auto-quote the whole line without
230 splitting its arguments. Thanks to a report by Jerry McRae
235 splitting its arguments. Thanks to a report by Jerry McRae
231 <qrs0xyc02-AT-sneakemail.com>.
236 <qrs0xyc02-AT-sneakemail.com>.
232
237
233 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
238 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
234 possible crashes caused by a TokenError. Reported by Ed Schofield
239 possible crashes caused by a TokenError. Reported by Ed Schofield
235 <schofield-AT-ftw.at>.
240 <schofield-AT-ftw.at>.
236
241
237 2005-05-06 Fernando Perez <fperez@colorado.edu>
242 2005-05-06 Fernando Perez <fperez@colorado.edu>
238
243
239 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
244 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
240
245
241 2005-04-29 Fernando Perez <fperez@colorado.edu>
246 2005-04-29 Fernando Perez <fperez@colorado.edu>
242
247
243 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
248 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
244 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
249 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
245 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
250 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
246 which provides support for Qt interactive usage (similar to the
251 which provides support for Qt interactive usage (similar to the
247 existing one for WX and GTK). This had been often requested.
252 existing one for WX and GTK). This had been often requested.
248
253
249 2005-04-14 *** Released version 0.6.13
254 2005-04-14 *** Released version 0.6.13
250
255
251 2005-04-08 Fernando Perez <fperez@colorado.edu>
256 2005-04-08 Fernando Perez <fperez@colorado.edu>
252
257
253 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
258 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
254 from _ofind, which gets called on almost every input line. Now,
259 from _ofind, which gets called on almost every input line. Now,
255 we only try to get docstrings if they are actually going to be
260 we only try to get docstrings if they are actually going to be
256 used (the overhead of fetching unnecessary docstrings can be
261 used (the overhead of fetching unnecessary docstrings can be
257 noticeable for certain objects, such as Pyro proxies).
262 noticeable for certain objects, such as Pyro proxies).
258
263
259 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
264 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
260 for completers. For some reason I had been passing them the state
265 for completers. For some reason I had been passing them the state
261 variable, which completers never actually need, and was in
266 variable, which completers never actually need, and was in
262 conflict with the rlcompleter API. Custom completers ONLY need to
267 conflict with the rlcompleter API. Custom completers ONLY need to
263 take the text parameter.
268 take the text parameter.
264
269
265 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
270 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
266 work correctly in pysh. I've also moved all the logic which used
271 work correctly in pysh. I've also moved all the logic which used
267 to be in pysh.py here, which will prevent problems with future
272 to be in pysh.py here, which will prevent problems with future
268 upgrades. However, this time I must warn users to update their
273 upgrades. However, this time I must warn users to update their
269 pysh profile to include the line
274 pysh profile to include the line
270
275
271 import_all IPython.Extensions.InterpreterExec
276 import_all IPython.Extensions.InterpreterExec
272
277
273 because otherwise things won't work for them. They MUST also
278 because otherwise things won't work for them. They MUST also
274 delete pysh.py and the line
279 delete pysh.py and the line
275
280
276 execfile pysh.py
281 execfile pysh.py
277
282
278 from their ipythonrc-pysh.
283 from their ipythonrc-pysh.
279
284
280 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
285 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
281 robust in the face of objects whose dir() returns non-strings
286 robust in the face of objects whose dir() returns non-strings
282 (which it shouldn't, but some broken libs like ITK do). Thanks to
287 (which it shouldn't, but some broken libs like ITK do). Thanks to
283 a patch by John Hunter (implemented differently, though). Also
288 a patch by John Hunter (implemented differently, though). Also
284 minor improvements by using .extend instead of + on lists.
289 minor improvements by using .extend instead of + on lists.
285
290
286 * pysh.py:
291 * pysh.py:
287
292
288 2005-04-06 Fernando Perez <fperez@colorado.edu>
293 2005-04-06 Fernando Perez <fperez@colorado.edu>
289
294
290 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
295 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
291 by default, so that all users benefit from it. Those who don't
296 by default, so that all users benefit from it. Those who don't
292 want it can still turn it off.
297 want it can still turn it off.
293
298
294 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
299 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
295 config file, I'd forgotten about this, so users were getting it
300 config file, I'd forgotten about this, so users were getting it
296 off by default.
301 off by default.
297
302
298 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
303 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
299 consistency. Now magics can be called in multiline statements,
304 consistency. Now magics can be called in multiline statements,
300 and python variables can be expanded in magic calls via $var.
305 and python variables can be expanded in magic calls via $var.
301 This makes the magic system behave just like aliases or !system
306 This makes the magic system behave just like aliases or !system
302 calls.
307 calls.
303
308
304 2005-03-28 Fernando Perez <fperez@colorado.edu>
309 2005-03-28 Fernando Perez <fperez@colorado.edu>
305
310
306 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
311 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
307 expensive string additions for building command. Add support for
312 expensive string additions for building command. Add support for
308 trailing ';' when autocall is used.
313 trailing ';' when autocall is used.
309
314
310 2005-03-26 Fernando Perez <fperez@colorado.edu>
315 2005-03-26 Fernando Perez <fperez@colorado.edu>
311
316
312 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
317 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
313 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
318 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
314 ipython.el robust against prompts with any number of spaces
319 ipython.el robust against prompts with any number of spaces
315 (including 0) after the ':' character.
320 (including 0) after the ':' character.
316
321
317 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
322 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
318 continuation prompt, which misled users to think the line was
323 continuation prompt, which misled users to think the line was
319 already indented. Closes debian Bug#300847, reported to me by
324 already indented. Closes debian Bug#300847, reported to me by
320 Norbert Tretkowski <tretkowski-AT-inittab.de>.
325 Norbert Tretkowski <tretkowski-AT-inittab.de>.
321
326
322 2005-03-23 Fernando Perez <fperez@colorado.edu>
327 2005-03-23 Fernando Perez <fperez@colorado.edu>
323
328
324 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
329 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
325 properly aligned if they have embedded newlines.
330 properly aligned if they have embedded newlines.
326
331
327 * IPython/iplib.py (runlines): Add a public method to expose
332 * IPython/iplib.py (runlines): Add a public method to expose
328 IPython's code execution machinery, so that users can run strings
333 IPython's code execution machinery, so that users can run strings
329 as if they had been typed at the prompt interactively.
334 as if they had been typed at the prompt interactively.
330 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
335 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
331 methods which can call the system shell, but with python variable
336 methods which can call the system shell, but with python variable
332 expansion. The three such methods are: __IPYTHON__.system,
337 expansion. The three such methods are: __IPYTHON__.system,
333 .getoutput and .getoutputerror. These need to be documented in a
338 .getoutput and .getoutputerror. These need to be documented in a
334 'public API' section (to be written) of the manual.
339 'public API' section (to be written) of the manual.
335
340
336 2005-03-20 Fernando Perez <fperez@colorado.edu>
341 2005-03-20 Fernando Perez <fperez@colorado.edu>
337
342
338 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
343 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
339 for custom exception handling. This is quite powerful, and it
344 for custom exception handling. This is quite powerful, and it
340 allows for user-installable exception handlers which can trap
345 allows for user-installable exception handlers which can trap
341 custom exceptions at runtime and treat them separately from
346 custom exceptions at runtime and treat them separately from
342 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
347 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
343 Mantegazza <mantegazza-AT-ill.fr>.
348 Mantegazza <mantegazza-AT-ill.fr>.
344 (InteractiveShell.set_custom_completer): public API function to
349 (InteractiveShell.set_custom_completer): public API function to
345 add new completers at runtime.
350 add new completers at runtime.
346
351
347 2005-03-19 Fernando Perez <fperez@colorado.edu>
352 2005-03-19 Fernando Perez <fperez@colorado.edu>
348
353
349 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
354 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
350 allow objects which provide their docstrings via non-standard
355 allow objects which provide their docstrings via non-standard
351 mechanisms (like Pyro proxies) to still be inspected by ipython's
356 mechanisms (like Pyro proxies) to still be inspected by ipython's
352 ? system.
357 ? system.
353
358
354 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
359 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
355 automatic capture system. I tried quite hard to make it work
360 automatic capture system. I tried quite hard to make it work
356 reliably, and simply failed. I tried many combinations with the
361 reliably, and simply failed. I tried many combinations with the
357 subprocess module, but eventually nothing worked in all needed
362 subprocess module, but eventually nothing worked in all needed
358 cases (not blocking stdin for the child, duplicating stdout
363 cases (not blocking stdin for the child, duplicating stdout
359 without blocking, etc). The new %sc/%sx still do capture to these
364 without blocking, etc). The new %sc/%sx still do capture to these
360 magical list/string objects which make shell use much more
365 magical list/string objects which make shell use much more
361 conveninent, so not all is lost.
366 conveninent, so not all is lost.
362
367
363 XXX - FIX MANUAL for the change above!
368 XXX - FIX MANUAL for the change above!
364
369
365 (runsource): I copied code.py's runsource() into ipython to modify
370 (runsource): I copied code.py's runsource() into ipython to modify
366 it a bit. Now the code object and source to be executed are
371 it a bit. Now the code object and source to be executed are
367 stored in ipython. This makes this info accessible to third-party
372 stored in ipython. This makes this info accessible to third-party
368 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
373 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
369 Mantegazza <mantegazza-AT-ill.fr>.
374 Mantegazza <mantegazza-AT-ill.fr>.
370
375
371 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
376 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
372 history-search via readline (like C-p/C-n). I'd wanted this for a
377 history-search via readline (like C-p/C-n). I'd wanted this for a
373 long time, but only recently found out how to do it. For users
378 long time, but only recently found out how to do it. For users
374 who already have their ipythonrc files made and want this, just
379 who already have their ipythonrc files made and want this, just
375 add:
380 add:
376
381
377 readline_parse_and_bind "\e[A": history-search-backward
382 readline_parse_and_bind "\e[A": history-search-backward
378 readline_parse_and_bind "\e[B": history-search-forward
383 readline_parse_and_bind "\e[B": history-search-forward
379
384
380 2005-03-18 Fernando Perez <fperez@colorado.edu>
385 2005-03-18 Fernando Perez <fperez@colorado.edu>
381
386
382 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
387 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
383 LSString and SList classes which allow transparent conversions
388 LSString and SList classes which allow transparent conversions
384 between list mode and whitespace-separated string.
389 between list mode and whitespace-separated string.
385 (magic_r): Fix recursion problem in %r.
390 (magic_r): Fix recursion problem in %r.
386
391
387 * IPython/genutils.py (LSString): New class to be used for
392 * IPython/genutils.py (LSString): New class to be used for
388 automatic storage of the results of all alias/system calls in _o
393 automatic storage of the results of all alias/system calls in _o
389 and _e (stdout/err). These provide a .l/.list attribute which
394 and _e (stdout/err). These provide a .l/.list attribute which
390 does automatic splitting on newlines. This means that for most
395 does automatic splitting on newlines. This means that for most
391 uses, you'll never need to do capturing of output with %sc/%sx
396 uses, you'll never need to do capturing of output with %sc/%sx
392 anymore, since ipython keeps this always done for you. Note that
397 anymore, since ipython keeps this always done for you. Note that
393 only the LAST results are stored, the _o/e variables are
398 only the LAST results are stored, the _o/e variables are
394 overwritten on each call. If you need to save their contents
399 overwritten on each call. If you need to save their contents
395 further, simply bind them to any other name.
400 further, simply bind them to any other name.
396
401
397 2005-03-17 Fernando Perez <fperez@colorado.edu>
402 2005-03-17 Fernando Perez <fperez@colorado.edu>
398
403
399 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
404 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
400 prompt namespace handling.
405 prompt namespace handling.
401
406
402 2005-03-16 Fernando Perez <fperez@colorado.edu>
407 2005-03-16 Fernando Perez <fperez@colorado.edu>
403
408
404 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
409 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
405 classic prompts to be '>>> ' (final space was missing, and it
410 classic prompts to be '>>> ' (final space was missing, and it
406 trips the emacs python mode).
411 trips the emacs python mode).
407 (BasePrompt.__str__): Added safe support for dynamic prompt
412 (BasePrompt.__str__): Added safe support for dynamic prompt
408 strings. Now you can set your prompt string to be '$x', and the
413 strings. Now you can set your prompt string to be '$x', and the
409 value of x will be printed from your interactive namespace. The
414 value of x will be printed from your interactive namespace. The
410 interpolation syntax includes the full Itpl support, so
415 interpolation syntax includes the full Itpl support, so
411 ${foo()+x+bar()} is a valid prompt string now, and the function
416 ${foo()+x+bar()} is a valid prompt string now, and the function
412 calls will be made at runtime.
417 calls will be made at runtime.
413
418
414 2005-03-15 Fernando Perez <fperez@colorado.edu>
419 2005-03-15 Fernando Perez <fperez@colorado.edu>
415
420
416 * IPython/Magic.py (magic_history): renamed %hist to %history, to
421 * IPython/Magic.py (magic_history): renamed %hist to %history, to
417 avoid name clashes in pylab. %hist still works, it just forwards
422 avoid name clashes in pylab. %hist still works, it just forwards
418 the call to %history.
423 the call to %history.
419
424
420 2005-03-02 *** Released version 0.6.12
425 2005-03-02 *** Released version 0.6.12
421
426
422 2005-03-02 Fernando Perez <fperez@colorado.edu>
427 2005-03-02 Fernando Perez <fperez@colorado.edu>
423
428
424 * IPython/iplib.py (handle_magic): log magic calls properly as
429 * IPython/iplib.py (handle_magic): log magic calls properly as
425 ipmagic() function calls.
430 ipmagic() function calls.
426
431
427 * IPython/Magic.py (magic_time): Improved %time to support
432 * IPython/Magic.py (magic_time): Improved %time to support
428 statements and provide wall-clock as well as CPU time.
433 statements and provide wall-clock as well as CPU time.
429
434
430 2005-02-27 Fernando Perez <fperez@colorado.edu>
435 2005-02-27 Fernando Perez <fperez@colorado.edu>
431
436
432 * IPython/hooks.py: New hooks module, to expose user-modifiable
437 * IPython/hooks.py: New hooks module, to expose user-modifiable
433 IPython functionality in a clean manner. For now only the editor
438 IPython functionality in a clean manner. For now only the editor
434 hook is actually written, and other thigns which I intend to turn
439 hook is actually written, and other thigns which I intend to turn
435 into proper hooks aren't yet there. The display and prefilter
440 into proper hooks aren't yet there. The display and prefilter
436 stuff, for example, should be hooks. But at least now the
441 stuff, for example, should be hooks. But at least now the
437 framework is in place, and the rest can be moved here with more
442 framework is in place, and the rest can be moved here with more
438 time later. IPython had had a .hooks variable for a long time for
443 time later. IPython had had a .hooks variable for a long time for
439 this purpose, but I'd never actually used it for anything.
444 this purpose, but I'd never actually used it for anything.
440
445
441 2005-02-26 Fernando Perez <fperez@colorado.edu>
446 2005-02-26 Fernando Perez <fperez@colorado.edu>
442
447
443 * IPython/ipmaker.py (make_IPython): make the default ipython
448 * IPython/ipmaker.py (make_IPython): make the default ipython
444 directory be called _ipython under win32, to follow more the
449 directory be called _ipython under win32, to follow more the
445 naming peculiarities of that platform (where buggy software like
450 naming peculiarities of that platform (where buggy software like
446 Visual Sourcesafe breaks with .named directories). Reported by
451 Visual Sourcesafe breaks with .named directories). Reported by
447 Ville Vainio.
452 Ville Vainio.
448
453
449 2005-02-23 Fernando Perez <fperez@colorado.edu>
454 2005-02-23 Fernando Perez <fperez@colorado.edu>
450
455
451 * IPython/iplib.py (InteractiveShell.__init__): removed a few
456 * IPython/iplib.py (InteractiveShell.__init__): removed a few
452 auto_aliases for win32 which were causing problems. Users can
457 auto_aliases for win32 which were causing problems. Users can
453 define the ones they personally like.
458 define the ones they personally like.
454
459
455 2005-02-21 Fernando Perez <fperez@colorado.edu>
460 2005-02-21 Fernando Perez <fperez@colorado.edu>
456
461
457 * IPython/Magic.py (magic_time): new magic to time execution of
462 * IPython/Magic.py (magic_time): new magic to time execution of
458 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
463 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
459
464
460 2005-02-19 Fernando Perez <fperez@colorado.edu>
465 2005-02-19 Fernando Perez <fperez@colorado.edu>
461
466
462 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
467 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
463 into keys (for prompts, for example).
468 into keys (for prompts, for example).
464
469
465 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
470 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
466 prompts in case users want them. This introduces a small behavior
471 prompts in case users want them. This introduces a small behavior
467 change: ipython does not automatically add a space to all prompts
472 change: ipython does not automatically add a space to all prompts
468 anymore. To get the old prompts with a space, users should add it
473 anymore. To get the old prompts with a space, users should add it
469 manually to their ipythonrc file, so for example prompt_in1 should
474 manually to their ipythonrc file, so for example prompt_in1 should
470 now read 'In [\#]: ' instead of 'In [\#]:'.
475 now read 'In [\#]: ' instead of 'In [\#]:'.
471 (BasePrompt.__init__): New option prompts_pad_left (only in rc
476 (BasePrompt.__init__): New option prompts_pad_left (only in rc
472 file) to control left-padding of secondary prompts.
477 file) to control left-padding of secondary prompts.
473
478
474 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
479 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
475 the profiler can't be imported. Fix for Debian, which removed
480 the profiler can't be imported. Fix for Debian, which removed
476 profile.py because of License issues. I applied a slightly
481 profile.py because of License issues. I applied a slightly
477 modified version of the original Debian patch at
482 modified version of the original Debian patch at
478 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
483 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
479
484
480 2005-02-17 Fernando Perez <fperez@colorado.edu>
485 2005-02-17 Fernando Perez <fperez@colorado.edu>
481
486
482 * IPython/genutils.py (native_line_ends): Fix bug which would
487 * IPython/genutils.py (native_line_ends): Fix bug which would
483 cause improper line-ends under win32 b/c I was not opening files
488 cause improper line-ends under win32 b/c I was not opening files
484 in binary mode. Bug report and fix thanks to Ville.
489 in binary mode. Bug report and fix thanks to Ville.
485
490
486 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
491 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
487 trying to catch spurious foo[1] autocalls. My fix actually broke
492 trying to catch spurious foo[1] autocalls. My fix actually broke
488 ',/' autoquote/call with explicit escape (bad regexp).
493 ',/' autoquote/call with explicit escape (bad regexp).
489
494
490 2005-02-15 *** Released version 0.6.11
495 2005-02-15 *** Released version 0.6.11
491
496
492 2005-02-14 Fernando Perez <fperez@colorado.edu>
497 2005-02-14 Fernando Perez <fperez@colorado.edu>
493
498
494 * IPython/background_jobs.py: New background job management
499 * IPython/background_jobs.py: New background job management
495 subsystem. This is implemented via a new set of classes, and
500 subsystem. This is implemented via a new set of classes, and
496 IPython now provides a builtin 'jobs' object for background job
501 IPython now provides a builtin 'jobs' object for background job
497 execution. A convenience %bg magic serves as a lightweight
502 execution. A convenience %bg magic serves as a lightweight
498 frontend for starting the more common type of calls. This was
503 frontend for starting the more common type of calls. This was
499 inspired by discussions with B. Granger and the BackgroundCommand
504 inspired by discussions with B. Granger and the BackgroundCommand
500 class described in the book Python Scripting for Computational
505 class described in the book Python Scripting for Computational
501 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
506 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
502 (although ultimately no code from this text was used, as IPython's
507 (although ultimately no code from this text was used, as IPython's
503 system is a separate implementation).
508 system is a separate implementation).
504
509
505 * IPython/iplib.py (MagicCompleter.python_matches): add new option
510 * IPython/iplib.py (MagicCompleter.python_matches): add new option
506 to control the completion of single/double underscore names
511 to control the completion of single/double underscore names
507 separately. As documented in the example ipytonrc file, the
512 separately. As documented in the example ipytonrc file, the
508 readline_omit__names variable can now be set to 2, to omit even
513 readline_omit__names variable can now be set to 2, to omit even
509 single underscore names. Thanks to a patch by Brian Wong
514 single underscore names. Thanks to a patch by Brian Wong
510 <BrianWong-AT-AirgoNetworks.Com>.
515 <BrianWong-AT-AirgoNetworks.Com>.
511 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
516 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
512 be autocalled as foo([1]) if foo were callable. A problem for
517 be autocalled as foo([1]) if foo were callable. A problem for
513 things which are both callable and implement __getitem__.
518 things which are both callable and implement __getitem__.
514 (init_readline): Fix autoindentation for win32. Thanks to a patch
519 (init_readline): Fix autoindentation for win32. Thanks to a patch
515 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
520 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
516
521
517 2005-02-12 Fernando Perez <fperez@colorado.edu>
522 2005-02-12 Fernando Perez <fperez@colorado.edu>
518
523
519 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
524 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
520 which I had written long ago to sort out user error messages which
525 which I had written long ago to sort out user error messages which
521 may occur during startup. This seemed like a good idea initially,
526 may occur during startup. This seemed like a good idea initially,
522 but it has proven a disaster in retrospect. I don't want to
527 but it has proven a disaster in retrospect. I don't want to
523 change much code for now, so my fix is to set the internal 'debug'
528 change much code for now, so my fix is to set the internal 'debug'
524 flag to true everywhere, whose only job was precisely to control
529 flag to true everywhere, whose only job was precisely to control
525 this subsystem. This closes issue 28 (as well as avoiding all
530 this subsystem. This closes issue 28 (as well as avoiding all
526 sorts of strange hangups which occur from time to time).
531 sorts of strange hangups which occur from time to time).
527
532
528 2005-02-07 Fernando Perez <fperez@colorado.edu>
533 2005-02-07 Fernando Perez <fperez@colorado.edu>
529
534
530 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
535 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
531 previous call produced a syntax error.
536 previous call produced a syntax error.
532
537
533 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
538 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
534 classes without constructor.
539 classes without constructor.
535
540
536 2005-02-06 Fernando Perez <fperez@colorado.edu>
541 2005-02-06 Fernando Perez <fperez@colorado.edu>
537
542
538 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
543 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
539 completions with the results of each matcher, so we return results
544 completions with the results of each matcher, so we return results
540 to the user from all namespaces. This breaks with ipython
545 to the user from all namespaces. This breaks with ipython
541 tradition, but I think it's a nicer behavior. Now you get all
546 tradition, but I think it's a nicer behavior. Now you get all
542 possible completions listed, from all possible namespaces (python,
547 possible completions listed, from all possible namespaces (python,
543 filesystem, magics...) After a request by John Hunter
548 filesystem, magics...) After a request by John Hunter
544 <jdhunter-AT-nitace.bsd.uchicago.edu>.
549 <jdhunter-AT-nitace.bsd.uchicago.edu>.
545
550
546 2005-02-05 Fernando Perez <fperez@colorado.edu>
551 2005-02-05 Fernando Perez <fperez@colorado.edu>
547
552
548 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
553 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
549 the call had quote characters in it (the quotes were stripped).
554 the call had quote characters in it (the quotes were stripped).
550
555
551 2005-01-31 Fernando Perez <fperez@colorado.edu>
556 2005-01-31 Fernando Perez <fperez@colorado.edu>
552
557
553 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
558 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
554 Itpl.itpl() to make the code more robust against psyco
559 Itpl.itpl() to make the code more robust against psyco
555 optimizations.
560 optimizations.
556
561
557 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
562 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
558 of causing an exception. Quicker, cleaner.
563 of causing an exception. Quicker, cleaner.
559
564
560 2005-01-28 Fernando Perez <fperez@colorado.edu>
565 2005-01-28 Fernando Perez <fperez@colorado.edu>
561
566
562 * scripts/ipython_win_post_install.py (install): hardcode
567 * scripts/ipython_win_post_install.py (install): hardcode
563 sys.prefix+'python.exe' as the executable path. It turns out that
568 sys.prefix+'python.exe' as the executable path. It turns out that
564 during the post-installation run, sys.executable resolves to the
569 during the post-installation run, sys.executable resolves to the
565 name of the binary installer! I should report this as a distutils
570 name of the binary installer! I should report this as a distutils
566 bug, I think. I updated the .10 release with this tiny fix, to
571 bug, I think. I updated the .10 release with this tiny fix, to
567 avoid annoying the lists further.
572 avoid annoying the lists further.
568
573
569 2005-01-27 *** Released version 0.6.10
574 2005-01-27 *** Released version 0.6.10
570
575
571 2005-01-27 Fernando Perez <fperez@colorado.edu>
576 2005-01-27 Fernando Perez <fperez@colorado.edu>
572
577
573 * IPython/numutils.py (norm): Added 'inf' as optional name for
578 * IPython/numutils.py (norm): Added 'inf' as optional name for
574 L-infinity norm, included references to mathworld.com for vector
579 L-infinity norm, included references to mathworld.com for vector
575 norm definitions.
580 norm definitions.
576 (amin/amax): added amin/amax for array min/max. Similar to what
581 (amin/amax): added amin/amax for array min/max. Similar to what
577 pylab ships with after the recent reorganization of names.
582 pylab ships with after the recent reorganization of names.
578 (spike/spike_odd): removed deprecated spike/spike_odd functions.
583 (spike/spike_odd): removed deprecated spike/spike_odd functions.
579
584
580 * ipython.el: committed Alex's recent fixes and improvements.
585 * ipython.el: committed Alex's recent fixes and improvements.
581 Tested with python-mode from CVS, and it looks excellent. Since
586 Tested with python-mode from CVS, and it looks excellent. Since
582 python-mode hasn't released anything in a while, I'm temporarily
587 python-mode hasn't released anything in a while, I'm temporarily
583 putting a copy of today's CVS (v 4.70) of python-mode in:
588 putting a copy of today's CVS (v 4.70) of python-mode in:
584 http://ipython.scipy.org/tmp/python-mode.el
589 http://ipython.scipy.org/tmp/python-mode.el
585
590
586 * scripts/ipython_win_post_install.py (install): Win32 fix to use
591 * scripts/ipython_win_post_install.py (install): Win32 fix to use
587 sys.executable for the executable name, instead of assuming it's
592 sys.executable for the executable name, instead of assuming it's
588 called 'python.exe' (the post-installer would have produced broken
593 called 'python.exe' (the post-installer would have produced broken
589 setups on systems with a differently named python binary).
594 setups on systems with a differently named python binary).
590
595
591 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
596 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
592 references to os.linesep, to make the code more
597 references to os.linesep, to make the code more
593 platform-independent. This is also part of the win32 coloring
598 platform-independent. This is also part of the win32 coloring
594 fixes.
599 fixes.
595
600
596 * IPython/genutils.py (page_dumb): Remove attempts to chop long
601 * IPython/genutils.py (page_dumb): Remove attempts to chop long
597 lines, which actually cause coloring bugs because the length of
602 lines, which actually cause coloring bugs because the length of
598 the line is very difficult to correctly compute with embedded
603 the line is very difficult to correctly compute with embedded
599 escapes. This was the source of all the coloring problems under
604 escapes. This was the source of all the coloring problems under
600 Win32. I think that _finally_, Win32 users have a properly
605 Win32. I think that _finally_, Win32 users have a properly
601 working ipython in all respects. This would never have happened
606 working ipython in all respects. This would never have happened
602 if not for Gary Bishop and Viktor Ransmayr's great help and work.
607 if not for Gary Bishop and Viktor Ransmayr's great help and work.
603
608
604 2005-01-26 *** Released version 0.6.9
609 2005-01-26 *** Released version 0.6.9
605
610
606 2005-01-25 Fernando Perez <fperez@colorado.edu>
611 2005-01-25 Fernando Perez <fperez@colorado.edu>
607
612
608 * setup.py: finally, we have a true Windows installer, thanks to
613 * setup.py: finally, we have a true Windows installer, thanks to
609 the excellent work of Viktor Ransmayr
614 the excellent work of Viktor Ransmayr
610 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
615 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
611 Windows users. The setup routine is quite a bit cleaner thanks to
616 Windows users. The setup routine is quite a bit cleaner thanks to
612 this, and the post-install script uses the proper functions to
617 this, and the post-install script uses the proper functions to
613 allow a clean de-installation using the standard Windows Control
618 allow a clean de-installation using the standard Windows Control
614 Panel.
619 Panel.
615
620
616 * IPython/genutils.py (get_home_dir): changed to use the $HOME
621 * IPython/genutils.py (get_home_dir): changed to use the $HOME
617 environment variable under all OSes (including win32) if
622 environment variable under all OSes (including win32) if
618 available. This will give consistency to win32 users who have set
623 available. This will give consistency to win32 users who have set
619 this variable for any reason. If os.environ['HOME'] fails, the
624 this variable for any reason. If os.environ['HOME'] fails, the
620 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
625 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
621
626
622 2005-01-24 Fernando Perez <fperez@colorado.edu>
627 2005-01-24 Fernando Perez <fperez@colorado.edu>
623
628
624 * IPython/numutils.py (empty_like): add empty_like(), similar to
629 * IPython/numutils.py (empty_like): add empty_like(), similar to
625 zeros_like() but taking advantage of the new empty() Numeric routine.
630 zeros_like() but taking advantage of the new empty() Numeric routine.
626
631
627 2005-01-23 *** Released version 0.6.8
632 2005-01-23 *** Released version 0.6.8
628
633
629 2005-01-22 Fernando Perez <fperez@colorado.edu>
634 2005-01-22 Fernando Perez <fperez@colorado.edu>
630
635
631 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
636 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
632 automatic show() calls. After discussing things with JDH, it
637 automatic show() calls. After discussing things with JDH, it
633 turns out there are too many corner cases where this can go wrong.
638 turns out there are too many corner cases where this can go wrong.
634 It's best not to try to be 'too smart', and simply have ipython
639 It's best not to try to be 'too smart', and simply have ipython
635 reproduce as much as possible the default behavior of a normal
640 reproduce as much as possible the default behavior of a normal
636 python shell.
641 python shell.
637
642
638 * IPython/iplib.py (InteractiveShell.__init__): Modified the
643 * IPython/iplib.py (InteractiveShell.__init__): Modified the
639 line-splitting regexp and _prefilter() to avoid calling getattr()
644 line-splitting regexp and _prefilter() to avoid calling getattr()
640 on assignments. This closes
645 on assignments. This closes
641 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
646 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
642 readline uses getattr(), so a simple <TAB> keypress is still
647 readline uses getattr(), so a simple <TAB> keypress is still
643 enough to trigger getattr() calls on an object.
648 enough to trigger getattr() calls on an object.
644
649
645 2005-01-21 Fernando Perez <fperez@colorado.edu>
650 2005-01-21 Fernando Perez <fperez@colorado.edu>
646
651
647 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
652 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
648 docstring under pylab so it doesn't mask the original.
653 docstring under pylab so it doesn't mask the original.
649
654
650 2005-01-21 *** Released version 0.6.7
655 2005-01-21 *** Released version 0.6.7
651
656
652 2005-01-21 Fernando Perez <fperez@colorado.edu>
657 2005-01-21 Fernando Perez <fperez@colorado.edu>
653
658
654 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
659 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
655 signal handling for win32 users in multithreaded mode.
660 signal handling for win32 users in multithreaded mode.
656
661
657 2005-01-17 Fernando Perez <fperez@colorado.edu>
662 2005-01-17 Fernando Perez <fperez@colorado.edu>
658
663
659 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
664 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
660 instances with no __init__. After a crash report by Norbert Nemec
665 instances with no __init__. After a crash report by Norbert Nemec
661 <Norbert-AT-nemec-online.de>.
666 <Norbert-AT-nemec-online.de>.
662
667
663 2005-01-14 Fernando Perez <fperez@colorado.edu>
668 2005-01-14 Fernando Perez <fperez@colorado.edu>
664
669
665 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
670 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
666 names for verbose exceptions, when multiple dotted names and the
671 names for verbose exceptions, when multiple dotted names and the
667 'parent' object were present on the same line.
672 'parent' object were present on the same line.
668
673
669 2005-01-11 Fernando Perez <fperez@colorado.edu>
674 2005-01-11 Fernando Perez <fperez@colorado.edu>
670
675
671 * IPython/genutils.py (flag_calls): new utility to trap and flag
676 * IPython/genutils.py (flag_calls): new utility to trap and flag
672 calls in functions. I need it to clean up matplotlib support.
677 calls in functions. I need it to clean up matplotlib support.
673 Also removed some deprecated code in genutils.
678 Also removed some deprecated code in genutils.
674
679
675 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
680 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
676 that matplotlib scripts called with %run, which don't call show()
681 that matplotlib scripts called with %run, which don't call show()
677 themselves, still have their plotting windows open.
682 themselves, still have their plotting windows open.
678
683
679 2005-01-05 Fernando Perez <fperez@colorado.edu>
684 2005-01-05 Fernando Perez <fperez@colorado.edu>
680
685
681 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
686 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
682 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
687 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
683
688
684 2004-12-19 Fernando Perez <fperez@colorado.edu>
689 2004-12-19 Fernando Perez <fperez@colorado.edu>
685
690
686 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
691 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
687 parent_runcode, which was an eyesore. The same result can be
692 parent_runcode, which was an eyesore. The same result can be
688 obtained with Python's regular superclass mechanisms.
693 obtained with Python's regular superclass mechanisms.
689
694
690 2004-12-17 Fernando Perez <fperez@colorado.edu>
695 2004-12-17 Fernando Perez <fperez@colorado.edu>
691
696
692 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
697 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
693 reported by Prabhu.
698 reported by Prabhu.
694 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
699 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
695 sys.stderr) instead of explicitly calling sys.stderr. This helps
700 sys.stderr) instead of explicitly calling sys.stderr. This helps
696 maintain our I/O abstractions clean, for future GUI embeddings.
701 maintain our I/O abstractions clean, for future GUI embeddings.
697
702
698 * IPython/genutils.py (info): added new utility for sys.stderr
703 * IPython/genutils.py (info): added new utility for sys.stderr
699 unified info message handling (thin wrapper around warn()).
704 unified info message handling (thin wrapper around warn()).
700
705
701 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
706 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
702 composite (dotted) names on verbose exceptions.
707 composite (dotted) names on verbose exceptions.
703 (VerboseTB.nullrepr): harden against another kind of errors which
708 (VerboseTB.nullrepr): harden against another kind of errors which
704 Python's inspect module can trigger, and which were crashing
709 Python's inspect module can trigger, and which were crashing
705 IPython. Thanks to a report by Marco Lombardi
710 IPython. Thanks to a report by Marco Lombardi
706 <mlombard-AT-ma010192.hq.eso.org>.
711 <mlombard-AT-ma010192.hq.eso.org>.
707
712
708 2004-12-13 *** Released version 0.6.6
713 2004-12-13 *** Released version 0.6.6
709
714
710 2004-12-12 Fernando Perez <fperez@colorado.edu>
715 2004-12-12 Fernando Perez <fperez@colorado.edu>
711
716
712 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
717 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
713 generated by pygtk upon initialization if it was built without
718 generated by pygtk upon initialization if it was built without
714 threads (for matplotlib users). After a crash reported by
719 threads (for matplotlib users). After a crash reported by
715 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
720 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
716
721
717 * IPython/ipmaker.py (make_IPython): fix small bug in the
722 * IPython/ipmaker.py (make_IPython): fix small bug in the
718 import_some parameter for multiple imports.
723 import_some parameter for multiple imports.
719
724
720 * IPython/iplib.py (ipmagic): simplified the interface of
725 * IPython/iplib.py (ipmagic): simplified the interface of
721 ipmagic() to take a single string argument, just as it would be
726 ipmagic() to take a single string argument, just as it would be
722 typed at the IPython cmd line.
727 typed at the IPython cmd line.
723 (ipalias): Added new ipalias() with an interface identical to
728 (ipalias): Added new ipalias() with an interface identical to
724 ipmagic(). This completes exposing a pure python interface to the
729 ipmagic(). This completes exposing a pure python interface to the
725 alias and magic system, which can be used in loops or more complex
730 alias and magic system, which can be used in loops or more complex
726 code where IPython's automatic line mangling is not active.
731 code where IPython's automatic line mangling is not active.
727
732
728 * IPython/genutils.py (timing): changed interface of timing to
733 * IPython/genutils.py (timing): changed interface of timing to
729 simply run code once, which is the most common case. timings()
734 simply run code once, which is the most common case. timings()
730 remains unchanged, for the cases where you want multiple runs.
735 remains unchanged, for the cases where you want multiple runs.
731
736
732 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
737 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
733 bug where Python2.2 crashes with exec'ing code which does not end
738 bug where Python2.2 crashes with exec'ing code which does not end
734 in a single newline. Python 2.3 is OK, so I hadn't noticed this
739 in a single newline. Python 2.3 is OK, so I hadn't noticed this
735 before.
740 before.
736
741
737 2004-12-10 Fernando Perez <fperez@colorado.edu>
742 2004-12-10 Fernando Perez <fperez@colorado.edu>
738
743
739 * IPython/Magic.py (Magic.magic_prun): changed name of option from
744 * IPython/Magic.py (Magic.magic_prun): changed name of option from
740 -t to -T, to accomodate the new -t flag in %run (the %run and
745 -t to -T, to accomodate the new -t flag in %run (the %run and
741 %prun options are kind of intermixed, and it's not easy to change
746 %prun options are kind of intermixed, and it's not easy to change
742 this with the limitations of python's getopt).
747 this with the limitations of python's getopt).
743
748
744 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
749 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
745 the execution of scripts. It's not as fine-tuned as timeit.py,
750 the execution of scripts. It's not as fine-tuned as timeit.py,
746 but it works from inside ipython (and under 2.2, which lacks
751 but it works from inside ipython (and under 2.2, which lacks
747 timeit.py). Optionally a number of runs > 1 can be given for
752 timeit.py). Optionally a number of runs > 1 can be given for
748 timing very short-running code.
753 timing very short-running code.
749
754
750 * IPython/genutils.py (uniq_stable): new routine which returns a
755 * IPython/genutils.py (uniq_stable): new routine which returns a
751 list of unique elements in any iterable, but in stable order of
756 list of unique elements in any iterable, but in stable order of
752 appearance. I needed this for the ultraTB fixes, and it's a handy
757 appearance. I needed this for the ultraTB fixes, and it's a handy
753 utility.
758 utility.
754
759
755 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
760 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
756 dotted names in Verbose exceptions. This had been broken since
761 dotted names in Verbose exceptions. This had been broken since
757 the very start, now x.y will properly be printed in a Verbose
762 the very start, now x.y will properly be printed in a Verbose
758 traceback, instead of x being shown and y appearing always as an
763 traceback, instead of x being shown and y appearing always as an
759 'undefined global'. Getting this to work was a bit tricky,
764 'undefined global'. Getting this to work was a bit tricky,
760 because by default python tokenizers are stateless. Saved by
765 because by default python tokenizers are stateless. Saved by
761 python's ability to easily add a bit of state to an arbitrary
766 python's ability to easily add a bit of state to an arbitrary
762 function (without needing to build a full-blown callable object).
767 function (without needing to build a full-blown callable object).
763
768
764 Also big cleanup of this code, which had horrendous runtime
769 Also big cleanup of this code, which had horrendous runtime
765 lookups of zillions of attributes for colorization. Moved all
770 lookups of zillions of attributes for colorization. Moved all
766 this code into a few templates, which make it cleaner and quicker.
771 this code into a few templates, which make it cleaner and quicker.
767
772
768 Printout quality was also improved for Verbose exceptions: one
773 Printout quality was also improved for Verbose exceptions: one
769 variable per line, and memory addresses are printed (this can be
774 variable per line, and memory addresses are printed (this can be
770 quite handy in nasty debugging situations, which is what Verbose
775 quite handy in nasty debugging situations, which is what Verbose
771 is for).
776 is for).
772
777
773 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
778 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
774 the command line as scripts to be loaded by embedded instances.
779 the command line as scripts to be loaded by embedded instances.
775 Doing so has the potential for an infinite recursion if there are
780 Doing so has the potential for an infinite recursion if there are
776 exceptions thrown in the process. This fixes a strange crash
781 exceptions thrown in the process. This fixes a strange crash
777 reported by Philippe MULLER <muller-AT-irit.fr>.
782 reported by Philippe MULLER <muller-AT-irit.fr>.
778
783
779 2004-12-09 Fernando Perez <fperez@colorado.edu>
784 2004-12-09 Fernando Perez <fperez@colorado.edu>
780
785
781 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
786 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
782 to reflect new names in matplotlib, which now expose the
787 to reflect new names in matplotlib, which now expose the
783 matlab-compatible interface via a pylab module instead of the
788 matlab-compatible interface via a pylab module instead of the
784 'matlab' name. The new code is backwards compatible, so users of
789 'matlab' name. The new code is backwards compatible, so users of
785 all matplotlib versions are OK. Patch by J. Hunter.
790 all matplotlib versions are OK. Patch by J. Hunter.
786
791
787 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
792 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
788 of __init__ docstrings for instances (class docstrings are already
793 of __init__ docstrings for instances (class docstrings are already
789 automatically printed). Instances with customized docstrings
794 automatically printed). Instances with customized docstrings
790 (indep. of the class) are also recognized and all 3 separate
795 (indep. of the class) are also recognized and all 3 separate
791 docstrings are printed (instance, class, constructor). After some
796 docstrings are printed (instance, class, constructor). After some
792 comments/suggestions by J. Hunter.
797 comments/suggestions by J. Hunter.
793
798
794 2004-12-05 Fernando Perez <fperez@colorado.edu>
799 2004-12-05 Fernando Perez <fperez@colorado.edu>
795
800
796 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
801 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
797 warnings when tab-completion fails and triggers an exception.
802 warnings when tab-completion fails and triggers an exception.
798
803
799 2004-12-03 Fernando Perez <fperez@colorado.edu>
804 2004-12-03 Fernando Perez <fperez@colorado.edu>
800
805
801 * IPython/Magic.py (magic_prun): Fix bug where an exception would
806 * IPython/Magic.py (magic_prun): Fix bug where an exception would
802 be triggered when using 'run -p'. An incorrect option flag was
807 be triggered when using 'run -p'. An incorrect option flag was
803 being set ('d' instead of 'D').
808 being set ('d' instead of 'D').
804 (manpage): fix missing escaped \- sign.
809 (manpage): fix missing escaped \- sign.
805
810
806 2004-11-30 *** Released version 0.6.5
811 2004-11-30 *** Released version 0.6.5
807
812
808 2004-11-30 Fernando Perez <fperez@colorado.edu>
813 2004-11-30 Fernando Perez <fperez@colorado.edu>
809
814
810 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
815 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
811 setting with -d option.
816 setting with -d option.
812
817
813 * setup.py (docfiles): Fix problem where the doc glob I was using
818 * setup.py (docfiles): Fix problem where the doc glob I was using
814 was COMPLETELY BROKEN. It was giving the right files by pure
819 was COMPLETELY BROKEN. It was giving the right files by pure
815 accident, but failed once I tried to include ipython.el. Note:
820 accident, but failed once I tried to include ipython.el. Note:
816 glob() does NOT allow you to do exclusion on multiple endings!
821 glob() does NOT allow you to do exclusion on multiple endings!
817
822
818 2004-11-29 Fernando Perez <fperez@colorado.edu>
823 2004-11-29 Fernando Perez <fperez@colorado.edu>
819
824
820 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
825 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
821 the manpage as the source. Better formatting & consistency.
826 the manpage as the source. Better formatting & consistency.
822
827
823 * IPython/Magic.py (magic_run): Added new -d option, to run
828 * IPython/Magic.py (magic_run): Added new -d option, to run
824 scripts under the control of the python pdb debugger. Note that
829 scripts under the control of the python pdb debugger. Note that
825 this required changing the %prun option -d to -D, to avoid a clash
830 this required changing the %prun option -d to -D, to avoid a clash
826 (since %run must pass options to %prun, and getopt is too dumb to
831 (since %run must pass options to %prun, and getopt is too dumb to
827 handle options with string values with embedded spaces). Thanks
832 handle options with string values with embedded spaces). Thanks
828 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
833 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
829 (magic_who_ls): added type matching to %who and %whos, so that one
834 (magic_who_ls): added type matching to %who and %whos, so that one
830 can filter their output to only include variables of certain
835 can filter their output to only include variables of certain
831 types. Another suggestion by Matthew.
836 types. Another suggestion by Matthew.
832 (magic_whos): Added memory summaries in kb and Mb for arrays.
837 (magic_whos): Added memory summaries in kb and Mb for arrays.
833 (magic_who): Improve formatting (break lines every 9 vars).
838 (magic_who): Improve formatting (break lines every 9 vars).
834
839
835 2004-11-28 Fernando Perez <fperez@colorado.edu>
840 2004-11-28 Fernando Perez <fperez@colorado.edu>
836
841
837 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
842 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
838 cache when empty lines were present.
843 cache when empty lines were present.
839
844
840 2004-11-24 Fernando Perez <fperez@colorado.edu>
845 2004-11-24 Fernando Perez <fperez@colorado.edu>
841
846
842 * IPython/usage.py (__doc__): document the re-activated threading
847 * IPython/usage.py (__doc__): document the re-activated threading
843 options for WX and GTK.
848 options for WX and GTK.
844
849
845 2004-11-23 Fernando Perez <fperez@colorado.edu>
850 2004-11-23 Fernando Perez <fperez@colorado.edu>
846
851
847 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
852 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
848 the -wthread and -gthread options, along with a new -tk one to try
853 the -wthread and -gthread options, along with a new -tk one to try
849 and coordinate Tk threading with wx/gtk. The tk support is very
854 and coordinate Tk threading with wx/gtk. The tk support is very
850 platform dependent, since it seems to require Tcl and Tk to be
855 platform dependent, since it seems to require Tcl and Tk to be
851 built with threads (Fedora1/2 appears NOT to have it, but in
856 built with threads (Fedora1/2 appears NOT to have it, but in
852 Prabhu's Debian boxes it works OK). But even with some Tk
857 Prabhu's Debian boxes it works OK). But even with some Tk
853 limitations, this is a great improvement.
858 limitations, this is a great improvement.
854
859
855 * IPython/Prompts.py (prompt_specials_color): Added \t for time
860 * IPython/Prompts.py (prompt_specials_color): Added \t for time
856 info in user prompts. Patch by Prabhu.
861 info in user prompts. Patch by Prabhu.
857
862
858 2004-11-18 Fernando Perez <fperez@colorado.edu>
863 2004-11-18 Fernando Perez <fperez@colorado.edu>
859
864
860 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
865 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
861 EOFErrors and bail, to avoid infinite loops if a non-terminating
866 EOFErrors and bail, to avoid infinite loops if a non-terminating
862 file is fed into ipython. Patch submitted in issue 19 by user,
867 file is fed into ipython. Patch submitted in issue 19 by user,
863 many thanks.
868 many thanks.
864
869
865 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
870 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
866 autoquote/parens in continuation prompts, which can cause lots of
871 autoquote/parens in continuation prompts, which can cause lots of
867 problems. Closes roundup issue 20.
872 problems. Closes roundup issue 20.
868
873
869 2004-11-17 Fernando Perez <fperez@colorado.edu>
874 2004-11-17 Fernando Perez <fperez@colorado.edu>
870
875
871 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
876 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
872 reported as debian bug #280505. I'm not sure my local changelog
877 reported as debian bug #280505. I'm not sure my local changelog
873 entry has the proper debian format (Jack?).
878 entry has the proper debian format (Jack?).
874
879
875 2004-11-08 *** Released version 0.6.4
880 2004-11-08 *** Released version 0.6.4
876
881
877 2004-11-08 Fernando Perez <fperez@colorado.edu>
882 2004-11-08 Fernando Perez <fperez@colorado.edu>
878
883
879 * IPython/iplib.py (init_readline): Fix exit message for Windows
884 * IPython/iplib.py (init_readline): Fix exit message for Windows
880 when readline is active. Thanks to a report by Eric Jones
885 when readline is active. Thanks to a report by Eric Jones
881 <eric-AT-enthought.com>.
886 <eric-AT-enthought.com>.
882
887
883 2004-11-07 Fernando Perez <fperez@colorado.edu>
888 2004-11-07 Fernando Perez <fperez@colorado.edu>
884
889
885 * IPython/genutils.py (page): Add a trap for OSError exceptions,
890 * IPython/genutils.py (page): Add a trap for OSError exceptions,
886 sometimes seen by win2k/cygwin users.
891 sometimes seen by win2k/cygwin users.
887
892
888 2004-11-06 Fernando Perez <fperez@colorado.edu>
893 2004-11-06 Fernando Perez <fperez@colorado.edu>
889
894
890 * IPython/iplib.py (interact): Change the handling of %Exit from
895 * IPython/iplib.py (interact): Change the handling of %Exit from
891 trying to propagate a SystemExit to an internal ipython flag.
896 trying to propagate a SystemExit to an internal ipython flag.
892 This is less elegant than using Python's exception mechanism, but
897 This is less elegant than using Python's exception mechanism, but
893 I can't get that to work reliably with threads, so under -pylab
898 I can't get that to work reliably with threads, so under -pylab
894 %Exit was hanging IPython. Cross-thread exception handling is
899 %Exit was hanging IPython. Cross-thread exception handling is
895 really a bitch. Thaks to a bug report by Stephen Walton
900 really a bitch. Thaks to a bug report by Stephen Walton
896 <stephen.walton-AT-csun.edu>.
901 <stephen.walton-AT-csun.edu>.
897
902
898 2004-11-04 Fernando Perez <fperez@colorado.edu>
903 2004-11-04 Fernando Perez <fperez@colorado.edu>
899
904
900 * IPython/iplib.py (raw_input_original): store a pointer to the
905 * IPython/iplib.py (raw_input_original): store a pointer to the
901 true raw_input to harden against code which can modify it
906 true raw_input to harden against code which can modify it
902 (wx.py.PyShell does this and would otherwise crash ipython).
907 (wx.py.PyShell does this and would otherwise crash ipython).
903 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
908 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
904
909
905 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
910 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
906 Ctrl-C problem, which does not mess up the input line.
911 Ctrl-C problem, which does not mess up the input line.
907
912
908 2004-11-03 Fernando Perez <fperez@colorado.edu>
913 2004-11-03 Fernando Perez <fperez@colorado.edu>
909
914
910 * IPython/Release.py: Changed licensing to BSD, in all files.
915 * IPython/Release.py: Changed licensing to BSD, in all files.
911 (name): lowercase name for tarball/RPM release.
916 (name): lowercase name for tarball/RPM release.
912
917
913 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
918 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
914 use throughout ipython.
919 use throughout ipython.
915
920
916 * IPython/Magic.py (Magic._ofind): Switch to using the new
921 * IPython/Magic.py (Magic._ofind): Switch to using the new
917 OInspect.getdoc() function.
922 OInspect.getdoc() function.
918
923
919 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
924 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
920 of the line currently being canceled via Ctrl-C. It's extremely
925 of the line currently being canceled via Ctrl-C. It's extremely
921 ugly, but I don't know how to do it better (the problem is one of
926 ugly, but I don't know how to do it better (the problem is one of
922 handling cross-thread exceptions).
927 handling cross-thread exceptions).
923
928
924 2004-10-28 Fernando Perez <fperez@colorado.edu>
929 2004-10-28 Fernando Perez <fperez@colorado.edu>
925
930
926 * IPython/Shell.py (signal_handler): add signal handlers to trap
931 * IPython/Shell.py (signal_handler): add signal handlers to trap
927 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
932 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
928 report by Francesc Alted.
933 report by Francesc Alted.
929
934
930 2004-10-21 Fernando Perez <fperez@colorado.edu>
935 2004-10-21 Fernando Perez <fperez@colorado.edu>
931
936
932 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
937 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
933 to % for pysh syntax extensions.
938 to % for pysh syntax extensions.
934
939
935 2004-10-09 Fernando Perez <fperez@colorado.edu>
940 2004-10-09 Fernando Perez <fperez@colorado.edu>
936
941
937 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
942 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
938 arrays to print a more useful summary, without calling str(arr).
943 arrays to print a more useful summary, without calling str(arr).
939 This avoids the problem of extremely lengthy computations which
944 This avoids the problem of extremely lengthy computations which
940 occur if arr is large, and appear to the user as a system lockup
945 occur if arr is large, and appear to the user as a system lockup
941 with 100% cpu activity. After a suggestion by Kristian Sandberg
946 with 100% cpu activity. After a suggestion by Kristian Sandberg
942 <Kristian.Sandberg@colorado.edu>.
947 <Kristian.Sandberg@colorado.edu>.
943 (Magic.__init__): fix bug in global magic escapes not being
948 (Magic.__init__): fix bug in global magic escapes not being
944 correctly set.
949 correctly set.
945
950
946 2004-10-08 Fernando Perez <fperez@colorado.edu>
951 2004-10-08 Fernando Perez <fperez@colorado.edu>
947
952
948 * IPython/Magic.py (__license__): change to absolute imports of
953 * IPython/Magic.py (__license__): change to absolute imports of
949 ipython's own internal packages, to start adapting to the absolute
954 ipython's own internal packages, to start adapting to the absolute
950 import requirement of PEP-328.
955 import requirement of PEP-328.
951
956
952 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
957 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
953 files, and standardize author/license marks through the Release
958 files, and standardize author/license marks through the Release
954 module instead of having per/file stuff (except for files with
959 module instead of having per/file stuff (except for files with
955 particular licenses, like the MIT/PSF-licensed codes).
960 particular licenses, like the MIT/PSF-licensed codes).
956
961
957 * IPython/Debugger.py: remove dead code for python 2.1
962 * IPython/Debugger.py: remove dead code for python 2.1
958
963
959 2004-10-04 Fernando Perez <fperez@colorado.edu>
964 2004-10-04 Fernando Perez <fperez@colorado.edu>
960
965
961 * IPython/iplib.py (ipmagic): New function for accessing magics
966 * IPython/iplib.py (ipmagic): New function for accessing magics
962 via a normal python function call.
967 via a normal python function call.
963
968
964 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
969 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
965 from '@' to '%', to accomodate the new @decorator syntax of python
970 from '@' to '%', to accomodate the new @decorator syntax of python
966 2.4.
971 2.4.
967
972
968 2004-09-29 Fernando Perez <fperez@colorado.edu>
973 2004-09-29 Fernando Perez <fperez@colorado.edu>
969
974
970 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
975 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
971 matplotlib.use to prevent running scripts which try to switch
976 matplotlib.use to prevent running scripts which try to switch
972 interactive backends from within ipython. This will just crash
977 interactive backends from within ipython. This will just crash
973 the python interpreter, so we can't allow it (but a detailed error
978 the python interpreter, so we can't allow it (but a detailed error
974 is given to the user).
979 is given to the user).
975
980
976 2004-09-28 Fernando Perez <fperez@colorado.edu>
981 2004-09-28 Fernando Perez <fperez@colorado.edu>
977
982
978 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
983 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
979 matplotlib-related fixes so that using @run with non-matplotlib
984 matplotlib-related fixes so that using @run with non-matplotlib
980 scripts doesn't pop up spurious plot windows. This requires
985 scripts doesn't pop up spurious plot windows. This requires
981 matplotlib >= 0.63, where I had to make some changes as well.
986 matplotlib >= 0.63, where I had to make some changes as well.
982
987
983 * IPython/ipmaker.py (make_IPython): update version requirement to
988 * IPython/ipmaker.py (make_IPython): update version requirement to
984 python 2.2.
989 python 2.2.
985
990
986 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
991 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
987 banner arg for embedded customization.
992 banner arg for embedded customization.
988
993
989 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
994 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
990 explicit uses of __IP as the IPython's instance name. Now things
995 explicit uses of __IP as the IPython's instance name. Now things
991 are properly handled via the shell.name value. The actual code
996 are properly handled via the shell.name value. The actual code
992 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
997 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
993 is much better than before. I'll clean things completely when the
998 is much better than before. I'll clean things completely when the
994 magic stuff gets a real overhaul.
999 magic stuff gets a real overhaul.
995
1000
996 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
1001 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
997 minor changes to debian dir.
1002 minor changes to debian dir.
998
1003
999 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1004 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
1000 pointer to the shell itself in the interactive namespace even when
1005 pointer to the shell itself in the interactive namespace even when
1001 a user-supplied dict is provided. This is needed for embedding
1006 a user-supplied dict is provided. This is needed for embedding
1002 purposes (found by tests with Michel Sanner).
1007 purposes (found by tests with Michel Sanner).
1003
1008
1004 2004-09-27 Fernando Perez <fperez@colorado.edu>
1009 2004-09-27 Fernando Perez <fperez@colorado.edu>
1005
1010
1006 * IPython/UserConfig/ipythonrc: remove []{} from
1011 * IPython/UserConfig/ipythonrc: remove []{} from
1007 readline_remove_delims, so that things like [modname.<TAB> do
1012 readline_remove_delims, so that things like [modname.<TAB> do
1008 proper completion. This disables [].TAB, but that's a less common
1013 proper completion. This disables [].TAB, but that's a less common
1009 case than module names in list comprehensions, for example.
1014 case than module names in list comprehensions, for example.
1010 Thanks to a report by Andrea Riciputi.
1015 Thanks to a report by Andrea Riciputi.
1011
1016
1012 2004-09-09 Fernando Perez <fperez@colorado.edu>
1017 2004-09-09 Fernando Perez <fperez@colorado.edu>
1013
1018
1014 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1019 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
1015 blocking problems in win32 and osx. Fix by John.
1020 blocking problems in win32 and osx. Fix by John.
1016
1021
1017 2004-09-08 Fernando Perez <fperez@colorado.edu>
1022 2004-09-08 Fernando Perez <fperez@colorado.edu>
1018
1023
1019 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1024 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
1020 for Win32 and OSX. Fix by John Hunter.
1025 for Win32 and OSX. Fix by John Hunter.
1021
1026
1022 2004-08-30 *** Released version 0.6.3
1027 2004-08-30 *** Released version 0.6.3
1023
1028
1024 2004-08-30 Fernando Perez <fperez@colorado.edu>
1029 2004-08-30 Fernando Perez <fperez@colorado.edu>
1025
1030
1026 * setup.py (isfile): Add manpages to list of dependent files to be
1031 * setup.py (isfile): Add manpages to list of dependent files to be
1027 updated.
1032 updated.
1028
1033
1029 2004-08-27 Fernando Perez <fperez@colorado.edu>
1034 2004-08-27 Fernando Perez <fperez@colorado.edu>
1030
1035
1031 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1036 * IPython/Shell.py (start): I've disabled -wthread and -gthread
1032 for now. They don't really work with standalone WX/GTK code
1037 for now. They don't really work with standalone WX/GTK code
1033 (though matplotlib IS working fine with both of those backends).
1038 (though matplotlib IS working fine with both of those backends).
1034 This will neeed much more testing. I disabled most things with
1039 This will neeed much more testing. I disabled most things with
1035 comments, so turning it back on later should be pretty easy.
1040 comments, so turning it back on later should be pretty easy.
1036
1041
1037 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1042 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
1038 autocalling of expressions like r'foo', by modifying the line
1043 autocalling of expressions like r'foo', by modifying the line
1039 split regexp. Closes
1044 split regexp. Closes
1040 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1045 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
1041 Riley <ipythonbugs-AT-sabi.net>.
1046 Riley <ipythonbugs-AT-sabi.net>.
1042 (InteractiveShell.mainloop): honor --nobanner with banner
1047 (InteractiveShell.mainloop): honor --nobanner with banner
1043 extensions.
1048 extensions.
1044
1049
1045 * IPython/Shell.py: Significant refactoring of all classes, so
1050 * IPython/Shell.py: Significant refactoring of all classes, so
1046 that we can really support ALL matplotlib backends and threading
1051 that we can really support ALL matplotlib backends and threading
1047 models (John spotted a bug with Tk which required this). Now we
1052 models (John spotted a bug with Tk which required this). Now we
1048 should support single-threaded, WX-threads and GTK-threads, both
1053 should support single-threaded, WX-threads and GTK-threads, both
1049 for generic code and for matplotlib.
1054 for generic code and for matplotlib.
1050
1055
1051 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1056 * IPython/ipmaker.py (__call__): Changed -mpthread option to
1052 -pylab, to simplify things for users. Will also remove the pylab
1057 -pylab, to simplify things for users. Will also remove the pylab
1053 profile, since now all of matplotlib configuration is directly
1058 profile, since now all of matplotlib configuration is directly
1054 handled here. This also reduces startup time.
1059 handled here. This also reduces startup time.
1055
1060
1056 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1061 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
1057 shell wasn't being correctly called. Also in IPShellWX.
1062 shell wasn't being correctly called. Also in IPShellWX.
1058
1063
1059 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1064 * IPython/iplib.py (InteractiveShell.__init__): Added option to
1060 fine-tune banner.
1065 fine-tune banner.
1061
1066
1062 * IPython/numutils.py (spike): Deprecate these spike functions,
1067 * IPython/numutils.py (spike): Deprecate these spike functions,
1063 delete (long deprecated) gnuplot_exec handler.
1068 delete (long deprecated) gnuplot_exec handler.
1064
1069
1065 2004-08-26 Fernando Perez <fperez@colorado.edu>
1070 2004-08-26 Fernando Perez <fperez@colorado.edu>
1066
1071
1067 * ipython.1: Update for threading options, plus some others which
1072 * ipython.1: Update for threading options, plus some others which
1068 were missing.
1073 were missing.
1069
1074
1070 * IPython/ipmaker.py (__call__): Added -wthread option for
1075 * IPython/ipmaker.py (__call__): Added -wthread option for
1071 wxpython thread handling. Make sure threading options are only
1076 wxpython thread handling. Make sure threading options are only
1072 valid at the command line.
1077 valid at the command line.
1073
1078
1074 * scripts/ipython: moved shell selection into a factory function
1079 * scripts/ipython: moved shell selection into a factory function
1075 in Shell.py, to keep the starter script to a minimum.
1080 in Shell.py, to keep the starter script to a minimum.
1076
1081
1077 2004-08-25 Fernando Perez <fperez@colorado.edu>
1082 2004-08-25 Fernando Perez <fperez@colorado.edu>
1078
1083
1079 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1084 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
1080 John. Along with some recent changes he made to matplotlib, the
1085 John. Along with some recent changes he made to matplotlib, the
1081 next versions of both systems should work very well together.
1086 next versions of both systems should work very well together.
1082
1087
1083 2004-08-24 Fernando Perez <fperez@colorado.edu>
1088 2004-08-24 Fernando Perez <fperez@colorado.edu>
1084
1089
1085 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1090 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
1086 tried to switch the profiling to using hotshot, but I'm getting
1091 tried to switch the profiling to using hotshot, but I'm getting
1087 strange errors from prof.runctx() there. I may be misreading the
1092 strange errors from prof.runctx() there. I may be misreading the
1088 docs, but it looks weird. For now the profiling code will
1093 docs, but it looks weird. For now the profiling code will
1089 continue to use the standard profiler.
1094 continue to use the standard profiler.
1090
1095
1091 2004-08-23 Fernando Perez <fperez@colorado.edu>
1096 2004-08-23 Fernando Perez <fperez@colorado.edu>
1092
1097
1093 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1098 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
1094 threaded shell, by John Hunter. It's not quite ready yet, but
1099 threaded shell, by John Hunter. It's not quite ready yet, but
1095 close.
1100 close.
1096
1101
1097 2004-08-22 Fernando Perez <fperez@colorado.edu>
1102 2004-08-22 Fernando Perez <fperez@colorado.edu>
1098
1103
1099 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1104 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
1100 in Magic and ultraTB.
1105 in Magic and ultraTB.
1101
1106
1102 * ipython.1: document threading options in manpage.
1107 * ipython.1: document threading options in manpage.
1103
1108
1104 * scripts/ipython: Changed name of -thread option to -gthread,
1109 * scripts/ipython: Changed name of -thread option to -gthread,
1105 since this is GTK specific. I want to leave the door open for a
1110 since this is GTK specific. I want to leave the door open for a
1106 -wthread option for WX, which will most likely be necessary. This
1111 -wthread option for WX, which will most likely be necessary. This
1107 change affects usage and ipmaker as well.
1112 change affects usage and ipmaker as well.
1108
1113
1109 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1114 * IPython/Shell.py (matplotlib_shell): Add a factory function to
1110 handle the matplotlib shell issues. Code by John Hunter
1115 handle the matplotlib shell issues. Code by John Hunter
1111 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1116 <jdhunter-AT-nitace.bsd.uchicago.edu>.
1112 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1117 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
1113 broken (and disabled for end users) for now, but it puts the
1118 broken (and disabled for end users) for now, but it puts the
1114 infrastructure in place.
1119 infrastructure in place.
1115
1120
1116 2004-08-21 Fernando Perez <fperez@colorado.edu>
1121 2004-08-21 Fernando Perez <fperez@colorado.edu>
1117
1122
1118 * ipythonrc-pylab: Add matplotlib support.
1123 * ipythonrc-pylab: Add matplotlib support.
1119
1124
1120 * matplotlib_config.py: new files for matplotlib support, part of
1125 * matplotlib_config.py: new files for matplotlib support, part of
1121 the pylab profile.
1126 the pylab profile.
1122
1127
1123 * IPython/usage.py (__doc__): documented the threading options.
1128 * IPython/usage.py (__doc__): documented the threading options.
1124
1129
1125 2004-08-20 Fernando Perez <fperez@colorado.edu>
1130 2004-08-20 Fernando Perez <fperez@colorado.edu>
1126
1131
1127 * ipython: Modified the main calling routine to handle the -thread
1132 * ipython: Modified the main calling routine to handle the -thread
1128 and -mpthread options. This needs to be done as a top-level hack,
1133 and -mpthread options. This needs to be done as a top-level hack,
1129 because it determines which class to instantiate for IPython
1134 because it determines which class to instantiate for IPython
1130 itself.
1135 itself.
1131
1136
1132 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1137 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
1133 classes to support multithreaded GTK operation without blocking,
1138 classes to support multithreaded GTK operation without blocking,
1134 and matplotlib with all backends. This is a lot of still very
1139 and matplotlib with all backends. This is a lot of still very
1135 experimental code, and threads are tricky. So it may still have a
1140 experimental code, and threads are tricky. So it may still have a
1136 few rough edges... This code owes a lot to
1141 few rough edges... This code owes a lot to
1137 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1142 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
1138 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1143 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
1139 to John Hunter for all the matplotlib work.
1144 to John Hunter for all the matplotlib work.
1140
1145
1141 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1146 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
1142 options for gtk thread and matplotlib support.
1147 options for gtk thread and matplotlib support.
1143
1148
1144 2004-08-16 Fernando Perez <fperez@colorado.edu>
1149 2004-08-16 Fernando Perez <fperez@colorado.edu>
1145
1150
1146 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1151 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
1147 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1152 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
1148 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1153 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
1149
1154
1150 2004-08-11 Fernando Perez <fperez@colorado.edu>
1155 2004-08-11 Fernando Perez <fperez@colorado.edu>
1151
1156
1152 * setup.py (isfile): Fix build so documentation gets updated for
1157 * setup.py (isfile): Fix build so documentation gets updated for
1153 rpms (it was only done for .tgz builds).
1158 rpms (it was only done for .tgz builds).
1154
1159
1155 2004-08-10 Fernando Perez <fperez@colorado.edu>
1160 2004-08-10 Fernando Perez <fperez@colorado.edu>
1156
1161
1157 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1162 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
1158
1163
1159 * iplib.py : Silence syntax error exceptions in tab-completion.
1164 * iplib.py : Silence syntax error exceptions in tab-completion.
1160
1165
1161 2004-08-05 Fernando Perez <fperez@colorado.edu>
1166 2004-08-05 Fernando Perez <fperez@colorado.edu>
1162
1167
1163 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1168 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
1164 'color off' mark for continuation prompts. This was causing long
1169 'color off' mark for continuation prompts. This was causing long
1165 continuation lines to mis-wrap.
1170 continuation lines to mis-wrap.
1166
1171
1167 2004-08-01 Fernando Perez <fperez@colorado.edu>
1172 2004-08-01 Fernando Perez <fperez@colorado.edu>
1168
1173
1169 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1174 * IPython/ipmaker.py (make_IPython): Allow the shell class used
1170 for building ipython to be a parameter. All this is necessary
1175 for building ipython to be a parameter. All this is necessary
1171 right now to have a multithreaded version, but this insane
1176 right now to have a multithreaded version, but this insane
1172 non-design will be cleaned up soon. For now, it's a hack that
1177 non-design will be cleaned up soon. For now, it's a hack that
1173 works.
1178 works.
1174
1179
1175 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1180 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
1176 args in various places. No bugs so far, but it's a dangerous
1181 args in various places. No bugs so far, but it's a dangerous
1177 practice.
1182 practice.
1178
1183
1179 2004-07-31 Fernando Perez <fperez@colorado.edu>
1184 2004-07-31 Fernando Perez <fperez@colorado.edu>
1180
1185
1181 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1186 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
1182 fix completion of files with dots in their names under most
1187 fix completion of files with dots in their names under most
1183 profiles (pysh was OK because the completion order is different).
1188 profiles (pysh was OK because the completion order is different).
1184
1189
1185 2004-07-27 Fernando Perez <fperez@colorado.edu>
1190 2004-07-27 Fernando Perez <fperez@colorado.edu>
1186
1191
1187 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1192 * IPython/iplib.py (InteractiveShell.__init__): build dict of
1188 keywords manually, b/c the one in keyword.py was removed in python
1193 keywords manually, b/c the one in keyword.py was removed in python
1189 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1194 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
1190 This is NOT a bug under python 2.3 and earlier.
1195 This is NOT a bug under python 2.3 and earlier.
1191
1196
1192 2004-07-26 Fernando Perez <fperez@colorado.edu>
1197 2004-07-26 Fernando Perez <fperez@colorado.edu>
1193
1198
1194 * IPython/ultraTB.py (VerboseTB.text): Add another
1199 * IPython/ultraTB.py (VerboseTB.text): Add another
1195 linecache.checkcache() call to try to prevent inspect.py from
1200 linecache.checkcache() call to try to prevent inspect.py from
1196 crashing under python 2.3. I think this fixes
1201 crashing under python 2.3. I think this fixes
1197 http://www.scipy.net/roundup/ipython/issue17.
1202 http://www.scipy.net/roundup/ipython/issue17.
1198
1203
1199 2004-07-26 *** Released version 0.6.2
1204 2004-07-26 *** Released version 0.6.2
1200
1205
1201 2004-07-26 Fernando Perez <fperez@colorado.edu>
1206 2004-07-26 Fernando Perez <fperez@colorado.edu>
1202
1207
1203 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1208 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
1204 fail for any number.
1209 fail for any number.
1205 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1210 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
1206 empty bookmarks.
1211 empty bookmarks.
1207
1212
1208 2004-07-26 *** Released version 0.6.1
1213 2004-07-26 *** Released version 0.6.1
1209
1214
1210 2004-07-26 Fernando Perez <fperez@colorado.edu>
1215 2004-07-26 Fernando Perez <fperez@colorado.edu>
1211
1216
1212 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1217 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
1213
1218
1214 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1219 * IPython/iplib.py (protect_filename): Applied Ville's patch for
1215 escaping '()[]{}' in filenames.
1220 escaping '()[]{}' in filenames.
1216
1221
1217 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1222 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
1218 Python 2.2 users who lack a proper shlex.split.
1223 Python 2.2 users who lack a proper shlex.split.
1219
1224
1220 2004-07-19 Fernando Perez <fperez@colorado.edu>
1225 2004-07-19 Fernando Perez <fperez@colorado.edu>
1221
1226
1222 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1227 * IPython/iplib.py (InteractiveShell.init_readline): Add support
1223 for reading readline's init file. I follow the normal chain:
1228 for reading readline's init file. I follow the normal chain:
1224 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1229 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
1225 report by Mike Heeter. This closes
1230 report by Mike Heeter. This closes
1226 http://www.scipy.net/roundup/ipython/issue16.
1231 http://www.scipy.net/roundup/ipython/issue16.
1227
1232
1228 2004-07-18 Fernando Perez <fperez@colorado.edu>
1233 2004-07-18 Fernando Perez <fperez@colorado.edu>
1229
1234
1230 * IPython/iplib.py (__init__): Add better handling of '\' under
1235 * IPython/iplib.py (__init__): Add better handling of '\' under
1231 Win32 for filenames. After a patch by Ville.
1236 Win32 for filenames. After a patch by Ville.
1232
1237
1233 2004-07-17 Fernando Perez <fperez@colorado.edu>
1238 2004-07-17 Fernando Perez <fperez@colorado.edu>
1234
1239
1235 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1240 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1236 autocalling would be triggered for 'foo is bar' if foo is
1241 autocalling would be triggered for 'foo is bar' if foo is
1237 callable. I also cleaned up the autocall detection code to use a
1242 callable. I also cleaned up the autocall detection code to use a
1238 regexp, which is faster. Bug reported by Alexander Schmolck.
1243 regexp, which is faster. Bug reported by Alexander Schmolck.
1239
1244
1240 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1245 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
1241 '?' in them would confuse the help system. Reported by Alex
1246 '?' in them would confuse the help system. Reported by Alex
1242 Schmolck.
1247 Schmolck.
1243
1248
1244 2004-07-16 Fernando Perez <fperez@colorado.edu>
1249 2004-07-16 Fernando Perez <fperez@colorado.edu>
1245
1250
1246 * IPython/GnuplotInteractive.py (__all__): added plot2.
1251 * IPython/GnuplotInteractive.py (__all__): added plot2.
1247
1252
1248 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1253 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
1249 plotting dictionaries, lists or tuples of 1d arrays.
1254 plotting dictionaries, lists or tuples of 1d arrays.
1250
1255
1251 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1256 * IPython/Magic.py (Magic.magic_hist): small clenaups and
1252 optimizations.
1257 optimizations.
1253
1258
1254 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1259 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
1255 the information which was there from Janko's original IPP code:
1260 the information which was there from Janko's original IPP code:
1256
1261
1257 03.05.99 20:53 porto.ifm.uni-kiel.de
1262 03.05.99 20:53 porto.ifm.uni-kiel.de
1258 --Started changelog.
1263 --Started changelog.
1259 --make clear do what it say it does
1264 --make clear do what it say it does
1260 --added pretty output of lines from inputcache
1265 --added pretty output of lines from inputcache
1261 --Made Logger a mixin class, simplifies handling of switches
1266 --Made Logger a mixin class, simplifies handling of switches
1262 --Added own completer class. .string<TAB> expands to last history
1267 --Added own completer class. .string<TAB> expands to last history
1263 line which starts with string. The new expansion is also present
1268 line which starts with string. The new expansion is also present
1264 with Ctrl-r from the readline library. But this shows, who this
1269 with Ctrl-r from the readline library. But this shows, who this
1265 can be done for other cases.
1270 can be done for other cases.
1266 --Added convention that all shell functions should accept a
1271 --Added convention that all shell functions should accept a
1267 parameter_string This opens the door for different behaviour for
1272 parameter_string This opens the door for different behaviour for
1268 each function. @cd is a good example of this.
1273 each function. @cd is a good example of this.
1269
1274
1270 04.05.99 12:12 porto.ifm.uni-kiel.de
1275 04.05.99 12:12 porto.ifm.uni-kiel.de
1271 --added logfile rotation
1276 --added logfile rotation
1272 --added new mainloop method which freezes first the namespace
1277 --added new mainloop method which freezes first the namespace
1273
1278
1274 07.05.99 21:24 porto.ifm.uni-kiel.de
1279 07.05.99 21:24 porto.ifm.uni-kiel.de
1275 --added the docreader classes. Now there is a help system.
1280 --added the docreader classes. Now there is a help system.
1276 -This is only a first try. Currently it's not easy to put new
1281 -This is only a first try. Currently it's not easy to put new
1277 stuff in the indices. But this is the way to go. Info would be
1282 stuff in the indices. But this is the way to go. Info would be
1278 better, but HTML is every where and not everybody has an info
1283 better, but HTML is every where and not everybody has an info
1279 system installed and it's not so easy to change html-docs to info.
1284 system installed and it's not so easy to change html-docs to info.
1280 --added global logfile option
1285 --added global logfile option
1281 --there is now a hook for object inspection method pinfo needs to
1286 --there is now a hook for object inspection method pinfo needs to
1282 be provided for this. Can be reached by two '??'.
1287 be provided for this. Can be reached by two '??'.
1283
1288
1284 08.05.99 20:51 porto.ifm.uni-kiel.de
1289 08.05.99 20:51 porto.ifm.uni-kiel.de
1285 --added a README
1290 --added a README
1286 --bug in rc file. Something has changed so functions in the rc
1291 --bug in rc file. Something has changed so functions in the rc
1287 file need to reference the shell and not self. Not clear if it's a
1292 file need to reference the shell and not self. Not clear if it's a
1288 bug or feature.
1293 bug or feature.
1289 --changed rc file for new behavior
1294 --changed rc file for new behavior
1290
1295
1291 2004-07-15 Fernando Perez <fperez@colorado.edu>
1296 2004-07-15 Fernando Perez <fperez@colorado.edu>
1292
1297
1293 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1298 * IPython/Logger.py (Logger.log): fixed recent bug where the input
1294 cache was falling out of sync in bizarre manners when multi-line
1299 cache was falling out of sync in bizarre manners when multi-line
1295 input was present. Minor optimizations and cleanup.
1300 input was present. Minor optimizations and cleanup.
1296
1301
1297 (Logger): Remove old Changelog info for cleanup. This is the
1302 (Logger): Remove old Changelog info for cleanup. This is the
1298 information which was there from Janko's original code:
1303 information which was there from Janko's original code:
1299
1304
1300 Changes to Logger: - made the default log filename a parameter
1305 Changes to Logger: - made the default log filename a parameter
1301
1306
1302 - put a check for lines beginning with !@? in log(). Needed
1307 - put a check for lines beginning with !@? in log(). Needed
1303 (even if the handlers properly log their lines) for mid-session
1308 (even if the handlers properly log their lines) for mid-session
1304 logging activation to work properly. Without this, lines logged
1309 logging activation to work properly. Without this, lines logged
1305 in mid session, which get read from the cache, would end up
1310 in mid session, which get read from the cache, would end up
1306 'bare' (with !@? in the open) in the log. Now they are caught
1311 'bare' (with !@? in the open) in the log. Now they are caught
1307 and prepended with a #.
1312 and prepended with a #.
1308
1313
1309 * IPython/iplib.py (InteractiveShell.init_readline): added check
1314 * IPython/iplib.py (InteractiveShell.init_readline): added check
1310 in case MagicCompleter fails to be defined, so we don't crash.
1315 in case MagicCompleter fails to be defined, so we don't crash.
1311
1316
1312 2004-07-13 Fernando Perez <fperez@colorado.edu>
1317 2004-07-13 Fernando Perez <fperez@colorado.edu>
1313
1318
1314 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1319 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
1315 of EPS if the requested filename ends in '.eps'.
1320 of EPS if the requested filename ends in '.eps'.
1316
1321
1317 2004-07-04 Fernando Perez <fperez@colorado.edu>
1322 2004-07-04 Fernando Perez <fperez@colorado.edu>
1318
1323
1319 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1324 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
1320 escaping of quotes when calling the shell.
1325 escaping of quotes when calling the shell.
1321
1326
1322 2004-07-02 Fernando Perez <fperez@colorado.edu>
1327 2004-07-02 Fernando Perez <fperez@colorado.edu>
1323
1328
1324 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1329 * IPython/Prompts.py (CachedOutput.update): Fix problem with
1325 gettext not working because we were clobbering '_'. Fixes
1330 gettext not working because we were clobbering '_'. Fixes
1326 http://www.scipy.net/roundup/ipython/issue6.
1331 http://www.scipy.net/roundup/ipython/issue6.
1327
1332
1328 2004-07-01 Fernando Perez <fperez@colorado.edu>
1333 2004-07-01 Fernando Perez <fperez@colorado.edu>
1329
1334
1330 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1335 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
1331 into @cd. Patch by Ville.
1336 into @cd. Patch by Ville.
1332
1337
1333 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1338 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1334 new function to store things after ipmaker runs. Patch by Ville.
1339 new function to store things after ipmaker runs. Patch by Ville.
1335 Eventually this will go away once ipmaker is removed and the class
1340 Eventually this will go away once ipmaker is removed and the class
1336 gets cleaned up, but for now it's ok. Key functionality here is
1341 gets cleaned up, but for now it's ok. Key functionality here is
1337 the addition of the persistent storage mechanism, a dict for
1342 the addition of the persistent storage mechanism, a dict for
1338 keeping data across sessions (for now just bookmarks, but more can
1343 keeping data across sessions (for now just bookmarks, but more can
1339 be implemented later).
1344 be implemented later).
1340
1345
1341 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1346 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
1342 persistent across sections. Patch by Ville, I modified it
1347 persistent across sections. Patch by Ville, I modified it
1343 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1348 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
1344 added a '-l' option to list all bookmarks.
1349 added a '-l' option to list all bookmarks.
1345
1350
1346 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1351 * IPython/iplib.py (InteractiveShell.atexit_operations): new
1347 center for cleanup. Registered with atexit.register(). I moved
1352 center for cleanup. Registered with atexit.register(). I moved
1348 here the old exit_cleanup(). After a patch by Ville.
1353 here the old exit_cleanup(). After a patch by Ville.
1349
1354
1350 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1355 * IPython/Magic.py (get_py_filename): added '~' to the accepted
1351 characters in the hacked shlex_split for python 2.2.
1356 characters in the hacked shlex_split for python 2.2.
1352
1357
1353 * IPython/iplib.py (file_matches): more fixes to filenames with
1358 * IPython/iplib.py (file_matches): more fixes to filenames with
1354 whitespace in them. It's not perfect, but limitations in python's
1359 whitespace in them. It's not perfect, but limitations in python's
1355 readline make it impossible to go further.
1360 readline make it impossible to go further.
1356
1361
1357 2004-06-29 Fernando Perez <fperez@colorado.edu>
1362 2004-06-29 Fernando Perez <fperez@colorado.edu>
1358
1363
1359 * IPython/iplib.py (file_matches): escape whitespace correctly in
1364 * IPython/iplib.py (file_matches): escape whitespace correctly in
1360 filename completions. Bug reported by Ville.
1365 filename completions. Bug reported by Ville.
1361
1366
1362 2004-06-28 Fernando Perez <fperez@colorado.edu>
1367 2004-06-28 Fernando Perez <fperez@colorado.edu>
1363
1368
1364 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1369 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
1365 the history file will be called 'history-PROFNAME' (or just
1370 the history file will be called 'history-PROFNAME' (or just
1366 'history' if no profile is loaded). I was getting annoyed at
1371 'history' if no profile is loaded). I was getting annoyed at
1367 getting my Numerical work history clobbered by pysh sessions.
1372 getting my Numerical work history clobbered by pysh sessions.
1368
1373
1369 * IPython/iplib.py (InteractiveShell.__init__): Internal
1374 * IPython/iplib.py (InteractiveShell.__init__): Internal
1370 getoutputerror() function so that we can honor the system_verbose
1375 getoutputerror() function so that we can honor the system_verbose
1371 flag for _all_ system calls. I also added escaping of #
1376 flag for _all_ system calls. I also added escaping of #
1372 characters here to avoid confusing Itpl.
1377 characters here to avoid confusing Itpl.
1373
1378
1374 * IPython/Magic.py (shlex_split): removed call to shell in
1379 * IPython/Magic.py (shlex_split): removed call to shell in
1375 parse_options and replaced it with shlex.split(). The annoying
1380 parse_options and replaced it with shlex.split(). The annoying
1376 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1381 part was that in Python 2.2, shlex.split() doesn't exist, so I had
1377 to backport it from 2.3, with several frail hacks (the shlex
1382 to backport it from 2.3, with several frail hacks (the shlex
1378 module is rather limited in 2.2). Thanks to a suggestion by Ville
1383 module is rather limited in 2.2). Thanks to a suggestion by Ville
1379 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1384 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
1380 problem.
1385 problem.
1381
1386
1382 (Magic.magic_system_verbose): new toggle to print the actual
1387 (Magic.magic_system_verbose): new toggle to print the actual
1383 system calls made by ipython. Mainly for debugging purposes.
1388 system calls made by ipython. Mainly for debugging purposes.
1384
1389
1385 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1390 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
1386 doesn't support persistence. Reported (and fix suggested) by
1391 doesn't support persistence. Reported (and fix suggested) by
1387 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1392 Travis Caldwell <travis_caldwell2000@yahoo.com>.
1388
1393
1389 2004-06-26 Fernando Perez <fperez@colorado.edu>
1394 2004-06-26 Fernando Perez <fperez@colorado.edu>
1390
1395
1391 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1396 * IPython/Logger.py (Logger.log): fix to handle correctly empty
1392 continue prompts.
1397 continue prompts.
1393
1398
1394 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1399 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
1395 function (basically a big docstring) and a few more things here to
1400 function (basically a big docstring) and a few more things here to
1396 speedup startup. pysh.py is now very lightweight. We want because
1401 speedup startup. pysh.py is now very lightweight. We want because
1397 it gets execfile'd, while InterpreterExec gets imported, so
1402 it gets execfile'd, while InterpreterExec gets imported, so
1398 byte-compilation saves time.
1403 byte-compilation saves time.
1399
1404
1400 2004-06-25 Fernando Perez <fperez@colorado.edu>
1405 2004-06-25 Fernando Perez <fperez@colorado.edu>
1401
1406
1402 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1407 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
1403 -NUM', which was recently broken.
1408 -NUM', which was recently broken.
1404
1409
1405 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1410 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
1406 in multi-line input (but not !!, which doesn't make sense there).
1411 in multi-line input (but not !!, which doesn't make sense there).
1407
1412
1408 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1413 * IPython/UserConfig/ipythonrc: made autoindent on by default.
1409 It's just too useful, and people can turn it off in the less
1414 It's just too useful, and people can turn it off in the less
1410 common cases where it's a problem.
1415 common cases where it's a problem.
1411
1416
1412 2004-06-24 Fernando Perez <fperez@colorado.edu>
1417 2004-06-24 Fernando Perez <fperez@colorado.edu>
1413
1418
1414 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1419 * IPython/iplib.py (InteractiveShell._prefilter): big change -
1415 special syntaxes (like alias calling) is now allied in multi-line
1420 special syntaxes (like alias calling) is now allied in multi-line
1416 input. This is still _very_ experimental, but it's necessary for
1421 input. This is still _very_ experimental, but it's necessary for
1417 efficient shell usage combining python looping syntax with system
1422 efficient shell usage combining python looping syntax with system
1418 calls. For now it's restricted to aliases, I don't think it
1423 calls. For now it's restricted to aliases, I don't think it
1419 really even makes sense to have this for magics.
1424 really even makes sense to have this for magics.
1420
1425
1421 2004-06-23 Fernando Perez <fperez@colorado.edu>
1426 2004-06-23 Fernando Perez <fperez@colorado.edu>
1422
1427
1423 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1428 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
1424 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1429 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
1425
1430
1426 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1431 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
1427 extensions under Windows (after code sent by Gary Bishop). The
1432 extensions under Windows (after code sent by Gary Bishop). The
1428 extensions considered 'executable' are stored in IPython's rc
1433 extensions considered 'executable' are stored in IPython's rc
1429 structure as win_exec_ext.
1434 structure as win_exec_ext.
1430
1435
1431 * IPython/genutils.py (shell): new function, like system() but
1436 * IPython/genutils.py (shell): new function, like system() but
1432 without return value. Very useful for interactive shell work.
1437 without return value. Very useful for interactive shell work.
1433
1438
1434 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1439 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
1435 delete aliases.
1440 delete aliases.
1436
1441
1437 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1442 * IPython/iplib.py (InteractiveShell.alias_table_update): make
1438 sure that the alias table doesn't contain python keywords.
1443 sure that the alias table doesn't contain python keywords.
1439
1444
1440 2004-06-21 Fernando Perez <fperez@colorado.edu>
1445 2004-06-21 Fernando Perez <fperez@colorado.edu>
1441
1446
1442 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1447 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
1443 non-existent items are found in $PATH. Reported by Thorsten.
1448 non-existent items are found in $PATH. Reported by Thorsten.
1444
1449
1445 2004-06-20 Fernando Perez <fperez@colorado.edu>
1450 2004-06-20 Fernando Perez <fperez@colorado.edu>
1446
1451
1447 * IPython/iplib.py (complete): modified the completer so that the
1452 * IPython/iplib.py (complete): modified the completer so that the
1448 order of priorities can be easily changed at runtime.
1453 order of priorities can be easily changed at runtime.
1449
1454
1450 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1455 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
1451 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1456 Modified to auto-execute all lines beginning with '~', '/' or '.'.
1452
1457
1453 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1458 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
1454 expand Python variables prepended with $ in all system calls. The
1459 expand Python variables prepended with $ in all system calls. The
1455 same was done to InteractiveShell.handle_shell_escape. Now all
1460 same was done to InteractiveShell.handle_shell_escape. Now all
1456 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1461 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
1457 expansion of python variables and expressions according to the
1462 expansion of python variables and expressions according to the
1458 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1463 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
1459
1464
1460 Though PEP-215 has been rejected, a similar (but simpler) one
1465 Though PEP-215 has been rejected, a similar (but simpler) one
1461 seems like it will go into Python 2.4, PEP-292 -
1466 seems like it will go into Python 2.4, PEP-292 -
1462 http://www.python.org/peps/pep-0292.html.
1467 http://www.python.org/peps/pep-0292.html.
1463
1468
1464 I'll keep the full syntax of PEP-215, since IPython has since the
1469 I'll keep the full syntax of PEP-215, since IPython has since the
1465 start used Ka-Ping Yee's reference implementation discussed there
1470 start used Ka-Ping Yee's reference implementation discussed there
1466 (Itpl), and I actually like the powerful semantics it offers.
1471 (Itpl), and I actually like the powerful semantics it offers.
1467
1472
1468 In order to access normal shell variables, the $ has to be escaped
1473 In order to access normal shell variables, the $ has to be escaped
1469 via an extra $. For example:
1474 via an extra $. For example:
1470
1475
1471 In [7]: PATH='a python variable'
1476 In [7]: PATH='a python variable'
1472
1477
1473 In [8]: !echo $PATH
1478 In [8]: !echo $PATH
1474 a python variable
1479 a python variable
1475
1480
1476 In [9]: !echo $$PATH
1481 In [9]: !echo $$PATH
1477 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1482 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
1478
1483
1479 (Magic.parse_options): escape $ so the shell doesn't evaluate
1484 (Magic.parse_options): escape $ so the shell doesn't evaluate
1480 things prematurely.
1485 things prematurely.
1481
1486
1482 * IPython/iplib.py (InteractiveShell.call_alias): added the
1487 * IPython/iplib.py (InteractiveShell.call_alias): added the
1483 ability for aliases to expand python variables via $.
1488 ability for aliases to expand python variables via $.
1484
1489
1485 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1490 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
1486 system, now there's a @rehash/@rehashx pair of magics. These work
1491 system, now there's a @rehash/@rehashx pair of magics. These work
1487 like the csh rehash command, and can be invoked at any time. They
1492 like the csh rehash command, and can be invoked at any time. They
1488 build a table of aliases to everything in the user's $PATH
1493 build a table of aliases to everything in the user's $PATH
1489 (@rehash uses everything, @rehashx is slower but only adds
1494 (@rehash uses everything, @rehashx is slower but only adds
1490 executable files). With this, the pysh.py-based shell profile can
1495 executable files). With this, the pysh.py-based shell profile can
1491 now simply call rehash upon startup, and full access to all
1496 now simply call rehash upon startup, and full access to all
1492 programs in the user's path is obtained.
1497 programs in the user's path is obtained.
1493
1498
1494 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1499 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
1495 functionality is now fully in place. I removed the old dynamic
1500 functionality is now fully in place. I removed the old dynamic
1496 code generation based approach, in favor of a much lighter one
1501 code generation based approach, in favor of a much lighter one
1497 based on a simple dict. The advantage is that this allows me to
1502 based on a simple dict. The advantage is that this allows me to
1498 now have thousands of aliases with negligible cost (unthinkable
1503 now have thousands of aliases with negligible cost (unthinkable
1499 with the old system).
1504 with the old system).
1500
1505
1501 2004-06-19 Fernando Perez <fperez@colorado.edu>
1506 2004-06-19 Fernando Perez <fperez@colorado.edu>
1502
1507
1503 * IPython/iplib.py (__init__): extended MagicCompleter class to
1508 * IPython/iplib.py (__init__): extended MagicCompleter class to
1504 also complete (last in priority) on user aliases.
1509 also complete (last in priority) on user aliases.
1505
1510
1506 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1511 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
1507 call to eval.
1512 call to eval.
1508 (ItplNS.__init__): Added a new class which functions like Itpl,
1513 (ItplNS.__init__): Added a new class which functions like Itpl,
1509 but allows configuring the namespace for the evaluation to occur
1514 but allows configuring the namespace for the evaluation to occur
1510 in.
1515 in.
1511
1516
1512 2004-06-18 Fernando Perez <fperez@colorado.edu>
1517 2004-06-18 Fernando Perez <fperez@colorado.edu>
1513
1518
1514 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1519 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
1515 better message when 'exit' or 'quit' are typed (a common newbie
1520 better message when 'exit' or 'quit' are typed (a common newbie
1516 confusion).
1521 confusion).
1517
1522
1518 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1523 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
1519 check for Windows users.
1524 check for Windows users.
1520
1525
1521 * IPython/iplib.py (InteractiveShell.user_setup): removed
1526 * IPython/iplib.py (InteractiveShell.user_setup): removed
1522 disabling of colors for Windows. I'll test at runtime and issue a
1527 disabling of colors for Windows. I'll test at runtime and issue a
1523 warning if Gary's readline isn't found, as to nudge users to
1528 warning if Gary's readline isn't found, as to nudge users to
1524 download it.
1529 download it.
1525
1530
1526 2004-06-16 Fernando Perez <fperez@colorado.edu>
1531 2004-06-16 Fernando Perez <fperez@colorado.edu>
1527
1532
1528 * IPython/genutils.py (Stream.__init__): changed to print errors
1533 * IPython/genutils.py (Stream.__init__): changed to print errors
1529 to sys.stderr. I had a circular dependency here. Now it's
1534 to sys.stderr. I had a circular dependency here. Now it's
1530 possible to run ipython as IDLE's shell (consider this pre-alpha,
1535 possible to run ipython as IDLE's shell (consider this pre-alpha,
1531 since true stdout things end up in the starting terminal instead
1536 since true stdout things end up in the starting terminal instead
1532 of IDLE's out).
1537 of IDLE's out).
1533
1538
1534 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1539 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
1535 users who haven't # updated their prompt_in2 definitions. Remove
1540 users who haven't # updated their prompt_in2 definitions. Remove
1536 eventually.
1541 eventually.
1537 (multiple_replace): added credit to original ASPN recipe.
1542 (multiple_replace): added credit to original ASPN recipe.
1538
1543
1539 2004-06-15 Fernando Perez <fperez@colorado.edu>
1544 2004-06-15 Fernando Perez <fperez@colorado.edu>
1540
1545
1541 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1546 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
1542 list of auto-defined aliases.
1547 list of auto-defined aliases.
1543
1548
1544 2004-06-13 Fernando Perez <fperez@colorado.edu>
1549 2004-06-13 Fernando Perez <fperez@colorado.edu>
1545
1550
1546 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1551 * setup.py (scriptfiles): Don't trigger win_post_install unless an
1547 install was really requested (so setup.py can be used for other
1552 install was really requested (so setup.py can be used for other
1548 things under Windows).
1553 things under Windows).
1549
1554
1550 2004-06-10 Fernando Perez <fperez@colorado.edu>
1555 2004-06-10 Fernando Perez <fperez@colorado.edu>
1551
1556
1552 * IPython/Logger.py (Logger.create_log): Manually remove any old
1557 * IPython/Logger.py (Logger.create_log): Manually remove any old
1553 backup, since os.remove may fail under Windows. Fixes bug
1558 backup, since os.remove may fail under Windows. Fixes bug
1554 reported by Thorsten.
1559 reported by Thorsten.
1555
1560
1556 2004-06-09 Fernando Perez <fperez@colorado.edu>
1561 2004-06-09 Fernando Perez <fperez@colorado.edu>
1557
1562
1558 * examples/example-embed.py: fixed all references to %n (replaced
1563 * examples/example-embed.py: fixed all references to %n (replaced
1559 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1564 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
1560 for all examples and the manual as well.
1565 for all examples and the manual as well.
1561
1566
1562 2004-06-08 Fernando Perez <fperez@colorado.edu>
1567 2004-06-08 Fernando Perez <fperez@colorado.edu>
1563
1568
1564 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
1569 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
1565 alignment and color management. All 3 prompt subsystems now
1570 alignment and color management. All 3 prompt subsystems now
1566 inherit from BasePrompt.
1571 inherit from BasePrompt.
1567
1572
1568 * tools/release: updates for windows installer build and tag rpms
1573 * tools/release: updates for windows installer build and tag rpms
1569 with python version (since paths are fixed).
1574 with python version (since paths are fixed).
1570
1575
1571 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
1576 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
1572 which will become eventually obsolete. Also fixed the default
1577 which will become eventually obsolete. Also fixed the default
1573 prompt_in2 to use \D, so at least new users start with the correct
1578 prompt_in2 to use \D, so at least new users start with the correct
1574 defaults.
1579 defaults.
1575 WARNING: Users with existing ipythonrc files will need to apply
1580 WARNING: Users with existing ipythonrc files will need to apply
1576 this fix manually!
1581 this fix manually!
1577
1582
1578 * setup.py: make windows installer (.exe). This is finally the
1583 * setup.py: make windows installer (.exe). This is finally the
1579 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
1584 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
1580 which I hadn't included because it required Python 2.3 (or recent
1585 which I hadn't included because it required Python 2.3 (or recent
1581 distutils).
1586 distutils).
1582
1587
1583 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
1588 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
1584 usage of new '\D' escape.
1589 usage of new '\D' escape.
1585
1590
1586 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
1591 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
1587 lacks os.getuid())
1592 lacks os.getuid())
1588 (CachedOutput.set_colors): Added the ability to turn coloring
1593 (CachedOutput.set_colors): Added the ability to turn coloring
1589 on/off with @colors even for manually defined prompt colors. It
1594 on/off with @colors even for manually defined prompt colors. It
1590 uses a nasty global, but it works safely and via the generic color
1595 uses a nasty global, but it works safely and via the generic color
1591 handling mechanism.
1596 handling mechanism.
1592 (Prompt2.__init__): Introduced new escape '\D' for continuation
1597 (Prompt2.__init__): Introduced new escape '\D' for continuation
1593 prompts. It represents the counter ('\#') as dots.
1598 prompts. It represents the counter ('\#') as dots.
1594 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
1599 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
1595 need to update their ipythonrc files and replace '%n' with '\D' in
1600 need to update their ipythonrc files and replace '%n' with '\D' in
1596 their prompt_in2 settings everywhere. Sorry, but there's
1601 their prompt_in2 settings everywhere. Sorry, but there's
1597 otherwise no clean way to get all prompts to properly align. The
1602 otherwise no clean way to get all prompts to properly align. The
1598 ipythonrc shipped with IPython has been updated.
1603 ipythonrc shipped with IPython has been updated.
1599
1604
1600 2004-06-07 Fernando Perez <fperez@colorado.edu>
1605 2004-06-07 Fernando Perez <fperez@colorado.edu>
1601
1606
1602 * setup.py (isfile): Pass local_icons option to latex2html, so the
1607 * setup.py (isfile): Pass local_icons option to latex2html, so the
1603 resulting HTML file is self-contained. Thanks to
1608 resulting HTML file is self-contained. Thanks to
1604 dryice-AT-liu.com.cn for the tip.
1609 dryice-AT-liu.com.cn for the tip.
1605
1610
1606 * pysh.py: I created a new profile 'shell', which implements a
1611 * pysh.py: I created a new profile 'shell', which implements a
1607 _rudimentary_ IPython-based shell. This is in NO WAY a realy
1612 _rudimentary_ IPython-based shell. This is in NO WAY a realy
1608 system shell, nor will it become one anytime soon. It's mainly
1613 system shell, nor will it become one anytime soon. It's mainly
1609 meant to illustrate the use of the new flexible bash-like prompts.
1614 meant to illustrate the use of the new flexible bash-like prompts.
1610 I guess it could be used by hardy souls for true shell management,
1615 I guess it could be used by hardy souls for true shell management,
1611 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
1616 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
1612 profile. This uses the InterpreterExec extension provided by
1617 profile. This uses the InterpreterExec extension provided by
1613 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
1618 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
1614
1619
1615 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
1620 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
1616 auto-align itself with the length of the previous input prompt
1621 auto-align itself with the length of the previous input prompt
1617 (taking into account the invisible color escapes).
1622 (taking into account the invisible color escapes).
1618 (CachedOutput.__init__): Large restructuring of this class. Now
1623 (CachedOutput.__init__): Large restructuring of this class. Now
1619 all three prompts (primary1, primary2, output) are proper objects,
1624 all three prompts (primary1, primary2, output) are proper objects,
1620 managed by the 'parent' CachedOutput class. The code is still a
1625 managed by the 'parent' CachedOutput class. The code is still a
1621 bit hackish (all prompts share state via a pointer to the cache),
1626 bit hackish (all prompts share state via a pointer to the cache),
1622 but it's overall far cleaner than before.
1627 but it's overall far cleaner than before.
1623
1628
1624 * IPython/genutils.py (getoutputerror): modified to add verbose,
1629 * IPython/genutils.py (getoutputerror): modified to add verbose,
1625 debug and header options. This makes the interface of all getout*
1630 debug and header options. This makes the interface of all getout*
1626 functions uniform.
1631 functions uniform.
1627 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
1632 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
1628
1633
1629 * IPython/Magic.py (Magic.default_option): added a function to
1634 * IPython/Magic.py (Magic.default_option): added a function to
1630 allow registering default options for any magic command. This
1635 allow registering default options for any magic command. This
1631 makes it easy to have profiles which customize the magics globally
1636 makes it easy to have profiles which customize the magics globally
1632 for a certain use. The values set through this function are
1637 for a certain use. The values set through this function are
1633 picked up by the parse_options() method, which all magics should
1638 picked up by the parse_options() method, which all magics should
1634 use to parse their options.
1639 use to parse their options.
1635
1640
1636 * IPython/genutils.py (warn): modified the warnings framework to
1641 * IPython/genutils.py (warn): modified the warnings framework to
1637 use the Term I/O class. I'm trying to slowly unify all of
1642 use the Term I/O class. I'm trying to slowly unify all of
1638 IPython's I/O operations to pass through Term.
1643 IPython's I/O operations to pass through Term.
1639
1644
1640 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
1645 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
1641 the secondary prompt to correctly match the length of the primary
1646 the secondary prompt to correctly match the length of the primary
1642 one for any prompt. Now multi-line code will properly line up
1647 one for any prompt. Now multi-line code will properly line up
1643 even for path dependent prompts, such as the new ones available
1648 even for path dependent prompts, such as the new ones available
1644 via the prompt_specials.
1649 via the prompt_specials.
1645
1650
1646 2004-06-06 Fernando Perez <fperez@colorado.edu>
1651 2004-06-06 Fernando Perez <fperez@colorado.edu>
1647
1652
1648 * IPython/Prompts.py (prompt_specials): Added the ability to have
1653 * IPython/Prompts.py (prompt_specials): Added the ability to have
1649 bash-like special sequences in the prompts, which get
1654 bash-like special sequences in the prompts, which get
1650 automatically expanded. Things like hostname, current working
1655 automatically expanded. Things like hostname, current working
1651 directory and username are implemented already, but it's easy to
1656 directory and username are implemented already, but it's easy to
1652 add more in the future. Thanks to a patch by W.J. van der Laan
1657 add more in the future. Thanks to a patch by W.J. van der Laan
1653 <gnufnork-AT-hetdigitalegat.nl>
1658 <gnufnork-AT-hetdigitalegat.nl>
1654 (prompt_specials): Added color support for prompt strings, so
1659 (prompt_specials): Added color support for prompt strings, so
1655 users can define arbitrary color setups for their prompts.
1660 users can define arbitrary color setups for their prompts.
1656
1661
1657 2004-06-05 Fernando Perez <fperez@colorado.edu>
1662 2004-06-05 Fernando Perez <fperez@colorado.edu>
1658
1663
1659 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
1664 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
1660 code to load Gary Bishop's readline and configure it
1665 code to load Gary Bishop's readline and configure it
1661 automatically. Thanks to Gary for help on this.
1666 automatically. Thanks to Gary for help on this.
1662
1667
1663 2004-06-01 Fernando Perez <fperez@colorado.edu>
1668 2004-06-01 Fernando Perez <fperez@colorado.edu>
1664
1669
1665 * IPython/Logger.py (Logger.create_log): fix bug for logging
1670 * IPython/Logger.py (Logger.create_log): fix bug for logging
1666 with no filename (previous fix was incomplete).
1671 with no filename (previous fix was incomplete).
1667
1672
1668 2004-05-25 Fernando Perez <fperez@colorado.edu>
1673 2004-05-25 Fernando Perez <fperez@colorado.edu>
1669
1674
1670 * IPython/Magic.py (Magic.parse_options): fix bug where naked
1675 * IPython/Magic.py (Magic.parse_options): fix bug where naked
1671 parens would get passed to the shell.
1676 parens would get passed to the shell.
1672
1677
1673 2004-05-20 Fernando Perez <fperez@colorado.edu>
1678 2004-05-20 Fernando Perez <fperez@colorado.edu>
1674
1679
1675 * IPython/Magic.py (Magic.magic_prun): changed default profile
1680 * IPython/Magic.py (Magic.magic_prun): changed default profile
1676 sort order to 'time' (the more common profiling need).
1681 sort order to 'time' (the more common profiling need).
1677
1682
1678 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
1683 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
1679 so that source code shown is guaranteed in sync with the file on
1684 so that source code shown is guaranteed in sync with the file on
1680 disk (also changed in psource). Similar fix to the one for
1685 disk (also changed in psource). Similar fix to the one for
1681 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
1686 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
1682 <yann.ledu-AT-noos.fr>.
1687 <yann.ledu-AT-noos.fr>.
1683
1688
1684 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
1689 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
1685 with a single option would not be correctly parsed. Closes
1690 with a single option would not be correctly parsed. Closes
1686 http://www.scipy.net/roundup/ipython/issue14. This bug had been
1691 http://www.scipy.net/roundup/ipython/issue14. This bug had been
1687 introduced in 0.6.0 (on 2004-05-06).
1692 introduced in 0.6.0 (on 2004-05-06).
1688
1693
1689 2004-05-13 *** Released version 0.6.0
1694 2004-05-13 *** Released version 0.6.0
1690
1695
1691 2004-05-13 Fernando Perez <fperez@colorado.edu>
1696 2004-05-13 Fernando Perez <fperez@colorado.edu>
1692
1697
1693 * debian/: Added debian/ directory to CVS, so that debian support
1698 * debian/: Added debian/ directory to CVS, so that debian support
1694 is publicly accessible. The debian package is maintained by Jack
1699 is publicly accessible. The debian package is maintained by Jack
1695 Moffit <jack-AT-xiph.org>.
1700 Moffit <jack-AT-xiph.org>.
1696
1701
1697 * Documentation: included the notes about an ipython-based system
1702 * Documentation: included the notes about an ipython-based system
1698 shell (the hypothetical 'pysh') into the new_design.pdf document,
1703 shell (the hypothetical 'pysh') into the new_design.pdf document,
1699 so that these ideas get distributed to users along with the
1704 so that these ideas get distributed to users along with the
1700 official documentation.
1705 official documentation.
1701
1706
1702 2004-05-10 Fernando Perez <fperez@colorado.edu>
1707 2004-05-10 Fernando Perez <fperez@colorado.edu>
1703
1708
1704 * IPython/Logger.py (Logger.create_log): fix recently introduced
1709 * IPython/Logger.py (Logger.create_log): fix recently introduced
1705 bug (misindented line) where logstart would fail when not given an
1710 bug (misindented line) where logstart would fail when not given an
1706 explicit filename.
1711 explicit filename.
1707
1712
1708 2004-05-09 Fernando Perez <fperez@colorado.edu>
1713 2004-05-09 Fernando Perez <fperez@colorado.edu>
1709
1714
1710 * IPython/Magic.py (Magic.parse_options): skip system call when
1715 * IPython/Magic.py (Magic.parse_options): skip system call when
1711 there are no options to look for. Faster, cleaner for the common
1716 there are no options to look for. Faster, cleaner for the common
1712 case.
1717 case.
1713
1718
1714 * Documentation: many updates to the manual: describing Windows
1719 * Documentation: many updates to the manual: describing Windows
1715 support better, Gnuplot updates, credits, misc small stuff. Also
1720 support better, Gnuplot updates, credits, misc small stuff. Also
1716 updated the new_design doc a bit.
1721 updated the new_design doc a bit.
1717
1722
1718 2004-05-06 *** Released version 0.6.0.rc1
1723 2004-05-06 *** Released version 0.6.0.rc1
1719
1724
1720 2004-05-06 Fernando Perez <fperez@colorado.edu>
1725 2004-05-06 Fernando Perez <fperez@colorado.edu>
1721
1726
1722 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
1727 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
1723 operations to use the vastly more efficient list/''.join() method.
1728 operations to use the vastly more efficient list/''.join() method.
1724 (FormattedTB.text): Fix
1729 (FormattedTB.text): Fix
1725 http://www.scipy.net/roundup/ipython/issue12 - exception source
1730 http://www.scipy.net/roundup/ipython/issue12 - exception source
1726 extract not updated after reload. Thanks to Mike Salib
1731 extract not updated after reload. Thanks to Mike Salib
1727 <msalib-AT-mit.edu> for pinning the source of the problem.
1732 <msalib-AT-mit.edu> for pinning the source of the problem.
1728 Fortunately, the solution works inside ipython and doesn't require
1733 Fortunately, the solution works inside ipython and doesn't require
1729 any changes to python proper.
1734 any changes to python proper.
1730
1735
1731 * IPython/Magic.py (Magic.parse_options): Improved to process the
1736 * IPython/Magic.py (Magic.parse_options): Improved to process the
1732 argument list as a true shell would (by actually using the
1737 argument list as a true shell would (by actually using the
1733 underlying system shell). This way, all @magics automatically get
1738 underlying system shell). This way, all @magics automatically get
1734 shell expansion for variables. Thanks to a comment by Alex
1739 shell expansion for variables. Thanks to a comment by Alex
1735 Schmolck.
1740 Schmolck.
1736
1741
1737 2004-04-04 Fernando Perez <fperez@colorado.edu>
1742 2004-04-04 Fernando Perez <fperez@colorado.edu>
1738
1743
1739 * IPython/iplib.py (InteractiveShell.interact): Added a special
1744 * IPython/iplib.py (InteractiveShell.interact): Added a special
1740 trap for a debugger quit exception, which is basically impossible
1745 trap for a debugger quit exception, which is basically impossible
1741 to handle by normal mechanisms, given what pdb does to the stack.
1746 to handle by normal mechanisms, given what pdb does to the stack.
1742 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
1747 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
1743
1748
1744 2004-04-03 Fernando Perez <fperez@colorado.edu>
1749 2004-04-03 Fernando Perez <fperez@colorado.edu>
1745
1750
1746 * IPython/genutils.py (Term): Standardized the names of the Term
1751 * IPython/genutils.py (Term): Standardized the names of the Term
1747 class streams to cin/cout/cerr, following C++ naming conventions
1752 class streams to cin/cout/cerr, following C++ naming conventions
1748 (I can't use in/out/err because 'in' is not a valid attribute
1753 (I can't use in/out/err because 'in' is not a valid attribute
1749 name).
1754 name).
1750
1755
1751 * IPython/iplib.py (InteractiveShell.interact): don't increment
1756 * IPython/iplib.py (InteractiveShell.interact): don't increment
1752 the prompt if there's no user input. By Daniel 'Dang' Griffith
1757 the prompt if there's no user input. By Daniel 'Dang' Griffith
1753 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
1758 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
1754 Francois Pinard.
1759 Francois Pinard.
1755
1760
1756 2004-04-02 Fernando Perez <fperez@colorado.edu>
1761 2004-04-02 Fernando Perez <fperez@colorado.edu>
1757
1762
1758 * IPython/genutils.py (Stream.__init__): Modified to survive at
1763 * IPython/genutils.py (Stream.__init__): Modified to survive at
1759 least importing in contexts where stdin/out/err aren't true file
1764 least importing in contexts where stdin/out/err aren't true file
1760 objects, such as PyCrust (they lack fileno() and mode). However,
1765 objects, such as PyCrust (they lack fileno() and mode). However,
1761 the recovery facilities which rely on these things existing will
1766 the recovery facilities which rely on these things existing will
1762 not work.
1767 not work.
1763
1768
1764 2004-04-01 Fernando Perez <fperez@colorado.edu>
1769 2004-04-01 Fernando Perez <fperez@colorado.edu>
1765
1770
1766 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
1771 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
1767 use the new getoutputerror() function, so it properly
1772 use the new getoutputerror() function, so it properly
1768 distinguishes stdout/err.
1773 distinguishes stdout/err.
1769
1774
1770 * IPython/genutils.py (getoutputerror): added a function to
1775 * IPython/genutils.py (getoutputerror): added a function to
1771 capture separately the standard output and error of a command.
1776 capture separately the standard output and error of a command.
1772 After a comment from dang on the mailing lists. This code is
1777 After a comment from dang on the mailing lists. This code is
1773 basically a modified version of commands.getstatusoutput(), from
1778 basically a modified version of commands.getstatusoutput(), from
1774 the standard library.
1779 the standard library.
1775
1780
1776 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
1781 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
1777 '!!' as a special syntax (shorthand) to access @sx.
1782 '!!' as a special syntax (shorthand) to access @sx.
1778
1783
1779 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
1784 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
1780 command and return its output as a list split on '\n'.
1785 command and return its output as a list split on '\n'.
1781
1786
1782 2004-03-31 Fernando Perez <fperez@colorado.edu>
1787 2004-03-31 Fernando Perez <fperez@colorado.edu>
1783
1788
1784 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
1789 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
1785 method to dictionaries used as FakeModule instances if they lack
1790 method to dictionaries used as FakeModule instances if they lack
1786 it. At least pydoc in python2.3 breaks for runtime-defined
1791 it. At least pydoc in python2.3 breaks for runtime-defined
1787 functions without this hack. At some point I need to _really_
1792 functions without this hack. At some point I need to _really_
1788 understand what FakeModule is doing, because it's a gross hack.
1793 understand what FakeModule is doing, because it's a gross hack.
1789 But it solves Arnd's problem for now...
1794 But it solves Arnd's problem for now...
1790
1795
1791 2004-02-27 Fernando Perez <fperez@colorado.edu>
1796 2004-02-27 Fernando Perez <fperez@colorado.edu>
1792
1797
1793 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
1798 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
1794 mode would behave erratically. Also increased the number of
1799 mode would behave erratically. Also increased the number of
1795 possible logs in rotate mod to 999. Thanks to Rod Holland
1800 possible logs in rotate mod to 999. Thanks to Rod Holland
1796 <rhh@StructureLABS.com> for the report and fixes.
1801 <rhh@StructureLABS.com> for the report and fixes.
1797
1802
1798 2004-02-26 Fernando Perez <fperez@colorado.edu>
1803 2004-02-26 Fernando Perez <fperez@colorado.edu>
1799
1804
1800 * IPython/genutils.py (page): Check that the curses module really
1805 * IPython/genutils.py (page): Check that the curses module really
1801 has the initscr attribute before trying to use it. For some
1806 has the initscr attribute before trying to use it. For some
1802 reason, the Solaris curses module is missing this. I think this
1807 reason, the Solaris curses module is missing this. I think this
1803 should be considered a Solaris python bug, but I'm not sure.
1808 should be considered a Solaris python bug, but I'm not sure.
1804
1809
1805 2004-01-17 Fernando Perez <fperez@colorado.edu>
1810 2004-01-17 Fernando Perez <fperez@colorado.edu>
1806
1811
1807 * IPython/genutils.py (Stream.__init__): Changes to try to make
1812 * IPython/genutils.py (Stream.__init__): Changes to try to make
1808 ipython robust against stdin/out/err being closed by the user.
1813 ipython robust against stdin/out/err being closed by the user.
1809 This is 'user error' (and blocks a normal python session, at least
1814 This is 'user error' (and blocks a normal python session, at least
1810 the stdout case). However, Ipython should be able to survive such
1815 the stdout case). However, Ipython should be able to survive such
1811 instances of abuse as gracefully as possible. To simplify the
1816 instances of abuse as gracefully as possible. To simplify the
1812 coding and maintain compatibility with Gary Bishop's Term
1817 coding and maintain compatibility with Gary Bishop's Term
1813 contributions, I've made use of classmethods for this. I think
1818 contributions, I've made use of classmethods for this. I think
1814 this introduces a dependency on python 2.2.
1819 this introduces a dependency on python 2.2.
1815
1820
1816 2004-01-13 Fernando Perez <fperez@colorado.edu>
1821 2004-01-13 Fernando Perez <fperez@colorado.edu>
1817
1822
1818 * IPython/numutils.py (exp_safe): simplified the code a bit and
1823 * IPython/numutils.py (exp_safe): simplified the code a bit and
1819 removed the need for importing the kinds module altogether.
1824 removed the need for importing the kinds module altogether.
1820
1825
1821 2004-01-06 Fernando Perez <fperez@colorado.edu>
1826 2004-01-06 Fernando Perez <fperez@colorado.edu>
1822
1827
1823 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
1828 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
1824 a magic function instead, after some community feedback. No
1829 a magic function instead, after some community feedback. No
1825 special syntax will exist for it, but its name is deliberately
1830 special syntax will exist for it, but its name is deliberately
1826 very short.
1831 very short.
1827
1832
1828 2003-12-20 Fernando Perez <fperez@colorado.edu>
1833 2003-12-20 Fernando Perez <fperez@colorado.edu>
1829
1834
1830 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
1835 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
1831 new functionality, to automagically assign the result of a shell
1836 new functionality, to automagically assign the result of a shell
1832 command to a variable. I'll solicit some community feedback on
1837 command to a variable. I'll solicit some community feedback on
1833 this before making it permanent.
1838 this before making it permanent.
1834
1839
1835 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
1840 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
1836 requested about callables for which inspect couldn't obtain a
1841 requested about callables for which inspect couldn't obtain a
1837 proper argspec. Thanks to a crash report sent by Etienne
1842 proper argspec. Thanks to a crash report sent by Etienne
1838 Posthumus <etienne-AT-apple01.cs.vu.nl>.
1843 Posthumus <etienne-AT-apple01.cs.vu.nl>.
1839
1844
1840 2003-12-09 Fernando Perez <fperez@colorado.edu>
1845 2003-12-09 Fernando Perez <fperez@colorado.edu>
1841
1846
1842 * IPython/genutils.py (page): patch for the pager to work across
1847 * IPython/genutils.py (page): patch for the pager to work across
1843 various versions of Windows. By Gary Bishop.
1848 various versions of Windows. By Gary Bishop.
1844
1849
1845 2003-12-04 Fernando Perez <fperez@colorado.edu>
1850 2003-12-04 Fernando Perez <fperez@colorado.edu>
1846
1851
1847 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
1852 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
1848 Gnuplot.py version 1.7, whose internal names changed quite a bit.
1853 Gnuplot.py version 1.7, whose internal names changed quite a bit.
1849 While I tested this and it looks ok, there may still be corner
1854 While I tested this and it looks ok, there may still be corner
1850 cases I've missed.
1855 cases I've missed.
1851
1856
1852 2003-12-01 Fernando Perez <fperez@colorado.edu>
1857 2003-12-01 Fernando Perez <fperez@colorado.edu>
1853
1858
1854 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
1859 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
1855 where a line like 'p,q=1,2' would fail because the automagic
1860 where a line like 'p,q=1,2' would fail because the automagic
1856 system would be triggered for @p.
1861 system would be triggered for @p.
1857
1862
1858 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
1863 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
1859 cleanups, code unmodified.
1864 cleanups, code unmodified.
1860
1865
1861 * IPython/genutils.py (Term): added a class for IPython to handle
1866 * IPython/genutils.py (Term): added a class for IPython to handle
1862 output. In most cases it will just be a proxy for stdout/err, but
1867 output. In most cases it will just be a proxy for stdout/err, but
1863 having this allows modifications to be made for some platforms,
1868 having this allows modifications to be made for some platforms,
1864 such as handling color escapes under Windows. All of this code
1869 such as handling color escapes under Windows. All of this code
1865 was contributed by Gary Bishop, with minor modifications by me.
1870 was contributed by Gary Bishop, with minor modifications by me.
1866 The actual changes affect many files.
1871 The actual changes affect many files.
1867
1872
1868 2003-11-30 Fernando Perez <fperez@colorado.edu>
1873 2003-11-30 Fernando Perez <fperez@colorado.edu>
1869
1874
1870 * IPython/iplib.py (file_matches): new completion code, courtesy
1875 * IPython/iplib.py (file_matches): new completion code, courtesy
1871 of Jeff Collins. This enables filename completion again under
1876 of Jeff Collins. This enables filename completion again under
1872 python 2.3, which disabled it at the C level.
1877 python 2.3, which disabled it at the C level.
1873
1878
1874 2003-11-11 Fernando Perez <fperez@colorado.edu>
1879 2003-11-11 Fernando Perez <fperez@colorado.edu>
1875
1880
1876 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
1881 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
1877 for Numeric.array(map(...)), but often convenient.
1882 for Numeric.array(map(...)), but often convenient.
1878
1883
1879 2003-11-05 Fernando Perez <fperez@colorado.edu>
1884 2003-11-05 Fernando Perez <fperez@colorado.edu>
1880
1885
1881 * IPython/numutils.py (frange): Changed a call from int() to
1886 * IPython/numutils.py (frange): Changed a call from int() to
1882 int(round()) to prevent a problem reported with arange() in the
1887 int(round()) to prevent a problem reported with arange() in the
1883 numpy list.
1888 numpy list.
1884
1889
1885 2003-10-06 Fernando Perez <fperez@colorado.edu>
1890 2003-10-06 Fernando Perez <fperez@colorado.edu>
1886
1891
1887 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
1892 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
1888 prevent crashes if sys lacks an argv attribute (it happens with
1893 prevent crashes if sys lacks an argv attribute (it happens with
1889 embedded interpreters which build a bare-bones sys module).
1894 embedded interpreters which build a bare-bones sys module).
1890 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
1895 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
1891
1896
1892 2003-09-24 Fernando Perez <fperez@colorado.edu>
1897 2003-09-24 Fernando Perez <fperez@colorado.edu>
1893
1898
1894 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
1899 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
1895 to protect against poorly written user objects where __getattr__
1900 to protect against poorly written user objects where __getattr__
1896 raises exceptions other than AttributeError. Thanks to a bug
1901 raises exceptions other than AttributeError. Thanks to a bug
1897 report by Oliver Sander <osander-AT-gmx.de>.
1902 report by Oliver Sander <osander-AT-gmx.de>.
1898
1903
1899 * IPython/FakeModule.py (FakeModule.__repr__): this method was
1904 * IPython/FakeModule.py (FakeModule.__repr__): this method was
1900 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
1905 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
1901
1906
1902 2003-09-09 Fernando Perez <fperez@colorado.edu>
1907 2003-09-09 Fernando Perez <fperez@colorado.edu>
1903
1908
1904 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1909 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
1905 unpacking a list whith a callable as first element would
1910 unpacking a list whith a callable as first element would
1906 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
1911 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
1907 Collins.
1912 Collins.
1908
1913
1909 2003-08-25 *** Released version 0.5.0
1914 2003-08-25 *** Released version 0.5.0
1910
1915
1911 2003-08-22 Fernando Perez <fperez@colorado.edu>
1916 2003-08-22 Fernando Perez <fperez@colorado.edu>
1912
1917
1913 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
1918 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
1914 improperly defined user exceptions. Thanks to feedback from Mark
1919 improperly defined user exceptions. Thanks to feedback from Mark
1915 Russell <mrussell-AT-verio.net>.
1920 Russell <mrussell-AT-verio.net>.
1916
1921
1917 2003-08-20 Fernando Perez <fperez@colorado.edu>
1922 2003-08-20 Fernando Perez <fperez@colorado.edu>
1918
1923
1919 * IPython/OInspect.py (Inspector.pinfo): changed String Form
1924 * IPython/OInspect.py (Inspector.pinfo): changed String Form
1920 printing so that it would print multi-line string forms starting
1925 printing so that it would print multi-line string forms starting
1921 with a new line. This way the formatting is better respected for
1926 with a new line. This way the formatting is better respected for
1922 objects which work hard to make nice string forms.
1927 objects which work hard to make nice string forms.
1923
1928
1924 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
1929 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
1925 autocall would overtake data access for objects with both
1930 autocall would overtake data access for objects with both
1926 __getitem__ and __call__.
1931 __getitem__ and __call__.
1927
1932
1928 2003-08-19 *** Released version 0.5.0-rc1
1933 2003-08-19 *** Released version 0.5.0-rc1
1929
1934
1930 2003-08-19 Fernando Perez <fperez@colorado.edu>
1935 2003-08-19 Fernando Perez <fperez@colorado.edu>
1931
1936
1932 * IPython/deep_reload.py (load_tail): single tiny change here
1937 * IPython/deep_reload.py (load_tail): single tiny change here
1933 seems to fix the long-standing bug of dreload() failing to work
1938 seems to fix the long-standing bug of dreload() failing to work
1934 for dotted names. But this module is pretty tricky, so I may have
1939 for dotted names. But this module is pretty tricky, so I may have
1935 missed some subtlety. Needs more testing!.
1940 missed some subtlety. Needs more testing!.
1936
1941
1937 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
1942 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
1938 exceptions which have badly implemented __str__ methods.
1943 exceptions which have badly implemented __str__ methods.
1939 (VerboseTB.text): harden against inspect.getinnerframes crashing,
1944 (VerboseTB.text): harden against inspect.getinnerframes crashing,
1940 which I've been getting reports about from Python 2.3 users. I
1945 which I've been getting reports about from Python 2.3 users. I
1941 wish I had a simple test case to reproduce the problem, so I could
1946 wish I had a simple test case to reproduce the problem, so I could
1942 either write a cleaner workaround or file a bug report if
1947 either write a cleaner workaround or file a bug report if
1943 necessary.
1948 necessary.
1944
1949
1945 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
1950 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
1946 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
1951 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
1947 a bug report by Tjabo Kloppenburg.
1952 a bug report by Tjabo Kloppenburg.
1948
1953
1949 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
1954 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
1950 crashes. Wrapped the pdb call in a blanket try/except, since pdb
1955 crashes. Wrapped the pdb call in a blanket try/except, since pdb
1951 seems rather unstable. Thanks to a bug report by Tjabo
1956 seems rather unstable. Thanks to a bug report by Tjabo
1952 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
1957 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
1953
1958
1954 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
1959 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
1955 this out soon because of the critical fixes in the inner loop for
1960 this out soon because of the critical fixes in the inner loop for
1956 generators.
1961 generators.
1957
1962
1958 * IPython/Magic.py (Magic.getargspec): removed. This (and
1963 * IPython/Magic.py (Magic.getargspec): removed. This (and
1959 _get_def) have been obsoleted by OInspect for a long time, I
1964 _get_def) have been obsoleted by OInspect for a long time, I
1960 hadn't noticed that they were dead code.
1965 hadn't noticed that they were dead code.
1961 (Magic._ofind): restored _ofind functionality for a few literals
1966 (Magic._ofind): restored _ofind functionality for a few literals
1962 (those in ["''",'""','[]','{}','()']). But it won't work anymore
1967 (those in ["''",'""','[]','{}','()']). But it won't work anymore
1963 for things like "hello".capitalize?, since that would require a
1968 for things like "hello".capitalize?, since that would require a
1964 potentially dangerous eval() again.
1969 potentially dangerous eval() again.
1965
1970
1966 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
1971 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
1967 logic a bit more to clean up the escapes handling and minimize the
1972 logic a bit more to clean up the escapes handling and minimize the
1968 use of _ofind to only necessary cases. The interactive 'feel' of
1973 use of _ofind to only necessary cases. The interactive 'feel' of
1969 IPython should have improved quite a bit with the changes in
1974 IPython should have improved quite a bit with the changes in
1970 _prefilter and _ofind (besides being far safer than before).
1975 _prefilter and _ofind (besides being far safer than before).
1971
1976
1972 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
1977 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
1973 obscure, never reported). Edit would fail to find the object to
1978 obscure, never reported). Edit would fail to find the object to
1974 edit under some circumstances.
1979 edit under some circumstances.
1975 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
1980 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
1976 which were causing double-calling of generators. Those eval calls
1981 which were causing double-calling of generators. Those eval calls
1977 were _very_ dangerous, since code with side effects could be
1982 were _very_ dangerous, since code with side effects could be
1978 triggered. As they say, 'eval is evil'... These were the
1983 triggered. As they say, 'eval is evil'... These were the
1979 nastiest evals in IPython. Besides, _ofind is now far simpler,
1984 nastiest evals in IPython. Besides, _ofind is now far simpler,
1980 and it should also be quite a bit faster. Its use of inspect is
1985 and it should also be quite a bit faster. Its use of inspect is
1981 also safer, so perhaps some of the inspect-related crashes I've
1986 also safer, so perhaps some of the inspect-related crashes I've
1982 seen lately with Python 2.3 might be taken care of. That will
1987 seen lately with Python 2.3 might be taken care of. That will
1983 need more testing.
1988 need more testing.
1984
1989
1985 2003-08-17 Fernando Perez <fperez@colorado.edu>
1990 2003-08-17 Fernando Perez <fperez@colorado.edu>
1986
1991
1987 * IPython/iplib.py (InteractiveShell._prefilter): significant
1992 * IPython/iplib.py (InteractiveShell._prefilter): significant
1988 simplifications to the logic for handling user escapes. Faster
1993 simplifications to the logic for handling user escapes. Faster
1989 and simpler code.
1994 and simpler code.
1990
1995
1991 2003-08-14 Fernando Perez <fperez@colorado.edu>
1996 2003-08-14 Fernando Perez <fperez@colorado.edu>
1992
1997
1993 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
1998 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
1994 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
1999 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
1995 but it should be quite a bit faster. And the recursive version
2000 but it should be quite a bit faster. And the recursive version
1996 generated O(log N) intermediate storage for all rank>1 arrays,
2001 generated O(log N) intermediate storage for all rank>1 arrays,
1997 even if they were contiguous.
2002 even if they were contiguous.
1998 (l1norm): Added this function.
2003 (l1norm): Added this function.
1999 (norm): Added this function for arbitrary norms (including
2004 (norm): Added this function for arbitrary norms (including
2000 l-infinity). l1 and l2 are still special cases for convenience
2005 l-infinity). l1 and l2 are still special cases for convenience
2001 and speed.
2006 and speed.
2002
2007
2003 2003-08-03 Fernando Perez <fperez@colorado.edu>
2008 2003-08-03 Fernando Perez <fperez@colorado.edu>
2004
2009
2005 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2010 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
2006 exceptions, which now raise PendingDeprecationWarnings in Python
2011 exceptions, which now raise PendingDeprecationWarnings in Python
2007 2.3. There were some in Magic and some in Gnuplot2.
2012 2.3. There were some in Magic and some in Gnuplot2.
2008
2013
2009 2003-06-30 Fernando Perez <fperez@colorado.edu>
2014 2003-06-30 Fernando Perez <fperez@colorado.edu>
2010
2015
2011 * IPython/genutils.py (page): modified to call curses only for
2016 * IPython/genutils.py (page): modified to call curses only for
2012 terminals where TERM=='xterm'. After problems under many other
2017 terminals where TERM=='xterm'. After problems under many other
2013 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2018 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
2014
2019
2015 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2020 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
2016 would be triggered when readline was absent. This was just an old
2021 would be triggered when readline was absent. This was just an old
2017 debugging statement I'd forgotten to take out.
2022 debugging statement I'd forgotten to take out.
2018
2023
2019 2003-06-20 Fernando Perez <fperez@colorado.edu>
2024 2003-06-20 Fernando Perez <fperez@colorado.edu>
2020
2025
2021 * IPython/genutils.py (clock): modified to return only user time
2026 * IPython/genutils.py (clock): modified to return only user time
2022 (not counting system time), after a discussion on scipy. While
2027 (not counting system time), after a discussion on scipy. While
2023 system time may be a useful quantity occasionally, it may much
2028 system time may be a useful quantity occasionally, it may much
2024 more easily be skewed by occasional swapping or other similar
2029 more easily be skewed by occasional swapping or other similar
2025 activity.
2030 activity.
2026
2031
2027 2003-06-05 Fernando Perez <fperez@colorado.edu>
2032 2003-06-05 Fernando Perez <fperez@colorado.edu>
2028
2033
2029 * IPython/numutils.py (identity): new function, for building
2034 * IPython/numutils.py (identity): new function, for building
2030 arbitrary rank Kronecker deltas (mostly backwards compatible with
2035 arbitrary rank Kronecker deltas (mostly backwards compatible with
2031 Numeric.identity)
2036 Numeric.identity)
2032
2037
2033 2003-06-03 Fernando Perez <fperez@colorado.edu>
2038 2003-06-03 Fernando Perez <fperez@colorado.edu>
2034
2039
2035 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2040 * IPython/iplib.py (InteractiveShell.handle_magic): protect
2036 arguments passed to magics with spaces, to allow trailing '\' to
2041 arguments passed to magics with spaces, to allow trailing '\' to
2037 work normally (mainly for Windows users).
2042 work normally (mainly for Windows users).
2038
2043
2039 2003-05-29 Fernando Perez <fperez@colorado.edu>
2044 2003-05-29 Fernando Perez <fperez@colorado.edu>
2040
2045
2041 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2046 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
2042 instead of pydoc.help. This fixes a bizarre behavior where
2047 instead of pydoc.help. This fixes a bizarre behavior where
2043 printing '%s' % locals() would trigger the help system. Now
2048 printing '%s' % locals() would trigger the help system. Now
2044 ipython behaves like normal python does.
2049 ipython behaves like normal python does.
2045
2050
2046 Note that if one does 'from pydoc import help', the bizarre
2051 Note that if one does 'from pydoc import help', the bizarre
2047 behavior returns, but this will also happen in normal python, so
2052 behavior returns, but this will also happen in normal python, so
2048 it's not an ipython bug anymore (it has to do with how pydoc.help
2053 it's not an ipython bug anymore (it has to do with how pydoc.help
2049 is implemented).
2054 is implemented).
2050
2055
2051 2003-05-22 Fernando Perez <fperez@colorado.edu>
2056 2003-05-22 Fernando Perez <fperez@colorado.edu>
2052
2057
2053 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2058 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
2054 return [] instead of None when nothing matches, also match to end
2059 return [] instead of None when nothing matches, also match to end
2055 of line. Patch by Gary Bishop.
2060 of line. Patch by Gary Bishop.
2056
2061
2057 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2062 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
2058 protection as before, for files passed on the command line. This
2063 protection as before, for files passed on the command line. This
2059 prevents the CrashHandler from kicking in if user files call into
2064 prevents the CrashHandler from kicking in if user files call into
2060 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2065 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
2061 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2066 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
2062
2067
2063 2003-05-20 *** Released version 0.4.0
2068 2003-05-20 *** Released version 0.4.0
2064
2069
2065 2003-05-20 Fernando Perez <fperez@colorado.edu>
2070 2003-05-20 Fernando Perez <fperez@colorado.edu>
2066
2071
2067 * setup.py: added support for manpages. It's a bit hackish b/c of
2072 * setup.py: added support for manpages. It's a bit hackish b/c of
2068 a bug in the way the bdist_rpm distutils target handles gzipped
2073 a bug in the way the bdist_rpm distutils target handles gzipped
2069 manpages, but it works. After a patch by Jack.
2074 manpages, but it works. After a patch by Jack.
2070
2075
2071 2003-05-19 Fernando Perez <fperez@colorado.edu>
2076 2003-05-19 Fernando Perez <fperez@colorado.edu>
2072
2077
2073 * IPython/numutils.py: added a mockup of the kinds module, since
2078 * IPython/numutils.py: added a mockup of the kinds module, since
2074 it was recently removed from Numeric. This way, numutils will
2079 it was recently removed from Numeric. This way, numutils will
2075 work for all users even if they are missing kinds.
2080 work for all users even if they are missing kinds.
2076
2081
2077 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2082 * IPython/Magic.py (Magic._ofind): Harden against an inspect
2078 failure, which can occur with SWIG-wrapped extensions. After a
2083 failure, which can occur with SWIG-wrapped extensions. After a
2079 crash report from Prabhu.
2084 crash report from Prabhu.
2080
2085
2081 2003-05-16 Fernando Perez <fperez@colorado.edu>
2086 2003-05-16 Fernando Perez <fperez@colorado.edu>
2082
2087
2083 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2088 * IPython/iplib.py (InteractiveShell.excepthook): New method to
2084 protect ipython from user code which may call directly
2089 protect ipython from user code which may call directly
2085 sys.excepthook (this looks like an ipython crash to the user, even
2090 sys.excepthook (this looks like an ipython crash to the user, even
2086 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2091 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2087 This is especially important to help users of WxWindows, but may
2092 This is especially important to help users of WxWindows, but may
2088 also be useful in other cases.
2093 also be useful in other cases.
2089
2094
2090 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2095 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
2091 an optional tb_offset to be specified, and to preserve exception
2096 an optional tb_offset to be specified, and to preserve exception
2092 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2097 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
2093
2098
2094 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2099 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
2095
2100
2096 2003-05-15 Fernando Perez <fperez@colorado.edu>
2101 2003-05-15 Fernando Perez <fperez@colorado.edu>
2097
2102
2098 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2103 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
2099 installing for a new user under Windows.
2104 installing for a new user under Windows.
2100
2105
2101 2003-05-12 Fernando Perez <fperez@colorado.edu>
2106 2003-05-12 Fernando Perez <fperez@colorado.edu>
2102
2107
2103 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2108 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
2104 handler for Emacs comint-based lines. Currently it doesn't do
2109 handler for Emacs comint-based lines. Currently it doesn't do
2105 much (but importantly, it doesn't update the history cache). In
2110 much (but importantly, it doesn't update the history cache). In
2106 the future it may be expanded if Alex needs more functionality
2111 the future it may be expanded if Alex needs more functionality
2107 there.
2112 there.
2108
2113
2109 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2114 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
2110 info to crash reports.
2115 info to crash reports.
2111
2116
2112 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2117 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
2113 just like Python's -c. Also fixed crash with invalid -color
2118 just like Python's -c. Also fixed crash with invalid -color
2114 option value at startup. Thanks to Will French
2119 option value at startup. Thanks to Will French
2115 <wfrench-AT-bestweb.net> for the bug report.
2120 <wfrench-AT-bestweb.net> for the bug report.
2116
2121
2117 2003-05-09 Fernando Perez <fperez@colorado.edu>
2122 2003-05-09 Fernando Perez <fperez@colorado.edu>
2118
2123
2119 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2124 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
2120 to EvalDict (it's a mapping, after all) and simplified its code
2125 to EvalDict (it's a mapping, after all) and simplified its code
2121 quite a bit, after a nice discussion on c.l.py where Gustavo
2126 quite a bit, after a nice discussion on c.l.py where Gustavo
2122 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2127 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
2123
2128
2124 2003-04-30 Fernando Perez <fperez@colorado.edu>
2129 2003-04-30 Fernando Perez <fperez@colorado.edu>
2125
2130
2126 * IPython/genutils.py (timings_out): modified it to reduce its
2131 * IPython/genutils.py (timings_out): modified it to reduce its
2127 overhead in the common reps==1 case.
2132 overhead in the common reps==1 case.
2128
2133
2129 2003-04-29 Fernando Perez <fperez@colorado.edu>
2134 2003-04-29 Fernando Perez <fperez@colorado.edu>
2130
2135
2131 * IPython/genutils.py (timings_out): Modified to use the resource
2136 * IPython/genutils.py (timings_out): Modified to use the resource
2132 module, which avoids the wraparound problems of time.clock().
2137 module, which avoids the wraparound problems of time.clock().
2133
2138
2134 2003-04-17 *** Released version 0.2.15pre4
2139 2003-04-17 *** Released version 0.2.15pre4
2135
2140
2136 2003-04-17 Fernando Perez <fperez@colorado.edu>
2141 2003-04-17 Fernando Perez <fperez@colorado.edu>
2137
2142
2138 * setup.py (scriptfiles): Split windows-specific stuff over to a
2143 * setup.py (scriptfiles): Split windows-specific stuff over to a
2139 separate file, in an attempt to have a Windows GUI installer.
2144 separate file, in an attempt to have a Windows GUI installer.
2140 That didn't work, but part of the groundwork is done.
2145 That didn't work, but part of the groundwork is done.
2141
2146
2142 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2147 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
2143 indent/unindent with 4 spaces. Particularly useful in combination
2148 indent/unindent with 4 spaces. Particularly useful in combination
2144 with the new auto-indent option.
2149 with the new auto-indent option.
2145
2150
2146 2003-04-16 Fernando Perez <fperez@colorado.edu>
2151 2003-04-16 Fernando Perez <fperez@colorado.edu>
2147
2152
2148 * IPython/Magic.py: various replacements of self.rc for
2153 * IPython/Magic.py: various replacements of self.rc for
2149 self.shell.rc. A lot more remains to be done to fully disentangle
2154 self.shell.rc. A lot more remains to be done to fully disentangle
2150 this class from the main Shell class.
2155 this class from the main Shell class.
2151
2156
2152 * IPython/GnuplotRuntime.py: added checks for mouse support so
2157 * IPython/GnuplotRuntime.py: added checks for mouse support so
2153 that we don't try to enable it if the current gnuplot doesn't
2158 that we don't try to enable it if the current gnuplot doesn't
2154 really support it. Also added checks so that we don't try to
2159 really support it. Also added checks so that we don't try to
2155 enable persist under Windows (where Gnuplot doesn't recognize the
2160 enable persist under Windows (where Gnuplot doesn't recognize the
2156 option).
2161 option).
2157
2162
2158 * IPython/iplib.py (InteractiveShell.interact): Added optional
2163 * IPython/iplib.py (InteractiveShell.interact): Added optional
2159 auto-indenting code, after a patch by King C. Shu
2164 auto-indenting code, after a patch by King C. Shu
2160 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2165 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
2161 get along well with pasting indented code. If I ever figure out
2166 get along well with pasting indented code. If I ever figure out
2162 how to make that part go well, it will become on by default.
2167 how to make that part go well, it will become on by default.
2163
2168
2164 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2169 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
2165 crash ipython if there was an unmatched '%' in the user's prompt
2170 crash ipython if there was an unmatched '%' in the user's prompt
2166 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2171 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2167
2172
2168 * IPython/iplib.py (InteractiveShell.interact): removed the
2173 * IPython/iplib.py (InteractiveShell.interact): removed the
2169 ability to ask the user whether he wants to crash or not at the
2174 ability to ask the user whether he wants to crash or not at the
2170 'last line' exception handler. Calling functions at that point
2175 'last line' exception handler. Calling functions at that point
2171 changes the stack, and the error reports would have incorrect
2176 changes the stack, and the error reports would have incorrect
2172 tracebacks.
2177 tracebacks.
2173
2178
2174 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2179 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
2175 pass through a peger a pretty-printed form of any object. After a
2180 pass through a peger a pretty-printed form of any object. After a
2176 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2181 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
2177
2182
2178 2003-04-14 Fernando Perez <fperez@colorado.edu>
2183 2003-04-14 Fernando Perez <fperez@colorado.edu>
2179
2184
2180 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2185 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
2181 all files in ~ would be modified at first install (instead of
2186 all files in ~ would be modified at first install (instead of
2182 ~/.ipython). This could be potentially disastrous, as the
2187 ~/.ipython). This could be potentially disastrous, as the
2183 modification (make line-endings native) could damage binary files.
2188 modification (make line-endings native) could damage binary files.
2184
2189
2185 2003-04-10 Fernando Perez <fperez@colorado.edu>
2190 2003-04-10 Fernando Perez <fperez@colorado.edu>
2186
2191
2187 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2192 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
2188 handle only lines which are invalid python. This now means that
2193 handle only lines which are invalid python. This now means that
2189 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2194 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
2190 for the bug report.
2195 for the bug report.
2191
2196
2192 2003-04-01 Fernando Perez <fperez@colorado.edu>
2197 2003-04-01 Fernando Perez <fperez@colorado.edu>
2193
2198
2194 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2199 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
2195 where failing to set sys.last_traceback would crash pdb.pm().
2200 where failing to set sys.last_traceback would crash pdb.pm().
2196 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2201 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
2197 report.
2202 report.
2198
2203
2199 2003-03-25 Fernando Perez <fperez@colorado.edu>
2204 2003-03-25 Fernando Perez <fperez@colorado.edu>
2200
2205
2201 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2206 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
2202 before printing it (it had a lot of spurious blank lines at the
2207 before printing it (it had a lot of spurious blank lines at the
2203 end).
2208 end).
2204
2209
2205 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2210 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
2206 output would be sent 21 times! Obviously people don't use this
2211 output would be sent 21 times! Obviously people don't use this
2207 too often, or I would have heard about it.
2212 too often, or I would have heard about it.
2208
2213
2209 2003-03-24 Fernando Perez <fperez@colorado.edu>
2214 2003-03-24 Fernando Perez <fperez@colorado.edu>
2210
2215
2211 * setup.py (scriptfiles): renamed the data_files parameter from
2216 * setup.py (scriptfiles): renamed the data_files parameter from
2212 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2217 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
2213 for the patch.
2218 for the patch.
2214
2219
2215 2003-03-20 Fernando Perez <fperez@colorado.edu>
2220 2003-03-20 Fernando Perez <fperez@colorado.edu>
2216
2221
2217 * IPython/genutils.py (error): added error() and fatal()
2222 * IPython/genutils.py (error): added error() and fatal()
2218 functions.
2223 functions.
2219
2224
2220 2003-03-18 *** Released version 0.2.15pre3
2225 2003-03-18 *** Released version 0.2.15pre3
2221
2226
2222 2003-03-18 Fernando Perez <fperez@colorado.edu>
2227 2003-03-18 Fernando Perez <fperez@colorado.edu>
2223
2228
2224 * setupext/install_data_ext.py
2229 * setupext/install_data_ext.py
2225 (install_data_ext.initialize_options): Class contributed by Jack
2230 (install_data_ext.initialize_options): Class contributed by Jack
2226 Moffit for fixing the old distutils hack. He is sending this to
2231 Moffit for fixing the old distutils hack. He is sending this to
2227 the distutils folks so in the future we may not need it as a
2232 the distutils folks so in the future we may not need it as a
2228 private fix.
2233 private fix.
2229
2234
2230 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2235 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
2231 changes for Debian packaging. See his patch for full details.
2236 changes for Debian packaging. See his patch for full details.
2232 The old distutils hack of making the ipythonrc* files carry a
2237 The old distutils hack of making the ipythonrc* files carry a
2233 bogus .py extension is gone, at last. Examples were moved to a
2238 bogus .py extension is gone, at last. Examples were moved to a
2234 separate subdir under doc/, and the separate executable scripts
2239 separate subdir under doc/, and the separate executable scripts
2235 now live in their own directory. Overall a great cleanup. The
2240 now live in their own directory. Overall a great cleanup. The
2236 manual was updated to use the new files, and setup.py has been
2241 manual was updated to use the new files, and setup.py has been
2237 fixed for this setup.
2242 fixed for this setup.
2238
2243
2239 * IPython/PyColorize.py (Parser.usage): made non-executable and
2244 * IPython/PyColorize.py (Parser.usage): made non-executable and
2240 created a pycolor wrapper around it to be included as a script.
2245 created a pycolor wrapper around it to be included as a script.
2241
2246
2242 2003-03-12 *** Released version 0.2.15pre2
2247 2003-03-12 *** Released version 0.2.15pre2
2243
2248
2244 2003-03-12 Fernando Perez <fperez@colorado.edu>
2249 2003-03-12 Fernando Perez <fperez@colorado.edu>
2245
2250
2246 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2251 * IPython/ColorANSI.py (make_color_table): Finally fixed the
2247 long-standing problem with garbage characters in some terminals.
2252 long-standing problem with garbage characters in some terminals.
2248 The issue was really that the \001 and \002 escapes must _only_ be
2253 The issue was really that the \001 and \002 escapes must _only_ be
2249 passed to input prompts (which call readline), but _never_ to
2254 passed to input prompts (which call readline), but _never_ to
2250 normal text to be printed on screen. I changed ColorANSI to have
2255 normal text to be printed on screen. I changed ColorANSI to have
2251 two classes: TermColors and InputTermColors, each with the
2256 two classes: TermColors and InputTermColors, each with the
2252 appropriate escapes for input prompts or normal text. The code in
2257 appropriate escapes for input prompts or normal text. The code in
2253 Prompts.py got slightly more complicated, but this very old and
2258 Prompts.py got slightly more complicated, but this very old and
2254 annoying bug is finally fixed.
2259 annoying bug is finally fixed.
2255
2260
2256 All the credit for nailing down the real origin of this problem
2261 All the credit for nailing down the real origin of this problem
2257 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2262 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
2258 *Many* thanks to him for spending quite a bit of effort on this.
2263 *Many* thanks to him for spending quite a bit of effort on this.
2259
2264
2260 2003-03-05 *** Released version 0.2.15pre1
2265 2003-03-05 *** Released version 0.2.15pre1
2261
2266
2262 2003-03-03 Fernando Perez <fperez@colorado.edu>
2267 2003-03-03 Fernando Perez <fperez@colorado.edu>
2263
2268
2264 * IPython/FakeModule.py: Moved the former _FakeModule to a
2269 * IPython/FakeModule.py: Moved the former _FakeModule to a
2265 separate file, because it's also needed by Magic (to fix a similar
2270 separate file, because it's also needed by Magic (to fix a similar
2266 pickle-related issue in @run).
2271 pickle-related issue in @run).
2267
2272
2268 2003-03-02 Fernando Perez <fperez@colorado.edu>
2273 2003-03-02 Fernando Perez <fperez@colorado.edu>
2269
2274
2270 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2275 * IPython/Magic.py (Magic.magic_autocall): new magic to control
2271 the autocall option at runtime.
2276 the autocall option at runtime.
2272 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2277 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
2273 across Magic.py to start separating Magic from InteractiveShell.
2278 across Magic.py to start separating Magic from InteractiveShell.
2274 (Magic._ofind): Fixed to return proper namespace for dotted
2279 (Magic._ofind): Fixed to return proper namespace for dotted
2275 names. Before, a dotted name would always return 'not currently
2280 names. Before, a dotted name would always return 'not currently
2276 defined', because it would find the 'parent'. s.x would be found,
2281 defined', because it would find the 'parent'. s.x would be found,
2277 but since 'x' isn't defined by itself, it would get confused.
2282 but since 'x' isn't defined by itself, it would get confused.
2278 (Magic.magic_run): Fixed pickling problems reported by Ralf
2283 (Magic.magic_run): Fixed pickling problems reported by Ralf
2279 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2284 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
2280 that I'd used when Mike Heeter reported similar issues at the
2285 that I'd used when Mike Heeter reported similar issues at the
2281 top-level, but now for @run. It boils down to injecting the
2286 top-level, but now for @run. It boils down to injecting the
2282 namespace where code is being executed with something that looks
2287 namespace where code is being executed with something that looks
2283 enough like a module to fool pickle.dump(). Since a pickle stores
2288 enough like a module to fool pickle.dump(). Since a pickle stores
2284 a named reference to the importing module, we need this for
2289 a named reference to the importing module, we need this for
2285 pickles to save something sensible.
2290 pickles to save something sensible.
2286
2291
2287 * IPython/ipmaker.py (make_IPython): added an autocall option.
2292 * IPython/ipmaker.py (make_IPython): added an autocall option.
2288
2293
2289 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2294 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
2290 the auto-eval code. Now autocalling is an option, and the code is
2295 the auto-eval code. Now autocalling is an option, and the code is
2291 also vastly safer. There is no more eval() involved at all.
2296 also vastly safer. There is no more eval() involved at all.
2292
2297
2293 2003-03-01 Fernando Perez <fperez@colorado.edu>
2298 2003-03-01 Fernando Perez <fperez@colorado.edu>
2294
2299
2295 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2300 * IPython/Magic.py (Magic._ofind): Changed interface to return a
2296 dict with named keys instead of a tuple.
2301 dict with named keys instead of a tuple.
2297
2302
2298 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2303 * IPython: Started using CVS for IPython as of 0.2.15pre1.
2299
2304
2300 * setup.py (make_shortcut): Fixed message about directories
2305 * setup.py (make_shortcut): Fixed message about directories
2301 created during Windows installation (the directories were ok, just
2306 created during Windows installation (the directories were ok, just
2302 the printed message was misleading). Thanks to Chris Liechti
2307 the printed message was misleading). Thanks to Chris Liechti
2303 <cliechti-AT-gmx.net> for the heads up.
2308 <cliechti-AT-gmx.net> for the heads up.
2304
2309
2305 2003-02-21 Fernando Perez <fperez@colorado.edu>
2310 2003-02-21 Fernando Perez <fperez@colorado.edu>
2306
2311
2307 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2312 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
2308 of ValueError exception when checking for auto-execution. This
2313 of ValueError exception when checking for auto-execution. This
2309 one is raised by things like Numeric arrays arr.flat when the
2314 one is raised by things like Numeric arrays arr.flat when the
2310 array is non-contiguous.
2315 array is non-contiguous.
2311
2316
2312 2003-01-31 Fernando Perez <fperez@colorado.edu>
2317 2003-01-31 Fernando Perez <fperez@colorado.edu>
2313
2318
2314 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2319 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
2315 not return any value at all (even though the command would get
2320 not return any value at all (even though the command would get
2316 executed).
2321 executed).
2317 (xsys): Flush stdout right after printing the command to ensure
2322 (xsys): Flush stdout right after printing the command to ensure
2318 proper ordering of commands and command output in the total
2323 proper ordering of commands and command output in the total
2319 output.
2324 output.
2320 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2325 (SystemExec/xsys/bq): Switched the names of xsys/bq and
2321 system/getoutput as defaults. The old ones are kept for
2326 system/getoutput as defaults. The old ones are kept for
2322 compatibility reasons, so no code which uses this library needs
2327 compatibility reasons, so no code which uses this library needs
2323 changing.
2328 changing.
2324
2329
2325 2003-01-27 *** Released version 0.2.14
2330 2003-01-27 *** Released version 0.2.14
2326
2331
2327 2003-01-25 Fernando Perez <fperez@colorado.edu>
2332 2003-01-25 Fernando Perez <fperez@colorado.edu>
2328
2333
2329 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2334 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
2330 functions defined in previous edit sessions could not be re-edited
2335 functions defined in previous edit sessions could not be re-edited
2331 (because the temp files were immediately removed). Now temp files
2336 (because the temp files were immediately removed). Now temp files
2332 are removed only at IPython's exit.
2337 are removed only at IPython's exit.
2333 (Magic.magic_run): Improved @run to perform shell-like expansions
2338 (Magic.magic_run): Improved @run to perform shell-like expansions
2334 on its arguments (~users and $VARS). With this, @run becomes more
2339 on its arguments (~users and $VARS). With this, @run becomes more
2335 like a normal command-line.
2340 like a normal command-line.
2336
2341
2337 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2342 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
2338 bugs related to embedding and cleaned up that code. A fairly
2343 bugs related to embedding and cleaned up that code. A fairly
2339 important one was the impossibility to access the global namespace
2344 important one was the impossibility to access the global namespace
2340 through the embedded IPython (only local variables were visible).
2345 through the embedded IPython (only local variables were visible).
2341
2346
2342 2003-01-14 Fernando Perez <fperez@colorado.edu>
2347 2003-01-14 Fernando Perez <fperez@colorado.edu>
2343
2348
2344 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2349 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
2345 auto-calling to be a bit more conservative. Now it doesn't get
2350 auto-calling to be a bit more conservative. Now it doesn't get
2346 triggered if any of '!=()<>' are in the rest of the input line, to
2351 triggered if any of '!=()<>' are in the rest of the input line, to
2347 allow comparing callables. Thanks to Alex for the heads up.
2352 allow comparing callables. Thanks to Alex for the heads up.
2348
2353
2349 2003-01-07 Fernando Perez <fperez@colorado.edu>
2354 2003-01-07 Fernando Perez <fperez@colorado.edu>
2350
2355
2351 * IPython/genutils.py (page): fixed estimation of the number of
2356 * IPython/genutils.py (page): fixed estimation of the number of
2352 lines in a string to be paged to simply count newlines. This
2357 lines in a string to be paged to simply count newlines. This
2353 prevents over-guessing due to embedded escape sequences. A better
2358 prevents over-guessing due to embedded escape sequences. A better
2354 long-term solution would involve stripping out the control chars
2359 long-term solution would involve stripping out the control chars
2355 for the count, but it's potentially so expensive I just don't
2360 for the count, but it's potentially so expensive I just don't
2356 think it's worth doing.
2361 think it's worth doing.
2357
2362
2358 2002-12-19 *** Released version 0.2.14pre50
2363 2002-12-19 *** Released version 0.2.14pre50
2359
2364
2360 2002-12-19 Fernando Perez <fperez@colorado.edu>
2365 2002-12-19 Fernando Perez <fperez@colorado.edu>
2361
2366
2362 * tools/release (version): Changed release scripts to inform
2367 * tools/release (version): Changed release scripts to inform
2363 Andrea and build a NEWS file with a list of recent changes.
2368 Andrea and build a NEWS file with a list of recent changes.
2364
2369
2365 * IPython/ColorANSI.py (__all__): changed terminal detection
2370 * IPython/ColorANSI.py (__all__): changed terminal detection
2366 code. Seems to work better for xterms without breaking
2371 code. Seems to work better for xterms without breaking
2367 konsole. Will need more testing to determine if WinXP and Mac OSX
2372 konsole. Will need more testing to determine if WinXP and Mac OSX
2368 also work ok.
2373 also work ok.
2369
2374
2370 2002-12-18 *** Released version 0.2.14pre49
2375 2002-12-18 *** Released version 0.2.14pre49
2371
2376
2372 2002-12-18 Fernando Perez <fperez@colorado.edu>
2377 2002-12-18 Fernando Perez <fperez@colorado.edu>
2373
2378
2374 * Docs: added new info about Mac OSX, from Andrea.
2379 * Docs: added new info about Mac OSX, from Andrea.
2375
2380
2376 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2381 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
2377 allow direct plotting of python strings whose format is the same
2382 allow direct plotting of python strings whose format is the same
2378 of gnuplot data files.
2383 of gnuplot data files.
2379
2384
2380 2002-12-16 Fernando Perez <fperez@colorado.edu>
2385 2002-12-16 Fernando Perez <fperez@colorado.edu>
2381
2386
2382 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2387 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
2383 value of exit question to be acknowledged.
2388 value of exit question to be acknowledged.
2384
2389
2385 2002-12-03 Fernando Perez <fperez@colorado.edu>
2390 2002-12-03 Fernando Perez <fperez@colorado.edu>
2386
2391
2387 * IPython/ipmaker.py: removed generators, which had been added
2392 * IPython/ipmaker.py: removed generators, which had been added
2388 by mistake in an earlier debugging run. This was causing trouble
2393 by mistake in an earlier debugging run. This was causing trouble
2389 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2394 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
2390 for pointing this out.
2395 for pointing this out.
2391
2396
2392 2002-11-17 Fernando Perez <fperez@colorado.edu>
2397 2002-11-17 Fernando Perez <fperez@colorado.edu>
2393
2398
2394 * Manual: updated the Gnuplot section.
2399 * Manual: updated the Gnuplot section.
2395
2400
2396 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2401 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
2397 a much better split of what goes in Runtime and what goes in
2402 a much better split of what goes in Runtime and what goes in
2398 Interactive.
2403 Interactive.
2399
2404
2400 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2405 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
2401 being imported from iplib.
2406 being imported from iplib.
2402
2407
2403 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2408 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
2404 for command-passing. Now the global Gnuplot instance is called
2409 for command-passing. Now the global Gnuplot instance is called
2405 'gp' instead of 'g', which was really a far too fragile and
2410 'gp' instead of 'g', which was really a far too fragile and
2406 common name.
2411 common name.
2407
2412
2408 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2413 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
2409 bounding boxes generated by Gnuplot for square plots.
2414 bounding boxes generated by Gnuplot for square plots.
2410
2415
2411 * IPython/genutils.py (popkey): new function added. I should
2416 * IPython/genutils.py (popkey): new function added. I should
2412 suggest this on c.l.py as a dict method, it seems useful.
2417 suggest this on c.l.py as a dict method, it seems useful.
2413
2418
2414 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2419 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
2415 to transparently handle PostScript generation. MUCH better than
2420 to transparently handle PostScript generation. MUCH better than
2416 the previous plot_eps/replot_eps (which I removed now). The code
2421 the previous plot_eps/replot_eps (which I removed now). The code
2417 is also fairly clean and well documented now (including
2422 is also fairly clean and well documented now (including
2418 docstrings).
2423 docstrings).
2419
2424
2420 2002-11-13 Fernando Perez <fperez@colorado.edu>
2425 2002-11-13 Fernando Perez <fperez@colorado.edu>
2421
2426
2422 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2427 * IPython/Magic.py (Magic.magic_edit): fixed docstring
2423 (inconsistent with options).
2428 (inconsistent with options).
2424
2429
2425 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2430 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
2426 manually disabled, I don't know why. Fixed it.
2431 manually disabled, I don't know why. Fixed it.
2427 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2432 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
2428 eps output.
2433 eps output.
2429
2434
2430 2002-11-12 Fernando Perez <fperez@colorado.edu>
2435 2002-11-12 Fernando Perez <fperez@colorado.edu>
2431
2436
2432 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2437 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
2433 don't propagate up to caller. Fixes crash reported by François
2438 don't propagate up to caller. Fixes crash reported by François
2434 Pinard.
2439 Pinard.
2435
2440
2436 2002-11-09 Fernando Perez <fperez@colorado.edu>
2441 2002-11-09 Fernando Perez <fperez@colorado.edu>
2437
2442
2438 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2443 * IPython/ipmaker.py (make_IPython): fixed problem with writing
2439 history file for new users.
2444 history file for new users.
2440 (make_IPython): fixed bug where initial install would leave the
2445 (make_IPython): fixed bug where initial install would leave the
2441 user running in the .ipython dir.
2446 user running in the .ipython dir.
2442 (make_IPython): fixed bug where config dir .ipython would be
2447 (make_IPython): fixed bug where config dir .ipython would be
2443 created regardless of the given -ipythondir option. Thanks to Cory
2448 created regardless of the given -ipythondir option. Thanks to Cory
2444 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2449 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
2445
2450
2446 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2451 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
2447 type confirmations. Will need to use it in all of IPython's code
2452 type confirmations. Will need to use it in all of IPython's code
2448 consistently.
2453 consistently.
2449
2454
2450 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2455 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
2451 context to print 31 lines instead of the default 5. This will make
2456 context to print 31 lines instead of the default 5. This will make
2452 the crash reports extremely detailed in case the problem is in
2457 the crash reports extremely detailed in case the problem is in
2453 libraries I don't have access to.
2458 libraries I don't have access to.
2454
2459
2455 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2460 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
2456 line of defense' code to still crash, but giving users fair
2461 line of defense' code to still crash, but giving users fair
2457 warning. I don't want internal errors to go unreported: if there's
2462 warning. I don't want internal errors to go unreported: if there's
2458 an internal problem, IPython should crash and generate a full
2463 an internal problem, IPython should crash and generate a full
2459 report.
2464 report.
2460
2465
2461 2002-11-08 Fernando Perez <fperez@colorado.edu>
2466 2002-11-08 Fernando Perez <fperez@colorado.edu>
2462
2467
2463 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2468 * IPython/iplib.py (InteractiveShell.interact): added code to trap
2464 otherwise uncaught exceptions which can appear if people set
2469 otherwise uncaught exceptions which can appear if people set
2465 sys.stdout to something badly broken. Thanks to a crash report
2470 sys.stdout to something badly broken. Thanks to a crash report
2466 from henni-AT-mail.brainbot.com.
2471 from henni-AT-mail.brainbot.com.
2467
2472
2468 2002-11-04 Fernando Perez <fperez@colorado.edu>
2473 2002-11-04 Fernando Perez <fperez@colorado.edu>
2469
2474
2470 * IPython/iplib.py (InteractiveShell.interact): added
2475 * IPython/iplib.py (InteractiveShell.interact): added
2471 __IPYTHON__active to the builtins. It's a flag which goes on when
2476 __IPYTHON__active to the builtins. It's a flag which goes on when
2472 the interaction starts and goes off again when it stops. This
2477 the interaction starts and goes off again when it stops. This
2473 allows embedding code to detect being inside IPython. Before this
2478 allows embedding code to detect being inside IPython. Before this
2474 was done via __IPYTHON__, but that only shows that an IPython
2479 was done via __IPYTHON__, but that only shows that an IPython
2475 instance has been created.
2480 instance has been created.
2476
2481
2477 * IPython/Magic.py (Magic.magic_env): I realized that in a
2482 * IPython/Magic.py (Magic.magic_env): I realized that in a
2478 UserDict, instance.data holds the data as a normal dict. So I
2483 UserDict, instance.data holds the data as a normal dict. So I
2479 modified @env to return os.environ.data instead of rebuilding a
2484 modified @env to return os.environ.data instead of rebuilding a
2480 dict by hand.
2485 dict by hand.
2481
2486
2482 2002-11-02 Fernando Perez <fperez@colorado.edu>
2487 2002-11-02 Fernando Perez <fperez@colorado.edu>
2483
2488
2484 * IPython/genutils.py (warn): changed so that level 1 prints no
2489 * IPython/genutils.py (warn): changed so that level 1 prints no
2485 header. Level 2 is now the default (with 'WARNING' header, as
2490 header. Level 2 is now the default (with 'WARNING' header, as
2486 before). I think I tracked all places where changes were needed in
2491 before). I think I tracked all places where changes were needed in
2487 IPython, but outside code using the old level numbering may have
2492 IPython, but outside code using the old level numbering may have
2488 broken.
2493 broken.
2489
2494
2490 * IPython/iplib.py (InteractiveShell.runcode): added this to
2495 * IPython/iplib.py (InteractiveShell.runcode): added this to
2491 handle the tracebacks in SystemExit traps correctly. The previous
2496 handle the tracebacks in SystemExit traps correctly. The previous
2492 code (through interact) was printing more of the stack than
2497 code (through interact) was printing more of the stack than
2493 necessary, showing IPython internal code to the user.
2498 necessary, showing IPython internal code to the user.
2494
2499
2495 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2500 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
2496 default. Now that the default at the confirmation prompt is yes,
2501 default. Now that the default at the confirmation prompt is yes,
2497 it's not so intrusive. François' argument that ipython sessions
2502 it's not so intrusive. François' argument that ipython sessions
2498 tend to be complex enough not to lose them from an accidental C-d,
2503 tend to be complex enough not to lose them from an accidental C-d,
2499 is a valid one.
2504 is a valid one.
2500
2505
2501 * IPython/iplib.py (InteractiveShell.interact): added a
2506 * IPython/iplib.py (InteractiveShell.interact): added a
2502 showtraceback() call to the SystemExit trap, and modified the exit
2507 showtraceback() call to the SystemExit trap, and modified the exit
2503 confirmation to have yes as the default.
2508 confirmation to have yes as the default.
2504
2509
2505 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2510 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
2506 this file. It's been gone from the code for a long time, this was
2511 this file. It's been gone from the code for a long time, this was
2507 simply leftover junk.
2512 simply leftover junk.
2508
2513
2509 2002-11-01 Fernando Perez <fperez@colorado.edu>
2514 2002-11-01 Fernando Perez <fperez@colorado.edu>
2510
2515
2511 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2516 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
2512 added. If set, IPython now traps EOF and asks for
2517 added. If set, IPython now traps EOF and asks for
2513 confirmation. After a request by François Pinard.
2518 confirmation. After a request by François Pinard.
2514
2519
2515 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2520 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
2516 of @abort, and with a new (better) mechanism for handling the
2521 of @abort, and with a new (better) mechanism for handling the
2517 exceptions.
2522 exceptions.
2518
2523
2519 2002-10-27 Fernando Perez <fperez@colorado.edu>
2524 2002-10-27 Fernando Perez <fperez@colorado.edu>
2520
2525
2521 * IPython/usage.py (__doc__): updated the --help information and
2526 * IPython/usage.py (__doc__): updated the --help information and
2522 the ipythonrc file to indicate that -log generates
2527 the ipythonrc file to indicate that -log generates
2523 ./ipython.log. Also fixed the corresponding info in @logstart.
2528 ./ipython.log. Also fixed the corresponding info in @logstart.
2524 This and several other fixes in the manuals thanks to reports by
2529 This and several other fixes in the manuals thanks to reports by
2525 François Pinard <pinard-AT-iro.umontreal.ca>.
2530 François Pinard <pinard-AT-iro.umontreal.ca>.
2526
2531
2527 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2532 * IPython/Logger.py (Logger.switch_log): Fixed error message to
2528 refer to @logstart (instead of @log, which doesn't exist).
2533 refer to @logstart (instead of @log, which doesn't exist).
2529
2534
2530 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2535 * IPython/iplib.py (InteractiveShell._prefilter): fixed
2531 AttributeError crash. Thanks to Christopher Armstrong
2536 AttributeError crash. Thanks to Christopher Armstrong
2532 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2537 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
2533 introduced recently (in 0.2.14pre37) with the fix to the eval
2538 introduced recently (in 0.2.14pre37) with the fix to the eval
2534 problem mentioned below.
2539 problem mentioned below.
2535
2540
2536 2002-10-17 Fernando Perez <fperez@colorado.edu>
2541 2002-10-17 Fernando Perez <fperez@colorado.edu>
2537
2542
2538 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2543 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
2539 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2544 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
2540
2545
2541 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2546 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
2542 this function to fix a problem reported by Alex Schmolck. He saw
2547 this function to fix a problem reported by Alex Schmolck. He saw
2543 it with list comprehensions and generators, which were getting
2548 it with list comprehensions and generators, which were getting
2544 called twice. The real problem was an 'eval' call in testing for
2549 called twice. The real problem was an 'eval' call in testing for
2545 automagic which was evaluating the input line silently.
2550 automagic which was evaluating the input line silently.
2546
2551
2547 This is a potentially very nasty bug, if the input has side
2552 This is a potentially very nasty bug, if the input has side
2548 effects which must not be repeated. The code is much cleaner now,
2553 effects which must not be repeated. The code is much cleaner now,
2549 without any blanket 'except' left and with a regexp test for
2554 without any blanket 'except' left and with a regexp test for
2550 actual function names.
2555 actual function names.
2551
2556
2552 But an eval remains, which I'm not fully comfortable with. I just
2557 But an eval remains, which I'm not fully comfortable with. I just
2553 don't know how to find out if an expression could be a callable in
2558 don't know how to find out if an expression could be a callable in
2554 the user's namespace without doing an eval on the string. However
2559 the user's namespace without doing an eval on the string. However
2555 that string is now much more strictly checked so that no code
2560 that string is now much more strictly checked so that no code
2556 slips by, so the eval should only happen for things that can
2561 slips by, so the eval should only happen for things that can
2557 really be only function/method names.
2562 really be only function/method names.
2558
2563
2559 2002-10-15 Fernando Perez <fperez@colorado.edu>
2564 2002-10-15 Fernando Perez <fperez@colorado.edu>
2560
2565
2561 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
2566 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
2562 OSX information to main manual, removed README_Mac_OSX file from
2567 OSX information to main manual, removed README_Mac_OSX file from
2563 distribution. Also updated credits for recent additions.
2568 distribution. Also updated credits for recent additions.
2564
2569
2565 2002-10-10 Fernando Perez <fperez@colorado.edu>
2570 2002-10-10 Fernando Perez <fperez@colorado.edu>
2566
2571
2567 * README_Mac_OSX: Added a README for Mac OSX users for fixing
2572 * README_Mac_OSX: Added a README for Mac OSX users for fixing
2568 terminal-related issues. Many thanks to Andrea Riciputi
2573 terminal-related issues. Many thanks to Andrea Riciputi
2569 <andrea.riciputi-AT-libero.it> for writing it.
2574 <andrea.riciputi-AT-libero.it> for writing it.
2570
2575
2571 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
2576 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
2572 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2577 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
2573
2578
2574 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
2579 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
2575 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
2580 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
2576 <syver-en-AT-online.no> who both submitted patches for this problem.
2581 <syver-en-AT-online.no> who both submitted patches for this problem.
2577
2582
2578 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
2583 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
2579 global embedding to make sure that things don't overwrite user
2584 global embedding to make sure that things don't overwrite user
2580 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
2585 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
2581
2586
2582 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
2587 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
2583 compatibility. Thanks to Hayden Callow
2588 compatibility. Thanks to Hayden Callow
2584 <h.callow-AT-elec.canterbury.ac.nz>
2589 <h.callow-AT-elec.canterbury.ac.nz>
2585
2590
2586 2002-10-04 Fernando Perez <fperez@colorado.edu>
2591 2002-10-04 Fernando Perez <fperez@colorado.edu>
2587
2592
2588 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
2593 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
2589 Gnuplot.File objects.
2594 Gnuplot.File objects.
2590
2595
2591 2002-07-23 Fernando Perez <fperez@colorado.edu>
2596 2002-07-23 Fernando Perez <fperez@colorado.edu>
2592
2597
2593 * IPython/genutils.py (timing): Added timings() and timing() for
2598 * IPython/genutils.py (timing): Added timings() and timing() for
2594 quick access to the most commonly needed data, the execution
2599 quick access to the most commonly needed data, the execution
2595 times. Old timing() renamed to timings_out().
2600 times. Old timing() renamed to timings_out().
2596
2601
2597 2002-07-18 Fernando Perez <fperez@colorado.edu>
2602 2002-07-18 Fernando Perez <fperez@colorado.edu>
2598
2603
2599 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
2604 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
2600 bug with nested instances disrupting the parent's tab completion.
2605 bug with nested instances disrupting the parent's tab completion.
2601
2606
2602 * IPython/iplib.py (all_completions): Added Alex Schmolck's
2607 * IPython/iplib.py (all_completions): Added Alex Schmolck's
2603 all_completions code to begin the emacs integration.
2608 all_completions code to begin the emacs integration.
2604
2609
2605 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
2610 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
2606 argument to allow titling individual arrays when plotting.
2611 argument to allow titling individual arrays when plotting.
2607
2612
2608 2002-07-15 Fernando Perez <fperez@colorado.edu>
2613 2002-07-15 Fernando Perez <fperez@colorado.edu>
2609
2614
2610 * setup.py (make_shortcut): changed to retrieve the value of
2615 * setup.py (make_shortcut): changed to retrieve the value of
2611 'Program Files' directory from the registry (this value changes in
2616 'Program Files' directory from the registry (this value changes in
2612 non-english versions of Windows). Thanks to Thomas Fanslau
2617 non-english versions of Windows). Thanks to Thomas Fanslau
2613 <tfanslau-AT-gmx.de> for the report.
2618 <tfanslau-AT-gmx.de> for the report.
2614
2619
2615 2002-07-10 Fernando Perez <fperez@colorado.edu>
2620 2002-07-10 Fernando Perez <fperez@colorado.edu>
2616
2621
2617 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
2622 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
2618 a bug in pdb, which crashes if a line with only whitespace is
2623 a bug in pdb, which crashes if a line with only whitespace is
2619 entered. Bug report submitted to sourceforge.
2624 entered. Bug report submitted to sourceforge.
2620
2625
2621 2002-07-09 Fernando Perez <fperez@colorado.edu>
2626 2002-07-09 Fernando Perez <fperez@colorado.edu>
2622
2627
2623 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
2628 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
2624 reporting exceptions (it's a bug in inspect.py, I just set a
2629 reporting exceptions (it's a bug in inspect.py, I just set a
2625 workaround).
2630 workaround).
2626
2631
2627 2002-07-08 Fernando Perez <fperez@colorado.edu>
2632 2002-07-08 Fernando Perez <fperez@colorado.edu>
2628
2633
2629 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
2634 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
2630 __IPYTHON__ in __builtins__ to show up in user_ns.
2635 __IPYTHON__ in __builtins__ to show up in user_ns.
2631
2636
2632 2002-07-03 Fernando Perez <fperez@colorado.edu>
2637 2002-07-03 Fernando Perez <fperez@colorado.edu>
2633
2638
2634 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
2639 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
2635 name from @gp_set_instance to @gp_set_default.
2640 name from @gp_set_instance to @gp_set_default.
2636
2641
2637 * IPython/ipmaker.py (make_IPython): default editor value set to
2642 * IPython/ipmaker.py (make_IPython): default editor value set to
2638 '0' (a string), to match the rc file. Otherwise will crash when
2643 '0' (a string), to match the rc file. Otherwise will crash when
2639 .strip() is called on it.
2644 .strip() is called on it.
2640
2645
2641
2646
2642 2002-06-28 Fernando Perez <fperez@colorado.edu>
2647 2002-06-28 Fernando Perez <fperez@colorado.edu>
2643
2648
2644 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
2649 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
2645 of files in current directory when a file is executed via
2650 of files in current directory when a file is executed via
2646 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
2651 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
2647
2652
2648 * setup.py (manfiles): fix for rpm builds, submitted by RA
2653 * setup.py (manfiles): fix for rpm builds, submitted by RA
2649 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
2654 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
2650
2655
2651 * IPython/ipmaker.py (make_IPython): fixed lookup of default
2656 * IPython/ipmaker.py (make_IPython): fixed lookup of default
2652 editor when set to '0'. Problem was, '0' evaluates to True (it's a
2657 editor when set to '0'. Problem was, '0' evaluates to True (it's a
2653 string!). A. Schmolck caught this one.
2658 string!). A. Schmolck caught this one.
2654
2659
2655 2002-06-27 Fernando Perez <fperez@colorado.edu>
2660 2002-06-27 Fernando Perez <fperez@colorado.edu>
2656
2661
2657 * IPython/ipmaker.py (make_IPython): fixed bug when running user
2662 * IPython/ipmaker.py (make_IPython): fixed bug when running user
2658 defined files at the cmd line. __name__ wasn't being set to
2663 defined files at the cmd line. __name__ wasn't being set to
2659 __main__.
2664 __main__.
2660
2665
2661 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
2666 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
2662 regular lists and tuples besides Numeric arrays.
2667 regular lists and tuples besides Numeric arrays.
2663
2668
2664 * IPython/Prompts.py (CachedOutput.__call__): Added output
2669 * IPython/Prompts.py (CachedOutput.__call__): Added output
2665 supression for input ending with ';'. Similar to Mathematica and
2670 supression for input ending with ';'. Similar to Mathematica and
2666 Matlab. The _* vars and Out[] list are still updated, just like
2671 Matlab. The _* vars and Out[] list are still updated, just like
2667 Mathematica behaves.
2672 Mathematica behaves.
2668
2673
2669 2002-06-25 Fernando Perez <fperez@colorado.edu>
2674 2002-06-25 Fernando Perez <fperez@colorado.edu>
2670
2675
2671 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
2676 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
2672 .ini extensions for profiels under Windows.
2677 .ini extensions for profiels under Windows.
2673
2678
2674 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
2679 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
2675 string form. Fix contributed by Alexander Schmolck
2680 string form. Fix contributed by Alexander Schmolck
2676 <a.schmolck-AT-gmx.net>
2681 <a.schmolck-AT-gmx.net>
2677
2682
2678 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
2683 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
2679 pre-configured Gnuplot instance.
2684 pre-configured Gnuplot instance.
2680
2685
2681 2002-06-21 Fernando Perez <fperez@colorado.edu>
2686 2002-06-21 Fernando Perez <fperez@colorado.edu>
2682
2687
2683 * IPython/numutils.py (exp_safe): new function, works around the
2688 * IPython/numutils.py (exp_safe): new function, works around the
2684 underflow problems in Numeric.
2689 underflow problems in Numeric.
2685 (log2): New fn. Safe log in base 2: returns exact integer answer
2690 (log2): New fn. Safe log in base 2: returns exact integer answer
2686 for exact integer powers of 2.
2691 for exact integer powers of 2.
2687
2692
2688 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
2693 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
2689 properly.
2694 properly.
2690
2695
2691 2002-06-20 Fernando Perez <fperez@colorado.edu>
2696 2002-06-20 Fernando Perez <fperez@colorado.edu>
2692
2697
2693 * IPython/genutils.py (timing): new function like
2698 * IPython/genutils.py (timing): new function like
2694 Mathematica's. Similar to time_test, but returns more info.
2699 Mathematica's. Similar to time_test, but returns more info.
2695
2700
2696 2002-06-18 Fernando Perez <fperez@colorado.edu>
2701 2002-06-18 Fernando Perez <fperez@colorado.edu>
2697
2702
2698 * IPython/Magic.py (Magic.magic_save): modified @save and @r
2703 * IPython/Magic.py (Magic.magic_save): modified @save and @r
2699 according to Mike Heeter's suggestions.
2704 according to Mike Heeter's suggestions.
2700
2705
2701 2002-06-16 Fernando Perez <fperez@colorado.edu>
2706 2002-06-16 Fernando Perez <fperez@colorado.edu>
2702
2707
2703 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
2708 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
2704 system. GnuplotMagic is gone as a user-directory option. New files
2709 system. GnuplotMagic is gone as a user-directory option. New files
2705 make it easier to use all the gnuplot stuff both from external
2710 make it easier to use all the gnuplot stuff both from external
2706 programs as well as from IPython. Had to rewrite part of
2711 programs as well as from IPython. Had to rewrite part of
2707 hardcopy() b/c of a strange bug: often the ps files simply don't
2712 hardcopy() b/c of a strange bug: often the ps files simply don't
2708 get created, and require a repeat of the command (often several
2713 get created, and require a repeat of the command (often several
2709 times).
2714 times).
2710
2715
2711 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
2716 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
2712 resolve output channel at call time, so that if sys.stderr has
2717 resolve output channel at call time, so that if sys.stderr has
2713 been redirected by user this gets honored.
2718 been redirected by user this gets honored.
2714
2719
2715 2002-06-13 Fernando Perez <fperez@colorado.edu>
2720 2002-06-13 Fernando Perez <fperez@colorado.edu>
2716
2721
2717 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
2722 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
2718 IPShell. Kept a copy with the old names to avoid breaking people's
2723 IPShell. Kept a copy with the old names to avoid breaking people's
2719 embedded code.
2724 embedded code.
2720
2725
2721 * IPython/ipython: simplified it to the bare minimum after
2726 * IPython/ipython: simplified it to the bare minimum after
2722 Holger's suggestions. Added info about how to use it in
2727 Holger's suggestions. Added info about how to use it in
2723 PYTHONSTARTUP.
2728 PYTHONSTARTUP.
2724
2729
2725 * IPython/Shell.py (IPythonShell): changed the options passing
2730 * IPython/Shell.py (IPythonShell): changed the options passing
2726 from a string with funky %s replacements to a straight list. Maybe
2731 from a string with funky %s replacements to a straight list. Maybe
2727 a bit more typing, but it follows sys.argv conventions, so there's
2732 a bit more typing, but it follows sys.argv conventions, so there's
2728 less special-casing to remember.
2733 less special-casing to remember.
2729
2734
2730 2002-06-12 Fernando Perez <fperez@colorado.edu>
2735 2002-06-12 Fernando Perez <fperez@colorado.edu>
2731
2736
2732 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
2737 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
2733 command. Thanks to a suggestion by Mike Heeter.
2738 command. Thanks to a suggestion by Mike Heeter.
2734 (Magic.magic_pfile): added behavior to look at filenames if given
2739 (Magic.magic_pfile): added behavior to look at filenames if given
2735 arg is not a defined object.
2740 arg is not a defined object.
2736 (Magic.magic_save): New @save function to save code snippets. Also
2741 (Magic.magic_save): New @save function to save code snippets. Also
2737 a Mike Heeter idea.
2742 a Mike Heeter idea.
2738
2743
2739 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
2744 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
2740 plot() and replot(). Much more convenient now, especially for
2745 plot() and replot(). Much more convenient now, especially for
2741 interactive use.
2746 interactive use.
2742
2747
2743 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
2748 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
2744 filenames.
2749 filenames.
2745
2750
2746 2002-06-02 Fernando Perez <fperez@colorado.edu>
2751 2002-06-02 Fernando Perez <fperez@colorado.edu>
2747
2752
2748 * IPython/Struct.py (Struct.__init__): modified to admit
2753 * IPython/Struct.py (Struct.__init__): modified to admit
2749 initialization via another struct.
2754 initialization via another struct.
2750
2755
2751 * IPython/genutils.py (SystemExec.__init__): New stateful
2756 * IPython/genutils.py (SystemExec.__init__): New stateful
2752 interface to xsys and bq. Useful for writing system scripts.
2757 interface to xsys and bq. Useful for writing system scripts.
2753
2758
2754 2002-05-30 Fernando Perez <fperez@colorado.edu>
2759 2002-05-30 Fernando Perez <fperez@colorado.edu>
2755
2760
2756 * MANIFEST.in: Changed docfile selection to exclude all the lyx
2761 * MANIFEST.in: Changed docfile selection to exclude all the lyx
2757 documents. This will make the user download smaller (it's getting
2762 documents. This will make the user download smaller (it's getting
2758 too big).
2763 too big).
2759
2764
2760 2002-05-29 Fernando Perez <fperez@colorado.edu>
2765 2002-05-29 Fernando Perez <fperez@colorado.edu>
2761
2766
2762 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
2767 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
2763 fix problems with shelve and pickle. Seems to work, but I don't
2768 fix problems with shelve and pickle. Seems to work, but I don't
2764 know if corner cases break it. Thanks to Mike Heeter
2769 know if corner cases break it. Thanks to Mike Heeter
2765 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
2770 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
2766
2771
2767 2002-05-24 Fernando Perez <fperez@colorado.edu>
2772 2002-05-24 Fernando Perez <fperez@colorado.edu>
2768
2773
2769 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
2774 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
2770 macros having broken.
2775 macros having broken.
2771
2776
2772 2002-05-21 Fernando Perez <fperez@colorado.edu>
2777 2002-05-21 Fernando Perez <fperez@colorado.edu>
2773
2778
2774 * IPython/Magic.py (Magic.magic_logstart): fixed recently
2779 * IPython/Magic.py (Magic.magic_logstart): fixed recently
2775 introduced logging bug: all history before logging started was
2780 introduced logging bug: all history before logging started was
2776 being written one character per line! This came from the redesign
2781 being written one character per line! This came from the redesign
2777 of the input history as a special list which slices to strings,
2782 of the input history as a special list which slices to strings,
2778 not to lists.
2783 not to lists.
2779
2784
2780 2002-05-20 Fernando Perez <fperez@colorado.edu>
2785 2002-05-20 Fernando Perez <fperez@colorado.edu>
2781
2786
2782 * IPython/Prompts.py (CachedOutput.__init__): made the color table
2787 * IPython/Prompts.py (CachedOutput.__init__): made the color table
2783 be an attribute of all classes in this module. The design of these
2788 be an attribute of all classes in this module. The design of these
2784 classes needs some serious overhauling.
2789 classes needs some serious overhauling.
2785
2790
2786 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
2791 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
2787 which was ignoring '_' in option names.
2792 which was ignoring '_' in option names.
2788
2793
2789 * IPython/ultraTB.py (FormattedTB.__init__): Changed
2794 * IPython/ultraTB.py (FormattedTB.__init__): Changed
2790 'Verbose_novars' to 'Context' and made it the new default. It's a
2795 'Verbose_novars' to 'Context' and made it the new default. It's a
2791 bit more readable and also safer than verbose.
2796 bit more readable and also safer than verbose.
2792
2797
2793 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
2798 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
2794 triple-quoted strings.
2799 triple-quoted strings.
2795
2800
2796 * IPython/OInspect.py (__all__): new module exposing the object
2801 * IPython/OInspect.py (__all__): new module exposing the object
2797 introspection facilities. Now the corresponding magics are dummy
2802 introspection facilities. Now the corresponding magics are dummy
2798 wrappers around this. Having this module will make it much easier
2803 wrappers around this. Having this module will make it much easier
2799 to put these functions into our modified pdb.
2804 to put these functions into our modified pdb.
2800 This new object inspector system uses the new colorizing module,
2805 This new object inspector system uses the new colorizing module,
2801 so source code and other things are nicely syntax highlighted.
2806 so source code and other things are nicely syntax highlighted.
2802
2807
2803 2002-05-18 Fernando Perez <fperez@colorado.edu>
2808 2002-05-18 Fernando Perez <fperez@colorado.edu>
2804
2809
2805 * IPython/ColorANSI.py: Split the coloring tools into a separate
2810 * IPython/ColorANSI.py: Split the coloring tools into a separate
2806 module so I can use them in other code easier (they were part of
2811 module so I can use them in other code easier (they were part of
2807 ultraTB).
2812 ultraTB).
2808
2813
2809 2002-05-17 Fernando Perez <fperez@colorado.edu>
2814 2002-05-17 Fernando Perez <fperez@colorado.edu>
2810
2815
2811 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2816 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2812 fixed it to set the global 'g' also to the called instance, as
2817 fixed it to set the global 'g' also to the called instance, as
2813 long as 'g' was still a gnuplot instance (so it doesn't overwrite
2818 long as 'g' was still a gnuplot instance (so it doesn't overwrite
2814 user's 'g' variables).
2819 user's 'g' variables).
2815
2820
2816 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
2821 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
2817 global variables (aliases to _ih,_oh) so that users which expect
2822 global variables (aliases to _ih,_oh) so that users which expect
2818 In[5] or Out[7] to work aren't unpleasantly surprised.
2823 In[5] or Out[7] to work aren't unpleasantly surprised.
2819 (InputList.__getslice__): new class to allow executing slices of
2824 (InputList.__getslice__): new class to allow executing slices of
2820 input history directly. Very simple class, complements the use of
2825 input history directly. Very simple class, complements the use of
2821 macros.
2826 macros.
2822
2827
2823 2002-05-16 Fernando Perez <fperez@colorado.edu>
2828 2002-05-16 Fernando Perez <fperez@colorado.edu>
2824
2829
2825 * setup.py (docdirbase): make doc directory be just doc/IPython
2830 * setup.py (docdirbase): make doc directory be just doc/IPython
2826 without version numbers, it will reduce clutter for users.
2831 without version numbers, it will reduce clutter for users.
2827
2832
2828 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
2833 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
2829 execfile call to prevent possible memory leak. See for details:
2834 execfile call to prevent possible memory leak. See for details:
2830 http://mail.python.org/pipermail/python-list/2002-February/088476.html
2835 http://mail.python.org/pipermail/python-list/2002-February/088476.html
2831
2836
2832 2002-05-15 Fernando Perez <fperez@colorado.edu>
2837 2002-05-15 Fernando Perez <fperez@colorado.edu>
2833
2838
2834 * IPython/Magic.py (Magic.magic_psource): made the object
2839 * IPython/Magic.py (Magic.magic_psource): made the object
2835 introspection names be more standard: pdoc, pdef, pfile and
2840 introspection names be more standard: pdoc, pdef, pfile and
2836 psource. They all print/page their output, and it makes
2841 psource. They all print/page their output, and it makes
2837 remembering them easier. Kept old names for compatibility as
2842 remembering them easier. Kept old names for compatibility as
2838 aliases.
2843 aliases.
2839
2844
2840 2002-05-14 Fernando Perez <fperez@colorado.edu>
2845 2002-05-14 Fernando Perez <fperez@colorado.edu>
2841
2846
2842 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
2847 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
2843 what the mouse problem was. The trick is to use gnuplot with temp
2848 what the mouse problem was. The trick is to use gnuplot with temp
2844 files and NOT with pipes (for data communication), because having
2849 files and NOT with pipes (for data communication), because having
2845 both pipes and the mouse on is bad news.
2850 both pipes and the mouse on is bad news.
2846
2851
2847 2002-05-13 Fernando Perez <fperez@colorado.edu>
2852 2002-05-13 Fernando Perez <fperez@colorado.edu>
2848
2853
2849 * IPython/Magic.py (Magic._ofind): fixed namespace order search
2854 * IPython/Magic.py (Magic._ofind): fixed namespace order search
2850 bug. Information would be reported about builtins even when
2855 bug. Information would be reported about builtins even when
2851 user-defined functions overrode them.
2856 user-defined functions overrode them.
2852
2857
2853 2002-05-11 Fernando Perez <fperez@colorado.edu>
2858 2002-05-11 Fernando Perez <fperez@colorado.edu>
2854
2859
2855 * IPython/__init__.py (__all__): removed FlexCompleter from
2860 * IPython/__init__.py (__all__): removed FlexCompleter from
2856 __all__ so that things don't fail in platforms without readline.
2861 __all__ so that things don't fail in platforms without readline.
2857
2862
2858 2002-05-10 Fernando Perez <fperez@colorado.edu>
2863 2002-05-10 Fernando Perez <fperez@colorado.edu>
2859
2864
2860 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
2865 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
2861 it requires Numeric, effectively making Numeric a dependency for
2866 it requires Numeric, effectively making Numeric a dependency for
2862 IPython.
2867 IPython.
2863
2868
2864 * Released 0.2.13
2869 * Released 0.2.13
2865
2870
2866 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
2871 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
2867 profiler interface. Now all the major options from the profiler
2872 profiler interface. Now all the major options from the profiler
2868 module are directly supported in IPython, both for single
2873 module are directly supported in IPython, both for single
2869 expressions (@prun) and for full programs (@run -p).
2874 expressions (@prun) and for full programs (@run -p).
2870
2875
2871 2002-05-09 Fernando Perez <fperez@colorado.edu>
2876 2002-05-09 Fernando Perez <fperez@colorado.edu>
2872
2877
2873 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
2878 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
2874 magic properly formatted for screen.
2879 magic properly formatted for screen.
2875
2880
2876 * setup.py (make_shortcut): Changed things to put pdf version in
2881 * setup.py (make_shortcut): Changed things to put pdf version in
2877 doc/ instead of doc/manual (had to change lyxport a bit).
2882 doc/ instead of doc/manual (had to change lyxport a bit).
2878
2883
2879 * IPython/Magic.py (Profile.string_stats): made profile runs go
2884 * IPython/Magic.py (Profile.string_stats): made profile runs go
2880 through pager (they are long and a pager allows searching, saving,
2885 through pager (they are long and a pager allows searching, saving,
2881 etc.)
2886 etc.)
2882
2887
2883 2002-05-08 Fernando Perez <fperez@colorado.edu>
2888 2002-05-08 Fernando Perez <fperez@colorado.edu>
2884
2889
2885 * Released 0.2.12
2890 * Released 0.2.12
2886
2891
2887 2002-05-06 Fernando Perez <fperez@colorado.edu>
2892 2002-05-06 Fernando Perez <fperez@colorado.edu>
2888
2893
2889 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
2894 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
2890 introduced); 'hist n1 n2' was broken.
2895 introduced); 'hist n1 n2' was broken.
2891 (Magic.magic_pdb): added optional on/off arguments to @pdb
2896 (Magic.magic_pdb): added optional on/off arguments to @pdb
2892 (Magic.magic_run): added option -i to @run, which executes code in
2897 (Magic.magic_run): added option -i to @run, which executes code in
2893 the IPython namespace instead of a clean one. Also added @irun as
2898 the IPython namespace instead of a clean one. Also added @irun as
2894 an alias to @run -i.
2899 an alias to @run -i.
2895
2900
2896 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2901 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
2897 fixed (it didn't really do anything, the namespaces were wrong).
2902 fixed (it didn't really do anything, the namespaces were wrong).
2898
2903
2899 * IPython/Debugger.py (__init__): Added workaround for python 2.1
2904 * IPython/Debugger.py (__init__): Added workaround for python 2.1
2900
2905
2901 * IPython/__init__.py (__all__): Fixed package namespace, now
2906 * IPython/__init__.py (__all__): Fixed package namespace, now
2902 'import IPython' does give access to IPython.<all> as
2907 'import IPython' does give access to IPython.<all> as
2903 expected. Also renamed __release__ to Release.
2908 expected. Also renamed __release__ to Release.
2904
2909
2905 * IPython/Debugger.py (__license__): created new Pdb class which
2910 * IPython/Debugger.py (__license__): created new Pdb class which
2906 functions like a drop-in for the normal pdb.Pdb but does NOT
2911 functions like a drop-in for the normal pdb.Pdb but does NOT
2907 import readline by default. This way it doesn't muck up IPython's
2912 import readline by default. This way it doesn't muck up IPython's
2908 readline handling, and now tab-completion finally works in the
2913 readline handling, and now tab-completion finally works in the
2909 debugger -- sort of. It completes things globally visible, but the
2914 debugger -- sort of. It completes things globally visible, but the
2910 completer doesn't track the stack as pdb walks it. That's a bit
2915 completer doesn't track the stack as pdb walks it. That's a bit
2911 tricky, and I'll have to implement it later.
2916 tricky, and I'll have to implement it later.
2912
2917
2913 2002-05-05 Fernando Perez <fperez@colorado.edu>
2918 2002-05-05 Fernando Perez <fperez@colorado.edu>
2914
2919
2915 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
2920 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
2916 magic docstrings when printed via ? (explicit \'s were being
2921 magic docstrings when printed via ? (explicit \'s were being
2917 printed).
2922 printed).
2918
2923
2919 * IPython/ipmaker.py (make_IPython): fixed namespace
2924 * IPython/ipmaker.py (make_IPython): fixed namespace
2920 identification bug. Now variables loaded via logs or command-line
2925 identification bug. Now variables loaded via logs or command-line
2921 files are recognized in the interactive namespace by @who.
2926 files are recognized in the interactive namespace by @who.
2922
2927
2923 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
2928 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
2924 log replay system stemming from the string form of Structs.
2929 log replay system stemming from the string form of Structs.
2925
2930
2926 * IPython/Magic.py (Macro.__init__): improved macros to properly
2931 * IPython/Magic.py (Macro.__init__): improved macros to properly
2927 handle magic commands in them.
2932 handle magic commands in them.
2928 (Magic.magic_logstart): usernames are now expanded so 'logstart
2933 (Magic.magic_logstart): usernames are now expanded so 'logstart
2929 ~/mylog' now works.
2934 ~/mylog' now works.
2930
2935
2931 * IPython/iplib.py (complete): fixed bug where paths starting with
2936 * IPython/iplib.py (complete): fixed bug where paths starting with
2932 '/' would be completed as magic names.
2937 '/' would be completed as magic names.
2933
2938
2934 2002-05-04 Fernando Perez <fperez@colorado.edu>
2939 2002-05-04 Fernando Perez <fperez@colorado.edu>
2935
2940
2936 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
2941 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
2937 allow running full programs under the profiler's control.
2942 allow running full programs under the profiler's control.
2938
2943
2939 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
2944 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
2940 mode to report exceptions verbosely but without formatting
2945 mode to report exceptions verbosely but without formatting
2941 variables. This addresses the issue of ipython 'freezing' (it's
2946 variables. This addresses the issue of ipython 'freezing' (it's
2942 not frozen, but caught in an expensive formatting loop) when huge
2947 not frozen, but caught in an expensive formatting loop) when huge
2943 variables are in the context of an exception.
2948 variables are in the context of an exception.
2944 (VerboseTB.text): Added '--->' markers at line where exception was
2949 (VerboseTB.text): Added '--->' markers at line where exception was
2945 triggered. Much clearer to read, especially in NoColor modes.
2950 triggered. Much clearer to read, especially in NoColor modes.
2946
2951
2947 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
2952 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
2948 implemented in reverse when changing to the new parse_options().
2953 implemented in reverse when changing to the new parse_options().
2949
2954
2950 2002-05-03 Fernando Perez <fperez@colorado.edu>
2955 2002-05-03 Fernando Perez <fperez@colorado.edu>
2951
2956
2952 * IPython/Magic.py (Magic.parse_options): new function so that
2957 * IPython/Magic.py (Magic.parse_options): new function so that
2953 magics can parse options easier.
2958 magics can parse options easier.
2954 (Magic.magic_prun): new function similar to profile.run(),
2959 (Magic.magic_prun): new function similar to profile.run(),
2955 suggested by Chris Hart.
2960 suggested by Chris Hart.
2956 (Magic.magic_cd): fixed behavior so that it only changes if
2961 (Magic.magic_cd): fixed behavior so that it only changes if
2957 directory actually is in history.
2962 directory actually is in history.
2958
2963
2959 * IPython/usage.py (__doc__): added information about potential
2964 * IPython/usage.py (__doc__): added information about potential
2960 slowness of Verbose exception mode when there are huge data
2965 slowness of Verbose exception mode when there are huge data
2961 structures to be formatted (thanks to Archie Paulson).
2966 structures to be formatted (thanks to Archie Paulson).
2962
2967
2963 * IPython/ipmaker.py (make_IPython): Changed default logging
2968 * IPython/ipmaker.py (make_IPython): Changed default logging
2964 (when simply called with -log) to use curr_dir/ipython.log in
2969 (when simply called with -log) to use curr_dir/ipython.log in
2965 rotate mode. Fixed crash which was occuring with -log before
2970 rotate mode. Fixed crash which was occuring with -log before
2966 (thanks to Jim Boyle).
2971 (thanks to Jim Boyle).
2967
2972
2968 2002-05-01 Fernando Perez <fperez@colorado.edu>
2973 2002-05-01 Fernando Perez <fperez@colorado.edu>
2969
2974
2970 * Released 0.2.11 for these fixes (mainly the ultraTB one which
2975 * Released 0.2.11 for these fixes (mainly the ultraTB one which
2971 was nasty -- though somewhat of a corner case).
2976 was nasty -- though somewhat of a corner case).
2972
2977
2973 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
2978 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
2974 text (was a bug).
2979 text (was a bug).
2975
2980
2976 2002-04-30 Fernando Perez <fperez@colorado.edu>
2981 2002-04-30 Fernando Perez <fperez@colorado.edu>
2977
2982
2978 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
2983 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
2979 a print after ^D or ^C from the user so that the In[] prompt
2984 a print after ^D or ^C from the user so that the In[] prompt
2980 doesn't over-run the gnuplot one.
2985 doesn't over-run the gnuplot one.
2981
2986
2982 2002-04-29 Fernando Perez <fperez@colorado.edu>
2987 2002-04-29 Fernando Perez <fperez@colorado.edu>
2983
2988
2984 * Released 0.2.10
2989 * Released 0.2.10
2985
2990
2986 * IPython/__release__.py (version): get date dynamically.
2991 * IPython/__release__.py (version): get date dynamically.
2987
2992
2988 * Misc. documentation updates thanks to Arnd's comments. Also ran
2993 * Misc. documentation updates thanks to Arnd's comments. Also ran
2989 a full spellcheck on the manual (hadn't been done in a while).
2994 a full spellcheck on the manual (hadn't been done in a while).
2990
2995
2991 2002-04-27 Fernando Perez <fperez@colorado.edu>
2996 2002-04-27 Fernando Perez <fperez@colorado.edu>
2992
2997
2993 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
2998 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
2994 starting a log in mid-session would reset the input history list.
2999 starting a log in mid-session would reset the input history list.
2995
3000
2996 2002-04-26 Fernando Perez <fperez@colorado.edu>
3001 2002-04-26 Fernando Perez <fperez@colorado.edu>
2997
3002
2998 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
3003 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
2999 all files were being included in an update. Now anything in
3004 all files were being included in an update. Now anything in
3000 UserConfig that matches [A-Za-z]*.py will go (this excludes
3005 UserConfig that matches [A-Za-z]*.py will go (this excludes
3001 __init__.py)
3006 __init__.py)
3002
3007
3003 2002-04-25 Fernando Perez <fperez@colorado.edu>
3008 2002-04-25 Fernando Perez <fperez@colorado.edu>
3004
3009
3005 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3010 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
3006 to __builtins__ so that any form of embedded or imported code can
3011 to __builtins__ so that any form of embedded or imported code can
3007 test for being inside IPython.
3012 test for being inside IPython.
3008
3013
3009 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3014 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
3010 changed to GnuplotMagic because it's now an importable module,
3015 changed to GnuplotMagic because it's now an importable module,
3011 this makes the name follow that of the standard Gnuplot module.
3016 this makes the name follow that of the standard Gnuplot module.
3012 GnuplotMagic can now be loaded at any time in mid-session.
3017 GnuplotMagic can now be loaded at any time in mid-session.
3013
3018
3014 2002-04-24 Fernando Perez <fperez@colorado.edu>
3019 2002-04-24 Fernando Perez <fperez@colorado.edu>
3015
3020
3016 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3021 * IPython/numutils.py: removed SIUnits. It doesn't properly set
3017 the globals (IPython has its own namespace) and the
3022 the globals (IPython has its own namespace) and the
3018 PhysicalQuantity stuff is much better anyway.
3023 PhysicalQuantity stuff is much better anyway.
3019
3024
3020 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3025 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
3021 embedding example to standard user directory for
3026 embedding example to standard user directory for
3022 distribution. Also put it in the manual.
3027 distribution. Also put it in the manual.
3023
3028
3024 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3029 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
3025 instance as first argument (so it doesn't rely on some obscure
3030 instance as first argument (so it doesn't rely on some obscure
3026 hidden global).
3031 hidden global).
3027
3032
3028 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3033 * IPython/UserConfig/ipythonrc.py: put () back in accepted
3029 delimiters. While it prevents ().TAB from working, it allows
3034 delimiters. While it prevents ().TAB from working, it allows
3030 completions in open (... expressions. This is by far a more common
3035 completions in open (... expressions. This is by far a more common
3031 case.
3036 case.
3032
3037
3033 2002-04-23 Fernando Perez <fperez@colorado.edu>
3038 2002-04-23 Fernando Perez <fperez@colorado.edu>
3034
3039
3035 * IPython/Extensions/InterpreterPasteInput.py: new
3040 * IPython/Extensions/InterpreterPasteInput.py: new
3036 syntax-processing module for pasting lines with >>> or ... at the
3041 syntax-processing module for pasting lines with >>> or ... at the
3037 start.
3042 start.
3038
3043
3039 * IPython/Extensions/PhysicalQ_Interactive.py
3044 * IPython/Extensions/PhysicalQ_Interactive.py
3040 (PhysicalQuantityInteractive.__int__): fixed to work with either
3045 (PhysicalQuantityInteractive.__int__): fixed to work with either
3041 Numeric or math.
3046 Numeric or math.
3042
3047
3043 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3048 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
3044 provided profiles. Now we have:
3049 provided profiles. Now we have:
3045 -math -> math module as * and cmath with its own namespace.
3050 -math -> math module as * and cmath with its own namespace.
3046 -numeric -> Numeric as *, plus gnuplot & grace
3051 -numeric -> Numeric as *, plus gnuplot & grace
3047 -physics -> same as before
3052 -physics -> same as before
3048
3053
3049 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3054 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
3050 user-defined magics wouldn't be found by @magic if they were
3055 user-defined magics wouldn't be found by @magic if they were
3051 defined as class methods. Also cleaned up the namespace search
3056 defined as class methods. Also cleaned up the namespace search
3052 logic and the string building (to use %s instead of many repeated
3057 logic and the string building (to use %s instead of many repeated
3053 string adds).
3058 string adds).
3054
3059
3055 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3060 * IPython/UserConfig/example-magic.py (magic_foo): updated example
3056 of user-defined magics to operate with class methods (cleaner, in
3061 of user-defined magics to operate with class methods (cleaner, in
3057 line with the gnuplot code).
3062 line with the gnuplot code).
3058
3063
3059 2002-04-22 Fernando Perez <fperez@colorado.edu>
3064 2002-04-22 Fernando Perez <fperez@colorado.edu>
3060
3065
3061 * setup.py: updated dependency list so that manual is updated when
3066 * setup.py: updated dependency list so that manual is updated when
3062 all included files change.
3067 all included files change.
3063
3068
3064 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3069 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
3065 the delimiter removal option (the fix is ugly right now).
3070 the delimiter removal option (the fix is ugly right now).
3066
3071
3067 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3072 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
3068 all of the math profile (quicker loading, no conflict between
3073 all of the math profile (quicker loading, no conflict between
3069 g-9.8 and g-gnuplot).
3074 g-9.8 and g-gnuplot).
3070
3075
3071 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3076 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
3072 name of post-mortem files to IPython_crash_report.txt.
3077 name of post-mortem files to IPython_crash_report.txt.
3073
3078
3074 * Cleanup/update of the docs. Added all the new readline info and
3079 * Cleanup/update of the docs. Added all the new readline info and
3075 formatted all lists as 'real lists'.
3080 formatted all lists as 'real lists'.
3076
3081
3077 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3082 * IPython/ipmaker.py (make_IPython): removed now-obsolete
3078 tab-completion options, since the full readline parse_and_bind is
3083 tab-completion options, since the full readline parse_and_bind is
3079 now accessible.
3084 now accessible.
3080
3085
3081 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3086 * IPython/iplib.py (InteractiveShell.init_readline): Changed
3082 handling of readline options. Now users can specify any string to
3087 handling of readline options. Now users can specify any string to
3083 be passed to parse_and_bind(), as well as the delimiters to be
3088 be passed to parse_and_bind(), as well as the delimiters to be
3084 removed.
3089 removed.
3085 (InteractiveShell.__init__): Added __name__ to the global
3090 (InteractiveShell.__init__): Added __name__ to the global
3086 namespace so that things like Itpl which rely on its existence
3091 namespace so that things like Itpl which rely on its existence
3087 don't crash.
3092 don't crash.
3088 (InteractiveShell._prefilter): Defined the default with a _ so
3093 (InteractiveShell._prefilter): Defined the default with a _ so
3089 that prefilter() is easier to override, while the default one
3094 that prefilter() is easier to override, while the default one
3090 remains available.
3095 remains available.
3091
3096
3092 2002-04-18 Fernando Perez <fperez@colorado.edu>
3097 2002-04-18 Fernando Perez <fperez@colorado.edu>
3093
3098
3094 * Added information about pdb in the docs.
3099 * Added information about pdb in the docs.
3095
3100
3096 2002-04-17 Fernando Perez <fperez@colorado.edu>
3101 2002-04-17 Fernando Perez <fperez@colorado.edu>
3097
3102
3098 * IPython/ipmaker.py (make_IPython): added rc_override option to
3103 * IPython/ipmaker.py (make_IPython): added rc_override option to
3099 allow passing config options at creation time which may override
3104 allow passing config options at creation time which may override
3100 anything set in the config files or command line. This is
3105 anything set in the config files or command line. This is
3101 particularly useful for configuring embedded instances.
3106 particularly useful for configuring embedded instances.
3102
3107
3103 2002-04-15 Fernando Perez <fperez@colorado.edu>
3108 2002-04-15 Fernando Perez <fperez@colorado.edu>
3104
3109
3105 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3110 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
3106 crash embedded instances because of the input cache falling out of
3111 crash embedded instances because of the input cache falling out of
3107 sync with the output counter.
3112 sync with the output counter.
3108
3113
3109 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3114 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
3110 mode which calls pdb after an uncaught exception in IPython itself.
3115 mode which calls pdb after an uncaught exception in IPython itself.
3111
3116
3112 2002-04-14 Fernando Perez <fperez@colorado.edu>
3117 2002-04-14 Fernando Perez <fperez@colorado.edu>
3113
3118
3114 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3119 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
3115 readline, fix it back after each call.
3120 readline, fix it back after each call.
3116
3121
3117 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3122 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
3118 method to force all access via __call__(), which guarantees that
3123 method to force all access via __call__(), which guarantees that
3119 traceback references are properly deleted.
3124 traceback references are properly deleted.
3120
3125
3121 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3126 * IPython/Prompts.py (CachedOutput._display): minor fixes to
3122 improve printing when pprint is in use.
3127 improve printing when pprint is in use.
3123
3128
3124 2002-04-13 Fernando Perez <fperez@colorado.edu>
3129 2002-04-13 Fernando Perez <fperez@colorado.edu>
3125
3130
3126 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3131 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
3127 exceptions aren't caught anymore. If the user triggers one, he
3132 exceptions aren't caught anymore. If the user triggers one, he
3128 should know why he's doing it and it should go all the way up,
3133 should know why he's doing it and it should go all the way up,
3129 just like any other exception. So now @abort will fully kill the
3134 just like any other exception. So now @abort will fully kill the
3130 embedded interpreter and the embedding code (unless that happens
3135 embedded interpreter and the embedding code (unless that happens
3131 to catch SystemExit).
3136 to catch SystemExit).
3132
3137
3133 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3138 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
3134 and a debugger() method to invoke the interactive pdb debugger
3139 and a debugger() method to invoke the interactive pdb debugger
3135 after printing exception information. Also added the corresponding
3140 after printing exception information. Also added the corresponding
3136 -pdb option and @pdb magic to control this feature, and updated
3141 -pdb option and @pdb magic to control this feature, and updated
3137 the docs. After a suggestion from Christopher Hart
3142 the docs. After a suggestion from Christopher Hart
3138 (hart-AT-caltech.edu).
3143 (hart-AT-caltech.edu).
3139
3144
3140 2002-04-12 Fernando Perez <fperez@colorado.edu>
3145 2002-04-12 Fernando Perez <fperez@colorado.edu>
3141
3146
3142 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3147 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
3143 the exception handlers defined by the user (not the CrashHandler)
3148 the exception handlers defined by the user (not the CrashHandler)
3144 so that user exceptions don't trigger an ipython bug report.
3149 so that user exceptions don't trigger an ipython bug report.
3145
3150
3146 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3151 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
3147 configurable (it should have always been so).
3152 configurable (it should have always been so).
3148
3153
3149 2002-03-26 Fernando Perez <fperez@colorado.edu>
3154 2002-03-26 Fernando Perez <fperez@colorado.edu>
3150
3155
3151 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3156 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
3152 and there to fix embedding namespace issues. This should all be
3157 and there to fix embedding namespace issues. This should all be
3153 done in a more elegant way.
3158 done in a more elegant way.
3154
3159
3155 2002-03-25 Fernando Perez <fperez@colorado.edu>
3160 2002-03-25 Fernando Perez <fperez@colorado.edu>
3156
3161
3157 * IPython/genutils.py (get_home_dir): Try to make it work under
3162 * IPython/genutils.py (get_home_dir): Try to make it work under
3158 win9x also.
3163 win9x also.
3159
3164
3160 2002-03-20 Fernando Perez <fperez@colorado.edu>
3165 2002-03-20 Fernando Perez <fperez@colorado.edu>
3161
3166
3162 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3167 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
3163 sys.displayhook untouched upon __init__.
3168 sys.displayhook untouched upon __init__.
3164
3169
3165 2002-03-19 Fernando Perez <fperez@colorado.edu>
3170 2002-03-19 Fernando Perez <fperez@colorado.edu>
3166
3171
3167 * Released 0.2.9 (for embedding bug, basically).
3172 * Released 0.2.9 (for embedding bug, basically).
3168
3173
3169 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3174 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
3170 exceptions so that enclosing shell's state can be restored.
3175 exceptions so that enclosing shell's state can be restored.
3171
3176
3172 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3177 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
3173 naming conventions in the .ipython/ dir.
3178 naming conventions in the .ipython/ dir.
3174
3179
3175 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3180 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
3176 from delimiters list so filenames with - in them get expanded.
3181 from delimiters list so filenames with - in them get expanded.
3177
3182
3178 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3183 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
3179 sys.displayhook not being properly restored after an embedded call.
3184 sys.displayhook not being properly restored after an embedded call.
3180
3185
3181 2002-03-18 Fernando Perez <fperez@colorado.edu>
3186 2002-03-18 Fernando Perez <fperez@colorado.edu>
3182
3187
3183 * Released 0.2.8
3188 * Released 0.2.8
3184
3189
3185 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3190 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
3186 some files weren't being included in a -upgrade.
3191 some files weren't being included in a -upgrade.
3187 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3192 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
3188 on' so that the first tab completes.
3193 on' so that the first tab completes.
3189 (InteractiveShell.handle_magic): fixed bug with spaces around
3194 (InteractiveShell.handle_magic): fixed bug with spaces around
3190 quotes breaking many magic commands.
3195 quotes breaking many magic commands.
3191
3196
3192 * setup.py: added note about ignoring the syntax error messages at
3197 * setup.py: added note about ignoring the syntax error messages at
3193 installation.
3198 installation.
3194
3199
3195 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3200 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
3196 streamlining the gnuplot interface, now there's only one magic @gp.
3201 streamlining the gnuplot interface, now there's only one magic @gp.
3197
3202
3198 2002-03-17 Fernando Perez <fperez@colorado.edu>
3203 2002-03-17 Fernando Perez <fperez@colorado.edu>
3199
3204
3200 * IPython/UserConfig/magic_gnuplot.py: new name for the
3205 * IPython/UserConfig/magic_gnuplot.py: new name for the
3201 example-magic_pm.py file. Much enhanced system, now with a shell
3206 example-magic_pm.py file. Much enhanced system, now with a shell
3202 for communicating directly with gnuplot, one command at a time.
3207 for communicating directly with gnuplot, one command at a time.
3203
3208
3204 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3209 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
3205 setting __name__=='__main__'.
3210 setting __name__=='__main__'.
3206
3211
3207 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3212 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
3208 mini-shell for accessing gnuplot from inside ipython. Should
3213 mini-shell for accessing gnuplot from inside ipython. Should
3209 extend it later for grace access too. Inspired by Arnd's
3214 extend it later for grace access too. Inspired by Arnd's
3210 suggestion.
3215 suggestion.
3211
3216
3212 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3217 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
3213 calling magic functions with () in their arguments. Thanks to Arnd
3218 calling magic functions with () in their arguments. Thanks to Arnd
3214 Baecker for pointing this to me.
3219 Baecker for pointing this to me.
3215
3220
3216 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3221 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
3217 infinitely for integer or complex arrays (only worked with floats).
3222 infinitely for integer or complex arrays (only worked with floats).
3218
3223
3219 2002-03-16 Fernando Perez <fperez@colorado.edu>
3224 2002-03-16 Fernando Perez <fperez@colorado.edu>
3220
3225
3221 * setup.py: Merged setup and setup_windows into a single script
3226 * setup.py: Merged setup and setup_windows into a single script
3222 which properly handles things for windows users.
3227 which properly handles things for windows users.
3223
3228
3224 2002-03-15 Fernando Perez <fperez@colorado.edu>
3229 2002-03-15 Fernando Perez <fperez@colorado.edu>
3225
3230
3226 * Big change to the manual: now the magics are all automatically
3231 * Big change to the manual: now the magics are all automatically
3227 documented. This information is generated from their docstrings
3232 documented. This information is generated from their docstrings
3228 and put in a latex file included by the manual lyx file. This way
3233 and put in a latex file included by the manual lyx file. This way
3229 we get always up to date information for the magics. The manual
3234 we get always up to date information for the magics. The manual
3230 now also has proper version information, also auto-synced.
3235 now also has proper version information, also auto-synced.
3231
3236
3232 For this to work, an undocumented --magic_docstrings option was added.
3237 For this to work, an undocumented --magic_docstrings option was added.
3233
3238
3234 2002-03-13 Fernando Perez <fperez@colorado.edu>
3239 2002-03-13 Fernando Perez <fperez@colorado.edu>
3235
3240
3236 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3241 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
3237 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3242 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
3238
3243
3239 2002-03-12 Fernando Perez <fperez@colorado.edu>
3244 2002-03-12 Fernando Perez <fperez@colorado.edu>
3240
3245
3241 * IPython/ultraTB.py (TermColors): changed color escapes again to
3246 * IPython/ultraTB.py (TermColors): changed color escapes again to
3242 fix the (old, reintroduced) line-wrapping bug. Basically, if
3247 fix the (old, reintroduced) line-wrapping bug. Basically, if
3243 \001..\002 aren't given in the color escapes, lines get wrapped
3248 \001..\002 aren't given in the color escapes, lines get wrapped
3244 weirdly. But giving those screws up old xterms and emacs terms. So
3249 weirdly. But giving those screws up old xterms and emacs terms. So
3245 I added some logic for emacs terms to be ok, but I can't identify old
3250 I added some logic for emacs terms to be ok, but I can't identify old
3246 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3251 xterms separately ($TERM=='xterm' for many terminals, like konsole).
3247
3252
3248 2002-03-10 Fernando Perez <fperez@colorado.edu>
3253 2002-03-10 Fernando Perez <fperez@colorado.edu>
3249
3254
3250 * IPython/usage.py (__doc__): Various documentation cleanups and
3255 * IPython/usage.py (__doc__): Various documentation cleanups and
3251 updates, both in usage docstrings and in the manual.
3256 updates, both in usage docstrings and in the manual.
3252
3257
3253 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3258 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
3254 handling of caching. Set minimum acceptabe value for having a
3259 handling of caching. Set minimum acceptabe value for having a
3255 cache at 20 values.
3260 cache at 20 values.
3256
3261
3257 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3262 * IPython/iplib.py (InteractiveShell.user_setup): moved the
3258 install_first_time function to a method, renamed it and added an
3263 install_first_time function to a method, renamed it and added an
3259 'upgrade' mode. Now people can update their config directory with
3264 'upgrade' mode. Now people can update their config directory with
3260 a simple command line switch (-upgrade, also new).
3265 a simple command line switch (-upgrade, also new).
3261
3266
3262 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3267 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
3263 @file (convenient for automagic users under Python >= 2.2).
3268 @file (convenient for automagic users under Python >= 2.2).
3264 Removed @files (it seemed more like a plural than an abbrev. of
3269 Removed @files (it seemed more like a plural than an abbrev. of
3265 'file show').
3270 'file show').
3266
3271
3267 * IPython/iplib.py (install_first_time): Fixed crash if there were
3272 * IPython/iplib.py (install_first_time): Fixed crash if there were
3268 backup files ('~') in .ipython/ install directory.
3273 backup files ('~') in .ipython/ install directory.
3269
3274
3270 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3275 * IPython/ipmaker.py (make_IPython): fixes for new prompt
3271 system. Things look fine, but these changes are fairly
3276 system. Things look fine, but these changes are fairly
3272 intrusive. Test them for a few days.
3277 intrusive. Test them for a few days.
3273
3278
3274 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3279 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
3275 the prompts system. Now all in/out prompt strings are user
3280 the prompts system. Now all in/out prompt strings are user
3276 controllable. This is particularly useful for embedding, as one
3281 controllable. This is particularly useful for embedding, as one
3277 can tag embedded instances with particular prompts.
3282 can tag embedded instances with particular prompts.
3278
3283
3279 Also removed global use of sys.ps1/2, which now allows nested
3284 Also removed global use of sys.ps1/2, which now allows nested
3280 embeddings without any problems. Added command-line options for
3285 embeddings without any problems. Added command-line options for
3281 the prompt strings.
3286 the prompt strings.
3282
3287
3283 2002-03-08 Fernando Perez <fperez@colorado.edu>
3288 2002-03-08 Fernando Perez <fperez@colorado.edu>
3284
3289
3285 * IPython/UserConfig/example-embed-short.py (ipshell): added
3290 * IPython/UserConfig/example-embed-short.py (ipshell): added
3286 example file with the bare minimum code for embedding.
3291 example file with the bare minimum code for embedding.
3287
3292
3288 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3293 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
3289 functionality for the embeddable shell to be activated/deactivated
3294 functionality for the embeddable shell to be activated/deactivated
3290 either globally or at each call.
3295 either globally or at each call.
3291
3296
3292 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3297 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
3293 rewriting the prompt with '--->' for auto-inputs with proper
3298 rewriting the prompt with '--->' for auto-inputs with proper
3294 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3299 coloring. Now the previous UGLY hack in handle_auto() is gone, and
3295 this is handled by the prompts class itself, as it should.
3300 this is handled by the prompts class itself, as it should.
3296
3301
3297 2002-03-05 Fernando Perez <fperez@colorado.edu>
3302 2002-03-05 Fernando Perez <fperez@colorado.edu>
3298
3303
3299 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3304 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
3300 @logstart to avoid name clashes with the math log function.
3305 @logstart to avoid name clashes with the math log function.
3301
3306
3302 * Big updates to X/Emacs section of the manual.
3307 * Big updates to X/Emacs section of the manual.
3303
3308
3304 * Removed ipython_emacs. Milan explained to me how to pass
3309 * Removed ipython_emacs. Milan explained to me how to pass
3305 arguments to ipython through Emacs. Some day I'm going to end up
3310 arguments to ipython through Emacs. Some day I'm going to end up
3306 learning some lisp...
3311 learning some lisp...
3307
3312
3308 2002-03-04 Fernando Perez <fperez@colorado.edu>
3313 2002-03-04 Fernando Perez <fperez@colorado.edu>
3309
3314
3310 * IPython/ipython_emacs: Created script to be used as the
3315 * IPython/ipython_emacs: Created script to be used as the
3311 py-python-command Emacs variable so we can pass IPython
3316 py-python-command Emacs variable so we can pass IPython
3312 parameters. I can't figure out how to tell Emacs directly to pass
3317 parameters. I can't figure out how to tell Emacs directly to pass
3313 parameters to IPython, so a dummy shell script will do it.
3318 parameters to IPython, so a dummy shell script will do it.
3314
3319
3315 Other enhancements made for things to work better under Emacs'
3320 Other enhancements made for things to work better under Emacs'
3316 various types of terminals. Many thanks to Milan Zamazal
3321 various types of terminals. Many thanks to Milan Zamazal
3317 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3322 <pdm-AT-zamazal.org> for all the suggestions and pointers.
3318
3323
3319 2002-03-01 Fernando Perez <fperez@colorado.edu>
3324 2002-03-01 Fernando Perez <fperez@colorado.edu>
3320
3325
3321 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3326 * IPython/ipmaker.py (make_IPython): added a --readline! option so
3322 that loading of readline is now optional. This gives better
3327 that loading of readline is now optional. This gives better
3323 control to emacs users.
3328 control to emacs users.
3324
3329
3325 * IPython/ultraTB.py (__date__): Modified color escape sequences
3330 * IPython/ultraTB.py (__date__): Modified color escape sequences
3326 and now things work fine under xterm and in Emacs' term buffers
3331 and now things work fine under xterm and in Emacs' term buffers
3327 (though not shell ones). Well, in emacs you get colors, but all
3332 (though not shell ones). Well, in emacs you get colors, but all
3328 seem to be 'light' colors (no difference between dark and light
3333 seem to be 'light' colors (no difference between dark and light
3329 ones). But the garbage chars are gone, and also in xterms. It
3334 ones). But the garbage chars are gone, and also in xterms. It
3330 seems that now I'm using 'cleaner' ansi sequences.
3335 seems that now I'm using 'cleaner' ansi sequences.
3331
3336
3332 2002-02-21 Fernando Perez <fperez@colorado.edu>
3337 2002-02-21 Fernando Perez <fperez@colorado.edu>
3333
3338
3334 * Released 0.2.7 (mainly to publish the scoping fix).
3339 * Released 0.2.7 (mainly to publish the scoping fix).
3335
3340
3336 * IPython/Logger.py (Logger.logstate): added. A corresponding
3341 * IPython/Logger.py (Logger.logstate): added. A corresponding
3337 @logstate magic was created.
3342 @logstate magic was created.
3338
3343
3339 * IPython/Magic.py: fixed nested scoping problem under Python
3344 * IPython/Magic.py: fixed nested scoping problem under Python
3340 2.1.x (automagic wasn't working).
3345 2.1.x (automagic wasn't working).
3341
3346
3342 2002-02-20 Fernando Perez <fperez@colorado.edu>
3347 2002-02-20 Fernando Perez <fperez@colorado.edu>
3343
3348
3344 * Released 0.2.6.
3349 * Released 0.2.6.
3345
3350
3346 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3351 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
3347 option so that logs can come out without any headers at all.
3352 option so that logs can come out without any headers at all.
3348
3353
3349 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3354 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
3350 SciPy.
3355 SciPy.
3351
3356
3352 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3357 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
3353 that embedded IPython calls don't require vars() to be explicitly
3358 that embedded IPython calls don't require vars() to be explicitly
3354 passed. Now they are extracted from the caller's frame (code
3359 passed. Now they are extracted from the caller's frame (code
3355 snatched from Eric Jones' weave). Added better documentation to
3360 snatched from Eric Jones' weave). Added better documentation to
3356 the section on embedding and the example file.
3361 the section on embedding and the example file.
3357
3362
3358 * IPython/genutils.py (page): Changed so that under emacs, it just
3363 * IPython/genutils.py (page): Changed so that under emacs, it just
3359 prints the string. You can then page up and down in the emacs
3364 prints the string. You can then page up and down in the emacs
3360 buffer itself. This is how the builtin help() works.
3365 buffer itself. This is how the builtin help() works.
3361
3366
3362 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3367 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
3363 macro scoping: macros need to be executed in the user's namespace
3368 macro scoping: macros need to be executed in the user's namespace
3364 to work as if they had been typed by the user.
3369 to work as if they had been typed by the user.
3365
3370
3366 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3371 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
3367 execute automatically (no need to type 'exec...'). They then
3372 execute automatically (no need to type 'exec...'). They then
3368 behave like 'true macros'. The printing system was also modified
3373 behave like 'true macros'. The printing system was also modified
3369 for this to work.
3374 for this to work.
3370
3375
3371 2002-02-19 Fernando Perez <fperez@colorado.edu>
3376 2002-02-19 Fernando Perez <fperez@colorado.edu>
3372
3377
3373 * IPython/genutils.py (page_file): new function for paging files
3378 * IPython/genutils.py (page_file): new function for paging files
3374 in an OS-independent way. Also necessary for file viewing to work
3379 in an OS-independent way. Also necessary for file viewing to work
3375 well inside Emacs buffers.
3380 well inside Emacs buffers.
3376 (page): Added checks for being in an emacs buffer.
3381 (page): Added checks for being in an emacs buffer.
3377 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3382 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
3378 same bug in iplib.
3383 same bug in iplib.
3379
3384
3380 2002-02-18 Fernando Perez <fperez@colorado.edu>
3385 2002-02-18 Fernando Perez <fperez@colorado.edu>
3381
3386
3382 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3387 * IPython/iplib.py (InteractiveShell.init_readline): modified use
3383 of readline so that IPython can work inside an Emacs buffer.
3388 of readline so that IPython can work inside an Emacs buffer.
3384
3389
3385 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3390 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
3386 method signatures (they weren't really bugs, but it looks cleaner
3391 method signatures (they weren't really bugs, but it looks cleaner
3387 and keeps PyChecker happy).
3392 and keeps PyChecker happy).
3388
3393
3389 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3394 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
3390 for implementing various user-defined hooks. Currently only
3395 for implementing various user-defined hooks. Currently only
3391 display is done.
3396 display is done.
3392
3397
3393 * IPython/Prompts.py (CachedOutput._display): changed display
3398 * IPython/Prompts.py (CachedOutput._display): changed display
3394 functions so that they can be dynamically changed by users easily.
3399 functions so that they can be dynamically changed by users easily.
3395
3400
3396 * IPython/Extensions/numeric_formats.py (num_display): added an
3401 * IPython/Extensions/numeric_formats.py (num_display): added an
3397 extension for printing NumPy arrays in flexible manners. It
3402 extension for printing NumPy arrays in flexible manners. It
3398 doesn't do anything yet, but all the structure is in
3403 doesn't do anything yet, but all the structure is in
3399 place. Ultimately the plan is to implement output format control
3404 place. Ultimately the plan is to implement output format control
3400 like in Octave.
3405 like in Octave.
3401
3406
3402 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3407 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
3403 methods are found at run-time by all the automatic machinery.
3408 methods are found at run-time by all the automatic machinery.
3404
3409
3405 2002-02-17 Fernando Perez <fperez@colorado.edu>
3410 2002-02-17 Fernando Perez <fperez@colorado.edu>
3406
3411
3407 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3412 * setup_Windows.py (make_shortcut): documented. Cleaned up the
3408 whole file a little.
3413 whole file a little.
3409
3414
3410 * ToDo: closed this document. Now there's a new_design.lyx
3415 * ToDo: closed this document. Now there's a new_design.lyx
3411 document for all new ideas. Added making a pdf of it for the
3416 document for all new ideas. Added making a pdf of it for the
3412 end-user distro.
3417 end-user distro.
3413
3418
3414 * IPython/Logger.py (Logger.switch_log): Created this to replace
3419 * IPython/Logger.py (Logger.switch_log): Created this to replace
3415 logon() and logoff(). It also fixes a nasty crash reported by
3420 logon() and logoff(). It also fixes a nasty crash reported by
3416 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3421 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
3417
3422
3418 * IPython/iplib.py (complete): got auto-completion to work with
3423 * IPython/iplib.py (complete): got auto-completion to work with
3419 automagic (I had wanted this for a long time).
3424 automagic (I had wanted this for a long time).
3420
3425
3421 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3426 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
3422 to @file, since file() is now a builtin and clashes with automagic
3427 to @file, since file() is now a builtin and clashes with automagic
3423 for @file.
3428 for @file.
3424
3429
3425 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3430 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
3426 of this was previously in iplib, which had grown to more than 2000
3431 of this was previously in iplib, which had grown to more than 2000
3427 lines, way too long. No new functionality, but it makes managing
3432 lines, way too long. No new functionality, but it makes managing
3428 the code a bit easier.
3433 the code a bit easier.
3429
3434
3430 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3435 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
3431 information to crash reports.
3436 information to crash reports.
3432
3437
3433 2002-02-12 Fernando Perez <fperez@colorado.edu>
3438 2002-02-12 Fernando Perez <fperez@colorado.edu>
3434
3439
3435 * Released 0.2.5.
3440 * Released 0.2.5.
3436
3441
3437 2002-02-11 Fernando Perez <fperez@colorado.edu>
3442 2002-02-11 Fernando Perez <fperez@colorado.edu>
3438
3443
3439 * Wrote a relatively complete Windows installer. It puts
3444 * Wrote a relatively complete Windows installer. It puts
3440 everything in place, creates Start Menu entries and fixes the
3445 everything in place, creates Start Menu entries and fixes the
3441 color issues. Nothing fancy, but it works.
3446 color issues. Nothing fancy, but it works.
3442
3447
3443 2002-02-10 Fernando Perez <fperez@colorado.edu>
3448 2002-02-10 Fernando Perez <fperez@colorado.edu>
3444
3449
3445 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3450 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
3446 os.path.expanduser() call so that we can type @run ~/myfile.py and
3451 os.path.expanduser() call so that we can type @run ~/myfile.py and
3447 have thigs work as expected.
3452 have thigs work as expected.
3448
3453
3449 * IPython/genutils.py (page): fixed exception handling so things
3454 * IPython/genutils.py (page): fixed exception handling so things
3450 work both in Unix and Windows correctly. Quitting a pager triggers
3455 work both in Unix and Windows correctly. Quitting a pager triggers
3451 an IOError/broken pipe in Unix, and in windows not finding a pager
3456 an IOError/broken pipe in Unix, and in windows not finding a pager
3452 is also an IOError, so I had to actually look at the return value
3457 is also an IOError, so I had to actually look at the return value
3453 of the exception, not just the exception itself. Should be ok now.
3458 of the exception, not just the exception itself. Should be ok now.
3454
3459
3455 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3460 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
3456 modified to allow case-insensitive color scheme changes.
3461 modified to allow case-insensitive color scheme changes.
3457
3462
3458 2002-02-09 Fernando Perez <fperez@colorado.edu>
3463 2002-02-09 Fernando Perez <fperez@colorado.edu>
3459
3464
3460 * IPython/genutils.py (native_line_ends): new function to leave
3465 * IPython/genutils.py (native_line_ends): new function to leave
3461 user config files with os-native line-endings.
3466 user config files with os-native line-endings.
3462
3467
3463 * README and manual updates.
3468 * README and manual updates.
3464
3469
3465 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3470 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
3466 instead of StringType to catch Unicode strings.
3471 instead of StringType to catch Unicode strings.
3467
3472
3468 * IPython/genutils.py (filefind): fixed bug for paths with
3473 * IPython/genutils.py (filefind): fixed bug for paths with
3469 embedded spaces (very common in Windows).
3474 embedded spaces (very common in Windows).
3470
3475
3471 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3476 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
3472 files under Windows, so that they get automatically associated
3477 files under Windows, so that they get automatically associated
3473 with a text editor. Windows makes it a pain to handle
3478 with a text editor. Windows makes it a pain to handle
3474 extension-less files.
3479 extension-less files.
3475
3480
3476 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3481 * IPython/iplib.py (InteractiveShell.init_readline): Made the
3477 warning about readline only occur for Posix. In Windows there's no
3482 warning about readline only occur for Posix. In Windows there's no
3478 way to get readline, so why bother with the warning.
3483 way to get readline, so why bother with the warning.
3479
3484
3480 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3485 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
3481 for __str__ instead of dir(self), since dir() changed in 2.2.
3486 for __str__ instead of dir(self), since dir() changed in 2.2.
3482
3487
3483 * Ported to Windows! Tested on XP, I suspect it should work fine
3488 * Ported to Windows! Tested on XP, I suspect it should work fine
3484 on NT/2000, but I don't think it will work on 98 et al. That
3489 on NT/2000, but I don't think it will work on 98 et al. That
3485 series of Windows is such a piece of junk anyway that I won't try
3490 series of Windows is such a piece of junk anyway that I won't try
3486 porting it there. The XP port was straightforward, showed a few
3491 porting it there. The XP port was straightforward, showed a few
3487 bugs here and there (fixed all), in particular some string
3492 bugs here and there (fixed all), in particular some string
3488 handling stuff which required considering Unicode strings (which
3493 handling stuff which required considering Unicode strings (which
3489 Windows uses). This is good, but hasn't been too tested :) No
3494 Windows uses). This is good, but hasn't been too tested :) No
3490 fancy installer yet, I'll put a note in the manual so people at
3495 fancy installer yet, I'll put a note in the manual so people at
3491 least make manually a shortcut.
3496 least make manually a shortcut.
3492
3497
3493 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3498 * IPython/iplib.py (Magic.magic_colors): Unified the color options
3494 into a single one, "colors". This now controls both prompt and
3499 into a single one, "colors". This now controls both prompt and
3495 exception color schemes, and can be changed both at startup
3500 exception color schemes, and can be changed both at startup
3496 (either via command-line switches or via ipythonrc files) and at
3501 (either via command-line switches or via ipythonrc files) and at
3497 runtime, with @colors.
3502 runtime, with @colors.
3498 (Magic.magic_run): renamed @prun to @run and removed the old
3503 (Magic.magic_run): renamed @prun to @run and removed the old
3499 @run. The two were too similar to warrant keeping both.
3504 @run. The two were too similar to warrant keeping both.
3500
3505
3501 2002-02-03 Fernando Perez <fperez@colorado.edu>
3506 2002-02-03 Fernando Perez <fperez@colorado.edu>
3502
3507
3503 * IPython/iplib.py (install_first_time): Added comment on how to
3508 * IPython/iplib.py (install_first_time): Added comment on how to
3504 configure the color options for first-time users. Put a <return>
3509 configure the color options for first-time users. Put a <return>
3505 request at the end so that small-terminal users get a chance to
3510 request at the end so that small-terminal users get a chance to
3506 read the startup info.
3511 read the startup info.
3507
3512
3508 2002-01-23 Fernando Perez <fperez@colorado.edu>
3513 2002-01-23 Fernando Perez <fperez@colorado.edu>
3509
3514
3510 * IPython/iplib.py (CachedOutput.update): Changed output memory
3515 * IPython/iplib.py (CachedOutput.update): Changed output memory
3511 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3516 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
3512 input history we still use _i. Did this b/c these variable are
3517 input history we still use _i. Did this b/c these variable are
3513 very commonly used in interactive work, so the less we need to
3518 very commonly used in interactive work, so the less we need to
3514 type the better off we are.
3519 type the better off we are.
3515 (Magic.magic_prun): updated @prun to better handle the namespaces
3520 (Magic.magic_prun): updated @prun to better handle the namespaces
3516 the file will run in, including a fix for __name__ not being set
3521 the file will run in, including a fix for __name__ not being set
3517 before.
3522 before.
3518
3523
3519 2002-01-20 Fernando Perez <fperez@colorado.edu>
3524 2002-01-20 Fernando Perez <fperez@colorado.edu>
3520
3525
3521 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3526 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
3522 extra garbage for Python 2.2. Need to look more carefully into
3527 extra garbage for Python 2.2. Need to look more carefully into
3523 this later.
3528 this later.
3524
3529
3525 2002-01-19 Fernando Perez <fperez@colorado.edu>
3530 2002-01-19 Fernando Perez <fperez@colorado.edu>
3526
3531
3527 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3532 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
3528 display SyntaxError exceptions properly formatted when they occur
3533 display SyntaxError exceptions properly formatted when they occur
3529 (they can be triggered by imported code).
3534 (they can be triggered by imported code).
3530
3535
3531 2002-01-18 Fernando Perez <fperez@colorado.edu>
3536 2002-01-18 Fernando Perez <fperez@colorado.edu>
3532
3537
3533 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3538 * IPython/iplib.py (InteractiveShell.safe_execfile): now
3534 SyntaxError exceptions are reported nicely formatted, instead of
3539 SyntaxError exceptions are reported nicely formatted, instead of
3535 spitting out only offset information as before.
3540 spitting out only offset information as before.
3536 (Magic.magic_prun): Added the @prun function for executing
3541 (Magic.magic_prun): Added the @prun function for executing
3537 programs with command line args inside IPython.
3542 programs with command line args inside IPython.
3538
3543
3539 2002-01-16 Fernando Perez <fperez@colorado.edu>
3544 2002-01-16 Fernando Perez <fperez@colorado.edu>
3540
3545
3541 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3546 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
3542 to *not* include the last item given in a range. This brings their
3547 to *not* include the last item given in a range. This brings their
3543 behavior in line with Python's slicing:
3548 behavior in line with Python's slicing:
3544 a[n1:n2] -> a[n1]...a[n2-1]
3549 a[n1:n2] -> a[n1]...a[n2-1]
3545 It may be a bit less convenient, but I prefer to stick to Python's
3550 It may be a bit less convenient, but I prefer to stick to Python's
3546 conventions *everywhere*, so users never have to wonder.
3551 conventions *everywhere*, so users never have to wonder.
3547 (Magic.magic_macro): Added @macro function to ease the creation of
3552 (Magic.magic_macro): Added @macro function to ease the creation of
3548 macros.
3553 macros.
3549
3554
3550 2002-01-05 Fernando Perez <fperez@colorado.edu>
3555 2002-01-05 Fernando Perez <fperez@colorado.edu>
3551
3556
3552 * Released 0.2.4.
3557 * Released 0.2.4.
3553
3558
3554 * IPython/iplib.py (Magic.magic_pdef):
3559 * IPython/iplib.py (Magic.magic_pdef):
3555 (InteractiveShell.safe_execfile): report magic lines and error
3560 (InteractiveShell.safe_execfile): report magic lines and error
3556 lines without line numbers so one can easily copy/paste them for
3561 lines without line numbers so one can easily copy/paste them for
3557 re-execution.
3562 re-execution.
3558
3563
3559 * Updated manual with recent changes.
3564 * Updated manual with recent changes.
3560
3565
3561 * IPython/iplib.py (Magic.magic_oinfo): added constructor
3566 * IPython/iplib.py (Magic.magic_oinfo): added constructor
3562 docstring printing when class? is called. Very handy for knowing
3567 docstring printing when class? is called. Very handy for knowing
3563 how to create class instances (as long as __init__ is well
3568 how to create class instances (as long as __init__ is well
3564 documented, of course :)
3569 documented, of course :)
3565 (Magic.magic_doc): print both class and constructor docstrings.
3570 (Magic.magic_doc): print both class and constructor docstrings.
3566 (Magic.magic_pdef): give constructor info if passed a class and
3571 (Magic.magic_pdef): give constructor info if passed a class and
3567 __call__ info for callable object instances.
3572 __call__ info for callable object instances.
3568
3573
3569 2002-01-04 Fernando Perez <fperez@colorado.edu>
3574 2002-01-04 Fernando Perez <fperez@colorado.edu>
3570
3575
3571 * Made deep_reload() off by default. It doesn't always work
3576 * Made deep_reload() off by default. It doesn't always work
3572 exactly as intended, so it's probably safer to have it off. It's
3577 exactly as intended, so it's probably safer to have it off. It's
3573 still available as dreload() anyway, so nothing is lost.
3578 still available as dreload() anyway, so nothing is lost.
3574
3579
3575 2002-01-02 Fernando Perez <fperez@colorado.edu>
3580 2002-01-02 Fernando Perez <fperez@colorado.edu>
3576
3581
3577 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
3582 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
3578 so I wanted an updated release).
3583 so I wanted an updated release).
3579
3584
3580 2001-12-27 Fernando Perez <fperez@colorado.edu>
3585 2001-12-27 Fernando Perez <fperez@colorado.edu>
3581
3586
3582 * IPython/iplib.py (InteractiveShell.interact): Added the original
3587 * IPython/iplib.py (InteractiveShell.interact): Added the original
3583 code from 'code.py' for this module in order to change the
3588 code from 'code.py' for this module in order to change the
3584 handling of a KeyboardInterrupt. This was necessary b/c otherwise
3589 handling of a KeyboardInterrupt. This was necessary b/c otherwise
3585 the history cache would break when the user hit Ctrl-C, and
3590 the history cache would break when the user hit Ctrl-C, and
3586 interact() offers no way to add any hooks to it.
3591 interact() offers no way to add any hooks to it.
3587
3592
3588 2001-12-23 Fernando Perez <fperez@colorado.edu>
3593 2001-12-23 Fernando Perez <fperez@colorado.edu>
3589
3594
3590 * setup.py: added check for 'MANIFEST' before trying to remove
3595 * setup.py: added check for 'MANIFEST' before trying to remove
3591 it. Thanks to Sean Reifschneider.
3596 it. Thanks to Sean Reifschneider.
3592
3597
3593 2001-12-22 Fernando Perez <fperez@colorado.edu>
3598 2001-12-22 Fernando Perez <fperez@colorado.edu>
3594
3599
3595 * Released 0.2.2.
3600 * Released 0.2.2.
3596
3601
3597 * Finished (reasonably) writing the manual. Later will add the
3602 * Finished (reasonably) writing the manual. Later will add the
3598 python-standard navigation stylesheets, but for the time being
3603 python-standard navigation stylesheets, but for the time being
3599 it's fairly complete. Distribution will include html and pdf
3604 it's fairly complete. Distribution will include html and pdf
3600 versions.
3605 versions.
3601
3606
3602 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
3607 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
3603 (MayaVi author).
3608 (MayaVi author).
3604
3609
3605 2001-12-21 Fernando Perez <fperez@colorado.edu>
3610 2001-12-21 Fernando Perez <fperez@colorado.edu>
3606
3611
3607 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
3612 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
3608 good public release, I think (with the manual and the distutils
3613 good public release, I think (with the manual and the distutils
3609 installer). The manual can use some work, but that can go
3614 installer). The manual can use some work, but that can go
3610 slowly. Otherwise I think it's quite nice for end users. Next
3615 slowly. Otherwise I think it's quite nice for end users. Next
3611 summer, rewrite the guts of it...
3616 summer, rewrite the guts of it...
3612
3617
3613 * Changed format of ipythonrc files to use whitespace as the
3618 * Changed format of ipythonrc files to use whitespace as the
3614 separator instead of an explicit '='. Cleaner.
3619 separator instead of an explicit '='. Cleaner.
3615
3620
3616 2001-12-20 Fernando Perez <fperez@colorado.edu>
3621 2001-12-20 Fernando Perez <fperez@colorado.edu>
3617
3622
3618 * Started a manual in LyX. For now it's just a quick merge of the
3623 * Started a manual in LyX. For now it's just a quick merge of the
3619 various internal docstrings and READMEs. Later it may grow into a
3624 various internal docstrings and READMEs. Later it may grow into a
3620 nice, full-blown manual.
3625 nice, full-blown manual.
3621
3626
3622 * Set up a distutils based installer. Installation should now be
3627 * Set up a distutils based installer. Installation should now be
3623 trivially simple for end-users.
3628 trivially simple for end-users.
3624
3629
3625 2001-12-11 Fernando Perez <fperez@colorado.edu>
3630 2001-12-11 Fernando Perez <fperez@colorado.edu>
3626
3631
3627 * Released 0.2.0. First public release, announced it at
3632 * Released 0.2.0. First public release, announced it at
3628 comp.lang.python. From now on, just bugfixes...
3633 comp.lang.python. From now on, just bugfixes...
3629
3634
3630 * Went through all the files, set copyright/license notices and
3635 * Went through all the files, set copyright/license notices and
3631 cleaned up things. Ready for release.
3636 cleaned up things. Ready for release.
3632
3637
3633 2001-12-10 Fernando Perez <fperez@colorado.edu>
3638 2001-12-10 Fernando Perez <fperez@colorado.edu>
3634
3639
3635 * Changed the first-time installer not to use tarfiles. It's more
3640 * Changed the first-time installer not to use tarfiles. It's more
3636 robust now and less unix-dependent. Also makes it easier for
3641 robust now and less unix-dependent. Also makes it easier for
3637 people to later upgrade versions.
3642 people to later upgrade versions.
3638
3643
3639 * Changed @exit to @abort to reflect the fact that it's pretty
3644 * Changed @exit to @abort to reflect the fact that it's pretty
3640 brutal (a sys.exit()). The difference between @abort and Ctrl-D
3645 brutal (a sys.exit()). The difference between @abort and Ctrl-D
3641 becomes significant only when IPyhton is embedded: in that case,
3646 becomes significant only when IPyhton is embedded: in that case,
3642 C-D closes IPython only, but @abort kills the enclosing program
3647 C-D closes IPython only, but @abort kills the enclosing program
3643 too (unless it had called IPython inside a try catching
3648 too (unless it had called IPython inside a try catching
3644 SystemExit).
3649 SystemExit).
3645
3650
3646 * Created Shell module which exposes the actuall IPython Shell
3651 * Created Shell module which exposes the actuall IPython Shell
3647 classes, currently the normal and the embeddable one. This at
3652 classes, currently the normal and the embeddable one. This at
3648 least offers a stable interface we won't need to change when
3653 least offers a stable interface we won't need to change when
3649 (later) the internals are rewritten. That rewrite will be confined
3654 (later) the internals are rewritten. That rewrite will be confined
3650 to iplib and ipmaker, but the Shell interface should remain as is.
3655 to iplib and ipmaker, but the Shell interface should remain as is.
3651
3656
3652 * Added embed module which offers an embeddable IPShell object,
3657 * Added embed module which offers an embeddable IPShell object,
3653 useful to fire up IPython *inside* a running program. Great for
3658 useful to fire up IPython *inside* a running program. Great for
3654 debugging or dynamical data analysis.
3659 debugging or dynamical data analysis.
3655
3660
3656 2001-12-08 Fernando Perez <fperez@colorado.edu>
3661 2001-12-08 Fernando Perez <fperez@colorado.edu>
3657
3662
3658 * Fixed small bug preventing seeing info from methods of defined
3663 * Fixed small bug preventing seeing info from methods of defined
3659 objects (incorrect namespace in _ofind()).
3664 objects (incorrect namespace in _ofind()).
3660
3665
3661 * Documentation cleanup. Moved the main usage docstrings to a
3666 * Documentation cleanup. Moved the main usage docstrings to a
3662 separate file, usage.py (cleaner to maintain, and hopefully in the
3667 separate file, usage.py (cleaner to maintain, and hopefully in the
3663 future some perlpod-like way of producing interactive, man and
3668 future some perlpod-like way of producing interactive, man and
3664 html docs out of it will be found).
3669 html docs out of it will be found).
3665
3670
3666 * Added @profile to see your profile at any time.
3671 * Added @profile to see your profile at any time.
3667
3672
3668 * Added @p as an alias for 'print'. It's especially convenient if
3673 * Added @p as an alias for 'print'. It's especially convenient if
3669 using automagic ('p x' prints x).
3674 using automagic ('p x' prints x).
3670
3675
3671 * Small cleanups and fixes after a pychecker run.
3676 * Small cleanups and fixes after a pychecker run.
3672
3677
3673 * Changed the @cd command to handle @cd - and @cd -<n> for
3678 * Changed the @cd command to handle @cd - and @cd -<n> for
3674 visiting any directory in _dh.
3679 visiting any directory in _dh.
3675
3680
3676 * Introduced _dh, a history of visited directories. @dhist prints
3681 * Introduced _dh, a history of visited directories. @dhist prints
3677 it out with numbers.
3682 it out with numbers.
3678
3683
3679 2001-12-07 Fernando Perez <fperez@colorado.edu>
3684 2001-12-07 Fernando Perez <fperez@colorado.edu>
3680
3685
3681 * Released 0.1.22
3686 * Released 0.1.22
3682
3687
3683 * Made initialization a bit more robust against invalid color
3688 * Made initialization a bit more robust against invalid color
3684 options in user input (exit, not traceback-crash).
3689 options in user input (exit, not traceback-crash).
3685
3690
3686 * Changed the bug crash reporter to write the report only in the
3691 * Changed the bug crash reporter to write the report only in the
3687 user's .ipython directory. That way IPython won't litter people's
3692 user's .ipython directory. That way IPython won't litter people's
3688 hard disks with crash files all over the place. Also print on
3693 hard disks with crash files all over the place. Also print on
3689 screen the necessary mail command.
3694 screen the necessary mail command.
3690
3695
3691 * With the new ultraTB, implemented LightBG color scheme for light
3696 * With the new ultraTB, implemented LightBG color scheme for light
3692 background terminals. A lot of people like white backgrounds, so I
3697 background terminals. A lot of people like white backgrounds, so I
3693 guess we should at least give them something readable.
3698 guess we should at least give them something readable.
3694
3699
3695 2001-12-06 Fernando Perez <fperez@colorado.edu>
3700 2001-12-06 Fernando Perez <fperez@colorado.edu>
3696
3701
3697 * Modified the structure of ultraTB. Now there's a proper class
3702 * Modified the structure of ultraTB. Now there's a proper class
3698 for tables of color schemes which allow adding schemes easily and
3703 for tables of color schemes which allow adding schemes easily and
3699 switching the active scheme without creating a new instance every
3704 switching the active scheme without creating a new instance every
3700 time (which was ridiculous). The syntax for creating new schemes
3705 time (which was ridiculous). The syntax for creating new schemes
3701 is also cleaner. I think ultraTB is finally done, with a clean
3706 is also cleaner. I think ultraTB is finally done, with a clean
3702 class structure. Names are also much cleaner (now there's proper
3707 class structure. Names are also much cleaner (now there's proper
3703 color tables, no need for every variable to also have 'color' in
3708 color tables, no need for every variable to also have 'color' in
3704 its name).
3709 its name).
3705
3710
3706 * Broke down genutils into separate files. Now genutils only
3711 * Broke down genutils into separate files. Now genutils only
3707 contains utility functions, and classes have been moved to their
3712 contains utility functions, and classes have been moved to their
3708 own files (they had enough independent functionality to warrant
3713 own files (they had enough independent functionality to warrant
3709 it): ConfigLoader, OutputTrap, Struct.
3714 it): ConfigLoader, OutputTrap, Struct.
3710
3715
3711 2001-12-05 Fernando Perez <fperez@colorado.edu>
3716 2001-12-05 Fernando Perez <fperez@colorado.edu>
3712
3717
3713 * IPython turns 21! Released version 0.1.21, as a candidate for
3718 * IPython turns 21! Released version 0.1.21, as a candidate for
3714 public consumption. If all goes well, release in a few days.
3719 public consumption. If all goes well, release in a few days.
3715
3720
3716 * Fixed path bug (files in Extensions/ directory wouldn't be found
3721 * Fixed path bug (files in Extensions/ directory wouldn't be found
3717 unless IPython/ was explicitly in sys.path).
3722 unless IPython/ was explicitly in sys.path).
3718
3723
3719 * Extended the FlexCompleter class as MagicCompleter to allow
3724 * Extended the FlexCompleter class as MagicCompleter to allow
3720 completion of @-starting lines.
3725 completion of @-starting lines.
3721
3726
3722 * Created __release__.py file as a central repository for release
3727 * Created __release__.py file as a central repository for release
3723 info that other files can read from.
3728 info that other files can read from.
3724
3729
3725 * Fixed small bug in logging: when logging was turned on in
3730 * Fixed small bug in logging: when logging was turned on in
3726 mid-session, old lines with special meanings (!@?) were being
3731 mid-session, old lines with special meanings (!@?) were being
3727 logged without the prepended comment, which is necessary since
3732 logged without the prepended comment, which is necessary since
3728 they are not truly valid python syntax. This should make session
3733 they are not truly valid python syntax. This should make session
3729 restores produce less errors.
3734 restores produce less errors.
3730
3735
3731 * The namespace cleanup forced me to make a FlexCompleter class
3736 * The namespace cleanup forced me to make a FlexCompleter class
3732 which is nothing but a ripoff of rlcompleter, but with selectable
3737 which is nothing but a ripoff of rlcompleter, but with selectable
3733 namespace (rlcompleter only works in __main__.__dict__). I'll try
3738 namespace (rlcompleter only works in __main__.__dict__). I'll try
3734 to submit a note to the authors to see if this change can be
3739 to submit a note to the authors to see if this change can be
3735 incorporated in future rlcompleter releases (Dec.6: done)
3740 incorporated in future rlcompleter releases (Dec.6: done)
3736
3741
3737 * More fixes to namespace handling. It was a mess! Now all
3742 * More fixes to namespace handling. It was a mess! Now all
3738 explicit references to __main__.__dict__ are gone (except when
3743 explicit references to __main__.__dict__ are gone (except when
3739 really needed) and everything is handled through the namespace
3744 really needed) and everything is handled through the namespace
3740 dicts in the IPython instance. We seem to be getting somewhere
3745 dicts in the IPython instance. We seem to be getting somewhere
3741 with this, finally...
3746 with this, finally...
3742
3747
3743 * Small documentation updates.
3748 * Small documentation updates.
3744
3749
3745 * Created the Extensions directory under IPython (with an
3750 * Created the Extensions directory under IPython (with an
3746 __init__.py). Put the PhysicalQ stuff there. This directory should
3751 __init__.py). Put the PhysicalQ stuff there. This directory should
3747 be used for all special-purpose extensions.
3752 be used for all special-purpose extensions.
3748
3753
3749 * File renaming:
3754 * File renaming:
3750 ipythonlib --> ipmaker
3755 ipythonlib --> ipmaker
3751 ipplib --> iplib
3756 ipplib --> iplib
3752 This makes a bit more sense in terms of what these files actually do.
3757 This makes a bit more sense in terms of what these files actually do.
3753
3758
3754 * Moved all the classes and functions in ipythonlib to ipplib, so
3759 * Moved all the classes and functions in ipythonlib to ipplib, so
3755 now ipythonlib only has make_IPython(). This will ease up its
3760 now ipythonlib only has make_IPython(). This will ease up its
3756 splitting in smaller functional chunks later.
3761 splitting in smaller functional chunks later.
3757
3762
3758 * Cleaned up (done, I think) output of @whos. Better column
3763 * Cleaned up (done, I think) output of @whos. Better column
3759 formatting, and now shows str(var) for as much as it can, which is
3764 formatting, and now shows str(var) for as much as it can, which is
3760 typically what one gets with a 'print var'.
3765 typically what one gets with a 'print var'.
3761
3766
3762 2001-12-04 Fernando Perez <fperez@colorado.edu>
3767 2001-12-04 Fernando Perez <fperez@colorado.edu>
3763
3768
3764 * Fixed namespace problems. Now builtin/IPyhton/user names get
3769 * Fixed namespace problems. Now builtin/IPyhton/user names get
3765 properly reported in their namespace. Internal namespace handling
3770 properly reported in their namespace. Internal namespace handling
3766 is finally getting decent (not perfect yet, but much better than
3771 is finally getting decent (not perfect yet, but much better than
3767 the ad-hoc mess we had).
3772 the ad-hoc mess we had).
3768
3773
3769 * Removed -exit option. If people just want to run a python
3774 * Removed -exit option. If people just want to run a python
3770 script, that's what the normal interpreter is for. Less
3775 script, that's what the normal interpreter is for. Less
3771 unnecessary options, less chances for bugs.
3776 unnecessary options, less chances for bugs.
3772
3777
3773 * Added a crash handler which generates a complete post-mortem if
3778 * Added a crash handler which generates a complete post-mortem if
3774 IPython crashes. This will help a lot in tracking bugs down the
3779 IPython crashes. This will help a lot in tracking bugs down the
3775 road.
3780 road.
3776
3781
3777 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
3782 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
3778 which were boud to functions being reassigned would bypass the
3783 which were boud to functions being reassigned would bypass the
3779 logger, breaking the sync of _il with the prompt counter. This
3784 logger, breaking the sync of _il with the prompt counter. This
3780 would then crash IPython later when a new line was logged.
3785 would then crash IPython later when a new line was logged.
3781
3786
3782 2001-12-02 Fernando Perez <fperez@colorado.edu>
3787 2001-12-02 Fernando Perez <fperez@colorado.edu>
3783
3788
3784 * Made IPython a package. This means people don't have to clutter
3789 * Made IPython a package. This means people don't have to clutter
3785 their sys.path with yet another directory. Changed the INSTALL
3790 their sys.path with yet another directory. Changed the INSTALL
3786 file accordingly.
3791 file accordingly.
3787
3792
3788 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
3793 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
3789 sorts its output (so @who shows it sorted) and @whos formats the
3794 sorts its output (so @who shows it sorted) and @whos formats the
3790 table according to the width of the first column. Nicer, easier to
3795 table according to the width of the first column. Nicer, easier to
3791 read. Todo: write a generic table_format() which takes a list of
3796 read. Todo: write a generic table_format() which takes a list of
3792 lists and prints it nicely formatted, with optional row/column
3797 lists and prints it nicely formatted, with optional row/column
3793 separators and proper padding and justification.
3798 separators and proper padding and justification.
3794
3799
3795 * Released 0.1.20
3800 * Released 0.1.20
3796
3801
3797 * Fixed bug in @log which would reverse the inputcache list (a
3802 * Fixed bug in @log which would reverse the inputcache list (a
3798 copy operation was missing).
3803 copy operation was missing).
3799
3804
3800 * Code cleanup. @config was changed to use page(). Better, since
3805 * Code cleanup. @config was changed to use page(). Better, since
3801 its output is always quite long.
3806 its output is always quite long.
3802
3807
3803 * Itpl is back as a dependency. I was having too many problems
3808 * Itpl is back as a dependency. I was having too many problems
3804 getting the parametric aliases to work reliably, and it's just
3809 getting the parametric aliases to work reliably, and it's just
3805 easier to code weird string operations with it than playing %()s
3810 easier to code weird string operations with it than playing %()s
3806 games. It's only ~6k, so I don't think it's too big a deal.
3811 games. It's only ~6k, so I don't think it's too big a deal.
3807
3812
3808 * Found (and fixed) a very nasty bug with history. !lines weren't
3813 * Found (and fixed) a very nasty bug with history. !lines weren't
3809 getting cached, and the out of sync caches would crash
3814 getting cached, and the out of sync caches would crash
3810 IPython. Fixed it by reorganizing the prefilter/handlers/logger
3815 IPython. Fixed it by reorganizing the prefilter/handlers/logger
3811 division of labor a bit better. Bug fixed, cleaner structure.
3816 division of labor a bit better. Bug fixed, cleaner structure.
3812
3817
3813 2001-12-01 Fernando Perez <fperez@colorado.edu>
3818 2001-12-01 Fernando Perez <fperez@colorado.edu>
3814
3819
3815 * Released 0.1.19
3820 * Released 0.1.19
3816
3821
3817 * Added option -n to @hist to prevent line number printing. Much
3822 * Added option -n to @hist to prevent line number printing. Much
3818 easier to copy/paste code this way.
3823 easier to copy/paste code this way.
3819
3824
3820 * Created global _il to hold the input list. Allows easy
3825 * Created global _il to hold the input list. Allows easy
3821 re-execution of blocks of code by slicing it (inspired by Janko's
3826 re-execution of blocks of code by slicing it (inspired by Janko's
3822 comment on 'macros').
3827 comment on 'macros').
3823
3828
3824 * Small fixes and doc updates.
3829 * Small fixes and doc updates.
3825
3830
3826 * Rewrote @history function (was @h). Renamed it to @hist, @h is
3831 * Rewrote @history function (was @h). Renamed it to @hist, @h is
3827 much too fragile with automagic. Handles properly multi-line
3832 much too fragile with automagic. Handles properly multi-line
3828 statements and takes parameters.
3833 statements and takes parameters.
3829
3834
3830 2001-11-30 Fernando Perez <fperez@colorado.edu>
3835 2001-11-30 Fernando Perez <fperez@colorado.edu>
3831
3836
3832 * Version 0.1.18 released.
3837 * Version 0.1.18 released.
3833
3838
3834 * Fixed nasty namespace bug in initial module imports.
3839 * Fixed nasty namespace bug in initial module imports.
3835
3840
3836 * Added copyright/license notes to all code files (except
3841 * Added copyright/license notes to all code files (except
3837 DPyGetOpt). For the time being, LGPL. That could change.
3842 DPyGetOpt). For the time being, LGPL. That could change.
3838
3843
3839 * Rewrote a much nicer README, updated INSTALL, cleaned up
3844 * Rewrote a much nicer README, updated INSTALL, cleaned up
3840 ipythonrc-* samples.
3845 ipythonrc-* samples.
3841
3846
3842 * Overall code/documentation cleanup. Basically ready for
3847 * Overall code/documentation cleanup. Basically ready for
3843 release. Only remaining thing: licence decision (LGPL?).
3848 release. Only remaining thing: licence decision (LGPL?).
3844
3849
3845 * Converted load_config to a class, ConfigLoader. Now recursion
3850 * Converted load_config to a class, ConfigLoader. Now recursion
3846 control is better organized. Doesn't include the same file twice.
3851 control is better organized. Doesn't include the same file twice.
3847
3852
3848 2001-11-29 Fernando Perez <fperez@colorado.edu>
3853 2001-11-29 Fernando Perez <fperez@colorado.edu>
3849
3854
3850 * Got input history working. Changed output history variables from
3855 * Got input history working. Changed output history variables from
3851 _p to _o so that _i is for input and _o for output. Just cleaner
3856 _p to _o so that _i is for input and _o for output. Just cleaner
3852 convention.
3857 convention.
3853
3858
3854 * Implemented parametric aliases. This pretty much allows the
3859 * Implemented parametric aliases. This pretty much allows the
3855 alias system to offer full-blown shell convenience, I think.
3860 alias system to offer full-blown shell convenience, I think.
3856
3861
3857 * Version 0.1.17 released, 0.1.18 opened.
3862 * Version 0.1.17 released, 0.1.18 opened.
3858
3863
3859 * dot_ipython/ipythonrc (alias): added documentation.
3864 * dot_ipython/ipythonrc (alias): added documentation.
3860 (xcolor): Fixed small bug (xcolors -> xcolor)
3865 (xcolor): Fixed small bug (xcolors -> xcolor)
3861
3866
3862 * Changed the alias system. Now alias is a magic command to define
3867 * Changed the alias system. Now alias is a magic command to define
3863 aliases just like the shell. Rationale: the builtin magics should
3868 aliases just like the shell. Rationale: the builtin magics should
3864 be there for things deeply connected to IPython's
3869 be there for things deeply connected to IPython's
3865 architecture. And this is a much lighter system for what I think
3870 architecture. And this is a much lighter system for what I think
3866 is the really important feature: allowing users to define quickly
3871 is the really important feature: allowing users to define quickly
3867 magics that will do shell things for them, so they can customize
3872 magics that will do shell things for them, so they can customize
3868 IPython easily to match their work habits. If someone is really
3873 IPython easily to match their work habits. If someone is really
3869 desperate to have another name for a builtin alias, they can
3874 desperate to have another name for a builtin alias, they can
3870 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
3875 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
3871 works.
3876 works.
3872
3877
3873 2001-11-28 Fernando Perez <fperez@colorado.edu>
3878 2001-11-28 Fernando Perez <fperez@colorado.edu>
3874
3879
3875 * Changed @file so that it opens the source file at the proper
3880 * Changed @file so that it opens the source file at the proper
3876 line. Since it uses less, if your EDITOR environment is
3881 line. Since it uses less, if your EDITOR environment is
3877 configured, typing v will immediately open your editor of choice
3882 configured, typing v will immediately open your editor of choice
3878 right at the line where the object is defined. Not as quick as
3883 right at the line where the object is defined. Not as quick as
3879 having a direct @edit command, but for all intents and purposes it
3884 having a direct @edit command, but for all intents and purposes it
3880 works. And I don't have to worry about writing @edit to deal with
3885 works. And I don't have to worry about writing @edit to deal with
3881 all the editors, less does that.
3886 all the editors, less does that.
3882
3887
3883 * Version 0.1.16 released, 0.1.17 opened.
3888 * Version 0.1.16 released, 0.1.17 opened.
3884
3889
3885 * Fixed some nasty bugs in the page/page_dumb combo that could
3890 * Fixed some nasty bugs in the page/page_dumb combo that could
3886 crash IPython.
3891 crash IPython.
3887
3892
3888 2001-11-27 Fernando Perez <fperez@colorado.edu>
3893 2001-11-27 Fernando Perez <fperez@colorado.edu>
3889
3894
3890 * Version 0.1.15 released, 0.1.16 opened.
3895 * Version 0.1.15 released, 0.1.16 opened.
3891
3896
3892 * Finally got ? and ?? to work for undefined things: now it's
3897 * Finally got ? and ?? to work for undefined things: now it's
3893 possible to type {}.get? and get information about the get method
3898 possible to type {}.get? and get information about the get method
3894 of dicts, or os.path? even if only os is defined (so technically
3899 of dicts, or os.path? even if only os is defined (so technically
3895 os.path isn't). Works at any level. For example, after import os,
3900 os.path isn't). Works at any level. For example, after import os,
3896 os?, os.path?, os.path.abspath? all work. This is great, took some
3901 os?, os.path?, os.path.abspath? all work. This is great, took some
3897 work in _ofind.
3902 work in _ofind.
3898
3903
3899 * Fixed more bugs with logging. The sanest way to do it was to add
3904 * Fixed more bugs with logging. The sanest way to do it was to add
3900 to @log a 'mode' parameter. Killed two in one shot (this mode
3905 to @log a 'mode' parameter. Killed two in one shot (this mode
3901 option was a request of Janko's). I think it's finally clean
3906 option was a request of Janko's). I think it's finally clean
3902 (famous last words).
3907 (famous last words).
3903
3908
3904 * Added a page_dumb() pager which does a decent job of paging on
3909 * Added a page_dumb() pager which does a decent job of paging on
3905 screen, if better things (like less) aren't available. One less
3910 screen, if better things (like less) aren't available. One less
3906 unix dependency (someday maybe somebody will port this to
3911 unix dependency (someday maybe somebody will port this to
3907 windows).
3912 windows).
3908
3913
3909 * Fixed problem in magic_log: would lock of logging out if log
3914 * Fixed problem in magic_log: would lock of logging out if log
3910 creation failed (because it would still think it had succeeded).
3915 creation failed (because it would still think it had succeeded).
3911
3916
3912 * Improved the page() function using curses to auto-detect screen
3917 * Improved the page() function using curses to auto-detect screen
3913 size. Now it can make a much better decision on whether to print
3918 size. Now it can make a much better decision on whether to print
3914 or page a string. Option screen_length was modified: a value 0
3919 or page a string. Option screen_length was modified: a value 0
3915 means auto-detect, and that's the default now.
3920 means auto-detect, and that's the default now.
3916
3921
3917 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
3922 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
3918 go out. I'll test it for a few days, then talk to Janko about
3923 go out. I'll test it for a few days, then talk to Janko about
3919 licences and announce it.
3924 licences and announce it.
3920
3925
3921 * Fixed the length of the auto-generated ---> prompt which appears
3926 * Fixed the length of the auto-generated ---> prompt which appears
3922 for auto-parens and auto-quotes. Getting this right isn't trivial,
3927 for auto-parens and auto-quotes. Getting this right isn't trivial,
3923 with all the color escapes, different prompt types and optional
3928 with all the color escapes, different prompt types and optional
3924 separators. But it seems to be working in all the combinations.
3929 separators. But it seems to be working in all the combinations.
3925
3930
3926 2001-11-26 Fernando Perez <fperez@colorado.edu>
3931 2001-11-26 Fernando Perez <fperez@colorado.edu>
3927
3932
3928 * Wrote a regexp filter to get option types from the option names
3933 * Wrote a regexp filter to get option types from the option names
3929 string. This eliminates the need to manually keep two duplicate
3934 string. This eliminates the need to manually keep two duplicate
3930 lists.
3935 lists.
3931
3936
3932 * Removed the unneeded check_option_names. Now options are handled
3937 * Removed the unneeded check_option_names. Now options are handled
3933 in a much saner manner and it's easy to visually check that things
3938 in a much saner manner and it's easy to visually check that things
3934 are ok.
3939 are ok.
3935
3940
3936 * Updated version numbers on all files I modified to carry a
3941 * Updated version numbers on all files I modified to carry a
3937 notice so Janko and Nathan have clear version markers.
3942 notice so Janko and Nathan have clear version markers.
3938
3943
3939 * Updated docstring for ultraTB with my changes. I should send
3944 * Updated docstring for ultraTB with my changes. I should send
3940 this to Nathan.
3945 this to Nathan.
3941
3946
3942 * Lots of small fixes. Ran everything through pychecker again.
3947 * Lots of small fixes. Ran everything through pychecker again.
3943
3948
3944 * Made loading of deep_reload an cmd line option. If it's not too
3949 * Made loading of deep_reload an cmd line option. If it's not too
3945 kosher, now people can just disable it. With -nodeep_reload it's
3950 kosher, now people can just disable it. With -nodeep_reload it's
3946 still available as dreload(), it just won't overwrite reload().
3951 still available as dreload(), it just won't overwrite reload().
3947
3952
3948 * Moved many options to the no| form (-opt and -noopt
3953 * Moved many options to the no| form (-opt and -noopt
3949 accepted). Cleaner.
3954 accepted). Cleaner.
3950
3955
3951 * Changed magic_log so that if called with no parameters, it uses
3956 * Changed magic_log so that if called with no parameters, it uses
3952 'rotate' mode. That way auto-generated logs aren't automatically
3957 'rotate' mode. That way auto-generated logs aren't automatically
3953 over-written. For normal logs, now a backup is made if it exists
3958 over-written. For normal logs, now a backup is made if it exists
3954 (only 1 level of backups). A new 'backup' mode was added to the
3959 (only 1 level of backups). A new 'backup' mode was added to the
3955 Logger class to support this. This was a request by Janko.
3960 Logger class to support this. This was a request by Janko.
3956
3961
3957 * Added @logoff/@logon to stop/restart an active log.
3962 * Added @logoff/@logon to stop/restart an active log.
3958
3963
3959 * Fixed a lot of bugs in log saving/replay. It was pretty
3964 * Fixed a lot of bugs in log saving/replay. It was pretty
3960 broken. Now special lines (!@,/) appear properly in the command
3965 broken. Now special lines (!@,/) appear properly in the command
3961 history after a log replay.
3966 history after a log replay.
3962
3967
3963 * Tried and failed to implement full session saving via pickle. My
3968 * Tried and failed to implement full session saving via pickle. My
3964 idea was to pickle __main__.__dict__, but modules can't be
3969 idea was to pickle __main__.__dict__, but modules can't be
3965 pickled. This would be a better alternative to replaying logs, but
3970 pickled. This would be a better alternative to replaying logs, but
3966 seems quite tricky to get to work. Changed -session to be called
3971 seems quite tricky to get to work. Changed -session to be called
3967 -logplay, which more accurately reflects what it does. And if we
3972 -logplay, which more accurately reflects what it does. And if we
3968 ever get real session saving working, -session is now available.
3973 ever get real session saving working, -session is now available.
3969
3974
3970 * Implemented color schemes for prompts also. As for tracebacks,
3975 * Implemented color schemes for prompts also. As for tracebacks,
3971 currently only NoColor and Linux are supported. But now the
3976 currently only NoColor and Linux are supported. But now the
3972 infrastructure is in place, based on a generic ColorScheme
3977 infrastructure is in place, based on a generic ColorScheme
3973 class. So writing and activating new schemes both for the prompts
3978 class. So writing and activating new schemes both for the prompts
3974 and the tracebacks should be straightforward.
3979 and the tracebacks should be straightforward.
3975
3980
3976 * Version 0.1.13 released, 0.1.14 opened.
3981 * Version 0.1.13 released, 0.1.14 opened.
3977
3982
3978 * Changed handling of options for output cache. Now counter is
3983 * Changed handling of options for output cache. Now counter is
3979 hardwired starting at 1 and one specifies the maximum number of
3984 hardwired starting at 1 and one specifies the maximum number of
3980 entries *in the outcache* (not the max prompt counter). This is
3985 entries *in the outcache* (not the max prompt counter). This is
3981 much better, since many statements won't increase the cache
3986 much better, since many statements won't increase the cache
3982 count. It also eliminated some confusing options, now there's only
3987 count. It also eliminated some confusing options, now there's only
3983 one: cache_size.
3988 one: cache_size.
3984
3989
3985 * Added 'alias' magic function and magic_alias option in the
3990 * Added 'alias' magic function and magic_alias option in the
3986 ipythonrc file. Now the user can easily define whatever names he
3991 ipythonrc file. Now the user can easily define whatever names he
3987 wants for the magic functions without having to play weird
3992 wants for the magic functions without having to play weird
3988 namespace games. This gives IPython a real shell-like feel.
3993 namespace games. This gives IPython a real shell-like feel.
3989
3994
3990 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
3995 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
3991 @ or not).
3996 @ or not).
3992
3997
3993 This was one of the last remaining 'visible' bugs (that I know
3998 This was one of the last remaining 'visible' bugs (that I know
3994 of). I think if I can clean up the session loading so it works
3999 of). I think if I can clean up the session loading so it works
3995 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
4000 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
3996 about licensing).
4001 about licensing).
3997
4002
3998 2001-11-25 Fernando Perez <fperez@colorado.edu>
4003 2001-11-25 Fernando Perez <fperez@colorado.edu>
3999
4004
4000 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4005 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
4001 there's a cleaner distinction between what ? and ?? show.
4006 there's a cleaner distinction between what ? and ?? show.
4002
4007
4003 * Added screen_length option. Now the user can define his own
4008 * Added screen_length option. Now the user can define his own
4004 screen size for page() operations.
4009 screen size for page() operations.
4005
4010
4006 * Implemented magic shell-like functions with automatic code
4011 * Implemented magic shell-like functions with automatic code
4007 generation. Now adding another function is just a matter of adding
4012 generation. Now adding another function is just a matter of adding
4008 an entry to a dict, and the function is dynamically generated at
4013 an entry to a dict, and the function is dynamically generated at
4009 run-time. Python has some really cool features!
4014 run-time. Python has some really cool features!
4010
4015
4011 * Renamed many options to cleanup conventions a little. Now all
4016 * Renamed many options to cleanup conventions a little. Now all
4012 are lowercase, and only underscores where needed. Also in the code
4017 are lowercase, and only underscores where needed. Also in the code
4013 option name tables are clearer.
4018 option name tables are clearer.
4014
4019
4015 * Changed prompts a little. Now input is 'In [n]:' instead of
4020 * Changed prompts a little. Now input is 'In [n]:' instead of
4016 'In[n]:='. This allows it the numbers to be aligned with the
4021 'In[n]:='. This allows it the numbers to be aligned with the
4017 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4022 Out[n] numbers, and removes usage of ':=' which doesn't exist in
4018 Python (it was a Mathematica thing). The '...' continuation prompt
4023 Python (it was a Mathematica thing). The '...' continuation prompt
4019 was also changed a little to align better.
4024 was also changed a little to align better.
4020
4025
4021 * Fixed bug when flushing output cache. Not all _p<n> variables
4026 * Fixed bug when flushing output cache. Not all _p<n> variables
4022 exist, so their deletion needs to be wrapped in a try:
4027 exist, so their deletion needs to be wrapped in a try:
4023
4028
4024 * Figured out how to properly use inspect.formatargspec() (it
4029 * Figured out how to properly use inspect.formatargspec() (it
4025 requires the args preceded by *). So I removed all the code from
4030 requires the args preceded by *). So I removed all the code from
4026 _get_pdef in Magic, which was just replicating that.
4031 _get_pdef in Magic, which was just replicating that.
4027
4032
4028 * Added test to prefilter to allow redefining magic function names
4033 * Added test to prefilter to allow redefining magic function names
4029 as variables. This is ok, since the @ form is always available,
4034 as variables. This is ok, since the @ form is always available,
4030 but whe should allow the user to define a variable called 'ls' if
4035 but whe should allow the user to define a variable called 'ls' if
4031 he needs it.
4036 he needs it.
4032
4037
4033 * Moved the ToDo information from README into a separate ToDo.
4038 * Moved the ToDo information from README into a separate ToDo.
4034
4039
4035 * General code cleanup and small bugfixes. I think it's close to a
4040 * General code cleanup and small bugfixes. I think it's close to a
4036 state where it can be released, obviously with a big 'beta'
4041 state where it can be released, obviously with a big 'beta'
4037 warning on it.
4042 warning on it.
4038
4043
4039 * Got the magic function split to work. Now all magics are defined
4044 * Got the magic function split to work. Now all magics are defined
4040 in a separate class. It just organizes things a bit, and now
4045 in a separate class. It just organizes things a bit, and now
4041 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4046 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
4042 was too long).
4047 was too long).
4043
4048
4044 * Changed @clear to @reset to avoid potential confusions with
4049 * Changed @clear to @reset to avoid potential confusions with
4045 the shell command clear. Also renamed @cl to @clear, which does
4050 the shell command clear. Also renamed @cl to @clear, which does
4046 exactly what people expect it to from their shell experience.
4051 exactly what people expect it to from their shell experience.
4047
4052
4048 Added a check to the @reset command (since it's so
4053 Added a check to the @reset command (since it's so
4049 destructive, it's probably a good idea to ask for confirmation).
4054 destructive, it's probably a good idea to ask for confirmation).
4050 But now reset only works for full namespace resetting. Since the
4055 But now reset only works for full namespace resetting. Since the
4051 del keyword is already there for deleting a few specific
4056 del keyword is already there for deleting a few specific
4052 variables, I don't see the point of having a redundant magic
4057 variables, I don't see the point of having a redundant magic
4053 function for the same task.
4058 function for the same task.
4054
4059
4055 2001-11-24 Fernando Perez <fperez@colorado.edu>
4060 2001-11-24 Fernando Perez <fperez@colorado.edu>
4056
4061
4057 * Updated the builtin docs (esp. the ? ones).
4062 * Updated the builtin docs (esp. the ? ones).
4058
4063
4059 * Ran all the code through pychecker. Not terribly impressed with
4064 * Ran all the code through pychecker. Not terribly impressed with
4060 it: lots of spurious warnings and didn't really find anything of
4065 it: lots of spurious warnings and didn't really find anything of
4061 substance (just a few modules being imported and not used).
4066 substance (just a few modules being imported and not used).
4062
4067
4063 * Implemented the new ultraTB functionality into IPython. New
4068 * Implemented the new ultraTB functionality into IPython. New
4064 option: xcolors. This chooses color scheme. xmode now only selects
4069 option: xcolors. This chooses color scheme. xmode now only selects
4065 between Plain and Verbose. Better orthogonality.
4070 between Plain and Verbose. Better orthogonality.
4066
4071
4067 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4072 * Large rewrite of ultraTB. Much cleaner now, with a separation of
4068 mode and color scheme for the exception handlers. Now it's
4073 mode and color scheme for the exception handlers. Now it's
4069 possible to have the verbose traceback with no coloring.
4074 possible to have the verbose traceback with no coloring.
4070
4075
4071 2001-11-23 Fernando Perez <fperez@colorado.edu>
4076 2001-11-23 Fernando Perez <fperez@colorado.edu>
4072
4077
4073 * Version 0.1.12 released, 0.1.13 opened.
4078 * Version 0.1.12 released, 0.1.13 opened.
4074
4079
4075 * Removed option to set auto-quote and auto-paren escapes by
4080 * Removed option to set auto-quote and auto-paren escapes by
4076 user. The chances of breaking valid syntax are just too high. If
4081 user. The chances of breaking valid syntax are just too high. If
4077 someone *really* wants, they can always dig into the code.
4082 someone *really* wants, they can always dig into the code.
4078
4083
4079 * Made prompt separators configurable.
4084 * Made prompt separators configurable.
4080
4085
4081 2001-11-22 Fernando Perez <fperez@colorado.edu>
4086 2001-11-22 Fernando Perez <fperez@colorado.edu>
4082
4087
4083 * Small bugfixes in many places.
4088 * Small bugfixes in many places.
4084
4089
4085 * Removed the MyCompleter class from ipplib. It seemed redundant
4090 * Removed the MyCompleter class from ipplib. It seemed redundant
4086 with the C-p,C-n history search functionality. Less code to
4091 with the C-p,C-n history search functionality. Less code to
4087 maintain.
4092 maintain.
4088
4093
4089 * Moved all the original ipython.py code into ipythonlib.py. Right
4094 * Moved all the original ipython.py code into ipythonlib.py. Right
4090 now it's just one big dump into a function called make_IPython, so
4095 now it's just one big dump into a function called make_IPython, so
4091 no real modularity has been gained. But at least it makes the
4096 no real modularity has been gained. But at least it makes the
4092 wrapper script tiny, and since ipythonlib is a module, it gets
4097 wrapper script tiny, and since ipythonlib is a module, it gets
4093 compiled and startup is much faster.
4098 compiled and startup is much faster.
4094
4099
4095 This is a reasobably 'deep' change, so we should test it for a
4100 This is a reasobably 'deep' change, so we should test it for a
4096 while without messing too much more with the code.
4101 while without messing too much more with the code.
4097
4102
4098 2001-11-21 Fernando Perez <fperez@colorado.edu>
4103 2001-11-21 Fernando Perez <fperez@colorado.edu>
4099
4104
4100 * Version 0.1.11 released, 0.1.12 opened for further work.
4105 * Version 0.1.11 released, 0.1.12 opened for further work.
4101
4106
4102 * Removed dependency on Itpl. It was only needed in one place. It
4107 * Removed dependency on Itpl. It was only needed in one place. It
4103 would be nice if this became part of python, though. It makes life
4108 would be nice if this became part of python, though. It makes life
4104 *a lot* easier in some cases.
4109 *a lot* easier in some cases.
4105
4110
4106 * Simplified the prefilter code a bit. Now all handlers are
4111 * Simplified the prefilter code a bit. Now all handlers are
4107 expected to explicitly return a value (at least a blank string).
4112 expected to explicitly return a value (at least a blank string).
4108
4113
4109 * Heavy edits in ipplib. Removed the help system altogether. Now
4114 * Heavy edits in ipplib. Removed the help system altogether. Now
4110 obj?/?? is used for inspecting objects, a magic @doc prints
4115 obj?/?? is used for inspecting objects, a magic @doc prints
4111 docstrings, and full-blown Python help is accessed via the 'help'
4116 docstrings, and full-blown Python help is accessed via the 'help'
4112 keyword. This cleans up a lot of code (less to maintain) and does
4117 keyword. This cleans up a lot of code (less to maintain) and does
4113 the job. Since 'help' is now a standard Python component, might as
4118 the job. Since 'help' is now a standard Python component, might as
4114 well use it and remove duplicate functionality.
4119 well use it and remove duplicate functionality.
4115
4120
4116 Also removed the option to use ipplib as a standalone program. By
4121 Also removed the option to use ipplib as a standalone program. By
4117 now it's too dependent on other parts of IPython to function alone.
4122 now it's too dependent on other parts of IPython to function alone.
4118
4123
4119 * Fixed bug in genutils.pager. It would crash if the pager was
4124 * Fixed bug in genutils.pager. It would crash if the pager was
4120 exited immediately after opening (broken pipe).
4125 exited immediately after opening (broken pipe).
4121
4126
4122 * Trimmed down the VerboseTB reporting a little. The header is
4127 * Trimmed down the VerboseTB reporting a little. The header is
4123 much shorter now and the repeated exception arguments at the end
4128 much shorter now and the repeated exception arguments at the end
4124 have been removed. For interactive use the old header seemed a bit
4129 have been removed. For interactive use the old header seemed a bit
4125 excessive.
4130 excessive.
4126
4131
4127 * Fixed small bug in output of @whos for variables with multi-word
4132 * Fixed small bug in output of @whos for variables with multi-word
4128 types (only first word was displayed).
4133 types (only first word was displayed).
4129
4134
4130 2001-11-17 Fernando Perez <fperez@colorado.edu>
4135 2001-11-17 Fernando Perez <fperez@colorado.edu>
4131
4136
4132 * Version 0.1.10 released, 0.1.11 opened for further work.
4137 * Version 0.1.10 released, 0.1.11 opened for further work.
4133
4138
4134 * Modified dirs and friends. dirs now *returns* the stack (not
4139 * Modified dirs and friends. dirs now *returns* the stack (not
4135 prints), so one can manipulate it as a variable. Convenient to
4140 prints), so one can manipulate it as a variable. Convenient to
4136 travel along many directories.
4141 travel along many directories.
4137
4142
4138 * Fixed bug in magic_pdef: would only work with functions with
4143 * Fixed bug in magic_pdef: would only work with functions with
4139 arguments with default values.
4144 arguments with default values.
4140
4145
4141 2001-11-14 Fernando Perez <fperez@colorado.edu>
4146 2001-11-14 Fernando Perez <fperez@colorado.edu>
4142
4147
4143 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4148 * Added the PhysicsInput stuff to dot_ipython so it ships as an
4144 example with IPython. Various other minor fixes and cleanups.
4149 example with IPython. Various other minor fixes and cleanups.
4145
4150
4146 * Version 0.1.9 released, 0.1.10 opened for further work.
4151 * Version 0.1.9 released, 0.1.10 opened for further work.
4147
4152
4148 * Added sys.path to the list of directories searched in the
4153 * Added sys.path to the list of directories searched in the
4149 execfile= option. It used to be the current directory and the
4154 execfile= option. It used to be the current directory and the
4150 user's IPYTHONDIR only.
4155 user's IPYTHONDIR only.
4151
4156
4152 2001-11-13 Fernando Perez <fperez@colorado.edu>
4157 2001-11-13 Fernando Perez <fperez@colorado.edu>
4153
4158
4154 * Reinstated the raw_input/prefilter separation that Janko had
4159 * Reinstated the raw_input/prefilter separation that Janko had
4155 initially. This gives a more convenient setup for extending the
4160 initially. This gives a more convenient setup for extending the
4156 pre-processor from the outside: raw_input always gets a string,
4161 pre-processor from the outside: raw_input always gets a string,
4157 and prefilter has to process it. We can then redefine prefilter
4162 and prefilter has to process it. We can then redefine prefilter
4158 from the outside and implement extensions for special
4163 from the outside and implement extensions for special
4159 purposes.
4164 purposes.
4160
4165
4161 Today I got one for inputting PhysicalQuantity objects
4166 Today I got one for inputting PhysicalQuantity objects
4162 (from Scientific) without needing any function calls at
4167 (from Scientific) without needing any function calls at
4163 all. Extremely convenient, and it's all done as a user-level
4168 all. Extremely convenient, and it's all done as a user-level
4164 extension (no IPython code was touched). Now instead of:
4169 extension (no IPython code was touched). Now instead of:
4165 a = PhysicalQuantity(4.2,'m/s**2')
4170 a = PhysicalQuantity(4.2,'m/s**2')
4166 one can simply say
4171 one can simply say
4167 a = 4.2 m/s**2
4172 a = 4.2 m/s**2
4168 or even
4173 or even
4169 a = 4.2 m/s^2
4174 a = 4.2 m/s^2
4170
4175
4171 I use this, but it's also a proof of concept: IPython really is
4176 I use this, but it's also a proof of concept: IPython really is
4172 fully user-extensible, even at the level of the parsing of the
4177 fully user-extensible, even at the level of the parsing of the
4173 command line. It's not trivial, but it's perfectly doable.
4178 command line. It's not trivial, but it's perfectly doable.
4174
4179
4175 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4180 * Added 'add_flip' method to inclusion conflict resolver. Fixes
4176 the problem of modules being loaded in the inverse order in which
4181 the problem of modules being loaded in the inverse order in which
4177 they were defined in
4182 they were defined in
4178
4183
4179 * Version 0.1.8 released, 0.1.9 opened for further work.
4184 * Version 0.1.8 released, 0.1.9 opened for further work.
4180
4185
4181 * Added magics pdef, source and file. They respectively show the
4186 * Added magics pdef, source and file. They respectively show the
4182 definition line ('prototype' in C), source code and full python
4187 definition line ('prototype' in C), source code and full python
4183 file for any callable object. The object inspector oinfo uses
4188 file for any callable object. The object inspector oinfo uses
4184 these to show the same information.
4189 these to show the same information.
4185
4190
4186 * Version 0.1.7 released, 0.1.8 opened for further work.
4191 * Version 0.1.7 released, 0.1.8 opened for further work.
4187
4192
4188 * Separated all the magic functions into a class called Magic. The
4193 * Separated all the magic functions into a class called Magic. The
4189 InteractiveShell class was becoming too big for Xemacs to handle
4194 InteractiveShell class was becoming too big for Xemacs to handle
4190 (de-indenting a line would lock it up for 10 seconds while it
4195 (de-indenting a line would lock it up for 10 seconds while it
4191 backtracked on the whole class!)
4196 backtracked on the whole class!)
4192
4197
4193 FIXME: didn't work. It can be done, but right now namespaces are
4198 FIXME: didn't work. It can be done, but right now namespaces are
4194 all messed up. Do it later (reverted it for now, so at least
4199 all messed up. Do it later (reverted it for now, so at least
4195 everything works as before).
4200 everything works as before).
4196
4201
4197 * Got the object introspection system (magic_oinfo) working! I
4202 * Got the object introspection system (magic_oinfo) working! I
4198 think this is pretty much ready for release to Janko, so he can
4203 think this is pretty much ready for release to Janko, so he can
4199 test it for a while and then announce it. Pretty much 100% of what
4204 test it for a while and then announce it. Pretty much 100% of what
4200 I wanted for the 'phase 1' release is ready. Happy, tired.
4205 I wanted for the 'phase 1' release is ready. Happy, tired.
4201
4206
4202 2001-11-12 Fernando Perez <fperez@colorado.edu>
4207 2001-11-12 Fernando Perez <fperez@colorado.edu>
4203
4208
4204 * Version 0.1.6 released, 0.1.7 opened for further work.
4209 * Version 0.1.6 released, 0.1.7 opened for further work.
4205
4210
4206 * Fixed bug in printing: it used to test for truth before
4211 * Fixed bug in printing: it used to test for truth before
4207 printing, so 0 wouldn't print. Now checks for None.
4212 printing, so 0 wouldn't print. Now checks for None.
4208
4213
4209 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4214 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
4210 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4215 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
4211 reaches by hand into the outputcache. Think of a better way to do
4216 reaches by hand into the outputcache. Think of a better way to do
4212 this later.
4217 this later.
4213
4218
4214 * Various small fixes thanks to Nathan's comments.
4219 * Various small fixes thanks to Nathan's comments.
4215
4220
4216 * Changed magic_pprint to magic_Pprint. This way it doesn't
4221 * Changed magic_pprint to magic_Pprint. This way it doesn't
4217 collide with pprint() and the name is consistent with the command
4222 collide with pprint() and the name is consistent with the command
4218 line option.
4223 line option.
4219
4224
4220 * Changed prompt counter behavior to be fully like
4225 * Changed prompt counter behavior to be fully like
4221 Mathematica's. That is, even input that doesn't return a result
4226 Mathematica's. That is, even input that doesn't return a result
4222 raises the prompt counter. The old behavior was kind of confusing
4227 raises the prompt counter. The old behavior was kind of confusing
4223 (getting the same prompt number several times if the operation
4228 (getting the same prompt number several times if the operation
4224 didn't return a result).
4229 didn't return a result).
4225
4230
4226 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4231 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
4227
4232
4228 * Fixed -Classic mode (wasn't working anymore).
4233 * Fixed -Classic mode (wasn't working anymore).
4229
4234
4230 * Added colored prompts using Nathan's new code. Colors are
4235 * Added colored prompts using Nathan's new code. Colors are
4231 currently hardwired, they can be user-configurable. For
4236 currently hardwired, they can be user-configurable. For
4232 developers, they can be chosen in file ipythonlib.py, at the
4237 developers, they can be chosen in file ipythonlib.py, at the
4233 beginning of the CachedOutput class def.
4238 beginning of the CachedOutput class def.
4234
4239
4235 2001-11-11 Fernando Perez <fperez@colorado.edu>
4240 2001-11-11 Fernando Perez <fperez@colorado.edu>
4236
4241
4237 * Version 0.1.5 released, 0.1.6 opened for further work.
4242 * Version 0.1.5 released, 0.1.6 opened for further work.
4238
4243
4239 * Changed magic_env to *return* the environment as a dict (not to
4244 * Changed magic_env to *return* the environment as a dict (not to
4240 print it). This way it prints, but it can also be processed.
4245 print it). This way it prints, but it can also be processed.
4241
4246
4242 * Added Verbose exception reporting to interactive
4247 * Added Verbose exception reporting to interactive
4243 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4248 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
4244 traceback. Had to make some changes to the ultraTB file. This is
4249 traceback. Had to make some changes to the ultraTB file. This is
4245 probably the last 'big' thing in my mental todo list. This ties
4250 probably the last 'big' thing in my mental todo list. This ties
4246 in with the next entry:
4251 in with the next entry:
4247
4252
4248 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4253 * Changed -Xi and -Xf to a single -xmode option. Now all the user
4249 has to specify is Plain, Color or Verbose for all exception
4254 has to specify is Plain, Color or Verbose for all exception
4250 handling.
4255 handling.
4251
4256
4252 * Removed ShellServices option. All this can really be done via
4257 * Removed ShellServices option. All this can really be done via
4253 the magic system. It's easier to extend, cleaner and has automatic
4258 the magic system. It's easier to extend, cleaner and has automatic
4254 namespace protection and documentation.
4259 namespace protection and documentation.
4255
4260
4256 2001-11-09 Fernando Perez <fperez@colorado.edu>
4261 2001-11-09 Fernando Perez <fperez@colorado.edu>
4257
4262
4258 * Fixed bug in output cache flushing (missing parameter to
4263 * Fixed bug in output cache flushing (missing parameter to
4259 __init__). Other small bugs fixed (found using pychecker).
4264 __init__). Other small bugs fixed (found using pychecker).
4260
4265
4261 * Version 0.1.4 opened for bugfixing.
4266 * Version 0.1.4 opened for bugfixing.
4262
4267
4263 2001-11-07 Fernando Perez <fperez@colorado.edu>
4268 2001-11-07 Fernando Perez <fperez@colorado.edu>
4264
4269
4265 * Version 0.1.3 released, mainly because of the raw_input bug.
4270 * Version 0.1.3 released, mainly because of the raw_input bug.
4266
4271
4267 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4272 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
4268 and when testing for whether things were callable, a call could
4273 and when testing for whether things were callable, a call could
4269 actually be made to certain functions. They would get called again
4274 actually be made to certain functions. They would get called again
4270 once 'really' executed, with a resulting double call. A disaster
4275 once 'really' executed, with a resulting double call. A disaster
4271 in many cases (list.reverse() would never work!).
4276 in many cases (list.reverse() would never work!).
4272
4277
4273 * Removed prefilter() function, moved its code to raw_input (which
4278 * Removed prefilter() function, moved its code to raw_input (which
4274 after all was just a near-empty caller for prefilter). This saves
4279 after all was just a near-empty caller for prefilter). This saves
4275 a function call on every prompt, and simplifies the class a tiny bit.
4280 a function call on every prompt, and simplifies the class a tiny bit.
4276
4281
4277 * Fix _ip to __ip name in magic example file.
4282 * Fix _ip to __ip name in magic example file.
4278
4283
4279 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4284 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
4280 work with non-gnu versions of tar.
4285 work with non-gnu versions of tar.
4281
4286
4282 2001-11-06 Fernando Perez <fperez@colorado.edu>
4287 2001-11-06 Fernando Perez <fperez@colorado.edu>
4283
4288
4284 * Version 0.1.2. Just to keep track of the recent changes.
4289 * Version 0.1.2. Just to keep track of the recent changes.
4285
4290
4286 * Fixed nasty bug in output prompt routine. It used to check 'if
4291 * Fixed nasty bug in output prompt routine. It used to check 'if
4287 arg != None...'. Problem is, this fails if arg implements a
4292 arg != None...'. Problem is, this fails if arg implements a
4288 special comparison (__cmp__) which disallows comparing to
4293 special comparison (__cmp__) which disallows comparing to
4289 None. Found it when trying to use the PhysicalQuantity module from
4294 None. Found it when trying to use the PhysicalQuantity module from
4290 ScientificPython.
4295 ScientificPython.
4291
4296
4292 2001-11-05 Fernando Perez <fperez@colorado.edu>
4297 2001-11-05 Fernando Perez <fperez@colorado.edu>
4293
4298
4294 * Also added dirs. Now the pushd/popd/dirs family functions
4299 * Also added dirs. Now the pushd/popd/dirs family functions
4295 basically like the shell, with the added convenience of going home
4300 basically like the shell, with the added convenience of going home
4296 when called with no args.
4301 when called with no args.
4297
4302
4298 * pushd/popd slightly modified to mimic shell behavior more
4303 * pushd/popd slightly modified to mimic shell behavior more
4299 closely.
4304 closely.
4300
4305
4301 * Added env,pushd,popd from ShellServices as magic functions. I
4306 * Added env,pushd,popd from ShellServices as magic functions. I
4302 think the cleanest will be to port all desired functions from
4307 think the cleanest will be to port all desired functions from
4303 ShellServices as magics and remove ShellServices altogether. This
4308 ShellServices as magics and remove ShellServices altogether. This
4304 will provide a single, clean way of adding functionality
4309 will provide a single, clean way of adding functionality
4305 (shell-type or otherwise) to IP.
4310 (shell-type or otherwise) to IP.
4306
4311
4307 2001-11-04 Fernando Perez <fperez@colorado.edu>
4312 2001-11-04 Fernando Perez <fperez@colorado.edu>
4308
4313
4309 * Added .ipython/ directory to sys.path. This way users can keep
4314 * Added .ipython/ directory to sys.path. This way users can keep
4310 customizations there and access them via import.
4315 customizations there and access them via import.
4311
4316
4312 2001-11-03 Fernando Perez <fperez@colorado.edu>
4317 2001-11-03 Fernando Perez <fperez@colorado.edu>
4313
4318
4314 * Opened version 0.1.1 for new changes.
4319 * Opened version 0.1.1 for new changes.
4315
4320
4316 * Changed version number to 0.1.0: first 'public' release, sent to
4321 * Changed version number to 0.1.0: first 'public' release, sent to
4317 Nathan and Janko.
4322 Nathan and Janko.
4318
4323
4319 * Lots of small fixes and tweaks.
4324 * Lots of small fixes and tweaks.
4320
4325
4321 * Minor changes to whos format. Now strings are shown, snipped if
4326 * Minor changes to whos format. Now strings are shown, snipped if
4322 too long.
4327 too long.
4323
4328
4324 * Changed ShellServices to work on __main__ so they show up in @who
4329 * Changed ShellServices to work on __main__ so they show up in @who
4325
4330
4326 * Help also works with ? at the end of a line:
4331 * Help also works with ? at the end of a line:
4327 ?sin and sin?
4332 ?sin and sin?
4328 both produce the same effect. This is nice, as often I use the
4333 both produce the same effect. This is nice, as often I use the
4329 tab-complete to find the name of a method, but I used to then have
4334 tab-complete to find the name of a method, but I used to then have
4330 to go to the beginning of the line to put a ? if I wanted more
4335 to go to the beginning of the line to put a ? if I wanted more
4331 info. Now I can just add the ? and hit return. Convenient.
4336 info. Now I can just add the ? and hit return. Convenient.
4332
4337
4333 2001-11-02 Fernando Perez <fperez@colorado.edu>
4338 2001-11-02 Fernando Perez <fperez@colorado.edu>
4334
4339
4335 * Python version check (>=2.1) added.
4340 * Python version check (>=2.1) added.
4336
4341
4337 * Added LazyPython documentation. At this point the docs are quite
4342 * Added LazyPython documentation. At this point the docs are quite
4338 a mess. A cleanup is in order.
4343 a mess. A cleanup is in order.
4339
4344
4340 * Auto-installer created. For some bizarre reason, the zipfiles
4345 * Auto-installer created. For some bizarre reason, the zipfiles
4341 module isn't working on my system. So I made a tar version
4346 module isn't working on my system. So I made a tar version
4342 (hopefully the command line options in various systems won't kill
4347 (hopefully the command line options in various systems won't kill
4343 me).
4348 me).
4344
4349
4345 * Fixes to Struct in genutils. Now all dictionary-like methods are
4350 * Fixes to Struct in genutils. Now all dictionary-like methods are
4346 protected (reasonably).
4351 protected (reasonably).
4347
4352
4348 * Added pager function to genutils and changed ? to print usage
4353 * Added pager function to genutils and changed ? to print usage
4349 note through it (it was too long).
4354 note through it (it was too long).
4350
4355
4351 * Added the LazyPython functionality. Works great! I changed the
4356 * Added the LazyPython functionality. Works great! I changed the
4352 auto-quote escape to ';', it's on home row and next to '. But
4357 auto-quote escape to ';', it's on home row and next to '. But
4353 both auto-quote and auto-paren (still /) escapes are command-line
4358 both auto-quote and auto-paren (still /) escapes are command-line
4354 parameters.
4359 parameters.
4355
4360
4356
4361
4357 2001-11-01 Fernando Perez <fperez@colorado.edu>
4362 2001-11-01 Fernando Perez <fperez@colorado.edu>
4358
4363
4359 * Version changed to 0.0.7. Fairly large change: configuration now
4364 * Version changed to 0.0.7. Fairly large change: configuration now
4360 is all stored in a directory, by default .ipython. There, all
4365 is all stored in a directory, by default .ipython. There, all
4361 config files have normal looking names (not .names)
4366 config files have normal looking names (not .names)
4362
4367
4363 * Version 0.0.6 Released first to Lucas and Archie as a test
4368 * Version 0.0.6 Released first to Lucas and Archie as a test
4364 run. Since it's the first 'semi-public' release, change version to
4369 run. Since it's the first 'semi-public' release, change version to
4365 > 0.0.6 for any changes now.
4370 > 0.0.6 for any changes now.
4366
4371
4367 * Stuff I had put in the ipplib.py changelog:
4372 * Stuff I had put in the ipplib.py changelog:
4368
4373
4369 Changes to InteractiveShell:
4374 Changes to InteractiveShell:
4370
4375
4371 - Made the usage message a parameter.
4376 - Made the usage message a parameter.
4372
4377
4373 - Require the name of the shell variable to be given. It's a bit
4378 - Require the name of the shell variable to be given. It's a bit
4374 of a hack, but allows the name 'shell' not to be hardwire in the
4379 of a hack, but allows the name 'shell' not to be hardwire in the
4375 magic (@) handler, which is problematic b/c it requires
4380 magic (@) handler, which is problematic b/c it requires
4376 polluting the global namespace with 'shell'. This in turn is
4381 polluting the global namespace with 'shell'. This in turn is
4377 fragile: if a user redefines a variable called shell, things
4382 fragile: if a user redefines a variable called shell, things
4378 break.
4383 break.
4379
4384
4380 - magic @: all functions available through @ need to be defined
4385 - magic @: all functions available through @ need to be defined
4381 as magic_<name>, even though they can be called simply as
4386 as magic_<name>, even though they can be called simply as
4382 @<name>. This allows the special command @magic to gather
4387 @<name>. This allows the special command @magic to gather
4383 information automatically about all existing magic functions,
4388 information automatically about all existing magic functions,
4384 even if they are run-time user extensions, by parsing the shell
4389 even if they are run-time user extensions, by parsing the shell
4385 instance __dict__ looking for special magic_ names.
4390 instance __dict__ looking for special magic_ names.
4386
4391
4387 - mainloop: added *two* local namespace parameters. This allows
4392 - mainloop: added *two* local namespace parameters. This allows
4388 the class to differentiate between parameters which were there
4393 the class to differentiate between parameters which were there
4389 before and after command line initialization was processed. This
4394 before and after command line initialization was processed. This
4390 way, later @who can show things loaded at startup by the
4395 way, later @who can show things loaded at startup by the
4391 user. This trick was necessary to make session saving/reloading
4396 user. This trick was necessary to make session saving/reloading
4392 really work: ideally after saving/exiting/reloading a session,
4397 really work: ideally after saving/exiting/reloading a session,
4393 *everythin* should look the same, including the output of @who. I
4398 *everythin* should look the same, including the output of @who. I
4394 was only able to make this work with this double namespace
4399 was only able to make this work with this double namespace
4395 trick.
4400 trick.
4396
4401
4397 - added a header to the logfile which allows (almost) full
4402 - added a header to the logfile which allows (almost) full
4398 session restoring.
4403 session restoring.
4399
4404
4400 - prepend lines beginning with @ or !, with a and log
4405 - prepend lines beginning with @ or !, with a and log
4401 them. Why? !lines: may be useful to know what you did @lines:
4406 them. Why? !lines: may be useful to know what you did @lines:
4402 they may affect session state. So when restoring a session, at
4407 they may affect session state. So when restoring a session, at
4403 least inform the user of their presence. I couldn't quite get
4408 least inform the user of their presence. I couldn't quite get
4404 them to properly re-execute, but at least the user is warned.
4409 them to properly re-execute, but at least the user is warned.
4405
4410
4406 * Started ChangeLog.
4411 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now