##// END OF EJS Templates
- Fix state handling bug in format(). Closes #146.
jdh2358 -
Show More
@@ -1,282 +1,287 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 Class and program to colorize python source code for ANSI terminals.
3 Class and program to colorize python source code for ANSI terminals.
4
4
5 Based on an HTML code highlighter by Jurgen Hermann found at:
5 Based on an HTML code highlighter by Jurgen Hermann found at:
6 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52298
6 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52298
7
7
8 Modifications by Fernando Perez (fperez@colorado.edu).
8 Modifications by Fernando Perez (fperez@colorado.edu).
9
9
10 Information on the original HTML highlighter follows:
10 Information on the original HTML highlighter follows:
11
11
12 MoinMoin - Python Source Parser
12 MoinMoin - Python Source Parser
13
13
14 Title:olorize Python source using the built-in tokenizer
14 Title:olorize Python source using the built-in tokenizer
15
15
16 Submitter: Jurgen Hermann
16 Submitter: Jurgen Hermann
17 Last Updated:2001/04/06
17 Last Updated:2001/04/06
18
18
19 Version no:1.2
19 Version no:1.2
20
20
21 Description:
21 Description:
22
22
23 This code is part of MoinMoin (http://moin.sourceforge.net/) and converts
23 This code is part of MoinMoin (http://moin.sourceforge.net/) and converts
24 Python source code to HTML markup, rendering comments, keywords,
24 Python source code to HTML markup, rendering comments, keywords,
25 operators, numeric and string literals in different colors.
25 operators, numeric and string literals in different colors.
26
26
27 It shows how to use the built-in keyword, token and tokenize modules to
27 It shows how to use the built-in keyword, token and tokenize modules to
28 scan Python source code and re-emit it with no changes to its original
28 scan Python source code and re-emit it with no changes to its original
29 formatting (which is the hard part).
29 formatting (which is the hard part).
30
30
31 $Id: PyColorize.py 2225 2007-04-08 02:48:16Z jdh2358 $"""
31 $Id: PyColorize.py 2274 2007-04-26 14:41:43Z jdh2358 $"""
32
32
33 __all__ = ['ANSICodeColors','Parser']
33 __all__ = ['ANSICodeColors','Parser']
34
34
35 _scheme_default = 'Linux'
35 _scheme_default = 'Linux'
36
36
37 # Imports
37 # Imports
38 import cStringIO
38 import cStringIO
39 import keyword
39 import keyword
40 import os
40 import os
41 import string
41 import string
42 import sys
42 import sys
43 import token
43 import token
44 import tokenize
44 import tokenize
45
45
46 from IPython.ColorANSI import *
46 from IPython.ColorANSI import *
47
47
48 #############################################################################
48 #############################################################################
49 ### Python Source Parser (does Hilighting)
49 ### Python Source Parser (does Hilighting)
50 #############################################################################
50 #############################################################################
51
51
52 _KEYWORD = token.NT_OFFSET + 1
52 _KEYWORD = token.NT_OFFSET + 1
53 _TEXT = token.NT_OFFSET + 2
53 _TEXT = token.NT_OFFSET + 2
54
54
55 #****************************************************************************
55 #****************************************************************************
56 # Builtin color schemes
56 # Builtin color schemes
57
57
58 Colors = TermColors # just a shorthand
58 Colors = TermColors # just a shorthand
59
59
60 # Build a few color schemes
60 # Build a few color schemes
61 NoColor = ColorScheme(
61 NoColor = ColorScheme(
62 'NoColor',{
62 'NoColor',{
63 token.NUMBER : Colors.NoColor,
63 token.NUMBER : Colors.NoColor,
64 token.OP : Colors.NoColor,
64 token.OP : Colors.NoColor,
65 token.STRING : Colors.NoColor,
65 token.STRING : Colors.NoColor,
66 tokenize.COMMENT : Colors.NoColor,
66 tokenize.COMMENT : Colors.NoColor,
67 token.NAME : Colors.NoColor,
67 token.NAME : Colors.NoColor,
68 token.ERRORTOKEN : Colors.NoColor,
68 token.ERRORTOKEN : Colors.NoColor,
69
69
70 _KEYWORD : Colors.NoColor,
70 _KEYWORD : Colors.NoColor,
71 _TEXT : Colors.NoColor,
71 _TEXT : Colors.NoColor,
72
72
73 'normal' : Colors.NoColor # color off (usu. Colors.Normal)
73 'normal' : Colors.NoColor # color off (usu. Colors.Normal)
74 } )
74 } )
75
75
76 LinuxColors = ColorScheme(
76 LinuxColors = ColorScheme(
77 'Linux',{
77 'Linux',{
78 token.NUMBER : Colors.LightCyan,
78 token.NUMBER : Colors.LightCyan,
79 token.OP : Colors.Yellow,
79 token.OP : Colors.Yellow,
80 token.STRING : Colors.LightBlue,
80 token.STRING : Colors.LightBlue,
81 tokenize.COMMENT : Colors.LightRed,
81 tokenize.COMMENT : Colors.LightRed,
82 token.NAME : Colors.White,
82 token.NAME : Colors.White,
83 token.ERRORTOKEN : Colors.Red,
83 token.ERRORTOKEN : Colors.Red,
84
84
85 _KEYWORD : Colors.LightGreen,
85 _KEYWORD : Colors.LightGreen,
86 _TEXT : Colors.Yellow,
86 _TEXT : Colors.Yellow,
87
87
88 'normal' : Colors.Normal # color off (usu. Colors.Normal)
88 'normal' : Colors.Normal # color off (usu. Colors.Normal)
89 } )
89 } )
90
90
91 LightBGColors = ColorScheme(
91 LightBGColors = ColorScheme(
92 'LightBG',{
92 'LightBG',{
93 token.NUMBER : Colors.Cyan,
93 token.NUMBER : Colors.Cyan,
94 token.OP : Colors.Blue,
94 token.OP : Colors.Blue,
95 token.STRING : Colors.Blue,
95 token.STRING : Colors.Blue,
96 tokenize.COMMENT : Colors.Red,
96 tokenize.COMMENT : Colors.Red,
97 token.NAME : Colors.Black,
97 token.NAME : Colors.Black,
98 token.ERRORTOKEN : Colors.Red,
98 token.ERRORTOKEN : Colors.Red,
99
99
100 _KEYWORD : Colors.Green,
100 _KEYWORD : Colors.Green,
101 _TEXT : Colors.Blue,
101 _TEXT : Colors.Blue,
102
102
103 'normal' : Colors.Normal # color off (usu. Colors.Normal)
103 'normal' : Colors.Normal # color off (usu. Colors.Normal)
104 } )
104 } )
105
105
106 # Build table of color schemes (needed by the parser)
106 # Build table of color schemes (needed by the parser)
107 ANSICodeColors = ColorSchemeTable([NoColor,LinuxColors,LightBGColors],
107 ANSICodeColors = ColorSchemeTable([NoColor,LinuxColors,LightBGColors],
108 _scheme_default)
108 _scheme_default)
109
109
110 class Parser:
110 class Parser:
111 """ Format colored Python source.
111 """ Format colored Python source.
112 """
112 """
113
113
114 def __init__(self, color_table=None,out = sys.stdout):
114 def __init__(self, color_table=None,out = sys.stdout):
115 """ Create a parser with a specified color table and output channel.
115 """ Create a parser with a specified color table and output channel.
116
116
117 Call format() to process code.
117 Call format() to process code.
118 """
118 """
119 self.color_table = color_table and color_table or ANSICodeColors
119 self.color_table = color_table and color_table or ANSICodeColors
120 self.out = out
120 self.out = out
121
121
122 def format(self, raw, out = None, scheme = ''):
122 def format(self, raw, out = None, scheme = ''):
123 return self.format2(raw, out, scheme)[0]
123 return self.format2(raw, out, scheme)[0]
124
124
125 def format2(self, raw, out = None, scheme = ''):
125 def format2(self, raw, out = None, scheme = ''):
126 """ Parse and send the colored source.
126 """ Parse and send the colored source.
127
127
128 If out and scheme are not specified, the defaults (given to
128 If out and scheme are not specified, the defaults (given to
129 constructor) are used.
129 constructor) are used.
130
130
131 out should be a file-type object. Optionally, out can be given as the
131 out should be a file-type object. Optionally, out can be given as the
132 string 'str' and the parser will automatically return the output in a
132 string 'str' and the parser will automatically return the output in a
133 string."""
133 string."""
134
134
135 string_output = 0
135 string_output = 0
136 if out == 'str' or self.out == 'str':
136 if out == 'str' or self.out == 'str' or \
137 isinstance(self.out,cStringIO.OutputType):
138 # XXX - I don't really like this state handling logic, but at this
139 # point I don't want to make major changes, so adding the
140 # isinstance() check is the simplest I can do to ensure correct
141 # behavior.
137 out_old = self.out
142 out_old = self.out
138 self.out = cStringIO.StringIO()
143 self.out = cStringIO.StringIO()
139 string_output = 1
144 string_output = 1
140 elif out is not None:
145 elif out is not None:
141 self.out = out
146 self.out = out
142
147
143 # Fast return of the unmodified input for NoColor scheme
148 # Fast return of the unmodified input for NoColor scheme
144 if scheme == 'NoColor':
149 if scheme == 'NoColor':
145 error = False
150 error = False
146 self.out.write(raw)
151 self.out.write(raw)
147 if string_output:
152 if string_output:
148 return raw,error
153 return raw,error
149 else:
154 else:
150 return None,error
155 return None,error
151
156
152 # local shorthands
157 # local shorthands
153 colors = self.color_table[scheme].colors
158 colors = self.color_table[scheme].colors
154 self.colors = colors # put in object so __call__ sees it
159 self.colors = colors # put in object so __call__ sees it
155
160
156 # Remove trailing whitespace and normalize tabs
161 # Remove trailing whitespace and normalize tabs
157 self.raw = raw.expandtabs().rstrip()
162 self.raw = raw.expandtabs().rstrip()
158
163
159 # store line offsets in self.lines
164 # store line offsets in self.lines
160 self.lines = [0, 0]
165 self.lines = [0, 0]
161 pos = 0
166 pos = 0
162 raw_find = self.raw.find
167 raw_find = self.raw.find
163 lines_append = self.lines.append
168 lines_append = self.lines.append
164 while 1:
169 while 1:
165 pos = raw_find('\n', pos) + 1
170 pos = raw_find('\n', pos) + 1
166 if not pos: break
171 if not pos: break
167 lines_append(pos)
172 lines_append(pos)
168 lines_append(len(self.raw))
173 lines_append(len(self.raw))
169
174
170 # parse the source and write it
175 # parse the source and write it
171 self.pos = 0
176 self.pos = 0
172 text = cStringIO.StringIO(self.raw)
177 text = cStringIO.StringIO(self.raw)
173
178
174 error = False
179 error = False
175 try:
180 try:
176 tokenize.tokenize(text.readline, self)
181 tokenize.tokenize(text.readline, self)
177 except tokenize.TokenError, ex:
182 except tokenize.TokenError, ex:
178 msg = ex[0]
183 msg = ex[0]
179 line = ex[1][0]
184 line = ex[1][0]
180 self.out.write("%s\n\n*** ERROR: %s%s%s\n" %
185 self.out.write("%s\n\n*** ERROR: %s%s%s\n" %
181 (colors[token.ERRORTOKEN],
186 (colors[token.ERRORTOKEN],
182 msg, self.raw[self.lines[line]:],
187 msg, self.raw[self.lines[line]:],
183 colors.normal)
188 colors.normal)
184 )
189 )
185 error = True
190 error = True
186 self.out.write(colors.normal+'\n')
191 self.out.write(colors.normal+'\n')
187 if string_output:
192 if string_output:
188 output = self.out.getvalue()
193 output = self.out.getvalue()
189 self.out = out_old
194 self.out = out_old
190 return (output, error)
195 return (output, error)
191 return (None, error)
196 return (None, error)
192
197
193 def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line):
198 def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line):
194 """ Token handler, with syntax highlighting."""
199 """ Token handler, with syntax highlighting."""
195
200
196 # local shorthands
201 # local shorthands
197 colors = self.colors
202 colors = self.colors
198 owrite = self.out.write
203 owrite = self.out.write
199
204
200 # line separator, so this works across platforms
205 # line separator, so this works across platforms
201 linesep = os.linesep
206 linesep = os.linesep
202
207
203 # calculate new positions
208 # calculate new positions
204 oldpos = self.pos
209 oldpos = self.pos
205 newpos = self.lines[srow] + scol
210 newpos = self.lines[srow] + scol
206 self.pos = newpos + len(toktext)
211 self.pos = newpos + len(toktext)
207
212
208 # handle newlines
213 # handle newlines
209 if toktype in [token.NEWLINE, tokenize.NL]:
214 if toktype in [token.NEWLINE, tokenize.NL]:
210 owrite(linesep)
215 owrite(linesep)
211 return
216 return
212
217
213 # send the original whitespace, if needed
218 # send the original whitespace, if needed
214 if newpos > oldpos:
219 if newpos > oldpos:
215 owrite(self.raw[oldpos:newpos])
220 owrite(self.raw[oldpos:newpos])
216
221
217 # skip indenting tokens
222 # skip indenting tokens
218 if toktype in [token.INDENT, token.DEDENT]:
223 if toktype in [token.INDENT, token.DEDENT]:
219 self.pos = newpos
224 self.pos = newpos
220 return
225 return
221
226
222 # map token type to a color group
227 # map token type to a color group
223 if token.LPAR <= toktype and toktype <= token.OP:
228 if token.LPAR <= toktype and toktype <= token.OP:
224 toktype = token.OP
229 toktype = token.OP
225 elif toktype == token.NAME and keyword.iskeyword(toktext):
230 elif toktype == token.NAME and keyword.iskeyword(toktext):
226 toktype = _KEYWORD
231 toktype = _KEYWORD
227 color = colors.get(toktype, colors[_TEXT])
232 color = colors.get(toktype, colors[_TEXT])
228
233
229 #print '<%s>' % toktext, # dbg
234 #print '<%s>' % toktext, # dbg
230
235
231 # Triple quoted strings must be handled carefully so that backtracking
236 # Triple quoted strings must be handled carefully so that backtracking
232 # in pagers works correctly. We need color terminators on _each_ line.
237 # in pagers works correctly. We need color terminators on _each_ line.
233 if linesep in toktext:
238 if linesep in toktext:
234 toktext = toktext.replace(linesep, '%s%s%s' %
239 toktext = toktext.replace(linesep, '%s%s%s' %
235 (colors.normal,linesep,color))
240 (colors.normal,linesep,color))
236
241
237 # send text
242 # send text
238 owrite('%s%s%s' % (color,toktext,colors.normal))
243 owrite('%s%s%s' % (color,toktext,colors.normal))
239
244
240 def main():
245 def main():
241 """Colorize a python file using ANSI color escapes and print to stdout.
246 """Colorize a python file using ANSI color escapes and print to stdout.
242
247
243 Usage:
248 Usage:
244 %s [-s scheme] filename
249 %s [-s scheme] filename
245
250
246 Options:
251 Options:
247
252
248 -s scheme: give the color scheme to use. Currently only 'Linux'
253 -s scheme: give the color scheme to use. Currently only 'Linux'
249 (default) and 'LightBG' and 'NoColor' are implemented (give without
254 (default) and 'LightBG' and 'NoColor' are implemented (give without
250 quotes). """
255 quotes). """
251
256
252 def usage():
257 def usage():
253 print >> sys.stderr, main.__doc__ % sys.argv[0]
258 print >> sys.stderr, main.__doc__ % sys.argv[0]
254 sys.exit(1)
259 sys.exit(1)
255
260
256 # FIXME: rewrite this to at least use getopt
261 # FIXME: rewrite this to at least use getopt
257 try:
262 try:
258 if sys.argv[1] == '-s':
263 if sys.argv[1] == '-s':
259 scheme_name = sys.argv[2]
264 scheme_name = sys.argv[2]
260 del sys.argv[1:3]
265 del sys.argv[1:3]
261 else:
266 else:
262 scheme_name = _scheme_default
267 scheme_name = _scheme_default
263
268
264 except:
269 except:
265 usage()
270 usage()
266
271
267 try:
272 try:
268 fname = sys.argv[1]
273 fname = sys.argv[1]
269 except:
274 except:
270 usage()
275 usage()
271
276
272 # write colorized version to stdout
277 # write colorized version to stdout
273 parser = Parser()
278 parser = Parser()
274 try:
279 try:
275 parser.format(file(fname).read(),scheme = scheme_name)
280 parser.format(file(fname).read(),scheme = scheme_name)
276 except IOError,msg:
281 except IOError,msg:
277 # if user reads through a pager and quits, don't print traceback
282 # if user reads through a pager and quits, don't print traceback
278 if msg.args != (32,'Broken pipe'):
283 if msg.args != (32,'Broken pipe'):
279 raise
284 raise
280
285
281 if __name__ == "__main__":
286 if __name__ == "__main__":
282 main()
287 main()
@@ -1,6595 +1,6601 b''
1 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/PyColorize.py (Parser.format2): fix state-handling
4 logic. I still don't like how that code handles state, but at
5 least now it should be correct, if inelegant. Closes #146.
6
1 2007-04-25 Ville Vainio <vivainio@gmail.com>
7 2007-04-25 Ville Vainio <vivainio@gmail.com>
2
8
3 * Extensions/ipy_which.py: added extension for %which magic, works
9 * Extensions/ipy_which.py: added extension for %which magic, works
4 a lot like unix 'which' but also finds and expands aliases, and
10 a lot like unix 'which' but also finds and expands aliases, and
5 allows wildcards.
11 allows wildcards.
6
12
7 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
13 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
8 as opposed to returning nothing.
14 as opposed to returning nothing.
9
15
10 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
16 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
11 ipy_stock_completers on default profile, do import on sh profile.
17 ipy_stock_completers on default profile, do import on sh profile.
12
18
13 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
19 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
14
20
15 * Fix bug in iplib.py/safe_execfile when launching ipython with a script like ipython.py foo.py
21 * Fix bug in iplib.py/safe_execfile when launching ipython with a script like ipython.py foo.py
16 which raised a IndexError.
22 which raised a IndexError.
17
23
18 2007-04-21 Ville Vainio <vivainio@gmail.com>
24 2007-04-21 Ville Vainio <vivainio@gmail.com>
19
25
20 * Extensions/ipy_extutil.py: added extension to manage other ipython
26 * Extensions/ipy_extutil.py: added extension to manage other ipython
21 extensions. Now only supports 'ls' == list extensions.
27 extensions. Now only supports 'ls' == list extensions.
22
28
23 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
29 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
24
30
25 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
31 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
26 would prevent use of the exception system outside of a running
32 would prevent use of the exception system outside of a running
27 IPython instance.
33 IPython instance.
28
34
29 2007-04-20 Ville Vainio <vivainio@gmail.com>
35 2007-04-20 Ville Vainio <vivainio@gmail.com>
30
36
31 * Extensions/ipy_render.py: added extension for easy
37 * Extensions/ipy_render.py: added extension for easy
32 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
38 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
33 'Iptl' template notation,
39 'Iptl' template notation,
34
40
35 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
41 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
36 safer & faster 'import' completer.
42 safer & faster 'import' completer.
37
43
38 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
44 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
39 and _ip.defalias(name, command).
45 and _ip.defalias(name, command).
40
46
41 * Extensions/ipy_exportdb.py: New extension for exporting all the
47 * Extensions/ipy_exportdb.py: New extension for exporting all the
42 %store'd data in a portable format (normal ipapi calls like
48 %store'd data in a portable format (normal ipapi calls like
43 defmacro() etc.)
49 defmacro() etc.)
44
50
45 2007-04-19 Ville Vainio <vivainio@gmail.com>
51 2007-04-19 Ville Vainio <vivainio@gmail.com>
46
52
47 * upgrade_dir.py: skip junk files like *.pyc
53 * upgrade_dir.py: skip junk files like *.pyc
48
54
49 * Release.py: version number to 0.8.1
55 * Release.py: version number to 0.8.1
50
56
51 2007-04-18 Ville Vainio <vivainio@gmail.com>
57 2007-04-18 Ville Vainio <vivainio@gmail.com>
52
58
53 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
59 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
54 and later on win32.
60 and later on win32.
55
61
56 2007-04-16 Ville Vainio <vivainio@gmail.com>
62 2007-04-16 Ville Vainio <vivainio@gmail.com>
57
63
58 * iplib.py (showtraceback): Do not crash when running w/o readline.
64 * iplib.py (showtraceback): Do not crash when running w/o readline.
59
65
60 2007-04-12 Walter Doerwald <walter@livinglogic.de>
66 2007-04-12 Walter Doerwald <walter@livinglogic.de>
61
67
62 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
68 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
63 sorted (case sensitive with files and dirs mixed).
69 sorted (case sensitive with files and dirs mixed).
64
70
65 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
71 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
66
72
67 * IPython/Release.py (version): Open trunk for 0.8.1 development.
73 * IPython/Release.py (version): Open trunk for 0.8.1 development.
68
74
69 2007-04-10 *** Released version 0.8.0
75 2007-04-10 *** Released version 0.8.0
70
76
71 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
77 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
72
78
73 * Tag 0.8.0 for release.
79 * Tag 0.8.0 for release.
74
80
75 * IPython/iplib.py (reloadhist): add API function to cleanly
81 * IPython/iplib.py (reloadhist): add API function to cleanly
76 reload the readline history, which was growing inappropriately on
82 reload the readline history, which was growing inappropriately on
77 every %run call.
83 every %run call.
78
84
79 * win32_manual_post_install.py (run): apply last part of Nicolas
85 * win32_manual_post_install.py (run): apply last part of Nicolas
80 Pernetty's patch (I'd accidentally applied it in a different
86 Pernetty's patch (I'd accidentally applied it in a different
81 directory and this particular file didn't get patched).
87 directory and this particular file didn't get patched).
82
88
83 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
89 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
84
90
85 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
91 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
86 find the main thread id and use the proper API call. Thanks to
92 find the main thread id and use the proper API call. Thanks to
87 Stefan for the fix.
93 Stefan for the fix.
88
94
89 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
95 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
90 unit tests to reflect fixed ticket #52, and add more tests sent by
96 unit tests to reflect fixed ticket #52, and add more tests sent by
91 him.
97 him.
92
98
93 * IPython/iplib.py (raw_input): restore the readline completer
99 * IPython/iplib.py (raw_input): restore the readline completer
94 state on every input, in case third-party code messed it up.
100 state on every input, in case third-party code messed it up.
95 (_prefilter): revert recent addition of early-escape checks which
101 (_prefilter): revert recent addition of early-escape checks which
96 prevent many valid alias calls from working.
102 prevent many valid alias calls from working.
97
103
98 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
104 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
99 flag for sigint handler so we don't run a full signal() call on
105 flag for sigint handler so we don't run a full signal() call on
100 each runcode access.
106 each runcode access.
101
107
102 * IPython/Magic.py (magic_whos): small improvement to diagnostic
108 * IPython/Magic.py (magic_whos): small improvement to diagnostic
103 message.
109 message.
104
110
105 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
111 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
106
112
107 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
113 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
108 asynchronous exceptions working, i.e., Ctrl-C can actually
114 asynchronous exceptions working, i.e., Ctrl-C can actually
109 interrupt long-running code in the multithreaded shells.
115 interrupt long-running code in the multithreaded shells.
110
116
111 This is using Tomer Filiba's great ctypes-based trick:
117 This is using Tomer Filiba's great ctypes-based trick:
112 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
118 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
113 this in the past, but hadn't been able to make it work before. So
119 this in the past, but hadn't been able to make it work before. So
114 far it looks like it's actually running, but this needs more
120 far it looks like it's actually running, but this needs more
115 testing. If it really works, I'll be *very* happy, and we'll owe
121 testing. If it really works, I'll be *very* happy, and we'll owe
116 a huge thank you to Tomer. My current implementation is ugly,
122 a huge thank you to Tomer. My current implementation is ugly,
117 hackish and uses nasty globals, but I don't want to try and clean
123 hackish and uses nasty globals, but I don't want to try and clean
118 anything up until we know if it actually works.
124 anything up until we know if it actually works.
119
125
120 NOTE: this feature needs ctypes to work. ctypes is included in
126 NOTE: this feature needs ctypes to work. ctypes is included in
121 Python2.5, but 2.4 users will need to manually install it. This
127 Python2.5, but 2.4 users will need to manually install it. This
122 feature makes multi-threaded shells so much more usable that it's
128 feature makes multi-threaded shells so much more usable that it's
123 a minor price to pay (ctypes is very easy to install, already a
129 a minor price to pay (ctypes is very easy to install, already a
124 requirement for win32 and available in major linux distros).
130 requirement for win32 and available in major linux distros).
125
131
126 2007-04-04 Ville Vainio <vivainio@gmail.com>
132 2007-04-04 Ville Vainio <vivainio@gmail.com>
127
133
128 * Extensions/ipy_completers.py, ipy_stock_completers.py:
134 * Extensions/ipy_completers.py, ipy_stock_completers.py:
129 Moved implementations of 'bundled' completers to ipy_completers.py,
135 Moved implementations of 'bundled' completers to ipy_completers.py,
130 they are only enabled in ipy_stock_completers.py.
136 they are only enabled in ipy_stock_completers.py.
131
137
132 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
138 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
133
139
134 * IPython/PyColorize.py (Parser.format2): Fix identation of
140 * IPython/PyColorize.py (Parser.format2): Fix identation of
135 colorzied output and return early if color scheme is NoColor, to
141 colorzied output and return early if color scheme is NoColor, to
136 avoid unnecessary and expensive tokenization. Closes #131.
142 avoid unnecessary and expensive tokenization. Closes #131.
137
143
138 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
144 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
139
145
140 * IPython/Debugger.py: disable the use of pydb version 1.17. It
146 * IPython/Debugger.py: disable the use of pydb version 1.17. It
141 has a critical bug (a missing import that makes post-mortem not
147 has a critical bug (a missing import that makes post-mortem not
142 work at all). Unfortunately as of this time, this is the version
148 work at all). Unfortunately as of this time, this is the version
143 shipped with Ubuntu Edgy, so quite a few people have this one. I
149 shipped with Ubuntu Edgy, so quite a few people have this one. I
144 hope Edgy will update to a more recent package.
150 hope Edgy will update to a more recent package.
145
151
146 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
152 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
147
153
148 * IPython/iplib.py (_prefilter): close #52, second part of a patch
154 * IPython/iplib.py (_prefilter): close #52, second part of a patch
149 set by Stefan (only the first part had been applied before).
155 set by Stefan (only the first part had been applied before).
150
156
151 * IPython/Extensions/ipy_stock_completers.py (module_completer):
157 * IPython/Extensions/ipy_stock_completers.py (module_completer):
152 remove usage of the dangerous pkgutil.walk_packages(). See
158 remove usage of the dangerous pkgutil.walk_packages(). See
153 details in comments left in the code.
159 details in comments left in the code.
154
160
155 * IPython/Magic.py (magic_whos): add support for numpy arrays
161 * IPython/Magic.py (magic_whos): add support for numpy arrays
156 similar to what we had for Numeric.
162 similar to what we had for Numeric.
157
163
158 * IPython/completer.py (IPCompleter.complete): extend the
164 * IPython/completer.py (IPCompleter.complete): extend the
159 complete() call API to support completions by other mechanisms
165 complete() call API to support completions by other mechanisms
160 than readline. Closes #109.
166 than readline. Closes #109.
161
167
162 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
168 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
163 protect against a bug in Python's execfile(). Closes #123.
169 protect against a bug in Python's execfile(). Closes #123.
164
170
165 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
171 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
166
172
167 * IPython/iplib.py (split_user_input): ensure that when splitting
173 * IPython/iplib.py (split_user_input): ensure that when splitting
168 user input, the part that can be treated as a python name is pure
174 user input, the part that can be treated as a python name is pure
169 ascii (Python identifiers MUST be pure ascii). Part of the
175 ascii (Python identifiers MUST be pure ascii). Part of the
170 ongoing Unicode support work.
176 ongoing Unicode support work.
171
177
172 * IPython/Prompts.py (prompt_specials_color): Add \N for the
178 * IPython/Prompts.py (prompt_specials_color): Add \N for the
173 actual prompt number, without any coloring. This allows users to
179 actual prompt number, without any coloring. This allows users to
174 produce numbered prompts with their own colors. Added after a
180 produce numbered prompts with their own colors. Added after a
175 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
181 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
176
182
177 2007-03-31 Walter Doerwald <walter@livinglogic.de>
183 2007-03-31 Walter Doerwald <walter@livinglogic.de>
178
184
179 * IPython/Extensions/igrid.py: Map the return key
185 * IPython/Extensions/igrid.py: Map the return key
180 to enter() and shift-return to enterattr().
186 to enter() and shift-return to enterattr().
181
187
182 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
188 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
183
189
184 * IPython/Magic.py (magic_psearch): add unicode support by
190 * IPython/Magic.py (magic_psearch): add unicode support by
185 encoding to ascii the input, since this routine also only deals
191 encoding to ascii the input, since this routine also only deals
186 with valid Python names. Fixes a bug reported by Stefan.
192 with valid Python names. Fixes a bug reported by Stefan.
187
193
188 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
194 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
189
195
190 * IPython/Magic.py (_inspect): convert unicode input into ascii
196 * IPython/Magic.py (_inspect): convert unicode input into ascii
191 before trying to evaluate it as a Python identifier. This fixes a
197 before trying to evaluate it as a Python identifier. This fixes a
192 problem that the new unicode support had introduced when analyzing
198 problem that the new unicode support had introduced when analyzing
193 long definition lines for functions.
199 long definition lines for functions.
194
200
195 2007-03-24 Walter Doerwald <walter@livinglogic.de>
201 2007-03-24 Walter Doerwald <walter@livinglogic.de>
196
202
197 * IPython/Extensions/igrid.py: Fix picking. Using
203 * IPython/Extensions/igrid.py: Fix picking. Using
198 igrid with wxPython 2.6 and -wthread should work now.
204 igrid with wxPython 2.6 and -wthread should work now.
199 igrid.display() simply tries to create a frame without
205 igrid.display() simply tries to create a frame without
200 an application. Only if this fails an application is created.
206 an application. Only if this fails an application is created.
201
207
202 2007-03-23 Walter Doerwald <walter@livinglogic.de>
208 2007-03-23 Walter Doerwald <walter@livinglogic.de>
203
209
204 * IPython/Extensions/path.py: Updated to version 2.2.
210 * IPython/Extensions/path.py: Updated to version 2.2.
205
211
206 2007-03-23 Ville Vainio <vivainio@gmail.com>
212 2007-03-23 Ville Vainio <vivainio@gmail.com>
207
213
208 * iplib.py: recursive alias expansion now works better, so that
214 * iplib.py: recursive alias expansion now works better, so that
209 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
215 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
210 doesn't trip up the process, if 'd' has been aliased to 'ls'.
216 doesn't trip up the process, if 'd' has been aliased to 'ls'.
211
217
212 * Extensions/ipy_gnuglobal.py added, provides %global magic
218 * Extensions/ipy_gnuglobal.py added, provides %global magic
213 for users of http://www.gnu.org/software/global
219 for users of http://www.gnu.org/software/global
214
220
215 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
221 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
216 Closes #52. Patch by Stefan van der Walt.
222 Closes #52. Patch by Stefan van der Walt.
217
223
218 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
224 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
219
225
220 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
226 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
221 respect the __file__ attribute when using %run. Thanks to a bug
227 respect the __file__ attribute when using %run. Thanks to a bug
222 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
228 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
223
229
224 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
230 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
225
231
226 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
232 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
227 input. Patch sent by Stefan.
233 input. Patch sent by Stefan.
228
234
229 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
235 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
230 * IPython/Extensions/ipy_stock_completer.py
236 * IPython/Extensions/ipy_stock_completer.py
231 shlex_split, fix bug in shlex_split. len function
237 shlex_split, fix bug in shlex_split. len function
232 call was missing an if statement. Caused shlex_split to
238 call was missing an if statement. Caused shlex_split to
233 sometimes return "" as last element.
239 sometimes return "" as last element.
234
240
235 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
241 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
236
242
237 * IPython/completer.py
243 * IPython/completer.py
238 (IPCompleter.file_matches.single_dir_expand): fix a problem
244 (IPCompleter.file_matches.single_dir_expand): fix a problem
239 reported by Stefan, where directories containign a single subdir
245 reported by Stefan, where directories containign a single subdir
240 would be completed too early.
246 would be completed too early.
241
247
242 * IPython/Shell.py (_load_pylab): Make the execution of 'from
248 * IPython/Shell.py (_load_pylab): Make the execution of 'from
243 pylab import *' when -pylab is given be optional. A new flag,
249 pylab import *' when -pylab is given be optional. A new flag,
244 pylab_import_all controls this behavior, the default is True for
250 pylab_import_all controls this behavior, the default is True for
245 backwards compatibility.
251 backwards compatibility.
246
252
247 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
253 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
248 modified) R. Bernstein's patch for fully syntax highlighted
254 modified) R. Bernstein's patch for fully syntax highlighted
249 tracebacks. The functionality is also available under ultraTB for
255 tracebacks. The functionality is also available under ultraTB for
250 non-ipython users (someone using ultraTB but outside an ipython
256 non-ipython users (someone using ultraTB but outside an ipython
251 session). They can select the color scheme by setting the
257 session). They can select the color scheme by setting the
252 module-level global DEFAULT_SCHEME. The highlight functionality
258 module-level global DEFAULT_SCHEME. The highlight functionality
253 also works when debugging.
259 also works when debugging.
254
260
255 * IPython/genutils.py (IOStream.close): small patch by
261 * IPython/genutils.py (IOStream.close): small patch by
256 R. Bernstein for improved pydb support.
262 R. Bernstein for improved pydb support.
257
263
258 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
264 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
259 DaveS <davls@telus.net> to improve support of debugging under
265 DaveS <davls@telus.net> to improve support of debugging under
260 NTEmacs, including improved pydb behavior.
266 NTEmacs, including improved pydb behavior.
261
267
262 * IPython/Magic.py (magic_prun): Fix saving of profile info for
268 * IPython/Magic.py (magic_prun): Fix saving of profile info for
263 Python 2.5, where the stats object API changed a little. Thanks
269 Python 2.5, where the stats object API changed a little. Thanks
264 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
270 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
265
271
266 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
272 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
267 Pernetty's patch to improve support for (X)Emacs under Win32.
273 Pernetty's patch to improve support for (X)Emacs under Win32.
268
274
269 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
275 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
270
276
271 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
277 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
272 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
278 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
273 a report by Nik Tautenhahn.
279 a report by Nik Tautenhahn.
274
280
275 2007-03-16 Walter Doerwald <walter@livinglogic.de>
281 2007-03-16 Walter Doerwald <walter@livinglogic.de>
276
282
277 * setup.py: Add the igrid help files to the list of data files
283 * setup.py: Add the igrid help files to the list of data files
278 to be installed alongside igrid.
284 to be installed alongside igrid.
279 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
285 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
280 Show the input object of the igrid browser as the window tile.
286 Show the input object of the igrid browser as the window tile.
281 Show the object the cursor is on in the statusbar.
287 Show the object the cursor is on in the statusbar.
282
288
283 2007-03-15 Ville Vainio <vivainio@gmail.com>
289 2007-03-15 Ville Vainio <vivainio@gmail.com>
284
290
285 * Extensions/ipy_stock_completers.py: Fixed exception
291 * Extensions/ipy_stock_completers.py: Fixed exception
286 on mismatching quotes in %run completer. Patch by
292 on mismatching quotes in %run completer. Patch by
287 JοΏ½rgen Stenarson. Closes #127.
293 JοΏ½rgen Stenarson. Closes #127.
288
294
289 2007-03-14 Ville Vainio <vivainio@gmail.com>
295 2007-03-14 Ville Vainio <vivainio@gmail.com>
290
296
291 * Extensions/ext_rehashdir.py: Do not do auto_alias
297 * Extensions/ext_rehashdir.py: Do not do auto_alias
292 in %rehashdir, it clobbers %store'd aliases.
298 in %rehashdir, it clobbers %store'd aliases.
293
299
294 * UserConfig/ipy_profile_sh.py: envpersist.py extension
300 * UserConfig/ipy_profile_sh.py: envpersist.py extension
295 (beefed up %env) imported for sh profile.
301 (beefed up %env) imported for sh profile.
296
302
297 2007-03-10 Walter Doerwald <walter@livinglogic.de>
303 2007-03-10 Walter Doerwald <walter@livinglogic.de>
298
304
299 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
305 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
300 as the default browser.
306 as the default browser.
301 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
307 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
302 As igrid displays all attributes it ever encounters, fetch() (which has
308 As igrid displays all attributes it ever encounters, fetch() (which has
303 been renamed to _fetch()) doesn't have to recalculate the display attributes
309 been renamed to _fetch()) doesn't have to recalculate the display attributes
304 every time a new item is fetched. This should speed up scrolling.
310 every time a new item is fetched. This should speed up scrolling.
305
311
306 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
312 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
307
313
308 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
314 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
309 Schmolck's recently reported tab-completion bug (my previous one
315 Schmolck's recently reported tab-completion bug (my previous one
310 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
316 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
311
317
312 2007-03-09 Walter Doerwald <walter@livinglogic.de>
318 2007-03-09 Walter Doerwald <walter@livinglogic.de>
313
319
314 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
320 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
315 Close help window if exiting igrid.
321 Close help window if exiting igrid.
316
322
317 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
323 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
318
324
319 * IPython/Extensions/ipy_defaults.py: Check if readline is available
325 * IPython/Extensions/ipy_defaults.py: Check if readline is available
320 before calling functions from readline.
326 before calling functions from readline.
321
327
322 2007-03-02 Walter Doerwald <walter@livinglogic.de>
328 2007-03-02 Walter Doerwald <walter@livinglogic.de>
323
329
324 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
330 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
325 igrid is a wxPython-based display object for ipipe. If your system has
331 igrid is a wxPython-based display object for ipipe. If your system has
326 wx installed igrid will be the default display. Without wx ipipe falls
332 wx installed igrid will be the default display. Without wx ipipe falls
327 back to ibrowse (which needs curses). If no curses is installed ipipe
333 back to ibrowse (which needs curses). If no curses is installed ipipe
328 falls back to idump.
334 falls back to idump.
329
335
330 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
336 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
331
337
332 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
338 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
333 my changes from yesterday, they introduced bugs. Will reactivate
339 my changes from yesterday, they introduced bugs. Will reactivate
334 once I get a correct solution, which will be much easier thanks to
340 once I get a correct solution, which will be much easier thanks to
335 Dan Milstein's new prefilter test suite.
341 Dan Milstein's new prefilter test suite.
336
342
337 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
343 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
338
344
339 * IPython/iplib.py (split_user_input): fix input splitting so we
345 * IPython/iplib.py (split_user_input): fix input splitting so we
340 don't attempt attribute accesses on things that can't possibly be
346 don't attempt attribute accesses on things that can't possibly be
341 valid Python attributes. After a bug report by Alex Schmolck.
347 valid Python attributes. After a bug report by Alex Schmolck.
342 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
348 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
343 %magic with explicit % prefix.
349 %magic with explicit % prefix.
344
350
345 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
351 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
346
352
347 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
353 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
348 avoid a DeprecationWarning from GTK.
354 avoid a DeprecationWarning from GTK.
349
355
350 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
356 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
351
357
352 * IPython/genutils.py (clock): I modified clock() to return total
358 * IPython/genutils.py (clock): I modified clock() to return total
353 time, user+system. This is a more commonly needed metric. I also
359 time, user+system. This is a more commonly needed metric. I also
354 introduced the new clocku/clocks to get only user/system time if
360 introduced the new clocku/clocks to get only user/system time if
355 one wants those instead.
361 one wants those instead.
356
362
357 ***WARNING: API CHANGE*** clock() used to return only user time,
363 ***WARNING: API CHANGE*** clock() used to return only user time,
358 so if you want exactly the same results as before, use clocku
364 so if you want exactly the same results as before, use clocku
359 instead.
365 instead.
360
366
361 2007-02-22 Ville Vainio <vivainio@gmail.com>
367 2007-02-22 Ville Vainio <vivainio@gmail.com>
362
368
363 * IPython/Extensions/ipy_p4.py: Extension for improved
369 * IPython/Extensions/ipy_p4.py: Extension for improved
364 p4 (perforce version control system) experience.
370 p4 (perforce version control system) experience.
365 Adds %p4 magic with p4 command completion and
371 Adds %p4 magic with p4 command completion and
366 automatic -G argument (marshall output as python dict)
372 automatic -G argument (marshall output as python dict)
367
373
368 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
374 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
369
375
370 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
376 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
371 stop marks.
377 stop marks.
372 (ClearingMixin): a simple mixin to easily make a Demo class clear
378 (ClearingMixin): a simple mixin to easily make a Demo class clear
373 the screen in between blocks and have empty marquees. The
379 the screen in between blocks and have empty marquees. The
374 ClearDemo and ClearIPDemo classes that use it are included.
380 ClearDemo and ClearIPDemo classes that use it are included.
375
381
376 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
382 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
377
383
378 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
384 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
379 protect against exceptions at Python shutdown time. Patch
385 protect against exceptions at Python shutdown time. Patch
380 sumbmitted to upstream.
386 sumbmitted to upstream.
381
387
382 2007-02-14 Walter Doerwald <walter@livinglogic.de>
388 2007-02-14 Walter Doerwald <walter@livinglogic.de>
383
389
384 * IPython/Extensions/ibrowse.py: If entering the first object level
390 * IPython/Extensions/ibrowse.py: If entering the first object level
385 (i.e. the object for which the browser has been started) fails,
391 (i.e. the object for which the browser has been started) fails,
386 now the error is raised directly (aborting the browser) instead of
392 now the error is raised directly (aborting the browser) instead of
387 running into an empty levels list later.
393 running into an empty levels list later.
388
394
389 2007-02-03 Walter Doerwald <walter@livinglogic.de>
395 2007-02-03 Walter Doerwald <walter@livinglogic.de>
390
396
391 * IPython/Extensions/ipipe.py: Add an xrepr implementation
397 * IPython/Extensions/ipipe.py: Add an xrepr implementation
392 for the noitem object.
398 for the noitem object.
393
399
394 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
400 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
395
401
396 * IPython/completer.py (Completer.attr_matches): Fix small
402 * IPython/completer.py (Completer.attr_matches): Fix small
397 tab-completion bug with Enthought Traits objects with units.
403 tab-completion bug with Enthought Traits objects with units.
398 Thanks to a bug report by Tom Denniston
404 Thanks to a bug report by Tom Denniston
399 <tom.denniston-AT-alum.dartmouth.org>.
405 <tom.denniston-AT-alum.dartmouth.org>.
400
406
401 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
407 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
402
408
403 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
409 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
404 bug where only .ipy or .py would be completed. Once the first
410 bug where only .ipy or .py would be completed. Once the first
405 argument to %run has been given, all completions are valid because
411 argument to %run has been given, all completions are valid because
406 they are the arguments to the script, which may well be non-python
412 they are the arguments to the script, which may well be non-python
407 filenames.
413 filenames.
408
414
409 * IPython/irunner.py (InteractiveRunner.run_source): major updates
415 * IPython/irunner.py (InteractiveRunner.run_source): major updates
410 to irunner to allow it to correctly support real doctesting of
416 to irunner to allow it to correctly support real doctesting of
411 out-of-process ipython code.
417 out-of-process ipython code.
412
418
413 * IPython/Magic.py (magic_cd): Make the setting of the terminal
419 * IPython/Magic.py (magic_cd): Make the setting of the terminal
414 title an option (-noterm_title) because it completely breaks
420 title an option (-noterm_title) because it completely breaks
415 doctesting.
421 doctesting.
416
422
417 * IPython/demo.py: fix IPythonDemo class that was not actually working.
423 * IPython/demo.py: fix IPythonDemo class that was not actually working.
418
424
419 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
425 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
420
426
421 * IPython/irunner.py (main): fix small bug where extensions were
427 * IPython/irunner.py (main): fix small bug where extensions were
422 not being correctly recognized.
428 not being correctly recognized.
423
429
424 2007-01-23 Walter Doerwald <walter@livinglogic.de>
430 2007-01-23 Walter Doerwald <walter@livinglogic.de>
425
431
426 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
432 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
427 a string containing a single line yields the string itself as the
433 a string containing a single line yields the string itself as the
428 only item.
434 only item.
429
435
430 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
436 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
431 object if it's the same as the one on the last level (This avoids
437 object if it's the same as the one on the last level (This avoids
432 infinite recursion for one line strings).
438 infinite recursion for one line strings).
433
439
434 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
440 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
435
441
436 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
442 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
437 all output streams before printing tracebacks. This ensures that
443 all output streams before printing tracebacks. This ensures that
438 user output doesn't end up interleaved with traceback output.
444 user output doesn't end up interleaved with traceback output.
439
445
440 2007-01-10 Ville Vainio <vivainio@gmail.com>
446 2007-01-10 Ville Vainio <vivainio@gmail.com>
441
447
442 * Extensions/envpersist.py: Turbocharged %env that remembers
448 * Extensions/envpersist.py: Turbocharged %env that remembers
443 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
449 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
444 "%env VISUAL=jed".
450 "%env VISUAL=jed".
445
451
446 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
452 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
447
453
448 * IPython/iplib.py (showtraceback): ensure that we correctly call
454 * IPython/iplib.py (showtraceback): ensure that we correctly call
449 custom handlers in all cases (some with pdb were slipping through,
455 custom handlers in all cases (some with pdb were slipping through,
450 but I'm not exactly sure why).
456 but I'm not exactly sure why).
451
457
452 * IPython/Debugger.py (Tracer.__init__): added new class to
458 * IPython/Debugger.py (Tracer.__init__): added new class to
453 support set_trace-like usage of IPython's enhanced debugger.
459 support set_trace-like usage of IPython's enhanced debugger.
454
460
455 2006-12-24 Ville Vainio <vivainio@gmail.com>
461 2006-12-24 Ville Vainio <vivainio@gmail.com>
456
462
457 * ipmaker.py: more informative message when ipy_user_conf
463 * ipmaker.py: more informative message when ipy_user_conf
458 import fails (suggest running %upgrade).
464 import fails (suggest running %upgrade).
459
465
460 * tools/run_ipy_in_profiler.py: Utility to see where
466 * tools/run_ipy_in_profiler.py: Utility to see where
461 the time during IPython startup is spent.
467 the time during IPython startup is spent.
462
468
463 2006-12-20 Ville Vainio <vivainio@gmail.com>
469 2006-12-20 Ville Vainio <vivainio@gmail.com>
464
470
465 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
471 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
466
472
467 * ipapi.py: Add new ipapi method, expand_alias.
473 * ipapi.py: Add new ipapi method, expand_alias.
468
474
469 * Release.py: Bump up version to 0.7.4.svn
475 * Release.py: Bump up version to 0.7.4.svn
470
476
471 2006-12-17 Ville Vainio <vivainio@gmail.com>
477 2006-12-17 Ville Vainio <vivainio@gmail.com>
472
478
473 * Extensions/jobctrl.py: Fixed &cmd arg arg...
479 * Extensions/jobctrl.py: Fixed &cmd arg arg...
474 to work properly on posix too
480 to work properly on posix too
475
481
476 * Release.py: Update revnum (version is still just 0.7.3).
482 * Release.py: Update revnum (version is still just 0.7.3).
477
483
478 2006-12-15 Ville Vainio <vivainio@gmail.com>
484 2006-12-15 Ville Vainio <vivainio@gmail.com>
479
485
480 * scripts/ipython_win_post_install: create ipython.py in
486 * scripts/ipython_win_post_install: create ipython.py in
481 prefix + "/scripts".
487 prefix + "/scripts".
482
488
483 * Release.py: Update version to 0.7.3.
489 * Release.py: Update version to 0.7.3.
484
490
485 2006-12-14 Ville Vainio <vivainio@gmail.com>
491 2006-12-14 Ville Vainio <vivainio@gmail.com>
486
492
487 * scripts/ipython_win_post_install: Overwrite old shortcuts
493 * scripts/ipython_win_post_install: Overwrite old shortcuts
488 if they already exist
494 if they already exist
489
495
490 * Release.py: release 0.7.3rc2
496 * Release.py: release 0.7.3rc2
491
497
492 2006-12-13 Ville Vainio <vivainio@gmail.com>
498 2006-12-13 Ville Vainio <vivainio@gmail.com>
493
499
494 * Branch and update Release.py for 0.7.3rc1
500 * Branch and update Release.py for 0.7.3rc1
495
501
496 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
502 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
497
503
498 * IPython/Shell.py (IPShellWX): update for current WX naming
504 * IPython/Shell.py (IPShellWX): update for current WX naming
499 conventions, to avoid a deprecation warning with current WX
505 conventions, to avoid a deprecation warning with current WX
500 versions. Thanks to a report by Danny Shevitz.
506 versions. Thanks to a report by Danny Shevitz.
501
507
502 2006-12-12 Ville Vainio <vivainio@gmail.com>
508 2006-12-12 Ville Vainio <vivainio@gmail.com>
503
509
504 * ipmaker.py: apply david cournapeau's patch to make
510 * ipmaker.py: apply david cournapeau's patch to make
505 import_some work properly even when ipythonrc does
511 import_some work properly even when ipythonrc does
506 import_some on empty list (it was an old bug!).
512 import_some on empty list (it was an old bug!).
507
513
508 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
514 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
509 Add deprecation note to ipythonrc and a url to wiki
515 Add deprecation note to ipythonrc and a url to wiki
510 in ipy_user_conf.py
516 in ipy_user_conf.py
511
517
512
518
513 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
519 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
514 as if it was typed on IPython command prompt, i.e.
520 as if it was typed on IPython command prompt, i.e.
515 as IPython script.
521 as IPython script.
516
522
517 * example-magic.py, magic_grepl.py: remove outdated examples
523 * example-magic.py, magic_grepl.py: remove outdated examples
518
524
519 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
525 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
520
526
521 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
527 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
522 is called before any exception has occurred.
528 is called before any exception has occurred.
523
529
524 2006-12-08 Ville Vainio <vivainio@gmail.com>
530 2006-12-08 Ville Vainio <vivainio@gmail.com>
525
531
526 * Extensions/ipy_stock_completers.py: fix cd completer
532 * Extensions/ipy_stock_completers.py: fix cd completer
527 to translate /'s to \'s again.
533 to translate /'s to \'s again.
528
534
529 * completer.py: prevent traceback on file completions w/
535 * completer.py: prevent traceback on file completions w/
530 backslash.
536 backslash.
531
537
532 * Release.py: Update release number to 0.7.3b3 for release
538 * Release.py: Update release number to 0.7.3b3 for release
533
539
534 2006-12-07 Ville Vainio <vivainio@gmail.com>
540 2006-12-07 Ville Vainio <vivainio@gmail.com>
535
541
536 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
542 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
537 while executing external code. Provides more shell-like behaviour
543 while executing external code. Provides more shell-like behaviour
538 and overall better response to ctrl + C / ctrl + break.
544 and overall better response to ctrl + C / ctrl + break.
539
545
540 * tools/make_tarball.py: new script to create tarball straight from svn
546 * tools/make_tarball.py: new script to create tarball straight from svn
541 (setup.py sdist doesn't work on win32).
547 (setup.py sdist doesn't work on win32).
542
548
543 * Extensions/ipy_stock_completers.py: fix cd completer to give up
549 * Extensions/ipy_stock_completers.py: fix cd completer to give up
544 on dirnames with spaces and use the default completer instead.
550 on dirnames with spaces and use the default completer instead.
545
551
546 * Revision.py: Change version to 0.7.3b2 for release.
552 * Revision.py: Change version to 0.7.3b2 for release.
547
553
548 2006-12-05 Ville Vainio <vivainio@gmail.com>
554 2006-12-05 Ville Vainio <vivainio@gmail.com>
549
555
550 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
556 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
551 pydb patch 4 (rm debug printing, py 2.5 checking)
557 pydb patch 4 (rm debug printing, py 2.5 checking)
552
558
553 2006-11-30 Walter Doerwald <walter@livinglogic.de>
559 2006-11-30 Walter Doerwald <walter@livinglogic.de>
554 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
560 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
555 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
561 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
556 "refreshfind" (mapped to "R") does the same but tries to go back to the same
562 "refreshfind" (mapped to "R") does the same but tries to go back to the same
557 object the cursor was on before the refresh. The command "markrange" is
563 object the cursor was on before the refresh. The command "markrange" is
558 mapped to "%" now.
564 mapped to "%" now.
559 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
565 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
560
566
561 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
567 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
562
568
563 * IPython/Magic.py (magic_debug): new %debug magic to activate the
569 * IPython/Magic.py (magic_debug): new %debug magic to activate the
564 interactive debugger on the last traceback, without having to call
570 interactive debugger on the last traceback, without having to call
565 %pdb and rerun your code. Made minor changes in various modules,
571 %pdb and rerun your code. Made minor changes in various modules,
566 should automatically recognize pydb if available.
572 should automatically recognize pydb if available.
567
573
568 2006-11-28 Ville Vainio <vivainio@gmail.com>
574 2006-11-28 Ville Vainio <vivainio@gmail.com>
569
575
570 * completer.py: If the text start with !, show file completions
576 * completer.py: If the text start with !, show file completions
571 properly. This helps when trying to complete command name
577 properly. This helps when trying to complete command name
572 for shell escapes.
578 for shell escapes.
573
579
574 2006-11-27 Ville Vainio <vivainio@gmail.com>
580 2006-11-27 Ville Vainio <vivainio@gmail.com>
575
581
576 * ipy_stock_completers.py: bzr completer submitted by Stefan van
582 * ipy_stock_completers.py: bzr completer submitted by Stefan van
577 der Walt. Clean up svn and hg completers by using a common
583 der Walt. Clean up svn and hg completers by using a common
578 vcs_completer.
584 vcs_completer.
579
585
580 2006-11-26 Ville Vainio <vivainio@gmail.com>
586 2006-11-26 Ville Vainio <vivainio@gmail.com>
581
587
582 * Remove ipconfig and %config; you should use _ip.options structure
588 * Remove ipconfig and %config; you should use _ip.options structure
583 directly instead!
589 directly instead!
584
590
585 * genutils.py: add wrap_deprecated function for deprecating callables
591 * genutils.py: add wrap_deprecated function for deprecating callables
586
592
587 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
593 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
588 _ip.system instead. ipalias is redundant.
594 _ip.system instead. ipalias is redundant.
589
595
590 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
596 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
591 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
597 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
592 explicit.
598 explicit.
593
599
594 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
600 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
595 completer. Try it by entering 'hg ' and pressing tab.
601 completer. Try it by entering 'hg ' and pressing tab.
596
602
597 * macro.py: Give Macro a useful __repr__ method
603 * macro.py: Give Macro a useful __repr__ method
598
604
599 * Magic.py: %whos abbreviates the typename of Macro for brevity.
605 * Magic.py: %whos abbreviates the typename of Macro for brevity.
600
606
601 2006-11-24 Walter Doerwald <walter@livinglogic.de>
607 2006-11-24 Walter Doerwald <walter@livinglogic.de>
602 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
608 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
603 we don't get a duplicate ipipe module, where registration of the xrepr
609 we don't get a duplicate ipipe module, where registration of the xrepr
604 implementation for Text is useless.
610 implementation for Text is useless.
605
611
606 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
612 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
607
613
608 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
614 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
609
615
610 2006-11-24 Ville Vainio <vivainio@gmail.com>
616 2006-11-24 Ville Vainio <vivainio@gmail.com>
611
617
612 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
618 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
613 try to use "cProfile" instead of the slower pure python
619 try to use "cProfile" instead of the slower pure python
614 "profile"
620 "profile"
615
621
616 2006-11-23 Ville Vainio <vivainio@gmail.com>
622 2006-11-23 Ville Vainio <vivainio@gmail.com>
617
623
618 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
624 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
619 Qt+IPython+Designer link in documentation.
625 Qt+IPython+Designer link in documentation.
620
626
621 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
627 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
622 correct Pdb object to %pydb.
628 correct Pdb object to %pydb.
623
629
624
630
625 2006-11-22 Walter Doerwald <walter@livinglogic.de>
631 2006-11-22 Walter Doerwald <walter@livinglogic.de>
626 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
632 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
627 generic xrepr(), otherwise the list implementation would kick in.
633 generic xrepr(), otherwise the list implementation would kick in.
628
634
629 2006-11-21 Ville Vainio <vivainio@gmail.com>
635 2006-11-21 Ville Vainio <vivainio@gmail.com>
630
636
631 * upgrade_dir.py: Now actually overwrites a nonmodified user file
637 * upgrade_dir.py: Now actually overwrites a nonmodified user file
632 with one from UserConfig.
638 with one from UserConfig.
633
639
634 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
640 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
635 it was missing which broke the sh profile.
641 it was missing which broke the sh profile.
636
642
637 * completer.py: file completer now uses explicit '/' instead
643 * completer.py: file completer now uses explicit '/' instead
638 of os.path.join, expansion of 'foo' was broken on win32
644 of os.path.join, expansion of 'foo' was broken on win32
639 if there was one directory with name 'foobar'.
645 if there was one directory with name 'foobar'.
640
646
641 * A bunch of patches from Kirill Smelkov:
647 * A bunch of patches from Kirill Smelkov:
642
648
643 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
649 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
644
650
645 * [patch 7/9] Implement %page -r (page in raw mode) -
651 * [patch 7/9] Implement %page -r (page in raw mode) -
646
652
647 * [patch 5/9] ScientificPython webpage has moved
653 * [patch 5/9] ScientificPython webpage has moved
648
654
649 * [patch 4/9] The manual mentions %ds, should be %dhist
655 * [patch 4/9] The manual mentions %ds, should be %dhist
650
656
651 * [patch 3/9] Kill old bits from %prun doc.
657 * [patch 3/9] Kill old bits from %prun doc.
652
658
653 * [patch 1/9] Fix typos here and there.
659 * [patch 1/9] Fix typos here and there.
654
660
655 2006-11-08 Ville Vainio <vivainio@gmail.com>
661 2006-11-08 Ville Vainio <vivainio@gmail.com>
656
662
657 * completer.py (attr_matches): catch all exceptions raised
663 * completer.py (attr_matches): catch all exceptions raised
658 by eval of expr with dots.
664 by eval of expr with dots.
659
665
660 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
666 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
661
667
662 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
668 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
663 input if it starts with whitespace. This allows you to paste
669 input if it starts with whitespace. This allows you to paste
664 indented input from any editor without manually having to type in
670 indented input from any editor without manually having to type in
665 the 'if 1:', which is convenient when working interactively.
671 the 'if 1:', which is convenient when working interactively.
666 Slightly modifed version of a patch by Bo Peng
672 Slightly modifed version of a patch by Bo Peng
667 <bpeng-AT-rice.edu>.
673 <bpeng-AT-rice.edu>.
668
674
669 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
675 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
670
676
671 * IPython/irunner.py (main): modified irunner so it automatically
677 * IPython/irunner.py (main): modified irunner so it automatically
672 recognizes the right runner to use based on the extension (.py for
678 recognizes the right runner to use based on the extension (.py for
673 python, .ipy for ipython and .sage for sage).
679 python, .ipy for ipython and .sage for sage).
674
680
675 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
681 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
676 visible in ipapi as ip.config(), to programatically control the
682 visible in ipapi as ip.config(), to programatically control the
677 internal rc object. There's an accompanying %config magic for
683 internal rc object. There's an accompanying %config magic for
678 interactive use, which has been enhanced to match the
684 interactive use, which has been enhanced to match the
679 funtionality in ipconfig.
685 funtionality in ipconfig.
680
686
681 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
687 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
682 so it's not just a toggle, it now takes an argument. Add support
688 so it's not just a toggle, it now takes an argument. Add support
683 for a customizable header when making system calls, as the new
689 for a customizable header when making system calls, as the new
684 system_header variable in the ipythonrc file.
690 system_header variable in the ipythonrc file.
685
691
686 2006-11-03 Walter Doerwald <walter@livinglogic.de>
692 2006-11-03 Walter Doerwald <walter@livinglogic.de>
687
693
688 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
694 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
689 generic functions (using Philip J. Eby's simplegeneric package).
695 generic functions (using Philip J. Eby's simplegeneric package).
690 This makes it possible to customize the display of third-party classes
696 This makes it possible to customize the display of third-party classes
691 without having to monkeypatch them. xiter() no longer supports a mode
697 without having to monkeypatch them. xiter() no longer supports a mode
692 argument and the XMode class has been removed. The same functionality can
698 argument and the XMode class has been removed. The same functionality can
693 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
699 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
694 One consequence of the switch to generic functions is that xrepr() and
700 One consequence of the switch to generic functions is that xrepr() and
695 xattrs() implementation must define the default value for the mode
701 xattrs() implementation must define the default value for the mode
696 argument themselves and xattrs() implementations must return real
702 argument themselves and xattrs() implementations must return real
697 descriptors.
703 descriptors.
698
704
699 * IPython/external: This new subpackage will contain all third-party
705 * IPython/external: This new subpackage will contain all third-party
700 packages that are bundled with IPython. (The first one is simplegeneric).
706 packages that are bundled with IPython. (The first one is simplegeneric).
701
707
702 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
708 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
703 directory which as been dropped in r1703.
709 directory which as been dropped in r1703.
704
710
705 * IPython/Extensions/ipipe.py (iless): Fixed.
711 * IPython/Extensions/ipipe.py (iless): Fixed.
706
712
707 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
713 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
708
714
709 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
715 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
710
716
711 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
717 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
712 handling in variable expansion so that shells and magics recognize
718 handling in variable expansion so that shells and magics recognize
713 function local scopes correctly. Bug reported by Brian.
719 function local scopes correctly. Bug reported by Brian.
714
720
715 * scripts/ipython: remove the very first entry in sys.path which
721 * scripts/ipython: remove the very first entry in sys.path which
716 Python auto-inserts for scripts, so that sys.path under IPython is
722 Python auto-inserts for scripts, so that sys.path under IPython is
717 as similar as possible to that under plain Python.
723 as similar as possible to that under plain Python.
718
724
719 * IPython/completer.py (IPCompleter.file_matches): Fix
725 * IPython/completer.py (IPCompleter.file_matches): Fix
720 tab-completion so that quotes are not closed unless the completion
726 tab-completion so that quotes are not closed unless the completion
721 is unambiguous. After a request by Stefan. Minor cleanups in
727 is unambiguous. After a request by Stefan. Minor cleanups in
722 ipy_stock_completers.
728 ipy_stock_completers.
723
729
724 2006-11-02 Ville Vainio <vivainio@gmail.com>
730 2006-11-02 Ville Vainio <vivainio@gmail.com>
725
731
726 * ipy_stock_completers.py: Add %run and %cd completers.
732 * ipy_stock_completers.py: Add %run and %cd completers.
727
733
728 * completer.py: Try running custom completer for both
734 * completer.py: Try running custom completer for both
729 "foo" and "%foo" if the command is just "foo". Ignore case
735 "foo" and "%foo" if the command is just "foo". Ignore case
730 when filtering possible completions.
736 when filtering possible completions.
731
737
732 * UserConfig/ipy_user_conf.py: install stock completers as default
738 * UserConfig/ipy_user_conf.py: install stock completers as default
733
739
734 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
740 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
735 simplified readline history save / restore through a wrapper
741 simplified readline history save / restore through a wrapper
736 function
742 function
737
743
738
744
739 2006-10-31 Ville Vainio <vivainio@gmail.com>
745 2006-10-31 Ville Vainio <vivainio@gmail.com>
740
746
741 * strdispatch.py, completer.py, ipy_stock_completers.py:
747 * strdispatch.py, completer.py, ipy_stock_completers.py:
742 Allow str_key ("command") in completer hooks. Implement
748 Allow str_key ("command") in completer hooks. Implement
743 trivial completer for 'import' (stdlib modules only). Rename
749 trivial completer for 'import' (stdlib modules only). Rename
744 ipy_linux_package_managers.py to ipy_stock_completers.py.
750 ipy_linux_package_managers.py to ipy_stock_completers.py.
745 SVN completer.
751 SVN completer.
746
752
747 * Extensions/ledit.py: %magic line editor for easily and
753 * Extensions/ledit.py: %magic line editor for easily and
748 incrementally manipulating lists of strings. The magic command
754 incrementally manipulating lists of strings. The magic command
749 name is %led.
755 name is %led.
750
756
751 2006-10-30 Ville Vainio <vivainio@gmail.com>
757 2006-10-30 Ville Vainio <vivainio@gmail.com>
752
758
753 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
759 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
754 Bernsteins's patches for pydb integration.
760 Bernsteins's patches for pydb integration.
755 http://bashdb.sourceforge.net/pydb/
761 http://bashdb.sourceforge.net/pydb/
756
762
757 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
763 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
758 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
764 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
759 custom completer hook to allow the users to implement their own
765 custom completer hook to allow the users to implement their own
760 completers. See ipy_linux_package_managers.py for example. The
766 completers. See ipy_linux_package_managers.py for example. The
761 hook name is 'complete_command'.
767 hook name is 'complete_command'.
762
768
763 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
769 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
764
770
765 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
771 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
766 Numeric leftovers.
772 Numeric leftovers.
767
773
768 * ipython.el (py-execute-region): apply Stefan's patch to fix
774 * ipython.el (py-execute-region): apply Stefan's patch to fix
769 garbled results if the python shell hasn't been previously started.
775 garbled results if the python shell hasn't been previously started.
770
776
771 * IPython/genutils.py (arg_split): moved to genutils, since it's a
777 * IPython/genutils.py (arg_split): moved to genutils, since it's a
772 pretty generic function and useful for other things.
778 pretty generic function and useful for other things.
773
779
774 * IPython/OInspect.py (getsource): Add customizable source
780 * IPython/OInspect.py (getsource): Add customizable source
775 extractor. After a request/patch form W. Stein (SAGE).
781 extractor. After a request/patch form W. Stein (SAGE).
776
782
777 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
783 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
778 window size to a more reasonable value from what pexpect does,
784 window size to a more reasonable value from what pexpect does,
779 since their choice causes wrapping bugs with long input lines.
785 since their choice causes wrapping bugs with long input lines.
780
786
781 2006-10-28 Ville Vainio <vivainio@gmail.com>
787 2006-10-28 Ville Vainio <vivainio@gmail.com>
782
788
783 * Magic.py (%run): Save and restore the readline history from
789 * Magic.py (%run): Save and restore the readline history from
784 file around %run commands to prevent side effects from
790 file around %run commands to prevent side effects from
785 %runned programs that might use readline (e.g. pydb).
791 %runned programs that might use readline (e.g. pydb).
786
792
787 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
793 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
788 invoking the pydb enhanced debugger.
794 invoking the pydb enhanced debugger.
789
795
790 2006-10-23 Walter Doerwald <walter@livinglogic.de>
796 2006-10-23 Walter Doerwald <walter@livinglogic.de>
791
797
792 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
798 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
793 call the base class method and propagate the return value to
799 call the base class method and propagate the return value to
794 ifile. This is now done by path itself.
800 ifile. This is now done by path itself.
795
801
796 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
802 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
797
803
798 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
804 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
799 api: set_crash_handler(), to expose the ability to change the
805 api: set_crash_handler(), to expose the ability to change the
800 internal crash handler.
806 internal crash handler.
801
807
802 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
808 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
803 the various parameters of the crash handler so that apps using
809 the various parameters of the crash handler so that apps using
804 IPython as their engine can customize crash handling. Ipmlemented
810 IPython as their engine can customize crash handling. Ipmlemented
805 at the request of SAGE.
811 at the request of SAGE.
806
812
807 2006-10-14 Ville Vainio <vivainio@gmail.com>
813 2006-10-14 Ville Vainio <vivainio@gmail.com>
808
814
809 * Magic.py, ipython.el: applied first "safe" part of Rocky
815 * Magic.py, ipython.el: applied first "safe" part of Rocky
810 Bernstein's patch set for pydb integration.
816 Bernstein's patch set for pydb integration.
811
817
812 * Magic.py (%unalias, %alias): %store'd aliases can now be
818 * Magic.py (%unalias, %alias): %store'd aliases can now be
813 removed with '%unalias'. %alias w/o args now shows most
819 removed with '%unalias'. %alias w/o args now shows most
814 interesting (stored / manually defined) aliases last
820 interesting (stored / manually defined) aliases last
815 where they catch the eye w/o scrolling.
821 where they catch the eye w/o scrolling.
816
822
817 * Magic.py (%rehashx), ext_rehashdir.py: files with
823 * Magic.py (%rehashx), ext_rehashdir.py: files with
818 'py' extension are always considered executable, even
824 'py' extension are always considered executable, even
819 when not in PATHEXT environment variable.
825 when not in PATHEXT environment variable.
820
826
821 2006-10-12 Ville Vainio <vivainio@gmail.com>
827 2006-10-12 Ville Vainio <vivainio@gmail.com>
822
828
823 * jobctrl.py: Add new "jobctrl" extension for spawning background
829 * jobctrl.py: Add new "jobctrl" extension for spawning background
824 processes with "&find /". 'import jobctrl' to try it out. Requires
830 processes with "&find /". 'import jobctrl' to try it out. Requires
825 'subprocess' module, standard in python 2.4+.
831 'subprocess' module, standard in python 2.4+.
826
832
827 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
833 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
828 so if foo -> bar and bar -> baz, then foo -> baz.
834 so if foo -> bar and bar -> baz, then foo -> baz.
829
835
830 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
836 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
831
837
832 * IPython/Magic.py (Magic.parse_options): add a new posix option
838 * IPython/Magic.py (Magic.parse_options): add a new posix option
833 to allow parsing of input args in magics that doesn't strip quotes
839 to allow parsing of input args in magics that doesn't strip quotes
834 (if posix=False). This also closes %timeit bug reported by
840 (if posix=False). This also closes %timeit bug reported by
835 Stefan.
841 Stefan.
836
842
837 2006-10-03 Ville Vainio <vivainio@gmail.com>
843 2006-10-03 Ville Vainio <vivainio@gmail.com>
838
844
839 * iplib.py (raw_input, interact): Return ValueError catching for
845 * iplib.py (raw_input, interact): Return ValueError catching for
840 raw_input. Fixes infinite loop for sys.stdin.close() or
846 raw_input. Fixes infinite loop for sys.stdin.close() or
841 sys.stdout.close().
847 sys.stdout.close().
842
848
843 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
849 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
844
850
845 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
851 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
846 to help in handling doctests. irunner is now pretty useful for
852 to help in handling doctests. irunner is now pretty useful for
847 running standalone scripts and simulate a full interactive session
853 running standalone scripts and simulate a full interactive session
848 in a format that can be then pasted as a doctest.
854 in a format that can be then pasted as a doctest.
849
855
850 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
856 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
851 on top of the default (useless) ones. This also fixes the nasty
857 on top of the default (useless) ones. This also fixes the nasty
852 way in which 2.5's Quitter() exits (reverted [1785]).
858 way in which 2.5's Quitter() exits (reverted [1785]).
853
859
854 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
860 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
855 2.5.
861 2.5.
856
862
857 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
863 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
858 color scheme is updated as well when color scheme is changed
864 color scheme is updated as well when color scheme is changed
859 interactively.
865 interactively.
860
866
861 2006-09-27 Ville Vainio <vivainio@gmail.com>
867 2006-09-27 Ville Vainio <vivainio@gmail.com>
862
868
863 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
869 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
864 infinite loop and just exit. It's a hack, but will do for a while.
870 infinite loop and just exit. It's a hack, but will do for a while.
865
871
866 2006-08-25 Walter Doerwald <walter@livinglogic.de>
872 2006-08-25 Walter Doerwald <walter@livinglogic.de>
867
873
868 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
874 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
869 the constructor, this makes it possible to get a list of only directories
875 the constructor, this makes it possible to get a list of only directories
870 or only files.
876 or only files.
871
877
872 2006-08-12 Ville Vainio <vivainio@gmail.com>
878 2006-08-12 Ville Vainio <vivainio@gmail.com>
873
879
874 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
880 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
875 they broke unittest
881 they broke unittest
876
882
877 2006-08-11 Ville Vainio <vivainio@gmail.com>
883 2006-08-11 Ville Vainio <vivainio@gmail.com>
878
884
879 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
885 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
880 by resolving issue properly, i.e. by inheriting FakeModule
886 by resolving issue properly, i.e. by inheriting FakeModule
881 from types.ModuleType. Pickling ipython interactive data
887 from types.ModuleType. Pickling ipython interactive data
882 should still work as usual (testing appreciated).
888 should still work as usual (testing appreciated).
883
889
884 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
890 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
885
891
886 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
892 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
887 running under python 2.3 with code from 2.4 to fix a bug with
893 running under python 2.3 with code from 2.4 to fix a bug with
888 help(). Reported by the Debian maintainers, Norbert Tretkowski
894 help(). Reported by the Debian maintainers, Norbert Tretkowski
889 <norbert-AT-tretkowski.de> and Alexandre Fayolle
895 <norbert-AT-tretkowski.de> and Alexandre Fayolle
890 <afayolle-AT-debian.org>.
896 <afayolle-AT-debian.org>.
891
897
892 2006-08-04 Walter Doerwald <walter@livinglogic.de>
898 2006-08-04 Walter Doerwald <walter@livinglogic.de>
893
899
894 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
900 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
895 (which was displaying "quit" twice).
901 (which was displaying "quit" twice).
896
902
897 2006-07-28 Walter Doerwald <walter@livinglogic.de>
903 2006-07-28 Walter Doerwald <walter@livinglogic.de>
898
904
899 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
905 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
900 the mode argument).
906 the mode argument).
901
907
902 2006-07-27 Walter Doerwald <walter@livinglogic.de>
908 2006-07-27 Walter Doerwald <walter@livinglogic.de>
903
909
904 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
910 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
905 not running under IPython.
911 not running under IPython.
906
912
907 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
913 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
908 and make it iterable (iterating over the attribute itself). Add two new
914 and make it iterable (iterating over the attribute itself). Add two new
909 magic strings for __xattrs__(): If the string starts with "-", the attribute
915 magic strings for __xattrs__(): If the string starts with "-", the attribute
910 will not be displayed in ibrowse's detail view (but it can still be
916 will not be displayed in ibrowse's detail view (but it can still be
911 iterated over). This makes it possible to add attributes that are large
917 iterated over). This makes it possible to add attributes that are large
912 lists or generator methods to the detail view. Replace magic attribute names
918 lists or generator methods to the detail view. Replace magic attribute names
913 and _attrname() and _getattr() with "descriptors": For each type of magic
919 and _attrname() and _getattr() with "descriptors": For each type of magic
914 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
920 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
915 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
921 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
916 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
922 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
917 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
923 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
918 are still supported.
924 are still supported.
919
925
920 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
926 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
921 fails in ibrowse.fetch(), the exception object is added as the last item
927 fails in ibrowse.fetch(), the exception object is added as the last item
922 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
928 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
923 a generator throws an exception midway through execution.
929 a generator throws an exception midway through execution.
924
930
925 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
931 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
926 encoding into methods.
932 encoding into methods.
927
933
928 2006-07-26 Ville Vainio <vivainio@gmail.com>
934 2006-07-26 Ville Vainio <vivainio@gmail.com>
929
935
930 * iplib.py: history now stores multiline input as single
936 * iplib.py: history now stores multiline input as single
931 history entries. Patch by Jorgen Cederlof.
937 history entries. Patch by Jorgen Cederlof.
932
938
933 2006-07-18 Walter Doerwald <walter@livinglogic.de>
939 2006-07-18 Walter Doerwald <walter@livinglogic.de>
934
940
935 * IPython/Extensions/ibrowse.py: Make cursor visible over
941 * IPython/Extensions/ibrowse.py: Make cursor visible over
936 non existing attributes.
942 non existing attributes.
937
943
938 2006-07-14 Walter Doerwald <walter@livinglogic.de>
944 2006-07-14 Walter Doerwald <walter@livinglogic.de>
939
945
940 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
946 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
941 error output of the running command doesn't mess up the screen.
947 error output of the running command doesn't mess up the screen.
942
948
943 2006-07-13 Walter Doerwald <walter@livinglogic.de>
949 2006-07-13 Walter Doerwald <walter@livinglogic.de>
944
950
945 * IPython/Extensions/ipipe.py (isort): Make isort usable without
951 * IPython/Extensions/ipipe.py (isort): Make isort usable without
946 argument. This sorts the items themselves.
952 argument. This sorts the items themselves.
947
953
948 2006-07-12 Walter Doerwald <walter@livinglogic.de>
954 2006-07-12 Walter Doerwald <walter@livinglogic.de>
949
955
950 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
956 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
951 Compile expression strings into code objects. This should speed
957 Compile expression strings into code objects. This should speed
952 up ifilter and friends somewhat.
958 up ifilter and friends somewhat.
953
959
954 2006-07-08 Ville Vainio <vivainio@gmail.com>
960 2006-07-08 Ville Vainio <vivainio@gmail.com>
955
961
956 * Magic.py: %cpaste now strips > from the beginning of lines
962 * Magic.py: %cpaste now strips > from the beginning of lines
957 to ease pasting quoted code from emails. Contributed by
963 to ease pasting quoted code from emails. Contributed by
958 Stefan van der Walt.
964 Stefan van der Walt.
959
965
960 2006-06-29 Ville Vainio <vivainio@gmail.com>
966 2006-06-29 Ville Vainio <vivainio@gmail.com>
961
967
962 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
968 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
963 mode, patch contributed by Darren Dale. NEEDS TESTING!
969 mode, patch contributed by Darren Dale. NEEDS TESTING!
964
970
965 2006-06-28 Walter Doerwald <walter@livinglogic.de>
971 2006-06-28 Walter Doerwald <walter@livinglogic.de>
966
972
967 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
973 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
968 a blue background. Fix fetching new display rows when the browser
974 a blue background. Fix fetching new display rows when the browser
969 scrolls more than a screenful (e.g. by using the goto command).
975 scrolls more than a screenful (e.g. by using the goto command).
970
976
971 2006-06-27 Ville Vainio <vivainio@gmail.com>
977 2006-06-27 Ville Vainio <vivainio@gmail.com>
972
978
973 * Magic.py (_inspect, _ofind) Apply David Huard's
979 * Magic.py (_inspect, _ofind) Apply David Huard's
974 patch for displaying the correct docstring for 'property'
980 patch for displaying the correct docstring for 'property'
975 attributes.
981 attributes.
976
982
977 2006-06-23 Walter Doerwald <walter@livinglogic.de>
983 2006-06-23 Walter Doerwald <walter@livinglogic.de>
978
984
979 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
985 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
980 commands into the methods implementing them.
986 commands into the methods implementing them.
981
987
982 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
988 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
983
989
984 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
990 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
985 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
991 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
986 autoindent support was authored by Jin Liu.
992 autoindent support was authored by Jin Liu.
987
993
988 2006-06-22 Walter Doerwald <walter@livinglogic.de>
994 2006-06-22 Walter Doerwald <walter@livinglogic.de>
989
995
990 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
996 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
991 for keymaps with a custom class that simplifies handling.
997 for keymaps with a custom class that simplifies handling.
992
998
993 2006-06-19 Walter Doerwald <walter@livinglogic.de>
999 2006-06-19 Walter Doerwald <walter@livinglogic.de>
994
1000
995 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1001 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
996 resizing. This requires Python 2.5 to work.
1002 resizing. This requires Python 2.5 to work.
997
1003
998 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1004 2006-06-16 Walter Doerwald <walter@livinglogic.de>
999
1005
1000 * IPython/Extensions/ibrowse.py: Add two new commands to
1006 * IPython/Extensions/ibrowse.py: Add two new commands to
1001 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1007 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1002 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1008 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1003 attributes again. Remapped the help command to "?". Display
1009 attributes again. Remapped the help command to "?". Display
1004 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1010 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1005 as keys for the "home" and "end" commands. Add three new commands
1011 as keys for the "home" and "end" commands. Add three new commands
1006 to the input mode for "find" and friends: "delend" (CTRL-K)
1012 to the input mode for "find" and friends: "delend" (CTRL-K)
1007 deletes to the end of line. "incsearchup" searches upwards in the
1013 deletes to the end of line. "incsearchup" searches upwards in the
1008 command history for an input that starts with the text before the cursor.
1014 command history for an input that starts with the text before the cursor.
1009 "incsearchdown" does the same downwards. Removed a bogus mapping of
1015 "incsearchdown" does the same downwards. Removed a bogus mapping of
1010 the x key to "delete".
1016 the x key to "delete".
1011
1017
1012 2006-06-15 Ville Vainio <vivainio@gmail.com>
1018 2006-06-15 Ville Vainio <vivainio@gmail.com>
1013
1019
1014 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1020 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1015 used to create prompts dynamically, instead of the "old" way of
1021 used to create prompts dynamically, instead of the "old" way of
1016 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1022 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1017 way still works (it's invoked by the default hook), of course.
1023 way still works (it's invoked by the default hook), of course.
1018
1024
1019 * Prompts.py: added generate_output_prompt hook for altering output
1025 * Prompts.py: added generate_output_prompt hook for altering output
1020 prompt
1026 prompt
1021
1027
1022 * Release.py: Changed version string to 0.7.3.svn.
1028 * Release.py: Changed version string to 0.7.3.svn.
1023
1029
1024 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1030 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1025
1031
1026 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1032 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1027 the call to fetch() always tries to fetch enough data for at least one
1033 the call to fetch() always tries to fetch enough data for at least one
1028 full screen. This makes it possible to simply call moveto(0,0,True) in
1034 full screen. This makes it possible to simply call moveto(0,0,True) in
1029 the constructor. Fix typos and removed the obsolete goto attribute.
1035 the constructor. Fix typos and removed the obsolete goto attribute.
1030
1036
1031 2006-06-12 Ville Vainio <vivainio@gmail.com>
1037 2006-06-12 Ville Vainio <vivainio@gmail.com>
1032
1038
1033 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1039 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1034 allowing $variable interpolation within multiline statements,
1040 allowing $variable interpolation within multiline statements,
1035 though so far only with "sh" profile for a testing period.
1041 though so far only with "sh" profile for a testing period.
1036 The patch also enables splitting long commands with \ but it
1042 The patch also enables splitting long commands with \ but it
1037 doesn't work properly yet.
1043 doesn't work properly yet.
1038
1044
1039 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1045 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1040
1046
1041 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1047 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1042 input history and the position of the cursor in the input history for
1048 input history and the position of the cursor in the input history for
1043 the find, findbackwards and goto command.
1049 the find, findbackwards and goto command.
1044
1050
1045 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1051 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1046
1052
1047 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1053 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1048 implements the basic functionality of browser commands that require
1054 implements the basic functionality of browser commands that require
1049 input. Reimplement the goto, find and findbackwards commands as
1055 input. Reimplement the goto, find and findbackwards commands as
1050 subclasses of _CommandInput. Add an input history and keymaps to those
1056 subclasses of _CommandInput. Add an input history and keymaps to those
1051 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1057 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1052 execute commands.
1058 execute commands.
1053
1059
1054 2006-06-07 Ville Vainio <vivainio@gmail.com>
1060 2006-06-07 Ville Vainio <vivainio@gmail.com>
1055
1061
1056 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1062 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1057 running the batch files instead of leaving the session open.
1063 running the batch files instead of leaving the session open.
1058
1064
1059 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1065 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1060
1066
1061 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1067 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1062 the original fix was incomplete. Patch submitted by W. Maier.
1068 the original fix was incomplete. Patch submitted by W. Maier.
1063
1069
1064 2006-06-07 Ville Vainio <vivainio@gmail.com>
1070 2006-06-07 Ville Vainio <vivainio@gmail.com>
1065
1071
1066 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1072 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1067 Confirmation prompts can be supressed by 'quiet' option.
1073 Confirmation prompts can be supressed by 'quiet' option.
1068 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1074 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1069
1075
1070 2006-06-06 *** Released version 0.7.2
1076 2006-06-06 *** Released version 0.7.2
1071
1077
1072 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1078 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1073
1079
1074 * IPython/Release.py (version): Made 0.7.2 final for release.
1080 * IPython/Release.py (version): Made 0.7.2 final for release.
1075 Repo tagged and release cut.
1081 Repo tagged and release cut.
1076
1082
1077 2006-06-05 Ville Vainio <vivainio@gmail.com>
1083 2006-06-05 Ville Vainio <vivainio@gmail.com>
1078
1084
1079 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1085 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1080 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1086 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1081
1087
1082 * upgrade_dir.py: try import 'path' module a bit harder
1088 * upgrade_dir.py: try import 'path' module a bit harder
1083 (for %upgrade)
1089 (for %upgrade)
1084
1090
1085 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1091 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1086
1092
1087 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1093 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1088 instead of looping 20 times.
1094 instead of looping 20 times.
1089
1095
1090 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1096 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1091 correctly at initialization time. Bug reported by Krishna Mohan
1097 correctly at initialization time. Bug reported by Krishna Mohan
1092 Gundu <gkmohan-AT-gmail.com> on the user list.
1098 Gundu <gkmohan-AT-gmail.com> on the user list.
1093
1099
1094 * IPython/Release.py (version): Mark 0.7.2 version to start
1100 * IPython/Release.py (version): Mark 0.7.2 version to start
1095 testing for release on 06/06.
1101 testing for release on 06/06.
1096
1102
1097 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1103 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1098
1104
1099 * scripts/irunner: thin script interface so users don't have to
1105 * scripts/irunner: thin script interface so users don't have to
1100 find the module and call it as an executable, since modules rarely
1106 find the module and call it as an executable, since modules rarely
1101 live in people's PATH.
1107 live in people's PATH.
1102
1108
1103 * IPython/irunner.py (InteractiveRunner.__init__): added
1109 * IPython/irunner.py (InteractiveRunner.__init__): added
1104 delaybeforesend attribute to control delays with newer versions of
1110 delaybeforesend attribute to control delays with newer versions of
1105 pexpect. Thanks to detailed help from pexpect's author, Noah
1111 pexpect. Thanks to detailed help from pexpect's author, Noah
1106 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1112 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1107 correctly (it works in NoColor mode).
1113 correctly (it works in NoColor mode).
1108
1114
1109 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1115 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1110 SAGE list, from improper log() calls.
1116 SAGE list, from improper log() calls.
1111
1117
1112 2006-05-31 Ville Vainio <vivainio@gmail.com>
1118 2006-05-31 Ville Vainio <vivainio@gmail.com>
1113
1119
1114 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1120 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1115 with args in parens to work correctly with dirs that have spaces.
1121 with args in parens to work correctly with dirs that have spaces.
1116
1122
1117 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1123 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1118
1124
1119 * IPython/Logger.py (Logger.logstart): add option to log raw input
1125 * IPython/Logger.py (Logger.logstart): add option to log raw input
1120 instead of the processed one. A -r flag was added to the
1126 instead of the processed one. A -r flag was added to the
1121 %logstart magic used for controlling logging.
1127 %logstart magic used for controlling logging.
1122
1128
1123 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1129 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1124
1130
1125 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1131 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1126 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1132 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1127 recognize the option. After a bug report by Will Maier. This
1133 recognize the option. After a bug report by Will Maier. This
1128 closes #64 (will do it after confirmation from W. Maier).
1134 closes #64 (will do it after confirmation from W. Maier).
1129
1135
1130 * IPython/irunner.py: New module to run scripts as if manually
1136 * IPython/irunner.py: New module to run scripts as if manually
1131 typed into an interactive environment, based on pexpect. After a
1137 typed into an interactive environment, based on pexpect. After a
1132 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1138 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1133 ipython-user list. Simple unittests in the tests/ directory.
1139 ipython-user list. Simple unittests in the tests/ directory.
1134
1140
1135 * tools/release: add Will Maier, OpenBSD port maintainer, to
1141 * tools/release: add Will Maier, OpenBSD port maintainer, to
1136 recepients list. We are now officially part of the OpenBSD ports:
1142 recepients list. We are now officially part of the OpenBSD ports:
1137 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1143 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1138 work.
1144 work.
1139
1145
1140 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1146 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1141
1147
1142 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1148 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1143 so that it doesn't break tkinter apps.
1149 so that it doesn't break tkinter apps.
1144
1150
1145 * IPython/iplib.py (_prefilter): fix bug where aliases would
1151 * IPython/iplib.py (_prefilter): fix bug where aliases would
1146 shadow variables when autocall was fully off. Reported by SAGE
1152 shadow variables when autocall was fully off. Reported by SAGE
1147 author William Stein.
1153 author William Stein.
1148
1154
1149 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1155 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1150 at what detail level strings are computed when foo? is requested.
1156 at what detail level strings are computed when foo? is requested.
1151 This allows users to ask for example that the string form of an
1157 This allows users to ask for example that the string form of an
1152 object is only computed when foo?? is called, or even never, by
1158 object is only computed when foo?? is called, or even never, by
1153 setting the object_info_string_level >= 2 in the configuration
1159 setting the object_info_string_level >= 2 in the configuration
1154 file. This new option has been added and documented. After a
1160 file. This new option has been added and documented. After a
1155 request by SAGE to be able to control the printing of very large
1161 request by SAGE to be able to control the printing of very large
1156 objects more easily.
1162 objects more easily.
1157
1163
1158 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1164 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1159
1165
1160 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1166 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1161 from sys.argv, to be 100% consistent with how Python itself works
1167 from sys.argv, to be 100% consistent with how Python itself works
1162 (as seen for example with python -i file.py). After a bug report
1168 (as seen for example with python -i file.py). After a bug report
1163 by Jeffrey Collins.
1169 by Jeffrey Collins.
1164
1170
1165 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1171 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1166 nasty bug which was preventing custom namespaces with -pylab,
1172 nasty bug which was preventing custom namespaces with -pylab,
1167 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1173 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1168 compatibility (long gone from mpl).
1174 compatibility (long gone from mpl).
1169
1175
1170 * IPython/ipapi.py (make_session): name change: create->make. We
1176 * IPython/ipapi.py (make_session): name change: create->make. We
1171 use make in other places (ipmaker,...), it's shorter and easier to
1177 use make in other places (ipmaker,...), it's shorter and easier to
1172 type and say, etc. I'm trying to clean things before 0.7.2 so
1178 type and say, etc. I'm trying to clean things before 0.7.2 so
1173 that I can keep things stable wrt to ipapi in the chainsaw branch.
1179 that I can keep things stable wrt to ipapi in the chainsaw branch.
1174
1180
1175 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1181 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1176 python-mode recognizes our debugger mode. Add support for
1182 python-mode recognizes our debugger mode. Add support for
1177 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1183 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1178 <m.liu.jin-AT-gmail.com> originally written by
1184 <m.liu.jin-AT-gmail.com> originally written by
1179 doxgen-AT-newsmth.net (with minor modifications for xemacs
1185 doxgen-AT-newsmth.net (with minor modifications for xemacs
1180 compatibility)
1186 compatibility)
1181
1187
1182 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1188 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1183 tracebacks when walking the stack so that the stack tracking system
1189 tracebacks when walking the stack so that the stack tracking system
1184 in emacs' python-mode can identify the frames correctly.
1190 in emacs' python-mode can identify the frames correctly.
1185
1191
1186 * IPython/ipmaker.py (make_IPython): make the internal (and
1192 * IPython/ipmaker.py (make_IPython): make the internal (and
1187 default config) autoedit_syntax value false by default. Too many
1193 default config) autoedit_syntax value false by default. Too many
1188 users have complained to me (both on and off-list) about problems
1194 users have complained to me (both on and off-list) about problems
1189 with this option being on by default, so I'm making it default to
1195 with this option being on by default, so I'm making it default to
1190 off. It can still be enabled by anyone via the usual mechanisms.
1196 off. It can still be enabled by anyone via the usual mechanisms.
1191
1197
1192 * IPython/completer.py (Completer.attr_matches): add support for
1198 * IPython/completer.py (Completer.attr_matches): add support for
1193 PyCrust-style _getAttributeNames magic method. Patch contributed
1199 PyCrust-style _getAttributeNames magic method. Patch contributed
1194 by <mscott-AT-goldenspud.com>. Closes #50.
1200 by <mscott-AT-goldenspud.com>. Closes #50.
1195
1201
1196 * IPython/iplib.py (InteractiveShell.__init__): remove the
1202 * IPython/iplib.py (InteractiveShell.__init__): remove the
1197 deletion of exit/quit from __builtin__, which can break
1203 deletion of exit/quit from __builtin__, which can break
1198 third-party tools like the Zope debugging console. The
1204 third-party tools like the Zope debugging console. The
1199 %exit/%quit magics remain. In general, it's probably a good idea
1205 %exit/%quit magics remain. In general, it's probably a good idea
1200 not to delete anything from __builtin__, since we never know what
1206 not to delete anything from __builtin__, since we never know what
1201 that will break. In any case, python now (for 2.5) will support
1207 that will break. In any case, python now (for 2.5) will support
1202 'real' exit/quit, so this issue is moot. Closes #55.
1208 'real' exit/quit, so this issue is moot. Closes #55.
1203
1209
1204 * IPython/genutils.py (with_obj): rename the 'with' function to
1210 * IPython/genutils.py (with_obj): rename the 'with' function to
1205 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1211 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1206 becomes a language keyword. Closes #53.
1212 becomes a language keyword. Closes #53.
1207
1213
1208 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1214 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1209 __file__ attribute to this so it fools more things into thinking
1215 __file__ attribute to this so it fools more things into thinking
1210 it is a real module. Closes #59.
1216 it is a real module. Closes #59.
1211
1217
1212 * IPython/Magic.py (magic_edit): add -n option to open the editor
1218 * IPython/Magic.py (magic_edit): add -n option to open the editor
1213 at a specific line number. After a patch by Stefan van der Walt.
1219 at a specific line number. After a patch by Stefan van der Walt.
1214
1220
1215 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1221 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1216
1222
1217 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1223 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1218 reason the file could not be opened. After automatic crash
1224 reason the file could not be opened. After automatic crash
1219 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1225 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1220 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1226 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1221 (_should_recompile): Don't fire editor if using %bg, since there
1227 (_should_recompile): Don't fire editor if using %bg, since there
1222 is no file in the first place. From the same report as above.
1228 is no file in the first place. From the same report as above.
1223 (raw_input): protect against faulty third-party prefilters. After
1229 (raw_input): protect against faulty third-party prefilters. After
1224 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1230 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1225 while running under SAGE.
1231 while running under SAGE.
1226
1232
1227 2006-05-23 Ville Vainio <vivainio@gmail.com>
1233 2006-05-23 Ville Vainio <vivainio@gmail.com>
1228
1234
1229 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1235 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1230 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1236 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1231 now returns None (again), unless dummy is specifically allowed by
1237 now returns None (again), unless dummy is specifically allowed by
1232 ipapi.get(allow_dummy=True).
1238 ipapi.get(allow_dummy=True).
1233
1239
1234 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1240 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1235
1241
1236 * IPython: remove all 2.2-compatibility objects and hacks from
1242 * IPython: remove all 2.2-compatibility objects and hacks from
1237 everywhere, since we only support 2.3 at this point. Docs
1243 everywhere, since we only support 2.3 at this point. Docs
1238 updated.
1244 updated.
1239
1245
1240 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1246 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1241 Anything requiring extra validation can be turned into a Python
1247 Anything requiring extra validation can be turned into a Python
1242 property in the future. I used a property for the db one b/c
1248 property in the future. I used a property for the db one b/c
1243 there was a nasty circularity problem with the initialization
1249 there was a nasty circularity problem with the initialization
1244 order, which right now I don't have time to clean up.
1250 order, which right now I don't have time to clean up.
1245
1251
1246 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1252 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1247 another locking bug reported by Jorgen. I'm not 100% sure though,
1253 another locking bug reported by Jorgen. I'm not 100% sure though,
1248 so more testing is needed...
1254 so more testing is needed...
1249
1255
1250 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1256 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1251
1257
1252 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1258 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1253 local variables from any routine in user code (typically executed
1259 local variables from any routine in user code (typically executed
1254 with %run) directly into the interactive namespace. Very useful
1260 with %run) directly into the interactive namespace. Very useful
1255 when doing complex debugging.
1261 when doing complex debugging.
1256 (IPythonNotRunning): Changed the default None object to a dummy
1262 (IPythonNotRunning): Changed the default None object to a dummy
1257 whose attributes can be queried as well as called without
1263 whose attributes can be queried as well as called without
1258 exploding, to ease writing code which works transparently both in
1264 exploding, to ease writing code which works transparently both in
1259 and out of ipython and uses some of this API.
1265 and out of ipython and uses some of this API.
1260
1266
1261 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1267 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1262
1268
1263 * IPython/hooks.py (result_display): Fix the fact that our display
1269 * IPython/hooks.py (result_display): Fix the fact that our display
1264 hook was using str() instead of repr(), as the default python
1270 hook was using str() instead of repr(), as the default python
1265 console does. This had gone unnoticed b/c it only happened if
1271 console does. This had gone unnoticed b/c it only happened if
1266 %Pprint was off, but the inconsistency was there.
1272 %Pprint was off, but the inconsistency was there.
1267
1273
1268 2006-05-15 Ville Vainio <vivainio@gmail.com>
1274 2006-05-15 Ville Vainio <vivainio@gmail.com>
1269
1275
1270 * Oinspect.py: Only show docstring for nonexisting/binary files
1276 * Oinspect.py: Only show docstring for nonexisting/binary files
1271 when doing object??, closing ticket #62
1277 when doing object??, closing ticket #62
1272
1278
1273 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1279 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1274
1280
1275 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1281 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1276 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1282 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1277 was being released in a routine which hadn't checked if it had
1283 was being released in a routine which hadn't checked if it had
1278 been the one to acquire it.
1284 been the one to acquire it.
1279
1285
1280 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1286 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1281
1287
1282 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1288 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1283
1289
1284 2006-04-11 Ville Vainio <vivainio@gmail.com>
1290 2006-04-11 Ville Vainio <vivainio@gmail.com>
1285
1291
1286 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1292 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1287 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1293 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1288 prefilters, allowing stuff like magics and aliases in the file.
1294 prefilters, allowing stuff like magics and aliases in the file.
1289
1295
1290 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1296 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1291 added. Supported now are "%clear in" and "%clear out" (clear input and
1297 added. Supported now are "%clear in" and "%clear out" (clear input and
1292 output history, respectively). Also fixed CachedOutput.flush to
1298 output history, respectively). Also fixed CachedOutput.flush to
1293 properly flush the output cache.
1299 properly flush the output cache.
1294
1300
1295 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1301 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1296 half-success (and fail explicitly).
1302 half-success (and fail explicitly).
1297
1303
1298 2006-03-28 Ville Vainio <vivainio@gmail.com>
1304 2006-03-28 Ville Vainio <vivainio@gmail.com>
1299
1305
1300 * iplib.py: Fix quoting of aliases so that only argless ones
1306 * iplib.py: Fix quoting of aliases so that only argless ones
1301 are quoted
1307 are quoted
1302
1308
1303 2006-03-28 Ville Vainio <vivainio@gmail.com>
1309 2006-03-28 Ville Vainio <vivainio@gmail.com>
1304
1310
1305 * iplib.py: Quote aliases with spaces in the name.
1311 * iplib.py: Quote aliases with spaces in the name.
1306 "c:\program files\blah\bin" is now legal alias target.
1312 "c:\program files\blah\bin" is now legal alias target.
1307
1313
1308 * ext_rehashdir.py: Space no longer allowed as arg
1314 * ext_rehashdir.py: Space no longer allowed as arg
1309 separator, since space is legal in path names.
1315 separator, since space is legal in path names.
1310
1316
1311 2006-03-16 Ville Vainio <vivainio@gmail.com>
1317 2006-03-16 Ville Vainio <vivainio@gmail.com>
1312
1318
1313 * upgrade_dir.py: Take path.py from Extensions, correcting
1319 * upgrade_dir.py: Take path.py from Extensions, correcting
1314 %upgrade magic
1320 %upgrade magic
1315
1321
1316 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1322 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1317
1323
1318 * hooks.py: Only enclose editor binary in quotes if legal and
1324 * hooks.py: Only enclose editor binary in quotes if legal and
1319 necessary (space in the name, and is an existing file). Fixes a bug
1325 necessary (space in the name, and is an existing file). Fixes a bug
1320 reported by Zachary Pincus.
1326 reported by Zachary Pincus.
1321
1327
1322 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1328 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1323
1329
1324 * Manual: thanks to a tip on proper color handling for Emacs, by
1330 * Manual: thanks to a tip on proper color handling for Emacs, by
1325 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1331 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1326
1332
1327 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1333 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1328 by applying the provided patch. Thanks to Liu Jin
1334 by applying the provided patch. Thanks to Liu Jin
1329 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1335 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1330 XEmacs/Linux, I'm trusting the submitter that it actually helps
1336 XEmacs/Linux, I'm trusting the submitter that it actually helps
1331 under win32/GNU Emacs. Will revisit if any problems are reported.
1337 under win32/GNU Emacs. Will revisit if any problems are reported.
1332
1338
1333 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1334
1340
1335 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1341 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1336 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1342 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1337
1343
1338 2006-03-12 Ville Vainio <vivainio@gmail.com>
1344 2006-03-12 Ville Vainio <vivainio@gmail.com>
1339
1345
1340 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1346 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1341 Torsten Marek.
1347 Torsten Marek.
1342
1348
1343 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1349 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1344
1350
1345 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1351 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1346 line ranges works again.
1352 line ranges works again.
1347
1353
1348 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1354 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1349
1355
1350 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1356 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1351 and friends, after a discussion with Zach Pincus on ipython-user.
1357 and friends, after a discussion with Zach Pincus on ipython-user.
1352 I'm not 100% sure, but after thinking about it quite a bit, it may
1358 I'm not 100% sure, but after thinking about it quite a bit, it may
1353 be OK. Testing with the multithreaded shells didn't reveal any
1359 be OK. Testing with the multithreaded shells didn't reveal any
1354 problems, but let's keep an eye out.
1360 problems, but let's keep an eye out.
1355
1361
1356 In the process, I fixed a few things which were calling
1362 In the process, I fixed a few things which were calling
1357 self.InteractiveTB() directly (like safe_execfile), which is a
1363 self.InteractiveTB() directly (like safe_execfile), which is a
1358 mistake: ALL exception reporting should be done by calling
1364 mistake: ALL exception reporting should be done by calling
1359 self.showtraceback(), which handles state and tab-completion and
1365 self.showtraceback(), which handles state and tab-completion and
1360 more.
1366 more.
1361
1367
1362 2006-03-01 Ville Vainio <vivainio@gmail.com>
1368 2006-03-01 Ville Vainio <vivainio@gmail.com>
1363
1369
1364 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1370 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1365 To use, do "from ipipe import *".
1371 To use, do "from ipipe import *".
1366
1372
1367 2006-02-24 Ville Vainio <vivainio@gmail.com>
1373 2006-02-24 Ville Vainio <vivainio@gmail.com>
1368
1374
1369 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1375 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1370 "cleanly" and safely than the older upgrade mechanism.
1376 "cleanly" and safely than the older upgrade mechanism.
1371
1377
1372 2006-02-21 Ville Vainio <vivainio@gmail.com>
1378 2006-02-21 Ville Vainio <vivainio@gmail.com>
1373
1379
1374 * Magic.py: %save works again.
1380 * Magic.py: %save works again.
1375
1381
1376 2006-02-15 Ville Vainio <vivainio@gmail.com>
1382 2006-02-15 Ville Vainio <vivainio@gmail.com>
1377
1383
1378 * Magic.py: %Pprint works again
1384 * Magic.py: %Pprint works again
1379
1385
1380 * Extensions/ipy_sane_defaults.py: Provide everything provided
1386 * Extensions/ipy_sane_defaults.py: Provide everything provided
1381 in default ipythonrc, to make it possible to have a completely empty
1387 in default ipythonrc, to make it possible to have a completely empty
1382 ipythonrc (and thus completely rc-file free configuration)
1388 ipythonrc (and thus completely rc-file free configuration)
1383
1389
1384 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1385
1391
1386 * IPython/hooks.py (editor): quote the call to the editor command,
1392 * IPython/hooks.py (editor): quote the call to the editor command,
1387 to allow commands with spaces in them. Problem noted by watching
1393 to allow commands with spaces in them. Problem noted by watching
1388 Ian Oswald's video about textpad under win32 at
1394 Ian Oswald's video about textpad under win32 at
1389 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1395 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1390
1396
1391 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1397 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1392 describing magics (we haven't used @ for a loong time).
1398 describing magics (we haven't used @ for a loong time).
1393
1399
1394 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1400 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1395 contributed by marienz to close
1401 contributed by marienz to close
1396 http://www.scipy.net/roundup/ipython/issue53.
1402 http://www.scipy.net/roundup/ipython/issue53.
1397
1403
1398 2006-02-10 Ville Vainio <vivainio@gmail.com>
1404 2006-02-10 Ville Vainio <vivainio@gmail.com>
1399
1405
1400 * genutils.py: getoutput now works in win32 too
1406 * genutils.py: getoutput now works in win32 too
1401
1407
1402 * completer.py: alias and magic completion only invoked
1408 * completer.py: alias and magic completion only invoked
1403 at the first "item" in the line, to avoid "cd %store"
1409 at the first "item" in the line, to avoid "cd %store"
1404 nonsense.
1410 nonsense.
1405
1411
1406 2006-02-09 Ville Vainio <vivainio@gmail.com>
1412 2006-02-09 Ville Vainio <vivainio@gmail.com>
1407
1413
1408 * test/*: Added a unit testing framework (finally).
1414 * test/*: Added a unit testing framework (finally).
1409 '%run runtests.py' to run test_*.
1415 '%run runtests.py' to run test_*.
1410
1416
1411 * ipapi.py: Exposed runlines and set_custom_exc
1417 * ipapi.py: Exposed runlines and set_custom_exc
1412
1418
1413 2006-02-07 Ville Vainio <vivainio@gmail.com>
1419 2006-02-07 Ville Vainio <vivainio@gmail.com>
1414
1420
1415 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1421 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1416 instead use "f(1 2)" as before.
1422 instead use "f(1 2)" as before.
1417
1423
1418 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1424 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1419
1425
1420 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1426 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1421 facilities, for demos processed by the IPython input filter
1427 facilities, for demos processed by the IPython input filter
1422 (IPythonDemo), and for running a script one-line-at-a-time as a
1428 (IPythonDemo), and for running a script one-line-at-a-time as a
1423 demo, both for pure Python (LineDemo) and for IPython-processed
1429 demo, both for pure Python (LineDemo) and for IPython-processed
1424 input (IPythonLineDemo). After a request by Dave Kohel, from the
1430 input (IPythonLineDemo). After a request by Dave Kohel, from the
1425 SAGE team.
1431 SAGE team.
1426 (Demo.edit): added an edit() method to the demo objects, to edit
1432 (Demo.edit): added an edit() method to the demo objects, to edit
1427 the in-memory copy of the last executed block.
1433 the in-memory copy of the last executed block.
1428
1434
1429 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1435 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1430 processing to %edit, %macro and %save. These commands can now be
1436 processing to %edit, %macro and %save. These commands can now be
1431 invoked on the unprocessed input as it was typed by the user
1437 invoked on the unprocessed input as it was typed by the user
1432 (without any prefilters applied). After requests by the SAGE team
1438 (without any prefilters applied). After requests by the SAGE team
1433 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1439 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1434
1440
1435 2006-02-01 Ville Vainio <vivainio@gmail.com>
1441 2006-02-01 Ville Vainio <vivainio@gmail.com>
1436
1442
1437 * setup.py, eggsetup.py: easy_install ipython==dev works
1443 * setup.py, eggsetup.py: easy_install ipython==dev works
1438 correctly now (on Linux)
1444 correctly now (on Linux)
1439
1445
1440 * ipy_user_conf,ipmaker: user config changes, removed spurious
1446 * ipy_user_conf,ipmaker: user config changes, removed spurious
1441 warnings
1447 warnings
1442
1448
1443 * iplib: if rc.banner is string, use it as is.
1449 * iplib: if rc.banner is string, use it as is.
1444
1450
1445 * Magic: %pycat accepts a string argument and pages it's contents.
1451 * Magic: %pycat accepts a string argument and pages it's contents.
1446
1452
1447
1453
1448 2006-01-30 Ville Vainio <vivainio@gmail.com>
1454 2006-01-30 Ville Vainio <vivainio@gmail.com>
1449
1455
1450 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1456 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1451 Now %store and bookmarks work through PickleShare, meaning that
1457 Now %store and bookmarks work through PickleShare, meaning that
1452 concurrent access is possible and all ipython sessions see the
1458 concurrent access is possible and all ipython sessions see the
1453 same database situation all the time, instead of snapshot of
1459 same database situation all the time, instead of snapshot of
1454 the situation when the session was started. Hence, %bookmark
1460 the situation when the session was started. Hence, %bookmark
1455 results are immediately accessible from othes sessions. The database
1461 results are immediately accessible from othes sessions. The database
1456 is also available for use by user extensions. See:
1462 is also available for use by user extensions. See:
1457 http://www.python.org/pypi/pickleshare
1463 http://www.python.org/pypi/pickleshare
1458
1464
1459 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1465 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1460
1466
1461 * aliases can now be %store'd
1467 * aliases can now be %store'd
1462
1468
1463 * path.py moved to Extensions so that pickleshare does not need
1469 * path.py moved to Extensions so that pickleshare does not need
1464 IPython-specific import. Extensions added to pythonpath right
1470 IPython-specific import. Extensions added to pythonpath right
1465 at __init__.
1471 at __init__.
1466
1472
1467 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1473 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1468 called with _ip.system and the pre-transformed command string.
1474 called with _ip.system and the pre-transformed command string.
1469
1475
1470 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1476 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1471
1477
1472 * IPython/iplib.py (interact): Fix that we were not catching
1478 * IPython/iplib.py (interact): Fix that we were not catching
1473 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1479 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1474 logic here had to change, but it's fixed now.
1480 logic here had to change, but it's fixed now.
1475
1481
1476 2006-01-29 Ville Vainio <vivainio@gmail.com>
1482 2006-01-29 Ville Vainio <vivainio@gmail.com>
1477
1483
1478 * iplib.py: Try to import pyreadline on Windows.
1484 * iplib.py: Try to import pyreadline on Windows.
1479
1485
1480 2006-01-27 Ville Vainio <vivainio@gmail.com>
1486 2006-01-27 Ville Vainio <vivainio@gmail.com>
1481
1487
1482 * iplib.py: Expose ipapi as _ip in builtin namespace.
1488 * iplib.py: Expose ipapi as _ip in builtin namespace.
1483 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1489 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1484 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1490 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1485 syntax now produce _ip.* variant of the commands.
1491 syntax now produce _ip.* variant of the commands.
1486
1492
1487 * "_ip.options().autoedit_syntax = 2" automatically throws
1493 * "_ip.options().autoedit_syntax = 2" automatically throws
1488 user to editor for syntax error correction without prompting.
1494 user to editor for syntax error correction without prompting.
1489
1495
1490 2006-01-27 Ville Vainio <vivainio@gmail.com>
1496 2006-01-27 Ville Vainio <vivainio@gmail.com>
1491
1497
1492 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1498 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1493 'ipython' at argv[0]) executed through command line.
1499 'ipython' at argv[0]) executed through command line.
1494 NOTE: this DEPRECATES calling ipython with multiple scripts
1500 NOTE: this DEPRECATES calling ipython with multiple scripts
1495 ("ipython a.py b.py c.py")
1501 ("ipython a.py b.py c.py")
1496
1502
1497 * iplib.py, hooks.py: Added configurable input prefilter,
1503 * iplib.py, hooks.py: Added configurable input prefilter,
1498 named 'input_prefilter'. See ext_rescapture.py for example
1504 named 'input_prefilter'. See ext_rescapture.py for example
1499 usage.
1505 usage.
1500
1506
1501 * ext_rescapture.py, Magic.py: Better system command output capture
1507 * ext_rescapture.py, Magic.py: Better system command output capture
1502 through 'var = !ls' (deprecates user-visible %sc). Same notation
1508 through 'var = !ls' (deprecates user-visible %sc). Same notation
1503 applies for magics, 'var = %alias' assigns alias list to var.
1509 applies for magics, 'var = %alias' assigns alias list to var.
1504
1510
1505 * ipapi.py: added meta() for accessing extension-usable data store.
1511 * ipapi.py: added meta() for accessing extension-usable data store.
1506
1512
1507 * iplib.py: added InteractiveShell.getapi(). New magics should be
1513 * iplib.py: added InteractiveShell.getapi(). New magics should be
1508 written doing self.getapi() instead of using the shell directly.
1514 written doing self.getapi() instead of using the shell directly.
1509
1515
1510 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1516 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1511 %store foo >> ~/myfoo.txt to store variables to files (in clean
1517 %store foo >> ~/myfoo.txt to store variables to files (in clean
1512 textual form, not a restorable pickle).
1518 textual form, not a restorable pickle).
1513
1519
1514 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1520 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1515
1521
1516 * usage.py, Magic.py: added %quickref
1522 * usage.py, Magic.py: added %quickref
1517
1523
1518 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1524 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1519
1525
1520 * GetoptErrors when invoking magics etc. with wrong args
1526 * GetoptErrors when invoking magics etc. with wrong args
1521 are now more helpful:
1527 are now more helpful:
1522 GetoptError: option -l not recognized (allowed: "qb" )
1528 GetoptError: option -l not recognized (allowed: "qb" )
1523
1529
1524 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1530 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1525
1531
1526 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1532 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1527 computationally intensive blocks don't appear to stall the demo.
1533 computationally intensive blocks don't appear to stall the demo.
1528
1534
1529 2006-01-24 Ville Vainio <vivainio@gmail.com>
1535 2006-01-24 Ville Vainio <vivainio@gmail.com>
1530
1536
1531 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1537 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1532 value to manipulate resulting history entry.
1538 value to manipulate resulting history entry.
1533
1539
1534 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1540 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1535 to instance methods of IPApi class, to make extending an embedded
1541 to instance methods of IPApi class, to make extending an embedded
1536 IPython feasible. See ext_rehashdir.py for example usage.
1542 IPython feasible. See ext_rehashdir.py for example usage.
1537
1543
1538 * Merged 1071-1076 from branches/0.7.1
1544 * Merged 1071-1076 from branches/0.7.1
1539
1545
1540
1546
1541 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1547 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1542
1548
1543 * tools/release (daystamp): Fix build tools to use the new
1549 * tools/release (daystamp): Fix build tools to use the new
1544 eggsetup.py script to build lightweight eggs.
1550 eggsetup.py script to build lightweight eggs.
1545
1551
1546 * Applied changesets 1062 and 1064 before 0.7.1 release.
1552 * Applied changesets 1062 and 1064 before 0.7.1 release.
1547
1553
1548 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1554 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1549 see the raw input history (without conversions like %ls ->
1555 see the raw input history (without conversions like %ls ->
1550 ipmagic("ls")). After a request from W. Stein, SAGE
1556 ipmagic("ls")). After a request from W. Stein, SAGE
1551 (http://modular.ucsd.edu/sage) developer. This information is
1557 (http://modular.ucsd.edu/sage) developer. This information is
1552 stored in the input_hist_raw attribute of the IPython instance, so
1558 stored in the input_hist_raw attribute of the IPython instance, so
1553 developers can access it if needed (it's an InputList instance).
1559 developers can access it if needed (it's an InputList instance).
1554
1560
1555 * Versionstring = 0.7.2.svn
1561 * Versionstring = 0.7.2.svn
1556
1562
1557 * eggsetup.py: A separate script for constructing eggs, creates
1563 * eggsetup.py: A separate script for constructing eggs, creates
1558 proper launch scripts even on Windows (an .exe file in
1564 proper launch scripts even on Windows (an .exe file in
1559 \python24\scripts).
1565 \python24\scripts).
1560
1566
1561 * ipapi.py: launch_new_instance, launch entry point needed for the
1567 * ipapi.py: launch_new_instance, launch entry point needed for the
1562 egg.
1568 egg.
1563
1569
1564 2006-01-23 Ville Vainio <vivainio@gmail.com>
1570 2006-01-23 Ville Vainio <vivainio@gmail.com>
1565
1571
1566 * Added %cpaste magic for pasting python code
1572 * Added %cpaste magic for pasting python code
1567
1573
1568 2006-01-22 Ville Vainio <vivainio@gmail.com>
1574 2006-01-22 Ville Vainio <vivainio@gmail.com>
1569
1575
1570 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1576 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1571
1577
1572 * Versionstring = 0.7.2.svn
1578 * Versionstring = 0.7.2.svn
1573
1579
1574 * eggsetup.py: A separate script for constructing eggs, creates
1580 * eggsetup.py: A separate script for constructing eggs, creates
1575 proper launch scripts even on Windows (an .exe file in
1581 proper launch scripts even on Windows (an .exe file in
1576 \python24\scripts).
1582 \python24\scripts).
1577
1583
1578 * ipapi.py: launch_new_instance, launch entry point needed for the
1584 * ipapi.py: launch_new_instance, launch entry point needed for the
1579 egg.
1585 egg.
1580
1586
1581 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1587 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1582
1588
1583 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1589 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1584 %pfile foo would print the file for foo even if it was a binary.
1590 %pfile foo would print the file for foo even if it was a binary.
1585 Now, extensions '.so' and '.dll' are skipped.
1591 Now, extensions '.so' and '.dll' are skipped.
1586
1592
1587 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1593 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1588 bug, where macros would fail in all threaded modes. I'm not 100%
1594 bug, where macros would fail in all threaded modes. I'm not 100%
1589 sure, so I'm going to put out an rc instead of making a release
1595 sure, so I'm going to put out an rc instead of making a release
1590 today, and wait for feedback for at least a few days.
1596 today, and wait for feedback for at least a few days.
1591
1597
1592 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1598 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1593 it...) the handling of pasting external code with autoindent on.
1599 it...) the handling of pasting external code with autoindent on.
1594 To get out of a multiline input, the rule will appear for most
1600 To get out of a multiline input, the rule will appear for most
1595 users unchanged: two blank lines or change the indent level
1601 users unchanged: two blank lines or change the indent level
1596 proposed by IPython. But there is a twist now: you can
1602 proposed by IPython. But there is a twist now: you can
1597 add/subtract only *one or two spaces*. If you add/subtract three
1603 add/subtract only *one or two spaces*. If you add/subtract three
1598 or more (unless you completely delete the line), IPython will
1604 or more (unless you completely delete the line), IPython will
1599 accept that line, and you'll need to enter a second one of pure
1605 accept that line, and you'll need to enter a second one of pure
1600 whitespace. I know it sounds complicated, but I can't find a
1606 whitespace. I know it sounds complicated, but I can't find a
1601 different solution that covers all the cases, with the right
1607 different solution that covers all the cases, with the right
1602 heuristics. Hopefully in actual use, nobody will really notice
1608 heuristics. Hopefully in actual use, nobody will really notice
1603 all these strange rules and things will 'just work'.
1609 all these strange rules and things will 'just work'.
1604
1610
1605 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1611 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1606
1612
1607 * IPython/iplib.py (interact): catch exceptions which can be
1613 * IPython/iplib.py (interact): catch exceptions which can be
1608 triggered asynchronously by signal handlers. Thanks to an
1614 triggered asynchronously by signal handlers. Thanks to an
1609 automatic crash report, submitted by Colin Kingsley
1615 automatic crash report, submitted by Colin Kingsley
1610 <tercel-AT-gentoo.org>.
1616 <tercel-AT-gentoo.org>.
1611
1617
1612 2006-01-20 Ville Vainio <vivainio@gmail.com>
1618 2006-01-20 Ville Vainio <vivainio@gmail.com>
1613
1619
1614 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1620 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1615 (%rehashdir, very useful, try it out) of how to extend ipython
1621 (%rehashdir, very useful, try it out) of how to extend ipython
1616 with new magics. Also added Extensions dir to pythonpath to make
1622 with new magics. Also added Extensions dir to pythonpath to make
1617 importing extensions easy.
1623 importing extensions easy.
1618
1624
1619 * %store now complains when trying to store interactively declared
1625 * %store now complains when trying to store interactively declared
1620 classes / instances of those classes.
1626 classes / instances of those classes.
1621
1627
1622 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1628 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1623 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1629 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1624 if they exist, and ipy_user_conf.py with some defaults is created for
1630 if they exist, and ipy_user_conf.py with some defaults is created for
1625 the user.
1631 the user.
1626
1632
1627 * Startup rehashing done by the config file, not InterpreterExec.
1633 * Startup rehashing done by the config file, not InterpreterExec.
1628 This means system commands are available even without selecting the
1634 This means system commands are available even without selecting the
1629 pysh profile. It's the sensible default after all.
1635 pysh profile. It's the sensible default after all.
1630
1636
1631 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1637 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1632
1638
1633 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1639 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1634 multiline code with autoindent on working. But I am really not
1640 multiline code with autoindent on working. But I am really not
1635 sure, so this needs more testing. Will commit a debug-enabled
1641 sure, so this needs more testing. Will commit a debug-enabled
1636 version for now, while I test it some more, so that Ville and
1642 version for now, while I test it some more, so that Ville and
1637 others may also catch any problems. Also made
1643 others may also catch any problems. Also made
1638 self.indent_current_str() a method, to ensure that there's no
1644 self.indent_current_str() a method, to ensure that there's no
1639 chance of the indent space count and the corresponding string
1645 chance of the indent space count and the corresponding string
1640 falling out of sync. All code needing the string should just call
1646 falling out of sync. All code needing the string should just call
1641 the method.
1647 the method.
1642
1648
1643 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1644
1650
1645 * IPython/Magic.py (magic_edit): fix check for when users don't
1651 * IPython/Magic.py (magic_edit): fix check for when users don't
1646 save their output files, the try/except was in the wrong section.
1652 save their output files, the try/except was in the wrong section.
1647
1653
1648 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1654 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1649
1655
1650 * IPython/Magic.py (magic_run): fix __file__ global missing from
1656 * IPython/Magic.py (magic_run): fix __file__ global missing from
1651 script's namespace when executed via %run. After a report by
1657 script's namespace when executed via %run. After a report by
1652 Vivian.
1658 Vivian.
1653
1659
1654 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1660 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1655 when using python 2.4. The parent constructor changed in 2.4, and
1661 when using python 2.4. The parent constructor changed in 2.4, and
1656 we need to track it directly (we can't call it, as it messes up
1662 we need to track it directly (we can't call it, as it messes up
1657 readline and tab-completion inside our pdb would stop working).
1663 readline and tab-completion inside our pdb would stop working).
1658 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1664 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1659
1665
1660 2006-01-16 Ville Vainio <vivainio@gmail.com>
1666 2006-01-16 Ville Vainio <vivainio@gmail.com>
1661
1667
1662 * Ipython/magic.py: Reverted back to old %edit functionality
1668 * Ipython/magic.py: Reverted back to old %edit functionality
1663 that returns file contents on exit.
1669 that returns file contents on exit.
1664
1670
1665 * IPython/path.py: Added Jason Orendorff's "path" module to
1671 * IPython/path.py: Added Jason Orendorff's "path" module to
1666 IPython tree, http://www.jorendorff.com/articles/python/path/.
1672 IPython tree, http://www.jorendorff.com/articles/python/path/.
1667 You can get path objects conveniently through %sc, and !!, e.g.:
1673 You can get path objects conveniently through %sc, and !!, e.g.:
1668 sc files=ls
1674 sc files=ls
1669 for p in files.paths: # or files.p
1675 for p in files.paths: # or files.p
1670 print p,p.mtime
1676 print p,p.mtime
1671
1677
1672 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1678 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1673 now work again without considering the exclusion regexp -
1679 now work again without considering the exclusion regexp -
1674 hence, things like ',foo my/path' turn to 'foo("my/path")'
1680 hence, things like ',foo my/path' turn to 'foo("my/path")'
1675 instead of syntax error.
1681 instead of syntax error.
1676
1682
1677
1683
1678 2006-01-14 Ville Vainio <vivainio@gmail.com>
1684 2006-01-14 Ville Vainio <vivainio@gmail.com>
1679
1685
1680 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1686 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1681 ipapi decorators for python 2.4 users, options() provides access to rc
1687 ipapi decorators for python 2.4 users, options() provides access to rc
1682 data.
1688 data.
1683
1689
1684 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1690 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1685 as path separators (even on Linux ;-). Space character after
1691 as path separators (even on Linux ;-). Space character after
1686 backslash (as yielded by tab completer) is still space;
1692 backslash (as yielded by tab completer) is still space;
1687 "%cd long\ name" works as expected.
1693 "%cd long\ name" works as expected.
1688
1694
1689 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1695 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1690 as "chain of command", with priority. API stays the same,
1696 as "chain of command", with priority. API stays the same,
1691 TryNext exception raised by a hook function signals that
1697 TryNext exception raised by a hook function signals that
1692 current hook failed and next hook should try handling it, as
1698 current hook failed and next hook should try handling it, as
1693 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1699 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1694 requested configurable display hook, which is now implemented.
1700 requested configurable display hook, which is now implemented.
1695
1701
1696 2006-01-13 Ville Vainio <vivainio@gmail.com>
1702 2006-01-13 Ville Vainio <vivainio@gmail.com>
1697
1703
1698 * IPython/platutils*.py: platform specific utility functions,
1704 * IPython/platutils*.py: platform specific utility functions,
1699 so far only set_term_title is implemented (change terminal
1705 so far only set_term_title is implemented (change terminal
1700 label in windowing systems). %cd now changes the title to
1706 label in windowing systems). %cd now changes the title to
1701 current dir.
1707 current dir.
1702
1708
1703 * IPython/Release.py: Added myself to "authors" list,
1709 * IPython/Release.py: Added myself to "authors" list,
1704 had to create new files.
1710 had to create new files.
1705
1711
1706 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1712 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1707 shell escape; not a known bug but had potential to be one in the
1713 shell escape; not a known bug but had potential to be one in the
1708 future.
1714 future.
1709
1715
1710 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1716 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1711 extension API for IPython! See the module for usage example. Fix
1717 extension API for IPython! See the module for usage example. Fix
1712 OInspect for docstring-less magic functions.
1718 OInspect for docstring-less magic functions.
1713
1719
1714
1720
1715 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1721 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1716
1722
1717 * IPython/iplib.py (raw_input): temporarily deactivate all
1723 * IPython/iplib.py (raw_input): temporarily deactivate all
1718 attempts at allowing pasting of code with autoindent on. It
1724 attempts at allowing pasting of code with autoindent on. It
1719 introduced bugs (reported by Prabhu) and I can't seem to find a
1725 introduced bugs (reported by Prabhu) and I can't seem to find a
1720 robust combination which works in all cases. Will have to revisit
1726 robust combination which works in all cases. Will have to revisit
1721 later.
1727 later.
1722
1728
1723 * IPython/genutils.py: remove isspace() function. We've dropped
1729 * IPython/genutils.py: remove isspace() function. We've dropped
1724 2.2 compatibility, so it's OK to use the string method.
1730 2.2 compatibility, so it's OK to use the string method.
1725
1731
1726 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1732 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1727
1733
1728 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1734 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1729 matching what NOT to autocall on, to include all python binary
1735 matching what NOT to autocall on, to include all python binary
1730 operators (including things like 'and', 'or', 'is' and 'in').
1736 operators (including things like 'and', 'or', 'is' and 'in').
1731 Prompted by a bug report on 'foo & bar', but I realized we had
1737 Prompted by a bug report on 'foo & bar', but I realized we had
1732 many more potential bug cases with other operators. The regexp is
1738 many more potential bug cases with other operators. The regexp is
1733 self.re_exclude_auto, it's fairly commented.
1739 self.re_exclude_auto, it's fairly commented.
1734
1740
1735 2006-01-12 Ville Vainio <vivainio@gmail.com>
1741 2006-01-12 Ville Vainio <vivainio@gmail.com>
1736
1742
1737 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1743 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1738 Prettified and hardened string/backslash quoting with ipsystem(),
1744 Prettified and hardened string/backslash quoting with ipsystem(),
1739 ipalias() and ipmagic(). Now even \ characters are passed to
1745 ipalias() and ipmagic(). Now even \ characters are passed to
1740 %magics, !shell escapes and aliases exactly as they are in the
1746 %magics, !shell escapes and aliases exactly as they are in the
1741 ipython command line. Should improve backslash experience,
1747 ipython command line. Should improve backslash experience,
1742 particularly in Windows (path delimiter for some commands that
1748 particularly in Windows (path delimiter for some commands that
1743 won't understand '/'), but Unix benefits as well (regexps). %cd
1749 won't understand '/'), but Unix benefits as well (regexps). %cd
1744 magic still doesn't support backslash path delimiters, though. Also
1750 magic still doesn't support backslash path delimiters, though. Also
1745 deleted all pretense of supporting multiline command strings in
1751 deleted all pretense of supporting multiline command strings in
1746 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1752 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1747
1753
1748 * doc/build_doc_instructions.txt added. Documentation on how to
1754 * doc/build_doc_instructions.txt added. Documentation on how to
1749 use doc/update_manual.py, added yesterday. Both files contributed
1755 use doc/update_manual.py, added yesterday. Both files contributed
1750 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1756 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1751 doc/*.sh for deprecation at a later date.
1757 doc/*.sh for deprecation at a later date.
1752
1758
1753 * /ipython.py Added ipython.py to root directory for
1759 * /ipython.py Added ipython.py to root directory for
1754 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1760 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1755 ipython.py) and development convenience (no need to keep doing
1761 ipython.py) and development convenience (no need to keep doing
1756 "setup.py install" between changes).
1762 "setup.py install" between changes).
1757
1763
1758 * Made ! and !! shell escapes work (again) in multiline expressions:
1764 * Made ! and !! shell escapes work (again) in multiline expressions:
1759 if 1:
1765 if 1:
1760 !ls
1766 !ls
1761 !!ls
1767 !!ls
1762
1768
1763 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1769 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1764
1770
1765 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1771 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1766 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1772 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1767 module in case-insensitive installation. Was causing crashes
1773 module in case-insensitive installation. Was causing crashes
1768 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1774 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1769
1775
1770 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1776 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1771 <marienz-AT-gentoo.org>, closes
1777 <marienz-AT-gentoo.org>, closes
1772 http://www.scipy.net/roundup/ipython/issue51.
1778 http://www.scipy.net/roundup/ipython/issue51.
1773
1779
1774 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1780 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1775
1781
1776 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1782 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1777 problem of excessive CPU usage under *nix and keyboard lag under
1783 problem of excessive CPU usage under *nix and keyboard lag under
1778 win32.
1784 win32.
1779
1785
1780 2006-01-10 *** Released version 0.7.0
1786 2006-01-10 *** Released version 0.7.0
1781
1787
1782 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1788 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1783
1789
1784 * IPython/Release.py (revision): tag version number to 0.7.0,
1790 * IPython/Release.py (revision): tag version number to 0.7.0,
1785 ready for release.
1791 ready for release.
1786
1792
1787 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1793 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1788 it informs the user of the name of the temp. file used. This can
1794 it informs the user of the name of the temp. file used. This can
1789 help if you decide later to reuse that same file, so you know
1795 help if you decide later to reuse that same file, so you know
1790 where to copy the info from.
1796 where to copy the info from.
1791
1797
1792 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1798 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1793
1799
1794 * setup_bdist_egg.py: little script to build an egg. Added
1800 * setup_bdist_egg.py: little script to build an egg. Added
1795 support in the release tools as well.
1801 support in the release tools as well.
1796
1802
1797 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1803 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1798
1804
1799 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1805 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1800 version selection (new -wxversion command line and ipythonrc
1806 version selection (new -wxversion command line and ipythonrc
1801 parameter). Patch contributed by Arnd Baecker
1807 parameter). Patch contributed by Arnd Baecker
1802 <arnd.baecker-AT-web.de>.
1808 <arnd.baecker-AT-web.de>.
1803
1809
1804 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1810 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1805 embedded instances, for variables defined at the interactive
1811 embedded instances, for variables defined at the interactive
1806 prompt of the embedded ipython. Reported by Arnd.
1812 prompt of the embedded ipython. Reported by Arnd.
1807
1813
1808 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1814 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1809 it can be used as a (stateful) toggle, or with a direct parameter.
1815 it can be used as a (stateful) toggle, or with a direct parameter.
1810
1816
1811 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1817 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1812 could be triggered in certain cases and cause the traceback
1818 could be triggered in certain cases and cause the traceback
1813 printer not to work.
1819 printer not to work.
1814
1820
1815 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1821 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1816
1822
1817 * IPython/iplib.py (_should_recompile): Small fix, closes
1823 * IPython/iplib.py (_should_recompile): Small fix, closes
1818 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1824 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1819
1825
1820 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1826 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1821
1827
1822 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1828 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1823 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1829 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1824 Moad for help with tracking it down.
1830 Moad for help with tracking it down.
1825
1831
1826 * IPython/iplib.py (handle_auto): fix autocall handling for
1832 * IPython/iplib.py (handle_auto): fix autocall handling for
1827 objects which support BOTH __getitem__ and __call__ (so that f [x]
1833 objects which support BOTH __getitem__ and __call__ (so that f [x]
1828 is left alone, instead of becoming f([x]) automatically).
1834 is left alone, instead of becoming f([x]) automatically).
1829
1835
1830 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1836 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1831 Ville's patch.
1837 Ville's patch.
1832
1838
1833 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1839 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1834
1840
1835 * IPython/iplib.py (handle_auto): changed autocall semantics to
1841 * IPython/iplib.py (handle_auto): changed autocall semantics to
1836 include 'smart' mode, where the autocall transformation is NOT
1842 include 'smart' mode, where the autocall transformation is NOT
1837 applied if there are no arguments on the line. This allows you to
1843 applied if there are no arguments on the line. This allows you to
1838 just type 'foo' if foo is a callable to see its internal form,
1844 just type 'foo' if foo is a callable to see its internal form,
1839 instead of having it called with no arguments (typically a
1845 instead of having it called with no arguments (typically a
1840 mistake). The old 'full' autocall still exists: for that, you
1846 mistake). The old 'full' autocall still exists: for that, you
1841 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1847 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1842
1848
1843 * IPython/completer.py (Completer.attr_matches): add
1849 * IPython/completer.py (Completer.attr_matches): add
1844 tab-completion support for Enthoughts' traits. After a report by
1850 tab-completion support for Enthoughts' traits. After a report by
1845 Arnd and a patch by Prabhu.
1851 Arnd and a patch by Prabhu.
1846
1852
1847 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1853 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1848
1854
1849 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1855 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1850 Schmolck's patch to fix inspect.getinnerframes().
1856 Schmolck's patch to fix inspect.getinnerframes().
1851
1857
1852 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1858 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1853 for embedded instances, regarding handling of namespaces and items
1859 for embedded instances, regarding handling of namespaces and items
1854 added to the __builtin__ one. Multiple embedded instances and
1860 added to the __builtin__ one. Multiple embedded instances and
1855 recursive embeddings should work better now (though I'm not sure
1861 recursive embeddings should work better now (though I'm not sure
1856 I've got all the corner cases fixed, that code is a bit of a brain
1862 I've got all the corner cases fixed, that code is a bit of a brain
1857 twister).
1863 twister).
1858
1864
1859 * IPython/Magic.py (magic_edit): added support to edit in-memory
1865 * IPython/Magic.py (magic_edit): added support to edit in-memory
1860 macros (automatically creates the necessary temp files). %edit
1866 macros (automatically creates the necessary temp files). %edit
1861 also doesn't return the file contents anymore, it's just noise.
1867 also doesn't return the file contents anymore, it's just noise.
1862
1868
1863 * IPython/completer.py (Completer.attr_matches): revert change to
1869 * IPython/completer.py (Completer.attr_matches): revert change to
1864 complete only on attributes listed in __all__. I realized it
1870 complete only on attributes listed in __all__. I realized it
1865 cripples the tab-completion system as a tool for exploring the
1871 cripples the tab-completion system as a tool for exploring the
1866 internals of unknown libraries (it renders any non-__all__
1872 internals of unknown libraries (it renders any non-__all__
1867 attribute off-limits). I got bit by this when trying to see
1873 attribute off-limits). I got bit by this when trying to see
1868 something inside the dis module.
1874 something inside the dis module.
1869
1875
1870 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1876 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1871
1877
1872 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1878 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1873 namespace for users and extension writers to hold data in. This
1879 namespace for users and extension writers to hold data in. This
1874 follows the discussion in
1880 follows the discussion in
1875 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1881 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1876
1882
1877 * IPython/completer.py (IPCompleter.complete): small patch to help
1883 * IPython/completer.py (IPCompleter.complete): small patch to help
1878 tab-completion under Emacs, after a suggestion by John Barnard
1884 tab-completion under Emacs, after a suggestion by John Barnard
1879 <barnarj-AT-ccf.org>.
1885 <barnarj-AT-ccf.org>.
1880
1886
1881 * IPython/Magic.py (Magic.extract_input_slices): added support for
1887 * IPython/Magic.py (Magic.extract_input_slices): added support for
1882 the slice notation in magics to use N-M to represent numbers N...M
1888 the slice notation in magics to use N-M to represent numbers N...M
1883 (closed endpoints). This is used by %macro and %save.
1889 (closed endpoints). This is used by %macro and %save.
1884
1890
1885 * IPython/completer.py (Completer.attr_matches): for modules which
1891 * IPython/completer.py (Completer.attr_matches): for modules which
1886 define __all__, complete only on those. After a patch by Jeffrey
1892 define __all__, complete only on those. After a patch by Jeffrey
1887 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1893 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1888 speed up this routine.
1894 speed up this routine.
1889
1895
1890 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1896 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1891 don't know if this is the end of it, but the behavior now is
1897 don't know if this is the end of it, but the behavior now is
1892 certainly much more correct. Note that coupled with macros,
1898 certainly much more correct. Note that coupled with macros,
1893 slightly surprising (at first) behavior may occur: a macro will in
1899 slightly surprising (at first) behavior may occur: a macro will in
1894 general expand to multiple lines of input, so upon exiting, the
1900 general expand to multiple lines of input, so upon exiting, the
1895 in/out counters will both be bumped by the corresponding amount
1901 in/out counters will both be bumped by the corresponding amount
1896 (as if the macro's contents had been typed interactively). Typing
1902 (as if the macro's contents had been typed interactively). Typing
1897 %hist will reveal the intermediate (silently processed) lines.
1903 %hist will reveal the intermediate (silently processed) lines.
1898
1904
1899 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1905 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1900 pickle to fail (%run was overwriting __main__ and not restoring
1906 pickle to fail (%run was overwriting __main__ and not restoring
1901 it, but pickle relies on __main__ to operate).
1907 it, but pickle relies on __main__ to operate).
1902
1908
1903 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1909 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1904 using properties, but forgot to make the main InteractiveShell
1910 using properties, but forgot to make the main InteractiveShell
1905 class a new-style class. Properties fail silently, and
1911 class a new-style class. Properties fail silently, and
1906 mysteriously, with old-style class (getters work, but
1912 mysteriously, with old-style class (getters work, but
1907 setters don't do anything).
1913 setters don't do anything).
1908
1914
1909 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1915 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1910
1916
1911 * IPython/Magic.py (magic_history): fix history reporting bug (I
1917 * IPython/Magic.py (magic_history): fix history reporting bug (I
1912 know some nasties are still there, I just can't seem to find a
1918 know some nasties are still there, I just can't seem to find a
1913 reproducible test case to track them down; the input history is
1919 reproducible test case to track them down; the input history is
1914 falling out of sync...)
1920 falling out of sync...)
1915
1921
1916 * IPython/iplib.py (handle_shell_escape): fix bug where both
1922 * IPython/iplib.py (handle_shell_escape): fix bug where both
1917 aliases and system accesses where broken for indented code (such
1923 aliases and system accesses where broken for indented code (such
1918 as loops).
1924 as loops).
1919
1925
1920 * IPython/genutils.py (shell): fix small but critical bug for
1926 * IPython/genutils.py (shell): fix small but critical bug for
1921 win32 system access.
1927 win32 system access.
1922
1928
1923 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1929 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1924
1930
1925 * IPython/iplib.py (showtraceback): remove use of the
1931 * IPython/iplib.py (showtraceback): remove use of the
1926 sys.last_{type/value/traceback} structures, which are non
1932 sys.last_{type/value/traceback} structures, which are non
1927 thread-safe.
1933 thread-safe.
1928 (_prefilter): change control flow to ensure that we NEVER
1934 (_prefilter): change control flow to ensure that we NEVER
1929 introspect objects when autocall is off. This will guarantee that
1935 introspect objects when autocall is off. This will guarantee that
1930 having an input line of the form 'x.y', where access to attribute
1936 having an input line of the form 'x.y', where access to attribute
1931 'y' has side effects, doesn't trigger the side effect TWICE. It
1937 'y' has side effects, doesn't trigger the side effect TWICE. It
1932 is important to note that, with autocall on, these side effects
1938 is important to note that, with autocall on, these side effects
1933 can still happen.
1939 can still happen.
1934 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1940 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1935 trio. IPython offers these three kinds of special calls which are
1941 trio. IPython offers these three kinds of special calls which are
1936 not python code, and it's a good thing to have their call method
1942 not python code, and it's a good thing to have their call method
1937 be accessible as pure python functions (not just special syntax at
1943 be accessible as pure python functions (not just special syntax at
1938 the command line). It gives us a better internal implementation
1944 the command line). It gives us a better internal implementation
1939 structure, as well as exposing these for user scripting more
1945 structure, as well as exposing these for user scripting more
1940 cleanly.
1946 cleanly.
1941
1947
1942 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1948 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1943 file. Now that they'll be more likely to be used with the
1949 file. Now that they'll be more likely to be used with the
1944 persistance system (%store), I want to make sure their module path
1950 persistance system (%store), I want to make sure their module path
1945 doesn't change in the future, so that we don't break things for
1951 doesn't change in the future, so that we don't break things for
1946 users' persisted data.
1952 users' persisted data.
1947
1953
1948 * IPython/iplib.py (autoindent_update): move indentation
1954 * IPython/iplib.py (autoindent_update): move indentation
1949 management into the _text_ processing loop, not the keyboard
1955 management into the _text_ processing loop, not the keyboard
1950 interactive one. This is necessary to correctly process non-typed
1956 interactive one. This is necessary to correctly process non-typed
1951 multiline input (such as macros).
1957 multiline input (such as macros).
1952
1958
1953 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1959 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1954 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1960 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1955 which was producing problems in the resulting manual.
1961 which was producing problems in the resulting manual.
1956 (magic_whos): improve reporting of instances (show their class,
1962 (magic_whos): improve reporting of instances (show their class,
1957 instead of simply printing 'instance' which isn't terribly
1963 instead of simply printing 'instance' which isn't terribly
1958 informative).
1964 informative).
1959
1965
1960 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1966 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1961 (minor mods) to support network shares under win32.
1967 (minor mods) to support network shares under win32.
1962
1968
1963 * IPython/winconsole.py (get_console_size): add new winconsole
1969 * IPython/winconsole.py (get_console_size): add new winconsole
1964 module and fixes to page_dumb() to improve its behavior under
1970 module and fixes to page_dumb() to improve its behavior under
1965 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1971 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1966
1972
1967 * IPython/Magic.py (Macro): simplified Macro class to just
1973 * IPython/Magic.py (Macro): simplified Macro class to just
1968 subclass list. We've had only 2.2 compatibility for a very long
1974 subclass list. We've had only 2.2 compatibility for a very long
1969 time, yet I was still avoiding subclassing the builtin types. No
1975 time, yet I was still avoiding subclassing the builtin types. No
1970 more (I'm also starting to use properties, though I won't shift to
1976 more (I'm also starting to use properties, though I won't shift to
1971 2.3-specific features quite yet).
1977 2.3-specific features quite yet).
1972 (magic_store): added Ville's patch for lightweight variable
1978 (magic_store): added Ville's patch for lightweight variable
1973 persistence, after a request on the user list by Matt Wilkie
1979 persistence, after a request on the user list by Matt Wilkie
1974 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1980 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1975 details.
1981 details.
1976
1982
1977 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1983 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1978 changed the default logfile name from 'ipython.log' to
1984 changed the default logfile name from 'ipython.log' to
1979 'ipython_log.py'. These logs are real python files, and now that
1985 'ipython_log.py'. These logs are real python files, and now that
1980 we have much better multiline support, people are more likely to
1986 we have much better multiline support, people are more likely to
1981 want to use them as such. Might as well name them correctly.
1987 want to use them as such. Might as well name them correctly.
1982
1988
1983 * IPython/Magic.py: substantial cleanup. While we can't stop
1989 * IPython/Magic.py: substantial cleanup. While we can't stop
1984 using magics as mixins, due to the existing customizations 'out
1990 using magics as mixins, due to the existing customizations 'out
1985 there' which rely on the mixin naming conventions, at least I
1991 there' which rely on the mixin naming conventions, at least I
1986 cleaned out all cross-class name usage. So once we are OK with
1992 cleaned out all cross-class name usage. So once we are OK with
1987 breaking compatibility, the two systems can be separated.
1993 breaking compatibility, the two systems can be separated.
1988
1994
1989 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1995 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1990 anymore, and the class is a fair bit less hideous as well. New
1996 anymore, and the class is a fair bit less hideous as well. New
1991 features were also introduced: timestamping of input, and logging
1997 features were also introduced: timestamping of input, and logging
1992 of output results. These are user-visible with the -t and -o
1998 of output results. These are user-visible with the -t and -o
1993 options to %logstart. Closes
1999 options to %logstart. Closes
1994 http://www.scipy.net/roundup/ipython/issue11 and a request by
2000 http://www.scipy.net/roundup/ipython/issue11 and a request by
1995 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2001 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1996
2002
1997 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2003 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1998
2004
1999 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2005 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2000 better handle backslashes in paths. See the thread 'More Windows
2006 better handle backslashes in paths. See the thread 'More Windows
2001 questions part 2 - \/ characters revisited' on the iypthon user
2007 questions part 2 - \/ characters revisited' on the iypthon user
2002 list:
2008 list:
2003 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2009 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2004
2010
2005 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2011 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2006
2012
2007 (InteractiveShell.__init__): change threaded shells to not use the
2013 (InteractiveShell.__init__): change threaded shells to not use the
2008 ipython crash handler. This was causing more problems than not,
2014 ipython crash handler. This was causing more problems than not,
2009 as exceptions in the main thread (GUI code, typically) would
2015 as exceptions in the main thread (GUI code, typically) would
2010 always show up as a 'crash', when they really weren't.
2016 always show up as a 'crash', when they really weren't.
2011
2017
2012 The colors and exception mode commands (%colors/%xmode) have been
2018 The colors and exception mode commands (%colors/%xmode) have been
2013 synchronized to also take this into account, so users can get
2019 synchronized to also take this into account, so users can get
2014 verbose exceptions for their threaded code as well. I also added
2020 verbose exceptions for their threaded code as well. I also added
2015 support for activating pdb inside this exception handler as well,
2021 support for activating pdb inside this exception handler as well,
2016 so now GUI authors can use IPython's enhanced pdb at runtime.
2022 so now GUI authors can use IPython's enhanced pdb at runtime.
2017
2023
2018 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2024 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2019 true by default, and add it to the shipped ipythonrc file. Since
2025 true by default, and add it to the shipped ipythonrc file. Since
2020 this asks the user before proceeding, I think it's OK to make it
2026 this asks the user before proceeding, I think it's OK to make it
2021 true by default.
2027 true by default.
2022
2028
2023 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2029 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2024 of the previous special-casing of input in the eval loop. I think
2030 of the previous special-casing of input in the eval loop. I think
2025 this is cleaner, as they really are commands and shouldn't have
2031 this is cleaner, as they really are commands and shouldn't have
2026 a special role in the middle of the core code.
2032 a special role in the middle of the core code.
2027
2033
2028 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2034 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2029
2035
2030 * IPython/iplib.py (edit_syntax_error): added support for
2036 * IPython/iplib.py (edit_syntax_error): added support for
2031 automatically reopening the editor if the file had a syntax error
2037 automatically reopening the editor if the file had a syntax error
2032 in it. Thanks to scottt who provided the patch at:
2038 in it. Thanks to scottt who provided the patch at:
2033 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2039 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2034 version committed).
2040 version committed).
2035
2041
2036 * IPython/iplib.py (handle_normal): add suport for multi-line
2042 * IPython/iplib.py (handle_normal): add suport for multi-line
2037 input with emtpy lines. This fixes
2043 input with emtpy lines. This fixes
2038 http://www.scipy.net/roundup/ipython/issue43 and a similar
2044 http://www.scipy.net/roundup/ipython/issue43 and a similar
2039 discussion on the user list.
2045 discussion on the user list.
2040
2046
2041 WARNING: a behavior change is necessarily introduced to support
2047 WARNING: a behavior change is necessarily introduced to support
2042 blank lines: now a single blank line with whitespace does NOT
2048 blank lines: now a single blank line with whitespace does NOT
2043 break the input loop, which means that when autoindent is on, by
2049 break the input loop, which means that when autoindent is on, by
2044 default hitting return on the next (indented) line does NOT exit.
2050 default hitting return on the next (indented) line does NOT exit.
2045
2051
2046 Instead, to exit a multiline input you can either have:
2052 Instead, to exit a multiline input you can either have:
2047
2053
2048 - TWO whitespace lines (just hit return again), or
2054 - TWO whitespace lines (just hit return again), or
2049 - a single whitespace line of a different length than provided
2055 - a single whitespace line of a different length than provided
2050 by the autoindent (add or remove a space).
2056 by the autoindent (add or remove a space).
2051
2057
2052 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2058 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2053 module to better organize all readline-related functionality.
2059 module to better organize all readline-related functionality.
2054 I've deleted FlexCompleter and put all completion clases here.
2060 I've deleted FlexCompleter and put all completion clases here.
2055
2061
2056 * IPython/iplib.py (raw_input): improve indentation management.
2062 * IPython/iplib.py (raw_input): improve indentation management.
2057 It is now possible to paste indented code with autoindent on, and
2063 It is now possible to paste indented code with autoindent on, and
2058 the code is interpreted correctly (though it still looks bad on
2064 the code is interpreted correctly (though it still looks bad on
2059 screen, due to the line-oriented nature of ipython).
2065 screen, due to the line-oriented nature of ipython).
2060 (MagicCompleter.complete): change behavior so that a TAB key on an
2066 (MagicCompleter.complete): change behavior so that a TAB key on an
2061 otherwise empty line actually inserts a tab, instead of completing
2067 otherwise empty line actually inserts a tab, instead of completing
2062 on the entire global namespace. This makes it easier to use the
2068 on the entire global namespace. This makes it easier to use the
2063 TAB key for indentation. After a request by Hans Meine
2069 TAB key for indentation. After a request by Hans Meine
2064 <hans_meine-AT-gmx.net>
2070 <hans_meine-AT-gmx.net>
2065 (_prefilter): add support so that typing plain 'exit' or 'quit'
2071 (_prefilter): add support so that typing plain 'exit' or 'quit'
2066 does a sensible thing. Originally I tried to deviate as little as
2072 does a sensible thing. Originally I tried to deviate as little as
2067 possible from the default python behavior, but even that one may
2073 possible from the default python behavior, but even that one may
2068 change in this direction (thread on python-dev to that effect).
2074 change in this direction (thread on python-dev to that effect).
2069 Regardless, ipython should do the right thing even if CPython's
2075 Regardless, ipython should do the right thing even if CPython's
2070 '>>>' prompt doesn't.
2076 '>>>' prompt doesn't.
2071 (InteractiveShell): removed subclassing code.InteractiveConsole
2077 (InteractiveShell): removed subclassing code.InteractiveConsole
2072 class. By now we'd overridden just about all of its methods: I've
2078 class. By now we'd overridden just about all of its methods: I've
2073 copied the remaining two over, and now ipython is a standalone
2079 copied the remaining two over, and now ipython is a standalone
2074 class. This will provide a clearer picture for the chainsaw
2080 class. This will provide a clearer picture for the chainsaw
2075 branch refactoring.
2081 branch refactoring.
2076
2082
2077 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2083 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2078
2084
2079 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2085 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2080 failures for objects which break when dir() is called on them.
2086 failures for objects which break when dir() is called on them.
2081
2087
2082 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2088 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2083 distinct local and global namespaces in the completer API. This
2089 distinct local and global namespaces in the completer API. This
2084 change allows us to properly handle completion with distinct
2090 change allows us to properly handle completion with distinct
2085 scopes, including in embedded instances (this had never really
2091 scopes, including in embedded instances (this had never really
2086 worked correctly).
2092 worked correctly).
2087
2093
2088 Note: this introduces a change in the constructor for
2094 Note: this introduces a change in the constructor for
2089 MagicCompleter, as a new global_namespace parameter is now the
2095 MagicCompleter, as a new global_namespace parameter is now the
2090 second argument (the others were bumped one position).
2096 second argument (the others were bumped one position).
2091
2097
2092 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2098 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2093
2099
2094 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2100 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2095 embedded instances (which can be done now thanks to Vivian's
2101 embedded instances (which can be done now thanks to Vivian's
2096 frame-handling fixes for pdb).
2102 frame-handling fixes for pdb).
2097 (InteractiveShell.__init__): Fix namespace handling problem in
2103 (InteractiveShell.__init__): Fix namespace handling problem in
2098 embedded instances. We were overwriting __main__ unconditionally,
2104 embedded instances. We were overwriting __main__ unconditionally,
2099 and this should only be done for 'full' (non-embedded) IPython;
2105 and this should only be done for 'full' (non-embedded) IPython;
2100 embedded instances must respect the caller's __main__. Thanks to
2106 embedded instances must respect the caller's __main__. Thanks to
2101 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2107 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2102
2108
2103 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2109 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2104
2110
2105 * setup.py: added download_url to setup(). This registers the
2111 * setup.py: added download_url to setup(). This registers the
2106 download address at PyPI, which is not only useful to humans
2112 download address at PyPI, which is not only useful to humans
2107 browsing the site, but is also picked up by setuptools (the Eggs
2113 browsing the site, but is also picked up by setuptools (the Eggs
2108 machinery). Thanks to Ville and R. Kern for the info/discussion
2114 machinery). Thanks to Ville and R. Kern for the info/discussion
2109 on this.
2115 on this.
2110
2116
2111 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2117 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2112
2118
2113 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2119 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2114 This brings a lot of nice functionality to the pdb mode, which now
2120 This brings a lot of nice functionality to the pdb mode, which now
2115 has tab-completion, syntax highlighting, and better stack handling
2121 has tab-completion, syntax highlighting, and better stack handling
2116 than before. Many thanks to Vivian De Smedt
2122 than before. Many thanks to Vivian De Smedt
2117 <vivian-AT-vdesmedt.com> for the original patches.
2123 <vivian-AT-vdesmedt.com> for the original patches.
2118
2124
2119 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2125 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2120
2126
2121 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2127 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2122 sequence to consistently accept the banner argument. The
2128 sequence to consistently accept the banner argument. The
2123 inconsistency was tripping SAGE, thanks to Gary Zablackis
2129 inconsistency was tripping SAGE, thanks to Gary Zablackis
2124 <gzabl-AT-yahoo.com> for the report.
2130 <gzabl-AT-yahoo.com> for the report.
2125
2131
2126 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2132 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2127
2133
2128 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2134 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2129 Fix bug where a naked 'alias' call in the ipythonrc file would
2135 Fix bug where a naked 'alias' call in the ipythonrc file would
2130 cause a crash. Bug reported by Jorgen Stenarson.
2136 cause a crash. Bug reported by Jorgen Stenarson.
2131
2137
2132 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2138 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2133
2139
2134 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2140 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2135 startup time.
2141 startup time.
2136
2142
2137 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2143 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2138 instances had introduced a bug with globals in normal code. Now
2144 instances had introduced a bug with globals in normal code. Now
2139 it's working in all cases.
2145 it's working in all cases.
2140
2146
2141 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2147 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2142 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2148 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2143 has been introduced to set the default case sensitivity of the
2149 has been introduced to set the default case sensitivity of the
2144 searches. Users can still select either mode at runtime on a
2150 searches. Users can still select either mode at runtime on a
2145 per-search basis.
2151 per-search basis.
2146
2152
2147 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2153 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2148
2154
2149 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2155 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2150 attributes in wildcard searches for subclasses. Modified version
2156 attributes in wildcard searches for subclasses. Modified version
2151 of a patch by Jorgen.
2157 of a patch by Jorgen.
2152
2158
2153 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2159 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2154
2160
2155 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2161 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2156 embedded instances. I added a user_global_ns attribute to the
2162 embedded instances. I added a user_global_ns attribute to the
2157 InteractiveShell class to handle this.
2163 InteractiveShell class to handle this.
2158
2164
2159 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2165 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2160
2166
2161 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2167 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2162 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2168 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2163 (reported under win32, but may happen also in other platforms).
2169 (reported under win32, but may happen also in other platforms).
2164 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2170 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2165
2171
2166 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2172 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2167
2173
2168 * IPython/Magic.py (magic_psearch): new support for wildcard
2174 * IPython/Magic.py (magic_psearch): new support for wildcard
2169 patterns. Now, typing ?a*b will list all names which begin with a
2175 patterns. Now, typing ?a*b will list all names which begin with a
2170 and end in b, for example. The %psearch magic has full
2176 and end in b, for example. The %psearch magic has full
2171 docstrings. Many thanks to JΓΆrgen Stenarson
2177 docstrings. Many thanks to JΓΆrgen Stenarson
2172 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2178 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2173 implementing this functionality.
2179 implementing this functionality.
2174
2180
2175 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2181 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2176
2182
2177 * Manual: fixed long-standing annoyance of double-dashes (as in
2183 * Manual: fixed long-standing annoyance of double-dashes (as in
2178 --prefix=~, for example) being stripped in the HTML version. This
2184 --prefix=~, for example) being stripped in the HTML version. This
2179 is a latex2html bug, but a workaround was provided. Many thanks
2185 is a latex2html bug, but a workaround was provided. Many thanks
2180 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2186 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2181 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2187 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2182 rolling. This seemingly small issue had tripped a number of users
2188 rolling. This seemingly small issue had tripped a number of users
2183 when first installing, so I'm glad to see it gone.
2189 when first installing, so I'm glad to see it gone.
2184
2190
2185 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2191 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2186
2192
2187 * IPython/Extensions/numeric_formats.py: fix missing import,
2193 * IPython/Extensions/numeric_formats.py: fix missing import,
2188 reported by Stephen Walton.
2194 reported by Stephen Walton.
2189
2195
2190 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2196 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2191
2197
2192 * IPython/demo.py: finish demo module, fully documented now.
2198 * IPython/demo.py: finish demo module, fully documented now.
2193
2199
2194 * IPython/genutils.py (file_read): simple little utility to read a
2200 * IPython/genutils.py (file_read): simple little utility to read a
2195 file and ensure it's closed afterwards.
2201 file and ensure it's closed afterwards.
2196
2202
2197 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2203 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2198
2204
2199 * IPython/demo.py (Demo.__init__): added support for individually
2205 * IPython/demo.py (Demo.__init__): added support for individually
2200 tagging blocks for automatic execution.
2206 tagging blocks for automatic execution.
2201
2207
2202 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2208 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2203 syntax-highlighted python sources, requested by John.
2209 syntax-highlighted python sources, requested by John.
2204
2210
2205 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2206
2212
2207 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2213 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2208 finishing.
2214 finishing.
2209
2215
2210 * IPython/genutils.py (shlex_split): moved from Magic to here,
2216 * IPython/genutils.py (shlex_split): moved from Magic to here,
2211 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2217 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2212
2218
2213 * IPython/demo.py (Demo.__init__): added support for silent
2219 * IPython/demo.py (Demo.__init__): added support for silent
2214 blocks, improved marks as regexps, docstrings written.
2220 blocks, improved marks as regexps, docstrings written.
2215 (Demo.__init__): better docstring, added support for sys.argv.
2221 (Demo.__init__): better docstring, added support for sys.argv.
2216
2222
2217 * IPython/genutils.py (marquee): little utility used by the demo
2223 * IPython/genutils.py (marquee): little utility used by the demo
2218 code, handy in general.
2224 code, handy in general.
2219
2225
2220 * IPython/demo.py (Demo.__init__): new class for interactive
2226 * IPython/demo.py (Demo.__init__): new class for interactive
2221 demos. Not documented yet, I just wrote it in a hurry for
2227 demos. Not documented yet, I just wrote it in a hurry for
2222 scipy'05. Will docstring later.
2228 scipy'05. Will docstring later.
2223
2229
2224 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2230 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2225
2231
2226 * IPython/Shell.py (sigint_handler): Drastic simplification which
2232 * IPython/Shell.py (sigint_handler): Drastic simplification which
2227 also seems to make Ctrl-C work correctly across threads! This is
2233 also seems to make Ctrl-C work correctly across threads! This is
2228 so simple, that I can't beleive I'd missed it before. Needs more
2234 so simple, that I can't beleive I'd missed it before. Needs more
2229 testing, though.
2235 testing, though.
2230 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2236 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2231 like this before...
2237 like this before...
2232
2238
2233 * IPython/genutils.py (get_home_dir): add protection against
2239 * IPython/genutils.py (get_home_dir): add protection against
2234 non-dirs in win32 registry.
2240 non-dirs in win32 registry.
2235
2241
2236 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2242 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2237 bug where dict was mutated while iterating (pysh crash).
2243 bug where dict was mutated while iterating (pysh crash).
2238
2244
2239 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2245 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2240
2246
2241 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2247 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2242 spurious newlines added by this routine. After a report by
2248 spurious newlines added by this routine. After a report by
2243 F. Mantegazza.
2249 F. Mantegazza.
2244
2250
2245 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2251 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2246
2252
2247 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2253 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2248 calls. These were a leftover from the GTK 1.x days, and can cause
2254 calls. These were a leftover from the GTK 1.x days, and can cause
2249 problems in certain cases (after a report by John Hunter).
2255 problems in certain cases (after a report by John Hunter).
2250
2256
2251 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2257 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2252 os.getcwd() fails at init time. Thanks to patch from David Remahl
2258 os.getcwd() fails at init time. Thanks to patch from David Remahl
2253 <chmod007-AT-mac.com>.
2259 <chmod007-AT-mac.com>.
2254 (InteractiveShell.__init__): prevent certain special magics from
2260 (InteractiveShell.__init__): prevent certain special magics from
2255 being shadowed by aliases. Closes
2261 being shadowed by aliases. Closes
2256 http://www.scipy.net/roundup/ipython/issue41.
2262 http://www.scipy.net/roundup/ipython/issue41.
2257
2263
2258 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2264 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2259
2265
2260 * IPython/iplib.py (InteractiveShell.complete): Added new
2266 * IPython/iplib.py (InteractiveShell.complete): Added new
2261 top-level completion method to expose the completion mechanism
2267 top-level completion method to expose the completion mechanism
2262 beyond readline-based environments.
2268 beyond readline-based environments.
2263
2269
2264 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2270 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2265
2271
2266 * tools/ipsvnc (svnversion): fix svnversion capture.
2272 * tools/ipsvnc (svnversion): fix svnversion capture.
2267
2273
2268 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2274 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2269 attribute to self, which was missing. Before, it was set by a
2275 attribute to self, which was missing. Before, it was set by a
2270 routine which in certain cases wasn't being called, so the
2276 routine which in certain cases wasn't being called, so the
2271 instance could end up missing the attribute. This caused a crash.
2277 instance could end up missing the attribute. This caused a crash.
2272 Closes http://www.scipy.net/roundup/ipython/issue40.
2278 Closes http://www.scipy.net/roundup/ipython/issue40.
2273
2279
2274 2005-08-16 Fernando Perez <fperez@colorado.edu>
2280 2005-08-16 Fernando Perez <fperez@colorado.edu>
2275
2281
2276 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2282 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2277 contains non-string attribute. Closes
2283 contains non-string attribute. Closes
2278 http://www.scipy.net/roundup/ipython/issue38.
2284 http://www.scipy.net/roundup/ipython/issue38.
2279
2285
2280 2005-08-14 Fernando Perez <fperez@colorado.edu>
2286 2005-08-14 Fernando Perez <fperez@colorado.edu>
2281
2287
2282 * tools/ipsvnc: Minor improvements, to add changeset info.
2288 * tools/ipsvnc: Minor improvements, to add changeset info.
2283
2289
2284 2005-08-12 Fernando Perez <fperez@colorado.edu>
2290 2005-08-12 Fernando Perez <fperez@colorado.edu>
2285
2291
2286 * IPython/iplib.py (runsource): remove self.code_to_run_src
2292 * IPython/iplib.py (runsource): remove self.code_to_run_src
2287 attribute. I realized this is nothing more than
2293 attribute. I realized this is nothing more than
2288 '\n'.join(self.buffer), and having the same data in two different
2294 '\n'.join(self.buffer), and having the same data in two different
2289 places is just asking for synchronization bugs. This may impact
2295 places is just asking for synchronization bugs. This may impact
2290 people who have custom exception handlers, so I need to warn
2296 people who have custom exception handlers, so I need to warn
2291 ipython-dev about it (F. Mantegazza may use them).
2297 ipython-dev about it (F. Mantegazza may use them).
2292
2298
2293 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2299 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2300
2295 * IPython/genutils.py: fix 2.2 compatibility (generators)
2301 * IPython/genutils.py: fix 2.2 compatibility (generators)
2296
2302
2297 2005-07-18 Fernando Perez <fperez@colorado.edu>
2303 2005-07-18 Fernando Perez <fperez@colorado.edu>
2298
2304
2299 * IPython/genutils.py (get_home_dir): fix to help users with
2305 * IPython/genutils.py (get_home_dir): fix to help users with
2300 invalid $HOME under win32.
2306 invalid $HOME under win32.
2301
2307
2302 2005-07-17 Fernando Perez <fperez@colorado.edu>
2308 2005-07-17 Fernando Perez <fperez@colorado.edu>
2303
2309
2304 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2310 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2305 some old hacks and clean up a bit other routines; code should be
2311 some old hacks and clean up a bit other routines; code should be
2306 simpler and a bit faster.
2312 simpler and a bit faster.
2307
2313
2308 * IPython/iplib.py (interact): removed some last-resort attempts
2314 * IPython/iplib.py (interact): removed some last-resort attempts
2309 to survive broken stdout/stderr. That code was only making it
2315 to survive broken stdout/stderr. That code was only making it
2310 harder to abstract out the i/o (necessary for gui integration),
2316 harder to abstract out the i/o (necessary for gui integration),
2311 and the crashes it could prevent were extremely rare in practice
2317 and the crashes it could prevent were extremely rare in practice
2312 (besides being fully user-induced in a pretty violent manner).
2318 (besides being fully user-induced in a pretty violent manner).
2313
2319
2314 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2320 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2315 Nothing major yet, but the code is simpler to read; this should
2321 Nothing major yet, but the code is simpler to read; this should
2316 make it easier to do more serious modifications in the future.
2322 make it easier to do more serious modifications in the future.
2317
2323
2318 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2324 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2319 which broke in .15 (thanks to a report by Ville).
2325 which broke in .15 (thanks to a report by Ville).
2320
2326
2321 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2327 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2322 be quite correct, I know next to nothing about unicode). This
2328 be quite correct, I know next to nothing about unicode). This
2323 will allow unicode strings to be used in prompts, amongst other
2329 will allow unicode strings to be used in prompts, amongst other
2324 cases. It also will prevent ipython from crashing when unicode
2330 cases. It also will prevent ipython from crashing when unicode
2325 shows up unexpectedly in many places. If ascii encoding fails, we
2331 shows up unexpectedly in many places. If ascii encoding fails, we
2326 assume utf_8. Currently the encoding is not a user-visible
2332 assume utf_8. Currently the encoding is not a user-visible
2327 setting, though it could be made so if there is demand for it.
2333 setting, though it could be made so if there is demand for it.
2328
2334
2329 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2335 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2330
2336
2331 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2337 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2332
2338
2333 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2339 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2334
2340
2335 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2341 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2336 code can work transparently for 2.2/2.3.
2342 code can work transparently for 2.2/2.3.
2337
2343
2338 2005-07-16 Fernando Perez <fperez@colorado.edu>
2344 2005-07-16 Fernando Perez <fperez@colorado.edu>
2339
2345
2340 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2346 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2341 out of the color scheme table used for coloring exception
2347 out of the color scheme table used for coloring exception
2342 tracebacks. This allows user code to add new schemes at runtime.
2348 tracebacks. This allows user code to add new schemes at runtime.
2343 This is a minimally modified version of the patch at
2349 This is a minimally modified version of the patch at
2344 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2350 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2345 for the contribution.
2351 for the contribution.
2346
2352
2347 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2353 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2348 slightly modified version of the patch in
2354 slightly modified version of the patch in
2349 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2355 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2350 to remove the previous try/except solution (which was costlier).
2356 to remove the previous try/except solution (which was costlier).
2351 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2357 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2352
2358
2353 2005-06-08 Fernando Perez <fperez@colorado.edu>
2359 2005-06-08 Fernando Perez <fperez@colorado.edu>
2354
2360
2355 * IPython/iplib.py (write/write_err): Add methods to abstract all
2361 * IPython/iplib.py (write/write_err): Add methods to abstract all
2356 I/O a bit more.
2362 I/O a bit more.
2357
2363
2358 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2364 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2359 warning, reported by Aric Hagberg, fix by JD Hunter.
2365 warning, reported by Aric Hagberg, fix by JD Hunter.
2360
2366
2361 2005-06-02 *** Released version 0.6.15
2367 2005-06-02 *** Released version 0.6.15
2362
2368
2363 2005-06-01 Fernando Perez <fperez@colorado.edu>
2369 2005-06-01 Fernando Perez <fperez@colorado.edu>
2364
2370
2365 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2371 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2366 tab-completion of filenames within open-quoted strings. Note that
2372 tab-completion of filenames within open-quoted strings. Note that
2367 this requires that in ~/.ipython/ipythonrc, users change the
2373 this requires that in ~/.ipython/ipythonrc, users change the
2368 readline delimiters configuration to read:
2374 readline delimiters configuration to read:
2369
2375
2370 readline_remove_delims -/~
2376 readline_remove_delims -/~
2371
2377
2372
2378
2373 2005-05-31 *** Released version 0.6.14
2379 2005-05-31 *** Released version 0.6.14
2374
2380
2375 2005-05-29 Fernando Perez <fperez@colorado.edu>
2381 2005-05-29 Fernando Perez <fperez@colorado.edu>
2376
2382
2377 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2383 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2378 with files not on the filesystem. Reported by Eliyahu Sandler
2384 with files not on the filesystem. Reported by Eliyahu Sandler
2379 <eli@gondolin.net>
2385 <eli@gondolin.net>
2380
2386
2381 2005-05-22 Fernando Perez <fperez@colorado.edu>
2387 2005-05-22 Fernando Perez <fperez@colorado.edu>
2382
2388
2383 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2389 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2384 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2390 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2385
2391
2386 2005-05-19 Fernando Perez <fperez@colorado.edu>
2392 2005-05-19 Fernando Perez <fperez@colorado.edu>
2387
2393
2388 * IPython/iplib.py (safe_execfile): close a file which could be
2394 * IPython/iplib.py (safe_execfile): close a file which could be
2389 left open (causing problems in win32, which locks open files).
2395 left open (causing problems in win32, which locks open files).
2390 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2396 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2391
2397
2392 2005-05-18 Fernando Perez <fperez@colorado.edu>
2398 2005-05-18 Fernando Perez <fperez@colorado.edu>
2393
2399
2394 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2400 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2395 keyword arguments correctly to safe_execfile().
2401 keyword arguments correctly to safe_execfile().
2396
2402
2397 2005-05-13 Fernando Perez <fperez@colorado.edu>
2403 2005-05-13 Fernando Perez <fperez@colorado.edu>
2398
2404
2399 * ipython.1: Added info about Qt to manpage, and threads warning
2405 * ipython.1: Added info about Qt to manpage, and threads warning
2400 to usage page (invoked with --help).
2406 to usage page (invoked with --help).
2401
2407
2402 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2408 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2403 new matcher (it goes at the end of the priority list) to do
2409 new matcher (it goes at the end of the priority list) to do
2404 tab-completion on named function arguments. Submitted by George
2410 tab-completion on named function arguments. Submitted by George
2405 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2411 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2406 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2412 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2407 for more details.
2413 for more details.
2408
2414
2409 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2415 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2410 SystemExit exceptions in the script being run. Thanks to a report
2416 SystemExit exceptions in the script being run. Thanks to a report
2411 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2417 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2412 producing very annoying behavior when running unit tests.
2418 producing very annoying behavior when running unit tests.
2413
2419
2414 2005-05-12 Fernando Perez <fperez@colorado.edu>
2420 2005-05-12 Fernando Perez <fperez@colorado.edu>
2415
2421
2416 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2422 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2417 which I'd broken (again) due to a changed regexp. In the process,
2423 which I'd broken (again) due to a changed regexp. In the process,
2418 added ';' as an escape to auto-quote the whole line without
2424 added ';' as an escape to auto-quote the whole line without
2419 splitting its arguments. Thanks to a report by Jerry McRae
2425 splitting its arguments. Thanks to a report by Jerry McRae
2420 <qrs0xyc02-AT-sneakemail.com>.
2426 <qrs0xyc02-AT-sneakemail.com>.
2421
2427
2422 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2428 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2423 possible crashes caused by a TokenError. Reported by Ed Schofield
2429 possible crashes caused by a TokenError. Reported by Ed Schofield
2424 <schofield-AT-ftw.at>.
2430 <schofield-AT-ftw.at>.
2425
2431
2426 2005-05-06 Fernando Perez <fperez@colorado.edu>
2432 2005-05-06 Fernando Perez <fperez@colorado.edu>
2427
2433
2428 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2434 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2429
2435
2430 2005-04-29 Fernando Perez <fperez@colorado.edu>
2436 2005-04-29 Fernando Perez <fperez@colorado.edu>
2431
2437
2432 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2438 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2433 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2439 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2434 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2440 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2435 which provides support for Qt interactive usage (similar to the
2441 which provides support for Qt interactive usage (similar to the
2436 existing one for WX and GTK). This had been often requested.
2442 existing one for WX and GTK). This had been often requested.
2437
2443
2438 2005-04-14 *** Released version 0.6.13
2444 2005-04-14 *** Released version 0.6.13
2439
2445
2440 2005-04-08 Fernando Perez <fperez@colorado.edu>
2446 2005-04-08 Fernando Perez <fperez@colorado.edu>
2441
2447
2442 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2448 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2443 from _ofind, which gets called on almost every input line. Now,
2449 from _ofind, which gets called on almost every input line. Now,
2444 we only try to get docstrings if they are actually going to be
2450 we only try to get docstrings if they are actually going to be
2445 used (the overhead of fetching unnecessary docstrings can be
2451 used (the overhead of fetching unnecessary docstrings can be
2446 noticeable for certain objects, such as Pyro proxies).
2452 noticeable for certain objects, such as Pyro proxies).
2447
2453
2448 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2454 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2449 for completers. For some reason I had been passing them the state
2455 for completers. For some reason I had been passing them the state
2450 variable, which completers never actually need, and was in
2456 variable, which completers never actually need, and was in
2451 conflict with the rlcompleter API. Custom completers ONLY need to
2457 conflict with the rlcompleter API. Custom completers ONLY need to
2452 take the text parameter.
2458 take the text parameter.
2453
2459
2454 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2460 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2455 work correctly in pysh. I've also moved all the logic which used
2461 work correctly in pysh. I've also moved all the logic which used
2456 to be in pysh.py here, which will prevent problems with future
2462 to be in pysh.py here, which will prevent problems with future
2457 upgrades. However, this time I must warn users to update their
2463 upgrades. However, this time I must warn users to update their
2458 pysh profile to include the line
2464 pysh profile to include the line
2459
2465
2460 import_all IPython.Extensions.InterpreterExec
2466 import_all IPython.Extensions.InterpreterExec
2461
2467
2462 because otherwise things won't work for them. They MUST also
2468 because otherwise things won't work for them. They MUST also
2463 delete pysh.py and the line
2469 delete pysh.py and the line
2464
2470
2465 execfile pysh.py
2471 execfile pysh.py
2466
2472
2467 from their ipythonrc-pysh.
2473 from their ipythonrc-pysh.
2468
2474
2469 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2475 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2470 robust in the face of objects whose dir() returns non-strings
2476 robust in the face of objects whose dir() returns non-strings
2471 (which it shouldn't, but some broken libs like ITK do). Thanks to
2477 (which it shouldn't, but some broken libs like ITK do). Thanks to
2472 a patch by John Hunter (implemented differently, though). Also
2478 a patch by John Hunter (implemented differently, though). Also
2473 minor improvements by using .extend instead of + on lists.
2479 minor improvements by using .extend instead of + on lists.
2474
2480
2475 * pysh.py:
2481 * pysh.py:
2476
2482
2477 2005-04-06 Fernando Perez <fperez@colorado.edu>
2483 2005-04-06 Fernando Perez <fperez@colorado.edu>
2478
2484
2479 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2485 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2480 by default, so that all users benefit from it. Those who don't
2486 by default, so that all users benefit from it. Those who don't
2481 want it can still turn it off.
2487 want it can still turn it off.
2482
2488
2483 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2489 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2484 config file, I'd forgotten about this, so users were getting it
2490 config file, I'd forgotten about this, so users were getting it
2485 off by default.
2491 off by default.
2486
2492
2487 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2493 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2488 consistency. Now magics can be called in multiline statements,
2494 consistency. Now magics can be called in multiline statements,
2489 and python variables can be expanded in magic calls via $var.
2495 and python variables can be expanded in magic calls via $var.
2490 This makes the magic system behave just like aliases or !system
2496 This makes the magic system behave just like aliases or !system
2491 calls.
2497 calls.
2492
2498
2493 2005-03-28 Fernando Perez <fperez@colorado.edu>
2499 2005-03-28 Fernando Perez <fperez@colorado.edu>
2494
2500
2495 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2501 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2496 expensive string additions for building command. Add support for
2502 expensive string additions for building command. Add support for
2497 trailing ';' when autocall is used.
2503 trailing ';' when autocall is used.
2498
2504
2499 2005-03-26 Fernando Perez <fperez@colorado.edu>
2505 2005-03-26 Fernando Perez <fperez@colorado.edu>
2500
2506
2501 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2507 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2502 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2508 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2503 ipython.el robust against prompts with any number of spaces
2509 ipython.el robust against prompts with any number of spaces
2504 (including 0) after the ':' character.
2510 (including 0) after the ':' character.
2505
2511
2506 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2512 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2507 continuation prompt, which misled users to think the line was
2513 continuation prompt, which misled users to think the line was
2508 already indented. Closes debian Bug#300847, reported to me by
2514 already indented. Closes debian Bug#300847, reported to me by
2509 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2515 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2510
2516
2511 2005-03-23 Fernando Perez <fperez@colorado.edu>
2517 2005-03-23 Fernando Perez <fperez@colorado.edu>
2512
2518
2513 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2519 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2514 properly aligned if they have embedded newlines.
2520 properly aligned if they have embedded newlines.
2515
2521
2516 * IPython/iplib.py (runlines): Add a public method to expose
2522 * IPython/iplib.py (runlines): Add a public method to expose
2517 IPython's code execution machinery, so that users can run strings
2523 IPython's code execution machinery, so that users can run strings
2518 as if they had been typed at the prompt interactively.
2524 as if they had been typed at the prompt interactively.
2519 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2525 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2520 methods which can call the system shell, but with python variable
2526 methods which can call the system shell, but with python variable
2521 expansion. The three such methods are: __IPYTHON__.system,
2527 expansion. The three such methods are: __IPYTHON__.system,
2522 .getoutput and .getoutputerror. These need to be documented in a
2528 .getoutput and .getoutputerror. These need to be documented in a
2523 'public API' section (to be written) of the manual.
2529 'public API' section (to be written) of the manual.
2524
2530
2525 2005-03-20 Fernando Perez <fperez@colorado.edu>
2531 2005-03-20 Fernando Perez <fperez@colorado.edu>
2526
2532
2527 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2533 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2528 for custom exception handling. This is quite powerful, and it
2534 for custom exception handling. This is quite powerful, and it
2529 allows for user-installable exception handlers which can trap
2535 allows for user-installable exception handlers which can trap
2530 custom exceptions at runtime and treat them separately from
2536 custom exceptions at runtime and treat them separately from
2531 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2537 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2532 Mantegazza <mantegazza-AT-ill.fr>.
2538 Mantegazza <mantegazza-AT-ill.fr>.
2533 (InteractiveShell.set_custom_completer): public API function to
2539 (InteractiveShell.set_custom_completer): public API function to
2534 add new completers at runtime.
2540 add new completers at runtime.
2535
2541
2536 2005-03-19 Fernando Perez <fperez@colorado.edu>
2542 2005-03-19 Fernando Perez <fperez@colorado.edu>
2537
2543
2538 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2544 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2539 allow objects which provide their docstrings via non-standard
2545 allow objects which provide their docstrings via non-standard
2540 mechanisms (like Pyro proxies) to still be inspected by ipython's
2546 mechanisms (like Pyro proxies) to still be inspected by ipython's
2541 ? system.
2547 ? system.
2542
2548
2543 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2549 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2544 automatic capture system. I tried quite hard to make it work
2550 automatic capture system. I tried quite hard to make it work
2545 reliably, and simply failed. I tried many combinations with the
2551 reliably, and simply failed. I tried many combinations with the
2546 subprocess module, but eventually nothing worked in all needed
2552 subprocess module, but eventually nothing worked in all needed
2547 cases (not blocking stdin for the child, duplicating stdout
2553 cases (not blocking stdin for the child, duplicating stdout
2548 without blocking, etc). The new %sc/%sx still do capture to these
2554 without blocking, etc). The new %sc/%sx still do capture to these
2549 magical list/string objects which make shell use much more
2555 magical list/string objects which make shell use much more
2550 conveninent, so not all is lost.
2556 conveninent, so not all is lost.
2551
2557
2552 XXX - FIX MANUAL for the change above!
2558 XXX - FIX MANUAL for the change above!
2553
2559
2554 (runsource): I copied code.py's runsource() into ipython to modify
2560 (runsource): I copied code.py's runsource() into ipython to modify
2555 it a bit. Now the code object and source to be executed are
2561 it a bit. Now the code object and source to be executed are
2556 stored in ipython. This makes this info accessible to third-party
2562 stored in ipython. This makes this info accessible to third-party
2557 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2563 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2558 Mantegazza <mantegazza-AT-ill.fr>.
2564 Mantegazza <mantegazza-AT-ill.fr>.
2559
2565
2560 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2566 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2561 history-search via readline (like C-p/C-n). I'd wanted this for a
2567 history-search via readline (like C-p/C-n). I'd wanted this for a
2562 long time, but only recently found out how to do it. For users
2568 long time, but only recently found out how to do it. For users
2563 who already have their ipythonrc files made and want this, just
2569 who already have their ipythonrc files made and want this, just
2564 add:
2570 add:
2565
2571
2566 readline_parse_and_bind "\e[A": history-search-backward
2572 readline_parse_and_bind "\e[A": history-search-backward
2567 readline_parse_and_bind "\e[B": history-search-forward
2573 readline_parse_and_bind "\e[B": history-search-forward
2568
2574
2569 2005-03-18 Fernando Perez <fperez@colorado.edu>
2575 2005-03-18 Fernando Perez <fperez@colorado.edu>
2570
2576
2571 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2577 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2572 LSString and SList classes which allow transparent conversions
2578 LSString and SList classes which allow transparent conversions
2573 between list mode and whitespace-separated string.
2579 between list mode and whitespace-separated string.
2574 (magic_r): Fix recursion problem in %r.
2580 (magic_r): Fix recursion problem in %r.
2575
2581
2576 * IPython/genutils.py (LSString): New class to be used for
2582 * IPython/genutils.py (LSString): New class to be used for
2577 automatic storage of the results of all alias/system calls in _o
2583 automatic storage of the results of all alias/system calls in _o
2578 and _e (stdout/err). These provide a .l/.list attribute which
2584 and _e (stdout/err). These provide a .l/.list attribute which
2579 does automatic splitting on newlines. This means that for most
2585 does automatic splitting on newlines. This means that for most
2580 uses, you'll never need to do capturing of output with %sc/%sx
2586 uses, you'll never need to do capturing of output with %sc/%sx
2581 anymore, since ipython keeps this always done for you. Note that
2587 anymore, since ipython keeps this always done for you. Note that
2582 only the LAST results are stored, the _o/e variables are
2588 only the LAST results are stored, the _o/e variables are
2583 overwritten on each call. If you need to save their contents
2589 overwritten on each call. If you need to save their contents
2584 further, simply bind them to any other name.
2590 further, simply bind them to any other name.
2585
2591
2586 2005-03-17 Fernando Perez <fperez@colorado.edu>
2592 2005-03-17 Fernando Perez <fperez@colorado.edu>
2587
2593
2588 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2594 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2589 prompt namespace handling.
2595 prompt namespace handling.
2590
2596
2591 2005-03-16 Fernando Perez <fperez@colorado.edu>
2597 2005-03-16 Fernando Perez <fperez@colorado.edu>
2592
2598
2593 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2599 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2594 classic prompts to be '>>> ' (final space was missing, and it
2600 classic prompts to be '>>> ' (final space was missing, and it
2595 trips the emacs python mode).
2601 trips the emacs python mode).
2596 (BasePrompt.__str__): Added safe support for dynamic prompt
2602 (BasePrompt.__str__): Added safe support for dynamic prompt
2597 strings. Now you can set your prompt string to be '$x', and the
2603 strings. Now you can set your prompt string to be '$x', and the
2598 value of x will be printed from your interactive namespace. The
2604 value of x will be printed from your interactive namespace. The
2599 interpolation syntax includes the full Itpl support, so
2605 interpolation syntax includes the full Itpl support, so
2600 ${foo()+x+bar()} is a valid prompt string now, and the function
2606 ${foo()+x+bar()} is a valid prompt string now, and the function
2601 calls will be made at runtime.
2607 calls will be made at runtime.
2602
2608
2603 2005-03-15 Fernando Perez <fperez@colorado.edu>
2609 2005-03-15 Fernando Perez <fperez@colorado.edu>
2604
2610
2605 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2611 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2606 avoid name clashes in pylab. %hist still works, it just forwards
2612 avoid name clashes in pylab. %hist still works, it just forwards
2607 the call to %history.
2613 the call to %history.
2608
2614
2609 2005-03-02 *** Released version 0.6.12
2615 2005-03-02 *** Released version 0.6.12
2610
2616
2611 2005-03-02 Fernando Perez <fperez@colorado.edu>
2617 2005-03-02 Fernando Perez <fperez@colorado.edu>
2612
2618
2613 * IPython/iplib.py (handle_magic): log magic calls properly as
2619 * IPython/iplib.py (handle_magic): log magic calls properly as
2614 ipmagic() function calls.
2620 ipmagic() function calls.
2615
2621
2616 * IPython/Magic.py (magic_time): Improved %time to support
2622 * IPython/Magic.py (magic_time): Improved %time to support
2617 statements and provide wall-clock as well as CPU time.
2623 statements and provide wall-clock as well as CPU time.
2618
2624
2619 2005-02-27 Fernando Perez <fperez@colorado.edu>
2625 2005-02-27 Fernando Perez <fperez@colorado.edu>
2620
2626
2621 * IPython/hooks.py: New hooks module, to expose user-modifiable
2627 * IPython/hooks.py: New hooks module, to expose user-modifiable
2622 IPython functionality in a clean manner. For now only the editor
2628 IPython functionality in a clean manner. For now only the editor
2623 hook is actually written, and other thigns which I intend to turn
2629 hook is actually written, and other thigns which I intend to turn
2624 into proper hooks aren't yet there. The display and prefilter
2630 into proper hooks aren't yet there. The display and prefilter
2625 stuff, for example, should be hooks. But at least now the
2631 stuff, for example, should be hooks. But at least now the
2626 framework is in place, and the rest can be moved here with more
2632 framework is in place, and the rest can be moved here with more
2627 time later. IPython had had a .hooks variable for a long time for
2633 time later. IPython had had a .hooks variable for a long time for
2628 this purpose, but I'd never actually used it for anything.
2634 this purpose, but I'd never actually used it for anything.
2629
2635
2630 2005-02-26 Fernando Perez <fperez@colorado.edu>
2636 2005-02-26 Fernando Perez <fperez@colorado.edu>
2631
2637
2632 * IPython/ipmaker.py (make_IPython): make the default ipython
2638 * IPython/ipmaker.py (make_IPython): make the default ipython
2633 directory be called _ipython under win32, to follow more the
2639 directory be called _ipython under win32, to follow more the
2634 naming peculiarities of that platform (where buggy software like
2640 naming peculiarities of that platform (where buggy software like
2635 Visual Sourcesafe breaks with .named directories). Reported by
2641 Visual Sourcesafe breaks with .named directories). Reported by
2636 Ville Vainio.
2642 Ville Vainio.
2637
2643
2638 2005-02-23 Fernando Perez <fperez@colorado.edu>
2644 2005-02-23 Fernando Perez <fperez@colorado.edu>
2639
2645
2640 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2646 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2641 auto_aliases for win32 which were causing problems. Users can
2647 auto_aliases for win32 which were causing problems. Users can
2642 define the ones they personally like.
2648 define the ones they personally like.
2643
2649
2644 2005-02-21 Fernando Perez <fperez@colorado.edu>
2650 2005-02-21 Fernando Perez <fperez@colorado.edu>
2645
2651
2646 * IPython/Magic.py (magic_time): new magic to time execution of
2652 * IPython/Magic.py (magic_time): new magic to time execution of
2647 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2653 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2648
2654
2649 2005-02-19 Fernando Perez <fperez@colorado.edu>
2655 2005-02-19 Fernando Perez <fperez@colorado.edu>
2650
2656
2651 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2657 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2652 into keys (for prompts, for example).
2658 into keys (for prompts, for example).
2653
2659
2654 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2660 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2655 prompts in case users want them. This introduces a small behavior
2661 prompts in case users want them. This introduces a small behavior
2656 change: ipython does not automatically add a space to all prompts
2662 change: ipython does not automatically add a space to all prompts
2657 anymore. To get the old prompts with a space, users should add it
2663 anymore. To get the old prompts with a space, users should add it
2658 manually to their ipythonrc file, so for example prompt_in1 should
2664 manually to their ipythonrc file, so for example prompt_in1 should
2659 now read 'In [\#]: ' instead of 'In [\#]:'.
2665 now read 'In [\#]: ' instead of 'In [\#]:'.
2660 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2666 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2661 file) to control left-padding of secondary prompts.
2667 file) to control left-padding of secondary prompts.
2662
2668
2663 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2669 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2664 the profiler can't be imported. Fix for Debian, which removed
2670 the profiler can't be imported. Fix for Debian, which removed
2665 profile.py because of License issues. I applied a slightly
2671 profile.py because of License issues. I applied a slightly
2666 modified version of the original Debian patch at
2672 modified version of the original Debian patch at
2667 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2673 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2668
2674
2669 2005-02-17 Fernando Perez <fperez@colorado.edu>
2675 2005-02-17 Fernando Perez <fperez@colorado.edu>
2670
2676
2671 * IPython/genutils.py (native_line_ends): Fix bug which would
2677 * IPython/genutils.py (native_line_ends): Fix bug which would
2672 cause improper line-ends under win32 b/c I was not opening files
2678 cause improper line-ends under win32 b/c I was not opening files
2673 in binary mode. Bug report and fix thanks to Ville.
2679 in binary mode. Bug report and fix thanks to Ville.
2674
2680
2675 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2681 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2676 trying to catch spurious foo[1] autocalls. My fix actually broke
2682 trying to catch spurious foo[1] autocalls. My fix actually broke
2677 ',/' autoquote/call with explicit escape (bad regexp).
2683 ',/' autoquote/call with explicit escape (bad regexp).
2678
2684
2679 2005-02-15 *** Released version 0.6.11
2685 2005-02-15 *** Released version 0.6.11
2680
2686
2681 2005-02-14 Fernando Perez <fperez@colorado.edu>
2687 2005-02-14 Fernando Perez <fperez@colorado.edu>
2682
2688
2683 * IPython/background_jobs.py: New background job management
2689 * IPython/background_jobs.py: New background job management
2684 subsystem. This is implemented via a new set of classes, and
2690 subsystem. This is implemented via a new set of classes, and
2685 IPython now provides a builtin 'jobs' object for background job
2691 IPython now provides a builtin 'jobs' object for background job
2686 execution. A convenience %bg magic serves as a lightweight
2692 execution. A convenience %bg magic serves as a lightweight
2687 frontend for starting the more common type of calls. This was
2693 frontend for starting the more common type of calls. This was
2688 inspired by discussions with B. Granger and the BackgroundCommand
2694 inspired by discussions with B. Granger and the BackgroundCommand
2689 class described in the book Python Scripting for Computational
2695 class described in the book Python Scripting for Computational
2690 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2696 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2691 (although ultimately no code from this text was used, as IPython's
2697 (although ultimately no code from this text was used, as IPython's
2692 system is a separate implementation).
2698 system is a separate implementation).
2693
2699
2694 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2700 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2695 to control the completion of single/double underscore names
2701 to control the completion of single/double underscore names
2696 separately. As documented in the example ipytonrc file, the
2702 separately. As documented in the example ipytonrc file, the
2697 readline_omit__names variable can now be set to 2, to omit even
2703 readline_omit__names variable can now be set to 2, to omit even
2698 single underscore names. Thanks to a patch by Brian Wong
2704 single underscore names. Thanks to a patch by Brian Wong
2699 <BrianWong-AT-AirgoNetworks.Com>.
2705 <BrianWong-AT-AirgoNetworks.Com>.
2700 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2706 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2701 be autocalled as foo([1]) if foo were callable. A problem for
2707 be autocalled as foo([1]) if foo were callable. A problem for
2702 things which are both callable and implement __getitem__.
2708 things which are both callable and implement __getitem__.
2703 (init_readline): Fix autoindentation for win32. Thanks to a patch
2709 (init_readline): Fix autoindentation for win32. Thanks to a patch
2704 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2710 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2705
2711
2706 2005-02-12 Fernando Perez <fperez@colorado.edu>
2712 2005-02-12 Fernando Perez <fperez@colorado.edu>
2707
2713
2708 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2714 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2709 which I had written long ago to sort out user error messages which
2715 which I had written long ago to sort out user error messages which
2710 may occur during startup. This seemed like a good idea initially,
2716 may occur during startup. This seemed like a good idea initially,
2711 but it has proven a disaster in retrospect. I don't want to
2717 but it has proven a disaster in retrospect. I don't want to
2712 change much code for now, so my fix is to set the internal 'debug'
2718 change much code for now, so my fix is to set the internal 'debug'
2713 flag to true everywhere, whose only job was precisely to control
2719 flag to true everywhere, whose only job was precisely to control
2714 this subsystem. This closes issue 28 (as well as avoiding all
2720 this subsystem. This closes issue 28 (as well as avoiding all
2715 sorts of strange hangups which occur from time to time).
2721 sorts of strange hangups which occur from time to time).
2716
2722
2717 2005-02-07 Fernando Perez <fperez@colorado.edu>
2723 2005-02-07 Fernando Perez <fperez@colorado.edu>
2718
2724
2719 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2725 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2720 previous call produced a syntax error.
2726 previous call produced a syntax error.
2721
2727
2722 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2728 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2723 classes without constructor.
2729 classes without constructor.
2724
2730
2725 2005-02-06 Fernando Perez <fperez@colorado.edu>
2731 2005-02-06 Fernando Perez <fperez@colorado.edu>
2726
2732
2727 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2733 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2728 completions with the results of each matcher, so we return results
2734 completions with the results of each matcher, so we return results
2729 to the user from all namespaces. This breaks with ipython
2735 to the user from all namespaces. This breaks with ipython
2730 tradition, but I think it's a nicer behavior. Now you get all
2736 tradition, but I think it's a nicer behavior. Now you get all
2731 possible completions listed, from all possible namespaces (python,
2737 possible completions listed, from all possible namespaces (python,
2732 filesystem, magics...) After a request by John Hunter
2738 filesystem, magics...) After a request by John Hunter
2733 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2739 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2734
2740
2735 2005-02-05 Fernando Perez <fperez@colorado.edu>
2741 2005-02-05 Fernando Perez <fperez@colorado.edu>
2736
2742
2737 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2743 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2738 the call had quote characters in it (the quotes were stripped).
2744 the call had quote characters in it (the quotes were stripped).
2739
2745
2740 2005-01-31 Fernando Perez <fperez@colorado.edu>
2746 2005-01-31 Fernando Perez <fperez@colorado.edu>
2741
2747
2742 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2748 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2743 Itpl.itpl() to make the code more robust against psyco
2749 Itpl.itpl() to make the code more robust against psyco
2744 optimizations.
2750 optimizations.
2745
2751
2746 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2752 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2747 of causing an exception. Quicker, cleaner.
2753 of causing an exception. Quicker, cleaner.
2748
2754
2749 2005-01-28 Fernando Perez <fperez@colorado.edu>
2755 2005-01-28 Fernando Perez <fperez@colorado.edu>
2750
2756
2751 * scripts/ipython_win_post_install.py (install): hardcode
2757 * scripts/ipython_win_post_install.py (install): hardcode
2752 sys.prefix+'python.exe' as the executable path. It turns out that
2758 sys.prefix+'python.exe' as the executable path. It turns out that
2753 during the post-installation run, sys.executable resolves to the
2759 during the post-installation run, sys.executable resolves to the
2754 name of the binary installer! I should report this as a distutils
2760 name of the binary installer! I should report this as a distutils
2755 bug, I think. I updated the .10 release with this tiny fix, to
2761 bug, I think. I updated the .10 release with this tiny fix, to
2756 avoid annoying the lists further.
2762 avoid annoying the lists further.
2757
2763
2758 2005-01-27 *** Released version 0.6.10
2764 2005-01-27 *** Released version 0.6.10
2759
2765
2760 2005-01-27 Fernando Perez <fperez@colorado.edu>
2766 2005-01-27 Fernando Perez <fperez@colorado.edu>
2761
2767
2762 * IPython/numutils.py (norm): Added 'inf' as optional name for
2768 * IPython/numutils.py (norm): Added 'inf' as optional name for
2763 L-infinity norm, included references to mathworld.com for vector
2769 L-infinity norm, included references to mathworld.com for vector
2764 norm definitions.
2770 norm definitions.
2765 (amin/amax): added amin/amax for array min/max. Similar to what
2771 (amin/amax): added amin/amax for array min/max. Similar to what
2766 pylab ships with after the recent reorganization of names.
2772 pylab ships with after the recent reorganization of names.
2767 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2773 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2768
2774
2769 * ipython.el: committed Alex's recent fixes and improvements.
2775 * ipython.el: committed Alex's recent fixes and improvements.
2770 Tested with python-mode from CVS, and it looks excellent. Since
2776 Tested with python-mode from CVS, and it looks excellent. Since
2771 python-mode hasn't released anything in a while, I'm temporarily
2777 python-mode hasn't released anything in a while, I'm temporarily
2772 putting a copy of today's CVS (v 4.70) of python-mode in:
2778 putting a copy of today's CVS (v 4.70) of python-mode in:
2773 http://ipython.scipy.org/tmp/python-mode.el
2779 http://ipython.scipy.org/tmp/python-mode.el
2774
2780
2775 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2781 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2776 sys.executable for the executable name, instead of assuming it's
2782 sys.executable for the executable name, instead of assuming it's
2777 called 'python.exe' (the post-installer would have produced broken
2783 called 'python.exe' (the post-installer would have produced broken
2778 setups on systems with a differently named python binary).
2784 setups on systems with a differently named python binary).
2779
2785
2780 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2786 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2781 references to os.linesep, to make the code more
2787 references to os.linesep, to make the code more
2782 platform-independent. This is also part of the win32 coloring
2788 platform-independent. This is also part of the win32 coloring
2783 fixes.
2789 fixes.
2784
2790
2785 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2791 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2786 lines, which actually cause coloring bugs because the length of
2792 lines, which actually cause coloring bugs because the length of
2787 the line is very difficult to correctly compute with embedded
2793 the line is very difficult to correctly compute with embedded
2788 escapes. This was the source of all the coloring problems under
2794 escapes. This was the source of all the coloring problems under
2789 Win32. I think that _finally_, Win32 users have a properly
2795 Win32. I think that _finally_, Win32 users have a properly
2790 working ipython in all respects. This would never have happened
2796 working ipython in all respects. This would never have happened
2791 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2797 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2792
2798
2793 2005-01-26 *** Released version 0.6.9
2799 2005-01-26 *** Released version 0.6.9
2794
2800
2795 2005-01-25 Fernando Perez <fperez@colorado.edu>
2801 2005-01-25 Fernando Perez <fperez@colorado.edu>
2796
2802
2797 * setup.py: finally, we have a true Windows installer, thanks to
2803 * setup.py: finally, we have a true Windows installer, thanks to
2798 the excellent work of Viktor Ransmayr
2804 the excellent work of Viktor Ransmayr
2799 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2805 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2800 Windows users. The setup routine is quite a bit cleaner thanks to
2806 Windows users. The setup routine is quite a bit cleaner thanks to
2801 this, and the post-install script uses the proper functions to
2807 this, and the post-install script uses the proper functions to
2802 allow a clean de-installation using the standard Windows Control
2808 allow a clean de-installation using the standard Windows Control
2803 Panel.
2809 Panel.
2804
2810
2805 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2811 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2806 environment variable under all OSes (including win32) if
2812 environment variable under all OSes (including win32) if
2807 available. This will give consistency to win32 users who have set
2813 available. This will give consistency to win32 users who have set
2808 this variable for any reason. If os.environ['HOME'] fails, the
2814 this variable for any reason. If os.environ['HOME'] fails, the
2809 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2815 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2810
2816
2811 2005-01-24 Fernando Perez <fperez@colorado.edu>
2817 2005-01-24 Fernando Perez <fperez@colorado.edu>
2812
2818
2813 * IPython/numutils.py (empty_like): add empty_like(), similar to
2819 * IPython/numutils.py (empty_like): add empty_like(), similar to
2814 zeros_like() but taking advantage of the new empty() Numeric routine.
2820 zeros_like() but taking advantage of the new empty() Numeric routine.
2815
2821
2816 2005-01-23 *** Released version 0.6.8
2822 2005-01-23 *** Released version 0.6.8
2817
2823
2818 2005-01-22 Fernando Perez <fperez@colorado.edu>
2824 2005-01-22 Fernando Perez <fperez@colorado.edu>
2819
2825
2820 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2826 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2821 automatic show() calls. After discussing things with JDH, it
2827 automatic show() calls. After discussing things with JDH, it
2822 turns out there are too many corner cases where this can go wrong.
2828 turns out there are too many corner cases where this can go wrong.
2823 It's best not to try to be 'too smart', and simply have ipython
2829 It's best not to try to be 'too smart', and simply have ipython
2824 reproduce as much as possible the default behavior of a normal
2830 reproduce as much as possible the default behavior of a normal
2825 python shell.
2831 python shell.
2826
2832
2827 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2833 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2828 line-splitting regexp and _prefilter() to avoid calling getattr()
2834 line-splitting regexp and _prefilter() to avoid calling getattr()
2829 on assignments. This closes
2835 on assignments. This closes
2830 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2836 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2831 readline uses getattr(), so a simple <TAB> keypress is still
2837 readline uses getattr(), so a simple <TAB> keypress is still
2832 enough to trigger getattr() calls on an object.
2838 enough to trigger getattr() calls on an object.
2833
2839
2834 2005-01-21 Fernando Perez <fperez@colorado.edu>
2840 2005-01-21 Fernando Perez <fperez@colorado.edu>
2835
2841
2836 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2842 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2837 docstring under pylab so it doesn't mask the original.
2843 docstring under pylab so it doesn't mask the original.
2838
2844
2839 2005-01-21 *** Released version 0.6.7
2845 2005-01-21 *** Released version 0.6.7
2840
2846
2841 2005-01-21 Fernando Perez <fperez@colorado.edu>
2847 2005-01-21 Fernando Perez <fperez@colorado.edu>
2842
2848
2843 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2849 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2844 signal handling for win32 users in multithreaded mode.
2850 signal handling for win32 users in multithreaded mode.
2845
2851
2846 2005-01-17 Fernando Perez <fperez@colorado.edu>
2852 2005-01-17 Fernando Perez <fperez@colorado.edu>
2847
2853
2848 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2854 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2849 instances with no __init__. After a crash report by Norbert Nemec
2855 instances with no __init__. After a crash report by Norbert Nemec
2850 <Norbert-AT-nemec-online.de>.
2856 <Norbert-AT-nemec-online.de>.
2851
2857
2852 2005-01-14 Fernando Perez <fperez@colorado.edu>
2858 2005-01-14 Fernando Perez <fperez@colorado.edu>
2853
2859
2854 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2860 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2855 names for verbose exceptions, when multiple dotted names and the
2861 names for verbose exceptions, when multiple dotted names and the
2856 'parent' object were present on the same line.
2862 'parent' object were present on the same line.
2857
2863
2858 2005-01-11 Fernando Perez <fperez@colorado.edu>
2864 2005-01-11 Fernando Perez <fperez@colorado.edu>
2859
2865
2860 * IPython/genutils.py (flag_calls): new utility to trap and flag
2866 * IPython/genutils.py (flag_calls): new utility to trap and flag
2861 calls in functions. I need it to clean up matplotlib support.
2867 calls in functions. I need it to clean up matplotlib support.
2862 Also removed some deprecated code in genutils.
2868 Also removed some deprecated code in genutils.
2863
2869
2864 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2870 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2865 that matplotlib scripts called with %run, which don't call show()
2871 that matplotlib scripts called with %run, which don't call show()
2866 themselves, still have their plotting windows open.
2872 themselves, still have their plotting windows open.
2867
2873
2868 2005-01-05 Fernando Perez <fperez@colorado.edu>
2874 2005-01-05 Fernando Perez <fperez@colorado.edu>
2869
2875
2870 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2876 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2871 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2877 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2872
2878
2873 2004-12-19 Fernando Perez <fperez@colorado.edu>
2879 2004-12-19 Fernando Perez <fperez@colorado.edu>
2874
2880
2875 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2881 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2876 parent_runcode, which was an eyesore. The same result can be
2882 parent_runcode, which was an eyesore. The same result can be
2877 obtained with Python's regular superclass mechanisms.
2883 obtained with Python's regular superclass mechanisms.
2878
2884
2879 2004-12-17 Fernando Perez <fperez@colorado.edu>
2885 2004-12-17 Fernando Perez <fperez@colorado.edu>
2880
2886
2881 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2887 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2882 reported by Prabhu.
2888 reported by Prabhu.
2883 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2889 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2884 sys.stderr) instead of explicitly calling sys.stderr. This helps
2890 sys.stderr) instead of explicitly calling sys.stderr. This helps
2885 maintain our I/O abstractions clean, for future GUI embeddings.
2891 maintain our I/O abstractions clean, for future GUI embeddings.
2886
2892
2887 * IPython/genutils.py (info): added new utility for sys.stderr
2893 * IPython/genutils.py (info): added new utility for sys.stderr
2888 unified info message handling (thin wrapper around warn()).
2894 unified info message handling (thin wrapper around warn()).
2889
2895
2890 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2896 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2891 composite (dotted) names on verbose exceptions.
2897 composite (dotted) names on verbose exceptions.
2892 (VerboseTB.nullrepr): harden against another kind of errors which
2898 (VerboseTB.nullrepr): harden against another kind of errors which
2893 Python's inspect module can trigger, and which were crashing
2899 Python's inspect module can trigger, and which were crashing
2894 IPython. Thanks to a report by Marco Lombardi
2900 IPython. Thanks to a report by Marco Lombardi
2895 <mlombard-AT-ma010192.hq.eso.org>.
2901 <mlombard-AT-ma010192.hq.eso.org>.
2896
2902
2897 2004-12-13 *** Released version 0.6.6
2903 2004-12-13 *** Released version 0.6.6
2898
2904
2899 2004-12-12 Fernando Perez <fperez@colorado.edu>
2905 2004-12-12 Fernando Perez <fperez@colorado.edu>
2900
2906
2901 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2907 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2902 generated by pygtk upon initialization if it was built without
2908 generated by pygtk upon initialization if it was built without
2903 threads (for matplotlib users). After a crash reported by
2909 threads (for matplotlib users). After a crash reported by
2904 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2910 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2905
2911
2906 * IPython/ipmaker.py (make_IPython): fix small bug in the
2912 * IPython/ipmaker.py (make_IPython): fix small bug in the
2907 import_some parameter for multiple imports.
2913 import_some parameter for multiple imports.
2908
2914
2909 * IPython/iplib.py (ipmagic): simplified the interface of
2915 * IPython/iplib.py (ipmagic): simplified the interface of
2910 ipmagic() to take a single string argument, just as it would be
2916 ipmagic() to take a single string argument, just as it would be
2911 typed at the IPython cmd line.
2917 typed at the IPython cmd line.
2912 (ipalias): Added new ipalias() with an interface identical to
2918 (ipalias): Added new ipalias() with an interface identical to
2913 ipmagic(). This completes exposing a pure python interface to the
2919 ipmagic(). This completes exposing a pure python interface to the
2914 alias and magic system, which can be used in loops or more complex
2920 alias and magic system, which can be used in loops or more complex
2915 code where IPython's automatic line mangling is not active.
2921 code where IPython's automatic line mangling is not active.
2916
2922
2917 * IPython/genutils.py (timing): changed interface of timing to
2923 * IPython/genutils.py (timing): changed interface of timing to
2918 simply run code once, which is the most common case. timings()
2924 simply run code once, which is the most common case. timings()
2919 remains unchanged, for the cases where you want multiple runs.
2925 remains unchanged, for the cases where you want multiple runs.
2920
2926
2921 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2927 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2922 bug where Python2.2 crashes with exec'ing code which does not end
2928 bug where Python2.2 crashes with exec'ing code which does not end
2923 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2929 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2924 before.
2930 before.
2925
2931
2926 2004-12-10 Fernando Perez <fperez@colorado.edu>
2932 2004-12-10 Fernando Perez <fperez@colorado.edu>
2927
2933
2928 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2934 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2929 -t to -T, to accomodate the new -t flag in %run (the %run and
2935 -t to -T, to accomodate the new -t flag in %run (the %run and
2930 %prun options are kind of intermixed, and it's not easy to change
2936 %prun options are kind of intermixed, and it's not easy to change
2931 this with the limitations of python's getopt).
2937 this with the limitations of python's getopt).
2932
2938
2933 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2939 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2934 the execution of scripts. It's not as fine-tuned as timeit.py,
2940 the execution of scripts. It's not as fine-tuned as timeit.py,
2935 but it works from inside ipython (and under 2.2, which lacks
2941 but it works from inside ipython (and under 2.2, which lacks
2936 timeit.py). Optionally a number of runs > 1 can be given for
2942 timeit.py). Optionally a number of runs > 1 can be given for
2937 timing very short-running code.
2943 timing very short-running code.
2938
2944
2939 * IPython/genutils.py (uniq_stable): new routine which returns a
2945 * IPython/genutils.py (uniq_stable): new routine which returns a
2940 list of unique elements in any iterable, but in stable order of
2946 list of unique elements in any iterable, but in stable order of
2941 appearance. I needed this for the ultraTB fixes, and it's a handy
2947 appearance. I needed this for the ultraTB fixes, and it's a handy
2942 utility.
2948 utility.
2943
2949
2944 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2950 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2945 dotted names in Verbose exceptions. This had been broken since
2951 dotted names in Verbose exceptions. This had been broken since
2946 the very start, now x.y will properly be printed in a Verbose
2952 the very start, now x.y will properly be printed in a Verbose
2947 traceback, instead of x being shown and y appearing always as an
2953 traceback, instead of x being shown and y appearing always as an
2948 'undefined global'. Getting this to work was a bit tricky,
2954 'undefined global'. Getting this to work was a bit tricky,
2949 because by default python tokenizers are stateless. Saved by
2955 because by default python tokenizers are stateless. Saved by
2950 python's ability to easily add a bit of state to an arbitrary
2956 python's ability to easily add a bit of state to an arbitrary
2951 function (without needing to build a full-blown callable object).
2957 function (without needing to build a full-blown callable object).
2952
2958
2953 Also big cleanup of this code, which had horrendous runtime
2959 Also big cleanup of this code, which had horrendous runtime
2954 lookups of zillions of attributes for colorization. Moved all
2960 lookups of zillions of attributes for colorization. Moved all
2955 this code into a few templates, which make it cleaner and quicker.
2961 this code into a few templates, which make it cleaner and quicker.
2956
2962
2957 Printout quality was also improved for Verbose exceptions: one
2963 Printout quality was also improved for Verbose exceptions: one
2958 variable per line, and memory addresses are printed (this can be
2964 variable per line, and memory addresses are printed (this can be
2959 quite handy in nasty debugging situations, which is what Verbose
2965 quite handy in nasty debugging situations, which is what Verbose
2960 is for).
2966 is for).
2961
2967
2962 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2968 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2963 the command line as scripts to be loaded by embedded instances.
2969 the command line as scripts to be loaded by embedded instances.
2964 Doing so has the potential for an infinite recursion if there are
2970 Doing so has the potential for an infinite recursion if there are
2965 exceptions thrown in the process. This fixes a strange crash
2971 exceptions thrown in the process. This fixes a strange crash
2966 reported by Philippe MULLER <muller-AT-irit.fr>.
2972 reported by Philippe MULLER <muller-AT-irit.fr>.
2967
2973
2968 2004-12-09 Fernando Perez <fperez@colorado.edu>
2974 2004-12-09 Fernando Perez <fperez@colorado.edu>
2969
2975
2970 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2976 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2971 to reflect new names in matplotlib, which now expose the
2977 to reflect new names in matplotlib, which now expose the
2972 matlab-compatible interface via a pylab module instead of the
2978 matlab-compatible interface via a pylab module instead of the
2973 'matlab' name. The new code is backwards compatible, so users of
2979 'matlab' name. The new code is backwards compatible, so users of
2974 all matplotlib versions are OK. Patch by J. Hunter.
2980 all matplotlib versions are OK. Patch by J. Hunter.
2975
2981
2976 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2982 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2977 of __init__ docstrings for instances (class docstrings are already
2983 of __init__ docstrings for instances (class docstrings are already
2978 automatically printed). Instances with customized docstrings
2984 automatically printed). Instances with customized docstrings
2979 (indep. of the class) are also recognized and all 3 separate
2985 (indep. of the class) are also recognized and all 3 separate
2980 docstrings are printed (instance, class, constructor). After some
2986 docstrings are printed (instance, class, constructor). After some
2981 comments/suggestions by J. Hunter.
2987 comments/suggestions by J. Hunter.
2982
2988
2983 2004-12-05 Fernando Perez <fperez@colorado.edu>
2989 2004-12-05 Fernando Perez <fperez@colorado.edu>
2984
2990
2985 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2991 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2986 warnings when tab-completion fails and triggers an exception.
2992 warnings when tab-completion fails and triggers an exception.
2987
2993
2988 2004-12-03 Fernando Perez <fperez@colorado.edu>
2994 2004-12-03 Fernando Perez <fperez@colorado.edu>
2989
2995
2990 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2996 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2991 be triggered when using 'run -p'. An incorrect option flag was
2997 be triggered when using 'run -p'. An incorrect option flag was
2992 being set ('d' instead of 'D').
2998 being set ('d' instead of 'D').
2993 (manpage): fix missing escaped \- sign.
2999 (manpage): fix missing escaped \- sign.
2994
3000
2995 2004-11-30 *** Released version 0.6.5
3001 2004-11-30 *** Released version 0.6.5
2996
3002
2997 2004-11-30 Fernando Perez <fperez@colorado.edu>
3003 2004-11-30 Fernando Perez <fperez@colorado.edu>
2998
3004
2999 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3005 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3000 setting with -d option.
3006 setting with -d option.
3001
3007
3002 * setup.py (docfiles): Fix problem where the doc glob I was using
3008 * setup.py (docfiles): Fix problem where the doc glob I was using
3003 was COMPLETELY BROKEN. It was giving the right files by pure
3009 was COMPLETELY BROKEN. It was giving the right files by pure
3004 accident, but failed once I tried to include ipython.el. Note:
3010 accident, but failed once I tried to include ipython.el. Note:
3005 glob() does NOT allow you to do exclusion on multiple endings!
3011 glob() does NOT allow you to do exclusion on multiple endings!
3006
3012
3007 2004-11-29 Fernando Perez <fperez@colorado.edu>
3013 2004-11-29 Fernando Perez <fperez@colorado.edu>
3008
3014
3009 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3015 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3010 the manpage as the source. Better formatting & consistency.
3016 the manpage as the source. Better formatting & consistency.
3011
3017
3012 * IPython/Magic.py (magic_run): Added new -d option, to run
3018 * IPython/Magic.py (magic_run): Added new -d option, to run
3013 scripts under the control of the python pdb debugger. Note that
3019 scripts under the control of the python pdb debugger. Note that
3014 this required changing the %prun option -d to -D, to avoid a clash
3020 this required changing the %prun option -d to -D, to avoid a clash
3015 (since %run must pass options to %prun, and getopt is too dumb to
3021 (since %run must pass options to %prun, and getopt is too dumb to
3016 handle options with string values with embedded spaces). Thanks
3022 handle options with string values with embedded spaces). Thanks
3017 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3023 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3018 (magic_who_ls): added type matching to %who and %whos, so that one
3024 (magic_who_ls): added type matching to %who and %whos, so that one
3019 can filter their output to only include variables of certain
3025 can filter their output to only include variables of certain
3020 types. Another suggestion by Matthew.
3026 types. Another suggestion by Matthew.
3021 (magic_whos): Added memory summaries in kb and Mb for arrays.
3027 (magic_whos): Added memory summaries in kb and Mb for arrays.
3022 (magic_who): Improve formatting (break lines every 9 vars).
3028 (magic_who): Improve formatting (break lines every 9 vars).
3023
3029
3024 2004-11-28 Fernando Perez <fperez@colorado.edu>
3030 2004-11-28 Fernando Perez <fperez@colorado.edu>
3025
3031
3026 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3032 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3027 cache when empty lines were present.
3033 cache when empty lines were present.
3028
3034
3029 2004-11-24 Fernando Perez <fperez@colorado.edu>
3035 2004-11-24 Fernando Perez <fperez@colorado.edu>
3030
3036
3031 * IPython/usage.py (__doc__): document the re-activated threading
3037 * IPython/usage.py (__doc__): document the re-activated threading
3032 options for WX and GTK.
3038 options for WX and GTK.
3033
3039
3034 2004-11-23 Fernando Perez <fperez@colorado.edu>
3040 2004-11-23 Fernando Perez <fperez@colorado.edu>
3035
3041
3036 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3042 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3037 the -wthread and -gthread options, along with a new -tk one to try
3043 the -wthread and -gthread options, along with a new -tk one to try
3038 and coordinate Tk threading with wx/gtk. The tk support is very
3044 and coordinate Tk threading with wx/gtk. The tk support is very
3039 platform dependent, since it seems to require Tcl and Tk to be
3045 platform dependent, since it seems to require Tcl and Tk to be
3040 built with threads (Fedora1/2 appears NOT to have it, but in
3046 built with threads (Fedora1/2 appears NOT to have it, but in
3041 Prabhu's Debian boxes it works OK). But even with some Tk
3047 Prabhu's Debian boxes it works OK). But even with some Tk
3042 limitations, this is a great improvement.
3048 limitations, this is a great improvement.
3043
3049
3044 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3050 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3045 info in user prompts. Patch by Prabhu.
3051 info in user prompts. Patch by Prabhu.
3046
3052
3047 2004-11-18 Fernando Perez <fperez@colorado.edu>
3053 2004-11-18 Fernando Perez <fperez@colorado.edu>
3048
3054
3049 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3055 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3050 EOFErrors and bail, to avoid infinite loops if a non-terminating
3056 EOFErrors and bail, to avoid infinite loops if a non-terminating
3051 file is fed into ipython. Patch submitted in issue 19 by user,
3057 file is fed into ipython. Patch submitted in issue 19 by user,
3052 many thanks.
3058 many thanks.
3053
3059
3054 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3060 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3055 autoquote/parens in continuation prompts, which can cause lots of
3061 autoquote/parens in continuation prompts, which can cause lots of
3056 problems. Closes roundup issue 20.
3062 problems. Closes roundup issue 20.
3057
3063
3058 2004-11-17 Fernando Perez <fperez@colorado.edu>
3064 2004-11-17 Fernando Perez <fperez@colorado.edu>
3059
3065
3060 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3066 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3061 reported as debian bug #280505. I'm not sure my local changelog
3067 reported as debian bug #280505. I'm not sure my local changelog
3062 entry has the proper debian format (Jack?).
3068 entry has the proper debian format (Jack?).
3063
3069
3064 2004-11-08 *** Released version 0.6.4
3070 2004-11-08 *** Released version 0.6.4
3065
3071
3066 2004-11-08 Fernando Perez <fperez@colorado.edu>
3072 2004-11-08 Fernando Perez <fperez@colorado.edu>
3067
3073
3068 * IPython/iplib.py (init_readline): Fix exit message for Windows
3074 * IPython/iplib.py (init_readline): Fix exit message for Windows
3069 when readline is active. Thanks to a report by Eric Jones
3075 when readline is active. Thanks to a report by Eric Jones
3070 <eric-AT-enthought.com>.
3076 <eric-AT-enthought.com>.
3071
3077
3072 2004-11-07 Fernando Perez <fperez@colorado.edu>
3078 2004-11-07 Fernando Perez <fperez@colorado.edu>
3073
3079
3074 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3080 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3075 sometimes seen by win2k/cygwin users.
3081 sometimes seen by win2k/cygwin users.
3076
3082
3077 2004-11-06 Fernando Perez <fperez@colorado.edu>
3083 2004-11-06 Fernando Perez <fperez@colorado.edu>
3078
3084
3079 * IPython/iplib.py (interact): Change the handling of %Exit from
3085 * IPython/iplib.py (interact): Change the handling of %Exit from
3080 trying to propagate a SystemExit to an internal ipython flag.
3086 trying to propagate a SystemExit to an internal ipython flag.
3081 This is less elegant than using Python's exception mechanism, but
3087 This is less elegant than using Python's exception mechanism, but
3082 I can't get that to work reliably with threads, so under -pylab
3088 I can't get that to work reliably with threads, so under -pylab
3083 %Exit was hanging IPython. Cross-thread exception handling is
3089 %Exit was hanging IPython. Cross-thread exception handling is
3084 really a bitch. Thaks to a bug report by Stephen Walton
3090 really a bitch. Thaks to a bug report by Stephen Walton
3085 <stephen.walton-AT-csun.edu>.
3091 <stephen.walton-AT-csun.edu>.
3086
3092
3087 2004-11-04 Fernando Perez <fperez@colorado.edu>
3093 2004-11-04 Fernando Perez <fperez@colorado.edu>
3088
3094
3089 * IPython/iplib.py (raw_input_original): store a pointer to the
3095 * IPython/iplib.py (raw_input_original): store a pointer to the
3090 true raw_input to harden against code which can modify it
3096 true raw_input to harden against code which can modify it
3091 (wx.py.PyShell does this and would otherwise crash ipython).
3097 (wx.py.PyShell does this and would otherwise crash ipython).
3092 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3098 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3093
3099
3094 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3100 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3095 Ctrl-C problem, which does not mess up the input line.
3101 Ctrl-C problem, which does not mess up the input line.
3096
3102
3097 2004-11-03 Fernando Perez <fperez@colorado.edu>
3103 2004-11-03 Fernando Perez <fperez@colorado.edu>
3098
3104
3099 * IPython/Release.py: Changed licensing to BSD, in all files.
3105 * IPython/Release.py: Changed licensing to BSD, in all files.
3100 (name): lowercase name for tarball/RPM release.
3106 (name): lowercase name for tarball/RPM release.
3101
3107
3102 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3108 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3103 use throughout ipython.
3109 use throughout ipython.
3104
3110
3105 * IPython/Magic.py (Magic._ofind): Switch to using the new
3111 * IPython/Magic.py (Magic._ofind): Switch to using the new
3106 OInspect.getdoc() function.
3112 OInspect.getdoc() function.
3107
3113
3108 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3114 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3109 of the line currently being canceled via Ctrl-C. It's extremely
3115 of the line currently being canceled via Ctrl-C. It's extremely
3110 ugly, but I don't know how to do it better (the problem is one of
3116 ugly, but I don't know how to do it better (the problem is one of
3111 handling cross-thread exceptions).
3117 handling cross-thread exceptions).
3112
3118
3113 2004-10-28 Fernando Perez <fperez@colorado.edu>
3119 2004-10-28 Fernando Perez <fperez@colorado.edu>
3114
3120
3115 * IPython/Shell.py (signal_handler): add signal handlers to trap
3121 * IPython/Shell.py (signal_handler): add signal handlers to trap
3116 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3122 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3117 report by Francesc Alted.
3123 report by Francesc Alted.
3118
3124
3119 2004-10-21 Fernando Perez <fperez@colorado.edu>
3125 2004-10-21 Fernando Perez <fperez@colorado.edu>
3120
3126
3121 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3127 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3122 to % for pysh syntax extensions.
3128 to % for pysh syntax extensions.
3123
3129
3124 2004-10-09 Fernando Perez <fperez@colorado.edu>
3130 2004-10-09 Fernando Perez <fperez@colorado.edu>
3125
3131
3126 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3132 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3127 arrays to print a more useful summary, without calling str(arr).
3133 arrays to print a more useful summary, without calling str(arr).
3128 This avoids the problem of extremely lengthy computations which
3134 This avoids the problem of extremely lengthy computations which
3129 occur if arr is large, and appear to the user as a system lockup
3135 occur if arr is large, and appear to the user as a system lockup
3130 with 100% cpu activity. After a suggestion by Kristian Sandberg
3136 with 100% cpu activity. After a suggestion by Kristian Sandberg
3131 <Kristian.Sandberg@colorado.edu>.
3137 <Kristian.Sandberg@colorado.edu>.
3132 (Magic.__init__): fix bug in global magic escapes not being
3138 (Magic.__init__): fix bug in global magic escapes not being
3133 correctly set.
3139 correctly set.
3134
3140
3135 2004-10-08 Fernando Perez <fperez@colorado.edu>
3141 2004-10-08 Fernando Perez <fperez@colorado.edu>
3136
3142
3137 * IPython/Magic.py (__license__): change to absolute imports of
3143 * IPython/Magic.py (__license__): change to absolute imports of
3138 ipython's own internal packages, to start adapting to the absolute
3144 ipython's own internal packages, to start adapting to the absolute
3139 import requirement of PEP-328.
3145 import requirement of PEP-328.
3140
3146
3141 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3147 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3142 files, and standardize author/license marks through the Release
3148 files, and standardize author/license marks through the Release
3143 module instead of having per/file stuff (except for files with
3149 module instead of having per/file stuff (except for files with
3144 particular licenses, like the MIT/PSF-licensed codes).
3150 particular licenses, like the MIT/PSF-licensed codes).
3145
3151
3146 * IPython/Debugger.py: remove dead code for python 2.1
3152 * IPython/Debugger.py: remove dead code for python 2.1
3147
3153
3148 2004-10-04 Fernando Perez <fperez@colorado.edu>
3154 2004-10-04 Fernando Perez <fperez@colorado.edu>
3149
3155
3150 * IPython/iplib.py (ipmagic): New function for accessing magics
3156 * IPython/iplib.py (ipmagic): New function for accessing magics
3151 via a normal python function call.
3157 via a normal python function call.
3152
3158
3153 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3159 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3154 from '@' to '%', to accomodate the new @decorator syntax of python
3160 from '@' to '%', to accomodate the new @decorator syntax of python
3155 2.4.
3161 2.4.
3156
3162
3157 2004-09-29 Fernando Perez <fperez@colorado.edu>
3163 2004-09-29 Fernando Perez <fperez@colorado.edu>
3158
3164
3159 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3165 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3160 matplotlib.use to prevent running scripts which try to switch
3166 matplotlib.use to prevent running scripts which try to switch
3161 interactive backends from within ipython. This will just crash
3167 interactive backends from within ipython. This will just crash
3162 the python interpreter, so we can't allow it (but a detailed error
3168 the python interpreter, so we can't allow it (but a detailed error
3163 is given to the user).
3169 is given to the user).
3164
3170
3165 2004-09-28 Fernando Perez <fperez@colorado.edu>
3171 2004-09-28 Fernando Perez <fperez@colorado.edu>
3166
3172
3167 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3173 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3168 matplotlib-related fixes so that using @run with non-matplotlib
3174 matplotlib-related fixes so that using @run with non-matplotlib
3169 scripts doesn't pop up spurious plot windows. This requires
3175 scripts doesn't pop up spurious plot windows. This requires
3170 matplotlib >= 0.63, where I had to make some changes as well.
3176 matplotlib >= 0.63, where I had to make some changes as well.
3171
3177
3172 * IPython/ipmaker.py (make_IPython): update version requirement to
3178 * IPython/ipmaker.py (make_IPython): update version requirement to
3173 python 2.2.
3179 python 2.2.
3174
3180
3175 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3181 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3176 banner arg for embedded customization.
3182 banner arg for embedded customization.
3177
3183
3178 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3184 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3179 explicit uses of __IP as the IPython's instance name. Now things
3185 explicit uses of __IP as the IPython's instance name. Now things
3180 are properly handled via the shell.name value. The actual code
3186 are properly handled via the shell.name value. The actual code
3181 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3187 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3182 is much better than before. I'll clean things completely when the
3188 is much better than before. I'll clean things completely when the
3183 magic stuff gets a real overhaul.
3189 magic stuff gets a real overhaul.
3184
3190
3185 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3191 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3186 minor changes to debian dir.
3192 minor changes to debian dir.
3187
3193
3188 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3194 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3189 pointer to the shell itself in the interactive namespace even when
3195 pointer to the shell itself in the interactive namespace even when
3190 a user-supplied dict is provided. This is needed for embedding
3196 a user-supplied dict is provided. This is needed for embedding
3191 purposes (found by tests with Michel Sanner).
3197 purposes (found by tests with Michel Sanner).
3192
3198
3193 2004-09-27 Fernando Perez <fperez@colorado.edu>
3199 2004-09-27 Fernando Perez <fperez@colorado.edu>
3194
3200
3195 * IPython/UserConfig/ipythonrc: remove []{} from
3201 * IPython/UserConfig/ipythonrc: remove []{} from
3196 readline_remove_delims, so that things like [modname.<TAB> do
3202 readline_remove_delims, so that things like [modname.<TAB> do
3197 proper completion. This disables [].TAB, but that's a less common
3203 proper completion. This disables [].TAB, but that's a less common
3198 case than module names in list comprehensions, for example.
3204 case than module names in list comprehensions, for example.
3199 Thanks to a report by Andrea Riciputi.
3205 Thanks to a report by Andrea Riciputi.
3200
3206
3201 2004-09-09 Fernando Perez <fperez@colorado.edu>
3207 2004-09-09 Fernando Perez <fperez@colorado.edu>
3202
3208
3203 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3209 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3204 blocking problems in win32 and osx. Fix by John.
3210 blocking problems in win32 and osx. Fix by John.
3205
3211
3206 2004-09-08 Fernando Perez <fperez@colorado.edu>
3212 2004-09-08 Fernando Perez <fperez@colorado.edu>
3207
3213
3208 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3214 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3209 for Win32 and OSX. Fix by John Hunter.
3215 for Win32 and OSX. Fix by John Hunter.
3210
3216
3211 2004-08-30 *** Released version 0.6.3
3217 2004-08-30 *** Released version 0.6.3
3212
3218
3213 2004-08-30 Fernando Perez <fperez@colorado.edu>
3219 2004-08-30 Fernando Perez <fperez@colorado.edu>
3214
3220
3215 * setup.py (isfile): Add manpages to list of dependent files to be
3221 * setup.py (isfile): Add manpages to list of dependent files to be
3216 updated.
3222 updated.
3217
3223
3218 2004-08-27 Fernando Perez <fperez@colorado.edu>
3224 2004-08-27 Fernando Perez <fperez@colorado.edu>
3219
3225
3220 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3226 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3221 for now. They don't really work with standalone WX/GTK code
3227 for now. They don't really work with standalone WX/GTK code
3222 (though matplotlib IS working fine with both of those backends).
3228 (though matplotlib IS working fine with both of those backends).
3223 This will neeed much more testing. I disabled most things with
3229 This will neeed much more testing. I disabled most things with
3224 comments, so turning it back on later should be pretty easy.
3230 comments, so turning it back on later should be pretty easy.
3225
3231
3226 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3232 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3227 autocalling of expressions like r'foo', by modifying the line
3233 autocalling of expressions like r'foo', by modifying the line
3228 split regexp. Closes
3234 split regexp. Closes
3229 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3235 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3230 Riley <ipythonbugs-AT-sabi.net>.
3236 Riley <ipythonbugs-AT-sabi.net>.
3231 (InteractiveShell.mainloop): honor --nobanner with banner
3237 (InteractiveShell.mainloop): honor --nobanner with banner
3232 extensions.
3238 extensions.
3233
3239
3234 * IPython/Shell.py: Significant refactoring of all classes, so
3240 * IPython/Shell.py: Significant refactoring of all classes, so
3235 that we can really support ALL matplotlib backends and threading
3241 that we can really support ALL matplotlib backends and threading
3236 models (John spotted a bug with Tk which required this). Now we
3242 models (John spotted a bug with Tk which required this). Now we
3237 should support single-threaded, WX-threads and GTK-threads, both
3243 should support single-threaded, WX-threads and GTK-threads, both
3238 for generic code and for matplotlib.
3244 for generic code and for matplotlib.
3239
3245
3240 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3246 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3241 -pylab, to simplify things for users. Will also remove the pylab
3247 -pylab, to simplify things for users. Will also remove the pylab
3242 profile, since now all of matplotlib configuration is directly
3248 profile, since now all of matplotlib configuration is directly
3243 handled here. This also reduces startup time.
3249 handled here. This also reduces startup time.
3244
3250
3245 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3251 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3246 shell wasn't being correctly called. Also in IPShellWX.
3252 shell wasn't being correctly called. Also in IPShellWX.
3247
3253
3248 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3254 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3249 fine-tune banner.
3255 fine-tune banner.
3250
3256
3251 * IPython/numutils.py (spike): Deprecate these spike functions,
3257 * IPython/numutils.py (spike): Deprecate these spike functions,
3252 delete (long deprecated) gnuplot_exec handler.
3258 delete (long deprecated) gnuplot_exec handler.
3253
3259
3254 2004-08-26 Fernando Perez <fperez@colorado.edu>
3260 2004-08-26 Fernando Perez <fperez@colorado.edu>
3255
3261
3256 * ipython.1: Update for threading options, plus some others which
3262 * ipython.1: Update for threading options, plus some others which
3257 were missing.
3263 were missing.
3258
3264
3259 * IPython/ipmaker.py (__call__): Added -wthread option for
3265 * IPython/ipmaker.py (__call__): Added -wthread option for
3260 wxpython thread handling. Make sure threading options are only
3266 wxpython thread handling. Make sure threading options are only
3261 valid at the command line.
3267 valid at the command line.
3262
3268
3263 * scripts/ipython: moved shell selection into a factory function
3269 * scripts/ipython: moved shell selection into a factory function
3264 in Shell.py, to keep the starter script to a minimum.
3270 in Shell.py, to keep the starter script to a minimum.
3265
3271
3266 2004-08-25 Fernando Perez <fperez@colorado.edu>
3272 2004-08-25 Fernando Perez <fperez@colorado.edu>
3267
3273
3268 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3274 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3269 John. Along with some recent changes he made to matplotlib, the
3275 John. Along with some recent changes he made to matplotlib, the
3270 next versions of both systems should work very well together.
3276 next versions of both systems should work very well together.
3271
3277
3272 2004-08-24 Fernando Perez <fperez@colorado.edu>
3278 2004-08-24 Fernando Perez <fperez@colorado.edu>
3273
3279
3274 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3280 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3275 tried to switch the profiling to using hotshot, but I'm getting
3281 tried to switch the profiling to using hotshot, but I'm getting
3276 strange errors from prof.runctx() there. I may be misreading the
3282 strange errors from prof.runctx() there. I may be misreading the
3277 docs, but it looks weird. For now the profiling code will
3283 docs, but it looks weird. For now the profiling code will
3278 continue to use the standard profiler.
3284 continue to use the standard profiler.
3279
3285
3280 2004-08-23 Fernando Perez <fperez@colorado.edu>
3286 2004-08-23 Fernando Perez <fperez@colorado.edu>
3281
3287
3282 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3288 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3283 threaded shell, by John Hunter. It's not quite ready yet, but
3289 threaded shell, by John Hunter. It's not quite ready yet, but
3284 close.
3290 close.
3285
3291
3286 2004-08-22 Fernando Perez <fperez@colorado.edu>
3292 2004-08-22 Fernando Perez <fperez@colorado.edu>
3287
3293
3288 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3294 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3289 in Magic and ultraTB.
3295 in Magic and ultraTB.
3290
3296
3291 * ipython.1: document threading options in manpage.
3297 * ipython.1: document threading options in manpage.
3292
3298
3293 * scripts/ipython: Changed name of -thread option to -gthread,
3299 * scripts/ipython: Changed name of -thread option to -gthread,
3294 since this is GTK specific. I want to leave the door open for a
3300 since this is GTK specific. I want to leave the door open for a
3295 -wthread option for WX, which will most likely be necessary. This
3301 -wthread option for WX, which will most likely be necessary. This
3296 change affects usage and ipmaker as well.
3302 change affects usage and ipmaker as well.
3297
3303
3298 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3304 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3299 handle the matplotlib shell issues. Code by John Hunter
3305 handle the matplotlib shell issues. Code by John Hunter
3300 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3306 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3301 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3307 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3302 broken (and disabled for end users) for now, but it puts the
3308 broken (and disabled for end users) for now, but it puts the
3303 infrastructure in place.
3309 infrastructure in place.
3304
3310
3305 2004-08-21 Fernando Perez <fperez@colorado.edu>
3311 2004-08-21 Fernando Perez <fperez@colorado.edu>
3306
3312
3307 * ipythonrc-pylab: Add matplotlib support.
3313 * ipythonrc-pylab: Add matplotlib support.
3308
3314
3309 * matplotlib_config.py: new files for matplotlib support, part of
3315 * matplotlib_config.py: new files for matplotlib support, part of
3310 the pylab profile.
3316 the pylab profile.
3311
3317
3312 * IPython/usage.py (__doc__): documented the threading options.
3318 * IPython/usage.py (__doc__): documented the threading options.
3313
3319
3314 2004-08-20 Fernando Perez <fperez@colorado.edu>
3320 2004-08-20 Fernando Perez <fperez@colorado.edu>
3315
3321
3316 * ipython: Modified the main calling routine to handle the -thread
3322 * ipython: Modified the main calling routine to handle the -thread
3317 and -mpthread options. This needs to be done as a top-level hack,
3323 and -mpthread options. This needs to be done as a top-level hack,
3318 because it determines which class to instantiate for IPython
3324 because it determines which class to instantiate for IPython
3319 itself.
3325 itself.
3320
3326
3321 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3327 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3322 classes to support multithreaded GTK operation without blocking,
3328 classes to support multithreaded GTK operation without blocking,
3323 and matplotlib with all backends. This is a lot of still very
3329 and matplotlib with all backends. This is a lot of still very
3324 experimental code, and threads are tricky. So it may still have a
3330 experimental code, and threads are tricky. So it may still have a
3325 few rough edges... This code owes a lot to
3331 few rough edges... This code owes a lot to
3326 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3332 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3327 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3333 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3328 to John Hunter for all the matplotlib work.
3334 to John Hunter for all the matplotlib work.
3329
3335
3330 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3336 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3331 options for gtk thread and matplotlib support.
3337 options for gtk thread and matplotlib support.
3332
3338
3333 2004-08-16 Fernando Perez <fperez@colorado.edu>
3339 2004-08-16 Fernando Perez <fperez@colorado.edu>
3334
3340
3335 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3341 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3336 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3342 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3337 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3343 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3338
3344
3339 2004-08-11 Fernando Perez <fperez@colorado.edu>
3345 2004-08-11 Fernando Perez <fperez@colorado.edu>
3340
3346
3341 * setup.py (isfile): Fix build so documentation gets updated for
3347 * setup.py (isfile): Fix build so documentation gets updated for
3342 rpms (it was only done for .tgz builds).
3348 rpms (it was only done for .tgz builds).
3343
3349
3344 2004-08-10 Fernando Perez <fperez@colorado.edu>
3350 2004-08-10 Fernando Perez <fperez@colorado.edu>
3345
3351
3346 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3352 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3347
3353
3348 * iplib.py : Silence syntax error exceptions in tab-completion.
3354 * iplib.py : Silence syntax error exceptions in tab-completion.
3349
3355
3350 2004-08-05 Fernando Perez <fperez@colorado.edu>
3356 2004-08-05 Fernando Perez <fperez@colorado.edu>
3351
3357
3352 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3358 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3353 'color off' mark for continuation prompts. This was causing long
3359 'color off' mark for continuation prompts. This was causing long
3354 continuation lines to mis-wrap.
3360 continuation lines to mis-wrap.
3355
3361
3356 2004-08-01 Fernando Perez <fperez@colorado.edu>
3362 2004-08-01 Fernando Perez <fperez@colorado.edu>
3357
3363
3358 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3364 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3359 for building ipython to be a parameter. All this is necessary
3365 for building ipython to be a parameter. All this is necessary
3360 right now to have a multithreaded version, but this insane
3366 right now to have a multithreaded version, but this insane
3361 non-design will be cleaned up soon. For now, it's a hack that
3367 non-design will be cleaned up soon. For now, it's a hack that
3362 works.
3368 works.
3363
3369
3364 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3370 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3365 args in various places. No bugs so far, but it's a dangerous
3371 args in various places. No bugs so far, but it's a dangerous
3366 practice.
3372 practice.
3367
3373
3368 2004-07-31 Fernando Perez <fperez@colorado.edu>
3374 2004-07-31 Fernando Perez <fperez@colorado.edu>
3369
3375
3370 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3376 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3371 fix completion of files with dots in their names under most
3377 fix completion of files with dots in their names under most
3372 profiles (pysh was OK because the completion order is different).
3378 profiles (pysh was OK because the completion order is different).
3373
3379
3374 2004-07-27 Fernando Perez <fperez@colorado.edu>
3380 2004-07-27 Fernando Perez <fperez@colorado.edu>
3375
3381
3376 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3382 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3377 keywords manually, b/c the one in keyword.py was removed in python
3383 keywords manually, b/c the one in keyword.py was removed in python
3378 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3384 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3379 This is NOT a bug under python 2.3 and earlier.
3385 This is NOT a bug under python 2.3 and earlier.
3380
3386
3381 2004-07-26 Fernando Perez <fperez@colorado.edu>
3387 2004-07-26 Fernando Perez <fperez@colorado.edu>
3382
3388
3383 * IPython/ultraTB.py (VerboseTB.text): Add another
3389 * IPython/ultraTB.py (VerboseTB.text): Add another
3384 linecache.checkcache() call to try to prevent inspect.py from
3390 linecache.checkcache() call to try to prevent inspect.py from
3385 crashing under python 2.3. I think this fixes
3391 crashing under python 2.3. I think this fixes
3386 http://www.scipy.net/roundup/ipython/issue17.
3392 http://www.scipy.net/roundup/ipython/issue17.
3387
3393
3388 2004-07-26 *** Released version 0.6.2
3394 2004-07-26 *** Released version 0.6.2
3389
3395
3390 2004-07-26 Fernando Perez <fperez@colorado.edu>
3396 2004-07-26 Fernando Perez <fperez@colorado.edu>
3391
3397
3392 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3398 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3393 fail for any number.
3399 fail for any number.
3394 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3400 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3395 empty bookmarks.
3401 empty bookmarks.
3396
3402
3397 2004-07-26 *** Released version 0.6.1
3403 2004-07-26 *** Released version 0.6.1
3398
3404
3399 2004-07-26 Fernando Perez <fperez@colorado.edu>
3405 2004-07-26 Fernando Perez <fperez@colorado.edu>
3400
3406
3401 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3407 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3402
3408
3403 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3409 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3404 escaping '()[]{}' in filenames.
3410 escaping '()[]{}' in filenames.
3405
3411
3406 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3412 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3407 Python 2.2 users who lack a proper shlex.split.
3413 Python 2.2 users who lack a proper shlex.split.
3408
3414
3409 2004-07-19 Fernando Perez <fperez@colorado.edu>
3415 2004-07-19 Fernando Perez <fperez@colorado.edu>
3410
3416
3411 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3417 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3412 for reading readline's init file. I follow the normal chain:
3418 for reading readline's init file. I follow the normal chain:
3413 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3419 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3414 report by Mike Heeter. This closes
3420 report by Mike Heeter. This closes
3415 http://www.scipy.net/roundup/ipython/issue16.
3421 http://www.scipy.net/roundup/ipython/issue16.
3416
3422
3417 2004-07-18 Fernando Perez <fperez@colorado.edu>
3423 2004-07-18 Fernando Perez <fperez@colorado.edu>
3418
3424
3419 * IPython/iplib.py (__init__): Add better handling of '\' under
3425 * IPython/iplib.py (__init__): Add better handling of '\' under
3420 Win32 for filenames. After a patch by Ville.
3426 Win32 for filenames. After a patch by Ville.
3421
3427
3422 2004-07-17 Fernando Perez <fperez@colorado.edu>
3428 2004-07-17 Fernando Perez <fperez@colorado.edu>
3423
3429
3424 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3430 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3425 autocalling would be triggered for 'foo is bar' if foo is
3431 autocalling would be triggered for 'foo is bar' if foo is
3426 callable. I also cleaned up the autocall detection code to use a
3432 callable. I also cleaned up the autocall detection code to use a
3427 regexp, which is faster. Bug reported by Alexander Schmolck.
3433 regexp, which is faster. Bug reported by Alexander Schmolck.
3428
3434
3429 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3435 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3430 '?' in them would confuse the help system. Reported by Alex
3436 '?' in them would confuse the help system. Reported by Alex
3431 Schmolck.
3437 Schmolck.
3432
3438
3433 2004-07-16 Fernando Perez <fperez@colorado.edu>
3439 2004-07-16 Fernando Perez <fperez@colorado.edu>
3434
3440
3435 * IPython/GnuplotInteractive.py (__all__): added plot2.
3441 * IPython/GnuplotInteractive.py (__all__): added plot2.
3436
3442
3437 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3443 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3438 plotting dictionaries, lists or tuples of 1d arrays.
3444 plotting dictionaries, lists or tuples of 1d arrays.
3439
3445
3440 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3446 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3441 optimizations.
3447 optimizations.
3442
3448
3443 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3449 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3444 the information which was there from Janko's original IPP code:
3450 the information which was there from Janko's original IPP code:
3445
3451
3446 03.05.99 20:53 porto.ifm.uni-kiel.de
3452 03.05.99 20:53 porto.ifm.uni-kiel.de
3447 --Started changelog.
3453 --Started changelog.
3448 --make clear do what it say it does
3454 --make clear do what it say it does
3449 --added pretty output of lines from inputcache
3455 --added pretty output of lines from inputcache
3450 --Made Logger a mixin class, simplifies handling of switches
3456 --Made Logger a mixin class, simplifies handling of switches
3451 --Added own completer class. .string<TAB> expands to last history
3457 --Added own completer class. .string<TAB> expands to last history
3452 line which starts with string. The new expansion is also present
3458 line which starts with string. The new expansion is also present
3453 with Ctrl-r from the readline library. But this shows, who this
3459 with Ctrl-r from the readline library. But this shows, who this
3454 can be done for other cases.
3460 can be done for other cases.
3455 --Added convention that all shell functions should accept a
3461 --Added convention that all shell functions should accept a
3456 parameter_string This opens the door for different behaviour for
3462 parameter_string This opens the door for different behaviour for
3457 each function. @cd is a good example of this.
3463 each function. @cd is a good example of this.
3458
3464
3459 04.05.99 12:12 porto.ifm.uni-kiel.de
3465 04.05.99 12:12 porto.ifm.uni-kiel.de
3460 --added logfile rotation
3466 --added logfile rotation
3461 --added new mainloop method which freezes first the namespace
3467 --added new mainloop method which freezes first the namespace
3462
3468
3463 07.05.99 21:24 porto.ifm.uni-kiel.de
3469 07.05.99 21:24 porto.ifm.uni-kiel.de
3464 --added the docreader classes. Now there is a help system.
3470 --added the docreader classes. Now there is a help system.
3465 -This is only a first try. Currently it's not easy to put new
3471 -This is only a first try. Currently it's not easy to put new
3466 stuff in the indices. But this is the way to go. Info would be
3472 stuff in the indices. But this is the way to go. Info would be
3467 better, but HTML is every where and not everybody has an info
3473 better, but HTML is every where and not everybody has an info
3468 system installed and it's not so easy to change html-docs to info.
3474 system installed and it's not so easy to change html-docs to info.
3469 --added global logfile option
3475 --added global logfile option
3470 --there is now a hook for object inspection method pinfo needs to
3476 --there is now a hook for object inspection method pinfo needs to
3471 be provided for this. Can be reached by two '??'.
3477 be provided for this. Can be reached by two '??'.
3472
3478
3473 08.05.99 20:51 porto.ifm.uni-kiel.de
3479 08.05.99 20:51 porto.ifm.uni-kiel.de
3474 --added a README
3480 --added a README
3475 --bug in rc file. Something has changed so functions in the rc
3481 --bug in rc file. Something has changed so functions in the rc
3476 file need to reference the shell and not self. Not clear if it's a
3482 file need to reference the shell and not self. Not clear if it's a
3477 bug or feature.
3483 bug or feature.
3478 --changed rc file for new behavior
3484 --changed rc file for new behavior
3479
3485
3480 2004-07-15 Fernando Perez <fperez@colorado.edu>
3486 2004-07-15 Fernando Perez <fperez@colorado.edu>
3481
3487
3482 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3488 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3483 cache was falling out of sync in bizarre manners when multi-line
3489 cache was falling out of sync in bizarre manners when multi-line
3484 input was present. Minor optimizations and cleanup.
3490 input was present. Minor optimizations and cleanup.
3485
3491
3486 (Logger): Remove old Changelog info for cleanup. This is the
3492 (Logger): Remove old Changelog info for cleanup. This is the
3487 information which was there from Janko's original code:
3493 information which was there from Janko's original code:
3488
3494
3489 Changes to Logger: - made the default log filename a parameter
3495 Changes to Logger: - made the default log filename a parameter
3490
3496
3491 - put a check for lines beginning with !@? in log(). Needed
3497 - put a check for lines beginning with !@? in log(). Needed
3492 (even if the handlers properly log their lines) for mid-session
3498 (even if the handlers properly log their lines) for mid-session
3493 logging activation to work properly. Without this, lines logged
3499 logging activation to work properly. Without this, lines logged
3494 in mid session, which get read from the cache, would end up
3500 in mid session, which get read from the cache, would end up
3495 'bare' (with !@? in the open) in the log. Now they are caught
3501 'bare' (with !@? in the open) in the log. Now they are caught
3496 and prepended with a #.
3502 and prepended with a #.
3497
3503
3498 * IPython/iplib.py (InteractiveShell.init_readline): added check
3504 * IPython/iplib.py (InteractiveShell.init_readline): added check
3499 in case MagicCompleter fails to be defined, so we don't crash.
3505 in case MagicCompleter fails to be defined, so we don't crash.
3500
3506
3501 2004-07-13 Fernando Perez <fperez@colorado.edu>
3507 2004-07-13 Fernando Perez <fperez@colorado.edu>
3502
3508
3503 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3509 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3504 of EPS if the requested filename ends in '.eps'.
3510 of EPS if the requested filename ends in '.eps'.
3505
3511
3506 2004-07-04 Fernando Perez <fperez@colorado.edu>
3512 2004-07-04 Fernando Perez <fperez@colorado.edu>
3507
3513
3508 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3514 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3509 escaping of quotes when calling the shell.
3515 escaping of quotes when calling the shell.
3510
3516
3511 2004-07-02 Fernando Perez <fperez@colorado.edu>
3517 2004-07-02 Fernando Perez <fperez@colorado.edu>
3512
3518
3513 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3519 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3514 gettext not working because we were clobbering '_'. Fixes
3520 gettext not working because we were clobbering '_'. Fixes
3515 http://www.scipy.net/roundup/ipython/issue6.
3521 http://www.scipy.net/roundup/ipython/issue6.
3516
3522
3517 2004-07-01 Fernando Perez <fperez@colorado.edu>
3523 2004-07-01 Fernando Perez <fperez@colorado.edu>
3518
3524
3519 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3525 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3520 into @cd. Patch by Ville.
3526 into @cd. Patch by Ville.
3521
3527
3522 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3528 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3523 new function to store things after ipmaker runs. Patch by Ville.
3529 new function to store things after ipmaker runs. Patch by Ville.
3524 Eventually this will go away once ipmaker is removed and the class
3530 Eventually this will go away once ipmaker is removed and the class
3525 gets cleaned up, but for now it's ok. Key functionality here is
3531 gets cleaned up, but for now it's ok. Key functionality here is
3526 the addition of the persistent storage mechanism, a dict for
3532 the addition of the persistent storage mechanism, a dict for
3527 keeping data across sessions (for now just bookmarks, but more can
3533 keeping data across sessions (for now just bookmarks, but more can
3528 be implemented later).
3534 be implemented later).
3529
3535
3530 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3536 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3531 persistent across sections. Patch by Ville, I modified it
3537 persistent across sections. Patch by Ville, I modified it
3532 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3538 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3533 added a '-l' option to list all bookmarks.
3539 added a '-l' option to list all bookmarks.
3534
3540
3535 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3541 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3536 center for cleanup. Registered with atexit.register(). I moved
3542 center for cleanup. Registered with atexit.register(). I moved
3537 here the old exit_cleanup(). After a patch by Ville.
3543 here the old exit_cleanup(). After a patch by Ville.
3538
3544
3539 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3545 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3540 characters in the hacked shlex_split for python 2.2.
3546 characters in the hacked shlex_split for python 2.2.
3541
3547
3542 * IPython/iplib.py (file_matches): more fixes to filenames with
3548 * IPython/iplib.py (file_matches): more fixes to filenames with
3543 whitespace in them. It's not perfect, but limitations in python's
3549 whitespace in them. It's not perfect, but limitations in python's
3544 readline make it impossible to go further.
3550 readline make it impossible to go further.
3545
3551
3546 2004-06-29 Fernando Perez <fperez@colorado.edu>
3552 2004-06-29 Fernando Perez <fperez@colorado.edu>
3547
3553
3548 * IPython/iplib.py (file_matches): escape whitespace correctly in
3554 * IPython/iplib.py (file_matches): escape whitespace correctly in
3549 filename completions. Bug reported by Ville.
3555 filename completions. Bug reported by Ville.
3550
3556
3551 2004-06-28 Fernando Perez <fperez@colorado.edu>
3557 2004-06-28 Fernando Perez <fperez@colorado.edu>
3552
3558
3553 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3559 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3554 the history file will be called 'history-PROFNAME' (or just
3560 the history file will be called 'history-PROFNAME' (or just
3555 'history' if no profile is loaded). I was getting annoyed at
3561 'history' if no profile is loaded). I was getting annoyed at
3556 getting my Numerical work history clobbered by pysh sessions.
3562 getting my Numerical work history clobbered by pysh sessions.
3557
3563
3558 * IPython/iplib.py (InteractiveShell.__init__): Internal
3564 * IPython/iplib.py (InteractiveShell.__init__): Internal
3559 getoutputerror() function so that we can honor the system_verbose
3565 getoutputerror() function so that we can honor the system_verbose
3560 flag for _all_ system calls. I also added escaping of #
3566 flag for _all_ system calls. I also added escaping of #
3561 characters here to avoid confusing Itpl.
3567 characters here to avoid confusing Itpl.
3562
3568
3563 * IPython/Magic.py (shlex_split): removed call to shell in
3569 * IPython/Magic.py (shlex_split): removed call to shell in
3564 parse_options and replaced it with shlex.split(). The annoying
3570 parse_options and replaced it with shlex.split(). The annoying
3565 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3571 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3566 to backport it from 2.3, with several frail hacks (the shlex
3572 to backport it from 2.3, with several frail hacks (the shlex
3567 module is rather limited in 2.2). Thanks to a suggestion by Ville
3573 module is rather limited in 2.2). Thanks to a suggestion by Ville
3568 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3574 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3569 problem.
3575 problem.
3570
3576
3571 (Magic.magic_system_verbose): new toggle to print the actual
3577 (Magic.magic_system_verbose): new toggle to print the actual
3572 system calls made by ipython. Mainly for debugging purposes.
3578 system calls made by ipython. Mainly for debugging purposes.
3573
3579
3574 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3580 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3575 doesn't support persistence. Reported (and fix suggested) by
3581 doesn't support persistence. Reported (and fix suggested) by
3576 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3582 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3577
3583
3578 2004-06-26 Fernando Perez <fperez@colorado.edu>
3584 2004-06-26 Fernando Perez <fperez@colorado.edu>
3579
3585
3580 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3586 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3581 continue prompts.
3587 continue prompts.
3582
3588
3583 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3589 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3584 function (basically a big docstring) and a few more things here to
3590 function (basically a big docstring) and a few more things here to
3585 speedup startup. pysh.py is now very lightweight. We want because
3591 speedup startup. pysh.py is now very lightweight. We want because
3586 it gets execfile'd, while InterpreterExec gets imported, so
3592 it gets execfile'd, while InterpreterExec gets imported, so
3587 byte-compilation saves time.
3593 byte-compilation saves time.
3588
3594
3589 2004-06-25 Fernando Perez <fperez@colorado.edu>
3595 2004-06-25 Fernando Perez <fperez@colorado.edu>
3590
3596
3591 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3597 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3592 -NUM', which was recently broken.
3598 -NUM', which was recently broken.
3593
3599
3594 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3600 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3595 in multi-line input (but not !!, which doesn't make sense there).
3601 in multi-line input (but not !!, which doesn't make sense there).
3596
3602
3597 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3603 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3598 It's just too useful, and people can turn it off in the less
3604 It's just too useful, and people can turn it off in the less
3599 common cases where it's a problem.
3605 common cases where it's a problem.
3600
3606
3601 2004-06-24 Fernando Perez <fperez@colorado.edu>
3607 2004-06-24 Fernando Perez <fperez@colorado.edu>
3602
3608
3603 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3609 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3604 special syntaxes (like alias calling) is now allied in multi-line
3610 special syntaxes (like alias calling) is now allied in multi-line
3605 input. This is still _very_ experimental, but it's necessary for
3611 input. This is still _very_ experimental, but it's necessary for
3606 efficient shell usage combining python looping syntax with system
3612 efficient shell usage combining python looping syntax with system
3607 calls. For now it's restricted to aliases, I don't think it
3613 calls. For now it's restricted to aliases, I don't think it
3608 really even makes sense to have this for magics.
3614 really even makes sense to have this for magics.
3609
3615
3610 2004-06-23 Fernando Perez <fperez@colorado.edu>
3616 2004-06-23 Fernando Perez <fperez@colorado.edu>
3611
3617
3612 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3618 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3613 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3619 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3614
3620
3615 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3621 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3616 extensions under Windows (after code sent by Gary Bishop). The
3622 extensions under Windows (after code sent by Gary Bishop). The
3617 extensions considered 'executable' are stored in IPython's rc
3623 extensions considered 'executable' are stored in IPython's rc
3618 structure as win_exec_ext.
3624 structure as win_exec_ext.
3619
3625
3620 * IPython/genutils.py (shell): new function, like system() but
3626 * IPython/genutils.py (shell): new function, like system() but
3621 without return value. Very useful for interactive shell work.
3627 without return value. Very useful for interactive shell work.
3622
3628
3623 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3629 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3624 delete aliases.
3630 delete aliases.
3625
3631
3626 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3632 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3627 sure that the alias table doesn't contain python keywords.
3633 sure that the alias table doesn't contain python keywords.
3628
3634
3629 2004-06-21 Fernando Perez <fperez@colorado.edu>
3635 2004-06-21 Fernando Perez <fperez@colorado.edu>
3630
3636
3631 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3637 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3632 non-existent items are found in $PATH. Reported by Thorsten.
3638 non-existent items are found in $PATH. Reported by Thorsten.
3633
3639
3634 2004-06-20 Fernando Perez <fperez@colorado.edu>
3640 2004-06-20 Fernando Perez <fperez@colorado.edu>
3635
3641
3636 * IPython/iplib.py (complete): modified the completer so that the
3642 * IPython/iplib.py (complete): modified the completer so that the
3637 order of priorities can be easily changed at runtime.
3643 order of priorities can be easily changed at runtime.
3638
3644
3639 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3645 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3640 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3646 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3641
3647
3642 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3648 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3643 expand Python variables prepended with $ in all system calls. The
3649 expand Python variables prepended with $ in all system calls. The
3644 same was done to InteractiveShell.handle_shell_escape. Now all
3650 same was done to InteractiveShell.handle_shell_escape. Now all
3645 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3651 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3646 expansion of python variables and expressions according to the
3652 expansion of python variables and expressions according to the
3647 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3653 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3648
3654
3649 Though PEP-215 has been rejected, a similar (but simpler) one
3655 Though PEP-215 has been rejected, a similar (but simpler) one
3650 seems like it will go into Python 2.4, PEP-292 -
3656 seems like it will go into Python 2.4, PEP-292 -
3651 http://www.python.org/peps/pep-0292.html.
3657 http://www.python.org/peps/pep-0292.html.
3652
3658
3653 I'll keep the full syntax of PEP-215, since IPython has since the
3659 I'll keep the full syntax of PEP-215, since IPython has since the
3654 start used Ka-Ping Yee's reference implementation discussed there
3660 start used Ka-Ping Yee's reference implementation discussed there
3655 (Itpl), and I actually like the powerful semantics it offers.
3661 (Itpl), and I actually like the powerful semantics it offers.
3656
3662
3657 In order to access normal shell variables, the $ has to be escaped
3663 In order to access normal shell variables, the $ has to be escaped
3658 via an extra $. For example:
3664 via an extra $. For example:
3659
3665
3660 In [7]: PATH='a python variable'
3666 In [7]: PATH='a python variable'
3661
3667
3662 In [8]: !echo $PATH
3668 In [8]: !echo $PATH
3663 a python variable
3669 a python variable
3664
3670
3665 In [9]: !echo $$PATH
3671 In [9]: !echo $$PATH
3666 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3672 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3667
3673
3668 (Magic.parse_options): escape $ so the shell doesn't evaluate
3674 (Magic.parse_options): escape $ so the shell doesn't evaluate
3669 things prematurely.
3675 things prematurely.
3670
3676
3671 * IPython/iplib.py (InteractiveShell.call_alias): added the
3677 * IPython/iplib.py (InteractiveShell.call_alias): added the
3672 ability for aliases to expand python variables via $.
3678 ability for aliases to expand python variables via $.
3673
3679
3674 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3680 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3675 system, now there's a @rehash/@rehashx pair of magics. These work
3681 system, now there's a @rehash/@rehashx pair of magics. These work
3676 like the csh rehash command, and can be invoked at any time. They
3682 like the csh rehash command, and can be invoked at any time. They
3677 build a table of aliases to everything in the user's $PATH
3683 build a table of aliases to everything in the user's $PATH
3678 (@rehash uses everything, @rehashx is slower but only adds
3684 (@rehash uses everything, @rehashx is slower but only adds
3679 executable files). With this, the pysh.py-based shell profile can
3685 executable files). With this, the pysh.py-based shell profile can
3680 now simply call rehash upon startup, and full access to all
3686 now simply call rehash upon startup, and full access to all
3681 programs in the user's path is obtained.
3687 programs in the user's path is obtained.
3682
3688
3683 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3689 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3684 functionality is now fully in place. I removed the old dynamic
3690 functionality is now fully in place. I removed the old dynamic
3685 code generation based approach, in favor of a much lighter one
3691 code generation based approach, in favor of a much lighter one
3686 based on a simple dict. The advantage is that this allows me to
3692 based on a simple dict. The advantage is that this allows me to
3687 now have thousands of aliases with negligible cost (unthinkable
3693 now have thousands of aliases with negligible cost (unthinkable
3688 with the old system).
3694 with the old system).
3689
3695
3690 2004-06-19 Fernando Perez <fperez@colorado.edu>
3696 2004-06-19 Fernando Perez <fperez@colorado.edu>
3691
3697
3692 * IPython/iplib.py (__init__): extended MagicCompleter class to
3698 * IPython/iplib.py (__init__): extended MagicCompleter class to
3693 also complete (last in priority) on user aliases.
3699 also complete (last in priority) on user aliases.
3694
3700
3695 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3701 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3696 call to eval.
3702 call to eval.
3697 (ItplNS.__init__): Added a new class which functions like Itpl,
3703 (ItplNS.__init__): Added a new class which functions like Itpl,
3698 but allows configuring the namespace for the evaluation to occur
3704 but allows configuring the namespace for the evaluation to occur
3699 in.
3705 in.
3700
3706
3701 2004-06-18 Fernando Perez <fperez@colorado.edu>
3707 2004-06-18 Fernando Perez <fperez@colorado.edu>
3702
3708
3703 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3709 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3704 better message when 'exit' or 'quit' are typed (a common newbie
3710 better message when 'exit' or 'quit' are typed (a common newbie
3705 confusion).
3711 confusion).
3706
3712
3707 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3713 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3708 check for Windows users.
3714 check for Windows users.
3709
3715
3710 * IPython/iplib.py (InteractiveShell.user_setup): removed
3716 * IPython/iplib.py (InteractiveShell.user_setup): removed
3711 disabling of colors for Windows. I'll test at runtime and issue a
3717 disabling of colors for Windows. I'll test at runtime and issue a
3712 warning if Gary's readline isn't found, as to nudge users to
3718 warning if Gary's readline isn't found, as to nudge users to
3713 download it.
3719 download it.
3714
3720
3715 2004-06-16 Fernando Perez <fperez@colorado.edu>
3721 2004-06-16 Fernando Perez <fperez@colorado.edu>
3716
3722
3717 * IPython/genutils.py (Stream.__init__): changed to print errors
3723 * IPython/genutils.py (Stream.__init__): changed to print errors
3718 to sys.stderr. I had a circular dependency here. Now it's
3724 to sys.stderr. I had a circular dependency here. Now it's
3719 possible to run ipython as IDLE's shell (consider this pre-alpha,
3725 possible to run ipython as IDLE's shell (consider this pre-alpha,
3720 since true stdout things end up in the starting terminal instead
3726 since true stdout things end up in the starting terminal instead
3721 of IDLE's out).
3727 of IDLE's out).
3722
3728
3723 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3729 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3724 users who haven't # updated their prompt_in2 definitions. Remove
3730 users who haven't # updated their prompt_in2 definitions. Remove
3725 eventually.
3731 eventually.
3726 (multiple_replace): added credit to original ASPN recipe.
3732 (multiple_replace): added credit to original ASPN recipe.
3727
3733
3728 2004-06-15 Fernando Perez <fperez@colorado.edu>
3734 2004-06-15 Fernando Perez <fperez@colorado.edu>
3729
3735
3730 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3736 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3731 list of auto-defined aliases.
3737 list of auto-defined aliases.
3732
3738
3733 2004-06-13 Fernando Perez <fperez@colorado.edu>
3739 2004-06-13 Fernando Perez <fperez@colorado.edu>
3734
3740
3735 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3741 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3736 install was really requested (so setup.py can be used for other
3742 install was really requested (so setup.py can be used for other
3737 things under Windows).
3743 things under Windows).
3738
3744
3739 2004-06-10 Fernando Perez <fperez@colorado.edu>
3745 2004-06-10 Fernando Perez <fperez@colorado.edu>
3740
3746
3741 * IPython/Logger.py (Logger.create_log): Manually remove any old
3747 * IPython/Logger.py (Logger.create_log): Manually remove any old
3742 backup, since os.remove may fail under Windows. Fixes bug
3748 backup, since os.remove may fail under Windows. Fixes bug
3743 reported by Thorsten.
3749 reported by Thorsten.
3744
3750
3745 2004-06-09 Fernando Perez <fperez@colorado.edu>
3751 2004-06-09 Fernando Perez <fperez@colorado.edu>
3746
3752
3747 * examples/example-embed.py: fixed all references to %n (replaced
3753 * examples/example-embed.py: fixed all references to %n (replaced
3748 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3754 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3749 for all examples and the manual as well.
3755 for all examples and the manual as well.
3750
3756
3751 2004-06-08 Fernando Perez <fperez@colorado.edu>
3757 2004-06-08 Fernando Perez <fperez@colorado.edu>
3752
3758
3753 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3759 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3754 alignment and color management. All 3 prompt subsystems now
3760 alignment and color management. All 3 prompt subsystems now
3755 inherit from BasePrompt.
3761 inherit from BasePrompt.
3756
3762
3757 * tools/release: updates for windows installer build and tag rpms
3763 * tools/release: updates for windows installer build and tag rpms
3758 with python version (since paths are fixed).
3764 with python version (since paths are fixed).
3759
3765
3760 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3766 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3761 which will become eventually obsolete. Also fixed the default
3767 which will become eventually obsolete. Also fixed the default
3762 prompt_in2 to use \D, so at least new users start with the correct
3768 prompt_in2 to use \D, so at least new users start with the correct
3763 defaults.
3769 defaults.
3764 WARNING: Users with existing ipythonrc files will need to apply
3770 WARNING: Users with existing ipythonrc files will need to apply
3765 this fix manually!
3771 this fix manually!
3766
3772
3767 * setup.py: make windows installer (.exe). This is finally the
3773 * setup.py: make windows installer (.exe). This is finally the
3768 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3774 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3769 which I hadn't included because it required Python 2.3 (or recent
3775 which I hadn't included because it required Python 2.3 (or recent
3770 distutils).
3776 distutils).
3771
3777
3772 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3778 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3773 usage of new '\D' escape.
3779 usage of new '\D' escape.
3774
3780
3775 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3781 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3776 lacks os.getuid())
3782 lacks os.getuid())
3777 (CachedOutput.set_colors): Added the ability to turn coloring
3783 (CachedOutput.set_colors): Added the ability to turn coloring
3778 on/off with @colors even for manually defined prompt colors. It
3784 on/off with @colors even for manually defined prompt colors. It
3779 uses a nasty global, but it works safely and via the generic color
3785 uses a nasty global, but it works safely and via the generic color
3780 handling mechanism.
3786 handling mechanism.
3781 (Prompt2.__init__): Introduced new escape '\D' for continuation
3787 (Prompt2.__init__): Introduced new escape '\D' for continuation
3782 prompts. It represents the counter ('\#') as dots.
3788 prompts. It represents the counter ('\#') as dots.
3783 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3789 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3784 need to update their ipythonrc files and replace '%n' with '\D' in
3790 need to update their ipythonrc files and replace '%n' with '\D' in
3785 their prompt_in2 settings everywhere. Sorry, but there's
3791 their prompt_in2 settings everywhere. Sorry, but there's
3786 otherwise no clean way to get all prompts to properly align. The
3792 otherwise no clean way to get all prompts to properly align. The
3787 ipythonrc shipped with IPython has been updated.
3793 ipythonrc shipped with IPython has been updated.
3788
3794
3789 2004-06-07 Fernando Perez <fperez@colorado.edu>
3795 2004-06-07 Fernando Perez <fperez@colorado.edu>
3790
3796
3791 * setup.py (isfile): Pass local_icons option to latex2html, so the
3797 * setup.py (isfile): Pass local_icons option to latex2html, so the
3792 resulting HTML file is self-contained. Thanks to
3798 resulting HTML file is self-contained. Thanks to
3793 dryice-AT-liu.com.cn for the tip.
3799 dryice-AT-liu.com.cn for the tip.
3794
3800
3795 * pysh.py: I created a new profile 'shell', which implements a
3801 * pysh.py: I created a new profile 'shell', which implements a
3796 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3802 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3797 system shell, nor will it become one anytime soon. It's mainly
3803 system shell, nor will it become one anytime soon. It's mainly
3798 meant to illustrate the use of the new flexible bash-like prompts.
3804 meant to illustrate the use of the new flexible bash-like prompts.
3799 I guess it could be used by hardy souls for true shell management,
3805 I guess it could be used by hardy souls for true shell management,
3800 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3806 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3801 profile. This uses the InterpreterExec extension provided by
3807 profile. This uses the InterpreterExec extension provided by
3802 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3808 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3803
3809
3804 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3810 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3805 auto-align itself with the length of the previous input prompt
3811 auto-align itself with the length of the previous input prompt
3806 (taking into account the invisible color escapes).
3812 (taking into account the invisible color escapes).
3807 (CachedOutput.__init__): Large restructuring of this class. Now
3813 (CachedOutput.__init__): Large restructuring of this class. Now
3808 all three prompts (primary1, primary2, output) are proper objects,
3814 all three prompts (primary1, primary2, output) are proper objects,
3809 managed by the 'parent' CachedOutput class. The code is still a
3815 managed by the 'parent' CachedOutput class. The code is still a
3810 bit hackish (all prompts share state via a pointer to the cache),
3816 bit hackish (all prompts share state via a pointer to the cache),
3811 but it's overall far cleaner than before.
3817 but it's overall far cleaner than before.
3812
3818
3813 * IPython/genutils.py (getoutputerror): modified to add verbose,
3819 * IPython/genutils.py (getoutputerror): modified to add verbose,
3814 debug and header options. This makes the interface of all getout*
3820 debug and header options. This makes the interface of all getout*
3815 functions uniform.
3821 functions uniform.
3816 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3822 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3817
3823
3818 * IPython/Magic.py (Magic.default_option): added a function to
3824 * IPython/Magic.py (Magic.default_option): added a function to
3819 allow registering default options for any magic command. This
3825 allow registering default options for any magic command. This
3820 makes it easy to have profiles which customize the magics globally
3826 makes it easy to have profiles which customize the magics globally
3821 for a certain use. The values set through this function are
3827 for a certain use. The values set through this function are
3822 picked up by the parse_options() method, which all magics should
3828 picked up by the parse_options() method, which all magics should
3823 use to parse their options.
3829 use to parse their options.
3824
3830
3825 * IPython/genutils.py (warn): modified the warnings framework to
3831 * IPython/genutils.py (warn): modified the warnings framework to
3826 use the Term I/O class. I'm trying to slowly unify all of
3832 use the Term I/O class. I'm trying to slowly unify all of
3827 IPython's I/O operations to pass through Term.
3833 IPython's I/O operations to pass through Term.
3828
3834
3829 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3835 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3830 the secondary prompt to correctly match the length of the primary
3836 the secondary prompt to correctly match the length of the primary
3831 one for any prompt. Now multi-line code will properly line up
3837 one for any prompt. Now multi-line code will properly line up
3832 even for path dependent prompts, such as the new ones available
3838 even for path dependent prompts, such as the new ones available
3833 via the prompt_specials.
3839 via the prompt_specials.
3834
3840
3835 2004-06-06 Fernando Perez <fperez@colorado.edu>
3841 2004-06-06 Fernando Perez <fperez@colorado.edu>
3836
3842
3837 * IPython/Prompts.py (prompt_specials): Added the ability to have
3843 * IPython/Prompts.py (prompt_specials): Added the ability to have
3838 bash-like special sequences in the prompts, which get
3844 bash-like special sequences in the prompts, which get
3839 automatically expanded. Things like hostname, current working
3845 automatically expanded. Things like hostname, current working
3840 directory and username are implemented already, but it's easy to
3846 directory and username are implemented already, but it's easy to
3841 add more in the future. Thanks to a patch by W.J. van der Laan
3847 add more in the future. Thanks to a patch by W.J. van der Laan
3842 <gnufnork-AT-hetdigitalegat.nl>
3848 <gnufnork-AT-hetdigitalegat.nl>
3843 (prompt_specials): Added color support for prompt strings, so
3849 (prompt_specials): Added color support for prompt strings, so
3844 users can define arbitrary color setups for their prompts.
3850 users can define arbitrary color setups for their prompts.
3845
3851
3846 2004-06-05 Fernando Perez <fperez@colorado.edu>
3852 2004-06-05 Fernando Perez <fperez@colorado.edu>
3847
3853
3848 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3854 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3849 code to load Gary Bishop's readline and configure it
3855 code to load Gary Bishop's readline and configure it
3850 automatically. Thanks to Gary for help on this.
3856 automatically. Thanks to Gary for help on this.
3851
3857
3852 2004-06-01 Fernando Perez <fperez@colorado.edu>
3858 2004-06-01 Fernando Perez <fperez@colorado.edu>
3853
3859
3854 * IPython/Logger.py (Logger.create_log): fix bug for logging
3860 * IPython/Logger.py (Logger.create_log): fix bug for logging
3855 with no filename (previous fix was incomplete).
3861 with no filename (previous fix was incomplete).
3856
3862
3857 2004-05-25 Fernando Perez <fperez@colorado.edu>
3863 2004-05-25 Fernando Perez <fperez@colorado.edu>
3858
3864
3859 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3865 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3860 parens would get passed to the shell.
3866 parens would get passed to the shell.
3861
3867
3862 2004-05-20 Fernando Perez <fperez@colorado.edu>
3868 2004-05-20 Fernando Perez <fperez@colorado.edu>
3863
3869
3864 * IPython/Magic.py (Magic.magic_prun): changed default profile
3870 * IPython/Magic.py (Magic.magic_prun): changed default profile
3865 sort order to 'time' (the more common profiling need).
3871 sort order to 'time' (the more common profiling need).
3866
3872
3867 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3873 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3868 so that source code shown is guaranteed in sync with the file on
3874 so that source code shown is guaranteed in sync with the file on
3869 disk (also changed in psource). Similar fix to the one for
3875 disk (also changed in psource). Similar fix to the one for
3870 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3876 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3871 <yann.ledu-AT-noos.fr>.
3877 <yann.ledu-AT-noos.fr>.
3872
3878
3873 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3879 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3874 with a single option would not be correctly parsed. Closes
3880 with a single option would not be correctly parsed. Closes
3875 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3881 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3876 introduced in 0.6.0 (on 2004-05-06).
3882 introduced in 0.6.0 (on 2004-05-06).
3877
3883
3878 2004-05-13 *** Released version 0.6.0
3884 2004-05-13 *** Released version 0.6.0
3879
3885
3880 2004-05-13 Fernando Perez <fperez@colorado.edu>
3886 2004-05-13 Fernando Perez <fperez@colorado.edu>
3881
3887
3882 * debian/: Added debian/ directory to CVS, so that debian support
3888 * debian/: Added debian/ directory to CVS, so that debian support
3883 is publicly accessible. The debian package is maintained by Jack
3889 is publicly accessible. The debian package is maintained by Jack
3884 Moffit <jack-AT-xiph.org>.
3890 Moffit <jack-AT-xiph.org>.
3885
3891
3886 * Documentation: included the notes about an ipython-based system
3892 * Documentation: included the notes about an ipython-based system
3887 shell (the hypothetical 'pysh') into the new_design.pdf document,
3893 shell (the hypothetical 'pysh') into the new_design.pdf document,
3888 so that these ideas get distributed to users along with the
3894 so that these ideas get distributed to users along with the
3889 official documentation.
3895 official documentation.
3890
3896
3891 2004-05-10 Fernando Perez <fperez@colorado.edu>
3897 2004-05-10 Fernando Perez <fperez@colorado.edu>
3892
3898
3893 * IPython/Logger.py (Logger.create_log): fix recently introduced
3899 * IPython/Logger.py (Logger.create_log): fix recently introduced
3894 bug (misindented line) where logstart would fail when not given an
3900 bug (misindented line) where logstart would fail when not given an
3895 explicit filename.
3901 explicit filename.
3896
3902
3897 2004-05-09 Fernando Perez <fperez@colorado.edu>
3903 2004-05-09 Fernando Perez <fperez@colorado.edu>
3898
3904
3899 * IPython/Magic.py (Magic.parse_options): skip system call when
3905 * IPython/Magic.py (Magic.parse_options): skip system call when
3900 there are no options to look for. Faster, cleaner for the common
3906 there are no options to look for. Faster, cleaner for the common
3901 case.
3907 case.
3902
3908
3903 * Documentation: many updates to the manual: describing Windows
3909 * Documentation: many updates to the manual: describing Windows
3904 support better, Gnuplot updates, credits, misc small stuff. Also
3910 support better, Gnuplot updates, credits, misc small stuff. Also
3905 updated the new_design doc a bit.
3911 updated the new_design doc a bit.
3906
3912
3907 2004-05-06 *** Released version 0.6.0.rc1
3913 2004-05-06 *** Released version 0.6.0.rc1
3908
3914
3909 2004-05-06 Fernando Perez <fperez@colorado.edu>
3915 2004-05-06 Fernando Perez <fperez@colorado.edu>
3910
3916
3911 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3917 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3912 operations to use the vastly more efficient list/''.join() method.
3918 operations to use the vastly more efficient list/''.join() method.
3913 (FormattedTB.text): Fix
3919 (FormattedTB.text): Fix
3914 http://www.scipy.net/roundup/ipython/issue12 - exception source
3920 http://www.scipy.net/roundup/ipython/issue12 - exception source
3915 extract not updated after reload. Thanks to Mike Salib
3921 extract not updated after reload. Thanks to Mike Salib
3916 <msalib-AT-mit.edu> for pinning the source of the problem.
3922 <msalib-AT-mit.edu> for pinning the source of the problem.
3917 Fortunately, the solution works inside ipython and doesn't require
3923 Fortunately, the solution works inside ipython and doesn't require
3918 any changes to python proper.
3924 any changes to python proper.
3919
3925
3920 * IPython/Magic.py (Magic.parse_options): Improved to process the
3926 * IPython/Magic.py (Magic.parse_options): Improved to process the
3921 argument list as a true shell would (by actually using the
3927 argument list as a true shell would (by actually using the
3922 underlying system shell). This way, all @magics automatically get
3928 underlying system shell). This way, all @magics automatically get
3923 shell expansion for variables. Thanks to a comment by Alex
3929 shell expansion for variables. Thanks to a comment by Alex
3924 Schmolck.
3930 Schmolck.
3925
3931
3926 2004-04-04 Fernando Perez <fperez@colorado.edu>
3932 2004-04-04 Fernando Perez <fperez@colorado.edu>
3927
3933
3928 * IPython/iplib.py (InteractiveShell.interact): Added a special
3934 * IPython/iplib.py (InteractiveShell.interact): Added a special
3929 trap for a debugger quit exception, which is basically impossible
3935 trap for a debugger quit exception, which is basically impossible
3930 to handle by normal mechanisms, given what pdb does to the stack.
3936 to handle by normal mechanisms, given what pdb does to the stack.
3931 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3937 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3932
3938
3933 2004-04-03 Fernando Perez <fperez@colorado.edu>
3939 2004-04-03 Fernando Perez <fperez@colorado.edu>
3934
3940
3935 * IPython/genutils.py (Term): Standardized the names of the Term
3941 * IPython/genutils.py (Term): Standardized the names of the Term
3936 class streams to cin/cout/cerr, following C++ naming conventions
3942 class streams to cin/cout/cerr, following C++ naming conventions
3937 (I can't use in/out/err because 'in' is not a valid attribute
3943 (I can't use in/out/err because 'in' is not a valid attribute
3938 name).
3944 name).
3939
3945
3940 * IPython/iplib.py (InteractiveShell.interact): don't increment
3946 * IPython/iplib.py (InteractiveShell.interact): don't increment
3941 the prompt if there's no user input. By Daniel 'Dang' Griffith
3947 the prompt if there's no user input. By Daniel 'Dang' Griffith
3942 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3948 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3943 Francois Pinard.
3949 Francois Pinard.
3944
3950
3945 2004-04-02 Fernando Perez <fperez@colorado.edu>
3951 2004-04-02 Fernando Perez <fperez@colorado.edu>
3946
3952
3947 * IPython/genutils.py (Stream.__init__): Modified to survive at
3953 * IPython/genutils.py (Stream.__init__): Modified to survive at
3948 least importing in contexts where stdin/out/err aren't true file
3954 least importing in contexts where stdin/out/err aren't true file
3949 objects, such as PyCrust (they lack fileno() and mode). However,
3955 objects, such as PyCrust (they lack fileno() and mode). However,
3950 the recovery facilities which rely on these things existing will
3956 the recovery facilities which rely on these things existing will
3951 not work.
3957 not work.
3952
3958
3953 2004-04-01 Fernando Perez <fperez@colorado.edu>
3959 2004-04-01 Fernando Perez <fperez@colorado.edu>
3954
3960
3955 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3961 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3956 use the new getoutputerror() function, so it properly
3962 use the new getoutputerror() function, so it properly
3957 distinguishes stdout/err.
3963 distinguishes stdout/err.
3958
3964
3959 * IPython/genutils.py (getoutputerror): added a function to
3965 * IPython/genutils.py (getoutputerror): added a function to
3960 capture separately the standard output and error of a command.
3966 capture separately the standard output and error of a command.
3961 After a comment from dang on the mailing lists. This code is
3967 After a comment from dang on the mailing lists. This code is
3962 basically a modified version of commands.getstatusoutput(), from
3968 basically a modified version of commands.getstatusoutput(), from
3963 the standard library.
3969 the standard library.
3964
3970
3965 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3971 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3966 '!!' as a special syntax (shorthand) to access @sx.
3972 '!!' as a special syntax (shorthand) to access @sx.
3967
3973
3968 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3974 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3969 command and return its output as a list split on '\n'.
3975 command and return its output as a list split on '\n'.
3970
3976
3971 2004-03-31 Fernando Perez <fperez@colorado.edu>
3977 2004-03-31 Fernando Perez <fperez@colorado.edu>
3972
3978
3973 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3979 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3974 method to dictionaries used as FakeModule instances if they lack
3980 method to dictionaries used as FakeModule instances if they lack
3975 it. At least pydoc in python2.3 breaks for runtime-defined
3981 it. At least pydoc in python2.3 breaks for runtime-defined
3976 functions without this hack. At some point I need to _really_
3982 functions without this hack. At some point I need to _really_
3977 understand what FakeModule is doing, because it's a gross hack.
3983 understand what FakeModule is doing, because it's a gross hack.
3978 But it solves Arnd's problem for now...
3984 But it solves Arnd's problem for now...
3979
3985
3980 2004-02-27 Fernando Perez <fperez@colorado.edu>
3986 2004-02-27 Fernando Perez <fperez@colorado.edu>
3981
3987
3982 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3988 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3983 mode would behave erratically. Also increased the number of
3989 mode would behave erratically. Also increased the number of
3984 possible logs in rotate mod to 999. Thanks to Rod Holland
3990 possible logs in rotate mod to 999. Thanks to Rod Holland
3985 <rhh@StructureLABS.com> for the report and fixes.
3991 <rhh@StructureLABS.com> for the report and fixes.
3986
3992
3987 2004-02-26 Fernando Perez <fperez@colorado.edu>
3993 2004-02-26 Fernando Perez <fperez@colorado.edu>
3988
3994
3989 * IPython/genutils.py (page): Check that the curses module really
3995 * IPython/genutils.py (page): Check that the curses module really
3990 has the initscr attribute before trying to use it. For some
3996 has the initscr attribute before trying to use it. For some
3991 reason, the Solaris curses module is missing this. I think this
3997 reason, the Solaris curses module is missing this. I think this
3992 should be considered a Solaris python bug, but I'm not sure.
3998 should be considered a Solaris python bug, but I'm not sure.
3993
3999
3994 2004-01-17 Fernando Perez <fperez@colorado.edu>
4000 2004-01-17 Fernando Perez <fperez@colorado.edu>
3995
4001
3996 * IPython/genutils.py (Stream.__init__): Changes to try to make
4002 * IPython/genutils.py (Stream.__init__): Changes to try to make
3997 ipython robust against stdin/out/err being closed by the user.
4003 ipython robust against stdin/out/err being closed by the user.
3998 This is 'user error' (and blocks a normal python session, at least
4004 This is 'user error' (and blocks a normal python session, at least
3999 the stdout case). However, Ipython should be able to survive such
4005 the stdout case). However, Ipython should be able to survive such
4000 instances of abuse as gracefully as possible. To simplify the
4006 instances of abuse as gracefully as possible. To simplify the
4001 coding and maintain compatibility with Gary Bishop's Term
4007 coding and maintain compatibility with Gary Bishop's Term
4002 contributions, I've made use of classmethods for this. I think
4008 contributions, I've made use of classmethods for this. I think
4003 this introduces a dependency on python 2.2.
4009 this introduces a dependency on python 2.2.
4004
4010
4005 2004-01-13 Fernando Perez <fperez@colorado.edu>
4011 2004-01-13 Fernando Perez <fperez@colorado.edu>
4006
4012
4007 * IPython/numutils.py (exp_safe): simplified the code a bit and
4013 * IPython/numutils.py (exp_safe): simplified the code a bit and
4008 removed the need for importing the kinds module altogether.
4014 removed the need for importing the kinds module altogether.
4009
4015
4010 2004-01-06 Fernando Perez <fperez@colorado.edu>
4016 2004-01-06 Fernando Perez <fperez@colorado.edu>
4011
4017
4012 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4018 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4013 a magic function instead, after some community feedback. No
4019 a magic function instead, after some community feedback. No
4014 special syntax will exist for it, but its name is deliberately
4020 special syntax will exist for it, but its name is deliberately
4015 very short.
4021 very short.
4016
4022
4017 2003-12-20 Fernando Perez <fperez@colorado.edu>
4023 2003-12-20 Fernando Perez <fperez@colorado.edu>
4018
4024
4019 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4025 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4020 new functionality, to automagically assign the result of a shell
4026 new functionality, to automagically assign the result of a shell
4021 command to a variable. I'll solicit some community feedback on
4027 command to a variable. I'll solicit some community feedback on
4022 this before making it permanent.
4028 this before making it permanent.
4023
4029
4024 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4030 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4025 requested about callables for which inspect couldn't obtain a
4031 requested about callables for which inspect couldn't obtain a
4026 proper argspec. Thanks to a crash report sent by Etienne
4032 proper argspec. Thanks to a crash report sent by Etienne
4027 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4033 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4028
4034
4029 2003-12-09 Fernando Perez <fperez@colorado.edu>
4035 2003-12-09 Fernando Perez <fperez@colorado.edu>
4030
4036
4031 * IPython/genutils.py (page): patch for the pager to work across
4037 * IPython/genutils.py (page): patch for the pager to work across
4032 various versions of Windows. By Gary Bishop.
4038 various versions of Windows. By Gary Bishop.
4033
4039
4034 2003-12-04 Fernando Perez <fperez@colorado.edu>
4040 2003-12-04 Fernando Perez <fperez@colorado.edu>
4035
4041
4036 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4042 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4037 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4043 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4038 While I tested this and it looks ok, there may still be corner
4044 While I tested this and it looks ok, there may still be corner
4039 cases I've missed.
4045 cases I've missed.
4040
4046
4041 2003-12-01 Fernando Perez <fperez@colorado.edu>
4047 2003-12-01 Fernando Perez <fperez@colorado.edu>
4042
4048
4043 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4049 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4044 where a line like 'p,q=1,2' would fail because the automagic
4050 where a line like 'p,q=1,2' would fail because the automagic
4045 system would be triggered for @p.
4051 system would be triggered for @p.
4046
4052
4047 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4053 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4048 cleanups, code unmodified.
4054 cleanups, code unmodified.
4049
4055
4050 * IPython/genutils.py (Term): added a class for IPython to handle
4056 * IPython/genutils.py (Term): added a class for IPython to handle
4051 output. In most cases it will just be a proxy for stdout/err, but
4057 output. In most cases it will just be a proxy for stdout/err, but
4052 having this allows modifications to be made for some platforms,
4058 having this allows modifications to be made for some platforms,
4053 such as handling color escapes under Windows. All of this code
4059 such as handling color escapes under Windows. All of this code
4054 was contributed by Gary Bishop, with minor modifications by me.
4060 was contributed by Gary Bishop, with minor modifications by me.
4055 The actual changes affect many files.
4061 The actual changes affect many files.
4056
4062
4057 2003-11-30 Fernando Perez <fperez@colorado.edu>
4063 2003-11-30 Fernando Perez <fperez@colorado.edu>
4058
4064
4059 * IPython/iplib.py (file_matches): new completion code, courtesy
4065 * IPython/iplib.py (file_matches): new completion code, courtesy
4060 of Jeff Collins. This enables filename completion again under
4066 of Jeff Collins. This enables filename completion again under
4061 python 2.3, which disabled it at the C level.
4067 python 2.3, which disabled it at the C level.
4062
4068
4063 2003-11-11 Fernando Perez <fperez@colorado.edu>
4069 2003-11-11 Fernando Perez <fperez@colorado.edu>
4064
4070
4065 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4071 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4066 for Numeric.array(map(...)), but often convenient.
4072 for Numeric.array(map(...)), but often convenient.
4067
4073
4068 2003-11-05 Fernando Perez <fperez@colorado.edu>
4074 2003-11-05 Fernando Perez <fperez@colorado.edu>
4069
4075
4070 * IPython/numutils.py (frange): Changed a call from int() to
4076 * IPython/numutils.py (frange): Changed a call from int() to
4071 int(round()) to prevent a problem reported with arange() in the
4077 int(round()) to prevent a problem reported with arange() in the
4072 numpy list.
4078 numpy list.
4073
4079
4074 2003-10-06 Fernando Perez <fperez@colorado.edu>
4080 2003-10-06 Fernando Perez <fperez@colorado.edu>
4075
4081
4076 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4082 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4077 prevent crashes if sys lacks an argv attribute (it happens with
4083 prevent crashes if sys lacks an argv attribute (it happens with
4078 embedded interpreters which build a bare-bones sys module).
4084 embedded interpreters which build a bare-bones sys module).
4079 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4085 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4080
4086
4081 2003-09-24 Fernando Perez <fperez@colorado.edu>
4087 2003-09-24 Fernando Perez <fperez@colorado.edu>
4082
4088
4083 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4089 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4084 to protect against poorly written user objects where __getattr__
4090 to protect against poorly written user objects where __getattr__
4085 raises exceptions other than AttributeError. Thanks to a bug
4091 raises exceptions other than AttributeError. Thanks to a bug
4086 report by Oliver Sander <osander-AT-gmx.de>.
4092 report by Oliver Sander <osander-AT-gmx.de>.
4087
4093
4088 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4094 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4089 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4095 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4090
4096
4091 2003-09-09 Fernando Perez <fperez@colorado.edu>
4097 2003-09-09 Fernando Perez <fperez@colorado.edu>
4092
4098
4093 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4099 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4094 unpacking a list whith a callable as first element would
4100 unpacking a list whith a callable as first element would
4095 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4101 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4096 Collins.
4102 Collins.
4097
4103
4098 2003-08-25 *** Released version 0.5.0
4104 2003-08-25 *** Released version 0.5.0
4099
4105
4100 2003-08-22 Fernando Perez <fperez@colorado.edu>
4106 2003-08-22 Fernando Perez <fperez@colorado.edu>
4101
4107
4102 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4108 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4103 improperly defined user exceptions. Thanks to feedback from Mark
4109 improperly defined user exceptions. Thanks to feedback from Mark
4104 Russell <mrussell-AT-verio.net>.
4110 Russell <mrussell-AT-verio.net>.
4105
4111
4106 2003-08-20 Fernando Perez <fperez@colorado.edu>
4112 2003-08-20 Fernando Perez <fperez@colorado.edu>
4107
4113
4108 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4114 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4109 printing so that it would print multi-line string forms starting
4115 printing so that it would print multi-line string forms starting
4110 with a new line. This way the formatting is better respected for
4116 with a new line. This way the formatting is better respected for
4111 objects which work hard to make nice string forms.
4117 objects which work hard to make nice string forms.
4112
4118
4113 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4119 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4114 autocall would overtake data access for objects with both
4120 autocall would overtake data access for objects with both
4115 __getitem__ and __call__.
4121 __getitem__ and __call__.
4116
4122
4117 2003-08-19 *** Released version 0.5.0-rc1
4123 2003-08-19 *** Released version 0.5.0-rc1
4118
4124
4119 2003-08-19 Fernando Perez <fperez@colorado.edu>
4125 2003-08-19 Fernando Perez <fperez@colorado.edu>
4120
4126
4121 * IPython/deep_reload.py (load_tail): single tiny change here
4127 * IPython/deep_reload.py (load_tail): single tiny change here
4122 seems to fix the long-standing bug of dreload() failing to work
4128 seems to fix the long-standing bug of dreload() failing to work
4123 for dotted names. But this module is pretty tricky, so I may have
4129 for dotted names. But this module is pretty tricky, so I may have
4124 missed some subtlety. Needs more testing!.
4130 missed some subtlety. Needs more testing!.
4125
4131
4126 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4132 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4127 exceptions which have badly implemented __str__ methods.
4133 exceptions which have badly implemented __str__ methods.
4128 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4134 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4129 which I've been getting reports about from Python 2.3 users. I
4135 which I've been getting reports about from Python 2.3 users. I
4130 wish I had a simple test case to reproduce the problem, so I could
4136 wish I had a simple test case to reproduce the problem, so I could
4131 either write a cleaner workaround or file a bug report if
4137 either write a cleaner workaround or file a bug report if
4132 necessary.
4138 necessary.
4133
4139
4134 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4140 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4135 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4141 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4136 a bug report by Tjabo Kloppenburg.
4142 a bug report by Tjabo Kloppenburg.
4137
4143
4138 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4144 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4139 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4145 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4140 seems rather unstable. Thanks to a bug report by Tjabo
4146 seems rather unstable. Thanks to a bug report by Tjabo
4141 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4147 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4142
4148
4143 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4149 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4144 this out soon because of the critical fixes in the inner loop for
4150 this out soon because of the critical fixes in the inner loop for
4145 generators.
4151 generators.
4146
4152
4147 * IPython/Magic.py (Magic.getargspec): removed. This (and
4153 * IPython/Magic.py (Magic.getargspec): removed. This (and
4148 _get_def) have been obsoleted by OInspect for a long time, I
4154 _get_def) have been obsoleted by OInspect for a long time, I
4149 hadn't noticed that they were dead code.
4155 hadn't noticed that they were dead code.
4150 (Magic._ofind): restored _ofind functionality for a few literals
4156 (Magic._ofind): restored _ofind functionality for a few literals
4151 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4157 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4152 for things like "hello".capitalize?, since that would require a
4158 for things like "hello".capitalize?, since that would require a
4153 potentially dangerous eval() again.
4159 potentially dangerous eval() again.
4154
4160
4155 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4161 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4156 logic a bit more to clean up the escapes handling and minimize the
4162 logic a bit more to clean up the escapes handling and minimize the
4157 use of _ofind to only necessary cases. The interactive 'feel' of
4163 use of _ofind to only necessary cases. The interactive 'feel' of
4158 IPython should have improved quite a bit with the changes in
4164 IPython should have improved quite a bit with the changes in
4159 _prefilter and _ofind (besides being far safer than before).
4165 _prefilter and _ofind (besides being far safer than before).
4160
4166
4161 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4167 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4162 obscure, never reported). Edit would fail to find the object to
4168 obscure, never reported). Edit would fail to find the object to
4163 edit under some circumstances.
4169 edit under some circumstances.
4164 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4170 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4165 which were causing double-calling of generators. Those eval calls
4171 which were causing double-calling of generators. Those eval calls
4166 were _very_ dangerous, since code with side effects could be
4172 were _very_ dangerous, since code with side effects could be
4167 triggered. As they say, 'eval is evil'... These were the
4173 triggered. As they say, 'eval is evil'... These were the
4168 nastiest evals in IPython. Besides, _ofind is now far simpler,
4174 nastiest evals in IPython. Besides, _ofind is now far simpler,
4169 and it should also be quite a bit faster. Its use of inspect is
4175 and it should also be quite a bit faster. Its use of inspect is
4170 also safer, so perhaps some of the inspect-related crashes I've
4176 also safer, so perhaps some of the inspect-related crashes I've
4171 seen lately with Python 2.3 might be taken care of. That will
4177 seen lately with Python 2.3 might be taken care of. That will
4172 need more testing.
4178 need more testing.
4173
4179
4174 2003-08-17 Fernando Perez <fperez@colorado.edu>
4180 2003-08-17 Fernando Perez <fperez@colorado.edu>
4175
4181
4176 * IPython/iplib.py (InteractiveShell._prefilter): significant
4182 * IPython/iplib.py (InteractiveShell._prefilter): significant
4177 simplifications to the logic for handling user escapes. Faster
4183 simplifications to the logic for handling user escapes. Faster
4178 and simpler code.
4184 and simpler code.
4179
4185
4180 2003-08-14 Fernando Perez <fperez@colorado.edu>
4186 2003-08-14 Fernando Perez <fperez@colorado.edu>
4181
4187
4182 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4188 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4183 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4189 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4184 but it should be quite a bit faster. And the recursive version
4190 but it should be quite a bit faster. And the recursive version
4185 generated O(log N) intermediate storage for all rank>1 arrays,
4191 generated O(log N) intermediate storage for all rank>1 arrays,
4186 even if they were contiguous.
4192 even if they were contiguous.
4187 (l1norm): Added this function.
4193 (l1norm): Added this function.
4188 (norm): Added this function for arbitrary norms (including
4194 (norm): Added this function for arbitrary norms (including
4189 l-infinity). l1 and l2 are still special cases for convenience
4195 l-infinity). l1 and l2 are still special cases for convenience
4190 and speed.
4196 and speed.
4191
4197
4192 2003-08-03 Fernando Perez <fperez@colorado.edu>
4198 2003-08-03 Fernando Perez <fperez@colorado.edu>
4193
4199
4194 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4200 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4195 exceptions, which now raise PendingDeprecationWarnings in Python
4201 exceptions, which now raise PendingDeprecationWarnings in Python
4196 2.3. There were some in Magic and some in Gnuplot2.
4202 2.3. There were some in Magic and some in Gnuplot2.
4197
4203
4198 2003-06-30 Fernando Perez <fperez@colorado.edu>
4204 2003-06-30 Fernando Perez <fperez@colorado.edu>
4199
4205
4200 * IPython/genutils.py (page): modified to call curses only for
4206 * IPython/genutils.py (page): modified to call curses only for
4201 terminals where TERM=='xterm'. After problems under many other
4207 terminals where TERM=='xterm'. After problems under many other
4202 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4208 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4203
4209
4204 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4210 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4205 would be triggered when readline was absent. This was just an old
4211 would be triggered when readline was absent. This was just an old
4206 debugging statement I'd forgotten to take out.
4212 debugging statement I'd forgotten to take out.
4207
4213
4208 2003-06-20 Fernando Perez <fperez@colorado.edu>
4214 2003-06-20 Fernando Perez <fperez@colorado.edu>
4209
4215
4210 * IPython/genutils.py (clock): modified to return only user time
4216 * IPython/genutils.py (clock): modified to return only user time
4211 (not counting system time), after a discussion on scipy. While
4217 (not counting system time), after a discussion on scipy. While
4212 system time may be a useful quantity occasionally, it may much
4218 system time may be a useful quantity occasionally, it may much
4213 more easily be skewed by occasional swapping or other similar
4219 more easily be skewed by occasional swapping or other similar
4214 activity.
4220 activity.
4215
4221
4216 2003-06-05 Fernando Perez <fperez@colorado.edu>
4222 2003-06-05 Fernando Perez <fperez@colorado.edu>
4217
4223
4218 * IPython/numutils.py (identity): new function, for building
4224 * IPython/numutils.py (identity): new function, for building
4219 arbitrary rank Kronecker deltas (mostly backwards compatible with
4225 arbitrary rank Kronecker deltas (mostly backwards compatible with
4220 Numeric.identity)
4226 Numeric.identity)
4221
4227
4222 2003-06-03 Fernando Perez <fperez@colorado.edu>
4228 2003-06-03 Fernando Perez <fperez@colorado.edu>
4223
4229
4224 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4230 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4225 arguments passed to magics with spaces, to allow trailing '\' to
4231 arguments passed to magics with spaces, to allow trailing '\' to
4226 work normally (mainly for Windows users).
4232 work normally (mainly for Windows users).
4227
4233
4228 2003-05-29 Fernando Perez <fperez@colorado.edu>
4234 2003-05-29 Fernando Perez <fperez@colorado.edu>
4229
4235
4230 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4236 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4231 instead of pydoc.help. This fixes a bizarre behavior where
4237 instead of pydoc.help. This fixes a bizarre behavior where
4232 printing '%s' % locals() would trigger the help system. Now
4238 printing '%s' % locals() would trigger the help system. Now
4233 ipython behaves like normal python does.
4239 ipython behaves like normal python does.
4234
4240
4235 Note that if one does 'from pydoc import help', the bizarre
4241 Note that if one does 'from pydoc import help', the bizarre
4236 behavior returns, but this will also happen in normal python, so
4242 behavior returns, but this will also happen in normal python, so
4237 it's not an ipython bug anymore (it has to do with how pydoc.help
4243 it's not an ipython bug anymore (it has to do with how pydoc.help
4238 is implemented).
4244 is implemented).
4239
4245
4240 2003-05-22 Fernando Perez <fperez@colorado.edu>
4246 2003-05-22 Fernando Perez <fperez@colorado.edu>
4241
4247
4242 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4248 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4243 return [] instead of None when nothing matches, also match to end
4249 return [] instead of None when nothing matches, also match to end
4244 of line. Patch by Gary Bishop.
4250 of line. Patch by Gary Bishop.
4245
4251
4246 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4252 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4247 protection as before, for files passed on the command line. This
4253 protection as before, for files passed on the command line. This
4248 prevents the CrashHandler from kicking in if user files call into
4254 prevents the CrashHandler from kicking in if user files call into
4249 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4255 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4250 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4256 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4251
4257
4252 2003-05-20 *** Released version 0.4.0
4258 2003-05-20 *** Released version 0.4.0
4253
4259
4254 2003-05-20 Fernando Perez <fperez@colorado.edu>
4260 2003-05-20 Fernando Perez <fperez@colorado.edu>
4255
4261
4256 * setup.py: added support for manpages. It's a bit hackish b/c of
4262 * setup.py: added support for manpages. It's a bit hackish b/c of
4257 a bug in the way the bdist_rpm distutils target handles gzipped
4263 a bug in the way the bdist_rpm distutils target handles gzipped
4258 manpages, but it works. After a patch by Jack.
4264 manpages, but it works. After a patch by Jack.
4259
4265
4260 2003-05-19 Fernando Perez <fperez@colorado.edu>
4266 2003-05-19 Fernando Perez <fperez@colorado.edu>
4261
4267
4262 * IPython/numutils.py: added a mockup of the kinds module, since
4268 * IPython/numutils.py: added a mockup of the kinds module, since
4263 it was recently removed from Numeric. This way, numutils will
4269 it was recently removed from Numeric. This way, numutils will
4264 work for all users even if they are missing kinds.
4270 work for all users even if they are missing kinds.
4265
4271
4266 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4272 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4267 failure, which can occur with SWIG-wrapped extensions. After a
4273 failure, which can occur with SWIG-wrapped extensions. After a
4268 crash report from Prabhu.
4274 crash report from Prabhu.
4269
4275
4270 2003-05-16 Fernando Perez <fperez@colorado.edu>
4276 2003-05-16 Fernando Perez <fperez@colorado.edu>
4271
4277
4272 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4278 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4273 protect ipython from user code which may call directly
4279 protect ipython from user code which may call directly
4274 sys.excepthook (this looks like an ipython crash to the user, even
4280 sys.excepthook (this looks like an ipython crash to the user, even
4275 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4281 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4276 This is especially important to help users of WxWindows, but may
4282 This is especially important to help users of WxWindows, but may
4277 also be useful in other cases.
4283 also be useful in other cases.
4278
4284
4279 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4285 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4280 an optional tb_offset to be specified, and to preserve exception
4286 an optional tb_offset to be specified, and to preserve exception
4281 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4287 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4282
4288
4283 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4289 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4284
4290
4285 2003-05-15 Fernando Perez <fperez@colorado.edu>
4291 2003-05-15 Fernando Perez <fperez@colorado.edu>
4286
4292
4287 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4293 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4288 installing for a new user under Windows.
4294 installing for a new user under Windows.
4289
4295
4290 2003-05-12 Fernando Perez <fperez@colorado.edu>
4296 2003-05-12 Fernando Perez <fperez@colorado.edu>
4291
4297
4292 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4298 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4293 handler for Emacs comint-based lines. Currently it doesn't do
4299 handler for Emacs comint-based lines. Currently it doesn't do
4294 much (but importantly, it doesn't update the history cache). In
4300 much (but importantly, it doesn't update the history cache). In
4295 the future it may be expanded if Alex needs more functionality
4301 the future it may be expanded if Alex needs more functionality
4296 there.
4302 there.
4297
4303
4298 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4304 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4299 info to crash reports.
4305 info to crash reports.
4300
4306
4301 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4307 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4302 just like Python's -c. Also fixed crash with invalid -color
4308 just like Python's -c. Also fixed crash with invalid -color
4303 option value at startup. Thanks to Will French
4309 option value at startup. Thanks to Will French
4304 <wfrench-AT-bestweb.net> for the bug report.
4310 <wfrench-AT-bestweb.net> for the bug report.
4305
4311
4306 2003-05-09 Fernando Perez <fperez@colorado.edu>
4312 2003-05-09 Fernando Perez <fperez@colorado.edu>
4307
4313
4308 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4314 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4309 to EvalDict (it's a mapping, after all) and simplified its code
4315 to EvalDict (it's a mapping, after all) and simplified its code
4310 quite a bit, after a nice discussion on c.l.py where Gustavo
4316 quite a bit, after a nice discussion on c.l.py where Gustavo
4311 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4317 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4312
4318
4313 2003-04-30 Fernando Perez <fperez@colorado.edu>
4319 2003-04-30 Fernando Perez <fperez@colorado.edu>
4314
4320
4315 * IPython/genutils.py (timings_out): modified it to reduce its
4321 * IPython/genutils.py (timings_out): modified it to reduce its
4316 overhead in the common reps==1 case.
4322 overhead in the common reps==1 case.
4317
4323
4318 2003-04-29 Fernando Perez <fperez@colorado.edu>
4324 2003-04-29 Fernando Perez <fperez@colorado.edu>
4319
4325
4320 * IPython/genutils.py (timings_out): Modified to use the resource
4326 * IPython/genutils.py (timings_out): Modified to use the resource
4321 module, which avoids the wraparound problems of time.clock().
4327 module, which avoids the wraparound problems of time.clock().
4322
4328
4323 2003-04-17 *** Released version 0.2.15pre4
4329 2003-04-17 *** Released version 0.2.15pre4
4324
4330
4325 2003-04-17 Fernando Perez <fperez@colorado.edu>
4331 2003-04-17 Fernando Perez <fperez@colorado.edu>
4326
4332
4327 * setup.py (scriptfiles): Split windows-specific stuff over to a
4333 * setup.py (scriptfiles): Split windows-specific stuff over to a
4328 separate file, in an attempt to have a Windows GUI installer.
4334 separate file, in an attempt to have a Windows GUI installer.
4329 That didn't work, but part of the groundwork is done.
4335 That didn't work, but part of the groundwork is done.
4330
4336
4331 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4337 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4332 indent/unindent with 4 spaces. Particularly useful in combination
4338 indent/unindent with 4 spaces. Particularly useful in combination
4333 with the new auto-indent option.
4339 with the new auto-indent option.
4334
4340
4335 2003-04-16 Fernando Perez <fperez@colorado.edu>
4341 2003-04-16 Fernando Perez <fperez@colorado.edu>
4336
4342
4337 * IPython/Magic.py: various replacements of self.rc for
4343 * IPython/Magic.py: various replacements of self.rc for
4338 self.shell.rc. A lot more remains to be done to fully disentangle
4344 self.shell.rc. A lot more remains to be done to fully disentangle
4339 this class from the main Shell class.
4345 this class from the main Shell class.
4340
4346
4341 * IPython/GnuplotRuntime.py: added checks for mouse support so
4347 * IPython/GnuplotRuntime.py: added checks for mouse support so
4342 that we don't try to enable it if the current gnuplot doesn't
4348 that we don't try to enable it if the current gnuplot doesn't
4343 really support it. Also added checks so that we don't try to
4349 really support it. Also added checks so that we don't try to
4344 enable persist under Windows (where Gnuplot doesn't recognize the
4350 enable persist under Windows (where Gnuplot doesn't recognize the
4345 option).
4351 option).
4346
4352
4347 * IPython/iplib.py (InteractiveShell.interact): Added optional
4353 * IPython/iplib.py (InteractiveShell.interact): Added optional
4348 auto-indenting code, after a patch by King C. Shu
4354 auto-indenting code, after a patch by King C. Shu
4349 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4355 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4350 get along well with pasting indented code. If I ever figure out
4356 get along well with pasting indented code. If I ever figure out
4351 how to make that part go well, it will become on by default.
4357 how to make that part go well, it will become on by default.
4352
4358
4353 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4359 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4354 crash ipython if there was an unmatched '%' in the user's prompt
4360 crash ipython if there was an unmatched '%' in the user's prompt
4355 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4361 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4356
4362
4357 * IPython/iplib.py (InteractiveShell.interact): removed the
4363 * IPython/iplib.py (InteractiveShell.interact): removed the
4358 ability to ask the user whether he wants to crash or not at the
4364 ability to ask the user whether he wants to crash or not at the
4359 'last line' exception handler. Calling functions at that point
4365 'last line' exception handler. Calling functions at that point
4360 changes the stack, and the error reports would have incorrect
4366 changes the stack, and the error reports would have incorrect
4361 tracebacks.
4367 tracebacks.
4362
4368
4363 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4369 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4364 pass through a peger a pretty-printed form of any object. After a
4370 pass through a peger a pretty-printed form of any object. After a
4365 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4371 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4366
4372
4367 2003-04-14 Fernando Perez <fperez@colorado.edu>
4373 2003-04-14 Fernando Perez <fperez@colorado.edu>
4368
4374
4369 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4375 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4370 all files in ~ would be modified at first install (instead of
4376 all files in ~ would be modified at first install (instead of
4371 ~/.ipython). This could be potentially disastrous, as the
4377 ~/.ipython). This could be potentially disastrous, as the
4372 modification (make line-endings native) could damage binary files.
4378 modification (make line-endings native) could damage binary files.
4373
4379
4374 2003-04-10 Fernando Perez <fperez@colorado.edu>
4380 2003-04-10 Fernando Perez <fperez@colorado.edu>
4375
4381
4376 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4382 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4377 handle only lines which are invalid python. This now means that
4383 handle only lines which are invalid python. This now means that
4378 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4384 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4379 for the bug report.
4385 for the bug report.
4380
4386
4381 2003-04-01 Fernando Perez <fperez@colorado.edu>
4387 2003-04-01 Fernando Perez <fperez@colorado.edu>
4382
4388
4383 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4389 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4384 where failing to set sys.last_traceback would crash pdb.pm().
4390 where failing to set sys.last_traceback would crash pdb.pm().
4385 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4391 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4386 report.
4392 report.
4387
4393
4388 2003-03-25 Fernando Perez <fperez@colorado.edu>
4394 2003-03-25 Fernando Perez <fperez@colorado.edu>
4389
4395
4390 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4396 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4391 before printing it (it had a lot of spurious blank lines at the
4397 before printing it (it had a lot of spurious blank lines at the
4392 end).
4398 end).
4393
4399
4394 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4400 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4395 output would be sent 21 times! Obviously people don't use this
4401 output would be sent 21 times! Obviously people don't use this
4396 too often, or I would have heard about it.
4402 too often, or I would have heard about it.
4397
4403
4398 2003-03-24 Fernando Perez <fperez@colorado.edu>
4404 2003-03-24 Fernando Perez <fperez@colorado.edu>
4399
4405
4400 * setup.py (scriptfiles): renamed the data_files parameter from
4406 * setup.py (scriptfiles): renamed the data_files parameter from
4401 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4407 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4402 for the patch.
4408 for the patch.
4403
4409
4404 2003-03-20 Fernando Perez <fperez@colorado.edu>
4410 2003-03-20 Fernando Perez <fperez@colorado.edu>
4405
4411
4406 * IPython/genutils.py (error): added error() and fatal()
4412 * IPython/genutils.py (error): added error() and fatal()
4407 functions.
4413 functions.
4408
4414
4409 2003-03-18 *** Released version 0.2.15pre3
4415 2003-03-18 *** Released version 0.2.15pre3
4410
4416
4411 2003-03-18 Fernando Perez <fperez@colorado.edu>
4417 2003-03-18 Fernando Perez <fperez@colorado.edu>
4412
4418
4413 * setupext/install_data_ext.py
4419 * setupext/install_data_ext.py
4414 (install_data_ext.initialize_options): Class contributed by Jack
4420 (install_data_ext.initialize_options): Class contributed by Jack
4415 Moffit for fixing the old distutils hack. He is sending this to
4421 Moffit for fixing the old distutils hack. He is sending this to
4416 the distutils folks so in the future we may not need it as a
4422 the distutils folks so in the future we may not need it as a
4417 private fix.
4423 private fix.
4418
4424
4419 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4425 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4420 changes for Debian packaging. See his patch for full details.
4426 changes for Debian packaging. See his patch for full details.
4421 The old distutils hack of making the ipythonrc* files carry a
4427 The old distutils hack of making the ipythonrc* files carry a
4422 bogus .py extension is gone, at last. Examples were moved to a
4428 bogus .py extension is gone, at last. Examples were moved to a
4423 separate subdir under doc/, and the separate executable scripts
4429 separate subdir under doc/, and the separate executable scripts
4424 now live in their own directory. Overall a great cleanup. The
4430 now live in their own directory. Overall a great cleanup. The
4425 manual was updated to use the new files, and setup.py has been
4431 manual was updated to use the new files, and setup.py has been
4426 fixed for this setup.
4432 fixed for this setup.
4427
4433
4428 * IPython/PyColorize.py (Parser.usage): made non-executable and
4434 * IPython/PyColorize.py (Parser.usage): made non-executable and
4429 created a pycolor wrapper around it to be included as a script.
4435 created a pycolor wrapper around it to be included as a script.
4430
4436
4431 2003-03-12 *** Released version 0.2.15pre2
4437 2003-03-12 *** Released version 0.2.15pre2
4432
4438
4433 2003-03-12 Fernando Perez <fperez@colorado.edu>
4439 2003-03-12 Fernando Perez <fperez@colorado.edu>
4434
4440
4435 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4441 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4436 long-standing problem with garbage characters in some terminals.
4442 long-standing problem with garbage characters in some terminals.
4437 The issue was really that the \001 and \002 escapes must _only_ be
4443 The issue was really that the \001 and \002 escapes must _only_ be
4438 passed to input prompts (which call readline), but _never_ to
4444 passed to input prompts (which call readline), but _never_ to
4439 normal text to be printed on screen. I changed ColorANSI to have
4445 normal text to be printed on screen. I changed ColorANSI to have
4440 two classes: TermColors and InputTermColors, each with the
4446 two classes: TermColors and InputTermColors, each with the
4441 appropriate escapes for input prompts or normal text. The code in
4447 appropriate escapes for input prompts or normal text. The code in
4442 Prompts.py got slightly more complicated, but this very old and
4448 Prompts.py got slightly more complicated, but this very old and
4443 annoying bug is finally fixed.
4449 annoying bug is finally fixed.
4444
4450
4445 All the credit for nailing down the real origin of this problem
4451 All the credit for nailing down the real origin of this problem
4446 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4452 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4447 *Many* thanks to him for spending quite a bit of effort on this.
4453 *Many* thanks to him for spending quite a bit of effort on this.
4448
4454
4449 2003-03-05 *** Released version 0.2.15pre1
4455 2003-03-05 *** Released version 0.2.15pre1
4450
4456
4451 2003-03-03 Fernando Perez <fperez@colorado.edu>
4457 2003-03-03 Fernando Perez <fperez@colorado.edu>
4452
4458
4453 * IPython/FakeModule.py: Moved the former _FakeModule to a
4459 * IPython/FakeModule.py: Moved the former _FakeModule to a
4454 separate file, because it's also needed by Magic (to fix a similar
4460 separate file, because it's also needed by Magic (to fix a similar
4455 pickle-related issue in @run).
4461 pickle-related issue in @run).
4456
4462
4457 2003-03-02 Fernando Perez <fperez@colorado.edu>
4463 2003-03-02 Fernando Perez <fperez@colorado.edu>
4458
4464
4459 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4465 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4460 the autocall option at runtime.
4466 the autocall option at runtime.
4461 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4467 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4462 across Magic.py to start separating Magic from InteractiveShell.
4468 across Magic.py to start separating Magic from InteractiveShell.
4463 (Magic._ofind): Fixed to return proper namespace for dotted
4469 (Magic._ofind): Fixed to return proper namespace for dotted
4464 names. Before, a dotted name would always return 'not currently
4470 names. Before, a dotted name would always return 'not currently
4465 defined', because it would find the 'parent'. s.x would be found,
4471 defined', because it would find the 'parent'. s.x would be found,
4466 but since 'x' isn't defined by itself, it would get confused.
4472 but since 'x' isn't defined by itself, it would get confused.
4467 (Magic.magic_run): Fixed pickling problems reported by Ralf
4473 (Magic.magic_run): Fixed pickling problems reported by Ralf
4468 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4474 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4469 that I'd used when Mike Heeter reported similar issues at the
4475 that I'd used when Mike Heeter reported similar issues at the
4470 top-level, but now for @run. It boils down to injecting the
4476 top-level, but now for @run. It boils down to injecting the
4471 namespace where code is being executed with something that looks
4477 namespace where code is being executed with something that looks
4472 enough like a module to fool pickle.dump(). Since a pickle stores
4478 enough like a module to fool pickle.dump(). Since a pickle stores
4473 a named reference to the importing module, we need this for
4479 a named reference to the importing module, we need this for
4474 pickles to save something sensible.
4480 pickles to save something sensible.
4475
4481
4476 * IPython/ipmaker.py (make_IPython): added an autocall option.
4482 * IPython/ipmaker.py (make_IPython): added an autocall option.
4477
4483
4478 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4484 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4479 the auto-eval code. Now autocalling is an option, and the code is
4485 the auto-eval code. Now autocalling is an option, and the code is
4480 also vastly safer. There is no more eval() involved at all.
4486 also vastly safer. There is no more eval() involved at all.
4481
4487
4482 2003-03-01 Fernando Perez <fperez@colorado.edu>
4488 2003-03-01 Fernando Perez <fperez@colorado.edu>
4483
4489
4484 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4490 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4485 dict with named keys instead of a tuple.
4491 dict with named keys instead of a tuple.
4486
4492
4487 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4493 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4488
4494
4489 * setup.py (make_shortcut): Fixed message about directories
4495 * setup.py (make_shortcut): Fixed message about directories
4490 created during Windows installation (the directories were ok, just
4496 created during Windows installation (the directories were ok, just
4491 the printed message was misleading). Thanks to Chris Liechti
4497 the printed message was misleading). Thanks to Chris Liechti
4492 <cliechti-AT-gmx.net> for the heads up.
4498 <cliechti-AT-gmx.net> for the heads up.
4493
4499
4494 2003-02-21 Fernando Perez <fperez@colorado.edu>
4500 2003-02-21 Fernando Perez <fperez@colorado.edu>
4495
4501
4496 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4502 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4497 of ValueError exception when checking for auto-execution. This
4503 of ValueError exception when checking for auto-execution. This
4498 one is raised by things like Numeric arrays arr.flat when the
4504 one is raised by things like Numeric arrays arr.flat when the
4499 array is non-contiguous.
4505 array is non-contiguous.
4500
4506
4501 2003-01-31 Fernando Perez <fperez@colorado.edu>
4507 2003-01-31 Fernando Perez <fperez@colorado.edu>
4502
4508
4503 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4509 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4504 not return any value at all (even though the command would get
4510 not return any value at all (even though the command would get
4505 executed).
4511 executed).
4506 (xsys): Flush stdout right after printing the command to ensure
4512 (xsys): Flush stdout right after printing the command to ensure
4507 proper ordering of commands and command output in the total
4513 proper ordering of commands and command output in the total
4508 output.
4514 output.
4509 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4515 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4510 system/getoutput as defaults. The old ones are kept for
4516 system/getoutput as defaults. The old ones are kept for
4511 compatibility reasons, so no code which uses this library needs
4517 compatibility reasons, so no code which uses this library needs
4512 changing.
4518 changing.
4513
4519
4514 2003-01-27 *** Released version 0.2.14
4520 2003-01-27 *** Released version 0.2.14
4515
4521
4516 2003-01-25 Fernando Perez <fperez@colorado.edu>
4522 2003-01-25 Fernando Perez <fperez@colorado.edu>
4517
4523
4518 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4524 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4519 functions defined in previous edit sessions could not be re-edited
4525 functions defined in previous edit sessions could not be re-edited
4520 (because the temp files were immediately removed). Now temp files
4526 (because the temp files were immediately removed). Now temp files
4521 are removed only at IPython's exit.
4527 are removed only at IPython's exit.
4522 (Magic.magic_run): Improved @run to perform shell-like expansions
4528 (Magic.magic_run): Improved @run to perform shell-like expansions
4523 on its arguments (~users and $VARS). With this, @run becomes more
4529 on its arguments (~users and $VARS). With this, @run becomes more
4524 like a normal command-line.
4530 like a normal command-line.
4525
4531
4526 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4532 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4527 bugs related to embedding and cleaned up that code. A fairly
4533 bugs related to embedding and cleaned up that code. A fairly
4528 important one was the impossibility to access the global namespace
4534 important one was the impossibility to access the global namespace
4529 through the embedded IPython (only local variables were visible).
4535 through the embedded IPython (only local variables were visible).
4530
4536
4531 2003-01-14 Fernando Perez <fperez@colorado.edu>
4537 2003-01-14 Fernando Perez <fperez@colorado.edu>
4532
4538
4533 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4539 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4534 auto-calling to be a bit more conservative. Now it doesn't get
4540 auto-calling to be a bit more conservative. Now it doesn't get
4535 triggered if any of '!=()<>' are in the rest of the input line, to
4541 triggered if any of '!=()<>' are in the rest of the input line, to
4536 allow comparing callables. Thanks to Alex for the heads up.
4542 allow comparing callables. Thanks to Alex for the heads up.
4537
4543
4538 2003-01-07 Fernando Perez <fperez@colorado.edu>
4544 2003-01-07 Fernando Perez <fperez@colorado.edu>
4539
4545
4540 * IPython/genutils.py (page): fixed estimation of the number of
4546 * IPython/genutils.py (page): fixed estimation of the number of
4541 lines in a string to be paged to simply count newlines. This
4547 lines in a string to be paged to simply count newlines. This
4542 prevents over-guessing due to embedded escape sequences. A better
4548 prevents over-guessing due to embedded escape sequences. A better
4543 long-term solution would involve stripping out the control chars
4549 long-term solution would involve stripping out the control chars
4544 for the count, but it's potentially so expensive I just don't
4550 for the count, but it's potentially so expensive I just don't
4545 think it's worth doing.
4551 think it's worth doing.
4546
4552
4547 2002-12-19 *** Released version 0.2.14pre50
4553 2002-12-19 *** Released version 0.2.14pre50
4548
4554
4549 2002-12-19 Fernando Perez <fperez@colorado.edu>
4555 2002-12-19 Fernando Perez <fperez@colorado.edu>
4550
4556
4551 * tools/release (version): Changed release scripts to inform
4557 * tools/release (version): Changed release scripts to inform
4552 Andrea and build a NEWS file with a list of recent changes.
4558 Andrea and build a NEWS file with a list of recent changes.
4553
4559
4554 * IPython/ColorANSI.py (__all__): changed terminal detection
4560 * IPython/ColorANSI.py (__all__): changed terminal detection
4555 code. Seems to work better for xterms without breaking
4561 code. Seems to work better for xterms without breaking
4556 konsole. Will need more testing to determine if WinXP and Mac OSX
4562 konsole. Will need more testing to determine if WinXP and Mac OSX
4557 also work ok.
4563 also work ok.
4558
4564
4559 2002-12-18 *** Released version 0.2.14pre49
4565 2002-12-18 *** Released version 0.2.14pre49
4560
4566
4561 2002-12-18 Fernando Perez <fperez@colorado.edu>
4567 2002-12-18 Fernando Perez <fperez@colorado.edu>
4562
4568
4563 * Docs: added new info about Mac OSX, from Andrea.
4569 * Docs: added new info about Mac OSX, from Andrea.
4564
4570
4565 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4571 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4566 allow direct plotting of python strings whose format is the same
4572 allow direct plotting of python strings whose format is the same
4567 of gnuplot data files.
4573 of gnuplot data files.
4568
4574
4569 2002-12-16 Fernando Perez <fperez@colorado.edu>
4575 2002-12-16 Fernando Perez <fperez@colorado.edu>
4570
4576
4571 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4577 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4572 value of exit question to be acknowledged.
4578 value of exit question to be acknowledged.
4573
4579
4574 2002-12-03 Fernando Perez <fperez@colorado.edu>
4580 2002-12-03 Fernando Perez <fperez@colorado.edu>
4575
4581
4576 * IPython/ipmaker.py: removed generators, which had been added
4582 * IPython/ipmaker.py: removed generators, which had been added
4577 by mistake in an earlier debugging run. This was causing trouble
4583 by mistake in an earlier debugging run. This was causing trouble
4578 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4584 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4579 for pointing this out.
4585 for pointing this out.
4580
4586
4581 2002-11-17 Fernando Perez <fperez@colorado.edu>
4587 2002-11-17 Fernando Perez <fperez@colorado.edu>
4582
4588
4583 * Manual: updated the Gnuplot section.
4589 * Manual: updated the Gnuplot section.
4584
4590
4585 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4591 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4586 a much better split of what goes in Runtime and what goes in
4592 a much better split of what goes in Runtime and what goes in
4587 Interactive.
4593 Interactive.
4588
4594
4589 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4595 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4590 being imported from iplib.
4596 being imported from iplib.
4591
4597
4592 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4598 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4593 for command-passing. Now the global Gnuplot instance is called
4599 for command-passing. Now the global Gnuplot instance is called
4594 'gp' instead of 'g', which was really a far too fragile and
4600 'gp' instead of 'g', which was really a far too fragile and
4595 common name.
4601 common name.
4596
4602
4597 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4603 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4598 bounding boxes generated by Gnuplot for square plots.
4604 bounding boxes generated by Gnuplot for square plots.
4599
4605
4600 * IPython/genutils.py (popkey): new function added. I should
4606 * IPython/genutils.py (popkey): new function added. I should
4601 suggest this on c.l.py as a dict method, it seems useful.
4607 suggest this on c.l.py as a dict method, it seems useful.
4602
4608
4603 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4609 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4604 to transparently handle PostScript generation. MUCH better than
4610 to transparently handle PostScript generation. MUCH better than
4605 the previous plot_eps/replot_eps (which I removed now). The code
4611 the previous plot_eps/replot_eps (which I removed now). The code
4606 is also fairly clean and well documented now (including
4612 is also fairly clean and well documented now (including
4607 docstrings).
4613 docstrings).
4608
4614
4609 2002-11-13 Fernando Perez <fperez@colorado.edu>
4615 2002-11-13 Fernando Perez <fperez@colorado.edu>
4610
4616
4611 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4617 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4612 (inconsistent with options).
4618 (inconsistent with options).
4613
4619
4614 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4620 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4615 manually disabled, I don't know why. Fixed it.
4621 manually disabled, I don't know why. Fixed it.
4616 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4622 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4617 eps output.
4623 eps output.
4618
4624
4619 2002-11-12 Fernando Perez <fperez@colorado.edu>
4625 2002-11-12 Fernando Perez <fperez@colorado.edu>
4620
4626
4621 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4627 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4622 don't propagate up to caller. Fixes crash reported by François
4628 don't propagate up to caller. Fixes crash reported by François
4623 Pinard.
4629 Pinard.
4624
4630
4625 2002-11-09 Fernando Perez <fperez@colorado.edu>
4631 2002-11-09 Fernando Perez <fperez@colorado.edu>
4626
4632
4627 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4633 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4628 history file for new users.
4634 history file for new users.
4629 (make_IPython): fixed bug where initial install would leave the
4635 (make_IPython): fixed bug where initial install would leave the
4630 user running in the .ipython dir.
4636 user running in the .ipython dir.
4631 (make_IPython): fixed bug where config dir .ipython would be
4637 (make_IPython): fixed bug where config dir .ipython would be
4632 created regardless of the given -ipythondir option. Thanks to Cory
4638 created regardless of the given -ipythondir option. Thanks to Cory
4633 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4639 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4634
4640
4635 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4641 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4636 type confirmations. Will need to use it in all of IPython's code
4642 type confirmations. Will need to use it in all of IPython's code
4637 consistently.
4643 consistently.
4638
4644
4639 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4645 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4640 context to print 31 lines instead of the default 5. This will make
4646 context to print 31 lines instead of the default 5. This will make
4641 the crash reports extremely detailed in case the problem is in
4647 the crash reports extremely detailed in case the problem is in
4642 libraries I don't have access to.
4648 libraries I don't have access to.
4643
4649
4644 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4650 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4645 line of defense' code to still crash, but giving users fair
4651 line of defense' code to still crash, but giving users fair
4646 warning. I don't want internal errors to go unreported: if there's
4652 warning. I don't want internal errors to go unreported: if there's
4647 an internal problem, IPython should crash and generate a full
4653 an internal problem, IPython should crash and generate a full
4648 report.
4654 report.
4649
4655
4650 2002-11-08 Fernando Perez <fperez@colorado.edu>
4656 2002-11-08 Fernando Perez <fperez@colorado.edu>
4651
4657
4652 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4658 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4653 otherwise uncaught exceptions which can appear if people set
4659 otherwise uncaught exceptions which can appear if people set
4654 sys.stdout to something badly broken. Thanks to a crash report
4660 sys.stdout to something badly broken. Thanks to a crash report
4655 from henni-AT-mail.brainbot.com.
4661 from henni-AT-mail.brainbot.com.
4656
4662
4657 2002-11-04 Fernando Perez <fperez@colorado.edu>
4663 2002-11-04 Fernando Perez <fperez@colorado.edu>
4658
4664
4659 * IPython/iplib.py (InteractiveShell.interact): added
4665 * IPython/iplib.py (InteractiveShell.interact): added
4660 __IPYTHON__active to the builtins. It's a flag which goes on when
4666 __IPYTHON__active to the builtins. It's a flag which goes on when
4661 the interaction starts and goes off again when it stops. This
4667 the interaction starts and goes off again when it stops. This
4662 allows embedding code to detect being inside IPython. Before this
4668 allows embedding code to detect being inside IPython. Before this
4663 was done via __IPYTHON__, but that only shows that an IPython
4669 was done via __IPYTHON__, but that only shows that an IPython
4664 instance has been created.
4670 instance has been created.
4665
4671
4666 * IPython/Magic.py (Magic.magic_env): I realized that in a
4672 * IPython/Magic.py (Magic.magic_env): I realized that in a
4667 UserDict, instance.data holds the data as a normal dict. So I
4673 UserDict, instance.data holds the data as a normal dict. So I
4668 modified @env to return os.environ.data instead of rebuilding a
4674 modified @env to return os.environ.data instead of rebuilding a
4669 dict by hand.
4675 dict by hand.
4670
4676
4671 2002-11-02 Fernando Perez <fperez@colorado.edu>
4677 2002-11-02 Fernando Perez <fperez@colorado.edu>
4672
4678
4673 * IPython/genutils.py (warn): changed so that level 1 prints no
4679 * IPython/genutils.py (warn): changed so that level 1 prints no
4674 header. Level 2 is now the default (with 'WARNING' header, as
4680 header. Level 2 is now the default (with 'WARNING' header, as
4675 before). I think I tracked all places where changes were needed in
4681 before). I think I tracked all places where changes were needed in
4676 IPython, but outside code using the old level numbering may have
4682 IPython, but outside code using the old level numbering may have
4677 broken.
4683 broken.
4678
4684
4679 * IPython/iplib.py (InteractiveShell.runcode): added this to
4685 * IPython/iplib.py (InteractiveShell.runcode): added this to
4680 handle the tracebacks in SystemExit traps correctly. The previous
4686 handle the tracebacks in SystemExit traps correctly. The previous
4681 code (through interact) was printing more of the stack than
4687 code (through interact) was printing more of the stack than
4682 necessary, showing IPython internal code to the user.
4688 necessary, showing IPython internal code to the user.
4683
4689
4684 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4690 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4685 default. Now that the default at the confirmation prompt is yes,
4691 default. Now that the default at the confirmation prompt is yes,
4686 it's not so intrusive. François' argument that ipython sessions
4692 it's not so intrusive. François' argument that ipython sessions
4687 tend to be complex enough not to lose them from an accidental C-d,
4693 tend to be complex enough not to lose them from an accidental C-d,
4688 is a valid one.
4694 is a valid one.
4689
4695
4690 * IPython/iplib.py (InteractiveShell.interact): added a
4696 * IPython/iplib.py (InteractiveShell.interact): added a
4691 showtraceback() call to the SystemExit trap, and modified the exit
4697 showtraceback() call to the SystemExit trap, and modified the exit
4692 confirmation to have yes as the default.
4698 confirmation to have yes as the default.
4693
4699
4694 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4700 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4695 this file. It's been gone from the code for a long time, this was
4701 this file. It's been gone from the code for a long time, this was
4696 simply leftover junk.
4702 simply leftover junk.
4697
4703
4698 2002-11-01 Fernando Perez <fperez@colorado.edu>
4704 2002-11-01 Fernando Perez <fperez@colorado.edu>
4699
4705
4700 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4706 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4701 added. If set, IPython now traps EOF and asks for
4707 added. If set, IPython now traps EOF and asks for
4702 confirmation. After a request by François Pinard.
4708 confirmation. After a request by François Pinard.
4703
4709
4704 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4710 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4705 of @abort, and with a new (better) mechanism for handling the
4711 of @abort, and with a new (better) mechanism for handling the
4706 exceptions.
4712 exceptions.
4707
4713
4708 2002-10-27 Fernando Perez <fperez@colorado.edu>
4714 2002-10-27 Fernando Perez <fperez@colorado.edu>
4709
4715
4710 * IPython/usage.py (__doc__): updated the --help information and
4716 * IPython/usage.py (__doc__): updated the --help information and
4711 the ipythonrc file to indicate that -log generates
4717 the ipythonrc file to indicate that -log generates
4712 ./ipython.log. Also fixed the corresponding info in @logstart.
4718 ./ipython.log. Also fixed the corresponding info in @logstart.
4713 This and several other fixes in the manuals thanks to reports by
4719 This and several other fixes in the manuals thanks to reports by
4714 François Pinard <pinard-AT-iro.umontreal.ca>.
4720 François Pinard <pinard-AT-iro.umontreal.ca>.
4715
4721
4716 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4722 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4717 refer to @logstart (instead of @log, which doesn't exist).
4723 refer to @logstart (instead of @log, which doesn't exist).
4718
4724
4719 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4725 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4720 AttributeError crash. Thanks to Christopher Armstrong
4726 AttributeError crash. Thanks to Christopher Armstrong
4721 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4727 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4722 introduced recently (in 0.2.14pre37) with the fix to the eval
4728 introduced recently (in 0.2.14pre37) with the fix to the eval
4723 problem mentioned below.
4729 problem mentioned below.
4724
4730
4725 2002-10-17 Fernando Perez <fperez@colorado.edu>
4731 2002-10-17 Fernando Perez <fperez@colorado.edu>
4726
4732
4727 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4733 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4728 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4734 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4729
4735
4730 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4736 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4731 this function to fix a problem reported by Alex Schmolck. He saw
4737 this function to fix a problem reported by Alex Schmolck. He saw
4732 it with list comprehensions and generators, which were getting
4738 it with list comprehensions and generators, which were getting
4733 called twice. The real problem was an 'eval' call in testing for
4739 called twice. The real problem was an 'eval' call in testing for
4734 automagic which was evaluating the input line silently.
4740 automagic which was evaluating the input line silently.
4735
4741
4736 This is a potentially very nasty bug, if the input has side
4742 This is a potentially very nasty bug, if the input has side
4737 effects which must not be repeated. The code is much cleaner now,
4743 effects which must not be repeated. The code is much cleaner now,
4738 without any blanket 'except' left and with a regexp test for
4744 without any blanket 'except' left and with a regexp test for
4739 actual function names.
4745 actual function names.
4740
4746
4741 But an eval remains, which I'm not fully comfortable with. I just
4747 But an eval remains, which I'm not fully comfortable with. I just
4742 don't know how to find out if an expression could be a callable in
4748 don't know how to find out if an expression could be a callable in
4743 the user's namespace without doing an eval on the string. However
4749 the user's namespace without doing an eval on the string. However
4744 that string is now much more strictly checked so that no code
4750 that string is now much more strictly checked so that no code
4745 slips by, so the eval should only happen for things that can
4751 slips by, so the eval should only happen for things that can
4746 really be only function/method names.
4752 really be only function/method names.
4747
4753
4748 2002-10-15 Fernando Perez <fperez@colorado.edu>
4754 2002-10-15 Fernando Perez <fperez@colorado.edu>
4749
4755
4750 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4756 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4751 OSX information to main manual, removed README_Mac_OSX file from
4757 OSX information to main manual, removed README_Mac_OSX file from
4752 distribution. Also updated credits for recent additions.
4758 distribution. Also updated credits for recent additions.
4753
4759
4754 2002-10-10 Fernando Perez <fperez@colorado.edu>
4760 2002-10-10 Fernando Perez <fperez@colorado.edu>
4755
4761
4756 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4762 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4757 terminal-related issues. Many thanks to Andrea Riciputi
4763 terminal-related issues. Many thanks to Andrea Riciputi
4758 <andrea.riciputi-AT-libero.it> for writing it.
4764 <andrea.riciputi-AT-libero.it> for writing it.
4759
4765
4760 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4766 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4761 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4767 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4762
4768
4763 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4769 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4764 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4770 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4765 <syver-en-AT-online.no> who both submitted patches for this problem.
4771 <syver-en-AT-online.no> who both submitted patches for this problem.
4766
4772
4767 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4773 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4768 global embedding to make sure that things don't overwrite user
4774 global embedding to make sure that things don't overwrite user
4769 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4775 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4770
4776
4771 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4777 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4772 compatibility. Thanks to Hayden Callow
4778 compatibility. Thanks to Hayden Callow
4773 <h.callow-AT-elec.canterbury.ac.nz>
4779 <h.callow-AT-elec.canterbury.ac.nz>
4774
4780
4775 2002-10-04 Fernando Perez <fperez@colorado.edu>
4781 2002-10-04 Fernando Perez <fperez@colorado.edu>
4776
4782
4777 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4783 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4778 Gnuplot.File objects.
4784 Gnuplot.File objects.
4779
4785
4780 2002-07-23 Fernando Perez <fperez@colorado.edu>
4786 2002-07-23 Fernando Perez <fperez@colorado.edu>
4781
4787
4782 * IPython/genutils.py (timing): Added timings() and timing() for
4788 * IPython/genutils.py (timing): Added timings() and timing() for
4783 quick access to the most commonly needed data, the execution
4789 quick access to the most commonly needed data, the execution
4784 times. Old timing() renamed to timings_out().
4790 times. Old timing() renamed to timings_out().
4785
4791
4786 2002-07-18 Fernando Perez <fperez@colorado.edu>
4792 2002-07-18 Fernando Perez <fperez@colorado.edu>
4787
4793
4788 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4794 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4789 bug with nested instances disrupting the parent's tab completion.
4795 bug with nested instances disrupting the parent's tab completion.
4790
4796
4791 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4797 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4792 all_completions code to begin the emacs integration.
4798 all_completions code to begin the emacs integration.
4793
4799
4794 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4800 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4795 argument to allow titling individual arrays when plotting.
4801 argument to allow titling individual arrays when plotting.
4796
4802
4797 2002-07-15 Fernando Perez <fperez@colorado.edu>
4803 2002-07-15 Fernando Perez <fperez@colorado.edu>
4798
4804
4799 * setup.py (make_shortcut): changed to retrieve the value of
4805 * setup.py (make_shortcut): changed to retrieve the value of
4800 'Program Files' directory from the registry (this value changes in
4806 'Program Files' directory from the registry (this value changes in
4801 non-english versions of Windows). Thanks to Thomas Fanslau
4807 non-english versions of Windows). Thanks to Thomas Fanslau
4802 <tfanslau-AT-gmx.de> for the report.
4808 <tfanslau-AT-gmx.de> for the report.
4803
4809
4804 2002-07-10 Fernando Perez <fperez@colorado.edu>
4810 2002-07-10 Fernando Perez <fperez@colorado.edu>
4805
4811
4806 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4812 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4807 a bug in pdb, which crashes if a line with only whitespace is
4813 a bug in pdb, which crashes if a line with only whitespace is
4808 entered. Bug report submitted to sourceforge.
4814 entered. Bug report submitted to sourceforge.
4809
4815
4810 2002-07-09 Fernando Perez <fperez@colorado.edu>
4816 2002-07-09 Fernando Perez <fperez@colorado.edu>
4811
4817
4812 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4818 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4813 reporting exceptions (it's a bug in inspect.py, I just set a
4819 reporting exceptions (it's a bug in inspect.py, I just set a
4814 workaround).
4820 workaround).
4815
4821
4816 2002-07-08 Fernando Perez <fperez@colorado.edu>
4822 2002-07-08 Fernando Perez <fperez@colorado.edu>
4817
4823
4818 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4824 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4819 __IPYTHON__ in __builtins__ to show up in user_ns.
4825 __IPYTHON__ in __builtins__ to show up in user_ns.
4820
4826
4821 2002-07-03 Fernando Perez <fperez@colorado.edu>
4827 2002-07-03 Fernando Perez <fperez@colorado.edu>
4822
4828
4823 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4829 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4824 name from @gp_set_instance to @gp_set_default.
4830 name from @gp_set_instance to @gp_set_default.
4825
4831
4826 * IPython/ipmaker.py (make_IPython): default editor value set to
4832 * IPython/ipmaker.py (make_IPython): default editor value set to
4827 '0' (a string), to match the rc file. Otherwise will crash when
4833 '0' (a string), to match the rc file. Otherwise will crash when
4828 .strip() is called on it.
4834 .strip() is called on it.
4829
4835
4830
4836
4831 2002-06-28 Fernando Perez <fperez@colorado.edu>
4837 2002-06-28 Fernando Perez <fperez@colorado.edu>
4832
4838
4833 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4839 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4834 of files in current directory when a file is executed via
4840 of files in current directory when a file is executed via
4835 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4841 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4836
4842
4837 * setup.py (manfiles): fix for rpm builds, submitted by RA
4843 * setup.py (manfiles): fix for rpm builds, submitted by RA
4838 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4844 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4839
4845
4840 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4846 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4841 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4847 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4842 string!). A. Schmolck caught this one.
4848 string!). A. Schmolck caught this one.
4843
4849
4844 2002-06-27 Fernando Perez <fperez@colorado.edu>
4850 2002-06-27 Fernando Perez <fperez@colorado.edu>
4845
4851
4846 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4852 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4847 defined files at the cmd line. __name__ wasn't being set to
4853 defined files at the cmd line. __name__ wasn't being set to
4848 __main__.
4854 __main__.
4849
4855
4850 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4856 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4851 regular lists and tuples besides Numeric arrays.
4857 regular lists and tuples besides Numeric arrays.
4852
4858
4853 * IPython/Prompts.py (CachedOutput.__call__): Added output
4859 * IPython/Prompts.py (CachedOutput.__call__): Added output
4854 supression for input ending with ';'. Similar to Mathematica and
4860 supression for input ending with ';'. Similar to Mathematica and
4855 Matlab. The _* vars and Out[] list are still updated, just like
4861 Matlab. The _* vars and Out[] list are still updated, just like
4856 Mathematica behaves.
4862 Mathematica behaves.
4857
4863
4858 2002-06-25 Fernando Perez <fperez@colorado.edu>
4864 2002-06-25 Fernando Perez <fperez@colorado.edu>
4859
4865
4860 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4866 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4861 .ini extensions for profiels under Windows.
4867 .ini extensions for profiels under Windows.
4862
4868
4863 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4869 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4864 string form. Fix contributed by Alexander Schmolck
4870 string form. Fix contributed by Alexander Schmolck
4865 <a.schmolck-AT-gmx.net>
4871 <a.schmolck-AT-gmx.net>
4866
4872
4867 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4873 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4868 pre-configured Gnuplot instance.
4874 pre-configured Gnuplot instance.
4869
4875
4870 2002-06-21 Fernando Perez <fperez@colorado.edu>
4876 2002-06-21 Fernando Perez <fperez@colorado.edu>
4871
4877
4872 * IPython/numutils.py (exp_safe): new function, works around the
4878 * IPython/numutils.py (exp_safe): new function, works around the
4873 underflow problems in Numeric.
4879 underflow problems in Numeric.
4874 (log2): New fn. Safe log in base 2: returns exact integer answer
4880 (log2): New fn. Safe log in base 2: returns exact integer answer
4875 for exact integer powers of 2.
4881 for exact integer powers of 2.
4876
4882
4877 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4883 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4878 properly.
4884 properly.
4879
4885
4880 2002-06-20 Fernando Perez <fperez@colorado.edu>
4886 2002-06-20 Fernando Perez <fperez@colorado.edu>
4881
4887
4882 * IPython/genutils.py (timing): new function like
4888 * IPython/genutils.py (timing): new function like
4883 Mathematica's. Similar to time_test, but returns more info.
4889 Mathematica's. Similar to time_test, but returns more info.
4884
4890
4885 2002-06-18 Fernando Perez <fperez@colorado.edu>
4891 2002-06-18 Fernando Perez <fperez@colorado.edu>
4886
4892
4887 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4893 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4888 according to Mike Heeter's suggestions.
4894 according to Mike Heeter's suggestions.
4889
4895
4890 2002-06-16 Fernando Perez <fperez@colorado.edu>
4896 2002-06-16 Fernando Perez <fperez@colorado.edu>
4891
4897
4892 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4898 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4893 system. GnuplotMagic is gone as a user-directory option. New files
4899 system. GnuplotMagic is gone as a user-directory option. New files
4894 make it easier to use all the gnuplot stuff both from external
4900 make it easier to use all the gnuplot stuff both from external
4895 programs as well as from IPython. Had to rewrite part of
4901 programs as well as from IPython. Had to rewrite part of
4896 hardcopy() b/c of a strange bug: often the ps files simply don't
4902 hardcopy() b/c of a strange bug: often the ps files simply don't
4897 get created, and require a repeat of the command (often several
4903 get created, and require a repeat of the command (often several
4898 times).
4904 times).
4899
4905
4900 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4906 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4901 resolve output channel at call time, so that if sys.stderr has
4907 resolve output channel at call time, so that if sys.stderr has
4902 been redirected by user this gets honored.
4908 been redirected by user this gets honored.
4903
4909
4904 2002-06-13 Fernando Perez <fperez@colorado.edu>
4910 2002-06-13 Fernando Perez <fperez@colorado.edu>
4905
4911
4906 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4912 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4907 IPShell. Kept a copy with the old names to avoid breaking people's
4913 IPShell. Kept a copy with the old names to avoid breaking people's
4908 embedded code.
4914 embedded code.
4909
4915
4910 * IPython/ipython: simplified it to the bare minimum after
4916 * IPython/ipython: simplified it to the bare minimum after
4911 Holger's suggestions. Added info about how to use it in
4917 Holger's suggestions. Added info about how to use it in
4912 PYTHONSTARTUP.
4918 PYTHONSTARTUP.
4913
4919
4914 * IPython/Shell.py (IPythonShell): changed the options passing
4920 * IPython/Shell.py (IPythonShell): changed the options passing
4915 from a string with funky %s replacements to a straight list. Maybe
4921 from a string with funky %s replacements to a straight list. Maybe
4916 a bit more typing, but it follows sys.argv conventions, so there's
4922 a bit more typing, but it follows sys.argv conventions, so there's
4917 less special-casing to remember.
4923 less special-casing to remember.
4918
4924
4919 2002-06-12 Fernando Perez <fperez@colorado.edu>
4925 2002-06-12 Fernando Perez <fperez@colorado.edu>
4920
4926
4921 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4927 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4922 command. Thanks to a suggestion by Mike Heeter.
4928 command. Thanks to a suggestion by Mike Heeter.
4923 (Magic.magic_pfile): added behavior to look at filenames if given
4929 (Magic.magic_pfile): added behavior to look at filenames if given
4924 arg is not a defined object.
4930 arg is not a defined object.
4925 (Magic.magic_save): New @save function to save code snippets. Also
4931 (Magic.magic_save): New @save function to save code snippets. Also
4926 a Mike Heeter idea.
4932 a Mike Heeter idea.
4927
4933
4928 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4934 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4929 plot() and replot(). Much more convenient now, especially for
4935 plot() and replot(). Much more convenient now, especially for
4930 interactive use.
4936 interactive use.
4931
4937
4932 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4938 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4933 filenames.
4939 filenames.
4934
4940
4935 2002-06-02 Fernando Perez <fperez@colorado.edu>
4941 2002-06-02 Fernando Perez <fperez@colorado.edu>
4936
4942
4937 * IPython/Struct.py (Struct.__init__): modified to admit
4943 * IPython/Struct.py (Struct.__init__): modified to admit
4938 initialization via another struct.
4944 initialization via another struct.
4939
4945
4940 * IPython/genutils.py (SystemExec.__init__): New stateful
4946 * IPython/genutils.py (SystemExec.__init__): New stateful
4941 interface to xsys and bq. Useful for writing system scripts.
4947 interface to xsys and bq. Useful for writing system scripts.
4942
4948
4943 2002-05-30 Fernando Perez <fperez@colorado.edu>
4949 2002-05-30 Fernando Perez <fperez@colorado.edu>
4944
4950
4945 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4951 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4946 documents. This will make the user download smaller (it's getting
4952 documents. This will make the user download smaller (it's getting
4947 too big).
4953 too big).
4948
4954
4949 2002-05-29 Fernando Perez <fperez@colorado.edu>
4955 2002-05-29 Fernando Perez <fperez@colorado.edu>
4950
4956
4951 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4957 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4952 fix problems with shelve and pickle. Seems to work, but I don't
4958 fix problems with shelve and pickle. Seems to work, but I don't
4953 know if corner cases break it. Thanks to Mike Heeter
4959 know if corner cases break it. Thanks to Mike Heeter
4954 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4960 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4955
4961
4956 2002-05-24 Fernando Perez <fperez@colorado.edu>
4962 2002-05-24 Fernando Perez <fperez@colorado.edu>
4957
4963
4958 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4964 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4959 macros having broken.
4965 macros having broken.
4960
4966
4961 2002-05-21 Fernando Perez <fperez@colorado.edu>
4967 2002-05-21 Fernando Perez <fperez@colorado.edu>
4962
4968
4963 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4969 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4964 introduced logging bug: all history before logging started was
4970 introduced logging bug: all history before logging started was
4965 being written one character per line! This came from the redesign
4971 being written one character per line! This came from the redesign
4966 of the input history as a special list which slices to strings,
4972 of the input history as a special list which slices to strings,
4967 not to lists.
4973 not to lists.
4968
4974
4969 2002-05-20 Fernando Perez <fperez@colorado.edu>
4975 2002-05-20 Fernando Perez <fperez@colorado.edu>
4970
4976
4971 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4977 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4972 be an attribute of all classes in this module. The design of these
4978 be an attribute of all classes in this module. The design of these
4973 classes needs some serious overhauling.
4979 classes needs some serious overhauling.
4974
4980
4975 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4981 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4976 which was ignoring '_' in option names.
4982 which was ignoring '_' in option names.
4977
4983
4978 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4984 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4979 'Verbose_novars' to 'Context' and made it the new default. It's a
4985 'Verbose_novars' to 'Context' and made it the new default. It's a
4980 bit more readable and also safer than verbose.
4986 bit more readable and also safer than verbose.
4981
4987
4982 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4988 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4983 triple-quoted strings.
4989 triple-quoted strings.
4984
4990
4985 * IPython/OInspect.py (__all__): new module exposing the object
4991 * IPython/OInspect.py (__all__): new module exposing the object
4986 introspection facilities. Now the corresponding magics are dummy
4992 introspection facilities. Now the corresponding magics are dummy
4987 wrappers around this. Having this module will make it much easier
4993 wrappers around this. Having this module will make it much easier
4988 to put these functions into our modified pdb.
4994 to put these functions into our modified pdb.
4989 This new object inspector system uses the new colorizing module,
4995 This new object inspector system uses the new colorizing module,
4990 so source code and other things are nicely syntax highlighted.
4996 so source code and other things are nicely syntax highlighted.
4991
4997
4992 2002-05-18 Fernando Perez <fperez@colorado.edu>
4998 2002-05-18 Fernando Perez <fperez@colorado.edu>
4993
4999
4994 * IPython/ColorANSI.py: Split the coloring tools into a separate
5000 * IPython/ColorANSI.py: Split the coloring tools into a separate
4995 module so I can use them in other code easier (they were part of
5001 module so I can use them in other code easier (they were part of
4996 ultraTB).
5002 ultraTB).
4997
5003
4998 2002-05-17 Fernando Perez <fperez@colorado.edu>
5004 2002-05-17 Fernando Perez <fperez@colorado.edu>
4999
5005
5000 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5006 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5001 fixed it to set the global 'g' also to the called instance, as
5007 fixed it to set the global 'g' also to the called instance, as
5002 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5008 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5003 user's 'g' variables).
5009 user's 'g' variables).
5004
5010
5005 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5011 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5006 global variables (aliases to _ih,_oh) so that users which expect
5012 global variables (aliases to _ih,_oh) so that users which expect
5007 In[5] or Out[7] to work aren't unpleasantly surprised.
5013 In[5] or Out[7] to work aren't unpleasantly surprised.
5008 (InputList.__getslice__): new class to allow executing slices of
5014 (InputList.__getslice__): new class to allow executing slices of
5009 input history directly. Very simple class, complements the use of
5015 input history directly. Very simple class, complements the use of
5010 macros.
5016 macros.
5011
5017
5012 2002-05-16 Fernando Perez <fperez@colorado.edu>
5018 2002-05-16 Fernando Perez <fperez@colorado.edu>
5013
5019
5014 * setup.py (docdirbase): make doc directory be just doc/IPython
5020 * setup.py (docdirbase): make doc directory be just doc/IPython
5015 without version numbers, it will reduce clutter for users.
5021 without version numbers, it will reduce clutter for users.
5016
5022
5017 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5023 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5018 execfile call to prevent possible memory leak. See for details:
5024 execfile call to prevent possible memory leak. See for details:
5019 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5025 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5020
5026
5021 2002-05-15 Fernando Perez <fperez@colorado.edu>
5027 2002-05-15 Fernando Perez <fperez@colorado.edu>
5022
5028
5023 * IPython/Magic.py (Magic.magic_psource): made the object
5029 * IPython/Magic.py (Magic.magic_psource): made the object
5024 introspection names be more standard: pdoc, pdef, pfile and
5030 introspection names be more standard: pdoc, pdef, pfile and
5025 psource. They all print/page their output, and it makes
5031 psource. They all print/page their output, and it makes
5026 remembering them easier. Kept old names for compatibility as
5032 remembering them easier. Kept old names for compatibility as
5027 aliases.
5033 aliases.
5028
5034
5029 2002-05-14 Fernando Perez <fperez@colorado.edu>
5035 2002-05-14 Fernando Perez <fperez@colorado.edu>
5030
5036
5031 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5037 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5032 what the mouse problem was. The trick is to use gnuplot with temp
5038 what the mouse problem was. The trick is to use gnuplot with temp
5033 files and NOT with pipes (for data communication), because having
5039 files and NOT with pipes (for data communication), because having
5034 both pipes and the mouse on is bad news.
5040 both pipes and the mouse on is bad news.
5035
5041
5036 2002-05-13 Fernando Perez <fperez@colorado.edu>
5042 2002-05-13 Fernando Perez <fperez@colorado.edu>
5037
5043
5038 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5044 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5039 bug. Information would be reported about builtins even when
5045 bug. Information would be reported about builtins even when
5040 user-defined functions overrode them.
5046 user-defined functions overrode them.
5041
5047
5042 2002-05-11 Fernando Perez <fperez@colorado.edu>
5048 2002-05-11 Fernando Perez <fperez@colorado.edu>
5043
5049
5044 * IPython/__init__.py (__all__): removed FlexCompleter from
5050 * IPython/__init__.py (__all__): removed FlexCompleter from
5045 __all__ so that things don't fail in platforms without readline.
5051 __all__ so that things don't fail in platforms without readline.
5046
5052
5047 2002-05-10 Fernando Perez <fperez@colorado.edu>
5053 2002-05-10 Fernando Perez <fperez@colorado.edu>
5048
5054
5049 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5055 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5050 it requires Numeric, effectively making Numeric a dependency for
5056 it requires Numeric, effectively making Numeric a dependency for
5051 IPython.
5057 IPython.
5052
5058
5053 * Released 0.2.13
5059 * Released 0.2.13
5054
5060
5055 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5061 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5056 profiler interface. Now all the major options from the profiler
5062 profiler interface. Now all the major options from the profiler
5057 module are directly supported in IPython, both for single
5063 module are directly supported in IPython, both for single
5058 expressions (@prun) and for full programs (@run -p).
5064 expressions (@prun) and for full programs (@run -p).
5059
5065
5060 2002-05-09 Fernando Perez <fperez@colorado.edu>
5066 2002-05-09 Fernando Perez <fperez@colorado.edu>
5061
5067
5062 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5068 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5063 magic properly formatted for screen.
5069 magic properly formatted for screen.
5064
5070
5065 * setup.py (make_shortcut): Changed things to put pdf version in
5071 * setup.py (make_shortcut): Changed things to put pdf version in
5066 doc/ instead of doc/manual (had to change lyxport a bit).
5072 doc/ instead of doc/manual (had to change lyxport a bit).
5067
5073
5068 * IPython/Magic.py (Profile.string_stats): made profile runs go
5074 * IPython/Magic.py (Profile.string_stats): made profile runs go
5069 through pager (they are long and a pager allows searching, saving,
5075 through pager (they are long and a pager allows searching, saving,
5070 etc.)
5076 etc.)
5071
5077
5072 2002-05-08 Fernando Perez <fperez@colorado.edu>
5078 2002-05-08 Fernando Perez <fperez@colorado.edu>
5073
5079
5074 * Released 0.2.12
5080 * Released 0.2.12
5075
5081
5076 2002-05-06 Fernando Perez <fperez@colorado.edu>
5082 2002-05-06 Fernando Perez <fperez@colorado.edu>
5077
5083
5078 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5084 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5079 introduced); 'hist n1 n2' was broken.
5085 introduced); 'hist n1 n2' was broken.
5080 (Magic.magic_pdb): added optional on/off arguments to @pdb
5086 (Magic.magic_pdb): added optional on/off arguments to @pdb
5081 (Magic.magic_run): added option -i to @run, which executes code in
5087 (Magic.magic_run): added option -i to @run, which executes code in
5082 the IPython namespace instead of a clean one. Also added @irun as
5088 the IPython namespace instead of a clean one. Also added @irun as
5083 an alias to @run -i.
5089 an alias to @run -i.
5084
5090
5085 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5091 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5086 fixed (it didn't really do anything, the namespaces were wrong).
5092 fixed (it didn't really do anything, the namespaces were wrong).
5087
5093
5088 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5094 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5089
5095
5090 * IPython/__init__.py (__all__): Fixed package namespace, now
5096 * IPython/__init__.py (__all__): Fixed package namespace, now
5091 'import IPython' does give access to IPython.<all> as
5097 'import IPython' does give access to IPython.<all> as
5092 expected. Also renamed __release__ to Release.
5098 expected. Also renamed __release__ to Release.
5093
5099
5094 * IPython/Debugger.py (__license__): created new Pdb class which
5100 * IPython/Debugger.py (__license__): created new Pdb class which
5095 functions like a drop-in for the normal pdb.Pdb but does NOT
5101 functions like a drop-in for the normal pdb.Pdb but does NOT
5096 import readline by default. This way it doesn't muck up IPython's
5102 import readline by default. This way it doesn't muck up IPython's
5097 readline handling, and now tab-completion finally works in the
5103 readline handling, and now tab-completion finally works in the
5098 debugger -- sort of. It completes things globally visible, but the
5104 debugger -- sort of. It completes things globally visible, but the
5099 completer doesn't track the stack as pdb walks it. That's a bit
5105 completer doesn't track the stack as pdb walks it. That's a bit
5100 tricky, and I'll have to implement it later.
5106 tricky, and I'll have to implement it later.
5101
5107
5102 2002-05-05 Fernando Perez <fperez@colorado.edu>
5108 2002-05-05 Fernando Perez <fperez@colorado.edu>
5103
5109
5104 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5110 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5105 magic docstrings when printed via ? (explicit \'s were being
5111 magic docstrings when printed via ? (explicit \'s were being
5106 printed).
5112 printed).
5107
5113
5108 * IPython/ipmaker.py (make_IPython): fixed namespace
5114 * IPython/ipmaker.py (make_IPython): fixed namespace
5109 identification bug. Now variables loaded via logs or command-line
5115 identification bug. Now variables loaded via logs or command-line
5110 files are recognized in the interactive namespace by @who.
5116 files are recognized in the interactive namespace by @who.
5111
5117
5112 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5118 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5113 log replay system stemming from the string form of Structs.
5119 log replay system stemming from the string form of Structs.
5114
5120
5115 * IPython/Magic.py (Macro.__init__): improved macros to properly
5121 * IPython/Magic.py (Macro.__init__): improved macros to properly
5116 handle magic commands in them.
5122 handle magic commands in them.
5117 (Magic.magic_logstart): usernames are now expanded so 'logstart
5123 (Magic.magic_logstart): usernames are now expanded so 'logstart
5118 ~/mylog' now works.
5124 ~/mylog' now works.
5119
5125
5120 * IPython/iplib.py (complete): fixed bug where paths starting with
5126 * IPython/iplib.py (complete): fixed bug where paths starting with
5121 '/' would be completed as magic names.
5127 '/' would be completed as magic names.
5122
5128
5123 2002-05-04 Fernando Perez <fperez@colorado.edu>
5129 2002-05-04 Fernando Perez <fperez@colorado.edu>
5124
5130
5125 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5131 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5126 allow running full programs under the profiler's control.
5132 allow running full programs under the profiler's control.
5127
5133
5128 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5134 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5129 mode to report exceptions verbosely but without formatting
5135 mode to report exceptions verbosely but without formatting
5130 variables. This addresses the issue of ipython 'freezing' (it's
5136 variables. This addresses the issue of ipython 'freezing' (it's
5131 not frozen, but caught in an expensive formatting loop) when huge
5137 not frozen, but caught in an expensive formatting loop) when huge
5132 variables are in the context of an exception.
5138 variables are in the context of an exception.
5133 (VerboseTB.text): Added '--->' markers at line where exception was
5139 (VerboseTB.text): Added '--->' markers at line where exception was
5134 triggered. Much clearer to read, especially in NoColor modes.
5140 triggered. Much clearer to read, especially in NoColor modes.
5135
5141
5136 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5142 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5137 implemented in reverse when changing to the new parse_options().
5143 implemented in reverse when changing to the new parse_options().
5138
5144
5139 2002-05-03 Fernando Perez <fperez@colorado.edu>
5145 2002-05-03 Fernando Perez <fperez@colorado.edu>
5140
5146
5141 * IPython/Magic.py (Magic.parse_options): new function so that
5147 * IPython/Magic.py (Magic.parse_options): new function so that
5142 magics can parse options easier.
5148 magics can parse options easier.
5143 (Magic.magic_prun): new function similar to profile.run(),
5149 (Magic.magic_prun): new function similar to profile.run(),
5144 suggested by Chris Hart.
5150 suggested by Chris Hart.
5145 (Magic.magic_cd): fixed behavior so that it only changes if
5151 (Magic.magic_cd): fixed behavior so that it only changes if
5146 directory actually is in history.
5152 directory actually is in history.
5147
5153
5148 * IPython/usage.py (__doc__): added information about potential
5154 * IPython/usage.py (__doc__): added information about potential
5149 slowness of Verbose exception mode when there are huge data
5155 slowness of Verbose exception mode when there are huge data
5150 structures to be formatted (thanks to Archie Paulson).
5156 structures to be formatted (thanks to Archie Paulson).
5151
5157
5152 * IPython/ipmaker.py (make_IPython): Changed default logging
5158 * IPython/ipmaker.py (make_IPython): Changed default logging
5153 (when simply called with -log) to use curr_dir/ipython.log in
5159 (when simply called with -log) to use curr_dir/ipython.log in
5154 rotate mode. Fixed crash which was occuring with -log before
5160 rotate mode. Fixed crash which was occuring with -log before
5155 (thanks to Jim Boyle).
5161 (thanks to Jim Boyle).
5156
5162
5157 2002-05-01 Fernando Perez <fperez@colorado.edu>
5163 2002-05-01 Fernando Perez <fperez@colorado.edu>
5158
5164
5159 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5165 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5160 was nasty -- though somewhat of a corner case).
5166 was nasty -- though somewhat of a corner case).
5161
5167
5162 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5168 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5163 text (was a bug).
5169 text (was a bug).
5164
5170
5165 2002-04-30 Fernando Perez <fperez@colorado.edu>
5171 2002-04-30 Fernando Perez <fperez@colorado.edu>
5166
5172
5167 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5173 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5168 a print after ^D or ^C from the user so that the In[] prompt
5174 a print after ^D or ^C from the user so that the In[] prompt
5169 doesn't over-run the gnuplot one.
5175 doesn't over-run the gnuplot one.
5170
5176
5171 2002-04-29 Fernando Perez <fperez@colorado.edu>
5177 2002-04-29 Fernando Perez <fperez@colorado.edu>
5172
5178
5173 * Released 0.2.10
5179 * Released 0.2.10
5174
5180
5175 * IPython/__release__.py (version): get date dynamically.
5181 * IPython/__release__.py (version): get date dynamically.
5176
5182
5177 * Misc. documentation updates thanks to Arnd's comments. Also ran
5183 * Misc. documentation updates thanks to Arnd's comments. Also ran
5178 a full spellcheck on the manual (hadn't been done in a while).
5184 a full spellcheck on the manual (hadn't been done in a while).
5179
5185
5180 2002-04-27 Fernando Perez <fperez@colorado.edu>
5186 2002-04-27 Fernando Perez <fperez@colorado.edu>
5181
5187
5182 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5188 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5183 starting a log in mid-session would reset the input history list.
5189 starting a log in mid-session would reset the input history list.
5184
5190
5185 2002-04-26 Fernando Perez <fperez@colorado.edu>
5191 2002-04-26 Fernando Perez <fperez@colorado.edu>
5186
5192
5187 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5193 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5188 all files were being included in an update. Now anything in
5194 all files were being included in an update. Now anything in
5189 UserConfig that matches [A-Za-z]*.py will go (this excludes
5195 UserConfig that matches [A-Za-z]*.py will go (this excludes
5190 __init__.py)
5196 __init__.py)
5191
5197
5192 2002-04-25 Fernando Perez <fperez@colorado.edu>
5198 2002-04-25 Fernando Perez <fperez@colorado.edu>
5193
5199
5194 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5200 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5195 to __builtins__ so that any form of embedded or imported code can
5201 to __builtins__ so that any form of embedded or imported code can
5196 test for being inside IPython.
5202 test for being inside IPython.
5197
5203
5198 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5204 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5199 changed to GnuplotMagic because it's now an importable module,
5205 changed to GnuplotMagic because it's now an importable module,
5200 this makes the name follow that of the standard Gnuplot module.
5206 this makes the name follow that of the standard Gnuplot module.
5201 GnuplotMagic can now be loaded at any time in mid-session.
5207 GnuplotMagic can now be loaded at any time in mid-session.
5202
5208
5203 2002-04-24 Fernando Perez <fperez@colorado.edu>
5209 2002-04-24 Fernando Perez <fperez@colorado.edu>
5204
5210
5205 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5211 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5206 the globals (IPython has its own namespace) and the
5212 the globals (IPython has its own namespace) and the
5207 PhysicalQuantity stuff is much better anyway.
5213 PhysicalQuantity stuff is much better anyway.
5208
5214
5209 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5215 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5210 embedding example to standard user directory for
5216 embedding example to standard user directory for
5211 distribution. Also put it in the manual.
5217 distribution. Also put it in the manual.
5212
5218
5213 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5219 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5214 instance as first argument (so it doesn't rely on some obscure
5220 instance as first argument (so it doesn't rely on some obscure
5215 hidden global).
5221 hidden global).
5216
5222
5217 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5223 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5218 delimiters. While it prevents ().TAB from working, it allows
5224 delimiters. While it prevents ().TAB from working, it allows
5219 completions in open (... expressions. This is by far a more common
5225 completions in open (... expressions. This is by far a more common
5220 case.
5226 case.
5221
5227
5222 2002-04-23 Fernando Perez <fperez@colorado.edu>
5228 2002-04-23 Fernando Perez <fperez@colorado.edu>
5223
5229
5224 * IPython/Extensions/InterpreterPasteInput.py: new
5230 * IPython/Extensions/InterpreterPasteInput.py: new
5225 syntax-processing module for pasting lines with >>> or ... at the
5231 syntax-processing module for pasting lines with >>> or ... at the
5226 start.
5232 start.
5227
5233
5228 * IPython/Extensions/PhysicalQ_Interactive.py
5234 * IPython/Extensions/PhysicalQ_Interactive.py
5229 (PhysicalQuantityInteractive.__int__): fixed to work with either
5235 (PhysicalQuantityInteractive.__int__): fixed to work with either
5230 Numeric or math.
5236 Numeric or math.
5231
5237
5232 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5238 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5233 provided profiles. Now we have:
5239 provided profiles. Now we have:
5234 -math -> math module as * and cmath with its own namespace.
5240 -math -> math module as * and cmath with its own namespace.
5235 -numeric -> Numeric as *, plus gnuplot & grace
5241 -numeric -> Numeric as *, plus gnuplot & grace
5236 -physics -> same as before
5242 -physics -> same as before
5237
5243
5238 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5244 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5239 user-defined magics wouldn't be found by @magic if they were
5245 user-defined magics wouldn't be found by @magic if they were
5240 defined as class methods. Also cleaned up the namespace search
5246 defined as class methods. Also cleaned up the namespace search
5241 logic and the string building (to use %s instead of many repeated
5247 logic and the string building (to use %s instead of many repeated
5242 string adds).
5248 string adds).
5243
5249
5244 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5250 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5245 of user-defined magics to operate with class methods (cleaner, in
5251 of user-defined magics to operate with class methods (cleaner, in
5246 line with the gnuplot code).
5252 line with the gnuplot code).
5247
5253
5248 2002-04-22 Fernando Perez <fperez@colorado.edu>
5254 2002-04-22 Fernando Perez <fperez@colorado.edu>
5249
5255
5250 * setup.py: updated dependency list so that manual is updated when
5256 * setup.py: updated dependency list so that manual is updated when
5251 all included files change.
5257 all included files change.
5252
5258
5253 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5259 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5254 the delimiter removal option (the fix is ugly right now).
5260 the delimiter removal option (the fix is ugly right now).
5255
5261
5256 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5262 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5257 all of the math profile (quicker loading, no conflict between
5263 all of the math profile (quicker loading, no conflict between
5258 g-9.8 and g-gnuplot).
5264 g-9.8 and g-gnuplot).
5259
5265
5260 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5266 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5261 name of post-mortem files to IPython_crash_report.txt.
5267 name of post-mortem files to IPython_crash_report.txt.
5262
5268
5263 * Cleanup/update of the docs. Added all the new readline info and
5269 * Cleanup/update of the docs. Added all the new readline info and
5264 formatted all lists as 'real lists'.
5270 formatted all lists as 'real lists'.
5265
5271
5266 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5272 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5267 tab-completion options, since the full readline parse_and_bind is
5273 tab-completion options, since the full readline parse_and_bind is
5268 now accessible.
5274 now accessible.
5269
5275
5270 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5276 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5271 handling of readline options. Now users can specify any string to
5277 handling of readline options. Now users can specify any string to
5272 be passed to parse_and_bind(), as well as the delimiters to be
5278 be passed to parse_and_bind(), as well as the delimiters to be
5273 removed.
5279 removed.
5274 (InteractiveShell.__init__): Added __name__ to the global
5280 (InteractiveShell.__init__): Added __name__ to the global
5275 namespace so that things like Itpl which rely on its existence
5281 namespace so that things like Itpl which rely on its existence
5276 don't crash.
5282 don't crash.
5277 (InteractiveShell._prefilter): Defined the default with a _ so
5283 (InteractiveShell._prefilter): Defined the default with a _ so
5278 that prefilter() is easier to override, while the default one
5284 that prefilter() is easier to override, while the default one
5279 remains available.
5285 remains available.
5280
5286
5281 2002-04-18 Fernando Perez <fperez@colorado.edu>
5287 2002-04-18 Fernando Perez <fperez@colorado.edu>
5282
5288
5283 * Added information about pdb in the docs.
5289 * Added information about pdb in the docs.
5284
5290
5285 2002-04-17 Fernando Perez <fperez@colorado.edu>
5291 2002-04-17 Fernando Perez <fperez@colorado.edu>
5286
5292
5287 * IPython/ipmaker.py (make_IPython): added rc_override option to
5293 * IPython/ipmaker.py (make_IPython): added rc_override option to
5288 allow passing config options at creation time which may override
5294 allow passing config options at creation time which may override
5289 anything set in the config files or command line. This is
5295 anything set in the config files or command line. This is
5290 particularly useful for configuring embedded instances.
5296 particularly useful for configuring embedded instances.
5291
5297
5292 2002-04-15 Fernando Perez <fperez@colorado.edu>
5298 2002-04-15 Fernando Perez <fperez@colorado.edu>
5293
5299
5294 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5300 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5295 crash embedded instances because of the input cache falling out of
5301 crash embedded instances because of the input cache falling out of
5296 sync with the output counter.
5302 sync with the output counter.
5297
5303
5298 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5304 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5299 mode which calls pdb after an uncaught exception in IPython itself.
5305 mode which calls pdb after an uncaught exception in IPython itself.
5300
5306
5301 2002-04-14 Fernando Perez <fperez@colorado.edu>
5307 2002-04-14 Fernando Perez <fperez@colorado.edu>
5302
5308
5303 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5309 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5304 readline, fix it back after each call.
5310 readline, fix it back after each call.
5305
5311
5306 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5312 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5307 method to force all access via __call__(), which guarantees that
5313 method to force all access via __call__(), which guarantees that
5308 traceback references are properly deleted.
5314 traceback references are properly deleted.
5309
5315
5310 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5316 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5311 improve printing when pprint is in use.
5317 improve printing when pprint is in use.
5312
5318
5313 2002-04-13 Fernando Perez <fperez@colorado.edu>
5319 2002-04-13 Fernando Perez <fperez@colorado.edu>
5314
5320
5315 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5321 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5316 exceptions aren't caught anymore. If the user triggers one, he
5322 exceptions aren't caught anymore. If the user triggers one, he
5317 should know why he's doing it and it should go all the way up,
5323 should know why he's doing it and it should go all the way up,
5318 just like any other exception. So now @abort will fully kill the
5324 just like any other exception. So now @abort will fully kill the
5319 embedded interpreter and the embedding code (unless that happens
5325 embedded interpreter and the embedding code (unless that happens
5320 to catch SystemExit).
5326 to catch SystemExit).
5321
5327
5322 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5328 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5323 and a debugger() method to invoke the interactive pdb debugger
5329 and a debugger() method to invoke the interactive pdb debugger
5324 after printing exception information. Also added the corresponding
5330 after printing exception information. Also added the corresponding
5325 -pdb option and @pdb magic to control this feature, and updated
5331 -pdb option and @pdb magic to control this feature, and updated
5326 the docs. After a suggestion from Christopher Hart
5332 the docs. After a suggestion from Christopher Hart
5327 (hart-AT-caltech.edu).
5333 (hart-AT-caltech.edu).
5328
5334
5329 2002-04-12 Fernando Perez <fperez@colorado.edu>
5335 2002-04-12 Fernando Perez <fperez@colorado.edu>
5330
5336
5331 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5337 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5332 the exception handlers defined by the user (not the CrashHandler)
5338 the exception handlers defined by the user (not the CrashHandler)
5333 so that user exceptions don't trigger an ipython bug report.
5339 so that user exceptions don't trigger an ipython bug report.
5334
5340
5335 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5341 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5336 configurable (it should have always been so).
5342 configurable (it should have always been so).
5337
5343
5338 2002-03-26 Fernando Perez <fperez@colorado.edu>
5344 2002-03-26 Fernando Perez <fperez@colorado.edu>
5339
5345
5340 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5346 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5341 and there to fix embedding namespace issues. This should all be
5347 and there to fix embedding namespace issues. This should all be
5342 done in a more elegant way.
5348 done in a more elegant way.
5343
5349
5344 2002-03-25 Fernando Perez <fperez@colorado.edu>
5350 2002-03-25 Fernando Perez <fperez@colorado.edu>
5345
5351
5346 * IPython/genutils.py (get_home_dir): Try to make it work under
5352 * IPython/genutils.py (get_home_dir): Try to make it work under
5347 win9x also.
5353 win9x also.
5348
5354
5349 2002-03-20 Fernando Perez <fperez@colorado.edu>
5355 2002-03-20 Fernando Perez <fperez@colorado.edu>
5350
5356
5351 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5357 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5352 sys.displayhook untouched upon __init__.
5358 sys.displayhook untouched upon __init__.
5353
5359
5354 2002-03-19 Fernando Perez <fperez@colorado.edu>
5360 2002-03-19 Fernando Perez <fperez@colorado.edu>
5355
5361
5356 * Released 0.2.9 (for embedding bug, basically).
5362 * Released 0.2.9 (for embedding bug, basically).
5357
5363
5358 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5364 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5359 exceptions so that enclosing shell's state can be restored.
5365 exceptions so that enclosing shell's state can be restored.
5360
5366
5361 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5367 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5362 naming conventions in the .ipython/ dir.
5368 naming conventions in the .ipython/ dir.
5363
5369
5364 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5370 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5365 from delimiters list so filenames with - in them get expanded.
5371 from delimiters list so filenames with - in them get expanded.
5366
5372
5367 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5373 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5368 sys.displayhook not being properly restored after an embedded call.
5374 sys.displayhook not being properly restored after an embedded call.
5369
5375
5370 2002-03-18 Fernando Perez <fperez@colorado.edu>
5376 2002-03-18 Fernando Perez <fperez@colorado.edu>
5371
5377
5372 * Released 0.2.8
5378 * Released 0.2.8
5373
5379
5374 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5380 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5375 some files weren't being included in a -upgrade.
5381 some files weren't being included in a -upgrade.
5376 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5382 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5377 on' so that the first tab completes.
5383 on' so that the first tab completes.
5378 (InteractiveShell.handle_magic): fixed bug with spaces around
5384 (InteractiveShell.handle_magic): fixed bug with spaces around
5379 quotes breaking many magic commands.
5385 quotes breaking many magic commands.
5380
5386
5381 * setup.py: added note about ignoring the syntax error messages at
5387 * setup.py: added note about ignoring the syntax error messages at
5382 installation.
5388 installation.
5383
5389
5384 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5390 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5385 streamlining the gnuplot interface, now there's only one magic @gp.
5391 streamlining the gnuplot interface, now there's only one magic @gp.
5386
5392
5387 2002-03-17 Fernando Perez <fperez@colorado.edu>
5393 2002-03-17 Fernando Perez <fperez@colorado.edu>
5388
5394
5389 * IPython/UserConfig/magic_gnuplot.py: new name for the
5395 * IPython/UserConfig/magic_gnuplot.py: new name for the
5390 example-magic_pm.py file. Much enhanced system, now with a shell
5396 example-magic_pm.py file. Much enhanced system, now with a shell
5391 for communicating directly with gnuplot, one command at a time.
5397 for communicating directly with gnuplot, one command at a time.
5392
5398
5393 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5399 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5394 setting __name__=='__main__'.
5400 setting __name__=='__main__'.
5395
5401
5396 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5402 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5397 mini-shell for accessing gnuplot from inside ipython. Should
5403 mini-shell for accessing gnuplot from inside ipython. Should
5398 extend it later for grace access too. Inspired by Arnd's
5404 extend it later for grace access too. Inspired by Arnd's
5399 suggestion.
5405 suggestion.
5400
5406
5401 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5407 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5402 calling magic functions with () in their arguments. Thanks to Arnd
5408 calling magic functions with () in their arguments. Thanks to Arnd
5403 Baecker for pointing this to me.
5409 Baecker for pointing this to me.
5404
5410
5405 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5411 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5406 infinitely for integer or complex arrays (only worked with floats).
5412 infinitely for integer or complex arrays (only worked with floats).
5407
5413
5408 2002-03-16 Fernando Perez <fperez@colorado.edu>
5414 2002-03-16 Fernando Perez <fperez@colorado.edu>
5409
5415
5410 * setup.py: Merged setup and setup_windows into a single script
5416 * setup.py: Merged setup and setup_windows into a single script
5411 which properly handles things for windows users.
5417 which properly handles things for windows users.
5412
5418
5413 2002-03-15 Fernando Perez <fperez@colorado.edu>
5419 2002-03-15 Fernando Perez <fperez@colorado.edu>
5414
5420
5415 * Big change to the manual: now the magics are all automatically
5421 * Big change to the manual: now the magics are all automatically
5416 documented. This information is generated from their docstrings
5422 documented. This information is generated from their docstrings
5417 and put in a latex file included by the manual lyx file. This way
5423 and put in a latex file included by the manual lyx file. This way
5418 we get always up to date information for the magics. The manual
5424 we get always up to date information for the magics. The manual
5419 now also has proper version information, also auto-synced.
5425 now also has proper version information, also auto-synced.
5420
5426
5421 For this to work, an undocumented --magic_docstrings option was added.
5427 For this to work, an undocumented --magic_docstrings option was added.
5422
5428
5423 2002-03-13 Fernando Perez <fperez@colorado.edu>
5429 2002-03-13 Fernando Perez <fperez@colorado.edu>
5424
5430
5425 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5431 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5426 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5432 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5427
5433
5428 2002-03-12 Fernando Perez <fperez@colorado.edu>
5434 2002-03-12 Fernando Perez <fperez@colorado.edu>
5429
5435
5430 * IPython/ultraTB.py (TermColors): changed color escapes again to
5436 * IPython/ultraTB.py (TermColors): changed color escapes again to
5431 fix the (old, reintroduced) line-wrapping bug. Basically, if
5437 fix the (old, reintroduced) line-wrapping bug. Basically, if
5432 \001..\002 aren't given in the color escapes, lines get wrapped
5438 \001..\002 aren't given in the color escapes, lines get wrapped
5433 weirdly. But giving those screws up old xterms and emacs terms. So
5439 weirdly. But giving those screws up old xterms and emacs terms. So
5434 I added some logic for emacs terms to be ok, but I can't identify old
5440 I added some logic for emacs terms to be ok, but I can't identify old
5435 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5441 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5436
5442
5437 2002-03-10 Fernando Perez <fperez@colorado.edu>
5443 2002-03-10 Fernando Perez <fperez@colorado.edu>
5438
5444
5439 * IPython/usage.py (__doc__): Various documentation cleanups and
5445 * IPython/usage.py (__doc__): Various documentation cleanups and
5440 updates, both in usage docstrings and in the manual.
5446 updates, both in usage docstrings and in the manual.
5441
5447
5442 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5448 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5443 handling of caching. Set minimum acceptabe value for having a
5449 handling of caching. Set minimum acceptabe value for having a
5444 cache at 20 values.
5450 cache at 20 values.
5445
5451
5446 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5452 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5447 install_first_time function to a method, renamed it and added an
5453 install_first_time function to a method, renamed it and added an
5448 'upgrade' mode. Now people can update their config directory with
5454 'upgrade' mode. Now people can update their config directory with
5449 a simple command line switch (-upgrade, also new).
5455 a simple command line switch (-upgrade, also new).
5450
5456
5451 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5457 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5452 @file (convenient for automagic users under Python >= 2.2).
5458 @file (convenient for automagic users under Python >= 2.2).
5453 Removed @files (it seemed more like a plural than an abbrev. of
5459 Removed @files (it seemed more like a plural than an abbrev. of
5454 'file show').
5460 'file show').
5455
5461
5456 * IPython/iplib.py (install_first_time): Fixed crash if there were
5462 * IPython/iplib.py (install_first_time): Fixed crash if there were
5457 backup files ('~') in .ipython/ install directory.
5463 backup files ('~') in .ipython/ install directory.
5458
5464
5459 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5465 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5460 system. Things look fine, but these changes are fairly
5466 system. Things look fine, but these changes are fairly
5461 intrusive. Test them for a few days.
5467 intrusive. Test them for a few days.
5462
5468
5463 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5469 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5464 the prompts system. Now all in/out prompt strings are user
5470 the prompts system. Now all in/out prompt strings are user
5465 controllable. This is particularly useful for embedding, as one
5471 controllable. This is particularly useful for embedding, as one
5466 can tag embedded instances with particular prompts.
5472 can tag embedded instances with particular prompts.
5467
5473
5468 Also removed global use of sys.ps1/2, which now allows nested
5474 Also removed global use of sys.ps1/2, which now allows nested
5469 embeddings without any problems. Added command-line options for
5475 embeddings without any problems. Added command-line options for
5470 the prompt strings.
5476 the prompt strings.
5471
5477
5472 2002-03-08 Fernando Perez <fperez@colorado.edu>
5478 2002-03-08 Fernando Perez <fperez@colorado.edu>
5473
5479
5474 * IPython/UserConfig/example-embed-short.py (ipshell): added
5480 * IPython/UserConfig/example-embed-short.py (ipshell): added
5475 example file with the bare minimum code for embedding.
5481 example file with the bare minimum code for embedding.
5476
5482
5477 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5483 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5478 functionality for the embeddable shell to be activated/deactivated
5484 functionality for the embeddable shell to be activated/deactivated
5479 either globally or at each call.
5485 either globally or at each call.
5480
5486
5481 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5487 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5482 rewriting the prompt with '--->' for auto-inputs with proper
5488 rewriting the prompt with '--->' for auto-inputs with proper
5483 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5489 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5484 this is handled by the prompts class itself, as it should.
5490 this is handled by the prompts class itself, as it should.
5485
5491
5486 2002-03-05 Fernando Perez <fperez@colorado.edu>
5492 2002-03-05 Fernando Perez <fperez@colorado.edu>
5487
5493
5488 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5494 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5489 @logstart to avoid name clashes with the math log function.
5495 @logstart to avoid name clashes with the math log function.
5490
5496
5491 * Big updates to X/Emacs section of the manual.
5497 * Big updates to X/Emacs section of the manual.
5492
5498
5493 * Removed ipython_emacs. Milan explained to me how to pass
5499 * Removed ipython_emacs. Milan explained to me how to pass
5494 arguments to ipython through Emacs. Some day I'm going to end up
5500 arguments to ipython through Emacs. Some day I'm going to end up
5495 learning some lisp...
5501 learning some lisp...
5496
5502
5497 2002-03-04 Fernando Perez <fperez@colorado.edu>
5503 2002-03-04 Fernando Perez <fperez@colorado.edu>
5498
5504
5499 * IPython/ipython_emacs: Created script to be used as the
5505 * IPython/ipython_emacs: Created script to be used as the
5500 py-python-command Emacs variable so we can pass IPython
5506 py-python-command Emacs variable so we can pass IPython
5501 parameters. I can't figure out how to tell Emacs directly to pass
5507 parameters. I can't figure out how to tell Emacs directly to pass
5502 parameters to IPython, so a dummy shell script will do it.
5508 parameters to IPython, so a dummy shell script will do it.
5503
5509
5504 Other enhancements made for things to work better under Emacs'
5510 Other enhancements made for things to work better under Emacs'
5505 various types of terminals. Many thanks to Milan Zamazal
5511 various types of terminals. Many thanks to Milan Zamazal
5506 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5512 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5507
5513
5508 2002-03-01 Fernando Perez <fperez@colorado.edu>
5514 2002-03-01 Fernando Perez <fperez@colorado.edu>
5509
5515
5510 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5516 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5511 that loading of readline is now optional. This gives better
5517 that loading of readline is now optional. This gives better
5512 control to emacs users.
5518 control to emacs users.
5513
5519
5514 * IPython/ultraTB.py (__date__): Modified color escape sequences
5520 * IPython/ultraTB.py (__date__): Modified color escape sequences
5515 and now things work fine under xterm and in Emacs' term buffers
5521 and now things work fine under xterm and in Emacs' term buffers
5516 (though not shell ones). Well, in emacs you get colors, but all
5522 (though not shell ones). Well, in emacs you get colors, but all
5517 seem to be 'light' colors (no difference between dark and light
5523 seem to be 'light' colors (no difference between dark and light
5518 ones). But the garbage chars are gone, and also in xterms. It
5524 ones). But the garbage chars are gone, and also in xterms. It
5519 seems that now I'm using 'cleaner' ansi sequences.
5525 seems that now I'm using 'cleaner' ansi sequences.
5520
5526
5521 2002-02-21 Fernando Perez <fperez@colorado.edu>
5527 2002-02-21 Fernando Perez <fperez@colorado.edu>
5522
5528
5523 * Released 0.2.7 (mainly to publish the scoping fix).
5529 * Released 0.2.7 (mainly to publish the scoping fix).
5524
5530
5525 * IPython/Logger.py (Logger.logstate): added. A corresponding
5531 * IPython/Logger.py (Logger.logstate): added. A corresponding
5526 @logstate magic was created.
5532 @logstate magic was created.
5527
5533
5528 * IPython/Magic.py: fixed nested scoping problem under Python
5534 * IPython/Magic.py: fixed nested scoping problem under Python
5529 2.1.x (automagic wasn't working).
5535 2.1.x (automagic wasn't working).
5530
5536
5531 2002-02-20 Fernando Perez <fperez@colorado.edu>
5537 2002-02-20 Fernando Perez <fperez@colorado.edu>
5532
5538
5533 * Released 0.2.6.
5539 * Released 0.2.6.
5534
5540
5535 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5541 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5536 option so that logs can come out without any headers at all.
5542 option so that logs can come out without any headers at all.
5537
5543
5538 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5544 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5539 SciPy.
5545 SciPy.
5540
5546
5541 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5547 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5542 that embedded IPython calls don't require vars() to be explicitly
5548 that embedded IPython calls don't require vars() to be explicitly
5543 passed. Now they are extracted from the caller's frame (code
5549 passed. Now they are extracted from the caller's frame (code
5544 snatched from Eric Jones' weave). Added better documentation to
5550 snatched from Eric Jones' weave). Added better documentation to
5545 the section on embedding and the example file.
5551 the section on embedding and the example file.
5546
5552
5547 * IPython/genutils.py (page): Changed so that under emacs, it just
5553 * IPython/genutils.py (page): Changed so that under emacs, it just
5548 prints the string. You can then page up and down in the emacs
5554 prints the string. You can then page up and down in the emacs
5549 buffer itself. This is how the builtin help() works.
5555 buffer itself. This is how the builtin help() works.
5550
5556
5551 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5557 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5552 macro scoping: macros need to be executed in the user's namespace
5558 macro scoping: macros need to be executed in the user's namespace
5553 to work as if they had been typed by the user.
5559 to work as if they had been typed by the user.
5554
5560
5555 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5561 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5556 execute automatically (no need to type 'exec...'). They then
5562 execute automatically (no need to type 'exec...'). They then
5557 behave like 'true macros'. The printing system was also modified
5563 behave like 'true macros'. The printing system was also modified
5558 for this to work.
5564 for this to work.
5559
5565
5560 2002-02-19 Fernando Perez <fperez@colorado.edu>
5566 2002-02-19 Fernando Perez <fperez@colorado.edu>
5561
5567
5562 * IPython/genutils.py (page_file): new function for paging files
5568 * IPython/genutils.py (page_file): new function for paging files
5563 in an OS-independent way. Also necessary for file viewing to work
5569 in an OS-independent way. Also necessary for file viewing to work
5564 well inside Emacs buffers.
5570 well inside Emacs buffers.
5565 (page): Added checks for being in an emacs buffer.
5571 (page): Added checks for being in an emacs buffer.
5566 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5572 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5567 same bug in iplib.
5573 same bug in iplib.
5568
5574
5569 2002-02-18 Fernando Perez <fperez@colorado.edu>
5575 2002-02-18 Fernando Perez <fperez@colorado.edu>
5570
5576
5571 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5577 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5572 of readline so that IPython can work inside an Emacs buffer.
5578 of readline so that IPython can work inside an Emacs buffer.
5573
5579
5574 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5580 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5575 method signatures (they weren't really bugs, but it looks cleaner
5581 method signatures (they weren't really bugs, but it looks cleaner
5576 and keeps PyChecker happy).
5582 and keeps PyChecker happy).
5577
5583
5578 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5584 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5579 for implementing various user-defined hooks. Currently only
5585 for implementing various user-defined hooks. Currently only
5580 display is done.
5586 display is done.
5581
5587
5582 * IPython/Prompts.py (CachedOutput._display): changed display
5588 * IPython/Prompts.py (CachedOutput._display): changed display
5583 functions so that they can be dynamically changed by users easily.
5589 functions so that they can be dynamically changed by users easily.
5584
5590
5585 * IPython/Extensions/numeric_formats.py (num_display): added an
5591 * IPython/Extensions/numeric_formats.py (num_display): added an
5586 extension for printing NumPy arrays in flexible manners. It
5592 extension for printing NumPy arrays in flexible manners. It
5587 doesn't do anything yet, but all the structure is in
5593 doesn't do anything yet, but all the structure is in
5588 place. Ultimately the plan is to implement output format control
5594 place. Ultimately the plan is to implement output format control
5589 like in Octave.
5595 like in Octave.
5590
5596
5591 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5597 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5592 methods are found at run-time by all the automatic machinery.
5598 methods are found at run-time by all the automatic machinery.
5593
5599
5594 2002-02-17 Fernando Perez <fperez@colorado.edu>
5600 2002-02-17 Fernando Perez <fperez@colorado.edu>
5595
5601
5596 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5602 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5597 whole file a little.
5603 whole file a little.
5598
5604
5599 * ToDo: closed this document. Now there's a new_design.lyx
5605 * ToDo: closed this document. Now there's a new_design.lyx
5600 document for all new ideas. Added making a pdf of it for the
5606 document for all new ideas. Added making a pdf of it for the
5601 end-user distro.
5607 end-user distro.
5602
5608
5603 * IPython/Logger.py (Logger.switch_log): Created this to replace
5609 * IPython/Logger.py (Logger.switch_log): Created this to replace
5604 logon() and logoff(). It also fixes a nasty crash reported by
5610 logon() and logoff(). It also fixes a nasty crash reported by
5605 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5611 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5606
5612
5607 * IPython/iplib.py (complete): got auto-completion to work with
5613 * IPython/iplib.py (complete): got auto-completion to work with
5608 automagic (I had wanted this for a long time).
5614 automagic (I had wanted this for a long time).
5609
5615
5610 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5616 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5611 to @file, since file() is now a builtin and clashes with automagic
5617 to @file, since file() is now a builtin and clashes with automagic
5612 for @file.
5618 for @file.
5613
5619
5614 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5620 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5615 of this was previously in iplib, which had grown to more than 2000
5621 of this was previously in iplib, which had grown to more than 2000
5616 lines, way too long. No new functionality, but it makes managing
5622 lines, way too long. No new functionality, but it makes managing
5617 the code a bit easier.
5623 the code a bit easier.
5618
5624
5619 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5625 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5620 information to crash reports.
5626 information to crash reports.
5621
5627
5622 2002-02-12 Fernando Perez <fperez@colorado.edu>
5628 2002-02-12 Fernando Perez <fperez@colorado.edu>
5623
5629
5624 * Released 0.2.5.
5630 * Released 0.2.5.
5625
5631
5626 2002-02-11 Fernando Perez <fperez@colorado.edu>
5632 2002-02-11 Fernando Perez <fperez@colorado.edu>
5627
5633
5628 * Wrote a relatively complete Windows installer. It puts
5634 * Wrote a relatively complete Windows installer. It puts
5629 everything in place, creates Start Menu entries and fixes the
5635 everything in place, creates Start Menu entries and fixes the
5630 color issues. Nothing fancy, but it works.
5636 color issues. Nothing fancy, but it works.
5631
5637
5632 2002-02-10 Fernando Perez <fperez@colorado.edu>
5638 2002-02-10 Fernando Perez <fperez@colorado.edu>
5633
5639
5634 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5640 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5635 os.path.expanduser() call so that we can type @run ~/myfile.py and
5641 os.path.expanduser() call so that we can type @run ~/myfile.py and
5636 have thigs work as expected.
5642 have thigs work as expected.
5637
5643
5638 * IPython/genutils.py (page): fixed exception handling so things
5644 * IPython/genutils.py (page): fixed exception handling so things
5639 work both in Unix and Windows correctly. Quitting a pager triggers
5645 work both in Unix and Windows correctly. Quitting a pager triggers
5640 an IOError/broken pipe in Unix, and in windows not finding a pager
5646 an IOError/broken pipe in Unix, and in windows not finding a pager
5641 is also an IOError, so I had to actually look at the return value
5647 is also an IOError, so I had to actually look at the return value
5642 of the exception, not just the exception itself. Should be ok now.
5648 of the exception, not just the exception itself. Should be ok now.
5643
5649
5644 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5650 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5645 modified to allow case-insensitive color scheme changes.
5651 modified to allow case-insensitive color scheme changes.
5646
5652
5647 2002-02-09 Fernando Perez <fperez@colorado.edu>
5653 2002-02-09 Fernando Perez <fperez@colorado.edu>
5648
5654
5649 * IPython/genutils.py (native_line_ends): new function to leave
5655 * IPython/genutils.py (native_line_ends): new function to leave
5650 user config files with os-native line-endings.
5656 user config files with os-native line-endings.
5651
5657
5652 * README and manual updates.
5658 * README and manual updates.
5653
5659
5654 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5660 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5655 instead of StringType to catch Unicode strings.
5661 instead of StringType to catch Unicode strings.
5656
5662
5657 * IPython/genutils.py (filefind): fixed bug for paths with
5663 * IPython/genutils.py (filefind): fixed bug for paths with
5658 embedded spaces (very common in Windows).
5664 embedded spaces (very common in Windows).
5659
5665
5660 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5666 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5661 files under Windows, so that they get automatically associated
5667 files under Windows, so that they get automatically associated
5662 with a text editor. Windows makes it a pain to handle
5668 with a text editor. Windows makes it a pain to handle
5663 extension-less files.
5669 extension-less files.
5664
5670
5665 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5671 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5666 warning about readline only occur for Posix. In Windows there's no
5672 warning about readline only occur for Posix. In Windows there's no
5667 way to get readline, so why bother with the warning.
5673 way to get readline, so why bother with the warning.
5668
5674
5669 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5675 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5670 for __str__ instead of dir(self), since dir() changed in 2.2.
5676 for __str__ instead of dir(self), since dir() changed in 2.2.
5671
5677
5672 * Ported to Windows! Tested on XP, I suspect it should work fine
5678 * Ported to Windows! Tested on XP, I suspect it should work fine
5673 on NT/2000, but I don't think it will work on 98 et al. That
5679 on NT/2000, but I don't think it will work on 98 et al. That
5674 series of Windows is such a piece of junk anyway that I won't try
5680 series of Windows is such a piece of junk anyway that I won't try
5675 porting it there. The XP port was straightforward, showed a few
5681 porting it there. The XP port was straightforward, showed a few
5676 bugs here and there (fixed all), in particular some string
5682 bugs here and there (fixed all), in particular some string
5677 handling stuff which required considering Unicode strings (which
5683 handling stuff which required considering Unicode strings (which
5678 Windows uses). This is good, but hasn't been too tested :) No
5684 Windows uses). This is good, but hasn't been too tested :) No
5679 fancy installer yet, I'll put a note in the manual so people at
5685 fancy installer yet, I'll put a note in the manual so people at
5680 least make manually a shortcut.
5686 least make manually a shortcut.
5681
5687
5682 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5688 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5683 into a single one, "colors". This now controls both prompt and
5689 into a single one, "colors". This now controls both prompt and
5684 exception color schemes, and can be changed both at startup
5690 exception color schemes, and can be changed both at startup
5685 (either via command-line switches or via ipythonrc files) and at
5691 (either via command-line switches or via ipythonrc files) and at
5686 runtime, with @colors.
5692 runtime, with @colors.
5687 (Magic.magic_run): renamed @prun to @run and removed the old
5693 (Magic.magic_run): renamed @prun to @run and removed the old
5688 @run. The two were too similar to warrant keeping both.
5694 @run. The two were too similar to warrant keeping both.
5689
5695
5690 2002-02-03 Fernando Perez <fperez@colorado.edu>
5696 2002-02-03 Fernando Perez <fperez@colorado.edu>
5691
5697
5692 * IPython/iplib.py (install_first_time): Added comment on how to
5698 * IPython/iplib.py (install_first_time): Added comment on how to
5693 configure the color options for first-time users. Put a <return>
5699 configure the color options for first-time users. Put a <return>
5694 request at the end so that small-terminal users get a chance to
5700 request at the end so that small-terminal users get a chance to
5695 read the startup info.
5701 read the startup info.
5696
5702
5697 2002-01-23 Fernando Perez <fperez@colorado.edu>
5703 2002-01-23 Fernando Perez <fperez@colorado.edu>
5698
5704
5699 * IPython/iplib.py (CachedOutput.update): Changed output memory
5705 * IPython/iplib.py (CachedOutput.update): Changed output memory
5700 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5706 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5701 input history we still use _i. Did this b/c these variable are
5707 input history we still use _i. Did this b/c these variable are
5702 very commonly used in interactive work, so the less we need to
5708 very commonly used in interactive work, so the less we need to
5703 type the better off we are.
5709 type the better off we are.
5704 (Magic.magic_prun): updated @prun to better handle the namespaces
5710 (Magic.magic_prun): updated @prun to better handle the namespaces
5705 the file will run in, including a fix for __name__ not being set
5711 the file will run in, including a fix for __name__ not being set
5706 before.
5712 before.
5707
5713
5708 2002-01-20 Fernando Perez <fperez@colorado.edu>
5714 2002-01-20 Fernando Perez <fperez@colorado.edu>
5709
5715
5710 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5716 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5711 extra garbage for Python 2.2. Need to look more carefully into
5717 extra garbage for Python 2.2. Need to look more carefully into
5712 this later.
5718 this later.
5713
5719
5714 2002-01-19 Fernando Perez <fperez@colorado.edu>
5720 2002-01-19 Fernando Perez <fperez@colorado.edu>
5715
5721
5716 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5722 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5717 display SyntaxError exceptions properly formatted when they occur
5723 display SyntaxError exceptions properly formatted when they occur
5718 (they can be triggered by imported code).
5724 (they can be triggered by imported code).
5719
5725
5720 2002-01-18 Fernando Perez <fperez@colorado.edu>
5726 2002-01-18 Fernando Perez <fperez@colorado.edu>
5721
5727
5722 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5728 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5723 SyntaxError exceptions are reported nicely formatted, instead of
5729 SyntaxError exceptions are reported nicely formatted, instead of
5724 spitting out only offset information as before.
5730 spitting out only offset information as before.
5725 (Magic.magic_prun): Added the @prun function for executing
5731 (Magic.magic_prun): Added the @prun function for executing
5726 programs with command line args inside IPython.
5732 programs with command line args inside IPython.
5727
5733
5728 2002-01-16 Fernando Perez <fperez@colorado.edu>
5734 2002-01-16 Fernando Perez <fperez@colorado.edu>
5729
5735
5730 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5736 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5731 to *not* include the last item given in a range. This brings their
5737 to *not* include the last item given in a range. This brings their
5732 behavior in line with Python's slicing:
5738 behavior in line with Python's slicing:
5733 a[n1:n2] -> a[n1]...a[n2-1]
5739 a[n1:n2] -> a[n1]...a[n2-1]
5734 It may be a bit less convenient, but I prefer to stick to Python's
5740 It may be a bit less convenient, but I prefer to stick to Python's
5735 conventions *everywhere*, so users never have to wonder.
5741 conventions *everywhere*, so users never have to wonder.
5736 (Magic.magic_macro): Added @macro function to ease the creation of
5742 (Magic.magic_macro): Added @macro function to ease the creation of
5737 macros.
5743 macros.
5738
5744
5739 2002-01-05 Fernando Perez <fperez@colorado.edu>
5745 2002-01-05 Fernando Perez <fperez@colorado.edu>
5740
5746
5741 * Released 0.2.4.
5747 * Released 0.2.4.
5742
5748
5743 * IPython/iplib.py (Magic.magic_pdef):
5749 * IPython/iplib.py (Magic.magic_pdef):
5744 (InteractiveShell.safe_execfile): report magic lines and error
5750 (InteractiveShell.safe_execfile): report magic lines and error
5745 lines without line numbers so one can easily copy/paste them for
5751 lines without line numbers so one can easily copy/paste them for
5746 re-execution.
5752 re-execution.
5747
5753
5748 * Updated manual with recent changes.
5754 * Updated manual with recent changes.
5749
5755
5750 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5756 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5751 docstring printing when class? is called. Very handy for knowing
5757 docstring printing when class? is called. Very handy for knowing
5752 how to create class instances (as long as __init__ is well
5758 how to create class instances (as long as __init__ is well
5753 documented, of course :)
5759 documented, of course :)
5754 (Magic.magic_doc): print both class and constructor docstrings.
5760 (Magic.magic_doc): print both class and constructor docstrings.
5755 (Magic.magic_pdef): give constructor info if passed a class and
5761 (Magic.magic_pdef): give constructor info if passed a class and
5756 __call__ info for callable object instances.
5762 __call__ info for callable object instances.
5757
5763
5758 2002-01-04 Fernando Perez <fperez@colorado.edu>
5764 2002-01-04 Fernando Perez <fperez@colorado.edu>
5759
5765
5760 * Made deep_reload() off by default. It doesn't always work
5766 * Made deep_reload() off by default. It doesn't always work
5761 exactly as intended, so it's probably safer to have it off. It's
5767 exactly as intended, so it's probably safer to have it off. It's
5762 still available as dreload() anyway, so nothing is lost.
5768 still available as dreload() anyway, so nothing is lost.
5763
5769
5764 2002-01-02 Fernando Perez <fperez@colorado.edu>
5770 2002-01-02 Fernando Perez <fperez@colorado.edu>
5765
5771
5766 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5772 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5767 so I wanted an updated release).
5773 so I wanted an updated release).
5768
5774
5769 2001-12-27 Fernando Perez <fperez@colorado.edu>
5775 2001-12-27 Fernando Perez <fperez@colorado.edu>
5770
5776
5771 * IPython/iplib.py (InteractiveShell.interact): Added the original
5777 * IPython/iplib.py (InteractiveShell.interact): Added the original
5772 code from 'code.py' for this module in order to change the
5778 code from 'code.py' for this module in order to change the
5773 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5779 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5774 the history cache would break when the user hit Ctrl-C, and
5780 the history cache would break when the user hit Ctrl-C, and
5775 interact() offers no way to add any hooks to it.
5781 interact() offers no way to add any hooks to it.
5776
5782
5777 2001-12-23 Fernando Perez <fperez@colorado.edu>
5783 2001-12-23 Fernando Perez <fperez@colorado.edu>
5778
5784
5779 * setup.py: added check for 'MANIFEST' before trying to remove
5785 * setup.py: added check for 'MANIFEST' before trying to remove
5780 it. Thanks to Sean Reifschneider.
5786 it. Thanks to Sean Reifschneider.
5781
5787
5782 2001-12-22 Fernando Perez <fperez@colorado.edu>
5788 2001-12-22 Fernando Perez <fperez@colorado.edu>
5783
5789
5784 * Released 0.2.2.
5790 * Released 0.2.2.
5785
5791
5786 * Finished (reasonably) writing the manual. Later will add the
5792 * Finished (reasonably) writing the manual. Later will add the
5787 python-standard navigation stylesheets, but for the time being
5793 python-standard navigation stylesheets, but for the time being
5788 it's fairly complete. Distribution will include html and pdf
5794 it's fairly complete. Distribution will include html and pdf
5789 versions.
5795 versions.
5790
5796
5791 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5797 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5792 (MayaVi author).
5798 (MayaVi author).
5793
5799
5794 2001-12-21 Fernando Perez <fperez@colorado.edu>
5800 2001-12-21 Fernando Perez <fperez@colorado.edu>
5795
5801
5796 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5802 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5797 good public release, I think (with the manual and the distutils
5803 good public release, I think (with the manual and the distutils
5798 installer). The manual can use some work, but that can go
5804 installer). The manual can use some work, but that can go
5799 slowly. Otherwise I think it's quite nice for end users. Next
5805 slowly. Otherwise I think it's quite nice for end users. Next
5800 summer, rewrite the guts of it...
5806 summer, rewrite the guts of it...
5801
5807
5802 * Changed format of ipythonrc files to use whitespace as the
5808 * Changed format of ipythonrc files to use whitespace as the
5803 separator instead of an explicit '='. Cleaner.
5809 separator instead of an explicit '='. Cleaner.
5804
5810
5805 2001-12-20 Fernando Perez <fperez@colorado.edu>
5811 2001-12-20 Fernando Perez <fperez@colorado.edu>
5806
5812
5807 * Started a manual in LyX. For now it's just a quick merge of the
5813 * Started a manual in LyX. For now it's just a quick merge of the
5808 various internal docstrings and READMEs. Later it may grow into a
5814 various internal docstrings and READMEs. Later it may grow into a
5809 nice, full-blown manual.
5815 nice, full-blown manual.
5810
5816
5811 * Set up a distutils based installer. Installation should now be
5817 * Set up a distutils based installer. Installation should now be
5812 trivially simple for end-users.
5818 trivially simple for end-users.
5813
5819
5814 2001-12-11 Fernando Perez <fperez@colorado.edu>
5820 2001-12-11 Fernando Perez <fperez@colorado.edu>
5815
5821
5816 * Released 0.2.0. First public release, announced it at
5822 * Released 0.2.0. First public release, announced it at
5817 comp.lang.python. From now on, just bugfixes...
5823 comp.lang.python. From now on, just bugfixes...
5818
5824
5819 * Went through all the files, set copyright/license notices and
5825 * Went through all the files, set copyright/license notices and
5820 cleaned up things. Ready for release.
5826 cleaned up things. Ready for release.
5821
5827
5822 2001-12-10 Fernando Perez <fperez@colorado.edu>
5828 2001-12-10 Fernando Perez <fperez@colorado.edu>
5823
5829
5824 * Changed the first-time installer not to use tarfiles. It's more
5830 * Changed the first-time installer not to use tarfiles. It's more
5825 robust now and less unix-dependent. Also makes it easier for
5831 robust now and less unix-dependent. Also makes it easier for
5826 people to later upgrade versions.
5832 people to later upgrade versions.
5827
5833
5828 * Changed @exit to @abort to reflect the fact that it's pretty
5834 * Changed @exit to @abort to reflect the fact that it's pretty
5829 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5835 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5830 becomes significant only when IPyhton is embedded: in that case,
5836 becomes significant only when IPyhton is embedded: in that case,
5831 C-D closes IPython only, but @abort kills the enclosing program
5837 C-D closes IPython only, but @abort kills the enclosing program
5832 too (unless it had called IPython inside a try catching
5838 too (unless it had called IPython inside a try catching
5833 SystemExit).
5839 SystemExit).
5834
5840
5835 * Created Shell module which exposes the actuall IPython Shell
5841 * Created Shell module which exposes the actuall IPython Shell
5836 classes, currently the normal and the embeddable one. This at
5842 classes, currently the normal and the embeddable one. This at
5837 least offers a stable interface we won't need to change when
5843 least offers a stable interface we won't need to change when
5838 (later) the internals are rewritten. That rewrite will be confined
5844 (later) the internals are rewritten. That rewrite will be confined
5839 to iplib and ipmaker, but the Shell interface should remain as is.
5845 to iplib and ipmaker, but the Shell interface should remain as is.
5840
5846
5841 * Added embed module which offers an embeddable IPShell object,
5847 * Added embed module which offers an embeddable IPShell object,
5842 useful to fire up IPython *inside* a running program. Great for
5848 useful to fire up IPython *inside* a running program. Great for
5843 debugging or dynamical data analysis.
5849 debugging or dynamical data analysis.
5844
5850
5845 2001-12-08 Fernando Perez <fperez@colorado.edu>
5851 2001-12-08 Fernando Perez <fperez@colorado.edu>
5846
5852
5847 * Fixed small bug preventing seeing info from methods of defined
5853 * Fixed small bug preventing seeing info from methods of defined
5848 objects (incorrect namespace in _ofind()).
5854 objects (incorrect namespace in _ofind()).
5849
5855
5850 * Documentation cleanup. Moved the main usage docstrings to a
5856 * Documentation cleanup. Moved the main usage docstrings to a
5851 separate file, usage.py (cleaner to maintain, and hopefully in the
5857 separate file, usage.py (cleaner to maintain, and hopefully in the
5852 future some perlpod-like way of producing interactive, man and
5858 future some perlpod-like way of producing interactive, man and
5853 html docs out of it will be found).
5859 html docs out of it will be found).
5854
5860
5855 * Added @profile to see your profile at any time.
5861 * Added @profile to see your profile at any time.
5856
5862
5857 * Added @p as an alias for 'print'. It's especially convenient if
5863 * Added @p as an alias for 'print'. It's especially convenient if
5858 using automagic ('p x' prints x).
5864 using automagic ('p x' prints x).
5859
5865
5860 * Small cleanups and fixes after a pychecker run.
5866 * Small cleanups and fixes after a pychecker run.
5861
5867
5862 * Changed the @cd command to handle @cd - and @cd -<n> for
5868 * Changed the @cd command to handle @cd - and @cd -<n> for
5863 visiting any directory in _dh.
5869 visiting any directory in _dh.
5864
5870
5865 * Introduced _dh, a history of visited directories. @dhist prints
5871 * Introduced _dh, a history of visited directories. @dhist prints
5866 it out with numbers.
5872 it out with numbers.
5867
5873
5868 2001-12-07 Fernando Perez <fperez@colorado.edu>
5874 2001-12-07 Fernando Perez <fperez@colorado.edu>
5869
5875
5870 * Released 0.1.22
5876 * Released 0.1.22
5871
5877
5872 * Made initialization a bit more robust against invalid color
5878 * Made initialization a bit more robust against invalid color
5873 options in user input (exit, not traceback-crash).
5879 options in user input (exit, not traceback-crash).
5874
5880
5875 * Changed the bug crash reporter to write the report only in the
5881 * Changed the bug crash reporter to write the report only in the
5876 user's .ipython directory. That way IPython won't litter people's
5882 user's .ipython directory. That way IPython won't litter people's
5877 hard disks with crash files all over the place. Also print on
5883 hard disks with crash files all over the place. Also print on
5878 screen the necessary mail command.
5884 screen the necessary mail command.
5879
5885
5880 * With the new ultraTB, implemented LightBG color scheme for light
5886 * With the new ultraTB, implemented LightBG color scheme for light
5881 background terminals. A lot of people like white backgrounds, so I
5887 background terminals. A lot of people like white backgrounds, so I
5882 guess we should at least give them something readable.
5888 guess we should at least give them something readable.
5883
5889
5884 2001-12-06 Fernando Perez <fperez@colorado.edu>
5890 2001-12-06 Fernando Perez <fperez@colorado.edu>
5885
5891
5886 * Modified the structure of ultraTB. Now there's a proper class
5892 * Modified the structure of ultraTB. Now there's a proper class
5887 for tables of color schemes which allow adding schemes easily and
5893 for tables of color schemes which allow adding schemes easily and
5888 switching the active scheme without creating a new instance every
5894 switching the active scheme without creating a new instance every
5889 time (which was ridiculous). The syntax for creating new schemes
5895 time (which was ridiculous). The syntax for creating new schemes
5890 is also cleaner. I think ultraTB is finally done, with a clean
5896 is also cleaner. I think ultraTB is finally done, with a clean
5891 class structure. Names are also much cleaner (now there's proper
5897 class structure. Names are also much cleaner (now there's proper
5892 color tables, no need for every variable to also have 'color' in
5898 color tables, no need for every variable to also have 'color' in
5893 its name).
5899 its name).
5894
5900
5895 * Broke down genutils into separate files. Now genutils only
5901 * Broke down genutils into separate files. Now genutils only
5896 contains utility functions, and classes have been moved to their
5902 contains utility functions, and classes have been moved to their
5897 own files (they had enough independent functionality to warrant
5903 own files (they had enough independent functionality to warrant
5898 it): ConfigLoader, OutputTrap, Struct.
5904 it): ConfigLoader, OutputTrap, Struct.
5899
5905
5900 2001-12-05 Fernando Perez <fperez@colorado.edu>
5906 2001-12-05 Fernando Perez <fperez@colorado.edu>
5901
5907
5902 * IPython turns 21! Released version 0.1.21, as a candidate for
5908 * IPython turns 21! Released version 0.1.21, as a candidate for
5903 public consumption. If all goes well, release in a few days.
5909 public consumption. If all goes well, release in a few days.
5904
5910
5905 * Fixed path bug (files in Extensions/ directory wouldn't be found
5911 * Fixed path bug (files in Extensions/ directory wouldn't be found
5906 unless IPython/ was explicitly in sys.path).
5912 unless IPython/ was explicitly in sys.path).
5907
5913
5908 * Extended the FlexCompleter class as MagicCompleter to allow
5914 * Extended the FlexCompleter class as MagicCompleter to allow
5909 completion of @-starting lines.
5915 completion of @-starting lines.
5910
5916
5911 * Created __release__.py file as a central repository for release
5917 * Created __release__.py file as a central repository for release
5912 info that other files can read from.
5918 info that other files can read from.
5913
5919
5914 * Fixed small bug in logging: when logging was turned on in
5920 * Fixed small bug in logging: when logging was turned on in
5915 mid-session, old lines with special meanings (!@?) were being
5921 mid-session, old lines with special meanings (!@?) were being
5916 logged without the prepended comment, which is necessary since
5922 logged without the prepended comment, which is necessary since
5917 they are not truly valid python syntax. This should make session
5923 they are not truly valid python syntax. This should make session
5918 restores produce less errors.
5924 restores produce less errors.
5919
5925
5920 * The namespace cleanup forced me to make a FlexCompleter class
5926 * The namespace cleanup forced me to make a FlexCompleter class
5921 which is nothing but a ripoff of rlcompleter, but with selectable
5927 which is nothing but a ripoff of rlcompleter, but with selectable
5922 namespace (rlcompleter only works in __main__.__dict__). I'll try
5928 namespace (rlcompleter only works in __main__.__dict__). I'll try
5923 to submit a note to the authors to see if this change can be
5929 to submit a note to the authors to see if this change can be
5924 incorporated in future rlcompleter releases (Dec.6: done)
5930 incorporated in future rlcompleter releases (Dec.6: done)
5925
5931
5926 * More fixes to namespace handling. It was a mess! Now all
5932 * More fixes to namespace handling. It was a mess! Now all
5927 explicit references to __main__.__dict__ are gone (except when
5933 explicit references to __main__.__dict__ are gone (except when
5928 really needed) and everything is handled through the namespace
5934 really needed) and everything is handled through the namespace
5929 dicts in the IPython instance. We seem to be getting somewhere
5935 dicts in the IPython instance. We seem to be getting somewhere
5930 with this, finally...
5936 with this, finally...
5931
5937
5932 * Small documentation updates.
5938 * Small documentation updates.
5933
5939
5934 * Created the Extensions directory under IPython (with an
5940 * Created the Extensions directory under IPython (with an
5935 __init__.py). Put the PhysicalQ stuff there. This directory should
5941 __init__.py). Put the PhysicalQ stuff there. This directory should
5936 be used for all special-purpose extensions.
5942 be used for all special-purpose extensions.
5937
5943
5938 * File renaming:
5944 * File renaming:
5939 ipythonlib --> ipmaker
5945 ipythonlib --> ipmaker
5940 ipplib --> iplib
5946 ipplib --> iplib
5941 This makes a bit more sense in terms of what these files actually do.
5947 This makes a bit more sense in terms of what these files actually do.
5942
5948
5943 * Moved all the classes and functions in ipythonlib to ipplib, so
5949 * Moved all the classes and functions in ipythonlib to ipplib, so
5944 now ipythonlib only has make_IPython(). This will ease up its
5950 now ipythonlib only has make_IPython(). This will ease up its
5945 splitting in smaller functional chunks later.
5951 splitting in smaller functional chunks later.
5946
5952
5947 * Cleaned up (done, I think) output of @whos. Better column
5953 * Cleaned up (done, I think) output of @whos. Better column
5948 formatting, and now shows str(var) for as much as it can, which is
5954 formatting, and now shows str(var) for as much as it can, which is
5949 typically what one gets with a 'print var'.
5955 typically what one gets with a 'print var'.
5950
5956
5951 2001-12-04 Fernando Perez <fperez@colorado.edu>
5957 2001-12-04 Fernando Perez <fperez@colorado.edu>
5952
5958
5953 * Fixed namespace problems. Now builtin/IPyhton/user names get
5959 * Fixed namespace problems. Now builtin/IPyhton/user names get
5954 properly reported in their namespace. Internal namespace handling
5960 properly reported in their namespace. Internal namespace handling
5955 is finally getting decent (not perfect yet, but much better than
5961 is finally getting decent (not perfect yet, but much better than
5956 the ad-hoc mess we had).
5962 the ad-hoc mess we had).
5957
5963
5958 * Removed -exit option. If people just want to run a python
5964 * Removed -exit option. If people just want to run a python
5959 script, that's what the normal interpreter is for. Less
5965 script, that's what the normal interpreter is for. Less
5960 unnecessary options, less chances for bugs.
5966 unnecessary options, less chances for bugs.
5961
5967
5962 * Added a crash handler which generates a complete post-mortem if
5968 * Added a crash handler which generates a complete post-mortem if
5963 IPython crashes. This will help a lot in tracking bugs down the
5969 IPython crashes. This will help a lot in tracking bugs down the
5964 road.
5970 road.
5965
5971
5966 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5972 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5967 which were boud to functions being reassigned would bypass the
5973 which were boud to functions being reassigned would bypass the
5968 logger, breaking the sync of _il with the prompt counter. This
5974 logger, breaking the sync of _il with the prompt counter. This
5969 would then crash IPython later when a new line was logged.
5975 would then crash IPython later when a new line was logged.
5970
5976
5971 2001-12-02 Fernando Perez <fperez@colorado.edu>
5977 2001-12-02 Fernando Perez <fperez@colorado.edu>
5972
5978
5973 * Made IPython a package. This means people don't have to clutter
5979 * Made IPython a package. This means people don't have to clutter
5974 their sys.path with yet another directory. Changed the INSTALL
5980 their sys.path with yet another directory. Changed the INSTALL
5975 file accordingly.
5981 file accordingly.
5976
5982
5977 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5983 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5978 sorts its output (so @who shows it sorted) and @whos formats the
5984 sorts its output (so @who shows it sorted) and @whos formats the
5979 table according to the width of the first column. Nicer, easier to
5985 table according to the width of the first column. Nicer, easier to
5980 read. Todo: write a generic table_format() which takes a list of
5986 read. Todo: write a generic table_format() which takes a list of
5981 lists and prints it nicely formatted, with optional row/column
5987 lists and prints it nicely formatted, with optional row/column
5982 separators and proper padding and justification.
5988 separators and proper padding and justification.
5983
5989
5984 * Released 0.1.20
5990 * Released 0.1.20
5985
5991
5986 * Fixed bug in @log which would reverse the inputcache list (a
5992 * Fixed bug in @log which would reverse the inputcache list (a
5987 copy operation was missing).
5993 copy operation was missing).
5988
5994
5989 * Code cleanup. @config was changed to use page(). Better, since
5995 * Code cleanup. @config was changed to use page(). Better, since
5990 its output is always quite long.
5996 its output is always quite long.
5991
5997
5992 * Itpl is back as a dependency. I was having too many problems
5998 * Itpl is back as a dependency. I was having too many problems
5993 getting the parametric aliases to work reliably, and it's just
5999 getting the parametric aliases to work reliably, and it's just
5994 easier to code weird string operations with it than playing %()s
6000 easier to code weird string operations with it than playing %()s
5995 games. It's only ~6k, so I don't think it's too big a deal.
6001 games. It's only ~6k, so I don't think it's too big a deal.
5996
6002
5997 * Found (and fixed) a very nasty bug with history. !lines weren't
6003 * Found (and fixed) a very nasty bug with history. !lines weren't
5998 getting cached, and the out of sync caches would crash
6004 getting cached, and the out of sync caches would crash
5999 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6005 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6000 division of labor a bit better. Bug fixed, cleaner structure.
6006 division of labor a bit better. Bug fixed, cleaner structure.
6001
6007
6002 2001-12-01 Fernando Perez <fperez@colorado.edu>
6008 2001-12-01 Fernando Perez <fperez@colorado.edu>
6003
6009
6004 * Released 0.1.19
6010 * Released 0.1.19
6005
6011
6006 * Added option -n to @hist to prevent line number printing. Much
6012 * Added option -n to @hist to prevent line number printing. Much
6007 easier to copy/paste code this way.
6013 easier to copy/paste code this way.
6008
6014
6009 * Created global _il to hold the input list. Allows easy
6015 * Created global _il to hold the input list. Allows easy
6010 re-execution of blocks of code by slicing it (inspired by Janko's
6016 re-execution of blocks of code by slicing it (inspired by Janko's
6011 comment on 'macros').
6017 comment on 'macros').
6012
6018
6013 * Small fixes and doc updates.
6019 * Small fixes and doc updates.
6014
6020
6015 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6021 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6016 much too fragile with automagic. Handles properly multi-line
6022 much too fragile with automagic. Handles properly multi-line
6017 statements and takes parameters.
6023 statements and takes parameters.
6018
6024
6019 2001-11-30 Fernando Perez <fperez@colorado.edu>
6025 2001-11-30 Fernando Perez <fperez@colorado.edu>
6020
6026
6021 * Version 0.1.18 released.
6027 * Version 0.1.18 released.
6022
6028
6023 * Fixed nasty namespace bug in initial module imports.
6029 * Fixed nasty namespace bug in initial module imports.
6024
6030
6025 * Added copyright/license notes to all code files (except
6031 * Added copyright/license notes to all code files (except
6026 DPyGetOpt). For the time being, LGPL. That could change.
6032 DPyGetOpt). For the time being, LGPL. That could change.
6027
6033
6028 * Rewrote a much nicer README, updated INSTALL, cleaned up
6034 * Rewrote a much nicer README, updated INSTALL, cleaned up
6029 ipythonrc-* samples.
6035 ipythonrc-* samples.
6030
6036
6031 * Overall code/documentation cleanup. Basically ready for
6037 * Overall code/documentation cleanup. Basically ready for
6032 release. Only remaining thing: licence decision (LGPL?).
6038 release. Only remaining thing: licence decision (LGPL?).
6033
6039
6034 * Converted load_config to a class, ConfigLoader. Now recursion
6040 * Converted load_config to a class, ConfigLoader. Now recursion
6035 control is better organized. Doesn't include the same file twice.
6041 control is better organized. Doesn't include the same file twice.
6036
6042
6037 2001-11-29 Fernando Perez <fperez@colorado.edu>
6043 2001-11-29 Fernando Perez <fperez@colorado.edu>
6038
6044
6039 * Got input history working. Changed output history variables from
6045 * Got input history working. Changed output history variables from
6040 _p to _o so that _i is for input and _o for output. Just cleaner
6046 _p to _o so that _i is for input and _o for output. Just cleaner
6041 convention.
6047 convention.
6042
6048
6043 * Implemented parametric aliases. This pretty much allows the
6049 * Implemented parametric aliases. This pretty much allows the
6044 alias system to offer full-blown shell convenience, I think.
6050 alias system to offer full-blown shell convenience, I think.
6045
6051
6046 * Version 0.1.17 released, 0.1.18 opened.
6052 * Version 0.1.17 released, 0.1.18 opened.
6047
6053
6048 * dot_ipython/ipythonrc (alias): added documentation.
6054 * dot_ipython/ipythonrc (alias): added documentation.
6049 (xcolor): Fixed small bug (xcolors -> xcolor)
6055 (xcolor): Fixed small bug (xcolors -> xcolor)
6050
6056
6051 * Changed the alias system. Now alias is a magic command to define
6057 * Changed the alias system. Now alias is a magic command to define
6052 aliases just like the shell. Rationale: the builtin magics should
6058 aliases just like the shell. Rationale: the builtin magics should
6053 be there for things deeply connected to IPython's
6059 be there for things deeply connected to IPython's
6054 architecture. And this is a much lighter system for what I think
6060 architecture. And this is a much lighter system for what I think
6055 is the really important feature: allowing users to define quickly
6061 is the really important feature: allowing users to define quickly
6056 magics that will do shell things for them, so they can customize
6062 magics that will do shell things for them, so they can customize
6057 IPython easily to match their work habits. If someone is really
6063 IPython easily to match their work habits. If someone is really
6058 desperate to have another name for a builtin alias, they can
6064 desperate to have another name for a builtin alias, they can
6059 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6065 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6060 works.
6066 works.
6061
6067
6062 2001-11-28 Fernando Perez <fperez@colorado.edu>
6068 2001-11-28 Fernando Perez <fperez@colorado.edu>
6063
6069
6064 * Changed @file so that it opens the source file at the proper
6070 * Changed @file so that it opens the source file at the proper
6065 line. Since it uses less, if your EDITOR environment is
6071 line. Since it uses less, if your EDITOR environment is
6066 configured, typing v will immediately open your editor of choice
6072 configured, typing v will immediately open your editor of choice
6067 right at the line where the object is defined. Not as quick as
6073 right at the line where the object is defined. Not as quick as
6068 having a direct @edit command, but for all intents and purposes it
6074 having a direct @edit command, but for all intents and purposes it
6069 works. And I don't have to worry about writing @edit to deal with
6075 works. And I don't have to worry about writing @edit to deal with
6070 all the editors, less does that.
6076 all the editors, less does that.
6071
6077
6072 * Version 0.1.16 released, 0.1.17 opened.
6078 * Version 0.1.16 released, 0.1.17 opened.
6073
6079
6074 * Fixed some nasty bugs in the page/page_dumb combo that could
6080 * Fixed some nasty bugs in the page/page_dumb combo that could
6075 crash IPython.
6081 crash IPython.
6076
6082
6077 2001-11-27 Fernando Perez <fperez@colorado.edu>
6083 2001-11-27 Fernando Perez <fperez@colorado.edu>
6078
6084
6079 * Version 0.1.15 released, 0.1.16 opened.
6085 * Version 0.1.15 released, 0.1.16 opened.
6080
6086
6081 * Finally got ? and ?? to work for undefined things: now it's
6087 * Finally got ? and ?? to work for undefined things: now it's
6082 possible to type {}.get? and get information about the get method
6088 possible to type {}.get? and get information about the get method
6083 of dicts, or os.path? even if only os is defined (so technically
6089 of dicts, or os.path? even if only os is defined (so technically
6084 os.path isn't). Works at any level. For example, after import os,
6090 os.path isn't). Works at any level. For example, after import os,
6085 os?, os.path?, os.path.abspath? all work. This is great, took some
6091 os?, os.path?, os.path.abspath? all work. This is great, took some
6086 work in _ofind.
6092 work in _ofind.
6087
6093
6088 * Fixed more bugs with logging. The sanest way to do it was to add
6094 * Fixed more bugs with logging. The sanest way to do it was to add
6089 to @log a 'mode' parameter. Killed two in one shot (this mode
6095 to @log a 'mode' parameter. Killed two in one shot (this mode
6090 option was a request of Janko's). I think it's finally clean
6096 option was a request of Janko's). I think it's finally clean
6091 (famous last words).
6097 (famous last words).
6092
6098
6093 * Added a page_dumb() pager which does a decent job of paging on
6099 * Added a page_dumb() pager which does a decent job of paging on
6094 screen, if better things (like less) aren't available. One less
6100 screen, if better things (like less) aren't available. One less
6095 unix dependency (someday maybe somebody will port this to
6101 unix dependency (someday maybe somebody will port this to
6096 windows).
6102 windows).
6097
6103
6098 * Fixed problem in magic_log: would lock of logging out if log
6104 * Fixed problem in magic_log: would lock of logging out if log
6099 creation failed (because it would still think it had succeeded).
6105 creation failed (because it would still think it had succeeded).
6100
6106
6101 * Improved the page() function using curses to auto-detect screen
6107 * Improved the page() function using curses to auto-detect screen
6102 size. Now it can make a much better decision on whether to print
6108 size. Now it can make a much better decision on whether to print
6103 or page a string. Option screen_length was modified: a value 0
6109 or page a string. Option screen_length was modified: a value 0
6104 means auto-detect, and that's the default now.
6110 means auto-detect, and that's the default now.
6105
6111
6106 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6112 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6107 go out. I'll test it for a few days, then talk to Janko about
6113 go out. I'll test it for a few days, then talk to Janko about
6108 licences and announce it.
6114 licences and announce it.
6109
6115
6110 * Fixed the length of the auto-generated ---> prompt which appears
6116 * Fixed the length of the auto-generated ---> prompt which appears
6111 for auto-parens and auto-quotes. Getting this right isn't trivial,
6117 for auto-parens and auto-quotes. Getting this right isn't trivial,
6112 with all the color escapes, different prompt types and optional
6118 with all the color escapes, different prompt types and optional
6113 separators. But it seems to be working in all the combinations.
6119 separators. But it seems to be working in all the combinations.
6114
6120
6115 2001-11-26 Fernando Perez <fperez@colorado.edu>
6121 2001-11-26 Fernando Perez <fperez@colorado.edu>
6116
6122
6117 * Wrote a regexp filter to get option types from the option names
6123 * Wrote a regexp filter to get option types from the option names
6118 string. This eliminates the need to manually keep two duplicate
6124 string. This eliminates the need to manually keep two duplicate
6119 lists.
6125 lists.
6120
6126
6121 * Removed the unneeded check_option_names. Now options are handled
6127 * Removed the unneeded check_option_names. Now options are handled
6122 in a much saner manner and it's easy to visually check that things
6128 in a much saner manner and it's easy to visually check that things
6123 are ok.
6129 are ok.
6124
6130
6125 * Updated version numbers on all files I modified to carry a
6131 * Updated version numbers on all files I modified to carry a
6126 notice so Janko and Nathan have clear version markers.
6132 notice so Janko and Nathan have clear version markers.
6127
6133
6128 * Updated docstring for ultraTB with my changes. I should send
6134 * Updated docstring for ultraTB with my changes. I should send
6129 this to Nathan.
6135 this to Nathan.
6130
6136
6131 * Lots of small fixes. Ran everything through pychecker again.
6137 * Lots of small fixes. Ran everything through pychecker again.
6132
6138
6133 * Made loading of deep_reload an cmd line option. If it's not too
6139 * Made loading of deep_reload an cmd line option. If it's not too
6134 kosher, now people can just disable it. With -nodeep_reload it's
6140 kosher, now people can just disable it. With -nodeep_reload it's
6135 still available as dreload(), it just won't overwrite reload().
6141 still available as dreload(), it just won't overwrite reload().
6136
6142
6137 * Moved many options to the no| form (-opt and -noopt
6143 * Moved many options to the no| form (-opt and -noopt
6138 accepted). Cleaner.
6144 accepted). Cleaner.
6139
6145
6140 * Changed magic_log so that if called with no parameters, it uses
6146 * Changed magic_log so that if called with no parameters, it uses
6141 'rotate' mode. That way auto-generated logs aren't automatically
6147 'rotate' mode. That way auto-generated logs aren't automatically
6142 over-written. For normal logs, now a backup is made if it exists
6148 over-written. For normal logs, now a backup is made if it exists
6143 (only 1 level of backups). A new 'backup' mode was added to the
6149 (only 1 level of backups). A new 'backup' mode was added to the
6144 Logger class to support this. This was a request by Janko.
6150 Logger class to support this. This was a request by Janko.
6145
6151
6146 * Added @logoff/@logon to stop/restart an active log.
6152 * Added @logoff/@logon to stop/restart an active log.
6147
6153
6148 * Fixed a lot of bugs in log saving/replay. It was pretty
6154 * Fixed a lot of bugs in log saving/replay. It was pretty
6149 broken. Now special lines (!@,/) appear properly in the command
6155 broken. Now special lines (!@,/) appear properly in the command
6150 history after a log replay.
6156 history after a log replay.
6151
6157
6152 * Tried and failed to implement full session saving via pickle. My
6158 * Tried and failed to implement full session saving via pickle. My
6153 idea was to pickle __main__.__dict__, but modules can't be
6159 idea was to pickle __main__.__dict__, but modules can't be
6154 pickled. This would be a better alternative to replaying logs, but
6160 pickled. This would be a better alternative to replaying logs, but
6155 seems quite tricky to get to work. Changed -session to be called
6161 seems quite tricky to get to work. Changed -session to be called
6156 -logplay, which more accurately reflects what it does. And if we
6162 -logplay, which more accurately reflects what it does. And if we
6157 ever get real session saving working, -session is now available.
6163 ever get real session saving working, -session is now available.
6158
6164
6159 * Implemented color schemes for prompts also. As for tracebacks,
6165 * Implemented color schemes for prompts also. As for tracebacks,
6160 currently only NoColor and Linux are supported. But now the
6166 currently only NoColor and Linux are supported. But now the
6161 infrastructure is in place, based on a generic ColorScheme
6167 infrastructure is in place, based on a generic ColorScheme
6162 class. So writing and activating new schemes both for the prompts
6168 class. So writing and activating new schemes both for the prompts
6163 and the tracebacks should be straightforward.
6169 and the tracebacks should be straightforward.
6164
6170
6165 * Version 0.1.13 released, 0.1.14 opened.
6171 * Version 0.1.13 released, 0.1.14 opened.
6166
6172
6167 * Changed handling of options for output cache. Now counter is
6173 * Changed handling of options for output cache. Now counter is
6168 hardwired starting at 1 and one specifies the maximum number of
6174 hardwired starting at 1 and one specifies the maximum number of
6169 entries *in the outcache* (not the max prompt counter). This is
6175 entries *in the outcache* (not the max prompt counter). This is
6170 much better, since many statements won't increase the cache
6176 much better, since many statements won't increase the cache
6171 count. It also eliminated some confusing options, now there's only
6177 count. It also eliminated some confusing options, now there's only
6172 one: cache_size.
6178 one: cache_size.
6173
6179
6174 * Added 'alias' magic function and magic_alias option in the
6180 * Added 'alias' magic function and magic_alias option in the
6175 ipythonrc file. Now the user can easily define whatever names he
6181 ipythonrc file. Now the user can easily define whatever names he
6176 wants for the magic functions without having to play weird
6182 wants for the magic functions without having to play weird
6177 namespace games. This gives IPython a real shell-like feel.
6183 namespace games. This gives IPython a real shell-like feel.
6178
6184
6179 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6185 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6180 @ or not).
6186 @ or not).
6181
6187
6182 This was one of the last remaining 'visible' bugs (that I know
6188 This was one of the last remaining 'visible' bugs (that I know
6183 of). I think if I can clean up the session loading so it works
6189 of). I think if I can clean up the session loading so it works
6184 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6190 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6185 about licensing).
6191 about licensing).
6186
6192
6187 2001-11-25 Fernando Perez <fperez@colorado.edu>
6193 2001-11-25 Fernando Perez <fperez@colorado.edu>
6188
6194
6189 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6195 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6190 there's a cleaner distinction between what ? and ?? show.
6196 there's a cleaner distinction between what ? and ?? show.
6191
6197
6192 * Added screen_length option. Now the user can define his own
6198 * Added screen_length option. Now the user can define his own
6193 screen size for page() operations.
6199 screen size for page() operations.
6194
6200
6195 * Implemented magic shell-like functions with automatic code
6201 * Implemented magic shell-like functions with automatic code
6196 generation. Now adding another function is just a matter of adding
6202 generation. Now adding another function is just a matter of adding
6197 an entry to a dict, and the function is dynamically generated at
6203 an entry to a dict, and the function is dynamically generated at
6198 run-time. Python has some really cool features!
6204 run-time. Python has some really cool features!
6199
6205
6200 * Renamed many options to cleanup conventions a little. Now all
6206 * Renamed many options to cleanup conventions a little. Now all
6201 are lowercase, and only underscores where needed. Also in the code
6207 are lowercase, and only underscores where needed. Also in the code
6202 option name tables are clearer.
6208 option name tables are clearer.
6203
6209
6204 * Changed prompts a little. Now input is 'In [n]:' instead of
6210 * Changed prompts a little. Now input is 'In [n]:' instead of
6205 'In[n]:='. This allows it the numbers to be aligned with the
6211 'In[n]:='. This allows it the numbers to be aligned with the
6206 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6212 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6207 Python (it was a Mathematica thing). The '...' continuation prompt
6213 Python (it was a Mathematica thing). The '...' continuation prompt
6208 was also changed a little to align better.
6214 was also changed a little to align better.
6209
6215
6210 * Fixed bug when flushing output cache. Not all _p<n> variables
6216 * Fixed bug when flushing output cache. Not all _p<n> variables
6211 exist, so their deletion needs to be wrapped in a try:
6217 exist, so their deletion needs to be wrapped in a try:
6212
6218
6213 * Figured out how to properly use inspect.formatargspec() (it
6219 * Figured out how to properly use inspect.formatargspec() (it
6214 requires the args preceded by *). So I removed all the code from
6220 requires the args preceded by *). So I removed all the code from
6215 _get_pdef in Magic, which was just replicating that.
6221 _get_pdef in Magic, which was just replicating that.
6216
6222
6217 * Added test to prefilter to allow redefining magic function names
6223 * Added test to prefilter to allow redefining magic function names
6218 as variables. This is ok, since the @ form is always available,
6224 as variables. This is ok, since the @ form is always available,
6219 but whe should allow the user to define a variable called 'ls' if
6225 but whe should allow the user to define a variable called 'ls' if
6220 he needs it.
6226 he needs it.
6221
6227
6222 * Moved the ToDo information from README into a separate ToDo.
6228 * Moved the ToDo information from README into a separate ToDo.
6223
6229
6224 * General code cleanup and small bugfixes. I think it's close to a
6230 * General code cleanup and small bugfixes. I think it's close to a
6225 state where it can be released, obviously with a big 'beta'
6231 state where it can be released, obviously with a big 'beta'
6226 warning on it.
6232 warning on it.
6227
6233
6228 * Got the magic function split to work. Now all magics are defined
6234 * Got the magic function split to work. Now all magics are defined
6229 in a separate class. It just organizes things a bit, and now
6235 in a separate class. It just organizes things a bit, and now
6230 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6236 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6231 was too long).
6237 was too long).
6232
6238
6233 * Changed @clear to @reset to avoid potential confusions with
6239 * Changed @clear to @reset to avoid potential confusions with
6234 the shell command clear. Also renamed @cl to @clear, which does
6240 the shell command clear. Also renamed @cl to @clear, which does
6235 exactly what people expect it to from their shell experience.
6241 exactly what people expect it to from their shell experience.
6236
6242
6237 Added a check to the @reset command (since it's so
6243 Added a check to the @reset command (since it's so
6238 destructive, it's probably a good idea to ask for confirmation).
6244 destructive, it's probably a good idea to ask for confirmation).
6239 But now reset only works for full namespace resetting. Since the
6245 But now reset only works for full namespace resetting. Since the
6240 del keyword is already there for deleting a few specific
6246 del keyword is already there for deleting a few specific
6241 variables, I don't see the point of having a redundant magic
6247 variables, I don't see the point of having a redundant magic
6242 function for the same task.
6248 function for the same task.
6243
6249
6244 2001-11-24 Fernando Perez <fperez@colorado.edu>
6250 2001-11-24 Fernando Perez <fperez@colorado.edu>
6245
6251
6246 * Updated the builtin docs (esp. the ? ones).
6252 * Updated the builtin docs (esp. the ? ones).
6247
6253
6248 * Ran all the code through pychecker. Not terribly impressed with
6254 * Ran all the code through pychecker. Not terribly impressed with
6249 it: lots of spurious warnings and didn't really find anything of
6255 it: lots of spurious warnings and didn't really find anything of
6250 substance (just a few modules being imported and not used).
6256 substance (just a few modules being imported and not used).
6251
6257
6252 * Implemented the new ultraTB functionality into IPython. New
6258 * Implemented the new ultraTB functionality into IPython. New
6253 option: xcolors. This chooses color scheme. xmode now only selects
6259 option: xcolors. This chooses color scheme. xmode now only selects
6254 between Plain and Verbose. Better orthogonality.
6260 between Plain and Verbose. Better orthogonality.
6255
6261
6256 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6262 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6257 mode and color scheme for the exception handlers. Now it's
6263 mode and color scheme for the exception handlers. Now it's
6258 possible to have the verbose traceback with no coloring.
6264 possible to have the verbose traceback with no coloring.
6259
6265
6260 2001-11-23 Fernando Perez <fperez@colorado.edu>
6266 2001-11-23 Fernando Perez <fperez@colorado.edu>
6261
6267
6262 * Version 0.1.12 released, 0.1.13 opened.
6268 * Version 0.1.12 released, 0.1.13 opened.
6263
6269
6264 * Removed option to set auto-quote and auto-paren escapes by
6270 * Removed option to set auto-quote and auto-paren escapes by
6265 user. The chances of breaking valid syntax are just too high. If
6271 user. The chances of breaking valid syntax are just too high. If
6266 someone *really* wants, they can always dig into the code.
6272 someone *really* wants, they can always dig into the code.
6267
6273
6268 * Made prompt separators configurable.
6274 * Made prompt separators configurable.
6269
6275
6270 2001-11-22 Fernando Perez <fperez@colorado.edu>
6276 2001-11-22 Fernando Perez <fperez@colorado.edu>
6271
6277
6272 * Small bugfixes in many places.
6278 * Small bugfixes in many places.
6273
6279
6274 * Removed the MyCompleter class from ipplib. It seemed redundant
6280 * Removed the MyCompleter class from ipplib. It seemed redundant
6275 with the C-p,C-n history search functionality. Less code to
6281 with the C-p,C-n history search functionality. Less code to
6276 maintain.
6282 maintain.
6277
6283
6278 * Moved all the original ipython.py code into ipythonlib.py. Right
6284 * Moved all the original ipython.py code into ipythonlib.py. Right
6279 now it's just one big dump into a function called make_IPython, so
6285 now it's just one big dump into a function called make_IPython, so
6280 no real modularity has been gained. But at least it makes the
6286 no real modularity has been gained. But at least it makes the
6281 wrapper script tiny, and since ipythonlib is a module, it gets
6287 wrapper script tiny, and since ipythonlib is a module, it gets
6282 compiled and startup is much faster.
6288 compiled and startup is much faster.
6283
6289
6284 This is a reasobably 'deep' change, so we should test it for a
6290 This is a reasobably 'deep' change, so we should test it for a
6285 while without messing too much more with the code.
6291 while without messing too much more with the code.
6286
6292
6287 2001-11-21 Fernando Perez <fperez@colorado.edu>
6293 2001-11-21 Fernando Perez <fperez@colorado.edu>
6288
6294
6289 * Version 0.1.11 released, 0.1.12 opened for further work.
6295 * Version 0.1.11 released, 0.1.12 opened for further work.
6290
6296
6291 * Removed dependency on Itpl. It was only needed in one place. It
6297 * Removed dependency on Itpl. It was only needed in one place. It
6292 would be nice if this became part of python, though. It makes life
6298 would be nice if this became part of python, though. It makes life
6293 *a lot* easier in some cases.
6299 *a lot* easier in some cases.
6294
6300
6295 * Simplified the prefilter code a bit. Now all handlers are
6301 * Simplified the prefilter code a bit. Now all handlers are
6296 expected to explicitly return a value (at least a blank string).
6302 expected to explicitly return a value (at least a blank string).
6297
6303
6298 * Heavy edits in ipplib. Removed the help system altogether. Now
6304 * Heavy edits in ipplib. Removed the help system altogether. Now
6299 obj?/?? is used for inspecting objects, a magic @doc prints
6305 obj?/?? is used for inspecting objects, a magic @doc prints
6300 docstrings, and full-blown Python help is accessed via the 'help'
6306 docstrings, and full-blown Python help is accessed via the 'help'
6301 keyword. This cleans up a lot of code (less to maintain) and does
6307 keyword. This cleans up a lot of code (less to maintain) and does
6302 the job. Since 'help' is now a standard Python component, might as
6308 the job. Since 'help' is now a standard Python component, might as
6303 well use it and remove duplicate functionality.
6309 well use it and remove duplicate functionality.
6304
6310
6305 Also removed the option to use ipplib as a standalone program. By
6311 Also removed the option to use ipplib as a standalone program. By
6306 now it's too dependent on other parts of IPython to function alone.
6312 now it's too dependent on other parts of IPython to function alone.
6307
6313
6308 * Fixed bug in genutils.pager. It would crash if the pager was
6314 * Fixed bug in genutils.pager. It would crash if the pager was
6309 exited immediately after opening (broken pipe).
6315 exited immediately after opening (broken pipe).
6310
6316
6311 * Trimmed down the VerboseTB reporting a little. The header is
6317 * Trimmed down the VerboseTB reporting a little. The header is
6312 much shorter now and the repeated exception arguments at the end
6318 much shorter now and the repeated exception arguments at the end
6313 have been removed. For interactive use the old header seemed a bit
6319 have been removed. For interactive use the old header seemed a bit
6314 excessive.
6320 excessive.
6315
6321
6316 * Fixed small bug in output of @whos for variables with multi-word
6322 * Fixed small bug in output of @whos for variables with multi-word
6317 types (only first word was displayed).
6323 types (only first word was displayed).
6318
6324
6319 2001-11-17 Fernando Perez <fperez@colorado.edu>
6325 2001-11-17 Fernando Perez <fperez@colorado.edu>
6320
6326
6321 * Version 0.1.10 released, 0.1.11 opened for further work.
6327 * Version 0.1.10 released, 0.1.11 opened for further work.
6322
6328
6323 * Modified dirs and friends. dirs now *returns* the stack (not
6329 * Modified dirs and friends. dirs now *returns* the stack (not
6324 prints), so one can manipulate it as a variable. Convenient to
6330 prints), so one can manipulate it as a variable. Convenient to
6325 travel along many directories.
6331 travel along many directories.
6326
6332
6327 * Fixed bug in magic_pdef: would only work with functions with
6333 * Fixed bug in magic_pdef: would only work with functions with
6328 arguments with default values.
6334 arguments with default values.
6329
6335
6330 2001-11-14 Fernando Perez <fperez@colorado.edu>
6336 2001-11-14 Fernando Perez <fperez@colorado.edu>
6331
6337
6332 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6338 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6333 example with IPython. Various other minor fixes and cleanups.
6339 example with IPython. Various other minor fixes and cleanups.
6334
6340
6335 * Version 0.1.9 released, 0.1.10 opened for further work.
6341 * Version 0.1.9 released, 0.1.10 opened for further work.
6336
6342
6337 * Added sys.path to the list of directories searched in the
6343 * Added sys.path to the list of directories searched in the
6338 execfile= option. It used to be the current directory and the
6344 execfile= option. It used to be the current directory and the
6339 user's IPYTHONDIR only.
6345 user's IPYTHONDIR only.
6340
6346
6341 2001-11-13 Fernando Perez <fperez@colorado.edu>
6347 2001-11-13 Fernando Perez <fperez@colorado.edu>
6342
6348
6343 * Reinstated the raw_input/prefilter separation that Janko had
6349 * Reinstated the raw_input/prefilter separation that Janko had
6344 initially. This gives a more convenient setup for extending the
6350 initially. This gives a more convenient setup for extending the
6345 pre-processor from the outside: raw_input always gets a string,
6351 pre-processor from the outside: raw_input always gets a string,
6346 and prefilter has to process it. We can then redefine prefilter
6352 and prefilter has to process it. We can then redefine prefilter
6347 from the outside and implement extensions for special
6353 from the outside and implement extensions for special
6348 purposes.
6354 purposes.
6349
6355
6350 Today I got one for inputting PhysicalQuantity objects
6356 Today I got one for inputting PhysicalQuantity objects
6351 (from Scientific) without needing any function calls at
6357 (from Scientific) without needing any function calls at
6352 all. Extremely convenient, and it's all done as a user-level
6358 all. Extremely convenient, and it's all done as a user-level
6353 extension (no IPython code was touched). Now instead of:
6359 extension (no IPython code was touched). Now instead of:
6354 a = PhysicalQuantity(4.2,'m/s**2')
6360 a = PhysicalQuantity(4.2,'m/s**2')
6355 one can simply say
6361 one can simply say
6356 a = 4.2 m/s**2
6362 a = 4.2 m/s**2
6357 or even
6363 or even
6358 a = 4.2 m/s^2
6364 a = 4.2 m/s^2
6359
6365
6360 I use this, but it's also a proof of concept: IPython really is
6366 I use this, but it's also a proof of concept: IPython really is
6361 fully user-extensible, even at the level of the parsing of the
6367 fully user-extensible, even at the level of the parsing of the
6362 command line. It's not trivial, but it's perfectly doable.
6368 command line. It's not trivial, but it's perfectly doable.
6363
6369
6364 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6370 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6365 the problem of modules being loaded in the inverse order in which
6371 the problem of modules being loaded in the inverse order in which
6366 they were defined in
6372 they were defined in
6367
6373
6368 * Version 0.1.8 released, 0.1.9 opened for further work.
6374 * Version 0.1.8 released, 0.1.9 opened for further work.
6369
6375
6370 * Added magics pdef, source and file. They respectively show the
6376 * Added magics pdef, source and file. They respectively show the
6371 definition line ('prototype' in C), source code and full python
6377 definition line ('prototype' in C), source code and full python
6372 file for any callable object. The object inspector oinfo uses
6378 file for any callable object. The object inspector oinfo uses
6373 these to show the same information.
6379 these to show the same information.
6374
6380
6375 * Version 0.1.7 released, 0.1.8 opened for further work.
6381 * Version 0.1.7 released, 0.1.8 opened for further work.
6376
6382
6377 * Separated all the magic functions into a class called Magic. The
6383 * Separated all the magic functions into a class called Magic. The
6378 InteractiveShell class was becoming too big for Xemacs to handle
6384 InteractiveShell class was becoming too big for Xemacs to handle
6379 (de-indenting a line would lock it up for 10 seconds while it
6385 (de-indenting a line would lock it up for 10 seconds while it
6380 backtracked on the whole class!)
6386 backtracked on the whole class!)
6381
6387
6382 FIXME: didn't work. It can be done, but right now namespaces are
6388 FIXME: didn't work. It can be done, but right now namespaces are
6383 all messed up. Do it later (reverted it for now, so at least
6389 all messed up. Do it later (reverted it for now, so at least
6384 everything works as before).
6390 everything works as before).
6385
6391
6386 * Got the object introspection system (magic_oinfo) working! I
6392 * Got the object introspection system (magic_oinfo) working! I
6387 think this is pretty much ready for release to Janko, so he can
6393 think this is pretty much ready for release to Janko, so he can
6388 test it for a while and then announce it. Pretty much 100% of what
6394 test it for a while and then announce it. Pretty much 100% of what
6389 I wanted for the 'phase 1' release is ready. Happy, tired.
6395 I wanted for the 'phase 1' release is ready. Happy, tired.
6390
6396
6391 2001-11-12 Fernando Perez <fperez@colorado.edu>
6397 2001-11-12 Fernando Perez <fperez@colorado.edu>
6392
6398
6393 * Version 0.1.6 released, 0.1.7 opened for further work.
6399 * Version 0.1.6 released, 0.1.7 opened for further work.
6394
6400
6395 * Fixed bug in printing: it used to test for truth before
6401 * Fixed bug in printing: it used to test for truth before
6396 printing, so 0 wouldn't print. Now checks for None.
6402 printing, so 0 wouldn't print. Now checks for None.
6397
6403
6398 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6404 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6399 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6405 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6400 reaches by hand into the outputcache. Think of a better way to do
6406 reaches by hand into the outputcache. Think of a better way to do
6401 this later.
6407 this later.
6402
6408
6403 * Various small fixes thanks to Nathan's comments.
6409 * Various small fixes thanks to Nathan's comments.
6404
6410
6405 * Changed magic_pprint to magic_Pprint. This way it doesn't
6411 * Changed magic_pprint to magic_Pprint. This way it doesn't
6406 collide with pprint() and the name is consistent with the command
6412 collide with pprint() and the name is consistent with the command
6407 line option.
6413 line option.
6408
6414
6409 * Changed prompt counter behavior to be fully like
6415 * Changed prompt counter behavior to be fully like
6410 Mathematica's. That is, even input that doesn't return a result
6416 Mathematica's. That is, even input that doesn't return a result
6411 raises the prompt counter. The old behavior was kind of confusing
6417 raises the prompt counter. The old behavior was kind of confusing
6412 (getting the same prompt number several times if the operation
6418 (getting the same prompt number several times if the operation
6413 didn't return a result).
6419 didn't return a result).
6414
6420
6415 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6421 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6416
6422
6417 * Fixed -Classic mode (wasn't working anymore).
6423 * Fixed -Classic mode (wasn't working anymore).
6418
6424
6419 * Added colored prompts using Nathan's new code. Colors are
6425 * Added colored prompts using Nathan's new code. Colors are
6420 currently hardwired, they can be user-configurable. For
6426 currently hardwired, they can be user-configurable. For
6421 developers, they can be chosen in file ipythonlib.py, at the
6427 developers, they can be chosen in file ipythonlib.py, at the
6422 beginning of the CachedOutput class def.
6428 beginning of the CachedOutput class def.
6423
6429
6424 2001-11-11 Fernando Perez <fperez@colorado.edu>
6430 2001-11-11 Fernando Perez <fperez@colorado.edu>
6425
6431
6426 * Version 0.1.5 released, 0.1.6 opened for further work.
6432 * Version 0.1.5 released, 0.1.6 opened for further work.
6427
6433
6428 * Changed magic_env to *return* the environment as a dict (not to
6434 * Changed magic_env to *return* the environment as a dict (not to
6429 print it). This way it prints, but it can also be processed.
6435 print it). This way it prints, but it can also be processed.
6430
6436
6431 * Added Verbose exception reporting to interactive
6437 * Added Verbose exception reporting to interactive
6432 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6438 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6433 traceback. Had to make some changes to the ultraTB file. This is
6439 traceback. Had to make some changes to the ultraTB file. This is
6434 probably the last 'big' thing in my mental todo list. This ties
6440 probably the last 'big' thing in my mental todo list. This ties
6435 in with the next entry:
6441 in with the next entry:
6436
6442
6437 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6443 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6438 has to specify is Plain, Color or Verbose for all exception
6444 has to specify is Plain, Color or Verbose for all exception
6439 handling.
6445 handling.
6440
6446
6441 * Removed ShellServices option. All this can really be done via
6447 * Removed ShellServices option. All this can really be done via
6442 the magic system. It's easier to extend, cleaner and has automatic
6448 the magic system. It's easier to extend, cleaner and has automatic
6443 namespace protection and documentation.
6449 namespace protection and documentation.
6444
6450
6445 2001-11-09 Fernando Perez <fperez@colorado.edu>
6451 2001-11-09 Fernando Perez <fperez@colorado.edu>
6446
6452
6447 * Fixed bug in output cache flushing (missing parameter to
6453 * Fixed bug in output cache flushing (missing parameter to
6448 __init__). Other small bugs fixed (found using pychecker).
6454 __init__). Other small bugs fixed (found using pychecker).
6449
6455
6450 * Version 0.1.4 opened for bugfixing.
6456 * Version 0.1.4 opened for bugfixing.
6451
6457
6452 2001-11-07 Fernando Perez <fperez@colorado.edu>
6458 2001-11-07 Fernando Perez <fperez@colorado.edu>
6453
6459
6454 * Version 0.1.3 released, mainly because of the raw_input bug.
6460 * Version 0.1.3 released, mainly because of the raw_input bug.
6455
6461
6456 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6462 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6457 and when testing for whether things were callable, a call could
6463 and when testing for whether things were callable, a call could
6458 actually be made to certain functions. They would get called again
6464 actually be made to certain functions. They would get called again
6459 once 'really' executed, with a resulting double call. A disaster
6465 once 'really' executed, with a resulting double call. A disaster
6460 in many cases (list.reverse() would never work!).
6466 in many cases (list.reverse() would never work!).
6461
6467
6462 * Removed prefilter() function, moved its code to raw_input (which
6468 * Removed prefilter() function, moved its code to raw_input (which
6463 after all was just a near-empty caller for prefilter). This saves
6469 after all was just a near-empty caller for prefilter). This saves
6464 a function call on every prompt, and simplifies the class a tiny bit.
6470 a function call on every prompt, and simplifies the class a tiny bit.
6465
6471
6466 * Fix _ip to __ip name in magic example file.
6472 * Fix _ip to __ip name in magic example file.
6467
6473
6468 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6474 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6469 work with non-gnu versions of tar.
6475 work with non-gnu versions of tar.
6470
6476
6471 2001-11-06 Fernando Perez <fperez@colorado.edu>
6477 2001-11-06 Fernando Perez <fperez@colorado.edu>
6472
6478
6473 * Version 0.1.2. Just to keep track of the recent changes.
6479 * Version 0.1.2. Just to keep track of the recent changes.
6474
6480
6475 * Fixed nasty bug in output prompt routine. It used to check 'if
6481 * Fixed nasty bug in output prompt routine. It used to check 'if
6476 arg != None...'. Problem is, this fails if arg implements a
6482 arg != None...'. Problem is, this fails if arg implements a
6477 special comparison (__cmp__) which disallows comparing to
6483 special comparison (__cmp__) which disallows comparing to
6478 None. Found it when trying to use the PhysicalQuantity module from
6484 None. Found it when trying to use the PhysicalQuantity module from
6479 ScientificPython.
6485 ScientificPython.
6480
6486
6481 2001-11-05 Fernando Perez <fperez@colorado.edu>
6487 2001-11-05 Fernando Perez <fperez@colorado.edu>
6482
6488
6483 * Also added dirs. Now the pushd/popd/dirs family functions
6489 * Also added dirs. Now the pushd/popd/dirs family functions
6484 basically like the shell, with the added convenience of going home
6490 basically like the shell, with the added convenience of going home
6485 when called with no args.
6491 when called with no args.
6486
6492
6487 * pushd/popd slightly modified to mimic shell behavior more
6493 * pushd/popd slightly modified to mimic shell behavior more
6488 closely.
6494 closely.
6489
6495
6490 * Added env,pushd,popd from ShellServices as magic functions. I
6496 * Added env,pushd,popd from ShellServices as magic functions. I
6491 think the cleanest will be to port all desired functions from
6497 think the cleanest will be to port all desired functions from
6492 ShellServices as magics and remove ShellServices altogether. This
6498 ShellServices as magics and remove ShellServices altogether. This
6493 will provide a single, clean way of adding functionality
6499 will provide a single, clean way of adding functionality
6494 (shell-type or otherwise) to IP.
6500 (shell-type or otherwise) to IP.
6495
6501
6496 2001-11-04 Fernando Perez <fperez@colorado.edu>
6502 2001-11-04 Fernando Perez <fperez@colorado.edu>
6497
6503
6498 * Added .ipython/ directory to sys.path. This way users can keep
6504 * Added .ipython/ directory to sys.path. This way users can keep
6499 customizations there and access them via import.
6505 customizations there and access them via import.
6500
6506
6501 2001-11-03 Fernando Perez <fperez@colorado.edu>
6507 2001-11-03 Fernando Perez <fperez@colorado.edu>
6502
6508
6503 * Opened version 0.1.1 for new changes.
6509 * Opened version 0.1.1 for new changes.
6504
6510
6505 * Changed version number to 0.1.0: first 'public' release, sent to
6511 * Changed version number to 0.1.0: first 'public' release, sent to
6506 Nathan and Janko.
6512 Nathan and Janko.
6507
6513
6508 * Lots of small fixes and tweaks.
6514 * Lots of small fixes and tweaks.
6509
6515
6510 * Minor changes to whos format. Now strings are shown, snipped if
6516 * Minor changes to whos format. Now strings are shown, snipped if
6511 too long.
6517 too long.
6512
6518
6513 * Changed ShellServices to work on __main__ so they show up in @who
6519 * Changed ShellServices to work on __main__ so they show up in @who
6514
6520
6515 * Help also works with ? at the end of a line:
6521 * Help also works with ? at the end of a line:
6516 ?sin and sin?
6522 ?sin and sin?
6517 both produce the same effect. This is nice, as often I use the
6523 both produce the same effect. This is nice, as often I use the
6518 tab-complete to find the name of a method, but I used to then have
6524 tab-complete to find the name of a method, but I used to then have
6519 to go to the beginning of the line to put a ? if I wanted more
6525 to go to the beginning of the line to put a ? if I wanted more
6520 info. Now I can just add the ? and hit return. Convenient.
6526 info. Now I can just add the ? and hit return. Convenient.
6521
6527
6522 2001-11-02 Fernando Perez <fperez@colorado.edu>
6528 2001-11-02 Fernando Perez <fperez@colorado.edu>
6523
6529
6524 * Python version check (>=2.1) added.
6530 * Python version check (>=2.1) added.
6525
6531
6526 * Added LazyPython documentation. At this point the docs are quite
6532 * Added LazyPython documentation. At this point the docs are quite
6527 a mess. A cleanup is in order.
6533 a mess. A cleanup is in order.
6528
6534
6529 * Auto-installer created. For some bizarre reason, the zipfiles
6535 * Auto-installer created. For some bizarre reason, the zipfiles
6530 module isn't working on my system. So I made a tar version
6536 module isn't working on my system. So I made a tar version
6531 (hopefully the command line options in various systems won't kill
6537 (hopefully the command line options in various systems won't kill
6532 me).
6538 me).
6533
6539
6534 * Fixes to Struct in genutils. Now all dictionary-like methods are
6540 * Fixes to Struct in genutils. Now all dictionary-like methods are
6535 protected (reasonably).
6541 protected (reasonably).
6536
6542
6537 * Added pager function to genutils and changed ? to print usage
6543 * Added pager function to genutils and changed ? to print usage
6538 note through it (it was too long).
6544 note through it (it was too long).
6539
6545
6540 * Added the LazyPython functionality. Works great! I changed the
6546 * Added the LazyPython functionality. Works great! I changed the
6541 auto-quote escape to ';', it's on home row and next to '. But
6547 auto-quote escape to ';', it's on home row and next to '. But
6542 both auto-quote and auto-paren (still /) escapes are command-line
6548 both auto-quote and auto-paren (still /) escapes are command-line
6543 parameters.
6549 parameters.
6544
6550
6545
6551
6546 2001-11-01 Fernando Perez <fperez@colorado.edu>
6552 2001-11-01 Fernando Perez <fperez@colorado.edu>
6547
6553
6548 * Version changed to 0.0.7. Fairly large change: configuration now
6554 * Version changed to 0.0.7. Fairly large change: configuration now
6549 is all stored in a directory, by default .ipython. There, all
6555 is all stored in a directory, by default .ipython. There, all
6550 config files have normal looking names (not .names)
6556 config files have normal looking names (not .names)
6551
6557
6552 * Version 0.0.6 Released first to Lucas and Archie as a test
6558 * Version 0.0.6 Released first to Lucas and Archie as a test
6553 run. Since it's the first 'semi-public' release, change version to
6559 run. Since it's the first 'semi-public' release, change version to
6554 > 0.0.6 for any changes now.
6560 > 0.0.6 for any changes now.
6555
6561
6556 * Stuff I had put in the ipplib.py changelog:
6562 * Stuff I had put in the ipplib.py changelog:
6557
6563
6558 Changes to InteractiveShell:
6564 Changes to InteractiveShell:
6559
6565
6560 - Made the usage message a parameter.
6566 - Made the usage message a parameter.
6561
6567
6562 - Require the name of the shell variable to be given. It's a bit
6568 - Require the name of the shell variable to be given. It's a bit
6563 of a hack, but allows the name 'shell' not to be hardwired in the
6569 of a hack, but allows the name 'shell' not to be hardwired in the
6564 magic (@) handler, which is problematic b/c it requires
6570 magic (@) handler, which is problematic b/c it requires
6565 polluting the global namespace with 'shell'. This in turn is
6571 polluting the global namespace with 'shell'. This in turn is
6566 fragile: if a user redefines a variable called shell, things
6572 fragile: if a user redefines a variable called shell, things
6567 break.
6573 break.
6568
6574
6569 - magic @: all functions available through @ need to be defined
6575 - magic @: all functions available through @ need to be defined
6570 as magic_<name>, even though they can be called simply as
6576 as magic_<name>, even though they can be called simply as
6571 @<name>. This allows the special command @magic to gather
6577 @<name>. This allows the special command @magic to gather
6572 information automatically about all existing magic functions,
6578 information automatically about all existing magic functions,
6573 even if they are run-time user extensions, by parsing the shell
6579 even if they are run-time user extensions, by parsing the shell
6574 instance __dict__ looking for special magic_ names.
6580 instance __dict__ looking for special magic_ names.
6575
6581
6576 - mainloop: added *two* local namespace parameters. This allows
6582 - mainloop: added *two* local namespace parameters. This allows
6577 the class to differentiate between parameters which were there
6583 the class to differentiate between parameters which were there
6578 before and after command line initialization was processed. This
6584 before and after command line initialization was processed. This
6579 way, later @who can show things loaded at startup by the
6585 way, later @who can show things loaded at startup by the
6580 user. This trick was necessary to make session saving/reloading
6586 user. This trick was necessary to make session saving/reloading
6581 really work: ideally after saving/exiting/reloading a session,
6587 really work: ideally after saving/exiting/reloading a session,
6582 *everything* should look the same, including the output of @who. I
6588 *everything* should look the same, including the output of @who. I
6583 was only able to make this work with this double namespace
6589 was only able to make this work with this double namespace
6584 trick.
6590 trick.
6585
6591
6586 - added a header to the logfile which allows (almost) full
6592 - added a header to the logfile which allows (almost) full
6587 session restoring.
6593 session restoring.
6588
6594
6589 - prepend lines beginning with @ or !, with a and log
6595 - prepend lines beginning with @ or !, with a and log
6590 them. Why? !lines: may be useful to know what you did @lines:
6596 them. Why? !lines: may be useful to know what you did @lines:
6591 they may affect session state. So when restoring a session, at
6597 they may affect session state. So when restoring a session, at
6592 least inform the user of their presence. I couldn't quite get
6598 least inform the user of their presence. I couldn't quite get
6593 them to properly re-execute, but at least the user is warned.
6599 them to properly re-execute, but at least the user is warned.
6594
6600
6595 * Started ChangeLog.
6601 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now