##// END OF EJS Templates
- Close #131.
fperez -
Show More
@@ -1,267 +1,281 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 2155 2007-03-19 00:45:51Z fperez $"""
31 $Id: PyColorize.py 2205 2007-04-04 06:04:01Z fperez $"""
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 self.raw = string.strip(string.expandtabs(raw))
136 string_output = 0
135 string_output = 0
137 if out == 'str' or self.out == 'str':
136 if out == 'str' or self.out == 'str':
138 out_old = self.out
137 out_old = self.out
139 self.out = cStringIO.StringIO()
138 self.out = cStringIO.StringIO()
140 string_output = 1
139 string_output = 1
141 elif out is not None:
140 elif out is not None:
142 self.out = out
141 self.out = out
143 # local shorthand
142
143 # Fast return of the unmodified input for NoColor scheme
144 if scheme == 'NoColor':
145 error = False
146 self.out.write(raw)
147 if string_output:
148 return raw,error
149 else:
150 return None,error
151
152 # local shorthands
144 colors = self.color_table[scheme].colors
153 colors = self.color_table[scheme].colors
145 self.colors = colors # put in object so __call__ sees it
154 self.colors = colors # put in object so __call__ sees it
155
156 # Remove trailing whitespace and normalize tabs
157 self.raw = raw.expandtabs().rstrip()
146 # store line offsets in self.lines
158 # store line offsets in self.lines
147 self.lines = [0, 0]
159 self.lines = [0, 0]
148 pos = 0
160 pos = 0
161 raw_find = raw.find
162 lines_append = self.lines.append
149 while 1:
163 while 1:
150 pos = string.find(self.raw, '\n', pos) + 1
164 pos = raw_find('\n', pos) + 1
151 if not pos: break
165 if not pos: break
152 self.lines.append(pos)
166 lines_append(pos)
153 self.lines.append(len(self.raw))
167 lines_append(len(self.raw))
154
168
155 # parse the source and write it
169 # parse the source and write it
156 self.pos = 0
170 self.pos = 0
157 text = cStringIO.StringIO(self.raw)
171 text = cStringIO.StringIO(self.raw)
158 #self.out.write('<pre><font face="Courier New">')
159
172
160 error = False
173 error = False
161 try:
174 try:
162 tokenize.tokenize(text.readline, self)
175 tokenize.tokenize(text.readline, self)
163 except tokenize.TokenError, ex:
176 except tokenize.TokenError, ex:
164 msg = ex[0]
177 msg = ex[0]
165 line = ex[1][0]
178 line = ex[1][0]
166 self.out.write("%s\n\n*** ERROR: %s%s%s\n" %
179 self.out.write("%s\n\n*** ERROR: %s%s%s\n" %
167 (colors[token.ERRORTOKEN],
180 (colors[token.ERRORTOKEN],
168 msg, self.raw[self.lines[line]:],
181 msg, self.raw[self.lines[line]:],
169 colors.normal)
182 colors.normal)
170 )
183 )
171 error = True
184 error = True
172 self.out.write(colors.normal+'\n')
185 self.out.write(colors.normal+'\n')
173 if string_output:
186 if string_output:
174 output = self.out.getvalue()
187 output = self.out.getvalue()
175 self.out = out_old
188 self.out = out_old
176 return (output, error)
189 return (output, error)
177 return (None, error)
190 return (None, error)
178
191
179 def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line):
192 def __call__(self, toktype, toktext, (srow,scol), (erow,ecol), line):
180 """ Token handler, with syntax highlighting."""
193 """ Token handler, with syntax highlighting."""
181
194
182 # local shorthand
195 # local shorthands
183 colors = self.colors
196 colors = self.colors
197 owrite = self.out.write
184
198
185 # line separator, so this works across platforms
199 # line separator, so this works across platforms
186 linesep = os.linesep
200 linesep = os.linesep
187
201
188 # calculate new positions
202 # calculate new positions
189 oldpos = self.pos
203 oldpos = self.pos
190 newpos = self.lines[srow] + scol
204 newpos = self.lines[srow] + scol
191 self.pos = newpos + len(toktext)
205 self.pos = newpos + len(toktext)
192
206
193 # handle newlines
207 # handle newlines
194 if toktype in [token.NEWLINE, tokenize.NL]:
208 if toktype in [token.NEWLINE, tokenize.NL]:
195 self.out.write(linesep)
209 owrite(linesep)
196 return
210 return
197
211
198 # send the original whitespace, if needed
212 # send the original whitespace, if needed
199 if newpos > oldpos:
213 if newpos > oldpos:
200 self.out.write(self.raw[oldpos:newpos])
214 owrite(self.raw[oldpos:newpos])
201
215
202 # skip indenting tokens
216 # skip indenting tokens
203 if toktype in [token.INDENT, token.DEDENT]:
217 if toktype in [token.INDENT, token.DEDENT]:
204 self.pos = newpos
218 self.pos = newpos
205 return
219 return
206
220
207 # map token type to a color group
221 # map token type to a color group
208 if token.LPAR <= toktype and toktype <= token.OP:
222 if token.LPAR <= toktype and toktype <= token.OP:
209 toktype = token.OP
223 toktype = token.OP
210 elif toktype == token.NAME and keyword.iskeyword(toktext):
224 elif toktype == token.NAME and keyword.iskeyword(toktext):
211 toktype = _KEYWORD
225 toktype = _KEYWORD
212 color = colors.get(toktype, colors[_TEXT])
226 color = colors.get(toktype, colors[_TEXT])
213
227
214 #print '<%s>' % toktext, # dbg
228 #print '<%s>' % toktext, # dbg
215
229
216 # Triple quoted strings must be handled carefully so that backtracking
230 # Triple quoted strings must be handled carefully so that backtracking
217 # in pagers works correctly. We need color terminators on _each_ line.
231 # in pagers works correctly. We need color terminators on _each_ line.
218 if linesep in toktext:
232 if linesep in toktext:
219 toktext = toktext.replace(linesep, '%s%s%s' %
233 toktext = toktext.replace(linesep, '%s%s%s' %
220 (colors.normal,linesep,color))
234 (colors.normal,linesep,color))
221
235
222 # send text
236 # send text
223 self.out.write('%s%s%s' % (color,toktext,colors.normal))
237 owrite('%s%s%s' % (color,toktext,colors.normal))
224
238
225 def main():
239 def main():
226 """Colorize a python file using ANSI color escapes and print to stdout.
240 """Colorize a python file using ANSI color escapes and print to stdout.
227
241
228 Usage:
242 Usage:
229 %s [-s scheme] filename
243 %s [-s scheme] filename
230
244
231 Options:
245 Options:
232
246
233 -s scheme: give the color scheme to use. Currently only 'Linux'
247 -s scheme: give the color scheme to use. Currently only 'Linux'
234 (default) and 'LightBG' and 'NoColor' are implemented (give without
248 (default) and 'LightBG' and 'NoColor' are implemented (give without
235 quotes). """
249 quotes). """
236
250
237 def usage():
251 def usage():
238 print >> sys.stderr, main.__doc__ % sys.argv[0]
252 print >> sys.stderr, main.__doc__ % sys.argv[0]
239 sys.exit(1)
253 sys.exit(1)
240
254
241 # FIXME: rewrite this to at least use getopt
255 # FIXME: rewrite this to at least use getopt
242 try:
256 try:
243 if sys.argv[1] == '-s':
257 if sys.argv[1] == '-s':
244 scheme_name = sys.argv[2]
258 scheme_name = sys.argv[2]
245 del sys.argv[1:3]
259 del sys.argv[1:3]
246 else:
260 else:
247 scheme_name = _scheme_default
261 scheme_name = _scheme_default
248
262
249 except:
263 except:
250 usage()
264 usage()
251
265
252 try:
266 try:
253 fname = sys.argv[1]
267 fname = sys.argv[1]
254 except:
268 except:
255 usage()
269 usage()
256
270
257 # write colorized version to stdout
271 # write colorized version to stdout
258 parser = Parser()
272 parser = Parser()
259 try:
273 try:
260 parser.format(file(fname).read(),scheme = scheme_name)
274 parser.format(file(fname).read(),scheme = scheme_name)
261 except IOError,msg:
275 except IOError,msg:
262 # if user reads through a pager and quits, don't print traceback
276 # if user reads through a pager and quits, don't print traceback
263 if msg.args != (32,'Broken pipe'):
277 if msg.args != (32,'Broken pipe'):
264 raise
278 raise
265
279
266 if __name__ == "__main__":
280 if __name__ == "__main__":
267 main()
281 main()
@@ -1,6458 +1,6464 b''
1 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/PyColorize.py (Parser.format2): Fix identation of
4 colorzied output and return early if color scheme is NoColor, to
5 avoid unnecessary and expensive tokenization. Closes #131.
6
1 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
7 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/Debugger.py: disable the use of pydb version 1.17. It
9 * IPython/Debugger.py: disable the use of pydb version 1.17. It
4 has a critical bug (a missing import that makes post-mortem not
10 has a critical bug (a missing import that makes post-mortem not
5 work at all). Unfortunately as of this time, this is the version
11 work at all). Unfortunately as of this time, this is the version
6 shipped with Ubuntu Edgy, so quite a few people have this one. I
12 shipped with Ubuntu Edgy, so quite a few people have this one. I
7 hope Edgy will update to a more recent package.
13 hope Edgy will update to a more recent package.
8
14
9 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
15 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
10
16
11 * IPython/iplib.py (_prefilter): close #52, second part of a patch
17 * IPython/iplib.py (_prefilter): close #52, second part of a patch
12 set by Stefan (only the first part had been applied before).
18 set by Stefan (only the first part had been applied before).
13
19
14 * IPython/Extensions/ipy_stock_completers.py (module_completer):
20 * IPython/Extensions/ipy_stock_completers.py (module_completer):
15 remove usage of the dangerous pkgutil.walk_packages(). See
21 remove usage of the dangerous pkgutil.walk_packages(). See
16 details in comments left in the code.
22 details in comments left in the code.
17
23
18 * IPython/Magic.py (magic_whos): add support for numpy arrays
24 * IPython/Magic.py (magic_whos): add support for numpy arrays
19 similar to what we had for Numeric.
25 similar to what we had for Numeric.
20
26
21 * IPython/completer.py (IPCompleter.complete): extend the
27 * IPython/completer.py (IPCompleter.complete): extend the
22 complete() call API to support completions by other mechanisms
28 complete() call API to support completions by other mechanisms
23 than readline. Closes #109.
29 than readline. Closes #109.
24
30
25 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
31 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
26 protect against a bug in Python's execfile(). Closes #123.
32 protect against a bug in Python's execfile(). Closes #123.
27
33
28 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
34 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
29
35
30 * IPython/iplib.py (split_user_input): ensure that when splitting
36 * IPython/iplib.py (split_user_input): ensure that when splitting
31 user input, the part that can be treated as a python name is pure
37 user input, the part that can be treated as a python name is pure
32 ascii (Python identifiers MUST be pure ascii). Part of the
38 ascii (Python identifiers MUST be pure ascii). Part of the
33 ongoing Unicode support work.
39 ongoing Unicode support work.
34
40
35 * IPython/Prompts.py (prompt_specials_color): Add \N for the
41 * IPython/Prompts.py (prompt_specials_color): Add \N for the
36 actual prompt number, without any coloring. This allows users to
42 actual prompt number, without any coloring. This allows users to
37 produce numbered prompts with their own colors. Added after a
43 produce numbered prompts with their own colors. Added after a
38 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
44 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
39
45
40 2007-03-31 Walter Doerwald <walter@livinglogic.de>
46 2007-03-31 Walter Doerwald <walter@livinglogic.de>
41
47
42 * IPython/Extensions/igrid.py: Map the return key
48 * IPython/Extensions/igrid.py: Map the return key
43 to enter() and shift-return to enterattr().
49 to enter() and shift-return to enterattr().
44
50
45 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
51 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
46
52
47 * IPython/Magic.py (magic_psearch): add unicode support by
53 * IPython/Magic.py (magic_psearch): add unicode support by
48 encoding to ascii the input, since this routine also only deals
54 encoding to ascii the input, since this routine also only deals
49 with valid Python names. Fixes a bug reported by Stefan.
55 with valid Python names. Fixes a bug reported by Stefan.
50
56
51 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
57 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
52
58
53 * IPython/Magic.py (_inspect): convert unicode input into ascii
59 * IPython/Magic.py (_inspect): convert unicode input into ascii
54 before trying to evaluate it as a Python identifier. This fixes a
60 before trying to evaluate it as a Python identifier. This fixes a
55 problem that the new unicode support had introduced when analyzing
61 problem that the new unicode support had introduced when analyzing
56 long definition lines for functions.
62 long definition lines for functions.
57
63
58 2007-03-24 Walter Doerwald <walter@livinglogic.de>
64 2007-03-24 Walter Doerwald <walter@livinglogic.de>
59
65
60 * IPython/Extensions/igrid.py: Fix picking. Using
66 * IPython/Extensions/igrid.py: Fix picking. Using
61 igrid with wxPython 2.6 and -wthread should work now.
67 igrid with wxPython 2.6 and -wthread should work now.
62 igrid.display() simply tries to create a frame without
68 igrid.display() simply tries to create a frame without
63 an application. Only if this fails an application is created.
69 an application. Only if this fails an application is created.
64
70
65 2007-03-23 Walter Doerwald <walter@livinglogic.de>
71 2007-03-23 Walter Doerwald <walter@livinglogic.de>
66
72
67 * IPython/Extensions/path.py: Updated to version 2.2.
73 * IPython/Extensions/path.py: Updated to version 2.2.
68
74
69 2007-03-23 Ville Vainio <vivainio@gmail.com>
75 2007-03-23 Ville Vainio <vivainio@gmail.com>
70
76
71 * iplib.py: recursive alias expansion now works better, so that
77 * iplib.py: recursive alias expansion now works better, so that
72 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
78 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
73 doesn't trip up the process, if 'd' has been aliased to 'ls'.
79 doesn't trip up the process, if 'd' has been aliased to 'ls'.
74
80
75 * Extensions/ipy_gnuglobal.py added, provides %global magic
81 * Extensions/ipy_gnuglobal.py added, provides %global magic
76 for users of http://www.gnu.org/software/global
82 for users of http://www.gnu.org/software/global
77
83
78 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
84 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
79 Closes #52. Patch by Stefan van der Walt.
85 Closes #52. Patch by Stefan van der Walt.
80
86
81 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
87 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
82
88
83 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
89 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
84 respect the __file__ attribute when using %run. Thanks to a bug
90 respect the __file__ attribute when using %run. Thanks to a bug
85 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
91 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
86
92
87 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
93 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
88
94
89 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
95 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
90 input. Patch sent by Stefan.
96 input. Patch sent by Stefan.
91
97
92 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
98 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
93 * IPython/Extensions/ipy_stock_completer.py
99 * IPython/Extensions/ipy_stock_completer.py
94 shlex_split, fix bug in shlex_split. len function
100 shlex_split, fix bug in shlex_split. len function
95 call was missing an if statement. Caused shlex_split to
101 call was missing an if statement. Caused shlex_split to
96 sometimes return "" as last element.
102 sometimes return "" as last element.
97
103
98 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
104 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
99
105
100 * IPython/completer.py
106 * IPython/completer.py
101 (IPCompleter.file_matches.single_dir_expand): fix a problem
107 (IPCompleter.file_matches.single_dir_expand): fix a problem
102 reported by Stefan, where directories containign a single subdir
108 reported by Stefan, where directories containign a single subdir
103 would be completed too early.
109 would be completed too early.
104
110
105 * IPython/Shell.py (_load_pylab): Make the execution of 'from
111 * IPython/Shell.py (_load_pylab): Make the execution of 'from
106 pylab import *' when -pylab is given be optional. A new flag,
112 pylab import *' when -pylab is given be optional. A new flag,
107 pylab_import_all controls this behavior, the default is True for
113 pylab_import_all controls this behavior, the default is True for
108 backwards compatibility.
114 backwards compatibility.
109
115
110 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
116 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
111 modified) R. Bernstein's patch for fully syntax highlighted
117 modified) R. Bernstein's patch for fully syntax highlighted
112 tracebacks. The functionality is also available under ultraTB for
118 tracebacks. The functionality is also available under ultraTB for
113 non-ipython users (someone using ultraTB but outside an ipython
119 non-ipython users (someone using ultraTB but outside an ipython
114 session). They can select the color scheme by setting the
120 session). They can select the color scheme by setting the
115 module-level global DEFAULT_SCHEME. The highlight functionality
121 module-level global DEFAULT_SCHEME. The highlight functionality
116 also works when debugging.
122 also works when debugging.
117
123
118 * IPython/genutils.py (IOStream.close): small patch by
124 * IPython/genutils.py (IOStream.close): small patch by
119 R. Bernstein for improved pydb support.
125 R. Bernstein for improved pydb support.
120
126
121 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
127 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
122 DaveS <davls@telus.net> to improve support of debugging under
128 DaveS <davls@telus.net> to improve support of debugging under
123 NTEmacs, including improved pydb behavior.
129 NTEmacs, including improved pydb behavior.
124
130
125 * IPython/Magic.py (magic_prun): Fix saving of profile info for
131 * IPython/Magic.py (magic_prun): Fix saving of profile info for
126 Python 2.5, where the stats object API changed a little. Thanks
132 Python 2.5, where the stats object API changed a little. Thanks
127 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
133 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
128
134
129 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
135 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
130 Pernetty's patch to improve support for (X)Emacs under Win32.
136 Pernetty's patch to improve support for (X)Emacs under Win32.
131
137
132 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
138 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
133
139
134 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
140 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
135 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
141 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
136 a report by Nik Tautenhahn.
142 a report by Nik Tautenhahn.
137
143
138 2007-03-16 Walter Doerwald <walter@livinglogic.de>
144 2007-03-16 Walter Doerwald <walter@livinglogic.de>
139
145
140 * setup.py: Add the igrid help files to the list of data files
146 * setup.py: Add the igrid help files to the list of data files
141 to be installed alongside igrid.
147 to be installed alongside igrid.
142 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
148 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
143 Show the input object of the igrid browser as the window tile.
149 Show the input object of the igrid browser as the window tile.
144 Show the object the cursor is on in the statusbar.
150 Show the object the cursor is on in the statusbar.
145
151
146 2007-03-15 Ville Vainio <vivainio@gmail.com>
152 2007-03-15 Ville Vainio <vivainio@gmail.com>
147
153
148 * Extensions/ipy_stock_completers.py: Fixed exception
154 * Extensions/ipy_stock_completers.py: Fixed exception
149 on mismatching quotes in %run completer. Patch by
155 on mismatching quotes in %run completer. Patch by
150 JοΏ½rgen Stenarson. Closes #127.
156 JοΏ½rgen Stenarson. Closes #127.
151
157
152 2007-03-14 Ville Vainio <vivainio@gmail.com>
158 2007-03-14 Ville Vainio <vivainio@gmail.com>
153
159
154 * Extensions/ext_rehashdir.py: Do not do auto_alias
160 * Extensions/ext_rehashdir.py: Do not do auto_alias
155 in %rehashdir, it clobbers %store'd aliases.
161 in %rehashdir, it clobbers %store'd aliases.
156
162
157 * UserConfig/ipy_profile_sh.py: envpersist.py extension
163 * UserConfig/ipy_profile_sh.py: envpersist.py extension
158 (beefed up %env) imported for sh profile.
164 (beefed up %env) imported for sh profile.
159
165
160 2007-03-10 Walter Doerwald <walter@livinglogic.de>
166 2007-03-10 Walter Doerwald <walter@livinglogic.de>
161
167
162 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
168 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
163 as the default browser.
169 as the default browser.
164 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
170 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
165 As igrid displays all attributes it ever encounters, fetch() (which has
171 As igrid displays all attributes it ever encounters, fetch() (which has
166 been renamed to _fetch()) doesn't have to recalculate the display attributes
172 been renamed to _fetch()) doesn't have to recalculate the display attributes
167 every time a new item is fetched. This should speed up scrolling.
173 every time a new item is fetched. This should speed up scrolling.
168
174
169 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
175 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
170
176
171 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
177 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
172 Schmolck's recently reported tab-completion bug (my previous one
178 Schmolck's recently reported tab-completion bug (my previous one
173 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
179 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
174
180
175 2007-03-09 Walter Doerwald <walter@livinglogic.de>
181 2007-03-09 Walter Doerwald <walter@livinglogic.de>
176
182
177 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
183 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
178 Close help window if exiting igrid.
184 Close help window if exiting igrid.
179
185
180 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
186 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
181
187
182 * IPython/Extensions/ipy_defaults.py: Check if readline is available
188 * IPython/Extensions/ipy_defaults.py: Check if readline is available
183 before calling functions from readline.
189 before calling functions from readline.
184
190
185 2007-03-02 Walter Doerwald <walter@livinglogic.de>
191 2007-03-02 Walter Doerwald <walter@livinglogic.de>
186
192
187 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
193 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
188 igrid is a wxPython-based display object for ipipe. If your system has
194 igrid is a wxPython-based display object for ipipe. If your system has
189 wx installed igrid will be the default display. Without wx ipipe falls
195 wx installed igrid will be the default display. Without wx ipipe falls
190 back to ibrowse (which needs curses). If no curses is installed ipipe
196 back to ibrowse (which needs curses). If no curses is installed ipipe
191 falls back to idump.
197 falls back to idump.
192
198
193 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
199 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
194
200
195 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
201 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
196 my changes from yesterday, they introduced bugs. Will reactivate
202 my changes from yesterday, they introduced bugs. Will reactivate
197 once I get a correct solution, which will be much easier thanks to
203 once I get a correct solution, which will be much easier thanks to
198 Dan Milstein's new prefilter test suite.
204 Dan Milstein's new prefilter test suite.
199
205
200 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
206 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
201
207
202 * IPython/iplib.py (split_user_input): fix input splitting so we
208 * IPython/iplib.py (split_user_input): fix input splitting so we
203 don't attempt attribute accesses on things that can't possibly be
209 don't attempt attribute accesses on things that can't possibly be
204 valid Python attributes. After a bug report by Alex Schmolck.
210 valid Python attributes. After a bug report by Alex Schmolck.
205 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
211 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
206 %magic with explicit % prefix.
212 %magic with explicit % prefix.
207
213
208 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
214 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
209
215
210 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
216 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
211 avoid a DeprecationWarning from GTK.
217 avoid a DeprecationWarning from GTK.
212
218
213 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
219 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
214
220
215 * IPython/genutils.py (clock): I modified clock() to return total
221 * IPython/genutils.py (clock): I modified clock() to return total
216 time, user+system. This is a more commonly needed metric. I also
222 time, user+system. This is a more commonly needed metric. I also
217 introduced the new clocku/clocks to get only user/system time if
223 introduced the new clocku/clocks to get only user/system time if
218 one wants those instead.
224 one wants those instead.
219
225
220 ***WARNING: API CHANGE*** clock() used to return only user time,
226 ***WARNING: API CHANGE*** clock() used to return only user time,
221 so if you want exactly the same results as before, use clocku
227 so if you want exactly the same results as before, use clocku
222 instead.
228 instead.
223
229
224 2007-02-22 Ville Vainio <vivainio@gmail.com>
230 2007-02-22 Ville Vainio <vivainio@gmail.com>
225
231
226 * IPython/Extensions/ipy_p4.py: Extension for improved
232 * IPython/Extensions/ipy_p4.py: Extension for improved
227 p4 (perforce version control system) experience.
233 p4 (perforce version control system) experience.
228 Adds %p4 magic with p4 command completion and
234 Adds %p4 magic with p4 command completion and
229 automatic -G argument (marshall output as python dict)
235 automatic -G argument (marshall output as python dict)
230
236
231 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
237 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
232
238
233 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
239 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
234 stop marks.
240 stop marks.
235 (ClearingMixin): a simple mixin to easily make a Demo class clear
241 (ClearingMixin): a simple mixin to easily make a Demo class clear
236 the screen in between blocks and have empty marquees. The
242 the screen in between blocks and have empty marquees. The
237 ClearDemo and ClearIPDemo classes that use it are included.
243 ClearDemo and ClearIPDemo classes that use it are included.
238
244
239 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
245 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
240
246
241 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
247 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
242 protect against exceptions at Python shutdown time. Patch
248 protect against exceptions at Python shutdown time. Patch
243 sumbmitted to upstream.
249 sumbmitted to upstream.
244
250
245 2007-02-14 Walter Doerwald <walter@livinglogic.de>
251 2007-02-14 Walter Doerwald <walter@livinglogic.de>
246
252
247 * IPython/Extensions/ibrowse.py: If entering the first object level
253 * IPython/Extensions/ibrowse.py: If entering the first object level
248 (i.e. the object for which the browser has been started) fails,
254 (i.e. the object for which the browser has been started) fails,
249 now the error is raised directly (aborting the browser) instead of
255 now the error is raised directly (aborting the browser) instead of
250 running into an empty levels list later.
256 running into an empty levels list later.
251
257
252 2007-02-03 Walter Doerwald <walter@livinglogic.de>
258 2007-02-03 Walter Doerwald <walter@livinglogic.de>
253
259
254 * IPython/Extensions/ipipe.py: Add an xrepr implementation
260 * IPython/Extensions/ipipe.py: Add an xrepr implementation
255 for the noitem object.
261 for the noitem object.
256
262
257 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
263 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
258
264
259 * IPython/completer.py (Completer.attr_matches): Fix small
265 * IPython/completer.py (Completer.attr_matches): Fix small
260 tab-completion bug with Enthought Traits objects with units.
266 tab-completion bug with Enthought Traits objects with units.
261 Thanks to a bug report by Tom Denniston
267 Thanks to a bug report by Tom Denniston
262 <tom.denniston-AT-alum.dartmouth.org>.
268 <tom.denniston-AT-alum.dartmouth.org>.
263
269
264 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
270 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
265
271
266 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
272 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
267 bug where only .ipy or .py would be completed. Once the first
273 bug where only .ipy or .py would be completed. Once the first
268 argument to %run has been given, all completions are valid because
274 argument to %run has been given, all completions are valid because
269 they are the arguments to the script, which may well be non-python
275 they are the arguments to the script, which may well be non-python
270 filenames.
276 filenames.
271
277
272 * IPython/irunner.py (InteractiveRunner.run_source): major updates
278 * IPython/irunner.py (InteractiveRunner.run_source): major updates
273 to irunner to allow it to correctly support real doctesting of
279 to irunner to allow it to correctly support real doctesting of
274 out-of-process ipython code.
280 out-of-process ipython code.
275
281
276 * IPython/Magic.py (magic_cd): Make the setting of the terminal
282 * IPython/Magic.py (magic_cd): Make the setting of the terminal
277 title an option (-noterm_title) because it completely breaks
283 title an option (-noterm_title) because it completely breaks
278 doctesting.
284 doctesting.
279
285
280 * IPython/demo.py: fix IPythonDemo class that was not actually working.
286 * IPython/demo.py: fix IPythonDemo class that was not actually working.
281
287
282 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
288 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
283
289
284 * IPython/irunner.py (main): fix small bug where extensions were
290 * IPython/irunner.py (main): fix small bug where extensions were
285 not being correctly recognized.
291 not being correctly recognized.
286
292
287 2007-01-23 Walter Doerwald <walter@livinglogic.de>
293 2007-01-23 Walter Doerwald <walter@livinglogic.de>
288
294
289 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
295 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
290 a string containing a single line yields the string itself as the
296 a string containing a single line yields the string itself as the
291 only item.
297 only item.
292
298
293 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
299 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
294 object if it's the same as the one on the last level (This avoids
300 object if it's the same as the one on the last level (This avoids
295 infinite recursion for one line strings).
301 infinite recursion for one line strings).
296
302
297 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
303 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
298
304
299 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
305 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
300 all output streams before printing tracebacks. This ensures that
306 all output streams before printing tracebacks. This ensures that
301 user output doesn't end up interleaved with traceback output.
307 user output doesn't end up interleaved with traceback output.
302
308
303 2007-01-10 Ville Vainio <vivainio@gmail.com>
309 2007-01-10 Ville Vainio <vivainio@gmail.com>
304
310
305 * Extensions/envpersist.py: Turbocharged %env that remembers
311 * Extensions/envpersist.py: Turbocharged %env that remembers
306 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
312 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
307 "%env VISUAL=jed".
313 "%env VISUAL=jed".
308
314
309 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
315 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
310
316
311 * IPython/iplib.py (showtraceback): ensure that we correctly call
317 * IPython/iplib.py (showtraceback): ensure that we correctly call
312 custom handlers in all cases (some with pdb were slipping through,
318 custom handlers in all cases (some with pdb were slipping through,
313 but I'm not exactly sure why).
319 but I'm not exactly sure why).
314
320
315 * IPython/Debugger.py (Tracer.__init__): added new class to
321 * IPython/Debugger.py (Tracer.__init__): added new class to
316 support set_trace-like usage of IPython's enhanced debugger.
322 support set_trace-like usage of IPython's enhanced debugger.
317
323
318 2006-12-24 Ville Vainio <vivainio@gmail.com>
324 2006-12-24 Ville Vainio <vivainio@gmail.com>
319
325
320 * ipmaker.py: more informative message when ipy_user_conf
326 * ipmaker.py: more informative message when ipy_user_conf
321 import fails (suggest running %upgrade).
327 import fails (suggest running %upgrade).
322
328
323 * tools/run_ipy_in_profiler.py: Utility to see where
329 * tools/run_ipy_in_profiler.py: Utility to see where
324 the time during IPython startup is spent.
330 the time during IPython startup is spent.
325
331
326 2006-12-20 Ville Vainio <vivainio@gmail.com>
332 2006-12-20 Ville Vainio <vivainio@gmail.com>
327
333
328 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
334 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
329
335
330 * ipapi.py: Add new ipapi method, expand_alias.
336 * ipapi.py: Add new ipapi method, expand_alias.
331
337
332 * Release.py: Bump up version to 0.7.4.svn
338 * Release.py: Bump up version to 0.7.4.svn
333
339
334 2006-12-17 Ville Vainio <vivainio@gmail.com>
340 2006-12-17 Ville Vainio <vivainio@gmail.com>
335
341
336 * Extensions/jobctrl.py: Fixed &cmd arg arg...
342 * Extensions/jobctrl.py: Fixed &cmd arg arg...
337 to work properly on posix too
343 to work properly on posix too
338
344
339 * Release.py: Update revnum (version is still just 0.7.3).
345 * Release.py: Update revnum (version is still just 0.7.3).
340
346
341 2006-12-15 Ville Vainio <vivainio@gmail.com>
347 2006-12-15 Ville Vainio <vivainio@gmail.com>
342
348
343 * scripts/ipython_win_post_install: create ipython.py in
349 * scripts/ipython_win_post_install: create ipython.py in
344 prefix + "/scripts".
350 prefix + "/scripts".
345
351
346 * Release.py: Update version to 0.7.3.
352 * Release.py: Update version to 0.7.3.
347
353
348 2006-12-14 Ville Vainio <vivainio@gmail.com>
354 2006-12-14 Ville Vainio <vivainio@gmail.com>
349
355
350 * scripts/ipython_win_post_install: Overwrite old shortcuts
356 * scripts/ipython_win_post_install: Overwrite old shortcuts
351 if they already exist
357 if they already exist
352
358
353 * Release.py: release 0.7.3rc2
359 * Release.py: release 0.7.3rc2
354
360
355 2006-12-13 Ville Vainio <vivainio@gmail.com>
361 2006-12-13 Ville Vainio <vivainio@gmail.com>
356
362
357 * Branch and update Release.py for 0.7.3rc1
363 * Branch and update Release.py for 0.7.3rc1
358
364
359 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
365 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
360
366
361 * IPython/Shell.py (IPShellWX): update for current WX naming
367 * IPython/Shell.py (IPShellWX): update for current WX naming
362 conventions, to avoid a deprecation warning with current WX
368 conventions, to avoid a deprecation warning with current WX
363 versions. Thanks to a report by Danny Shevitz.
369 versions. Thanks to a report by Danny Shevitz.
364
370
365 2006-12-12 Ville Vainio <vivainio@gmail.com>
371 2006-12-12 Ville Vainio <vivainio@gmail.com>
366
372
367 * ipmaker.py: apply david cournapeau's patch to make
373 * ipmaker.py: apply david cournapeau's patch to make
368 import_some work properly even when ipythonrc does
374 import_some work properly even when ipythonrc does
369 import_some on empty list (it was an old bug!).
375 import_some on empty list (it was an old bug!).
370
376
371 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
377 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
372 Add deprecation note to ipythonrc and a url to wiki
378 Add deprecation note to ipythonrc and a url to wiki
373 in ipy_user_conf.py
379 in ipy_user_conf.py
374
380
375
381
376 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
382 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
377 as if it was typed on IPython command prompt, i.e.
383 as if it was typed on IPython command prompt, i.e.
378 as IPython script.
384 as IPython script.
379
385
380 * example-magic.py, magic_grepl.py: remove outdated examples
386 * example-magic.py, magic_grepl.py: remove outdated examples
381
387
382 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
388 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
383
389
384 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
390 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
385 is called before any exception has occurred.
391 is called before any exception has occurred.
386
392
387 2006-12-08 Ville Vainio <vivainio@gmail.com>
393 2006-12-08 Ville Vainio <vivainio@gmail.com>
388
394
389 * Extensions/ipy_stock_completers.py: fix cd completer
395 * Extensions/ipy_stock_completers.py: fix cd completer
390 to translate /'s to \'s again.
396 to translate /'s to \'s again.
391
397
392 * completer.py: prevent traceback on file completions w/
398 * completer.py: prevent traceback on file completions w/
393 backslash.
399 backslash.
394
400
395 * Release.py: Update release number to 0.7.3b3 for release
401 * Release.py: Update release number to 0.7.3b3 for release
396
402
397 2006-12-07 Ville Vainio <vivainio@gmail.com>
403 2006-12-07 Ville Vainio <vivainio@gmail.com>
398
404
399 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
405 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
400 while executing external code. Provides more shell-like behaviour
406 while executing external code. Provides more shell-like behaviour
401 and overall better response to ctrl + C / ctrl + break.
407 and overall better response to ctrl + C / ctrl + break.
402
408
403 * tools/make_tarball.py: new script to create tarball straight from svn
409 * tools/make_tarball.py: new script to create tarball straight from svn
404 (setup.py sdist doesn't work on win32).
410 (setup.py sdist doesn't work on win32).
405
411
406 * Extensions/ipy_stock_completers.py: fix cd completer to give up
412 * Extensions/ipy_stock_completers.py: fix cd completer to give up
407 on dirnames with spaces and use the default completer instead.
413 on dirnames with spaces and use the default completer instead.
408
414
409 * Revision.py: Change version to 0.7.3b2 for release.
415 * Revision.py: Change version to 0.7.3b2 for release.
410
416
411 2006-12-05 Ville Vainio <vivainio@gmail.com>
417 2006-12-05 Ville Vainio <vivainio@gmail.com>
412
418
413 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
419 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
414 pydb patch 4 (rm debug printing, py 2.5 checking)
420 pydb patch 4 (rm debug printing, py 2.5 checking)
415
421
416 2006-11-30 Walter Doerwald <walter@livinglogic.de>
422 2006-11-30 Walter Doerwald <walter@livinglogic.de>
417 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
423 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
418 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
424 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
419 "refreshfind" (mapped to "R") does the same but tries to go back to the same
425 "refreshfind" (mapped to "R") does the same but tries to go back to the same
420 object the cursor was on before the refresh. The command "markrange" is
426 object the cursor was on before the refresh. The command "markrange" is
421 mapped to "%" now.
427 mapped to "%" now.
422 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
428 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
423
429
424 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
430 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
425
431
426 * IPython/Magic.py (magic_debug): new %debug magic to activate the
432 * IPython/Magic.py (magic_debug): new %debug magic to activate the
427 interactive debugger on the last traceback, without having to call
433 interactive debugger on the last traceback, without having to call
428 %pdb and rerun your code. Made minor changes in various modules,
434 %pdb and rerun your code. Made minor changes in various modules,
429 should automatically recognize pydb if available.
435 should automatically recognize pydb if available.
430
436
431 2006-11-28 Ville Vainio <vivainio@gmail.com>
437 2006-11-28 Ville Vainio <vivainio@gmail.com>
432
438
433 * completer.py: If the text start with !, show file completions
439 * completer.py: If the text start with !, show file completions
434 properly. This helps when trying to complete command name
440 properly. This helps when trying to complete command name
435 for shell escapes.
441 for shell escapes.
436
442
437 2006-11-27 Ville Vainio <vivainio@gmail.com>
443 2006-11-27 Ville Vainio <vivainio@gmail.com>
438
444
439 * ipy_stock_completers.py: bzr completer submitted by Stefan van
445 * ipy_stock_completers.py: bzr completer submitted by Stefan van
440 der Walt. Clean up svn and hg completers by using a common
446 der Walt. Clean up svn and hg completers by using a common
441 vcs_completer.
447 vcs_completer.
442
448
443 2006-11-26 Ville Vainio <vivainio@gmail.com>
449 2006-11-26 Ville Vainio <vivainio@gmail.com>
444
450
445 * Remove ipconfig and %config; you should use _ip.options structure
451 * Remove ipconfig and %config; you should use _ip.options structure
446 directly instead!
452 directly instead!
447
453
448 * genutils.py: add wrap_deprecated function for deprecating callables
454 * genutils.py: add wrap_deprecated function for deprecating callables
449
455
450 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
456 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
451 _ip.system instead. ipalias is redundant.
457 _ip.system instead. ipalias is redundant.
452
458
453 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
459 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
454 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
460 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
455 explicit.
461 explicit.
456
462
457 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
463 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
458 completer. Try it by entering 'hg ' and pressing tab.
464 completer. Try it by entering 'hg ' and pressing tab.
459
465
460 * macro.py: Give Macro a useful __repr__ method
466 * macro.py: Give Macro a useful __repr__ method
461
467
462 * Magic.py: %whos abbreviates the typename of Macro for brevity.
468 * Magic.py: %whos abbreviates the typename of Macro for brevity.
463
469
464 2006-11-24 Walter Doerwald <walter@livinglogic.de>
470 2006-11-24 Walter Doerwald <walter@livinglogic.de>
465 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
471 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
466 we don't get a duplicate ipipe module, where registration of the xrepr
472 we don't get a duplicate ipipe module, where registration of the xrepr
467 implementation for Text is useless.
473 implementation for Text is useless.
468
474
469 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
475 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
470
476
471 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
477 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
472
478
473 2006-11-24 Ville Vainio <vivainio@gmail.com>
479 2006-11-24 Ville Vainio <vivainio@gmail.com>
474
480
475 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
481 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
476 try to use "cProfile" instead of the slower pure python
482 try to use "cProfile" instead of the slower pure python
477 "profile"
483 "profile"
478
484
479 2006-11-23 Ville Vainio <vivainio@gmail.com>
485 2006-11-23 Ville Vainio <vivainio@gmail.com>
480
486
481 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
487 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
482 Qt+IPython+Designer link in documentation.
488 Qt+IPython+Designer link in documentation.
483
489
484 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
490 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
485 correct Pdb object to %pydb.
491 correct Pdb object to %pydb.
486
492
487
493
488 2006-11-22 Walter Doerwald <walter@livinglogic.de>
494 2006-11-22 Walter Doerwald <walter@livinglogic.de>
489 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
495 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
490 generic xrepr(), otherwise the list implementation would kick in.
496 generic xrepr(), otherwise the list implementation would kick in.
491
497
492 2006-11-21 Ville Vainio <vivainio@gmail.com>
498 2006-11-21 Ville Vainio <vivainio@gmail.com>
493
499
494 * upgrade_dir.py: Now actually overwrites a nonmodified user file
500 * upgrade_dir.py: Now actually overwrites a nonmodified user file
495 with one from UserConfig.
501 with one from UserConfig.
496
502
497 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
503 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
498 it was missing which broke the sh profile.
504 it was missing which broke the sh profile.
499
505
500 * completer.py: file completer now uses explicit '/' instead
506 * completer.py: file completer now uses explicit '/' instead
501 of os.path.join, expansion of 'foo' was broken on win32
507 of os.path.join, expansion of 'foo' was broken on win32
502 if there was one directory with name 'foobar'.
508 if there was one directory with name 'foobar'.
503
509
504 * A bunch of patches from Kirill Smelkov:
510 * A bunch of patches from Kirill Smelkov:
505
511
506 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
512 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
507
513
508 * [patch 7/9] Implement %page -r (page in raw mode) -
514 * [patch 7/9] Implement %page -r (page in raw mode) -
509
515
510 * [patch 5/9] ScientificPython webpage has moved
516 * [patch 5/9] ScientificPython webpage has moved
511
517
512 * [patch 4/9] The manual mentions %ds, should be %dhist
518 * [patch 4/9] The manual mentions %ds, should be %dhist
513
519
514 * [patch 3/9] Kill old bits from %prun doc.
520 * [patch 3/9] Kill old bits from %prun doc.
515
521
516 * [patch 1/9] Fix typos here and there.
522 * [patch 1/9] Fix typos here and there.
517
523
518 2006-11-08 Ville Vainio <vivainio@gmail.com>
524 2006-11-08 Ville Vainio <vivainio@gmail.com>
519
525
520 * completer.py (attr_matches): catch all exceptions raised
526 * completer.py (attr_matches): catch all exceptions raised
521 by eval of expr with dots.
527 by eval of expr with dots.
522
528
523 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
529 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
524
530
525 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
531 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
526 input if it starts with whitespace. This allows you to paste
532 input if it starts with whitespace. This allows you to paste
527 indented input from any editor without manually having to type in
533 indented input from any editor without manually having to type in
528 the 'if 1:', which is convenient when working interactively.
534 the 'if 1:', which is convenient when working interactively.
529 Slightly modifed version of a patch by Bo Peng
535 Slightly modifed version of a patch by Bo Peng
530 <bpeng-AT-rice.edu>.
536 <bpeng-AT-rice.edu>.
531
537
532 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
538 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
533
539
534 * IPython/irunner.py (main): modified irunner so it automatically
540 * IPython/irunner.py (main): modified irunner so it automatically
535 recognizes the right runner to use based on the extension (.py for
541 recognizes the right runner to use based on the extension (.py for
536 python, .ipy for ipython and .sage for sage).
542 python, .ipy for ipython and .sage for sage).
537
543
538 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
544 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
539 visible in ipapi as ip.config(), to programatically control the
545 visible in ipapi as ip.config(), to programatically control the
540 internal rc object. There's an accompanying %config magic for
546 internal rc object. There's an accompanying %config magic for
541 interactive use, which has been enhanced to match the
547 interactive use, which has been enhanced to match the
542 funtionality in ipconfig.
548 funtionality in ipconfig.
543
549
544 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
550 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
545 so it's not just a toggle, it now takes an argument. Add support
551 so it's not just a toggle, it now takes an argument. Add support
546 for a customizable header when making system calls, as the new
552 for a customizable header when making system calls, as the new
547 system_header variable in the ipythonrc file.
553 system_header variable in the ipythonrc file.
548
554
549 2006-11-03 Walter Doerwald <walter@livinglogic.de>
555 2006-11-03 Walter Doerwald <walter@livinglogic.de>
550
556
551 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
557 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
552 generic functions (using Philip J. Eby's simplegeneric package).
558 generic functions (using Philip J. Eby's simplegeneric package).
553 This makes it possible to customize the display of third-party classes
559 This makes it possible to customize the display of third-party classes
554 without having to monkeypatch them. xiter() no longer supports a mode
560 without having to monkeypatch them. xiter() no longer supports a mode
555 argument and the XMode class has been removed. The same functionality can
561 argument and the XMode class has been removed. The same functionality can
556 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
562 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
557 One consequence of the switch to generic functions is that xrepr() and
563 One consequence of the switch to generic functions is that xrepr() and
558 xattrs() implementation must define the default value for the mode
564 xattrs() implementation must define the default value for the mode
559 argument themselves and xattrs() implementations must return real
565 argument themselves and xattrs() implementations must return real
560 descriptors.
566 descriptors.
561
567
562 * IPython/external: This new subpackage will contain all third-party
568 * IPython/external: This new subpackage will contain all third-party
563 packages that are bundled with IPython. (The first one is simplegeneric).
569 packages that are bundled with IPython. (The first one is simplegeneric).
564
570
565 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
571 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
566 directory which as been dropped in r1703.
572 directory which as been dropped in r1703.
567
573
568 * IPython/Extensions/ipipe.py (iless): Fixed.
574 * IPython/Extensions/ipipe.py (iless): Fixed.
569
575
570 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
576 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
571
577
572 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
578 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
573
579
574 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
580 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
575 handling in variable expansion so that shells and magics recognize
581 handling in variable expansion so that shells and magics recognize
576 function local scopes correctly. Bug reported by Brian.
582 function local scopes correctly. Bug reported by Brian.
577
583
578 * scripts/ipython: remove the very first entry in sys.path which
584 * scripts/ipython: remove the very first entry in sys.path which
579 Python auto-inserts for scripts, so that sys.path under IPython is
585 Python auto-inserts for scripts, so that sys.path under IPython is
580 as similar as possible to that under plain Python.
586 as similar as possible to that under plain Python.
581
587
582 * IPython/completer.py (IPCompleter.file_matches): Fix
588 * IPython/completer.py (IPCompleter.file_matches): Fix
583 tab-completion so that quotes are not closed unless the completion
589 tab-completion so that quotes are not closed unless the completion
584 is unambiguous. After a request by Stefan. Minor cleanups in
590 is unambiguous. After a request by Stefan. Minor cleanups in
585 ipy_stock_completers.
591 ipy_stock_completers.
586
592
587 2006-11-02 Ville Vainio <vivainio@gmail.com>
593 2006-11-02 Ville Vainio <vivainio@gmail.com>
588
594
589 * ipy_stock_completers.py: Add %run and %cd completers.
595 * ipy_stock_completers.py: Add %run and %cd completers.
590
596
591 * completer.py: Try running custom completer for both
597 * completer.py: Try running custom completer for both
592 "foo" and "%foo" if the command is just "foo". Ignore case
598 "foo" and "%foo" if the command is just "foo". Ignore case
593 when filtering possible completions.
599 when filtering possible completions.
594
600
595 * UserConfig/ipy_user_conf.py: install stock completers as default
601 * UserConfig/ipy_user_conf.py: install stock completers as default
596
602
597 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
603 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
598 simplified readline history save / restore through a wrapper
604 simplified readline history save / restore through a wrapper
599 function
605 function
600
606
601
607
602 2006-10-31 Ville Vainio <vivainio@gmail.com>
608 2006-10-31 Ville Vainio <vivainio@gmail.com>
603
609
604 * strdispatch.py, completer.py, ipy_stock_completers.py:
610 * strdispatch.py, completer.py, ipy_stock_completers.py:
605 Allow str_key ("command") in completer hooks. Implement
611 Allow str_key ("command") in completer hooks. Implement
606 trivial completer for 'import' (stdlib modules only). Rename
612 trivial completer for 'import' (stdlib modules only). Rename
607 ipy_linux_package_managers.py to ipy_stock_completers.py.
613 ipy_linux_package_managers.py to ipy_stock_completers.py.
608 SVN completer.
614 SVN completer.
609
615
610 * Extensions/ledit.py: %magic line editor for easily and
616 * Extensions/ledit.py: %magic line editor for easily and
611 incrementally manipulating lists of strings. The magic command
617 incrementally manipulating lists of strings. The magic command
612 name is %led.
618 name is %led.
613
619
614 2006-10-30 Ville Vainio <vivainio@gmail.com>
620 2006-10-30 Ville Vainio <vivainio@gmail.com>
615
621
616 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
622 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
617 Bernsteins's patches for pydb integration.
623 Bernsteins's patches for pydb integration.
618 http://bashdb.sourceforge.net/pydb/
624 http://bashdb.sourceforge.net/pydb/
619
625
620 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
626 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
621 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
627 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
622 custom completer hook to allow the users to implement their own
628 custom completer hook to allow the users to implement their own
623 completers. See ipy_linux_package_managers.py for example. The
629 completers. See ipy_linux_package_managers.py for example. The
624 hook name is 'complete_command'.
630 hook name is 'complete_command'.
625
631
626 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
632 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
627
633
628 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
634 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
629 Numeric leftovers.
635 Numeric leftovers.
630
636
631 * ipython.el (py-execute-region): apply Stefan's patch to fix
637 * ipython.el (py-execute-region): apply Stefan's patch to fix
632 garbled results if the python shell hasn't been previously started.
638 garbled results if the python shell hasn't been previously started.
633
639
634 * IPython/genutils.py (arg_split): moved to genutils, since it's a
640 * IPython/genutils.py (arg_split): moved to genutils, since it's a
635 pretty generic function and useful for other things.
641 pretty generic function and useful for other things.
636
642
637 * IPython/OInspect.py (getsource): Add customizable source
643 * IPython/OInspect.py (getsource): Add customizable source
638 extractor. After a request/patch form W. Stein (SAGE).
644 extractor. After a request/patch form W. Stein (SAGE).
639
645
640 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
646 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
641 window size to a more reasonable value from what pexpect does,
647 window size to a more reasonable value from what pexpect does,
642 since their choice causes wrapping bugs with long input lines.
648 since their choice causes wrapping bugs with long input lines.
643
649
644 2006-10-28 Ville Vainio <vivainio@gmail.com>
650 2006-10-28 Ville Vainio <vivainio@gmail.com>
645
651
646 * Magic.py (%run): Save and restore the readline history from
652 * Magic.py (%run): Save and restore the readline history from
647 file around %run commands to prevent side effects from
653 file around %run commands to prevent side effects from
648 %runned programs that might use readline (e.g. pydb).
654 %runned programs that might use readline (e.g. pydb).
649
655
650 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
656 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
651 invoking the pydb enhanced debugger.
657 invoking the pydb enhanced debugger.
652
658
653 2006-10-23 Walter Doerwald <walter@livinglogic.de>
659 2006-10-23 Walter Doerwald <walter@livinglogic.de>
654
660
655 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
661 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
656 call the base class method and propagate the return value to
662 call the base class method and propagate the return value to
657 ifile. This is now done by path itself.
663 ifile. This is now done by path itself.
658
664
659 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
665 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
660
666
661 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
667 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
662 api: set_crash_handler(), to expose the ability to change the
668 api: set_crash_handler(), to expose the ability to change the
663 internal crash handler.
669 internal crash handler.
664
670
665 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
671 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
666 the various parameters of the crash handler so that apps using
672 the various parameters of the crash handler so that apps using
667 IPython as their engine can customize crash handling. Ipmlemented
673 IPython as their engine can customize crash handling. Ipmlemented
668 at the request of SAGE.
674 at the request of SAGE.
669
675
670 2006-10-14 Ville Vainio <vivainio@gmail.com>
676 2006-10-14 Ville Vainio <vivainio@gmail.com>
671
677
672 * Magic.py, ipython.el: applied first "safe" part of Rocky
678 * Magic.py, ipython.el: applied first "safe" part of Rocky
673 Bernstein's patch set for pydb integration.
679 Bernstein's patch set for pydb integration.
674
680
675 * Magic.py (%unalias, %alias): %store'd aliases can now be
681 * Magic.py (%unalias, %alias): %store'd aliases can now be
676 removed with '%unalias'. %alias w/o args now shows most
682 removed with '%unalias'. %alias w/o args now shows most
677 interesting (stored / manually defined) aliases last
683 interesting (stored / manually defined) aliases last
678 where they catch the eye w/o scrolling.
684 where they catch the eye w/o scrolling.
679
685
680 * Magic.py (%rehashx), ext_rehashdir.py: files with
686 * Magic.py (%rehashx), ext_rehashdir.py: files with
681 'py' extension are always considered executable, even
687 'py' extension are always considered executable, even
682 when not in PATHEXT environment variable.
688 when not in PATHEXT environment variable.
683
689
684 2006-10-12 Ville Vainio <vivainio@gmail.com>
690 2006-10-12 Ville Vainio <vivainio@gmail.com>
685
691
686 * jobctrl.py: Add new "jobctrl" extension for spawning background
692 * jobctrl.py: Add new "jobctrl" extension for spawning background
687 processes with "&find /". 'import jobctrl' to try it out. Requires
693 processes with "&find /". 'import jobctrl' to try it out. Requires
688 'subprocess' module, standard in python 2.4+.
694 'subprocess' module, standard in python 2.4+.
689
695
690 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
696 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
691 so if foo -> bar and bar -> baz, then foo -> baz.
697 so if foo -> bar and bar -> baz, then foo -> baz.
692
698
693 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
699 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
694
700
695 * IPython/Magic.py (Magic.parse_options): add a new posix option
701 * IPython/Magic.py (Magic.parse_options): add a new posix option
696 to allow parsing of input args in magics that doesn't strip quotes
702 to allow parsing of input args in magics that doesn't strip quotes
697 (if posix=False). This also closes %timeit bug reported by
703 (if posix=False). This also closes %timeit bug reported by
698 Stefan.
704 Stefan.
699
705
700 2006-10-03 Ville Vainio <vivainio@gmail.com>
706 2006-10-03 Ville Vainio <vivainio@gmail.com>
701
707
702 * iplib.py (raw_input, interact): Return ValueError catching for
708 * iplib.py (raw_input, interact): Return ValueError catching for
703 raw_input. Fixes infinite loop for sys.stdin.close() or
709 raw_input. Fixes infinite loop for sys.stdin.close() or
704 sys.stdout.close().
710 sys.stdout.close().
705
711
706 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
712 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
707
713
708 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
714 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
709 to help in handling doctests. irunner is now pretty useful for
715 to help in handling doctests. irunner is now pretty useful for
710 running standalone scripts and simulate a full interactive session
716 running standalone scripts and simulate a full interactive session
711 in a format that can be then pasted as a doctest.
717 in a format that can be then pasted as a doctest.
712
718
713 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
719 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
714 on top of the default (useless) ones. This also fixes the nasty
720 on top of the default (useless) ones. This also fixes the nasty
715 way in which 2.5's Quitter() exits (reverted [1785]).
721 way in which 2.5's Quitter() exits (reverted [1785]).
716
722
717 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
723 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
718 2.5.
724 2.5.
719
725
720 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
726 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
721 color scheme is updated as well when color scheme is changed
727 color scheme is updated as well when color scheme is changed
722 interactively.
728 interactively.
723
729
724 2006-09-27 Ville Vainio <vivainio@gmail.com>
730 2006-09-27 Ville Vainio <vivainio@gmail.com>
725
731
726 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
732 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
727 infinite loop and just exit. It's a hack, but will do for a while.
733 infinite loop and just exit. It's a hack, but will do for a while.
728
734
729 2006-08-25 Walter Doerwald <walter@livinglogic.de>
735 2006-08-25 Walter Doerwald <walter@livinglogic.de>
730
736
731 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
737 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
732 the constructor, this makes it possible to get a list of only directories
738 the constructor, this makes it possible to get a list of only directories
733 or only files.
739 or only files.
734
740
735 2006-08-12 Ville Vainio <vivainio@gmail.com>
741 2006-08-12 Ville Vainio <vivainio@gmail.com>
736
742
737 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
743 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
738 they broke unittest
744 they broke unittest
739
745
740 2006-08-11 Ville Vainio <vivainio@gmail.com>
746 2006-08-11 Ville Vainio <vivainio@gmail.com>
741
747
742 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
748 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
743 by resolving issue properly, i.e. by inheriting FakeModule
749 by resolving issue properly, i.e. by inheriting FakeModule
744 from types.ModuleType. Pickling ipython interactive data
750 from types.ModuleType. Pickling ipython interactive data
745 should still work as usual (testing appreciated).
751 should still work as usual (testing appreciated).
746
752
747 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
753 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
748
754
749 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
755 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
750 running under python 2.3 with code from 2.4 to fix a bug with
756 running under python 2.3 with code from 2.4 to fix a bug with
751 help(). Reported by the Debian maintainers, Norbert Tretkowski
757 help(). Reported by the Debian maintainers, Norbert Tretkowski
752 <norbert-AT-tretkowski.de> and Alexandre Fayolle
758 <norbert-AT-tretkowski.de> and Alexandre Fayolle
753 <afayolle-AT-debian.org>.
759 <afayolle-AT-debian.org>.
754
760
755 2006-08-04 Walter Doerwald <walter@livinglogic.de>
761 2006-08-04 Walter Doerwald <walter@livinglogic.de>
756
762
757 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
763 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
758 (which was displaying "quit" twice).
764 (which was displaying "quit" twice).
759
765
760 2006-07-28 Walter Doerwald <walter@livinglogic.de>
766 2006-07-28 Walter Doerwald <walter@livinglogic.de>
761
767
762 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
768 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
763 the mode argument).
769 the mode argument).
764
770
765 2006-07-27 Walter Doerwald <walter@livinglogic.de>
771 2006-07-27 Walter Doerwald <walter@livinglogic.de>
766
772
767 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
773 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
768 not running under IPython.
774 not running under IPython.
769
775
770 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
776 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
771 and make it iterable (iterating over the attribute itself). Add two new
777 and make it iterable (iterating over the attribute itself). Add two new
772 magic strings for __xattrs__(): If the string starts with "-", the attribute
778 magic strings for __xattrs__(): If the string starts with "-", the attribute
773 will not be displayed in ibrowse's detail view (but it can still be
779 will not be displayed in ibrowse's detail view (but it can still be
774 iterated over). This makes it possible to add attributes that are large
780 iterated over). This makes it possible to add attributes that are large
775 lists or generator methods to the detail view. Replace magic attribute names
781 lists or generator methods to the detail view. Replace magic attribute names
776 and _attrname() and _getattr() with "descriptors": For each type of magic
782 and _attrname() and _getattr() with "descriptors": For each type of magic
777 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
783 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
778 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
784 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
779 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
785 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
780 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
786 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
781 are still supported.
787 are still supported.
782
788
783 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
789 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
784 fails in ibrowse.fetch(), the exception object is added as the last item
790 fails in ibrowse.fetch(), the exception object is added as the last item
785 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
791 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
786 a generator throws an exception midway through execution.
792 a generator throws an exception midway through execution.
787
793
788 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
794 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
789 encoding into methods.
795 encoding into methods.
790
796
791 2006-07-26 Ville Vainio <vivainio@gmail.com>
797 2006-07-26 Ville Vainio <vivainio@gmail.com>
792
798
793 * iplib.py: history now stores multiline input as single
799 * iplib.py: history now stores multiline input as single
794 history entries. Patch by Jorgen Cederlof.
800 history entries. Patch by Jorgen Cederlof.
795
801
796 2006-07-18 Walter Doerwald <walter@livinglogic.de>
802 2006-07-18 Walter Doerwald <walter@livinglogic.de>
797
803
798 * IPython/Extensions/ibrowse.py: Make cursor visible over
804 * IPython/Extensions/ibrowse.py: Make cursor visible over
799 non existing attributes.
805 non existing attributes.
800
806
801 2006-07-14 Walter Doerwald <walter@livinglogic.de>
807 2006-07-14 Walter Doerwald <walter@livinglogic.de>
802
808
803 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
809 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
804 error output of the running command doesn't mess up the screen.
810 error output of the running command doesn't mess up the screen.
805
811
806 2006-07-13 Walter Doerwald <walter@livinglogic.de>
812 2006-07-13 Walter Doerwald <walter@livinglogic.de>
807
813
808 * IPython/Extensions/ipipe.py (isort): Make isort usable without
814 * IPython/Extensions/ipipe.py (isort): Make isort usable without
809 argument. This sorts the items themselves.
815 argument. This sorts the items themselves.
810
816
811 2006-07-12 Walter Doerwald <walter@livinglogic.de>
817 2006-07-12 Walter Doerwald <walter@livinglogic.de>
812
818
813 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
819 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
814 Compile expression strings into code objects. This should speed
820 Compile expression strings into code objects. This should speed
815 up ifilter and friends somewhat.
821 up ifilter and friends somewhat.
816
822
817 2006-07-08 Ville Vainio <vivainio@gmail.com>
823 2006-07-08 Ville Vainio <vivainio@gmail.com>
818
824
819 * Magic.py: %cpaste now strips > from the beginning of lines
825 * Magic.py: %cpaste now strips > from the beginning of lines
820 to ease pasting quoted code from emails. Contributed by
826 to ease pasting quoted code from emails. Contributed by
821 Stefan van der Walt.
827 Stefan van der Walt.
822
828
823 2006-06-29 Ville Vainio <vivainio@gmail.com>
829 2006-06-29 Ville Vainio <vivainio@gmail.com>
824
830
825 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
831 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
826 mode, patch contributed by Darren Dale. NEEDS TESTING!
832 mode, patch contributed by Darren Dale. NEEDS TESTING!
827
833
828 2006-06-28 Walter Doerwald <walter@livinglogic.de>
834 2006-06-28 Walter Doerwald <walter@livinglogic.de>
829
835
830 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
836 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
831 a blue background. Fix fetching new display rows when the browser
837 a blue background. Fix fetching new display rows when the browser
832 scrolls more than a screenful (e.g. by using the goto command).
838 scrolls more than a screenful (e.g. by using the goto command).
833
839
834 2006-06-27 Ville Vainio <vivainio@gmail.com>
840 2006-06-27 Ville Vainio <vivainio@gmail.com>
835
841
836 * Magic.py (_inspect, _ofind) Apply David Huard's
842 * Magic.py (_inspect, _ofind) Apply David Huard's
837 patch for displaying the correct docstring for 'property'
843 patch for displaying the correct docstring for 'property'
838 attributes.
844 attributes.
839
845
840 2006-06-23 Walter Doerwald <walter@livinglogic.de>
846 2006-06-23 Walter Doerwald <walter@livinglogic.de>
841
847
842 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
848 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
843 commands into the methods implementing them.
849 commands into the methods implementing them.
844
850
845 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
851 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
846
852
847 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
853 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
848 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
854 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
849 autoindent support was authored by Jin Liu.
855 autoindent support was authored by Jin Liu.
850
856
851 2006-06-22 Walter Doerwald <walter@livinglogic.de>
857 2006-06-22 Walter Doerwald <walter@livinglogic.de>
852
858
853 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
859 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
854 for keymaps with a custom class that simplifies handling.
860 for keymaps with a custom class that simplifies handling.
855
861
856 2006-06-19 Walter Doerwald <walter@livinglogic.de>
862 2006-06-19 Walter Doerwald <walter@livinglogic.de>
857
863
858 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
864 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
859 resizing. This requires Python 2.5 to work.
865 resizing. This requires Python 2.5 to work.
860
866
861 2006-06-16 Walter Doerwald <walter@livinglogic.de>
867 2006-06-16 Walter Doerwald <walter@livinglogic.de>
862
868
863 * IPython/Extensions/ibrowse.py: Add two new commands to
869 * IPython/Extensions/ibrowse.py: Add two new commands to
864 ibrowse: "hideattr" (mapped to "h") hides the attribute under
870 ibrowse: "hideattr" (mapped to "h") hides the attribute under
865 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
871 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
866 attributes again. Remapped the help command to "?". Display
872 attributes again. Remapped the help command to "?". Display
867 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
873 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
868 as keys for the "home" and "end" commands. Add three new commands
874 as keys for the "home" and "end" commands. Add three new commands
869 to the input mode for "find" and friends: "delend" (CTRL-K)
875 to the input mode for "find" and friends: "delend" (CTRL-K)
870 deletes to the end of line. "incsearchup" searches upwards in the
876 deletes to the end of line. "incsearchup" searches upwards in the
871 command history for an input that starts with the text before the cursor.
877 command history for an input that starts with the text before the cursor.
872 "incsearchdown" does the same downwards. Removed a bogus mapping of
878 "incsearchdown" does the same downwards. Removed a bogus mapping of
873 the x key to "delete".
879 the x key to "delete".
874
880
875 2006-06-15 Ville Vainio <vivainio@gmail.com>
881 2006-06-15 Ville Vainio <vivainio@gmail.com>
876
882
877 * iplib.py, hooks.py: Added new generate_prompt hook that can be
883 * iplib.py, hooks.py: Added new generate_prompt hook that can be
878 used to create prompts dynamically, instead of the "old" way of
884 used to create prompts dynamically, instead of the "old" way of
879 assigning "magic" strings to prompt_in1 and prompt_in2. The old
885 assigning "magic" strings to prompt_in1 and prompt_in2. The old
880 way still works (it's invoked by the default hook), of course.
886 way still works (it's invoked by the default hook), of course.
881
887
882 * Prompts.py: added generate_output_prompt hook for altering output
888 * Prompts.py: added generate_output_prompt hook for altering output
883 prompt
889 prompt
884
890
885 * Release.py: Changed version string to 0.7.3.svn.
891 * Release.py: Changed version string to 0.7.3.svn.
886
892
887 2006-06-15 Walter Doerwald <walter@livinglogic.de>
893 2006-06-15 Walter Doerwald <walter@livinglogic.de>
888
894
889 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
895 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
890 the call to fetch() always tries to fetch enough data for at least one
896 the call to fetch() always tries to fetch enough data for at least one
891 full screen. This makes it possible to simply call moveto(0,0,True) in
897 full screen. This makes it possible to simply call moveto(0,0,True) in
892 the constructor. Fix typos and removed the obsolete goto attribute.
898 the constructor. Fix typos and removed the obsolete goto attribute.
893
899
894 2006-06-12 Ville Vainio <vivainio@gmail.com>
900 2006-06-12 Ville Vainio <vivainio@gmail.com>
895
901
896 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
902 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
897 allowing $variable interpolation within multiline statements,
903 allowing $variable interpolation within multiline statements,
898 though so far only with "sh" profile for a testing period.
904 though so far only with "sh" profile for a testing period.
899 The patch also enables splitting long commands with \ but it
905 The patch also enables splitting long commands with \ but it
900 doesn't work properly yet.
906 doesn't work properly yet.
901
907
902 2006-06-12 Walter Doerwald <walter@livinglogic.de>
908 2006-06-12 Walter Doerwald <walter@livinglogic.de>
903
909
904 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
910 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
905 input history and the position of the cursor in the input history for
911 input history and the position of the cursor in the input history for
906 the find, findbackwards and goto command.
912 the find, findbackwards and goto command.
907
913
908 2006-06-10 Walter Doerwald <walter@livinglogic.de>
914 2006-06-10 Walter Doerwald <walter@livinglogic.de>
909
915
910 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
916 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
911 implements the basic functionality of browser commands that require
917 implements the basic functionality of browser commands that require
912 input. Reimplement the goto, find and findbackwards commands as
918 input. Reimplement the goto, find and findbackwards commands as
913 subclasses of _CommandInput. Add an input history and keymaps to those
919 subclasses of _CommandInput. Add an input history and keymaps to those
914 commands. Add "\r" as a keyboard shortcut for the enterdefault and
920 commands. Add "\r" as a keyboard shortcut for the enterdefault and
915 execute commands.
921 execute commands.
916
922
917 2006-06-07 Ville Vainio <vivainio@gmail.com>
923 2006-06-07 Ville Vainio <vivainio@gmail.com>
918
924
919 * iplib.py: ipython mybatch.ipy exits ipython immediately after
925 * iplib.py: ipython mybatch.ipy exits ipython immediately after
920 running the batch files instead of leaving the session open.
926 running the batch files instead of leaving the session open.
921
927
922 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
928 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
923
929
924 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
930 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
925 the original fix was incomplete. Patch submitted by W. Maier.
931 the original fix was incomplete. Patch submitted by W. Maier.
926
932
927 2006-06-07 Ville Vainio <vivainio@gmail.com>
933 2006-06-07 Ville Vainio <vivainio@gmail.com>
928
934
929 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
935 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
930 Confirmation prompts can be supressed by 'quiet' option.
936 Confirmation prompts can be supressed by 'quiet' option.
931 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
937 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
932
938
933 2006-06-06 *** Released version 0.7.2
939 2006-06-06 *** Released version 0.7.2
934
940
935 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
941 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
936
942
937 * IPython/Release.py (version): Made 0.7.2 final for release.
943 * IPython/Release.py (version): Made 0.7.2 final for release.
938 Repo tagged and release cut.
944 Repo tagged and release cut.
939
945
940 2006-06-05 Ville Vainio <vivainio@gmail.com>
946 2006-06-05 Ville Vainio <vivainio@gmail.com>
941
947
942 * Magic.py (magic_rehashx): Honor no_alias list earlier in
948 * Magic.py (magic_rehashx): Honor no_alias list earlier in
943 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
949 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
944
950
945 * upgrade_dir.py: try import 'path' module a bit harder
951 * upgrade_dir.py: try import 'path' module a bit harder
946 (for %upgrade)
952 (for %upgrade)
947
953
948 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
954 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
949
955
950 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
956 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
951 instead of looping 20 times.
957 instead of looping 20 times.
952
958
953 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
959 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
954 correctly at initialization time. Bug reported by Krishna Mohan
960 correctly at initialization time. Bug reported by Krishna Mohan
955 Gundu <gkmohan-AT-gmail.com> on the user list.
961 Gundu <gkmohan-AT-gmail.com> on the user list.
956
962
957 * IPython/Release.py (version): Mark 0.7.2 version to start
963 * IPython/Release.py (version): Mark 0.7.2 version to start
958 testing for release on 06/06.
964 testing for release on 06/06.
959
965
960 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
966 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
961
967
962 * scripts/irunner: thin script interface so users don't have to
968 * scripts/irunner: thin script interface so users don't have to
963 find the module and call it as an executable, since modules rarely
969 find the module and call it as an executable, since modules rarely
964 live in people's PATH.
970 live in people's PATH.
965
971
966 * IPython/irunner.py (InteractiveRunner.__init__): added
972 * IPython/irunner.py (InteractiveRunner.__init__): added
967 delaybeforesend attribute to control delays with newer versions of
973 delaybeforesend attribute to control delays with newer versions of
968 pexpect. Thanks to detailed help from pexpect's author, Noah
974 pexpect. Thanks to detailed help from pexpect's author, Noah
969 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
975 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
970 correctly (it works in NoColor mode).
976 correctly (it works in NoColor mode).
971
977
972 * IPython/iplib.py (handle_normal): fix nasty crash reported on
978 * IPython/iplib.py (handle_normal): fix nasty crash reported on
973 SAGE list, from improper log() calls.
979 SAGE list, from improper log() calls.
974
980
975 2006-05-31 Ville Vainio <vivainio@gmail.com>
981 2006-05-31 Ville Vainio <vivainio@gmail.com>
976
982
977 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
983 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
978 with args in parens to work correctly with dirs that have spaces.
984 with args in parens to work correctly with dirs that have spaces.
979
985
980 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
986 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
981
987
982 * IPython/Logger.py (Logger.logstart): add option to log raw input
988 * IPython/Logger.py (Logger.logstart): add option to log raw input
983 instead of the processed one. A -r flag was added to the
989 instead of the processed one. A -r flag was added to the
984 %logstart magic used for controlling logging.
990 %logstart magic used for controlling logging.
985
991
986 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
992 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
987
993
988 * IPython/iplib.py (InteractiveShell.__init__): add check for the
994 * IPython/iplib.py (InteractiveShell.__init__): add check for the
989 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
995 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
990 recognize the option. After a bug report by Will Maier. This
996 recognize the option. After a bug report by Will Maier. This
991 closes #64 (will do it after confirmation from W. Maier).
997 closes #64 (will do it after confirmation from W. Maier).
992
998
993 * IPython/irunner.py: New module to run scripts as if manually
999 * IPython/irunner.py: New module to run scripts as if manually
994 typed into an interactive environment, based on pexpect. After a
1000 typed into an interactive environment, based on pexpect. After a
995 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1001 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
996 ipython-user list. Simple unittests in the tests/ directory.
1002 ipython-user list. Simple unittests in the tests/ directory.
997
1003
998 * tools/release: add Will Maier, OpenBSD port maintainer, to
1004 * tools/release: add Will Maier, OpenBSD port maintainer, to
999 recepients list. We are now officially part of the OpenBSD ports:
1005 recepients list. We are now officially part of the OpenBSD ports:
1000 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1006 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1001 work.
1007 work.
1002
1008
1003 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1009 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1004
1010
1005 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1011 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1006 so that it doesn't break tkinter apps.
1012 so that it doesn't break tkinter apps.
1007
1013
1008 * IPython/iplib.py (_prefilter): fix bug where aliases would
1014 * IPython/iplib.py (_prefilter): fix bug where aliases would
1009 shadow variables when autocall was fully off. Reported by SAGE
1015 shadow variables when autocall was fully off. Reported by SAGE
1010 author William Stein.
1016 author William Stein.
1011
1017
1012 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1018 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1013 at what detail level strings are computed when foo? is requested.
1019 at what detail level strings are computed when foo? is requested.
1014 This allows users to ask for example that the string form of an
1020 This allows users to ask for example that the string form of an
1015 object is only computed when foo?? is called, or even never, by
1021 object is only computed when foo?? is called, or even never, by
1016 setting the object_info_string_level >= 2 in the configuration
1022 setting the object_info_string_level >= 2 in the configuration
1017 file. This new option has been added and documented. After a
1023 file. This new option has been added and documented. After a
1018 request by SAGE to be able to control the printing of very large
1024 request by SAGE to be able to control the printing of very large
1019 objects more easily.
1025 objects more easily.
1020
1026
1021 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1027 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1022
1028
1023 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1029 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1024 from sys.argv, to be 100% consistent with how Python itself works
1030 from sys.argv, to be 100% consistent with how Python itself works
1025 (as seen for example with python -i file.py). After a bug report
1031 (as seen for example with python -i file.py). After a bug report
1026 by Jeffrey Collins.
1032 by Jeffrey Collins.
1027
1033
1028 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1034 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1029 nasty bug which was preventing custom namespaces with -pylab,
1035 nasty bug which was preventing custom namespaces with -pylab,
1030 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1036 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1031 compatibility (long gone from mpl).
1037 compatibility (long gone from mpl).
1032
1038
1033 * IPython/ipapi.py (make_session): name change: create->make. We
1039 * IPython/ipapi.py (make_session): name change: create->make. We
1034 use make in other places (ipmaker,...), it's shorter and easier to
1040 use make in other places (ipmaker,...), it's shorter and easier to
1035 type and say, etc. I'm trying to clean things before 0.7.2 so
1041 type and say, etc. I'm trying to clean things before 0.7.2 so
1036 that I can keep things stable wrt to ipapi in the chainsaw branch.
1042 that I can keep things stable wrt to ipapi in the chainsaw branch.
1037
1043
1038 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1044 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1039 python-mode recognizes our debugger mode. Add support for
1045 python-mode recognizes our debugger mode. Add support for
1040 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1046 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1041 <m.liu.jin-AT-gmail.com> originally written by
1047 <m.liu.jin-AT-gmail.com> originally written by
1042 doxgen-AT-newsmth.net (with minor modifications for xemacs
1048 doxgen-AT-newsmth.net (with minor modifications for xemacs
1043 compatibility)
1049 compatibility)
1044
1050
1045 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1051 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1046 tracebacks when walking the stack so that the stack tracking system
1052 tracebacks when walking the stack so that the stack tracking system
1047 in emacs' python-mode can identify the frames correctly.
1053 in emacs' python-mode can identify the frames correctly.
1048
1054
1049 * IPython/ipmaker.py (make_IPython): make the internal (and
1055 * IPython/ipmaker.py (make_IPython): make the internal (and
1050 default config) autoedit_syntax value false by default. Too many
1056 default config) autoedit_syntax value false by default. Too many
1051 users have complained to me (both on and off-list) about problems
1057 users have complained to me (both on and off-list) about problems
1052 with this option being on by default, so I'm making it default to
1058 with this option being on by default, so I'm making it default to
1053 off. It can still be enabled by anyone via the usual mechanisms.
1059 off. It can still be enabled by anyone via the usual mechanisms.
1054
1060
1055 * IPython/completer.py (Completer.attr_matches): add support for
1061 * IPython/completer.py (Completer.attr_matches): add support for
1056 PyCrust-style _getAttributeNames magic method. Patch contributed
1062 PyCrust-style _getAttributeNames magic method. Patch contributed
1057 by <mscott-AT-goldenspud.com>. Closes #50.
1063 by <mscott-AT-goldenspud.com>. Closes #50.
1058
1064
1059 * IPython/iplib.py (InteractiveShell.__init__): remove the
1065 * IPython/iplib.py (InteractiveShell.__init__): remove the
1060 deletion of exit/quit from __builtin__, which can break
1066 deletion of exit/quit from __builtin__, which can break
1061 third-party tools like the Zope debugging console. The
1067 third-party tools like the Zope debugging console. The
1062 %exit/%quit magics remain. In general, it's probably a good idea
1068 %exit/%quit magics remain. In general, it's probably a good idea
1063 not to delete anything from __builtin__, since we never know what
1069 not to delete anything from __builtin__, since we never know what
1064 that will break. In any case, python now (for 2.5) will support
1070 that will break. In any case, python now (for 2.5) will support
1065 'real' exit/quit, so this issue is moot. Closes #55.
1071 'real' exit/quit, so this issue is moot. Closes #55.
1066
1072
1067 * IPython/genutils.py (with_obj): rename the 'with' function to
1073 * IPython/genutils.py (with_obj): rename the 'with' function to
1068 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1074 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1069 becomes a language keyword. Closes #53.
1075 becomes a language keyword. Closes #53.
1070
1076
1071 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1077 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1072 __file__ attribute to this so it fools more things into thinking
1078 __file__ attribute to this so it fools more things into thinking
1073 it is a real module. Closes #59.
1079 it is a real module. Closes #59.
1074
1080
1075 * IPython/Magic.py (magic_edit): add -n option to open the editor
1081 * IPython/Magic.py (magic_edit): add -n option to open the editor
1076 at a specific line number. After a patch by Stefan van der Walt.
1082 at a specific line number. After a patch by Stefan van der Walt.
1077
1083
1078 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1084 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1079
1085
1080 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1086 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1081 reason the file could not be opened. After automatic crash
1087 reason the file could not be opened. After automatic crash
1082 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1088 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1083 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1089 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1084 (_should_recompile): Don't fire editor if using %bg, since there
1090 (_should_recompile): Don't fire editor if using %bg, since there
1085 is no file in the first place. From the same report as above.
1091 is no file in the first place. From the same report as above.
1086 (raw_input): protect against faulty third-party prefilters. After
1092 (raw_input): protect against faulty third-party prefilters. After
1087 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1093 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1088 while running under SAGE.
1094 while running under SAGE.
1089
1095
1090 2006-05-23 Ville Vainio <vivainio@gmail.com>
1096 2006-05-23 Ville Vainio <vivainio@gmail.com>
1091
1097
1092 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1098 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1093 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1099 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1094 now returns None (again), unless dummy is specifically allowed by
1100 now returns None (again), unless dummy is specifically allowed by
1095 ipapi.get(allow_dummy=True).
1101 ipapi.get(allow_dummy=True).
1096
1102
1097 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1103 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1098
1104
1099 * IPython: remove all 2.2-compatibility objects and hacks from
1105 * IPython: remove all 2.2-compatibility objects and hacks from
1100 everywhere, since we only support 2.3 at this point. Docs
1106 everywhere, since we only support 2.3 at this point. Docs
1101 updated.
1107 updated.
1102
1108
1103 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1109 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1104 Anything requiring extra validation can be turned into a Python
1110 Anything requiring extra validation can be turned into a Python
1105 property in the future. I used a property for the db one b/c
1111 property in the future. I used a property for the db one b/c
1106 there was a nasty circularity problem with the initialization
1112 there was a nasty circularity problem with the initialization
1107 order, which right now I don't have time to clean up.
1113 order, which right now I don't have time to clean up.
1108
1114
1109 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1115 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1110 another locking bug reported by Jorgen. I'm not 100% sure though,
1116 another locking bug reported by Jorgen. I'm not 100% sure though,
1111 so more testing is needed...
1117 so more testing is needed...
1112
1118
1113 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1119 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1114
1120
1115 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1121 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1116 local variables from any routine in user code (typically executed
1122 local variables from any routine in user code (typically executed
1117 with %run) directly into the interactive namespace. Very useful
1123 with %run) directly into the interactive namespace. Very useful
1118 when doing complex debugging.
1124 when doing complex debugging.
1119 (IPythonNotRunning): Changed the default None object to a dummy
1125 (IPythonNotRunning): Changed the default None object to a dummy
1120 whose attributes can be queried as well as called without
1126 whose attributes can be queried as well as called without
1121 exploding, to ease writing code which works transparently both in
1127 exploding, to ease writing code which works transparently both in
1122 and out of ipython and uses some of this API.
1128 and out of ipython and uses some of this API.
1123
1129
1124 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1125
1131
1126 * IPython/hooks.py (result_display): Fix the fact that our display
1132 * IPython/hooks.py (result_display): Fix the fact that our display
1127 hook was using str() instead of repr(), as the default python
1133 hook was using str() instead of repr(), as the default python
1128 console does. This had gone unnoticed b/c it only happened if
1134 console does. This had gone unnoticed b/c it only happened if
1129 %Pprint was off, but the inconsistency was there.
1135 %Pprint was off, but the inconsistency was there.
1130
1136
1131 2006-05-15 Ville Vainio <vivainio@gmail.com>
1137 2006-05-15 Ville Vainio <vivainio@gmail.com>
1132
1138
1133 * Oinspect.py: Only show docstring for nonexisting/binary files
1139 * Oinspect.py: Only show docstring for nonexisting/binary files
1134 when doing object??, closing ticket #62
1140 when doing object??, closing ticket #62
1135
1141
1136 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1142 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1137
1143
1138 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1144 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1139 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1145 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1140 was being released in a routine which hadn't checked if it had
1146 was being released in a routine which hadn't checked if it had
1141 been the one to acquire it.
1147 been the one to acquire it.
1142
1148
1143 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1149 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1150
1145 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1151 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1146
1152
1147 2006-04-11 Ville Vainio <vivainio@gmail.com>
1153 2006-04-11 Ville Vainio <vivainio@gmail.com>
1148
1154
1149 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1155 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1150 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1156 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1151 prefilters, allowing stuff like magics and aliases in the file.
1157 prefilters, allowing stuff like magics and aliases in the file.
1152
1158
1153 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1159 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1154 added. Supported now are "%clear in" and "%clear out" (clear input and
1160 added. Supported now are "%clear in" and "%clear out" (clear input and
1155 output history, respectively). Also fixed CachedOutput.flush to
1161 output history, respectively). Also fixed CachedOutput.flush to
1156 properly flush the output cache.
1162 properly flush the output cache.
1157
1163
1158 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1164 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1159 half-success (and fail explicitly).
1165 half-success (and fail explicitly).
1160
1166
1161 2006-03-28 Ville Vainio <vivainio@gmail.com>
1167 2006-03-28 Ville Vainio <vivainio@gmail.com>
1162
1168
1163 * iplib.py: Fix quoting of aliases so that only argless ones
1169 * iplib.py: Fix quoting of aliases so that only argless ones
1164 are quoted
1170 are quoted
1165
1171
1166 2006-03-28 Ville Vainio <vivainio@gmail.com>
1172 2006-03-28 Ville Vainio <vivainio@gmail.com>
1167
1173
1168 * iplib.py: Quote aliases with spaces in the name.
1174 * iplib.py: Quote aliases with spaces in the name.
1169 "c:\program files\blah\bin" is now legal alias target.
1175 "c:\program files\blah\bin" is now legal alias target.
1170
1176
1171 * ext_rehashdir.py: Space no longer allowed as arg
1177 * ext_rehashdir.py: Space no longer allowed as arg
1172 separator, since space is legal in path names.
1178 separator, since space is legal in path names.
1173
1179
1174 2006-03-16 Ville Vainio <vivainio@gmail.com>
1180 2006-03-16 Ville Vainio <vivainio@gmail.com>
1175
1181
1176 * upgrade_dir.py: Take path.py from Extensions, correcting
1182 * upgrade_dir.py: Take path.py from Extensions, correcting
1177 %upgrade magic
1183 %upgrade magic
1178
1184
1179 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1185 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1180
1186
1181 * hooks.py: Only enclose editor binary in quotes if legal and
1187 * hooks.py: Only enclose editor binary in quotes if legal and
1182 necessary (space in the name, and is an existing file). Fixes a bug
1188 necessary (space in the name, and is an existing file). Fixes a bug
1183 reported by Zachary Pincus.
1189 reported by Zachary Pincus.
1184
1190
1185 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1191 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1186
1192
1187 * Manual: thanks to a tip on proper color handling for Emacs, by
1193 * Manual: thanks to a tip on proper color handling for Emacs, by
1188 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1194 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1189
1195
1190 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1196 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1191 by applying the provided patch. Thanks to Liu Jin
1197 by applying the provided patch. Thanks to Liu Jin
1192 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1198 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1193 XEmacs/Linux, I'm trusting the submitter that it actually helps
1199 XEmacs/Linux, I'm trusting the submitter that it actually helps
1194 under win32/GNU Emacs. Will revisit if any problems are reported.
1200 under win32/GNU Emacs. Will revisit if any problems are reported.
1195
1201
1196 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1202 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1197
1203
1198 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1204 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1199 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1205 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1200
1206
1201 2006-03-12 Ville Vainio <vivainio@gmail.com>
1207 2006-03-12 Ville Vainio <vivainio@gmail.com>
1202
1208
1203 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1209 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1204 Torsten Marek.
1210 Torsten Marek.
1205
1211
1206 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1212 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1207
1213
1208 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1214 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1209 line ranges works again.
1215 line ranges works again.
1210
1216
1211 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1217 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1212
1218
1213 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1219 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1214 and friends, after a discussion with Zach Pincus on ipython-user.
1220 and friends, after a discussion with Zach Pincus on ipython-user.
1215 I'm not 100% sure, but after thinking about it quite a bit, it may
1221 I'm not 100% sure, but after thinking about it quite a bit, it may
1216 be OK. Testing with the multithreaded shells didn't reveal any
1222 be OK. Testing with the multithreaded shells didn't reveal any
1217 problems, but let's keep an eye out.
1223 problems, but let's keep an eye out.
1218
1224
1219 In the process, I fixed a few things which were calling
1225 In the process, I fixed a few things which were calling
1220 self.InteractiveTB() directly (like safe_execfile), which is a
1226 self.InteractiveTB() directly (like safe_execfile), which is a
1221 mistake: ALL exception reporting should be done by calling
1227 mistake: ALL exception reporting should be done by calling
1222 self.showtraceback(), which handles state and tab-completion and
1228 self.showtraceback(), which handles state and tab-completion and
1223 more.
1229 more.
1224
1230
1225 2006-03-01 Ville Vainio <vivainio@gmail.com>
1231 2006-03-01 Ville Vainio <vivainio@gmail.com>
1226
1232
1227 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1233 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1228 To use, do "from ipipe import *".
1234 To use, do "from ipipe import *".
1229
1235
1230 2006-02-24 Ville Vainio <vivainio@gmail.com>
1236 2006-02-24 Ville Vainio <vivainio@gmail.com>
1231
1237
1232 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1238 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1233 "cleanly" and safely than the older upgrade mechanism.
1239 "cleanly" and safely than the older upgrade mechanism.
1234
1240
1235 2006-02-21 Ville Vainio <vivainio@gmail.com>
1241 2006-02-21 Ville Vainio <vivainio@gmail.com>
1236
1242
1237 * Magic.py: %save works again.
1243 * Magic.py: %save works again.
1238
1244
1239 2006-02-15 Ville Vainio <vivainio@gmail.com>
1245 2006-02-15 Ville Vainio <vivainio@gmail.com>
1240
1246
1241 * Magic.py: %Pprint works again
1247 * Magic.py: %Pprint works again
1242
1248
1243 * Extensions/ipy_sane_defaults.py: Provide everything provided
1249 * Extensions/ipy_sane_defaults.py: Provide everything provided
1244 in default ipythonrc, to make it possible to have a completely empty
1250 in default ipythonrc, to make it possible to have a completely empty
1245 ipythonrc (and thus completely rc-file free configuration)
1251 ipythonrc (and thus completely rc-file free configuration)
1246
1252
1247 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1253 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1248
1254
1249 * IPython/hooks.py (editor): quote the call to the editor command,
1255 * IPython/hooks.py (editor): quote the call to the editor command,
1250 to allow commands with spaces in them. Problem noted by watching
1256 to allow commands with spaces in them. Problem noted by watching
1251 Ian Oswald's video about textpad under win32 at
1257 Ian Oswald's video about textpad under win32 at
1252 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1258 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1253
1259
1254 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1260 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1255 describing magics (we haven't used @ for a loong time).
1261 describing magics (we haven't used @ for a loong time).
1256
1262
1257 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1263 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1258 contributed by marienz to close
1264 contributed by marienz to close
1259 http://www.scipy.net/roundup/ipython/issue53.
1265 http://www.scipy.net/roundup/ipython/issue53.
1260
1266
1261 2006-02-10 Ville Vainio <vivainio@gmail.com>
1267 2006-02-10 Ville Vainio <vivainio@gmail.com>
1262
1268
1263 * genutils.py: getoutput now works in win32 too
1269 * genutils.py: getoutput now works in win32 too
1264
1270
1265 * completer.py: alias and magic completion only invoked
1271 * completer.py: alias and magic completion only invoked
1266 at the first "item" in the line, to avoid "cd %store"
1272 at the first "item" in the line, to avoid "cd %store"
1267 nonsense.
1273 nonsense.
1268
1274
1269 2006-02-09 Ville Vainio <vivainio@gmail.com>
1275 2006-02-09 Ville Vainio <vivainio@gmail.com>
1270
1276
1271 * test/*: Added a unit testing framework (finally).
1277 * test/*: Added a unit testing framework (finally).
1272 '%run runtests.py' to run test_*.
1278 '%run runtests.py' to run test_*.
1273
1279
1274 * ipapi.py: Exposed runlines and set_custom_exc
1280 * ipapi.py: Exposed runlines and set_custom_exc
1275
1281
1276 2006-02-07 Ville Vainio <vivainio@gmail.com>
1282 2006-02-07 Ville Vainio <vivainio@gmail.com>
1277
1283
1278 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1284 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1279 instead use "f(1 2)" as before.
1285 instead use "f(1 2)" as before.
1280
1286
1281 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1287 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1282
1288
1283 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1289 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1284 facilities, for demos processed by the IPython input filter
1290 facilities, for demos processed by the IPython input filter
1285 (IPythonDemo), and for running a script one-line-at-a-time as a
1291 (IPythonDemo), and for running a script one-line-at-a-time as a
1286 demo, both for pure Python (LineDemo) and for IPython-processed
1292 demo, both for pure Python (LineDemo) and for IPython-processed
1287 input (IPythonLineDemo). After a request by Dave Kohel, from the
1293 input (IPythonLineDemo). After a request by Dave Kohel, from the
1288 SAGE team.
1294 SAGE team.
1289 (Demo.edit): added an edit() method to the demo objects, to edit
1295 (Demo.edit): added an edit() method to the demo objects, to edit
1290 the in-memory copy of the last executed block.
1296 the in-memory copy of the last executed block.
1291
1297
1292 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1298 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1293 processing to %edit, %macro and %save. These commands can now be
1299 processing to %edit, %macro and %save. These commands can now be
1294 invoked on the unprocessed input as it was typed by the user
1300 invoked on the unprocessed input as it was typed by the user
1295 (without any prefilters applied). After requests by the SAGE team
1301 (without any prefilters applied). After requests by the SAGE team
1296 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1302 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1297
1303
1298 2006-02-01 Ville Vainio <vivainio@gmail.com>
1304 2006-02-01 Ville Vainio <vivainio@gmail.com>
1299
1305
1300 * setup.py, eggsetup.py: easy_install ipython==dev works
1306 * setup.py, eggsetup.py: easy_install ipython==dev works
1301 correctly now (on Linux)
1307 correctly now (on Linux)
1302
1308
1303 * ipy_user_conf,ipmaker: user config changes, removed spurious
1309 * ipy_user_conf,ipmaker: user config changes, removed spurious
1304 warnings
1310 warnings
1305
1311
1306 * iplib: if rc.banner is string, use it as is.
1312 * iplib: if rc.banner is string, use it as is.
1307
1313
1308 * Magic: %pycat accepts a string argument and pages it's contents.
1314 * Magic: %pycat accepts a string argument and pages it's contents.
1309
1315
1310
1316
1311 2006-01-30 Ville Vainio <vivainio@gmail.com>
1317 2006-01-30 Ville Vainio <vivainio@gmail.com>
1312
1318
1313 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1319 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1314 Now %store and bookmarks work through PickleShare, meaning that
1320 Now %store and bookmarks work through PickleShare, meaning that
1315 concurrent access is possible and all ipython sessions see the
1321 concurrent access is possible and all ipython sessions see the
1316 same database situation all the time, instead of snapshot of
1322 same database situation all the time, instead of snapshot of
1317 the situation when the session was started. Hence, %bookmark
1323 the situation when the session was started. Hence, %bookmark
1318 results are immediately accessible from othes sessions. The database
1324 results are immediately accessible from othes sessions. The database
1319 is also available for use by user extensions. See:
1325 is also available for use by user extensions. See:
1320 http://www.python.org/pypi/pickleshare
1326 http://www.python.org/pypi/pickleshare
1321
1327
1322 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1328 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1323
1329
1324 * aliases can now be %store'd
1330 * aliases can now be %store'd
1325
1331
1326 * path.py moved to Extensions so that pickleshare does not need
1332 * path.py moved to Extensions so that pickleshare does not need
1327 IPython-specific import. Extensions added to pythonpath right
1333 IPython-specific import. Extensions added to pythonpath right
1328 at __init__.
1334 at __init__.
1329
1335
1330 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1336 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1331 called with _ip.system and the pre-transformed command string.
1337 called with _ip.system and the pre-transformed command string.
1332
1338
1333 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1339 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1334
1340
1335 * IPython/iplib.py (interact): Fix that we were not catching
1341 * IPython/iplib.py (interact): Fix that we were not catching
1336 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1342 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1337 logic here had to change, but it's fixed now.
1343 logic here had to change, but it's fixed now.
1338
1344
1339 2006-01-29 Ville Vainio <vivainio@gmail.com>
1345 2006-01-29 Ville Vainio <vivainio@gmail.com>
1340
1346
1341 * iplib.py: Try to import pyreadline on Windows.
1347 * iplib.py: Try to import pyreadline on Windows.
1342
1348
1343 2006-01-27 Ville Vainio <vivainio@gmail.com>
1349 2006-01-27 Ville Vainio <vivainio@gmail.com>
1344
1350
1345 * iplib.py: Expose ipapi as _ip in builtin namespace.
1351 * iplib.py: Expose ipapi as _ip in builtin namespace.
1346 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1352 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1347 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1353 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1348 syntax now produce _ip.* variant of the commands.
1354 syntax now produce _ip.* variant of the commands.
1349
1355
1350 * "_ip.options().autoedit_syntax = 2" automatically throws
1356 * "_ip.options().autoedit_syntax = 2" automatically throws
1351 user to editor for syntax error correction without prompting.
1357 user to editor for syntax error correction without prompting.
1352
1358
1353 2006-01-27 Ville Vainio <vivainio@gmail.com>
1359 2006-01-27 Ville Vainio <vivainio@gmail.com>
1354
1360
1355 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1361 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1356 'ipython' at argv[0]) executed through command line.
1362 'ipython' at argv[0]) executed through command line.
1357 NOTE: this DEPRECATES calling ipython with multiple scripts
1363 NOTE: this DEPRECATES calling ipython with multiple scripts
1358 ("ipython a.py b.py c.py")
1364 ("ipython a.py b.py c.py")
1359
1365
1360 * iplib.py, hooks.py: Added configurable input prefilter,
1366 * iplib.py, hooks.py: Added configurable input prefilter,
1361 named 'input_prefilter'. See ext_rescapture.py for example
1367 named 'input_prefilter'. See ext_rescapture.py for example
1362 usage.
1368 usage.
1363
1369
1364 * ext_rescapture.py, Magic.py: Better system command output capture
1370 * ext_rescapture.py, Magic.py: Better system command output capture
1365 through 'var = !ls' (deprecates user-visible %sc). Same notation
1371 through 'var = !ls' (deprecates user-visible %sc). Same notation
1366 applies for magics, 'var = %alias' assigns alias list to var.
1372 applies for magics, 'var = %alias' assigns alias list to var.
1367
1373
1368 * ipapi.py: added meta() for accessing extension-usable data store.
1374 * ipapi.py: added meta() for accessing extension-usable data store.
1369
1375
1370 * iplib.py: added InteractiveShell.getapi(). New magics should be
1376 * iplib.py: added InteractiveShell.getapi(). New magics should be
1371 written doing self.getapi() instead of using the shell directly.
1377 written doing self.getapi() instead of using the shell directly.
1372
1378
1373 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1379 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1374 %store foo >> ~/myfoo.txt to store variables to files (in clean
1380 %store foo >> ~/myfoo.txt to store variables to files (in clean
1375 textual form, not a restorable pickle).
1381 textual form, not a restorable pickle).
1376
1382
1377 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1383 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1378
1384
1379 * usage.py, Magic.py: added %quickref
1385 * usage.py, Magic.py: added %quickref
1380
1386
1381 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1387 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1382
1388
1383 * GetoptErrors when invoking magics etc. with wrong args
1389 * GetoptErrors when invoking magics etc. with wrong args
1384 are now more helpful:
1390 are now more helpful:
1385 GetoptError: option -l not recognized (allowed: "qb" )
1391 GetoptError: option -l not recognized (allowed: "qb" )
1386
1392
1387 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1393 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1388
1394
1389 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1395 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1390 computationally intensive blocks don't appear to stall the demo.
1396 computationally intensive blocks don't appear to stall the demo.
1391
1397
1392 2006-01-24 Ville Vainio <vivainio@gmail.com>
1398 2006-01-24 Ville Vainio <vivainio@gmail.com>
1393
1399
1394 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1400 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1395 value to manipulate resulting history entry.
1401 value to manipulate resulting history entry.
1396
1402
1397 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1403 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1398 to instance methods of IPApi class, to make extending an embedded
1404 to instance methods of IPApi class, to make extending an embedded
1399 IPython feasible. See ext_rehashdir.py for example usage.
1405 IPython feasible. See ext_rehashdir.py for example usage.
1400
1406
1401 * Merged 1071-1076 from branches/0.7.1
1407 * Merged 1071-1076 from branches/0.7.1
1402
1408
1403
1409
1404 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1410 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1405
1411
1406 * tools/release (daystamp): Fix build tools to use the new
1412 * tools/release (daystamp): Fix build tools to use the new
1407 eggsetup.py script to build lightweight eggs.
1413 eggsetup.py script to build lightweight eggs.
1408
1414
1409 * Applied changesets 1062 and 1064 before 0.7.1 release.
1415 * Applied changesets 1062 and 1064 before 0.7.1 release.
1410
1416
1411 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1417 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1412 see the raw input history (without conversions like %ls ->
1418 see the raw input history (without conversions like %ls ->
1413 ipmagic("ls")). After a request from W. Stein, SAGE
1419 ipmagic("ls")). After a request from W. Stein, SAGE
1414 (http://modular.ucsd.edu/sage) developer. This information is
1420 (http://modular.ucsd.edu/sage) developer. This information is
1415 stored in the input_hist_raw attribute of the IPython instance, so
1421 stored in the input_hist_raw attribute of the IPython instance, so
1416 developers can access it if needed (it's an InputList instance).
1422 developers can access it if needed (it's an InputList instance).
1417
1423
1418 * Versionstring = 0.7.2.svn
1424 * Versionstring = 0.7.2.svn
1419
1425
1420 * eggsetup.py: A separate script for constructing eggs, creates
1426 * eggsetup.py: A separate script for constructing eggs, creates
1421 proper launch scripts even on Windows (an .exe file in
1427 proper launch scripts even on Windows (an .exe file in
1422 \python24\scripts).
1428 \python24\scripts).
1423
1429
1424 * ipapi.py: launch_new_instance, launch entry point needed for the
1430 * ipapi.py: launch_new_instance, launch entry point needed for the
1425 egg.
1431 egg.
1426
1432
1427 2006-01-23 Ville Vainio <vivainio@gmail.com>
1433 2006-01-23 Ville Vainio <vivainio@gmail.com>
1428
1434
1429 * Added %cpaste magic for pasting python code
1435 * Added %cpaste magic for pasting python code
1430
1436
1431 2006-01-22 Ville Vainio <vivainio@gmail.com>
1437 2006-01-22 Ville Vainio <vivainio@gmail.com>
1432
1438
1433 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1439 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1434
1440
1435 * Versionstring = 0.7.2.svn
1441 * Versionstring = 0.7.2.svn
1436
1442
1437 * eggsetup.py: A separate script for constructing eggs, creates
1443 * eggsetup.py: A separate script for constructing eggs, creates
1438 proper launch scripts even on Windows (an .exe file in
1444 proper launch scripts even on Windows (an .exe file in
1439 \python24\scripts).
1445 \python24\scripts).
1440
1446
1441 * ipapi.py: launch_new_instance, launch entry point needed for the
1447 * ipapi.py: launch_new_instance, launch entry point needed for the
1442 egg.
1448 egg.
1443
1449
1444 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1450 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1445
1451
1446 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1452 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1447 %pfile foo would print the file for foo even if it was a binary.
1453 %pfile foo would print the file for foo even if it was a binary.
1448 Now, extensions '.so' and '.dll' are skipped.
1454 Now, extensions '.so' and '.dll' are skipped.
1449
1455
1450 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1456 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1451 bug, where macros would fail in all threaded modes. I'm not 100%
1457 bug, where macros would fail in all threaded modes. I'm not 100%
1452 sure, so I'm going to put out an rc instead of making a release
1458 sure, so I'm going to put out an rc instead of making a release
1453 today, and wait for feedback for at least a few days.
1459 today, and wait for feedback for at least a few days.
1454
1460
1455 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1461 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1456 it...) the handling of pasting external code with autoindent on.
1462 it...) the handling of pasting external code with autoindent on.
1457 To get out of a multiline input, the rule will appear for most
1463 To get out of a multiline input, the rule will appear for most
1458 users unchanged: two blank lines or change the indent level
1464 users unchanged: two blank lines or change the indent level
1459 proposed by IPython. But there is a twist now: you can
1465 proposed by IPython. But there is a twist now: you can
1460 add/subtract only *one or two spaces*. If you add/subtract three
1466 add/subtract only *one or two spaces*. If you add/subtract three
1461 or more (unless you completely delete the line), IPython will
1467 or more (unless you completely delete the line), IPython will
1462 accept that line, and you'll need to enter a second one of pure
1468 accept that line, and you'll need to enter a second one of pure
1463 whitespace. I know it sounds complicated, but I can't find a
1469 whitespace. I know it sounds complicated, but I can't find a
1464 different solution that covers all the cases, with the right
1470 different solution that covers all the cases, with the right
1465 heuristics. Hopefully in actual use, nobody will really notice
1471 heuristics. Hopefully in actual use, nobody will really notice
1466 all these strange rules and things will 'just work'.
1472 all these strange rules and things will 'just work'.
1467
1473
1468 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1474 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1469
1475
1470 * IPython/iplib.py (interact): catch exceptions which can be
1476 * IPython/iplib.py (interact): catch exceptions which can be
1471 triggered asynchronously by signal handlers. Thanks to an
1477 triggered asynchronously by signal handlers. Thanks to an
1472 automatic crash report, submitted by Colin Kingsley
1478 automatic crash report, submitted by Colin Kingsley
1473 <tercel-AT-gentoo.org>.
1479 <tercel-AT-gentoo.org>.
1474
1480
1475 2006-01-20 Ville Vainio <vivainio@gmail.com>
1481 2006-01-20 Ville Vainio <vivainio@gmail.com>
1476
1482
1477 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1483 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1478 (%rehashdir, very useful, try it out) of how to extend ipython
1484 (%rehashdir, very useful, try it out) of how to extend ipython
1479 with new magics. Also added Extensions dir to pythonpath to make
1485 with new magics. Also added Extensions dir to pythonpath to make
1480 importing extensions easy.
1486 importing extensions easy.
1481
1487
1482 * %store now complains when trying to store interactively declared
1488 * %store now complains when trying to store interactively declared
1483 classes / instances of those classes.
1489 classes / instances of those classes.
1484
1490
1485 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1491 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1486 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1492 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1487 if they exist, and ipy_user_conf.py with some defaults is created for
1493 if they exist, and ipy_user_conf.py with some defaults is created for
1488 the user.
1494 the user.
1489
1495
1490 * Startup rehashing done by the config file, not InterpreterExec.
1496 * Startup rehashing done by the config file, not InterpreterExec.
1491 This means system commands are available even without selecting the
1497 This means system commands are available even without selecting the
1492 pysh profile. It's the sensible default after all.
1498 pysh profile. It's the sensible default after all.
1493
1499
1494 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1500 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1495
1501
1496 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1502 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1497 multiline code with autoindent on working. But I am really not
1503 multiline code with autoindent on working. But I am really not
1498 sure, so this needs more testing. Will commit a debug-enabled
1504 sure, so this needs more testing. Will commit a debug-enabled
1499 version for now, while I test it some more, so that Ville and
1505 version for now, while I test it some more, so that Ville and
1500 others may also catch any problems. Also made
1506 others may also catch any problems. Also made
1501 self.indent_current_str() a method, to ensure that there's no
1507 self.indent_current_str() a method, to ensure that there's no
1502 chance of the indent space count and the corresponding string
1508 chance of the indent space count and the corresponding string
1503 falling out of sync. All code needing the string should just call
1509 falling out of sync. All code needing the string should just call
1504 the method.
1510 the method.
1505
1511
1506 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1512 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1507
1513
1508 * IPython/Magic.py (magic_edit): fix check for when users don't
1514 * IPython/Magic.py (magic_edit): fix check for when users don't
1509 save their output files, the try/except was in the wrong section.
1515 save their output files, the try/except was in the wrong section.
1510
1516
1511 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1517 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1512
1518
1513 * IPython/Magic.py (magic_run): fix __file__ global missing from
1519 * IPython/Magic.py (magic_run): fix __file__ global missing from
1514 script's namespace when executed via %run. After a report by
1520 script's namespace when executed via %run. After a report by
1515 Vivian.
1521 Vivian.
1516
1522
1517 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1523 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1518 when using python 2.4. The parent constructor changed in 2.4, and
1524 when using python 2.4. The parent constructor changed in 2.4, and
1519 we need to track it directly (we can't call it, as it messes up
1525 we need to track it directly (we can't call it, as it messes up
1520 readline and tab-completion inside our pdb would stop working).
1526 readline and tab-completion inside our pdb would stop working).
1521 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1527 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1522
1528
1523 2006-01-16 Ville Vainio <vivainio@gmail.com>
1529 2006-01-16 Ville Vainio <vivainio@gmail.com>
1524
1530
1525 * Ipython/magic.py: Reverted back to old %edit functionality
1531 * Ipython/magic.py: Reverted back to old %edit functionality
1526 that returns file contents on exit.
1532 that returns file contents on exit.
1527
1533
1528 * IPython/path.py: Added Jason Orendorff's "path" module to
1534 * IPython/path.py: Added Jason Orendorff's "path" module to
1529 IPython tree, http://www.jorendorff.com/articles/python/path/.
1535 IPython tree, http://www.jorendorff.com/articles/python/path/.
1530 You can get path objects conveniently through %sc, and !!, e.g.:
1536 You can get path objects conveniently through %sc, and !!, e.g.:
1531 sc files=ls
1537 sc files=ls
1532 for p in files.paths: # or files.p
1538 for p in files.paths: # or files.p
1533 print p,p.mtime
1539 print p,p.mtime
1534
1540
1535 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1541 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1536 now work again without considering the exclusion regexp -
1542 now work again without considering the exclusion regexp -
1537 hence, things like ',foo my/path' turn to 'foo("my/path")'
1543 hence, things like ',foo my/path' turn to 'foo("my/path")'
1538 instead of syntax error.
1544 instead of syntax error.
1539
1545
1540
1546
1541 2006-01-14 Ville Vainio <vivainio@gmail.com>
1547 2006-01-14 Ville Vainio <vivainio@gmail.com>
1542
1548
1543 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1549 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1544 ipapi decorators for python 2.4 users, options() provides access to rc
1550 ipapi decorators for python 2.4 users, options() provides access to rc
1545 data.
1551 data.
1546
1552
1547 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1553 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1548 as path separators (even on Linux ;-). Space character after
1554 as path separators (even on Linux ;-). Space character after
1549 backslash (as yielded by tab completer) is still space;
1555 backslash (as yielded by tab completer) is still space;
1550 "%cd long\ name" works as expected.
1556 "%cd long\ name" works as expected.
1551
1557
1552 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1558 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1553 as "chain of command", with priority. API stays the same,
1559 as "chain of command", with priority. API stays the same,
1554 TryNext exception raised by a hook function signals that
1560 TryNext exception raised by a hook function signals that
1555 current hook failed and next hook should try handling it, as
1561 current hook failed and next hook should try handling it, as
1556 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1562 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1557 requested configurable display hook, which is now implemented.
1563 requested configurable display hook, which is now implemented.
1558
1564
1559 2006-01-13 Ville Vainio <vivainio@gmail.com>
1565 2006-01-13 Ville Vainio <vivainio@gmail.com>
1560
1566
1561 * IPython/platutils*.py: platform specific utility functions,
1567 * IPython/platutils*.py: platform specific utility functions,
1562 so far only set_term_title is implemented (change terminal
1568 so far only set_term_title is implemented (change terminal
1563 label in windowing systems). %cd now changes the title to
1569 label in windowing systems). %cd now changes the title to
1564 current dir.
1570 current dir.
1565
1571
1566 * IPython/Release.py: Added myself to "authors" list,
1572 * IPython/Release.py: Added myself to "authors" list,
1567 had to create new files.
1573 had to create new files.
1568
1574
1569 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1575 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1570 shell escape; not a known bug but had potential to be one in the
1576 shell escape; not a known bug but had potential to be one in the
1571 future.
1577 future.
1572
1578
1573 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1579 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1574 extension API for IPython! See the module for usage example. Fix
1580 extension API for IPython! See the module for usage example. Fix
1575 OInspect for docstring-less magic functions.
1581 OInspect for docstring-less magic functions.
1576
1582
1577
1583
1578 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1584 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1579
1585
1580 * IPython/iplib.py (raw_input): temporarily deactivate all
1586 * IPython/iplib.py (raw_input): temporarily deactivate all
1581 attempts at allowing pasting of code with autoindent on. It
1587 attempts at allowing pasting of code with autoindent on. It
1582 introduced bugs (reported by Prabhu) and I can't seem to find a
1588 introduced bugs (reported by Prabhu) and I can't seem to find a
1583 robust combination which works in all cases. Will have to revisit
1589 robust combination which works in all cases. Will have to revisit
1584 later.
1590 later.
1585
1591
1586 * IPython/genutils.py: remove isspace() function. We've dropped
1592 * IPython/genutils.py: remove isspace() function. We've dropped
1587 2.2 compatibility, so it's OK to use the string method.
1593 2.2 compatibility, so it's OK to use the string method.
1588
1594
1589 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1595 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1590
1596
1591 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1597 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1592 matching what NOT to autocall on, to include all python binary
1598 matching what NOT to autocall on, to include all python binary
1593 operators (including things like 'and', 'or', 'is' and 'in').
1599 operators (including things like 'and', 'or', 'is' and 'in').
1594 Prompted by a bug report on 'foo & bar', but I realized we had
1600 Prompted by a bug report on 'foo & bar', but I realized we had
1595 many more potential bug cases with other operators. The regexp is
1601 many more potential bug cases with other operators. The regexp is
1596 self.re_exclude_auto, it's fairly commented.
1602 self.re_exclude_auto, it's fairly commented.
1597
1603
1598 2006-01-12 Ville Vainio <vivainio@gmail.com>
1604 2006-01-12 Ville Vainio <vivainio@gmail.com>
1599
1605
1600 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1606 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1601 Prettified and hardened string/backslash quoting with ipsystem(),
1607 Prettified and hardened string/backslash quoting with ipsystem(),
1602 ipalias() and ipmagic(). Now even \ characters are passed to
1608 ipalias() and ipmagic(). Now even \ characters are passed to
1603 %magics, !shell escapes and aliases exactly as they are in the
1609 %magics, !shell escapes and aliases exactly as they are in the
1604 ipython command line. Should improve backslash experience,
1610 ipython command line. Should improve backslash experience,
1605 particularly in Windows (path delimiter for some commands that
1611 particularly in Windows (path delimiter for some commands that
1606 won't understand '/'), but Unix benefits as well (regexps). %cd
1612 won't understand '/'), but Unix benefits as well (regexps). %cd
1607 magic still doesn't support backslash path delimiters, though. Also
1613 magic still doesn't support backslash path delimiters, though. Also
1608 deleted all pretense of supporting multiline command strings in
1614 deleted all pretense of supporting multiline command strings in
1609 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1615 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1610
1616
1611 * doc/build_doc_instructions.txt added. Documentation on how to
1617 * doc/build_doc_instructions.txt added. Documentation on how to
1612 use doc/update_manual.py, added yesterday. Both files contributed
1618 use doc/update_manual.py, added yesterday. Both files contributed
1613 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1619 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1614 doc/*.sh for deprecation at a later date.
1620 doc/*.sh for deprecation at a later date.
1615
1621
1616 * /ipython.py Added ipython.py to root directory for
1622 * /ipython.py Added ipython.py to root directory for
1617 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1623 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1618 ipython.py) and development convenience (no need to keep doing
1624 ipython.py) and development convenience (no need to keep doing
1619 "setup.py install" between changes).
1625 "setup.py install" between changes).
1620
1626
1621 * Made ! and !! shell escapes work (again) in multiline expressions:
1627 * Made ! and !! shell escapes work (again) in multiline expressions:
1622 if 1:
1628 if 1:
1623 !ls
1629 !ls
1624 !!ls
1630 !!ls
1625
1631
1626 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1632 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1627
1633
1628 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1634 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1629 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1635 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1630 module in case-insensitive installation. Was causing crashes
1636 module in case-insensitive installation. Was causing crashes
1631 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1637 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1632
1638
1633 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1639 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1634 <marienz-AT-gentoo.org>, closes
1640 <marienz-AT-gentoo.org>, closes
1635 http://www.scipy.net/roundup/ipython/issue51.
1641 http://www.scipy.net/roundup/ipython/issue51.
1636
1642
1637 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1643 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1638
1644
1639 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1645 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1640 problem of excessive CPU usage under *nix and keyboard lag under
1646 problem of excessive CPU usage under *nix and keyboard lag under
1641 win32.
1647 win32.
1642
1648
1643 2006-01-10 *** Released version 0.7.0
1649 2006-01-10 *** Released version 0.7.0
1644
1650
1645 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1651 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1646
1652
1647 * IPython/Release.py (revision): tag version number to 0.7.0,
1653 * IPython/Release.py (revision): tag version number to 0.7.0,
1648 ready for release.
1654 ready for release.
1649
1655
1650 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1656 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1651 it informs the user of the name of the temp. file used. This can
1657 it informs the user of the name of the temp. file used. This can
1652 help if you decide later to reuse that same file, so you know
1658 help if you decide later to reuse that same file, so you know
1653 where to copy the info from.
1659 where to copy the info from.
1654
1660
1655 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1661 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1656
1662
1657 * setup_bdist_egg.py: little script to build an egg. Added
1663 * setup_bdist_egg.py: little script to build an egg. Added
1658 support in the release tools as well.
1664 support in the release tools as well.
1659
1665
1660 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1666 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1661
1667
1662 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1668 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1663 version selection (new -wxversion command line and ipythonrc
1669 version selection (new -wxversion command line and ipythonrc
1664 parameter). Patch contributed by Arnd Baecker
1670 parameter). Patch contributed by Arnd Baecker
1665 <arnd.baecker-AT-web.de>.
1671 <arnd.baecker-AT-web.de>.
1666
1672
1667 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1673 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1668 embedded instances, for variables defined at the interactive
1674 embedded instances, for variables defined at the interactive
1669 prompt of the embedded ipython. Reported by Arnd.
1675 prompt of the embedded ipython. Reported by Arnd.
1670
1676
1671 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1677 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1672 it can be used as a (stateful) toggle, or with a direct parameter.
1678 it can be used as a (stateful) toggle, or with a direct parameter.
1673
1679
1674 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1680 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1675 could be triggered in certain cases and cause the traceback
1681 could be triggered in certain cases and cause the traceback
1676 printer not to work.
1682 printer not to work.
1677
1683
1678 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1684 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1679
1685
1680 * IPython/iplib.py (_should_recompile): Small fix, closes
1686 * IPython/iplib.py (_should_recompile): Small fix, closes
1681 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1687 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1682
1688
1683 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1689 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1684
1690
1685 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1691 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1686 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1692 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1687 Moad for help with tracking it down.
1693 Moad for help with tracking it down.
1688
1694
1689 * IPython/iplib.py (handle_auto): fix autocall handling for
1695 * IPython/iplib.py (handle_auto): fix autocall handling for
1690 objects which support BOTH __getitem__ and __call__ (so that f [x]
1696 objects which support BOTH __getitem__ and __call__ (so that f [x]
1691 is left alone, instead of becoming f([x]) automatically).
1697 is left alone, instead of becoming f([x]) automatically).
1692
1698
1693 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1699 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1694 Ville's patch.
1700 Ville's patch.
1695
1701
1696 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1702 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1697
1703
1698 * IPython/iplib.py (handle_auto): changed autocall semantics to
1704 * IPython/iplib.py (handle_auto): changed autocall semantics to
1699 include 'smart' mode, where the autocall transformation is NOT
1705 include 'smart' mode, where the autocall transformation is NOT
1700 applied if there are no arguments on the line. This allows you to
1706 applied if there are no arguments on the line. This allows you to
1701 just type 'foo' if foo is a callable to see its internal form,
1707 just type 'foo' if foo is a callable to see its internal form,
1702 instead of having it called with no arguments (typically a
1708 instead of having it called with no arguments (typically a
1703 mistake). The old 'full' autocall still exists: for that, you
1709 mistake). The old 'full' autocall still exists: for that, you
1704 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1710 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1705
1711
1706 * IPython/completer.py (Completer.attr_matches): add
1712 * IPython/completer.py (Completer.attr_matches): add
1707 tab-completion support for Enthoughts' traits. After a report by
1713 tab-completion support for Enthoughts' traits. After a report by
1708 Arnd and a patch by Prabhu.
1714 Arnd and a patch by Prabhu.
1709
1715
1710 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1716 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1711
1717
1712 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1718 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1713 Schmolck's patch to fix inspect.getinnerframes().
1719 Schmolck's patch to fix inspect.getinnerframes().
1714
1720
1715 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1721 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1716 for embedded instances, regarding handling of namespaces and items
1722 for embedded instances, regarding handling of namespaces and items
1717 added to the __builtin__ one. Multiple embedded instances and
1723 added to the __builtin__ one. Multiple embedded instances and
1718 recursive embeddings should work better now (though I'm not sure
1724 recursive embeddings should work better now (though I'm not sure
1719 I've got all the corner cases fixed, that code is a bit of a brain
1725 I've got all the corner cases fixed, that code is a bit of a brain
1720 twister).
1726 twister).
1721
1727
1722 * IPython/Magic.py (magic_edit): added support to edit in-memory
1728 * IPython/Magic.py (magic_edit): added support to edit in-memory
1723 macros (automatically creates the necessary temp files). %edit
1729 macros (automatically creates the necessary temp files). %edit
1724 also doesn't return the file contents anymore, it's just noise.
1730 also doesn't return the file contents anymore, it's just noise.
1725
1731
1726 * IPython/completer.py (Completer.attr_matches): revert change to
1732 * IPython/completer.py (Completer.attr_matches): revert change to
1727 complete only on attributes listed in __all__. I realized it
1733 complete only on attributes listed in __all__. I realized it
1728 cripples the tab-completion system as a tool for exploring the
1734 cripples the tab-completion system as a tool for exploring the
1729 internals of unknown libraries (it renders any non-__all__
1735 internals of unknown libraries (it renders any non-__all__
1730 attribute off-limits). I got bit by this when trying to see
1736 attribute off-limits). I got bit by this when trying to see
1731 something inside the dis module.
1737 something inside the dis module.
1732
1738
1733 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1739 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1734
1740
1735 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1741 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1736 namespace for users and extension writers to hold data in. This
1742 namespace for users and extension writers to hold data in. This
1737 follows the discussion in
1743 follows the discussion in
1738 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1744 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1739
1745
1740 * IPython/completer.py (IPCompleter.complete): small patch to help
1746 * IPython/completer.py (IPCompleter.complete): small patch to help
1741 tab-completion under Emacs, after a suggestion by John Barnard
1747 tab-completion under Emacs, after a suggestion by John Barnard
1742 <barnarj-AT-ccf.org>.
1748 <barnarj-AT-ccf.org>.
1743
1749
1744 * IPython/Magic.py (Magic.extract_input_slices): added support for
1750 * IPython/Magic.py (Magic.extract_input_slices): added support for
1745 the slice notation in magics to use N-M to represent numbers N...M
1751 the slice notation in magics to use N-M to represent numbers N...M
1746 (closed endpoints). This is used by %macro and %save.
1752 (closed endpoints). This is used by %macro and %save.
1747
1753
1748 * IPython/completer.py (Completer.attr_matches): for modules which
1754 * IPython/completer.py (Completer.attr_matches): for modules which
1749 define __all__, complete only on those. After a patch by Jeffrey
1755 define __all__, complete only on those. After a patch by Jeffrey
1750 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1756 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1751 speed up this routine.
1757 speed up this routine.
1752
1758
1753 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1759 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1754 don't know if this is the end of it, but the behavior now is
1760 don't know if this is the end of it, but the behavior now is
1755 certainly much more correct. Note that coupled with macros,
1761 certainly much more correct. Note that coupled with macros,
1756 slightly surprising (at first) behavior may occur: a macro will in
1762 slightly surprising (at first) behavior may occur: a macro will in
1757 general expand to multiple lines of input, so upon exiting, the
1763 general expand to multiple lines of input, so upon exiting, the
1758 in/out counters will both be bumped by the corresponding amount
1764 in/out counters will both be bumped by the corresponding amount
1759 (as if the macro's contents had been typed interactively). Typing
1765 (as if the macro's contents had been typed interactively). Typing
1760 %hist will reveal the intermediate (silently processed) lines.
1766 %hist will reveal the intermediate (silently processed) lines.
1761
1767
1762 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1768 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1763 pickle to fail (%run was overwriting __main__ and not restoring
1769 pickle to fail (%run was overwriting __main__ and not restoring
1764 it, but pickle relies on __main__ to operate).
1770 it, but pickle relies on __main__ to operate).
1765
1771
1766 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1772 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1767 using properties, but forgot to make the main InteractiveShell
1773 using properties, but forgot to make the main InteractiveShell
1768 class a new-style class. Properties fail silently, and
1774 class a new-style class. Properties fail silently, and
1769 mysteriously, with old-style class (getters work, but
1775 mysteriously, with old-style class (getters work, but
1770 setters don't do anything).
1776 setters don't do anything).
1771
1777
1772 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1778 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1773
1779
1774 * IPython/Magic.py (magic_history): fix history reporting bug (I
1780 * IPython/Magic.py (magic_history): fix history reporting bug (I
1775 know some nasties are still there, I just can't seem to find a
1781 know some nasties are still there, I just can't seem to find a
1776 reproducible test case to track them down; the input history is
1782 reproducible test case to track them down; the input history is
1777 falling out of sync...)
1783 falling out of sync...)
1778
1784
1779 * IPython/iplib.py (handle_shell_escape): fix bug where both
1785 * IPython/iplib.py (handle_shell_escape): fix bug where both
1780 aliases and system accesses where broken for indented code (such
1786 aliases and system accesses where broken for indented code (such
1781 as loops).
1787 as loops).
1782
1788
1783 * IPython/genutils.py (shell): fix small but critical bug for
1789 * IPython/genutils.py (shell): fix small but critical bug for
1784 win32 system access.
1790 win32 system access.
1785
1791
1786 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1792 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1787
1793
1788 * IPython/iplib.py (showtraceback): remove use of the
1794 * IPython/iplib.py (showtraceback): remove use of the
1789 sys.last_{type/value/traceback} structures, which are non
1795 sys.last_{type/value/traceback} structures, which are non
1790 thread-safe.
1796 thread-safe.
1791 (_prefilter): change control flow to ensure that we NEVER
1797 (_prefilter): change control flow to ensure that we NEVER
1792 introspect objects when autocall is off. This will guarantee that
1798 introspect objects when autocall is off. This will guarantee that
1793 having an input line of the form 'x.y', where access to attribute
1799 having an input line of the form 'x.y', where access to attribute
1794 'y' has side effects, doesn't trigger the side effect TWICE. It
1800 'y' has side effects, doesn't trigger the side effect TWICE. It
1795 is important to note that, with autocall on, these side effects
1801 is important to note that, with autocall on, these side effects
1796 can still happen.
1802 can still happen.
1797 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1803 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1798 trio. IPython offers these three kinds of special calls which are
1804 trio. IPython offers these three kinds of special calls which are
1799 not python code, and it's a good thing to have their call method
1805 not python code, and it's a good thing to have their call method
1800 be accessible as pure python functions (not just special syntax at
1806 be accessible as pure python functions (not just special syntax at
1801 the command line). It gives us a better internal implementation
1807 the command line). It gives us a better internal implementation
1802 structure, as well as exposing these for user scripting more
1808 structure, as well as exposing these for user scripting more
1803 cleanly.
1809 cleanly.
1804
1810
1805 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1811 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1806 file. Now that they'll be more likely to be used with the
1812 file. Now that they'll be more likely to be used with the
1807 persistance system (%store), I want to make sure their module path
1813 persistance system (%store), I want to make sure their module path
1808 doesn't change in the future, so that we don't break things for
1814 doesn't change in the future, so that we don't break things for
1809 users' persisted data.
1815 users' persisted data.
1810
1816
1811 * IPython/iplib.py (autoindent_update): move indentation
1817 * IPython/iplib.py (autoindent_update): move indentation
1812 management into the _text_ processing loop, not the keyboard
1818 management into the _text_ processing loop, not the keyboard
1813 interactive one. This is necessary to correctly process non-typed
1819 interactive one. This is necessary to correctly process non-typed
1814 multiline input (such as macros).
1820 multiline input (such as macros).
1815
1821
1816 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1822 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1817 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1823 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1818 which was producing problems in the resulting manual.
1824 which was producing problems in the resulting manual.
1819 (magic_whos): improve reporting of instances (show their class,
1825 (magic_whos): improve reporting of instances (show their class,
1820 instead of simply printing 'instance' which isn't terribly
1826 instead of simply printing 'instance' which isn't terribly
1821 informative).
1827 informative).
1822
1828
1823 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1829 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1824 (minor mods) to support network shares under win32.
1830 (minor mods) to support network shares under win32.
1825
1831
1826 * IPython/winconsole.py (get_console_size): add new winconsole
1832 * IPython/winconsole.py (get_console_size): add new winconsole
1827 module and fixes to page_dumb() to improve its behavior under
1833 module and fixes to page_dumb() to improve its behavior under
1828 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1834 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1829
1835
1830 * IPython/Magic.py (Macro): simplified Macro class to just
1836 * IPython/Magic.py (Macro): simplified Macro class to just
1831 subclass list. We've had only 2.2 compatibility for a very long
1837 subclass list. We've had only 2.2 compatibility for a very long
1832 time, yet I was still avoiding subclassing the builtin types. No
1838 time, yet I was still avoiding subclassing the builtin types. No
1833 more (I'm also starting to use properties, though I won't shift to
1839 more (I'm also starting to use properties, though I won't shift to
1834 2.3-specific features quite yet).
1840 2.3-specific features quite yet).
1835 (magic_store): added Ville's patch for lightweight variable
1841 (magic_store): added Ville's patch for lightweight variable
1836 persistence, after a request on the user list by Matt Wilkie
1842 persistence, after a request on the user list by Matt Wilkie
1837 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1843 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1838 details.
1844 details.
1839
1845
1840 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1846 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1841 changed the default logfile name from 'ipython.log' to
1847 changed the default logfile name from 'ipython.log' to
1842 'ipython_log.py'. These logs are real python files, and now that
1848 'ipython_log.py'. These logs are real python files, and now that
1843 we have much better multiline support, people are more likely to
1849 we have much better multiline support, people are more likely to
1844 want to use them as such. Might as well name them correctly.
1850 want to use them as such. Might as well name them correctly.
1845
1851
1846 * IPython/Magic.py: substantial cleanup. While we can't stop
1852 * IPython/Magic.py: substantial cleanup. While we can't stop
1847 using magics as mixins, due to the existing customizations 'out
1853 using magics as mixins, due to the existing customizations 'out
1848 there' which rely on the mixin naming conventions, at least I
1854 there' which rely on the mixin naming conventions, at least I
1849 cleaned out all cross-class name usage. So once we are OK with
1855 cleaned out all cross-class name usage. So once we are OK with
1850 breaking compatibility, the two systems can be separated.
1856 breaking compatibility, the two systems can be separated.
1851
1857
1852 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1858 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1853 anymore, and the class is a fair bit less hideous as well. New
1859 anymore, and the class is a fair bit less hideous as well. New
1854 features were also introduced: timestamping of input, and logging
1860 features were also introduced: timestamping of input, and logging
1855 of output results. These are user-visible with the -t and -o
1861 of output results. These are user-visible with the -t and -o
1856 options to %logstart. Closes
1862 options to %logstart. Closes
1857 http://www.scipy.net/roundup/ipython/issue11 and a request by
1863 http://www.scipy.net/roundup/ipython/issue11 and a request by
1858 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1864 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1859
1865
1860 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1866 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1861
1867
1862 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1868 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1863 better handle backslashes in paths. See the thread 'More Windows
1869 better handle backslashes in paths. See the thread 'More Windows
1864 questions part 2 - \/ characters revisited' on the iypthon user
1870 questions part 2 - \/ characters revisited' on the iypthon user
1865 list:
1871 list:
1866 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1872 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1867
1873
1868 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1874 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1869
1875
1870 (InteractiveShell.__init__): change threaded shells to not use the
1876 (InteractiveShell.__init__): change threaded shells to not use the
1871 ipython crash handler. This was causing more problems than not,
1877 ipython crash handler. This was causing more problems than not,
1872 as exceptions in the main thread (GUI code, typically) would
1878 as exceptions in the main thread (GUI code, typically) would
1873 always show up as a 'crash', when they really weren't.
1879 always show up as a 'crash', when they really weren't.
1874
1880
1875 The colors and exception mode commands (%colors/%xmode) have been
1881 The colors and exception mode commands (%colors/%xmode) have been
1876 synchronized to also take this into account, so users can get
1882 synchronized to also take this into account, so users can get
1877 verbose exceptions for their threaded code as well. I also added
1883 verbose exceptions for their threaded code as well. I also added
1878 support for activating pdb inside this exception handler as well,
1884 support for activating pdb inside this exception handler as well,
1879 so now GUI authors can use IPython's enhanced pdb at runtime.
1885 so now GUI authors can use IPython's enhanced pdb at runtime.
1880
1886
1881 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1887 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1882 true by default, and add it to the shipped ipythonrc file. Since
1888 true by default, and add it to the shipped ipythonrc file. Since
1883 this asks the user before proceeding, I think it's OK to make it
1889 this asks the user before proceeding, I think it's OK to make it
1884 true by default.
1890 true by default.
1885
1891
1886 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1892 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1887 of the previous special-casing of input in the eval loop. I think
1893 of the previous special-casing of input in the eval loop. I think
1888 this is cleaner, as they really are commands and shouldn't have
1894 this is cleaner, as they really are commands and shouldn't have
1889 a special role in the middle of the core code.
1895 a special role in the middle of the core code.
1890
1896
1891 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1897 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1892
1898
1893 * IPython/iplib.py (edit_syntax_error): added support for
1899 * IPython/iplib.py (edit_syntax_error): added support for
1894 automatically reopening the editor if the file had a syntax error
1900 automatically reopening the editor if the file had a syntax error
1895 in it. Thanks to scottt who provided the patch at:
1901 in it. Thanks to scottt who provided the patch at:
1896 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1902 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
1897 version committed).
1903 version committed).
1898
1904
1899 * IPython/iplib.py (handle_normal): add suport for multi-line
1905 * IPython/iplib.py (handle_normal): add suport for multi-line
1900 input with emtpy lines. This fixes
1906 input with emtpy lines. This fixes
1901 http://www.scipy.net/roundup/ipython/issue43 and a similar
1907 http://www.scipy.net/roundup/ipython/issue43 and a similar
1902 discussion on the user list.
1908 discussion on the user list.
1903
1909
1904 WARNING: a behavior change is necessarily introduced to support
1910 WARNING: a behavior change is necessarily introduced to support
1905 blank lines: now a single blank line with whitespace does NOT
1911 blank lines: now a single blank line with whitespace does NOT
1906 break the input loop, which means that when autoindent is on, by
1912 break the input loop, which means that when autoindent is on, by
1907 default hitting return on the next (indented) line does NOT exit.
1913 default hitting return on the next (indented) line does NOT exit.
1908
1914
1909 Instead, to exit a multiline input you can either have:
1915 Instead, to exit a multiline input you can either have:
1910
1916
1911 - TWO whitespace lines (just hit return again), or
1917 - TWO whitespace lines (just hit return again), or
1912 - a single whitespace line of a different length than provided
1918 - a single whitespace line of a different length than provided
1913 by the autoindent (add or remove a space).
1919 by the autoindent (add or remove a space).
1914
1920
1915 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1921 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
1916 module to better organize all readline-related functionality.
1922 module to better organize all readline-related functionality.
1917 I've deleted FlexCompleter and put all completion clases here.
1923 I've deleted FlexCompleter and put all completion clases here.
1918
1924
1919 * IPython/iplib.py (raw_input): improve indentation management.
1925 * IPython/iplib.py (raw_input): improve indentation management.
1920 It is now possible to paste indented code with autoindent on, and
1926 It is now possible to paste indented code with autoindent on, and
1921 the code is interpreted correctly (though it still looks bad on
1927 the code is interpreted correctly (though it still looks bad on
1922 screen, due to the line-oriented nature of ipython).
1928 screen, due to the line-oriented nature of ipython).
1923 (MagicCompleter.complete): change behavior so that a TAB key on an
1929 (MagicCompleter.complete): change behavior so that a TAB key on an
1924 otherwise empty line actually inserts a tab, instead of completing
1930 otherwise empty line actually inserts a tab, instead of completing
1925 on the entire global namespace. This makes it easier to use the
1931 on the entire global namespace. This makes it easier to use the
1926 TAB key for indentation. After a request by Hans Meine
1932 TAB key for indentation. After a request by Hans Meine
1927 <hans_meine-AT-gmx.net>
1933 <hans_meine-AT-gmx.net>
1928 (_prefilter): add support so that typing plain 'exit' or 'quit'
1934 (_prefilter): add support so that typing plain 'exit' or 'quit'
1929 does a sensible thing. Originally I tried to deviate as little as
1935 does a sensible thing. Originally I tried to deviate as little as
1930 possible from the default python behavior, but even that one may
1936 possible from the default python behavior, but even that one may
1931 change in this direction (thread on python-dev to that effect).
1937 change in this direction (thread on python-dev to that effect).
1932 Regardless, ipython should do the right thing even if CPython's
1938 Regardless, ipython should do the right thing even if CPython's
1933 '>>>' prompt doesn't.
1939 '>>>' prompt doesn't.
1934 (InteractiveShell): removed subclassing code.InteractiveConsole
1940 (InteractiveShell): removed subclassing code.InteractiveConsole
1935 class. By now we'd overridden just about all of its methods: I've
1941 class. By now we'd overridden just about all of its methods: I've
1936 copied the remaining two over, and now ipython is a standalone
1942 copied the remaining two over, and now ipython is a standalone
1937 class. This will provide a clearer picture for the chainsaw
1943 class. This will provide a clearer picture for the chainsaw
1938 branch refactoring.
1944 branch refactoring.
1939
1945
1940 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1946 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
1941
1947
1942 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1948 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
1943 failures for objects which break when dir() is called on them.
1949 failures for objects which break when dir() is called on them.
1944
1950
1945 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1951 * IPython/FlexCompleter.py (Completer.__init__): Added support for
1946 distinct local and global namespaces in the completer API. This
1952 distinct local and global namespaces in the completer API. This
1947 change allows us to properly handle completion with distinct
1953 change allows us to properly handle completion with distinct
1948 scopes, including in embedded instances (this had never really
1954 scopes, including in embedded instances (this had never really
1949 worked correctly).
1955 worked correctly).
1950
1956
1951 Note: this introduces a change in the constructor for
1957 Note: this introduces a change in the constructor for
1952 MagicCompleter, as a new global_namespace parameter is now the
1958 MagicCompleter, as a new global_namespace parameter is now the
1953 second argument (the others were bumped one position).
1959 second argument (the others were bumped one position).
1954
1960
1955 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1961 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
1956
1962
1957 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1963 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1958 embedded instances (which can be done now thanks to Vivian's
1964 embedded instances (which can be done now thanks to Vivian's
1959 frame-handling fixes for pdb).
1965 frame-handling fixes for pdb).
1960 (InteractiveShell.__init__): Fix namespace handling problem in
1966 (InteractiveShell.__init__): Fix namespace handling problem in
1961 embedded instances. We were overwriting __main__ unconditionally,
1967 embedded instances. We were overwriting __main__ unconditionally,
1962 and this should only be done for 'full' (non-embedded) IPython;
1968 and this should only be done for 'full' (non-embedded) IPython;
1963 embedded instances must respect the caller's __main__. Thanks to
1969 embedded instances must respect the caller's __main__. Thanks to
1964 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1970 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
1965
1971
1966 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1972 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
1967
1973
1968 * setup.py: added download_url to setup(). This registers the
1974 * setup.py: added download_url to setup(). This registers the
1969 download address at PyPI, which is not only useful to humans
1975 download address at PyPI, which is not only useful to humans
1970 browsing the site, but is also picked up by setuptools (the Eggs
1976 browsing the site, but is also picked up by setuptools (the Eggs
1971 machinery). Thanks to Ville and R. Kern for the info/discussion
1977 machinery). Thanks to Ville and R. Kern for the info/discussion
1972 on this.
1978 on this.
1973
1979
1974 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1980 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
1975
1981
1976 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1982 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
1977 This brings a lot of nice functionality to the pdb mode, which now
1983 This brings a lot of nice functionality to the pdb mode, which now
1978 has tab-completion, syntax highlighting, and better stack handling
1984 has tab-completion, syntax highlighting, and better stack handling
1979 than before. Many thanks to Vivian De Smedt
1985 than before. Many thanks to Vivian De Smedt
1980 <vivian-AT-vdesmedt.com> for the original patches.
1986 <vivian-AT-vdesmedt.com> for the original patches.
1981
1987
1982 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1988 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
1983
1989
1984 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1990 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
1985 sequence to consistently accept the banner argument. The
1991 sequence to consistently accept the banner argument. The
1986 inconsistency was tripping SAGE, thanks to Gary Zablackis
1992 inconsistency was tripping SAGE, thanks to Gary Zablackis
1987 <gzabl-AT-yahoo.com> for the report.
1993 <gzabl-AT-yahoo.com> for the report.
1988
1994
1989 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1995 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1990
1996
1991 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1997 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1992 Fix bug where a naked 'alias' call in the ipythonrc file would
1998 Fix bug where a naked 'alias' call in the ipythonrc file would
1993 cause a crash. Bug reported by Jorgen Stenarson.
1999 cause a crash. Bug reported by Jorgen Stenarson.
1994
2000
1995 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2001 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
1996
2002
1997 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2003 * IPython/ipmaker.py (make_IPython): cleanups which should improve
1998 startup time.
2004 startup time.
1999
2005
2000 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2006 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2001 instances had introduced a bug with globals in normal code. Now
2007 instances had introduced a bug with globals in normal code. Now
2002 it's working in all cases.
2008 it's working in all cases.
2003
2009
2004 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2010 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2005 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2011 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2006 has been introduced to set the default case sensitivity of the
2012 has been introduced to set the default case sensitivity of the
2007 searches. Users can still select either mode at runtime on a
2013 searches. Users can still select either mode at runtime on a
2008 per-search basis.
2014 per-search basis.
2009
2015
2010 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2016 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2011
2017
2012 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2018 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2013 attributes in wildcard searches for subclasses. Modified version
2019 attributes in wildcard searches for subclasses. Modified version
2014 of a patch by Jorgen.
2020 of a patch by Jorgen.
2015
2021
2016 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2022 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2017
2023
2018 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2024 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2019 embedded instances. I added a user_global_ns attribute to the
2025 embedded instances. I added a user_global_ns attribute to the
2020 InteractiveShell class to handle this.
2026 InteractiveShell class to handle this.
2021
2027
2022 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2028 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2023
2029
2024 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2030 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2025 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2031 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2026 (reported under win32, but may happen also in other platforms).
2032 (reported under win32, but may happen also in other platforms).
2027 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2033 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2028
2034
2029 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2035 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2030
2036
2031 * IPython/Magic.py (magic_psearch): new support for wildcard
2037 * IPython/Magic.py (magic_psearch): new support for wildcard
2032 patterns. Now, typing ?a*b will list all names which begin with a
2038 patterns. Now, typing ?a*b will list all names which begin with a
2033 and end in b, for example. The %psearch magic has full
2039 and end in b, for example. The %psearch magic has full
2034 docstrings. Many thanks to JΓΆrgen Stenarson
2040 docstrings. Many thanks to JΓΆrgen Stenarson
2035 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2041 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2036 implementing this functionality.
2042 implementing this functionality.
2037
2043
2038 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2044 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2039
2045
2040 * Manual: fixed long-standing annoyance of double-dashes (as in
2046 * Manual: fixed long-standing annoyance of double-dashes (as in
2041 --prefix=~, for example) being stripped in the HTML version. This
2047 --prefix=~, for example) being stripped in the HTML version. This
2042 is a latex2html bug, but a workaround was provided. Many thanks
2048 is a latex2html bug, but a workaround was provided. Many thanks
2043 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2049 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2044 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2050 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2045 rolling. This seemingly small issue had tripped a number of users
2051 rolling. This seemingly small issue had tripped a number of users
2046 when first installing, so I'm glad to see it gone.
2052 when first installing, so I'm glad to see it gone.
2047
2053
2048 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2054 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2049
2055
2050 * IPython/Extensions/numeric_formats.py: fix missing import,
2056 * IPython/Extensions/numeric_formats.py: fix missing import,
2051 reported by Stephen Walton.
2057 reported by Stephen Walton.
2052
2058
2053 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2059 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2054
2060
2055 * IPython/demo.py: finish demo module, fully documented now.
2061 * IPython/demo.py: finish demo module, fully documented now.
2056
2062
2057 * IPython/genutils.py (file_read): simple little utility to read a
2063 * IPython/genutils.py (file_read): simple little utility to read a
2058 file and ensure it's closed afterwards.
2064 file and ensure it's closed afterwards.
2059
2065
2060 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2066 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2061
2067
2062 * IPython/demo.py (Demo.__init__): added support for individually
2068 * IPython/demo.py (Demo.__init__): added support for individually
2063 tagging blocks for automatic execution.
2069 tagging blocks for automatic execution.
2064
2070
2065 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2071 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2066 syntax-highlighted python sources, requested by John.
2072 syntax-highlighted python sources, requested by John.
2067
2073
2068 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2074 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2069
2075
2070 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2076 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2071 finishing.
2077 finishing.
2072
2078
2073 * IPython/genutils.py (shlex_split): moved from Magic to here,
2079 * IPython/genutils.py (shlex_split): moved from Magic to here,
2074 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2080 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2075
2081
2076 * IPython/demo.py (Demo.__init__): added support for silent
2082 * IPython/demo.py (Demo.__init__): added support for silent
2077 blocks, improved marks as regexps, docstrings written.
2083 blocks, improved marks as regexps, docstrings written.
2078 (Demo.__init__): better docstring, added support for sys.argv.
2084 (Demo.__init__): better docstring, added support for sys.argv.
2079
2085
2080 * IPython/genutils.py (marquee): little utility used by the demo
2086 * IPython/genutils.py (marquee): little utility used by the demo
2081 code, handy in general.
2087 code, handy in general.
2082
2088
2083 * IPython/demo.py (Demo.__init__): new class for interactive
2089 * IPython/demo.py (Demo.__init__): new class for interactive
2084 demos. Not documented yet, I just wrote it in a hurry for
2090 demos. Not documented yet, I just wrote it in a hurry for
2085 scipy'05. Will docstring later.
2091 scipy'05. Will docstring later.
2086
2092
2087 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2093 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2088
2094
2089 * IPython/Shell.py (sigint_handler): Drastic simplification which
2095 * IPython/Shell.py (sigint_handler): Drastic simplification which
2090 also seems to make Ctrl-C work correctly across threads! This is
2096 also seems to make Ctrl-C work correctly across threads! This is
2091 so simple, that I can't beleive I'd missed it before. Needs more
2097 so simple, that I can't beleive I'd missed it before. Needs more
2092 testing, though.
2098 testing, though.
2093 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2099 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2094 like this before...
2100 like this before...
2095
2101
2096 * IPython/genutils.py (get_home_dir): add protection against
2102 * IPython/genutils.py (get_home_dir): add protection against
2097 non-dirs in win32 registry.
2103 non-dirs in win32 registry.
2098
2104
2099 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2105 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2100 bug where dict was mutated while iterating (pysh crash).
2106 bug where dict was mutated while iterating (pysh crash).
2101
2107
2102 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2108 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2103
2109
2104 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2110 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2105 spurious newlines added by this routine. After a report by
2111 spurious newlines added by this routine. After a report by
2106 F. Mantegazza.
2112 F. Mantegazza.
2107
2113
2108 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2114 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2109
2115
2110 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2116 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2111 calls. These were a leftover from the GTK 1.x days, and can cause
2117 calls. These were a leftover from the GTK 1.x days, and can cause
2112 problems in certain cases (after a report by John Hunter).
2118 problems in certain cases (after a report by John Hunter).
2113
2119
2114 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2120 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2115 os.getcwd() fails at init time. Thanks to patch from David Remahl
2121 os.getcwd() fails at init time. Thanks to patch from David Remahl
2116 <chmod007-AT-mac.com>.
2122 <chmod007-AT-mac.com>.
2117 (InteractiveShell.__init__): prevent certain special magics from
2123 (InteractiveShell.__init__): prevent certain special magics from
2118 being shadowed by aliases. Closes
2124 being shadowed by aliases. Closes
2119 http://www.scipy.net/roundup/ipython/issue41.
2125 http://www.scipy.net/roundup/ipython/issue41.
2120
2126
2121 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2127 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2122
2128
2123 * IPython/iplib.py (InteractiveShell.complete): Added new
2129 * IPython/iplib.py (InteractiveShell.complete): Added new
2124 top-level completion method to expose the completion mechanism
2130 top-level completion method to expose the completion mechanism
2125 beyond readline-based environments.
2131 beyond readline-based environments.
2126
2132
2127 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2133 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2128
2134
2129 * tools/ipsvnc (svnversion): fix svnversion capture.
2135 * tools/ipsvnc (svnversion): fix svnversion capture.
2130
2136
2131 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2137 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2132 attribute to self, which was missing. Before, it was set by a
2138 attribute to self, which was missing. Before, it was set by a
2133 routine which in certain cases wasn't being called, so the
2139 routine which in certain cases wasn't being called, so the
2134 instance could end up missing the attribute. This caused a crash.
2140 instance could end up missing the attribute. This caused a crash.
2135 Closes http://www.scipy.net/roundup/ipython/issue40.
2141 Closes http://www.scipy.net/roundup/ipython/issue40.
2136
2142
2137 2005-08-16 Fernando Perez <fperez@colorado.edu>
2143 2005-08-16 Fernando Perez <fperez@colorado.edu>
2138
2144
2139 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2145 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2140 contains non-string attribute. Closes
2146 contains non-string attribute. Closes
2141 http://www.scipy.net/roundup/ipython/issue38.
2147 http://www.scipy.net/roundup/ipython/issue38.
2142
2148
2143 2005-08-14 Fernando Perez <fperez@colorado.edu>
2149 2005-08-14 Fernando Perez <fperez@colorado.edu>
2144
2150
2145 * tools/ipsvnc: Minor improvements, to add changeset info.
2151 * tools/ipsvnc: Minor improvements, to add changeset info.
2146
2152
2147 2005-08-12 Fernando Perez <fperez@colorado.edu>
2153 2005-08-12 Fernando Perez <fperez@colorado.edu>
2148
2154
2149 * IPython/iplib.py (runsource): remove self.code_to_run_src
2155 * IPython/iplib.py (runsource): remove self.code_to_run_src
2150 attribute. I realized this is nothing more than
2156 attribute. I realized this is nothing more than
2151 '\n'.join(self.buffer), and having the same data in two different
2157 '\n'.join(self.buffer), and having the same data in two different
2152 places is just asking for synchronization bugs. This may impact
2158 places is just asking for synchronization bugs. This may impact
2153 people who have custom exception handlers, so I need to warn
2159 people who have custom exception handlers, so I need to warn
2154 ipython-dev about it (F. Mantegazza may use them).
2160 ipython-dev about it (F. Mantegazza may use them).
2155
2161
2156 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2162 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2157
2163
2158 * IPython/genutils.py: fix 2.2 compatibility (generators)
2164 * IPython/genutils.py: fix 2.2 compatibility (generators)
2159
2165
2160 2005-07-18 Fernando Perez <fperez@colorado.edu>
2166 2005-07-18 Fernando Perez <fperez@colorado.edu>
2161
2167
2162 * IPython/genutils.py (get_home_dir): fix to help users with
2168 * IPython/genutils.py (get_home_dir): fix to help users with
2163 invalid $HOME under win32.
2169 invalid $HOME under win32.
2164
2170
2165 2005-07-17 Fernando Perez <fperez@colorado.edu>
2171 2005-07-17 Fernando Perez <fperez@colorado.edu>
2166
2172
2167 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2173 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2168 some old hacks and clean up a bit other routines; code should be
2174 some old hacks and clean up a bit other routines; code should be
2169 simpler and a bit faster.
2175 simpler and a bit faster.
2170
2176
2171 * IPython/iplib.py (interact): removed some last-resort attempts
2177 * IPython/iplib.py (interact): removed some last-resort attempts
2172 to survive broken stdout/stderr. That code was only making it
2178 to survive broken stdout/stderr. That code was only making it
2173 harder to abstract out the i/o (necessary for gui integration),
2179 harder to abstract out the i/o (necessary for gui integration),
2174 and the crashes it could prevent were extremely rare in practice
2180 and the crashes it could prevent were extremely rare in practice
2175 (besides being fully user-induced in a pretty violent manner).
2181 (besides being fully user-induced in a pretty violent manner).
2176
2182
2177 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2183 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2178 Nothing major yet, but the code is simpler to read; this should
2184 Nothing major yet, but the code is simpler to read; this should
2179 make it easier to do more serious modifications in the future.
2185 make it easier to do more serious modifications in the future.
2180
2186
2181 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2187 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2182 which broke in .15 (thanks to a report by Ville).
2188 which broke in .15 (thanks to a report by Ville).
2183
2189
2184 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2190 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2185 be quite correct, I know next to nothing about unicode). This
2191 be quite correct, I know next to nothing about unicode). This
2186 will allow unicode strings to be used in prompts, amongst other
2192 will allow unicode strings to be used in prompts, amongst other
2187 cases. It also will prevent ipython from crashing when unicode
2193 cases. It also will prevent ipython from crashing when unicode
2188 shows up unexpectedly in many places. If ascii encoding fails, we
2194 shows up unexpectedly in many places. If ascii encoding fails, we
2189 assume utf_8. Currently the encoding is not a user-visible
2195 assume utf_8. Currently the encoding is not a user-visible
2190 setting, though it could be made so if there is demand for it.
2196 setting, though it could be made so if there is demand for it.
2191
2197
2192 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2198 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2193
2199
2194 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2200 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2195
2201
2196 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2202 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2197
2203
2198 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2204 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2199 code can work transparently for 2.2/2.3.
2205 code can work transparently for 2.2/2.3.
2200
2206
2201 2005-07-16 Fernando Perez <fperez@colorado.edu>
2207 2005-07-16 Fernando Perez <fperez@colorado.edu>
2202
2208
2203 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2209 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2204 out of the color scheme table used for coloring exception
2210 out of the color scheme table used for coloring exception
2205 tracebacks. This allows user code to add new schemes at runtime.
2211 tracebacks. This allows user code to add new schemes at runtime.
2206 This is a minimally modified version of the patch at
2212 This is a minimally modified version of the patch at
2207 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2213 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2208 for the contribution.
2214 for the contribution.
2209
2215
2210 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2216 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2211 slightly modified version of the patch in
2217 slightly modified version of the patch in
2212 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2218 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2213 to remove the previous try/except solution (which was costlier).
2219 to remove the previous try/except solution (which was costlier).
2214 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2220 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2215
2221
2216 2005-06-08 Fernando Perez <fperez@colorado.edu>
2222 2005-06-08 Fernando Perez <fperez@colorado.edu>
2217
2223
2218 * IPython/iplib.py (write/write_err): Add methods to abstract all
2224 * IPython/iplib.py (write/write_err): Add methods to abstract all
2219 I/O a bit more.
2225 I/O a bit more.
2220
2226
2221 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2227 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2222 warning, reported by Aric Hagberg, fix by JD Hunter.
2228 warning, reported by Aric Hagberg, fix by JD Hunter.
2223
2229
2224 2005-06-02 *** Released version 0.6.15
2230 2005-06-02 *** Released version 0.6.15
2225
2231
2226 2005-06-01 Fernando Perez <fperez@colorado.edu>
2232 2005-06-01 Fernando Perez <fperez@colorado.edu>
2227
2233
2228 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2234 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2229 tab-completion of filenames within open-quoted strings. Note that
2235 tab-completion of filenames within open-quoted strings. Note that
2230 this requires that in ~/.ipython/ipythonrc, users change the
2236 this requires that in ~/.ipython/ipythonrc, users change the
2231 readline delimiters configuration to read:
2237 readline delimiters configuration to read:
2232
2238
2233 readline_remove_delims -/~
2239 readline_remove_delims -/~
2234
2240
2235
2241
2236 2005-05-31 *** Released version 0.6.14
2242 2005-05-31 *** Released version 0.6.14
2237
2243
2238 2005-05-29 Fernando Perez <fperez@colorado.edu>
2244 2005-05-29 Fernando Perez <fperez@colorado.edu>
2239
2245
2240 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2246 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2241 with files not on the filesystem. Reported by Eliyahu Sandler
2247 with files not on the filesystem. Reported by Eliyahu Sandler
2242 <eli@gondolin.net>
2248 <eli@gondolin.net>
2243
2249
2244 2005-05-22 Fernando Perez <fperez@colorado.edu>
2250 2005-05-22 Fernando Perez <fperez@colorado.edu>
2245
2251
2246 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2252 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2247 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2253 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2248
2254
2249 2005-05-19 Fernando Perez <fperez@colorado.edu>
2255 2005-05-19 Fernando Perez <fperez@colorado.edu>
2250
2256
2251 * IPython/iplib.py (safe_execfile): close a file which could be
2257 * IPython/iplib.py (safe_execfile): close a file which could be
2252 left open (causing problems in win32, which locks open files).
2258 left open (causing problems in win32, which locks open files).
2253 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2259 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2254
2260
2255 2005-05-18 Fernando Perez <fperez@colorado.edu>
2261 2005-05-18 Fernando Perez <fperez@colorado.edu>
2256
2262
2257 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2263 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2258 keyword arguments correctly to safe_execfile().
2264 keyword arguments correctly to safe_execfile().
2259
2265
2260 2005-05-13 Fernando Perez <fperez@colorado.edu>
2266 2005-05-13 Fernando Perez <fperez@colorado.edu>
2261
2267
2262 * ipython.1: Added info about Qt to manpage, and threads warning
2268 * ipython.1: Added info about Qt to manpage, and threads warning
2263 to usage page (invoked with --help).
2269 to usage page (invoked with --help).
2264
2270
2265 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2271 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2266 new matcher (it goes at the end of the priority list) to do
2272 new matcher (it goes at the end of the priority list) to do
2267 tab-completion on named function arguments. Submitted by George
2273 tab-completion on named function arguments. Submitted by George
2268 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2274 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2269 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2275 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2270 for more details.
2276 for more details.
2271
2277
2272 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2278 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2273 SystemExit exceptions in the script being run. Thanks to a report
2279 SystemExit exceptions in the script being run. Thanks to a report
2274 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2280 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2275 producing very annoying behavior when running unit tests.
2281 producing very annoying behavior when running unit tests.
2276
2282
2277 2005-05-12 Fernando Perez <fperez@colorado.edu>
2283 2005-05-12 Fernando Perez <fperez@colorado.edu>
2278
2284
2279 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2285 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2280 which I'd broken (again) due to a changed regexp. In the process,
2286 which I'd broken (again) due to a changed regexp. In the process,
2281 added ';' as an escape to auto-quote the whole line without
2287 added ';' as an escape to auto-quote the whole line without
2282 splitting its arguments. Thanks to a report by Jerry McRae
2288 splitting its arguments. Thanks to a report by Jerry McRae
2283 <qrs0xyc02-AT-sneakemail.com>.
2289 <qrs0xyc02-AT-sneakemail.com>.
2284
2290
2285 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2291 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2286 possible crashes caused by a TokenError. Reported by Ed Schofield
2292 possible crashes caused by a TokenError. Reported by Ed Schofield
2287 <schofield-AT-ftw.at>.
2293 <schofield-AT-ftw.at>.
2288
2294
2289 2005-05-06 Fernando Perez <fperez@colorado.edu>
2295 2005-05-06 Fernando Perez <fperez@colorado.edu>
2290
2296
2291 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2297 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2292
2298
2293 2005-04-29 Fernando Perez <fperez@colorado.edu>
2299 2005-04-29 Fernando Perez <fperez@colorado.edu>
2294
2300
2295 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2301 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2296 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2302 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2297 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2303 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2298 which provides support for Qt interactive usage (similar to the
2304 which provides support for Qt interactive usage (similar to the
2299 existing one for WX and GTK). This had been often requested.
2305 existing one for WX and GTK). This had been often requested.
2300
2306
2301 2005-04-14 *** Released version 0.6.13
2307 2005-04-14 *** Released version 0.6.13
2302
2308
2303 2005-04-08 Fernando Perez <fperez@colorado.edu>
2309 2005-04-08 Fernando Perez <fperez@colorado.edu>
2304
2310
2305 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2311 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2306 from _ofind, which gets called on almost every input line. Now,
2312 from _ofind, which gets called on almost every input line. Now,
2307 we only try to get docstrings if they are actually going to be
2313 we only try to get docstrings if they are actually going to be
2308 used (the overhead of fetching unnecessary docstrings can be
2314 used (the overhead of fetching unnecessary docstrings can be
2309 noticeable for certain objects, such as Pyro proxies).
2315 noticeable for certain objects, such as Pyro proxies).
2310
2316
2311 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2317 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2312 for completers. For some reason I had been passing them the state
2318 for completers. For some reason I had been passing them the state
2313 variable, which completers never actually need, and was in
2319 variable, which completers never actually need, and was in
2314 conflict with the rlcompleter API. Custom completers ONLY need to
2320 conflict with the rlcompleter API. Custom completers ONLY need to
2315 take the text parameter.
2321 take the text parameter.
2316
2322
2317 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2323 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2318 work correctly in pysh. I've also moved all the logic which used
2324 work correctly in pysh. I've also moved all the logic which used
2319 to be in pysh.py here, which will prevent problems with future
2325 to be in pysh.py here, which will prevent problems with future
2320 upgrades. However, this time I must warn users to update their
2326 upgrades. However, this time I must warn users to update their
2321 pysh profile to include the line
2327 pysh profile to include the line
2322
2328
2323 import_all IPython.Extensions.InterpreterExec
2329 import_all IPython.Extensions.InterpreterExec
2324
2330
2325 because otherwise things won't work for them. They MUST also
2331 because otherwise things won't work for them. They MUST also
2326 delete pysh.py and the line
2332 delete pysh.py and the line
2327
2333
2328 execfile pysh.py
2334 execfile pysh.py
2329
2335
2330 from their ipythonrc-pysh.
2336 from their ipythonrc-pysh.
2331
2337
2332 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2338 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2333 robust in the face of objects whose dir() returns non-strings
2339 robust in the face of objects whose dir() returns non-strings
2334 (which it shouldn't, but some broken libs like ITK do). Thanks to
2340 (which it shouldn't, but some broken libs like ITK do). Thanks to
2335 a patch by John Hunter (implemented differently, though). Also
2341 a patch by John Hunter (implemented differently, though). Also
2336 minor improvements by using .extend instead of + on lists.
2342 minor improvements by using .extend instead of + on lists.
2337
2343
2338 * pysh.py:
2344 * pysh.py:
2339
2345
2340 2005-04-06 Fernando Perez <fperez@colorado.edu>
2346 2005-04-06 Fernando Perez <fperez@colorado.edu>
2341
2347
2342 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2348 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2343 by default, so that all users benefit from it. Those who don't
2349 by default, so that all users benefit from it. Those who don't
2344 want it can still turn it off.
2350 want it can still turn it off.
2345
2351
2346 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2352 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2347 config file, I'd forgotten about this, so users were getting it
2353 config file, I'd forgotten about this, so users were getting it
2348 off by default.
2354 off by default.
2349
2355
2350 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2356 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2351 consistency. Now magics can be called in multiline statements,
2357 consistency. Now magics can be called in multiline statements,
2352 and python variables can be expanded in magic calls via $var.
2358 and python variables can be expanded in magic calls via $var.
2353 This makes the magic system behave just like aliases or !system
2359 This makes the magic system behave just like aliases or !system
2354 calls.
2360 calls.
2355
2361
2356 2005-03-28 Fernando Perez <fperez@colorado.edu>
2362 2005-03-28 Fernando Perez <fperez@colorado.edu>
2357
2363
2358 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2364 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2359 expensive string additions for building command. Add support for
2365 expensive string additions for building command. Add support for
2360 trailing ';' when autocall is used.
2366 trailing ';' when autocall is used.
2361
2367
2362 2005-03-26 Fernando Perez <fperez@colorado.edu>
2368 2005-03-26 Fernando Perez <fperez@colorado.edu>
2363
2369
2364 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2370 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2365 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2371 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2366 ipython.el robust against prompts with any number of spaces
2372 ipython.el robust against prompts with any number of spaces
2367 (including 0) after the ':' character.
2373 (including 0) after the ':' character.
2368
2374
2369 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2375 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2370 continuation prompt, which misled users to think the line was
2376 continuation prompt, which misled users to think the line was
2371 already indented. Closes debian Bug#300847, reported to me by
2377 already indented. Closes debian Bug#300847, reported to me by
2372 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2378 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2373
2379
2374 2005-03-23 Fernando Perez <fperez@colorado.edu>
2380 2005-03-23 Fernando Perez <fperez@colorado.edu>
2375
2381
2376 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2382 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2377 properly aligned if they have embedded newlines.
2383 properly aligned if they have embedded newlines.
2378
2384
2379 * IPython/iplib.py (runlines): Add a public method to expose
2385 * IPython/iplib.py (runlines): Add a public method to expose
2380 IPython's code execution machinery, so that users can run strings
2386 IPython's code execution machinery, so that users can run strings
2381 as if they had been typed at the prompt interactively.
2387 as if they had been typed at the prompt interactively.
2382 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2388 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2383 methods which can call the system shell, but with python variable
2389 methods which can call the system shell, but with python variable
2384 expansion. The three such methods are: __IPYTHON__.system,
2390 expansion. The three such methods are: __IPYTHON__.system,
2385 .getoutput and .getoutputerror. These need to be documented in a
2391 .getoutput and .getoutputerror. These need to be documented in a
2386 'public API' section (to be written) of the manual.
2392 'public API' section (to be written) of the manual.
2387
2393
2388 2005-03-20 Fernando Perez <fperez@colorado.edu>
2394 2005-03-20 Fernando Perez <fperez@colorado.edu>
2389
2395
2390 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2396 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2391 for custom exception handling. This is quite powerful, and it
2397 for custom exception handling. This is quite powerful, and it
2392 allows for user-installable exception handlers which can trap
2398 allows for user-installable exception handlers which can trap
2393 custom exceptions at runtime and treat them separately from
2399 custom exceptions at runtime and treat them separately from
2394 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2400 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2395 Mantegazza <mantegazza-AT-ill.fr>.
2401 Mantegazza <mantegazza-AT-ill.fr>.
2396 (InteractiveShell.set_custom_completer): public API function to
2402 (InteractiveShell.set_custom_completer): public API function to
2397 add new completers at runtime.
2403 add new completers at runtime.
2398
2404
2399 2005-03-19 Fernando Perez <fperez@colorado.edu>
2405 2005-03-19 Fernando Perez <fperez@colorado.edu>
2400
2406
2401 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2407 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2402 allow objects which provide their docstrings via non-standard
2408 allow objects which provide their docstrings via non-standard
2403 mechanisms (like Pyro proxies) to still be inspected by ipython's
2409 mechanisms (like Pyro proxies) to still be inspected by ipython's
2404 ? system.
2410 ? system.
2405
2411
2406 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2412 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2407 automatic capture system. I tried quite hard to make it work
2413 automatic capture system. I tried quite hard to make it work
2408 reliably, and simply failed. I tried many combinations with the
2414 reliably, and simply failed. I tried many combinations with the
2409 subprocess module, but eventually nothing worked in all needed
2415 subprocess module, but eventually nothing worked in all needed
2410 cases (not blocking stdin for the child, duplicating stdout
2416 cases (not blocking stdin for the child, duplicating stdout
2411 without blocking, etc). The new %sc/%sx still do capture to these
2417 without blocking, etc). The new %sc/%sx still do capture to these
2412 magical list/string objects which make shell use much more
2418 magical list/string objects which make shell use much more
2413 conveninent, so not all is lost.
2419 conveninent, so not all is lost.
2414
2420
2415 XXX - FIX MANUAL for the change above!
2421 XXX - FIX MANUAL for the change above!
2416
2422
2417 (runsource): I copied code.py's runsource() into ipython to modify
2423 (runsource): I copied code.py's runsource() into ipython to modify
2418 it a bit. Now the code object and source to be executed are
2424 it a bit. Now the code object and source to be executed are
2419 stored in ipython. This makes this info accessible to third-party
2425 stored in ipython. This makes this info accessible to third-party
2420 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2426 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2421 Mantegazza <mantegazza-AT-ill.fr>.
2427 Mantegazza <mantegazza-AT-ill.fr>.
2422
2428
2423 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2429 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2424 history-search via readline (like C-p/C-n). I'd wanted this for a
2430 history-search via readline (like C-p/C-n). I'd wanted this for a
2425 long time, but only recently found out how to do it. For users
2431 long time, but only recently found out how to do it. For users
2426 who already have their ipythonrc files made and want this, just
2432 who already have their ipythonrc files made and want this, just
2427 add:
2433 add:
2428
2434
2429 readline_parse_and_bind "\e[A": history-search-backward
2435 readline_parse_and_bind "\e[A": history-search-backward
2430 readline_parse_and_bind "\e[B": history-search-forward
2436 readline_parse_and_bind "\e[B": history-search-forward
2431
2437
2432 2005-03-18 Fernando Perez <fperez@colorado.edu>
2438 2005-03-18 Fernando Perez <fperez@colorado.edu>
2433
2439
2434 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2440 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2435 LSString and SList classes which allow transparent conversions
2441 LSString and SList classes which allow transparent conversions
2436 between list mode and whitespace-separated string.
2442 between list mode and whitespace-separated string.
2437 (magic_r): Fix recursion problem in %r.
2443 (magic_r): Fix recursion problem in %r.
2438
2444
2439 * IPython/genutils.py (LSString): New class to be used for
2445 * IPython/genutils.py (LSString): New class to be used for
2440 automatic storage of the results of all alias/system calls in _o
2446 automatic storage of the results of all alias/system calls in _o
2441 and _e (stdout/err). These provide a .l/.list attribute which
2447 and _e (stdout/err). These provide a .l/.list attribute which
2442 does automatic splitting on newlines. This means that for most
2448 does automatic splitting on newlines. This means that for most
2443 uses, you'll never need to do capturing of output with %sc/%sx
2449 uses, you'll never need to do capturing of output with %sc/%sx
2444 anymore, since ipython keeps this always done for you. Note that
2450 anymore, since ipython keeps this always done for you. Note that
2445 only the LAST results are stored, the _o/e variables are
2451 only the LAST results are stored, the _o/e variables are
2446 overwritten on each call. If you need to save their contents
2452 overwritten on each call. If you need to save their contents
2447 further, simply bind them to any other name.
2453 further, simply bind them to any other name.
2448
2454
2449 2005-03-17 Fernando Perez <fperez@colorado.edu>
2455 2005-03-17 Fernando Perez <fperez@colorado.edu>
2450
2456
2451 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2457 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2452 prompt namespace handling.
2458 prompt namespace handling.
2453
2459
2454 2005-03-16 Fernando Perez <fperez@colorado.edu>
2460 2005-03-16 Fernando Perez <fperez@colorado.edu>
2455
2461
2456 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2462 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2457 classic prompts to be '>>> ' (final space was missing, and it
2463 classic prompts to be '>>> ' (final space was missing, and it
2458 trips the emacs python mode).
2464 trips the emacs python mode).
2459 (BasePrompt.__str__): Added safe support for dynamic prompt
2465 (BasePrompt.__str__): Added safe support for dynamic prompt
2460 strings. Now you can set your prompt string to be '$x', and the
2466 strings. Now you can set your prompt string to be '$x', and the
2461 value of x will be printed from your interactive namespace. The
2467 value of x will be printed from your interactive namespace. The
2462 interpolation syntax includes the full Itpl support, so
2468 interpolation syntax includes the full Itpl support, so
2463 ${foo()+x+bar()} is a valid prompt string now, and the function
2469 ${foo()+x+bar()} is a valid prompt string now, and the function
2464 calls will be made at runtime.
2470 calls will be made at runtime.
2465
2471
2466 2005-03-15 Fernando Perez <fperez@colorado.edu>
2472 2005-03-15 Fernando Perez <fperez@colorado.edu>
2467
2473
2468 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2474 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2469 avoid name clashes in pylab. %hist still works, it just forwards
2475 avoid name clashes in pylab. %hist still works, it just forwards
2470 the call to %history.
2476 the call to %history.
2471
2477
2472 2005-03-02 *** Released version 0.6.12
2478 2005-03-02 *** Released version 0.6.12
2473
2479
2474 2005-03-02 Fernando Perez <fperez@colorado.edu>
2480 2005-03-02 Fernando Perez <fperez@colorado.edu>
2475
2481
2476 * IPython/iplib.py (handle_magic): log magic calls properly as
2482 * IPython/iplib.py (handle_magic): log magic calls properly as
2477 ipmagic() function calls.
2483 ipmagic() function calls.
2478
2484
2479 * IPython/Magic.py (magic_time): Improved %time to support
2485 * IPython/Magic.py (magic_time): Improved %time to support
2480 statements and provide wall-clock as well as CPU time.
2486 statements and provide wall-clock as well as CPU time.
2481
2487
2482 2005-02-27 Fernando Perez <fperez@colorado.edu>
2488 2005-02-27 Fernando Perez <fperez@colorado.edu>
2483
2489
2484 * IPython/hooks.py: New hooks module, to expose user-modifiable
2490 * IPython/hooks.py: New hooks module, to expose user-modifiable
2485 IPython functionality in a clean manner. For now only the editor
2491 IPython functionality in a clean manner. For now only the editor
2486 hook is actually written, and other thigns which I intend to turn
2492 hook is actually written, and other thigns which I intend to turn
2487 into proper hooks aren't yet there. The display and prefilter
2493 into proper hooks aren't yet there. The display and prefilter
2488 stuff, for example, should be hooks. But at least now the
2494 stuff, for example, should be hooks. But at least now the
2489 framework is in place, and the rest can be moved here with more
2495 framework is in place, and the rest can be moved here with more
2490 time later. IPython had had a .hooks variable for a long time for
2496 time later. IPython had had a .hooks variable for a long time for
2491 this purpose, but I'd never actually used it for anything.
2497 this purpose, but I'd never actually used it for anything.
2492
2498
2493 2005-02-26 Fernando Perez <fperez@colorado.edu>
2499 2005-02-26 Fernando Perez <fperez@colorado.edu>
2494
2500
2495 * IPython/ipmaker.py (make_IPython): make the default ipython
2501 * IPython/ipmaker.py (make_IPython): make the default ipython
2496 directory be called _ipython under win32, to follow more the
2502 directory be called _ipython under win32, to follow more the
2497 naming peculiarities of that platform (where buggy software like
2503 naming peculiarities of that platform (where buggy software like
2498 Visual Sourcesafe breaks with .named directories). Reported by
2504 Visual Sourcesafe breaks with .named directories). Reported by
2499 Ville Vainio.
2505 Ville Vainio.
2500
2506
2501 2005-02-23 Fernando Perez <fperez@colorado.edu>
2507 2005-02-23 Fernando Perez <fperez@colorado.edu>
2502
2508
2503 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2509 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2504 auto_aliases for win32 which were causing problems. Users can
2510 auto_aliases for win32 which were causing problems. Users can
2505 define the ones they personally like.
2511 define the ones they personally like.
2506
2512
2507 2005-02-21 Fernando Perez <fperez@colorado.edu>
2513 2005-02-21 Fernando Perez <fperez@colorado.edu>
2508
2514
2509 * IPython/Magic.py (magic_time): new magic to time execution of
2515 * IPython/Magic.py (magic_time): new magic to time execution of
2510 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2516 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2511
2517
2512 2005-02-19 Fernando Perez <fperez@colorado.edu>
2518 2005-02-19 Fernando Perez <fperez@colorado.edu>
2513
2519
2514 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2520 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2515 into keys (for prompts, for example).
2521 into keys (for prompts, for example).
2516
2522
2517 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2523 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2518 prompts in case users want them. This introduces a small behavior
2524 prompts in case users want them. This introduces a small behavior
2519 change: ipython does not automatically add a space to all prompts
2525 change: ipython does not automatically add a space to all prompts
2520 anymore. To get the old prompts with a space, users should add it
2526 anymore. To get the old prompts with a space, users should add it
2521 manually to their ipythonrc file, so for example prompt_in1 should
2527 manually to their ipythonrc file, so for example prompt_in1 should
2522 now read 'In [\#]: ' instead of 'In [\#]:'.
2528 now read 'In [\#]: ' instead of 'In [\#]:'.
2523 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2529 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2524 file) to control left-padding of secondary prompts.
2530 file) to control left-padding of secondary prompts.
2525
2531
2526 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2532 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2527 the profiler can't be imported. Fix for Debian, which removed
2533 the profiler can't be imported. Fix for Debian, which removed
2528 profile.py because of License issues. I applied a slightly
2534 profile.py because of License issues. I applied a slightly
2529 modified version of the original Debian patch at
2535 modified version of the original Debian patch at
2530 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2536 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2531
2537
2532 2005-02-17 Fernando Perez <fperez@colorado.edu>
2538 2005-02-17 Fernando Perez <fperez@colorado.edu>
2533
2539
2534 * IPython/genutils.py (native_line_ends): Fix bug which would
2540 * IPython/genutils.py (native_line_ends): Fix bug which would
2535 cause improper line-ends under win32 b/c I was not opening files
2541 cause improper line-ends under win32 b/c I was not opening files
2536 in binary mode. Bug report and fix thanks to Ville.
2542 in binary mode. Bug report and fix thanks to Ville.
2537
2543
2538 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2544 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2539 trying to catch spurious foo[1] autocalls. My fix actually broke
2545 trying to catch spurious foo[1] autocalls. My fix actually broke
2540 ',/' autoquote/call with explicit escape (bad regexp).
2546 ',/' autoquote/call with explicit escape (bad regexp).
2541
2547
2542 2005-02-15 *** Released version 0.6.11
2548 2005-02-15 *** Released version 0.6.11
2543
2549
2544 2005-02-14 Fernando Perez <fperez@colorado.edu>
2550 2005-02-14 Fernando Perez <fperez@colorado.edu>
2545
2551
2546 * IPython/background_jobs.py: New background job management
2552 * IPython/background_jobs.py: New background job management
2547 subsystem. This is implemented via a new set of classes, and
2553 subsystem. This is implemented via a new set of classes, and
2548 IPython now provides a builtin 'jobs' object for background job
2554 IPython now provides a builtin 'jobs' object for background job
2549 execution. A convenience %bg magic serves as a lightweight
2555 execution. A convenience %bg magic serves as a lightweight
2550 frontend for starting the more common type of calls. This was
2556 frontend for starting the more common type of calls. This was
2551 inspired by discussions with B. Granger and the BackgroundCommand
2557 inspired by discussions with B. Granger and the BackgroundCommand
2552 class described in the book Python Scripting for Computational
2558 class described in the book Python Scripting for Computational
2553 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2559 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2554 (although ultimately no code from this text was used, as IPython's
2560 (although ultimately no code from this text was used, as IPython's
2555 system is a separate implementation).
2561 system is a separate implementation).
2556
2562
2557 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2563 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2558 to control the completion of single/double underscore names
2564 to control the completion of single/double underscore names
2559 separately. As documented in the example ipytonrc file, the
2565 separately. As documented in the example ipytonrc file, the
2560 readline_omit__names variable can now be set to 2, to omit even
2566 readline_omit__names variable can now be set to 2, to omit even
2561 single underscore names. Thanks to a patch by Brian Wong
2567 single underscore names. Thanks to a patch by Brian Wong
2562 <BrianWong-AT-AirgoNetworks.Com>.
2568 <BrianWong-AT-AirgoNetworks.Com>.
2563 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2569 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2564 be autocalled as foo([1]) if foo were callable. A problem for
2570 be autocalled as foo([1]) if foo were callable. A problem for
2565 things which are both callable and implement __getitem__.
2571 things which are both callable and implement __getitem__.
2566 (init_readline): Fix autoindentation for win32. Thanks to a patch
2572 (init_readline): Fix autoindentation for win32. Thanks to a patch
2567 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2573 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2568
2574
2569 2005-02-12 Fernando Perez <fperez@colorado.edu>
2575 2005-02-12 Fernando Perez <fperez@colorado.edu>
2570
2576
2571 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2577 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2572 which I had written long ago to sort out user error messages which
2578 which I had written long ago to sort out user error messages which
2573 may occur during startup. This seemed like a good idea initially,
2579 may occur during startup. This seemed like a good idea initially,
2574 but it has proven a disaster in retrospect. I don't want to
2580 but it has proven a disaster in retrospect. I don't want to
2575 change much code for now, so my fix is to set the internal 'debug'
2581 change much code for now, so my fix is to set the internal 'debug'
2576 flag to true everywhere, whose only job was precisely to control
2582 flag to true everywhere, whose only job was precisely to control
2577 this subsystem. This closes issue 28 (as well as avoiding all
2583 this subsystem. This closes issue 28 (as well as avoiding all
2578 sorts of strange hangups which occur from time to time).
2584 sorts of strange hangups which occur from time to time).
2579
2585
2580 2005-02-07 Fernando Perez <fperez@colorado.edu>
2586 2005-02-07 Fernando Perez <fperez@colorado.edu>
2581
2587
2582 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2588 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2583 previous call produced a syntax error.
2589 previous call produced a syntax error.
2584
2590
2585 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2591 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2586 classes without constructor.
2592 classes without constructor.
2587
2593
2588 2005-02-06 Fernando Perez <fperez@colorado.edu>
2594 2005-02-06 Fernando Perez <fperez@colorado.edu>
2589
2595
2590 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2596 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2591 completions with the results of each matcher, so we return results
2597 completions with the results of each matcher, so we return results
2592 to the user from all namespaces. This breaks with ipython
2598 to the user from all namespaces. This breaks with ipython
2593 tradition, but I think it's a nicer behavior. Now you get all
2599 tradition, but I think it's a nicer behavior. Now you get all
2594 possible completions listed, from all possible namespaces (python,
2600 possible completions listed, from all possible namespaces (python,
2595 filesystem, magics...) After a request by John Hunter
2601 filesystem, magics...) After a request by John Hunter
2596 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2602 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2597
2603
2598 2005-02-05 Fernando Perez <fperez@colorado.edu>
2604 2005-02-05 Fernando Perez <fperez@colorado.edu>
2599
2605
2600 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2606 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2601 the call had quote characters in it (the quotes were stripped).
2607 the call had quote characters in it (the quotes were stripped).
2602
2608
2603 2005-01-31 Fernando Perez <fperez@colorado.edu>
2609 2005-01-31 Fernando Perez <fperez@colorado.edu>
2604
2610
2605 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2611 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2606 Itpl.itpl() to make the code more robust against psyco
2612 Itpl.itpl() to make the code more robust against psyco
2607 optimizations.
2613 optimizations.
2608
2614
2609 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2615 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2610 of causing an exception. Quicker, cleaner.
2616 of causing an exception. Quicker, cleaner.
2611
2617
2612 2005-01-28 Fernando Perez <fperez@colorado.edu>
2618 2005-01-28 Fernando Perez <fperez@colorado.edu>
2613
2619
2614 * scripts/ipython_win_post_install.py (install): hardcode
2620 * scripts/ipython_win_post_install.py (install): hardcode
2615 sys.prefix+'python.exe' as the executable path. It turns out that
2621 sys.prefix+'python.exe' as the executable path. It turns out that
2616 during the post-installation run, sys.executable resolves to the
2622 during the post-installation run, sys.executable resolves to the
2617 name of the binary installer! I should report this as a distutils
2623 name of the binary installer! I should report this as a distutils
2618 bug, I think. I updated the .10 release with this tiny fix, to
2624 bug, I think. I updated the .10 release with this tiny fix, to
2619 avoid annoying the lists further.
2625 avoid annoying the lists further.
2620
2626
2621 2005-01-27 *** Released version 0.6.10
2627 2005-01-27 *** Released version 0.6.10
2622
2628
2623 2005-01-27 Fernando Perez <fperez@colorado.edu>
2629 2005-01-27 Fernando Perez <fperez@colorado.edu>
2624
2630
2625 * IPython/numutils.py (norm): Added 'inf' as optional name for
2631 * IPython/numutils.py (norm): Added 'inf' as optional name for
2626 L-infinity norm, included references to mathworld.com for vector
2632 L-infinity norm, included references to mathworld.com for vector
2627 norm definitions.
2633 norm definitions.
2628 (amin/amax): added amin/amax for array min/max. Similar to what
2634 (amin/amax): added amin/amax for array min/max. Similar to what
2629 pylab ships with after the recent reorganization of names.
2635 pylab ships with after the recent reorganization of names.
2630 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2636 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2631
2637
2632 * ipython.el: committed Alex's recent fixes and improvements.
2638 * ipython.el: committed Alex's recent fixes and improvements.
2633 Tested with python-mode from CVS, and it looks excellent. Since
2639 Tested with python-mode from CVS, and it looks excellent. Since
2634 python-mode hasn't released anything in a while, I'm temporarily
2640 python-mode hasn't released anything in a while, I'm temporarily
2635 putting a copy of today's CVS (v 4.70) of python-mode in:
2641 putting a copy of today's CVS (v 4.70) of python-mode in:
2636 http://ipython.scipy.org/tmp/python-mode.el
2642 http://ipython.scipy.org/tmp/python-mode.el
2637
2643
2638 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2644 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2639 sys.executable for the executable name, instead of assuming it's
2645 sys.executable for the executable name, instead of assuming it's
2640 called 'python.exe' (the post-installer would have produced broken
2646 called 'python.exe' (the post-installer would have produced broken
2641 setups on systems with a differently named python binary).
2647 setups on systems with a differently named python binary).
2642
2648
2643 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2649 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2644 references to os.linesep, to make the code more
2650 references to os.linesep, to make the code more
2645 platform-independent. This is also part of the win32 coloring
2651 platform-independent. This is also part of the win32 coloring
2646 fixes.
2652 fixes.
2647
2653
2648 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2654 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2649 lines, which actually cause coloring bugs because the length of
2655 lines, which actually cause coloring bugs because the length of
2650 the line is very difficult to correctly compute with embedded
2656 the line is very difficult to correctly compute with embedded
2651 escapes. This was the source of all the coloring problems under
2657 escapes. This was the source of all the coloring problems under
2652 Win32. I think that _finally_, Win32 users have a properly
2658 Win32. I think that _finally_, Win32 users have a properly
2653 working ipython in all respects. This would never have happened
2659 working ipython in all respects. This would never have happened
2654 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2660 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2655
2661
2656 2005-01-26 *** Released version 0.6.9
2662 2005-01-26 *** Released version 0.6.9
2657
2663
2658 2005-01-25 Fernando Perez <fperez@colorado.edu>
2664 2005-01-25 Fernando Perez <fperez@colorado.edu>
2659
2665
2660 * setup.py: finally, we have a true Windows installer, thanks to
2666 * setup.py: finally, we have a true Windows installer, thanks to
2661 the excellent work of Viktor Ransmayr
2667 the excellent work of Viktor Ransmayr
2662 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2668 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2663 Windows users. The setup routine is quite a bit cleaner thanks to
2669 Windows users. The setup routine is quite a bit cleaner thanks to
2664 this, and the post-install script uses the proper functions to
2670 this, and the post-install script uses the proper functions to
2665 allow a clean de-installation using the standard Windows Control
2671 allow a clean de-installation using the standard Windows Control
2666 Panel.
2672 Panel.
2667
2673
2668 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2674 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2669 environment variable under all OSes (including win32) if
2675 environment variable under all OSes (including win32) if
2670 available. This will give consistency to win32 users who have set
2676 available. This will give consistency to win32 users who have set
2671 this variable for any reason. If os.environ['HOME'] fails, the
2677 this variable for any reason. If os.environ['HOME'] fails, the
2672 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2678 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2673
2679
2674 2005-01-24 Fernando Perez <fperez@colorado.edu>
2680 2005-01-24 Fernando Perez <fperez@colorado.edu>
2675
2681
2676 * IPython/numutils.py (empty_like): add empty_like(), similar to
2682 * IPython/numutils.py (empty_like): add empty_like(), similar to
2677 zeros_like() but taking advantage of the new empty() Numeric routine.
2683 zeros_like() but taking advantage of the new empty() Numeric routine.
2678
2684
2679 2005-01-23 *** Released version 0.6.8
2685 2005-01-23 *** Released version 0.6.8
2680
2686
2681 2005-01-22 Fernando Perez <fperez@colorado.edu>
2687 2005-01-22 Fernando Perez <fperez@colorado.edu>
2682
2688
2683 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2689 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2684 automatic show() calls. After discussing things with JDH, it
2690 automatic show() calls. After discussing things with JDH, it
2685 turns out there are too many corner cases where this can go wrong.
2691 turns out there are too many corner cases where this can go wrong.
2686 It's best not to try to be 'too smart', and simply have ipython
2692 It's best not to try to be 'too smart', and simply have ipython
2687 reproduce as much as possible the default behavior of a normal
2693 reproduce as much as possible the default behavior of a normal
2688 python shell.
2694 python shell.
2689
2695
2690 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2696 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2691 line-splitting regexp and _prefilter() to avoid calling getattr()
2697 line-splitting regexp and _prefilter() to avoid calling getattr()
2692 on assignments. This closes
2698 on assignments. This closes
2693 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2699 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2694 readline uses getattr(), so a simple <TAB> keypress is still
2700 readline uses getattr(), so a simple <TAB> keypress is still
2695 enough to trigger getattr() calls on an object.
2701 enough to trigger getattr() calls on an object.
2696
2702
2697 2005-01-21 Fernando Perez <fperez@colorado.edu>
2703 2005-01-21 Fernando Perez <fperez@colorado.edu>
2698
2704
2699 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2705 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2700 docstring under pylab so it doesn't mask the original.
2706 docstring under pylab so it doesn't mask the original.
2701
2707
2702 2005-01-21 *** Released version 0.6.7
2708 2005-01-21 *** Released version 0.6.7
2703
2709
2704 2005-01-21 Fernando Perez <fperez@colorado.edu>
2710 2005-01-21 Fernando Perez <fperez@colorado.edu>
2705
2711
2706 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2712 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2707 signal handling for win32 users in multithreaded mode.
2713 signal handling for win32 users in multithreaded mode.
2708
2714
2709 2005-01-17 Fernando Perez <fperez@colorado.edu>
2715 2005-01-17 Fernando Perez <fperez@colorado.edu>
2710
2716
2711 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2717 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2712 instances with no __init__. After a crash report by Norbert Nemec
2718 instances with no __init__. After a crash report by Norbert Nemec
2713 <Norbert-AT-nemec-online.de>.
2719 <Norbert-AT-nemec-online.de>.
2714
2720
2715 2005-01-14 Fernando Perez <fperez@colorado.edu>
2721 2005-01-14 Fernando Perez <fperez@colorado.edu>
2716
2722
2717 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2723 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2718 names for verbose exceptions, when multiple dotted names and the
2724 names for verbose exceptions, when multiple dotted names and the
2719 'parent' object were present on the same line.
2725 'parent' object were present on the same line.
2720
2726
2721 2005-01-11 Fernando Perez <fperez@colorado.edu>
2727 2005-01-11 Fernando Perez <fperez@colorado.edu>
2722
2728
2723 * IPython/genutils.py (flag_calls): new utility to trap and flag
2729 * IPython/genutils.py (flag_calls): new utility to trap and flag
2724 calls in functions. I need it to clean up matplotlib support.
2730 calls in functions. I need it to clean up matplotlib support.
2725 Also removed some deprecated code in genutils.
2731 Also removed some deprecated code in genutils.
2726
2732
2727 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2733 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2728 that matplotlib scripts called with %run, which don't call show()
2734 that matplotlib scripts called with %run, which don't call show()
2729 themselves, still have their plotting windows open.
2735 themselves, still have their plotting windows open.
2730
2736
2731 2005-01-05 Fernando Perez <fperez@colorado.edu>
2737 2005-01-05 Fernando Perez <fperez@colorado.edu>
2732
2738
2733 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2739 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2734 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2740 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2735
2741
2736 2004-12-19 Fernando Perez <fperez@colorado.edu>
2742 2004-12-19 Fernando Perez <fperez@colorado.edu>
2737
2743
2738 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2744 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2739 parent_runcode, which was an eyesore. The same result can be
2745 parent_runcode, which was an eyesore. The same result can be
2740 obtained with Python's regular superclass mechanisms.
2746 obtained with Python's regular superclass mechanisms.
2741
2747
2742 2004-12-17 Fernando Perez <fperez@colorado.edu>
2748 2004-12-17 Fernando Perez <fperez@colorado.edu>
2743
2749
2744 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2750 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2745 reported by Prabhu.
2751 reported by Prabhu.
2746 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2752 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2747 sys.stderr) instead of explicitly calling sys.stderr. This helps
2753 sys.stderr) instead of explicitly calling sys.stderr. This helps
2748 maintain our I/O abstractions clean, for future GUI embeddings.
2754 maintain our I/O abstractions clean, for future GUI embeddings.
2749
2755
2750 * IPython/genutils.py (info): added new utility for sys.stderr
2756 * IPython/genutils.py (info): added new utility for sys.stderr
2751 unified info message handling (thin wrapper around warn()).
2757 unified info message handling (thin wrapper around warn()).
2752
2758
2753 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2759 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2754 composite (dotted) names on verbose exceptions.
2760 composite (dotted) names on verbose exceptions.
2755 (VerboseTB.nullrepr): harden against another kind of errors which
2761 (VerboseTB.nullrepr): harden against another kind of errors which
2756 Python's inspect module can trigger, and which were crashing
2762 Python's inspect module can trigger, and which were crashing
2757 IPython. Thanks to a report by Marco Lombardi
2763 IPython. Thanks to a report by Marco Lombardi
2758 <mlombard-AT-ma010192.hq.eso.org>.
2764 <mlombard-AT-ma010192.hq.eso.org>.
2759
2765
2760 2004-12-13 *** Released version 0.6.6
2766 2004-12-13 *** Released version 0.6.6
2761
2767
2762 2004-12-12 Fernando Perez <fperez@colorado.edu>
2768 2004-12-12 Fernando Perez <fperez@colorado.edu>
2763
2769
2764 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2770 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2765 generated by pygtk upon initialization if it was built without
2771 generated by pygtk upon initialization if it was built without
2766 threads (for matplotlib users). After a crash reported by
2772 threads (for matplotlib users). After a crash reported by
2767 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2773 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2768
2774
2769 * IPython/ipmaker.py (make_IPython): fix small bug in the
2775 * IPython/ipmaker.py (make_IPython): fix small bug in the
2770 import_some parameter for multiple imports.
2776 import_some parameter for multiple imports.
2771
2777
2772 * IPython/iplib.py (ipmagic): simplified the interface of
2778 * IPython/iplib.py (ipmagic): simplified the interface of
2773 ipmagic() to take a single string argument, just as it would be
2779 ipmagic() to take a single string argument, just as it would be
2774 typed at the IPython cmd line.
2780 typed at the IPython cmd line.
2775 (ipalias): Added new ipalias() with an interface identical to
2781 (ipalias): Added new ipalias() with an interface identical to
2776 ipmagic(). This completes exposing a pure python interface to the
2782 ipmagic(). This completes exposing a pure python interface to the
2777 alias and magic system, which can be used in loops or more complex
2783 alias and magic system, which can be used in loops or more complex
2778 code where IPython's automatic line mangling is not active.
2784 code where IPython's automatic line mangling is not active.
2779
2785
2780 * IPython/genutils.py (timing): changed interface of timing to
2786 * IPython/genutils.py (timing): changed interface of timing to
2781 simply run code once, which is the most common case. timings()
2787 simply run code once, which is the most common case. timings()
2782 remains unchanged, for the cases where you want multiple runs.
2788 remains unchanged, for the cases where you want multiple runs.
2783
2789
2784 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2790 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2785 bug where Python2.2 crashes with exec'ing code which does not end
2791 bug where Python2.2 crashes with exec'ing code which does not end
2786 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2792 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2787 before.
2793 before.
2788
2794
2789 2004-12-10 Fernando Perez <fperez@colorado.edu>
2795 2004-12-10 Fernando Perez <fperez@colorado.edu>
2790
2796
2791 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2797 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2792 -t to -T, to accomodate the new -t flag in %run (the %run and
2798 -t to -T, to accomodate the new -t flag in %run (the %run and
2793 %prun options are kind of intermixed, and it's not easy to change
2799 %prun options are kind of intermixed, and it's not easy to change
2794 this with the limitations of python's getopt).
2800 this with the limitations of python's getopt).
2795
2801
2796 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2802 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2797 the execution of scripts. It's not as fine-tuned as timeit.py,
2803 the execution of scripts. It's not as fine-tuned as timeit.py,
2798 but it works from inside ipython (and under 2.2, which lacks
2804 but it works from inside ipython (and under 2.2, which lacks
2799 timeit.py). Optionally a number of runs > 1 can be given for
2805 timeit.py). Optionally a number of runs > 1 can be given for
2800 timing very short-running code.
2806 timing very short-running code.
2801
2807
2802 * IPython/genutils.py (uniq_stable): new routine which returns a
2808 * IPython/genutils.py (uniq_stable): new routine which returns a
2803 list of unique elements in any iterable, but in stable order of
2809 list of unique elements in any iterable, but in stable order of
2804 appearance. I needed this for the ultraTB fixes, and it's a handy
2810 appearance. I needed this for the ultraTB fixes, and it's a handy
2805 utility.
2811 utility.
2806
2812
2807 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2813 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2808 dotted names in Verbose exceptions. This had been broken since
2814 dotted names in Verbose exceptions. This had been broken since
2809 the very start, now x.y will properly be printed in a Verbose
2815 the very start, now x.y will properly be printed in a Verbose
2810 traceback, instead of x being shown and y appearing always as an
2816 traceback, instead of x being shown and y appearing always as an
2811 'undefined global'. Getting this to work was a bit tricky,
2817 'undefined global'. Getting this to work was a bit tricky,
2812 because by default python tokenizers are stateless. Saved by
2818 because by default python tokenizers are stateless. Saved by
2813 python's ability to easily add a bit of state to an arbitrary
2819 python's ability to easily add a bit of state to an arbitrary
2814 function (without needing to build a full-blown callable object).
2820 function (without needing to build a full-blown callable object).
2815
2821
2816 Also big cleanup of this code, which had horrendous runtime
2822 Also big cleanup of this code, which had horrendous runtime
2817 lookups of zillions of attributes for colorization. Moved all
2823 lookups of zillions of attributes for colorization. Moved all
2818 this code into a few templates, which make it cleaner and quicker.
2824 this code into a few templates, which make it cleaner and quicker.
2819
2825
2820 Printout quality was also improved for Verbose exceptions: one
2826 Printout quality was also improved for Verbose exceptions: one
2821 variable per line, and memory addresses are printed (this can be
2827 variable per line, and memory addresses are printed (this can be
2822 quite handy in nasty debugging situations, which is what Verbose
2828 quite handy in nasty debugging situations, which is what Verbose
2823 is for).
2829 is for).
2824
2830
2825 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2831 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2826 the command line as scripts to be loaded by embedded instances.
2832 the command line as scripts to be loaded by embedded instances.
2827 Doing so has the potential for an infinite recursion if there are
2833 Doing so has the potential for an infinite recursion if there are
2828 exceptions thrown in the process. This fixes a strange crash
2834 exceptions thrown in the process. This fixes a strange crash
2829 reported by Philippe MULLER <muller-AT-irit.fr>.
2835 reported by Philippe MULLER <muller-AT-irit.fr>.
2830
2836
2831 2004-12-09 Fernando Perez <fperez@colorado.edu>
2837 2004-12-09 Fernando Perez <fperez@colorado.edu>
2832
2838
2833 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2839 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2834 to reflect new names in matplotlib, which now expose the
2840 to reflect new names in matplotlib, which now expose the
2835 matlab-compatible interface via a pylab module instead of the
2841 matlab-compatible interface via a pylab module instead of the
2836 'matlab' name. The new code is backwards compatible, so users of
2842 'matlab' name. The new code is backwards compatible, so users of
2837 all matplotlib versions are OK. Patch by J. Hunter.
2843 all matplotlib versions are OK. Patch by J. Hunter.
2838
2844
2839 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2845 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2840 of __init__ docstrings for instances (class docstrings are already
2846 of __init__ docstrings for instances (class docstrings are already
2841 automatically printed). Instances with customized docstrings
2847 automatically printed). Instances with customized docstrings
2842 (indep. of the class) are also recognized and all 3 separate
2848 (indep. of the class) are also recognized and all 3 separate
2843 docstrings are printed (instance, class, constructor). After some
2849 docstrings are printed (instance, class, constructor). After some
2844 comments/suggestions by J. Hunter.
2850 comments/suggestions by J. Hunter.
2845
2851
2846 2004-12-05 Fernando Perez <fperez@colorado.edu>
2852 2004-12-05 Fernando Perez <fperez@colorado.edu>
2847
2853
2848 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2854 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2849 warnings when tab-completion fails and triggers an exception.
2855 warnings when tab-completion fails and triggers an exception.
2850
2856
2851 2004-12-03 Fernando Perez <fperez@colorado.edu>
2857 2004-12-03 Fernando Perez <fperez@colorado.edu>
2852
2858
2853 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2859 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2854 be triggered when using 'run -p'. An incorrect option flag was
2860 be triggered when using 'run -p'. An incorrect option flag was
2855 being set ('d' instead of 'D').
2861 being set ('d' instead of 'D').
2856 (manpage): fix missing escaped \- sign.
2862 (manpage): fix missing escaped \- sign.
2857
2863
2858 2004-11-30 *** Released version 0.6.5
2864 2004-11-30 *** Released version 0.6.5
2859
2865
2860 2004-11-30 Fernando Perez <fperez@colorado.edu>
2866 2004-11-30 Fernando Perez <fperez@colorado.edu>
2861
2867
2862 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2868 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2863 setting with -d option.
2869 setting with -d option.
2864
2870
2865 * setup.py (docfiles): Fix problem where the doc glob I was using
2871 * setup.py (docfiles): Fix problem where the doc glob I was using
2866 was COMPLETELY BROKEN. It was giving the right files by pure
2872 was COMPLETELY BROKEN. It was giving the right files by pure
2867 accident, but failed once I tried to include ipython.el. Note:
2873 accident, but failed once I tried to include ipython.el. Note:
2868 glob() does NOT allow you to do exclusion on multiple endings!
2874 glob() does NOT allow you to do exclusion on multiple endings!
2869
2875
2870 2004-11-29 Fernando Perez <fperez@colorado.edu>
2876 2004-11-29 Fernando Perez <fperez@colorado.edu>
2871
2877
2872 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2878 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2873 the manpage as the source. Better formatting & consistency.
2879 the manpage as the source. Better formatting & consistency.
2874
2880
2875 * IPython/Magic.py (magic_run): Added new -d option, to run
2881 * IPython/Magic.py (magic_run): Added new -d option, to run
2876 scripts under the control of the python pdb debugger. Note that
2882 scripts under the control of the python pdb debugger. Note that
2877 this required changing the %prun option -d to -D, to avoid a clash
2883 this required changing the %prun option -d to -D, to avoid a clash
2878 (since %run must pass options to %prun, and getopt is too dumb to
2884 (since %run must pass options to %prun, and getopt is too dumb to
2879 handle options with string values with embedded spaces). Thanks
2885 handle options with string values with embedded spaces). Thanks
2880 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2886 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2881 (magic_who_ls): added type matching to %who and %whos, so that one
2887 (magic_who_ls): added type matching to %who and %whos, so that one
2882 can filter their output to only include variables of certain
2888 can filter their output to only include variables of certain
2883 types. Another suggestion by Matthew.
2889 types. Another suggestion by Matthew.
2884 (magic_whos): Added memory summaries in kb and Mb for arrays.
2890 (magic_whos): Added memory summaries in kb and Mb for arrays.
2885 (magic_who): Improve formatting (break lines every 9 vars).
2891 (magic_who): Improve formatting (break lines every 9 vars).
2886
2892
2887 2004-11-28 Fernando Perez <fperez@colorado.edu>
2893 2004-11-28 Fernando Perez <fperez@colorado.edu>
2888
2894
2889 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2895 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2890 cache when empty lines were present.
2896 cache when empty lines were present.
2891
2897
2892 2004-11-24 Fernando Perez <fperez@colorado.edu>
2898 2004-11-24 Fernando Perez <fperez@colorado.edu>
2893
2899
2894 * IPython/usage.py (__doc__): document the re-activated threading
2900 * IPython/usage.py (__doc__): document the re-activated threading
2895 options for WX and GTK.
2901 options for WX and GTK.
2896
2902
2897 2004-11-23 Fernando Perez <fperez@colorado.edu>
2903 2004-11-23 Fernando Perez <fperez@colorado.edu>
2898
2904
2899 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2905 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
2900 the -wthread and -gthread options, along with a new -tk one to try
2906 the -wthread and -gthread options, along with a new -tk one to try
2901 and coordinate Tk threading with wx/gtk. The tk support is very
2907 and coordinate Tk threading with wx/gtk. The tk support is very
2902 platform dependent, since it seems to require Tcl and Tk to be
2908 platform dependent, since it seems to require Tcl and Tk to be
2903 built with threads (Fedora1/2 appears NOT to have it, but in
2909 built with threads (Fedora1/2 appears NOT to have it, but in
2904 Prabhu's Debian boxes it works OK). But even with some Tk
2910 Prabhu's Debian boxes it works OK). But even with some Tk
2905 limitations, this is a great improvement.
2911 limitations, this is a great improvement.
2906
2912
2907 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2913 * IPython/Prompts.py (prompt_specials_color): Added \t for time
2908 info in user prompts. Patch by Prabhu.
2914 info in user prompts. Patch by Prabhu.
2909
2915
2910 2004-11-18 Fernando Perez <fperez@colorado.edu>
2916 2004-11-18 Fernando Perez <fperez@colorado.edu>
2911
2917
2912 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2918 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
2913 EOFErrors and bail, to avoid infinite loops if a non-terminating
2919 EOFErrors and bail, to avoid infinite loops if a non-terminating
2914 file is fed into ipython. Patch submitted in issue 19 by user,
2920 file is fed into ipython. Patch submitted in issue 19 by user,
2915 many thanks.
2921 many thanks.
2916
2922
2917 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2923 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
2918 autoquote/parens in continuation prompts, which can cause lots of
2924 autoquote/parens in continuation prompts, which can cause lots of
2919 problems. Closes roundup issue 20.
2925 problems. Closes roundup issue 20.
2920
2926
2921 2004-11-17 Fernando Perez <fperez@colorado.edu>
2927 2004-11-17 Fernando Perez <fperez@colorado.edu>
2922
2928
2923 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2929 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
2924 reported as debian bug #280505. I'm not sure my local changelog
2930 reported as debian bug #280505. I'm not sure my local changelog
2925 entry has the proper debian format (Jack?).
2931 entry has the proper debian format (Jack?).
2926
2932
2927 2004-11-08 *** Released version 0.6.4
2933 2004-11-08 *** Released version 0.6.4
2928
2934
2929 2004-11-08 Fernando Perez <fperez@colorado.edu>
2935 2004-11-08 Fernando Perez <fperez@colorado.edu>
2930
2936
2931 * IPython/iplib.py (init_readline): Fix exit message for Windows
2937 * IPython/iplib.py (init_readline): Fix exit message for Windows
2932 when readline is active. Thanks to a report by Eric Jones
2938 when readline is active. Thanks to a report by Eric Jones
2933 <eric-AT-enthought.com>.
2939 <eric-AT-enthought.com>.
2934
2940
2935 2004-11-07 Fernando Perez <fperez@colorado.edu>
2941 2004-11-07 Fernando Perez <fperez@colorado.edu>
2936
2942
2937 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2943 * IPython/genutils.py (page): Add a trap for OSError exceptions,
2938 sometimes seen by win2k/cygwin users.
2944 sometimes seen by win2k/cygwin users.
2939
2945
2940 2004-11-06 Fernando Perez <fperez@colorado.edu>
2946 2004-11-06 Fernando Perez <fperez@colorado.edu>
2941
2947
2942 * IPython/iplib.py (interact): Change the handling of %Exit from
2948 * IPython/iplib.py (interact): Change the handling of %Exit from
2943 trying to propagate a SystemExit to an internal ipython flag.
2949 trying to propagate a SystemExit to an internal ipython flag.
2944 This is less elegant than using Python's exception mechanism, but
2950 This is less elegant than using Python's exception mechanism, but
2945 I can't get that to work reliably with threads, so under -pylab
2951 I can't get that to work reliably with threads, so under -pylab
2946 %Exit was hanging IPython. Cross-thread exception handling is
2952 %Exit was hanging IPython. Cross-thread exception handling is
2947 really a bitch. Thaks to a bug report by Stephen Walton
2953 really a bitch. Thaks to a bug report by Stephen Walton
2948 <stephen.walton-AT-csun.edu>.
2954 <stephen.walton-AT-csun.edu>.
2949
2955
2950 2004-11-04 Fernando Perez <fperez@colorado.edu>
2956 2004-11-04 Fernando Perez <fperez@colorado.edu>
2951
2957
2952 * IPython/iplib.py (raw_input_original): store a pointer to the
2958 * IPython/iplib.py (raw_input_original): store a pointer to the
2953 true raw_input to harden against code which can modify it
2959 true raw_input to harden against code which can modify it
2954 (wx.py.PyShell does this and would otherwise crash ipython).
2960 (wx.py.PyShell does this and would otherwise crash ipython).
2955 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2961 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
2956
2962
2957 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2963 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
2958 Ctrl-C problem, which does not mess up the input line.
2964 Ctrl-C problem, which does not mess up the input line.
2959
2965
2960 2004-11-03 Fernando Perez <fperez@colorado.edu>
2966 2004-11-03 Fernando Perez <fperez@colorado.edu>
2961
2967
2962 * IPython/Release.py: Changed licensing to BSD, in all files.
2968 * IPython/Release.py: Changed licensing to BSD, in all files.
2963 (name): lowercase name for tarball/RPM release.
2969 (name): lowercase name for tarball/RPM release.
2964
2970
2965 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2971 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
2966 use throughout ipython.
2972 use throughout ipython.
2967
2973
2968 * IPython/Magic.py (Magic._ofind): Switch to using the new
2974 * IPython/Magic.py (Magic._ofind): Switch to using the new
2969 OInspect.getdoc() function.
2975 OInspect.getdoc() function.
2970
2976
2971 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2977 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
2972 of the line currently being canceled via Ctrl-C. It's extremely
2978 of the line currently being canceled via Ctrl-C. It's extremely
2973 ugly, but I don't know how to do it better (the problem is one of
2979 ugly, but I don't know how to do it better (the problem is one of
2974 handling cross-thread exceptions).
2980 handling cross-thread exceptions).
2975
2981
2976 2004-10-28 Fernando Perez <fperez@colorado.edu>
2982 2004-10-28 Fernando Perez <fperez@colorado.edu>
2977
2983
2978 * IPython/Shell.py (signal_handler): add signal handlers to trap
2984 * IPython/Shell.py (signal_handler): add signal handlers to trap
2979 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2985 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
2980 report by Francesc Alted.
2986 report by Francesc Alted.
2981
2987
2982 2004-10-21 Fernando Perez <fperez@colorado.edu>
2988 2004-10-21 Fernando Perez <fperez@colorado.edu>
2983
2989
2984 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2990 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
2985 to % for pysh syntax extensions.
2991 to % for pysh syntax extensions.
2986
2992
2987 2004-10-09 Fernando Perez <fperez@colorado.edu>
2993 2004-10-09 Fernando Perez <fperez@colorado.edu>
2988
2994
2989 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2995 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
2990 arrays to print a more useful summary, without calling str(arr).
2996 arrays to print a more useful summary, without calling str(arr).
2991 This avoids the problem of extremely lengthy computations which
2997 This avoids the problem of extremely lengthy computations which
2992 occur if arr is large, and appear to the user as a system lockup
2998 occur if arr is large, and appear to the user as a system lockup
2993 with 100% cpu activity. After a suggestion by Kristian Sandberg
2999 with 100% cpu activity. After a suggestion by Kristian Sandberg
2994 <Kristian.Sandberg@colorado.edu>.
3000 <Kristian.Sandberg@colorado.edu>.
2995 (Magic.__init__): fix bug in global magic escapes not being
3001 (Magic.__init__): fix bug in global magic escapes not being
2996 correctly set.
3002 correctly set.
2997
3003
2998 2004-10-08 Fernando Perez <fperez@colorado.edu>
3004 2004-10-08 Fernando Perez <fperez@colorado.edu>
2999
3005
3000 * IPython/Magic.py (__license__): change to absolute imports of
3006 * IPython/Magic.py (__license__): change to absolute imports of
3001 ipython's own internal packages, to start adapting to the absolute
3007 ipython's own internal packages, to start adapting to the absolute
3002 import requirement of PEP-328.
3008 import requirement of PEP-328.
3003
3009
3004 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3010 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3005 files, and standardize author/license marks through the Release
3011 files, and standardize author/license marks through the Release
3006 module instead of having per/file stuff (except for files with
3012 module instead of having per/file stuff (except for files with
3007 particular licenses, like the MIT/PSF-licensed codes).
3013 particular licenses, like the MIT/PSF-licensed codes).
3008
3014
3009 * IPython/Debugger.py: remove dead code for python 2.1
3015 * IPython/Debugger.py: remove dead code for python 2.1
3010
3016
3011 2004-10-04 Fernando Perez <fperez@colorado.edu>
3017 2004-10-04 Fernando Perez <fperez@colorado.edu>
3012
3018
3013 * IPython/iplib.py (ipmagic): New function for accessing magics
3019 * IPython/iplib.py (ipmagic): New function for accessing magics
3014 via a normal python function call.
3020 via a normal python function call.
3015
3021
3016 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3022 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3017 from '@' to '%', to accomodate the new @decorator syntax of python
3023 from '@' to '%', to accomodate the new @decorator syntax of python
3018 2.4.
3024 2.4.
3019
3025
3020 2004-09-29 Fernando Perez <fperez@colorado.edu>
3026 2004-09-29 Fernando Perez <fperez@colorado.edu>
3021
3027
3022 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3028 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3023 matplotlib.use to prevent running scripts which try to switch
3029 matplotlib.use to prevent running scripts which try to switch
3024 interactive backends from within ipython. This will just crash
3030 interactive backends from within ipython. This will just crash
3025 the python interpreter, so we can't allow it (but a detailed error
3031 the python interpreter, so we can't allow it (but a detailed error
3026 is given to the user).
3032 is given to the user).
3027
3033
3028 2004-09-28 Fernando Perez <fperez@colorado.edu>
3034 2004-09-28 Fernando Perez <fperez@colorado.edu>
3029
3035
3030 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3036 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3031 matplotlib-related fixes so that using @run with non-matplotlib
3037 matplotlib-related fixes so that using @run with non-matplotlib
3032 scripts doesn't pop up spurious plot windows. This requires
3038 scripts doesn't pop up spurious plot windows. This requires
3033 matplotlib >= 0.63, where I had to make some changes as well.
3039 matplotlib >= 0.63, where I had to make some changes as well.
3034
3040
3035 * IPython/ipmaker.py (make_IPython): update version requirement to
3041 * IPython/ipmaker.py (make_IPython): update version requirement to
3036 python 2.2.
3042 python 2.2.
3037
3043
3038 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3044 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3039 banner arg for embedded customization.
3045 banner arg for embedded customization.
3040
3046
3041 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3047 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3042 explicit uses of __IP as the IPython's instance name. Now things
3048 explicit uses of __IP as the IPython's instance name. Now things
3043 are properly handled via the shell.name value. The actual code
3049 are properly handled via the shell.name value. The actual code
3044 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3050 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3045 is much better than before. I'll clean things completely when the
3051 is much better than before. I'll clean things completely when the
3046 magic stuff gets a real overhaul.
3052 magic stuff gets a real overhaul.
3047
3053
3048 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3054 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3049 minor changes to debian dir.
3055 minor changes to debian dir.
3050
3056
3051 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3057 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3052 pointer to the shell itself in the interactive namespace even when
3058 pointer to the shell itself in the interactive namespace even when
3053 a user-supplied dict is provided. This is needed for embedding
3059 a user-supplied dict is provided. This is needed for embedding
3054 purposes (found by tests with Michel Sanner).
3060 purposes (found by tests with Michel Sanner).
3055
3061
3056 2004-09-27 Fernando Perez <fperez@colorado.edu>
3062 2004-09-27 Fernando Perez <fperez@colorado.edu>
3057
3063
3058 * IPython/UserConfig/ipythonrc: remove []{} from
3064 * IPython/UserConfig/ipythonrc: remove []{} from
3059 readline_remove_delims, so that things like [modname.<TAB> do
3065 readline_remove_delims, so that things like [modname.<TAB> do
3060 proper completion. This disables [].TAB, but that's a less common
3066 proper completion. This disables [].TAB, but that's a less common
3061 case than module names in list comprehensions, for example.
3067 case than module names in list comprehensions, for example.
3062 Thanks to a report by Andrea Riciputi.
3068 Thanks to a report by Andrea Riciputi.
3063
3069
3064 2004-09-09 Fernando Perez <fperez@colorado.edu>
3070 2004-09-09 Fernando Perez <fperez@colorado.edu>
3065
3071
3066 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3072 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3067 blocking problems in win32 and osx. Fix by John.
3073 blocking problems in win32 and osx. Fix by John.
3068
3074
3069 2004-09-08 Fernando Perez <fperez@colorado.edu>
3075 2004-09-08 Fernando Perez <fperez@colorado.edu>
3070
3076
3071 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3077 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3072 for Win32 and OSX. Fix by John Hunter.
3078 for Win32 and OSX. Fix by John Hunter.
3073
3079
3074 2004-08-30 *** Released version 0.6.3
3080 2004-08-30 *** Released version 0.6.3
3075
3081
3076 2004-08-30 Fernando Perez <fperez@colorado.edu>
3082 2004-08-30 Fernando Perez <fperez@colorado.edu>
3077
3083
3078 * setup.py (isfile): Add manpages to list of dependent files to be
3084 * setup.py (isfile): Add manpages to list of dependent files to be
3079 updated.
3085 updated.
3080
3086
3081 2004-08-27 Fernando Perez <fperez@colorado.edu>
3087 2004-08-27 Fernando Perez <fperez@colorado.edu>
3082
3088
3083 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3089 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3084 for now. They don't really work with standalone WX/GTK code
3090 for now. They don't really work with standalone WX/GTK code
3085 (though matplotlib IS working fine with both of those backends).
3091 (though matplotlib IS working fine with both of those backends).
3086 This will neeed much more testing. I disabled most things with
3092 This will neeed much more testing. I disabled most things with
3087 comments, so turning it back on later should be pretty easy.
3093 comments, so turning it back on later should be pretty easy.
3088
3094
3089 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3095 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3090 autocalling of expressions like r'foo', by modifying the line
3096 autocalling of expressions like r'foo', by modifying the line
3091 split regexp. Closes
3097 split regexp. Closes
3092 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3098 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3093 Riley <ipythonbugs-AT-sabi.net>.
3099 Riley <ipythonbugs-AT-sabi.net>.
3094 (InteractiveShell.mainloop): honor --nobanner with banner
3100 (InteractiveShell.mainloop): honor --nobanner with banner
3095 extensions.
3101 extensions.
3096
3102
3097 * IPython/Shell.py: Significant refactoring of all classes, so
3103 * IPython/Shell.py: Significant refactoring of all classes, so
3098 that we can really support ALL matplotlib backends and threading
3104 that we can really support ALL matplotlib backends and threading
3099 models (John spotted a bug with Tk which required this). Now we
3105 models (John spotted a bug with Tk which required this). Now we
3100 should support single-threaded, WX-threads and GTK-threads, both
3106 should support single-threaded, WX-threads and GTK-threads, both
3101 for generic code and for matplotlib.
3107 for generic code and for matplotlib.
3102
3108
3103 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3109 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3104 -pylab, to simplify things for users. Will also remove the pylab
3110 -pylab, to simplify things for users. Will also remove the pylab
3105 profile, since now all of matplotlib configuration is directly
3111 profile, since now all of matplotlib configuration is directly
3106 handled here. This also reduces startup time.
3112 handled here. This also reduces startup time.
3107
3113
3108 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3114 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3109 shell wasn't being correctly called. Also in IPShellWX.
3115 shell wasn't being correctly called. Also in IPShellWX.
3110
3116
3111 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3117 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3112 fine-tune banner.
3118 fine-tune banner.
3113
3119
3114 * IPython/numutils.py (spike): Deprecate these spike functions,
3120 * IPython/numutils.py (spike): Deprecate these spike functions,
3115 delete (long deprecated) gnuplot_exec handler.
3121 delete (long deprecated) gnuplot_exec handler.
3116
3122
3117 2004-08-26 Fernando Perez <fperez@colorado.edu>
3123 2004-08-26 Fernando Perez <fperez@colorado.edu>
3118
3124
3119 * ipython.1: Update for threading options, plus some others which
3125 * ipython.1: Update for threading options, plus some others which
3120 were missing.
3126 were missing.
3121
3127
3122 * IPython/ipmaker.py (__call__): Added -wthread option for
3128 * IPython/ipmaker.py (__call__): Added -wthread option for
3123 wxpython thread handling. Make sure threading options are only
3129 wxpython thread handling. Make sure threading options are only
3124 valid at the command line.
3130 valid at the command line.
3125
3131
3126 * scripts/ipython: moved shell selection into a factory function
3132 * scripts/ipython: moved shell selection into a factory function
3127 in Shell.py, to keep the starter script to a minimum.
3133 in Shell.py, to keep the starter script to a minimum.
3128
3134
3129 2004-08-25 Fernando Perez <fperez@colorado.edu>
3135 2004-08-25 Fernando Perez <fperez@colorado.edu>
3130
3136
3131 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3137 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3132 John. Along with some recent changes he made to matplotlib, the
3138 John. Along with some recent changes he made to matplotlib, the
3133 next versions of both systems should work very well together.
3139 next versions of both systems should work very well together.
3134
3140
3135 2004-08-24 Fernando Perez <fperez@colorado.edu>
3141 2004-08-24 Fernando Perez <fperez@colorado.edu>
3136
3142
3137 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3143 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3138 tried to switch the profiling to using hotshot, but I'm getting
3144 tried to switch the profiling to using hotshot, but I'm getting
3139 strange errors from prof.runctx() there. I may be misreading the
3145 strange errors from prof.runctx() there. I may be misreading the
3140 docs, but it looks weird. For now the profiling code will
3146 docs, but it looks weird. For now the profiling code will
3141 continue to use the standard profiler.
3147 continue to use the standard profiler.
3142
3148
3143 2004-08-23 Fernando Perez <fperez@colorado.edu>
3149 2004-08-23 Fernando Perez <fperez@colorado.edu>
3144
3150
3145 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3151 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3146 threaded shell, by John Hunter. It's not quite ready yet, but
3152 threaded shell, by John Hunter. It's not quite ready yet, but
3147 close.
3153 close.
3148
3154
3149 2004-08-22 Fernando Perez <fperez@colorado.edu>
3155 2004-08-22 Fernando Perez <fperez@colorado.edu>
3150
3156
3151 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3157 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3152 in Magic and ultraTB.
3158 in Magic and ultraTB.
3153
3159
3154 * ipython.1: document threading options in manpage.
3160 * ipython.1: document threading options in manpage.
3155
3161
3156 * scripts/ipython: Changed name of -thread option to -gthread,
3162 * scripts/ipython: Changed name of -thread option to -gthread,
3157 since this is GTK specific. I want to leave the door open for a
3163 since this is GTK specific. I want to leave the door open for a
3158 -wthread option for WX, which will most likely be necessary. This
3164 -wthread option for WX, which will most likely be necessary. This
3159 change affects usage and ipmaker as well.
3165 change affects usage and ipmaker as well.
3160
3166
3161 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3167 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3162 handle the matplotlib shell issues. Code by John Hunter
3168 handle the matplotlib shell issues. Code by John Hunter
3163 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3169 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3164 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3170 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3165 broken (and disabled for end users) for now, but it puts the
3171 broken (and disabled for end users) for now, but it puts the
3166 infrastructure in place.
3172 infrastructure in place.
3167
3173
3168 2004-08-21 Fernando Perez <fperez@colorado.edu>
3174 2004-08-21 Fernando Perez <fperez@colorado.edu>
3169
3175
3170 * ipythonrc-pylab: Add matplotlib support.
3176 * ipythonrc-pylab: Add matplotlib support.
3171
3177
3172 * matplotlib_config.py: new files for matplotlib support, part of
3178 * matplotlib_config.py: new files for matplotlib support, part of
3173 the pylab profile.
3179 the pylab profile.
3174
3180
3175 * IPython/usage.py (__doc__): documented the threading options.
3181 * IPython/usage.py (__doc__): documented the threading options.
3176
3182
3177 2004-08-20 Fernando Perez <fperez@colorado.edu>
3183 2004-08-20 Fernando Perez <fperez@colorado.edu>
3178
3184
3179 * ipython: Modified the main calling routine to handle the -thread
3185 * ipython: Modified the main calling routine to handle the -thread
3180 and -mpthread options. This needs to be done as a top-level hack,
3186 and -mpthread options. This needs to be done as a top-level hack,
3181 because it determines which class to instantiate for IPython
3187 because it determines which class to instantiate for IPython
3182 itself.
3188 itself.
3183
3189
3184 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3190 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3185 classes to support multithreaded GTK operation without blocking,
3191 classes to support multithreaded GTK operation without blocking,
3186 and matplotlib with all backends. This is a lot of still very
3192 and matplotlib with all backends. This is a lot of still very
3187 experimental code, and threads are tricky. So it may still have a
3193 experimental code, and threads are tricky. So it may still have a
3188 few rough edges... This code owes a lot to
3194 few rough edges... This code owes a lot to
3189 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3195 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3190 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3196 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3191 to John Hunter for all the matplotlib work.
3197 to John Hunter for all the matplotlib work.
3192
3198
3193 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3199 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3194 options for gtk thread and matplotlib support.
3200 options for gtk thread and matplotlib support.
3195
3201
3196 2004-08-16 Fernando Perez <fperez@colorado.edu>
3202 2004-08-16 Fernando Perez <fperez@colorado.edu>
3197
3203
3198 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3204 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3199 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3205 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3200 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3206 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3201
3207
3202 2004-08-11 Fernando Perez <fperez@colorado.edu>
3208 2004-08-11 Fernando Perez <fperez@colorado.edu>
3203
3209
3204 * setup.py (isfile): Fix build so documentation gets updated for
3210 * setup.py (isfile): Fix build so documentation gets updated for
3205 rpms (it was only done for .tgz builds).
3211 rpms (it was only done for .tgz builds).
3206
3212
3207 2004-08-10 Fernando Perez <fperez@colorado.edu>
3213 2004-08-10 Fernando Perez <fperez@colorado.edu>
3208
3214
3209 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3215 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3210
3216
3211 * iplib.py : Silence syntax error exceptions in tab-completion.
3217 * iplib.py : Silence syntax error exceptions in tab-completion.
3212
3218
3213 2004-08-05 Fernando Perez <fperez@colorado.edu>
3219 2004-08-05 Fernando Perez <fperez@colorado.edu>
3214
3220
3215 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3221 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3216 'color off' mark for continuation prompts. This was causing long
3222 'color off' mark for continuation prompts. This was causing long
3217 continuation lines to mis-wrap.
3223 continuation lines to mis-wrap.
3218
3224
3219 2004-08-01 Fernando Perez <fperez@colorado.edu>
3225 2004-08-01 Fernando Perez <fperez@colorado.edu>
3220
3226
3221 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3227 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3222 for building ipython to be a parameter. All this is necessary
3228 for building ipython to be a parameter. All this is necessary
3223 right now to have a multithreaded version, but this insane
3229 right now to have a multithreaded version, but this insane
3224 non-design will be cleaned up soon. For now, it's a hack that
3230 non-design will be cleaned up soon. For now, it's a hack that
3225 works.
3231 works.
3226
3232
3227 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3233 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3228 args in various places. No bugs so far, but it's a dangerous
3234 args in various places. No bugs so far, but it's a dangerous
3229 practice.
3235 practice.
3230
3236
3231 2004-07-31 Fernando Perez <fperez@colorado.edu>
3237 2004-07-31 Fernando Perez <fperez@colorado.edu>
3232
3238
3233 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3239 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3234 fix completion of files with dots in their names under most
3240 fix completion of files with dots in their names under most
3235 profiles (pysh was OK because the completion order is different).
3241 profiles (pysh was OK because the completion order is different).
3236
3242
3237 2004-07-27 Fernando Perez <fperez@colorado.edu>
3243 2004-07-27 Fernando Perez <fperez@colorado.edu>
3238
3244
3239 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3245 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3240 keywords manually, b/c the one in keyword.py was removed in python
3246 keywords manually, b/c the one in keyword.py was removed in python
3241 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3247 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3242 This is NOT a bug under python 2.3 and earlier.
3248 This is NOT a bug under python 2.3 and earlier.
3243
3249
3244 2004-07-26 Fernando Perez <fperez@colorado.edu>
3250 2004-07-26 Fernando Perez <fperez@colorado.edu>
3245
3251
3246 * IPython/ultraTB.py (VerboseTB.text): Add another
3252 * IPython/ultraTB.py (VerboseTB.text): Add another
3247 linecache.checkcache() call to try to prevent inspect.py from
3253 linecache.checkcache() call to try to prevent inspect.py from
3248 crashing under python 2.3. I think this fixes
3254 crashing under python 2.3. I think this fixes
3249 http://www.scipy.net/roundup/ipython/issue17.
3255 http://www.scipy.net/roundup/ipython/issue17.
3250
3256
3251 2004-07-26 *** Released version 0.6.2
3257 2004-07-26 *** Released version 0.6.2
3252
3258
3253 2004-07-26 Fernando Perez <fperez@colorado.edu>
3259 2004-07-26 Fernando Perez <fperez@colorado.edu>
3254
3260
3255 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3261 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3256 fail for any number.
3262 fail for any number.
3257 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3263 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3258 empty bookmarks.
3264 empty bookmarks.
3259
3265
3260 2004-07-26 *** Released version 0.6.1
3266 2004-07-26 *** Released version 0.6.1
3261
3267
3262 2004-07-26 Fernando Perez <fperez@colorado.edu>
3268 2004-07-26 Fernando Perez <fperez@colorado.edu>
3263
3269
3264 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3270 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3265
3271
3266 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3272 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3267 escaping '()[]{}' in filenames.
3273 escaping '()[]{}' in filenames.
3268
3274
3269 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3275 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3270 Python 2.2 users who lack a proper shlex.split.
3276 Python 2.2 users who lack a proper shlex.split.
3271
3277
3272 2004-07-19 Fernando Perez <fperez@colorado.edu>
3278 2004-07-19 Fernando Perez <fperez@colorado.edu>
3273
3279
3274 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3280 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3275 for reading readline's init file. I follow the normal chain:
3281 for reading readline's init file. I follow the normal chain:
3276 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3282 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3277 report by Mike Heeter. This closes
3283 report by Mike Heeter. This closes
3278 http://www.scipy.net/roundup/ipython/issue16.
3284 http://www.scipy.net/roundup/ipython/issue16.
3279
3285
3280 2004-07-18 Fernando Perez <fperez@colorado.edu>
3286 2004-07-18 Fernando Perez <fperez@colorado.edu>
3281
3287
3282 * IPython/iplib.py (__init__): Add better handling of '\' under
3288 * IPython/iplib.py (__init__): Add better handling of '\' under
3283 Win32 for filenames. After a patch by Ville.
3289 Win32 for filenames. After a patch by Ville.
3284
3290
3285 2004-07-17 Fernando Perez <fperez@colorado.edu>
3291 2004-07-17 Fernando Perez <fperez@colorado.edu>
3286
3292
3287 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3293 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3288 autocalling would be triggered for 'foo is bar' if foo is
3294 autocalling would be triggered for 'foo is bar' if foo is
3289 callable. I also cleaned up the autocall detection code to use a
3295 callable. I also cleaned up the autocall detection code to use a
3290 regexp, which is faster. Bug reported by Alexander Schmolck.
3296 regexp, which is faster. Bug reported by Alexander Schmolck.
3291
3297
3292 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3298 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3293 '?' in them would confuse the help system. Reported by Alex
3299 '?' in them would confuse the help system. Reported by Alex
3294 Schmolck.
3300 Schmolck.
3295
3301
3296 2004-07-16 Fernando Perez <fperez@colorado.edu>
3302 2004-07-16 Fernando Perez <fperez@colorado.edu>
3297
3303
3298 * IPython/GnuplotInteractive.py (__all__): added plot2.
3304 * IPython/GnuplotInteractive.py (__all__): added plot2.
3299
3305
3300 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3306 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3301 plotting dictionaries, lists or tuples of 1d arrays.
3307 plotting dictionaries, lists or tuples of 1d arrays.
3302
3308
3303 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3309 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3304 optimizations.
3310 optimizations.
3305
3311
3306 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3312 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3307 the information which was there from Janko's original IPP code:
3313 the information which was there from Janko's original IPP code:
3308
3314
3309 03.05.99 20:53 porto.ifm.uni-kiel.de
3315 03.05.99 20:53 porto.ifm.uni-kiel.de
3310 --Started changelog.
3316 --Started changelog.
3311 --make clear do what it say it does
3317 --make clear do what it say it does
3312 --added pretty output of lines from inputcache
3318 --added pretty output of lines from inputcache
3313 --Made Logger a mixin class, simplifies handling of switches
3319 --Made Logger a mixin class, simplifies handling of switches
3314 --Added own completer class. .string<TAB> expands to last history
3320 --Added own completer class. .string<TAB> expands to last history
3315 line which starts with string. The new expansion is also present
3321 line which starts with string. The new expansion is also present
3316 with Ctrl-r from the readline library. But this shows, who this
3322 with Ctrl-r from the readline library. But this shows, who this
3317 can be done for other cases.
3323 can be done for other cases.
3318 --Added convention that all shell functions should accept a
3324 --Added convention that all shell functions should accept a
3319 parameter_string This opens the door for different behaviour for
3325 parameter_string This opens the door for different behaviour for
3320 each function. @cd is a good example of this.
3326 each function. @cd is a good example of this.
3321
3327
3322 04.05.99 12:12 porto.ifm.uni-kiel.de
3328 04.05.99 12:12 porto.ifm.uni-kiel.de
3323 --added logfile rotation
3329 --added logfile rotation
3324 --added new mainloop method which freezes first the namespace
3330 --added new mainloop method which freezes first the namespace
3325
3331
3326 07.05.99 21:24 porto.ifm.uni-kiel.de
3332 07.05.99 21:24 porto.ifm.uni-kiel.de
3327 --added the docreader classes. Now there is a help system.
3333 --added the docreader classes. Now there is a help system.
3328 -This is only a first try. Currently it's not easy to put new
3334 -This is only a first try. Currently it's not easy to put new
3329 stuff in the indices. But this is the way to go. Info would be
3335 stuff in the indices. But this is the way to go. Info would be
3330 better, but HTML is every where and not everybody has an info
3336 better, but HTML is every where and not everybody has an info
3331 system installed and it's not so easy to change html-docs to info.
3337 system installed and it's not so easy to change html-docs to info.
3332 --added global logfile option
3338 --added global logfile option
3333 --there is now a hook for object inspection method pinfo needs to
3339 --there is now a hook for object inspection method pinfo needs to
3334 be provided for this. Can be reached by two '??'.
3340 be provided for this. Can be reached by two '??'.
3335
3341
3336 08.05.99 20:51 porto.ifm.uni-kiel.de
3342 08.05.99 20:51 porto.ifm.uni-kiel.de
3337 --added a README
3343 --added a README
3338 --bug in rc file. Something has changed so functions in the rc
3344 --bug in rc file. Something has changed so functions in the rc
3339 file need to reference the shell and not self. Not clear if it's a
3345 file need to reference the shell and not self. Not clear if it's a
3340 bug or feature.
3346 bug or feature.
3341 --changed rc file for new behavior
3347 --changed rc file for new behavior
3342
3348
3343 2004-07-15 Fernando Perez <fperez@colorado.edu>
3349 2004-07-15 Fernando Perez <fperez@colorado.edu>
3344
3350
3345 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3351 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3346 cache was falling out of sync in bizarre manners when multi-line
3352 cache was falling out of sync in bizarre manners when multi-line
3347 input was present. Minor optimizations and cleanup.
3353 input was present. Minor optimizations and cleanup.
3348
3354
3349 (Logger): Remove old Changelog info for cleanup. This is the
3355 (Logger): Remove old Changelog info for cleanup. This is the
3350 information which was there from Janko's original code:
3356 information which was there from Janko's original code:
3351
3357
3352 Changes to Logger: - made the default log filename a parameter
3358 Changes to Logger: - made the default log filename a parameter
3353
3359
3354 - put a check for lines beginning with !@? in log(). Needed
3360 - put a check for lines beginning with !@? in log(). Needed
3355 (even if the handlers properly log their lines) for mid-session
3361 (even if the handlers properly log their lines) for mid-session
3356 logging activation to work properly. Without this, lines logged
3362 logging activation to work properly. Without this, lines logged
3357 in mid session, which get read from the cache, would end up
3363 in mid session, which get read from the cache, would end up
3358 'bare' (with !@? in the open) in the log. Now they are caught
3364 'bare' (with !@? in the open) in the log. Now they are caught
3359 and prepended with a #.
3365 and prepended with a #.
3360
3366
3361 * IPython/iplib.py (InteractiveShell.init_readline): added check
3367 * IPython/iplib.py (InteractiveShell.init_readline): added check
3362 in case MagicCompleter fails to be defined, so we don't crash.
3368 in case MagicCompleter fails to be defined, so we don't crash.
3363
3369
3364 2004-07-13 Fernando Perez <fperez@colorado.edu>
3370 2004-07-13 Fernando Perez <fperez@colorado.edu>
3365
3371
3366 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3372 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3367 of EPS if the requested filename ends in '.eps'.
3373 of EPS if the requested filename ends in '.eps'.
3368
3374
3369 2004-07-04 Fernando Perez <fperez@colorado.edu>
3375 2004-07-04 Fernando Perez <fperez@colorado.edu>
3370
3376
3371 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3377 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3372 escaping of quotes when calling the shell.
3378 escaping of quotes when calling the shell.
3373
3379
3374 2004-07-02 Fernando Perez <fperez@colorado.edu>
3380 2004-07-02 Fernando Perez <fperez@colorado.edu>
3375
3381
3376 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3382 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3377 gettext not working because we were clobbering '_'. Fixes
3383 gettext not working because we were clobbering '_'. Fixes
3378 http://www.scipy.net/roundup/ipython/issue6.
3384 http://www.scipy.net/roundup/ipython/issue6.
3379
3385
3380 2004-07-01 Fernando Perez <fperez@colorado.edu>
3386 2004-07-01 Fernando Perez <fperez@colorado.edu>
3381
3387
3382 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3388 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3383 into @cd. Patch by Ville.
3389 into @cd. Patch by Ville.
3384
3390
3385 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3391 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3386 new function to store things after ipmaker runs. Patch by Ville.
3392 new function to store things after ipmaker runs. Patch by Ville.
3387 Eventually this will go away once ipmaker is removed and the class
3393 Eventually this will go away once ipmaker is removed and the class
3388 gets cleaned up, but for now it's ok. Key functionality here is
3394 gets cleaned up, but for now it's ok. Key functionality here is
3389 the addition of the persistent storage mechanism, a dict for
3395 the addition of the persistent storage mechanism, a dict for
3390 keeping data across sessions (for now just bookmarks, but more can
3396 keeping data across sessions (for now just bookmarks, but more can
3391 be implemented later).
3397 be implemented later).
3392
3398
3393 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3399 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3394 persistent across sections. Patch by Ville, I modified it
3400 persistent across sections. Patch by Ville, I modified it
3395 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3401 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3396 added a '-l' option to list all bookmarks.
3402 added a '-l' option to list all bookmarks.
3397
3403
3398 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3404 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3399 center for cleanup. Registered with atexit.register(). I moved
3405 center for cleanup. Registered with atexit.register(). I moved
3400 here the old exit_cleanup(). After a patch by Ville.
3406 here the old exit_cleanup(). After a patch by Ville.
3401
3407
3402 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3408 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3403 characters in the hacked shlex_split for python 2.2.
3409 characters in the hacked shlex_split for python 2.2.
3404
3410
3405 * IPython/iplib.py (file_matches): more fixes to filenames with
3411 * IPython/iplib.py (file_matches): more fixes to filenames with
3406 whitespace in them. It's not perfect, but limitations in python's
3412 whitespace in them. It's not perfect, but limitations in python's
3407 readline make it impossible to go further.
3413 readline make it impossible to go further.
3408
3414
3409 2004-06-29 Fernando Perez <fperez@colorado.edu>
3415 2004-06-29 Fernando Perez <fperez@colorado.edu>
3410
3416
3411 * IPython/iplib.py (file_matches): escape whitespace correctly in
3417 * IPython/iplib.py (file_matches): escape whitespace correctly in
3412 filename completions. Bug reported by Ville.
3418 filename completions. Bug reported by Ville.
3413
3419
3414 2004-06-28 Fernando Perez <fperez@colorado.edu>
3420 2004-06-28 Fernando Perez <fperez@colorado.edu>
3415
3421
3416 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3422 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3417 the history file will be called 'history-PROFNAME' (or just
3423 the history file will be called 'history-PROFNAME' (or just
3418 'history' if no profile is loaded). I was getting annoyed at
3424 'history' if no profile is loaded). I was getting annoyed at
3419 getting my Numerical work history clobbered by pysh sessions.
3425 getting my Numerical work history clobbered by pysh sessions.
3420
3426
3421 * IPython/iplib.py (InteractiveShell.__init__): Internal
3427 * IPython/iplib.py (InteractiveShell.__init__): Internal
3422 getoutputerror() function so that we can honor the system_verbose
3428 getoutputerror() function so that we can honor the system_verbose
3423 flag for _all_ system calls. I also added escaping of #
3429 flag for _all_ system calls. I also added escaping of #
3424 characters here to avoid confusing Itpl.
3430 characters here to avoid confusing Itpl.
3425
3431
3426 * IPython/Magic.py (shlex_split): removed call to shell in
3432 * IPython/Magic.py (shlex_split): removed call to shell in
3427 parse_options and replaced it with shlex.split(). The annoying
3433 parse_options and replaced it with shlex.split(). The annoying
3428 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3434 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3429 to backport it from 2.3, with several frail hacks (the shlex
3435 to backport it from 2.3, with several frail hacks (the shlex
3430 module is rather limited in 2.2). Thanks to a suggestion by Ville
3436 module is rather limited in 2.2). Thanks to a suggestion by Ville
3431 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3437 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3432 problem.
3438 problem.
3433
3439
3434 (Magic.magic_system_verbose): new toggle to print the actual
3440 (Magic.magic_system_verbose): new toggle to print the actual
3435 system calls made by ipython. Mainly for debugging purposes.
3441 system calls made by ipython. Mainly for debugging purposes.
3436
3442
3437 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3443 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3438 doesn't support persistence. Reported (and fix suggested) by
3444 doesn't support persistence. Reported (and fix suggested) by
3439 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3445 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3440
3446
3441 2004-06-26 Fernando Perez <fperez@colorado.edu>
3447 2004-06-26 Fernando Perez <fperez@colorado.edu>
3442
3448
3443 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3449 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3444 continue prompts.
3450 continue prompts.
3445
3451
3446 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3452 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3447 function (basically a big docstring) and a few more things here to
3453 function (basically a big docstring) and a few more things here to
3448 speedup startup. pysh.py is now very lightweight. We want because
3454 speedup startup. pysh.py is now very lightweight. We want because
3449 it gets execfile'd, while InterpreterExec gets imported, so
3455 it gets execfile'd, while InterpreterExec gets imported, so
3450 byte-compilation saves time.
3456 byte-compilation saves time.
3451
3457
3452 2004-06-25 Fernando Perez <fperez@colorado.edu>
3458 2004-06-25 Fernando Perez <fperez@colorado.edu>
3453
3459
3454 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3460 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3455 -NUM', which was recently broken.
3461 -NUM', which was recently broken.
3456
3462
3457 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3463 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3458 in multi-line input (but not !!, which doesn't make sense there).
3464 in multi-line input (but not !!, which doesn't make sense there).
3459
3465
3460 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3466 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3461 It's just too useful, and people can turn it off in the less
3467 It's just too useful, and people can turn it off in the less
3462 common cases where it's a problem.
3468 common cases where it's a problem.
3463
3469
3464 2004-06-24 Fernando Perez <fperez@colorado.edu>
3470 2004-06-24 Fernando Perez <fperez@colorado.edu>
3465
3471
3466 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3472 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3467 special syntaxes (like alias calling) is now allied in multi-line
3473 special syntaxes (like alias calling) is now allied in multi-line
3468 input. This is still _very_ experimental, but it's necessary for
3474 input. This is still _very_ experimental, but it's necessary for
3469 efficient shell usage combining python looping syntax with system
3475 efficient shell usage combining python looping syntax with system
3470 calls. For now it's restricted to aliases, I don't think it
3476 calls. For now it's restricted to aliases, I don't think it
3471 really even makes sense to have this for magics.
3477 really even makes sense to have this for magics.
3472
3478
3473 2004-06-23 Fernando Perez <fperez@colorado.edu>
3479 2004-06-23 Fernando Perez <fperez@colorado.edu>
3474
3480
3475 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3481 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3476 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3482 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3477
3483
3478 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3484 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3479 extensions under Windows (after code sent by Gary Bishop). The
3485 extensions under Windows (after code sent by Gary Bishop). The
3480 extensions considered 'executable' are stored in IPython's rc
3486 extensions considered 'executable' are stored in IPython's rc
3481 structure as win_exec_ext.
3487 structure as win_exec_ext.
3482
3488
3483 * IPython/genutils.py (shell): new function, like system() but
3489 * IPython/genutils.py (shell): new function, like system() but
3484 without return value. Very useful for interactive shell work.
3490 without return value. Very useful for interactive shell work.
3485
3491
3486 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3492 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3487 delete aliases.
3493 delete aliases.
3488
3494
3489 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3495 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3490 sure that the alias table doesn't contain python keywords.
3496 sure that the alias table doesn't contain python keywords.
3491
3497
3492 2004-06-21 Fernando Perez <fperez@colorado.edu>
3498 2004-06-21 Fernando Perez <fperez@colorado.edu>
3493
3499
3494 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3500 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3495 non-existent items are found in $PATH. Reported by Thorsten.
3501 non-existent items are found in $PATH. Reported by Thorsten.
3496
3502
3497 2004-06-20 Fernando Perez <fperez@colorado.edu>
3503 2004-06-20 Fernando Perez <fperez@colorado.edu>
3498
3504
3499 * IPython/iplib.py (complete): modified the completer so that the
3505 * IPython/iplib.py (complete): modified the completer so that the
3500 order of priorities can be easily changed at runtime.
3506 order of priorities can be easily changed at runtime.
3501
3507
3502 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3508 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3503 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3509 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3504
3510
3505 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3511 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3506 expand Python variables prepended with $ in all system calls. The
3512 expand Python variables prepended with $ in all system calls. The
3507 same was done to InteractiveShell.handle_shell_escape. Now all
3513 same was done to InteractiveShell.handle_shell_escape. Now all
3508 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3514 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3509 expansion of python variables and expressions according to the
3515 expansion of python variables and expressions according to the
3510 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3516 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3511
3517
3512 Though PEP-215 has been rejected, a similar (but simpler) one
3518 Though PEP-215 has been rejected, a similar (but simpler) one
3513 seems like it will go into Python 2.4, PEP-292 -
3519 seems like it will go into Python 2.4, PEP-292 -
3514 http://www.python.org/peps/pep-0292.html.
3520 http://www.python.org/peps/pep-0292.html.
3515
3521
3516 I'll keep the full syntax of PEP-215, since IPython has since the
3522 I'll keep the full syntax of PEP-215, since IPython has since the
3517 start used Ka-Ping Yee's reference implementation discussed there
3523 start used Ka-Ping Yee's reference implementation discussed there
3518 (Itpl), and I actually like the powerful semantics it offers.
3524 (Itpl), and I actually like the powerful semantics it offers.
3519
3525
3520 In order to access normal shell variables, the $ has to be escaped
3526 In order to access normal shell variables, the $ has to be escaped
3521 via an extra $. For example:
3527 via an extra $. For example:
3522
3528
3523 In [7]: PATH='a python variable'
3529 In [7]: PATH='a python variable'
3524
3530
3525 In [8]: !echo $PATH
3531 In [8]: !echo $PATH
3526 a python variable
3532 a python variable
3527
3533
3528 In [9]: !echo $$PATH
3534 In [9]: !echo $$PATH
3529 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3535 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3530
3536
3531 (Magic.parse_options): escape $ so the shell doesn't evaluate
3537 (Magic.parse_options): escape $ so the shell doesn't evaluate
3532 things prematurely.
3538 things prematurely.
3533
3539
3534 * IPython/iplib.py (InteractiveShell.call_alias): added the
3540 * IPython/iplib.py (InteractiveShell.call_alias): added the
3535 ability for aliases to expand python variables via $.
3541 ability for aliases to expand python variables via $.
3536
3542
3537 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3543 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3538 system, now there's a @rehash/@rehashx pair of magics. These work
3544 system, now there's a @rehash/@rehashx pair of magics. These work
3539 like the csh rehash command, and can be invoked at any time. They
3545 like the csh rehash command, and can be invoked at any time. They
3540 build a table of aliases to everything in the user's $PATH
3546 build a table of aliases to everything in the user's $PATH
3541 (@rehash uses everything, @rehashx is slower but only adds
3547 (@rehash uses everything, @rehashx is slower but only adds
3542 executable files). With this, the pysh.py-based shell profile can
3548 executable files). With this, the pysh.py-based shell profile can
3543 now simply call rehash upon startup, and full access to all
3549 now simply call rehash upon startup, and full access to all
3544 programs in the user's path is obtained.
3550 programs in the user's path is obtained.
3545
3551
3546 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3552 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3547 functionality is now fully in place. I removed the old dynamic
3553 functionality is now fully in place. I removed the old dynamic
3548 code generation based approach, in favor of a much lighter one
3554 code generation based approach, in favor of a much lighter one
3549 based on a simple dict. The advantage is that this allows me to
3555 based on a simple dict. The advantage is that this allows me to
3550 now have thousands of aliases with negligible cost (unthinkable
3556 now have thousands of aliases with negligible cost (unthinkable
3551 with the old system).
3557 with the old system).
3552
3558
3553 2004-06-19 Fernando Perez <fperez@colorado.edu>
3559 2004-06-19 Fernando Perez <fperez@colorado.edu>
3554
3560
3555 * IPython/iplib.py (__init__): extended MagicCompleter class to
3561 * IPython/iplib.py (__init__): extended MagicCompleter class to
3556 also complete (last in priority) on user aliases.
3562 also complete (last in priority) on user aliases.
3557
3563
3558 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3564 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3559 call to eval.
3565 call to eval.
3560 (ItplNS.__init__): Added a new class which functions like Itpl,
3566 (ItplNS.__init__): Added a new class which functions like Itpl,
3561 but allows configuring the namespace for the evaluation to occur
3567 but allows configuring the namespace for the evaluation to occur
3562 in.
3568 in.
3563
3569
3564 2004-06-18 Fernando Perez <fperez@colorado.edu>
3570 2004-06-18 Fernando Perez <fperez@colorado.edu>
3565
3571
3566 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3572 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3567 better message when 'exit' or 'quit' are typed (a common newbie
3573 better message when 'exit' or 'quit' are typed (a common newbie
3568 confusion).
3574 confusion).
3569
3575
3570 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3576 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3571 check for Windows users.
3577 check for Windows users.
3572
3578
3573 * IPython/iplib.py (InteractiveShell.user_setup): removed
3579 * IPython/iplib.py (InteractiveShell.user_setup): removed
3574 disabling of colors for Windows. I'll test at runtime and issue a
3580 disabling of colors for Windows. I'll test at runtime and issue a
3575 warning if Gary's readline isn't found, as to nudge users to
3581 warning if Gary's readline isn't found, as to nudge users to
3576 download it.
3582 download it.
3577
3583
3578 2004-06-16 Fernando Perez <fperez@colorado.edu>
3584 2004-06-16 Fernando Perez <fperez@colorado.edu>
3579
3585
3580 * IPython/genutils.py (Stream.__init__): changed to print errors
3586 * IPython/genutils.py (Stream.__init__): changed to print errors
3581 to sys.stderr. I had a circular dependency here. Now it's
3587 to sys.stderr. I had a circular dependency here. Now it's
3582 possible to run ipython as IDLE's shell (consider this pre-alpha,
3588 possible to run ipython as IDLE's shell (consider this pre-alpha,
3583 since true stdout things end up in the starting terminal instead
3589 since true stdout things end up in the starting terminal instead
3584 of IDLE's out).
3590 of IDLE's out).
3585
3591
3586 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3592 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3587 users who haven't # updated their prompt_in2 definitions. Remove
3593 users who haven't # updated their prompt_in2 definitions. Remove
3588 eventually.
3594 eventually.
3589 (multiple_replace): added credit to original ASPN recipe.
3595 (multiple_replace): added credit to original ASPN recipe.
3590
3596
3591 2004-06-15 Fernando Perez <fperez@colorado.edu>
3597 2004-06-15 Fernando Perez <fperez@colorado.edu>
3592
3598
3593 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3599 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3594 list of auto-defined aliases.
3600 list of auto-defined aliases.
3595
3601
3596 2004-06-13 Fernando Perez <fperez@colorado.edu>
3602 2004-06-13 Fernando Perez <fperez@colorado.edu>
3597
3603
3598 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3604 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3599 install was really requested (so setup.py can be used for other
3605 install was really requested (so setup.py can be used for other
3600 things under Windows).
3606 things under Windows).
3601
3607
3602 2004-06-10 Fernando Perez <fperez@colorado.edu>
3608 2004-06-10 Fernando Perez <fperez@colorado.edu>
3603
3609
3604 * IPython/Logger.py (Logger.create_log): Manually remove any old
3610 * IPython/Logger.py (Logger.create_log): Manually remove any old
3605 backup, since os.remove may fail under Windows. Fixes bug
3611 backup, since os.remove may fail under Windows. Fixes bug
3606 reported by Thorsten.
3612 reported by Thorsten.
3607
3613
3608 2004-06-09 Fernando Perez <fperez@colorado.edu>
3614 2004-06-09 Fernando Perez <fperez@colorado.edu>
3609
3615
3610 * examples/example-embed.py: fixed all references to %n (replaced
3616 * examples/example-embed.py: fixed all references to %n (replaced
3611 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3617 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3612 for all examples and the manual as well.
3618 for all examples and the manual as well.
3613
3619
3614 2004-06-08 Fernando Perez <fperez@colorado.edu>
3620 2004-06-08 Fernando Perez <fperez@colorado.edu>
3615
3621
3616 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3622 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3617 alignment and color management. All 3 prompt subsystems now
3623 alignment and color management. All 3 prompt subsystems now
3618 inherit from BasePrompt.
3624 inherit from BasePrompt.
3619
3625
3620 * tools/release: updates for windows installer build and tag rpms
3626 * tools/release: updates for windows installer build and tag rpms
3621 with python version (since paths are fixed).
3627 with python version (since paths are fixed).
3622
3628
3623 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3629 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3624 which will become eventually obsolete. Also fixed the default
3630 which will become eventually obsolete. Also fixed the default
3625 prompt_in2 to use \D, so at least new users start with the correct
3631 prompt_in2 to use \D, so at least new users start with the correct
3626 defaults.
3632 defaults.
3627 WARNING: Users with existing ipythonrc files will need to apply
3633 WARNING: Users with existing ipythonrc files will need to apply
3628 this fix manually!
3634 this fix manually!
3629
3635
3630 * setup.py: make windows installer (.exe). This is finally the
3636 * setup.py: make windows installer (.exe). This is finally the
3631 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3637 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3632 which I hadn't included because it required Python 2.3 (or recent
3638 which I hadn't included because it required Python 2.3 (or recent
3633 distutils).
3639 distutils).
3634
3640
3635 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3641 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3636 usage of new '\D' escape.
3642 usage of new '\D' escape.
3637
3643
3638 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3644 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3639 lacks os.getuid())
3645 lacks os.getuid())
3640 (CachedOutput.set_colors): Added the ability to turn coloring
3646 (CachedOutput.set_colors): Added the ability to turn coloring
3641 on/off with @colors even for manually defined prompt colors. It
3647 on/off with @colors even for manually defined prompt colors. It
3642 uses a nasty global, but it works safely and via the generic color
3648 uses a nasty global, but it works safely and via the generic color
3643 handling mechanism.
3649 handling mechanism.
3644 (Prompt2.__init__): Introduced new escape '\D' for continuation
3650 (Prompt2.__init__): Introduced new escape '\D' for continuation
3645 prompts. It represents the counter ('\#') as dots.
3651 prompts. It represents the counter ('\#') as dots.
3646 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3652 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3647 need to update their ipythonrc files and replace '%n' with '\D' in
3653 need to update their ipythonrc files and replace '%n' with '\D' in
3648 their prompt_in2 settings everywhere. Sorry, but there's
3654 their prompt_in2 settings everywhere. Sorry, but there's
3649 otherwise no clean way to get all prompts to properly align. The
3655 otherwise no clean way to get all prompts to properly align. The
3650 ipythonrc shipped with IPython has been updated.
3656 ipythonrc shipped with IPython has been updated.
3651
3657
3652 2004-06-07 Fernando Perez <fperez@colorado.edu>
3658 2004-06-07 Fernando Perez <fperez@colorado.edu>
3653
3659
3654 * setup.py (isfile): Pass local_icons option to latex2html, so the
3660 * setup.py (isfile): Pass local_icons option to latex2html, so the
3655 resulting HTML file is self-contained. Thanks to
3661 resulting HTML file is self-contained. Thanks to
3656 dryice-AT-liu.com.cn for the tip.
3662 dryice-AT-liu.com.cn for the tip.
3657
3663
3658 * pysh.py: I created a new profile 'shell', which implements a
3664 * pysh.py: I created a new profile 'shell', which implements a
3659 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3665 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3660 system shell, nor will it become one anytime soon. It's mainly
3666 system shell, nor will it become one anytime soon. It's mainly
3661 meant to illustrate the use of the new flexible bash-like prompts.
3667 meant to illustrate the use of the new flexible bash-like prompts.
3662 I guess it could be used by hardy souls for true shell management,
3668 I guess it could be used by hardy souls for true shell management,
3663 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3669 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3664 profile. This uses the InterpreterExec extension provided by
3670 profile. This uses the InterpreterExec extension provided by
3665 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3671 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3666
3672
3667 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3673 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3668 auto-align itself with the length of the previous input prompt
3674 auto-align itself with the length of the previous input prompt
3669 (taking into account the invisible color escapes).
3675 (taking into account the invisible color escapes).
3670 (CachedOutput.__init__): Large restructuring of this class. Now
3676 (CachedOutput.__init__): Large restructuring of this class. Now
3671 all three prompts (primary1, primary2, output) are proper objects,
3677 all three prompts (primary1, primary2, output) are proper objects,
3672 managed by the 'parent' CachedOutput class. The code is still a
3678 managed by the 'parent' CachedOutput class. The code is still a
3673 bit hackish (all prompts share state via a pointer to the cache),
3679 bit hackish (all prompts share state via a pointer to the cache),
3674 but it's overall far cleaner than before.
3680 but it's overall far cleaner than before.
3675
3681
3676 * IPython/genutils.py (getoutputerror): modified to add verbose,
3682 * IPython/genutils.py (getoutputerror): modified to add verbose,
3677 debug and header options. This makes the interface of all getout*
3683 debug and header options. This makes the interface of all getout*
3678 functions uniform.
3684 functions uniform.
3679 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3685 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3680
3686
3681 * IPython/Magic.py (Magic.default_option): added a function to
3687 * IPython/Magic.py (Magic.default_option): added a function to
3682 allow registering default options for any magic command. This
3688 allow registering default options for any magic command. This
3683 makes it easy to have profiles which customize the magics globally
3689 makes it easy to have profiles which customize the magics globally
3684 for a certain use. The values set through this function are
3690 for a certain use. The values set through this function are
3685 picked up by the parse_options() method, which all magics should
3691 picked up by the parse_options() method, which all magics should
3686 use to parse their options.
3692 use to parse their options.
3687
3693
3688 * IPython/genutils.py (warn): modified the warnings framework to
3694 * IPython/genutils.py (warn): modified the warnings framework to
3689 use the Term I/O class. I'm trying to slowly unify all of
3695 use the Term I/O class. I'm trying to slowly unify all of
3690 IPython's I/O operations to pass through Term.
3696 IPython's I/O operations to pass through Term.
3691
3697
3692 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3698 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3693 the secondary prompt to correctly match the length of the primary
3699 the secondary prompt to correctly match the length of the primary
3694 one for any prompt. Now multi-line code will properly line up
3700 one for any prompt. Now multi-line code will properly line up
3695 even for path dependent prompts, such as the new ones available
3701 even for path dependent prompts, such as the new ones available
3696 via the prompt_specials.
3702 via the prompt_specials.
3697
3703
3698 2004-06-06 Fernando Perez <fperez@colorado.edu>
3704 2004-06-06 Fernando Perez <fperez@colorado.edu>
3699
3705
3700 * IPython/Prompts.py (prompt_specials): Added the ability to have
3706 * IPython/Prompts.py (prompt_specials): Added the ability to have
3701 bash-like special sequences in the prompts, which get
3707 bash-like special sequences in the prompts, which get
3702 automatically expanded. Things like hostname, current working
3708 automatically expanded. Things like hostname, current working
3703 directory and username are implemented already, but it's easy to
3709 directory and username are implemented already, but it's easy to
3704 add more in the future. Thanks to a patch by W.J. van der Laan
3710 add more in the future. Thanks to a patch by W.J. van der Laan
3705 <gnufnork-AT-hetdigitalegat.nl>
3711 <gnufnork-AT-hetdigitalegat.nl>
3706 (prompt_specials): Added color support for prompt strings, so
3712 (prompt_specials): Added color support for prompt strings, so
3707 users can define arbitrary color setups for their prompts.
3713 users can define arbitrary color setups for their prompts.
3708
3714
3709 2004-06-05 Fernando Perez <fperez@colorado.edu>
3715 2004-06-05 Fernando Perez <fperez@colorado.edu>
3710
3716
3711 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3717 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3712 code to load Gary Bishop's readline and configure it
3718 code to load Gary Bishop's readline and configure it
3713 automatically. Thanks to Gary for help on this.
3719 automatically. Thanks to Gary for help on this.
3714
3720
3715 2004-06-01 Fernando Perez <fperez@colorado.edu>
3721 2004-06-01 Fernando Perez <fperez@colorado.edu>
3716
3722
3717 * IPython/Logger.py (Logger.create_log): fix bug for logging
3723 * IPython/Logger.py (Logger.create_log): fix bug for logging
3718 with no filename (previous fix was incomplete).
3724 with no filename (previous fix was incomplete).
3719
3725
3720 2004-05-25 Fernando Perez <fperez@colorado.edu>
3726 2004-05-25 Fernando Perez <fperez@colorado.edu>
3721
3727
3722 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3728 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3723 parens would get passed to the shell.
3729 parens would get passed to the shell.
3724
3730
3725 2004-05-20 Fernando Perez <fperez@colorado.edu>
3731 2004-05-20 Fernando Perez <fperez@colorado.edu>
3726
3732
3727 * IPython/Magic.py (Magic.magic_prun): changed default profile
3733 * IPython/Magic.py (Magic.magic_prun): changed default profile
3728 sort order to 'time' (the more common profiling need).
3734 sort order to 'time' (the more common profiling need).
3729
3735
3730 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3736 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3731 so that source code shown is guaranteed in sync with the file on
3737 so that source code shown is guaranteed in sync with the file on
3732 disk (also changed in psource). Similar fix to the one for
3738 disk (also changed in psource). Similar fix to the one for
3733 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3739 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3734 <yann.ledu-AT-noos.fr>.
3740 <yann.ledu-AT-noos.fr>.
3735
3741
3736 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3742 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3737 with a single option would not be correctly parsed. Closes
3743 with a single option would not be correctly parsed. Closes
3738 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3744 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3739 introduced in 0.6.0 (on 2004-05-06).
3745 introduced in 0.6.0 (on 2004-05-06).
3740
3746
3741 2004-05-13 *** Released version 0.6.0
3747 2004-05-13 *** Released version 0.6.0
3742
3748
3743 2004-05-13 Fernando Perez <fperez@colorado.edu>
3749 2004-05-13 Fernando Perez <fperez@colorado.edu>
3744
3750
3745 * debian/: Added debian/ directory to CVS, so that debian support
3751 * debian/: Added debian/ directory to CVS, so that debian support
3746 is publicly accessible. The debian package is maintained by Jack
3752 is publicly accessible. The debian package is maintained by Jack
3747 Moffit <jack-AT-xiph.org>.
3753 Moffit <jack-AT-xiph.org>.
3748
3754
3749 * Documentation: included the notes about an ipython-based system
3755 * Documentation: included the notes about an ipython-based system
3750 shell (the hypothetical 'pysh') into the new_design.pdf document,
3756 shell (the hypothetical 'pysh') into the new_design.pdf document,
3751 so that these ideas get distributed to users along with the
3757 so that these ideas get distributed to users along with the
3752 official documentation.
3758 official documentation.
3753
3759
3754 2004-05-10 Fernando Perez <fperez@colorado.edu>
3760 2004-05-10 Fernando Perez <fperez@colorado.edu>
3755
3761
3756 * IPython/Logger.py (Logger.create_log): fix recently introduced
3762 * IPython/Logger.py (Logger.create_log): fix recently introduced
3757 bug (misindented line) where logstart would fail when not given an
3763 bug (misindented line) where logstart would fail when not given an
3758 explicit filename.
3764 explicit filename.
3759
3765
3760 2004-05-09 Fernando Perez <fperez@colorado.edu>
3766 2004-05-09 Fernando Perez <fperez@colorado.edu>
3761
3767
3762 * IPython/Magic.py (Magic.parse_options): skip system call when
3768 * IPython/Magic.py (Magic.parse_options): skip system call when
3763 there are no options to look for. Faster, cleaner for the common
3769 there are no options to look for. Faster, cleaner for the common
3764 case.
3770 case.
3765
3771
3766 * Documentation: many updates to the manual: describing Windows
3772 * Documentation: many updates to the manual: describing Windows
3767 support better, Gnuplot updates, credits, misc small stuff. Also
3773 support better, Gnuplot updates, credits, misc small stuff. Also
3768 updated the new_design doc a bit.
3774 updated the new_design doc a bit.
3769
3775
3770 2004-05-06 *** Released version 0.6.0.rc1
3776 2004-05-06 *** Released version 0.6.0.rc1
3771
3777
3772 2004-05-06 Fernando Perez <fperez@colorado.edu>
3778 2004-05-06 Fernando Perez <fperez@colorado.edu>
3773
3779
3774 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3780 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3775 operations to use the vastly more efficient list/''.join() method.
3781 operations to use the vastly more efficient list/''.join() method.
3776 (FormattedTB.text): Fix
3782 (FormattedTB.text): Fix
3777 http://www.scipy.net/roundup/ipython/issue12 - exception source
3783 http://www.scipy.net/roundup/ipython/issue12 - exception source
3778 extract not updated after reload. Thanks to Mike Salib
3784 extract not updated after reload. Thanks to Mike Salib
3779 <msalib-AT-mit.edu> for pinning the source of the problem.
3785 <msalib-AT-mit.edu> for pinning the source of the problem.
3780 Fortunately, the solution works inside ipython and doesn't require
3786 Fortunately, the solution works inside ipython and doesn't require
3781 any changes to python proper.
3787 any changes to python proper.
3782
3788
3783 * IPython/Magic.py (Magic.parse_options): Improved to process the
3789 * IPython/Magic.py (Magic.parse_options): Improved to process the
3784 argument list as a true shell would (by actually using the
3790 argument list as a true shell would (by actually using the
3785 underlying system shell). This way, all @magics automatically get
3791 underlying system shell). This way, all @magics automatically get
3786 shell expansion for variables. Thanks to a comment by Alex
3792 shell expansion for variables. Thanks to a comment by Alex
3787 Schmolck.
3793 Schmolck.
3788
3794
3789 2004-04-04 Fernando Perez <fperez@colorado.edu>
3795 2004-04-04 Fernando Perez <fperez@colorado.edu>
3790
3796
3791 * IPython/iplib.py (InteractiveShell.interact): Added a special
3797 * IPython/iplib.py (InteractiveShell.interact): Added a special
3792 trap for a debugger quit exception, which is basically impossible
3798 trap for a debugger quit exception, which is basically impossible
3793 to handle by normal mechanisms, given what pdb does to the stack.
3799 to handle by normal mechanisms, given what pdb does to the stack.
3794 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3800 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3795
3801
3796 2004-04-03 Fernando Perez <fperez@colorado.edu>
3802 2004-04-03 Fernando Perez <fperez@colorado.edu>
3797
3803
3798 * IPython/genutils.py (Term): Standardized the names of the Term
3804 * IPython/genutils.py (Term): Standardized the names of the Term
3799 class streams to cin/cout/cerr, following C++ naming conventions
3805 class streams to cin/cout/cerr, following C++ naming conventions
3800 (I can't use in/out/err because 'in' is not a valid attribute
3806 (I can't use in/out/err because 'in' is not a valid attribute
3801 name).
3807 name).
3802
3808
3803 * IPython/iplib.py (InteractiveShell.interact): don't increment
3809 * IPython/iplib.py (InteractiveShell.interact): don't increment
3804 the prompt if there's no user input. By Daniel 'Dang' Griffith
3810 the prompt if there's no user input. By Daniel 'Dang' Griffith
3805 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3811 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3806 Francois Pinard.
3812 Francois Pinard.
3807
3813
3808 2004-04-02 Fernando Perez <fperez@colorado.edu>
3814 2004-04-02 Fernando Perez <fperez@colorado.edu>
3809
3815
3810 * IPython/genutils.py (Stream.__init__): Modified to survive at
3816 * IPython/genutils.py (Stream.__init__): Modified to survive at
3811 least importing in contexts where stdin/out/err aren't true file
3817 least importing in contexts where stdin/out/err aren't true file
3812 objects, such as PyCrust (they lack fileno() and mode). However,
3818 objects, such as PyCrust (they lack fileno() and mode). However,
3813 the recovery facilities which rely on these things existing will
3819 the recovery facilities which rely on these things existing will
3814 not work.
3820 not work.
3815
3821
3816 2004-04-01 Fernando Perez <fperez@colorado.edu>
3822 2004-04-01 Fernando Perez <fperez@colorado.edu>
3817
3823
3818 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3824 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3819 use the new getoutputerror() function, so it properly
3825 use the new getoutputerror() function, so it properly
3820 distinguishes stdout/err.
3826 distinguishes stdout/err.
3821
3827
3822 * IPython/genutils.py (getoutputerror): added a function to
3828 * IPython/genutils.py (getoutputerror): added a function to
3823 capture separately the standard output and error of a command.
3829 capture separately the standard output and error of a command.
3824 After a comment from dang on the mailing lists. This code is
3830 After a comment from dang on the mailing lists. This code is
3825 basically a modified version of commands.getstatusoutput(), from
3831 basically a modified version of commands.getstatusoutput(), from
3826 the standard library.
3832 the standard library.
3827
3833
3828 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3834 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3829 '!!' as a special syntax (shorthand) to access @sx.
3835 '!!' as a special syntax (shorthand) to access @sx.
3830
3836
3831 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3837 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3832 command and return its output as a list split on '\n'.
3838 command and return its output as a list split on '\n'.
3833
3839
3834 2004-03-31 Fernando Perez <fperez@colorado.edu>
3840 2004-03-31 Fernando Perez <fperez@colorado.edu>
3835
3841
3836 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3842 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3837 method to dictionaries used as FakeModule instances if they lack
3843 method to dictionaries used as FakeModule instances if they lack
3838 it. At least pydoc in python2.3 breaks for runtime-defined
3844 it. At least pydoc in python2.3 breaks for runtime-defined
3839 functions without this hack. At some point I need to _really_
3845 functions without this hack. At some point I need to _really_
3840 understand what FakeModule is doing, because it's a gross hack.
3846 understand what FakeModule is doing, because it's a gross hack.
3841 But it solves Arnd's problem for now...
3847 But it solves Arnd's problem for now...
3842
3848
3843 2004-02-27 Fernando Perez <fperez@colorado.edu>
3849 2004-02-27 Fernando Perez <fperez@colorado.edu>
3844
3850
3845 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3851 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3846 mode would behave erratically. Also increased the number of
3852 mode would behave erratically. Also increased the number of
3847 possible logs in rotate mod to 999. Thanks to Rod Holland
3853 possible logs in rotate mod to 999. Thanks to Rod Holland
3848 <rhh@StructureLABS.com> for the report and fixes.
3854 <rhh@StructureLABS.com> for the report and fixes.
3849
3855
3850 2004-02-26 Fernando Perez <fperez@colorado.edu>
3856 2004-02-26 Fernando Perez <fperez@colorado.edu>
3851
3857
3852 * IPython/genutils.py (page): Check that the curses module really
3858 * IPython/genutils.py (page): Check that the curses module really
3853 has the initscr attribute before trying to use it. For some
3859 has the initscr attribute before trying to use it. For some
3854 reason, the Solaris curses module is missing this. I think this
3860 reason, the Solaris curses module is missing this. I think this
3855 should be considered a Solaris python bug, but I'm not sure.
3861 should be considered a Solaris python bug, but I'm not sure.
3856
3862
3857 2004-01-17 Fernando Perez <fperez@colorado.edu>
3863 2004-01-17 Fernando Perez <fperez@colorado.edu>
3858
3864
3859 * IPython/genutils.py (Stream.__init__): Changes to try to make
3865 * IPython/genutils.py (Stream.__init__): Changes to try to make
3860 ipython robust against stdin/out/err being closed by the user.
3866 ipython robust against stdin/out/err being closed by the user.
3861 This is 'user error' (and blocks a normal python session, at least
3867 This is 'user error' (and blocks a normal python session, at least
3862 the stdout case). However, Ipython should be able to survive such
3868 the stdout case). However, Ipython should be able to survive such
3863 instances of abuse as gracefully as possible. To simplify the
3869 instances of abuse as gracefully as possible. To simplify the
3864 coding and maintain compatibility with Gary Bishop's Term
3870 coding and maintain compatibility with Gary Bishop's Term
3865 contributions, I've made use of classmethods for this. I think
3871 contributions, I've made use of classmethods for this. I think
3866 this introduces a dependency on python 2.2.
3872 this introduces a dependency on python 2.2.
3867
3873
3868 2004-01-13 Fernando Perez <fperez@colorado.edu>
3874 2004-01-13 Fernando Perez <fperez@colorado.edu>
3869
3875
3870 * IPython/numutils.py (exp_safe): simplified the code a bit and
3876 * IPython/numutils.py (exp_safe): simplified the code a bit and
3871 removed the need for importing the kinds module altogether.
3877 removed the need for importing the kinds module altogether.
3872
3878
3873 2004-01-06 Fernando Perez <fperez@colorado.edu>
3879 2004-01-06 Fernando Perez <fperez@colorado.edu>
3874
3880
3875 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3881 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3876 a magic function instead, after some community feedback. No
3882 a magic function instead, after some community feedback. No
3877 special syntax will exist for it, but its name is deliberately
3883 special syntax will exist for it, but its name is deliberately
3878 very short.
3884 very short.
3879
3885
3880 2003-12-20 Fernando Perez <fperez@colorado.edu>
3886 2003-12-20 Fernando Perez <fperez@colorado.edu>
3881
3887
3882 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3888 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3883 new functionality, to automagically assign the result of a shell
3889 new functionality, to automagically assign the result of a shell
3884 command to a variable. I'll solicit some community feedback on
3890 command to a variable. I'll solicit some community feedback on
3885 this before making it permanent.
3891 this before making it permanent.
3886
3892
3887 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3893 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3888 requested about callables for which inspect couldn't obtain a
3894 requested about callables for which inspect couldn't obtain a
3889 proper argspec. Thanks to a crash report sent by Etienne
3895 proper argspec. Thanks to a crash report sent by Etienne
3890 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3896 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3891
3897
3892 2003-12-09 Fernando Perez <fperez@colorado.edu>
3898 2003-12-09 Fernando Perez <fperez@colorado.edu>
3893
3899
3894 * IPython/genutils.py (page): patch for the pager to work across
3900 * IPython/genutils.py (page): patch for the pager to work across
3895 various versions of Windows. By Gary Bishop.
3901 various versions of Windows. By Gary Bishop.
3896
3902
3897 2003-12-04 Fernando Perez <fperez@colorado.edu>
3903 2003-12-04 Fernando Perez <fperez@colorado.edu>
3898
3904
3899 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3905 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
3900 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3906 Gnuplot.py version 1.7, whose internal names changed quite a bit.
3901 While I tested this and it looks ok, there may still be corner
3907 While I tested this and it looks ok, there may still be corner
3902 cases I've missed.
3908 cases I've missed.
3903
3909
3904 2003-12-01 Fernando Perez <fperez@colorado.edu>
3910 2003-12-01 Fernando Perez <fperez@colorado.edu>
3905
3911
3906 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3912 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
3907 where a line like 'p,q=1,2' would fail because the automagic
3913 where a line like 'p,q=1,2' would fail because the automagic
3908 system would be triggered for @p.
3914 system would be triggered for @p.
3909
3915
3910 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3916 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
3911 cleanups, code unmodified.
3917 cleanups, code unmodified.
3912
3918
3913 * IPython/genutils.py (Term): added a class for IPython to handle
3919 * IPython/genutils.py (Term): added a class for IPython to handle
3914 output. In most cases it will just be a proxy for stdout/err, but
3920 output. In most cases it will just be a proxy for stdout/err, but
3915 having this allows modifications to be made for some platforms,
3921 having this allows modifications to be made for some platforms,
3916 such as handling color escapes under Windows. All of this code
3922 such as handling color escapes under Windows. All of this code
3917 was contributed by Gary Bishop, with minor modifications by me.
3923 was contributed by Gary Bishop, with minor modifications by me.
3918 The actual changes affect many files.
3924 The actual changes affect many files.
3919
3925
3920 2003-11-30 Fernando Perez <fperez@colorado.edu>
3926 2003-11-30 Fernando Perez <fperez@colorado.edu>
3921
3927
3922 * IPython/iplib.py (file_matches): new completion code, courtesy
3928 * IPython/iplib.py (file_matches): new completion code, courtesy
3923 of Jeff Collins. This enables filename completion again under
3929 of Jeff Collins. This enables filename completion again under
3924 python 2.3, which disabled it at the C level.
3930 python 2.3, which disabled it at the C level.
3925
3931
3926 2003-11-11 Fernando Perez <fperez@colorado.edu>
3932 2003-11-11 Fernando Perez <fperez@colorado.edu>
3927
3933
3928 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3934 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
3929 for Numeric.array(map(...)), but often convenient.
3935 for Numeric.array(map(...)), but often convenient.
3930
3936
3931 2003-11-05 Fernando Perez <fperez@colorado.edu>
3937 2003-11-05 Fernando Perez <fperez@colorado.edu>
3932
3938
3933 * IPython/numutils.py (frange): Changed a call from int() to
3939 * IPython/numutils.py (frange): Changed a call from int() to
3934 int(round()) to prevent a problem reported with arange() in the
3940 int(round()) to prevent a problem reported with arange() in the
3935 numpy list.
3941 numpy list.
3936
3942
3937 2003-10-06 Fernando Perez <fperez@colorado.edu>
3943 2003-10-06 Fernando Perez <fperez@colorado.edu>
3938
3944
3939 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3945 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
3940 prevent crashes if sys lacks an argv attribute (it happens with
3946 prevent crashes if sys lacks an argv attribute (it happens with
3941 embedded interpreters which build a bare-bones sys module).
3947 embedded interpreters which build a bare-bones sys module).
3942 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3948 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
3943
3949
3944 2003-09-24 Fernando Perez <fperez@colorado.edu>
3950 2003-09-24 Fernando Perez <fperez@colorado.edu>
3945
3951
3946 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3952 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
3947 to protect against poorly written user objects where __getattr__
3953 to protect against poorly written user objects where __getattr__
3948 raises exceptions other than AttributeError. Thanks to a bug
3954 raises exceptions other than AttributeError. Thanks to a bug
3949 report by Oliver Sander <osander-AT-gmx.de>.
3955 report by Oliver Sander <osander-AT-gmx.de>.
3950
3956
3951 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3957 * IPython/FakeModule.py (FakeModule.__repr__): this method was
3952 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3958 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
3953
3959
3954 2003-09-09 Fernando Perez <fperez@colorado.edu>
3960 2003-09-09 Fernando Perez <fperez@colorado.edu>
3955
3961
3956 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3962 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3957 unpacking a list whith a callable as first element would
3963 unpacking a list whith a callable as first element would
3958 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3964 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
3959 Collins.
3965 Collins.
3960
3966
3961 2003-08-25 *** Released version 0.5.0
3967 2003-08-25 *** Released version 0.5.0
3962
3968
3963 2003-08-22 Fernando Perez <fperez@colorado.edu>
3969 2003-08-22 Fernando Perez <fperez@colorado.edu>
3964
3970
3965 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3971 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
3966 improperly defined user exceptions. Thanks to feedback from Mark
3972 improperly defined user exceptions. Thanks to feedback from Mark
3967 Russell <mrussell-AT-verio.net>.
3973 Russell <mrussell-AT-verio.net>.
3968
3974
3969 2003-08-20 Fernando Perez <fperez@colorado.edu>
3975 2003-08-20 Fernando Perez <fperez@colorado.edu>
3970
3976
3971 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3977 * IPython/OInspect.py (Inspector.pinfo): changed String Form
3972 printing so that it would print multi-line string forms starting
3978 printing so that it would print multi-line string forms starting
3973 with a new line. This way the formatting is better respected for
3979 with a new line. This way the formatting is better respected for
3974 objects which work hard to make nice string forms.
3980 objects which work hard to make nice string forms.
3975
3981
3976 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3982 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
3977 autocall would overtake data access for objects with both
3983 autocall would overtake data access for objects with both
3978 __getitem__ and __call__.
3984 __getitem__ and __call__.
3979
3985
3980 2003-08-19 *** Released version 0.5.0-rc1
3986 2003-08-19 *** Released version 0.5.0-rc1
3981
3987
3982 2003-08-19 Fernando Perez <fperez@colorado.edu>
3988 2003-08-19 Fernando Perez <fperez@colorado.edu>
3983
3989
3984 * IPython/deep_reload.py (load_tail): single tiny change here
3990 * IPython/deep_reload.py (load_tail): single tiny change here
3985 seems to fix the long-standing bug of dreload() failing to work
3991 seems to fix the long-standing bug of dreload() failing to work
3986 for dotted names. But this module is pretty tricky, so I may have
3992 for dotted names. But this module is pretty tricky, so I may have
3987 missed some subtlety. Needs more testing!.
3993 missed some subtlety. Needs more testing!.
3988
3994
3989 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3995 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
3990 exceptions which have badly implemented __str__ methods.
3996 exceptions which have badly implemented __str__ methods.
3991 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3997 (VerboseTB.text): harden against inspect.getinnerframes crashing,
3992 which I've been getting reports about from Python 2.3 users. I
3998 which I've been getting reports about from Python 2.3 users. I
3993 wish I had a simple test case to reproduce the problem, so I could
3999 wish I had a simple test case to reproduce the problem, so I could
3994 either write a cleaner workaround or file a bug report if
4000 either write a cleaner workaround or file a bug report if
3995 necessary.
4001 necessary.
3996
4002
3997 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4003 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
3998 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4004 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
3999 a bug report by Tjabo Kloppenburg.
4005 a bug report by Tjabo Kloppenburg.
4000
4006
4001 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4007 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4002 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4008 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4003 seems rather unstable. Thanks to a bug report by Tjabo
4009 seems rather unstable. Thanks to a bug report by Tjabo
4004 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4010 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4005
4011
4006 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4012 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4007 this out soon because of the critical fixes in the inner loop for
4013 this out soon because of the critical fixes in the inner loop for
4008 generators.
4014 generators.
4009
4015
4010 * IPython/Magic.py (Magic.getargspec): removed. This (and
4016 * IPython/Magic.py (Magic.getargspec): removed. This (and
4011 _get_def) have been obsoleted by OInspect for a long time, I
4017 _get_def) have been obsoleted by OInspect for a long time, I
4012 hadn't noticed that they were dead code.
4018 hadn't noticed that they were dead code.
4013 (Magic._ofind): restored _ofind functionality for a few literals
4019 (Magic._ofind): restored _ofind functionality for a few literals
4014 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4020 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4015 for things like "hello".capitalize?, since that would require a
4021 for things like "hello".capitalize?, since that would require a
4016 potentially dangerous eval() again.
4022 potentially dangerous eval() again.
4017
4023
4018 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4024 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4019 logic a bit more to clean up the escapes handling and minimize the
4025 logic a bit more to clean up the escapes handling and minimize the
4020 use of _ofind to only necessary cases. The interactive 'feel' of
4026 use of _ofind to only necessary cases. The interactive 'feel' of
4021 IPython should have improved quite a bit with the changes in
4027 IPython should have improved quite a bit with the changes in
4022 _prefilter and _ofind (besides being far safer than before).
4028 _prefilter and _ofind (besides being far safer than before).
4023
4029
4024 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4030 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4025 obscure, never reported). Edit would fail to find the object to
4031 obscure, never reported). Edit would fail to find the object to
4026 edit under some circumstances.
4032 edit under some circumstances.
4027 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4033 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4028 which were causing double-calling of generators. Those eval calls
4034 which were causing double-calling of generators. Those eval calls
4029 were _very_ dangerous, since code with side effects could be
4035 were _very_ dangerous, since code with side effects could be
4030 triggered. As they say, 'eval is evil'... These were the
4036 triggered. As they say, 'eval is evil'... These were the
4031 nastiest evals in IPython. Besides, _ofind is now far simpler,
4037 nastiest evals in IPython. Besides, _ofind is now far simpler,
4032 and it should also be quite a bit faster. Its use of inspect is
4038 and it should also be quite a bit faster. Its use of inspect is
4033 also safer, so perhaps some of the inspect-related crashes I've
4039 also safer, so perhaps some of the inspect-related crashes I've
4034 seen lately with Python 2.3 might be taken care of. That will
4040 seen lately with Python 2.3 might be taken care of. That will
4035 need more testing.
4041 need more testing.
4036
4042
4037 2003-08-17 Fernando Perez <fperez@colorado.edu>
4043 2003-08-17 Fernando Perez <fperez@colorado.edu>
4038
4044
4039 * IPython/iplib.py (InteractiveShell._prefilter): significant
4045 * IPython/iplib.py (InteractiveShell._prefilter): significant
4040 simplifications to the logic for handling user escapes. Faster
4046 simplifications to the logic for handling user escapes. Faster
4041 and simpler code.
4047 and simpler code.
4042
4048
4043 2003-08-14 Fernando Perez <fperez@colorado.edu>
4049 2003-08-14 Fernando Perez <fperez@colorado.edu>
4044
4050
4045 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4051 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4046 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4052 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4047 but it should be quite a bit faster. And the recursive version
4053 but it should be quite a bit faster. And the recursive version
4048 generated O(log N) intermediate storage for all rank>1 arrays,
4054 generated O(log N) intermediate storage for all rank>1 arrays,
4049 even if they were contiguous.
4055 even if they were contiguous.
4050 (l1norm): Added this function.
4056 (l1norm): Added this function.
4051 (norm): Added this function for arbitrary norms (including
4057 (norm): Added this function for arbitrary norms (including
4052 l-infinity). l1 and l2 are still special cases for convenience
4058 l-infinity). l1 and l2 are still special cases for convenience
4053 and speed.
4059 and speed.
4054
4060
4055 2003-08-03 Fernando Perez <fperez@colorado.edu>
4061 2003-08-03 Fernando Perez <fperez@colorado.edu>
4056
4062
4057 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4063 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4058 exceptions, which now raise PendingDeprecationWarnings in Python
4064 exceptions, which now raise PendingDeprecationWarnings in Python
4059 2.3. There were some in Magic and some in Gnuplot2.
4065 2.3. There were some in Magic and some in Gnuplot2.
4060
4066
4061 2003-06-30 Fernando Perez <fperez@colorado.edu>
4067 2003-06-30 Fernando Perez <fperez@colorado.edu>
4062
4068
4063 * IPython/genutils.py (page): modified to call curses only for
4069 * IPython/genutils.py (page): modified to call curses only for
4064 terminals where TERM=='xterm'. After problems under many other
4070 terminals where TERM=='xterm'. After problems under many other
4065 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4071 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4066
4072
4067 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4073 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4068 would be triggered when readline was absent. This was just an old
4074 would be triggered when readline was absent. This was just an old
4069 debugging statement I'd forgotten to take out.
4075 debugging statement I'd forgotten to take out.
4070
4076
4071 2003-06-20 Fernando Perez <fperez@colorado.edu>
4077 2003-06-20 Fernando Perez <fperez@colorado.edu>
4072
4078
4073 * IPython/genutils.py (clock): modified to return only user time
4079 * IPython/genutils.py (clock): modified to return only user time
4074 (not counting system time), after a discussion on scipy. While
4080 (not counting system time), after a discussion on scipy. While
4075 system time may be a useful quantity occasionally, it may much
4081 system time may be a useful quantity occasionally, it may much
4076 more easily be skewed by occasional swapping or other similar
4082 more easily be skewed by occasional swapping or other similar
4077 activity.
4083 activity.
4078
4084
4079 2003-06-05 Fernando Perez <fperez@colorado.edu>
4085 2003-06-05 Fernando Perez <fperez@colorado.edu>
4080
4086
4081 * IPython/numutils.py (identity): new function, for building
4087 * IPython/numutils.py (identity): new function, for building
4082 arbitrary rank Kronecker deltas (mostly backwards compatible with
4088 arbitrary rank Kronecker deltas (mostly backwards compatible with
4083 Numeric.identity)
4089 Numeric.identity)
4084
4090
4085 2003-06-03 Fernando Perez <fperez@colorado.edu>
4091 2003-06-03 Fernando Perez <fperez@colorado.edu>
4086
4092
4087 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4093 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4088 arguments passed to magics with spaces, to allow trailing '\' to
4094 arguments passed to magics with spaces, to allow trailing '\' to
4089 work normally (mainly for Windows users).
4095 work normally (mainly for Windows users).
4090
4096
4091 2003-05-29 Fernando Perez <fperez@colorado.edu>
4097 2003-05-29 Fernando Perez <fperez@colorado.edu>
4092
4098
4093 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4099 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4094 instead of pydoc.help. This fixes a bizarre behavior where
4100 instead of pydoc.help. This fixes a bizarre behavior where
4095 printing '%s' % locals() would trigger the help system. Now
4101 printing '%s' % locals() would trigger the help system. Now
4096 ipython behaves like normal python does.
4102 ipython behaves like normal python does.
4097
4103
4098 Note that if one does 'from pydoc import help', the bizarre
4104 Note that if one does 'from pydoc import help', the bizarre
4099 behavior returns, but this will also happen in normal python, so
4105 behavior returns, but this will also happen in normal python, so
4100 it's not an ipython bug anymore (it has to do with how pydoc.help
4106 it's not an ipython bug anymore (it has to do with how pydoc.help
4101 is implemented).
4107 is implemented).
4102
4108
4103 2003-05-22 Fernando Perez <fperez@colorado.edu>
4109 2003-05-22 Fernando Perez <fperez@colorado.edu>
4104
4110
4105 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4111 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4106 return [] instead of None when nothing matches, also match to end
4112 return [] instead of None when nothing matches, also match to end
4107 of line. Patch by Gary Bishop.
4113 of line. Patch by Gary Bishop.
4108
4114
4109 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4115 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4110 protection as before, for files passed on the command line. This
4116 protection as before, for files passed on the command line. This
4111 prevents the CrashHandler from kicking in if user files call into
4117 prevents the CrashHandler from kicking in if user files call into
4112 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4118 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4113 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4119 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4114
4120
4115 2003-05-20 *** Released version 0.4.0
4121 2003-05-20 *** Released version 0.4.0
4116
4122
4117 2003-05-20 Fernando Perez <fperez@colorado.edu>
4123 2003-05-20 Fernando Perez <fperez@colorado.edu>
4118
4124
4119 * setup.py: added support for manpages. It's a bit hackish b/c of
4125 * setup.py: added support for manpages. It's a bit hackish b/c of
4120 a bug in the way the bdist_rpm distutils target handles gzipped
4126 a bug in the way the bdist_rpm distutils target handles gzipped
4121 manpages, but it works. After a patch by Jack.
4127 manpages, but it works. After a patch by Jack.
4122
4128
4123 2003-05-19 Fernando Perez <fperez@colorado.edu>
4129 2003-05-19 Fernando Perez <fperez@colorado.edu>
4124
4130
4125 * IPython/numutils.py: added a mockup of the kinds module, since
4131 * IPython/numutils.py: added a mockup of the kinds module, since
4126 it was recently removed from Numeric. This way, numutils will
4132 it was recently removed from Numeric. This way, numutils will
4127 work for all users even if they are missing kinds.
4133 work for all users even if they are missing kinds.
4128
4134
4129 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4135 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4130 failure, which can occur with SWIG-wrapped extensions. After a
4136 failure, which can occur with SWIG-wrapped extensions. After a
4131 crash report from Prabhu.
4137 crash report from Prabhu.
4132
4138
4133 2003-05-16 Fernando Perez <fperez@colorado.edu>
4139 2003-05-16 Fernando Perez <fperez@colorado.edu>
4134
4140
4135 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4141 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4136 protect ipython from user code which may call directly
4142 protect ipython from user code which may call directly
4137 sys.excepthook (this looks like an ipython crash to the user, even
4143 sys.excepthook (this looks like an ipython crash to the user, even
4138 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4144 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4139 This is especially important to help users of WxWindows, but may
4145 This is especially important to help users of WxWindows, but may
4140 also be useful in other cases.
4146 also be useful in other cases.
4141
4147
4142 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4148 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4143 an optional tb_offset to be specified, and to preserve exception
4149 an optional tb_offset to be specified, and to preserve exception
4144 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4150 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4145
4151
4146 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4152 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4147
4153
4148 2003-05-15 Fernando Perez <fperez@colorado.edu>
4154 2003-05-15 Fernando Perez <fperez@colorado.edu>
4149
4155
4150 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4156 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4151 installing for a new user under Windows.
4157 installing for a new user under Windows.
4152
4158
4153 2003-05-12 Fernando Perez <fperez@colorado.edu>
4159 2003-05-12 Fernando Perez <fperez@colorado.edu>
4154
4160
4155 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4161 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4156 handler for Emacs comint-based lines. Currently it doesn't do
4162 handler for Emacs comint-based lines. Currently it doesn't do
4157 much (but importantly, it doesn't update the history cache). In
4163 much (but importantly, it doesn't update the history cache). In
4158 the future it may be expanded if Alex needs more functionality
4164 the future it may be expanded if Alex needs more functionality
4159 there.
4165 there.
4160
4166
4161 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4167 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4162 info to crash reports.
4168 info to crash reports.
4163
4169
4164 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4170 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4165 just like Python's -c. Also fixed crash with invalid -color
4171 just like Python's -c. Also fixed crash with invalid -color
4166 option value at startup. Thanks to Will French
4172 option value at startup. Thanks to Will French
4167 <wfrench-AT-bestweb.net> for the bug report.
4173 <wfrench-AT-bestweb.net> for the bug report.
4168
4174
4169 2003-05-09 Fernando Perez <fperez@colorado.edu>
4175 2003-05-09 Fernando Perez <fperez@colorado.edu>
4170
4176
4171 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4177 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4172 to EvalDict (it's a mapping, after all) and simplified its code
4178 to EvalDict (it's a mapping, after all) and simplified its code
4173 quite a bit, after a nice discussion on c.l.py where Gustavo
4179 quite a bit, after a nice discussion on c.l.py where Gustavo
4174 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4180 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4175
4181
4176 2003-04-30 Fernando Perez <fperez@colorado.edu>
4182 2003-04-30 Fernando Perez <fperez@colorado.edu>
4177
4183
4178 * IPython/genutils.py (timings_out): modified it to reduce its
4184 * IPython/genutils.py (timings_out): modified it to reduce its
4179 overhead in the common reps==1 case.
4185 overhead in the common reps==1 case.
4180
4186
4181 2003-04-29 Fernando Perez <fperez@colorado.edu>
4187 2003-04-29 Fernando Perez <fperez@colorado.edu>
4182
4188
4183 * IPython/genutils.py (timings_out): Modified to use the resource
4189 * IPython/genutils.py (timings_out): Modified to use the resource
4184 module, which avoids the wraparound problems of time.clock().
4190 module, which avoids the wraparound problems of time.clock().
4185
4191
4186 2003-04-17 *** Released version 0.2.15pre4
4192 2003-04-17 *** Released version 0.2.15pre4
4187
4193
4188 2003-04-17 Fernando Perez <fperez@colorado.edu>
4194 2003-04-17 Fernando Perez <fperez@colorado.edu>
4189
4195
4190 * setup.py (scriptfiles): Split windows-specific stuff over to a
4196 * setup.py (scriptfiles): Split windows-specific stuff over to a
4191 separate file, in an attempt to have a Windows GUI installer.
4197 separate file, in an attempt to have a Windows GUI installer.
4192 That didn't work, but part of the groundwork is done.
4198 That didn't work, but part of the groundwork is done.
4193
4199
4194 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4200 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4195 indent/unindent with 4 spaces. Particularly useful in combination
4201 indent/unindent with 4 spaces. Particularly useful in combination
4196 with the new auto-indent option.
4202 with the new auto-indent option.
4197
4203
4198 2003-04-16 Fernando Perez <fperez@colorado.edu>
4204 2003-04-16 Fernando Perez <fperez@colorado.edu>
4199
4205
4200 * IPython/Magic.py: various replacements of self.rc for
4206 * IPython/Magic.py: various replacements of self.rc for
4201 self.shell.rc. A lot more remains to be done to fully disentangle
4207 self.shell.rc. A lot more remains to be done to fully disentangle
4202 this class from the main Shell class.
4208 this class from the main Shell class.
4203
4209
4204 * IPython/GnuplotRuntime.py: added checks for mouse support so
4210 * IPython/GnuplotRuntime.py: added checks for mouse support so
4205 that we don't try to enable it if the current gnuplot doesn't
4211 that we don't try to enable it if the current gnuplot doesn't
4206 really support it. Also added checks so that we don't try to
4212 really support it. Also added checks so that we don't try to
4207 enable persist under Windows (where Gnuplot doesn't recognize the
4213 enable persist under Windows (where Gnuplot doesn't recognize the
4208 option).
4214 option).
4209
4215
4210 * IPython/iplib.py (InteractiveShell.interact): Added optional
4216 * IPython/iplib.py (InteractiveShell.interact): Added optional
4211 auto-indenting code, after a patch by King C. Shu
4217 auto-indenting code, after a patch by King C. Shu
4212 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4218 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4213 get along well with pasting indented code. If I ever figure out
4219 get along well with pasting indented code. If I ever figure out
4214 how to make that part go well, it will become on by default.
4220 how to make that part go well, it will become on by default.
4215
4221
4216 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4222 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4217 crash ipython if there was an unmatched '%' in the user's prompt
4223 crash ipython if there was an unmatched '%' in the user's prompt
4218 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4224 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4219
4225
4220 * IPython/iplib.py (InteractiveShell.interact): removed the
4226 * IPython/iplib.py (InteractiveShell.interact): removed the
4221 ability to ask the user whether he wants to crash or not at the
4227 ability to ask the user whether he wants to crash or not at the
4222 'last line' exception handler. Calling functions at that point
4228 'last line' exception handler. Calling functions at that point
4223 changes the stack, and the error reports would have incorrect
4229 changes the stack, and the error reports would have incorrect
4224 tracebacks.
4230 tracebacks.
4225
4231
4226 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4232 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4227 pass through a peger a pretty-printed form of any object. After a
4233 pass through a peger a pretty-printed form of any object. After a
4228 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4234 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4229
4235
4230 2003-04-14 Fernando Perez <fperez@colorado.edu>
4236 2003-04-14 Fernando Perez <fperez@colorado.edu>
4231
4237
4232 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4238 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4233 all files in ~ would be modified at first install (instead of
4239 all files in ~ would be modified at first install (instead of
4234 ~/.ipython). This could be potentially disastrous, as the
4240 ~/.ipython). This could be potentially disastrous, as the
4235 modification (make line-endings native) could damage binary files.
4241 modification (make line-endings native) could damage binary files.
4236
4242
4237 2003-04-10 Fernando Perez <fperez@colorado.edu>
4243 2003-04-10 Fernando Perez <fperez@colorado.edu>
4238
4244
4239 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4245 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4240 handle only lines which are invalid python. This now means that
4246 handle only lines which are invalid python. This now means that
4241 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4247 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4242 for the bug report.
4248 for the bug report.
4243
4249
4244 2003-04-01 Fernando Perez <fperez@colorado.edu>
4250 2003-04-01 Fernando Perez <fperez@colorado.edu>
4245
4251
4246 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4252 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4247 where failing to set sys.last_traceback would crash pdb.pm().
4253 where failing to set sys.last_traceback would crash pdb.pm().
4248 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4254 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4249 report.
4255 report.
4250
4256
4251 2003-03-25 Fernando Perez <fperez@colorado.edu>
4257 2003-03-25 Fernando Perez <fperez@colorado.edu>
4252
4258
4253 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4259 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4254 before printing it (it had a lot of spurious blank lines at the
4260 before printing it (it had a lot of spurious blank lines at the
4255 end).
4261 end).
4256
4262
4257 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4263 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4258 output would be sent 21 times! Obviously people don't use this
4264 output would be sent 21 times! Obviously people don't use this
4259 too often, or I would have heard about it.
4265 too often, or I would have heard about it.
4260
4266
4261 2003-03-24 Fernando Perez <fperez@colorado.edu>
4267 2003-03-24 Fernando Perez <fperez@colorado.edu>
4262
4268
4263 * setup.py (scriptfiles): renamed the data_files parameter from
4269 * setup.py (scriptfiles): renamed the data_files parameter from
4264 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4270 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4265 for the patch.
4271 for the patch.
4266
4272
4267 2003-03-20 Fernando Perez <fperez@colorado.edu>
4273 2003-03-20 Fernando Perez <fperez@colorado.edu>
4268
4274
4269 * IPython/genutils.py (error): added error() and fatal()
4275 * IPython/genutils.py (error): added error() and fatal()
4270 functions.
4276 functions.
4271
4277
4272 2003-03-18 *** Released version 0.2.15pre3
4278 2003-03-18 *** Released version 0.2.15pre3
4273
4279
4274 2003-03-18 Fernando Perez <fperez@colorado.edu>
4280 2003-03-18 Fernando Perez <fperez@colorado.edu>
4275
4281
4276 * setupext/install_data_ext.py
4282 * setupext/install_data_ext.py
4277 (install_data_ext.initialize_options): Class contributed by Jack
4283 (install_data_ext.initialize_options): Class contributed by Jack
4278 Moffit for fixing the old distutils hack. He is sending this to
4284 Moffit for fixing the old distutils hack. He is sending this to
4279 the distutils folks so in the future we may not need it as a
4285 the distutils folks so in the future we may not need it as a
4280 private fix.
4286 private fix.
4281
4287
4282 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4288 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4283 changes for Debian packaging. See his patch for full details.
4289 changes for Debian packaging. See his patch for full details.
4284 The old distutils hack of making the ipythonrc* files carry a
4290 The old distutils hack of making the ipythonrc* files carry a
4285 bogus .py extension is gone, at last. Examples were moved to a
4291 bogus .py extension is gone, at last. Examples were moved to a
4286 separate subdir under doc/, and the separate executable scripts
4292 separate subdir under doc/, and the separate executable scripts
4287 now live in their own directory. Overall a great cleanup. The
4293 now live in their own directory. Overall a great cleanup. The
4288 manual was updated to use the new files, and setup.py has been
4294 manual was updated to use the new files, and setup.py has been
4289 fixed for this setup.
4295 fixed for this setup.
4290
4296
4291 * IPython/PyColorize.py (Parser.usage): made non-executable and
4297 * IPython/PyColorize.py (Parser.usage): made non-executable and
4292 created a pycolor wrapper around it to be included as a script.
4298 created a pycolor wrapper around it to be included as a script.
4293
4299
4294 2003-03-12 *** Released version 0.2.15pre2
4300 2003-03-12 *** Released version 0.2.15pre2
4295
4301
4296 2003-03-12 Fernando Perez <fperez@colorado.edu>
4302 2003-03-12 Fernando Perez <fperez@colorado.edu>
4297
4303
4298 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4304 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4299 long-standing problem with garbage characters in some terminals.
4305 long-standing problem with garbage characters in some terminals.
4300 The issue was really that the \001 and \002 escapes must _only_ be
4306 The issue was really that the \001 and \002 escapes must _only_ be
4301 passed to input prompts (which call readline), but _never_ to
4307 passed to input prompts (which call readline), but _never_ to
4302 normal text to be printed on screen. I changed ColorANSI to have
4308 normal text to be printed on screen. I changed ColorANSI to have
4303 two classes: TermColors and InputTermColors, each with the
4309 two classes: TermColors and InputTermColors, each with the
4304 appropriate escapes for input prompts or normal text. The code in
4310 appropriate escapes for input prompts or normal text. The code in
4305 Prompts.py got slightly more complicated, but this very old and
4311 Prompts.py got slightly more complicated, but this very old and
4306 annoying bug is finally fixed.
4312 annoying bug is finally fixed.
4307
4313
4308 All the credit for nailing down the real origin of this problem
4314 All the credit for nailing down the real origin of this problem
4309 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4315 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4310 *Many* thanks to him for spending quite a bit of effort on this.
4316 *Many* thanks to him for spending quite a bit of effort on this.
4311
4317
4312 2003-03-05 *** Released version 0.2.15pre1
4318 2003-03-05 *** Released version 0.2.15pre1
4313
4319
4314 2003-03-03 Fernando Perez <fperez@colorado.edu>
4320 2003-03-03 Fernando Perez <fperez@colorado.edu>
4315
4321
4316 * IPython/FakeModule.py: Moved the former _FakeModule to a
4322 * IPython/FakeModule.py: Moved the former _FakeModule to a
4317 separate file, because it's also needed by Magic (to fix a similar
4323 separate file, because it's also needed by Magic (to fix a similar
4318 pickle-related issue in @run).
4324 pickle-related issue in @run).
4319
4325
4320 2003-03-02 Fernando Perez <fperez@colorado.edu>
4326 2003-03-02 Fernando Perez <fperez@colorado.edu>
4321
4327
4322 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4328 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4323 the autocall option at runtime.
4329 the autocall option at runtime.
4324 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4330 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4325 across Magic.py to start separating Magic from InteractiveShell.
4331 across Magic.py to start separating Magic from InteractiveShell.
4326 (Magic._ofind): Fixed to return proper namespace for dotted
4332 (Magic._ofind): Fixed to return proper namespace for dotted
4327 names. Before, a dotted name would always return 'not currently
4333 names. Before, a dotted name would always return 'not currently
4328 defined', because it would find the 'parent'. s.x would be found,
4334 defined', because it would find the 'parent'. s.x would be found,
4329 but since 'x' isn't defined by itself, it would get confused.
4335 but since 'x' isn't defined by itself, it would get confused.
4330 (Magic.magic_run): Fixed pickling problems reported by Ralf
4336 (Magic.magic_run): Fixed pickling problems reported by Ralf
4331 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4337 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4332 that I'd used when Mike Heeter reported similar issues at the
4338 that I'd used when Mike Heeter reported similar issues at the
4333 top-level, but now for @run. It boils down to injecting the
4339 top-level, but now for @run. It boils down to injecting the
4334 namespace where code is being executed with something that looks
4340 namespace where code is being executed with something that looks
4335 enough like a module to fool pickle.dump(). Since a pickle stores
4341 enough like a module to fool pickle.dump(). Since a pickle stores
4336 a named reference to the importing module, we need this for
4342 a named reference to the importing module, we need this for
4337 pickles to save something sensible.
4343 pickles to save something sensible.
4338
4344
4339 * IPython/ipmaker.py (make_IPython): added an autocall option.
4345 * IPython/ipmaker.py (make_IPython): added an autocall option.
4340
4346
4341 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4347 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4342 the auto-eval code. Now autocalling is an option, and the code is
4348 the auto-eval code. Now autocalling is an option, and the code is
4343 also vastly safer. There is no more eval() involved at all.
4349 also vastly safer. There is no more eval() involved at all.
4344
4350
4345 2003-03-01 Fernando Perez <fperez@colorado.edu>
4351 2003-03-01 Fernando Perez <fperez@colorado.edu>
4346
4352
4347 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4353 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4348 dict with named keys instead of a tuple.
4354 dict with named keys instead of a tuple.
4349
4355
4350 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4356 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4351
4357
4352 * setup.py (make_shortcut): Fixed message about directories
4358 * setup.py (make_shortcut): Fixed message about directories
4353 created during Windows installation (the directories were ok, just
4359 created during Windows installation (the directories were ok, just
4354 the printed message was misleading). Thanks to Chris Liechti
4360 the printed message was misleading). Thanks to Chris Liechti
4355 <cliechti-AT-gmx.net> for the heads up.
4361 <cliechti-AT-gmx.net> for the heads up.
4356
4362
4357 2003-02-21 Fernando Perez <fperez@colorado.edu>
4363 2003-02-21 Fernando Perez <fperez@colorado.edu>
4358
4364
4359 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4365 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4360 of ValueError exception when checking for auto-execution. This
4366 of ValueError exception when checking for auto-execution. This
4361 one is raised by things like Numeric arrays arr.flat when the
4367 one is raised by things like Numeric arrays arr.flat when the
4362 array is non-contiguous.
4368 array is non-contiguous.
4363
4369
4364 2003-01-31 Fernando Perez <fperez@colorado.edu>
4370 2003-01-31 Fernando Perez <fperez@colorado.edu>
4365
4371
4366 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4372 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4367 not return any value at all (even though the command would get
4373 not return any value at all (even though the command would get
4368 executed).
4374 executed).
4369 (xsys): Flush stdout right after printing the command to ensure
4375 (xsys): Flush stdout right after printing the command to ensure
4370 proper ordering of commands and command output in the total
4376 proper ordering of commands and command output in the total
4371 output.
4377 output.
4372 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4378 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4373 system/getoutput as defaults. The old ones are kept for
4379 system/getoutput as defaults. The old ones are kept for
4374 compatibility reasons, so no code which uses this library needs
4380 compatibility reasons, so no code which uses this library needs
4375 changing.
4381 changing.
4376
4382
4377 2003-01-27 *** Released version 0.2.14
4383 2003-01-27 *** Released version 0.2.14
4378
4384
4379 2003-01-25 Fernando Perez <fperez@colorado.edu>
4385 2003-01-25 Fernando Perez <fperez@colorado.edu>
4380
4386
4381 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4387 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4382 functions defined in previous edit sessions could not be re-edited
4388 functions defined in previous edit sessions could not be re-edited
4383 (because the temp files were immediately removed). Now temp files
4389 (because the temp files were immediately removed). Now temp files
4384 are removed only at IPython's exit.
4390 are removed only at IPython's exit.
4385 (Magic.magic_run): Improved @run to perform shell-like expansions
4391 (Magic.magic_run): Improved @run to perform shell-like expansions
4386 on its arguments (~users and $VARS). With this, @run becomes more
4392 on its arguments (~users and $VARS). With this, @run becomes more
4387 like a normal command-line.
4393 like a normal command-line.
4388
4394
4389 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4395 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4390 bugs related to embedding and cleaned up that code. A fairly
4396 bugs related to embedding and cleaned up that code. A fairly
4391 important one was the impossibility to access the global namespace
4397 important one was the impossibility to access the global namespace
4392 through the embedded IPython (only local variables were visible).
4398 through the embedded IPython (only local variables were visible).
4393
4399
4394 2003-01-14 Fernando Perez <fperez@colorado.edu>
4400 2003-01-14 Fernando Perez <fperez@colorado.edu>
4395
4401
4396 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4402 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4397 auto-calling to be a bit more conservative. Now it doesn't get
4403 auto-calling to be a bit more conservative. Now it doesn't get
4398 triggered if any of '!=()<>' are in the rest of the input line, to
4404 triggered if any of '!=()<>' are in the rest of the input line, to
4399 allow comparing callables. Thanks to Alex for the heads up.
4405 allow comparing callables. Thanks to Alex for the heads up.
4400
4406
4401 2003-01-07 Fernando Perez <fperez@colorado.edu>
4407 2003-01-07 Fernando Perez <fperez@colorado.edu>
4402
4408
4403 * IPython/genutils.py (page): fixed estimation of the number of
4409 * IPython/genutils.py (page): fixed estimation of the number of
4404 lines in a string to be paged to simply count newlines. This
4410 lines in a string to be paged to simply count newlines. This
4405 prevents over-guessing due to embedded escape sequences. A better
4411 prevents over-guessing due to embedded escape sequences. A better
4406 long-term solution would involve stripping out the control chars
4412 long-term solution would involve stripping out the control chars
4407 for the count, but it's potentially so expensive I just don't
4413 for the count, but it's potentially so expensive I just don't
4408 think it's worth doing.
4414 think it's worth doing.
4409
4415
4410 2002-12-19 *** Released version 0.2.14pre50
4416 2002-12-19 *** Released version 0.2.14pre50
4411
4417
4412 2002-12-19 Fernando Perez <fperez@colorado.edu>
4418 2002-12-19 Fernando Perez <fperez@colorado.edu>
4413
4419
4414 * tools/release (version): Changed release scripts to inform
4420 * tools/release (version): Changed release scripts to inform
4415 Andrea and build a NEWS file with a list of recent changes.
4421 Andrea and build a NEWS file with a list of recent changes.
4416
4422
4417 * IPython/ColorANSI.py (__all__): changed terminal detection
4423 * IPython/ColorANSI.py (__all__): changed terminal detection
4418 code. Seems to work better for xterms without breaking
4424 code. Seems to work better for xterms without breaking
4419 konsole. Will need more testing to determine if WinXP and Mac OSX
4425 konsole. Will need more testing to determine if WinXP and Mac OSX
4420 also work ok.
4426 also work ok.
4421
4427
4422 2002-12-18 *** Released version 0.2.14pre49
4428 2002-12-18 *** Released version 0.2.14pre49
4423
4429
4424 2002-12-18 Fernando Perez <fperez@colorado.edu>
4430 2002-12-18 Fernando Perez <fperez@colorado.edu>
4425
4431
4426 * Docs: added new info about Mac OSX, from Andrea.
4432 * Docs: added new info about Mac OSX, from Andrea.
4427
4433
4428 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4434 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4429 allow direct plotting of python strings whose format is the same
4435 allow direct plotting of python strings whose format is the same
4430 of gnuplot data files.
4436 of gnuplot data files.
4431
4437
4432 2002-12-16 Fernando Perez <fperez@colorado.edu>
4438 2002-12-16 Fernando Perez <fperez@colorado.edu>
4433
4439
4434 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4440 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4435 value of exit question to be acknowledged.
4441 value of exit question to be acknowledged.
4436
4442
4437 2002-12-03 Fernando Perez <fperez@colorado.edu>
4443 2002-12-03 Fernando Perez <fperez@colorado.edu>
4438
4444
4439 * IPython/ipmaker.py: removed generators, which had been added
4445 * IPython/ipmaker.py: removed generators, which had been added
4440 by mistake in an earlier debugging run. This was causing trouble
4446 by mistake in an earlier debugging run. This was causing trouble
4441 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4447 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4442 for pointing this out.
4448 for pointing this out.
4443
4449
4444 2002-11-17 Fernando Perez <fperez@colorado.edu>
4450 2002-11-17 Fernando Perez <fperez@colorado.edu>
4445
4451
4446 * Manual: updated the Gnuplot section.
4452 * Manual: updated the Gnuplot section.
4447
4453
4448 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4454 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4449 a much better split of what goes in Runtime and what goes in
4455 a much better split of what goes in Runtime and what goes in
4450 Interactive.
4456 Interactive.
4451
4457
4452 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4458 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4453 being imported from iplib.
4459 being imported from iplib.
4454
4460
4455 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4461 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4456 for command-passing. Now the global Gnuplot instance is called
4462 for command-passing. Now the global Gnuplot instance is called
4457 'gp' instead of 'g', which was really a far too fragile and
4463 'gp' instead of 'g', which was really a far too fragile and
4458 common name.
4464 common name.
4459
4465
4460 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4466 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4461 bounding boxes generated by Gnuplot for square plots.
4467 bounding boxes generated by Gnuplot for square plots.
4462
4468
4463 * IPython/genutils.py (popkey): new function added. I should
4469 * IPython/genutils.py (popkey): new function added. I should
4464 suggest this on c.l.py as a dict method, it seems useful.
4470 suggest this on c.l.py as a dict method, it seems useful.
4465
4471
4466 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4472 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4467 to transparently handle PostScript generation. MUCH better than
4473 to transparently handle PostScript generation. MUCH better than
4468 the previous plot_eps/replot_eps (which I removed now). The code
4474 the previous plot_eps/replot_eps (which I removed now). The code
4469 is also fairly clean and well documented now (including
4475 is also fairly clean and well documented now (including
4470 docstrings).
4476 docstrings).
4471
4477
4472 2002-11-13 Fernando Perez <fperez@colorado.edu>
4478 2002-11-13 Fernando Perez <fperez@colorado.edu>
4473
4479
4474 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4480 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4475 (inconsistent with options).
4481 (inconsistent with options).
4476
4482
4477 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4483 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4478 manually disabled, I don't know why. Fixed it.
4484 manually disabled, I don't know why. Fixed it.
4479 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4485 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4480 eps output.
4486 eps output.
4481
4487
4482 2002-11-12 Fernando Perez <fperez@colorado.edu>
4488 2002-11-12 Fernando Perez <fperez@colorado.edu>
4483
4489
4484 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4490 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4485 don't propagate up to caller. Fixes crash reported by François
4491 don't propagate up to caller. Fixes crash reported by François
4486 Pinard.
4492 Pinard.
4487
4493
4488 2002-11-09 Fernando Perez <fperez@colorado.edu>
4494 2002-11-09 Fernando Perez <fperez@colorado.edu>
4489
4495
4490 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4496 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4491 history file for new users.
4497 history file for new users.
4492 (make_IPython): fixed bug where initial install would leave the
4498 (make_IPython): fixed bug where initial install would leave the
4493 user running in the .ipython dir.
4499 user running in the .ipython dir.
4494 (make_IPython): fixed bug where config dir .ipython would be
4500 (make_IPython): fixed bug where config dir .ipython would be
4495 created regardless of the given -ipythondir option. Thanks to Cory
4501 created regardless of the given -ipythondir option. Thanks to Cory
4496 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4502 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4497
4503
4498 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4504 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4499 type confirmations. Will need to use it in all of IPython's code
4505 type confirmations. Will need to use it in all of IPython's code
4500 consistently.
4506 consistently.
4501
4507
4502 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4508 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4503 context to print 31 lines instead of the default 5. This will make
4509 context to print 31 lines instead of the default 5. This will make
4504 the crash reports extremely detailed in case the problem is in
4510 the crash reports extremely detailed in case the problem is in
4505 libraries I don't have access to.
4511 libraries I don't have access to.
4506
4512
4507 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4513 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4508 line of defense' code to still crash, but giving users fair
4514 line of defense' code to still crash, but giving users fair
4509 warning. I don't want internal errors to go unreported: if there's
4515 warning. I don't want internal errors to go unreported: if there's
4510 an internal problem, IPython should crash and generate a full
4516 an internal problem, IPython should crash and generate a full
4511 report.
4517 report.
4512
4518
4513 2002-11-08 Fernando Perez <fperez@colorado.edu>
4519 2002-11-08 Fernando Perez <fperez@colorado.edu>
4514
4520
4515 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4521 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4516 otherwise uncaught exceptions which can appear if people set
4522 otherwise uncaught exceptions which can appear if people set
4517 sys.stdout to something badly broken. Thanks to a crash report
4523 sys.stdout to something badly broken. Thanks to a crash report
4518 from henni-AT-mail.brainbot.com.
4524 from henni-AT-mail.brainbot.com.
4519
4525
4520 2002-11-04 Fernando Perez <fperez@colorado.edu>
4526 2002-11-04 Fernando Perez <fperez@colorado.edu>
4521
4527
4522 * IPython/iplib.py (InteractiveShell.interact): added
4528 * IPython/iplib.py (InteractiveShell.interact): added
4523 __IPYTHON__active to the builtins. It's a flag which goes on when
4529 __IPYTHON__active to the builtins. It's a flag which goes on when
4524 the interaction starts and goes off again when it stops. This
4530 the interaction starts and goes off again when it stops. This
4525 allows embedding code to detect being inside IPython. Before this
4531 allows embedding code to detect being inside IPython. Before this
4526 was done via __IPYTHON__, but that only shows that an IPython
4532 was done via __IPYTHON__, but that only shows that an IPython
4527 instance has been created.
4533 instance has been created.
4528
4534
4529 * IPython/Magic.py (Magic.magic_env): I realized that in a
4535 * IPython/Magic.py (Magic.magic_env): I realized that in a
4530 UserDict, instance.data holds the data as a normal dict. So I
4536 UserDict, instance.data holds the data as a normal dict. So I
4531 modified @env to return os.environ.data instead of rebuilding a
4537 modified @env to return os.environ.data instead of rebuilding a
4532 dict by hand.
4538 dict by hand.
4533
4539
4534 2002-11-02 Fernando Perez <fperez@colorado.edu>
4540 2002-11-02 Fernando Perez <fperez@colorado.edu>
4535
4541
4536 * IPython/genutils.py (warn): changed so that level 1 prints no
4542 * IPython/genutils.py (warn): changed so that level 1 prints no
4537 header. Level 2 is now the default (with 'WARNING' header, as
4543 header. Level 2 is now the default (with 'WARNING' header, as
4538 before). I think I tracked all places where changes were needed in
4544 before). I think I tracked all places where changes were needed in
4539 IPython, but outside code using the old level numbering may have
4545 IPython, but outside code using the old level numbering may have
4540 broken.
4546 broken.
4541
4547
4542 * IPython/iplib.py (InteractiveShell.runcode): added this to
4548 * IPython/iplib.py (InteractiveShell.runcode): added this to
4543 handle the tracebacks in SystemExit traps correctly. The previous
4549 handle the tracebacks in SystemExit traps correctly. The previous
4544 code (through interact) was printing more of the stack than
4550 code (through interact) was printing more of the stack than
4545 necessary, showing IPython internal code to the user.
4551 necessary, showing IPython internal code to the user.
4546
4552
4547 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4553 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4548 default. Now that the default at the confirmation prompt is yes,
4554 default. Now that the default at the confirmation prompt is yes,
4549 it's not so intrusive. François' argument that ipython sessions
4555 it's not so intrusive. François' argument that ipython sessions
4550 tend to be complex enough not to lose them from an accidental C-d,
4556 tend to be complex enough not to lose them from an accidental C-d,
4551 is a valid one.
4557 is a valid one.
4552
4558
4553 * IPython/iplib.py (InteractiveShell.interact): added a
4559 * IPython/iplib.py (InteractiveShell.interact): added a
4554 showtraceback() call to the SystemExit trap, and modified the exit
4560 showtraceback() call to the SystemExit trap, and modified the exit
4555 confirmation to have yes as the default.
4561 confirmation to have yes as the default.
4556
4562
4557 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4563 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4558 this file. It's been gone from the code for a long time, this was
4564 this file. It's been gone from the code for a long time, this was
4559 simply leftover junk.
4565 simply leftover junk.
4560
4566
4561 2002-11-01 Fernando Perez <fperez@colorado.edu>
4567 2002-11-01 Fernando Perez <fperez@colorado.edu>
4562
4568
4563 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4569 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4564 added. If set, IPython now traps EOF and asks for
4570 added. If set, IPython now traps EOF and asks for
4565 confirmation. After a request by François Pinard.
4571 confirmation. After a request by François Pinard.
4566
4572
4567 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4573 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4568 of @abort, and with a new (better) mechanism for handling the
4574 of @abort, and with a new (better) mechanism for handling the
4569 exceptions.
4575 exceptions.
4570
4576
4571 2002-10-27 Fernando Perez <fperez@colorado.edu>
4577 2002-10-27 Fernando Perez <fperez@colorado.edu>
4572
4578
4573 * IPython/usage.py (__doc__): updated the --help information and
4579 * IPython/usage.py (__doc__): updated the --help information and
4574 the ipythonrc file to indicate that -log generates
4580 the ipythonrc file to indicate that -log generates
4575 ./ipython.log. Also fixed the corresponding info in @logstart.
4581 ./ipython.log. Also fixed the corresponding info in @logstart.
4576 This and several other fixes in the manuals thanks to reports by
4582 This and several other fixes in the manuals thanks to reports by
4577 François Pinard <pinard-AT-iro.umontreal.ca>.
4583 François Pinard <pinard-AT-iro.umontreal.ca>.
4578
4584
4579 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4585 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4580 refer to @logstart (instead of @log, which doesn't exist).
4586 refer to @logstart (instead of @log, which doesn't exist).
4581
4587
4582 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4588 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4583 AttributeError crash. Thanks to Christopher Armstrong
4589 AttributeError crash. Thanks to Christopher Armstrong
4584 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4590 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4585 introduced recently (in 0.2.14pre37) with the fix to the eval
4591 introduced recently (in 0.2.14pre37) with the fix to the eval
4586 problem mentioned below.
4592 problem mentioned below.
4587
4593
4588 2002-10-17 Fernando Perez <fperez@colorado.edu>
4594 2002-10-17 Fernando Perez <fperez@colorado.edu>
4589
4595
4590 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4596 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4591 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4597 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4592
4598
4593 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4599 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4594 this function to fix a problem reported by Alex Schmolck. He saw
4600 this function to fix a problem reported by Alex Schmolck. He saw
4595 it with list comprehensions and generators, which were getting
4601 it with list comprehensions and generators, which were getting
4596 called twice. The real problem was an 'eval' call in testing for
4602 called twice. The real problem was an 'eval' call in testing for
4597 automagic which was evaluating the input line silently.
4603 automagic which was evaluating the input line silently.
4598
4604
4599 This is a potentially very nasty bug, if the input has side
4605 This is a potentially very nasty bug, if the input has side
4600 effects which must not be repeated. The code is much cleaner now,
4606 effects which must not be repeated. The code is much cleaner now,
4601 without any blanket 'except' left and with a regexp test for
4607 without any blanket 'except' left and with a regexp test for
4602 actual function names.
4608 actual function names.
4603
4609
4604 But an eval remains, which I'm not fully comfortable with. I just
4610 But an eval remains, which I'm not fully comfortable with. I just
4605 don't know how to find out if an expression could be a callable in
4611 don't know how to find out if an expression could be a callable in
4606 the user's namespace without doing an eval on the string. However
4612 the user's namespace without doing an eval on the string. However
4607 that string is now much more strictly checked so that no code
4613 that string is now much more strictly checked so that no code
4608 slips by, so the eval should only happen for things that can
4614 slips by, so the eval should only happen for things that can
4609 really be only function/method names.
4615 really be only function/method names.
4610
4616
4611 2002-10-15 Fernando Perez <fperez@colorado.edu>
4617 2002-10-15 Fernando Perez <fperez@colorado.edu>
4612
4618
4613 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4619 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4614 OSX information to main manual, removed README_Mac_OSX file from
4620 OSX information to main manual, removed README_Mac_OSX file from
4615 distribution. Also updated credits for recent additions.
4621 distribution. Also updated credits for recent additions.
4616
4622
4617 2002-10-10 Fernando Perez <fperez@colorado.edu>
4623 2002-10-10 Fernando Perez <fperez@colorado.edu>
4618
4624
4619 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4625 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4620 terminal-related issues. Many thanks to Andrea Riciputi
4626 terminal-related issues. Many thanks to Andrea Riciputi
4621 <andrea.riciputi-AT-libero.it> for writing it.
4627 <andrea.riciputi-AT-libero.it> for writing it.
4622
4628
4623 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4629 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4624 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4630 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4625
4631
4626 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4632 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4627 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4633 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4628 <syver-en-AT-online.no> who both submitted patches for this problem.
4634 <syver-en-AT-online.no> who both submitted patches for this problem.
4629
4635
4630 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4636 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4631 global embedding to make sure that things don't overwrite user
4637 global embedding to make sure that things don't overwrite user
4632 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4638 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4633
4639
4634 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4640 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4635 compatibility. Thanks to Hayden Callow
4641 compatibility. Thanks to Hayden Callow
4636 <h.callow-AT-elec.canterbury.ac.nz>
4642 <h.callow-AT-elec.canterbury.ac.nz>
4637
4643
4638 2002-10-04 Fernando Perez <fperez@colorado.edu>
4644 2002-10-04 Fernando Perez <fperez@colorado.edu>
4639
4645
4640 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4646 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4641 Gnuplot.File objects.
4647 Gnuplot.File objects.
4642
4648
4643 2002-07-23 Fernando Perez <fperez@colorado.edu>
4649 2002-07-23 Fernando Perez <fperez@colorado.edu>
4644
4650
4645 * IPython/genutils.py (timing): Added timings() and timing() for
4651 * IPython/genutils.py (timing): Added timings() and timing() for
4646 quick access to the most commonly needed data, the execution
4652 quick access to the most commonly needed data, the execution
4647 times. Old timing() renamed to timings_out().
4653 times. Old timing() renamed to timings_out().
4648
4654
4649 2002-07-18 Fernando Perez <fperez@colorado.edu>
4655 2002-07-18 Fernando Perez <fperez@colorado.edu>
4650
4656
4651 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4657 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4652 bug with nested instances disrupting the parent's tab completion.
4658 bug with nested instances disrupting the parent's tab completion.
4653
4659
4654 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4660 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4655 all_completions code to begin the emacs integration.
4661 all_completions code to begin the emacs integration.
4656
4662
4657 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4663 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4658 argument to allow titling individual arrays when plotting.
4664 argument to allow titling individual arrays when plotting.
4659
4665
4660 2002-07-15 Fernando Perez <fperez@colorado.edu>
4666 2002-07-15 Fernando Perez <fperez@colorado.edu>
4661
4667
4662 * setup.py (make_shortcut): changed to retrieve the value of
4668 * setup.py (make_shortcut): changed to retrieve the value of
4663 'Program Files' directory from the registry (this value changes in
4669 'Program Files' directory from the registry (this value changes in
4664 non-english versions of Windows). Thanks to Thomas Fanslau
4670 non-english versions of Windows). Thanks to Thomas Fanslau
4665 <tfanslau-AT-gmx.de> for the report.
4671 <tfanslau-AT-gmx.de> for the report.
4666
4672
4667 2002-07-10 Fernando Perez <fperez@colorado.edu>
4673 2002-07-10 Fernando Perez <fperez@colorado.edu>
4668
4674
4669 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4675 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4670 a bug in pdb, which crashes if a line with only whitespace is
4676 a bug in pdb, which crashes if a line with only whitespace is
4671 entered. Bug report submitted to sourceforge.
4677 entered. Bug report submitted to sourceforge.
4672
4678
4673 2002-07-09 Fernando Perez <fperez@colorado.edu>
4679 2002-07-09 Fernando Perez <fperez@colorado.edu>
4674
4680
4675 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4681 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4676 reporting exceptions (it's a bug in inspect.py, I just set a
4682 reporting exceptions (it's a bug in inspect.py, I just set a
4677 workaround).
4683 workaround).
4678
4684
4679 2002-07-08 Fernando Perez <fperez@colorado.edu>
4685 2002-07-08 Fernando Perez <fperez@colorado.edu>
4680
4686
4681 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4687 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4682 __IPYTHON__ in __builtins__ to show up in user_ns.
4688 __IPYTHON__ in __builtins__ to show up in user_ns.
4683
4689
4684 2002-07-03 Fernando Perez <fperez@colorado.edu>
4690 2002-07-03 Fernando Perez <fperez@colorado.edu>
4685
4691
4686 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4692 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4687 name from @gp_set_instance to @gp_set_default.
4693 name from @gp_set_instance to @gp_set_default.
4688
4694
4689 * IPython/ipmaker.py (make_IPython): default editor value set to
4695 * IPython/ipmaker.py (make_IPython): default editor value set to
4690 '0' (a string), to match the rc file. Otherwise will crash when
4696 '0' (a string), to match the rc file. Otherwise will crash when
4691 .strip() is called on it.
4697 .strip() is called on it.
4692
4698
4693
4699
4694 2002-06-28 Fernando Perez <fperez@colorado.edu>
4700 2002-06-28 Fernando Perez <fperez@colorado.edu>
4695
4701
4696 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4702 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4697 of files in current directory when a file is executed via
4703 of files in current directory when a file is executed via
4698 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4704 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4699
4705
4700 * setup.py (manfiles): fix for rpm builds, submitted by RA
4706 * setup.py (manfiles): fix for rpm builds, submitted by RA
4701 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4707 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4702
4708
4703 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4709 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4704 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4710 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4705 string!). A. Schmolck caught this one.
4711 string!). A. Schmolck caught this one.
4706
4712
4707 2002-06-27 Fernando Perez <fperez@colorado.edu>
4713 2002-06-27 Fernando Perez <fperez@colorado.edu>
4708
4714
4709 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4715 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4710 defined files at the cmd line. __name__ wasn't being set to
4716 defined files at the cmd line. __name__ wasn't being set to
4711 __main__.
4717 __main__.
4712
4718
4713 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4719 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4714 regular lists and tuples besides Numeric arrays.
4720 regular lists and tuples besides Numeric arrays.
4715
4721
4716 * IPython/Prompts.py (CachedOutput.__call__): Added output
4722 * IPython/Prompts.py (CachedOutput.__call__): Added output
4717 supression for input ending with ';'. Similar to Mathematica and
4723 supression for input ending with ';'. Similar to Mathematica and
4718 Matlab. The _* vars and Out[] list are still updated, just like
4724 Matlab. The _* vars and Out[] list are still updated, just like
4719 Mathematica behaves.
4725 Mathematica behaves.
4720
4726
4721 2002-06-25 Fernando Perez <fperez@colorado.edu>
4727 2002-06-25 Fernando Perez <fperez@colorado.edu>
4722
4728
4723 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4729 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4724 .ini extensions for profiels under Windows.
4730 .ini extensions for profiels under Windows.
4725
4731
4726 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4732 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4727 string form. Fix contributed by Alexander Schmolck
4733 string form. Fix contributed by Alexander Schmolck
4728 <a.schmolck-AT-gmx.net>
4734 <a.schmolck-AT-gmx.net>
4729
4735
4730 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4736 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4731 pre-configured Gnuplot instance.
4737 pre-configured Gnuplot instance.
4732
4738
4733 2002-06-21 Fernando Perez <fperez@colorado.edu>
4739 2002-06-21 Fernando Perez <fperez@colorado.edu>
4734
4740
4735 * IPython/numutils.py (exp_safe): new function, works around the
4741 * IPython/numutils.py (exp_safe): new function, works around the
4736 underflow problems in Numeric.
4742 underflow problems in Numeric.
4737 (log2): New fn. Safe log in base 2: returns exact integer answer
4743 (log2): New fn. Safe log in base 2: returns exact integer answer
4738 for exact integer powers of 2.
4744 for exact integer powers of 2.
4739
4745
4740 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4746 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4741 properly.
4747 properly.
4742
4748
4743 2002-06-20 Fernando Perez <fperez@colorado.edu>
4749 2002-06-20 Fernando Perez <fperez@colorado.edu>
4744
4750
4745 * IPython/genutils.py (timing): new function like
4751 * IPython/genutils.py (timing): new function like
4746 Mathematica's. Similar to time_test, but returns more info.
4752 Mathematica's. Similar to time_test, but returns more info.
4747
4753
4748 2002-06-18 Fernando Perez <fperez@colorado.edu>
4754 2002-06-18 Fernando Perez <fperez@colorado.edu>
4749
4755
4750 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4756 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4751 according to Mike Heeter's suggestions.
4757 according to Mike Heeter's suggestions.
4752
4758
4753 2002-06-16 Fernando Perez <fperez@colorado.edu>
4759 2002-06-16 Fernando Perez <fperez@colorado.edu>
4754
4760
4755 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4761 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4756 system. GnuplotMagic is gone as a user-directory option. New files
4762 system. GnuplotMagic is gone as a user-directory option. New files
4757 make it easier to use all the gnuplot stuff both from external
4763 make it easier to use all the gnuplot stuff both from external
4758 programs as well as from IPython. Had to rewrite part of
4764 programs as well as from IPython. Had to rewrite part of
4759 hardcopy() b/c of a strange bug: often the ps files simply don't
4765 hardcopy() b/c of a strange bug: often the ps files simply don't
4760 get created, and require a repeat of the command (often several
4766 get created, and require a repeat of the command (often several
4761 times).
4767 times).
4762
4768
4763 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4769 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4764 resolve output channel at call time, so that if sys.stderr has
4770 resolve output channel at call time, so that if sys.stderr has
4765 been redirected by user this gets honored.
4771 been redirected by user this gets honored.
4766
4772
4767 2002-06-13 Fernando Perez <fperez@colorado.edu>
4773 2002-06-13 Fernando Perez <fperez@colorado.edu>
4768
4774
4769 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4775 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4770 IPShell. Kept a copy with the old names to avoid breaking people's
4776 IPShell. Kept a copy with the old names to avoid breaking people's
4771 embedded code.
4777 embedded code.
4772
4778
4773 * IPython/ipython: simplified it to the bare minimum after
4779 * IPython/ipython: simplified it to the bare minimum after
4774 Holger's suggestions. Added info about how to use it in
4780 Holger's suggestions. Added info about how to use it in
4775 PYTHONSTARTUP.
4781 PYTHONSTARTUP.
4776
4782
4777 * IPython/Shell.py (IPythonShell): changed the options passing
4783 * IPython/Shell.py (IPythonShell): changed the options passing
4778 from a string with funky %s replacements to a straight list. Maybe
4784 from a string with funky %s replacements to a straight list. Maybe
4779 a bit more typing, but it follows sys.argv conventions, so there's
4785 a bit more typing, but it follows sys.argv conventions, so there's
4780 less special-casing to remember.
4786 less special-casing to remember.
4781
4787
4782 2002-06-12 Fernando Perez <fperez@colorado.edu>
4788 2002-06-12 Fernando Perez <fperez@colorado.edu>
4783
4789
4784 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4790 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4785 command. Thanks to a suggestion by Mike Heeter.
4791 command. Thanks to a suggestion by Mike Heeter.
4786 (Magic.magic_pfile): added behavior to look at filenames if given
4792 (Magic.magic_pfile): added behavior to look at filenames if given
4787 arg is not a defined object.
4793 arg is not a defined object.
4788 (Magic.magic_save): New @save function to save code snippets. Also
4794 (Magic.magic_save): New @save function to save code snippets. Also
4789 a Mike Heeter idea.
4795 a Mike Heeter idea.
4790
4796
4791 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4797 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4792 plot() and replot(). Much more convenient now, especially for
4798 plot() and replot(). Much more convenient now, especially for
4793 interactive use.
4799 interactive use.
4794
4800
4795 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4801 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4796 filenames.
4802 filenames.
4797
4803
4798 2002-06-02 Fernando Perez <fperez@colorado.edu>
4804 2002-06-02 Fernando Perez <fperez@colorado.edu>
4799
4805
4800 * IPython/Struct.py (Struct.__init__): modified to admit
4806 * IPython/Struct.py (Struct.__init__): modified to admit
4801 initialization via another struct.
4807 initialization via another struct.
4802
4808
4803 * IPython/genutils.py (SystemExec.__init__): New stateful
4809 * IPython/genutils.py (SystemExec.__init__): New stateful
4804 interface to xsys and bq. Useful for writing system scripts.
4810 interface to xsys and bq. Useful for writing system scripts.
4805
4811
4806 2002-05-30 Fernando Perez <fperez@colorado.edu>
4812 2002-05-30 Fernando Perez <fperez@colorado.edu>
4807
4813
4808 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4814 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4809 documents. This will make the user download smaller (it's getting
4815 documents. This will make the user download smaller (it's getting
4810 too big).
4816 too big).
4811
4817
4812 2002-05-29 Fernando Perez <fperez@colorado.edu>
4818 2002-05-29 Fernando Perez <fperez@colorado.edu>
4813
4819
4814 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4820 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4815 fix problems with shelve and pickle. Seems to work, but I don't
4821 fix problems with shelve and pickle. Seems to work, but I don't
4816 know if corner cases break it. Thanks to Mike Heeter
4822 know if corner cases break it. Thanks to Mike Heeter
4817 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4823 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4818
4824
4819 2002-05-24 Fernando Perez <fperez@colorado.edu>
4825 2002-05-24 Fernando Perez <fperez@colorado.edu>
4820
4826
4821 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4827 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4822 macros having broken.
4828 macros having broken.
4823
4829
4824 2002-05-21 Fernando Perez <fperez@colorado.edu>
4830 2002-05-21 Fernando Perez <fperez@colorado.edu>
4825
4831
4826 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4832 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4827 introduced logging bug: all history before logging started was
4833 introduced logging bug: all history before logging started was
4828 being written one character per line! This came from the redesign
4834 being written one character per line! This came from the redesign
4829 of the input history as a special list which slices to strings,
4835 of the input history as a special list which slices to strings,
4830 not to lists.
4836 not to lists.
4831
4837
4832 2002-05-20 Fernando Perez <fperez@colorado.edu>
4838 2002-05-20 Fernando Perez <fperez@colorado.edu>
4833
4839
4834 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4840 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4835 be an attribute of all classes in this module. The design of these
4841 be an attribute of all classes in this module. The design of these
4836 classes needs some serious overhauling.
4842 classes needs some serious overhauling.
4837
4843
4838 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4844 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4839 which was ignoring '_' in option names.
4845 which was ignoring '_' in option names.
4840
4846
4841 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4847 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4842 'Verbose_novars' to 'Context' and made it the new default. It's a
4848 'Verbose_novars' to 'Context' and made it the new default. It's a
4843 bit more readable and also safer than verbose.
4849 bit more readable and also safer than verbose.
4844
4850
4845 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4851 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4846 triple-quoted strings.
4852 triple-quoted strings.
4847
4853
4848 * IPython/OInspect.py (__all__): new module exposing the object
4854 * IPython/OInspect.py (__all__): new module exposing the object
4849 introspection facilities. Now the corresponding magics are dummy
4855 introspection facilities. Now the corresponding magics are dummy
4850 wrappers around this. Having this module will make it much easier
4856 wrappers around this. Having this module will make it much easier
4851 to put these functions into our modified pdb.
4857 to put these functions into our modified pdb.
4852 This new object inspector system uses the new colorizing module,
4858 This new object inspector system uses the new colorizing module,
4853 so source code and other things are nicely syntax highlighted.
4859 so source code and other things are nicely syntax highlighted.
4854
4860
4855 2002-05-18 Fernando Perez <fperez@colorado.edu>
4861 2002-05-18 Fernando Perez <fperez@colorado.edu>
4856
4862
4857 * IPython/ColorANSI.py: Split the coloring tools into a separate
4863 * IPython/ColorANSI.py: Split the coloring tools into a separate
4858 module so I can use them in other code easier (they were part of
4864 module so I can use them in other code easier (they were part of
4859 ultraTB).
4865 ultraTB).
4860
4866
4861 2002-05-17 Fernando Perez <fperez@colorado.edu>
4867 2002-05-17 Fernando Perez <fperez@colorado.edu>
4862
4868
4863 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4869 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4864 fixed it to set the global 'g' also to the called instance, as
4870 fixed it to set the global 'g' also to the called instance, as
4865 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4871 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4866 user's 'g' variables).
4872 user's 'g' variables).
4867
4873
4868 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4874 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4869 global variables (aliases to _ih,_oh) so that users which expect
4875 global variables (aliases to _ih,_oh) so that users which expect
4870 In[5] or Out[7] to work aren't unpleasantly surprised.
4876 In[5] or Out[7] to work aren't unpleasantly surprised.
4871 (InputList.__getslice__): new class to allow executing slices of
4877 (InputList.__getslice__): new class to allow executing slices of
4872 input history directly. Very simple class, complements the use of
4878 input history directly. Very simple class, complements the use of
4873 macros.
4879 macros.
4874
4880
4875 2002-05-16 Fernando Perez <fperez@colorado.edu>
4881 2002-05-16 Fernando Perez <fperez@colorado.edu>
4876
4882
4877 * setup.py (docdirbase): make doc directory be just doc/IPython
4883 * setup.py (docdirbase): make doc directory be just doc/IPython
4878 without version numbers, it will reduce clutter for users.
4884 without version numbers, it will reduce clutter for users.
4879
4885
4880 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4886 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4881 execfile call to prevent possible memory leak. See for details:
4887 execfile call to prevent possible memory leak. See for details:
4882 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4888 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4883
4889
4884 2002-05-15 Fernando Perez <fperez@colorado.edu>
4890 2002-05-15 Fernando Perez <fperez@colorado.edu>
4885
4891
4886 * IPython/Magic.py (Magic.magic_psource): made the object
4892 * IPython/Magic.py (Magic.magic_psource): made the object
4887 introspection names be more standard: pdoc, pdef, pfile and
4893 introspection names be more standard: pdoc, pdef, pfile and
4888 psource. They all print/page their output, and it makes
4894 psource. They all print/page their output, and it makes
4889 remembering them easier. Kept old names for compatibility as
4895 remembering them easier. Kept old names for compatibility as
4890 aliases.
4896 aliases.
4891
4897
4892 2002-05-14 Fernando Perez <fperez@colorado.edu>
4898 2002-05-14 Fernando Perez <fperez@colorado.edu>
4893
4899
4894 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4900 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
4895 what the mouse problem was. The trick is to use gnuplot with temp
4901 what the mouse problem was. The trick is to use gnuplot with temp
4896 files and NOT with pipes (for data communication), because having
4902 files and NOT with pipes (for data communication), because having
4897 both pipes and the mouse on is bad news.
4903 both pipes and the mouse on is bad news.
4898
4904
4899 2002-05-13 Fernando Perez <fperez@colorado.edu>
4905 2002-05-13 Fernando Perez <fperez@colorado.edu>
4900
4906
4901 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4907 * IPython/Magic.py (Magic._ofind): fixed namespace order search
4902 bug. Information would be reported about builtins even when
4908 bug. Information would be reported about builtins even when
4903 user-defined functions overrode them.
4909 user-defined functions overrode them.
4904
4910
4905 2002-05-11 Fernando Perez <fperez@colorado.edu>
4911 2002-05-11 Fernando Perez <fperez@colorado.edu>
4906
4912
4907 * IPython/__init__.py (__all__): removed FlexCompleter from
4913 * IPython/__init__.py (__all__): removed FlexCompleter from
4908 __all__ so that things don't fail in platforms without readline.
4914 __all__ so that things don't fail in platforms without readline.
4909
4915
4910 2002-05-10 Fernando Perez <fperez@colorado.edu>
4916 2002-05-10 Fernando Perez <fperez@colorado.edu>
4911
4917
4912 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4918 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
4913 it requires Numeric, effectively making Numeric a dependency for
4919 it requires Numeric, effectively making Numeric a dependency for
4914 IPython.
4920 IPython.
4915
4921
4916 * Released 0.2.13
4922 * Released 0.2.13
4917
4923
4918 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4924 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
4919 profiler interface. Now all the major options from the profiler
4925 profiler interface. Now all the major options from the profiler
4920 module are directly supported in IPython, both for single
4926 module are directly supported in IPython, both for single
4921 expressions (@prun) and for full programs (@run -p).
4927 expressions (@prun) and for full programs (@run -p).
4922
4928
4923 2002-05-09 Fernando Perez <fperez@colorado.edu>
4929 2002-05-09 Fernando Perez <fperez@colorado.edu>
4924
4930
4925 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4931 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
4926 magic properly formatted for screen.
4932 magic properly formatted for screen.
4927
4933
4928 * setup.py (make_shortcut): Changed things to put pdf version in
4934 * setup.py (make_shortcut): Changed things to put pdf version in
4929 doc/ instead of doc/manual (had to change lyxport a bit).
4935 doc/ instead of doc/manual (had to change lyxport a bit).
4930
4936
4931 * IPython/Magic.py (Profile.string_stats): made profile runs go
4937 * IPython/Magic.py (Profile.string_stats): made profile runs go
4932 through pager (they are long and a pager allows searching, saving,
4938 through pager (they are long and a pager allows searching, saving,
4933 etc.)
4939 etc.)
4934
4940
4935 2002-05-08 Fernando Perez <fperez@colorado.edu>
4941 2002-05-08 Fernando Perez <fperez@colorado.edu>
4936
4942
4937 * Released 0.2.12
4943 * Released 0.2.12
4938
4944
4939 2002-05-06 Fernando Perez <fperez@colorado.edu>
4945 2002-05-06 Fernando Perez <fperez@colorado.edu>
4940
4946
4941 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4947 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
4942 introduced); 'hist n1 n2' was broken.
4948 introduced); 'hist n1 n2' was broken.
4943 (Magic.magic_pdb): added optional on/off arguments to @pdb
4949 (Magic.magic_pdb): added optional on/off arguments to @pdb
4944 (Magic.magic_run): added option -i to @run, which executes code in
4950 (Magic.magic_run): added option -i to @run, which executes code in
4945 the IPython namespace instead of a clean one. Also added @irun as
4951 the IPython namespace instead of a clean one. Also added @irun as
4946 an alias to @run -i.
4952 an alias to @run -i.
4947
4953
4948 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4954 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4949 fixed (it didn't really do anything, the namespaces were wrong).
4955 fixed (it didn't really do anything, the namespaces were wrong).
4950
4956
4951 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4957 * IPython/Debugger.py (__init__): Added workaround for python 2.1
4952
4958
4953 * IPython/__init__.py (__all__): Fixed package namespace, now
4959 * IPython/__init__.py (__all__): Fixed package namespace, now
4954 'import IPython' does give access to IPython.<all> as
4960 'import IPython' does give access to IPython.<all> as
4955 expected. Also renamed __release__ to Release.
4961 expected. Also renamed __release__ to Release.
4956
4962
4957 * IPython/Debugger.py (__license__): created new Pdb class which
4963 * IPython/Debugger.py (__license__): created new Pdb class which
4958 functions like a drop-in for the normal pdb.Pdb but does NOT
4964 functions like a drop-in for the normal pdb.Pdb but does NOT
4959 import readline by default. This way it doesn't muck up IPython's
4965 import readline by default. This way it doesn't muck up IPython's
4960 readline handling, and now tab-completion finally works in the
4966 readline handling, and now tab-completion finally works in the
4961 debugger -- sort of. It completes things globally visible, but the
4967 debugger -- sort of. It completes things globally visible, but the
4962 completer doesn't track the stack as pdb walks it. That's a bit
4968 completer doesn't track the stack as pdb walks it. That's a bit
4963 tricky, and I'll have to implement it later.
4969 tricky, and I'll have to implement it later.
4964
4970
4965 2002-05-05 Fernando Perez <fperez@colorado.edu>
4971 2002-05-05 Fernando Perez <fperez@colorado.edu>
4966
4972
4967 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4973 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
4968 magic docstrings when printed via ? (explicit \'s were being
4974 magic docstrings when printed via ? (explicit \'s were being
4969 printed).
4975 printed).
4970
4976
4971 * IPython/ipmaker.py (make_IPython): fixed namespace
4977 * IPython/ipmaker.py (make_IPython): fixed namespace
4972 identification bug. Now variables loaded via logs or command-line
4978 identification bug. Now variables loaded via logs or command-line
4973 files are recognized in the interactive namespace by @who.
4979 files are recognized in the interactive namespace by @who.
4974
4980
4975 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4981 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
4976 log replay system stemming from the string form of Structs.
4982 log replay system stemming from the string form of Structs.
4977
4983
4978 * IPython/Magic.py (Macro.__init__): improved macros to properly
4984 * IPython/Magic.py (Macro.__init__): improved macros to properly
4979 handle magic commands in them.
4985 handle magic commands in them.
4980 (Magic.magic_logstart): usernames are now expanded so 'logstart
4986 (Magic.magic_logstart): usernames are now expanded so 'logstart
4981 ~/mylog' now works.
4987 ~/mylog' now works.
4982
4988
4983 * IPython/iplib.py (complete): fixed bug where paths starting with
4989 * IPython/iplib.py (complete): fixed bug where paths starting with
4984 '/' would be completed as magic names.
4990 '/' would be completed as magic names.
4985
4991
4986 2002-05-04 Fernando Perez <fperez@colorado.edu>
4992 2002-05-04 Fernando Perez <fperez@colorado.edu>
4987
4993
4988 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4994 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
4989 allow running full programs under the profiler's control.
4995 allow running full programs under the profiler's control.
4990
4996
4991 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4997 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
4992 mode to report exceptions verbosely but without formatting
4998 mode to report exceptions verbosely but without formatting
4993 variables. This addresses the issue of ipython 'freezing' (it's
4999 variables. This addresses the issue of ipython 'freezing' (it's
4994 not frozen, but caught in an expensive formatting loop) when huge
5000 not frozen, but caught in an expensive formatting loop) when huge
4995 variables are in the context of an exception.
5001 variables are in the context of an exception.
4996 (VerboseTB.text): Added '--->' markers at line where exception was
5002 (VerboseTB.text): Added '--->' markers at line where exception was
4997 triggered. Much clearer to read, especially in NoColor modes.
5003 triggered. Much clearer to read, especially in NoColor modes.
4998
5004
4999 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5005 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5000 implemented in reverse when changing to the new parse_options().
5006 implemented in reverse when changing to the new parse_options().
5001
5007
5002 2002-05-03 Fernando Perez <fperez@colorado.edu>
5008 2002-05-03 Fernando Perez <fperez@colorado.edu>
5003
5009
5004 * IPython/Magic.py (Magic.parse_options): new function so that
5010 * IPython/Magic.py (Magic.parse_options): new function so that
5005 magics can parse options easier.
5011 magics can parse options easier.
5006 (Magic.magic_prun): new function similar to profile.run(),
5012 (Magic.magic_prun): new function similar to profile.run(),
5007 suggested by Chris Hart.
5013 suggested by Chris Hart.
5008 (Magic.magic_cd): fixed behavior so that it only changes if
5014 (Magic.magic_cd): fixed behavior so that it only changes if
5009 directory actually is in history.
5015 directory actually is in history.
5010
5016
5011 * IPython/usage.py (__doc__): added information about potential
5017 * IPython/usage.py (__doc__): added information about potential
5012 slowness of Verbose exception mode when there are huge data
5018 slowness of Verbose exception mode when there are huge data
5013 structures to be formatted (thanks to Archie Paulson).
5019 structures to be formatted (thanks to Archie Paulson).
5014
5020
5015 * IPython/ipmaker.py (make_IPython): Changed default logging
5021 * IPython/ipmaker.py (make_IPython): Changed default logging
5016 (when simply called with -log) to use curr_dir/ipython.log in
5022 (when simply called with -log) to use curr_dir/ipython.log in
5017 rotate mode. Fixed crash which was occuring with -log before
5023 rotate mode. Fixed crash which was occuring with -log before
5018 (thanks to Jim Boyle).
5024 (thanks to Jim Boyle).
5019
5025
5020 2002-05-01 Fernando Perez <fperez@colorado.edu>
5026 2002-05-01 Fernando Perez <fperez@colorado.edu>
5021
5027
5022 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5028 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5023 was nasty -- though somewhat of a corner case).
5029 was nasty -- though somewhat of a corner case).
5024
5030
5025 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5031 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5026 text (was a bug).
5032 text (was a bug).
5027
5033
5028 2002-04-30 Fernando Perez <fperez@colorado.edu>
5034 2002-04-30 Fernando Perez <fperez@colorado.edu>
5029
5035
5030 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5036 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5031 a print after ^D or ^C from the user so that the In[] prompt
5037 a print after ^D or ^C from the user so that the In[] prompt
5032 doesn't over-run the gnuplot one.
5038 doesn't over-run the gnuplot one.
5033
5039
5034 2002-04-29 Fernando Perez <fperez@colorado.edu>
5040 2002-04-29 Fernando Perez <fperez@colorado.edu>
5035
5041
5036 * Released 0.2.10
5042 * Released 0.2.10
5037
5043
5038 * IPython/__release__.py (version): get date dynamically.
5044 * IPython/__release__.py (version): get date dynamically.
5039
5045
5040 * Misc. documentation updates thanks to Arnd's comments. Also ran
5046 * Misc. documentation updates thanks to Arnd's comments. Also ran
5041 a full spellcheck on the manual (hadn't been done in a while).
5047 a full spellcheck on the manual (hadn't been done in a while).
5042
5048
5043 2002-04-27 Fernando Perez <fperez@colorado.edu>
5049 2002-04-27 Fernando Perez <fperez@colorado.edu>
5044
5050
5045 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5051 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5046 starting a log in mid-session would reset the input history list.
5052 starting a log in mid-session would reset the input history list.
5047
5053
5048 2002-04-26 Fernando Perez <fperez@colorado.edu>
5054 2002-04-26 Fernando Perez <fperez@colorado.edu>
5049
5055
5050 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5056 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5051 all files were being included in an update. Now anything in
5057 all files were being included in an update. Now anything in
5052 UserConfig that matches [A-Za-z]*.py will go (this excludes
5058 UserConfig that matches [A-Za-z]*.py will go (this excludes
5053 __init__.py)
5059 __init__.py)
5054
5060
5055 2002-04-25 Fernando Perez <fperez@colorado.edu>
5061 2002-04-25 Fernando Perez <fperez@colorado.edu>
5056
5062
5057 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5063 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5058 to __builtins__ so that any form of embedded or imported code can
5064 to __builtins__ so that any form of embedded or imported code can
5059 test for being inside IPython.
5065 test for being inside IPython.
5060
5066
5061 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5067 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5062 changed to GnuplotMagic because it's now an importable module,
5068 changed to GnuplotMagic because it's now an importable module,
5063 this makes the name follow that of the standard Gnuplot module.
5069 this makes the name follow that of the standard Gnuplot module.
5064 GnuplotMagic can now be loaded at any time in mid-session.
5070 GnuplotMagic can now be loaded at any time in mid-session.
5065
5071
5066 2002-04-24 Fernando Perez <fperez@colorado.edu>
5072 2002-04-24 Fernando Perez <fperez@colorado.edu>
5067
5073
5068 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5074 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5069 the globals (IPython has its own namespace) and the
5075 the globals (IPython has its own namespace) and the
5070 PhysicalQuantity stuff is much better anyway.
5076 PhysicalQuantity stuff is much better anyway.
5071
5077
5072 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5078 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5073 embedding example to standard user directory for
5079 embedding example to standard user directory for
5074 distribution. Also put it in the manual.
5080 distribution. Also put it in the manual.
5075
5081
5076 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5082 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5077 instance as first argument (so it doesn't rely on some obscure
5083 instance as first argument (so it doesn't rely on some obscure
5078 hidden global).
5084 hidden global).
5079
5085
5080 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5086 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5081 delimiters. While it prevents ().TAB from working, it allows
5087 delimiters. While it prevents ().TAB from working, it allows
5082 completions in open (... expressions. This is by far a more common
5088 completions in open (... expressions. This is by far a more common
5083 case.
5089 case.
5084
5090
5085 2002-04-23 Fernando Perez <fperez@colorado.edu>
5091 2002-04-23 Fernando Perez <fperez@colorado.edu>
5086
5092
5087 * IPython/Extensions/InterpreterPasteInput.py: new
5093 * IPython/Extensions/InterpreterPasteInput.py: new
5088 syntax-processing module for pasting lines with >>> or ... at the
5094 syntax-processing module for pasting lines with >>> or ... at the
5089 start.
5095 start.
5090
5096
5091 * IPython/Extensions/PhysicalQ_Interactive.py
5097 * IPython/Extensions/PhysicalQ_Interactive.py
5092 (PhysicalQuantityInteractive.__int__): fixed to work with either
5098 (PhysicalQuantityInteractive.__int__): fixed to work with either
5093 Numeric or math.
5099 Numeric or math.
5094
5100
5095 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5101 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5096 provided profiles. Now we have:
5102 provided profiles. Now we have:
5097 -math -> math module as * and cmath with its own namespace.
5103 -math -> math module as * and cmath with its own namespace.
5098 -numeric -> Numeric as *, plus gnuplot & grace
5104 -numeric -> Numeric as *, plus gnuplot & grace
5099 -physics -> same as before
5105 -physics -> same as before
5100
5106
5101 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5107 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5102 user-defined magics wouldn't be found by @magic if they were
5108 user-defined magics wouldn't be found by @magic if they were
5103 defined as class methods. Also cleaned up the namespace search
5109 defined as class methods. Also cleaned up the namespace search
5104 logic and the string building (to use %s instead of many repeated
5110 logic and the string building (to use %s instead of many repeated
5105 string adds).
5111 string adds).
5106
5112
5107 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5113 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5108 of user-defined magics to operate with class methods (cleaner, in
5114 of user-defined magics to operate with class methods (cleaner, in
5109 line with the gnuplot code).
5115 line with the gnuplot code).
5110
5116
5111 2002-04-22 Fernando Perez <fperez@colorado.edu>
5117 2002-04-22 Fernando Perez <fperez@colorado.edu>
5112
5118
5113 * setup.py: updated dependency list so that manual is updated when
5119 * setup.py: updated dependency list so that manual is updated when
5114 all included files change.
5120 all included files change.
5115
5121
5116 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5122 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5117 the delimiter removal option (the fix is ugly right now).
5123 the delimiter removal option (the fix is ugly right now).
5118
5124
5119 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5125 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5120 all of the math profile (quicker loading, no conflict between
5126 all of the math profile (quicker loading, no conflict between
5121 g-9.8 and g-gnuplot).
5127 g-9.8 and g-gnuplot).
5122
5128
5123 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5129 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5124 name of post-mortem files to IPython_crash_report.txt.
5130 name of post-mortem files to IPython_crash_report.txt.
5125
5131
5126 * Cleanup/update of the docs. Added all the new readline info and
5132 * Cleanup/update of the docs. Added all the new readline info and
5127 formatted all lists as 'real lists'.
5133 formatted all lists as 'real lists'.
5128
5134
5129 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5135 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5130 tab-completion options, since the full readline parse_and_bind is
5136 tab-completion options, since the full readline parse_and_bind is
5131 now accessible.
5137 now accessible.
5132
5138
5133 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5139 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5134 handling of readline options. Now users can specify any string to
5140 handling of readline options. Now users can specify any string to
5135 be passed to parse_and_bind(), as well as the delimiters to be
5141 be passed to parse_and_bind(), as well as the delimiters to be
5136 removed.
5142 removed.
5137 (InteractiveShell.__init__): Added __name__ to the global
5143 (InteractiveShell.__init__): Added __name__ to the global
5138 namespace so that things like Itpl which rely on its existence
5144 namespace so that things like Itpl which rely on its existence
5139 don't crash.
5145 don't crash.
5140 (InteractiveShell._prefilter): Defined the default with a _ so
5146 (InteractiveShell._prefilter): Defined the default with a _ so
5141 that prefilter() is easier to override, while the default one
5147 that prefilter() is easier to override, while the default one
5142 remains available.
5148 remains available.
5143
5149
5144 2002-04-18 Fernando Perez <fperez@colorado.edu>
5150 2002-04-18 Fernando Perez <fperez@colorado.edu>
5145
5151
5146 * Added information about pdb in the docs.
5152 * Added information about pdb in the docs.
5147
5153
5148 2002-04-17 Fernando Perez <fperez@colorado.edu>
5154 2002-04-17 Fernando Perez <fperez@colorado.edu>
5149
5155
5150 * IPython/ipmaker.py (make_IPython): added rc_override option to
5156 * IPython/ipmaker.py (make_IPython): added rc_override option to
5151 allow passing config options at creation time which may override
5157 allow passing config options at creation time which may override
5152 anything set in the config files or command line. This is
5158 anything set in the config files or command line. This is
5153 particularly useful for configuring embedded instances.
5159 particularly useful for configuring embedded instances.
5154
5160
5155 2002-04-15 Fernando Perez <fperez@colorado.edu>
5161 2002-04-15 Fernando Perez <fperez@colorado.edu>
5156
5162
5157 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5163 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5158 crash embedded instances because of the input cache falling out of
5164 crash embedded instances because of the input cache falling out of
5159 sync with the output counter.
5165 sync with the output counter.
5160
5166
5161 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5167 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5162 mode which calls pdb after an uncaught exception in IPython itself.
5168 mode which calls pdb after an uncaught exception in IPython itself.
5163
5169
5164 2002-04-14 Fernando Perez <fperez@colorado.edu>
5170 2002-04-14 Fernando Perez <fperez@colorado.edu>
5165
5171
5166 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5172 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5167 readline, fix it back after each call.
5173 readline, fix it back after each call.
5168
5174
5169 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5175 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5170 method to force all access via __call__(), which guarantees that
5176 method to force all access via __call__(), which guarantees that
5171 traceback references are properly deleted.
5177 traceback references are properly deleted.
5172
5178
5173 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5179 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5174 improve printing when pprint is in use.
5180 improve printing when pprint is in use.
5175
5181
5176 2002-04-13 Fernando Perez <fperez@colorado.edu>
5182 2002-04-13 Fernando Perez <fperez@colorado.edu>
5177
5183
5178 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5184 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5179 exceptions aren't caught anymore. If the user triggers one, he
5185 exceptions aren't caught anymore. If the user triggers one, he
5180 should know why he's doing it and it should go all the way up,
5186 should know why he's doing it and it should go all the way up,
5181 just like any other exception. So now @abort will fully kill the
5187 just like any other exception. So now @abort will fully kill the
5182 embedded interpreter and the embedding code (unless that happens
5188 embedded interpreter and the embedding code (unless that happens
5183 to catch SystemExit).
5189 to catch SystemExit).
5184
5190
5185 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5191 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5186 and a debugger() method to invoke the interactive pdb debugger
5192 and a debugger() method to invoke the interactive pdb debugger
5187 after printing exception information. Also added the corresponding
5193 after printing exception information. Also added the corresponding
5188 -pdb option and @pdb magic to control this feature, and updated
5194 -pdb option and @pdb magic to control this feature, and updated
5189 the docs. After a suggestion from Christopher Hart
5195 the docs. After a suggestion from Christopher Hart
5190 (hart-AT-caltech.edu).
5196 (hart-AT-caltech.edu).
5191
5197
5192 2002-04-12 Fernando Perez <fperez@colorado.edu>
5198 2002-04-12 Fernando Perez <fperez@colorado.edu>
5193
5199
5194 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5200 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5195 the exception handlers defined by the user (not the CrashHandler)
5201 the exception handlers defined by the user (not the CrashHandler)
5196 so that user exceptions don't trigger an ipython bug report.
5202 so that user exceptions don't trigger an ipython bug report.
5197
5203
5198 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5204 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5199 configurable (it should have always been so).
5205 configurable (it should have always been so).
5200
5206
5201 2002-03-26 Fernando Perez <fperez@colorado.edu>
5207 2002-03-26 Fernando Perez <fperez@colorado.edu>
5202
5208
5203 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5209 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5204 and there to fix embedding namespace issues. This should all be
5210 and there to fix embedding namespace issues. This should all be
5205 done in a more elegant way.
5211 done in a more elegant way.
5206
5212
5207 2002-03-25 Fernando Perez <fperez@colorado.edu>
5213 2002-03-25 Fernando Perez <fperez@colorado.edu>
5208
5214
5209 * IPython/genutils.py (get_home_dir): Try to make it work under
5215 * IPython/genutils.py (get_home_dir): Try to make it work under
5210 win9x also.
5216 win9x also.
5211
5217
5212 2002-03-20 Fernando Perez <fperez@colorado.edu>
5218 2002-03-20 Fernando Perez <fperez@colorado.edu>
5213
5219
5214 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5220 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5215 sys.displayhook untouched upon __init__.
5221 sys.displayhook untouched upon __init__.
5216
5222
5217 2002-03-19 Fernando Perez <fperez@colorado.edu>
5223 2002-03-19 Fernando Perez <fperez@colorado.edu>
5218
5224
5219 * Released 0.2.9 (for embedding bug, basically).
5225 * Released 0.2.9 (for embedding bug, basically).
5220
5226
5221 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5227 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5222 exceptions so that enclosing shell's state can be restored.
5228 exceptions so that enclosing shell's state can be restored.
5223
5229
5224 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5230 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5225 naming conventions in the .ipython/ dir.
5231 naming conventions in the .ipython/ dir.
5226
5232
5227 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5233 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5228 from delimiters list so filenames with - in them get expanded.
5234 from delimiters list so filenames with - in them get expanded.
5229
5235
5230 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5236 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5231 sys.displayhook not being properly restored after an embedded call.
5237 sys.displayhook not being properly restored after an embedded call.
5232
5238
5233 2002-03-18 Fernando Perez <fperez@colorado.edu>
5239 2002-03-18 Fernando Perez <fperez@colorado.edu>
5234
5240
5235 * Released 0.2.8
5241 * Released 0.2.8
5236
5242
5237 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5243 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5238 some files weren't being included in a -upgrade.
5244 some files weren't being included in a -upgrade.
5239 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5245 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5240 on' so that the first tab completes.
5246 on' so that the first tab completes.
5241 (InteractiveShell.handle_magic): fixed bug with spaces around
5247 (InteractiveShell.handle_magic): fixed bug with spaces around
5242 quotes breaking many magic commands.
5248 quotes breaking many magic commands.
5243
5249
5244 * setup.py: added note about ignoring the syntax error messages at
5250 * setup.py: added note about ignoring the syntax error messages at
5245 installation.
5251 installation.
5246
5252
5247 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5253 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5248 streamlining the gnuplot interface, now there's only one magic @gp.
5254 streamlining the gnuplot interface, now there's only one magic @gp.
5249
5255
5250 2002-03-17 Fernando Perez <fperez@colorado.edu>
5256 2002-03-17 Fernando Perez <fperez@colorado.edu>
5251
5257
5252 * IPython/UserConfig/magic_gnuplot.py: new name for the
5258 * IPython/UserConfig/magic_gnuplot.py: new name for the
5253 example-magic_pm.py file. Much enhanced system, now with a shell
5259 example-magic_pm.py file. Much enhanced system, now with a shell
5254 for communicating directly with gnuplot, one command at a time.
5260 for communicating directly with gnuplot, one command at a time.
5255
5261
5256 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5262 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5257 setting __name__=='__main__'.
5263 setting __name__=='__main__'.
5258
5264
5259 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5265 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5260 mini-shell for accessing gnuplot from inside ipython. Should
5266 mini-shell for accessing gnuplot from inside ipython. Should
5261 extend it later for grace access too. Inspired by Arnd's
5267 extend it later for grace access too. Inspired by Arnd's
5262 suggestion.
5268 suggestion.
5263
5269
5264 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5270 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5265 calling magic functions with () in their arguments. Thanks to Arnd
5271 calling magic functions with () in their arguments. Thanks to Arnd
5266 Baecker for pointing this to me.
5272 Baecker for pointing this to me.
5267
5273
5268 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5274 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5269 infinitely for integer or complex arrays (only worked with floats).
5275 infinitely for integer or complex arrays (only worked with floats).
5270
5276
5271 2002-03-16 Fernando Perez <fperez@colorado.edu>
5277 2002-03-16 Fernando Perez <fperez@colorado.edu>
5272
5278
5273 * setup.py: Merged setup and setup_windows into a single script
5279 * setup.py: Merged setup and setup_windows into a single script
5274 which properly handles things for windows users.
5280 which properly handles things for windows users.
5275
5281
5276 2002-03-15 Fernando Perez <fperez@colorado.edu>
5282 2002-03-15 Fernando Perez <fperez@colorado.edu>
5277
5283
5278 * Big change to the manual: now the magics are all automatically
5284 * Big change to the manual: now the magics are all automatically
5279 documented. This information is generated from their docstrings
5285 documented. This information is generated from their docstrings
5280 and put in a latex file included by the manual lyx file. This way
5286 and put in a latex file included by the manual lyx file. This way
5281 we get always up to date information for the magics. The manual
5287 we get always up to date information for the magics. The manual
5282 now also has proper version information, also auto-synced.
5288 now also has proper version information, also auto-synced.
5283
5289
5284 For this to work, an undocumented --magic_docstrings option was added.
5290 For this to work, an undocumented --magic_docstrings option was added.
5285
5291
5286 2002-03-13 Fernando Perez <fperez@colorado.edu>
5292 2002-03-13 Fernando Perez <fperez@colorado.edu>
5287
5293
5288 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5294 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5289 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5295 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5290
5296
5291 2002-03-12 Fernando Perez <fperez@colorado.edu>
5297 2002-03-12 Fernando Perez <fperez@colorado.edu>
5292
5298
5293 * IPython/ultraTB.py (TermColors): changed color escapes again to
5299 * IPython/ultraTB.py (TermColors): changed color escapes again to
5294 fix the (old, reintroduced) line-wrapping bug. Basically, if
5300 fix the (old, reintroduced) line-wrapping bug. Basically, if
5295 \001..\002 aren't given in the color escapes, lines get wrapped
5301 \001..\002 aren't given in the color escapes, lines get wrapped
5296 weirdly. But giving those screws up old xterms and emacs terms. So
5302 weirdly. But giving those screws up old xterms and emacs terms. So
5297 I added some logic for emacs terms to be ok, but I can't identify old
5303 I added some logic for emacs terms to be ok, but I can't identify old
5298 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5304 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5299
5305
5300 2002-03-10 Fernando Perez <fperez@colorado.edu>
5306 2002-03-10 Fernando Perez <fperez@colorado.edu>
5301
5307
5302 * IPython/usage.py (__doc__): Various documentation cleanups and
5308 * IPython/usage.py (__doc__): Various documentation cleanups and
5303 updates, both in usage docstrings and in the manual.
5309 updates, both in usage docstrings and in the manual.
5304
5310
5305 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5311 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5306 handling of caching. Set minimum acceptabe value for having a
5312 handling of caching. Set minimum acceptabe value for having a
5307 cache at 20 values.
5313 cache at 20 values.
5308
5314
5309 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5315 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5310 install_first_time function to a method, renamed it and added an
5316 install_first_time function to a method, renamed it and added an
5311 'upgrade' mode. Now people can update their config directory with
5317 'upgrade' mode. Now people can update their config directory with
5312 a simple command line switch (-upgrade, also new).
5318 a simple command line switch (-upgrade, also new).
5313
5319
5314 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5320 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5315 @file (convenient for automagic users under Python >= 2.2).
5321 @file (convenient for automagic users under Python >= 2.2).
5316 Removed @files (it seemed more like a plural than an abbrev. of
5322 Removed @files (it seemed more like a plural than an abbrev. of
5317 'file show').
5323 'file show').
5318
5324
5319 * IPython/iplib.py (install_first_time): Fixed crash if there were
5325 * IPython/iplib.py (install_first_time): Fixed crash if there were
5320 backup files ('~') in .ipython/ install directory.
5326 backup files ('~') in .ipython/ install directory.
5321
5327
5322 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5328 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5323 system. Things look fine, but these changes are fairly
5329 system. Things look fine, but these changes are fairly
5324 intrusive. Test them for a few days.
5330 intrusive. Test them for a few days.
5325
5331
5326 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5332 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5327 the prompts system. Now all in/out prompt strings are user
5333 the prompts system. Now all in/out prompt strings are user
5328 controllable. This is particularly useful for embedding, as one
5334 controllable. This is particularly useful for embedding, as one
5329 can tag embedded instances with particular prompts.
5335 can tag embedded instances with particular prompts.
5330
5336
5331 Also removed global use of sys.ps1/2, which now allows nested
5337 Also removed global use of sys.ps1/2, which now allows nested
5332 embeddings without any problems. Added command-line options for
5338 embeddings without any problems. Added command-line options for
5333 the prompt strings.
5339 the prompt strings.
5334
5340
5335 2002-03-08 Fernando Perez <fperez@colorado.edu>
5341 2002-03-08 Fernando Perez <fperez@colorado.edu>
5336
5342
5337 * IPython/UserConfig/example-embed-short.py (ipshell): added
5343 * IPython/UserConfig/example-embed-short.py (ipshell): added
5338 example file with the bare minimum code for embedding.
5344 example file with the bare minimum code for embedding.
5339
5345
5340 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5346 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5341 functionality for the embeddable shell to be activated/deactivated
5347 functionality for the embeddable shell to be activated/deactivated
5342 either globally or at each call.
5348 either globally or at each call.
5343
5349
5344 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5350 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5345 rewriting the prompt with '--->' for auto-inputs with proper
5351 rewriting the prompt with '--->' for auto-inputs with proper
5346 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5352 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5347 this is handled by the prompts class itself, as it should.
5353 this is handled by the prompts class itself, as it should.
5348
5354
5349 2002-03-05 Fernando Perez <fperez@colorado.edu>
5355 2002-03-05 Fernando Perez <fperez@colorado.edu>
5350
5356
5351 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5357 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5352 @logstart to avoid name clashes with the math log function.
5358 @logstart to avoid name clashes with the math log function.
5353
5359
5354 * Big updates to X/Emacs section of the manual.
5360 * Big updates to X/Emacs section of the manual.
5355
5361
5356 * Removed ipython_emacs. Milan explained to me how to pass
5362 * Removed ipython_emacs. Milan explained to me how to pass
5357 arguments to ipython through Emacs. Some day I'm going to end up
5363 arguments to ipython through Emacs. Some day I'm going to end up
5358 learning some lisp...
5364 learning some lisp...
5359
5365
5360 2002-03-04 Fernando Perez <fperez@colorado.edu>
5366 2002-03-04 Fernando Perez <fperez@colorado.edu>
5361
5367
5362 * IPython/ipython_emacs: Created script to be used as the
5368 * IPython/ipython_emacs: Created script to be used as the
5363 py-python-command Emacs variable so we can pass IPython
5369 py-python-command Emacs variable so we can pass IPython
5364 parameters. I can't figure out how to tell Emacs directly to pass
5370 parameters. I can't figure out how to tell Emacs directly to pass
5365 parameters to IPython, so a dummy shell script will do it.
5371 parameters to IPython, so a dummy shell script will do it.
5366
5372
5367 Other enhancements made for things to work better under Emacs'
5373 Other enhancements made for things to work better under Emacs'
5368 various types of terminals. Many thanks to Milan Zamazal
5374 various types of terminals. Many thanks to Milan Zamazal
5369 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5375 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5370
5376
5371 2002-03-01 Fernando Perez <fperez@colorado.edu>
5377 2002-03-01 Fernando Perez <fperez@colorado.edu>
5372
5378
5373 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5379 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5374 that loading of readline is now optional. This gives better
5380 that loading of readline is now optional. This gives better
5375 control to emacs users.
5381 control to emacs users.
5376
5382
5377 * IPython/ultraTB.py (__date__): Modified color escape sequences
5383 * IPython/ultraTB.py (__date__): Modified color escape sequences
5378 and now things work fine under xterm and in Emacs' term buffers
5384 and now things work fine under xterm and in Emacs' term buffers
5379 (though not shell ones). Well, in emacs you get colors, but all
5385 (though not shell ones). Well, in emacs you get colors, but all
5380 seem to be 'light' colors (no difference between dark and light
5386 seem to be 'light' colors (no difference between dark and light
5381 ones). But the garbage chars are gone, and also in xterms. It
5387 ones). But the garbage chars are gone, and also in xterms. It
5382 seems that now I'm using 'cleaner' ansi sequences.
5388 seems that now I'm using 'cleaner' ansi sequences.
5383
5389
5384 2002-02-21 Fernando Perez <fperez@colorado.edu>
5390 2002-02-21 Fernando Perez <fperez@colorado.edu>
5385
5391
5386 * Released 0.2.7 (mainly to publish the scoping fix).
5392 * Released 0.2.7 (mainly to publish the scoping fix).
5387
5393
5388 * IPython/Logger.py (Logger.logstate): added. A corresponding
5394 * IPython/Logger.py (Logger.logstate): added. A corresponding
5389 @logstate magic was created.
5395 @logstate magic was created.
5390
5396
5391 * IPython/Magic.py: fixed nested scoping problem under Python
5397 * IPython/Magic.py: fixed nested scoping problem under Python
5392 2.1.x (automagic wasn't working).
5398 2.1.x (automagic wasn't working).
5393
5399
5394 2002-02-20 Fernando Perez <fperez@colorado.edu>
5400 2002-02-20 Fernando Perez <fperez@colorado.edu>
5395
5401
5396 * Released 0.2.6.
5402 * Released 0.2.6.
5397
5403
5398 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5404 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5399 option so that logs can come out without any headers at all.
5405 option so that logs can come out without any headers at all.
5400
5406
5401 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5407 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5402 SciPy.
5408 SciPy.
5403
5409
5404 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5410 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5405 that embedded IPython calls don't require vars() to be explicitly
5411 that embedded IPython calls don't require vars() to be explicitly
5406 passed. Now they are extracted from the caller's frame (code
5412 passed. Now they are extracted from the caller's frame (code
5407 snatched from Eric Jones' weave). Added better documentation to
5413 snatched from Eric Jones' weave). Added better documentation to
5408 the section on embedding and the example file.
5414 the section on embedding and the example file.
5409
5415
5410 * IPython/genutils.py (page): Changed so that under emacs, it just
5416 * IPython/genutils.py (page): Changed so that under emacs, it just
5411 prints the string. You can then page up and down in the emacs
5417 prints the string. You can then page up and down in the emacs
5412 buffer itself. This is how the builtin help() works.
5418 buffer itself. This is how the builtin help() works.
5413
5419
5414 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5420 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5415 macro scoping: macros need to be executed in the user's namespace
5421 macro scoping: macros need to be executed in the user's namespace
5416 to work as if they had been typed by the user.
5422 to work as if they had been typed by the user.
5417
5423
5418 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5424 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5419 execute automatically (no need to type 'exec...'). They then
5425 execute automatically (no need to type 'exec...'). They then
5420 behave like 'true macros'. The printing system was also modified
5426 behave like 'true macros'. The printing system was also modified
5421 for this to work.
5427 for this to work.
5422
5428
5423 2002-02-19 Fernando Perez <fperez@colorado.edu>
5429 2002-02-19 Fernando Perez <fperez@colorado.edu>
5424
5430
5425 * IPython/genutils.py (page_file): new function for paging files
5431 * IPython/genutils.py (page_file): new function for paging files
5426 in an OS-independent way. Also necessary for file viewing to work
5432 in an OS-independent way. Also necessary for file viewing to work
5427 well inside Emacs buffers.
5433 well inside Emacs buffers.
5428 (page): Added checks for being in an emacs buffer.
5434 (page): Added checks for being in an emacs buffer.
5429 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5435 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5430 same bug in iplib.
5436 same bug in iplib.
5431
5437
5432 2002-02-18 Fernando Perez <fperez@colorado.edu>
5438 2002-02-18 Fernando Perez <fperez@colorado.edu>
5433
5439
5434 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5440 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5435 of readline so that IPython can work inside an Emacs buffer.
5441 of readline so that IPython can work inside an Emacs buffer.
5436
5442
5437 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5443 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5438 method signatures (they weren't really bugs, but it looks cleaner
5444 method signatures (they weren't really bugs, but it looks cleaner
5439 and keeps PyChecker happy).
5445 and keeps PyChecker happy).
5440
5446
5441 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5447 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5442 for implementing various user-defined hooks. Currently only
5448 for implementing various user-defined hooks. Currently only
5443 display is done.
5449 display is done.
5444
5450
5445 * IPython/Prompts.py (CachedOutput._display): changed display
5451 * IPython/Prompts.py (CachedOutput._display): changed display
5446 functions so that they can be dynamically changed by users easily.
5452 functions so that they can be dynamically changed by users easily.
5447
5453
5448 * IPython/Extensions/numeric_formats.py (num_display): added an
5454 * IPython/Extensions/numeric_formats.py (num_display): added an
5449 extension for printing NumPy arrays in flexible manners. It
5455 extension for printing NumPy arrays in flexible manners. It
5450 doesn't do anything yet, but all the structure is in
5456 doesn't do anything yet, but all the structure is in
5451 place. Ultimately the plan is to implement output format control
5457 place. Ultimately the plan is to implement output format control
5452 like in Octave.
5458 like in Octave.
5453
5459
5454 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5460 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5455 methods are found at run-time by all the automatic machinery.
5461 methods are found at run-time by all the automatic machinery.
5456
5462
5457 2002-02-17 Fernando Perez <fperez@colorado.edu>
5463 2002-02-17 Fernando Perez <fperez@colorado.edu>
5458
5464
5459 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5465 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5460 whole file a little.
5466 whole file a little.
5461
5467
5462 * ToDo: closed this document. Now there's a new_design.lyx
5468 * ToDo: closed this document. Now there's a new_design.lyx
5463 document for all new ideas. Added making a pdf of it for the
5469 document for all new ideas. Added making a pdf of it for the
5464 end-user distro.
5470 end-user distro.
5465
5471
5466 * IPython/Logger.py (Logger.switch_log): Created this to replace
5472 * IPython/Logger.py (Logger.switch_log): Created this to replace
5467 logon() and logoff(). It also fixes a nasty crash reported by
5473 logon() and logoff(). It also fixes a nasty crash reported by
5468 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5474 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5469
5475
5470 * IPython/iplib.py (complete): got auto-completion to work with
5476 * IPython/iplib.py (complete): got auto-completion to work with
5471 automagic (I had wanted this for a long time).
5477 automagic (I had wanted this for a long time).
5472
5478
5473 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5479 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5474 to @file, since file() is now a builtin and clashes with automagic
5480 to @file, since file() is now a builtin and clashes with automagic
5475 for @file.
5481 for @file.
5476
5482
5477 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5483 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5478 of this was previously in iplib, which had grown to more than 2000
5484 of this was previously in iplib, which had grown to more than 2000
5479 lines, way too long. No new functionality, but it makes managing
5485 lines, way too long. No new functionality, but it makes managing
5480 the code a bit easier.
5486 the code a bit easier.
5481
5487
5482 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5488 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5483 information to crash reports.
5489 information to crash reports.
5484
5490
5485 2002-02-12 Fernando Perez <fperez@colorado.edu>
5491 2002-02-12 Fernando Perez <fperez@colorado.edu>
5486
5492
5487 * Released 0.2.5.
5493 * Released 0.2.5.
5488
5494
5489 2002-02-11 Fernando Perez <fperez@colorado.edu>
5495 2002-02-11 Fernando Perez <fperez@colorado.edu>
5490
5496
5491 * Wrote a relatively complete Windows installer. It puts
5497 * Wrote a relatively complete Windows installer. It puts
5492 everything in place, creates Start Menu entries and fixes the
5498 everything in place, creates Start Menu entries and fixes the
5493 color issues. Nothing fancy, but it works.
5499 color issues. Nothing fancy, but it works.
5494
5500
5495 2002-02-10 Fernando Perez <fperez@colorado.edu>
5501 2002-02-10 Fernando Perez <fperez@colorado.edu>
5496
5502
5497 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5503 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5498 os.path.expanduser() call so that we can type @run ~/myfile.py and
5504 os.path.expanduser() call so that we can type @run ~/myfile.py and
5499 have thigs work as expected.
5505 have thigs work as expected.
5500
5506
5501 * IPython/genutils.py (page): fixed exception handling so things
5507 * IPython/genutils.py (page): fixed exception handling so things
5502 work both in Unix and Windows correctly. Quitting a pager triggers
5508 work both in Unix and Windows correctly. Quitting a pager triggers
5503 an IOError/broken pipe in Unix, and in windows not finding a pager
5509 an IOError/broken pipe in Unix, and in windows not finding a pager
5504 is also an IOError, so I had to actually look at the return value
5510 is also an IOError, so I had to actually look at the return value
5505 of the exception, not just the exception itself. Should be ok now.
5511 of the exception, not just the exception itself. Should be ok now.
5506
5512
5507 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5513 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5508 modified to allow case-insensitive color scheme changes.
5514 modified to allow case-insensitive color scheme changes.
5509
5515
5510 2002-02-09 Fernando Perez <fperez@colorado.edu>
5516 2002-02-09 Fernando Perez <fperez@colorado.edu>
5511
5517
5512 * IPython/genutils.py (native_line_ends): new function to leave
5518 * IPython/genutils.py (native_line_ends): new function to leave
5513 user config files with os-native line-endings.
5519 user config files with os-native line-endings.
5514
5520
5515 * README and manual updates.
5521 * README and manual updates.
5516
5522
5517 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5523 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5518 instead of StringType to catch Unicode strings.
5524 instead of StringType to catch Unicode strings.
5519
5525
5520 * IPython/genutils.py (filefind): fixed bug for paths with
5526 * IPython/genutils.py (filefind): fixed bug for paths with
5521 embedded spaces (very common in Windows).
5527 embedded spaces (very common in Windows).
5522
5528
5523 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5529 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5524 files under Windows, so that they get automatically associated
5530 files under Windows, so that they get automatically associated
5525 with a text editor. Windows makes it a pain to handle
5531 with a text editor. Windows makes it a pain to handle
5526 extension-less files.
5532 extension-less files.
5527
5533
5528 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5534 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5529 warning about readline only occur for Posix. In Windows there's no
5535 warning about readline only occur for Posix. In Windows there's no
5530 way to get readline, so why bother with the warning.
5536 way to get readline, so why bother with the warning.
5531
5537
5532 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5538 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5533 for __str__ instead of dir(self), since dir() changed in 2.2.
5539 for __str__ instead of dir(self), since dir() changed in 2.2.
5534
5540
5535 * Ported to Windows! Tested on XP, I suspect it should work fine
5541 * Ported to Windows! Tested on XP, I suspect it should work fine
5536 on NT/2000, but I don't think it will work on 98 et al. That
5542 on NT/2000, but I don't think it will work on 98 et al. That
5537 series of Windows is such a piece of junk anyway that I won't try
5543 series of Windows is such a piece of junk anyway that I won't try
5538 porting it there. The XP port was straightforward, showed a few
5544 porting it there. The XP port was straightforward, showed a few
5539 bugs here and there (fixed all), in particular some string
5545 bugs here and there (fixed all), in particular some string
5540 handling stuff which required considering Unicode strings (which
5546 handling stuff which required considering Unicode strings (which
5541 Windows uses). This is good, but hasn't been too tested :) No
5547 Windows uses). This is good, but hasn't been too tested :) No
5542 fancy installer yet, I'll put a note in the manual so people at
5548 fancy installer yet, I'll put a note in the manual so people at
5543 least make manually a shortcut.
5549 least make manually a shortcut.
5544
5550
5545 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5551 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5546 into a single one, "colors". This now controls both prompt and
5552 into a single one, "colors". This now controls both prompt and
5547 exception color schemes, and can be changed both at startup
5553 exception color schemes, and can be changed both at startup
5548 (either via command-line switches or via ipythonrc files) and at
5554 (either via command-line switches or via ipythonrc files) and at
5549 runtime, with @colors.
5555 runtime, with @colors.
5550 (Magic.magic_run): renamed @prun to @run and removed the old
5556 (Magic.magic_run): renamed @prun to @run and removed the old
5551 @run. The two were too similar to warrant keeping both.
5557 @run. The two were too similar to warrant keeping both.
5552
5558
5553 2002-02-03 Fernando Perez <fperez@colorado.edu>
5559 2002-02-03 Fernando Perez <fperez@colorado.edu>
5554
5560
5555 * IPython/iplib.py (install_first_time): Added comment on how to
5561 * IPython/iplib.py (install_first_time): Added comment on how to
5556 configure the color options for first-time users. Put a <return>
5562 configure the color options for first-time users. Put a <return>
5557 request at the end so that small-terminal users get a chance to
5563 request at the end so that small-terminal users get a chance to
5558 read the startup info.
5564 read the startup info.
5559
5565
5560 2002-01-23 Fernando Perez <fperez@colorado.edu>
5566 2002-01-23 Fernando Perez <fperez@colorado.edu>
5561
5567
5562 * IPython/iplib.py (CachedOutput.update): Changed output memory
5568 * IPython/iplib.py (CachedOutput.update): Changed output memory
5563 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5569 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5564 input history we still use _i. Did this b/c these variable are
5570 input history we still use _i. Did this b/c these variable are
5565 very commonly used in interactive work, so the less we need to
5571 very commonly used in interactive work, so the less we need to
5566 type the better off we are.
5572 type the better off we are.
5567 (Magic.magic_prun): updated @prun to better handle the namespaces
5573 (Magic.magic_prun): updated @prun to better handle the namespaces
5568 the file will run in, including a fix for __name__ not being set
5574 the file will run in, including a fix for __name__ not being set
5569 before.
5575 before.
5570
5576
5571 2002-01-20 Fernando Perez <fperez@colorado.edu>
5577 2002-01-20 Fernando Perez <fperez@colorado.edu>
5572
5578
5573 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5579 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5574 extra garbage for Python 2.2. Need to look more carefully into
5580 extra garbage for Python 2.2. Need to look more carefully into
5575 this later.
5581 this later.
5576
5582
5577 2002-01-19 Fernando Perez <fperez@colorado.edu>
5583 2002-01-19 Fernando Perez <fperez@colorado.edu>
5578
5584
5579 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5585 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5580 display SyntaxError exceptions properly formatted when they occur
5586 display SyntaxError exceptions properly formatted when they occur
5581 (they can be triggered by imported code).
5587 (they can be triggered by imported code).
5582
5588
5583 2002-01-18 Fernando Perez <fperez@colorado.edu>
5589 2002-01-18 Fernando Perez <fperez@colorado.edu>
5584
5590
5585 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5591 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5586 SyntaxError exceptions are reported nicely formatted, instead of
5592 SyntaxError exceptions are reported nicely formatted, instead of
5587 spitting out only offset information as before.
5593 spitting out only offset information as before.
5588 (Magic.magic_prun): Added the @prun function for executing
5594 (Magic.magic_prun): Added the @prun function for executing
5589 programs with command line args inside IPython.
5595 programs with command line args inside IPython.
5590
5596
5591 2002-01-16 Fernando Perez <fperez@colorado.edu>
5597 2002-01-16 Fernando Perez <fperez@colorado.edu>
5592
5598
5593 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5599 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5594 to *not* include the last item given in a range. This brings their
5600 to *not* include the last item given in a range. This brings their
5595 behavior in line with Python's slicing:
5601 behavior in line with Python's slicing:
5596 a[n1:n2] -> a[n1]...a[n2-1]
5602 a[n1:n2] -> a[n1]...a[n2-1]
5597 It may be a bit less convenient, but I prefer to stick to Python's
5603 It may be a bit less convenient, but I prefer to stick to Python's
5598 conventions *everywhere*, so users never have to wonder.
5604 conventions *everywhere*, so users never have to wonder.
5599 (Magic.magic_macro): Added @macro function to ease the creation of
5605 (Magic.magic_macro): Added @macro function to ease the creation of
5600 macros.
5606 macros.
5601
5607
5602 2002-01-05 Fernando Perez <fperez@colorado.edu>
5608 2002-01-05 Fernando Perez <fperez@colorado.edu>
5603
5609
5604 * Released 0.2.4.
5610 * Released 0.2.4.
5605
5611
5606 * IPython/iplib.py (Magic.magic_pdef):
5612 * IPython/iplib.py (Magic.magic_pdef):
5607 (InteractiveShell.safe_execfile): report magic lines and error
5613 (InteractiveShell.safe_execfile): report magic lines and error
5608 lines without line numbers so one can easily copy/paste them for
5614 lines without line numbers so one can easily copy/paste them for
5609 re-execution.
5615 re-execution.
5610
5616
5611 * Updated manual with recent changes.
5617 * Updated manual with recent changes.
5612
5618
5613 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5619 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5614 docstring printing when class? is called. Very handy for knowing
5620 docstring printing when class? is called. Very handy for knowing
5615 how to create class instances (as long as __init__ is well
5621 how to create class instances (as long as __init__ is well
5616 documented, of course :)
5622 documented, of course :)
5617 (Magic.magic_doc): print both class and constructor docstrings.
5623 (Magic.magic_doc): print both class and constructor docstrings.
5618 (Magic.magic_pdef): give constructor info if passed a class and
5624 (Magic.magic_pdef): give constructor info if passed a class and
5619 __call__ info for callable object instances.
5625 __call__ info for callable object instances.
5620
5626
5621 2002-01-04 Fernando Perez <fperez@colorado.edu>
5627 2002-01-04 Fernando Perez <fperez@colorado.edu>
5622
5628
5623 * Made deep_reload() off by default. It doesn't always work
5629 * Made deep_reload() off by default. It doesn't always work
5624 exactly as intended, so it's probably safer to have it off. It's
5630 exactly as intended, so it's probably safer to have it off. It's
5625 still available as dreload() anyway, so nothing is lost.
5631 still available as dreload() anyway, so nothing is lost.
5626
5632
5627 2002-01-02 Fernando Perez <fperez@colorado.edu>
5633 2002-01-02 Fernando Perez <fperez@colorado.edu>
5628
5634
5629 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5635 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5630 so I wanted an updated release).
5636 so I wanted an updated release).
5631
5637
5632 2001-12-27 Fernando Perez <fperez@colorado.edu>
5638 2001-12-27 Fernando Perez <fperez@colorado.edu>
5633
5639
5634 * IPython/iplib.py (InteractiveShell.interact): Added the original
5640 * IPython/iplib.py (InteractiveShell.interact): Added the original
5635 code from 'code.py' for this module in order to change the
5641 code from 'code.py' for this module in order to change the
5636 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5642 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5637 the history cache would break when the user hit Ctrl-C, and
5643 the history cache would break when the user hit Ctrl-C, and
5638 interact() offers no way to add any hooks to it.
5644 interact() offers no way to add any hooks to it.
5639
5645
5640 2001-12-23 Fernando Perez <fperez@colorado.edu>
5646 2001-12-23 Fernando Perez <fperez@colorado.edu>
5641
5647
5642 * setup.py: added check for 'MANIFEST' before trying to remove
5648 * setup.py: added check for 'MANIFEST' before trying to remove
5643 it. Thanks to Sean Reifschneider.
5649 it. Thanks to Sean Reifschneider.
5644
5650
5645 2001-12-22 Fernando Perez <fperez@colorado.edu>
5651 2001-12-22 Fernando Perez <fperez@colorado.edu>
5646
5652
5647 * Released 0.2.2.
5653 * Released 0.2.2.
5648
5654
5649 * Finished (reasonably) writing the manual. Later will add the
5655 * Finished (reasonably) writing the manual. Later will add the
5650 python-standard navigation stylesheets, but for the time being
5656 python-standard navigation stylesheets, but for the time being
5651 it's fairly complete. Distribution will include html and pdf
5657 it's fairly complete. Distribution will include html and pdf
5652 versions.
5658 versions.
5653
5659
5654 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5660 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5655 (MayaVi author).
5661 (MayaVi author).
5656
5662
5657 2001-12-21 Fernando Perez <fperez@colorado.edu>
5663 2001-12-21 Fernando Perez <fperez@colorado.edu>
5658
5664
5659 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5665 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5660 good public release, I think (with the manual and the distutils
5666 good public release, I think (with the manual and the distutils
5661 installer). The manual can use some work, but that can go
5667 installer). The manual can use some work, but that can go
5662 slowly. Otherwise I think it's quite nice for end users. Next
5668 slowly. Otherwise I think it's quite nice for end users. Next
5663 summer, rewrite the guts of it...
5669 summer, rewrite the guts of it...
5664
5670
5665 * Changed format of ipythonrc files to use whitespace as the
5671 * Changed format of ipythonrc files to use whitespace as the
5666 separator instead of an explicit '='. Cleaner.
5672 separator instead of an explicit '='. Cleaner.
5667
5673
5668 2001-12-20 Fernando Perez <fperez@colorado.edu>
5674 2001-12-20 Fernando Perez <fperez@colorado.edu>
5669
5675
5670 * Started a manual in LyX. For now it's just a quick merge of the
5676 * Started a manual in LyX. For now it's just a quick merge of the
5671 various internal docstrings and READMEs. Later it may grow into a
5677 various internal docstrings and READMEs. Later it may grow into a
5672 nice, full-blown manual.
5678 nice, full-blown manual.
5673
5679
5674 * Set up a distutils based installer. Installation should now be
5680 * Set up a distutils based installer. Installation should now be
5675 trivially simple for end-users.
5681 trivially simple for end-users.
5676
5682
5677 2001-12-11 Fernando Perez <fperez@colorado.edu>
5683 2001-12-11 Fernando Perez <fperez@colorado.edu>
5678
5684
5679 * Released 0.2.0. First public release, announced it at
5685 * Released 0.2.0. First public release, announced it at
5680 comp.lang.python. From now on, just bugfixes...
5686 comp.lang.python. From now on, just bugfixes...
5681
5687
5682 * Went through all the files, set copyright/license notices and
5688 * Went through all the files, set copyright/license notices and
5683 cleaned up things. Ready for release.
5689 cleaned up things. Ready for release.
5684
5690
5685 2001-12-10 Fernando Perez <fperez@colorado.edu>
5691 2001-12-10 Fernando Perez <fperez@colorado.edu>
5686
5692
5687 * Changed the first-time installer not to use tarfiles. It's more
5693 * Changed the first-time installer not to use tarfiles. It's more
5688 robust now and less unix-dependent. Also makes it easier for
5694 robust now and less unix-dependent. Also makes it easier for
5689 people to later upgrade versions.
5695 people to later upgrade versions.
5690
5696
5691 * Changed @exit to @abort to reflect the fact that it's pretty
5697 * Changed @exit to @abort to reflect the fact that it's pretty
5692 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5698 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5693 becomes significant only when IPyhton is embedded: in that case,
5699 becomes significant only when IPyhton is embedded: in that case,
5694 C-D closes IPython only, but @abort kills the enclosing program
5700 C-D closes IPython only, but @abort kills the enclosing program
5695 too (unless it had called IPython inside a try catching
5701 too (unless it had called IPython inside a try catching
5696 SystemExit).
5702 SystemExit).
5697
5703
5698 * Created Shell module which exposes the actuall IPython Shell
5704 * Created Shell module which exposes the actuall IPython Shell
5699 classes, currently the normal and the embeddable one. This at
5705 classes, currently the normal and the embeddable one. This at
5700 least offers a stable interface we won't need to change when
5706 least offers a stable interface we won't need to change when
5701 (later) the internals are rewritten. That rewrite will be confined
5707 (later) the internals are rewritten. That rewrite will be confined
5702 to iplib and ipmaker, but the Shell interface should remain as is.
5708 to iplib and ipmaker, but the Shell interface should remain as is.
5703
5709
5704 * Added embed module which offers an embeddable IPShell object,
5710 * Added embed module which offers an embeddable IPShell object,
5705 useful to fire up IPython *inside* a running program. Great for
5711 useful to fire up IPython *inside* a running program. Great for
5706 debugging or dynamical data analysis.
5712 debugging or dynamical data analysis.
5707
5713
5708 2001-12-08 Fernando Perez <fperez@colorado.edu>
5714 2001-12-08 Fernando Perez <fperez@colorado.edu>
5709
5715
5710 * Fixed small bug preventing seeing info from methods of defined
5716 * Fixed small bug preventing seeing info from methods of defined
5711 objects (incorrect namespace in _ofind()).
5717 objects (incorrect namespace in _ofind()).
5712
5718
5713 * Documentation cleanup. Moved the main usage docstrings to a
5719 * Documentation cleanup. Moved the main usage docstrings to a
5714 separate file, usage.py (cleaner to maintain, and hopefully in the
5720 separate file, usage.py (cleaner to maintain, and hopefully in the
5715 future some perlpod-like way of producing interactive, man and
5721 future some perlpod-like way of producing interactive, man and
5716 html docs out of it will be found).
5722 html docs out of it will be found).
5717
5723
5718 * Added @profile to see your profile at any time.
5724 * Added @profile to see your profile at any time.
5719
5725
5720 * Added @p as an alias for 'print'. It's especially convenient if
5726 * Added @p as an alias for 'print'. It's especially convenient if
5721 using automagic ('p x' prints x).
5727 using automagic ('p x' prints x).
5722
5728
5723 * Small cleanups and fixes after a pychecker run.
5729 * Small cleanups and fixes after a pychecker run.
5724
5730
5725 * Changed the @cd command to handle @cd - and @cd -<n> for
5731 * Changed the @cd command to handle @cd - and @cd -<n> for
5726 visiting any directory in _dh.
5732 visiting any directory in _dh.
5727
5733
5728 * Introduced _dh, a history of visited directories. @dhist prints
5734 * Introduced _dh, a history of visited directories. @dhist prints
5729 it out with numbers.
5735 it out with numbers.
5730
5736
5731 2001-12-07 Fernando Perez <fperez@colorado.edu>
5737 2001-12-07 Fernando Perez <fperez@colorado.edu>
5732
5738
5733 * Released 0.1.22
5739 * Released 0.1.22
5734
5740
5735 * Made initialization a bit more robust against invalid color
5741 * Made initialization a bit more robust against invalid color
5736 options in user input (exit, not traceback-crash).
5742 options in user input (exit, not traceback-crash).
5737
5743
5738 * Changed the bug crash reporter to write the report only in the
5744 * Changed the bug crash reporter to write the report only in the
5739 user's .ipython directory. That way IPython won't litter people's
5745 user's .ipython directory. That way IPython won't litter people's
5740 hard disks with crash files all over the place. Also print on
5746 hard disks with crash files all over the place. Also print on
5741 screen the necessary mail command.
5747 screen the necessary mail command.
5742
5748
5743 * With the new ultraTB, implemented LightBG color scheme for light
5749 * With the new ultraTB, implemented LightBG color scheme for light
5744 background terminals. A lot of people like white backgrounds, so I
5750 background terminals. A lot of people like white backgrounds, so I
5745 guess we should at least give them something readable.
5751 guess we should at least give them something readable.
5746
5752
5747 2001-12-06 Fernando Perez <fperez@colorado.edu>
5753 2001-12-06 Fernando Perez <fperez@colorado.edu>
5748
5754
5749 * Modified the structure of ultraTB. Now there's a proper class
5755 * Modified the structure of ultraTB. Now there's a proper class
5750 for tables of color schemes which allow adding schemes easily and
5756 for tables of color schemes which allow adding schemes easily and
5751 switching the active scheme without creating a new instance every
5757 switching the active scheme without creating a new instance every
5752 time (which was ridiculous). The syntax for creating new schemes
5758 time (which was ridiculous). The syntax for creating new schemes
5753 is also cleaner. I think ultraTB is finally done, with a clean
5759 is also cleaner. I think ultraTB is finally done, with a clean
5754 class structure. Names are also much cleaner (now there's proper
5760 class structure. Names are also much cleaner (now there's proper
5755 color tables, no need for every variable to also have 'color' in
5761 color tables, no need for every variable to also have 'color' in
5756 its name).
5762 its name).
5757
5763
5758 * Broke down genutils into separate files. Now genutils only
5764 * Broke down genutils into separate files. Now genutils only
5759 contains utility functions, and classes have been moved to their
5765 contains utility functions, and classes have been moved to their
5760 own files (they had enough independent functionality to warrant
5766 own files (they had enough independent functionality to warrant
5761 it): ConfigLoader, OutputTrap, Struct.
5767 it): ConfigLoader, OutputTrap, Struct.
5762
5768
5763 2001-12-05 Fernando Perez <fperez@colorado.edu>
5769 2001-12-05 Fernando Perez <fperez@colorado.edu>
5764
5770
5765 * IPython turns 21! Released version 0.1.21, as a candidate for
5771 * IPython turns 21! Released version 0.1.21, as a candidate for
5766 public consumption. If all goes well, release in a few days.
5772 public consumption. If all goes well, release in a few days.
5767
5773
5768 * Fixed path bug (files in Extensions/ directory wouldn't be found
5774 * Fixed path bug (files in Extensions/ directory wouldn't be found
5769 unless IPython/ was explicitly in sys.path).
5775 unless IPython/ was explicitly in sys.path).
5770
5776
5771 * Extended the FlexCompleter class as MagicCompleter to allow
5777 * Extended the FlexCompleter class as MagicCompleter to allow
5772 completion of @-starting lines.
5778 completion of @-starting lines.
5773
5779
5774 * Created __release__.py file as a central repository for release
5780 * Created __release__.py file as a central repository for release
5775 info that other files can read from.
5781 info that other files can read from.
5776
5782
5777 * Fixed small bug in logging: when logging was turned on in
5783 * Fixed small bug in logging: when logging was turned on in
5778 mid-session, old lines with special meanings (!@?) were being
5784 mid-session, old lines with special meanings (!@?) were being
5779 logged without the prepended comment, which is necessary since
5785 logged without the prepended comment, which is necessary since
5780 they are not truly valid python syntax. This should make session
5786 they are not truly valid python syntax. This should make session
5781 restores produce less errors.
5787 restores produce less errors.
5782
5788
5783 * The namespace cleanup forced me to make a FlexCompleter class
5789 * The namespace cleanup forced me to make a FlexCompleter class
5784 which is nothing but a ripoff of rlcompleter, but with selectable
5790 which is nothing but a ripoff of rlcompleter, but with selectable
5785 namespace (rlcompleter only works in __main__.__dict__). I'll try
5791 namespace (rlcompleter only works in __main__.__dict__). I'll try
5786 to submit a note to the authors to see if this change can be
5792 to submit a note to the authors to see if this change can be
5787 incorporated in future rlcompleter releases (Dec.6: done)
5793 incorporated in future rlcompleter releases (Dec.6: done)
5788
5794
5789 * More fixes to namespace handling. It was a mess! Now all
5795 * More fixes to namespace handling. It was a mess! Now all
5790 explicit references to __main__.__dict__ are gone (except when
5796 explicit references to __main__.__dict__ are gone (except when
5791 really needed) and everything is handled through the namespace
5797 really needed) and everything is handled through the namespace
5792 dicts in the IPython instance. We seem to be getting somewhere
5798 dicts in the IPython instance. We seem to be getting somewhere
5793 with this, finally...
5799 with this, finally...
5794
5800
5795 * Small documentation updates.
5801 * Small documentation updates.
5796
5802
5797 * Created the Extensions directory under IPython (with an
5803 * Created the Extensions directory under IPython (with an
5798 __init__.py). Put the PhysicalQ stuff there. This directory should
5804 __init__.py). Put the PhysicalQ stuff there. This directory should
5799 be used for all special-purpose extensions.
5805 be used for all special-purpose extensions.
5800
5806
5801 * File renaming:
5807 * File renaming:
5802 ipythonlib --> ipmaker
5808 ipythonlib --> ipmaker
5803 ipplib --> iplib
5809 ipplib --> iplib
5804 This makes a bit more sense in terms of what these files actually do.
5810 This makes a bit more sense in terms of what these files actually do.
5805
5811
5806 * Moved all the classes and functions in ipythonlib to ipplib, so
5812 * Moved all the classes and functions in ipythonlib to ipplib, so
5807 now ipythonlib only has make_IPython(). This will ease up its
5813 now ipythonlib only has make_IPython(). This will ease up its
5808 splitting in smaller functional chunks later.
5814 splitting in smaller functional chunks later.
5809
5815
5810 * Cleaned up (done, I think) output of @whos. Better column
5816 * Cleaned up (done, I think) output of @whos. Better column
5811 formatting, and now shows str(var) for as much as it can, which is
5817 formatting, and now shows str(var) for as much as it can, which is
5812 typically what one gets with a 'print var'.
5818 typically what one gets with a 'print var'.
5813
5819
5814 2001-12-04 Fernando Perez <fperez@colorado.edu>
5820 2001-12-04 Fernando Perez <fperez@colorado.edu>
5815
5821
5816 * Fixed namespace problems. Now builtin/IPyhton/user names get
5822 * Fixed namespace problems. Now builtin/IPyhton/user names get
5817 properly reported in their namespace. Internal namespace handling
5823 properly reported in their namespace. Internal namespace handling
5818 is finally getting decent (not perfect yet, but much better than
5824 is finally getting decent (not perfect yet, but much better than
5819 the ad-hoc mess we had).
5825 the ad-hoc mess we had).
5820
5826
5821 * Removed -exit option. If people just want to run a python
5827 * Removed -exit option. If people just want to run a python
5822 script, that's what the normal interpreter is for. Less
5828 script, that's what the normal interpreter is for. Less
5823 unnecessary options, less chances for bugs.
5829 unnecessary options, less chances for bugs.
5824
5830
5825 * Added a crash handler which generates a complete post-mortem if
5831 * Added a crash handler which generates a complete post-mortem if
5826 IPython crashes. This will help a lot in tracking bugs down the
5832 IPython crashes. This will help a lot in tracking bugs down the
5827 road.
5833 road.
5828
5834
5829 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5835 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5830 which were boud to functions being reassigned would bypass the
5836 which were boud to functions being reassigned would bypass the
5831 logger, breaking the sync of _il with the prompt counter. This
5837 logger, breaking the sync of _il with the prompt counter. This
5832 would then crash IPython later when a new line was logged.
5838 would then crash IPython later when a new line was logged.
5833
5839
5834 2001-12-02 Fernando Perez <fperez@colorado.edu>
5840 2001-12-02 Fernando Perez <fperez@colorado.edu>
5835
5841
5836 * Made IPython a package. This means people don't have to clutter
5842 * Made IPython a package. This means people don't have to clutter
5837 their sys.path with yet another directory. Changed the INSTALL
5843 their sys.path with yet another directory. Changed the INSTALL
5838 file accordingly.
5844 file accordingly.
5839
5845
5840 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5846 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5841 sorts its output (so @who shows it sorted) and @whos formats the
5847 sorts its output (so @who shows it sorted) and @whos formats the
5842 table according to the width of the first column. Nicer, easier to
5848 table according to the width of the first column. Nicer, easier to
5843 read. Todo: write a generic table_format() which takes a list of
5849 read. Todo: write a generic table_format() which takes a list of
5844 lists and prints it nicely formatted, with optional row/column
5850 lists and prints it nicely formatted, with optional row/column
5845 separators and proper padding and justification.
5851 separators and proper padding and justification.
5846
5852
5847 * Released 0.1.20
5853 * Released 0.1.20
5848
5854
5849 * Fixed bug in @log which would reverse the inputcache list (a
5855 * Fixed bug in @log which would reverse the inputcache list (a
5850 copy operation was missing).
5856 copy operation was missing).
5851
5857
5852 * Code cleanup. @config was changed to use page(). Better, since
5858 * Code cleanup. @config was changed to use page(). Better, since
5853 its output is always quite long.
5859 its output is always quite long.
5854
5860
5855 * Itpl is back as a dependency. I was having too many problems
5861 * Itpl is back as a dependency. I was having too many problems
5856 getting the parametric aliases to work reliably, and it's just
5862 getting the parametric aliases to work reliably, and it's just
5857 easier to code weird string operations with it than playing %()s
5863 easier to code weird string operations with it than playing %()s
5858 games. It's only ~6k, so I don't think it's too big a deal.
5864 games. It's only ~6k, so I don't think it's too big a deal.
5859
5865
5860 * Found (and fixed) a very nasty bug with history. !lines weren't
5866 * Found (and fixed) a very nasty bug with history. !lines weren't
5861 getting cached, and the out of sync caches would crash
5867 getting cached, and the out of sync caches would crash
5862 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5868 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5863 division of labor a bit better. Bug fixed, cleaner structure.
5869 division of labor a bit better. Bug fixed, cleaner structure.
5864
5870
5865 2001-12-01 Fernando Perez <fperez@colorado.edu>
5871 2001-12-01 Fernando Perez <fperez@colorado.edu>
5866
5872
5867 * Released 0.1.19
5873 * Released 0.1.19
5868
5874
5869 * Added option -n to @hist to prevent line number printing. Much
5875 * Added option -n to @hist to prevent line number printing. Much
5870 easier to copy/paste code this way.
5876 easier to copy/paste code this way.
5871
5877
5872 * Created global _il to hold the input list. Allows easy
5878 * Created global _il to hold the input list. Allows easy
5873 re-execution of blocks of code by slicing it (inspired by Janko's
5879 re-execution of blocks of code by slicing it (inspired by Janko's
5874 comment on 'macros').
5880 comment on 'macros').
5875
5881
5876 * Small fixes and doc updates.
5882 * Small fixes and doc updates.
5877
5883
5878 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5884 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5879 much too fragile with automagic. Handles properly multi-line
5885 much too fragile with automagic. Handles properly multi-line
5880 statements and takes parameters.
5886 statements and takes parameters.
5881
5887
5882 2001-11-30 Fernando Perez <fperez@colorado.edu>
5888 2001-11-30 Fernando Perez <fperez@colorado.edu>
5883
5889
5884 * Version 0.1.18 released.
5890 * Version 0.1.18 released.
5885
5891
5886 * Fixed nasty namespace bug in initial module imports.
5892 * Fixed nasty namespace bug in initial module imports.
5887
5893
5888 * Added copyright/license notes to all code files (except
5894 * Added copyright/license notes to all code files (except
5889 DPyGetOpt). For the time being, LGPL. That could change.
5895 DPyGetOpt). For the time being, LGPL. That could change.
5890
5896
5891 * Rewrote a much nicer README, updated INSTALL, cleaned up
5897 * Rewrote a much nicer README, updated INSTALL, cleaned up
5892 ipythonrc-* samples.
5898 ipythonrc-* samples.
5893
5899
5894 * Overall code/documentation cleanup. Basically ready for
5900 * Overall code/documentation cleanup. Basically ready for
5895 release. Only remaining thing: licence decision (LGPL?).
5901 release. Only remaining thing: licence decision (LGPL?).
5896
5902
5897 * Converted load_config to a class, ConfigLoader. Now recursion
5903 * Converted load_config to a class, ConfigLoader. Now recursion
5898 control is better organized. Doesn't include the same file twice.
5904 control is better organized. Doesn't include the same file twice.
5899
5905
5900 2001-11-29 Fernando Perez <fperez@colorado.edu>
5906 2001-11-29 Fernando Perez <fperez@colorado.edu>
5901
5907
5902 * Got input history working. Changed output history variables from
5908 * Got input history working. Changed output history variables from
5903 _p to _o so that _i is for input and _o for output. Just cleaner
5909 _p to _o so that _i is for input and _o for output. Just cleaner
5904 convention.
5910 convention.
5905
5911
5906 * Implemented parametric aliases. This pretty much allows the
5912 * Implemented parametric aliases. This pretty much allows the
5907 alias system to offer full-blown shell convenience, I think.
5913 alias system to offer full-blown shell convenience, I think.
5908
5914
5909 * Version 0.1.17 released, 0.1.18 opened.
5915 * Version 0.1.17 released, 0.1.18 opened.
5910
5916
5911 * dot_ipython/ipythonrc (alias): added documentation.
5917 * dot_ipython/ipythonrc (alias): added documentation.
5912 (xcolor): Fixed small bug (xcolors -> xcolor)
5918 (xcolor): Fixed small bug (xcolors -> xcolor)
5913
5919
5914 * Changed the alias system. Now alias is a magic command to define
5920 * Changed the alias system. Now alias is a magic command to define
5915 aliases just like the shell. Rationale: the builtin magics should
5921 aliases just like the shell. Rationale: the builtin magics should
5916 be there for things deeply connected to IPython's
5922 be there for things deeply connected to IPython's
5917 architecture. And this is a much lighter system for what I think
5923 architecture. And this is a much lighter system for what I think
5918 is the really important feature: allowing users to define quickly
5924 is the really important feature: allowing users to define quickly
5919 magics that will do shell things for them, so they can customize
5925 magics that will do shell things for them, so they can customize
5920 IPython easily to match their work habits. If someone is really
5926 IPython easily to match their work habits. If someone is really
5921 desperate to have another name for a builtin alias, they can
5927 desperate to have another name for a builtin alias, they can
5922 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5928 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
5923 works.
5929 works.
5924
5930
5925 2001-11-28 Fernando Perez <fperez@colorado.edu>
5931 2001-11-28 Fernando Perez <fperez@colorado.edu>
5926
5932
5927 * Changed @file so that it opens the source file at the proper
5933 * Changed @file so that it opens the source file at the proper
5928 line. Since it uses less, if your EDITOR environment is
5934 line. Since it uses less, if your EDITOR environment is
5929 configured, typing v will immediately open your editor of choice
5935 configured, typing v will immediately open your editor of choice
5930 right at the line where the object is defined. Not as quick as
5936 right at the line where the object is defined. Not as quick as
5931 having a direct @edit command, but for all intents and purposes it
5937 having a direct @edit command, but for all intents and purposes it
5932 works. And I don't have to worry about writing @edit to deal with
5938 works. And I don't have to worry about writing @edit to deal with
5933 all the editors, less does that.
5939 all the editors, less does that.
5934
5940
5935 * Version 0.1.16 released, 0.1.17 opened.
5941 * Version 0.1.16 released, 0.1.17 opened.
5936
5942
5937 * Fixed some nasty bugs in the page/page_dumb combo that could
5943 * Fixed some nasty bugs in the page/page_dumb combo that could
5938 crash IPython.
5944 crash IPython.
5939
5945
5940 2001-11-27 Fernando Perez <fperez@colorado.edu>
5946 2001-11-27 Fernando Perez <fperez@colorado.edu>
5941
5947
5942 * Version 0.1.15 released, 0.1.16 opened.
5948 * Version 0.1.15 released, 0.1.16 opened.
5943
5949
5944 * Finally got ? and ?? to work for undefined things: now it's
5950 * Finally got ? and ?? to work for undefined things: now it's
5945 possible to type {}.get? and get information about the get method
5951 possible to type {}.get? and get information about the get method
5946 of dicts, or os.path? even if only os is defined (so technically
5952 of dicts, or os.path? even if only os is defined (so technically
5947 os.path isn't). Works at any level. For example, after import os,
5953 os.path isn't). Works at any level. For example, after import os,
5948 os?, os.path?, os.path.abspath? all work. This is great, took some
5954 os?, os.path?, os.path.abspath? all work. This is great, took some
5949 work in _ofind.
5955 work in _ofind.
5950
5956
5951 * Fixed more bugs with logging. The sanest way to do it was to add
5957 * Fixed more bugs with logging. The sanest way to do it was to add
5952 to @log a 'mode' parameter. Killed two in one shot (this mode
5958 to @log a 'mode' parameter. Killed two in one shot (this mode
5953 option was a request of Janko's). I think it's finally clean
5959 option was a request of Janko's). I think it's finally clean
5954 (famous last words).
5960 (famous last words).
5955
5961
5956 * Added a page_dumb() pager which does a decent job of paging on
5962 * Added a page_dumb() pager which does a decent job of paging on
5957 screen, if better things (like less) aren't available. One less
5963 screen, if better things (like less) aren't available. One less
5958 unix dependency (someday maybe somebody will port this to
5964 unix dependency (someday maybe somebody will port this to
5959 windows).
5965 windows).
5960
5966
5961 * Fixed problem in magic_log: would lock of logging out if log
5967 * Fixed problem in magic_log: would lock of logging out if log
5962 creation failed (because it would still think it had succeeded).
5968 creation failed (because it would still think it had succeeded).
5963
5969
5964 * Improved the page() function using curses to auto-detect screen
5970 * Improved the page() function using curses to auto-detect screen
5965 size. Now it can make a much better decision on whether to print
5971 size. Now it can make a much better decision on whether to print
5966 or page a string. Option screen_length was modified: a value 0
5972 or page a string. Option screen_length was modified: a value 0
5967 means auto-detect, and that's the default now.
5973 means auto-detect, and that's the default now.
5968
5974
5969 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5975 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
5970 go out. I'll test it for a few days, then talk to Janko about
5976 go out. I'll test it for a few days, then talk to Janko about
5971 licences and announce it.
5977 licences and announce it.
5972
5978
5973 * Fixed the length of the auto-generated ---> prompt which appears
5979 * Fixed the length of the auto-generated ---> prompt which appears
5974 for auto-parens and auto-quotes. Getting this right isn't trivial,
5980 for auto-parens and auto-quotes. Getting this right isn't trivial,
5975 with all the color escapes, different prompt types and optional
5981 with all the color escapes, different prompt types and optional
5976 separators. But it seems to be working in all the combinations.
5982 separators. But it seems to be working in all the combinations.
5977
5983
5978 2001-11-26 Fernando Perez <fperez@colorado.edu>
5984 2001-11-26 Fernando Perez <fperez@colorado.edu>
5979
5985
5980 * Wrote a regexp filter to get option types from the option names
5986 * Wrote a regexp filter to get option types from the option names
5981 string. This eliminates the need to manually keep two duplicate
5987 string. This eliminates the need to manually keep two duplicate
5982 lists.
5988 lists.
5983
5989
5984 * Removed the unneeded check_option_names. Now options are handled
5990 * Removed the unneeded check_option_names. Now options are handled
5985 in a much saner manner and it's easy to visually check that things
5991 in a much saner manner and it's easy to visually check that things
5986 are ok.
5992 are ok.
5987
5993
5988 * Updated version numbers on all files I modified to carry a
5994 * Updated version numbers on all files I modified to carry a
5989 notice so Janko and Nathan have clear version markers.
5995 notice so Janko and Nathan have clear version markers.
5990
5996
5991 * Updated docstring for ultraTB with my changes. I should send
5997 * Updated docstring for ultraTB with my changes. I should send
5992 this to Nathan.
5998 this to Nathan.
5993
5999
5994 * Lots of small fixes. Ran everything through pychecker again.
6000 * Lots of small fixes. Ran everything through pychecker again.
5995
6001
5996 * Made loading of deep_reload an cmd line option. If it's not too
6002 * Made loading of deep_reload an cmd line option. If it's not too
5997 kosher, now people can just disable it. With -nodeep_reload it's
6003 kosher, now people can just disable it. With -nodeep_reload it's
5998 still available as dreload(), it just won't overwrite reload().
6004 still available as dreload(), it just won't overwrite reload().
5999
6005
6000 * Moved many options to the no| form (-opt and -noopt
6006 * Moved many options to the no| form (-opt and -noopt
6001 accepted). Cleaner.
6007 accepted). Cleaner.
6002
6008
6003 * Changed magic_log so that if called with no parameters, it uses
6009 * Changed magic_log so that if called with no parameters, it uses
6004 'rotate' mode. That way auto-generated logs aren't automatically
6010 'rotate' mode. That way auto-generated logs aren't automatically
6005 over-written. For normal logs, now a backup is made if it exists
6011 over-written. For normal logs, now a backup is made if it exists
6006 (only 1 level of backups). A new 'backup' mode was added to the
6012 (only 1 level of backups). A new 'backup' mode was added to the
6007 Logger class to support this. This was a request by Janko.
6013 Logger class to support this. This was a request by Janko.
6008
6014
6009 * Added @logoff/@logon to stop/restart an active log.
6015 * Added @logoff/@logon to stop/restart an active log.
6010
6016
6011 * Fixed a lot of bugs in log saving/replay. It was pretty
6017 * Fixed a lot of bugs in log saving/replay. It was pretty
6012 broken. Now special lines (!@,/) appear properly in the command
6018 broken. Now special lines (!@,/) appear properly in the command
6013 history after a log replay.
6019 history after a log replay.
6014
6020
6015 * Tried and failed to implement full session saving via pickle. My
6021 * Tried and failed to implement full session saving via pickle. My
6016 idea was to pickle __main__.__dict__, but modules can't be
6022 idea was to pickle __main__.__dict__, but modules can't be
6017 pickled. This would be a better alternative to replaying logs, but
6023 pickled. This would be a better alternative to replaying logs, but
6018 seems quite tricky to get to work. Changed -session to be called
6024 seems quite tricky to get to work. Changed -session to be called
6019 -logplay, which more accurately reflects what it does. And if we
6025 -logplay, which more accurately reflects what it does. And if we
6020 ever get real session saving working, -session is now available.
6026 ever get real session saving working, -session is now available.
6021
6027
6022 * Implemented color schemes for prompts also. As for tracebacks,
6028 * Implemented color schemes for prompts also. As for tracebacks,
6023 currently only NoColor and Linux are supported. But now the
6029 currently only NoColor and Linux are supported. But now the
6024 infrastructure is in place, based on a generic ColorScheme
6030 infrastructure is in place, based on a generic ColorScheme
6025 class. So writing and activating new schemes both for the prompts
6031 class. So writing and activating new schemes both for the prompts
6026 and the tracebacks should be straightforward.
6032 and the tracebacks should be straightforward.
6027
6033
6028 * Version 0.1.13 released, 0.1.14 opened.
6034 * Version 0.1.13 released, 0.1.14 opened.
6029
6035
6030 * Changed handling of options for output cache. Now counter is
6036 * Changed handling of options for output cache. Now counter is
6031 hardwired starting at 1 and one specifies the maximum number of
6037 hardwired starting at 1 and one specifies the maximum number of
6032 entries *in the outcache* (not the max prompt counter). This is
6038 entries *in the outcache* (not the max prompt counter). This is
6033 much better, since many statements won't increase the cache
6039 much better, since many statements won't increase the cache
6034 count. It also eliminated some confusing options, now there's only
6040 count. It also eliminated some confusing options, now there's only
6035 one: cache_size.
6041 one: cache_size.
6036
6042
6037 * Added 'alias' magic function and magic_alias option in the
6043 * Added 'alias' magic function and magic_alias option in the
6038 ipythonrc file. Now the user can easily define whatever names he
6044 ipythonrc file. Now the user can easily define whatever names he
6039 wants for the magic functions without having to play weird
6045 wants for the magic functions without having to play weird
6040 namespace games. This gives IPython a real shell-like feel.
6046 namespace games. This gives IPython a real shell-like feel.
6041
6047
6042 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6048 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6043 @ or not).
6049 @ or not).
6044
6050
6045 This was one of the last remaining 'visible' bugs (that I know
6051 This was one of the last remaining 'visible' bugs (that I know
6046 of). I think if I can clean up the session loading so it works
6052 of). I think if I can clean up the session loading so it works
6047 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6053 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6048 about licensing).
6054 about licensing).
6049
6055
6050 2001-11-25 Fernando Perez <fperez@colorado.edu>
6056 2001-11-25 Fernando Perez <fperez@colorado.edu>
6051
6057
6052 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6058 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6053 there's a cleaner distinction between what ? and ?? show.
6059 there's a cleaner distinction between what ? and ?? show.
6054
6060
6055 * Added screen_length option. Now the user can define his own
6061 * Added screen_length option. Now the user can define his own
6056 screen size for page() operations.
6062 screen size for page() operations.
6057
6063
6058 * Implemented magic shell-like functions with automatic code
6064 * Implemented magic shell-like functions with automatic code
6059 generation. Now adding another function is just a matter of adding
6065 generation. Now adding another function is just a matter of adding
6060 an entry to a dict, and the function is dynamically generated at
6066 an entry to a dict, and the function is dynamically generated at
6061 run-time. Python has some really cool features!
6067 run-time. Python has some really cool features!
6062
6068
6063 * Renamed many options to cleanup conventions a little. Now all
6069 * Renamed many options to cleanup conventions a little. Now all
6064 are lowercase, and only underscores where needed. Also in the code
6070 are lowercase, and only underscores where needed. Also in the code
6065 option name tables are clearer.
6071 option name tables are clearer.
6066
6072
6067 * Changed prompts a little. Now input is 'In [n]:' instead of
6073 * Changed prompts a little. Now input is 'In [n]:' instead of
6068 'In[n]:='. This allows it the numbers to be aligned with the
6074 'In[n]:='. This allows it the numbers to be aligned with the
6069 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6075 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6070 Python (it was a Mathematica thing). The '...' continuation prompt
6076 Python (it was a Mathematica thing). The '...' continuation prompt
6071 was also changed a little to align better.
6077 was also changed a little to align better.
6072
6078
6073 * Fixed bug when flushing output cache. Not all _p<n> variables
6079 * Fixed bug when flushing output cache. Not all _p<n> variables
6074 exist, so their deletion needs to be wrapped in a try:
6080 exist, so their deletion needs to be wrapped in a try:
6075
6081
6076 * Figured out how to properly use inspect.formatargspec() (it
6082 * Figured out how to properly use inspect.formatargspec() (it
6077 requires the args preceded by *). So I removed all the code from
6083 requires the args preceded by *). So I removed all the code from
6078 _get_pdef in Magic, which was just replicating that.
6084 _get_pdef in Magic, which was just replicating that.
6079
6085
6080 * Added test to prefilter to allow redefining magic function names
6086 * Added test to prefilter to allow redefining magic function names
6081 as variables. This is ok, since the @ form is always available,
6087 as variables. This is ok, since the @ form is always available,
6082 but whe should allow the user to define a variable called 'ls' if
6088 but whe should allow the user to define a variable called 'ls' if
6083 he needs it.
6089 he needs it.
6084
6090
6085 * Moved the ToDo information from README into a separate ToDo.
6091 * Moved the ToDo information from README into a separate ToDo.
6086
6092
6087 * General code cleanup and small bugfixes. I think it's close to a
6093 * General code cleanup and small bugfixes. I think it's close to a
6088 state where it can be released, obviously with a big 'beta'
6094 state where it can be released, obviously with a big 'beta'
6089 warning on it.
6095 warning on it.
6090
6096
6091 * Got the magic function split to work. Now all magics are defined
6097 * Got the magic function split to work. Now all magics are defined
6092 in a separate class. It just organizes things a bit, and now
6098 in a separate class. It just organizes things a bit, and now
6093 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6099 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6094 was too long).
6100 was too long).
6095
6101
6096 * Changed @clear to @reset to avoid potential confusions with
6102 * Changed @clear to @reset to avoid potential confusions with
6097 the shell command clear. Also renamed @cl to @clear, which does
6103 the shell command clear. Also renamed @cl to @clear, which does
6098 exactly what people expect it to from their shell experience.
6104 exactly what people expect it to from their shell experience.
6099
6105
6100 Added a check to the @reset command (since it's so
6106 Added a check to the @reset command (since it's so
6101 destructive, it's probably a good idea to ask for confirmation).
6107 destructive, it's probably a good idea to ask for confirmation).
6102 But now reset only works for full namespace resetting. Since the
6108 But now reset only works for full namespace resetting. Since the
6103 del keyword is already there for deleting a few specific
6109 del keyword is already there for deleting a few specific
6104 variables, I don't see the point of having a redundant magic
6110 variables, I don't see the point of having a redundant magic
6105 function for the same task.
6111 function for the same task.
6106
6112
6107 2001-11-24 Fernando Perez <fperez@colorado.edu>
6113 2001-11-24 Fernando Perez <fperez@colorado.edu>
6108
6114
6109 * Updated the builtin docs (esp. the ? ones).
6115 * Updated the builtin docs (esp. the ? ones).
6110
6116
6111 * Ran all the code through pychecker. Not terribly impressed with
6117 * Ran all the code through pychecker. Not terribly impressed with
6112 it: lots of spurious warnings and didn't really find anything of
6118 it: lots of spurious warnings and didn't really find anything of
6113 substance (just a few modules being imported and not used).
6119 substance (just a few modules being imported and not used).
6114
6120
6115 * Implemented the new ultraTB functionality into IPython. New
6121 * Implemented the new ultraTB functionality into IPython. New
6116 option: xcolors. This chooses color scheme. xmode now only selects
6122 option: xcolors. This chooses color scheme. xmode now only selects
6117 between Plain and Verbose. Better orthogonality.
6123 between Plain and Verbose. Better orthogonality.
6118
6124
6119 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6125 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6120 mode and color scheme for the exception handlers. Now it's
6126 mode and color scheme for the exception handlers. Now it's
6121 possible to have the verbose traceback with no coloring.
6127 possible to have the verbose traceback with no coloring.
6122
6128
6123 2001-11-23 Fernando Perez <fperez@colorado.edu>
6129 2001-11-23 Fernando Perez <fperez@colorado.edu>
6124
6130
6125 * Version 0.1.12 released, 0.1.13 opened.
6131 * Version 0.1.12 released, 0.1.13 opened.
6126
6132
6127 * Removed option to set auto-quote and auto-paren escapes by
6133 * Removed option to set auto-quote and auto-paren escapes by
6128 user. The chances of breaking valid syntax are just too high. If
6134 user. The chances of breaking valid syntax are just too high. If
6129 someone *really* wants, they can always dig into the code.
6135 someone *really* wants, they can always dig into the code.
6130
6136
6131 * Made prompt separators configurable.
6137 * Made prompt separators configurable.
6132
6138
6133 2001-11-22 Fernando Perez <fperez@colorado.edu>
6139 2001-11-22 Fernando Perez <fperez@colorado.edu>
6134
6140
6135 * Small bugfixes in many places.
6141 * Small bugfixes in many places.
6136
6142
6137 * Removed the MyCompleter class from ipplib. It seemed redundant
6143 * Removed the MyCompleter class from ipplib. It seemed redundant
6138 with the C-p,C-n history search functionality. Less code to
6144 with the C-p,C-n history search functionality. Less code to
6139 maintain.
6145 maintain.
6140
6146
6141 * Moved all the original ipython.py code into ipythonlib.py. Right
6147 * Moved all the original ipython.py code into ipythonlib.py. Right
6142 now it's just one big dump into a function called make_IPython, so
6148 now it's just one big dump into a function called make_IPython, so
6143 no real modularity has been gained. But at least it makes the
6149 no real modularity has been gained. But at least it makes the
6144 wrapper script tiny, and since ipythonlib is a module, it gets
6150 wrapper script tiny, and since ipythonlib is a module, it gets
6145 compiled and startup is much faster.
6151 compiled and startup is much faster.
6146
6152
6147 This is a reasobably 'deep' change, so we should test it for a
6153 This is a reasobably 'deep' change, so we should test it for a
6148 while without messing too much more with the code.
6154 while without messing too much more with the code.
6149
6155
6150 2001-11-21 Fernando Perez <fperez@colorado.edu>
6156 2001-11-21 Fernando Perez <fperez@colorado.edu>
6151
6157
6152 * Version 0.1.11 released, 0.1.12 opened for further work.
6158 * Version 0.1.11 released, 0.1.12 opened for further work.
6153
6159
6154 * Removed dependency on Itpl. It was only needed in one place. It
6160 * Removed dependency on Itpl. It was only needed in one place. It
6155 would be nice if this became part of python, though. It makes life
6161 would be nice if this became part of python, though. It makes life
6156 *a lot* easier in some cases.
6162 *a lot* easier in some cases.
6157
6163
6158 * Simplified the prefilter code a bit. Now all handlers are
6164 * Simplified the prefilter code a bit. Now all handlers are
6159 expected to explicitly return a value (at least a blank string).
6165 expected to explicitly return a value (at least a blank string).
6160
6166
6161 * Heavy edits in ipplib. Removed the help system altogether. Now
6167 * Heavy edits in ipplib. Removed the help system altogether. Now
6162 obj?/?? is used for inspecting objects, a magic @doc prints
6168 obj?/?? is used for inspecting objects, a magic @doc prints
6163 docstrings, and full-blown Python help is accessed via the 'help'
6169 docstrings, and full-blown Python help is accessed via the 'help'
6164 keyword. This cleans up a lot of code (less to maintain) and does
6170 keyword. This cleans up a lot of code (less to maintain) and does
6165 the job. Since 'help' is now a standard Python component, might as
6171 the job. Since 'help' is now a standard Python component, might as
6166 well use it and remove duplicate functionality.
6172 well use it and remove duplicate functionality.
6167
6173
6168 Also removed the option to use ipplib as a standalone program. By
6174 Also removed the option to use ipplib as a standalone program. By
6169 now it's too dependent on other parts of IPython to function alone.
6175 now it's too dependent on other parts of IPython to function alone.
6170
6176
6171 * Fixed bug in genutils.pager. It would crash if the pager was
6177 * Fixed bug in genutils.pager. It would crash if the pager was
6172 exited immediately after opening (broken pipe).
6178 exited immediately after opening (broken pipe).
6173
6179
6174 * Trimmed down the VerboseTB reporting a little. The header is
6180 * Trimmed down the VerboseTB reporting a little. The header is
6175 much shorter now and the repeated exception arguments at the end
6181 much shorter now and the repeated exception arguments at the end
6176 have been removed. For interactive use the old header seemed a bit
6182 have been removed. For interactive use the old header seemed a bit
6177 excessive.
6183 excessive.
6178
6184
6179 * Fixed small bug in output of @whos for variables with multi-word
6185 * Fixed small bug in output of @whos for variables with multi-word
6180 types (only first word was displayed).
6186 types (only first word was displayed).
6181
6187
6182 2001-11-17 Fernando Perez <fperez@colorado.edu>
6188 2001-11-17 Fernando Perez <fperez@colorado.edu>
6183
6189
6184 * Version 0.1.10 released, 0.1.11 opened for further work.
6190 * Version 0.1.10 released, 0.1.11 opened for further work.
6185
6191
6186 * Modified dirs and friends. dirs now *returns* the stack (not
6192 * Modified dirs and friends. dirs now *returns* the stack (not
6187 prints), so one can manipulate it as a variable. Convenient to
6193 prints), so one can manipulate it as a variable. Convenient to
6188 travel along many directories.
6194 travel along many directories.
6189
6195
6190 * Fixed bug in magic_pdef: would only work with functions with
6196 * Fixed bug in magic_pdef: would only work with functions with
6191 arguments with default values.
6197 arguments with default values.
6192
6198
6193 2001-11-14 Fernando Perez <fperez@colorado.edu>
6199 2001-11-14 Fernando Perez <fperez@colorado.edu>
6194
6200
6195 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6201 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6196 example with IPython. Various other minor fixes and cleanups.
6202 example with IPython. Various other minor fixes and cleanups.
6197
6203
6198 * Version 0.1.9 released, 0.1.10 opened for further work.
6204 * Version 0.1.9 released, 0.1.10 opened for further work.
6199
6205
6200 * Added sys.path to the list of directories searched in the
6206 * Added sys.path to the list of directories searched in the
6201 execfile= option. It used to be the current directory and the
6207 execfile= option. It used to be the current directory and the
6202 user's IPYTHONDIR only.
6208 user's IPYTHONDIR only.
6203
6209
6204 2001-11-13 Fernando Perez <fperez@colorado.edu>
6210 2001-11-13 Fernando Perez <fperez@colorado.edu>
6205
6211
6206 * Reinstated the raw_input/prefilter separation that Janko had
6212 * Reinstated the raw_input/prefilter separation that Janko had
6207 initially. This gives a more convenient setup for extending the
6213 initially. This gives a more convenient setup for extending the
6208 pre-processor from the outside: raw_input always gets a string,
6214 pre-processor from the outside: raw_input always gets a string,
6209 and prefilter has to process it. We can then redefine prefilter
6215 and prefilter has to process it. We can then redefine prefilter
6210 from the outside and implement extensions for special
6216 from the outside and implement extensions for special
6211 purposes.
6217 purposes.
6212
6218
6213 Today I got one for inputting PhysicalQuantity objects
6219 Today I got one for inputting PhysicalQuantity objects
6214 (from Scientific) without needing any function calls at
6220 (from Scientific) without needing any function calls at
6215 all. Extremely convenient, and it's all done as a user-level
6221 all. Extremely convenient, and it's all done as a user-level
6216 extension (no IPython code was touched). Now instead of:
6222 extension (no IPython code was touched). Now instead of:
6217 a = PhysicalQuantity(4.2,'m/s**2')
6223 a = PhysicalQuantity(4.2,'m/s**2')
6218 one can simply say
6224 one can simply say
6219 a = 4.2 m/s**2
6225 a = 4.2 m/s**2
6220 or even
6226 or even
6221 a = 4.2 m/s^2
6227 a = 4.2 m/s^2
6222
6228
6223 I use this, but it's also a proof of concept: IPython really is
6229 I use this, but it's also a proof of concept: IPython really is
6224 fully user-extensible, even at the level of the parsing of the
6230 fully user-extensible, even at the level of the parsing of the
6225 command line. It's not trivial, but it's perfectly doable.
6231 command line. It's not trivial, but it's perfectly doable.
6226
6232
6227 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6233 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6228 the problem of modules being loaded in the inverse order in which
6234 the problem of modules being loaded in the inverse order in which
6229 they were defined in
6235 they were defined in
6230
6236
6231 * Version 0.1.8 released, 0.1.9 opened for further work.
6237 * Version 0.1.8 released, 0.1.9 opened for further work.
6232
6238
6233 * Added magics pdef, source and file. They respectively show the
6239 * Added magics pdef, source and file. They respectively show the
6234 definition line ('prototype' in C), source code and full python
6240 definition line ('prototype' in C), source code and full python
6235 file for any callable object. The object inspector oinfo uses
6241 file for any callable object. The object inspector oinfo uses
6236 these to show the same information.
6242 these to show the same information.
6237
6243
6238 * Version 0.1.7 released, 0.1.8 opened for further work.
6244 * Version 0.1.7 released, 0.1.8 opened for further work.
6239
6245
6240 * Separated all the magic functions into a class called Magic. The
6246 * Separated all the magic functions into a class called Magic. The
6241 InteractiveShell class was becoming too big for Xemacs to handle
6247 InteractiveShell class was becoming too big for Xemacs to handle
6242 (de-indenting a line would lock it up for 10 seconds while it
6248 (de-indenting a line would lock it up for 10 seconds while it
6243 backtracked on the whole class!)
6249 backtracked on the whole class!)
6244
6250
6245 FIXME: didn't work. It can be done, but right now namespaces are
6251 FIXME: didn't work. It can be done, but right now namespaces are
6246 all messed up. Do it later (reverted it for now, so at least
6252 all messed up. Do it later (reverted it for now, so at least
6247 everything works as before).
6253 everything works as before).
6248
6254
6249 * Got the object introspection system (magic_oinfo) working! I
6255 * Got the object introspection system (magic_oinfo) working! I
6250 think this is pretty much ready for release to Janko, so he can
6256 think this is pretty much ready for release to Janko, so he can
6251 test it for a while and then announce it. Pretty much 100% of what
6257 test it for a while and then announce it. Pretty much 100% of what
6252 I wanted for the 'phase 1' release is ready. Happy, tired.
6258 I wanted for the 'phase 1' release is ready. Happy, tired.
6253
6259
6254 2001-11-12 Fernando Perez <fperez@colorado.edu>
6260 2001-11-12 Fernando Perez <fperez@colorado.edu>
6255
6261
6256 * Version 0.1.6 released, 0.1.7 opened for further work.
6262 * Version 0.1.6 released, 0.1.7 opened for further work.
6257
6263
6258 * Fixed bug in printing: it used to test for truth before
6264 * Fixed bug in printing: it used to test for truth before
6259 printing, so 0 wouldn't print. Now checks for None.
6265 printing, so 0 wouldn't print. Now checks for None.
6260
6266
6261 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6267 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6262 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6268 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6263 reaches by hand into the outputcache. Think of a better way to do
6269 reaches by hand into the outputcache. Think of a better way to do
6264 this later.
6270 this later.
6265
6271
6266 * Various small fixes thanks to Nathan's comments.
6272 * Various small fixes thanks to Nathan's comments.
6267
6273
6268 * Changed magic_pprint to magic_Pprint. This way it doesn't
6274 * Changed magic_pprint to magic_Pprint. This way it doesn't
6269 collide with pprint() and the name is consistent with the command
6275 collide with pprint() and the name is consistent with the command
6270 line option.
6276 line option.
6271
6277
6272 * Changed prompt counter behavior to be fully like
6278 * Changed prompt counter behavior to be fully like
6273 Mathematica's. That is, even input that doesn't return a result
6279 Mathematica's. That is, even input that doesn't return a result
6274 raises the prompt counter. The old behavior was kind of confusing
6280 raises the prompt counter. The old behavior was kind of confusing
6275 (getting the same prompt number several times if the operation
6281 (getting the same prompt number several times if the operation
6276 didn't return a result).
6282 didn't return a result).
6277
6283
6278 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6284 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6279
6285
6280 * Fixed -Classic mode (wasn't working anymore).
6286 * Fixed -Classic mode (wasn't working anymore).
6281
6287
6282 * Added colored prompts using Nathan's new code. Colors are
6288 * Added colored prompts using Nathan's new code. Colors are
6283 currently hardwired, they can be user-configurable. For
6289 currently hardwired, they can be user-configurable. For
6284 developers, they can be chosen in file ipythonlib.py, at the
6290 developers, they can be chosen in file ipythonlib.py, at the
6285 beginning of the CachedOutput class def.
6291 beginning of the CachedOutput class def.
6286
6292
6287 2001-11-11 Fernando Perez <fperez@colorado.edu>
6293 2001-11-11 Fernando Perez <fperez@colorado.edu>
6288
6294
6289 * Version 0.1.5 released, 0.1.6 opened for further work.
6295 * Version 0.1.5 released, 0.1.6 opened for further work.
6290
6296
6291 * Changed magic_env to *return* the environment as a dict (not to
6297 * Changed magic_env to *return* the environment as a dict (not to
6292 print it). This way it prints, but it can also be processed.
6298 print it). This way it prints, but it can also be processed.
6293
6299
6294 * Added Verbose exception reporting to interactive
6300 * Added Verbose exception reporting to interactive
6295 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6301 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6296 traceback. Had to make some changes to the ultraTB file. This is
6302 traceback. Had to make some changes to the ultraTB file. This is
6297 probably the last 'big' thing in my mental todo list. This ties
6303 probably the last 'big' thing in my mental todo list. This ties
6298 in with the next entry:
6304 in with the next entry:
6299
6305
6300 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6306 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6301 has to specify is Plain, Color or Verbose for all exception
6307 has to specify is Plain, Color or Verbose for all exception
6302 handling.
6308 handling.
6303
6309
6304 * Removed ShellServices option. All this can really be done via
6310 * Removed ShellServices option. All this can really be done via
6305 the magic system. It's easier to extend, cleaner and has automatic
6311 the magic system. It's easier to extend, cleaner and has automatic
6306 namespace protection and documentation.
6312 namespace protection and documentation.
6307
6313
6308 2001-11-09 Fernando Perez <fperez@colorado.edu>
6314 2001-11-09 Fernando Perez <fperez@colorado.edu>
6309
6315
6310 * Fixed bug in output cache flushing (missing parameter to
6316 * Fixed bug in output cache flushing (missing parameter to
6311 __init__). Other small bugs fixed (found using pychecker).
6317 __init__). Other small bugs fixed (found using pychecker).
6312
6318
6313 * Version 0.1.4 opened for bugfixing.
6319 * Version 0.1.4 opened for bugfixing.
6314
6320
6315 2001-11-07 Fernando Perez <fperez@colorado.edu>
6321 2001-11-07 Fernando Perez <fperez@colorado.edu>
6316
6322
6317 * Version 0.1.3 released, mainly because of the raw_input bug.
6323 * Version 0.1.3 released, mainly because of the raw_input bug.
6318
6324
6319 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6325 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6320 and when testing for whether things were callable, a call could
6326 and when testing for whether things were callable, a call could
6321 actually be made to certain functions. They would get called again
6327 actually be made to certain functions. They would get called again
6322 once 'really' executed, with a resulting double call. A disaster
6328 once 'really' executed, with a resulting double call. A disaster
6323 in many cases (list.reverse() would never work!).
6329 in many cases (list.reverse() would never work!).
6324
6330
6325 * Removed prefilter() function, moved its code to raw_input (which
6331 * Removed prefilter() function, moved its code to raw_input (which
6326 after all was just a near-empty caller for prefilter). This saves
6332 after all was just a near-empty caller for prefilter). This saves
6327 a function call on every prompt, and simplifies the class a tiny bit.
6333 a function call on every prompt, and simplifies the class a tiny bit.
6328
6334
6329 * Fix _ip to __ip name in magic example file.
6335 * Fix _ip to __ip name in magic example file.
6330
6336
6331 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6337 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6332 work with non-gnu versions of tar.
6338 work with non-gnu versions of tar.
6333
6339
6334 2001-11-06 Fernando Perez <fperez@colorado.edu>
6340 2001-11-06 Fernando Perez <fperez@colorado.edu>
6335
6341
6336 * Version 0.1.2. Just to keep track of the recent changes.
6342 * Version 0.1.2. Just to keep track of the recent changes.
6337
6343
6338 * Fixed nasty bug in output prompt routine. It used to check 'if
6344 * Fixed nasty bug in output prompt routine. It used to check 'if
6339 arg != None...'. Problem is, this fails if arg implements a
6345 arg != None...'. Problem is, this fails if arg implements a
6340 special comparison (__cmp__) which disallows comparing to
6346 special comparison (__cmp__) which disallows comparing to
6341 None. Found it when trying to use the PhysicalQuantity module from
6347 None. Found it when trying to use the PhysicalQuantity module from
6342 ScientificPython.
6348 ScientificPython.
6343
6349
6344 2001-11-05 Fernando Perez <fperez@colorado.edu>
6350 2001-11-05 Fernando Perez <fperez@colorado.edu>
6345
6351
6346 * Also added dirs. Now the pushd/popd/dirs family functions
6352 * Also added dirs. Now the pushd/popd/dirs family functions
6347 basically like the shell, with the added convenience of going home
6353 basically like the shell, with the added convenience of going home
6348 when called with no args.
6354 when called with no args.
6349
6355
6350 * pushd/popd slightly modified to mimic shell behavior more
6356 * pushd/popd slightly modified to mimic shell behavior more
6351 closely.
6357 closely.
6352
6358
6353 * Added env,pushd,popd from ShellServices as magic functions. I
6359 * Added env,pushd,popd from ShellServices as magic functions. I
6354 think the cleanest will be to port all desired functions from
6360 think the cleanest will be to port all desired functions from
6355 ShellServices as magics and remove ShellServices altogether. This
6361 ShellServices as magics and remove ShellServices altogether. This
6356 will provide a single, clean way of adding functionality
6362 will provide a single, clean way of adding functionality
6357 (shell-type or otherwise) to IP.
6363 (shell-type or otherwise) to IP.
6358
6364
6359 2001-11-04 Fernando Perez <fperez@colorado.edu>
6365 2001-11-04 Fernando Perez <fperez@colorado.edu>
6360
6366
6361 * Added .ipython/ directory to sys.path. This way users can keep
6367 * Added .ipython/ directory to sys.path. This way users can keep
6362 customizations there and access them via import.
6368 customizations there and access them via import.
6363
6369
6364 2001-11-03 Fernando Perez <fperez@colorado.edu>
6370 2001-11-03 Fernando Perez <fperez@colorado.edu>
6365
6371
6366 * Opened version 0.1.1 for new changes.
6372 * Opened version 0.1.1 for new changes.
6367
6373
6368 * Changed version number to 0.1.0: first 'public' release, sent to
6374 * Changed version number to 0.1.0: first 'public' release, sent to
6369 Nathan and Janko.
6375 Nathan and Janko.
6370
6376
6371 * Lots of small fixes and tweaks.
6377 * Lots of small fixes and tweaks.
6372
6378
6373 * Minor changes to whos format. Now strings are shown, snipped if
6379 * Minor changes to whos format. Now strings are shown, snipped if
6374 too long.
6380 too long.
6375
6381
6376 * Changed ShellServices to work on __main__ so they show up in @who
6382 * Changed ShellServices to work on __main__ so they show up in @who
6377
6383
6378 * Help also works with ? at the end of a line:
6384 * Help also works with ? at the end of a line:
6379 ?sin and sin?
6385 ?sin and sin?
6380 both produce the same effect. This is nice, as often I use the
6386 both produce the same effect. This is nice, as often I use the
6381 tab-complete to find the name of a method, but I used to then have
6387 tab-complete to find the name of a method, but I used to then have
6382 to go to the beginning of the line to put a ? if I wanted more
6388 to go to the beginning of the line to put a ? if I wanted more
6383 info. Now I can just add the ? and hit return. Convenient.
6389 info. Now I can just add the ? and hit return. Convenient.
6384
6390
6385 2001-11-02 Fernando Perez <fperez@colorado.edu>
6391 2001-11-02 Fernando Perez <fperez@colorado.edu>
6386
6392
6387 * Python version check (>=2.1) added.
6393 * Python version check (>=2.1) added.
6388
6394
6389 * Added LazyPython documentation. At this point the docs are quite
6395 * Added LazyPython documentation. At this point the docs are quite
6390 a mess. A cleanup is in order.
6396 a mess. A cleanup is in order.
6391
6397
6392 * Auto-installer created. For some bizarre reason, the zipfiles
6398 * Auto-installer created. For some bizarre reason, the zipfiles
6393 module isn't working on my system. So I made a tar version
6399 module isn't working on my system. So I made a tar version
6394 (hopefully the command line options in various systems won't kill
6400 (hopefully the command line options in various systems won't kill
6395 me).
6401 me).
6396
6402
6397 * Fixes to Struct in genutils. Now all dictionary-like methods are
6403 * Fixes to Struct in genutils. Now all dictionary-like methods are
6398 protected (reasonably).
6404 protected (reasonably).
6399
6405
6400 * Added pager function to genutils and changed ? to print usage
6406 * Added pager function to genutils and changed ? to print usage
6401 note through it (it was too long).
6407 note through it (it was too long).
6402
6408
6403 * Added the LazyPython functionality. Works great! I changed the
6409 * Added the LazyPython functionality. Works great! I changed the
6404 auto-quote escape to ';', it's on home row and next to '. But
6410 auto-quote escape to ';', it's on home row and next to '. But
6405 both auto-quote and auto-paren (still /) escapes are command-line
6411 both auto-quote and auto-paren (still /) escapes are command-line
6406 parameters.
6412 parameters.
6407
6413
6408
6414
6409 2001-11-01 Fernando Perez <fperez@colorado.edu>
6415 2001-11-01 Fernando Perez <fperez@colorado.edu>
6410
6416
6411 * Version changed to 0.0.7. Fairly large change: configuration now
6417 * Version changed to 0.0.7. Fairly large change: configuration now
6412 is all stored in a directory, by default .ipython. There, all
6418 is all stored in a directory, by default .ipython. There, all
6413 config files have normal looking names (not .names)
6419 config files have normal looking names (not .names)
6414
6420
6415 * Version 0.0.6 Released first to Lucas and Archie as a test
6421 * Version 0.0.6 Released first to Lucas and Archie as a test
6416 run. Since it's the first 'semi-public' release, change version to
6422 run. Since it's the first 'semi-public' release, change version to
6417 > 0.0.6 for any changes now.
6423 > 0.0.6 for any changes now.
6418
6424
6419 * Stuff I had put in the ipplib.py changelog:
6425 * Stuff I had put in the ipplib.py changelog:
6420
6426
6421 Changes to InteractiveShell:
6427 Changes to InteractiveShell:
6422
6428
6423 - Made the usage message a parameter.
6429 - Made the usage message a parameter.
6424
6430
6425 - Require the name of the shell variable to be given. It's a bit
6431 - Require the name of the shell variable to be given. It's a bit
6426 of a hack, but allows the name 'shell' not to be hardwired in the
6432 of a hack, but allows the name 'shell' not to be hardwired in the
6427 magic (@) handler, which is problematic b/c it requires
6433 magic (@) handler, which is problematic b/c it requires
6428 polluting the global namespace with 'shell'. This in turn is
6434 polluting the global namespace with 'shell'. This in turn is
6429 fragile: if a user redefines a variable called shell, things
6435 fragile: if a user redefines a variable called shell, things
6430 break.
6436 break.
6431
6437
6432 - magic @: all functions available through @ need to be defined
6438 - magic @: all functions available through @ need to be defined
6433 as magic_<name>, even though they can be called simply as
6439 as magic_<name>, even though they can be called simply as
6434 @<name>. This allows the special command @magic to gather
6440 @<name>. This allows the special command @magic to gather
6435 information automatically about all existing magic functions,
6441 information automatically about all existing magic functions,
6436 even if they are run-time user extensions, by parsing the shell
6442 even if they are run-time user extensions, by parsing the shell
6437 instance __dict__ looking for special magic_ names.
6443 instance __dict__ looking for special magic_ names.
6438
6444
6439 - mainloop: added *two* local namespace parameters. This allows
6445 - mainloop: added *two* local namespace parameters. This allows
6440 the class to differentiate between parameters which were there
6446 the class to differentiate between parameters which were there
6441 before and after command line initialization was processed. This
6447 before and after command line initialization was processed. This
6442 way, later @who can show things loaded at startup by the
6448 way, later @who can show things loaded at startup by the
6443 user. This trick was necessary to make session saving/reloading
6449 user. This trick was necessary to make session saving/reloading
6444 really work: ideally after saving/exiting/reloading a session,
6450 really work: ideally after saving/exiting/reloading a session,
6445 *everything* should look the same, including the output of @who. I
6451 *everything* should look the same, including the output of @who. I
6446 was only able to make this work with this double namespace
6452 was only able to make this work with this double namespace
6447 trick.
6453 trick.
6448
6454
6449 - added a header to the logfile which allows (almost) full
6455 - added a header to the logfile which allows (almost) full
6450 session restoring.
6456 session restoring.
6451
6457
6452 - prepend lines beginning with @ or !, with a and log
6458 - prepend lines beginning with @ or !, with a and log
6453 them. Why? !lines: may be useful to know what you did @lines:
6459 them. Why? !lines: may be useful to know what you did @lines:
6454 they may affect session state. So when restoring a session, at
6460 they may affect session state. So when restoring a session, at
6455 least inform the user of their presence. I couldn't quite get
6461 least inform the user of their presence. I couldn't quite get
6456 them to properly re-execute, but at least the user is warned.
6462 them to properly re-execute, but at least the user is warned.
6457
6463
6458 * Started ChangeLog.
6464 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now