##// END OF EJS Templates
move empty line padding to before append of current line
vivainio -
Show More
@@ -1,258 +1,261 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """
2 """
3 Logger class for IPython's logging facilities.
3 Logger class for IPython's logging facilities.
4
4
5 $Id: Logger.py 1336 2006-05-30 06:09:15Z fperez $
5 $Id: Logger.py 2653 2007-08-22 18:01:09Z vivainio $
6 """
6 """
7
7
8 #*****************************************************************************
8 #*****************************************************************************
9 # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and
9 # Copyright (C) 2001 Janko Hauser <jhauser@zscout.de> and
10 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
10 # Copyright (C) 2001-2006 Fernando Perez <fperez@colorado.edu>
11 #
11 #
12 # Distributed under the terms of the BSD License. The full license is in
12 # Distributed under the terms of the BSD License. The full license is in
13 # the file COPYING, distributed as part of this software.
13 # the file COPYING, distributed as part of this software.
14 #*****************************************************************************
14 #*****************************************************************************
15
15
16 #****************************************************************************
16 #****************************************************************************
17 # Modules and globals
17 # Modules and globals
18
18
19 from IPython import Release
19 from IPython import Release
20 __author__ = '%s <%s>\n%s <%s>' % \
20 __author__ = '%s <%s>\n%s <%s>' % \
21 ( Release.authors['Janko'] + Release.authors['Fernando'] )
21 ( Release.authors['Janko'] + Release.authors['Fernando'] )
22 __license__ = Release.license
22 __license__ = Release.license
23
23
24 # Python standard modules
24 # Python standard modules
25 import glob
25 import glob
26 import os
26 import os
27 import time
27 import time
28
28
29 #****************************************************************************
29 #****************************************************************************
30 # FIXME: This class isn't a mixin anymore, but it still needs attributes from
30 # FIXME: This class isn't a mixin anymore, but it still needs attributes from
31 # ipython and does input cache management. Finish cleanup later...
31 # ipython and does input cache management. Finish cleanup later...
32
32
33 class Logger(object):
33 class Logger(object):
34 """A Logfile class with different policies for file creation"""
34 """A Logfile class with different policies for file creation"""
35
35
36 def __init__(self,shell,logfname='Logger.log',loghead='',logmode='over'):
36 def __init__(self,shell,logfname='Logger.log',loghead='',logmode='over'):
37
37
38 self._i00,self._i,self._ii,self._iii = '','','',''
38 self._i00,self._i,self._ii,self._iii = '','','',''
39
39
40 # this is the full ipython instance, we need some attributes from it
40 # this is the full ipython instance, we need some attributes from it
41 # which won't exist until later. What a mess, clean up later...
41 # which won't exist until later. What a mess, clean up later...
42 self.shell = shell
42 self.shell = shell
43
43
44 self.logfname = logfname
44 self.logfname = logfname
45 self.loghead = loghead
45 self.loghead = loghead
46 self.logmode = logmode
46 self.logmode = logmode
47 self.logfile = None
47 self.logfile = None
48
48
49 # Whether to log raw or processed input
49 # Whether to log raw or processed input
50 self.log_raw_input = False
50 self.log_raw_input = False
51
51
52 # whether to also log output
52 # whether to also log output
53 self.log_output = False
53 self.log_output = False
54
54
55 # whether to put timestamps before each log entry
55 # whether to put timestamps before each log entry
56 self.timestamp = False
56 self.timestamp = False
57
57
58 # activity control flags
58 # activity control flags
59 self.log_active = False
59 self.log_active = False
60
60
61 # logmode is a validated property
61 # logmode is a validated property
62 def _set_mode(self,mode):
62 def _set_mode(self,mode):
63 if mode not in ['append','backup','global','over','rotate']:
63 if mode not in ['append','backup','global','over','rotate']:
64 raise ValueError,'invalid log mode %s given' % mode
64 raise ValueError,'invalid log mode %s given' % mode
65 self._logmode = mode
65 self._logmode = mode
66
66
67 def _get_mode(self):
67 def _get_mode(self):
68 return self._logmode
68 return self._logmode
69
69
70 logmode = property(_get_mode,_set_mode)
70 logmode = property(_get_mode,_set_mode)
71
71
72 def logstart(self,logfname=None,loghead=None,logmode=None,
72 def logstart(self,logfname=None,loghead=None,logmode=None,
73 log_output=False,timestamp=False,log_raw_input=False):
73 log_output=False,timestamp=False,log_raw_input=False):
74 """Generate a new log-file with a default header.
74 """Generate a new log-file with a default header.
75
75
76 Raises RuntimeError if the log has already been started"""
76 Raises RuntimeError if the log has already been started"""
77
77
78 if self.logfile is not None:
78 if self.logfile is not None:
79 raise RuntimeError('Log file is already active: %s' %
79 raise RuntimeError('Log file is already active: %s' %
80 self.logfname)
80 self.logfname)
81
81
82 self.log_active = True
82 self.log_active = True
83
83
84 # The parameters can override constructor defaults
84 # The parameters can override constructor defaults
85 if logfname is not None: self.logfname = logfname
85 if logfname is not None: self.logfname = logfname
86 if loghead is not None: self.loghead = loghead
86 if loghead is not None: self.loghead = loghead
87 if logmode is not None: self.logmode = logmode
87 if logmode is not None: self.logmode = logmode
88
88
89 # Parameters not part of the constructor
89 # Parameters not part of the constructor
90 self.timestamp = timestamp
90 self.timestamp = timestamp
91 self.log_output = log_output
91 self.log_output = log_output
92 self.log_raw_input = log_raw_input
92 self.log_raw_input = log_raw_input
93
93
94 # init depending on the log mode requested
94 # init depending on the log mode requested
95 isfile = os.path.isfile
95 isfile = os.path.isfile
96 logmode = self.logmode
96 logmode = self.logmode
97
97
98 if logmode == 'append':
98 if logmode == 'append':
99 self.logfile = open(self.logfname,'a')
99 self.logfile = open(self.logfname,'a')
100
100
101 elif logmode == 'backup':
101 elif logmode == 'backup':
102 if isfile(self.logfname):
102 if isfile(self.logfname):
103 backup_logname = self.logfname+'~'
103 backup_logname = self.logfname+'~'
104 # Manually remove any old backup, since os.rename may fail
104 # Manually remove any old backup, since os.rename may fail
105 # under Windows.
105 # under Windows.
106 if isfile(backup_logname):
106 if isfile(backup_logname):
107 os.remove(backup_logname)
107 os.remove(backup_logname)
108 os.rename(self.logfname,backup_logname)
108 os.rename(self.logfname,backup_logname)
109 self.logfile = open(self.logfname,'w')
109 self.logfile = open(self.logfname,'w')
110
110
111 elif logmode == 'global':
111 elif logmode == 'global':
112 self.logfname = os.path.join(self.shell.home_dir,self.logfname)
112 self.logfname = os.path.join(self.shell.home_dir,self.logfname)
113 self.logfile = open(self.logfname, 'a')
113 self.logfile = open(self.logfname, 'a')
114
114
115 elif logmode == 'over':
115 elif logmode == 'over':
116 if isfile(self.logfname):
116 if isfile(self.logfname):
117 os.remove(self.logfname)
117 os.remove(self.logfname)
118 self.logfile = open(self.logfname,'w')
118 self.logfile = open(self.logfname,'w')
119
119
120 elif logmode == 'rotate':
120 elif logmode == 'rotate':
121 if isfile(self.logfname):
121 if isfile(self.logfname):
122 if isfile(self.logfname+'.001~'):
122 if isfile(self.logfname+'.001~'):
123 old = glob.glob(self.logfname+'.*~')
123 old = glob.glob(self.logfname+'.*~')
124 old.sort()
124 old.sort()
125 old.reverse()
125 old.reverse()
126 for f in old:
126 for f in old:
127 root, ext = os.path.splitext(f)
127 root, ext = os.path.splitext(f)
128 num = int(ext[1:-1])+1
128 num = int(ext[1:-1])+1
129 os.rename(f, root+'.'+`num`.zfill(3)+'~')
129 os.rename(f, root+'.'+`num`.zfill(3)+'~')
130 os.rename(self.logfname, self.logfname+'.001~')
130 os.rename(self.logfname, self.logfname+'.001~')
131 self.logfile = open(self.logfname,'w')
131 self.logfile = open(self.logfname,'w')
132
132
133 if logmode != 'append':
133 if logmode != 'append':
134 self.logfile.write(self.loghead)
134 self.logfile.write(self.loghead)
135
135
136 self.logfile.flush()
136 self.logfile.flush()
137
137
138 def switch_log(self,val):
138 def switch_log(self,val):
139 """Switch logging on/off. val should be ONLY a boolean."""
139 """Switch logging on/off. val should be ONLY a boolean."""
140
140
141 if val not in [False,True,0,1]:
141 if val not in [False,True,0,1]:
142 raise ValueError, \
142 raise ValueError, \
143 'Call switch_log ONLY with a boolean argument, not with:',val
143 'Call switch_log ONLY with a boolean argument, not with:',val
144
144
145 label = {0:'OFF',1:'ON',False:'OFF',True:'ON'}
145 label = {0:'OFF',1:'ON',False:'OFF',True:'ON'}
146
146
147 if self.logfile is None:
147 if self.logfile is None:
148 print """
148 print """
149 Logging hasn't been started yet (use logstart for that).
149 Logging hasn't been started yet (use logstart for that).
150
150
151 %logon/%logoff are for temporarily starting and stopping logging for a logfile
151 %logon/%logoff are for temporarily starting and stopping logging for a logfile
152 which already exists. But you must first start the logging process with
152 which already exists. But you must first start the logging process with
153 %logstart (optionally giving a logfile name)."""
153 %logstart (optionally giving a logfile name)."""
154
154
155 else:
155 else:
156 if self.log_active == val:
156 if self.log_active == val:
157 print 'Logging is already',label[val]
157 print 'Logging is already',label[val]
158 else:
158 else:
159 print 'Switching logging',label[val]
159 print 'Switching logging',label[val]
160 self.log_active = not self.log_active
160 self.log_active = not self.log_active
161 self.log_active_out = self.log_active
161 self.log_active_out = self.log_active
162
162
163 def logstate(self):
163 def logstate(self):
164 """Print a status message about the logger."""
164 """Print a status message about the logger."""
165 if self.logfile is None:
165 if self.logfile is None:
166 print 'Logging has not been activated.'
166 print 'Logging has not been activated.'
167 else:
167 else:
168 state = self.log_active and 'active' or 'temporarily suspended'
168 state = self.log_active and 'active' or 'temporarily suspended'
169 print 'Filename :',self.logfname
169 print 'Filename :',self.logfname
170 print 'Mode :',self.logmode
170 print 'Mode :',self.logmode
171 print 'Output logging :',self.log_output
171 print 'Output logging :',self.log_output
172 print 'Raw input log :',self.log_raw_input
172 print 'Raw input log :',self.log_raw_input
173 print 'Timestamping :',self.timestamp
173 print 'Timestamping :',self.timestamp
174 print 'State :',state
174 print 'State :',state
175
175
176 def log(self,line_ori,line_mod,continuation=None):
176 def log(self,line_ori,line_mod,continuation=None):
177 """Write the line to a log and create input cache variables _i*.
177 """Write the line to a log and create input cache variables _i*.
178
178
179 Inputs:
179 Inputs:
180
180
181 - line_ori: unmodified input line from the user. This is not
181 - line_ori: unmodified input line from the user. This is not
182 necessarily valid Python.
182 necessarily valid Python.
183
183
184 - line_mod: possibly modified input, such as the transformations made
184 - line_mod: possibly modified input, such as the transformations made
185 by input prefilters or input handlers of various kinds. This should
185 by input prefilters or input handlers of various kinds. This should
186 always be valid Python.
186 always be valid Python.
187
187
188 - continuation: if True, indicates this is part of multi-line input."""
188 - continuation: if True, indicates this is part of multi-line input."""
189
189
190 # update the auto _i tables
190 # update the auto _i tables
191 #print '***logging line',line_mod # dbg
191 #print '***logging line',line_mod # dbg
192 #print '***cache_count', self.shell.outputcache.prompt_count # dbg
192 #print '***cache_count', self.shell.outputcache.prompt_count # dbg
193 try:
193 try:
194 input_hist = self.shell.user_ns['_ih']
194 input_hist = self.shell.user_ns['_ih']
195 except:
195 except:
196 print 'userns:',self.shell.user_ns.keys()
196 print 'userns:',self.shell.user_ns.keys()
197 return
197 return
198
198
199 out_cache = self.shell.outputcache
200
201 # add blank lines if the input cache fell out of sync.
202 if out_cache.do_full_cache and \
203 out_cache.prompt_count +1 > len(input_hist):
204 input_hist.extend(['\n'] * (out_cache.prompt_count - len(input_hist)))
205
199 if not continuation and line_mod:
206 if not continuation and line_mod:
200 self._iii = self._ii
207 self._iii = self._ii
201 self._ii = self._i
208 self._ii = self._i
202 self._i = self._i00
209 self._i = self._i00
203 # put back the final \n of every input line
210 # put back the final \n of every input line
204 self._i00 = line_mod+'\n'
211 self._i00 = line_mod+'\n'
205 #print 'Logging input:<%s>' % line_mod # dbg
212 #print 'Logging input:<%s>' % line_mod # dbg
206 input_hist.append(self._i00)
213 input_hist.append(self._i00)
207 #print '---[%s]' % (len(input_hist)-1,) # dbg
214 #print '---[%s]' % (len(input_hist)-1,) # dbg
208
215
209 # hackish access to top-level namespace to create _i1,_i2... dynamically
216 # hackish access to top-level namespace to create _i1,_i2... dynamically
210 to_main = {'_i':self._i,'_ii':self._ii,'_iii':self._iii}
217 to_main = {'_i':self._i,'_ii':self._ii,'_iii':self._iii}
211 if self.shell.outputcache.do_full_cache:
218 if self.shell.outputcache.do_full_cache:
212 in_num = self.shell.outputcache.prompt_count
219 in_num = self.shell.outputcache.prompt_count
213 # add blank lines if the input cache fell out of sync. This can
220
214 # happen for embedded instances which get killed via C-D and then
215 # get resumed.
216 while in_num >= len(input_hist):
217 input_hist.append('\n')
218 # but if the opposite is true (a macro can produce multiple inputs
221 # but if the opposite is true (a macro can produce multiple inputs
219 # with no output display called), then bring the output counter in
222 # with no output display called), then bring the output counter in
220 # sync:
223 # sync:
221 last_num = len(input_hist)-1
224 last_num = len(input_hist)-1
222 if in_num != last_num:
225 if in_num != last_num:
223 in_num = self.shell.outputcache.prompt_count = last_num
226 in_num = self.shell.outputcache.prompt_count = last_num
224 new_i = '_i%s' % in_num
227 new_i = '_i%s' % in_num
225 if continuation:
228 if continuation:
226 self._i00 = '%s%s\n' % (self.shell.user_ns[new_i],line_mod)
229 self._i00 = '%s%s\n' % (self.shell.user_ns[new_i],line_mod)
227 input_hist[in_num] = self._i00
230 input_hist[in_num] = self._i00
228 to_main[new_i] = self._i00
231 to_main[new_i] = self._i00
229 self.shell.user_ns.update(to_main)
232 self.shell.user_ns.update(to_main)
230
233
231 # Write the log line, but decide which one according to the
234 # Write the log line, but decide which one according to the
232 # log_raw_input flag, set when the log is started.
235 # log_raw_input flag, set when the log is started.
233 if self.log_raw_input:
236 if self.log_raw_input:
234 self.log_write(line_ori)
237 self.log_write(line_ori)
235 else:
238 else:
236 self.log_write(line_mod)
239 self.log_write(line_mod)
237
240
238 def log_write(self,data,kind='input'):
241 def log_write(self,data,kind='input'):
239 """Write data to the log file, if active"""
242 """Write data to the log file, if active"""
240
243
241 #print 'data: %r' % data # dbg
244 #print 'data: %r' % data # dbg
242 if self.log_active and data:
245 if self.log_active and data:
243 write = self.logfile.write
246 write = self.logfile.write
244 if kind=='input':
247 if kind=='input':
245 if self.timestamp:
248 if self.timestamp:
246 write(time.strftime('# %a, %d %b %Y %H:%M:%S\n',
249 write(time.strftime('# %a, %d %b %Y %H:%M:%S\n',
247 time.localtime()))
250 time.localtime()))
248 write('%s\n' % data)
251 write('%s\n' % data)
249 elif kind=='output' and self.log_output:
252 elif kind=='output' and self.log_output:
250 odata = '\n'.join(['#[Out]# %s' % s
253 odata = '\n'.join(['#[Out]# %s' % s
251 for s in data.split('\n')])
254 for s in data.split('\n')])
252 write('%s\n' % odata)
255 write('%s\n' % odata)
253 self.logfile.flush()
256 self.logfile.flush()
254
257
255 def close_log(self):
258 def close_log(self):
256 self.logfile.close()
259 self.logfile.close()
257 self.logfile = None
260 self.logfile = None
258 self.logfname = ''
261 self.logfname = ''
@@ -1,7032 +1,7036 b''
1 2007-08-22 Ville Vainio <vivainio@gmail.com>
1 2007-08-22 Ville Vainio <vivainio@gmail.com>
2
2
3 * iplib.py: no extra empty (last) line in raw hist w/ multiline
3 * iplib.py: no extra empty (last) line in raw hist w/ multiline
4 statements
4 statements
5
6 * logger.py: Fix bug where blank lines in history were not
7 added until AFTER adding the current line; translated and raw
8 history should finally be in sync with prompt now.
5
9
6 2007-08-21 Ville Vainio <vivainio@gmail.com>
10 2007-08-21 Ville Vainio <vivainio@gmail.com>
7
11
8 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
12 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
9 (for backwards compatibility)
13 (for backwards compatibility)
10
14
11 * history.py: switch back to %hist -t from %hist -r as default.
15 * history.py: switch back to %hist -t from %hist -r as default.
12 At least until raw history is fixed for good.
16 At least until raw history is fixed for good.
13
17
14 2007-08-20 Ville Vainio <vivainio@gmail.com>
18 2007-08-20 Ville Vainio <vivainio@gmail.com>
15
19
16 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
20 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
17 locate alias redeclarations etc. Also, avoid handling
21 locate alias redeclarations etc. Also, avoid handling
18 _ip.IP.alias_table directly, prefer using _ip.defalias.
22 _ip.IP.alias_table directly, prefer using _ip.defalias.
19
23
20
24
21 2007-08-15 Ville Vainio <vivainio@gmail.com>
25 2007-08-15 Ville Vainio <vivainio@gmail.com>
22
26
23 * prefilter.py: ! is now always served first
27 * prefilter.py: ! is now always served first
24
28
25 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
29 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
26
30
27 * IPython/iplib.py (safe_execfile): fix the SystemExit
31 * IPython/iplib.py (safe_execfile): fix the SystemExit
28 auto-suppression code to work in Python2.4 (the internal structure
32 auto-suppression code to work in Python2.4 (the internal structure
29 of that exception changed and I'd only tested the code with 2.5).
33 of that exception changed and I'd only tested the code with 2.5).
30 Bug reported by a SciPy attendee.
34 Bug reported by a SciPy attendee.
31
35
32 2007-08-13 Ville Vainio <vivainio@gmail.com>
36 2007-08-13 Ville Vainio <vivainio@gmail.com>
33
37
34 * prefilter.py: reverted !c:/bin/foo fix, made % in
38 * prefilter.py: reverted !c:/bin/foo fix, made % in
35 multiline specials work again
39 multiline specials work again
36
40
37 2007-08-13 Ville Vainio <vivainio@gmail.com>
41 2007-08-13 Ville Vainio <vivainio@gmail.com>
38
42
39 * prefilter.py: Take more care to special-case !, so that
43 * prefilter.py: Take more care to special-case !, so that
40 !c:/bin/foo.exe works.
44 !c:/bin/foo.exe works.
41
45
42 * setup.py: if we are building eggs, strip all docs and
46 * setup.py: if we are building eggs, strip all docs and
43 examples (it doesn't make sense to bytecompile examples,
47 examples (it doesn't make sense to bytecompile examples,
44 and docs would be in an awkward place anyway).
48 and docs would be in an awkward place anyway).
45
49
46 * Ryan Krauss' patch fixes start menu shortcuts when IPython
50 * Ryan Krauss' patch fixes start menu shortcuts when IPython
47 is installed into a directory that has spaces in the name.
51 is installed into a directory that has spaces in the name.
48
52
49 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
53 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
50
54
51 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
55 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
52 doctest profile and %doctest_mode, so they actually generate the
56 doctest profile and %doctest_mode, so they actually generate the
53 blank lines needed by doctest to separate individual tests.
57 blank lines needed by doctest to separate individual tests.
54
58
55 * IPython/iplib.py (safe_execfile): modify so that running code
59 * IPython/iplib.py (safe_execfile): modify so that running code
56 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
60 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
57 doesn't get a printed traceback. Any other value in sys.exit(),
61 doesn't get a printed traceback. Any other value in sys.exit(),
58 including the empty call, still generates a traceback. This
62 including the empty call, still generates a traceback. This
59 enables use of %run without having to pass '-e' for codes that
63 enables use of %run without having to pass '-e' for codes that
60 correctly set the exit status flag.
64 correctly set the exit status flag.
61
65
62 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
66 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
63
67
64 * IPython/iplib.py (InteractiveShell.post_config_initialization):
68 * IPython/iplib.py (InteractiveShell.post_config_initialization):
65 fix problems with doctests failing when run inside IPython due to
69 fix problems with doctests failing when run inside IPython due to
66 IPython's modifications of sys.displayhook.
70 IPython's modifications of sys.displayhook.
67
71
68 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
72 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
69
73
70 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
74 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
71 a string with names.
75 a string with names.
72
76
73 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
77 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
74
78
75 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
79 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
76 magic to toggle on/off the doctest pasting support without having
80 magic to toggle on/off the doctest pasting support without having
77 to leave a session to switch to a separate profile.
81 to leave a session to switch to a separate profile.
78
82
79 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
83 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
80
84
81 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
85 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
82 introduce a blank line between inputs, to conform to doctest
86 introduce a blank line between inputs, to conform to doctest
83 requirements.
87 requirements.
84
88
85 * IPython/OInspect.py (Inspector.pinfo): fix another part where
89 * IPython/OInspect.py (Inspector.pinfo): fix another part where
86 auto-generated docstrings for new-style classes were showing up.
90 auto-generated docstrings for new-style classes were showing up.
87
91
88 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
92 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
89
93
90 * api_changes: Add new file to track backward-incompatible
94 * api_changes: Add new file to track backward-incompatible
91 user-visible changes.
95 user-visible changes.
92
96
93 2007-08-06 Ville Vainio <vivainio@gmail.com>
97 2007-08-06 Ville Vainio <vivainio@gmail.com>
94
98
95 * ipmaker.py: fix bug where user_config_ns didn't exist at all
99 * ipmaker.py: fix bug where user_config_ns didn't exist at all
96 before all the config files were handled.
100 before all the config files were handled.
97
101
98 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
102 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
99
103
100 * IPython/irunner.py (RunnerFactory): Add new factory class for
104 * IPython/irunner.py (RunnerFactory): Add new factory class for
101 creating reusable runners based on filenames.
105 creating reusable runners based on filenames.
102
106
103 * IPython/Extensions/ipy_profile_doctest.py: New profile for
107 * IPython/Extensions/ipy_profile_doctest.py: New profile for
104 doctest support. It sets prompts/exceptions as similar to
108 doctest support. It sets prompts/exceptions as similar to
105 standard Python as possible, so that ipython sessions in this
109 standard Python as possible, so that ipython sessions in this
106 profile can be easily pasted as doctests with minimal
110 profile can be easily pasted as doctests with minimal
107 modifications. It also enables pasting of doctests from external
111 modifications. It also enables pasting of doctests from external
108 sources (even if they have leading whitespace), so that you can
112 sources (even if they have leading whitespace), so that you can
109 rerun doctests from existing sources.
113 rerun doctests from existing sources.
110
114
111 * IPython/iplib.py (_prefilter): fix a buglet where after entering
115 * IPython/iplib.py (_prefilter): fix a buglet where after entering
112 some whitespace, the prompt would become a continuation prompt
116 some whitespace, the prompt would become a continuation prompt
113 with no way of exiting it other than Ctrl-C. This fix brings us
117 with no way of exiting it other than Ctrl-C. This fix brings us
114 into conformity with how the default python prompt works.
118 into conformity with how the default python prompt works.
115
119
116 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
120 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
117 Add support for pasting not only lines that start with '>>>', but
121 Add support for pasting not only lines that start with '>>>', but
118 also with ' >>>'. That is, arbitrary whitespace can now precede
122 also with ' >>>'. That is, arbitrary whitespace can now precede
119 the prompts. This makes the system useful for pasting doctests
123 the prompts. This makes the system useful for pasting doctests
120 from docstrings back into a normal session.
124 from docstrings back into a normal session.
121
125
122 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
126 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
123
127
124 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
128 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
125 r1357, which had killed multiple invocations of an embedded
129 r1357, which had killed multiple invocations of an embedded
126 ipython (this means that example-embed has been broken for over 1
130 ipython (this means that example-embed has been broken for over 1
127 year!!!). Rather than possibly breaking the batch stuff for which
131 year!!!). Rather than possibly breaking the batch stuff for which
128 the code in iplib.py/interact was introduced, I worked around the
132 the code in iplib.py/interact was introduced, I worked around the
129 problem in the embedding class in Shell.py. We really need a
133 problem in the embedding class in Shell.py. We really need a
130 bloody test suite for this code, I'm sick of finding stuff that
134 bloody test suite for this code, I'm sick of finding stuff that
131 used to work breaking left and right every time I use an old
135 used to work breaking left and right every time I use an old
132 feature I hadn't touched in a few months.
136 feature I hadn't touched in a few months.
133 (kill_embedded): Add a new magic that only shows up in embedded
137 (kill_embedded): Add a new magic that only shows up in embedded
134 mode, to allow users to permanently deactivate an embedded instance.
138 mode, to allow users to permanently deactivate an embedded instance.
135
139
136 2007-08-01 Ville Vainio <vivainio@gmail.com>
140 2007-08-01 Ville Vainio <vivainio@gmail.com>
137
141
138 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
142 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
139 history gets out of sync on runlines (e.g. when running macros).
143 history gets out of sync on runlines (e.g. when running macros).
140
144
141 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
145 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
142
146
143 * IPython/Magic.py (magic_colors): fix win32-related error message
147 * IPython/Magic.py (magic_colors): fix win32-related error message
144 that could appear under *nix when readline was missing. Patch by
148 that could appear under *nix when readline was missing. Patch by
145 Scott Jackson, closes #175.
149 Scott Jackson, closes #175.
146
150
147 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
151 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
148
152
149 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
153 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
150 completer that it traits-aware, so that traits objects don't show
154 completer that it traits-aware, so that traits objects don't show
151 all of their internal attributes all the time.
155 all of their internal attributes all the time.
152
156
153 * IPython/genutils.py (dir2): moved this code from inside
157 * IPython/genutils.py (dir2): moved this code from inside
154 completer.py to expose it publicly, so I could use it in the
158 completer.py to expose it publicly, so I could use it in the
155 wildcards bugfix.
159 wildcards bugfix.
156
160
157 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
161 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
158 Stefan with Traits.
162 Stefan with Traits.
159
163
160 * IPython/completer.py (Completer.attr_matches): change internal
164 * IPython/completer.py (Completer.attr_matches): change internal
161 var name from 'object' to 'obj', since 'object' is now a builtin
165 var name from 'object' to 'obj', since 'object' is now a builtin
162 and this can lead to weird bugs if reusing this code elsewhere.
166 and this can lead to weird bugs if reusing this code elsewhere.
163
167
164 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
168 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
165
169
166 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
170 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
167 'foo?' and update the code to prevent printing of default
171 'foo?' and update the code to prevent printing of default
168 docstrings that started appearing after I added support for
172 docstrings that started appearing after I added support for
169 new-style classes. The approach I'm using isn't ideal (I just
173 new-style classes. The approach I'm using isn't ideal (I just
170 special-case those strings) but I'm not sure how to more robustly
174 special-case those strings) but I'm not sure how to more robustly
171 differentiate between truly user-written strings and Python's
175 differentiate between truly user-written strings and Python's
172 automatic ones.
176 automatic ones.
173
177
174 2007-07-09 Ville Vainio <vivainio@gmail.com>
178 2007-07-09 Ville Vainio <vivainio@gmail.com>
175
179
176 * completer.py: Applied Matthew Neeley's patch:
180 * completer.py: Applied Matthew Neeley's patch:
177 Dynamic attributes from trait_names and _getAttributeNames are added
181 Dynamic attributes from trait_names and _getAttributeNames are added
178 to the list of tab completions, but when this happens, the attribute
182 to the list of tab completions, but when this happens, the attribute
179 list is turned into a set, so the attributes are unordered when
183 list is turned into a set, so the attributes are unordered when
180 printed, which makes it hard to find the right completion. This patch
184 printed, which makes it hard to find the right completion. This patch
181 turns this set back into a list and sort it.
185 turns this set back into a list and sort it.
182
186
183 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
187 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
184
188
185 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
189 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
186 classes in various inspector functions.
190 classes in various inspector functions.
187
191
188 2007-06-28 Ville Vainio <vivainio@gmail.com>
192 2007-06-28 Ville Vainio <vivainio@gmail.com>
189
193
190 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
194 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
191 Implement "shadow" namespace, and callable aliases that reside there.
195 Implement "shadow" namespace, and callable aliases that reside there.
192 Use them by:
196 Use them by:
193
197
194 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
198 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
195
199
196 foo hello world
200 foo hello world
197 (gets translated to:)
201 (gets translated to:)
198 _sh.foo(r"""hello world""")
202 _sh.foo(r"""hello world""")
199
203
200 In practice, this kind of alias can take the role of a magic function
204 In practice, this kind of alias can take the role of a magic function
201
205
202 * New generic inspect_object, called on obj? and obj??
206 * New generic inspect_object, called on obj? and obj??
203
207
204 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
208 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
205
209
206 * IPython/ultraTB.py (findsource): fix a problem with
210 * IPython/ultraTB.py (findsource): fix a problem with
207 inspect.getfile that can cause crashes during traceback construction.
211 inspect.getfile that can cause crashes during traceback construction.
208
212
209 2007-06-14 Ville Vainio <vivainio@gmail.com>
213 2007-06-14 Ville Vainio <vivainio@gmail.com>
210
214
211 * iplib.py (handle_auto): Try to use ascii for printing "--->"
215 * iplib.py (handle_auto): Try to use ascii for printing "--->"
212 autocall rewrite indication, becausesometimes unicode fails to print
216 autocall rewrite indication, becausesometimes unicode fails to print
213 properly (and you get ' - - - '). Use plain uncoloured ---> for
217 properly (and you get ' - - - '). Use plain uncoloured ---> for
214 unicode.
218 unicode.
215
219
216 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
220 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
217
221
218 . pickleshare 'hash' commands (hget, hset, hcompress,
222 . pickleshare 'hash' commands (hget, hset, hcompress,
219 hdict) for efficient shadow history storage.
223 hdict) for efficient shadow history storage.
220
224
221 2007-06-13 Ville Vainio <vivainio@gmail.com>
225 2007-06-13 Ville Vainio <vivainio@gmail.com>
222
226
223 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
227 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
224 Added kw arg 'interactive', tell whether vars should be visible
228 Added kw arg 'interactive', tell whether vars should be visible
225 with %whos.
229 with %whos.
226
230
227 2007-06-11 Ville Vainio <vivainio@gmail.com>
231 2007-06-11 Ville Vainio <vivainio@gmail.com>
228
232
229 * pspersistence.py, Magic.py, iplib.py: directory history now saved
233 * pspersistence.py, Magic.py, iplib.py: directory history now saved
230 to db
234 to db
231
235
232 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
236 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
233 Also, it exits IPython immediately after evaluating the command (just like
237 Also, it exits IPython immediately after evaluating the command (just like
234 std python)
238 std python)
235
239
236 2007-06-05 Walter Doerwald <walter@livinglogic.de>
240 2007-06-05 Walter Doerwald <walter@livinglogic.de>
237
241
238 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
242 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
239 Python string and captures the output. (Idea and original patch by
243 Python string and captures the output. (Idea and original patch by
240 StοΏ½fan van der Walt)
244 StοΏ½fan van der Walt)
241
245
242 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
246 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
243
247
244 * IPython/ultraTB.py (VerboseTB.text): update printing of
248 * IPython/ultraTB.py (VerboseTB.text): update printing of
245 exception types for Python 2.5 (now all exceptions in the stdlib
249 exception types for Python 2.5 (now all exceptions in the stdlib
246 are new-style classes).
250 are new-style classes).
247
251
248 2007-05-31 Walter Doerwald <walter@livinglogic.de>
252 2007-05-31 Walter Doerwald <walter@livinglogic.de>
249
253
250 * IPython/Extensions/igrid.py: Add new commands refresh and
254 * IPython/Extensions/igrid.py: Add new commands refresh and
251 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
255 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
252 the iterator once (refresh) or after every x seconds (refresh_timer).
256 the iterator once (refresh) or after every x seconds (refresh_timer).
253 Add a working implementation of "searchexpression", where the text
257 Add a working implementation of "searchexpression", where the text
254 entered is not the text to search for, but an expression that must
258 entered is not the text to search for, but an expression that must
255 be true. Added display of shortcuts to the menu. Added commands "pickinput"
259 be true. Added display of shortcuts to the menu. Added commands "pickinput"
256 and "pickinputattr" that put the object or attribute under the cursor
260 and "pickinputattr" that put the object or attribute under the cursor
257 in the input line. Split the statusbar to be able to display the currently
261 in the input line. Split the statusbar to be able to display the currently
258 active refresh interval. (Patch by Nik Tautenhahn)
262 active refresh interval. (Patch by Nik Tautenhahn)
259
263
260 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
264 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
261
265
262 * fixing set_term_title to use ctypes as default
266 * fixing set_term_title to use ctypes as default
263
267
264 * fixing set_term_title fallback to work when curent dir
268 * fixing set_term_title fallback to work when curent dir
265 is on a windows network share
269 is on a windows network share
266
270
267 2007-05-28 Ville Vainio <vivainio@gmail.com>
271 2007-05-28 Ville Vainio <vivainio@gmail.com>
268
272
269 * %cpaste: strip + with > from left (diffs).
273 * %cpaste: strip + with > from left (diffs).
270
274
271 * iplib.py: Fix crash when readline not installed
275 * iplib.py: Fix crash when readline not installed
272
276
273 2007-05-26 Ville Vainio <vivainio@gmail.com>
277 2007-05-26 Ville Vainio <vivainio@gmail.com>
274
278
275 * generics.py: intruduce easy to extend result_display generic
279 * generics.py: intruduce easy to extend result_display generic
276 function (using simplegeneric.py).
280 function (using simplegeneric.py).
277
281
278 * Fixed the append functionality of %set.
282 * Fixed the append functionality of %set.
279
283
280 2007-05-25 Ville Vainio <vivainio@gmail.com>
284 2007-05-25 Ville Vainio <vivainio@gmail.com>
281
285
282 * New magic: %rep (fetch / run old commands from history)
286 * New magic: %rep (fetch / run old commands from history)
283
287
284 * New extension: mglob (%mglob magic), for powerful glob / find /filter
288 * New extension: mglob (%mglob magic), for powerful glob / find /filter
285 like functionality
289 like functionality
286
290
287 % maghistory.py: %hist -g PATTERM greps the history for pattern
291 % maghistory.py: %hist -g PATTERM greps the history for pattern
288
292
289 2007-05-24 Walter Doerwald <walter@livinglogic.de>
293 2007-05-24 Walter Doerwald <walter@livinglogic.de>
290
294
291 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
295 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
292 browse the IPython input history
296 browse the IPython input history
293
297
294 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
298 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
295 (mapped to "i") can be used to put the object under the curser in the input
299 (mapped to "i") can be used to put the object under the curser in the input
296 line. pickinputattr (mapped to "I") does the same for the attribute under
300 line. pickinputattr (mapped to "I") does the same for the attribute under
297 the cursor.
301 the cursor.
298
302
299 2007-05-24 Ville Vainio <vivainio@gmail.com>
303 2007-05-24 Ville Vainio <vivainio@gmail.com>
300
304
301 * Grand magic cleansing (changeset [2380]):
305 * Grand magic cleansing (changeset [2380]):
302
306
303 * Introduce ipy_legacy.py where the following magics were
307 * Introduce ipy_legacy.py where the following magics were
304 moved:
308 moved:
305
309
306 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
310 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
307
311
308 If you need them, either use default profile or "import ipy_legacy"
312 If you need them, either use default profile or "import ipy_legacy"
309 in your ipy_user_conf.py
313 in your ipy_user_conf.py
310
314
311 * Move sh and scipy profile to Extensions from UserConfig. this implies
315 * Move sh and scipy profile to Extensions from UserConfig. this implies
312 you should not edit them, but you don't need to run %upgrade when
316 you should not edit them, but you don't need to run %upgrade when
313 upgrading IPython anymore.
317 upgrading IPython anymore.
314
318
315 * %hist/%history now operates in "raw" mode by default. To get the old
319 * %hist/%history now operates in "raw" mode by default. To get the old
316 behaviour, run '%hist -n' (native mode).
320 behaviour, run '%hist -n' (native mode).
317
321
318 * split ipy_stock_completers.py to ipy_stock_completers.py and
322 * split ipy_stock_completers.py to ipy_stock_completers.py and
319 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
323 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
320 installed as default.
324 installed as default.
321
325
322 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
326 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
323 handling.
327 handling.
324
328
325 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
329 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
326 input if readline is available.
330 input if readline is available.
327
331
328 2007-05-23 Ville Vainio <vivainio@gmail.com>
332 2007-05-23 Ville Vainio <vivainio@gmail.com>
329
333
330 * macro.py: %store uses __getstate__ properly
334 * macro.py: %store uses __getstate__ properly
331
335
332 * exesetup.py: added new setup script for creating
336 * exesetup.py: added new setup script for creating
333 standalone IPython executables with py2exe (i.e.
337 standalone IPython executables with py2exe (i.e.
334 no python installation required).
338 no python installation required).
335
339
336 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
340 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
337 its place.
341 its place.
338
342
339 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
343 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
340
344
341 2007-05-21 Ville Vainio <vivainio@gmail.com>
345 2007-05-21 Ville Vainio <vivainio@gmail.com>
342
346
343 * platutil_win32.py (set_term_title): handle
347 * platutil_win32.py (set_term_title): handle
344 failure of 'title' system call properly.
348 failure of 'title' system call properly.
345
349
346 2007-05-17 Walter Doerwald <walter@livinglogic.de>
350 2007-05-17 Walter Doerwald <walter@livinglogic.de>
347
351
348 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
352 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
349 (Bug detected by Paul Mueller).
353 (Bug detected by Paul Mueller).
350
354
351 2007-05-16 Ville Vainio <vivainio@gmail.com>
355 2007-05-16 Ville Vainio <vivainio@gmail.com>
352
356
353 * ipy_profile_sci.py, ipython_win_post_install.py: Create
357 * ipy_profile_sci.py, ipython_win_post_install.py: Create
354 new "sci" profile, effectively a modern version of the old
358 new "sci" profile, effectively a modern version of the old
355 "scipy" profile (which is now slated for deprecation).
359 "scipy" profile (which is now slated for deprecation).
356
360
357 2007-05-15 Ville Vainio <vivainio@gmail.com>
361 2007-05-15 Ville Vainio <vivainio@gmail.com>
358
362
359 * pycolorize.py, pycolor.1: Paul Mueller's patches that
363 * pycolorize.py, pycolor.1: Paul Mueller's patches that
360 make pycolorize read input from stdin when run without arguments.
364 make pycolorize read input from stdin when run without arguments.
361
365
362 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
366 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
363
367
364 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
368 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
365 it in sh profile (instead of ipy_system_conf.py).
369 it in sh profile (instead of ipy_system_conf.py).
366
370
367 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
371 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
368 aliases are now lower case on windows (MyCommand.exe => mycommand).
372 aliases are now lower case on windows (MyCommand.exe => mycommand).
369
373
370 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
374 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
371 Macros are now callable objects that inherit from ipapi.IPyAutocall,
375 Macros are now callable objects that inherit from ipapi.IPyAutocall,
372 i.e. get autocalled regardless of system autocall setting.
376 i.e. get autocalled regardless of system autocall setting.
373
377
374 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
378 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
375
379
376 * IPython/rlineimpl.py: check for clear_history in readline and
380 * IPython/rlineimpl.py: check for clear_history in readline and
377 make it a dummy no-op if not available. This function isn't
381 make it a dummy no-op if not available. This function isn't
378 guaranteed to be in the API and appeared in Python 2.4, so we need
382 guaranteed to be in the API and appeared in Python 2.4, so we need
379 to check it ourselves. Also, clean up this file quite a bit.
383 to check it ourselves. Also, clean up this file quite a bit.
380
384
381 * ipython.1: update man page and full manual with information
385 * ipython.1: update man page and full manual with information
382 about threads (remove outdated warning). Closes #151.
386 about threads (remove outdated warning). Closes #151.
383
387
384 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
388 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
385
389
386 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
390 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
387 in trunk (note that this made it into the 0.8.1 release already,
391 in trunk (note that this made it into the 0.8.1 release already,
388 but the changelogs didn't get coordinated). Many thanks to Gael
392 but the changelogs didn't get coordinated). Many thanks to Gael
389 Varoquaux <gael.varoquaux-AT-normalesup.org>
393 Varoquaux <gael.varoquaux-AT-normalesup.org>
390
394
391 2007-05-09 *** Released version 0.8.1
395 2007-05-09 *** Released version 0.8.1
392
396
393 2007-05-10 Walter Doerwald <walter@livinglogic.de>
397 2007-05-10 Walter Doerwald <walter@livinglogic.de>
394
398
395 * IPython/Extensions/igrid.py: Incorporate html help into
399 * IPython/Extensions/igrid.py: Incorporate html help into
396 the module, so we don't have to search for the file.
400 the module, so we don't have to search for the file.
397
401
398 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
402 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
399
403
400 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
404 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
401
405
402 2007-04-30 Ville Vainio <vivainio@gmail.com>
406 2007-04-30 Ville Vainio <vivainio@gmail.com>
403
407
404 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
408 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
405 user has illegal (non-ascii) home directory name
409 user has illegal (non-ascii) home directory name
406
410
407 2007-04-27 Ville Vainio <vivainio@gmail.com>
411 2007-04-27 Ville Vainio <vivainio@gmail.com>
408
412
409 * platutils_win32.py: implement set_term_title for windows
413 * platutils_win32.py: implement set_term_title for windows
410
414
411 * Update version number
415 * Update version number
412
416
413 * ipy_profile_sh.py: more informative prompt (2 dir levels)
417 * ipy_profile_sh.py: more informative prompt (2 dir levels)
414
418
415 2007-04-26 Walter Doerwald <walter@livinglogic.de>
419 2007-04-26 Walter Doerwald <walter@livinglogic.de>
416
420
417 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
421 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
418 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
422 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
419 bug discovered by Ville).
423 bug discovered by Ville).
420
424
421 2007-04-26 Ville Vainio <vivainio@gmail.com>
425 2007-04-26 Ville Vainio <vivainio@gmail.com>
422
426
423 * Extensions/ipy_completers.py: Olivier's module completer now
427 * Extensions/ipy_completers.py: Olivier's module completer now
424 saves the list of root modules if it takes > 4 secs on the first run.
428 saves the list of root modules if it takes > 4 secs on the first run.
425
429
426 * Magic.py (%rehashx): %rehashx now clears the completer cache
430 * Magic.py (%rehashx): %rehashx now clears the completer cache
427
431
428
432
429 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
433 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
430
434
431 * ipython.el: fix incorrect color scheme, reported by Stefan.
435 * ipython.el: fix incorrect color scheme, reported by Stefan.
432 Closes #149.
436 Closes #149.
433
437
434 * IPython/PyColorize.py (Parser.format2): fix state-handling
438 * IPython/PyColorize.py (Parser.format2): fix state-handling
435 logic. I still don't like how that code handles state, but at
439 logic. I still don't like how that code handles state, but at
436 least now it should be correct, if inelegant. Closes #146.
440 least now it should be correct, if inelegant. Closes #146.
437
441
438 2007-04-25 Ville Vainio <vivainio@gmail.com>
442 2007-04-25 Ville Vainio <vivainio@gmail.com>
439
443
440 * Extensions/ipy_which.py: added extension for %which magic, works
444 * Extensions/ipy_which.py: added extension for %which magic, works
441 a lot like unix 'which' but also finds and expands aliases, and
445 a lot like unix 'which' but also finds and expands aliases, and
442 allows wildcards.
446 allows wildcards.
443
447
444 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
448 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
445 as opposed to returning nothing.
449 as opposed to returning nothing.
446
450
447 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
451 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
448 ipy_stock_completers on default profile, do import on sh profile.
452 ipy_stock_completers on default profile, do import on sh profile.
449
453
450 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
454 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
451
455
452 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
456 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
453 like ipython.py foo.py which raised a IndexError.
457 like ipython.py foo.py which raised a IndexError.
454
458
455 2007-04-21 Ville Vainio <vivainio@gmail.com>
459 2007-04-21 Ville Vainio <vivainio@gmail.com>
456
460
457 * Extensions/ipy_extutil.py: added extension to manage other ipython
461 * Extensions/ipy_extutil.py: added extension to manage other ipython
458 extensions. Now only supports 'ls' == list extensions.
462 extensions. Now only supports 'ls' == list extensions.
459
463
460 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
464 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
461
465
462 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
466 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
463 would prevent use of the exception system outside of a running
467 would prevent use of the exception system outside of a running
464 IPython instance.
468 IPython instance.
465
469
466 2007-04-20 Ville Vainio <vivainio@gmail.com>
470 2007-04-20 Ville Vainio <vivainio@gmail.com>
467
471
468 * Extensions/ipy_render.py: added extension for easy
472 * Extensions/ipy_render.py: added extension for easy
469 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
473 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
470 'Iptl' template notation,
474 'Iptl' template notation,
471
475
472 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
476 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
473 safer & faster 'import' completer.
477 safer & faster 'import' completer.
474
478
475 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
479 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
476 and _ip.defalias(name, command).
480 and _ip.defalias(name, command).
477
481
478 * Extensions/ipy_exportdb.py: New extension for exporting all the
482 * Extensions/ipy_exportdb.py: New extension for exporting all the
479 %store'd data in a portable format (normal ipapi calls like
483 %store'd data in a portable format (normal ipapi calls like
480 defmacro() etc.)
484 defmacro() etc.)
481
485
482 2007-04-19 Ville Vainio <vivainio@gmail.com>
486 2007-04-19 Ville Vainio <vivainio@gmail.com>
483
487
484 * upgrade_dir.py: skip junk files like *.pyc
488 * upgrade_dir.py: skip junk files like *.pyc
485
489
486 * Release.py: version number to 0.8.1
490 * Release.py: version number to 0.8.1
487
491
488 2007-04-18 Ville Vainio <vivainio@gmail.com>
492 2007-04-18 Ville Vainio <vivainio@gmail.com>
489
493
490 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
494 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
491 and later on win32.
495 and later on win32.
492
496
493 2007-04-16 Ville Vainio <vivainio@gmail.com>
497 2007-04-16 Ville Vainio <vivainio@gmail.com>
494
498
495 * iplib.py (showtraceback): Do not crash when running w/o readline.
499 * iplib.py (showtraceback): Do not crash when running w/o readline.
496
500
497 2007-04-12 Walter Doerwald <walter@livinglogic.de>
501 2007-04-12 Walter Doerwald <walter@livinglogic.de>
498
502
499 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
503 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
500 sorted (case sensitive with files and dirs mixed).
504 sorted (case sensitive with files and dirs mixed).
501
505
502 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
506 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
503
507
504 * IPython/Release.py (version): Open trunk for 0.8.1 development.
508 * IPython/Release.py (version): Open trunk for 0.8.1 development.
505
509
506 2007-04-10 *** Released version 0.8.0
510 2007-04-10 *** Released version 0.8.0
507
511
508 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
512 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
509
513
510 * Tag 0.8.0 for release.
514 * Tag 0.8.0 for release.
511
515
512 * IPython/iplib.py (reloadhist): add API function to cleanly
516 * IPython/iplib.py (reloadhist): add API function to cleanly
513 reload the readline history, which was growing inappropriately on
517 reload the readline history, which was growing inappropriately on
514 every %run call.
518 every %run call.
515
519
516 * win32_manual_post_install.py (run): apply last part of Nicolas
520 * win32_manual_post_install.py (run): apply last part of Nicolas
517 Pernetty's patch (I'd accidentally applied it in a different
521 Pernetty's patch (I'd accidentally applied it in a different
518 directory and this particular file didn't get patched).
522 directory and this particular file didn't get patched).
519
523
520 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
524 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
521
525
522 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
526 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
523 find the main thread id and use the proper API call. Thanks to
527 find the main thread id and use the proper API call. Thanks to
524 Stefan for the fix.
528 Stefan for the fix.
525
529
526 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
530 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
527 unit tests to reflect fixed ticket #52, and add more tests sent by
531 unit tests to reflect fixed ticket #52, and add more tests sent by
528 him.
532 him.
529
533
530 * IPython/iplib.py (raw_input): restore the readline completer
534 * IPython/iplib.py (raw_input): restore the readline completer
531 state on every input, in case third-party code messed it up.
535 state on every input, in case third-party code messed it up.
532 (_prefilter): revert recent addition of early-escape checks which
536 (_prefilter): revert recent addition of early-escape checks which
533 prevent many valid alias calls from working.
537 prevent many valid alias calls from working.
534
538
535 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
539 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
536 flag for sigint handler so we don't run a full signal() call on
540 flag for sigint handler so we don't run a full signal() call on
537 each runcode access.
541 each runcode access.
538
542
539 * IPython/Magic.py (magic_whos): small improvement to diagnostic
543 * IPython/Magic.py (magic_whos): small improvement to diagnostic
540 message.
544 message.
541
545
542 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
546 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
543
547
544 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
548 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
545 asynchronous exceptions working, i.e., Ctrl-C can actually
549 asynchronous exceptions working, i.e., Ctrl-C can actually
546 interrupt long-running code in the multithreaded shells.
550 interrupt long-running code in the multithreaded shells.
547
551
548 This is using Tomer Filiba's great ctypes-based trick:
552 This is using Tomer Filiba's great ctypes-based trick:
549 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
553 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
550 this in the past, but hadn't been able to make it work before. So
554 this in the past, but hadn't been able to make it work before. So
551 far it looks like it's actually running, but this needs more
555 far it looks like it's actually running, but this needs more
552 testing. If it really works, I'll be *very* happy, and we'll owe
556 testing. If it really works, I'll be *very* happy, and we'll owe
553 a huge thank you to Tomer. My current implementation is ugly,
557 a huge thank you to Tomer. My current implementation is ugly,
554 hackish and uses nasty globals, but I don't want to try and clean
558 hackish and uses nasty globals, but I don't want to try and clean
555 anything up until we know if it actually works.
559 anything up until we know if it actually works.
556
560
557 NOTE: this feature needs ctypes to work. ctypes is included in
561 NOTE: this feature needs ctypes to work. ctypes is included in
558 Python2.5, but 2.4 users will need to manually install it. This
562 Python2.5, but 2.4 users will need to manually install it. This
559 feature makes multi-threaded shells so much more usable that it's
563 feature makes multi-threaded shells so much more usable that it's
560 a minor price to pay (ctypes is very easy to install, already a
564 a minor price to pay (ctypes is very easy to install, already a
561 requirement for win32 and available in major linux distros).
565 requirement for win32 and available in major linux distros).
562
566
563 2007-04-04 Ville Vainio <vivainio@gmail.com>
567 2007-04-04 Ville Vainio <vivainio@gmail.com>
564
568
565 * Extensions/ipy_completers.py, ipy_stock_completers.py:
569 * Extensions/ipy_completers.py, ipy_stock_completers.py:
566 Moved implementations of 'bundled' completers to ipy_completers.py,
570 Moved implementations of 'bundled' completers to ipy_completers.py,
567 they are only enabled in ipy_stock_completers.py.
571 they are only enabled in ipy_stock_completers.py.
568
572
569 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
573 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
570
574
571 * IPython/PyColorize.py (Parser.format2): Fix identation of
575 * IPython/PyColorize.py (Parser.format2): Fix identation of
572 colorzied output and return early if color scheme is NoColor, to
576 colorzied output and return early if color scheme is NoColor, to
573 avoid unnecessary and expensive tokenization. Closes #131.
577 avoid unnecessary and expensive tokenization. Closes #131.
574
578
575 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
579 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
576
580
577 * IPython/Debugger.py: disable the use of pydb version 1.17. It
581 * IPython/Debugger.py: disable the use of pydb version 1.17. It
578 has a critical bug (a missing import that makes post-mortem not
582 has a critical bug (a missing import that makes post-mortem not
579 work at all). Unfortunately as of this time, this is the version
583 work at all). Unfortunately as of this time, this is the version
580 shipped with Ubuntu Edgy, so quite a few people have this one. I
584 shipped with Ubuntu Edgy, so quite a few people have this one. I
581 hope Edgy will update to a more recent package.
585 hope Edgy will update to a more recent package.
582
586
583 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
587 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
584
588
585 * IPython/iplib.py (_prefilter): close #52, second part of a patch
589 * IPython/iplib.py (_prefilter): close #52, second part of a patch
586 set by Stefan (only the first part had been applied before).
590 set by Stefan (only the first part had been applied before).
587
591
588 * IPython/Extensions/ipy_stock_completers.py (module_completer):
592 * IPython/Extensions/ipy_stock_completers.py (module_completer):
589 remove usage of the dangerous pkgutil.walk_packages(). See
593 remove usage of the dangerous pkgutil.walk_packages(). See
590 details in comments left in the code.
594 details in comments left in the code.
591
595
592 * IPython/Magic.py (magic_whos): add support for numpy arrays
596 * IPython/Magic.py (magic_whos): add support for numpy arrays
593 similar to what we had for Numeric.
597 similar to what we had for Numeric.
594
598
595 * IPython/completer.py (IPCompleter.complete): extend the
599 * IPython/completer.py (IPCompleter.complete): extend the
596 complete() call API to support completions by other mechanisms
600 complete() call API to support completions by other mechanisms
597 than readline. Closes #109.
601 than readline. Closes #109.
598
602
599 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
603 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
600 protect against a bug in Python's execfile(). Closes #123.
604 protect against a bug in Python's execfile(). Closes #123.
601
605
602 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
606 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
603
607
604 * IPython/iplib.py (split_user_input): ensure that when splitting
608 * IPython/iplib.py (split_user_input): ensure that when splitting
605 user input, the part that can be treated as a python name is pure
609 user input, the part that can be treated as a python name is pure
606 ascii (Python identifiers MUST be pure ascii). Part of the
610 ascii (Python identifiers MUST be pure ascii). Part of the
607 ongoing Unicode support work.
611 ongoing Unicode support work.
608
612
609 * IPython/Prompts.py (prompt_specials_color): Add \N for the
613 * IPython/Prompts.py (prompt_specials_color): Add \N for the
610 actual prompt number, without any coloring. This allows users to
614 actual prompt number, without any coloring. This allows users to
611 produce numbered prompts with their own colors. Added after a
615 produce numbered prompts with their own colors. Added after a
612 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
616 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
613
617
614 2007-03-31 Walter Doerwald <walter@livinglogic.de>
618 2007-03-31 Walter Doerwald <walter@livinglogic.de>
615
619
616 * IPython/Extensions/igrid.py: Map the return key
620 * IPython/Extensions/igrid.py: Map the return key
617 to enter() and shift-return to enterattr().
621 to enter() and shift-return to enterattr().
618
622
619 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
623 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
620
624
621 * IPython/Magic.py (magic_psearch): add unicode support by
625 * IPython/Magic.py (magic_psearch): add unicode support by
622 encoding to ascii the input, since this routine also only deals
626 encoding to ascii the input, since this routine also only deals
623 with valid Python names. Fixes a bug reported by Stefan.
627 with valid Python names. Fixes a bug reported by Stefan.
624
628
625 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
629 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
626
630
627 * IPython/Magic.py (_inspect): convert unicode input into ascii
631 * IPython/Magic.py (_inspect): convert unicode input into ascii
628 before trying to evaluate it as a Python identifier. This fixes a
632 before trying to evaluate it as a Python identifier. This fixes a
629 problem that the new unicode support had introduced when analyzing
633 problem that the new unicode support had introduced when analyzing
630 long definition lines for functions.
634 long definition lines for functions.
631
635
632 2007-03-24 Walter Doerwald <walter@livinglogic.de>
636 2007-03-24 Walter Doerwald <walter@livinglogic.de>
633
637
634 * IPython/Extensions/igrid.py: Fix picking. Using
638 * IPython/Extensions/igrid.py: Fix picking. Using
635 igrid with wxPython 2.6 and -wthread should work now.
639 igrid with wxPython 2.6 and -wthread should work now.
636 igrid.display() simply tries to create a frame without
640 igrid.display() simply tries to create a frame without
637 an application. Only if this fails an application is created.
641 an application. Only if this fails an application is created.
638
642
639 2007-03-23 Walter Doerwald <walter@livinglogic.de>
643 2007-03-23 Walter Doerwald <walter@livinglogic.de>
640
644
641 * IPython/Extensions/path.py: Updated to version 2.2.
645 * IPython/Extensions/path.py: Updated to version 2.2.
642
646
643 2007-03-23 Ville Vainio <vivainio@gmail.com>
647 2007-03-23 Ville Vainio <vivainio@gmail.com>
644
648
645 * iplib.py: recursive alias expansion now works better, so that
649 * iplib.py: recursive alias expansion now works better, so that
646 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
650 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
647 doesn't trip up the process, if 'd' has been aliased to 'ls'.
651 doesn't trip up the process, if 'd' has been aliased to 'ls'.
648
652
649 * Extensions/ipy_gnuglobal.py added, provides %global magic
653 * Extensions/ipy_gnuglobal.py added, provides %global magic
650 for users of http://www.gnu.org/software/global
654 for users of http://www.gnu.org/software/global
651
655
652 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
656 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
653 Closes #52. Patch by Stefan van der Walt.
657 Closes #52. Patch by Stefan van der Walt.
654
658
655 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
659 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
656
660
657 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
661 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
658 respect the __file__ attribute when using %run. Thanks to a bug
662 respect the __file__ attribute when using %run. Thanks to a bug
659 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
663 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
660
664
661 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
665 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
662
666
663 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
667 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
664 input. Patch sent by Stefan.
668 input. Patch sent by Stefan.
665
669
666 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
670 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
667 * IPython/Extensions/ipy_stock_completer.py
671 * IPython/Extensions/ipy_stock_completer.py
668 shlex_split, fix bug in shlex_split. len function
672 shlex_split, fix bug in shlex_split. len function
669 call was missing an if statement. Caused shlex_split to
673 call was missing an if statement. Caused shlex_split to
670 sometimes return "" as last element.
674 sometimes return "" as last element.
671
675
672 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
676 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
673
677
674 * IPython/completer.py
678 * IPython/completer.py
675 (IPCompleter.file_matches.single_dir_expand): fix a problem
679 (IPCompleter.file_matches.single_dir_expand): fix a problem
676 reported by Stefan, where directories containign a single subdir
680 reported by Stefan, where directories containign a single subdir
677 would be completed too early.
681 would be completed too early.
678
682
679 * IPython/Shell.py (_load_pylab): Make the execution of 'from
683 * IPython/Shell.py (_load_pylab): Make the execution of 'from
680 pylab import *' when -pylab is given be optional. A new flag,
684 pylab import *' when -pylab is given be optional. A new flag,
681 pylab_import_all controls this behavior, the default is True for
685 pylab_import_all controls this behavior, the default is True for
682 backwards compatibility.
686 backwards compatibility.
683
687
684 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
688 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
685 modified) R. Bernstein's patch for fully syntax highlighted
689 modified) R. Bernstein's patch for fully syntax highlighted
686 tracebacks. The functionality is also available under ultraTB for
690 tracebacks. The functionality is also available under ultraTB for
687 non-ipython users (someone using ultraTB but outside an ipython
691 non-ipython users (someone using ultraTB but outside an ipython
688 session). They can select the color scheme by setting the
692 session). They can select the color scheme by setting the
689 module-level global DEFAULT_SCHEME. The highlight functionality
693 module-level global DEFAULT_SCHEME. The highlight functionality
690 also works when debugging.
694 also works when debugging.
691
695
692 * IPython/genutils.py (IOStream.close): small patch by
696 * IPython/genutils.py (IOStream.close): small patch by
693 R. Bernstein for improved pydb support.
697 R. Bernstein for improved pydb support.
694
698
695 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
699 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
696 DaveS <davls@telus.net> to improve support of debugging under
700 DaveS <davls@telus.net> to improve support of debugging under
697 NTEmacs, including improved pydb behavior.
701 NTEmacs, including improved pydb behavior.
698
702
699 * IPython/Magic.py (magic_prun): Fix saving of profile info for
703 * IPython/Magic.py (magic_prun): Fix saving of profile info for
700 Python 2.5, where the stats object API changed a little. Thanks
704 Python 2.5, where the stats object API changed a little. Thanks
701 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
705 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
702
706
703 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
707 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
704 Pernetty's patch to improve support for (X)Emacs under Win32.
708 Pernetty's patch to improve support for (X)Emacs under Win32.
705
709
706 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
710 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
707
711
708 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
712 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
709 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
713 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
710 a report by Nik Tautenhahn.
714 a report by Nik Tautenhahn.
711
715
712 2007-03-16 Walter Doerwald <walter@livinglogic.de>
716 2007-03-16 Walter Doerwald <walter@livinglogic.de>
713
717
714 * setup.py: Add the igrid help files to the list of data files
718 * setup.py: Add the igrid help files to the list of data files
715 to be installed alongside igrid.
719 to be installed alongside igrid.
716 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
720 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
717 Show the input object of the igrid browser as the window tile.
721 Show the input object of the igrid browser as the window tile.
718 Show the object the cursor is on in the statusbar.
722 Show the object the cursor is on in the statusbar.
719
723
720 2007-03-15 Ville Vainio <vivainio@gmail.com>
724 2007-03-15 Ville Vainio <vivainio@gmail.com>
721
725
722 * Extensions/ipy_stock_completers.py: Fixed exception
726 * Extensions/ipy_stock_completers.py: Fixed exception
723 on mismatching quotes in %run completer. Patch by
727 on mismatching quotes in %run completer. Patch by
724 JοΏ½rgen Stenarson. Closes #127.
728 JοΏ½rgen Stenarson. Closes #127.
725
729
726 2007-03-14 Ville Vainio <vivainio@gmail.com>
730 2007-03-14 Ville Vainio <vivainio@gmail.com>
727
731
728 * Extensions/ext_rehashdir.py: Do not do auto_alias
732 * Extensions/ext_rehashdir.py: Do not do auto_alias
729 in %rehashdir, it clobbers %store'd aliases.
733 in %rehashdir, it clobbers %store'd aliases.
730
734
731 * UserConfig/ipy_profile_sh.py: envpersist.py extension
735 * UserConfig/ipy_profile_sh.py: envpersist.py extension
732 (beefed up %env) imported for sh profile.
736 (beefed up %env) imported for sh profile.
733
737
734 2007-03-10 Walter Doerwald <walter@livinglogic.de>
738 2007-03-10 Walter Doerwald <walter@livinglogic.de>
735
739
736 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
740 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
737 as the default browser.
741 as the default browser.
738 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
742 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
739 As igrid displays all attributes it ever encounters, fetch() (which has
743 As igrid displays all attributes it ever encounters, fetch() (which has
740 been renamed to _fetch()) doesn't have to recalculate the display attributes
744 been renamed to _fetch()) doesn't have to recalculate the display attributes
741 every time a new item is fetched. This should speed up scrolling.
745 every time a new item is fetched. This should speed up scrolling.
742
746
743 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
747 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
744
748
745 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
749 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
746 Schmolck's recently reported tab-completion bug (my previous one
750 Schmolck's recently reported tab-completion bug (my previous one
747 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
751 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
748
752
749 2007-03-09 Walter Doerwald <walter@livinglogic.de>
753 2007-03-09 Walter Doerwald <walter@livinglogic.de>
750
754
751 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
755 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
752 Close help window if exiting igrid.
756 Close help window if exiting igrid.
753
757
754 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
758 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
755
759
756 * IPython/Extensions/ipy_defaults.py: Check if readline is available
760 * IPython/Extensions/ipy_defaults.py: Check if readline is available
757 before calling functions from readline.
761 before calling functions from readline.
758
762
759 2007-03-02 Walter Doerwald <walter@livinglogic.de>
763 2007-03-02 Walter Doerwald <walter@livinglogic.de>
760
764
761 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
765 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
762 igrid is a wxPython-based display object for ipipe. If your system has
766 igrid is a wxPython-based display object for ipipe. If your system has
763 wx installed igrid will be the default display. Without wx ipipe falls
767 wx installed igrid will be the default display. Without wx ipipe falls
764 back to ibrowse (which needs curses). If no curses is installed ipipe
768 back to ibrowse (which needs curses). If no curses is installed ipipe
765 falls back to idump.
769 falls back to idump.
766
770
767 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
771 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
768
772
769 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
773 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
770 my changes from yesterday, they introduced bugs. Will reactivate
774 my changes from yesterday, they introduced bugs. Will reactivate
771 once I get a correct solution, which will be much easier thanks to
775 once I get a correct solution, which will be much easier thanks to
772 Dan Milstein's new prefilter test suite.
776 Dan Milstein's new prefilter test suite.
773
777
774 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
778 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
775
779
776 * IPython/iplib.py (split_user_input): fix input splitting so we
780 * IPython/iplib.py (split_user_input): fix input splitting so we
777 don't attempt attribute accesses on things that can't possibly be
781 don't attempt attribute accesses on things that can't possibly be
778 valid Python attributes. After a bug report by Alex Schmolck.
782 valid Python attributes. After a bug report by Alex Schmolck.
779 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
783 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
780 %magic with explicit % prefix.
784 %magic with explicit % prefix.
781
785
782 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
786 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
783
787
784 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
788 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
785 avoid a DeprecationWarning from GTK.
789 avoid a DeprecationWarning from GTK.
786
790
787 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
791 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
788
792
789 * IPython/genutils.py (clock): I modified clock() to return total
793 * IPython/genutils.py (clock): I modified clock() to return total
790 time, user+system. This is a more commonly needed metric. I also
794 time, user+system. This is a more commonly needed metric. I also
791 introduced the new clocku/clocks to get only user/system time if
795 introduced the new clocku/clocks to get only user/system time if
792 one wants those instead.
796 one wants those instead.
793
797
794 ***WARNING: API CHANGE*** clock() used to return only user time,
798 ***WARNING: API CHANGE*** clock() used to return only user time,
795 so if you want exactly the same results as before, use clocku
799 so if you want exactly the same results as before, use clocku
796 instead.
800 instead.
797
801
798 2007-02-22 Ville Vainio <vivainio@gmail.com>
802 2007-02-22 Ville Vainio <vivainio@gmail.com>
799
803
800 * IPython/Extensions/ipy_p4.py: Extension for improved
804 * IPython/Extensions/ipy_p4.py: Extension for improved
801 p4 (perforce version control system) experience.
805 p4 (perforce version control system) experience.
802 Adds %p4 magic with p4 command completion and
806 Adds %p4 magic with p4 command completion and
803 automatic -G argument (marshall output as python dict)
807 automatic -G argument (marshall output as python dict)
804
808
805 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
809 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
806
810
807 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
811 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
808 stop marks.
812 stop marks.
809 (ClearingMixin): a simple mixin to easily make a Demo class clear
813 (ClearingMixin): a simple mixin to easily make a Demo class clear
810 the screen in between blocks and have empty marquees. The
814 the screen in between blocks and have empty marquees. The
811 ClearDemo and ClearIPDemo classes that use it are included.
815 ClearDemo and ClearIPDemo classes that use it are included.
812
816
813 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
817 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
814
818
815 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
819 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
816 protect against exceptions at Python shutdown time. Patch
820 protect against exceptions at Python shutdown time. Patch
817 sumbmitted to upstream.
821 sumbmitted to upstream.
818
822
819 2007-02-14 Walter Doerwald <walter@livinglogic.de>
823 2007-02-14 Walter Doerwald <walter@livinglogic.de>
820
824
821 * IPython/Extensions/ibrowse.py: If entering the first object level
825 * IPython/Extensions/ibrowse.py: If entering the first object level
822 (i.e. the object for which the browser has been started) fails,
826 (i.e. the object for which the browser has been started) fails,
823 now the error is raised directly (aborting the browser) instead of
827 now the error is raised directly (aborting the browser) instead of
824 running into an empty levels list later.
828 running into an empty levels list later.
825
829
826 2007-02-03 Walter Doerwald <walter@livinglogic.de>
830 2007-02-03 Walter Doerwald <walter@livinglogic.de>
827
831
828 * IPython/Extensions/ipipe.py: Add an xrepr implementation
832 * IPython/Extensions/ipipe.py: Add an xrepr implementation
829 for the noitem object.
833 for the noitem object.
830
834
831 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
835 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
832
836
833 * IPython/completer.py (Completer.attr_matches): Fix small
837 * IPython/completer.py (Completer.attr_matches): Fix small
834 tab-completion bug with Enthought Traits objects with units.
838 tab-completion bug with Enthought Traits objects with units.
835 Thanks to a bug report by Tom Denniston
839 Thanks to a bug report by Tom Denniston
836 <tom.denniston-AT-alum.dartmouth.org>.
840 <tom.denniston-AT-alum.dartmouth.org>.
837
841
838 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
842 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
839
843
840 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
844 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
841 bug where only .ipy or .py would be completed. Once the first
845 bug where only .ipy or .py would be completed. Once the first
842 argument to %run has been given, all completions are valid because
846 argument to %run has been given, all completions are valid because
843 they are the arguments to the script, which may well be non-python
847 they are the arguments to the script, which may well be non-python
844 filenames.
848 filenames.
845
849
846 * IPython/irunner.py (InteractiveRunner.run_source): major updates
850 * IPython/irunner.py (InteractiveRunner.run_source): major updates
847 to irunner to allow it to correctly support real doctesting of
851 to irunner to allow it to correctly support real doctesting of
848 out-of-process ipython code.
852 out-of-process ipython code.
849
853
850 * IPython/Magic.py (magic_cd): Make the setting of the terminal
854 * IPython/Magic.py (magic_cd): Make the setting of the terminal
851 title an option (-noterm_title) because it completely breaks
855 title an option (-noterm_title) because it completely breaks
852 doctesting.
856 doctesting.
853
857
854 * IPython/demo.py: fix IPythonDemo class that was not actually working.
858 * IPython/demo.py: fix IPythonDemo class that was not actually working.
855
859
856 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
860 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
857
861
858 * IPython/irunner.py (main): fix small bug where extensions were
862 * IPython/irunner.py (main): fix small bug where extensions were
859 not being correctly recognized.
863 not being correctly recognized.
860
864
861 2007-01-23 Walter Doerwald <walter@livinglogic.de>
865 2007-01-23 Walter Doerwald <walter@livinglogic.de>
862
866
863 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
867 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
864 a string containing a single line yields the string itself as the
868 a string containing a single line yields the string itself as the
865 only item.
869 only item.
866
870
867 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
871 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
868 object if it's the same as the one on the last level (This avoids
872 object if it's the same as the one on the last level (This avoids
869 infinite recursion for one line strings).
873 infinite recursion for one line strings).
870
874
871 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
875 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
872
876
873 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
877 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
874 all output streams before printing tracebacks. This ensures that
878 all output streams before printing tracebacks. This ensures that
875 user output doesn't end up interleaved with traceback output.
879 user output doesn't end up interleaved with traceback output.
876
880
877 2007-01-10 Ville Vainio <vivainio@gmail.com>
881 2007-01-10 Ville Vainio <vivainio@gmail.com>
878
882
879 * Extensions/envpersist.py: Turbocharged %env that remembers
883 * Extensions/envpersist.py: Turbocharged %env that remembers
880 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
884 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
881 "%env VISUAL=jed".
885 "%env VISUAL=jed".
882
886
883 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
887 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
884
888
885 * IPython/iplib.py (showtraceback): ensure that we correctly call
889 * IPython/iplib.py (showtraceback): ensure that we correctly call
886 custom handlers in all cases (some with pdb were slipping through,
890 custom handlers in all cases (some with pdb were slipping through,
887 but I'm not exactly sure why).
891 but I'm not exactly sure why).
888
892
889 * IPython/Debugger.py (Tracer.__init__): added new class to
893 * IPython/Debugger.py (Tracer.__init__): added new class to
890 support set_trace-like usage of IPython's enhanced debugger.
894 support set_trace-like usage of IPython's enhanced debugger.
891
895
892 2006-12-24 Ville Vainio <vivainio@gmail.com>
896 2006-12-24 Ville Vainio <vivainio@gmail.com>
893
897
894 * ipmaker.py: more informative message when ipy_user_conf
898 * ipmaker.py: more informative message when ipy_user_conf
895 import fails (suggest running %upgrade).
899 import fails (suggest running %upgrade).
896
900
897 * tools/run_ipy_in_profiler.py: Utility to see where
901 * tools/run_ipy_in_profiler.py: Utility to see where
898 the time during IPython startup is spent.
902 the time during IPython startup is spent.
899
903
900 2006-12-20 Ville Vainio <vivainio@gmail.com>
904 2006-12-20 Ville Vainio <vivainio@gmail.com>
901
905
902 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
906 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
903
907
904 * ipapi.py: Add new ipapi method, expand_alias.
908 * ipapi.py: Add new ipapi method, expand_alias.
905
909
906 * Release.py: Bump up version to 0.7.4.svn
910 * Release.py: Bump up version to 0.7.4.svn
907
911
908 2006-12-17 Ville Vainio <vivainio@gmail.com>
912 2006-12-17 Ville Vainio <vivainio@gmail.com>
909
913
910 * Extensions/jobctrl.py: Fixed &cmd arg arg...
914 * Extensions/jobctrl.py: Fixed &cmd arg arg...
911 to work properly on posix too
915 to work properly on posix too
912
916
913 * Release.py: Update revnum (version is still just 0.7.3).
917 * Release.py: Update revnum (version is still just 0.7.3).
914
918
915 2006-12-15 Ville Vainio <vivainio@gmail.com>
919 2006-12-15 Ville Vainio <vivainio@gmail.com>
916
920
917 * scripts/ipython_win_post_install: create ipython.py in
921 * scripts/ipython_win_post_install: create ipython.py in
918 prefix + "/scripts".
922 prefix + "/scripts".
919
923
920 * Release.py: Update version to 0.7.3.
924 * Release.py: Update version to 0.7.3.
921
925
922 2006-12-14 Ville Vainio <vivainio@gmail.com>
926 2006-12-14 Ville Vainio <vivainio@gmail.com>
923
927
924 * scripts/ipython_win_post_install: Overwrite old shortcuts
928 * scripts/ipython_win_post_install: Overwrite old shortcuts
925 if they already exist
929 if they already exist
926
930
927 * Release.py: release 0.7.3rc2
931 * Release.py: release 0.7.3rc2
928
932
929 2006-12-13 Ville Vainio <vivainio@gmail.com>
933 2006-12-13 Ville Vainio <vivainio@gmail.com>
930
934
931 * Branch and update Release.py for 0.7.3rc1
935 * Branch and update Release.py for 0.7.3rc1
932
936
933 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
937 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
934
938
935 * IPython/Shell.py (IPShellWX): update for current WX naming
939 * IPython/Shell.py (IPShellWX): update for current WX naming
936 conventions, to avoid a deprecation warning with current WX
940 conventions, to avoid a deprecation warning with current WX
937 versions. Thanks to a report by Danny Shevitz.
941 versions. Thanks to a report by Danny Shevitz.
938
942
939 2006-12-12 Ville Vainio <vivainio@gmail.com>
943 2006-12-12 Ville Vainio <vivainio@gmail.com>
940
944
941 * ipmaker.py: apply david cournapeau's patch to make
945 * ipmaker.py: apply david cournapeau's patch to make
942 import_some work properly even when ipythonrc does
946 import_some work properly even when ipythonrc does
943 import_some on empty list (it was an old bug!).
947 import_some on empty list (it was an old bug!).
944
948
945 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
949 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
946 Add deprecation note to ipythonrc and a url to wiki
950 Add deprecation note to ipythonrc and a url to wiki
947 in ipy_user_conf.py
951 in ipy_user_conf.py
948
952
949
953
950 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
954 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
951 as if it was typed on IPython command prompt, i.e.
955 as if it was typed on IPython command prompt, i.e.
952 as IPython script.
956 as IPython script.
953
957
954 * example-magic.py, magic_grepl.py: remove outdated examples
958 * example-magic.py, magic_grepl.py: remove outdated examples
955
959
956 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
960 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
957
961
958 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
962 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
959 is called before any exception has occurred.
963 is called before any exception has occurred.
960
964
961 2006-12-08 Ville Vainio <vivainio@gmail.com>
965 2006-12-08 Ville Vainio <vivainio@gmail.com>
962
966
963 * Extensions/ipy_stock_completers.py: fix cd completer
967 * Extensions/ipy_stock_completers.py: fix cd completer
964 to translate /'s to \'s again.
968 to translate /'s to \'s again.
965
969
966 * completer.py: prevent traceback on file completions w/
970 * completer.py: prevent traceback on file completions w/
967 backslash.
971 backslash.
968
972
969 * Release.py: Update release number to 0.7.3b3 for release
973 * Release.py: Update release number to 0.7.3b3 for release
970
974
971 2006-12-07 Ville Vainio <vivainio@gmail.com>
975 2006-12-07 Ville Vainio <vivainio@gmail.com>
972
976
973 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
977 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
974 while executing external code. Provides more shell-like behaviour
978 while executing external code. Provides more shell-like behaviour
975 and overall better response to ctrl + C / ctrl + break.
979 and overall better response to ctrl + C / ctrl + break.
976
980
977 * tools/make_tarball.py: new script to create tarball straight from svn
981 * tools/make_tarball.py: new script to create tarball straight from svn
978 (setup.py sdist doesn't work on win32).
982 (setup.py sdist doesn't work on win32).
979
983
980 * Extensions/ipy_stock_completers.py: fix cd completer to give up
984 * Extensions/ipy_stock_completers.py: fix cd completer to give up
981 on dirnames with spaces and use the default completer instead.
985 on dirnames with spaces and use the default completer instead.
982
986
983 * Revision.py: Change version to 0.7.3b2 for release.
987 * Revision.py: Change version to 0.7.3b2 for release.
984
988
985 2006-12-05 Ville Vainio <vivainio@gmail.com>
989 2006-12-05 Ville Vainio <vivainio@gmail.com>
986
990
987 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
991 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
988 pydb patch 4 (rm debug printing, py 2.5 checking)
992 pydb patch 4 (rm debug printing, py 2.5 checking)
989
993
990 2006-11-30 Walter Doerwald <walter@livinglogic.de>
994 2006-11-30 Walter Doerwald <walter@livinglogic.de>
991 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
995 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
992 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
996 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
993 "refreshfind" (mapped to "R") does the same but tries to go back to the same
997 "refreshfind" (mapped to "R") does the same but tries to go back to the same
994 object the cursor was on before the refresh. The command "markrange" is
998 object the cursor was on before the refresh. The command "markrange" is
995 mapped to "%" now.
999 mapped to "%" now.
996 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1000 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
997
1001
998 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1002 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
999
1003
1000 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1004 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1001 interactive debugger on the last traceback, without having to call
1005 interactive debugger on the last traceback, without having to call
1002 %pdb and rerun your code. Made minor changes in various modules,
1006 %pdb and rerun your code. Made minor changes in various modules,
1003 should automatically recognize pydb if available.
1007 should automatically recognize pydb if available.
1004
1008
1005 2006-11-28 Ville Vainio <vivainio@gmail.com>
1009 2006-11-28 Ville Vainio <vivainio@gmail.com>
1006
1010
1007 * completer.py: If the text start with !, show file completions
1011 * completer.py: If the text start with !, show file completions
1008 properly. This helps when trying to complete command name
1012 properly. This helps when trying to complete command name
1009 for shell escapes.
1013 for shell escapes.
1010
1014
1011 2006-11-27 Ville Vainio <vivainio@gmail.com>
1015 2006-11-27 Ville Vainio <vivainio@gmail.com>
1012
1016
1013 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1017 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1014 der Walt. Clean up svn and hg completers by using a common
1018 der Walt. Clean up svn and hg completers by using a common
1015 vcs_completer.
1019 vcs_completer.
1016
1020
1017 2006-11-26 Ville Vainio <vivainio@gmail.com>
1021 2006-11-26 Ville Vainio <vivainio@gmail.com>
1018
1022
1019 * Remove ipconfig and %config; you should use _ip.options structure
1023 * Remove ipconfig and %config; you should use _ip.options structure
1020 directly instead!
1024 directly instead!
1021
1025
1022 * genutils.py: add wrap_deprecated function for deprecating callables
1026 * genutils.py: add wrap_deprecated function for deprecating callables
1023
1027
1024 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1028 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1025 _ip.system instead. ipalias is redundant.
1029 _ip.system instead. ipalias is redundant.
1026
1030
1027 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1031 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1028 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1032 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1029 explicit.
1033 explicit.
1030
1034
1031 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1035 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1032 completer. Try it by entering 'hg ' and pressing tab.
1036 completer. Try it by entering 'hg ' and pressing tab.
1033
1037
1034 * macro.py: Give Macro a useful __repr__ method
1038 * macro.py: Give Macro a useful __repr__ method
1035
1039
1036 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1040 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1037
1041
1038 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1042 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1039 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1043 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1040 we don't get a duplicate ipipe module, where registration of the xrepr
1044 we don't get a duplicate ipipe module, where registration of the xrepr
1041 implementation for Text is useless.
1045 implementation for Text is useless.
1042
1046
1043 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1047 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1044
1048
1045 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1049 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1046
1050
1047 2006-11-24 Ville Vainio <vivainio@gmail.com>
1051 2006-11-24 Ville Vainio <vivainio@gmail.com>
1048
1052
1049 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1053 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1050 try to use "cProfile" instead of the slower pure python
1054 try to use "cProfile" instead of the slower pure python
1051 "profile"
1055 "profile"
1052
1056
1053 2006-11-23 Ville Vainio <vivainio@gmail.com>
1057 2006-11-23 Ville Vainio <vivainio@gmail.com>
1054
1058
1055 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1059 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1056 Qt+IPython+Designer link in documentation.
1060 Qt+IPython+Designer link in documentation.
1057
1061
1058 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1062 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1059 correct Pdb object to %pydb.
1063 correct Pdb object to %pydb.
1060
1064
1061
1065
1062 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1066 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1063 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1067 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1064 generic xrepr(), otherwise the list implementation would kick in.
1068 generic xrepr(), otherwise the list implementation would kick in.
1065
1069
1066 2006-11-21 Ville Vainio <vivainio@gmail.com>
1070 2006-11-21 Ville Vainio <vivainio@gmail.com>
1067
1071
1068 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1072 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1069 with one from UserConfig.
1073 with one from UserConfig.
1070
1074
1071 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1075 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1072 it was missing which broke the sh profile.
1076 it was missing which broke the sh profile.
1073
1077
1074 * completer.py: file completer now uses explicit '/' instead
1078 * completer.py: file completer now uses explicit '/' instead
1075 of os.path.join, expansion of 'foo' was broken on win32
1079 of os.path.join, expansion of 'foo' was broken on win32
1076 if there was one directory with name 'foobar'.
1080 if there was one directory with name 'foobar'.
1077
1081
1078 * A bunch of patches from Kirill Smelkov:
1082 * A bunch of patches from Kirill Smelkov:
1079
1083
1080 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1084 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1081
1085
1082 * [patch 7/9] Implement %page -r (page in raw mode) -
1086 * [patch 7/9] Implement %page -r (page in raw mode) -
1083
1087
1084 * [patch 5/9] ScientificPython webpage has moved
1088 * [patch 5/9] ScientificPython webpage has moved
1085
1089
1086 * [patch 4/9] The manual mentions %ds, should be %dhist
1090 * [patch 4/9] The manual mentions %ds, should be %dhist
1087
1091
1088 * [patch 3/9] Kill old bits from %prun doc.
1092 * [patch 3/9] Kill old bits from %prun doc.
1089
1093
1090 * [patch 1/9] Fix typos here and there.
1094 * [patch 1/9] Fix typos here and there.
1091
1095
1092 2006-11-08 Ville Vainio <vivainio@gmail.com>
1096 2006-11-08 Ville Vainio <vivainio@gmail.com>
1093
1097
1094 * completer.py (attr_matches): catch all exceptions raised
1098 * completer.py (attr_matches): catch all exceptions raised
1095 by eval of expr with dots.
1099 by eval of expr with dots.
1096
1100
1097 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1101 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1098
1102
1099 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1103 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1100 input if it starts with whitespace. This allows you to paste
1104 input if it starts with whitespace. This allows you to paste
1101 indented input from any editor without manually having to type in
1105 indented input from any editor without manually having to type in
1102 the 'if 1:', which is convenient when working interactively.
1106 the 'if 1:', which is convenient when working interactively.
1103 Slightly modifed version of a patch by Bo Peng
1107 Slightly modifed version of a patch by Bo Peng
1104 <bpeng-AT-rice.edu>.
1108 <bpeng-AT-rice.edu>.
1105
1109
1106 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1110 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1107
1111
1108 * IPython/irunner.py (main): modified irunner so it automatically
1112 * IPython/irunner.py (main): modified irunner so it automatically
1109 recognizes the right runner to use based on the extension (.py for
1113 recognizes the right runner to use based on the extension (.py for
1110 python, .ipy for ipython and .sage for sage).
1114 python, .ipy for ipython and .sage for sage).
1111
1115
1112 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1116 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1113 visible in ipapi as ip.config(), to programatically control the
1117 visible in ipapi as ip.config(), to programatically control the
1114 internal rc object. There's an accompanying %config magic for
1118 internal rc object. There's an accompanying %config magic for
1115 interactive use, which has been enhanced to match the
1119 interactive use, which has been enhanced to match the
1116 funtionality in ipconfig.
1120 funtionality in ipconfig.
1117
1121
1118 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1122 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1119 so it's not just a toggle, it now takes an argument. Add support
1123 so it's not just a toggle, it now takes an argument. Add support
1120 for a customizable header when making system calls, as the new
1124 for a customizable header when making system calls, as the new
1121 system_header variable in the ipythonrc file.
1125 system_header variable in the ipythonrc file.
1122
1126
1123 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1127 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1124
1128
1125 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1129 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1126 generic functions (using Philip J. Eby's simplegeneric package).
1130 generic functions (using Philip J. Eby's simplegeneric package).
1127 This makes it possible to customize the display of third-party classes
1131 This makes it possible to customize the display of third-party classes
1128 without having to monkeypatch them. xiter() no longer supports a mode
1132 without having to monkeypatch them. xiter() no longer supports a mode
1129 argument and the XMode class has been removed. The same functionality can
1133 argument and the XMode class has been removed. The same functionality can
1130 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1134 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1131 One consequence of the switch to generic functions is that xrepr() and
1135 One consequence of the switch to generic functions is that xrepr() and
1132 xattrs() implementation must define the default value for the mode
1136 xattrs() implementation must define the default value for the mode
1133 argument themselves and xattrs() implementations must return real
1137 argument themselves and xattrs() implementations must return real
1134 descriptors.
1138 descriptors.
1135
1139
1136 * IPython/external: This new subpackage will contain all third-party
1140 * IPython/external: This new subpackage will contain all third-party
1137 packages that are bundled with IPython. (The first one is simplegeneric).
1141 packages that are bundled with IPython. (The first one is simplegeneric).
1138
1142
1139 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1143 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1140 directory which as been dropped in r1703.
1144 directory which as been dropped in r1703.
1141
1145
1142 * IPython/Extensions/ipipe.py (iless): Fixed.
1146 * IPython/Extensions/ipipe.py (iless): Fixed.
1143
1147
1144 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1148 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1145
1149
1146 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1150 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1147
1151
1148 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1152 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1149 handling in variable expansion so that shells and magics recognize
1153 handling in variable expansion so that shells and magics recognize
1150 function local scopes correctly. Bug reported by Brian.
1154 function local scopes correctly. Bug reported by Brian.
1151
1155
1152 * scripts/ipython: remove the very first entry in sys.path which
1156 * scripts/ipython: remove the very first entry in sys.path which
1153 Python auto-inserts for scripts, so that sys.path under IPython is
1157 Python auto-inserts for scripts, so that sys.path under IPython is
1154 as similar as possible to that under plain Python.
1158 as similar as possible to that under plain Python.
1155
1159
1156 * IPython/completer.py (IPCompleter.file_matches): Fix
1160 * IPython/completer.py (IPCompleter.file_matches): Fix
1157 tab-completion so that quotes are not closed unless the completion
1161 tab-completion so that quotes are not closed unless the completion
1158 is unambiguous. After a request by Stefan. Minor cleanups in
1162 is unambiguous. After a request by Stefan. Minor cleanups in
1159 ipy_stock_completers.
1163 ipy_stock_completers.
1160
1164
1161 2006-11-02 Ville Vainio <vivainio@gmail.com>
1165 2006-11-02 Ville Vainio <vivainio@gmail.com>
1162
1166
1163 * ipy_stock_completers.py: Add %run and %cd completers.
1167 * ipy_stock_completers.py: Add %run and %cd completers.
1164
1168
1165 * completer.py: Try running custom completer for both
1169 * completer.py: Try running custom completer for both
1166 "foo" and "%foo" if the command is just "foo". Ignore case
1170 "foo" and "%foo" if the command is just "foo". Ignore case
1167 when filtering possible completions.
1171 when filtering possible completions.
1168
1172
1169 * UserConfig/ipy_user_conf.py: install stock completers as default
1173 * UserConfig/ipy_user_conf.py: install stock completers as default
1170
1174
1171 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1175 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1172 simplified readline history save / restore through a wrapper
1176 simplified readline history save / restore through a wrapper
1173 function
1177 function
1174
1178
1175
1179
1176 2006-10-31 Ville Vainio <vivainio@gmail.com>
1180 2006-10-31 Ville Vainio <vivainio@gmail.com>
1177
1181
1178 * strdispatch.py, completer.py, ipy_stock_completers.py:
1182 * strdispatch.py, completer.py, ipy_stock_completers.py:
1179 Allow str_key ("command") in completer hooks. Implement
1183 Allow str_key ("command") in completer hooks. Implement
1180 trivial completer for 'import' (stdlib modules only). Rename
1184 trivial completer for 'import' (stdlib modules only). Rename
1181 ipy_linux_package_managers.py to ipy_stock_completers.py.
1185 ipy_linux_package_managers.py to ipy_stock_completers.py.
1182 SVN completer.
1186 SVN completer.
1183
1187
1184 * Extensions/ledit.py: %magic line editor for easily and
1188 * Extensions/ledit.py: %magic line editor for easily and
1185 incrementally manipulating lists of strings. The magic command
1189 incrementally manipulating lists of strings. The magic command
1186 name is %led.
1190 name is %led.
1187
1191
1188 2006-10-30 Ville Vainio <vivainio@gmail.com>
1192 2006-10-30 Ville Vainio <vivainio@gmail.com>
1189
1193
1190 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1194 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1191 Bernsteins's patches for pydb integration.
1195 Bernsteins's patches for pydb integration.
1192 http://bashdb.sourceforge.net/pydb/
1196 http://bashdb.sourceforge.net/pydb/
1193
1197
1194 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1198 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1195 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1199 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1196 custom completer hook to allow the users to implement their own
1200 custom completer hook to allow the users to implement their own
1197 completers. See ipy_linux_package_managers.py for example. The
1201 completers. See ipy_linux_package_managers.py for example. The
1198 hook name is 'complete_command'.
1202 hook name is 'complete_command'.
1199
1203
1200 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1204 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1201
1205
1202 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1206 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1203 Numeric leftovers.
1207 Numeric leftovers.
1204
1208
1205 * ipython.el (py-execute-region): apply Stefan's patch to fix
1209 * ipython.el (py-execute-region): apply Stefan's patch to fix
1206 garbled results if the python shell hasn't been previously started.
1210 garbled results if the python shell hasn't been previously started.
1207
1211
1208 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1212 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1209 pretty generic function and useful for other things.
1213 pretty generic function and useful for other things.
1210
1214
1211 * IPython/OInspect.py (getsource): Add customizable source
1215 * IPython/OInspect.py (getsource): Add customizable source
1212 extractor. After a request/patch form W. Stein (SAGE).
1216 extractor. After a request/patch form W. Stein (SAGE).
1213
1217
1214 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1218 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1215 window size to a more reasonable value from what pexpect does,
1219 window size to a more reasonable value from what pexpect does,
1216 since their choice causes wrapping bugs with long input lines.
1220 since their choice causes wrapping bugs with long input lines.
1217
1221
1218 2006-10-28 Ville Vainio <vivainio@gmail.com>
1222 2006-10-28 Ville Vainio <vivainio@gmail.com>
1219
1223
1220 * Magic.py (%run): Save and restore the readline history from
1224 * Magic.py (%run): Save and restore the readline history from
1221 file around %run commands to prevent side effects from
1225 file around %run commands to prevent side effects from
1222 %runned programs that might use readline (e.g. pydb).
1226 %runned programs that might use readline (e.g. pydb).
1223
1227
1224 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1228 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1225 invoking the pydb enhanced debugger.
1229 invoking the pydb enhanced debugger.
1226
1230
1227 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1231 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1228
1232
1229 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1233 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1230 call the base class method and propagate the return value to
1234 call the base class method and propagate the return value to
1231 ifile. This is now done by path itself.
1235 ifile. This is now done by path itself.
1232
1236
1233 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1237 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1234
1238
1235 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1239 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1236 api: set_crash_handler(), to expose the ability to change the
1240 api: set_crash_handler(), to expose the ability to change the
1237 internal crash handler.
1241 internal crash handler.
1238
1242
1239 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1243 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1240 the various parameters of the crash handler so that apps using
1244 the various parameters of the crash handler so that apps using
1241 IPython as their engine can customize crash handling. Ipmlemented
1245 IPython as their engine can customize crash handling. Ipmlemented
1242 at the request of SAGE.
1246 at the request of SAGE.
1243
1247
1244 2006-10-14 Ville Vainio <vivainio@gmail.com>
1248 2006-10-14 Ville Vainio <vivainio@gmail.com>
1245
1249
1246 * Magic.py, ipython.el: applied first "safe" part of Rocky
1250 * Magic.py, ipython.el: applied first "safe" part of Rocky
1247 Bernstein's patch set for pydb integration.
1251 Bernstein's patch set for pydb integration.
1248
1252
1249 * Magic.py (%unalias, %alias): %store'd aliases can now be
1253 * Magic.py (%unalias, %alias): %store'd aliases can now be
1250 removed with '%unalias'. %alias w/o args now shows most
1254 removed with '%unalias'. %alias w/o args now shows most
1251 interesting (stored / manually defined) aliases last
1255 interesting (stored / manually defined) aliases last
1252 where they catch the eye w/o scrolling.
1256 where they catch the eye w/o scrolling.
1253
1257
1254 * Magic.py (%rehashx), ext_rehashdir.py: files with
1258 * Magic.py (%rehashx), ext_rehashdir.py: files with
1255 'py' extension are always considered executable, even
1259 'py' extension are always considered executable, even
1256 when not in PATHEXT environment variable.
1260 when not in PATHEXT environment variable.
1257
1261
1258 2006-10-12 Ville Vainio <vivainio@gmail.com>
1262 2006-10-12 Ville Vainio <vivainio@gmail.com>
1259
1263
1260 * jobctrl.py: Add new "jobctrl" extension for spawning background
1264 * jobctrl.py: Add new "jobctrl" extension for spawning background
1261 processes with "&find /". 'import jobctrl' to try it out. Requires
1265 processes with "&find /". 'import jobctrl' to try it out. Requires
1262 'subprocess' module, standard in python 2.4+.
1266 'subprocess' module, standard in python 2.4+.
1263
1267
1264 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1268 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1265 so if foo -> bar and bar -> baz, then foo -> baz.
1269 so if foo -> bar and bar -> baz, then foo -> baz.
1266
1270
1267 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1271 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1268
1272
1269 * IPython/Magic.py (Magic.parse_options): add a new posix option
1273 * IPython/Magic.py (Magic.parse_options): add a new posix option
1270 to allow parsing of input args in magics that doesn't strip quotes
1274 to allow parsing of input args in magics that doesn't strip quotes
1271 (if posix=False). This also closes %timeit bug reported by
1275 (if posix=False). This also closes %timeit bug reported by
1272 Stefan.
1276 Stefan.
1273
1277
1274 2006-10-03 Ville Vainio <vivainio@gmail.com>
1278 2006-10-03 Ville Vainio <vivainio@gmail.com>
1275
1279
1276 * iplib.py (raw_input, interact): Return ValueError catching for
1280 * iplib.py (raw_input, interact): Return ValueError catching for
1277 raw_input. Fixes infinite loop for sys.stdin.close() or
1281 raw_input. Fixes infinite loop for sys.stdin.close() or
1278 sys.stdout.close().
1282 sys.stdout.close().
1279
1283
1280 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1284 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1281
1285
1282 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1286 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1283 to help in handling doctests. irunner is now pretty useful for
1287 to help in handling doctests. irunner is now pretty useful for
1284 running standalone scripts and simulate a full interactive session
1288 running standalone scripts and simulate a full interactive session
1285 in a format that can be then pasted as a doctest.
1289 in a format that can be then pasted as a doctest.
1286
1290
1287 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1291 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1288 on top of the default (useless) ones. This also fixes the nasty
1292 on top of the default (useless) ones. This also fixes the nasty
1289 way in which 2.5's Quitter() exits (reverted [1785]).
1293 way in which 2.5's Quitter() exits (reverted [1785]).
1290
1294
1291 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1295 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1292 2.5.
1296 2.5.
1293
1297
1294 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1298 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1295 color scheme is updated as well when color scheme is changed
1299 color scheme is updated as well when color scheme is changed
1296 interactively.
1300 interactively.
1297
1301
1298 2006-09-27 Ville Vainio <vivainio@gmail.com>
1302 2006-09-27 Ville Vainio <vivainio@gmail.com>
1299
1303
1300 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1304 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1301 infinite loop and just exit. It's a hack, but will do for a while.
1305 infinite loop and just exit. It's a hack, but will do for a while.
1302
1306
1303 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1307 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1304
1308
1305 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1309 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1306 the constructor, this makes it possible to get a list of only directories
1310 the constructor, this makes it possible to get a list of only directories
1307 or only files.
1311 or only files.
1308
1312
1309 2006-08-12 Ville Vainio <vivainio@gmail.com>
1313 2006-08-12 Ville Vainio <vivainio@gmail.com>
1310
1314
1311 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1315 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1312 they broke unittest
1316 they broke unittest
1313
1317
1314 2006-08-11 Ville Vainio <vivainio@gmail.com>
1318 2006-08-11 Ville Vainio <vivainio@gmail.com>
1315
1319
1316 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1320 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1317 by resolving issue properly, i.e. by inheriting FakeModule
1321 by resolving issue properly, i.e. by inheriting FakeModule
1318 from types.ModuleType. Pickling ipython interactive data
1322 from types.ModuleType. Pickling ipython interactive data
1319 should still work as usual (testing appreciated).
1323 should still work as usual (testing appreciated).
1320
1324
1321 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1325 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1322
1326
1323 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1327 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1324 running under python 2.3 with code from 2.4 to fix a bug with
1328 running under python 2.3 with code from 2.4 to fix a bug with
1325 help(). Reported by the Debian maintainers, Norbert Tretkowski
1329 help(). Reported by the Debian maintainers, Norbert Tretkowski
1326 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1330 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1327 <afayolle-AT-debian.org>.
1331 <afayolle-AT-debian.org>.
1328
1332
1329 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1333 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1330
1334
1331 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1335 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1332 (which was displaying "quit" twice).
1336 (which was displaying "quit" twice).
1333
1337
1334 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1338 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1335
1339
1336 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1340 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1337 the mode argument).
1341 the mode argument).
1338
1342
1339 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1343 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1340
1344
1341 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1345 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1342 not running under IPython.
1346 not running under IPython.
1343
1347
1344 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1348 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1345 and make it iterable (iterating over the attribute itself). Add two new
1349 and make it iterable (iterating over the attribute itself). Add two new
1346 magic strings for __xattrs__(): If the string starts with "-", the attribute
1350 magic strings for __xattrs__(): If the string starts with "-", the attribute
1347 will not be displayed in ibrowse's detail view (but it can still be
1351 will not be displayed in ibrowse's detail view (but it can still be
1348 iterated over). This makes it possible to add attributes that are large
1352 iterated over). This makes it possible to add attributes that are large
1349 lists or generator methods to the detail view. Replace magic attribute names
1353 lists or generator methods to the detail view. Replace magic attribute names
1350 and _attrname() and _getattr() with "descriptors": For each type of magic
1354 and _attrname() and _getattr() with "descriptors": For each type of magic
1351 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1355 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1352 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1356 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1353 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1357 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1354 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1358 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1355 are still supported.
1359 are still supported.
1356
1360
1357 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1361 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1358 fails in ibrowse.fetch(), the exception object is added as the last item
1362 fails in ibrowse.fetch(), the exception object is added as the last item
1359 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1363 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1360 a generator throws an exception midway through execution.
1364 a generator throws an exception midway through execution.
1361
1365
1362 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1366 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1363 encoding into methods.
1367 encoding into methods.
1364
1368
1365 2006-07-26 Ville Vainio <vivainio@gmail.com>
1369 2006-07-26 Ville Vainio <vivainio@gmail.com>
1366
1370
1367 * iplib.py: history now stores multiline input as single
1371 * iplib.py: history now stores multiline input as single
1368 history entries. Patch by Jorgen Cederlof.
1372 history entries. Patch by Jorgen Cederlof.
1369
1373
1370 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1374 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1371
1375
1372 * IPython/Extensions/ibrowse.py: Make cursor visible over
1376 * IPython/Extensions/ibrowse.py: Make cursor visible over
1373 non existing attributes.
1377 non existing attributes.
1374
1378
1375 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1379 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1376
1380
1377 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1381 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1378 error output of the running command doesn't mess up the screen.
1382 error output of the running command doesn't mess up the screen.
1379
1383
1380 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1384 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1381
1385
1382 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1386 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1383 argument. This sorts the items themselves.
1387 argument. This sorts the items themselves.
1384
1388
1385 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1389 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1386
1390
1387 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1391 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1388 Compile expression strings into code objects. This should speed
1392 Compile expression strings into code objects. This should speed
1389 up ifilter and friends somewhat.
1393 up ifilter and friends somewhat.
1390
1394
1391 2006-07-08 Ville Vainio <vivainio@gmail.com>
1395 2006-07-08 Ville Vainio <vivainio@gmail.com>
1392
1396
1393 * Magic.py: %cpaste now strips > from the beginning of lines
1397 * Magic.py: %cpaste now strips > from the beginning of lines
1394 to ease pasting quoted code from emails. Contributed by
1398 to ease pasting quoted code from emails. Contributed by
1395 Stefan van der Walt.
1399 Stefan van der Walt.
1396
1400
1397 2006-06-29 Ville Vainio <vivainio@gmail.com>
1401 2006-06-29 Ville Vainio <vivainio@gmail.com>
1398
1402
1399 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1403 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1400 mode, patch contributed by Darren Dale. NEEDS TESTING!
1404 mode, patch contributed by Darren Dale. NEEDS TESTING!
1401
1405
1402 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1406 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1403
1407
1404 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1408 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1405 a blue background. Fix fetching new display rows when the browser
1409 a blue background. Fix fetching new display rows when the browser
1406 scrolls more than a screenful (e.g. by using the goto command).
1410 scrolls more than a screenful (e.g. by using the goto command).
1407
1411
1408 2006-06-27 Ville Vainio <vivainio@gmail.com>
1412 2006-06-27 Ville Vainio <vivainio@gmail.com>
1409
1413
1410 * Magic.py (_inspect, _ofind) Apply David Huard's
1414 * Magic.py (_inspect, _ofind) Apply David Huard's
1411 patch for displaying the correct docstring for 'property'
1415 patch for displaying the correct docstring for 'property'
1412 attributes.
1416 attributes.
1413
1417
1414 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1418 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1415
1419
1416 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1420 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1417 commands into the methods implementing them.
1421 commands into the methods implementing them.
1418
1422
1419 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1423 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1420
1424
1421 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1425 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1422 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1426 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1423 autoindent support was authored by Jin Liu.
1427 autoindent support was authored by Jin Liu.
1424
1428
1425 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1429 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1426
1430
1427 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1431 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1428 for keymaps with a custom class that simplifies handling.
1432 for keymaps with a custom class that simplifies handling.
1429
1433
1430 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1434 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1431
1435
1432 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1436 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1433 resizing. This requires Python 2.5 to work.
1437 resizing. This requires Python 2.5 to work.
1434
1438
1435 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1439 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1436
1440
1437 * IPython/Extensions/ibrowse.py: Add two new commands to
1441 * IPython/Extensions/ibrowse.py: Add two new commands to
1438 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1442 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1439 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1443 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1440 attributes again. Remapped the help command to "?". Display
1444 attributes again. Remapped the help command to "?". Display
1441 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1445 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1442 as keys for the "home" and "end" commands. Add three new commands
1446 as keys for the "home" and "end" commands. Add three new commands
1443 to the input mode for "find" and friends: "delend" (CTRL-K)
1447 to the input mode for "find" and friends: "delend" (CTRL-K)
1444 deletes to the end of line. "incsearchup" searches upwards in the
1448 deletes to the end of line. "incsearchup" searches upwards in the
1445 command history for an input that starts with the text before the cursor.
1449 command history for an input that starts with the text before the cursor.
1446 "incsearchdown" does the same downwards. Removed a bogus mapping of
1450 "incsearchdown" does the same downwards. Removed a bogus mapping of
1447 the x key to "delete".
1451 the x key to "delete".
1448
1452
1449 2006-06-15 Ville Vainio <vivainio@gmail.com>
1453 2006-06-15 Ville Vainio <vivainio@gmail.com>
1450
1454
1451 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1455 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1452 used to create prompts dynamically, instead of the "old" way of
1456 used to create prompts dynamically, instead of the "old" way of
1453 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1457 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1454 way still works (it's invoked by the default hook), of course.
1458 way still works (it's invoked by the default hook), of course.
1455
1459
1456 * Prompts.py: added generate_output_prompt hook for altering output
1460 * Prompts.py: added generate_output_prompt hook for altering output
1457 prompt
1461 prompt
1458
1462
1459 * Release.py: Changed version string to 0.7.3.svn.
1463 * Release.py: Changed version string to 0.7.3.svn.
1460
1464
1461 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1465 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1462
1466
1463 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1467 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1464 the call to fetch() always tries to fetch enough data for at least one
1468 the call to fetch() always tries to fetch enough data for at least one
1465 full screen. This makes it possible to simply call moveto(0,0,True) in
1469 full screen. This makes it possible to simply call moveto(0,0,True) in
1466 the constructor. Fix typos and removed the obsolete goto attribute.
1470 the constructor. Fix typos and removed the obsolete goto attribute.
1467
1471
1468 2006-06-12 Ville Vainio <vivainio@gmail.com>
1472 2006-06-12 Ville Vainio <vivainio@gmail.com>
1469
1473
1470 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1474 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1471 allowing $variable interpolation within multiline statements,
1475 allowing $variable interpolation within multiline statements,
1472 though so far only with "sh" profile for a testing period.
1476 though so far only with "sh" profile for a testing period.
1473 The patch also enables splitting long commands with \ but it
1477 The patch also enables splitting long commands with \ but it
1474 doesn't work properly yet.
1478 doesn't work properly yet.
1475
1479
1476 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1480 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1477
1481
1478 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1482 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1479 input history and the position of the cursor in the input history for
1483 input history and the position of the cursor in the input history for
1480 the find, findbackwards and goto command.
1484 the find, findbackwards and goto command.
1481
1485
1482 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1486 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1483
1487
1484 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1488 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1485 implements the basic functionality of browser commands that require
1489 implements the basic functionality of browser commands that require
1486 input. Reimplement the goto, find and findbackwards commands as
1490 input. Reimplement the goto, find and findbackwards commands as
1487 subclasses of _CommandInput. Add an input history and keymaps to those
1491 subclasses of _CommandInput. Add an input history and keymaps to those
1488 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1492 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1489 execute commands.
1493 execute commands.
1490
1494
1491 2006-06-07 Ville Vainio <vivainio@gmail.com>
1495 2006-06-07 Ville Vainio <vivainio@gmail.com>
1492
1496
1493 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1497 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1494 running the batch files instead of leaving the session open.
1498 running the batch files instead of leaving the session open.
1495
1499
1496 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1500 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1497
1501
1498 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1502 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1499 the original fix was incomplete. Patch submitted by W. Maier.
1503 the original fix was incomplete. Patch submitted by W. Maier.
1500
1504
1501 2006-06-07 Ville Vainio <vivainio@gmail.com>
1505 2006-06-07 Ville Vainio <vivainio@gmail.com>
1502
1506
1503 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1507 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1504 Confirmation prompts can be supressed by 'quiet' option.
1508 Confirmation prompts can be supressed by 'quiet' option.
1505 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1509 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1506
1510
1507 2006-06-06 *** Released version 0.7.2
1511 2006-06-06 *** Released version 0.7.2
1508
1512
1509 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1513 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1510
1514
1511 * IPython/Release.py (version): Made 0.7.2 final for release.
1515 * IPython/Release.py (version): Made 0.7.2 final for release.
1512 Repo tagged and release cut.
1516 Repo tagged and release cut.
1513
1517
1514 2006-06-05 Ville Vainio <vivainio@gmail.com>
1518 2006-06-05 Ville Vainio <vivainio@gmail.com>
1515
1519
1516 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1520 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1517 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1521 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1518
1522
1519 * upgrade_dir.py: try import 'path' module a bit harder
1523 * upgrade_dir.py: try import 'path' module a bit harder
1520 (for %upgrade)
1524 (for %upgrade)
1521
1525
1522 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1526 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1523
1527
1524 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1528 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1525 instead of looping 20 times.
1529 instead of looping 20 times.
1526
1530
1527 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1531 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1528 correctly at initialization time. Bug reported by Krishna Mohan
1532 correctly at initialization time. Bug reported by Krishna Mohan
1529 Gundu <gkmohan-AT-gmail.com> on the user list.
1533 Gundu <gkmohan-AT-gmail.com> on the user list.
1530
1534
1531 * IPython/Release.py (version): Mark 0.7.2 version to start
1535 * IPython/Release.py (version): Mark 0.7.2 version to start
1532 testing for release on 06/06.
1536 testing for release on 06/06.
1533
1537
1534 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1538 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1535
1539
1536 * scripts/irunner: thin script interface so users don't have to
1540 * scripts/irunner: thin script interface so users don't have to
1537 find the module and call it as an executable, since modules rarely
1541 find the module and call it as an executable, since modules rarely
1538 live in people's PATH.
1542 live in people's PATH.
1539
1543
1540 * IPython/irunner.py (InteractiveRunner.__init__): added
1544 * IPython/irunner.py (InteractiveRunner.__init__): added
1541 delaybeforesend attribute to control delays with newer versions of
1545 delaybeforesend attribute to control delays with newer versions of
1542 pexpect. Thanks to detailed help from pexpect's author, Noah
1546 pexpect. Thanks to detailed help from pexpect's author, Noah
1543 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1547 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1544 correctly (it works in NoColor mode).
1548 correctly (it works in NoColor mode).
1545
1549
1546 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1550 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1547 SAGE list, from improper log() calls.
1551 SAGE list, from improper log() calls.
1548
1552
1549 2006-05-31 Ville Vainio <vivainio@gmail.com>
1553 2006-05-31 Ville Vainio <vivainio@gmail.com>
1550
1554
1551 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1555 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1552 with args in parens to work correctly with dirs that have spaces.
1556 with args in parens to work correctly with dirs that have spaces.
1553
1557
1554 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1558 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1555
1559
1556 * IPython/Logger.py (Logger.logstart): add option to log raw input
1560 * IPython/Logger.py (Logger.logstart): add option to log raw input
1557 instead of the processed one. A -r flag was added to the
1561 instead of the processed one. A -r flag was added to the
1558 %logstart magic used for controlling logging.
1562 %logstart magic used for controlling logging.
1559
1563
1560 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1564 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1561
1565
1562 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1566 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1563 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1567 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1564 recognize the option. After a bug report by Will Maier. This
1568 recognize the option. After a bug report by Will Maier. This
1565 closes #64 (will do it after confirmation from W. Maier).
1569 closes #64 (will do it after confirmation from W. Maier).
1566
1570
1567 * IPython/irunner.py: New module to run scripts as if manually
1571 * IPython/irunner.py: New module to run scripts as if manually
1568 typed into an interactive environment, based on pexpect. After a
1572 typed into an interactive environment, based on pexpect. After a
1569 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1573 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1570 ipython-user list. Simple unittests in the tests/ directory.
1574 ipython-user list. Simple unittests in the tests/ directory.
1571
1575
1572 * tools/release: add Will Maier, OpenBSD port maintainer, to
1576 * tools/release: add Will Maier, OpenBSD port maintainer, to
1573 recepients list. We are now officially part of the OpenBSD ports:
1577 recepients list. We are now officially part of the OpenBSD ports:
1574 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1578 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1575 work.
1579 work.
1576
1580
1577 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1581 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1578
1582
1579 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1583 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1580 so that it doesn't break tkinter apps.
1584 so that it doesn't break tkinter apps.
1581
1585
1582 * IPython/iplib.py (_prefilter): fix bug where aliases would
1586 * IPython/iplib.py (_prefilter): fix bug where aliases would
1583 shadow variables when autocall was fully off. Reported by SAGE
1587 shadow variables when autocall was fully off. Reported by SAGE
1584 author William Stein.
1588 author William Stein.
1585
1589
1586 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1590 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1587 at what detail level strings are computed when foo? is requested.
1591 at what detail level strings are computed when foo? is requested.
1588 This allows users to ask for example that the string form of an
1592 This allows users to ask for example that the string form of an
1589 object is only computed when foo?? is called, or even never, by
1593 object is only computed when foo?? is called, or even never, by
1590 setting the object_info_string_level >= 2 in the configuration
1594 setting the object_info_string_level >= 2 in the configuration
1591 file. This new option has been added and documented. After a
1595 file. This new option has been added and documented. After a
1592 request by SAGE to be able to control the printing of very large
1596 request by SAGE to be able to control the printing of very large
1593 objects more easily.
1597 objects more easily.
1594
1598
1595 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1599 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1596
1600
1597 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1601 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1598 from sys.argv, to be 100% consistent with how Python itself works
1602 from sys.argv, to be 100% consistent with how Python itself works
1599 (as seen for example with python -i file.py). After a bug report
1603 (as seen for example with python -i file.py). After a bug report
1600 by Jeffrey Collins.
1604 by Jeffrey Collins.
1601
1605
1602 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1606 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1603 nasty bug which was preventing custom namespaces with -pylab,
1607 nasty bug which was preventing custom namespaces with -pylab,
1604 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1608 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1605 compatibility (long gone from mpl).
1609 compatibility (long gone from mpl).
1606
1610
1607 * IPython/ipapi.py (make_session): name change: create->make. We
1611 * IPython/ipapi.py (make_session): name change: create->make. We
1608 use make in other places (ipmaker,...), it's shorter and easier to
1612 use make in other places (ipmaker,...), it's shorter and easier to
1609 type and say, etc. I'm trying to clean things before 0.7.2 so
1613 type and say, etc. I'm trying to clean things before 0.7.2 so
1610 that I can keep things stable wrt to ipapi in the chainsaw branch.
1614 that I can keep things stable wrt to ipapi in the chainsaw branch.
1611
1615
1612 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1616 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1613 python-mode recognizes our debugger mode. Add support for
1617 python-mode recognizes our debugger mode. Add support for
1614 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1618 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1615 <m.liu.jin-AT-gmail.com> originally written by
1619 <m.liu.jin-AT-gmail.com> originally written by
1616 doxgen-AT-newsmth.net (with minor modifications for xemacs
1620 doxgen-AT-newsmth.net (with minor modifications for xemacs
1617 compatibility)
1621 compatibility)
1618
1622
1619 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1623 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1620 tracebacks when walking the stack so that the stack tracking system
1624 tracebacks when walking the stack so that the stack tracking system
1621 in emacs' python-mode can identify the frames correctly.
1625 in emacs' python-mode can identify the frames correctly.
1622
1626
1623 * IPython/ipmaker.py (make_IPython): make the internal (and
1627 * IPython/ipmaker.py (make_IPython): make the internal (and
1624 default config) autoedit_syntax value false by default. Too many
1628 default config) autoedit_syntax value false by default. Too many
1625 users have complained to me (both on and off-list) about problems
1629 users have complained to me (both on and off-list) about problems
1626 with this option being on by default, so I'm making it default to
1630 with this option being on by default, so I'm making it default to
1627 off. It can still be enabled by anyone via the usual mechanisms.
1631 off. It can still be enabled by anyone via the usual mechanisms.
1628
1632
1629 * IPython/completer.py (Completer.attr_matches): add support for
1633 * IPython/completer.py (Completer.attr_matches): add support for
1630 PyCrust-style _getAttributeNames magic method. Patch contributed
1634 PyCrust-style _getAttributeNames magic method. Patch contributed
1631 by <mscott-AT-goldenspud.com>. Closes #50.
1635 by <mscott-AT-goldenspud.com>. Closes #50.
1632
1636
1633 * IPython/iplib.py (InteractiveShell.__init__): remove the
1637 * IPython/iplib.py (InteractiveShell.__init__): remove the
1634 deletion of exit/quit from __builtin__, which can break
1638 deletion of exit/quit from __builtin__, which can break
1635 third-party tools like the Zope debugging console. The
1639 third-party tools like the Zope debugging console. The
1636 %exit/%quit magics remain. In general, it's probably a good idea
1640 %exit/%quit magics remain. In general, it's probably a good idea
1637 not to delete anything from __builtin__, since we never know what
1641 not to delete anything from __builtin__, since we never know what
1638 that will break. In any case, python now (for 2.5) will support
1642 that will break. In any case, python now (for 2.5) will support
1639 'real' exit/quit, so this issue is moot. Closes #55.
1643 'real' exit/quit, so this issue is moot. Closes #55.
1640
1644
1641 * IPython/genutils.py (with_obj): rename the 'with' function to
1645 * IPython/genutils.py (with_obj): rename the 'with' function to
1642 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1646 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1643 becomes a language keyword. Closes #53.
1647 becomes a language keyword. Closes #53.
1644
1648
1645 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1649 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1646 __file__ attribute to this so it fools more things into thinking
1650 __file__ attribute to this so it fools more things into thinking
1647 it is a real module. Closes #59.
1651 it is a real module. Closes #59.
1648
1652
1649 * IPython/Magic.py (magic_edit): add -n option to open the editor
1653 * IPython/Magic.py (magic_edit): add -n option to open the editor
1650 at a specific line number. After a patch by Stefan van der Walt.
1654 at a specific line number. After a patch by Stefan van der Walt.
1651
1655
1652 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1656 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1653
1657
1654 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1658 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1655 reason the file could not be opened. After automatic crash
1659 reason the file could not be opened. After automatic crash
1656 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1660 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1657 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1661 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1658 (_should_recompile): Don't fire editor if using %bg, since there
1662 (_should_recompile): Don't fire editor if using %bg, since there
1659 is no file in the first place. From the same report as above.
1663 is no file in the first place. From the same report as above.
1660 (raw_input): protect against faulty third-party prefilters. After
1664 (raw_input): protect against faulty third-party prefilters. After
1661 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1665 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1662 while running under SAGE.
1666 while running under SAGE.
1663
1667
1664 2006-05-23 Ville Vainio <vivainio@gmail.com>
1668 2006-05-23 Ville Vainio <vivainio@gmail.com>
1665
1669
1666 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1670 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1667 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1671 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1668 now returns None (again), unless dummy is specifically allowed by
1672 now returns None (again), unless dummy is specifically allowed by
1669 ipapi.get(allow_dummy=True).
1673 ipapi.get(allow_dummy=True).
1670
1674
1671 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1675 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1672
1676
1673 * IPython: remove all 2.2-compatibility objects and hacks from
1677 * IPython: remove all 2.2-compatibility objects and hacks from
1674 everywhere, since we only support 2.3 at this point. Docs
1678 everywhere, since we only support 2.3 at this point. Docs
1675 updated.
1679 updated.
1676
1680
1677 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1681 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1678 Anything requiring extra validation can be turned into a Python
1682 Anything requiring extra validation can be turned into a Python
1679 property in the future. I used a property for the db one b/c
1683 property in the future. I used a property for the db one b/c
1680 there was a nasty circularity problem with the initialization
1684 there was a nasty circularity problem with the initialization
1681 order, which right now I don't have time to clean up.
1685 order, which right now I don't have time to clean up.
1682
1686
1683 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1687 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1684 another locking bug reported by Jorgen. I'm not 100% sure though,
1688 another locking bug reported by Jorgen. I'm not 100% sure though,
1685 so more testing is needed...
1689 so more testing is needed...
1686
1690
1687 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1691 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1692
1689 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1693 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1690 local variables from any routine in user code (typically executed
1694 local variables from any routine in user code (typically executed
1691 with %run) directly into the interactive namespace. Very useful
1695 with %run) directly into the interactive namespace. Very useful
1692 when doing complex debugging.
1696 when doing complex debugging.
1693 (IPythonNotRunning): Changed the default None object to a dummy
1697 (IPythonNotRunning): Changed the default None object to a dummy
1694 whose attributes can be queried as well as called without
1698 whose attributes can be queried as well as called without
1695 exploding, to ease writing code which works transparently both in
1699 exploding, to ease writing code which works transparently both in
1696 and out of ipython and uses some of this API.
1700 and out of ipython and uses some of this API.
1697
1701
1698 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1702 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1699
1703
1700 * IPython/hooks.py (result_display): Fix the fact that our display
1704 * IPython/hooks.py (result_display): Fix the fact that our display
1701 hook was using str() instead of repr(), as the default python
1705 hook was using str() instead of repr(), as the default python
1702 console does. This had gone unnoticed b/c it only happened if
1706 console does. This had gone unnoticed b/c it only happened if
1703 %Pprint was off, but the inconsistency was there.
1707 %Pprint was off, but the inconsistency was there.
1704
1708
1705 2006-05-15 Ville Vainio <vivainio@gmail.com>
1709 2006-05-15 Ville Vainio <vivainio@gmail.com>
1706
1710
1707 * Oinspect.py: Only show docstring for nonexisting/binary files
1711 * Oinspect.py: Only show docstring for nonexisting/binary files
1708 when doing object??, closing ticket #62
1712 when doing object??, closing ticket #62
1709
1713
1710 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1714 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1711
1715
1712 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1716 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1713 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1717 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1714 was being released in a routine which hadn't checked if it had
1718 was being released in a routine which hadn't checked if it had
1715 been the one to acquire it.
1719 been the one to acquire it.
1716
1720
1717 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1721 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1718
1722
1719 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1723 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1720
1724
1721 2006-04-11 Ville Vainio <vivainio@gmail.com>
1725 2006-04-11 Ville Vainio <vivainio@gmail.com>
1722
1726
1723 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1727 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1724 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1728 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1725 prefilters, allowing stuff like magics and aliases in the file.
1729 prefilters, allowing stuff like magics and aliases in the file.
1726
1730
1727 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1731 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1728 added. Supported now are "%clear in" and "%clear out" (clear input and
1732 added. Supported now are "%clear in" and "%clear out" (clear input and
1729 output history, respectively). Also fixed CachedOutput.flush to
1733 output history, respectively). Also fixed CachedOutput.flush to
1730 properly flush the output cache.
1734 properly flush the output cache.
1731
1735
1732 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1736 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1733 half-success (and fail explicitly).
1737 half-success (and fail explicitly).
1734
1738
1735 2006-03-28 Ville Vainio <vivainio@gmail.com>
1739 2006-03-28 Ville Vainio <vivainio@gmail.com>
1736
1740
1737 * iplib.py: Fix quoting of aliases so that only argless ones
1741 * iplib.py: Fix quoting of aliases so that only argless ones
1738 are quoted
1742 are quoted
1739
1743
1740 2006-03-28 Ville Vainio <vivainio@gmail.com>
1744 2006-03-28 Ville Vainio <vivainio@gmail.com>
1741
1745
1742 * iplib.py: Quote aliases with spaces in the name.
1746 * iplib.py: Quote aliases with spaces in the name.
1743 "c:\program files\blah\bin" is now legal alias target.
1747 "c:\program files\blah\bin" is now legal alias target.
1744
1748
1745 * ext_rehashdir.py: Space no longer allowed as arg
1749 * ext_rehashdir.py: Space no longer allowed as arg
1746 separator, since space is legal in path names.
1750 separator, since space is legal in path names.
1747
1751
1748 2006-03-16 Ville Vainio <vivainio@gmail.com>
1752 2006-03-16 Ville Vainio <vivainio@gmail.com>
1749
1753
1750 * upgrade_dir.py: Take path.py from Extensions, correcting
1754 * upgrade_dir.py: Take path.py from Extensions, correcting
1751 %upgrade magic
1755 %upgrade magic
1752
1756
1753 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1757 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1754
1758
1755 * hooks.py: Only enclose editor binary in quotes if legal and
1759 * hooks.py: Only enclose editor binary in quotes if legal and
1756 necessary (space in the name, and is an existing file). Fixes a bug
1760 necessary (space in the name, and is an existing file). Fixes a bug
1757 reported by Zachary Pincus.
1761 reported by Zachary Pincus.
1758
1762
1759 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1763 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1760
1764
1761 * Manual: thanks to a tip on proper color handling for Emacs, by
1765 * Manual: thanks to a tip on proper color handling for Emacs, by
1762 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1766 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1763
1767
1764 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1768 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1765 by applying the provided patch. Thanks to Liu Jin
1769 by applying the provided patch. Thanks to Liu Jin
1766 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1770 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1767 XEmacs/Linux, I'm trusting the submitter that it actually helps
1771 XEmacs/Linux, I'm trusting the submitter that it actually helps
1768 under win32/GNU Emacs. Will revisit if any problems are reported.
1772 under win32/GNU Emacs. Will revisit if any problems are reported.
1769
1773
1770 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1774 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1771
1775
1772 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1776 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1773 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1777 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1774
1778
1775 2006-03-12 Ville Vainio <vivainio@gmail.com>
1779 2006-03-12 Ville Vainio <vivainio@gmail.com>
1776
1780
1777 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1781 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1778 Torsten Marek.
1782 Torsten Marek.
1779
1783
1780 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1784 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1781
1785
1782 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1786 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1783 line ranges works again.
1787 line ranges works again.
1784
1788
1785 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1789 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1786
1790
1787 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1791 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1788 and friends, after a discussion with Zach Pincus on ipython-user.
1792 and friends, after a discussion with Zach Pincus on ipython-user.
1789 I'm not 100% sure, but after thinking about it quite a bit, it may
1793 I'm not 100% sure, but after thinking about it quite a bit, it may
1790 be OK. Testing with the multithreaded shells didn't reveal any
1794 be OK. Testing with the multithreaded shells didn't reveal any
1791 problems, but let's keep an eye out.
1795 problems, but let's keep an eye out.
1792
1796
1793 In the process, I fixed a few things which were calling
1797 In the process, I fixed a few things which were calling
1794 self.InteractiveTB() directly (like safe_execfile), which is a
1798 self.InteractiveTB() directly (like safe_execfile), which is a
1795 mistake: ALL exception reporting should be done by calling
1799 mistake: ALL exception reporting should be done by calling
1796 self.showtraceback(), which handles state and tab-completion and
1800 self.showtraceback(), which handles state and tab-completion and
1797 more.
1801 more.
1798
1802
1799 2006-03-01 Ville Vainio <vivainio@gmail.com>
1803 2006-03-01 Ville Vainio <vivainio@gmail.com>
1800
1804
1801 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1805 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1802 To use, do "from ipipe import *".
1806 To use, do "from ipipe import *".
1803
1807
1804 2006-02-24 Ville Vainio <vivainio@gmail.com>
1808 2006-02-24 Ville Vainio <vivainio@gmail.com>
1805
1809
1806 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1810 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1807 "cleanly" and safely than the older upgrade mechanism.
1811 "cleanly" and safely than the older upgrade mechanism.
1808
1812
1809 2006-02-21 Ville Vainio <vivainio@gmail.com>
1813 2006-02-21 Ville Vainio <vivainio@gmail.com>
1810
1814
1811 * Magic.py: %save works again.
1815 * Magic.py: %save works again.
1812
1816
1813 2006-02-15 Ville Vainio <vivainio@gmail.com>
1817 2006-02-15 Ville Vainio <vivainio@gmail.com>
1814
1818
1815 * Magic.py: %Pprint works again
1819 * Magic.py: %Pprint works again
1816
1820
1817 * Extensions/ipy_sane_defaults.py: Provide everything provided
1821 * Extensions/ipy_sane_defaults.py: Provide everything provided
1818 in default ipythonrc, to make it possible to have a completely empty
1822 in default ipythonrc, to make it possible to have a completely empty
1819 ipythonrc (and thus completely rc-file free configuration)
1823 ipythonrc (and thus completely rc-file free configuration)
1820
1824
1821 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1825 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1822
1826
1823 * IPython/hooks.py (editor): quote the call to the editor command,
1827 * IPython/hooks.py (editor): quote the call to the editor command,
1824 to allow commands with spaces in them. Problem noted by watching
1828 to allow commands with spaces in them. Problem noted by watching
1825 Ian Oswald's video about textpad under win32 at
1829 Ian Oswald's video about textpad under win32 at
1826 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1830 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1827
1831
1828 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1832 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1829 describing magics (we haven't used @ for a loong time).
1833 describing magics (we haven't used @ for a loong time).
1830
1834
1831 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1835 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1832 contributed by marienz to close
1836 contributed by marienz to close
1833 http://www.scipy.net/roundup/ipython/issue53.
1837 http://www.scipy.net/roundup/ipython/issue53.
1834
1838
1835 2006-02-10 Ville Vainio <vivainio@gmail.com>
1839 2006-02-10 Ville Vainio <vivainio@gmail.com>
1836
1840
1837 * genutils.py: getoutput now works in win32 too
1841 * genutils.py: getoutput now works in win32 too
1838
1842
1839 * completer.py: alias and magic completion only invoked
1843 * completer.py: alias and magic completion only invoked
1840 at the first "item" in the line, to avoid "cd %store"
1844 at the first "item" in the line, to avoid "cd %store"
1841 nonsense.
1845 nonsense.
1842
1846
1843 2006-02-09 Ville Vainio <vivainio@gmail.com>
1847 2006-02-09 Ville Vainio <vivainio@gmail.com>
1844
1848
1845 * test/*: Added a unit testing framework (finally).
1849 * test/*: Added a unit testing framework (finally).
1846 '%run runtests.py' to run test_*.
1850 '%run runtests.py' to run test_*.
1847
1851
1848 * ipapi.py: Exposed runlines and set_custom_exc
1852 * ipapi.py: Exposed runlines and set_custom_exc
1849
1853
1850 2006-02-07 Ville Vainio <vivainio@gmail.com>
1854 2006-02-07 Ville Vainio <vivainio@gmail.com>
1851
1855
1852 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1856 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1853 instead use "f(1 2)" as before.
1857 instead use "f(1 2)" as before.
1854
1858
1855 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1859 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1856
1860
1857 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1861 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1858 facilities, for demos processed by the IPython input filter
1862 facilities, for demos processed by the IPython input filter
1859 (IPythonDemo), and for running a script one-line-at-a-time as a
1863 (IPythonDemo), and for running a script one-line-at-a-time as a
1860 demo, both for pure Python (LineDemo) and for IPython-processed
1864 demo, both for pure Python (LineDemo) and for IPython-processed
1861 input (IPythonLineDemo). After a request by Dave Kohel, from the
1865 input (IPythonLineDemo). After a request by Dave Kohel, from the
1862 SAGE team.
1866 SAGE team.
1863 (Demo.edit): added an edit() method to the demo objects, to edit
1867 (Demo.edit): added an edit() method to the demo objects, to edit
1864 the in-memory copy of the last executed block.
1868 the in-memory copy of the last executed block.
1865
1869
1866 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1870 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1867 processing to %edit, %macro and %save. These commands can now be
1871 processing to %edit, %macro and %save. These commands can now be
1868 invoked on the unprocessed input as it was typed by the user
1872 invoked on the unprocessed input as it was typed by the user
1869 (without any prefilters applied). After requests by the SAGE team
1873 (without any prefilters applied). After requests by the SAGE team
1870 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1874 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1871
1875
1872 2006-02-01 Ville Vainio <vivainio@gmail.com>
1876 2006-02-01 Ville Vainio <vivainio@gmail.com>
1873
1877
1874 * setup.py, eggsetup.py: easy_install ipython==dev works
1878 * setup.py, eggsetup.py: easy_install ipython==dev works
1875 correctly now (on Linux)
1879 correctly now (on Linux)
1876
1880
1877 * ipy_user_conf,ipmaker: user config changes, removed spurious
1881 * ipy_user_conf,ipmaker: user config changes, removed spurious
1878 warnings
1882 warnings
1879
1883
1880 * iplib: if rc.banner is string, use it as is.
1884 * iplib: if rc.banner is string, use it as is.
1881
1885
1882 * Magic: %pycat accepts a string argument and pages it's contents.
1886 * Magic: %pycat accepts a string argument and pages it's contents.
1883
1887
1884
1888
1885 2006-01-30 Ville Vainio <vivainio@gmail.com>
1889 2006-01-30 Ville Vainio <vivainio@gmail.com>
1886
1890
1887 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1891 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1888 Now %store and bookmarks work through PickleShare, meaning that
1892 Now %store and bookmarks work through PickleShare, meaning that
1889 concurrent access is possible and all ipython sessions see the
1893 concurrent access is possible and all ipython sessions see the
1890 same database situation all the time, instead of snapshot of
1894 same database situation all the time, instead of snapshot of
1891 the situation when the session was started. Hence, %bookmark
1895 the situation when the session was started. Hence, %bookmark
1892 results are immediately accessible from othes sessions. The database
1896 results are immediately accessible from othes sessions. The database
1893 is also available for use by user extensions. See:
1897 is also available for use by user extensions. See:
1894 http://www.python.org/pypi/pickleshare
1898 http://www.python.org/pypi/pickleshare
1895
1899
1896 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1900 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1897
1901
1898 * aliases can now be %store'd
1902 * aliases can now be %store'd
1899
1903
1900 * path.py moved to Extensions so that pickleshare does not need
1904 * path.py moved to Extensions so that pickleshare does not need
1901 IPython-specific import. Extensions added to pythonpath right
1905 IPython-specific import. Extensions added to pythonpath right
1902 at __init__.
1906 at __init__.
1903
1907
1904 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1908 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1905 called with _ip.system and the pre-transformed command string.
1909 called with _ip.system and the pre-transformed command string.
1906
1910
1907 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1911 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1908
1912
1909 * IPython/iplib.py (interact): Fix that we were not catching
1913 * IPython/iplib.py (interact): Fix that we were not catching
1910 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1914 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1911 logic here had to change, but it's fixed now.
1915 logic here had to change, but it's fixed now.
1912
1916
1913 2006-01-29 Ville Vainio <vivainio@gmail.com>
1917 2006-01-29 Ville Vainio <vivainio@gmail.com>
1914
1918
1915 * iplib.py: Try to import pyreadline on Windows.
1919 * iplib.py: Try to import pyreadline on Windows.
1916
1920
1917 2006-01-27 Ville Vainio <vivainio@gmail.com>
1921 2006-01-27 Ville Vainio <vivainio@gmail.com>
1918
1922
1919 * iplib.py: Expose ipapi as _ip in builtin namespace.
1923 * iplib.py: Expose ipapi as _ip in builtin namespace.
1920 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1924 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1921 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1925 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1922 syntax now produce _ip.* variant of the commands.
1926 syntax now produce _ip.* variant of the commands.
1923
1927
1924 * "_ip.options().autoedit_syntax = 2" automatically throws
1928 * "_ip.options().autoedit_syntax = 2" automatically throws
1925 user to editor for syntax error correction without prompting.
1929 user to editor for syntax error correction without prompting.
1926
1930
1927 2006-01-27 Ville Vainio <vivainio@gmail.com>
1931 2006-01-27 Ville Vainio <vivainio@gmail.com>
1928
1932
1929 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1933 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1930 'ipython' at argv[0]) executed through command line.
1934 'ipython' at argv[0]) executed through command line.
1931 NOTE: this DEPRECATES calling ipython with multiple scripts
1935 NOTE: this DEPRECATES calling ipython with multiple scripts
1932 ("ipython a.py b.py c.py")
1936 ("ipython a.py b.py c.py")
1933
1937
1934 * iplib.py, hooks.py: Added configurable input prefilter,
1938 * iplib.py, hooks.py: Added configurable input prefilter,
1935 named 'input_prefilter'. See ext_rescapture.py for example
1939 named 'input_prefilter'. See ext_rescapture.py for example
1936 usage.
1940 usage.
1937
1941
1938 * ext_rescapture.py, Magic.py: Better system command output capture
1942 * ext_rescapture.py, Magic.py: Better system command output capture
1939 through 'var = !ls' (deprecates user-visible %sc). Same notation
1943 through 'var = !ls' (deprecates user-visible %sc). Same notation
1940 applies for magics, 'var = %alias' assigns alias list to var.
1944 applies for magics, 'var = %alias' assigns alias list to var.
1941
1945
1942 * ipapi.py: added meta() for accessing extension-usable data store.
1946 * ipapi.py: added meta() for accessing extension-usable data store.
1943
1947
1944 * iplib.py: added InteractiveShell.getapi(). New magics should be
1948 * iplib.py: added InteractiveShell.getapi(). New magics should be
1945 written doing self.getapi() instead of using the shell directly.
1949 written doing self.getapi() instead of using the shell directly.
1946
1950
1947 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1951 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1948 %store foo >> ~/myfoo.txt to store variables to files (in clean
1952 %store foo >> ~/myfoo.txt to store variables to files (in clean
1949 textual form, not a restorable pickle).
1953 textual form, not a restorable pickle).
1950
1954
1951 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1955 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1952
1956
1953 * usage.py, Magic.py: added %quickref
1957 * usage.py, Magic.py: added %quickref
1954
1958
1955 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1959 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1956
1960
1957 * GetoptErrors when invoking magics etc. with wrong args
1961 * GetoptErrors when invoking magics etc. with wrong args
1958 are now more helpful:
1962 are now more helpful:
1959 GetoptError: option -l not recognized (allowed: "qb" )
1963 GetoptError: option -l not recognized (allowed: "qb" )
1960
1964
1961 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1965 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1962
1966
1963 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1967 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1964 computationally intensive blocks don't appear to stall the demo.
1968 computationally intensive blocks don't appear to stall the demo.
1965
1969
1966 2006-01-24 Ville Vainio <vivainio@gmail.com>
1970 2006-01-24 Ville Vainio <vivainio@gmail.com>
1967
1971
1968 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1972 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1969 value to manipulate resulting history entry.
1973 value to manipulate resulting history entry.
1970
1974
1971 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1975 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1972 to instance methods of IPApi class, to make extending an embedded
1976 to instance methods of IPApi class, to make extending an embedded
1973 IPython feasible. See ext_rehashdir.py for example usage.
1977 IPython feasible. See ext_rehashdir.py for example usage.
1974
1978
1975 * Merged 1071-1076 from branches/0.7.1
1979 * Merged 1071-1076 from branches/0.7.1
1976
1980
1977
1981
1978 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1982 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1979
1983
1980 * tools/release (daystamp): Fix build tools to use the new
1984 * tools/release (daystamp): Fix build tools to use the new
1981 eggsetup.py script to build lightweight eggs.
1985 eggsetup.py script to build lightweight eggs.
1982
1986
1983 * Applied changesets 1062 and 1064 before 0.7.1 release.
1987 * Applied changesets 1062 and 1064 before 0.7.1 release.
1984
1988
1985 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1989 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1986 see the raw input history (without conversions like %ls ->
1990 see the raw input history (without conversions like %ls ->
1987 ipmagic("ls")). After a request from W. Stein, SAGE
1991 ipmagic("ls")). After a request from W. Stein, SAGE
1988 (http://modular.ucsd.edu/sage) developer. This information is
1992 (http://modular.ucsd.edu/sage) developer. This information is
1989 stored in the input_hist_raw attribute of the IPython instance, so
1993 stored in the input_hist_raw attribute of the IPython instance, so
1990 developers can access it if needed (it's an InputList instance).
1994 developers can access it if needed (it's an InputList instance).
1991
1995
1992 * Versionstring = 0.7.2.svn
1996 * Versionstring = 0.7.2.svn
1993
1997
1994 * eggsetup.py: A separate script for constructing eggs, creates
1998 * eggsetup.py: A separate script for constructing eggs, creates
1995 proper launch scripts even on Windows (an .exe file in
1999 proper launch scripts even on Windows (an .exe file in
1996 \python24\scripts).
2000 \python24\scripts).
1997
2001
1998 * ipapi.py: launch_new_instance, launch entry point needed for the
2002 * ipapi.py: launch_new_instance, launch entry point needed for the
1999 egg.
2003 egg.
2000
2004
2001 2006-01-23 Ville Vainio <vivainio@gmail.com>
2005 2006-01-23 Ville Vainio <vivainio@gmail.com>
2002
2006
2003 * Added %cpaste magic for pasting python code
2007 * Added %cpaste magic for pasting python code
2004
2008
2005 2006-01-22 Ville Vainio <vivainio@gmail.com>
2009 2006-01-22 Ville Vainio <vivainio@gmail.com>
2006
2010
2007 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2011 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2008
2012
2009 * Versionstring = 0.7.2.svn
2013 * Versionstring = 0.7.2.svn
2010
2014
2011 * eggsetup.py: A separate script for constructing eggs, creates
2015 * eggsetup.py: A separate script for constructing eggs, creates
2012 proper launch scripts even on Windows (an .exe file in
2016 proper launch scripts even on Windows (an .exe file in
2013 \python24\scripts).
2017 \python24\scripts).
2014
2018
2015 * ipapi.py: launch_new_instance, launch entry point needed for the
2019 * ipapi.py: launch_new_instance, launch entry point needed for the
2016 egg.
2020 egg.
2017
2021
2018 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2022 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2019
2023
2020 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2024 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2021 %pfile foo would print the file for foo even if it was a binary.
2025 %pfile foo would print the file for foo even if it was a binary.
2022 Now, extensions '.so' and '.dll' are skipped.
2026 Now, extensions '.so' and '.dll' are skipped.
2023
2027
2024 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2028 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2025 bug, where macros would fail in all threaded modes. I'm not 100%
2029 bug, where macros would fail in all threaded modes. I'm not 100%
2026 sure, so I'm going to put out an rc instead of making a release
2030 sure, so I'm going to put out an rc instead of making a release
2027 today, and wait for feedback for at least a few days.
2031 today, and wait for feedback for at least a few days.
2028
2032
2029 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2033 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2030 it...) the handling of pasting external code with autoindent on.
2034 it...) the handling of pasting external code with autoindent on.
2031 To get out of a multiline input, the rule will appear for most
2035 To get out of a multiline input, the rule will appear for most
2032 users unchanged: two blank lines or change the indent level
2036 users unchanged: two blank lines or change the indent level
2033 proposed by IPython. But there is a twist now: you can
2037 proposed by IPython. But there is a twist now: you can
2034 add/subtract only *one or two spaces*. If you add/subtract three
2038 add/subtract only *one or two spaces*. If you add/subtract three
2035 or more (unless you completely delete the line), IPython will
2039 or more (unless you completely delete the line), IPython will
2036 accept that line, and you'll need to enter a second one of pure
2040 accept that line, and you'll need to enter a second one of pure
2037 whitespace. I know it sounds complicated, but I can't find a
2041 whitespace. I know it sounds complicated, but I can't find a
2038 different solution that covers all the cases, with the right
2042 different solution that covers all the cases, with the right
2039 heuristics. Hopefully in actual use, nobody will really notice
2043 heuristics. Hopefully in actual use, nobody will really notice
2040 all these strange rules and things will 'just work'.
2044 all these strange rules and things will 'just work'.
2041
2045
2042 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2046 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2043
2047
2044 * IPython/iplib.py (interact): catch exceptions which can be
2048 * IPython/iplib.py (interact): catch exceptions which can be
2045 triggered asynchronously by signal handlers. Thanks to an
2049 triggered asynchronously by signal handlers. Thanks to an
2046 automatic crash report, submitted by Colin Kingsley
2050 automatic crash report, submitted by Colin Kingsley
2047 <tercel-AT-gentoo.org>.
2051 <tercel-AT-gentoo.org>.
2048
2052
2049 2006-01-20 Ville Vainio <vivainio@gmail.com>
2053 2006-01-20 Ville Vainio <vivainio@gmail.com>
2050
2054
2051 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2055 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2052 (%rehashdir, very useful, try it out) of how to extend ipython
2056 (%rehashdir, very useful, try it out) of how to extend ipython
2053 with new magics. Also added Extensions dir to pythonpath to make
2057 with new magics. Also added Extensions dir to pythonpath to make
2054 importing extensions easy.
2058 importing extensions easy.
2055
2059
2056 * %store now complains when trying to store interactively declared
2060 * %store now complains when trying to store interactively declared
2057 classes / instances of those classes.
2061 classes / instances of those classes.
2058
2062
2059 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2063 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2060 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2064 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2061 if they exist, and ipy_user_conf.py with some defaults is created for
2065 if they exist, and ipy_user_conf.py with some defaults is created for
2062 the user.
2066 the user.
2063
2067
2064 * Startup rehashing done by the config file, not InterpreterExec.
2068 * Startup rehashing done by the config file, not InterpreterExec.
2065 This means system commands are available even without selecting the
2069 This means system commands are available even without selecting the
2066 pysh profile. It's the sensible default after all.
2070 pysh profile. It's the sensible default after all.
2067
2071
2068 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2072 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2069
2073
2070 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2074 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2071 multiline code with autoindent on working. But I am really not
2075 multiline code with autoindent on working. But I am really not
2072 sure, so this needs more testing. Will commit a debug-enabled
2076 sure, so this needs more testing. Will commit a debug-enabled
2073 version for now, while I test it some more, so that Ville and
2077 version for now, while I test it some more, so that Ville and
2074 others may also catch any problems. Also made
2078 others may also catch any problems. Also made
2075 self.indent_current_str() a method, to ensure that there's no
2079 self.indent_current_str() a method, to ensure that there's no
2076 chance of the indent space count and the corresponding string
2080 chance of the indent space count and the corresponding string
2077 falling out of sync. All code needing the string should just call
2081 falling out of sync. All code needing the string should just call
2078 the method.
2082 the method.
2079
2083
2080 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2084 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2081
2085
2082 * IPython/Magic.py (magic_edit): fix check for when users don't
2086 * IPython/Magic.py (magic_edit): fix check for when users don't
2083 save their output files, the try/except was in the wrong section.
2087 save their output files, the try/except was in the wrong section.
2084
2088
2085 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2089 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2086
2090
2087 * IPython/Magic.py (magic_run): fix __file__ global missing from
2091 * IPython/Magic.py (magic_run): fix __file__ global missing from
2088 script's namespace when executed via %run. After a report by
2092 script's namespace when executed via %run. After a report by
2089 Vivian.
2093 Vivian.
2090
2094
2091 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2095 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2092 when using python 2.4. The parent constructor changed in 2.4, and
2096 when using python 2.4. The parent constructor changed in 2.4, and
2093 we need to track it directly (we can't call it, as it messes up
2097 we need to track it directly (we can't call it, as it messes up
2094 readline and tab-completion inside our pdb would stop working).
2098 readline and tab-completion inside our pdb would stop working).
2095 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2099 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2096
2100
2097 2006-01-16 Ville Vainio <vivainio@gmail.com>
2101 2006-01-16 Ville Vainio <vivainio@gmail.com>
2098
2102
2099 * Ipython/magic.py: Reverted back to old %edit functionality
2103 * Ipython/magic.py: Reverted back to old %edit functionality
2100 that returns file contents on exit.
2104 that returns file contents on exit.
2101
2105
2102 * IPython/path.py: Added Jason Orendorff's "path" module to
2106 * IPython/path.py: Added Jason Orendorff's "path" module to
2103 IPython tree, http://www.jorendorff.com/articles/python/path/.
2107 IPython tree, http://www.jorendorff.com/articles/python/path/.
2104 You can get path objects conveniently through %sc, and !!, e.g.:
2108 You can get path objects conveniently through %sc, and !!, e.g.:
2105 sc files=ls
2109 sc files=ls
2106 for p in files.paths: # or files.p
2110 for p in files.paths: # or files.p
2107 print p,p.mtime
2111 print p,p.mtime
2108
2112
2109 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2113 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2110 now work again without considering the exclusion regexp -
2114 now work again without considering the exclusion regexp -
2111 hence, things like ',foo my/path' turn to 'foo("my/path")'
2115 hence, things like ',foo my/path' turn to 'foo("my/path")'
2112 instead of syntax error.
2116 instead of syntax error.
2113
2117
2114
2118
2115 2006-01-14 Ville Vainio <vivainio@gmail.com>
2119 2006-01-14 Ville Vainio <vivainio@gmail.com>
2116
2120
2117 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2121 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2118 ipapi decorators for python 2.4 users, options() provides access to rc
2122 ipapi decorators for python 2.4 users, options() provides access to rc
2119 data.
2123 data.
2120
2124
2121 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2125 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2122 as path separators (even on Linux ;-). Space character after
2126 as path separators (even on Linux ;-). Space character after
2123 backslash (as yielded by tab completer) is still space;
2127 backslash (as yielded by tab completer) is still space;
2124 "%cd long\ name" works as expected.
2128 "%cd long\ name" works as expected.
2125
2129
2126 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2130 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2127 as "chain of command", with priority. API stays the same,
2131 as "chain of command", with priority. API stays the same,
2128 TryNext exception raised by a hook function signals that
2132 TryNext exception raised by a hook function signals that
2129 current hook failed and next hook should try handling it, as
2133 current hook failed and next hook should try handling it, as
2130 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2134 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2131 requested configurable display hook, which is now implemented.
2135 requested configurable display hook, which is now implemented.
2132
2136
2133 2006-01-13 Ville Vainio <vivainio@gmail.com>
2137 2006-01-13 Ville Vainio <vivainio@gmail.com>
2134
2138
2135 * IPython/platutils*.py: platform specific utility functions,
2139 * IPython/platutils*.py: platform specific utility functions,
2136 so far only set_term_title is implemented (change terminal
2140 so far only set_term_title is implemented (change terminal
2137 label in windowing systems). %cd now changes the title to
2141 label in windowing systems). %cd now changes the title to
2138 current dir.
2142 current dir.
2139
2143
2140 * IPython/Release.py: Added myself to "authors" list,
2144 * IPython/Release.py: Added myself to "authors" list,
2141 had to create new files.
2145 had to create new files.
2142
2146
2143 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2147 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2144 shell escape; not a known bug but had potential to be one in the
2148 shell escape; not a known bug but had potential to be one in the
2145 future.
2149 future.
2146
2150
2147 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2151 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2148 extension API for IPython! See the module for usage example. Fix
2152 extension API for IPython! See the module for usage example. Fix
2149 OInspect for docstring-less magic functions.
2153 OInspect for docstring-less magic functions.
2150
2154
2151
2155
2152 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2156 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2153
2157
2154 * IPython/iplib.py (raw_input): temporarily deactivate all
2158 * IPython/iplib.py (raw_input): temporarily deactivate all
2155 attempts at allowing pasting of code with autoindent on. It
2159 attempts at allowing pasting of code with autoindent on. It
2156 introduced bugs (reported by Prabhu) and I can't seem to find a
2160 introduced bugs (reported by Prabhu) and I can't seem to find a
2157 robust combination which works in all cases. Will have to revisit
2161 robust combination which works in all cases. Will have to revisit
2158 later.
2162 later.
2159
2163
2160 * IPython/genutils.py: remove isspace() function. We've dropped
2164 * IPython/genutils.py: remove isspace() function. We've dropped
2161 2.2 compatibility, so it's OK to use the string method.
2165 2.2 compatibility, so it's OK to use the string method.
2162
2166
2163 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2167 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2168
2165 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2169 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2166 matching what NOT to autocall on, to include all python binary
2170 matching what NOT to autocall on, to include all python binary
2167 operators (including things like 'and', 'or', 'is' and 'in').
2171 operators (including things like 'and', 'or', 'is' and 'in').
2168 Prompted by a bug report on 'foo & bar', but I realized we had
2172 Prompted by a bug report on 'foo & bar', but I realized we had
2169 many more potential bug cases with other operators. The regexp is
2173 many more potential bug cases with other operators. The regexp is
2170 self.re_exclude_auto, it's fairly commented.
2174 self.re_exclude_auto, it's fairly commented.
2171
2175
2172 2006-01-12 Ville Vainio <vivainio@gmail.com>
2176 2006-01-12 Ville Vainio <vivainio@gmail.com>
2173
2177
2174 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2178 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2175 Prettified and hardened string/backslash quoting with ipsystem(),
2179 Prettified and hardened string/backslash quoting with ipsystem(),
2176 ipalias() and ipmagic(). Now even \ characters are passed to
2180 ipalias() and ipmagic(). Now even \ characters are passed to
2177 %magics, !shell escapes and aliases exactly as they are in the
2181 %magics, !shell escapes and aliases exactly as they are in the
2178 ipython command line. Should improve backslash experience,
2182 ipython command line. Should improve backslash experience,
2179 particularly in Windows (path delimiter for some commands that
2183 particularly in Windows (path delimiter for some commands that
2180 won't understand '/'), but Unix benefits as well (regexps). %cd
2184 won't understand '/'), but Unix benefits as well (regexps). %cd
2181 magic still doesn't support backslash path delimiters, though. Also
2185 magic still doesn't support backslash path delimiters, though. Also
2182 deleted all pretense of supporting multiline command strings in
2186 deleted all pretense of supporting multiline command strings in
2183 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2187 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2184
2188
2185 * doc/build_doc_instructions.txt added. Documentation on how to
2189 * doc/build_doc_instructions.txt added. Documentation on how to
2186 use doc/update_manual.py, added yesterday. Both files contributed
2190 use doc/update_manual.py, added yesterday. Both files contributed
2187 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2191 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2188 doc/*.sh for deprecation at a later date.
2192 doc/*.sh for deprecation at a later date.
2189
2193
2190 * /ipython.py Added ipython.py to root directory for
2194 * /ipython.py Added ipython.py to root directory for
2191 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2195 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2192 ipython.py) and development convenience (no need to keep doing
2196 ipython.py) and development convenience (no need to keep doing
2193 "setup.py install" between changes).
2197 "setup.py install" between changes).
2194
2198
2195 * Made ! and !! shell escapes work (again) in multiline expressions:
2199 * Made ! and !! shell escapes work (again) in multiline expressions:
2196 if 1:
2200 if 1:
2197 !ls
2201 !ls
2198 !!ls
2202 !!ls
2199
2203
2200 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2204 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2201
2205
2202 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2206 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2203 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2207 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2204 module in case-insensitive installation. Was causing crashes
2208 module in case-insensitive installation. Was causing crashes
2205 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2209 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2206
2210
2207 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2211 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2208 <marienz-AT-gentoo.org>, closes
2212 <marienz-AT-gentoo.org>, closes
2209 http://www.scipy.net/roundup/ipython/issue51.
2213 http://www.scipy.net/roundup/ipython/issue51.
2210
2214
2211 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2215 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2212
2216
2213 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2217 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2214 problem of excessive CPU usage under *nix and keyboard lag under
2218 problem of excessive CPU usage under *nix and keyboard lag under
2215 win32.
2219 win32.
2216
2220
2217 2006-01-10 *** Released version 0.7.0
2221 2006-01-10 *** Released version 0.7.0
2218
2222
2219 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2223 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2220
2224
2221 * IPython/Release.py (revision): tag version number to 0.7.0,
2225 * IPython/Release.py (revision): tag version number to 0.7.0,
2222 ready for release.
2226 ready for release.
2223
2227
2224 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2228 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2225 it informs the user of the name of the temp. file used. This can
2229 it informs the user of the name of the temp. file used. This can
2226 help if you decide later to reuse that same file, so you know
2230 help if you decide later to reuse that same file, so you know
2227 where to copy the info from.
2231 where to copy the info from.
2228
2232
2229 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2233 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2230
2234
2231 * setup_bdist_egg.py: little script to build an egg. Added
2235 * setup_bdist_egg.py: little script to build an egg. Added
2232 support in the release tools as well.
2236 support in the release tools as well.
2233
2237
2234 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2238 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2235
2239
2236 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2240 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2237 version selection (new -wxversion command line and ipythonrc
2241 version selection (new -wxversion command line and ipythonrc
2238 parameter). Patch contributed by Arnd Baecker
2242 parameter). Patch contributed by Arnd Baecker
2239 <arnd.baecker-AT-web.de>.
2243 <arnd.baecker-AT-web.de>.
2240
2244
2241 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2245 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2242 embedded instances, for variables defined at the interactive
2246 embedded instances, for variables defined at the interactive
2243 prompt of the embedded ipython. Reported by Arnd.
2247 prompt of the embedded ipython. Reported by Arnd.
2244
2248
2245 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2249 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2246 it can be used as a (stateful) toggle, or with a direct parameter.
2250 it can be used as a (stateful) toggle, or with a direct parameter.
2247
2251
2248 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2252 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2249 could be triggered in certain cases and cause the traceback
2253 could be triggered in certain cases and cause the traceback
2250 printer not to work.
2254 printer not to work.
2251
2255
2252 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2256 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2253
2257
2254 * IPython/iplib.py (_should_recompile): Small fix, closes
2258 * IPython/iplib.py (_should_recompile): Small fix, closes
2255 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2259 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2256
2260
2257 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2261 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2258
2262
2259 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2263 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2260 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2264 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2261 Moad for help with tracking it down.
2265 Moad for help with tracking it down.
2262
2266
2263 * IPython/iplib.py (handle_auto): fix autocall handling for
2267 * IPython/iplib.py (handle_auto): fix autocall handling for
2264 objects which support BOTH __getitem__ and __call__ (so that f [x]
2268 objects which support BOTH __getitem__ and __call__ (so that f [x]
2265 is left alone, instead of becoming f([x]) automatically).
2269 is left alone, instead of becoming f([x]) automatically).
2266
2270
2267 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2271 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2268 Ville's patch.
2272 Ville's patch.
2269
2273
2270 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2274 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2271
2275
2272 * IPython/iplib.py (handle_auto): changed autocall semantics to
2276 * IPython/iplib.py (handle_auto): changed autocall semantics to
2273 include 'smart' mode, where the autocall transformation is NOT
2277 include 'smart' mode, where the autocall transformation is NOT
2274 applied if there are no arguments on the line. This allows you to
2278 applied if there are no arguments on the line. This allows you to
2275 just type 'foo' if foo is a callable to see its internal form,
2279 just type 'foo' if foo is a callable to see its internal form,
2276 instead of having it called with no arguments (typically a
2280 instead of having it called with no arguments (typically a
2277 mistake). The old 'full' autocall still exists: for that, you
2281 mistake). The old 'full' autocall still exists: for that, you
2278 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2282 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2279
2283
2280 * IPython/completer.py (Completer.attr_matches): add
2284 * IPython/completer.py (Completer.attr_matches): add
2281 tab-completion support for Enthoughts' traits. After a report by
2285 tab-completion support for Enthoughts' traits. After a report by
2282 Arnd and a patch by Prabhu.
2286 Arnd and a patch by Prabhu.
2283
2287
2284 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2288 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2285
2289
2286 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2290 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2287 Schmolck's patch to fix inspect.getinnerframes().
2291 Schmolck's patch to fix inspect.getinnerframes().
2288
2292
2289 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2293 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2290 for embedded instances, regarding handling of namespaces and items
2294 for embedded instances, regarding handling of namespaces and items
2291 added to the __builtin__ one. Multiple embedded instances and
2295 added to the __builtin__ one. Multiple embedded instances and
2292 recursive embeddings should work better now (though I'm not sure
2296 recursive embeddings should work better now (though I'm not sure
2293 I've got all the corner cases fixed, that code is a bit of a brain
2297 I've got all the corner cases fixed, that code is a bit of a brain
2294 twister).
2298 twister).
2295
2299
2296 * IPython/Magic.py (magic_edit): added support to edit in-memory
2300 * IPython/Magic.py (magic_edit): added support to edit in-memory
2297 macros (automatically creates the necessary temp files). %edit
2301 macros (automatically creates the necessary temp files). %edit
2298 also doesn't return the file contents anymore, it's just noise.
2302 also doesn't return the file contents anymore, it's just noise.
2299
2303
2300 * IPython/completer.py (Completer.attr_matches): revert change to
2304 * IPython/completer.py (Completer.attr_matches): revert change to
2301 complete only on attributes listed in __all__. I realized it
2305 complete only on attributes listed in __all__. I realized it
2302 cripples the tab-completion system as a tool for exploring the
2306 cripples the tab-completion system as a tool for exploring the
2303 internals of unknown libraries (it renders any non-__all__
2307 internals of unknown libraries (it renders any non-__all__
2304 attribute off-limits). I got bit by this when trying to see
2308 attribute off-limits). I got bit by this when trying to see
2305 something inside the dis module.
2309 something inside the dis module.
2306
2310
2307 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2311 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2308
2312
2309 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2313 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2310 namespace for users and extension writers to hold data in. This
2314 namespace for users and extension writers to hold data in. This
2311 follows the discussion in
2315 follows the discussion in
2312 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2316 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2313
2317
2314 * IPython/completer.py (IPCompleter.complete): small patch to help
2318 * IPython/completer.py (IPCompleter.complete): small patch to help
2315 tab-completion under Emacs, after a suggestion by John Barnard
2319 tab-completion under Emacs, after a suggestion by John Barnard
2316 <barnarj-AT-ccf.org>.
2320 <barnarj-AT-ccf.org>.
2317
2321
2318 * IPython/Magic.py (Magic.extract_input_slices): added support for
2322 * IPython/Magic.py (Magic.extract_input_slices): added support for
2319 the slice notation in magics to use N-M to represent numbers N...M
2323 the slice notation in magics to use N-M to represent numbers N...M
2320 (closed endpoints). This is used by %macro and %save.
2324 (closed endpoints). This is used by %macro and %save.
2321
2325
2322 * IPython/completer.py (Completer.attr_matches): for modules which
2326 * IPython/completer.py (Completer.attr_matches): for modules which
2323 define __all__, complete only on those. After a patch by Jeffrey
2327 define __all__, complete only on those. After a patch by Jeffrey
2324 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2328 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2325 speed up this routine.
2329 speed up this routine.
2326
2330
2327 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2331 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2328 don't know if this is the end of it, but the behavior now is
2332 don't know if this is the end of it, but the behavior now is
2329 certainly much more correct. Note that coupled with macros,
2333 certainly much more correct. Note that coupled with macros,
2330 slightly surprising (at first) behavior may occur: a macro will in
2334 slightly surprising (at first) behavior may occur: a macro will in
2331 general expand to multiple lines of input, so upon exiting, the
2335 general expand to multiple lines of input, so upon exiting, the
2332 in/out counters will both be bumped by the corresponding amount
2336 in/out counters will both be bumped by the corresponding amount
2333 (as if the macro's contents had been typed interactively). Typing
2337 (as if the macro's contents had been typed interactively). Typing
2334 %hist will reveal the intermediate (silently processed) lines.
2338 %hist will reveal the intermediate (silently processed) lines.
2335
2339
2336 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2340 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2337 pickle to fail (%run was overwriting __main__ and not restoring
2341 pickle to fail (%run was overwriting __main__ and not restoring
2338 it, but pickle relies on __main__ to operate).
2342 it, but pickle relies on __main__ to operate).
2339
2343
2340 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2344 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2341 using properties, but forgot to make the main InteractiveShell
2345 using properties, but forgot to make the main InteractiveShell
2342 class a new-style class. Properties fail silently, and
2346 class a new-style class. Properties fail silently, and
2343 mysteriously, with old-style class (getters work, but
2347 mysteriously, with old-style class (getters work, but
2344 setters don't do anything).
2348 setters don't do anything).
2345
2349
2346 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2350 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2347
2351
2348 * IPython/Magic.py (magic_history): fix history reporting bug (I
2352 * IPython/Magic.py (magic_history): fix history reporting bug (I
2349 know some nasties are still there, I just can't seem to find a
2353 know some nasties are still there, I just can't seem to find a
2350 reproducible test case to track them down; the input history is
2354 reproducible test case to track them down; the input history is
2351 falling out of sync...)
2355 falling out of sync...)
2352
2356
2353 * IPython/iplib.py (handle_shell_escape): fix bug where both
2357 * IPython/iplib.py (handle_shell_escape): fix bug where both
2354 aliases and system accesses where broken for indented code (such
2358 aliases and system accesses where broken for indented code (such
2355 as loops).
2359 as loops).
2356
2360
2357 * IPython/genutils.py (shell): fix small but critical bug for
2361 * IPython/genutils.py (shell): fix small but critical bug for
2358 win32 system access.
2362 win32 system access.
2359
2363
2360 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2364 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2361
2365
2362 * IPython/iplib.py (showtraceback): remove use of the
2366 * IPython/iplib.py (showtraceback): remove use of the
2363 sys.last_{type/value/traceback} structures, which are non
2367 sys.last_{type/value/traceback} structures, which are non
2364 thread-safe.
2368 thread-safe.
2365 (_prefilter): change control flow to ensure that we NEVER
2369 (_prefilter): change control flow to ensure that we NEVER
2366 introspect objects when autocall is off. This will guarantee that
2370 introspect objects when autocall is off. This will guarantee that
2367 having an input line of the form 'x.y', where access to attribute
2371 having an input line of the form 'x.y', where access to attribute
2368 'y' has side effects, doesn't trigger the side effect TWICE. It
2372 'y' has side effects, doesn't trigger the side effect TWICE. It
2369 is important to note that, with autocall on, these side effects
2373 is important to note that, with autocall on, these side effects
2370 can still happen.
2374 can still happen.
2371 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2375 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2372 trio. IPython offers these three kinds of special calls which are
2376 trio. IPython offers these three kinds of special calls which are
2373 not python code, and it's a good thing to have their call method
2377 not python code, and it's a good thing to have their call method
2374 be accessible as pure python functions (not just special syntax at
2378 be accessible as pure python functions (not just special syntax at
2375 the command line). It gives us a better internal implementation
2379 the command line). It gives us a better internal implementation
2376 structure, as well as exposing these for user scripting more
2380 structure, as well as exposing these for user scripting more
2377 cleanly.
2381 cleanly.
2378
2382
2379 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2383 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2380 file. Now that they'll be more likely to be used with the
2384 file. Now that they'll be more likely to be used with the
2381 persistance system (%store), I want to make sure their module path
2385 persistance system (%store), I want to make sure their module path
2382 doesn't change in the future, so that we don't break things for
2386 doesn't change in the future, so that we don't break things for
2383 users' persisted data.
2387 users' persisted data.
2384
2388
2385 * IPython/iplib.py (autoindent_update): move indentation
2389 * IPython/iplib.py (autoindent_update): move indentation
2386 management into the _text_ processing loop, not the keyboard
2390 management into the _text_ processing loop, not the keyboard
2387 interactive one. This is necessary to correctly process non-typed
2391 interactive one. This is necessary to correctly process non-typed
2388 multiline input (such as macros).
2392 multiline input (such as macros).
2389
2393
2390 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2394 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2391 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2395 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2392 which was producing problems in the resulting manual.
2396 which was producing problems in the resulting manual.
2393 (magic_whos): improve reporting of instances (show their class,
2397 (magic_whos): improve reporting of instances (show their class,
2394 instead of simply printing 'instance' which isn't terribly
2398 instead of simply printing 'instance' which isn't terribly
2395 informative).
2399 informative).
2396
2400
2397 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2401 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2398 (minor mods) to support network shares under win32.
2402 (minor mods) to support network shares under win32.
2399
2403
2400 * IPython/winconsole.py (get_console_size): add new winconsole
2404 * IPython/winconsole.py (get_console_size): add new winconsole
2401 module and fixes to page_dumb() to improve its behavior under
2405 module and fixes to page_dumb() to improve its behavior under
2402 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2406 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2403
2407
2404 * IPython/Magic.py (Macro): simplified Macro class to just
2408 * IPython/Magic.py (Macro): simplified Macro class to just
2405 subclass list. We've had only 2.2 compatibility for a very long
2409 subclass list. We've had only 2.2 compatibility for a very long
2406 time, yet I was still avoiding subclassing the builtin types. No
2410 time, yet I was still avoiding subclassing the builtin types. No
2407 more (I'm also starting to use properties, though I won't shift to
2411 more (I'm also starting to use properties, though I won't shift to
2408 2.3-specific features quite yet).
2412 2.3-specific features quite yet).
2409 (magic_store): added Ville's patch for lightweight variable
2413 (magic_store): added Ville's patch for lightweight variable
2410 persistence, after a request on the user list by Matt Wilkie
2414 persistence, after a request on the user list by Matt Wilkie
2411 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2415 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2412 details.
2416 details.
2413
2417
2414 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2418 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2415 changed the default logfile name from 'ipython.log' to
2419 changed the default logfile name from 'ipython.log' to
2416 'ipython_log.py'. These logs are real python files, and now that
2420 'ipython_log.py'. These logs are real python files, and now that
2417 we have much better multiline support, people are more likely to
2421 we have much better multiline support, people are more likely to
2418 want to use them as such. Might as well name them correctly.
2422 want to use them as such. Might as well name them correctly.
2419
2423
2420 * IPython/Magic.py: substantial cleanup. While we can't stop
2424 * IPython/Magic.py: substantial cleanup. While we can't stop
2421 using magics as mixins, due to the existing customizations 'out
2425 using magics as mixins, due to the existing customizations 'out
2422 there' which rely on the mixin naming conventions, at least I
2426 there' which rely on the mixin naming conventions, at least I
2423 cleaned out all cross-class name usage. So once we are OK with
2427 cleaned out all cross-class name usage. So once we are OK with
2424 breaking compatibility, the two systems can be separated.
2428 breaking compatibility, the two systems can be separated.
2425
2429
2426 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2430 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2427 anymore, and the class is a fair bit less hideous as well. New
2431 anymore, and the class is a fair bit less hideous as well. New
2428 features were also introduced: timestamping of input, and logging
2432 features were also introduced: timestamping of input, and logging
2429 of output results. These are user-visible with the -t and -o
2433 of output results. These are user-visible with the -t and -o
2430 options to %logstart. Closes
2434 options to %logstart. Closes
2431 http://www.scipy.net/roundup/ipython/issue11 and a request by
2435 http://www.scipy.net/roundup/ipython/issue11 and a request by
2432 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2436 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2433
2437
2434 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2438 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2435
2439
2436 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2440 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2437 better handle backslashes in paths. See the thread 'More Windows
2441 better handle backslashes in paths. See the thread 'More Windows
2438 questions part 2 - \/ characters revisited' on the iypthon user
2442 questions part 2 - \/ characters revisited' on the iypthon user
2439 list:
2443 list:
2440 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2444 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2441
2445
2442 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2446 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2443
2447
2444 (InteractiveShell.__init__): change threaded shells to not use the
2448 (InteractiveShell.__init__): change threaded shells to not use the
2445 ipython crash handler. This was causing more problems than not,
2449 ipython crash handler. This was causing more problems than not,
2446 as exceptions in the main thread (GUI code, typically) would
2450 as exceptions in the main thread (GUI code, typically) would
2447 always show up as a 'crash', when they really weren't.
2451 always show up as a 'crash', when they really weren't.
2448
2452
2449 The colors and exception mode commands (%colors/%xmode) have been
2453 The colors and exception mode commands (%colors/%xmode) have been
2450 synchronized to also take this into account, so users can get
2454 synchronized to also take this into account, so users can get
2451 verbose exceptions for their threaded code as well. I also added
2455 verbose exceptions for their threaded code as well. I also added
2452 support for activating pdb inside this exception handler as well,
2456 support for activating pdb inside this exception handler as well,
2453 so now GUI authors can use IPython's enhanced pdb at runtime.
2457 so now GUI authors can use IPython's enhanced pdb at runtime.
2454
2458
2455 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2459 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2456 true by default, and add it to the shipped ipythonrc file. Since
2460 true by default, and add it to the shipped ipythonrc file. Since
2457 this asks the user before proceeding, I think it's OK to make it
2461 this asks the user before proceeding, I think it's OK to make it
2458 true by default.
2462 true by default.
2459
2463
2460 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2464 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2461 of the previous special-casing of input in the eval loop. I think
2465 of the previous special-casing of input in the eval loop. I think
2462 this is cleaner, as they really are commands and shouldn't have
2466 this is cleaner, as they really are commands and shouldn't have
2463 a special role in the middle of the core code.
2467 a special role in the middle of the core code.
2464
2468
2465 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2469 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2466
2470
2467 * IPython/iplib.py (edit_syntax_error): added support for
2471 * IPython/iplib.py (edit_syntax_error): added support for
2468 automatically reopening the editor if the file had a syntax error
2472 automatically reopening the editor if the file had a syntax error
2469 in it. Thanks to scottt who provided the patch at:
2473 in it. Thanks to scottt who provided the patch at:
2470 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2474 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2471 version committed).
2475 version committed).
2472
2476
2473 * IPython/iplib.py (handle_normal): add suport for multi-line
2477 * IPython/iplib.py (handle_normal): add suport for multi-line
2474 input with emtpy lines. This fixes
2478 input with emtpy lines. This fixes
2475 http://www.scipy.net/roundup/ipython/issue43 and a similar
2479 http://www.scipy.net/roundup/ipython/issue43 and a similar
2476 discussion on the user list.
2480 discussion on the user list.
2477
2481
2478 WARNING: a behavior change is necessarily introduced to support
2482 WARNING: a behavior change is necessarily introduced to support
2479 blank lines: now a single blank line with whitespace does NOT
2483 blank lines: now a single blank line with whitespace does NOT
2480 break the input loop, which means that when autoindent is on, by
2484 break the input loop, which means that when autoindent is on, by
2481 default hitting return on the next (indented) line does NOT exit.
2485 default hitting return on the next (indented) line does NOT exit.
2482
2486
2483 Instead, to exit a multiline input you can either have:
2487 Instead, to exit a multiline input you can either have:
2484
2488
2485 - TWO whitespace lines (just hit return again), or
2489 - TWO whitespace lines (just hit return again), or
2486 - a single whitespace line of a different length than provided
2490 - a single whitespace line of a different length than provided
2487 by the autoindent (add or remove a space).
2491 by the autoindent (add or remove a space).
2488
2492
2489 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2493 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2490 module to better organize all readline-related functionality.
2494 module to better organize all readline-related functionality.
2491 I've deleted FlexCompleter and put all completion clases here.
2495 I've deleted FlexCompleter and put all completion clases here.
2492
2496
2493 * IPython/iplib.py (raw_input): improve indentation management.
2497 * IPython/iplib.py (raw_input): improve indentation management.
2494 It is now possible to paste indented code with autoindent on, and
2498 It is now possible to paste indented code with autoindent on, and
2495 the code is interpreted correctly (though it still looks bad on
2499 the code is interpreted correctly (though it still looks bad on
2496 screen, due to the line-oriented nature of ipython).
2500 screen, due to the line-oriented nature of ipython).
2497 (MagicCompleter.complete): change behavior so that a TAB key on an
2501 (MagicCompleter.complete): change behavior so that a TAB key on an
2498 otherwise empty line actually inserts a tab, instead of completing
2502 otherwise empty line actually inserts a tab, instead of completing
2499 on the entire global namespace. This makes it easier to use the
2503 on the entire global namespace. This makes it easier to use the
2500 TAB key for indentation. After a request by Hans Meine
2504 TAB key for indentation. After a request by Hans Meine
2501 <hans_meine-AT-gmx.net>
2505 <hans_meine-AT-gmx.net>
2502 (_prefilter): add support so that typing plain 'exit' or 'quit'
2506 (_prefilter): add support so that typing plain 'exit' or 'quit'
2503 does a sensible thing. Originally I tried to deviate as little as
2507 does a sensible thing. Originally I tried to deviate as little as
2504 possible from the default python behavior, but even that one may
2508 possible from the default python behavior, but even that one may
2505 change in this direction (thread on python-dev to that effect).
2509 change in this direction (thread on python-dev to that effect).
2506 Regardless, ipython should do the right thing even if CPython's
2510 Regardless, ipython should do the right thing even if CPython's
2507 '>>>' prompt doesn't.
2511 '>>>' prompt doesn't.
2508 (InteractiveShell): removed subclassing code.InteractiveConsole
2512 (InteractiveShell): removed subclassing code.InteractiveConsole
2509 class. By now we'd overridden just about all of its methods: I've
2513 class. By now we'd overridden just about all of its methods: I've
2510 copied the remaining two over, and now ipython is a standalone
2514 copied the remaining two over, and now ipython is a standalone
2511 class. This will provide a clearer picture for the chainsaw
2515 class. This will provide a clearer picture for the chainsaw
2512 branch refactoring.
2516 branch refactoring.
2513
2517
2514 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2518 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2515
2519
2516 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2520 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2517 failures for objects which break when dir() is called on them.
2521 failures for objects which break when dir() is called on them.
2518
2522
2519 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2523 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2520 distinct local and global namespaces in the completer API. This
2524 distinct local and global namespaces in the completer API. This
2521 change allows us to properly handle completion with distinct
2525 change allows us to properly handle completion with distinct
2522 scopes, including in embedded instances (this had never really
2526 scopes, including in embedded instances (this had never really
2523 worked correctly).
2527 worked correctly).
2524
2528
2525 Note: this introduces a change in the constructor for
2529 Note: this introduces a change in the constructor for
2526 MagicCompleter, as a new global_namespace parameter is now the
2530 MagicCompleter, as a new global_namespace parameter is now the
2527 second argument (the others were bumped one position).
2531 second argument (the others were bumped one position).
2528
2532
2529 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2533 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2530
2534
2531 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2535 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2532 embedded instances (which can be done now thanks to Vivian's
2536 embedded instances (which can be done now thanks to Vivian's
2533 frame-handling fixes for pdb).
2537 frame-handling fixes for pdb).
2534 (InteractiveShell.__init__): Fix namespace handling problem in
2538 (InteractiveShell.__init__): Fix namespace handling problem in
2535 embedded instances. We were overwriting __main__ unconditionally,
2539 embedded instances. We were overwriting __main__ unconditionally,
2536 and this should only be done for 'full' (non-embedded) IPython;
2540 and this should only be done for 'full' (non-embedded) IPython;
2537 embedded instances must respect the caller's __main__. Thanks to
2541 embedded instances must respect the caller's __main__. Thanks to
2538 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2542 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2539
2543
2540 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2544 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2541
2545
2542 * setup.py: added download_url to setup(). This registers the
2546 * setup.py: added download_url to setup(). This registers the
2543 download address at PyPI, which is not only useful to humans
2547 download address at PyPI, which is not only useful to humans
2544 browsing the site, but is also picked up by setuptools (the Eggs
2548 browsing the site, but is also picked up by setuptools (the Eggs
2545 machinery). Thanks to Ville and R. Kern for the info/discussion
2549 machinery). Thanks to Ville and R. Kern for the info/discussion
2546 on this.
2550 on this.
2547
2551
2548 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2552 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2549
2553
2550 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2554 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2551 This brings a lot of nice functionality to the pdb mode, which now
2555 This brings a lot of nice functionality to the pdb mode, which now
2552 has tab-completion, syntax highlighting, and better stack handling
2556 has tab-completion, syntax highlighting, and better stack handling
2553 than before. Many thanks to Vivian De Smedt
2557 than before. Many thanks to Vivian De Smedt
2554 <vivian-AT-vdesmedt.com> for the original patches.
2558 <vivian-AT-vdesmedt.com> for the original patches.
2555
2559
2556 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2560 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2557
2561
2558 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2562 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2559 sequence to consistently accept the banner argument. The
2563 sequence to consistently accept the banner argument. The
2560 inconsistency was tripping SAGE, thanks to Gary Zablackis
2564 inconsistency was tripping SAGE, thanks to Gary Zablackis
2561 <gzabl-AT-yahoo.com> for the report.
2565 <gzabl-AT-yahoo.com> for the report.
2562
2566
2563 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2567 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2564
2568
2565 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2569 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2566 Fix bug where a naked 'alias' call in the ipythonrc file would
2570 Fix bug where a naked 'alias' call in the ipythonrc file would
2567 cause a crash. Bug reported by Jorgen Stenarson.
2571 cause a crash. Bug reported by Jorgen Stenarson.
2568
2572
2569 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2573 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2570
2574
2571 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2575 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2572 startup time.
2576 startup time.
2573
2577
2574 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2578 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2575 instances had introduced a bug with globals in normal code. Now
2579 instances had introduced a bug with globals in normal code. Now
2576 it's working in all cases.
2580 it's working in all cases.
2577
2581
2578 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2582 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2579 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2583 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2580 has been introduced to set the default case sensitivity of the
2584 has been introduced to set the default case sensitivity of the
2581 searches. Users can still select either mode at runtime on a
2585 searches. Users can still select either mode at runtime on a
2582 per-search basis.
2586 per-search basis.
2583
2587
2584 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2588 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2585
2589
2586 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2590 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2587 attributes in wildcard searches for subclasses. Modified version
2591 attributes in wildcard searches for subclasses. Modified version
2588 of a patch by Jorgen.
2592 of a patch by Jorgen.
2589
2593
2590 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2594 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2591
2595
2592 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2596 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2593 embedded instances. I added a user_global_ns attribute to the
2597 embedded instances. I added a user_global_ns attribute to the
2594 InteractiveShell class to handle this.
2598 InteractiveShell class to handle this.
2595
2599
2596 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2600 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2597
2601
2598 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2602 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2599 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2603 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2600 (reported under win32, but may happen also in other platforms).
2604 (reported under win32, but may happen also in other platforms).
2601 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2605 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2602
2606
2603 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2607 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2604
2608
2605 * IPython/Magic.py (magic_psearch): new support for wildcard
2609 * IPython/Magic.py (magic_psearch): new support for wildcard
2606 patterns. Now, typing ?a*b will list all names which begin with a
2610 patterns. Now, typing ?a*b will list all names which begin with a
2607 and end in b, for example. The %psearch magic has full
2611 and end in b, for example. The %psearch magic has full
2608 docstrings. Many thanks to JΓΆrgen Stenarson
2612 docstrings. Many thanks to JΓΆrgen Stenarson
2609 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2613 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2610 implementing this functionality.
2614 implementing this functionality.
2611
2615
2612 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2616 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2613
2617
2614 * Manual: fixed long-standing annoyance of double-dashes (as in
2618 * Manual: fixed long-standing annoyance of double-dashes (as in
2615 --prefix=~, for example) being stripped in the HTML version. This
2619 --prefix=~, for example) being stripped in the HTML version. This
2616 is a latex2html bug, but a workaround was provided. Many thanks
2620 is a latex2html bug, but a workaround was provided. Many thanks
2617 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2621 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2618 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2622 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2619 rolling. This seemingly small issue had tripped a number of users
2623 rolling. This seemingly small issue had tripped a number of users
2620 when first installing, so I'm glad to see it gone.
2624 when first installing, so I'm glad to see it gone.
2621
2625
2622 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2626 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2623
2627
2624 * IPython/Extensions/numeric_formats.py: fix missing import,
2628 * IPython/Extensions/numeric_formats.py: fix missing import,
2625 reported by Stephen Walton.
2629 reported by Stephen Walton.
2626
2630
2627 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2631 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2628
2632
2629 * IPython/demo.py: finish demo module, fully documented now.
2633 * IPython/demo.py: finish demo module, fully documented now.
2630
2634
2631 * IPython/genutils.py (file_read): simple little utility to read a
2635 * IPython/genutils.py (file_read): simple little utility to read a
2632 file and ensure it's closed afterwards.
2636 file and ensure it's closed afterwards.
2633
2637
2634 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2638 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2635
2639
2636 * IPython/demo.py (Demo.__init__): added support for individually
2640 * IPython/demo.py (Demo.__init__): added support for individually
2637 tagging blocks for automatic execution.
2641 tagging blocks for automatic execution.
2638
2642
2639 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2643 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2640 syntax-highlighted python sources, requested by John.
2644 syntax-highlighted python sources, requested by John.
2641
2645
2642 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2646 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2643
2647
2644 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2648 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2645 finishing.
2649 finishing.
2646
2650
2647 * IPython/genutils.py (shlex_split): moved from Magic to here,
2651 * IPython/genutils.py (shlex_split): moved from Magic to here,
2648 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2652 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2649
2653
2650 * IPython/demo.py (Demo.__init__): added support for silent
2654 * IPython/demo.py (Demo.__init__): added support for silent
2651 blocks, improved marks as regexps, docstrings written.
2655 blocks, improved marks as regexps, docstrings written.
2652 (Demo.__init__): better docstring, added support for sys.argv.
2656 (Demo.__init__): better docstring, added support for sys.argv.
2653
2657
2654 * IPython/genutils.py (marquee): little utility used by the demo
2658 * IPython/genutils.py (marquee): little utility used by the demo
2655 code, handy in general.
2659 code, handy in general.
2656
2660
2657 * IPython/demo.py (Demo.__init__): new class for interactive
2661 * IPython/demo.py (Demo.__init__): new class for interactive
2658 demos. Not documented yet, I just wrote it in a hurry for
2662 demos. Not documented yet, I just wrote it in a hurry for
2659 scipy'05. Will docstring later.
2663 scipy'05. Will docstring later.
2660
2664
2661 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2665 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2662
2666
2663 * IPython/Shell.py (sigint_handler): Drastic simplification which
2667 * IPython/Shell.py (sigint_handler): Drastic simplification which
2664 also seems to make Ctrl-C work correctly across threads! This is
2668 also seems to make Ctrl-C work correctly across threads! This is
2665 so simple, that I can't beleive I'd missed it before. Needs more
2669 so simple, that I can't beleive I'd missed it before. Needs more
2666 testing, though.
2670 testing, though.
2667 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2671 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2668 like this before...
2672 like this before...
2669
2673
2670 * IPython/genutils.py (get_home_dir): add protection against
2674 * IPython/genutils.py (get_home_dir): add protection against
2671 non-dirs in win32 registry.
2675 non-dirs in win32 registry.
2672
2676
2673 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2677 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2674 bug where dict was mutated while iterating (pysh crash).
2678 bug where dict was mutated while iterating (pysh crash).
2675
2679
2676 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2680 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2677
2681
2678 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2682 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2679 spurious newlines added by this routine. After a report by
2683 spurious newlines added by this routine. After a report by
2680 F. Mantegazza.
2684 F. Mantegazza.
2681
2685
2682 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2686 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2683
2687
2684 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2688 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2685 calls. These were a leftover from the GTK 1.x days, and can cause
2689 calls. These were a leftover from the GTK 1.x days, and can cause
2686 problems in certain cases (after a report by John Hunter).
2690 problems in certain cases (after a report by John Hunter).
2687
2691
2688 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2692 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2689 os.getcwd() fails at init time. Thanks to patch from David Remahl
2693 os.getcwd() fails at init time. Thanks to patch from David Remahl
2690 <chmod007-AT-mac.com>.
2694 <chmod007-AT-mac.com>.
2691 (InteractiveShell.__init__): prevent certain special magics from
2695 (InteractiveShell.__init__): prevent certain special magics from
2692 being shadowed by aliases. Closes
2696 being shadowed by aliases. Closes
2693 http://www.scipy.net/roundup/ipython/issue41.
2697 http://www.scipy.net/roundup/ipython/issue41.
2694
2698
2695 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2699 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2696
2700
2697 * IPython/iplib.py (InteractiveShell.complete): Added new
2701 * IPython/iplib.py (InteractiveShell.complete): Added new
2698 top-level completion method to expose the completion mechanism
2702 top-level completion method to expose the completion mechanism
2699 beyond readline-based environments.
2703 beyond readline-based environments.
2700
2704
2701 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2705 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2702
2706
2703 * tools/ipsvnc (svnversion): fix svnversion capture.
2707 * tools/ipsvnc (svnversion): fix svnversion capture.
2704
2708
2705 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2709 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2706 attribute to self, which was missing. Before, it was set by a
2710 attribute to self, which was missing. Before, it was set by a
2707 routine which in certain cases wasn't being called, so the
2711 routine which in certain cases wasn't being called, so the
2708 instance could end up missing the attribute. This caused a crash.
2712 instance could end up missing the attribute. This caused a crash.
2709 Closes http://www.scipy.net/roundup/ipython/issue40.
2713 Closes http://www.scipy.net/roundup/ipython/issue40.
2710
2714
2711 2005-08-16 Fernando Perez <fperez@colorado.edu>
2715 2005-08-16 Fernando Perez <fperez@colorado.edu>
2712
2716
2713 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2717 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2714 contains non-string attribute. Closes
2718 contains non-string attribute. Closes
2715 http://www.scipy.net/roundup/ipython/issue38.
2719 http://www.scipy.net/roundup/ipython/issue38.
2716
2720
2717 2005-08-14 Fernando Perez <fperez@colorado.edu>
2721 2005-08-14 Fernando Perez <fperez@colorado.edu>
2718
2722
2719 * tools/ipsvnc: Minor improvements, to add changeset info.
2723 * tools/ipsvnc: Minor improvements, to add changeset info.
2720
2724
2721 2005-08-12 Fernando Perez <fperez@colorado.edu>
2725 2005-08-12 Fernando Perez <fperez@colorado.edu>
2722
2726
2723 * IPython/iplib.py (runsource): remove self.code_to_run_src
2727 * IPython/iplib.py (runsource): remove self.code_to_run_src
2724 attribute. I realized this is nothing more than
2728 attribute. I realized this is nothing more than
2725 '\n'.join(self.buffer), and having the same data in two different
2729 '\n'.join(self.buffer), and having the same data in two different
2726 places is just asking for synchronization bugs. This may impact
2730 places is just asking for synchronization bugs. This may impact
2727 people who have custom exception handlers, so I need to warn
2731 people who have custom exception handlers, so I need to warn
2728 ipython-dev about it (F. Mantegazza may use them).
2732 ipython-dev about it (F. Mantegazza may use them).
2729
2733
2730 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2734 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2731
2735
2732 * IPython/genutils.py: fix 2.2 compatibility (generators)
2736 * IPython/genutils.py: fix 2.2 compatibility (generators)
2733
2737
2734 2005-07-18 Fernando Perez <fperez@colorado.edu>
2738 2005-07-18 Fernando Perez <fperez@colorado.edu>
2735
2739
2736 * IPython/genutils.py (get_home_dir): fix to help users with
2740 * IPython/genutils.py (get_home_dir): fix to help users with
2737 invalid $HOME under win32.
2741 invalid $HOME under win32.
2738
2742
2739 2005-07-17 Fernando Perez <fperez@colorado.edu>
2743 2005-07-17 Fernando Perez <fperez@colorado.edu>
2740
2744
2741 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2745 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2742 some old hacks and clean up a bit other routines; code should be
2746 some old hacks and clean up a bit other routines; code should be
2743 simpler and a bit faster.
2747 simpler and a bit faster.
2744
2748
2745 * IPython/iplib.py (interact): removed some last-resort attempts
2749 * IPython/iplib.py (interact): removed some last-resort attempts
2746 to survive broken stdout/stderr. That code was only making it
2750 to survive broken stdout/stderr. That code was only making it
2747 harder to abstract out the i/o (necessary for gui integration),
2751 harder to abstract out the i/o (necessary for gui integration),
2748 and the crashes it could prevent were extremely rare in practice
2752 and the crashes it could prevent were extremely rare in practice
2749 (besides being fully user-induced in a pretty violent manner).
2753 (besides being fully user-induced in a pretty violent manner).
2750
2754
2751 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2755 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2752 Nothing major yet, but the code is simpler to read; this should
2756 Nothing major yet, but the code is simpler to read; this should
2753 make it easier to do more serious modifications in the future.
2757 make it easier to do more serious modifications in the future.
2754
2758
2755 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2759 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2756 which broke in .15 (thanks to a report by Ville).
2760 which broke in .15 (thanks to a report by Ville).
2757
2761
2758 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2762 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2759 be quite correct, I know next to nothing about unicode). This
2763 be quite correct, I know next to nothing about unicode). This
2760 will allow unicode strings to be used in prompts, amongst other
2764 will allow unicode strings to be used in prompts, amongst other
2761 cases. It also will prevent ipython from crashing when unicode
2765 cases. It also will prevent ipython from crashing when unicode
2762 shows up unexpectedly in many places. If ascii encoding fails, we
2766 shows up unexpectedly in many places. If ascii encoding fails, we
2763 assume utf_8. Currently the encoding is not a user-visible
2767 assume utf_8. Currently the encoding is not a user-visible
2764 setting, though it could be made so if there is demand for it.
2768 setting, though it could be made so if there is demand for it.
2765
2769
2766 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2770 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2767
2771
2768 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2772 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2769
2773
2770 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2774 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2771
2775
2772 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2776 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2773 code can work transparently for 2.2/2.3.
2777 code can work transparently for 2.2/2.3.
2774
2778
2775 2005-07-16 Fernando Perez <fperez@colorado.edu>
2779 2005-07-16 Fernando Perez <fperez@colorado.edu>
2776
2780
2777 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2781 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2778 out of the color scheme table used for coloring exception
2782 out of the color scheme table used for coloring exception
2779 tracebacks. This allows user code to add new schemes at runtime.
2783 tracebacks. This allows user code to add new schemes at runtime.
2780 This is a minimally modified version of the patch at
2784 This is a minimally modified version of the patch at
2781 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2785 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2782 for the contribution.
2786 for the contribution.
2783
2787
2784 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2788 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2785 slightly modified version of the patch in
2789 slightly modified version of the patch in
2786 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2790 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2787 to remove the previous try/except solution (which was costlier).
2791 to remove the previous try/except solution (which was costlier).
2788 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2792 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2789
2793
2790 2005-06-08 Fernando Perez <fperez@colorado.edu>
2794 2005-06-08 Fernando Perez <fperez@colorado.edu>
2791
2795
2792 * IPython/iplib.py (write/write_err): Add methods to abstract all
2796 * IPython/iplib.py (write/write_err): Add methods to abstract all
2793 I/O a bit more.
2797 I/O a bit more.
2794
2798
2795 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2799 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2796 warning, reported by Aric Hagberg, fix by JD Hunter.
2800 warning, reported by Aric Hagberg, fix by JD Hunter.
2797
2801
2798 2005-06-02 *** Released version 0.6.15
2802 2005-06-02 *** Released version 0.6.15
2799
2803
2800 2005-06-01 Fernando Perez <fperez@colorado.edu>
2804 2005-06-01 Fernando Perez <fperez@colorado.edu>
2801
2805
2802 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2806 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2803 tab-completion of filenames within open-quoted strings. Note that
2807 tab-completion of filenames within open-quoted strings. Note that
2804 this requires that in ~/.ipython/ipythonrc, users change the
2808 this requires that in ~/.ipython/ipythonrc, users change the
2805 readline delimiters configuration to read:
2809 readline delimiters configuration to read:
2806
2810
2807 readline_remove_delims -/~
2811 readline_remove_delims -/~
2808
2812
2809
2813
2810 2005-05-31 *** Released version 0.6.14
2814 2005-05-31 *** Released version 0.6.14
2811
2815
2812 2005-05-29 Fernando Perez <fperez@colorado.edu>
2816 2005-05-29 Fernando Perez <fperez@colorado.edu>
2813
2817
2814 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2818 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2815 with files not on the filesystem. Reported by Eliyahu Sandler
2819 with files not on the filesystem. Reported by Eliyahu Sandler
2816 <eli@gondolin.net>
2820 <eli@gondolin.net>
2817
2821
2818 2005-05-22 Fernando Perez <fperez@colorado.edu>
2822 2005-05-22 Fernando Perez <fperez@colorado.edu>
2819
2823
2820 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2824 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2821 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2825 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2822
2826
2823 2005-05-19 Fernando Perez <fperez@colorado.edu>
2827 2005-05-19 Fernando Perez <fperez@colorado.edu>
2824
2828
2825 * IPython/iplib.py (safe_execfile): close a file which could be
2829 * IPython/iplib.py (safe_execfile): close a file which could be
2826 left open (causing problems in win32, which locks open files).
2830 left open (causing problems in win32, which locks open files).
2827 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2831 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2828
2832
2829 2005-05-18 Fernando Perez <fperez@colorado.edu>
2833 2005-05-18 Fernando Perez <fperez@colorado.edu>
2830
2834
2831 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2835 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2832 keyword arguments correctly to safe_execfile().
2836 keyword arguments correctly to safe_execfile().
2833
2837
2834 2005-05-13 Fernando Perez <fperez@colorado.edu>
2838 2005-05-13 Fernando Perez <fperez@colorado.edu>
2835
2839
2836 * ipython.1: Added info about Qt to manpage, and threads warning
2840 * ipython.1: Added info about Qt to manpage, and threads warning
2837 to usage page (invoked with --help).
2841 to usage page (invoked with --help).
2838
2842
2839 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2843 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2840 new matcher (it goes at the end of the priority list) to do
2844 new matcher (it goes at the end of the priority list) to do
2841 tab-completion on named function arguments. Submitted by George
2845 tab-completion on named function arguments. Submitted by George
2842 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2846 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2843 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2847 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2844 for more details.
2848 for more details.
2845
2849
2846 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2850 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2847 SystemExit exceptions in the script being run. Thanks to a report
2851 SystemExit exceptions in the script being run. Thanks to a report
2848 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2852 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2849 producing very annoying behavior when running unit tests.
2853 producing very annoying behavior when running unit tests.
2850
2854
2851 2005-05-12 Fernando Perez <fperez@colorado.edu>
2855 2005-05-12 Fernando Perez <fperez@colorado.edu>
2852
2856
2853 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2857 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2854 which I'd broken (again) due to a changed regexp. In the process,
2858 which I'd broken (again) due to a changed regexp. In the process,
2855 added ';' as an escape to auto-quote the whole line without
2859 added ';' as an escape to auto-quote the whole line without
2856 splitting its arguments. Thanks to a report by Jerry McRae
2860 splitting its arguments. Thanks to a report by Jerry McRae
2857 <qrs0xyc02-AT-sneakemail.com>.
2861 <qrs0xyc02-AT-sneakemail.com>.
2858
2862
2859 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2863 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2860 possible crashes caused by a TokenError. Reported by Ed Schofield
2864 possible crashes caused by a TokenError. Reported by Ed Schofield
2861 <schofield-AT-ftw.at>.
2865 <schofield-AT-ftw.at>.
2862
2866
2863 2005-05-06 Fernando Perez <fperez@colorado.edu>
2867 2005-05-06 Fernando Perez <fperez@colorado.edu>
2864
2868
2865 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2869 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2866
2870
2867 2005-04-29 Fernando Perez <fperez@colorado.edu>
2871 2005-04-29 Fernando Perez <fperez@colorado.edu>
2868
2872
2869 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2873 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2870 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2874 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2871 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2875 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2872 which provides support for Qt interactive usage (similar to the
2876 which provides support for Qt interactive usage (similar to the
2873 existing one for WX and GTK). This had been often requested.
2877 existing one for WX and GTK). This had been often requested.
2874
2878
2875 2005-04-14 *** Released version 0.6.13
2879 2005-04-14 *** Released version 0.6.13
2876
2880
2877 2005-04-08 Fernando Perez <fperez@colorado.edu>
2881 2005-04-08 Fernando Perez <fperez@colorado.edu>
2878
2882
2879 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2883 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2880 from _ofind, which gets called on almost every input line. Now,
2884 from _ofind, which gets called on almost every input line. Now,
2881 we only try to get docstrings if they are actually going to be
2885 we only try to get docstrings if they are actually going to be
2882 used (the overhead of fetching unnecessary docstrings can be
2886 used (the overhead of fetching unnecessary docstrings can be
2883 noticeable for certain objects, such as Pyro proxies).
2887 noticeable for certain objects, such as Pyro proxies).
2884
2888
2885 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2889 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2886 for completers. For some reason I had been passing them the state
2890 for completers. For some reason I had been passing them the state
2887 variable, which completers never actually need, and was in
2891 variable, which completers never actually need, and was in
2888 conflict with the rlcompleter API. Custom completers ONLY need to
2892 conflict with the rlcompleter API. Custom completers ONLY need to
2889 take the text parameter.
2893 take the text parameter.
2890
2894
2891 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2895 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2892 work correctly in pysh. I've also moved all the logic which used
2896 work correctly in pysh. I've also moved all the logic which used
2893 to be in pysh.py here, which will prevent problems with future
2897 to be in pysh.py here, which will prevent problems with future
2894 upgrades. However, this time I must warn users to update their
2898 upgrades. However, this time I must warn users to update their
2895 pysh profile to include the line
2899 pysh profile to include the line
2896
2900
2897 import_all IPython.Extensions.InterpreterExec
2901 import_all IPython.Extensions.InterpreterExec
2898
2902
2899 because otherwise things won't work for them. They MUST also
2903 because otherwise things won't work for them. They MUST also
2900 delete pysh.py and the line
2904 delete pysh.py and the line
2901
2905
2902 execfile pysh.py
2906 execfile pysh.py
2903
2907
2904 from their ipythonrc-pysh.
2908 from their ipythonrc-pysh.
2905
2909
2906 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2910 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2907 robust in the face of objects whose dir() returns non-strings
2911 robust in the face of objects whose dir() returns non-strings
2908 (which it shouldn't, but some broken libs like ITK do). Thanks to
2912 (which it shouldn't, but some broken libs like ITK do). Thanks to
2909 a patch by John Hunter (implemented differently, though). Also
2913 a patch by John Hunter (implemented differently, though). Also
2910 minor improvements by using .extend instead of + on lists.
2914 minor improvements by using .extend instead of + on lists.
2911
2915
2912 * pysh.py:
2916 * pysh.py:
2913
2917
2914 2005-04-06 Fernando Perez <fperez@colorado.edu>
2918 2005-04-06 Fernando Perez <fperez@colorado.edu>
2915
2919
2916 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2920 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2917 by default, so that all users benefit from it. Those who don't
2921 by default, so that all users benefit from it. Those who don't
2918 want it can still turn it off.
2922 want it can still turn it off.
2919
2923
2920 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2924 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2921 config file, I'd forgotten about this, so users were getting it
2925 config file, I'd forgotten about this, so users were getting it
2922 off by default.
2926 off by default.
2923
2927
2924 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2928 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2925 consistency. Now magics can be called in multiline statements,
2929 consistency. Now magics can be called in multiline statements,
2926 and python variables can be expanded in magic calls via $var.
2930 and python variables can be expanded in magic calls via $var.
2927 This makes the magic system behave just like aliases or !system
2931 This makes the magic system behave just like aliases or !system
2928 calls.
2932 calls.
2929
2933
2930 2005-03-28 Fernando Perez <fperez@colorado.edu>
2934 2005-03-28 Fernando Perez <fperez@colorado.edu>
2931
2935
2932 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2936 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2933 expensive string additions for building command. Add support for
2937 expensive string additions for building command. Add support for
2934 trailing ';' when autocall is used.
2938 trailing ';' when autocall is used.
2935
2939
2936 2005-03-26 Fernando Perez <fperez@colorado.edu>
2940 2005-03-26 Fernando Perez <fperez@colorado.edu>
2937
2941
2938 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2942 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2939 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2943 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2940 ipython.el robust against prompts with any number of spaces
2944 ipython.el robust against prompts with any number of spaces
2941 (including 0) after the ':' character.
2945 (including 0) after the ':' character.
2942
2946
2943 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2947 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2944 continuation prompt, which misled users to think the line was
2948 continuation prompt, which misled users to think the line was
2945 already indented. Closes debian Bug#300847, reported to me by
2949 already indented. Closes debian Bug#300847, reported to me by
2946 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2950 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2947
2951
2948 2005-03-23 Fernando Perez <fperez@colorado.edu>
2952 2005-03-23 Fernando Perez <fperez@colorado.edu>
2949
2953
2950 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2954 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2951 properly aligned if they have embedded newlines.
2955 properly aligned if they have embedded newlines.
2952
2956
2953 * IPython/iplib.py (runlines): Add a public method to expose
2957 * IPython/iplib.py (runlines): Add a public method to expose
2954 IPython's code execution machinery, so that users can run strings
2958 IPython's code execution machinery, so that users can run strings
2955 as if they had been typed at the prompt interactively.
2959 as if they had been typed at the prompt interactively.
2956 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2960 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2957 methods which can call the system shell, but with python variable
2961 methods which can call the system shell, but with python variable
2958 expansion. The three such methods are: __IPYTHON__.system,
2962 expansion. The three such methods are: __IPYTHON__.system,
2959 .getoutput and .getoutputerror. These need to be documented in a
2963 .getoutput and .getoutputerror. These need to be documented in a
2960 'public API' section (to be written) of the manual.
2964 'public API' section (to be written) of the manual.
2961
2965
2962 2005-03-20 Fernando Perez <fperez@colorado.edu>
2966 2005-03-20 Fernando Perez <fperez@colorado.edu>
2963
2967
2964 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2968 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2965 for custom exception handling. This is quite powerful, and it
2969 for custom exception handling. This is quite powerful, and it
2966 allows for user-installable exception handlers which can trap
2970 allows for user-installable exception handlers which can trap
2967 custom exceptions at runtime and treat them separately from
2971 custom exceptions at runtime and treat them separately from
2968 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2972 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2969 Mantegazza <mantegazza-AT-ill.fr>.
2973 Mantegazza <mantegazza-AT-ill.fr>.
2970 (InteractiveShell.set_custom_completer): public API function to
2974 (InteractiveShell.set_custom_completer): public API function to
2971 add new completers at runtime.
2975 add new completers at runtime.
2972
2976
2973 2005-03-19 Fernando Perez <fperez@colorado.edu>
2977 2005-03-19 Fernando Perez <fperez@colorado.edu>
2974
2978
2975 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2979 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2976 allow objects which provide their docstrings via non-standard
2980 allow objects which provide their docstrings via non-standard
2977 mechanisms (like Pyro proxies) to still be inspected by ipython's
2981 mechanisms (like Pyro proxies) to still be inspected by ipython's
2978 ? system.
2982 ? system.
2979
2983
2980 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2984 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2981 automatic capture system. I tried quite hard to make it work
2985 automatic capture system. I tried quite hard to make it work
2982 reliably, and simply failed. I tried many combinations with the
2986 reliably, and simply failed. I tried many combinations with the
2983 subprocess module, but eventually nothing worked in all needed
2987 subprocess module, but eventually nothing worked in all needed
2984 cases (not blocking stdin for the child, duplicating stdout
2988 cases (not blocking stdin for the child, duplicating stdout
2985 without blocking, etc). The new %sc/%sx still do capture to these
2989 without blocking, etc). The new %sc/%sx still do capture to these
2986 magical list/string objects which make shell use much more
2990 magical list/string objects which make shell use much more
2987 conveninent, so not all is lost.
2991 conveninent, so not all is lost.
2988
2992
2989 XXX - FIX MANUAL for the change above!
2993 XXX - FIX MANUAL for the change above!
2990
2994
2991 (runsource): I copied code.py's runsource() into ipython to modify
2995 (runsource): I copied code.py's runsource() into ipython to modify
2992 it a bit. Now the code object and source to be executed are
2996 it a bit. Now the code object and source to be executed are
2993 stored in ipython. This makes this info accessible to third-party
2997 stored in ipython. This makes this info accessible to third-party
2994 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2998 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2995 Mantegazza <mantegazza-AT-ill.fr>.
2999 Mantegazza <mantegazza-AT-ill.fr>.
2996
3000
2997 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3001 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2998 history-search via readline (like C-p/C-n). I'd wanted this for a
3002 history-search via readline (like C-p/C-n). I'd wanted this for a
2999 long time, but only recently found out how to do it. For users
3003 long time, but only recently found out how to do it. For users
3000 who already have their ipythonrc files made and want this, just
3004 who already have their ipythonrc files made and want this, just
3001 add:
3005 add:
3002
3006
3003 readline_parse_and_bind "\e[A": history-search-backward
3007 readline_parse_and_bind "\e[A": history-search-backward
3004 readline_parse_and_bind "\e[B": history-search-forward
3008 readline_parse_and_bind "\e[B": history-search-forward
3005
3009
3006 2005-03-18 Fernando Perez <fperez@colorado.edu>
3010 2005-03-18 Fernando Perez <fperez@colorado.edu>
3007
3011
3008 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3012 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3009 LSString and SList classes which allow transparent conversions
3013 LSString and SList classes which allow transparent conversions
3010 between list mode and whitespace-separated string.
3014 between list mode and whitespace-separated string.
3011 (magic_r): Fix recursion problem in %r.
3015 (magic_r): Fix recursion problem in %r.
3012
3016
3013 * IPython/genutils.py (LSString): New class to be used for
3017 * IPython/genutils.py (LSString): New class to be used for
3014 automatic storage of the results of all alias/system calls in _o
3018 automatic storage of the results of all alias/system calls in _o
3015 and _e (stdout/err). These provide a .l/.list attribute which
3019 and _e (stdout/err). These provide a .l/.list attribute which
3016 does automatic splitting on newlines. This means that for most
3020 does automatic splitting on newlines. This means that for most
3017 uses, you'll never need to do capturing of output with %sc/%sx
3021 uses, you'll never need to do capturing of output with %sc/%sx
3018 anymore, since ipython keeps this always done for you. Note that
3022 anymore, since ipython keeps this always done for you. Note that
3019 only the LAST results are stored, the _o/e variables are
3023 only the LAST results are stored, the _o/e variables are
3020 overwritten on each call. If you need to save their contents
3024 overwritten on each call. If you need to save their contents
3021 further, simply bind them to any other name.
3025 further, simply bind them to any other name.
3022
3026
3023 2005-03-17 Fernando Perez <fperez@colorado.edu>
3027 2005-03-17 Fernando Perez <fperez@colorado.edu>
3024
3028
3025 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3029 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3026 prompt namespace handling.
3030 prompt namespace handling.
3027
3031
3028 2005-03-16 Fernando Perez <fperez@colorado.edu>
3032 2005-03-16 Fernando Perez <fperez@colorado.edu>
3029
3033
3030 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3034 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3031 classic prompts to be '>>> ' (final space was missing, and it
3035 classic prompts to be '>>> ' (final space was missing, and it
3032 trips the emacs python mode).
3036 trips the emacs python mode).
3033 (BasePrompt.__str__): Added safe support for dynamic prompt
3037 (BasePrompt.__str__): Added safe support for dynamic prompt
3034 strings. Now you can set your prompt string to be '$x', and the
3038 strings. Now you can set your prompt string to be '$x', and the
3035 value of x will be printed from your interactive namespace. The
3039 value of x will be printed from your interactive namespace. The
3036 interpolation syntax includes the full Itpl support, so
3040 interpolation syntax includes the full Itpl support, so
3037 ${foo()+x+bar()} is a valid prompt string now, and the function
3041 ${foo()+x+bar()} is a valid prompt string now, and the function
3038 calls will be made at runtime.
3042 calls will be made at runtime.
3039
3043
3040 2005-03-15 Fernando Perez <fperez@colorado.edu>
3044 2005-03-15 Fernando Perez <fperez@colorado.edu>
3041
3045
3042 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3046 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3043 avoid name clashes in pylab. %hist still works, it just forwards
3047 avoid name clashes in pylab. %hist still works, it just forwards
3044 the call to %history.
3048 the call to %history.
3045
3049
3046 2005-03-02 *** Released version 0.6.12
3050 2005-03-02 *** Released version 0.6.12
3047
3051
3048 2005-03-02 Fernando Perez <fperez@colorado.edu>
3052 2005-03-02 Fernando Perez <fperez@colorado.edu>
3049
3053
3050 * IPython/iplib.py (handle_magic): log magic calls properly as
3054 * IPython/iplib.py (handle_magic): log magic calls properly as
3051 ipmagic() function calls.
3055 ipmagic() function calls.
3052
3056
3053 * IPython/Magic.py (magic_time): Improved %time to support
3057 * IPython/Magic.py (magic_time): Improved %time to support
3054 statements and provide wall-clock as well as CPU time.
3058 statements and provide wall-clock as well as CPU time.
3055
3059
3056 2005-02-27 Fernando Perez <fperez@colorado.edu>
3060 2005-02-27 Fernando Perez <fperez@colorado.edu>
3057
3061
3058 * IPython/hooks.py: New hooks module, to expose user-modifiable
3062 * IPython/hooks.py: New hooks module, to expose user-modifiable
3059 IPython functionality in a clean manner. For now only the editor
3063 IPython functionality in a clean manner. For now only the editor
3060 hook is actually written, and other thigns which I intend to turn
3064 hook is actually written, and other thigns which I intend to turn
3061 into proper hooks aren't yet there. The display and prefilter
3065 into proper hooks aren't yet there. The display and prefilter
3062 stuff, for example, should be hooks. But at least now the
3066 stuff, for example, should be hooks. But at least now the
3063 framework is in place, and the rest can be moved here with more
3067 framework is in place, and the rest can be moved here with more
3064 time later. IPython had had a .hooks variable for a long time for
3068 time later. IPython had had a .hooks variable for a long time for
3065 this purpose, but I'd never actually used it for anything.
3069 this purpose, but I'd never actually used it for anything.
3066
3070
3067 2005-02-26 Fernando Perez <fperez@colorado.edu>
3071 2005-02-26 Fernando Perez <fperez@colorado.edu>
3068
3072
3069 * IPython/ipmaker.py (make_IPython): make the default ipython
3073 * IPython/ipmaker.py (make_IPython): make the default ipython
3070 directory be called _ipython under win32, to follow more the
3074 directory be called _ipython under win32, to follow more the
3071 naming peculiarities of that platform (where buggy software like
3075 naming peculiarities of that platform (where buggy software like
3072 Visual Sourcesafe breaks with .named directories). Reported by
3076 Visual Sourcesafe breaks with .named directories). Reported by
3073 Ville Vainio.
3077 Ville Vainio.
3074
3078
3075 2005-02-23 Fernando Perez <fperez@colorado.edu>
3079 2005-02-23 Fernando Perez <fperez@colorado.edu>
3076
3080
3077 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3081 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3078 auto_aliases for win32 which were causing problems. Users can
3082 auto_aliases for win32 which were causing problems. Users can
3079 define the ones they personally like.
3083 define the ones they personally like.
3080
3084
3081 2005-02-21 Fernando Perez <fperez@colorado.edu>
3085 2005-02-21 Fernando Perez <fperez@colorado.edu>
3082
3086
3083 * IPython/Magic.py (magic_time): new magic to time execution of
3087 * IPython/Magic.py (magic_time): new magic to time execution of
3084 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3088 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3085
3089
3086 2005-02-19 Fernando Perez <fperez@colorado.edu>
3090 2005-02-19 Fernando Perez <fperez@colorado.edu>
3087
3091
3088 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3092 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3089 into keys (for prompts, for example).
3093 into keys (for prompts, for example).
3090
3094
3091 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3095 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3092 prompts in case users want them. This introduces a small behavior
3096 prompts in case users want them. This introduces a small behavior
3093 change: ipython does not automatically add a space to all prompts
3097 change: ipython does not automatically add a space to all prompts
3094 anymore. To get the old prompts with a space, users should add it
3098 anymore. To get the old prompts with a space, users should add it
3095 manually to their ipythonrc file, so for example prompt_in1 should
3099 manually to their ipythonrc file, so for example prompt_in1 should
3096 now read 'In [\#]: ' instead of 'In [\#]:'.
3100 now read 'In [\#]: ' instead of 'In [\#]:'.
3097 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3101 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3098 file) to control left-padding of secondary prompts.
3102 file) to control left-padding of secondary prompts.
3099
3103
3100 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3104 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3101 the profiler can't be imported. Fix for Debian, which removed
3105 the profiler can't be imported. Fix for Debian, which removed
3102 profile.py because of License issues. I applied a slightly
3106 profile.py because of License issues. I applied a slightly
3103 modified version of the original Debian patch at
3107 modified version of the original Debian patch at
3104 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3108 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3105
3109
3106 2005-02-17 Fernando Perez <fperez@colorado.edu>
3110 2005-02-17 Fernando Perez <fperez@colorado.edu>
3107
3111
3108 * IPython/genutils.py (native_line_ends): Fix bug which would
3112 * IPython/genutils.py (native_line_ends): Fix bug which would
3109 cause improper line-ends under win32 b/c I was not opening files
3113 cause improper line-ends under win32 b/c I was not opening files
3110 in binary mode. Bug report and fix thanks to Ville.
3114 in binary mode. Bug report and fix thanks to Ville.
3111
3115
3112 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3116 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3113 trying to catch spurious foo[1] autocalls. My fix actually broke
3117 trying to catch spurious foo[1] autocalls. My fix actually broke
3114 ',/' autoquote/call with explicit escape (bad regexp).
3118 ',/' autoquote/call with explicit escape (bad regexp).
3115
3119
3116 2005-02-15 *** Released version 0.6.11
3120 2005-02-15 *** Released version 0.6.11
3117
3121
3118 2005-02-14 Fernando Perez <fperez@colorado.edu>
3122 2005-02-14 Fernando Perez <fperez@colorado.edu>
3119
3123
3120 * IPython/background_jobs.py: New background job management
3124 * IPython/background_jobs.py: New background job management
3121 subsystem. This is implemented via a new set of classes, and
3125 subsystem. This is implemented via a new set of classes, and
3122 IPython now provides a builtin 'jobs' object for background job
3126 IPython now provides a builtin 'jobs' object for background job
3123 execution. A convenience %bg magic serves as a lightweight
3127 execution. A convenience %bg magic serves as a lightweight
3124 frontend for starting the more common type of calls. This was
3128 frontend for starting the more common type of calls. This was
3125 inspired by discussions with B. Granger and the BackgroundCommand
3129 inspired by discussions with B. Granger and the BackgroundCommand
3126 class described in the book Python Scripting for Computational
3130 class described in the book Python Scripting for Computational
3127 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3131 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3128 (although ultimately no code from this text was used, as IPython's
3132 (although ultimately no code from this text was used, as IPython's
3129 system is a separate implementation).
3133 system is a separate implementation).
3130
3134
3131 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3135 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3132 to control the completion of single/double underscore names
3136 to control the completion of single/double underscore names
3133 separately. As documented in the example ipytonrc file, the
3137 separately. As documented in the example ipytonrc file, the
3134 readline_omit__names variable can now be set to 2, to omit even
3138 readline_omit__names variable can now be set to 2, to omit even
3135 single underscore names. Thanks to a patch by Brian Wong
3139 single underscore names. Thanks to a patch by Brian Wong
3136 <BrianWong-AT-AirgoNetworks.Com>.
3140 <BrianWong-AT-AirgoNetworks.Com>.
3137 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3141 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3138 be autocalled as foo([1]) if foo were callable. A problem for
3142 be autocalled as foo([1]) if foo were callable. A problem for
3139 things which are both callable and implement __getitem__.
3143 things which are both callable and implement __getitem__.
3140 (init_readline): Fix autoindentation for win32. Thanks to a patch
3144 (init_readline): Fix autoindentation for win32. Thanks to a patch
3141 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3145 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3142
3146
3143 2005-02-12 Fernando Perez <fperez@colorado.edu>
3147 2005-02-12 Fernando Perez <fperez@colorado.edu>
3144
3148
3145 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3149 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3146 which I had written long ago to sort out user error messages which
3150 which I had written long ago to sort out user error messages which
3147 may occur during startup. This seemed like a good idea initially,
3151 may occur during startup. This seemed like a good idea initially,
3148 but it has proven a disaster in retrospect. I don't want to
3152 but it has proven a disaster in retrospect. I don't want to
3149 change much code for now, so my fix is to set the internal 'debug'
3153 change much code for now, so my fix is to set the internal 'debug'
3150 flag to true everywhere, whose only job was precisely to control
3154 flag to true everywhere, whose only job was precisely to control
3151 this subsystem. This closes issue 28 (as well as avoiding all
3155 this subsystem. This closes issue 28 (as well as avoiding all
3152 sorts of strange hangups which occur from time to time).
3156 sorts of strange hangups which occur from time to time).
3153
3157
3154 2005-02-07 Fernando Perez <fperez@colorado.edu>
3158 2005-02-07 Fernando Perez <fperez@colorado.edu>
3155
3159
3156 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3160 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3157 previous call produced a syntax error.
3161 previous call produced a syntax error.
3158
3162
3159 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3163 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3160 classes without constructor.
3164 classes without constructor.
3161
3165
3162 2005-02-06 Fernando Perez <fperez@colorado.edu>
3166 2005-02-06 Fernando Perez <fperez@colorado.edu>
3163
3167
3164 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3168 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3165 completions with the results of each matcher, so we return results
3169 completions with the results of each matcher, so we return results
3166 to the user from all namespaces. This breaks with ipython
3170 to the user from all namespaces. This breaks with ipython
3167 tradition, but I think it's a nicer behavior. Now you get all
3171 tradition, but I think it's a nicer behavior. Now you get all
3168 possible completions listed, from all possible namespaces (python,
3172 possible completions listed, from all possible namespaces (python,
3169 filesystem, magics...) After a request by John Hunter
3173 filesystem, magics...) After a request by John Hunter
3170 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3174 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3171
3175
3172 2005-02-05 Fernando Perez <fperez@colorado.edu>
3176 2005-02-05 Fernando Perez <fperez@colorado.edu>
3173
3177
3174 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3178 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3175 the call had quote characters in it (the quotes were stripped).
3179 the call had quote characters in it (the quotes were stripped).
3176
3180
3177 2005-01-31 Fernando Perez <fperez@colorado.edu>
3181 2005-01-31 Fernando Perez <fperez@colorado.edu>
3178
3182
3179 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3183 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3180 Itpl.itpl() to make the code more robust against psyco
3184 Itpl.itpl() to make the code more robust against psyco
3181 optimizations.
3185 optimizations.
3182
3186
3183 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3187 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3184 of causing an exception. Quicker, cleaner.
3188 of causing an exception. Quicker, cleaner.
3185
3189
3186 2005-01-28 Fernando Perez <fperez@colorado.edu>
3190 2005-01-28 Fernando Perez <fperez@colorado.edu>
3187
3191
3188 * scripts/ipython_win_post_install.py (install): hardcode
3192 * scripts/ipython_win_post_install.py (install): hardcode
3189 sys.prefix+'python.exe' as the executable path. It turns out that
3193 sys.prefix+'python.exe' as the executable path. It turns out that
3190 during the post-installation run, sys.executable resolves to the
3194 during the post-installation run, sys.executable resolves to the
3191 name of the binary installer! I should report this as a distutils
3195 name of the binary installer! I should report this as a distutils
3192 bug, I think. I updated the .10 release with this tiny fix, to
3196 bug, I think. I updated the .10 release with this tiny fix, to
3193 avoid annoying the lists further.
3197 avoid annoying the lists further.
3194
3198
3195 2005-01-27 *** Released version 0.6.10
3199 2005-01-27 *** Released version 0.6.10
3196
3200
3197 2005-01-27 Fernando Perez <fperez@colorado.edu>
3201 2005-01-27 Fernando Perez <fperez@colorado.edu>
3198
3202
3199 * IPython/numutils.py (norm): Added 'inf' as optional name for
3203 * IPython/numutils.py (norm): Added 'inf' as optional name for
3200 L-infinity norm, included references to mathworld.com for vector
3204 L-infinity norm, included references to mathworld.com for vector
3201 norm definitions.
3205 norm definitions.
3202 (amin/amax): added amin/amax for array min/max. Similar to what
3206 (amin/amax): added amin/amax for array min/max. Similar to what
3203 pylab ships with after the recent reorganization of names.
3207 pylab ships with after the recent reorganization of names.
3204 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3208 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3205
3209
3206 * ipython.el: committed Alex's recent fixes and improvements.
3210 * ipython.el: committed Alex's recent fixes and improvements.
3207 Tested with python-mode from CVS, and it looks excellent. Since
3211 Tested with python-mode from CVS, and it looks excellent. Since
3208 python-mode hasn't released anything in a while, I'm temporarily
3212 python-mode hasn't released anything in a while, I'm temporarily
3209 putting a copy of today's CVS (v 4.70) of python-mode in:
3213 putting a copy of today's CVS (v 4.70) of python-mode in:
3210 http://ipython.scipy.org/tmp/python-mode.el
3214 http://ipython.scipy.org/tmp/python-mode.el
3211
3215
3212 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3216 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3213 sys.executable for the executable name, instead of assuming it's
3217 sys.executable for the executable name, instead of assuming it's
3214 called 'python.exe' (the post-installer would have produced broken
3218 called 'python.exe' (the post-installer would have produced broken
3215 setups on systems with a differently named python binary).
3219 setups on systems with a differently named python binary).
3216
3220
3217 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3221 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3218 references to os.linesep, to make the code more
3222 references to os.linesep, to make the code more
3219 platform-independent. This is also part of the win32 coloring
3223 platform-independent. This is also part of the win32 coloring
3220 fixes.
3224 fixes.
3221
3225
3222 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3226 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3223 lines, which actually cause coloring bugs because the length of
3227 lines, which actually cause coloring bugs because the length of
3224 the line is very difficult to correctly compute with embedded
3228 the line is very difficult to correctly compute with embedded
3225 escapes. This was the source of all the coloring problems under
3229 escapes. This was the source of all the coloring problems under
3226 Win32. I think that _finally_, Win32 users have a properly
3230 Win32. I think that _finally_, Win32 users have a properly
3227 working ipython in all respects. This would never have happened
3231 working ipython in all respects. This would never have happened
3228 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3232 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3229
3233
3230 2005-01-26 *** Released version 0.6.9
3234 2005-01-26 *** Released version 0.6.9
3231
3235
3232 2005-01-25 Fernando Perez <fperez@colorado.edu>
3236 2005-01-25 Fernando Perez <fperez@colorado.edu>
3233
3237
3234 * setup.py: finally, we have a true Windows installer, thanks to
3238 * setup.py: finally, we have a true Windows installer, thanks to
3235 the excellent work of Viktor Ransmayr
3239 the excellent work of Viktor Ransmayr
3236 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3240 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3237 Windows users. The setup routine is quite a bit cleaner thanks to
3241 Windows users. The setup routine is quite a bit cleaner thanks to
3238 this, and the post-install script uses the proper functions to
3242 this, and the post-install script uses the proper functions to
3239 allow a clean de-installation using the standard Windows Control
3243 allow a clean de-installation using the standard Windows Control
3240 Panel.
3244 Panel.
3241
3245
3242 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3246 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3243 environment variable under all OSes (including win32) if
3247 environment variable under all OSes (including win32) if
3244 available. This will give consistency to win32 users who have set
3248 available. This will give consistency to win32 users who have set
3245 this variable for any reason. If os.environ['HOME'] fails, the
3249 this variable for any reason. If os.environ['HOME'] fails, the
3246 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3250 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3247
3251
3248 2005-01-24 Fernando Perez <fperez@colorado.edu>
3252 2005-01-24 Fernando Perez <fperez@colorado.edu>
3249
3253
3250 * IPython/numutils.py (empty_like): add empty_like(), similar to
3254 * IPython/numutils.py (empty_like): add empty_like(), similar to
3251 zeros_like() but taking advantage of the new empty() Numeric routine.
3255 zeros_like() but taking advantage of the new empty() Numeric routine.
3252
3256
3253 2005-01-23 *** Released version 0.6.8
3257 2005-01-23 *** Released version 0.6.8
3254
3258
3255 2005-01-22 Fernando Perez <fperez@colorado.edu>
3259 2005-01-22 Fernando Perez <fperez@colorado.edu>
3256
3260
3257 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3261 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3258 automatic show() calls. After discussing things with JDH, it
3262 automatic show() calls. After discussing things with JDH, it
3259 turns out there are too many corner cases where this can go wrong.
3263 turns out there are too many corner cases where this can go wrong.
3260 It's best not to try to be 'too smart', and simply have ipython
3264 It's best not to try to be 'too smart', and simply have ipython
3261 reproduce as much as possible the default behavior of a normal
3265 reproduce as much as possible the default behavior of a normal
3262 python shell.
3266 python shell.
3263
3267
3264 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3268 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3265 line-splitting regexp and _prefilter() to avoid calling getattr()
3269 line-splitting regexp and _prefilter() to avoid calling getattr()
3266 on assignments. This closes
3270 on assignments. This closes
3267 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3271 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3268 readline uses getattr(), so a simple <TAB> keypress is still
3272 readline uses getattr(), so a simple <TAB> keypress is still
3269 enough to trigger getattr() calls on an object.
3273 enough to trigger getattr() calls on an object.
3270
3274
3271 2005-01-21 Fernando Perez <fperez@colorado.edu>
3275 2005-01-21 Fernando Perez <fperez@colorado.edu>
3272
3276
3273 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3277 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3274 docstring under pylab so it doesn't mask the original.
3278 docstring under pylab so it doesn't mask the original.
3275
3279
3276 2005-01-21 *** Released version 0.6.7
3280 2005-01-21 *** Released version 0.6.7
3277
3281
3278 2005-01-21 Fernando Perez <fperez@colorado.edu>
3282 2005-01-21 Fernando Perez <fperez@colorado.edu>
3279
3283
3280 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3284 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3281 signal handling for win32 users in multithreaded mode.
3285 signal handling for win32 users in multithreaded mode.
3282
3286
3283 2005-01-17 Fernando Perez <fperez@colorado.edu>
3287 2005-01-17 Fernando Perez <fperez@colorado.edu>
3284
3288
3285 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3289 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3286 instances with no __init__. After a crash report by Norbert Nemec
3290 instances with no __init__. After a crash report by Norbert Nemec
3287 <Norbert-AT-nemec-online.de>.
3291 <Norbert-AT-nemec-online.de>.
3288
3292
3289 2005-01-14 Fernando Perez <fperez@colorado.edu>
3293 2005-01-14 Fernando Perez <fperez@colorado.edu>
3290
3294
3291 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3295 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3292 names for verbose exceptions, when multiple dotted names and the
3296 names for verbose exceptions, when multiple dotted names and the
3293 'parent' object were present on the same line.
3297 'parent' object were present on the same line.
3294
3298
3295 2005-01-11 Fernando Perez <fperez@colorado.edu>
3299 2005-01-11 Fernando Perez <fperez@colorado.edu>
3296
3300
3297 * IPython/genutils.py (flag_calls): new utility to trap and flag
3301 * IPython/genutils.py (flag_calls): new utility to trap and flag
3298 calls in functions. I need it to clean up matplotlib support.
3302 calls in functions. I need it to clean up matplotlib support.
3299 Also removed some deprecated code in genutils.
3303 Also removed some deprecated code in genutils.
3300
3304
3301 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3305 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3302 that matplotlib scripts called with %run, which don't call show()
3306 that matplotlib scripts called with %run, which don't call show()
3303 themselves, still have their plotting windows open.
3307 themselves, still have their plotting windows open.
3304
3308
3305 2005-01-05 Fernando Perez <fperez@colorado.edu>
3309 2005-01-05 Fernando Perez <fperez@colorado.edu>
3306
3310
3307 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3311 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3308 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3312 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3309
3313
3310 2004-12-19 Fernando Perez <fperez@colorado.edu>
3314 2004-12-19 Fernando Perez <fperez@colorado.edu>
3311
3315
3312 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3316 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3313 parent_runcode, which was an eyesore. The same result can be
3317 parent_runcode, which was an eyesore. The same result can be
3314 obtained with Python's regular superclass mechanisms.
3318 obtained with Python's regular superclass mechanisms.
3315
3319
3316 2004-12-17 Fernando Perez <fperez@colorado.edu>
3320 2004-12-17 Fernando Perez <fperez@colorado.edu>
3317
3321
3318 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3322 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3319 reported by Prabhu.
3323 reported by Prabhu.
3320 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3324 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3321 sys.stderr) instead of explicitly calling sys.stderr. This helps
3325 sys.stderr) instead of explicitly calling sys.stderr. This helps
3322 maintain our I/O abstractions clean, for future GUI embeddings.
3326 maintain our I/O abstractions clean, for future GUI embeddings.
3323
3327
3324 * IPython/genutils.py (info): added new utility for sys.stderr
3328 * IPython/genutils.py (info): added new utility for sys.stderr
3325 unified info message handling (thin wrapper around warn()).
3329 unified info message handling (thin wrapper around warn()).
3326
3330
3327 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3331 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3328 composite (dotted) names on verbose exceptions.
3332 composite (dotted) names on verbose exceptions.
3329 (VerboseTB.nullrepr): harden against another kind of errors which
3333 (VerboseTB.nullrepr): harden against another kind of errors which
3330 Python's inspect module can trigger, and which were crashing
3334 Python's inspect module can trigger, and which were crashing
3331 IPython. Thanks to a report by Marco Lombardi
3335 IPython. Thanks to a report by Marco Lombardi
3332 <mlombard-AT-ma010192.hq.eso.org>.
3336 <mlombard-AT-ma010192.hq.eso.org>.
3333
3337
3334 2004-12-13 *** Released version 0.6.6
3338 2004-12-13 *** Released version 0.6.6
3335
3339
3336 2004-12-12 Fernando Perez <fperez@colorado.edu>
3340 2004-12-12 Fernando Perez <fperez@colorado.edu>
3337
3341
3338 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3342 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3339 generated by pygtk upon initialization if it was built without
3343 generated by pygtk upon initialization if it was built without
3340 threads (for matplotlib users). After a crash reported by
3344 threads (for matplotlib users). After a crash reported by
3341 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3345 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3342
3346
3343 * IPython/ipmaker.py (make_IPython): fix small bug in the
3347 * IPython/ipmaker.py (make_IPython): fix small bug in the
3344 import_some parameter for multiple imports.
3348 import_some parameter for multiple imports.
3345
3349
3346 * IPython/iplib.py (ipmagic): simplified the interface of
3350 * IPython/iplib.py (ipmagic): simplified the interface of
3347 ipmagic() to take a single string argument, just as it would be
3351 ipmagic() to take a single string argument, just as it would be
3348 typed at the IPython cmd line.
3352 typed at the IPython cmd line.
3349 (ipalias): Added new ipalias() with an interface identical to
3353 (ipalias): Added new ipalias() with an interface identical to
3350 ipmagic(). This completes exposing a pure python interface to the
3354 ipmagic(). This completes exposing a pure python interface to the
3351 alias and magic system, which can be used in loops or more complex
3355 alias and magic system, which can be used in loops or more complex
3352 code where IPython's automatic line mangling is not active.
3356 code where IPython's automatic line mangling is not active.
3353
3357
3354 * IPython/genutils.py (timing): changed interface of timing to
3358 * IPython/genutils.py (timing): changed interface of timing to
3355 simply run code once, which is the most common case. timings()
3359 simply run code once, which is the most common case. timings()
3356 remains unchanged, for the cases where you want multiple runs.
3360 remains unchanged, for the cases where you want multiple runs.
3357
3361
3358 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3362 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3359 bug where Python2.2 crashes with exec'ing code which does not end
3363 bug where Python2.2 crashes with exec'ing code which does not end
3360 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3364 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3361 before.
3365 before.
3362
3366
3363 2004-12-10 Fernando Perez <fperez@colorado.edu>
3367 2004-12-10 Fernando Perez <fperez@colorado.edu>
3364
3368
3365 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3369 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3366 -t to -T, to accomodate the new -t flag in %run (the %run and
3370 -t to -T, to accomodate the new -t flag in %run (the %run and
3367 %prun options are kind of intermixed, and it's not easy to change
3371 %prun options are kind of intermixed, and it's not easy to change
3368 this with the limitations of python's getopt).
3372 this with the limitations of python's getopt).
3369
3373
3370 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3374 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3371 the execution of scripts. It's not as fine-tuned as timeit.py,
3375 the execution of scripts. It's not as fine-tuned as timeit.py,
3372 but it works from inside ipython (and under 2.2, which lacks
3376 but it works from inside ipython (and under 2.2, which lacks
3373 timeit.py). Optionally a number of runs > 1 can be given for
3377 timeit.py). Optionally a number of runs > 1 can be given for
3374 timing very short-running code.
3378 timing very short-running code.
3375
3379
3376 * IPython/genutils.py (uniq_stable): new routine which returns a
3380 * IPython/genutils.py (uniq_stable): new routine which returns a
3377 list of unique elements in any iterable, but in stable order of
3381 list of unique elements in any iterable, but in stable order of
3378 appearance. I needed this for the ultraTB fixes, and it's a handy
3382 appearance. I needed this for the ultraTB fixes, and it's a handy
3379 utility.
3383 utility.
3380
3384
3381 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3385 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3382 dotted names in Verbose exceptions. This had been broken since
3386 dotted names in Verbose exceptions. This had been broken since
3383 the very start, now x.y will properly be printed in a Verbose
3387 the very start, now x.y will properly be printed in a Verbose
3384 traceback, instead of x being shown and y appearing always as an
3388 traceback, instead of x being shown and y appearing always as an
3385 'undefined global'. Getting this to work was a bit tricky,
3389 'undefined global'. Getting this to work was a bit tricky,
3386 because by default python tokenizers are stateless. Saved by
3390 because by default python tokenizers are stateless. Saved by
3387 python's ability to easily add a bit of state to an arbitrary
3391 python's ability to easily add a bit of state to an arbitrary
3388 function (without needing to build a full-blown callable object).
3392 function (without needing to build a full-blown callable object).
3389
3393
3390 Also big cleanup of this code, which had horrendous runtime
3394 Also big cleanup of this code, which had horrendous runtime
3391 lookups of zillions of attributes for colorization. Moved all
3395 lookups of zillions of attributes for colorization. Moved all
3392 this code into a few templates, which make it cleaner and quicker.
3396 this code into a few templates, which make it cleaner and quicker.
3393
3397
3394 Printout quality was also improved for Verbose exceptions: one
3398 Printout quality was also improved for Verbose exceptions: one
3395 variable per line, and memory addresses are printed (this can be
3399 variable per line, and memory addresses are printed (this can be
3396 quite handy in nasty debugging situations, which is what Verbose
3400 quite handy in nasty debugging situations, which is what Verbose
3397 is for).
3401 is for).
3398
3402
3399 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3403 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3400 the command line as scripts to be loaded by embedded instances.
3404 the command line as scripts to be loaded by embedded instances.
3401 Doing so has the potential for an infinite recursion if there are
3405 Doing so has the potential for an infinite recursion if there are
3402 exceptions thrown in the process. This fixes a strange crash
3406 exceptions thrown in the process. This fixes a strange crash
3403 reported by Philippe MULLER <muller-AT-irit.fr>.
3407 reported by Philippe MULLER <muller-AT-irit.fr>.
3404
3408
3405 2004-12-09 Fernando Perez <fperez@colorado.edu>
3409 2004-12-09 Fernando Perez <fperez@colorado.edu>
3406
3410
3407 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3411 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3408 to reflect new names in matplotlib, which now expose the
3412 to reflect new names in matplotlib, which now expose the
3409 matlab-compatible interface via a pylab module instead of the
3413 matlab-compatible interface via a pylab module instead of the
3410 'matlab' name. The new code is backwards compatible, so users of
3414 'matlab' name. The new code is backwards compatible, so users of
3411 all matplotlib versions are OK. Patch by J. Hunter.
3415 all matplotlib versions are OK. Patch by J. Hunter.
3412
3416
3413 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3417 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3414 of __init__ docstrings for instances (class docstrings are already
3418 of __init__ docstrings for instances (class docstrings are already
3415 automatically printed). Instances with customized docstrings
3419 automatically printed). Instances with customized docstrings
3416 (indep. of the class) are also recognized and all 3 separate
3420 (indep. of the class) are also recognized and all 3 separate
3417 docstrings are printed (instance, class, constructor). After some
3421 docstrings are printed (instance, class, constructor). After some
3418 comments/suggestions by J. Hunter.
3422 comments/suggestions by J. Hunter.
3419
3423
3420 2004-12-05 Fernando Perez <fperez@colorado.edu>
3424 2004-12-05 Fernando Perez <fperez@colorado.edu>
3421
3425
3422 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3426 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3423 warnings when tab-completion fails and triggers an exception.
3427 warnings when tab-completion fails and triggers an exception.
3424
3428
3425 2004-12-03 Fernando Perez <fperez@colorado.edu>
3429 2004-12-03 Fernando Perez <fperez@colorado.edu>
3426
3430
3427 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3431 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3428 be triggered when using 'run -p'. An incorrect option flag was
3432 be triggered when using 'run -p'. An incorrect option flag was
3429 being set ('d' instead of 'D').
3433 being set ('d' instead of 'D').
3430 (manpage): fix missing escaped \- sign.
3434 (manpage): fix missing escaped \- sign.
3431
3435
3432 2004-11-30 *** Released version 0.6.5
3436 2004-11-30 *** Released version 0.6.5
3433
3437
3434 2004-11-30 Fernando Perez <fperez@colorado.edu>
3438 2004-11-30 Fernando Perez <fperez@colorado.edu>
3435
3439
3436 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3440 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3437 setting with -d option.
3441 setting with -d option.
3438
3442
3439 * setup.py (docfiles): Fix problem where the doc glob I was using
3443 * setup.py (docfiles): Fix problem where the doc glob I was using
3440 was COMPLETELY BROKEN. It was giving the right files by pure
3444 was COMPLETELY BROKEN. It was giving the right files by pure
3441 accident, but failed once I tried to include ipython.el. Note:
3445 accident, but failed once I tried to include ipython.el. Note:
3442 glob() does NOT allow you to do exclusion on multiple endings!
3446 glob() does NOT allow you to do exclusion on multiple endings!
3443
3447
3444 2004-11-29 Fernando Perez <fperez@colorado.edu>
3448 2004-11-29 Fernando Perez <fperez@colorado.edu>
3445
3449
3446 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3450 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3447 the manpage as the source. Better formatting & consistency.
3451 the manpage as the source. Better formatting & consistency.
3448
3452
3449 * IPython/Magic.py (magic_run): Added new -d option, to run
3453 * IPython/Magic.py (magic_run): Added new -d option, to run
3450 scripts under the control of the python pdb debugger. Note that
3454 scripts under the control of the python pdb debugger. Note that
3451 this required changing the %prun option -d to -D, to avoid a clash
3455 this required changing the %prun option -d to -D, to avoid a clash
3452 (since %run must pass options to %prun, and getopt is too dumb to
3456 (since %run must pass options to %prun, and getopt is too dumb to
3453 handle options with string values with embedded spaces). Thanks
3457 handle options with string values with embedded spaces). Thanks
3454 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3458 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3455 (magic_who_ls): added type matching to %who and %whos, so that one
3459 (magic_who_ls): added type matching to %who and %whos, so that one
3456 can filter their output to only include variables of certain
3460 can filter their output to only include variables of certain
3457 types. Another suggestion by Matthew.
3461 types. Another suggestion by Matthew.
3458 (magic_whos): Added memory summaries in kb and Mb for arrays.
3462 (magic_whos): Added memory summaries in kb and Mb for arrays.
3459 (magic_who): Improve formatting (break lines every 9 vars).
3463 (magic_who): Improve formatting (break lines every 9 vars).
3460
3464
3461 2004-11-28 Fernando Perez <fperez@colorado.edu>
3465 2004-11-28 Fernando Perez <fperez@colorado.edu>
3462
3466
3463 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3467 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3464 cache when empty lines were present.
3468 cache when empty lines were present.
3465
3469
3466 2004-11-24 Fernando Perez <fperez@colorado.edu>
3470 2004-11-24 Fernando Perez <fperez@colorado.edu>
3467
3471
3468 * IPython/usage.py (__doc__): document the re-activated threading
3472 * IPython/usage.py (__doc__): document the re-activated threading
3469 options for WX and GTK.
3473 options for WX and GTK.
3470
3474
3471 2004-11-23 Fernando Perez <fperez@colorado.edu>
3475 2004-11-23 Fernando Perez <fperez@colorado.edu>
3472
3476
3473 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3477 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3474 the -wthread and -gthread options, along with a new -tk one to try
3478 the -wthread and -gthread options, along with a new -tk one to try
3475 and coordinate Tk threading with wx/gtk. The tk support is very
3479 and coordinate Tk threading with wx/gtk. The tk support is very
3476 platform dependent, since it seems to require Tcl and Tk to be
3480 platform dependent, since it seems to require Tcl and Tk to be
3477 built with threads (Fedora1/2 appears NOT to have it, but in
3481 built with threads (Fedora1/2 appears NOT to have it, but in
3478 Prabhu's Debian boxes it works OK). But even with some Tk
3482 Prabhu's Debian boxes it works OK). But even with some Tk
3479 limitations, this is a great improvement.
3483 limitations, this is a great improvement.
3480
3484
3481 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3485 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3482 info in user prompts. Patch by Prabhu.
3486 info in user prompts. Patch by Prabhu.
3483
3487
3484 2004-11-18 Fernando Perez <fperez@colorado.edu>
3488 2004-11-18 Fernando Perez <fperez@colorado.edu>
3485
3489
3486 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3490 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3487 EOFErrors and bail, to avoid infinite loops if a non-terminating
3491 EOFErrors and bail, to avoid infinite loops if a non-terminating
3488 file is fed into ipython. Patch submitted in issue 19 by user,
3492 file is fed into ipython. Patch submitted in issue 19 by user,
3489 many thanks.
3493 many thanks.
3490
3494
3491 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3495 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3492 autoquote/parens in continuation prompts, which can cause lots of
3496 autoquote/parens in continuation prompts, which can cause lots of
3493 problems. Closes roundup issue 20.
3497 problems. Closes roundup issue 20.
3494
3498
3495 2004-11-17 Fernando Perez <fperez@colorado.edu>
3499 2004-11-17 Fernando Perez <fperez@colorado.edu>
3496
3500
3497 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3501 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3498 reported as debian bug #280505. I'm not sure my local changelog
3502 reported as debian bug #280505. I'm not sure my local changelog
3499 entry has the proper debian format (Jack?).
3503 entry has the proper debian format (Jack?).
3500
3504
3501 2004-11-08 *** Released version 0.6.4
3505 2004-11-08 *** Released version 0.6.4
3502
3506
3503 2004-11-08 Fernando Perez <fperez@colorado.edu>
3507 2004-11-08 Fernando Perez <fperez@colorado.edu>
3504
3508
3505 * IPython/iplib.py (init_readline): Fix exit message for Windows
3509 * IPython/iplib.py (init_readline): Fix exit message for Windows
3506 when readline is active. Thanks to a report by Eric Jones
3510 when readline is active. Thanks to a report by Eric Jones
3507 <eric-AT-enthought.com>.
3511 <eric-AT-enthought.com>.
3508
3512
3509 2004-11-07 Fernando Perez <fperez@colorado.edu>
3513 2004-11-07 Fernando Perez <fperez@colorado.edu>
3510
3514
3511 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3515 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3512 sometimes seen by win2k/cygwin users.
3516 sometimes seen by win2k/cygwin users.
3513
3517
3514 2004-11-06 Fernando Perez <fperez@colorado.edu>
3518 2004-11-06 Fernando Perez <fperez@colorado.edu>
3515
3519
3516 * IPython/iplib.py (interact): Change the handling of %Exit from
3520 * IPython/iplib.py (interact): Change the handling of %Exit from
3517 trying to propagate a SystemExit to an internal ipython flag.
3521 trying to propagate a SystemExit to an internal ipython flag.
3518 This is less elegant than using Python's exception mechanism, but
3522 This is less elegant than using Python's exception mechanism, but
3519 I can't get that to work reliably with threads, so under -pylab
3523 I can't get that to work reliably with threads, so under -pylab
3520 %Exit was hanging IPython. Cross-thread exception handling is
3524 %Exit was hanging IPython. Cross-thread exception handling is
3521 really a bitch. Thaks to a bug report by Stephen Walton
3525 really a bitch. Thaks to a bug report by Stephen Walton
3522 <stephen.walton-AT-csun.edu>.
3526 <stephen.walton-AT-csun.edu>.
3523
3527
3524 2004-11-04 Fernando Perez <fperez@colorado.edu>
3528 2004-11-04 Fernando Perez <fperez@colorado.edu>
3525
3529
3526 * IPython/iplib.py (raw_input_original): store a pointer to the
3530 * IPython/iplib.py (raw_input_original): store a pointer to the
3527 true raw_input to harden against code which can modify it
3531 true raw_input to harden against code which can modify it
3528 (wx.py.PyShell does this and would otherwise crash ipython).
3532 (wx.py.PyShell does this and would otherwise crash ipython).
3529 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3533 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3530
3534
3531 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3535 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3532 Ctrl-C problem, which does not mess up the input line.
3536 Ctrl-C problem, which does not mess up the input line.
3533
3537
3534 2004-11-03 Fernando Perez <fperez@colorado.edu>
3538 2004-11-03 Fernando Perez <fperez@colorado.edu>
3535
3539
3536 * IPython/Release.py: Changed licensing to BSD, in all files.
3540 * IPython/Release.py: Changed licensing to BSD, in all files.
3537 (name): lowercase name for tarball/RPM release.
3541 (name): lowercase name for tarball/RPM release.
3538
3542
3539 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3543 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3540 use throughout ipython.
3544 use throughout ipython.
3541
3545
3542 * IPython/Magic.py (Magic._ofind): Switch to using the new
3546 * IPython/Magic.py (Magic._ofind): Switch to using the new
3543 OInspect.getdoc() function.
3547 OInspect.getdoc() function.
3544
3548
3545 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3549 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3546 of the line currently being canceled via Ctrl-C. It's extremely
3550 of the line currently being canceled via Ctrl-C. It's extremely
3547 ugly, but I don't know how to do it better (the problem is one of
3551 ugly, but I don't know how to do it better (the problem is one of
3548 handling cross-thread exceptions).
3552 handling cross-thread exceptions).
3549
3553
3550 2004-10-28 Fernando Perez <fperez@colorado.edu>
3554 2004-10-28 Fernando Perez <fperez@colorado.edu>
3551
3555
3552 * IPython/Shell.py (signal_handler): add signal handlers to trap
3556 * IPython/Shell.py (signal_handler): add signal handlers to trap
3553 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3557 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3554 report by Francesc Alted.
3558 report by Francesc Alted.
3555
3559
3556 2004-10-21 Fernando Perez <fperez@colorado.edu>
3560 2004-10-21 Fernando Perez <fperez@colorado.edu>
3557
3561
3558 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3562 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3559 to % for pysh syntax extensions.
3563 to % for pysh syntax extensions.
3560
3564
3561 2004-10-09 Fernando Perez <fperez@colorado.edu>
3565 2004-10-09 Fernando Perez <fperez@colorado.edu>
3562
3566
3563 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3567 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3564 arrays to print a more useful summary, without calling str(arr).
3568 arrays to print a more useful summary, without calling str(arr).
3565 This avoids the problem of extremely lengthy computations which
3569 This avoids the problem of extremely lengthy computations which
3566 occur if arr is large, and appear to the user as a system lockup
3570 occur if arr is large, and appear to the user as a system lockup
3567 with 100% cpu activity. After a suggestion by Kristian Sandberg
3571 with 100% cpu activity. After a suggestion by Kristian Sandberg
3568 <Kristian.Sandberg@colorado.edu>.
3572 <Kristian.Sandberg@colorado.edu>.
3569 (Magic.__init__): fix bug in global magic escapes not being
3573 (Magic.__init__): fix bug in global magic escapes not being
3570 correctly set.
3574 correctly set.
3571
3575
3572 2004-10-08 Fernando Perez <fperez@colorado.edu>
3576 2004-10-08 Fernando Perez <fperez@colorado.edu>
3573
3577
3574 * IPython/Magic.py (__license__): change to absolute imports of
3578 * IPython/Magic.py (__license__): change to absolute imports of
3575 ipython's own internal packages, to start adapting to the absolute
3579 ipython's own internal packages, to start adapting to the absolute
3576 import requirement of PEP-328.
3580 import requirement of PEP-328.
3577
3581
3578 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3582 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3579 files, and standardize author/license marks through the Release
3583 files, and standardize author/license marks through the Release
3580 module instead of having per/file stuff (except for files with
3584 module instead of having per/file stuff (except for files with
3581 particular licenses, like the MIT/PSF-licensed codes).
3585 particular licenses, like the MIT/PSF-licensed codes).
3582
3586
3583 * IPython/Debugger.py: remove dead code for python 2.1
3587 * IPython/Debugger.py: remove dead code for python 2.1
3584
3588
3585 2004-10-04 Fernando Perez <fperez@colorado.edu>
3589 2004-10-04 Fernando Perez <fperez@colorado.edu>
3586
3590
3587 * IPython/iplib.py (ipmagic): New function for accessing magics
3591 * IPython/iplib.py (ipmagic): New function for accessing magics
3588 via a normal python function call.
3592 via a normal python function call.
3589
3593
3590 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3594 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3591 from '@' to '%', to accomodate the new @decorator syntax of python
3595 from '@' to '%', to accomodate the new @decorator syntax of python
3592 2.4.
3596 2.4.
3593
3597
3594 2004-09-29 Fernando Perez <fperez@colorado.edu>
3598 2004-09-29 Fernando Perez <fperez@colorado.edu>
3595
3599
3596 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3600 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3597 matplotlib.use to prevent running scripts which try to switch
3601 matplotlib.use to prevent running scripts which try to switch
3598 interactive backends from within ipython. This will just crash
3602 interactive backends from within ipython. This will just crash
3599 the python interpreter, so we can't allow it (but a detailed error
3603 the python interpreter, so we can't allow it (but a detailed error
3600 is given to the user).
3604 is given to the user).
3601
3605
3602 2004-09-28 Fernando Perez <fperez@colorado.edu>
3606 2004-09-28 Fernando Perez <fperez@colorado.edu>
3603
3607
3604 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3608 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3605 matplotlib-related fixes so that using @run with non-matplotlib
3609 matplotlib-related fixes so that using @run with non-matplotlib
3606 scripts doesn't pop up spurious plot windows. This requires
3610 scripts doesn't pop up spurious plot windows. This requires
3607 matplotlib >= 0.63, where I had to make some changes as well.
3611 matplotlib >= 0.63, where I had to make some changes as well.
3608
3612
3609 * IPython/ipmaker.py (make_IPython): update version requirement to
3613 * IPython/ipmaker.py (make_IPython): update version requirement to
3610 python 2.2.
3614 python 2.2.
3611
3615
3612 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3616 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3613 banner arg for embedded customization.
3617 banner arg for embedded customization.
3614
3618
3615 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3619 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3616 explicit uses of __IP as the IPython's instance name. Now things
3620 explicit uses of __IP as the IPython's instance name. Now things
3617 are properly handled via the shell.name value. The actual code
3621 are properly handled via the shell.name value. The actual code
3618 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3622 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3619 is much better than before. I'll clean things completely when the
3623 is much better than before. I'll clean things completely when the
3620 magic stuff gets a real overhaul.
3624 magic stuff gets a real overhaul.
3621
3625
3622 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3626 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3623 minor changes to debian dir.
3627 minor changes to debian dir.
3624
3628
3625 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3629 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3626 pointer to the shell itself in the interactive namespace even when
3630 pointer to the shell itself in the interactive namespace even when
3627 a user-supplied dict is provided. This is needed for embedding
3631 a user-supplied dict is provided. This is needed for embedding
3628 purposes (found by tests with Michel Sanner).
3632 purposes (found by tests with Michel Sanner).
3629
3633
3630 2004-09-27 Fernando Perez <fperez@colorado.edu>
3634 2004-09-27 Fernando Perez <fperez@colorado.edu>
3631
3635
3632 * IPython/UserConfig/ipythonrc: remove []{} from
3636 * IPython/UserConfig/ipythonrc: remove []{} from
3633 readline_remove_delims, so that things like [modname.<TAB> do
3637 readline_remove_delims, so that things like [modname.<TAB> do
3634 proper completion. This disables [].TAB, but that's a less common
3638 proper completion. This disables [].TAB, but that's a less common
3635 case than module names in list comprehensions, for example.
3639 case than module names in list comprehensions, for example.
3636 Thanks to a report by Andrea Riciputi.
3640 Thanks to a report by Andrea Riciputi.
3637
3641
3638 2004-09-09 Fernando Perez <fperez@colorado.edu>
3642 2004-09-09 Fernando Perez <fperez@colorado.edu>
3639
3643
3640 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3644 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3641 blocking problems in win32 and osx. Fix by John.
3645 blocking problems in win32 and osx. Fix by John.
3642
3646
3643 2004-09-08 Fernando Perez <fperez@colorado.edu>
3647 2004-09-08 Fernando Perez <fperez@colorado.edu>
3644
3648
3645 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3649 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3646 for Win32 and OSX. Fix by John Hunter.
3650 for Win32 and OSX. Fix by John Hunter.
3647
3651
3648 2004-08-30 *** Released version 0.6.3
3652 2004-08-30 *** Released version 0.6.3
3649
3653
3650 2004-08-30 Fernando Perez <fperez@colorado.edu>
3654 2004-08-30 Fernando Perez <fperez@colorado.edu>
3651
3655
3652 * setup.py (isfile): Add manpages to list of dependent files to be
3656 * setup.py (isfile): Add manpages to list of dependent files to be
3653 updated.
3657 updated.
3654
3658
3655 2004-08-27 Fernando Perez <fperez@colorado.edu>
3659 2004-08-27 Fernando Perez <fperez@colorado.edu>
3656
3660
3657 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3661 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3658 for now. They don't really work with standalone WX/GTK code
3662 for now. They don't really work with standalone WX/GTK code
3659 (though matplotlib IS working fine with both of those backends).
3663 (though matplotlib IS working fine with both of those backends).
3660 This will neeed much more testing. I disabled most things with
3664 This will neeed much more testing. I disabled most things with
3661 comments, so turning it back on later should be pretty easy.
3665 comments, so turning it back on later should be pretty easy.
3662
3666
3663 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3667 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3664 autocalling of expressions like r'foo', by modifying the line
3668 autocalling of expressions like r'foo', by modifying the line
3665 split regexp. Closes
3669 split regexp. Closes
3666 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3670 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3667 Riley <ipythonbugs-AT-sabi.net>.
3671 Riley <ipythonbugs-AT-sabi.net>.
3668 (InteractiveShell.mainloop): honor --nobanner with banner
3672 (InteractiveShell.mainloop): honor --nobanner with banner
3669 extensions.
3673 extensions.
3670
3674
3671 * IPython/Shell.py: Significant refactoring of all classes, so
3675 * IPython/Shell.py: Significant refactoring of all classes, so
3672 that we can really support ALL matplotlib backends and threading
3676 that we can really support ALL matplotlib backends and threading
3673 models (John spotted a bug with Tk which required this). Now we
3677 models (John spotted a bug with Tk which required this). Now we
3674 should support single-threaded, WX-threads and GTK-threads, both
3678 should support single-threaded, WX-threads and GTK-threads, both
3675 for generic code and for matplotlib.
3679 for generic code and for matplotlib.
3676
3680
3677 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3681 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3678 -pylab, to simplify things for users. Will also remove the pylab
3682 -pylab, to simplify things for users. Will also remove the pylab
3679 profile, since now all of matplotlib configuration is directly
3683 profile, since now all of matplotlib configuration is directly
3680 handled here. This also reduces startup time.
3684 handled here. This also reduces startup time.
3681
3685
3682 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3686 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3683 shell wasn't being correctly called. Also in IPShellWX.
3687 shell wasn't being correctly called. Also in IPShellWX.
3684
3688
3685 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3689 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3686 fine-tune banner.
3690 fine-tune banner.
3687
3691
3688 * IPython/numutils.py (spike): Deprecate these spike functions,
3692 * IPython/numutils.py (spike): Deprecate these spike functions,
3689 delete (long deprecated) gnuplot_exec handler.
3693 delete (long deprecated) gnuplot_exec handler.
3690
3694
3691 2004-08-26 Fernando Perez <fperez@colorado.edu>
3695 2004-08-26 Fernando Perez <fperez@colorado.edu>
3692
3696
3693 * ipython.1: Update for threading options, plus some others which
3697 * ipython.1: Update for threading options, plus some others which
3694 were missing.
3698 were missing.
3695
3699
3696 * IPython/ipmaker.py (__call__): Added -wthread option for
3700 * IPython/ipmaker.py (__call__): Added -wthread option for
3697 wxpython thread handling. Make sure threading options are only
3701 wxpython thread handling. Make sure threading options are only
3698 valid at the command line.
3702 valid at the command line.
3699
3703
3700 * scripts/ipython: moved shell selection into a factory function
3704 * scripts/ipython: moved shell selection into a factory function
3701 in Shell.py, to keep the starter script to a minimum.
3705 in Shell.py, to keep the starter script to a minimum.
3702
3706
3703 2004-08-25 Fernando Perez <fperez@colorado.edu>
3707 2004-08-25 Fernando Perez <fperez@colorado.edu>
3704
3708
3705 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3709 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3706 John. Along with some recent changes he made to matplotlib, the
3710 John. Along with some recent changes he made to matplotlib, the
3707 next versions of both systems should work very well together.
3711 next versions of both systems should work very well together.
3708
3712
3709 2004-08-24 Fernando Perez <fperez@colorado.edu>
3713 2004-08-24 Fernando Perez <fperez@colorado.edu>
3710
3714
3711 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3715 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3712 tried to switch the profiling to using hotshot, but I'm getting
3716 tried to switch the profiling to using hotshot, but I'm getting
3713 strange errors from prof.runctx() there. I may be misreading the
3717 strange errors from prof.runctx() there. I may be misreading the
3714 docs, but it looks weird. For now the profiling code will
3718 docs, but it looks weird. For now the profiling code will
3715 continue to use the standard profiler.
3719 continue to use the standard profiler.
3716
3720
3717 2004-08-23 Fernando Perez <fperez@colorado.edu>
3721 2004-08-23 Fernando Perez <fperez@colorado.edu>
3718
3722
3719 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3723 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3720 threaded shell, by John Hunter. It's not quite ready yet, but
3724 threaded shell, by John Hunter. It's not quite ready yet, but
3721 close.
3725 close.
3722
3726
3723 2004-08-22 Fernando Perez <fperez@colorado.edu>
3727 2004-08-22 Fernando Perez <fperez@colorado.edu>
3724
3728
3725 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3729 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3726 in Magic and ultraTB.
3730 in Magic and ultraTB.
3727
3731
3728 * ipython.1: document threading options in manpage.
3732 * ipython.1: document threading options in manpage.
3729
3733
3730 * scripts/ipython: Changed name of -thread option to -gthread,
3734 * scripts/ipython: Changed name of -thread option to -gthread,
3731 since this is GTK specific. I want to leave the door open for a
3735 since this is GTK specific. I want to leave the door open for a
3732 -wthread option for WX, which will most likely be necessary. This
3736 -wthread option for WX, which will most likely be necessary. This
3733 change affects usage and ipmaker as well.
3737 change affects usage and ipmaker as well.
3734
3738
3735 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3739 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3736 handle the matplotlib shell issues. Code by John Hunter
3740 handle the matplotlib shell issues. Code by John Hunter
3737 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3741 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3738 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3742 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3739 broken (and disabled for end users) for now, but it puts the
3743 broken (and disabled for end users) for now, but it puts the
3740 infrastructure in place.
3744 infrastructure in place.
3741
3745
3742 2004-08-21 Fernando Perez <fperez@colorado.edu>
3746 2004-08-21 Fernando Perez <fperez@colorado.edu>
3743
3747
3744 * ipythonrc-pylab: Add matplotlib support.
3748 * ipythonrc-pylab: Add matplotlib support.
3745
3749
3746 * matplotlib_config.py: new files for matplotlib support, part of
3750 * matplotlib_config.py: new files for matplotlib support, part of
3747 the pylab profile.
3751 the pylab profile.
3748
3752
3749 * IPython/usage.py (__doc__): documented the threading options.
3753 * IPython/usage.py (__doc__): documented the threading options.
3750
3754
3751 2004-08-20 Fernando Perez <fperez@colorado.edu>
3755 2004-08-20 Fernando Perez <fperez@colorado.edu>
3752
3756
3753 * ipython: Modified the main calling routine to handle the -thread
3757 * ipython: Modified the main calling routine to handle the -thread
3754 and -mpthread options. This needs to be done as a top-level hack,
3758 and -mpthread options. This needs to be done as a top-level hack,
3755 because it determines which class to instantiate for IPython
3759 because it determines which class to instantiate for IPython
3756 itself.
3760 itself.
3757
3761
3758 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3762 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3759 classes to support multithreaded GTK operation without blocking,
3763 classes to support multithreaded GTK operation without blocking,
3760 and matplotlib with all backends. This is a lot of still very
3764 and matplotlib with all backends. This is a lot of still very
3761 experimental code, and threads are tricky. So it may still have a
3765 experimental code, and threads are tricky. So it may still have a
3762 few rough edges... This code owes a lot to
3766 few rough edges... This code owes a lot to
3763 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3767 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3764 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3768 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3765 to John Hunter for all the matplotlib work.
3769 to John Hunter for all the matplotlib work.
3766
3770
3767 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3771 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3768 options for gtk thread and matplotlib support.
3772 options for gtk thread and matplotlib support.
3769
3773
3770 2004-08-16 Fernando Perez <fperez@colorado.edu>
3774 2004-08-16 Fernando Perez <fperez@colorado.edu>
3771
3775
3772 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3776 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3773 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3777 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3774 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3778 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3775
3779
3776 2004-08-11 Fernando Perez <fperez@colorado.edu>
3780 2004-08-11 Fernando Perez <fperez@colorado.edu>
3777
3781
3778 * setup.py (isfile): Fix build so documentation gets updated for
3782 * setup.py (isfile): Fix build so documentation gets updated for
3779 rpms (it was only done for .tgz builds).
3783 rpms (it was only done for .tgz builds).
3780
3784
3781 2004-08-10 Fernando Perez <fperez@colorado.edu>
3785 2004-08-10 Fernando Perez <fperez@colorado.edu>
3782
3786
3783 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3787 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3784
3788
3785 * iplib.py : Silence syntax error exceptions in tab-completion.
3789 * iplib.py : Silence syntax error exceptions in tab-completion.
3786
3790
3787 2004-08-05 Fernando Perez <fperez@colorado.edu>
3791 2004-08-05 Fernando Perez <fperez@colorado.edu>
3788
3792
3789 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3793 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3790 'color off' mark for continuation prompts. This was causing long
3794 'color off' mark for continuation prompts. This was causing long
3791 continuation lines to mis-wrap.
3795 continuation lines to mis-wrap.
3792
3796
3793 2004-08-01 Fernando Perez <fperez@colorado.edu>
3797 2004-08-01 Fernando Perez <fperez@colorado.edu>
3794
3798
3795 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3799 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3796 for building ipython to be a parameter. All this is necessary
3800 for building ipython to be a parameter. All this is necessary
3797 right now to have a multithreaded version, but this insane
3801 right now to have a multithreaded version, but this insane
3798 non-design will be cleaned up soon. For now, it's a hack that
3802 non-design will be cleaned up soon. For now, it's a hack that
3799 works.
3803 works.
3800
3804
3801 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3805 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3802 args in various places. No bugs so far, but it's a dangerous
3806 args in various places. No bugs so far, but it's a dangerous
3803 practice.
3807 practice.
3804
3808
3805 2004-07-31 Fernando Perez <fperez@colorado.edu>
3809 2004-07-31 Fernando Perez <fperez@colorado.edu>
3806
3810
3807 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3811 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3808 fix completion of files with dots in their names under most
3812 fix completion of files with dots in their names under most
3809 profiles (pysh was OK because the completion order is different).
3813 profiles (pysh was OK because the completion order is different).
3810
3814
3811 2004-07-27 Fernando Perez <fperez@colorado.edu>
3815 2004-07-27 Fernando Perez <fperez@colorado.edu>
3812
3816
3813 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3817 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3814 keywords manually, b/c the one in keyword.py was removed in python
3818 keywords manually, b/c the one in keyword.py was removed in python
3815 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3819 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3816 This is NOT a bug under python 2.3 and earlier.
3820 This is NOT a bug under python 2.3 and earlier.
3817
3821
3818 2004-07-26 Fernando Perez <fperez@colorado.edu>
3822 2004-07-26 Fernando Perez <fperez@colorado.edu>
3819
3823
3820 * IPython/ultraTB.py (VerboseTB.text): Add another
3824 * IPython/ultraTB.py (VerboseTB.text): Add another
3821 linecache.checkcache() call to try to prevent inspect.py from
3825 linecache.checkcache() call to try to prevent inspect.py from
3822 crashing under python 2.3. I think this fixes
3826 crashing under python 2.3. I think this fixes
3823 http://www.scipy.net/roundup/ipython/issue17.
3827 http://www.scipy.net/roundup/ipython/issue17.
3824
3828
3825 2004-07-26 *** Released version 0.6.2
3829 2004-07-26 *** Released version 0.6.2
3826
3830
3827 2004-07-26 Fernando Perez <fperez@colorado.edu>
3831 2004-07-26 Fernando Perez <fperez@colorado.edu>
3828
3832
3829 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3833 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3830 fail for any number.
3834 fail for any number.
3831 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3835 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3832 empty bookmarks.
3836 empty bookmarks.
3833
3837
3834 2004-07-26 *** Released version 0.6.1
3838 2004-07-26 *** Released version 0.6.1
3835
3839
3836 2004-07-26 Fernando Perez <fperez@colorado.edu>
3840 2004-07-26 Fernando Perez <fperez@colorado.edu>
3837
3841
3838 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3842 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3839
3843
3840 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3844 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3841 escaping '()[]{}' in filenames.
3845 escaping '()[]{}' in filenames.
3842
3846
3843 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3847 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3844 Python 2.2 users who lack a proper shlex.split.
3848 Python 2.2 users who lack a proper shlex.split.
3845
3849
3846 2004-07-19 Fernando Perez <fperez@colorado.edu>
3850 2004-07-19 Fernando Perez <fperez@colorado.edu>
3847
3851
3848 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3852 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3849 for reading readline's init file. I follow the normal chain:
3853 for reading readline's init file. I follow the normal chain:
3850 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3854 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3851 report by Mike Heeter. This closes
3855 report by Mike Heeter. This closes
3852 http://www.scipy.net/roundup/ipython/issue16.
3856 http://www.scipy.net/roundup/ipython/issue16.
3853
3857
3854 2004-07-18 Fernando Perez <fperez@colorado.edu>
3858 2004-07-18 Fernando Perez <fperez@colorado.edu>
3855
3859
3856 * IPython/iplib.py (__init__): Add better handling of '\' under
3860 * IPython/iplib.py (__init__): Add better handling of '\' under
3857 Win32 for filenames. After a patch by Ville.
3861 Win32 for filenames. After a patch by Ville.
3858
3862
3859 2004-07-17 Fernando Perez <fperez@colorado.edu>
3863 2004-07-17 Fernando Perez <fperez@colorado.edu>
3860
3864
3861 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3865 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3862 autocalling would be triggered for 'foo is bar' if foo is
3866 autocalling would be triggered for 'foo is bar' if foo is
3863 callable. I also cleaned up the autocall detection code to use a
3867 callable. I also cleaned up the autocall detection code to use a
3864 regexp, which is faster. Bug reported by Alexander Schmolck.
3868 regexp, which is faster. Bug reported by Alexander Schmolck.
3865
3869
3866 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3870 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3867 '?' in them would confuse the help system. Reported by Alex
3871 '?' in them would confuse the help system. Reported by Alex
3868 Schmolck.
3872 Schmolck.
3869
3873
3870 2004-07-16 Fernando Perez <fperez@colorado.edu>
3874 2004-07-16 Fernando Perez <fperez@colorado.edu>
3871
3875
3872 * IPython/GnuplotInteractive.py (__all__): added plot2.
3876 * IPython/GnuplotInteractive.py (__all__): added plot2.
3873
3877
3874 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3878 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3875 plotting dictionaries, lists or tuples of 1d arrays.
3879 plotting dictionaries, lists or tuples of 1d arrays.
3876
3880
3877 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3881 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3878 optimizations.
3882 optimizations.
3879
3883
3880 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3884 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3881 the information which was there from Janko's original IPP code:
3885 the information which was there from Janko's original IPP code:
3882
3886
3883 03.05.99 20:53 porto.ifm.uni-kiel.de
3887 03.05.99 20:53 porto.ifm.uni-kiel.de
3884 --Started changelog.
3888 --Started changelog.
3885 --make clear do what it say it does
3889 --make clear do what it say it does
3886 --added pretty output of lines from inputcache
3890 --added pretty output of lines from inputcache
3887 --Made Logger a mixin class, simplifies handling of switches
3891 --Made Logger a mixin class, simplifies handling of switches
3888 --Added own completer class. .string<TAB> expands to last history
3892 --Added own completer class. .string<TAB> expands to last history
3889 line which starts with string. The new expansion is also present
3893 line which starts with string. The new expansion is also present
3890 with Ctrl-r from the readline library. But this shows, who this
3894 with Ctrl-r from the readline library. But this shows, who this
3891 can be done for other cases.
3895 can be done for other cases.
3892 --Added convention that all shell functions should accept a
3896 --Added convention that all shell functions should accept a
3893 parameter_string This opens the door for different behaviour for
3897 parameter_string This opens the door for different behaviour for
3894 each function. @cd is a good example of this.
3898 each function. @cd is a good example of this.
3895
3899
3896 04.05.99 12:12 porto.ifm.uni-kiel.de
3900 04.05.99 12:12 porto.ifm.uni-kiel.de
3897 --added logfile rotation
3901 --added logfile rotation
3898 --added new mainloop method which freezes first the namespace
3902 --added new mainloop method which freezes first the namespace
3899
3903
3900 07.05.99 21:24 porto.ifm.uni-kiel.de
3904 07.05.99 21:24 porto.ifm.uni-kiel.de
3901 --added the docreader classes. Now there is a help system.
3905 --added the docreader classes. Now there is a help system.
3902 -This is only a first try. Currently it's not easy to put new
3906 -This is only a first try. Currently it's not easy to put new
3903 stuff in the indices. But this is the way to go. Info would be
3907 stuff in the indices. But this is the way to go. Info would be
3904 better, but HTML is every where and not everybody has an info
3908 better, but HTML is every where and not everybody has an info
3905 system installed and it's not so easy to change html-docs to info.
3909 system installed and it's not so easy to change html-docs to info.
3906 --added global logfile option
3910 --added global logfile option
3907 --there is now a hook for object inspection method pinfo needs to
3911 --there is now a hook for object inspection method pinfo needs to
3908 be provided for this. Can be reached by two '??'.
3912 be provided for this. Can be reached by two '??'.
3909
3913
3910 08.05.99 20:51 porto.ifm.uni-kiel.de
3914 08.05.99 20:51 porto.ifm.uni-kiel.de
3911 --added a README
3915 --added a README
3912 --bug in rc file. Something has changed so functions in the rc
3916 --bug in rc file. Something has changed so functions in the rc
3913 file need to reference the shell and not self. Not clear if it's a
3917 file need to reference the shell and not self. Not clear if it's a
3914 bug or feature.
3918 bug or feature.
3915 --changed rc file for new behavior
3919 --changed rc file for new behavior
3916
3920
3917 2004-07-15 Fernando Perez <fperez@colorado.edu>
3921 2004-07-15 Fernando Perez <fperez@colorado.edu>
3918
3922
3919 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3923 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3920 cache was falling out of sync in bizarre manners when multi-line
3924 cache was falling out of sync in bizarre manners when multi-line
3921 input was present. Minor optimizations and cleanup.
3925 input was present. Minor optimizations and cleanup.
3922
3926
3923 (Logger): Remove old Changelog info for cleanup. This is the
3927 (Logger): Remove old Changelog info for cleanup. This is the
3924 information which was there from Janko's original code:
3928 information which was there from Janko's original code:
3925
3929
3926 Changes to Logger: - made the default log filename a parameter
3930 Changes to Logger: - made the default log filename a parameter
3927
3931
3928 - put a check for lines beginning with !@? in log(). Needed
3932 - put a check for lines beginning with !@? in log(). Needed
3929 (even if the handlers properly log their lines) for mid-session
3933 (even if the handlers properly log their lines) for mid-session
3930 logging activation to work properly. Without this, lines logged
3934 logging activation to work properly. Without this, lines logged
3931 in mid session, which get read from the cache, would end up
3935 in mid session, which get read from the cache, would end up
3932 'bare' (with !@? in the open) in the log. Now they are caught
3936 'bare' (with !@? in the open) in the log. Now they are caught
3933 and prepended with a #.
3937 and prepended with a #.
3934
3938
3935 * IPython/iplib.py (InteractiveShell.init_readline): added check
3939 * IPython/iplib.py (InteractiveShell.init_readline): added check
3936 in case MagicCompleter fails to be defined, so we don't crash.
3940 in case MagicCompleter fails to be defined, so we don't crash.
3937
3941
3938 2004-07-13 Fernando Perez <fperez@colorado.edu>
3942 2004-07-13 Fernando Perez <fperez@colorado.edu>
3939
3943
3940 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3944 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3941 of EPS if the requested filename ends in '.eps'.
3945 of EPS if the requested filename ends in '.eps'.
3942
3946
3943 2004-07-04 Fernando Perez <fperez@colorado.edu>
3947 2004-07-04 Fernando Perez <fperez@colorado.edu>
3944
3948
3945 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3949 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3946 escaping of quotes when calling the shell.
3950 escaping of quotes when calling the shell.
3947
3951
3948 2004-07-02 Fernando Perez <fperez@colorado.edu>
3952 2004-07-02 Fernando Perez <fperez@colorado.edu>
3949
3953
3950 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3954 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3951 gettext not working because we were clobbering '_'. Fixes
3955 gettext not working because we were clobbering '_'. Fixes
3952 http://www.scipy.net/roundup/ipython/issue6.
3956 http://www.scipy.net/roundup/ipython/issue6.
3953
3957
3954 2004-07-01 Fernando Perez <fperez@colorado.edu>
3958 2004-07-01 Fernando Perez <fperez@colorado.edu>
3955
3959
3956 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3960 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3957 into @cd. Patch by Ville.
3961 into @cd. Patch by Ville.
3958
3962
3959 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3963 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3960 new function to store things after ipmaker runs. Patch by Ville.
3964 new function to store things after ipmaker runs. Patch by Ville.
3961 Eventually this will go away once ipmaker is removed and the class
3965 Eventually this will go away once ipmaker is removed and the class
3962 gets cleaned up, but for now it's ok. Key functionality here is
3966 gets cleaned up, but for now it's ok. Key functionality here is
3963 the addition of the persistent storage mechanism, a dict for
3967 the addition of the persistent storage mechanism, a dict for
3964 keeping data across sessions (for now just bookmarks, but more can
3968 keeping data across sessions (for now just bookmarks, but more can
3965 be implemented later).
3969 be implemented later).
3966
3970
3967 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3971 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3968 persistent across sections. Patch by Ville, I modified it
3972 persistent across sections. Patch by Ville, I modified it
3969 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3973 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3970 added a '-l' option to list all bookmarks.
3974 added a '-l' option to list all bookmarks.
3971
3975
3972 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3976 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3973 center for cleanup. Registered with atexit.register(). I moved
3977 center for cleanup. Registered with atexit.register(). I moved
3974 here the old exit_cleanup(). After a patch by Ville.
3978 here the old exit_cleanup(). After a patch by Ville.
3975
3979
3976 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3980 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3977 characters in the hacked shlex_split for python 2.2.
3981 characters in the hacked shlex_split for python 2.2.
3978
3982
3979 * IPython/iplib.py (file_matches): more fixes to filenames with
3983 * IPython/iplib.py (file_matches): more fixes to filenames with
3980 whitespace in them. It's not perfect, but limitations in python's
3984 whitespace in them. It's not perfect, but limitations in python's
3981 readline make it impossible to go further.
3985 readline make it impossible to go further.
3982
3986
3983 2004-06-29 Fernando Perez <fperez@colorado.edu>
3987 2004-06-29 Fernando Perez <fperez@colorado.edu>
3984
3988
3985 * IPython/iplib.py (file_matches): escape whitespace correctly in
3989 * IPython/iplib.py (file_matches): escape whitespace correctly in
3986 filename completions. Bug reported by Ville.
3990 filename completions. Bug reported by Ville.
3987
3991
3988 2004-06-28 Fernando Perez <fperez@colorado.edu>
3992 2004-06-28 Fernando Perez <fperez@colorado.edu>
3989
3993
3990 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3994 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3991 the history file will be called 'history-PROFNAME' (or just
3995 the history file will be called 'history-PROFNAME' (or just
3992 'history' if no profile is loaded). I was getting annoyed at
3996 'history' if no profile is loaded). I was getting annoyed at
3993 getting my Numerical work history clobbered by pysh sessions.
3997 getting my Numerical work history clobbered by pysh sessions.
3994
3998
3995 * IPython/iplib.py (InteractiveShell.__init__): Internal
3999 * IPython/iplib.py (InteractiveShell.__init__): Internal
3996 getoutputerror() function so that we can honor the system_verbose
4000 getoutputerror() function so that we can honor the system_verbose
3997 flag for _all_ system calls. I also added escaping of #
4001 flag for _all_ system calls. I also added escaping of #
3998 characters here to avoid confusing Itpl.
4002 characters here to avoid confusing Itpl.
3999
4003
4000 * IPython/Magic.py (shlex_split): removed call to shell in
4004 * IPython/Magic.py (shlex_split): removed call to shell in
4001 parse_options and replaced it with shlex.split(). The annoying
4005 parse_options and replaced it with shlex.split(). The annoying
4002 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4006 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4003 to backport it from 2.3, with several frail hacks (the shlex
4007 to backport it from 2.3, with several frail hacks (the shlex
4004 module is rather limited in 2.2). Thanks to a suggestion by Ville
4008 module is rather limited in 2.2). Thanks to a suggestion by Ville
4005 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4009 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4006 problem.
4010 problem.
4007
4011
4008 (Magic.magic_system_verbose): new toggle to print the actual
4012 (Magic.magic_system_verbose): new toggle to print the actual
4009 system calls made by ipython. Mainly for debugging purposes.
4013 system calls made by ipython. Mainly for debugging purposes.
4010
4014
4011 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4015 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4012 doesn't support persistence. Reported (and fix suggested) by
4016 doesn't support persistence. Reported (and fix suggested) by
4013 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4017 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4014
4018
4015 2004-06-26 Fernando Perez <fperez@colorado.edu>
4019 2004-06-26 Fernando Perez <fperez@colorado.edu>
4016
4020
4017 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4021 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4018 continue prompts.
4022 continue prompts.
4019
4023
4020 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4024 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4021 function (basically a big docstring) and a few more things here to
4025 function (basically a big docstring) and a few more things here to
4022 speedup startup. pysh.py is now very lightweight. We want because
4026 speedup startup. pysh.py is now very lightweight. We want because
4023 it gets execfile'd, while InterpreterExec gets imported, so
4027 it gets execfile'd, while InterpreterExec gets imported, so
4024 byte-compilation saves time.
4028 byte-compilation saves time.
4025
4029
4026 2004-06-25 Fernando Perez <fperez@colorado.edu>
4030 2004-06-25 Fernando Perez <fperez@colorado.edu>
4027
4031
4028 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4032 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4029 -NUM', which was recently broken.
4033 -NUM', which was recently broken.
4030
4034
4031 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4035 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4032 in multi-line input (but not !!, which doesn't make sense there).
4036 in multi-line input (but not !!, which doesn't make sense there).
4033
4037
4034 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4038 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4035 It's just too useful, and people can turn it off in the less
4039 It's just too useful, and people can turn it off in the less
4036 common cases where it's a problem.
4040 common cases where it's a problem.
4037
4041
4038 2004-06-24 Fernando Perez <fperez@colorado.edu>
4042 2004-06-24 Fernando Perez <fperez@colorado.edu>
4039
4043
4040 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4044 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4041 special syntaxes (like alias calling) is now allied in multi-line
4045 special syntaxes (like alias calling) is now allied in multi-line
4042 input. This is still _very_ experimental, but it's necessary for
4046 input. This is still _very_ experimental, but it's necessary for
4043 efficient shell usage combining python looping syntax with system
4047 efficient shell usage combining python looping syntax with system
4044 calls. For now it's restricted to aliases, I don't think it
4048 calls. For now it's restricted to aliases, I don't think it
4045 really even makes sense to have this for magics.
4049 really even makes sense to have this for magics.
4046
4050
4047 2004-06-23 Fernando Perez <fperez@colorado.edu>
4051 2004-06-23 Fernando Perez <fperez@colorado.edu>
4048
4052
4049 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4053 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4050 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4054 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4051
4055
4052 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4056 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4053 extensions under Windows (after code sent by Gary Bishop). The
4057 extensions under Windows (after code sent by Gary Bishop). The
4054 extensions considered 'executable' are stored in IPython's rc
4058 extensions considered 'executable' are stored in IPython's rc
4055 structure as win_exec_ext.
4059 structure as win_exec_ext.
4056
4060
4057 * IPython/genutils.py (shell): new function, like system() but
4061 * IPython/genutils.py (shell): new function, like system() but
4058 without return value. Very useful for interactive shell work.
4062 without return value. Very useful for interactive shell work.
4059
4063
4060 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4064 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4061 delete aliases.
4065 delete aliases.
4062
4066
4063 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4067 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4064 sure that the alias table doesn't contain python keywords.
4068 sure that the alias table doesn't contain python keywords.
4065
4069
4066 2004-06-21 Fernando Perez <fperez@colorado.edu>
4070 2004-06-21 Fernando Perez <fperez@colorado.edu>
4067
4071
4068 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4072 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4069 non-existent items are found in $PATH. Reported by Thorsten.
4073 non-existent items are found in $PATH. Reported by Thorsten.
4070
4074
4071 2004-06-20 Fernando Perez <fperez@colorado.edu>
4075 2004-06-20 Fernando Perez <fperez@colorado.edu>
4072
4076
4073 * IPython/iplib.py (complete): modified the completer so that the
4077 * IPython/iplib.py (complete): modified the completer so that the
4074 order of priorities can be easily changed at runtime.
4078 order of priorities can be easily changed at runtime.
4075
4079
4076 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4080 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4077 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4081 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4078
4082
4079 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4083 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4080 expand Python variables prepended with $ in all system calls. The
4084 expand Python variables prepended with $ in all system calls. The
4081 same was done to InteractiveShell.handle_shell_escape. Now all
4085 same was done to InteractiveShell.handle_shell_escape. Now all
4082 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4086 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4083 expansion of python variables and expressions according to the
4087 expansion of python variables and expressions according to the
4084 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4088 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4085
4089
4086 Though PEP-215 has been rejected, a similar (but simpler) one
4090 Though PEP-215 has been rejected, a similar (but simpler) one
4087 seems like it will go into Python 2.4, PEP-292 -
4091 seems like it will go into Python 2.4, PEP-292 -
4088 http://www.python.org/peps/pep-0292.html.
4092 http://www.python.org/peps/pep-0292.html.
4089
4093
4090 I'll keep the full syntax of PEP-215, since IPython has since the
4094 I'll keep the full syntax of PEP-215, since IPython has since the
4091 start used Ka-Ping Yee's reference implementation discussed there
4095 start used Ka-Ping Yee's reference implementation discussed there
4092 (Itpl), and I actually like the powerful semantics it offers.
4096 (Itpl), and I actually like the powerful semantics it offers.
4093
4097
4094 In order to access normal shell variables, the $ has to be escaped
4098 In order to access normal shell variables, the $ has to be escaped
4095 via an extra $. For example:
4099 via an extra $. For example:
4096
4100
4097 In [7]: PATH='a python variable'
4101 In [7]: PATH='a python variable'
4098
4102
4099 In [8]: !echo $PATH
4103 In [8]: !echo $PATH
4100 a python variable
4104 a python variable
4101
4105
4102 In [9]: !echo $$PATH
4106 In [9]: !echo $$PATH
4103 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4107 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4104
4108
4105 (Magic.parse_options): escape $ so the shell doesn't evaluate
4109 (Magic.parse_options): escape $ so the shell doesn't evaluate
4106 things prematurely.
4110 things prematurely.
4107
4111
4108 * IPython/iplib.py (InteractiveShell.call_alias): added the
4112 * IPython/iplib.py (InteractiveShell.call_alias): added the
4109 ability for aliases to expand python variables via $.
4113 ability for aliases to expand python variables via $.
4110
4114
4111 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4115 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4112 system, now there's a @rehash/@rehashx pair of magics. These work
4116 system, now there's a @rehash/@rehashx pair of magics. These work
4113 like the csh rehash command, and can be invoked at any time. They
4117 like the csh rehash command, and can be invoked at any time. They
4114 build a table of aliases to everything in the user's $PATH
4118 build a table of aliases to everything in the user's $PATH
4115 (@rehash uses everything, @rehashx is slower but only adds
4119 (@rehash uses everything, @rehashx is slower but only adds
4116 executable files). With this, the pysh.py-based shell profile can
4120 executable files). With this, the pysh.py-based shell profile can
4117 now simply call rehash upon startup, and full access to all
4121 now simply call rehash upon startup, and full access to all
4118 programs in the user's path is obtained.
4122 programs in the user's path is obtained.
4119
4123
4120 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4124 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4121 functionality is now fully in place. I removed the old dynamic
4125 functionality is now fully in place. I removed the old dynamic
4122 code generation based approach, in favor of a much lighter one
4126 code generation based approach, in favor of a much lighter one
4123 based on a simple dict. The advantage is that this allows me to
4127 based on a simple dict. The advantage is that this allows me to
4124 now have thousands of aliases with negligible cost (unthinkable
4128 now have thousands of aliases with negligible cost (unthinkable
4125 with the old system).
4129 with the old system).
4126
4130
4127 2004-06-19 Fernando Perez <fperez@colorado.edu>
4131 2004-06-19 Fernando Perez <fperez@colorado.edu>
4128
4132
4129 * IPython/iplib.py (__init__): extended MagicCompleter class to
4133 * IPython/iplib.py (__init__): extended MagicCompleter class to
4130 also complete (last in priority) on user aliases.
4134 also complete (last in priority) on user aliases.
4131
4135
4132 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4136 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4133 call to eval.
4137 call to eval.
4134 (ItplNS.__init__): Added a new class which functions like Itpl,
4138 (ItplNS.__init__): Added a new class which functions like Itpl,
4135 but allows configuring the namespace for the evaluation to occur
4139 but allows configuring the namespace for the evaluation to occur
4136 in.
4140 in.
4137
4141
4138 2004-06-18 Fernando Perez <fperez@colorado.edu>
4142 2004-06-18 Fernando Perez <fperez@colorado.edu>
4139
4143
4140 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4144 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4141 better message when 'exit' or 'quit' are typed (a common newbie
4145 better message when 'exit' or 'quit' are typed (a common newbie
4142 confusion).
4146 confusion).
4143
4147
4144 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4148 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4145 check for Windows users.
4149 check for Windows users.
4146
4150
4147 * IPython/iplib.py (InteractiveShell.user_setup): removed
4151 * IPython/iplib.py (InteractiveShell.user_setup): removed
4148 disabling of colors for Windows. I'll test at runtime and issue a
4152 disabling of colors for Windows. I'll test at runtime and issue a
4149 warning if Gary's readline isn't found, as to nudge users to
4153 warning if Gary's readline isn't found, as to nudge users to
4150 download it.
4154 download it.
4151
4155
4152 2004-06-16 Fernando Perez <fperez@colorado.edu>
4156 2004-06-16 Fernando Perez <fperez@colorado.edu>
4153
4157
4154 * IPython/genutils.py (Stream.__init__): changed to print errors
4158 * IPython/genutils.py (Stream.__init__): changed to print errors
4155 to sys.stderr. I had a circular dependency here. Now it's
4159 to sys.stderr. I had a circular dependency here. Now it's
4156 possible to run ipython as IDLE's shell (consider this pre-alpha,
4160 possible to run ipython as IDLE's shell (consider this pre-alpha,
4157 since true stdout things end up in the starting terminal instead
4161 since true stdout things end up in the starting terminal instead
4158 of IDLE's out).
4162 of IDLE's out).
4159
4163
4160 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4164 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4161 users who haven't # updated their prompt_in2 definitions. Remove
4165 users who haven't # updated their prompt_in2 definitions. Remove
4162 eventually.
4166 eventually.
4163 (multiple_replace): added credit to original ASPN recipe.
4167 (multiple_replace): added credit to original ASPN recipe.
4164
4168
4165 2004-06-15 Fernando Perez <fperez@colorado.edu>
4169 2004-06-15 Fernando Perez <fperez@colorado.edu>
4166
4170
4167 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4171 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4168 list of auto-defined aliases.
4172 list of auto-defined aliases.
4169
4173
4170 2004-06-13 Fernando Perez <fperez@colorado.edu>
4174 2004-06-13 Fernando Perez <fperez@colorado.edu>
4171
4175
4172 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4176 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4173 install was really requested (so setup.py can be used for other
4177 install was really requested (so setup.py can be used for other
4174 things under Windows).
4178 things under Windows).
4175
4179
4176 2004-06-10 Fernando Perez <fperez@colorado.edu>
4180 2004-06-10 Fernando Perez <fperez@colorado.edu>
4177
4181
4178 * IPython/Logger.py (Logger.create_log): Manually remove any old
4182 * IPython/Logger.py (Logger.create_log): Manually remove any old
4179 backup, since os.remove may fail under Windows. Fixes bug
4183 backup, since os.remove may fail under Windows. Fixes bug
4180 reported by Thorsten.
4184 reported by Thorsten.
4181
4185
4182 2004-06-09 Fernando Perez <fperez@colorado.edu>
4186 2004-06-09 Fernando Perez <fperez@colorado.edu>
4183
4187
4184 * examples/example-embed.py: fixed all references to %n (replaced
4188 * examples/example-embed.py: fixed all references to %n (replaced
4185 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4189 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4186 for all examples and the manual as well.
4190 for all examples and the manual as well.
4187
4191
4188 2004-06-08 Fernando Perez <fperez@colorado.edu>
4192 2004-06-08 Fernando Perez <fperez@colorado.edu>
4189
4193
4190 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4194 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4191 alignment and color management. All 3 prompt subsystems now
4195 alignment and color management. All 3 prompt subsystems now
4192 inherit from BasePrompt.
4196 inherit from BasePrompt.
4193
4197
4194 * tools/release: updates for windows installer build and tag rpms
4198 * tools/release: updates for windows installer build and tag rpms
4195 with python version (since paths are fixed).
4199 with python version (since paths are fixed).
4196
4200
4197 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4201 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4198 which will become eventually obsolete. Also fixed the default
4202 which will become eventually obsolete. Also fixed the default
4199 prompt_in2 to use \D, so at least new users start with the correct
4203 prompt_in2 to use \D, so at least new users start with the correct
4200 defaults.
4204 defaults.
4201 WARNING: Users with existing ipythonrc files will need to apply
4205 WARNING: Users with existing ipythonrc files will need to apply
4202 this fix manually!
4206 this fix manually!
4203
4207
4204 * setup.py: make windows installer (.exe). This is finally the
4208 * setup.py: make windows installer (.exe). This is finally the
4205 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4209 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4206 which I hadn't included because it required Python 2.3 (or recent
4210 which I hadn't included because it required Python 2.3 (or recent
4207 distutils).
4211 distutils).
4208
4212
4209 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4213 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4210 usage of new '\D' escape.
4214 usage of new '\D' escape.
4211
4215
4212 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4216 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4213 lacks os.getuid())
4217 lacks os.getuid())
4214 (CachedOutput.set_colors): Added the ability to turn coloring
4218 (CachedOutput.set_colors): Added the ability to turn coloring
4215 on/off with @colors even for manually defined prompt colors. It
4219 on/off with @colors even for manually defined prompt colors. It
4216 uses a nasty global, but it works safely and via the generic color
4220 uses a nasty global, but it works safely and via the generic color
4217 handling mechanism.
4221 handling mechanism.
4218 (Prompt2.__init__): Introduced new escape '\D' for continuation
4222 (Prompt2.__init__): Introduced new escape '\D' for continuation
4219 prompts. It represents the counter ('\#') as dots.
4223 prompts. It represents the counter ('\#') as dots.
4220 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4224 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4221 need to update their ipythonrc files and replace '%n' with '\D' in
4225 need to update their ipythonrc files and replace '%n' with '\D' in
4222 their prompt_in2 settings everywhere. Sorry, but there's
4226 their prompt_in2 settings everywhere. Sorry, but there's
4223 otherwise no clean way to get all prompts to properly align. The
4227 otherwise no clean way to get all prompts to properly align. The
4224 ipythonrc shipped with IPython has been updated.
4228 ipythonrc shipped with IPython has been updated.
4225
4229
4226 2004-06-07 Fernando Perez <fperez@colorado.edu>
4230 2004-06-07 Fernando Perez <fperez@colorado.edu>
4227
4231
4228 * setup.py (isfile): Pass local_icons option to latex2html, so the
4232 * setup.py (isfile): Pass local_icons option to latex2html, so the
4229 resulting HTML file is self-contained. Thanks to
4233 resulting HTML file is self-contained. Thanks to
4230 dryice-AT-liu.com.cn for the tip.
4234 dryice-AT-liu.com.cn for the tip.
4231
4235
4232 * pysh.py: I created a new profile 'shell', which implements a
4236 * pysh.py: I created a new profile 'shell', which implements a
4233 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4237 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4234 system shell, nor will it become one anytime soon. It's mainly
4238 system shell, nor will it become one anytime soon. It's mainly
4235 meant to illustrate the use of the new flexible bash-like prompts.
4239 meant to illustrate the use of the new flexible bash-like prompts.
4236 I guess it could be used by hardy souls for true shell management,
4240 I guess it could be used by hardy souls for true shell management,
4237 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4241 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4238 profile. This uses the InterpreterExec extension provided by
4242 profile. This uses the InterpreterExec extension provided by
4239 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4243 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4240
4244
4241 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4245 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4242 auto-align itself with the length of the previous input prompt
4246 auto-align itself with the length of the previous input prompt
4243 (taking into account the invisible color escapes).
4247 (taking into account the invisible color escapes).
4244 (CachedOutput.__init__): Large restructuring of this class. Now
4248 (CachedOutput.__init__): Large restructuring of this class. Now
4245 all three prompts (primary1, primary2, output) are proper objects,
4249 all three prompts (primary1, primary2, output) are proper objects,
4246 managed by the 'parent' CachedOutput class. The code is still a
4250 managed by the 'parent' CachedOutput class. The code is still a
4247 bit hackish (all prompts share state via a pointer to the cache),
4251 bit hackish (all prompts share state via a pointer to the cache),
4248 but it's overall far cleaner than before.
4252 but it's overall far cleaner than before.
4249
4253
4250 * IPython/genutils.py (getoutputerror): modified to add verbose,
4254 * IPython/genutils.py (getoutputerror): modified to add verbose,
4251 debug and header options. This makes the interface of all getout*
4255 debug and header options. This makes the interface of all getout*
4252 functions uniform.
4256 functions uniform.
4253 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4257 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4254
4258
4255 * IPython/Magic.py (Magic.default_option): added a function to
4259 * IPython/Magic.py (Magic.default_option): added a function to
4256 allow registering default options for any magic command. This
4260 allow registering default options for any magic command. This
4257 makes it easy to have profiles which customize the magics globally
4261 makes it easy to have profiles which customize the magics globally
4258 for a certain use. The values set through this function are
4262 for a certain use. The values set through this function are
4259 picked up by the parse_options() method, which all magics should
4263 picked up by the parse_options() method, which all magics should
4260 use to parse their options.
4264 use to parse their options.
4261
4265
4262 * IPython/genutils.py (warn): modified the warnings framework to
4266 * IPython/genutils.py (warn): modified the warnings framework to
4263 use the Term I/O class. I'm trying to slowly unify all of
4267 use the Term I/O class. I'm trying to slowly unify all of
4264 IPython's I/O operations to pass through Term.
4268 IPython's I/O operations to pass through Term.
4265
4269
4266 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4270 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4267 the secondary prompt to correctly match the length of the primary
4271 the secondary prompt to correctly match the length of the primary
4268 one for any prompt. Now multi-line code will properly line up
4272 one for any prompt. Now multi-line code will properly line up
4269 even for path dependent prompts, such as the new ones available
4273 even for path dependent prompts, such as the new ones available
4270 via the prompt_specials.
4274 via the prompt_specials.
4271
4275
4272 2004-06-06 Fernando Perez <fperez@colorado.edu>
4276 2004-06-06 Fernando Perez <fperez@colorado.edu>
4273
4277
4274 * IPython/Prompts.py (prompt_specials): Added the ability to have
4278 * IPython/Prompts.py (prompt_specials): Added the ability to have
4275 bash-like special sequences in the prompts, which get
4279 bash-like special sequences in the prompts, which get
4276 automatically expanded. Things like hostname, current working
4280 automatically expanded. Things like hostname, current working
4277 directory and username are implemented already, but it's easy to
4281 directory and username are implemented already, but it's easy to
4278 add more in the future. Thanks to a patch by W.J. van der Laan
4282 add more in the future. Thanks to a patch by W.J. van der Laan
4279 <gnufnork-AT-hetdigitalegat.nl>
4283 <gnufnork-AT-hetdigitalegat.nl>
4280 (prompt_specials): Added color support for prompt strings, so
4284 (prompt_specials): Added color support for prompt strings, so
4281 users can define arbitrary color setups for their prompts.
4285 users can define arbitrary color setups for their prompts.
4282
4286
4283 2004-06-05 Fernando Perez <fperez@colorado.edu>
4287 2004-06-05 Fernando Perez <fperez@colorado.edu>
4284
4288
4285 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4289 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4286 code to load Gary Bishop's readline and configure it
4290 code to load Gary Bishop's readline and configure it
4287 automatically. Thanks to Gary for help on this.
4291 automatically. Thanks to Gary for help on this.
4288
4292
4289 2004-06-01 Fernando Perez <fperez@colorado.edu>
4293 2004-06-01 Fernando Perez <fperez@colorado.edu>
4290
4294
4291 * IPython/Logger.py (Logger.create_log): fix bug for logging
4295 * IPython/Logger.py (Logger.create_log): fix bug for logging
4292 with no filename (previous fix was incomplete).
4296 with no filename (previous fix was incomplete).
4293
4297
4294 2004-05-25 Fernando Perez <fperez@colorado.edu>
4298 2004-05-25 Fernando Perez <fperez@colorado.edu>
4295
4299
4296 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4300 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4297 parens would get passed to the shell.
4301 parens would get passed to the shell.
4298
4302
4299 2004-05-20 Fernando Perez <fperez@colorado.edu>
4303 2004-05-20 Fernando Perez <fperez@colorado.edu>
4300
4304
4301 * IPython/Magic.py (Magic.magic_prun): changed default profile
4305 * IPython/Magic.py (Magic.magic_prun): changed default profile
4302 sort order to 'time' (the more common profiling need).
4306 sort order to 'time' (the more common profiling need).
4303
4307
4304 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4308 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4305 so that source code shown is guaranteed in sync with the file on
4309 so that source code shown is guaranteed in sync with the file on
4306 disk (also changed in psource). Similar fix to the one for
4310 disk (also changed in psource). Similar fix to the one for
4307 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4311 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4308 <yann.ledu-AT-noos.fr>.
4312 <yann.ledu-AT-noos.fr>.
4309
4313
4310 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4314 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4311 with a single option would not be correctly parsed. Closes
4315 with a single option would not be correctly parsed. Closes
4312 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4316 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4313 introduced in 0.6.0 (on 2004-05-06).
4317 introduced in 0.6.0 (on 2004-05-06).
4314
4318
4315 2004-05-13 *** Released version 0.6.0
4319 2004-05-13 *** Released version 0.6.0
4316
4320
4317 2004-05-13 Fernando Perez <fperez@colorado.edu>
4321 2004-05-13 Fernando Perez <fperez@colorado.edu>
4318
4322
4319 * debian/: Added debian/ directory to CVS, so that debian support
4323 * debian/: Added debian/ directory to CVS, so that debian support
4320 is publicly accessible. The debian package is maintained by Jack
4324 is publicly accessible. The debian package is maintained by Jack
4321 Moffit <jack-AT-xiph.org>.
4325 Moffit <jack-AT-xiph.org>.
4322
4326
4323 * Documentation: included the notes about an ipython-based system
4327 * Documentation: included the notes about an ipython-based system
4324 shell (the hypothetical 'pysh') into the new_design.pdf document,
4328 shell (the hypothetical 'pysh') into the new_design.pdf document,
4325 so that these ideas get distributed to users along with the
4329 so that these ideas get distributed to users along with the
4326 official documentation.
4330 official documentation.
4327
4331
4328 2004-05-10 Fernando Perez <fperez@colorado.edu>
4332 2004-05-10 Fernando Perez <fperez@colorado.edu>
4329
4333
4330 * IPython/Logger.py (Logger.create_log): fix recently introduced
4334 * IPython/Logger.py (Logger.create_log): fix recently introduced
4331 bug (misindented line) where logstart would fail when not given an
4335 bug (misindented line) where logstart would fail when not given an
4332 explicit filename.
4336 explicit filename.
4333
4337
4334 2004-05-09 Fernando Perez <fperez@colorado.edu>
4338 2004-05-09 Fernando Perez <fperez@colorado.edu>
4335
4339
4336 * IPython/Magic.py (Magic.parse_options): skip system call when
4340 * IPython/Magic.py (Magic.parse_options): skip system call when
4337 there are no options to look for. Faster, cleaner for the common
4341 there are no options to look for. Faster, cleaner for the common
4338 case.
4342 case.
4339
4343
4340 * Documentation: many updates to the manual: describing Windows
4344 * Documentation: many updates to the manual: describing Windows
4341 support better, Gnuplot updates, credits, misc small stuff. Also
4345 support better, Gnuplot updates, credits, misc small stuff. Also
4342 updated the new_design doc a bit.
4346 updated the new_design doc a bit.
4343
4347
4344 2004-05-06 *** Released version 0.6.0.rc1
4348 2004-05-06 *** Released version 0.6.0.rc1
4345
4349
4346 2004-05-06 Fernando Perez <fperez@colorado.edu>
4350 2004-05-06 Fernando Perez <fperez@colorado.edu>
4347
4351
4348 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4352 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4349 operations to use the vastly more efficient list/''.join() method.
4353 operations to use the vastly more efficient list/''.join() method.
4350 (FormattedTB.text): Fix
4354 (FormattedTB.text): Fix
4351 http://www.scipy.net/roundup/ipython/issue12 - exception source
4355 http://www.scipy.net/roundup/ipython/issue12 - exception source
4352 extract not updated after reload. Thanks to Mike Salib
4356 extract not updated after reload. Thanks to Mike Salib
4353 <msalib-AT-mit.edu> for pinning the source of the problem.
4357 <msalib-AT-mit.edu> for pinning the source of the problem.
4354 Fortunately, the solution works inside ipython and doesn't require
4358 Fortunately, the solution works inside ipython and doesn't require
4355 any changes to python proper.
4359 any changes to python proper.
4356
4360
4357 * IPython/Magic.py (Magic.parse_options): Improved to process the
4361 * IPython/Magic.py (Magic.parse_options): Improved to process the
4358 argument list as a true shell would (by actually using the
4362 argument list as a true shell would (by actually using the
4359 underlying system shell). This way, all @magics automatically get
4363 underlying system shell). This way, all @magics automatically get
4360 shell expansion for variables. Thanks to a comment by Alex
4364 shell expansion for variables. Thanks to a comment by Alex
4361 Schmolck.
4365 Schmolck.
4362
4366
4363 2004-04-04 Fernando Perez <fperez@colorado.edu>
4367 2004-04-04 Fernando Perez <fperez@colorado.edu>
4364
4368
4365 * IPython/iplib.py (InteractiveShell.interact): Added a special
4369 * IPython/iplib.py (InteractiveShell.interact): Added a special
4366 trap for a debugger quit exception, which is basically impossible
4370 trap for a debugger quit exception, which is basically impossible
4367 to handle by normal mechanisms, given what pdb does to the stack.
4371 to handle by normal mechanisms, given what pdb does to the stack.
4368 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4372 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4369
4373
4370 2004-04-03 Fernando Perez <fperez@colorado.edu>
4374 2004-04-03 Fernando Perez <fperez@colorado.edu>
4371
4375
4372 * IPython/genutils.py (Term): Standardized the names of the Term
4376 * IPython/genutils.py (Term): Standardized the names of the Term
4373 class streams to cin/cout/cerr, following C++ naming conventions
4377 class streams to cin/cout/cerr, following C++ naming conventions
4374 (I can't use in/out/err because 'in' is not a valid attribute
4378 (I can't use in/out/err because 'in' is not a valid attribute
4375 name).
4379 name).
4376
4380
4377 * IPython/iplib.py (InteractiveShell.interact): don't increment
4381 * IPython/iplib.py (InteractiveShell.interact): don't increment
4378 the prompt if there's no user input. By Daniel 'Dang' Griffith
4382 the prompt if there's no user input. By Daniel 'Dang' Griffith
4379 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4383 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4380 Francois Pinard.
4384 Francois Pinard.
4381
4385
4382 2004-04-02 Fernando Perez <fperez@colorado.edu>
4386 2004-04-02 Fernando Perez <fperez@colorado.edu>
4383
4387
4384 * IPython/genutils.py (Stream.__init__): Modified to survive at
4388 * IPython/genutils.py (Stream.__init__): Modified to survive at
4385 least importing in contexts where stdin/out/err aren't true file
4389 least importing in contexts where stdin/out/err aren't true file
4386 objects, such as PyCrust (they lack fileno() and mode). However,
4390 objects, such as PyCrust (they lack fileno() and mode). However,
4387 the recovery facilities which rely on these things existing will
4391 the recovery facilities which rely on these things existing will
4388 not work.
4392 not work.
4389
4393
4390 2004-04-01 Fernando Perez <fperez@colorado.edu>
4394 2004-04-01 Fernando Perez <fperez@colorado.edu>
4391
4395
4392 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4396 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4393 use the new getoutputerror() function, so it properly
4397 use the new getoutputerror() function, so it properly
4394 distinguishes stdout/err.
4398 distinguishes stdout/err.
4395
4399
4396 * IPython/genutils.py (getoutputerror): added a function to
4400 * IPython/genutils.py (getoutputerror): added a function to
4397 capture separately the standard output and error of a command.
4401 capture separately the standard output and error of a command.
4398 After a comment from dang on the mailing lists. This code is
4402 After a comment from dang on the mailing lists. This code is
4399 basically a modified version of commands.getstatusoutput(), from
4403 basically a modified version of commands.getstatusoutput(), from
4400 the standard library.
4404 the standard library.
4401
4405
4402 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4406 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4403 '!!' as a special syntax (shorthand) to access @sx.
4407 '!!' as a special syntax (shorthand) to access @sx.
4404
4408
4405 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4409 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4406 command and return its output as a list split on '\n'.
4410 command and return its output as a list split on '\n'.
4407
4411
4408 2004-03-31 Fernando Perez <fperez@colorado.edu>
4412 2004-03-31 Fernando Perez <fperez@colorado.edu>
4409
4413
4410 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4414 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4411 method to dictionaries used as FakeModule instances if they lack
4415 method to dictionaries used as FakeModule instances if they lack
4412 it. At least pydoc in python2.3 breaks for runtime-defined
4416 it. At least pydoc in python2.3 breaks for runtime-defined
4413 functions without this hack. At some point I need to _really_
4417 functions without this hack. At some point I need to _really_
4414 understand what FakeModule is doing, because it's a gross hack.
4418 understand what FakeModule is doing, because it's a gross hack.
4415 But it solves Arnd's problem for now...
4419 But it solves Arnd's problem for now...
4416
4420
4417 2004-02-27 Fernando Perez <fperez@colorado.edu>
4421 2004-02-27 Fernando Perez <fperez@colorado.edu>
4418
4422
4419 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4423 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4420 mode would behave erratically. Also increased the number of
4424 mode would behave erratically. Also increased the number of
4421 possible logs in rotate mod to 999. Thanks to Rod Holland
4425 possible logs in rotate mod to 999. Thanks to Rod Holland
4422 <rhh@StructureLABS.com> for the report and fixes.
4426 <rhh@StructureLABS.com> for the report and fixes.
4423
4427
4424 2004-02-26 Fernando Perez <fperez@colorado.edu>
4428 2004-02-26 Fernando Perez <fperez@colorado.edu>
4425
4429
4426 * IPython/genutils.py (page): Check that the curses module really
4430 * IPython/genutils.py (page): Check that the curses module really
4427 has the initscr attribute before trying to use it. For some
4431 has the initscr attribute before trying to use it. For some
4428 reason, the Solaris curses module is missing this. I think this
4432 reason, the Solaris curses module is missing this. I think this
4429 should be considered a Solaris python bug, but I'm not sure.
4433 should be considered a Solaris python bug, but I'm not sure.
4430
4434
4431 2004-01-17 Fernando Perez <fperez@colorado.edu>
4435 2004-01-17 Fernando Perez <fperez@colorado.edu>
4432
4436
4433 * IPython/genutils.py (Stream.__init__): Changes to try to make
4437 * IPython/genutils.py (Stream.__init__): Changes to try to make
4434 ipython robust against stdin/out/err being closed by the user.
4438 ipython robust against stdin/out/err being closed by the user.
4435 This is 'user error' (and blocks a normal python session, at least
4439 This is 'user error' (and blocks a normal python session, at least
4436 the stdout case). However, Ipython should be able to survive such
4440 the stdout case). However, Ipython should be able to survive such
4437 instances of abuse as gracefully as possible. To simplify the
4441 instances of abuse as gracefully as possible. To simplify the
4438 coding and maintain compatibility with Gary Bishop's Term
4442 coding and maintain compatibility with Gary Bishop's Term
4439 contributions, I've made use of classmethods for this. I think
4443 contributions, I've made use of classmethods for this. I think
4440 this introduces a dependency on python 2.2.
4444 this introduces a dependency on python 2.2.
4441
4445
4442 2004-01-13 Fernando Perez <fperez@colorado.edu>
4446 2004-01-13 Fernando Perez <fperez@colorado.edu>
4443
4447
4444 * IPython/numutils.py (exp_safe): simplified the code a bit and
4448 * IPython/numutils.py (exp_safe): simplified the code a bit and
4445 removed the need for importing the kinds module altogether.
4449 removed the need for importing the kinds module altogether.
4446
4450
4447 2004-01-06 Fernando Perez <fperez@colorado.edu>
4451 2004-01-06 Fernando Perez <fperez@colorado.edu>
4448
4452
4449 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4453 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4450 a magic function instead, after some community feedback. No
4454 a magic function instead, after some community feedback. No
4451 special syntax will exist for it, but its name is deliberately
4455 special syntax will exist for it, but its name is deliberately
4452 very short.
4456 very short.
4453
4457
4454 2003-12-20 Fernando Perez <fperez@colorado.edu>
4458 2003-12-20 Fernando Perez <fperez@colorado.edu>
4455
4459
4456 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4460 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4457 new functionality, to automagically assign the result of a shell
4461 new functionality, to automagically assign the result of a shell
4458 command to a variable. I'll solicit some community feedback on
4462 command to a variable. I'll solicit some community feedback on
4459 this before making it permanent.
4463 this before making it permanent.
4460
4464
4461 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4465 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4462 requested about callables for which inspect couldn't obtain a
4466 requested about callables for which inspect couldn't obtain a
4463 proper argspec. Thanks to a crash report sent by Etienne
4467 proper argspec. Thanks to a crash report sent by Etienne
4464 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4468 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4465
4469
4466 2003-12-09 Fernando Perez <fperez@colorado.edu>
4470 2003-12-09 Fernando Perez <fperez@colorado.edu>
4467
4471
4468 * IPython/genutils.py (page): patch for the pager to work across
4472 * IPython/genutils.py (page): patch for the pager to work across
4469 various versions of Windows. By Gary Bishop.
4473 various versions of Windows. By Gary Bishop.
4470
4474
4471 2003-12-04 Fernando Perez <fperez@colorado.edu>
4475 2003-12-04 Fernando Perez <fperez@colorado.edu>
4472
4476
4473 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4477 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4474 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4478 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4475 While I tested this and it looks ok, there may still be corner
4479 While I tested this and it looks ok, there may still be corner
4476 cases I've missed.
4480 cases I've missed.
4477
4481
4478 2003-12-01 Fernando Perez <fperez@colorado.edu>
4482 2003-12-01 Fernando Perez <fperez@colorado.edu>
4479
4483
4480 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4484 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4481 where a line like 'p,q=1,2' would fail because the automagic
4485 where a line like 'p,q=1,2' would fail because the automagic
4482 system would be triggered for @p.
4486 system would be triggered for @p.
4483
4487
4484 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4488 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4485 cleanups, code unmodified.
4489 cleanups, code unmodified.
4486
4490
4487 * IPython/genutils.py (Term): added a class for IPython to handle
4491 * IPython/genutils.py (Term): added a class for IPython to handle
4488 output. In most cases it will just be a proxy for stdout/err, but
4492 output. In most cases it will just be a proxy for stdout/err, but
4489 having this allows modifications to be made for some platforms,
4493 having this allows modifications to be made for some platforms,
4490 such as handling color escapes under Windows. All of this code
4494 such as handling color escapes under Windows. All of this code
4491 was contributed by Gary Bishop, with minor modifications by me.
4495 was contributed by Gary Bishop, with minor modifications by me.
4492 The actual changes affect many files.
4496 The actual changes affect many files.
4493
4497
4494 2003-11-30 Fernando Perez <fperez@colorado.edu>
4498 2003-11-30 Fernando Perez <fperez@colorado.edu>
4495
4499
4496 * IPython/iplib.py (file_matches): new completion code, courtesy
4500 * IPython/iplib.py (file_matches): new completion code, courtesy
4497 of Jeff Collins. This enables filename completion again under
4501 of Jeff Collins. This enables filename completion again under
4498 python 2.3, which disabled it at the C level.
4502 python 2.3, which disabled it at the C level.
4499
4503
4500 2003-11-11 Fernando Perez <fperez@colorado.edu>
4504 2003-11-11 Fernando Perez <fperez@colorado.edu>
4501
4505
4502 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4506 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4503 for Numeric.array(map(...)), but often convenient.
4507 for Numeric.array(map(...)), but often convenient.
4504
4508
4505 2003-11-05 Fernando Perez <fperez@colorado.edu>
4509 2003-11-05 Fernando Perez <fperez@colorado.edu>
4506
4510
4507 * IPython/numutils.py (frange): Changed a call from int() to
4511 * IPython/numutils.py (frange): Changed a call from int() to
4508 int(round()) to prevent a problem reported with arange() in the
4512 int(round()) to prevent a problem reported with arange() in the
4509 numpy list.
4513 numpy list.
4510
4514
4511 2003-10-06 Fernando Perez <fperez@colorado.edu>
4515 2003-10-06 Fernando Perez <fperez@colorado.edu>
4512
4516
4513 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4517 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4514 prevent crashes if sys lacks an argv attribute (it happens with
4518 prevent crashes if sys lacks an argv attribute (it happens with
4515 embedded interpreters which build a bare-bones sys module).
4519 embedded interpreters which build a bare-bones sys module).
4516 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4520 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4517
4521
4518 2003-09-24 Fernando Perez <fperez@colorado.edu>
4522 2003-09-24 Fernando Perez <fperez@colorado.edu>
4519
4523
4520 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4524 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4521 to protect against poorly written user objects where __getattr__
4525 to protect against poorly written user objects where __getattr__
4522 raises exceptions other than AttributeError. Thanks to a bug
4526 raises exceptions other than AttributeError. Thanks to a bug
4523 report by Oliver Sander <osander-AT-gmx.de>.
4527 report by Oliver Sander <osander-AT-gmx.de>.
4524
4528
4525 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4529 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4526 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4530 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4527
4531
4528 2003-09-09 Fernando Perez <fperez@colorado.edu>
4532 2003-09-09 Fernando Perez <fperez@colorado.edu>
4529
4533
4530 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4534 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4531 unpacking a list whith a callable as first element would
4535 unpacking a list whith a callable as first element would
4532 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4536 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4533 Collins.
4537 Collins.
4534
4538
4535 2003-08-25 *** Released version 0.5.0
4539 2003-08-25 *** Released version 0.5.0
4536
4540
4537 2003-08-22 Fernando Perez <fperez@colorado.edu>
4541 2003-08-22 Fernando Perez <fperez@colorado.edu>
4538
4542
4539 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4543 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4540 improperly defined user exceptions. Thanks to feedback from Mark
4544 improperly defined user exceptions. Thanks to feedback from Mark
4541 Russell <mrussell-AT-verio.net>.
4545 Russell <mrussell-AT-verio.net>.
4542
4546
4543 2003-08-20 Fernando Perez <fperez@colorado.edu>
4547 2003-08-20 Fernando Perez <fperez@colorado.edu>
4544
4548
4545 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4549 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4546 printing so that it would print multi-line string forms starting
4550 printing so that it would print multi-line string forms starting
4547 with a new line. This way the formatting is better respected for
4551 with a new line. This way the formatting is better respected for
4548 objects which work hard to make nice string forms.
4552 objects which work hard to make nice string forms.
4549
4553
4550 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4554 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4551 autocall would overtake data access for objects with both
4555 autocall would overtake data access for objects with both
4552 __getitem__ and __call__.
4556 __getitem__ and __call__.
4553
4557
4554 2003-08-19 *** Released version 0.5.0-rc1
4558 2003-08-19 *** Released version 0.5.0-rc1
4555
4559
4556 2003-08-19 Fernando Perez <fperez@colorado.edu>
4560 2003-08-19 Fernando Perez <fperez@colorado.edu>
4557
4561
4558 * IPython/deep_reload.py (load_tail): single tiny change here
4562 * IPython/deep_reload.py (load_tail): single tiny change here
4559 seems to fix the long-standing bug of dreload() failing to work
4563 seems to fix the long-standing bug of dreload() failing to work
4560 for dotted names. But this module is pretty tricky, so I may have
4564 for dotted names. But this module is pretty tricky, so I may have
4561 missed some subtlety. Needs more testing!.
4565 missed some subtlety. Needs more testing!.
4562
4566
4563 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4567 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4564 exceptions which have badly implemented __str__ methods.
4568 exceptions which have badly implemented __str__ methods.
4565 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4569 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4566 which I've been getting reports about from Python 2.3 users. I
4570 which I've been getting reports about from Python 2.3 users. I
4567 wish I had a simple test case to reproduce the problem, so I could
4571 wish I had a simple test case to reproduce the problem, so I could
4568 either write a cleaner workaround or file a bug report if
4572 either write a cleaner workaround or file a bug report if
4569 necessary.
4573 necessary.
4570
4574
4571 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4575 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4572 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4576 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4573 a bug report by Tjabo Kloppenburg.
4577 a bug report by Tjabo Kloppenburg.
4574
4578
4575 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4579 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4576 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4580 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4577 seems rather unstable. Thanks to a bug report by Tjabo
4581 seems rather unstable. Thanks to a bug report by Tjabo
4578 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4582 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4579
4583
4580 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4584 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4581 this out soon because of the critical fixes in the inner loop for
4585 this out soon because of the critical fixes in the inner loop for
4582 generators.
4586 generators.
4583
4587
4584 * IPython/Magic.py (Magic.getargspec): removed. This (and
4588 * IPython/Magic.py (Magic.getargspec): removed. This (and
4585 _get_def) have been obsoleted by OInspect for a long time, I
4589 _get_def) have been obsoleted by OInspect for a long time, I
4586 hadn't noticed that they were dead code.
4590 hadn't noticed that they were dead code.
4587 (Magic._ofind): restored _ofind functionality for a few literals
4591 (Magic._ofind): restored _ofind functionality for a few literals
4588 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4592 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4589 for things like "hello".capitalize?, since that would require a
4593 for things like "hello".capitalize?, since that would require a
4590 potentially dangerous eval() again.
4594 potentially dangerous eval() again.
4591
4595
4592 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4596 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4593 logic a bit more to clean up the escapes handling and minimize the
4597 logic a bit more to clean up the escapes handling and minimize the
4594 use of _ofind to only necessary cases. The interactive 'feel' of
4598 use of _ofind to only necessary cases. The interactive 'feel' of
4595 IPython should have improved quite a bit with the changes in
4599 IPython should have improved quite a bit with the changes in
4596 _prefilter and _ofind (besides being far safer than before).
4600 _prefilter and _ofind (besides being far safer than before).
4597
4601
4598 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4602 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4599 obscure, never reported). Edit would fail to find the object to
4603 obscure, never reported). Edit would fail to find the object to
4600 edit under some circumstances.
4604 edit under some circumstances.
4601 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4605 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4602 which were causing double-calling of generators. Those eval calls
4606 which were causing double-calling of generators. Those eval calls
4603 were _very_ dangerous, since code with side effects could be
4607 were _very_ dangerous, since code with side effects could be
4604 triggered. As they say, 'eval is evil'... These were the
4608 triggered. As they say, 'eval is evil'... These were the
4605 nastiest evals in IPython. Besides, _ofind is now far simpler,
4609 nastiest evals in IPython. Besides, _ofind is now far simpler,
4606 and it should also be quite a bit faster. Its use of inspect is
4610 and it should also be quite a bit faster. Its use of inspect is
4607 also safer, so perhaps some of the inspect-related crashes I've
4611 also safer, so perhaps some of the inspect-related crashes I've
4608 seen lately with Python 2.3 might be taken care of. That will
4612 seen lately with Python 2.3 might be taken care of. That will
4609 need more testing.
4613 need more testing.
4610
4614
4611 2003-08-17 Fernando Perez <fperez@colorado.edu>
4615 2003-08-17 Fernando Perez <fperez@colorado.edu>
4612
4616
4613 * IPython/iplib.py (InteractiveShell._prefilter): significant
4617 * IPython/iplib.py (InteractiveShell._prefilter): significant
4614 simplifications to the logic for handling user escapes. Faster
4618 simplifications to the logic for handling user escapes. Faster
4615 and simpler code.
4619 and simpler code.
4616
4620
4617 2003-08-14 Fernando Perez <fperez@colorado.edu>
4621 2003-08-14 Fernando Perez <fperez@colorado.edu>
4618
4622
4619 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4623 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4620 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4624 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4621 but it should be quite a bit faster. And the recursive version
4625 but it should be quite a bit faster. And the recursive version
4622 generated O(log N) intermediate storage for all rank>1 arrays,
4626 generated O(log N) intermediate storage for all rank>1 arrays,
4623 even if they were contiguous.
4627 even if they were contiguous.
4624 (l1norm): Added this function.
4628 (l1norm): Added this function.
4625 (norm): Added this function for arbitrary norms (including
4629 (norm): Added this function for arbitrary norms (including
4626 l-infinity). l1 and l2 are still special cases for convenience
4630 l-infinity). l1 and l2 are still special cases for convenience
4627 and speed.
4631 and speed.
4628
4632
4629 2003-08-03 Fernando Perez <fperez@colorado.edu>
4633 2003-08-03 Fernando Perez <fperez@colorado.edu>
4630
4634
4631 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4635 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4632 exceptions, which now raise PendingDeprecationWarnings in Python
4636 exceptions, which now raise PendingDeprecationWarnings in Python
4633 2.3. There were some in Magic and some in Gnuplot2.
4637 2.3. There were some in Magic and some in Gnuplot2.
4634
4638
4635 2003-06-30 Fernando Perez <fperez@colorado.edu>
4639 2003-06-30 Fernando Perez <fperez@colorado.edu>
4636
4640
4637 * IPython/genutils.py (page): modified to call curses only for
4641 * IPython/genutils.py (page): modified to call curses only for
4638 terminals where TERM=='xterm'. After problems under many other
4642 terminals where TERM=='xterm'. After problems under many other
4639 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4643 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4640
4644
4641 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4645 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4642 would be triggered when readline was absent. This was just an old
4646 would be triggered when readline was absent. This was just an old
4643 debugging statement I'd forgotten to take out.
4647 debugging statement I'd forgotten to take out.
4644
4648
4645 2003-06-20 Fernando Perez <fperez@colorado.edu>
4649 2003-06-20 Fernando Perez <fperez@colorado.edu>
4646
4650
4647 * IPython/genutils.py (clock): modified to return only user time
4651 * IPython/genutils.py (clock): modified to return only user time
4648 (not counting system time), after a discussion on scipy. While
4652 (not counting system time), after a discussion on scipy. While
4649 system time may be a useful quantity occasionally, it may much
4653 system time may be a useful quantity occasionally, it may much
4650 more easily be skewed by occasional swapping or other similar
4654 more easily be skewed by occasional swapping or other similar
4651 activity.
4655 activity.
4652
4656
4653 2003-06-05 Fernando Perez <fperez@colorado.edu>
4657 2003-06-05 Fernando Perez <fperez@colorado.edu>
4654
4658
4655 * IPython/numutils.py (identity): new function, for building
4659 * IPython/numutils.py (identity): new function, for building
4656 arbitrary rank Kronecker deltas (mostly backwards compatible with
4660 arbitrary rank Kronecker deltas (mostly backwards compatible with
4657 Numeric.identity)
4661 Numeric.identity)
4658
4662
4659 2003-06-03 Fernando Perez <fperez@colorado.edu>
4663 2003-06-03 Fernando Perez <fperez@colorado.edu>
4660
4664
4661 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4665 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4662 arguments passed to magics with spaces, to allow trailing '\' to
4666 arguments passed to magics with spaces, to allow trailing '\' to
4663 work normally (mainly for Windows users).
4667 work normally (mainly for Windows users).
4664
4668
4665 2003-05-29 Fernando Perez <fperez@colorado.edu>
4669 2003-05-29 Fernando Perez <fperez@colorado.edu>
4666
4670
4667 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4671 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4668 instead of pydoc.help. This fixes a bizarre behavior where
4672 instead of pydoc.help. This fixes a bizarre behavior where
4669 printing '%s' % locals() would trigger the help system. Now
4673 printing '%s' % locals() would trigger the help system. Now
4670 ipython behaves like normal python does.
4674 ipython behaves like normal python does.
4671
4675
4672 Note that if one does 'from pydoc import help', the bizarre
4676 Note that if one does 'from pydoc import help', the bizarre
4673 behavior returns, but this will also happen in normal python, so
4677 behavior returns, but this will also happen in normal python, so
4674 it's not an ipython bug anymore (it has to do with how pydoc.help
4678 it's not an ipython bug anymore (it has to do with how pydoc.help
4675 is implemented).
4679 is implemented).
4676
4680
4677 2003-05-22 Fernando Perez <fperez@colorado.edu>
4681 2003-05-22 Fernando Perez <fperez@colorado.edu>
4678
4682
4679 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4683 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4680 return [] instead of None when nothing matches, also match to end
4684 return [] instead of None when nothing matches, also match to end
4681 of line. Patch by Gary Bishop.
4685 of line. Patch by Gary Bishop.
4682
4686
4683 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4687 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4684 protection as before, for files passed on the command line. This
4688 protection as before, for files passed on the command line. This
4685 prevents the CrashHandler from kicking in if user files call into
4689 prevents the CrashHandler from kicking in if user files call into
4686 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4690 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4687 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4691 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4688
4692
4689 2003-05-20 *** Released version 0.4.0
4693 2003-05-20 *** Released version 0.4.0
4690
4694
4691 2003-05-20 Fernando Perez <fperez@colorado.edu>
4695 2003-05-20 Fernando Perez <fperez@colorado.edu>
4692
4696
4693 * setup.py: added support for manpages. It's a bit hackish b/c of
4697 * setup.py: added support for manpages. It's a bit hackish b/c of
4694 a bug in the way the bdist_rpm distutils target handles gzipped
4698 a bug in the way the bdist_rpm distutils target handles gzipped
4695 manpages, but it works. After a patch by Jack.
4699 manpages, but it works. After a patch by Jack.
4696
4700
4697 2003-05-19 Fernando Perez <fperez@colorado.edu>
4701 2003-05-19 Fernando Perez <fperez@colorado.edu>
4698
4702
4699 * IPython/numutils.py: added a mockup of the kinds module, since
4703 * IPython/numutils.py: added a mockup of the kinds module, since
4700 it was recently removed from Numeric. This way, numutils will
4704 it was recently removed from Numeric. This way, numutils will
4701 work for all users even if they are missing kinds.
4705 work for all users even if they are missing kinds.
4702
4706
4703 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4707 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4704 failure, which can occur with SWIG-wrapped extensions. After a
4708 failure, which can occur with SWIG-wrapped extensions. After a
4705 crash report from Prabhu.
4709 crash report from Prabhu.
4706
4710
4707 2003-05-16 Fernando Perez <fperez@colorado.edu>
4711 2003-05-16 Fernando Perez <fperez@colorado.edu>
4708
4712
4709 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4713 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4710 protect ipython from user code which may call directly
4714 protect ipython from user code which may call directly
4711 sys.excepthook (this looks like an ipython crash to the user, even
4715 sys.excepthook (this looks like an ipython crash to the user, even
4712 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4716 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4713 This is especially important to help users of WxWindows, but may
4717 This is especially important to help users of WxWindows, but may
4714 also be useful in other cases.
4718 also be useful in other cases.
4715
4719
4716 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4720 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4717 an optional tb_offset to be specified, and to preserve exception
4721 an optional tb_offset to be specified, and to preserve exception
4718 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4722 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4719
4723
4720 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4724 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4721
4725
4722 2003-05-15 Fernando Perez <fperez@colorado.edu>
4726 2003-05-15 Fernando Perez <fperez@colorado.edu>
4723
4727
4724 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4728 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4725 installing for a new user under Windows.
4729 installing for a new user under Windows.
4726
4730
4727 2003-05-12 Fernando Perez <fperez@colorado.edu>
4731 2003-05-12 Fernando Perez <fperez@colorado.edu>
4728
4732
4729 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4733 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4730 handler for Emacs comint-based lines. Currently it doesn't do
4734 handler for Emacs comint-based lines. Currently it doesn't do
4731 much (but importantly, it doesn't update the history cache). In
4735 much (but importantly, it doesn't update the history cache). In
4732 the future it may be expanded if Alex needs more functionality
4736 the future it may be expanded if Alex needs more functionality
4733 there.
4737 there.
4734
4738
4735 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4739 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4736 info to crash reports.
4740 info to crash reports.
4737
4741
4738 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4742 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4739 just like Python's -c. Also fixed crash with invalid -color
4743 just like Python's -c. Also fixed crash with invalid -color
4740 option value at startup. Thanks to Will French
4744 option value at startup. Thanks to Will French
4741 <wfrench-AT-bestweb.net> for the bug report.
4745 <wfrench-AT-bestweb.net> for the bug report.
4742
4746
4743 2003-05-09 Fernando Perez <fperez@colorado.edu>
4747 2003-05-09 Fernando Perez <fperez@colorado.edu>
4744
4748
4745 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4749 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4746 to EvalDict (it's a mapping, after all) and simplified its code
4750 to EvalDict (it's a mapping, after all) and simplified its code
4747 quite a bit, after a nice discussion on c.l.py where Gustavo
4751 quite a bit, after a nice discussion on c.l.py where Gustavo
4748 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4752 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4749
4753
4750 2003-04-30 Fernando Perez <fperez@colorado.edu>
4754 2003-04-30 Fernando Perez <fperez@colorado.edu>
4751
4755
4752 * IPython/genutils.py (timings_out): modified it to reduce its
4756 * IPython/genutils.py (timings_out): modified it to reduce its
4753 overhead in the common reps==1 case.
4757 overhead in the common reps==1 case.
4754
4758
4755 2003-04-29 Fernando Perez <fperez@colorado.edu>
4759 2003-04-29 Fernando Perez <fperez@colorado.edu>
4756
4760
4757 * IPython/genutils.py (timings_out): Modified to use the resource
4761 * IPython/genutils.py (timings_out): Modified to use the resource
4758 module, which avoids the wraparound problems of time.clock().
4762 module, which avoids the wraparound problems of time.clock().
4759
4763
4760 2003-04-17 *** Released version 0.2.15pre4
4764 2003-04-17 *** Released version 0.2.15pre4
4761
4765
4762 2003-04-17 Fernando Perez <fperez@colorado.edu>
4766 2003-04-17 Fernando Perez <fperez@colorado.edu>
4763
4767
4764 * setup.py (scriptfiles): Split windows-specific stuff over to a
4768 * setup.py (scriptfiles): Split windows-specific stuff over to a
4765 separate file, in an attempt to have a Windows GUI installer.
4769 separate file, in an attempt to have a Windows GUI installer.
4766 That didn't work, but part of the groundwork is done.
4770 That didn't work, but part of the groundwork is done.
4767
4771
4768 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4772 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4769 indent/unindent with 4 spaces. Particularly useful in combination
4773 indent/unindent with 4 spaces. Particularly useful in combination
4770 with the new auto-indent option.
4774 with the new auto-indent option.
4771
4775
4772 2003-04-16 Fernando Perez <fperez@colorado.edu>
4776 2003-04-16 Fernando Perez <fperez@colorado.edu>
4773
4777
4774 * IPython/Magic.py: various replacements of self.rc for
4778 * IPython/Magic.py: various replacements of self.rc for
4775 self.shell.rc. A lot more remains to be done to fully disentangle
4779 self.shell.rc. A lot more remains to be done to fully disentangle
4776 this class from the main Shell class.
4780 this class from the main Shell class.
4777
4781
4778 * IPython/GnuplotRuntime.py: added checks for mouse support so
4782 * IPython/GnuplotRuntime.py: added checks for mouse support so
4779 that we don't try to enable it if the current gnuplot doesn't
4783 that we don't try to enable it if the current gnuplot doesn't
4780 really support it. Also added checks so that we don't try to
4784 really support it. Also added checks so that we don't try to
4781 enable persist under Windows (where Gnuplot doesn't recognize the
4785 enable persist under Windows (where Gnuplot doesn't recognize the
4782 option).
4786 option).
4783
4787
4784 * IPython/iplib.py (InteractiveShell.interact): Added optional
4788 * IPython/iplib.py (InteractiveShell.interact): Added optional
4785 auto-indenting code, after a patch by King C. Shu
4789 auto-indenting code, after a patch by King C. Shu
4786 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4790 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4787 get along well with pasting indented code. If I ever figure out
4791 get along well with pasting indented code. If I ever figure out
4788 how to make that part go well, it will become on by default.
4792 how to make that part go well, it will become on by default.
4789
4793
4790 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4794 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4791 crash ipython if there was an unmatched '%' in the user's prompt
4795 crash ipython if there was an unmatched '%' in the user's prompt
4792 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4796 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4793
4797
4794 * IPython/iplib.py (InteractiveShell.interact): removed the
4798 * IPython/iplib.py (InteractiveShell.interact): removed the
4795 ability to ask the user whether he wants to crash or not at the
4799 ability to ask the user whether he wants to crash or not at the
4796 'last line' exception handler. Calling functions at that point
4800 'last line' exception handler. Calling functions at that point
4797 changes the stack, and the error reports would have incorrect
4801 changes the stack, and the error reports would have incorrect
4798 tracebacks.
4802 tracebacks.
4799
4803
4800 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4804 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4801 pass through a peger a pretty-printed form of any object. After a
4805 pass through a peger a pretty-printed form of any object. After a
4802 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4806 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4803
4807
4804 2003-04-14 Fernando Perez <fperez@colorado.edu>
4808 2003-04-14 Fernando Perez <fperez@colorado.edu>
4805
4809
4806 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4810 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4807 all files in ~ would be modified at first install (instead of
4811 all files in ~ would be modified at first install (instead of
4808 ~/.ipython). This could be potentially disastrous, as the
4812 ~/.ipython). This could be potentially disastrous, as the
4809 modification (make line-endings native) could damage binary files.
4813 modification (make line-endings native) could damage binary files.
4810
4814
4811 2003-04-10 Fernando Perez <fperez@colorado.edu>
4815 2003-04-10 Fernando Perez <fperez@colorado.edu>
4812
4816
4813 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4817 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4814 handle only lines which are invalid python. This now means that
4818 handle only lines which are invalid python. This now means that
4815 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4819 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4816 for the bug report.
4820 for the bug report.
4817
4821
4818 2003-04-01 Fernando Perez <fperez@colorado.edu>
4822 2003-04-01 Fernando Perez <fperez@colorado.edu>
4819
4823
4820 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4824 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4821 where failing to set sys.last_traceback would crash pdb.pm().
4825 where failing to set sys.last_traceback would crash pdb.pm().
4822 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4826 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4823 report.
4827 report.
4824
4828
4825 2003-03-25 Fernando Perez <fperez@colorado.edu>
4829 2003-03-25 Fernando Perez <fperez@colorado.edu>
4826
4830
4827 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4831 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4828 before printing it (it had a lot of spurious blank lines at the
4832 before printing it (it had a lot of spurious blank lines at the
4829 end).
4833 end).
4830
4834
4831 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4835 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4832 output would be sent 21 times! Obviously people don't use this
4836 output would be sent 21 times! Obviously people don't use this
4833 too often, or I would have heard about it.
4837 too often, or I would have heard about it.
4834
4838
4835 2003-03-24 Fernando Perez <fperez@colorado.edu>
4839 2003-03-24 Fernando Perez <fperez@colorado.edu>
4836
4840
4837 * setup.py (scriptfiles): renamed the data_files parameter from
4841 * setup.py (scriptfiles): renamed the data_files parameter from
4838 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4842 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4839 for the patch.
4843 for the patch.
4840
4844
4841 2003-03-20 Fernando Perez <fperez@colorado.edu>
4845 2003-03-20 Fernando Perez <fperez@colorado.edu>
4842
4846
4843 * IPython/genutils.py (error): added error() and fatal()
4847 * IPython/genutils.py (error): added error() and fatal()
4844 functions.
4848 functions.
4845
4849
4846 2003-03-18 *** Released version 0.2.15pre3
4850 2003-03-18 *** Released version 0.2.15pre3
4847
4851
4848 2003-03-18 Fernando Perez <fperez@colorado.edu>
4852 2003-03-18 Fernando Perez <fperez@colorado.edu>
4849
4853
4850 * setupext/install_data_ext.py
4854 * setupext/install_data_ext.py
4851 (install_data_ext.initialize_options): Class contributed by Jack
4855 (install_data_ext.initialize_options): Class contributed by Jack
4852 Moffit for fixing the old distutils hack. He is sending this to
4856 Moffit for fixing the old distutils hack. He is sending this to
4853 the distutils folks so in the future we may not need it as a
4857 the distutils folks so in the future we may not need it as a
4854 private fix.
4858 private fix.
4855
4859
4856 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4860 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4857 changes for Debian packaging. See his patch for full details.
4861 changes for Debian packaging. See his patch for full details.
4858 The old distutils hack of making the ipythonrc* files carry a
4862 The old distutils hack of making the ipythonrc* files carry a
4859 bogus .py extension is gone, at last. Examples were moved to a
4863 bogus .py extension is gone, at last. Examples were moved to a
4860 separate subdir under doc/, and the separate executable scripts
4864 separate subdir under doc/, and the separate executable scripts
4861 now live in their own directory. Overall a great cleanup. The
4865 now live in their own directory. Overall a great cleanup. The
4862 manual was updated to use the new files, and setup.py has been
4866 manual was updated to use the new files, and setup.py has been
4863 fixed for this setup.
4867 fixed for this setup.
4864
4868
4865 * IPython/PyColorize.py (Parser.usage): made non-executable and
4869 * IPython/PyColorize.py (Parser.usage): made non-executable and
4866 created a pycolor wrapper around it to be included as a script.
4870 created a pycolor wrapper around it to be included as a script.
4867
4871
4868 2003-03-12 *** Released version 0.2.15pre2
4872 2003-03-12 *** Released version 0.2.15pre2
4869
4873
4870 2003-03-12 Fernando Perez <fperez@colorado.edu>
4874 2003-03-12 Fernando Perez <fperez@colorado.edu>
4871
4875
4872 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4876 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4873 long-standing problem with garbage characters in some terminals.
4877 long-standing problem with garbage characters in some terminals.
4874 The issue was really that the \001 and \002 escapes must _only_ be
4878 The issue was really that the \001 and \002 escapes must _only_ be
4875 passed to input prompts (which call readline), but _never_ to
4879 passed to input prompts (which call readline), but _never_ to
4876 normal text to be printed on screen. I changed ColorANSI to have
4880 normal text to be printed on screen. I changed ColorANSI to have
4877 two classes: TermColors and InputTermColors, each with the
4881 two classes: TermColors and InputTermColors, each with the
4878 appropriate escapes for input prompts or normal text. The code in
4882 appropriate escapes for input prompts or normal text. The code in
4879 Prompts.py got slightly more complicated, but this very old and
4883 Prompts.py got slightly more complicated, but this very old and
4880 annoying bug is finally fixed.
4884 annoying bug is finally fixed.
4881
4885
4882 All the credit for nailing down the real origin of this problem
4886 All the credit for nailing down the real origin of this problem
4883 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4887 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4884 *Many* thanks to him for spending quite a bit of effort on this.
4888 *Many* thanks to him for spending quite a bit of effort on this.
4885
4889
4886 2003-03-05 *** Released version 0.2.15pre1
4890 2003-03-05 *** Released version 0.2.15pre1
4887
4891
4888 2003-03-03 Fernando Perez <fperez@colorado.edu>
4892 2003-03-03 Fernando Perez <fperez@colorado.edu>
4889
4893
4890 * IPython/FakeModule.py: Moved the former _FakeModule to a
4894 * IPython/FakeModule.py: Moved the former _FakeModule to a
4891 separate file, because it's also needed by Magic (to fix a similar
4895 separate file, because it's also needed by Magic (to fix a similar
4892 pickle-related issue in @run).
4896 pickle-related issue in @run).
4893
4897
4894 2003-03-02 Fernando Perez <fperez@colorado.edu>
4898 2003-03-02 Fernando Perez <fperez@colorado.edu>
4895
4899
4896 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4900 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4897 the autocall option at runtime.
4901 the autocall option at runtime.
4898 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4902 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4899 across Magic.py to start separating Magic from InteractiveShell.
4903 across Magic.py to start separating Magic from InteractiveShell.
4900 (Magic._ofind): Fixed to return proper namespace for dotted
4904 (Magic._ofind): Fixed to return proper namespace for dotted
4901 names. Before, a dotted name would always return 'not currently
4905 names. Before, a dotted name would always return 'not currently
4902 defined', because it would find the 'parent'. s.x would be found,
4906 defined', because it would find the 'parent'. s.x would be found,
4903 but since 'x' isn't defined by itself, it would get confused.
4907 but since 'x' isn't defined by itself, it would get confused.
4904 (Magic.magic_run): Fixed pickling problems reported by Ralf
4908 (Magic.magic_run): Fixed pickling problems reported by Ralf
4905 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4909 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4906 that I'd used when Mike Heeter reported similar issues at the
4910 that I'd used when Mike Heeter reported similar issues at the
4907 top-level, but now for @run. It boils down to injecting the
4911 top-level, but now for @run. It boils down to injecting the
4908 namespace where code is being executed with something that looks
4912 namespace where code is being executed with something that looks
4909 enough like a module to fool pickle.dump(). Since a pickle stores
4913 enough like a module to fool pickle.dump(). Since a pickle stores
4910 a named reference to the importing module, we need this for
4914 a named reference to the importing module, we need this for
4911 pickles to save something sensible.
4915 pickles to save something sensible.
4912
4916
4913 * IPython/ipmaker.py (make_IPython): added an autocall option.
4917 * IPython/ipmaker.py (make_IPython): added an autocall option.
4914
4918
4915 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4919 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4916 the auto-eval code. Now autocalling is an option, and the code is
4920 the auto-eval code. Now autocalling is an option, and the code is
4917 also vastly safer. There is no more eval() involved at all.
4921 also vastly safer. There is no more eval() involved at all.
4918
4922
4919 2003-03-01 Fernando Perez <fperez@colorado.edu>
4923 2003-03-01 Fernando Perez <fperez@colorado.edu>
4920
4924
4921 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4925 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4922 dict with named keys instead of a tuple.
4926 dict with named keys instead of a tuple.
4923
4927
4924 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4928 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4925
4929
4926 * setup.py (make_shortcut): Fixed message about directories
4930 * setup.py (make_shortcut): Fixed message about directories
4927 created during Windows installation (the directories were ok, just
4931 created during Windows installation (the directories were ok, just
4928 the printed message was misleading). Thanks to Chris Liechti
4932 the printed message was misleading). Thanks to Chris Liechti
4929 <cliechti-AT-gmx.net> for the heads up.
4933 <cliechti-AT-gmx.net> for the heads up.
4930
4934
4931 2003-02-21 Fernando Perez <fperez@colorado.edu>
4935 2003-02-21 Fernando Perez <fperez@colorado.edu>
4932
4936
4933 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4937 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4934 of ValueError exception when checking for auto-execution. This
4938 of ValueError exception when checking for auto-execution. This
4935 one is raised by things like Numeric arrays arr.flat when the
4939 one is raised by things like Numeric arrays arr.flat when the
4936 array is non-contiguous.
4940 array is non-contiguous.
4937
4941
4938 2003-01-31 Fernando Perez <fperez@colorado.edu>
4942 2003-01-31 Fernando Perez <fperez@colorado.edu>
4939
4943
4940 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4944 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4941 not return any value at all (even though the command would get
4945 not return any value at all (even though the command would get
4942 executed).
4946 executed).
4943 (xsys): Flush stdout right after printing the command to ensure
4947 (xsys): Flush stdout right after printing the command to ensure
4944 proper ordering of commands and command output in the total
4948 proper ordering of commands and command output in the total
4945 output.
4949 output.
4946 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4950 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4947 system/getoutput as defaults. The old ones are kept for
4951 system/getoutput as defaults. The old ones are kept for
4948 compatibility reasons, so no code which uses this library needs
4952 compatibility reasons, so no code which uses this library needs
4949 changing.
4953 changing.
4950
4954
4951 2003-01-27 *** Released version 0.2.14
4955 2003-01-27 *** Released version 0.2.14
4952
4956
4953 2003-01-25 Fernando Perez <fperez@colorado.edu>
4957 2003-01-25 Fernando Perez <fperez@colorado.edu>
4954
4958
4955 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4959 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4956 functions defined in previous edit sessions could not be re-edited
4960 functions defined in previous edit sessions could not be re-edited
4957 (because the temp files were immediately removed). Now temp files
4961 (because the temp files were immediately removed). Now temp files
4958 are removed only at IPython's exit.
4962 are removed only at IPython's exit.
4959 (Magic.magic_run): Improved @run to perform shell-like expansions
4963 (Magic.magic_run): Improved @run to perform shell-like expansions
4960 on its arguments (~users and $VARS). With this, @run becomes more
4964 on its arguments (~users and $VARS). With this, @run becomes more
4961 like a normal command-line.
4965 like a normal command-line.
4962
4966
4963 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4967 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4964 bugs related to embedding and cleaned up that code. A fairly
4968 bugs related to embedding and cleaned up that code. A fairly
4965 important one was the impossibility to access the global namespace
4969 important one was the impossibility to access the global namespace
4966 through the embedded IPython (only local variables were visible).
4970 through the embedded IPython (only local variables were visible).
4967
4971
4968 2003-01-14 Fernando Perez <fperez@colorado.edu>
4972 2003-01-14 Fernando Perez <fperez@colorado.edu>
4969
4973
4970 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4974 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4971 auto-calling to be a bit more conservative. Now it doesn't get
4975 auto-calling to be a bit more conservative. Now it doesn't get
4972 triggered if any of '!=()<>' are in the rest of the input line, to
4976 triggered if any of '!=()<>' are in the rest of the input line, to
4973 allow comparing callables. Thanks to Alex for the heads up.
4977 allow comparing callables. Thanks to Alex for the heads up.
4974
4978
4975 2003-01-07 Fernando Perez <fperez@colorado.edu>
4979 2003-01-07 Fernando Perez <fperez@colorado.edu>
4976
4980
4977 * IPython/genutils.py (page): fixed estimation of the number of
4981 * IPython/genutils.py (page): fixed estimation of the number of
4978 lines in a string to be paged to simply count newlines. This
4982 lines in a string to be paged to simply count newlines. This
4979 prevents over-guessing due to embedded escape sequences. A better
4983 prevents over-guessing due to embedded escape sequences. A better
4980 long-term solution would involve stripping out the control chars
4984 long-term solution would involve stripping out the control chars
4981 for the count, but it's potentially so expensive I just don't
4985 for the count, but it's potentially so expensive I just don't
4982 think it's worth doing.
4986 think it's worth doing.
4983
4987
4984 2002-12-19 *** Released version 0.2.14pre50
4988 2002-12-19 *** Released version 0.2.14pre50
4985
4989
4986 2002-12-19 Fernando Perez <fperez@colorado.edu>
4990 2002-12-19 Fernando Perez <fperez@colorado.edu>
4987
4991
4988 * tools/release (version): Changed release scripts to inform
4992 * tools/release (version): Changed release scripts to inform
4989 Andrea and build a NEWS file with a list of recent changes.
4993 Andrea and build a NEWS file with a list of recent changes.
4990
4994
4991 * IPython/ColorANSI.py (__all__): changed terminal detection
4995 * IPython/ColorANSI.py (__all__): changed terminal detection
4992 code. Seems to work better for xterms without breaking
4996 code. Seems to work better for xterms without breaking
4993 konsole. Will need more testing to determine if WinXP and Mac OSX
4997 konsole. Will need more testing to determine if WinXP and Mac OSX
4994 also work ok.
4998 also work ok.
4995
4999
4996 2002-12-18 *** Released version 0.2.14pre49
5000 2002-12-18 *** Released version 0.2.14pre49
4997
5001
4998 2002-12-18 Fernando Perez <fperez@colorado.edu>
5002 2002-12-18 Fernando Perez <fperez@colorado.edu>
4999
5003
5000 * Docs: added new info about Mac OSX, from Andrea.
5004 * Docs: added new info about Mac OSX, from Andrea.
5001
5005
5002 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5006 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5003 allow direct plotting of python strings whose format is the same
5007 allow direct plotting of python strings whose format is the same
5004 of gnuplot data files.
5008 of gnuplot data files.
5005
5009
5006 2002-12-16 Fernando Perez <fperez@colorado.edu>
5010 2002-12-16 Fernando Perez <fperez@colorado.edu>
5007
5011
5008 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5012 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5009 value of exit question to be acknowledged.
5013 value of exit question to be acknowledged.
5010
5014
5011 2002-12-03 Fernando Perez <fperez@colorado.edu>
5015 2002-12-03 Fernando Perez <fperez@colorado.edu>
5012
5016
5013 * IPython/ipmaker.py: removed generators, which had been added
5017 * IPython/ipmaker.py: removed generators, which had been added
5014 by mistake in an earlier debugging run. This was causing trouble
5018 by mistake in an earlier debugging run. This was causing trouble
5015 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5019 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5016 for pointing this out.
5020 for pointing this out.
5017
5021
5018 2002-11-17 Fernando Perez <fperez@colorado.edu>
5022 2002-11-17 Fernando Perez <fperez@colorado.edu>
5019
5023
5020 * Manual: updated the Gnuplot section.
5024 * Manual: updated the Gnuplot section.
5021
5025
5022 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5026 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5023 a much better split of what goes in Runtime and what goes in
5027 a much better split of what goes in Runtime and what goes in
5024 Interactive.
5028 Interactive.
5025
5029
5026 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5030 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5027 being imported from iplib.
5031 being imported from iplib.
5028
5032
5029 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5033 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5030 for command-passing. Now the global Gnuplot instance is called
5034 for command-passing. Now the global Gnuplot instance is called
5031 'gp' instead of 'g', which was really a far too fragile and
5035 'gp' instead of 'g', which was really a far too fragile and
5032 common name.
5036 common name.
5033
5037
5034 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5038 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5035 bounding boxes generated by Gnuplot for square plots.
5039 bounding boxes generated by Gnuplot for square plots.
5036
5040
5037 * IPython/genutils.py (popkey): new function added. I should
5041 * IPython/genutils.py (popkey): new function added. I should
5038 suggest this on c.l.py as a dict method, it seems useful.
5042 suggest this on c.l.py as a dict method, it seems useful.
5039
5043
5040 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5044 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5041 to transparently handle PostScript generation. MUCH better than
5045 to transparently handle PostScript generation. MUCH better than
5042 the previous plot_eps/replot_eps (which I removed now). The code
5046 the previous plot_eps/replot_eps (which I removed now). The code
5043 is also fairly clean and well documented now (including
5047 is also fairly clean and well documented now (including
5044 docstrings).
5048 docstrings).
5045
5049
5046 2002-11-13 Fernando Perez <fperez@colorado.edu>
5050 2002-11-13 Fernando Perez <fperez@colorado.edu>
5047
5051
5048 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5052 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5049 (inconsistent with options).
5053 (inconsistent with options).
5050
5054
5051 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5055 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5052 manually disabled, I don't know why. Fixed it.
5056 manually disabled, I don't know why. Fixed it.
5053 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5057 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5054 eps output.
5058 eps output.
5055
5059
5056 2002-11-12 Fernando Perez <fperez@colorado.edu>
5060 2002-11-12 Fernando Perez <fperez@colorado.edu>
5057
5061
5058 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5062 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5059 don't propagate up to caller. Fixes crash reported by François
5063 don't propagate up to caller. Fixes crash reported by François
5060 Pinard.
5064 Pinard.
5061
5065
5062 2002-11-09 Fernando Perez <fperez@colorado.edu>
5066 2002-11-09 Fernando Perez <fperez@colorado.edu>
5063
5067
5064 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5068 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5065 history file for new users.
5069 history file for new users.
5066 (make_IPython): fixed bug where initial install would leave the
5070 (make_IPython): fixed bug where initial install would leave the
5067 user running in the .ipython dir.
5071 user running in the .ipython dir.
5068 (make_IPython): fixed bug where config dir .ipython would be
5072 (make_IPython): fixed bug where config dir .ipython would be
5069 created regardless of the given -ipythondir option. Thanks to Cory
5073 created regardless of the given -ipythondir option. Thanks to Cory
5070 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5074 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5071
5075
5072 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5076 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5073 type confirmations. Will need to use it in all of IPython's code
5077 type confirmations. Will need to use it in all of IPython's code
5074 consistently.
5078 consistently.
5075
5079
5076 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5080 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5077 context to print 31 lines instead of the default 5. This will make
5081 context to print 31 lines instead of the default 5. This will make
5078 the crash reports extremely detailed in case the problem is in
5082 the crash reports extremely detailed in case the problem is in
5079 libraries I don't have access to.
5083 libraries I don't have access to.
5080
5084
5081 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5085 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5082 line of defense' code to still crash, but giving users fair
5086 line of defense' code to still crash, but giving users fair
5083 warning. I don't want internal errors to go unreported: if there's
5087 warning. I don't want internal errors to go unreported: if there's
5084 an internal problem, IPython should crash and generate a full
5088 an internal problem, IPython should crash and generate a full
5085 report.
5089 report.
5086
5090
5087 2002-11-08 Fernando Perez <fperez@colorado.edu>
5091 2002-11-08 Fernando Perez <fperez@colorado.edu>
5088
5092
5089 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5093 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5090 otherwise uncaught exceptions which can appear if people set
5094 otherwise uncaught exceptions which can appear if people set
5091 sys.stdout to something badly broken. Thanks to a crash report
5095 sys.stdout to something badly broken. Thanks to a crash report
5092 from henni-AT-mail.brainbot.com.
5096 from henni-AT-mail.brainbot.com.
5093
5097
5094 2002-11-04 Fernando Perez <fperez@colorado.edu>
5098 2002-11-04 Fernando Perez <fperez@colorado.edu>
5095
5099
5096 * IPython/iplib.py (InteractiveShell.interact): added
5100 * IPython/iplib.py (InteractiveShell.interact): added
5097 __IPYTHON__active to the builtins. It's a flag which goes on when
5101 __IPYTHON__active to the builtins. It's a flag which goes on when
5098 the interaction starts and goes off again when it stops. This
5102 the interaction starts and goes off again when it stops. This
5099 allows embedding code to detect being inside IPython. Before this
5103 allows embedding code to detect being inside IPython. Before this
5100 was done via __IPYTHON__, but that only shows that an IPython
5104 was done via __IPYTHON__, but that only shows that an IPython
5101 instance has been created.
5105 instance has been created.
5102
5106
5103 * IPython/Magic.py (Magic.magic_env): I realized that in a
5107 * IPython/Magic.py (Magic.magic_env): I realized that in a
5104 UserDict, instance.data holds the data as a normal dict. So I
5108 UserDict, instance.data holds the data as a normal dict. So I
5105 modified @env to return os.environ.data instead of rebuilding a
5109 modified @env to return os.environ.data instead of rebuilding a
5106 dict by hand.
5110 dict by hand.
5107
5111
5108 2002-11-02 Fernando Perez <fperez@colorado.edu>
5112 2002-11-02 Fernando Perez <fperez@colorado.edu>
5109
5113
5110 * IPython/genutils.py (warn): changed so that level 1 prints no
5114 * IPython/genutils.py (warn): changed so that level 1 prints no
5111 header. Level 2 is now the default (with 'WARNING' header, as
5115 header. Level 2 is now the default (with 'WARNING' header, as
5112 before). I think I tracked all places where changes were needed in
5116 before). I think I tracked all places where changes were needed in
5113 IPython, but outside code using the old level numbering may have
5117 IPython, but outside code using the old level numbering may have
5114 broken.
5118 broken.
5115
5119
5116 * IPython/iplib.py (InteractiveShell.runcode): added this to
5120 * IPython/iplib.py (InteractiveShell.runcode): added this to
5117 handle the tracebacks in SystemExit traps correctly. The previous
5121 handle the tracebacks in SystemExit traps correctly. The previous
5118 code (through interact) was printing more of the stack than
5122 code (through interact) was printing more of the stack than
5119 necessary, showing IPython internal code to the user.
5123 necessary, showing IPython internal code to the user.
5120
5124
5121 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5125 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5122 default. Now that the default at the confirmation prompt is yes,
5126 default. Now that the default at the confirmation prompt is yes,
5123 it's not so intrusive. François' argument that ipython sessions
5127 it's not so intrusive. François' argument that ipython sessions
5124 tend to be complex enough not to lose them from an accidental C-d,
5128 tend to be complex enough not to lose them from an accidental C-d,
5125 is a valid one.
5129 is a valid one.
5126
5130
5127 * IPython/iplib.py (InteractiveShell.interact): added a
5131 * IPython/iplib.py (InteractiveShell.interact): added a
5128 showtraceback() call to the SystemExit trap, and modified the exit
5132 showtraceback() call to the SystemExit trap, and modified the exit
5129 confirmation to have yes as the default.
5133 confirmation to have yes as the default.
5130
5134
5131 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5135 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5132 this file. It's been gone from the code for a long time, this was
5136 this file. It's been gone from the code for a long time, this was
5133 simply leftover junk.
5137 simply leftover junk.
5134
5138
5135 2002-11-01 Fernando Perez <fperez@colorado.edu>
5139 2002-11-01 Fernando Perez <fperez@colorado.edu>
5136
5140
5137 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5141 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5138 added. If set, IPython now traps EOF and asks for
5142 added. If set, IPython now traps EOF and asks for
5139 confirmation. After a request by François Pinard.
5143 confirmation. After a request by François Pinard.
5140
5144
5141 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5145 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5142 of @abort, and with a new (better) mechanism for handling the
5146 of @abort, and with a new (better) mechanism for handling the
5143 exceptions.
5147 exceptions.
5144
5148
5145 2002-10-27 Fernando Perez <fperez@colorado.edu>
5149 2002-10-27 Fernando Perez <fperez@colorado.edu>
5146
5150
5147 * IPython/usage.py (__doc__): updated the --help information and
5151 * IPython/usage.py (__doc__): updated the --help information and
5148 the ipythonrc file to indicate that -log generates
5152 the ipythonrc file to indicate that -log generates
5149 ./ipython.log. Also fixed the corresponding info in @logstart.
5153 ./ipython.log. Also fixed the corresponding info in @logstart.
5150 This and several other fixes in the manuals thanks to reports by
5154 This and several other fixes in the manuals thanks to reports by
5151 François Pinard <pinard-AT-iro.umontreal.ca>.
5155 François Pinard <pinard-AT-iro.umontreal.ca>.
5152
5156
5153 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5157 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5154 refer to @logstart (instead of @log, which doesn't exist).
5158 refer to @logstart (instead of @log, which doesn't exist).
5155
5159
5156 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5160 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5157 AttributeError crash. Thanks to Christopher Armstrong
5161 AttributeError crash. Thanks to Christopher Armstrong
5158 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5162 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5159 introduced recently (in 0.2.14pre37) with the fix to the eval
5163 introduced recently (in 0.2.14pre37) with the fix to the eval
5160 problem mentioned below.
5164 problem mentioned below.
5161
5165
5162 2002-10-17 Fernando Perez <fperez@colorado.edu>
5166 2002-10-17 Fernando Perez <fperez@colorado.edu>
5163
5167
5164 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5168 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5165 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5169 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5166
5170
5167 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5171 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5168 this function to fix a problem reported by Alex Schmolck. He saw
5172 this function to fix a problem reported by Alex Schmolck. He saw
5169 it with list comprehensions and generators, which were getting
5173 it with list comprehensions and generators, which were getting
5170 called twice. The real problem was an 'eval' call in testing for
5174 called twice. The real problem was an 'eval' call in testing for
5171 automagic which was evaluating the input line silently.
5175 automagic which was evaluating the input line silently.
5172
5176
5173 This is a potentially very nasty bug, if the input has side
5177 This is a potentially very nasty bug, if the input has side
5174 effects which must not be repeated. The code is much cleaner now,
5178 effects which must not be repeated. The code is much cleaner now,
5175 without any blanket 'except' left and with a regexp test for
5179 without any blanket 'except' left and with a regexp test for
5176 actual function names.
5180 actual function names.
5177
5181
5178 But an eval remains, which I'm not fully comfortable with. I just
5182 But an eval remains, which I'm not fully comfortable with. I just
5179 don't know how to find out if an expression could be a callable in
5183 don't know how to find out if an expression could be a callable in
5180 the user's namespace without doing an eval on the string. However
5184 the user's namespace without doing an eval on the string. However
5181 that string is now much more strictly checked so that no code
5185 that string is now much more strictly checked so that no code
5182 slips by, so the eval should only happen for things that can
5186 slips by, so the eval should only happen for things that can
5183 really be only function/method names.
5187 really be only function/method names.
5184
5188
5185 2002-10-15 Fernando Perez <fperez@colorado.edu>
5189 2002-10-15 Fernando Perez <fperez@colorado.edu>
5186
5190
5187 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5191 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5188 OSX information to main manual, removed README_Mac_OSX file from
5192 OSX information to main manual, removed README_Mac_OSX file from
5189 distribution. Also updated credits for recent additions.
5193 distribution. Also updated credits for recent additions.
5190
5194
5191 2002-10-10 Fernando Perez <fperez@colorado.edu>
5195 2002-10-10 Fernando Perez <fperez@colorado.edu>
5192
5196
5193 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5197 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5194 terminal-related issues. Many thanks to Andrea Riciputi
5198 terminal-related issues. Many thanks to Andrea Riciputi
5195 <andrea.riciputi-AT-libero.it> for writing it.
5199 <andrea.riciputi-AT-libero.it> for writing it.
5196
5200
5197 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5201 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5198 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5202 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5199
5203
5200 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5204 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5201 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5205 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5202 <syver-en-AT-online.no> who both submitted patches for this problem.
5206 <syver-en-AT-online.no> who both submitted patches for this problem.
5203
5207
5204 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5208 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5205 global embedding to make sure that things don't overwrite user
5209 global embedding to make sure that things don't overwrite user
5206 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5210 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5207
5211
5208 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5212 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5209 compatibility. Thanks to Hayden Callow
5213 compatibility. Thanks to Hayden Callow
5210 <h.callow-AT-elec.canterbury.ac.nz>
5214 <h.callow-AT-elec.canterbury.ac.nz>
5211
5215
5212 2002-10-04 Fernando Perez <fperez@colorado.edu>
5216 2002-10-04 Fernando Perez <fperez@colorado.edu>
5213
5217
5214 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5218 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5215 Gnuplot.File objects.
5219 Gnuplot.File objects.
5216
5220
5217 2002-07-23 Fernando Perez <fperez@colorado.edu>
5221 2002-07-23 Fernando Perez <fperez@colorado.edu>
5218
5222
5219 * IPython/genutils.py (timing): Added timings() and timing() for
5223 * IPython/genutils.py (timing): Added timings() and timing() for
5220 quick access to the most commonly needed data, the execution
5224 quick access to the most commonly needed data, the execution
5221 times. Old timing() renamed to timings_out().
5225 times. Old timing() renamed to timings_out().
5222
5226
5223 2002-07-18 Fernando Perez <fperez@colorado.edu>
5227 2002-07-18 Fernando Perez <fperez@colorado.edu>
5224
5228
5225 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5229 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5226 bug with nested instances disrupting the parent's tab completion.
5230 bug with nested instances disrupting the parent's tab completion.
5227
5231
5228 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5232 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5229 all_completions code to begin the emacs integration.
5233 all_completions code to begin the emacs integration.
5230
5234
5231 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5235 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5232 argument to allow titling individual arrays when plotting.
5236 argument to allow titling individual arrays when plotting.
5233
5237
5234 2002-07-15 Fernando Perez <fperez@colorado.edu>
5238 2002-07-15 Fernando Perez <fperez@colorado.edu>
5235
5239
5236 * setup.py (make_shortcut): changed to retrieve the value of
5240 * setup.py (make_shortcut): changed to retrieve the value of
5237 'Program Files' directory from the registry (this value changes in
5241 'Program Files' directory from the registry (this value changes in
5238 non-english versions of Windows). Thanks to Thomas Fanslau
5242 non-english versions of Windows). Thanks to Thomas Fanslau
5239 <tfanslau-AT-gmx.de> for the report.
5243 <tfanslau-AT-gmx.de> for the report.
5240
5244
5241 2002-07-10 Fernando Perez <fperez@colorado.edu>
5245 2002-07-10 Fernando Perez <fperez@colorado.edu>
5242
5246
5243 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5247 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5244 a bug in pdb, which crashes if a line with only whitespace is
5248 a bug in pdb, which crashes if a line with only whitespace is
5245 entered. Bug report submitted to sourceforge.
5249 entered. Bug report submitted to sourceforge.
5246
5250
5247 2002-07-09 Fernando Perez <fperez@colorado.edu>
5251 2002-07-09 Fernando Perez <fperez@colorado.edu>
5248
5252
5249 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5253 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5250 reporting exceptions (it's a bug in inspect.py, I just set a
5254 reporting exceptions (it's a bug in inspect.py, I just set a
5251 workaround).
5255 workaround).
5252
5256
5253 2002-07-08 Fernando Perez <fperez@colorado.edu>
5257 2002-07-08 Fernando Perez <fperez@colorado.edu>
5254
5258
5255 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5259 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5256 __IPYTHON__ in __builtins__ to show up in user_ns.
5260 __IPYTHON__ in __builtins__ to show up in user_ns.
5257
5261
5258 2002-07-03 Fernando Perez <fperez@colorado.edu>
5262 2002-07-03 Fernando Perez <fperez@colorado.edu>
5259
5263
5260 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5264 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5261 name from @gp_set_instance to @gp_set_default.
5265 name from @gp_set_instance to @gp_set_default.
5262
5266
5263 * IPython/ipmaker.py (make_IPython): default editor value set to
5267 * IPython/ipmaker.py (make_IPython): default editor value set to
5264 '0' (a string), to match the rc file. Otherwise will crash when
5268 '0' (a string), to match the rc file. Otherwise will crash when
5265 .strip() is called on it.
5269 .strip() is called on it.
5266
5270
5267
5271
5268 2002-06-28 Fernando Perez <fperez@colorado.edu>
5272 2002-06-28 Fernando Perez <fperez@colorado.edu>
5269
5273
5270 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5274 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5271 of files in current directory when a file is executed via
5275 of files in current directory when a file is executed via
5272 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5276 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5273
5277
5274 * setup.py (manfiles): fix for rpm builds, submitted by RA
5278 * setup.py (manfiles): fix for rpm builds, submitted by RA
5275 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5279 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5276
5280
5277 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5281 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5278 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5282 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5279 string!). A. Schmolck caught this one.
5283 string!). A. Schmolck caught this one.
5280
5284
5281 2002-06-27 Fernando Perez <fperez@colorado.edu>
5285 2002-06-27 Fernando Perez <fperez@colorado.edu>
5282
5286
5283 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5287 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5284 defined files at the cmd line. __name__ wasn't being set to
5288 defined files at the cmd line. __name__ wasn't being set to
5285 __main__.
5289 __main__.
5286
5290
5287 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5291 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5288 regular lists and tuples besides Numeric arrays.
5292 regular lists and tuples besides Numeric arrays.
5289
5293
5290 * IPython/Prompts.py (CachedOutput.__call__): Added output
5294 * IPython/Prompts.py (CachedOutput.__call__): Added output
5291 supression for input ending with ';'. Similar to Mathematica and
5295 supression for input ending with ';'. Similar to Mathematica and
5292 Matlab. The _* vars and Out[] list are still updated, just like
5296 Matlab. The _* vars and Out[] list are still updated, just like
5293 Mathematica behaves.
5297 Mathematica behaves.
5294
5298
5295 2002-06-25 Fernando Perez <fperez@colorado.edu>
5299 2002-06-25 Fernando Perez <fperez@colorado.edu>
5296
5300
5297 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5301 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5298 .ini extensions for profiels under Windows.
5302 .ini extensions for profiels under Windows.
5299
5303
5300 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5304 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5301 string form. Fix contributed by Alexander Schmolck
5305 string form. Fix contributed by Alexander Schmolck
5302 <a.schmolck-AT-gmx.net>
5306 <a.schmolck-AT-gmx.net>
5303
5307
5304 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5308 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5305 pre-configured Gnuplot instance.
5309 pre-configured Gnuplot instance.
5306
5310
5307 2002-06-21 Fernando Perez <fperez@colorado.edu>
5311 2002-06-21 Fernando Perez <fperez@colorado.edu>
5308
5312
5309 * IPython/numutils.py (exp_safe): new function, works around the
5313 * IPython/numutils.py (exp_safe): new function, works around the
5310 underflow problems in Numeric.
5314 underflow problems in Numeric.
5311 (log2): New fn. Safe log in base 2: returns exact integer answer
5315 (log2): New fn. Safe log in base 2: returns exact integer answer
5312 for exact integer powers of 2.
5316 for exact integer powers of 2.
5313
5317
5314 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5318 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5315 properly.
5319 properly.
5316
5320
5317 2002-06-20 Fernando Perez <fperez@colorado.edu>
5321 2002-06-20 Fernando Perez <fperez@colorado.edu>
5318
5322
5319 * IPython/genutils.py (timing): new function like
5323 * IPython/genutils.py (timing): new function like
5320 Mathematica's. Similar to time_test, but returns more info.
5324 Mathematica's. Similar to time_test, but returns more info.
5321
5325
5322 2002-06-18 Fernando Perez <fperez@colorado.edu>
5326 2002-06-18 Fernando Perez <fperez@colorado.edu>
5323
5327
5324 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5328 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5325 according to Mike Heeter's suggestions.
5329 according to Mike Heeter's suggestions.
5326
5330
5327 2002-06-16 Fernando Perez <fperez@colorado.edu>
5331 2002-06-16 Fernando Perez <fperez@colorado.edu>
5328
5332
5329 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5333 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5330 system. GnuplotMagic is gone as a user-directory option. New files
5334 system. GnuplotMagic is gone as a user-directory option. New files
5331 make it easier to use all the gnuplot stuff both from external
5335 make it easier to use all the gnuplot stuff both from external
5332 programs as well as from IPython. Had to rewrite part of
5336 programs as well as from IPython. Had to rewrite part of
5333 hardcopy() b/c of a strange bug: often the ps files simply don't
5337 hardcopy() b/c of a strange bug: often the ps files simply don't
5334 get created, and require a repeat of the command (often several
5338 get created, and require a repeat of the command (often several
5335 times).
5339 times).
5336
5340
5337 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5341 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5338 resolve output channel at call time, so that if sys.stderr has
5342 resolve output channel at call time, so that if sys.stderr has
5339 been redirected by user this gets honored.
5343 been redirected by user this gets honored.
5340
5344
5341 2002-06-13 Fernando Perez <fperez@colorado.edu>
5345 2002-06-13 Fernando Perez <fperez@colorado.edu>
5342
5346
5343 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5347 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5344 IPShell. Kept a copy with the old names to avoid breaking people's
5348 IPShell. Kept a copy with the old names to avoid breaking people's
5345 embedded code.
5349 embedded code.
5346
5350
5347 * IPython/ipython: simplified it to the bare minimum after
5351 * IPython/ipython: simplified it to the bare minimum after
5348 Holger's suggestions. Added info about how to use it in
5352 Holger's suggestions. Added info about how to use it in
5349 PYTHONSTARTUP.
5353 PYTHONSTARTUP.
5350
5354
5351 * IPython/Shell.py (IPythonShell): changed the options passing
5355 * IPython/Shell.py (IPythonShell): changed the options passing
5352 from a string with funky %s replacements to a straight list. Maybe
5356 from a string with funky %s replacements to a straight list. Maybe
5353 a bit more typing, but it follows sys.argv conventions, so there's
5357 a bit more typing, but it follows sys.argv conventions, so there's
5354 less special-casing to remember.
5358 less special-casing to remember.
5355
5359
5356 2002-06-12 Fernando Perez <fperez@colorado.edu>
5360 2002-06-12 Fernando Perez <fperez@colorado.edu>
5357
5361
5358 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5362 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5359 command. Thanks to a suggestion by Mike Heeter.
5363 command. Thanks to a suggestion by Mike Heeter.
5360 (Magic.magic_pfile): added behavior to look at filenames if given
5364 (Magic.magic_pfile): added behavior to look at filenames if given
5361 arg is not a defined object.
5365 arg is not a defined object.
5362 (Magic.magic_save): New @save function to save code snippets. Also
5366 (Magic.magic_save): New @save function to save code snippets. Also
5363 a Mike Heeter idea.
5367 a Mike Heeter idea.
5364
5368
5365 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5369 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5366 plot() and replot(). Much more convenient now, especially for
5370 plot() and replot(). Much more convenient now, especially for
5367 interactive use.
5371 interactive use.
5368
5372
5369 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5373 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5370 filenames.
5374 filenames.
5371
5375
5372 2002-06-02 Fernando Perez <fperez@colorado.edu>
5376 2002-06-02 Fernando Perez <fperez@colorado.edu>
5373
5377
5374 * IPython/Struct.py (Struct.__init__): modified to admit
5378 * IPython/Struct.py (Struct.__init__): modified to admit
5375 initialization via another struct.
5379 initialization via another struct.
5376
5380
5377 * IPython/genutils.py (SystemExec.__init__): New stateful
5381 * IPython/genutils.py (SystemExec.__init__): New stateful
5378 interface to xsys and bq. Useful for writing system scripts.
5382 interface to xsys and bq. Useful for writing system scripts.
5379
5383
5380 2002-05-30 Fernando Perez <fperez@colorado.edu>
5384 2002-05-30 Fernando Perez <fperez@colorado.edu>
5381
5385
5382 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5386 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5383 documents. This will make the user download smaller (it's getting
5387 documents. This will make the user download smaller (it's getting
5384 too big).
5388 too big).
5385
5389
5386 2002-05-29 Fernando Perez <fperez@colorado.edu>
5390 2002-05-29 Fernando Perez <fperez@colorado.edu>
5387
5391
5388 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5392 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5389 fix problems with shelve and pickle. Seems to work, but I don't
5393 fix problems with shelve and pickle. Seems to work, but I don't
5390 know if corner cases break it. Thanks to Mike Heeter
5394 know if corner cases break it. Thanks to Mike Heeter
5391 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5395 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5392
5396
5393 2002-05-24 Fernando Perez <fperez@colorado.edu>
5397 2002-05-24 Fernando Perez <fperez@colorado.edu>
5394
5398
5395 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5399 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5396 macros having broken.
5400 macros having broken.
5397
5401
5398 2002-05-21 Fernando Perez <fperez@colorado.edu>
5402 2002-05-21 Fernando Perez <fperez@colorado.edu>
5399
5403
5400 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5404 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5401 introduced logging bug: all history before logging started was
5405 introduced logging bug: all history before logging started was
5402 being written one character per line! This came from the redesign
5406 being written one character per line! This came from the redesign
5403 of the input history as a special list which slices to strings,
5407 of the input history as a special list which slices to strings,
5404 not to lists.
5408 not to lists.
5405
5409
5406 2002-05-20 Fernando Perez <fperez@colorado.edu>
5410 2002-05-20 Fernando Perez <fperez@colorado.edu>
5407
5411
5408 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5412 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5409 be an attribute of all classes in this module. The design of these
5413 be an attribute of all classes in this module. The design of these
5410 classes needs some serious overhauling.
5414 classes needs some serious overhauling.
5411
5415
5412 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5416 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5413 which was ignoring '_' in option names.
5417 which was ignoring '_' in option names.
5414
5418
5415 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5419 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5416 'Verbose_novars' to 'Context' and made it the new default. It's a
5420 'Verbose_novars' to 'Context' and made it the new default. It's a
5417 bit more readable and also safer than verbose.
5421 bit more readable and also safer than verbose.
5418
5422
5419 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5423 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5420 triple-quoted strings.
5424 triple-quoted strings.
5421
5425
5422 * IPython/OInspect.py (__all__): new module exposing the object
5426 * IPython/OInspect.py (__all__): new module exposing the object
5423 introspection facilities. Now the corresponding magics are dummy
5427 introspection facilities. Now the corresponding magics are dummy
5424 wrappers around this. Having this module will make it much easier
5428 wrappers around this. Having this module will make it much easier
5425 to put these functions into our modified pdb.
5429 to put these functions into our modified pdb.
5426 This new object inspector system uses the new colorizing module,
5430 This new object inspector system uses the new colorizing module,
5427 so source code and other things are nicely syntax highlighted.
5431 so source code and other things are nicely syntax highlighted.
5428
5432
5429 2002-05-18 Fernando Perez <fperez@colorado.edu>
5433 2002-05-18 Fernando Perez <fperez@colorado.edu>
5430
5434
5431 * IPython/ColorANSI.py: Split the coloring tools into a separate
5435 * IPython/ColorANSI.py: Split the coloring tools into a separate
5432 module so I can use them in other code easier (they were part of
5436 module so I can use them in other code easier (they were part of
5433 ultraTB).
5437 ultraTB).
5434
5438
5435 2002-05-17 Fernando Perez <fperez@colorado.edu>
5439 2002-05-17 Fernando Perez <fperez@colorado.edu>
5436
5440
5437 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5441 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5438 fixed it to set the global 'g' also to the called instance, as
5442 fixed it to set the global 'g' also to the called instance, as
5439 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5443 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5440 user's 'g' variables).
5444 user's 'g' variables).
5441
5445
5442 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5446 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5443 global variables (aliases to _ih,_oh) so that users which expect
5447 global variables (aliases to _ih,_oh) so that users which expect
5444 In[5] or Out[7] to work aren't unpleasantly surprised.
5448 In[5] or Out[7] to work aren't unpleasantly surprised.
5445 (InputList.__getslice__): new class to allow executing slices of
5449 (InputList.__getslice__): new class to allow executing slices of
5446 input history directly. Very simple class, complements the use of
5450 input history directly. Very simple class, complements the use of
5447 macros.
5451 macros.
5448
5452
5449 2002-05-16 Fernando Perez <fperez@colorado.edu>
5453 2002-05-16 Fernando Perez <fperez@colorado.edu>
5450
5454
5451 * setup.py (docdirbase): make doc directory be just doc/IPython
5455 * setup.py (docdirbase): make doc directory be just doc/IPython
5452 without version numbers, it will reduce clutter for users.
5456 without version numbers, it will reduce clutter for users.
5453
5457
5454 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5458 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5455 execfile call to prevent possible memory leak. See for details:
5459 execfile call to prevent possible memory leak. See for details:
5456 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5460 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5457
5461
5458 2002-05-15 Fernando Perez <fperez@colorado.edu>
5462 2002-05-15 Fernando Perez <fperez@colorado.edu>
5459
5463
5460 * IPython/Magic.py (Magic.magic_psource): made the object
5464 * IPython/Magic.py (Magic.magic_psource): made the object
5461 introspection names be more standard: pdoc, pdef, pfile and
5465 introspection names be more standard: pdoc, pdef, pfile and
5462 psource. They all print/page their output, and it makes
5466 psource. They all print/page their output, and it makes
5463 remembering them easier. Kept old names for compatibility as
5467 remembering them easier. Kept old names for compatibility as
5464 aliases.
5468 aliases.
5465
5469
5466 2002-05-14 Fernando Perez <fperez@colorado.edu>
5470 2002-05-14 Fernando Perez <fperez@colorado.edu>
5467
5471
5468 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5472 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5469 what the mouse problem was. The trick is to use gnuplot with temp
5473 what the mouse problem was. The trick is to use gnuplot with temp
5470 files and NOT with pipes (for data communication), because having
5474 files and NOT with pipes (for data communication), because having
5471 both pipes and the mouse on is bad news.
5475 both pipes and the mouse on is bad news.
5472
5476
5473 2002-05-13 Fernando Perez <fperez@colorado.edu>
5477 2002-05-13 Fernando Perez <fperez@colorado.edu>
5474
5478
5475 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5479 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5476 bug. Information would be reported about builtins even when
5480 bug. Information would be reported about builtins even when
5477 user-defined functions overrode them.
5481 user-defined functions overrode them.
5478
5482
5479 2002-05-11 Fernando Perez <fperez@colorado.edu>
5483 2002-05-11 Fernando Perez <fperez@colorado.edu>
5480
5484
5481 * IPython/__init__.py (__all__): removed FlexCompleter from
5485 * IPython/__init__.py (__all__): removed FlexCompleter from
5482 __all__ so that things don't fail in platforms without readline.
5486 __all__ so that things don't fail in platforms without readline.
5483
5487
5484 2002-05-10 Fernando Perez <fperez@colorado.edu>
5488 2002-05-10 Fernando Perez <fperez@colorado.edu>
5485
5489
5486 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5490 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5487 it requires Numeric, effectively making Numeric a dependency for
5491 it requires Numeric, effectively making Numeric a dependency for
5488 IPython.
5492 IPython.
5489
5493
5490 * Released 0.2.13
5494 * Released 0.2.13
5491
5495
5492 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5496 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5493 profiler interface. Now all the major options from the profiler
5497 profiler interface. Now all the major options from the profiler
5494 module are directly supported in IPython, both for single
5498 module are directly supported in IPython, both for single
5495 expressions (@prun) and for full programs (@run -p).
5499 expressions (@prun) and for full programs (@run -p).
5496
5500
5497 2002-05-09 Fernando Perez <fperez@colorado.edu>
5501 2002-05-09 Fernando Perez <fperez@colorado.edu>
5498
5502
5499 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5503 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5500 magic properly formatted for screen.
5504 magic properly formatted for screen.
5501
5505
5502 * setup.py (make_shortcut): Changed things to put pdf version in
5506 * setup.py (make_shortcut): Changed things to put pdf version in
5503 doc/ instead of doc/manual (had to change lyxport a bit).
5507 doc/ instead of doc/manual (had to change lyxport a bit).
5504
5508
5505 * IPython/Magic.py (Profile.string_stats): made profile runs go
5509 * IPython/Magic.py (Profile.string_stats): made profile runs go
5506 through pager (they are long and a pager allows searching, saving,
5510 through pager (they are long and a pager allows searching, saving,
5507 etc.)
5511 etc.)
5508
5512
5509 2002-05-08 Fernando Perez <fperez@colorado.edu>
5513 2002-05-08 Fernando Perez <fperez@colorado.edu>
5510
5514
5511 * Released 0.2.12
5515 * Released 0.2.12
5512
5516
5513 2002-05-06 Fernando Perez <fperez@colorado.edu>
5517 2002-05-06 Fernando Perez <fperez@colorado.edu>
5514
5518
5515 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5519 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5516 introduced); 'hist n1 n2' was broken.
5520 introduced); 'hist n1 n2' was broken.
5517 (Magic.magic_pdb): added optional on/off arguments to @pdb
5521 (Magic.magic_pdb): added optional on/off arguments to @pdb
5518 (Magic.magic_run): added option -i to @run, which executes code in
5522 (Magic.magic_run): added option -i to @run, which executes code in
5519 the IPython namespace instead of a clean one. Also added @irun as
5523 the IPython namespace instead of a clean one. Also added @irun as
5520 an alias to @run -i.
5524 an alias to @run -i.
5521
5525
5522 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5526 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5523 fixed (it didn't really do anything, the namespaces were wrong).
5527 fixed (it didn't really do anything, the namespaces were wrong).
5524
5528
5525 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5529 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5526
5530
5527 * IPython/__init__.py (__all__): Fixed package namespace, now
5531 * IPython/__init__.py (__all__): Fixed package namespace, now
5528 'import IPython' does give access to IPython.<all> as
5532 'import IPython' does give access to IPython.<all> as
5529 expected. Also renamed __release__ to Release.
5533 expected. Also renamed __release__ to Release.
5530
5534
5531 * IPython/Debugger.py (__license__): created new Pdb class which
5535 * IPython/Debugger.py (__license__): created new Pdb class which
5532 functions like a drop-in for the normal pdb.Pdb but does NOT
5536 functions like a drop-in for the normal pdb.Pdb but does NOT
5533 import readline by default. This way it doesn't muck up IPython's
5537 import readline by default. This way it doesn't muck up IPython's
5534 readline handling, and now tab-completion finally works in the
5538 readline handling, and now tab-completion finally works in the
5535 debugger -- sort of. It completes things globally visible, but the
5539 debugger -- sort of. It completes things globally visible, but the
5536 completer doesn't track the stack as pdb walks it. That's a bit
5540 completer doesn't track the stack as pdb walks it. That's a bit
5537 tricky, and I'll have to implement it later.
5541 tricky, and I'll have to implement it later.
5538
5542
5539 2002-05-05 Fernando Perez <fperez@colorado.edu>
5543 2002-05-05 Fernando Perez <fperez@colorado.edu>
5540
5544
5541 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5545 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5542 magic docstrings when printed via ? (explicit \'s were being
5546 magic docstrings when printed via ? (explicit \'s were being
5543 printed).
5547 printed).
5544
5548
5545 * IPython/ipmaker.py (make_IPython): fixed namespace
5549 * IPython/ipmaker.py (make_IPython): fixed namespace
5546 identification bug. Now variables loaded via logs or command-line
5550 identification bug. Now variables loaded via logs or command-line
5547 files are recognized in the interactive namespace by @who.
5551 files are recognized in the interactive namespace by @who.
5548
5552
5549 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5553 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5550 log replay system stemming from the string form of Structs.
5554 log replay system stemming from the string form of Structs.
5551
5555
5552 * IPython/Magic.py (Macro.__init__): improved macros to properly
5556 * IPython/Magic.py (Macro.__init__): improved macros to properly
5553 handle magic commands in them.
5557 handle magic commands in them.
5554 (Magic.magic_logstart): usernames are now expanded so 'logstart
5558 (Magic.magic_logstart): usernames are now expanded so 'logstart
5555 ~/mylog' now works.
5559 ~/mylog' now works.
5556
5560
5557 * IPython/iplib.py (complete): fixed bug where paths starting with
5561 * IPython/iplib.py (complete): fixed bug where paths starting with
5558 '/' would be completed as magic names.
5562 '/' would be completed as magic names.
5559
5563
5560 2002-05-04 Fernando Perez <fperez@colorado.edu>
5564 2002-05-04 Fernando Perez <fperez@colorado.edu>
5561
5565
5562 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5566 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5563 allow running full programs under the profiler's control.
5567 allow running full programs under the profiler's control.
5564
5568
5565 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5569 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5566 mode to report exceptions verbosely but without formatting
5570 mode to report exceptions verbosely but without formatting
5567 variables. This addresses the issue of ipython 'freezing' (it's
5571 variables. This addresses the issue of ipython 'freezing' (it's
5568 not frozen, but caught in an expensive formatting loop) when huge
5572 not frozen, but caught in an expensive formatting loop) when huge
5569 variables are in the context of an exception.
5573 variables are in the context of an exception.
5570 (VerboseTB.text): Added '--->' markers at line where exception was
5574 (VerboseTB.text): Added '--->' markers at line where exception was
5571 triggered. Much clearer to read, especially in NoColor modes.
5575 triggered. Much clearer to read, especially in NoColor modes.
5572
5576
5573 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5577 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5574 implemented in reverse when changing to the new parse_options().
5578 implemented in reverse when changing to the new parse_options().
5575
5579
5576 2002-05-03 Fernando Perez <fperez@colorado.edu>
5580 2002-05-03 Fernando Perez <fperez@colorado.edu>
5577
5581
5578 * IPython/Magic.py (Magic.parse_options): new function so that
5582 * IPython/Magic.py (Magic.parse_options): new function so that
5579 magics can parse options easier.
5583 magics can parse options easier.
5580 (Magic.magic_prun): new function similar to profile.run(),
5584 (Magic.magic_prun): new function similar to profile.run(),
5581 suggested by Chris Hart.
5585 suggested by Chris Hart.
5582 (Magic.magic_cd): fixed behavior so that it only changes if
5586 (Magic.magic_cd): fixed behavior so that it only changes if
5583 directory actually is in history.
5587 directory actually is in history.
5584
5588
5585 * IPython/usage.py (__doc__): added information about potential
5589 * IPython/usage.py (__doc__): added information about potential
5586 slowness of Verbose exception mode when there are huge data
5590 slowness of Verbose exception mode when there are huge data
5587 structures to be formatted (thanks to Archie Paulson).
5591 structures to be formatted (thanks to Archie Paulson).
5588
5592
5589 * IPython/ipmaker.py (make_IPython): Changed default logging
5593 * IPython/ipmaker.py (make_IPython): Changed default logging
5590 (when simply called with -log) to use curr_dir/ipython.log in
5594 (when simply called with -log) to use curr_dir/ipython.log in
5591 rotate mode. Fixed crash which was occuring with -log before
5595 rotate mode. Fixed crash which was occuring with -log before
5592 (thanks to Jim Boyle).
5596 (thanks to Jim Boyle).
5593
5597
5594 2002-05-01 Fernando Perez <fperez@colorado.edu>
5598 2002-05-01 Fernando Perez <fperez@colorado.edu>
5595
5599
5596 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5600 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5597 was nasty -- though somewhat of a corner case).
5601 was nasty -- though somewhat of a corner case).
5598
5602
5599 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5603 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5600 text (was a bug).
5604 text (was a bug).
5601
5605
5602 2002-04-30 Fernando Perez <fperez@colorado.edu>
5606 2002-04-30 Fernando Perez <fperez@colorado.edu>
5603
5607
5604 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5608 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5605 a print after ^D or ^C from the user so that the In[] prompt
5609 a print after ^D or ^C from the user so that the In[] prompt
5606 doesn't over-run the gnuplot one.
5610 doesn't over-run the gnuplot one.
5607
5611
5608 2002-04-29 Fernando Perez <fperez@colorado.edu>
5612 2002-04-29 Fernando Perez <fperez@colorado.edu>
5609
5613
5610 * Released 0.2.10
5614 * Released 0.2.10
5611
5615
5612 * IPython/__release__.py (version): get date dynamically.
5616 * IPython/__release__.py (version): get date dynamically.
5613
5617
5614 * Misc. documentation updates thanks to Arnd's comments. Also ran
5618 * Misc. documentation updates thanks to Arnd's comments. Also ran
5615 a full spellcheck on the manual (hadn't been done in a while).
5619 a full spellcheck on the manual (hadn't been done in a while).
5616
5620
5617 2002-04-27 Fernando Perez <fperez@colorado.edu>
5621 2002-04-27 Fernando Perez <fperez@colorado.edu>
5618
5622
5619 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5623 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5620 starting a log in mid-session would reset the input history list.
5624 starting a log in mid-session would reset the input history list.
5621
5625
5622 2002-04-26 Fernando Perez <fperez@colorado.edu>
5626 2002-04-26 Fernando Perez <fperez@colorado.edu>
5623
5627
5624 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5628 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5625 all files were being included in an update. Now anything in
5629 all files were being included in an update. Now anything in
5626 UserConfig that matches [A-Za-z]*.py will go (this excludes
5630 UserConfig that matches [A-Za-z]*.py will go (this excludes
5627 __init__.py)
5631 __init__.py)
5628
5632
5629 2002-04-25 Fernando Perez <fperez@colorado.edu>
5633 2002-04-25 Fernando Perez <fperez@colorado.edu>
5630
5634
5631 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5635 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5632 to __builtins__ so that any form of embedded or imported code can
5636 to __builtins__ so that any form of embedded or imported code can
5633 test for being inside IPython.
5637 test for being inside IPython.
5634
5638
5635 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5639 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5636 changed to GnuplotMagic because it's now an importable module,
5640 changed to GnuplotMagic because it's now an importable module,
5637 this makes the name follow that of the standard Gnuplot module.
5641 this makes the name follow that of the standard Gnuplot module.
5638 GnuplotMagic can now be loaded at any time in mid-session.
5642 GnuplotMagic can now be loaded at any time in mid-session.
5639
5643
5640 2002-04-24 Fernando Perez <fperez@colorado.edu>
5644 2002-04-24 Fernando Perez <fperez@colorado.edu>
5641
5645
5642 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5646 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5643 the globals (IPython has its own namespace) and the
5647 the globals (IPython has its own namespace) and the
5644 PhysicalQuantity stuff is much better anyway.
5648 PhysicalQuantity stuff is much better anyway.
5645
5649
5646 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5650 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5647 embedding example to standard user directory for
5651 embedding example to standard user directory for
5648 distribution. Also put it in the manual.
5652 distribution. Also put it in the manual.
5649
5653
5650 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5654 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5651 instance as first argument (so it doesn't rely on some obscure
5655 instance as first argument (so it doesn't rely on some obscure
5652 hidden global).
5656 hidden global).
5653
5657
5654 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5658 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5655 delimiters. While it prevents ().TAB from working, it allows
5659 delimiters. While it prevents ().TAB from working, it allows
5656 completions in open (... expressions. This is by far a more common
5660 completions in open (... expressions. This is by far a more common
5657 case.
5661 case.
5658
5662
5659 2002-04-23 Fernando Perez <fperez@colorado.edu>
5663 2002-04-23 Fernando Perez <fperez@colorado.edu>
5660
5664
5661 * IPython/Extensions/InterpreterPasteInput.py: new
5665 * IPython/Extensions/InterpreterPasteInput.py: new
5662 syntax-processing module for pasting lines with >>> or ... at the
5666 syntax-processing module for pasting lines with >>> or ... at the
5663 start.
5667 start.
5664
5668
5665 * IPython/Extensions/PhysicalQ_Interactive.py
5669 * IPython/Extensions/PhysicalQ_Interactive.py
5666 (PhysicalQuantityInteractive.__int__): fixed to work with either
5670 (PhysicalQuantityInteractive.__int__): fixed to work with either
5667 Numeric or math.
5671 Numeric or math.
5668
5672
5669 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5673 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5670 provided profiles. Now we have:
5674 provided profiles. Now we have:
5671 -math -> math module as * and cmath with its own namespace.
5675 -math -> math module as * and cmath with its own namespace.
5672 -numeric -> Numeric as *, plus gnuplot & grace
5676 -numeric -> Numeric as *, plus gnuplot & grace
5673 -physics -> same as before
5677 -physics -> same as before
5674
5678
5675 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5679 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5676 user-defined magics wouldn't be found by @magic if they were
5680 user-defined magics wouldn't be found by @magic if they were
5677 defined as class methods. Also cleaned up the namespace search
5681 defined as class methods. Also cleaned up the namespace search
5678 logic and the string building (to use %s instead of many repeated
5682 logic and the string building (to use %s instead of many repeated
5679 string adds).
5683 string adds).
5680
5684
5681 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5685 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5682 of user-defined magics to operate with class methods (cleaner, in
5686 of user-defined magics to operate with class methods (cleaner, in
5683 line with the gnuplot code).
5687 line with the gnuplot code).
5684
5688
5685 2002-04-22 Fernando Perez <fperez@colorado.edu>
5689 2002-04-22 Fernando Perez <fperez@colorado.edu>
5686
5690
5687 * setup.py: updated dependency list so that manual is updated when
5691 * setup.py: updated dependency list so that manual is updated when
5688 all included files change.
5692 all included files change.
5689
5693
5690 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5694 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5691 the delimiter removal option (the fix is ugly right now).
5695 the delimiter removal option (the fix is ugly right now).
5692
5696
5693 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5697 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5694 all of the math profile (quicker loading, no conflict between
5698 all of the math profile (quicker loading, no conflict between
5695 g-9.8 and g-gnuplot).
5699 g-9.8 and g-gnuplot).
5696
5700
5697 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5701 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5698 name of post-mortem files to IPython_crash_report.txt.
5702 name of post-mortem files to IPython_crash_report.txt.
5699
5703
5700 * Cleanup/update of the docs. Added all the new readline info and
5704 * Cleanup/update of the docs. Added all the new readline info and
5701 formatted all lists as 'real lists'.
5705 formatted all lists as 'real lists'.
5702
5706
5703 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5707 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5704 tab-completion options, since the full readline parse_and_bind is
5708 tab-completion options, since the full readline parse_and_bind is
5705 now accessible.
5709 now accessible.
5706
5710
5707 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5711 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5708 handling of readline options. Now users can specify any string to
5712 handling of readline options. Now users can specify any string to
5709 be passed to parse_and_bind(), as well as the delimiters to be
5713 be passed to parse_and_bind(), as well as the delimiters to be
5710 removed.
5714 removed.
5711 (InteractiveShell.__init__): Added __name__ to the global
5715 (InteractiveShell.__init__): Added __name__ to the global
5712 namespace so that things like Itpl which rely on its existence
5716 namespace so that things like Itpl which rely on its existence
5713 don't crash.
5717 don't crash.
5714 (InteractiveShell._prefilter): Defined the default with a _ so
5718 (InteractiveShell._prefilter): Defined the default with a _ so
5715 that prefilter() is easier to override, while the default one
5719 that prefilter() is easier to override, while the default one
5716 remains available.
5720 remains available.
5717
5721
5718 2002-04-18 Fernando Perez <fperez@colorado.edu>
5722 2002-04-18 Fernando Perez <fperez@colorado.edu>
5719
5723
5720 * Added information about pdb in the docs.
5724 * Added information about pdb in the docs.
5721
5725
5722 2002-04-17 Fernando Perez <fperez@colorado.edu>
5726 2002-04-17 Fernando Perez <fperez@colorado.edu>
5723
5727
5724 * IPython/ipmaker.py (make_IPython): added rc_override option to
5728 * IPython/ipmaker.py (make_IPython): added rc_override option to
5725 allow passing config options at creation time which may override
5729 allow passing config options at creation time which may override
5726 anything set in the config files or command line. This is
5730 anything set in the config files or command line. This is
5727 particularly useful for configuring embedded instances.
5731 particularly useful for configuring embedded instances.
5728
5732
5729 2002-04-15 Fernando Perez <fperez@colorado.edu>
5733 2002-04-15 Fernando Perez <fperez@colorado.edu>
5730
5734
5731 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5735 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5732 crash embedded instances because of the input cache falling out of
5736 crash embedded instances because of the input cache falling out of
5733 sync with the output counter.
5737 sync with the output counter.
5734
5738
5735 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5739 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5736 mode which calls pdb after an uncaught exception in IPython itself.
5740 mode which calls pdb after an uncaught exception in IPython itself.
5737
5741
5738 2002-04-14 Fernando Perez <fperez@colorado.edu>
5742 2002-04-14 Fernando Perez <fperez@colorado.edu>
5739
5743
5740 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5744 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5741 readline, fix it back after each call.
5745 readline, fix it back after each call.
5742
5746
5743 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5747 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5744 method to force all access via __call__(), which guarantees that
5748 method to force all access via __call__(), which guarantees that
5745 traceback references are properly deleted.
5749 traceback references are properly deleted.
5746
5750
5747 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5751 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5748 improve printing when pprint is in use.
5752 improve printing when pprint is in use.
5749
5753
5750 2002-04-13 Fernando Perez <fperez@colorado.edu>
5754 2002-04-13 Fernando Perez <fperez@colorado.edu>
5751
5755
5752 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5756 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5753 exceptions aren't caught anymore. If the user triggers one, he
5757 exceptions aren't caught anymore. If the user triggers one, he
5754 should know why he's doing it and it should go all the way up,
5758 should know why he's doing it and it should go all the way up,
5755 just like any other exception. So now @abort will fully kill the
5759 just like any other exception. So now @abort will fully kill the
5756 embedded interpreter and the embedding code (unless that happens
5760 embedded interpreter and the embedding code (unless that happens
5757 to catch SystemExit).
5761 to catch SystemExit).
5758
5762
5759 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5763 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5760 and a debugger() method to invoke the interactive pdb debugger
5764 and a debugger() method to invoke the interactive pdb debugger
5761 after printing exception information. Also added the corresponding
5765 after printing exception information. Also added the corresponding
5762 -pdb option and @pdb magic to control this feature, and updated
5766 -pdb option and @pdb magic to control this feature, and updated
5763 the docs. After a suggestion from Christopher Hart
5767 the docs. After a suggestion from Christopher Hart
5764 (hart-AT-caltech.edu).
5768 (hart-AT-caltech.edu).
5765
5769
5766 2002-04-12 Fernando Perez <fperez@colorado.edu>
5770 2002-04-12 Fernando Perez <fperez@colorado.edu>
5767
5771
5768 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5772 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5769 the exception handlers defined by the user (not the CrashHandler)
5773 the exception handlers defined by the user (not the CrashHandler)
5770 so that user exceptions don't trigger an ipython bug report.
5774 so that user exceptions don't trigger an ipython bug report.
5771
5775
5772 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5776 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5773 configurable (it should have always been so).
5777 configurable (it should have always been so).
5774
5778
5775 2002-03-26 Fernando Perez <fperez@colorado.edu>
5779 2002-03-26 Fernando Perez <fperez@colorado.edu>
5776
5780
5777 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5781 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5778 and there to fix embedding namespace issues. This should all be
5782 and there to fix embedding namespace issues. This should all be
5779 done in a more elegant way.
5783 done in a more elegant way.
5780
5784
5781 2002-03-25 Fernando Perez <fperez@colorado.edu>
5785 2002-03-25 Fernando Perez <fperez@colorado.edu>
5782
5786
5783 * IPython/genutils.py (get_home_dir): Try to make it work under
5787 * IPython/genutils.py (get_home_dir): Try to make it work under
5784 win9x also.
5788 win9x also.
5785
5789
5786 2002-03-20 Fernando Perez <fperez@colorado.edu>
5790 2002-03-20 Fernando Perez <fperez@colorado.edu>
5787
5791
5788 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5792 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5789 sys.displayhook untouched upon __init__.
5793 sys.displayhook untouched upon __init__.
5790
5794
5791 2002-03-19 Fernando Perez <fperez@colorado.edu>
5795 2002-03-19 Fernando Perez <fperez@colorado.edu>
5792
5796
5793 * Released 0.2.9 (for embedding bug, basically).
5797 * Released 0.2.9 (for embedding bug, basically).
5794
5798
5795 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5799 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5796 exceptions so that enclosing shell's state can be restored.
5800 exceptions so that enclosing shell's state can be restored.
5797
5801
5798 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5802 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5799 naming conventions in the .ipython/ dir.
5803 naming conventions in the .ipython/ dir.
5800
5804
5801 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5805 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5802 from delimiters list so filenames with - in them get expanded.
5806 from delimiters list so filenames with - in them get expanded.
5803
5807
5804 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5808 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5805 sys.displayhook not being properly restored after an embedded call.
5809 sys.displayhook not being properly restored after an embedded call.
5806
5810
5807 2002-03-18 Fernando Perez <fperez@colorado.edu>
5811 2002-03-18 Fernando Perez <fperez@colorado.edu>
5808
5812
5809 * Released 0.2.8
5813 * Released 0.2.8
5810
5814
5811 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5815 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5812 some files weren't being included in a -upgrade.
5816 some files weren't being included in a -upgrade.
5813 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5817 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5814 on' so that the first tab completes.
5818 on' so that the first tab completes.
5815 (InteractiveShell.handle_magic): fixed bug with spaces around
5819 (InteractiveShell.handle_magic): fixed bug with spaces around
5816 quotes breaking many magic commands.
5820 quotes breaking many magic commands.
5817
5821
5818 * setup.py: added note about ignoring the syntax error messages at
5822 * setup.py: added note about ignoring the syntax error messages at
5819 installation.
5823 installation.
5820
5824
5821 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5825 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5822 streamlining the gnuplot interface, now there's only one magic @gp.
5826 streamlining the gnuplot interface, now there's only one magic @gp.
5823
5827
5824 2002-03-17 Fernando Perez <fperez@colorado.edu>
5828 2002-03-17 Fernando Perez <fperez@colorado.edu>
5825
5829
5826 * IPython/UserConfig/magic_gnuplot.py: new name for the
5830 * IPython/UserConfig/magic_gnuplot.py: new name for the
5827 example-magic_pm.py file. Much enhanced system, now with a shell
5831 example-magic_pm.py file. Much enhanced system, now with a shell
5828 for communicating directly with gnuplot, one command at a time.
5832 for communicating directly with gnuplot, one command at a time.
5829
5833
5830 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5834 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5831 setting __name__=='__main__'.
5835 setting __name__=='__main__'.
5832
5836
5833 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5837 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5834 mini-shell for accessing gnuplot from inside ipython. Should
5838 mini-shell for accessing gnuplot from inside ipython. Should
5835 extend it later for grace access too. Inspired by Arnd's
5839 extend it later for grace access too. Inspired by Arnd's
5836 suggestion.
5840 suggestion.
5837
5841
5838 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5842 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5839 calling magic functions with () in their arguments. Thanks to Arnd
5843 calling magic functions with () in their arguments. Thanks to Arnd
5840 Baecker for pointing this to me.
5844 Baecker for pointing this to me.
5841
5845
5842 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5846 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5843 infinitely for integer or complex arrays (only worked with floats).
5847 infinitely for integer or complex arrays (only worked with floats).
5844
5848
5845 2002-03-16 Fernando Perez <fperez@colorado.edu>
5849 2002-03-16 Fernando Perez <fperez@colorado.edu>
5846
5850
5847 * setup.py: Merged setup and setup_windows into a single script
5851 * setup.py: Merged setup and setup_windows into a single script
5848 which properly handles things for windows users.
5852 which properly handles things for windows users.
5849
5853
5850 2002-03-15 Fernando Perez <fperez@colorado.edu>
5854 2002-03-15 Fernando Perez <fperez@colorado.edu>
5851
5855
5852 * Big change to the manual: now the magics are all automatically
5856 * Big change to the manual: now the magics are all automatically
5853 documented. This information is generated from their docstrings
5857 documented. This information is generated from their docstrings
5854 and put in a latex file included by the manual lyx file. This way
5858 and put in a latex file included by the manual lyx file. This way
5855 we get always up to date information for the magics. The manual
5859 we get always up to date information for the magics. The manual
5856 now also has proper version information, also auto-synced.
5860 now also has proper version information, also auto-synced.
5857
5861
5858 For this to work, an undocumented --magic_docstrings option was added.
5862 For this to work, an undocumented --magic_docstrings option was added.
5859
5863
5860 2002-03-13 Fernando Perez <fperez@colorado.edu>
5864 2002-03-13 Fernando Perez <fperez@colorado.edu>
5861
5865
5862 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5866 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5863 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5867 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5864
5868
5865 2002-03-12 Fernando Perez <fperez@colorado.edu>
5869 2002-03-12 Fernando Perez <fperez@colorado.edu>
5866
5870
5867 * IPython/ultraTB.py (TermColors): changed color escapes again to
5871 * IPython/ultraTB.py (TermColors): changed color escapes again to
5868 fix the (old, reintroduced) line-wrapping bug. Basically, if
5872 fix the (old, reintroduced) line-wrapping bug. Basically, if
5869 \001..\002 aren't given in the color escapes, lines get wrapped
5873 \001..\002 aren't given in the color escapes, lines get wrapped
5870 weirdly. But giving those screws up old xterms and emacs terms. So
5874 weirdly. But giving those screws up old xterms and emacs terms. So
5871 I added some logic for emacs terms to be ok, but I can't identify old
5875 I added some logic for emacs terms to be ok, but I can't identify old
5872 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5876 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5873
5877
5874 2002-03-10 Fernando Perez <fperez@colorado.edu>
5878 2002-03-10 Fernando Perez <fperez@colorado.edu>
5875
5879
5876 * IPython/usage.py (__doc__): Various documentation cleanups and
5880 * IPython/usage.py (__doc__): Various documentation cleanups and
5877 updates, both in usage docstrings and in the manual.
5881 updates, both in usage docstrings and in the manual.
5878
5882
5879 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5883 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5880 handling of caching. Set minimum acceptabe value for having a
5884 handling of caching. Set minimum acceptabe value for having a
5881 cache at 20 values.
5885 cache at 20 values.
5882
5886
5883 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5887 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5884 install_first_time function to a method, renamed it and added an
5888 install_first_time function to a method, renamed it and added an
5885 'upgrade' mode. Now people can update their config directory with
5889 'upgrade' mode. Now people can update their config directory with
5886 a simple command line switch (-upgrade, also new).
5890 a simple command line switch (-upgrade, also new).
5887
5891
5888 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5892 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5889 @file (convenient for automagic users under Python >= 2.2).
5893 @file (convenient for automagic users under Python >= 2.2).
5890 Removed @files (it seemed more like a plural than an abbrev. of
5894 Removed @files (it seemed more like a plural than an abbrev. of
5891 'file show').
5895 'file show').
5892
5896
5893 * IPython/iplib.py (install_first_time): Fixed crash if there were
5897 * IPython/iplib.py (install_first_time): Fixed crash if there were
5894 backup files ('~') in .ipython/ install directory.
5898 backup files ('~') in .ipython/ install directory.
5895
5899
5896 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5900 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5897 system. Things look fine, but these changes are fairly
5901 system. Things look fine, but these changes are fairly
5898 intrusive. Test them for a few days.
5902 intrusive. Test them for a few days.
5899
5903
5900 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5904 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5901 the prompts system. Now all in/out prompt strings are user
5905 the prompts system. Now all in/out prompt strings are user
5902 controllable. This is particularly useful for embedding, as one
5906 controllable. This is particularly useful for embedding, as one
5903 can tag embedded instances with particular prompts.
5907 can tag embedded instances with particular prompts.
5904
5908
5905 Also removed global use of sys.ps1/2, which now allows nested
5909 Also removed global use of sys.ps1/2, which now allows nested
5906 embeddings without any problems. Added command-line options for
5910 embeddings without any problems. Added command-line options for
5907 the prompt strings.
5911 the prompt strings.
5908
5912
5909 2002-03-08 Fernando Perez <fperez@colorado.edu>
5913 2002-03-08 Fernando Perez <fperez@colorado.edu>
5910
5914
5911 * IPython/UserConfig/example-embed-short.py (ipshell): added
5915 * IPython/UserConfig/example-embed-short.py (ipshell): added
5912 example file with the bare minimum code for embedding.
5916 example file with the bare minimum code for embedding.
5913
5917
5914 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5918 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5915 functionality for the embeddable shell to be activated/deactivated
5919 functionality for the embeddable shell to be activated/deactivated
5916 either globally or at each call.
5920 either globally or at each call.
5917
5921
5918 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5922 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5919 rewriting the prompt with '--->' for auto-inputs with proper
5923 rewriting the prompt with '--->' for auto-inputs with proper
5920 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5924 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5921 this is handled by the prompts class itself, as it should.
5925 this is handled by the prompts class itself, as it should.
5922
5926
5923 2002-03-05 Fernando Perez <fperez@colorado.edu>
5927 2002-03-05 Fernando Perez <fperez@colorado.edu>
5924
5928
5925 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5929 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5926 @logstart to avoid name clashes with the math log function.
5930 @logstart to avoid name clashes with the math log function.
5927
5931
5928 * Big updates to X/Emacs section of the manual.
5932 * Big updates to X/Emacs section of the manual.
5929
5933
5930 * Removed ipython_emacs. Milan explained to me how to pass
5934 * Removed ipython_emacs. Milan explained to me how to pass
5931 arguments to ipython through Emacs. Some day I'm going to end up
5935 arguments to ipython through Emacs. Some day I'm going to end up
5932 learning some lisp...
5936 learning some lisp...
5933
5937
5934 2002-03-04 Fernando Perez <fperez@colorado.edu>
5938 2002-03-04 Fernando Perez <fperez@colorado.edu>
5935
5939
5936 * IPython/ipython_emacs: Created script to be used as the
5940 * IPython/ipython_emacs: Created script to be used as the
5937 py-python-command Emacs variable so we can pass IPython
5941 py-python-command Emacs variable so we can pass IPython
5938 parameters. I can't figure out how to tell Emacs directly to pass
5942 parameters. I can't figure out how to tell Emacs directly to pass
5939 parameters to IPython, so a dummy shell script will do it.
5943 parameters to IPython, so a dummy shell script will do it.
5940
5944
5941 Other enhancements made for things to work better under Emacs'
5945 Other enhancements made for things to work better under Emacs'
5942 various types of terminals. Many thanks to Milan Zamazal
5946 various types of terminals. Many thanks to Milan Zamazal
5943 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5947 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5944
5948
5945 2002-03-01 Fernando Perez <fperez@colorado.edu>
5949 2002-03-01 Fernando Perez <fperez@colorado.edu>
5946
5950
5947 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5951 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5948 that loading of readline is now optional. This gives better
5952 that loading of readline is now optional. This gives better
5949 control to emacs users.
5953 control to emacs users.
5950
5954
5951 * IPython/ultraTB.py (__date__): Modified color escape sequences
5955 * IPython/ultraTB.py (__date__): Modified color escape sequences
5952 and now things work fine under xterm and in Emacs' term buffers
5956 and now things work fine under xterm and in Emacs' term buffers
5953 (though not shell ones). Well, in emacs you get colors, but all
5957 (though not shell ones). Well, in emacs you get colors, but all
5954 seem to be 'light' colors (no difference between dark and light
5958 seem to be 'light' colors (no difference between dark and light
5955 ones). But the garbage chars are gone, and also in xterms. It
5959 ones). But the garbage chars are gone, and also in xterms. It
5956 seems that now I'm using 'cleaner' ansi sequences.
5960 seems that now I'm using 'cleaner' ansi sequences.
5957
5961
5958 2002-02-21 Fernando Perez <fperez@colorado.edu>
5962 2002-02-21 Fernando Perez <fperez@colorado.edu>
5959
5963
5960 * Released 0.2.7 (mainly to publish the scoping fix).
5964 * Released 0.2.7 (mainly to publish the scoping fix).
5961
5965
5962 * IPython/Logger.py (Logger.logstate): added. A corresponding
5966 * IPython/Logger.py (Logger.logstate): added. A corresponding
5963 @logstate magic was created.
5967 @logstate magic was created.
5964
5968
5965 * IPython/Magic.py: fixed nested scoping problem under Python
5969 * IPython/Magic.py: fixed nested scoping problem under Python
5966 2.1.x (automagic wasn't working).
5970 2.1.x (automagic wasn't working).
5967
5971
5968 2002-02-20 Fernando Perez <fperez@colorado.edu>
5972 2002-02-20 Fernando Perez <fperez@colorado.edu>
5969
5973
5970 * Released 0.2.6.
5974 * Released 0.2.6.
5971
5975
5972 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5976 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5973 option so that logs can come out without any headers at all.
5977 option so that logs can come out without any headers at all.
5974
5978
5975 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5979 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5976 SciPy.
5980 SciPy.
5977
5981
5978 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5982 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5979 that embedded IPython calls don't require vars() to be explicitly
5983 that embedded IPython calls don't require vars() to be explicitly
5980 passed. Now they are extracted from the caller's frame (code
5984 passed. Now they are extracted from the caller's frame (code
5981 snatched from Eric Jones' weave). Added better documentation to
5985 snatched from Eric Jones' weave). Added better documentation to
5982 the section on embedding and the example file.
5986 the section on embedding and the example file.
5983
5987
5984 * IPython/genutils.py (page): Changed so that under emacs, it just
5988 * IPython/genutils.py (page): Changed so that under emacs, it just
5985 prints the string. You can then page up and down in the emacs
5989 prints the string. You can then page up and down in the emacs
5986 buffer itself. This is how the builtin help() works.
5990 buffer itself. This is how the builtin help() works.
5987
5991
5988 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5992 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5989 macro scoping: macros need to be executed in the user's namespace
5993 macro scoping: macros need to be executed in the user's namespace
5990 to work as if they had been typed by the user.
5994 to work as if they had been typed by the user.
5991
5995
5992 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5996 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5993 execute automatically (no need to type 'exec...'). They then
5997 execute automatically (no need to type 'exec...'). They then
5994 behave like 'true macros'. The printing system was also modified
5998 behave like 'true macros'. The printing system was also modified
5995 for this to work.
5999 for this to work.
5996
6000
5997 2002-02-19 Fernando Perez <fperez@colorado.edu>
6001 2002-02-19 Fernando Perez <fperez@colorado.edu>
5998
6002
5999 * IPython/genutils.py (page_file): new function for paging files
6003 * IPython/genutils.py (page_file): new function for paging files
6000 in an OS-independent way. Also necessary for file viewing to work
6004 in an OS-independent way. Also necessary for file viewing to work
6001 well inside Emacs buffers.
6005 well inside Emacs buffers.
6002 (page): Added checks for being in an emacs buffer.
6006 (page): Added checks for being in an emacs buffer.
6003 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6007 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6004 same bug in iplib.
6008 same bug in iplib.
6005
6009
6006 2002-02-18 Fernando Perez <fperez@colorado.edu>
6010 2002-02-18 Fernando Perez <fperez@colorado.edu>
6007
6011
6008 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6012 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6009 of readline so that IPython can work inside an Emacs buffer.
6013 of readline so that IPython can work inside an Emacs buffer.
6010
6014
6011 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6015 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6012 method signatures (they weren't really bugs, but it looks cleaner
6016 method signatures (they weren't really bugs, but it looks cleaner
6013 and keeps PyChecker happy).
6017 and keeps PyChecker happy).
6014
6018
6015 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6019 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6016 for implementing various user-defined hooks. Currently only
6020 for implementing various user-defined hooks. Currently only
6017 display is done.
6021 display is done.
6018
6022
6019 * IPython/Prompts.py (CachedOutput._display): changed display
6023 * IPython/Prompts.py (CachedOutput._display): changed display
6020 functions so that they can be dynamically changed by users easily.
6024 functions so that they can be dynamically changed by users easily.
6021
6025
6022 * IPython/Extensions/numeric_formats.py (num_display): added an
6026 * IPython/Extensions/numeric_formats.py (num_display): added an
6023 extension for printing NumPy arrays in flexible manners. It
6027 extension for printing NumPy arrays in flexible manners. It
6024 doesn't do anything yet, but all the structure is in
6028 doesn't do anything yet, but all the structure is in
6025 place. Ultimately the plan is to implement output format control
6029 place. Ultimately the plan is to implement output format control
6026 like in Octave.
6030 like in Octave.
6027
6031
6028 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6032 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6029 methods are found at run-time by all the automatic machinery.
6033 methods are found at run-time by all the automatic machinery.
6030
6034
6031 2002-02-17 Fernando Perez <fperez@colorado.edu>
6035 2002-02-17 Fernando Perez <fperez@colorado.edu>
6032
6036
6033 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6037 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6034 whole file a little.
6038 whole file a little.
6035
6039
6036 * ToDo: closed this document. Now there's a new_design.lyx
6040 * ToDo: closed this document. Now there's a new_design.lyx
6037 document for all new ideas. Added making a pdf of it for the
6041 document for all new ideas. Added making a pdf of it for the
6038 end-user distro.
6042 end-user distro.
6039
6043
6040 * IPython/Logger.py (Logger.switch_log): Created this to replace
6044 * IPython/Logger.py (Logger.switch_log): Created this to replace
6041 logon() and logoff(). It also fixes a nasty crash reported by
6045 logon() and logoff(). It also fixes a nasty crash reported by
6042 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6046 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6043
6047
6044 * IPython/iplib.py (complete): got auto-completion to work with
6048 * IPython/iplib.py (complete): got auto-completion to work with
6045 automagic (I had wanted this for a long time).
6049 automagic (I had wanted this for a long time).
6046
6050
6047 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6051 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6048 to @file, since file() is now a builtin and clashes with automagic
6052 to @file, since file() is now a builtin and clashes with automagic
6049 for @file.
6053 for @file.
6050
6054
6051 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6055 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6052 of this was previously in iplib, which had grown to more than 2000
6056 of this was previously in iplib, which had grown to more than 2000
6053 lines, way too long. No new functionality, but it makes managing
6057 lines, way too long. No new functionality, but it makes managing
6054 the code a bit easier.
6058 the code a bit easier.
6055
6059
6056 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6060 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6057 information to crash reports.
6061 information to crash reports.
6058
6062
6059 2002-02-12 Fernando Perez <fperez@colorado.edu>
6063 2002-02-12 Fernando Perez <fperez@colorado.edu>
6060
6064
6061 * Released 0.2.5.
6065 * Released 0.2.5.
6062
6066
6063 2002-02-11 Fernando Perez <fperez@colorado.edu>
6067 2002-02-11 Fernando Perez <fperez@colorado.edu>
6064
6068
6065 * Wrote a relatively complete Windows installer. It puts
6069 * Wrote a relatively complete Windows installer. It puts
6066 everything in place, creates Start Menu entries and fixes the
6070 everything in place, creates Start Menu entries and fixes the
6067 color issues. Nothing fancy, but it works.
6071 color issues. Nothing fancy, but it works.
6068
6072
6069 2002-02-10 Fernando Perez <fperez@colorado.edu>
6073 2002-02-10 Fernando Perez <fperez@colorado.edu>
6070
6074
6071 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6075 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6072 os.path.expanduser() call so that we can type @run ~/myfile.py and
6076 os.path.expanduser() call so that we can type @run ~/myfile.py and
6073 have thigs work as expected.
6077 have thigs work as expected.
6074
6078
6075 * IPython/genutils.py (page): fixed exception handling so things
6079 * IPython/genutils.py (page): fixed exception handling so things
6076 work both in Unix and Windows correctly. Quitting a pager triggers
6080 work both in Unix and Windows correctly. Quitting a pager triggers
6077 an IOError/broken pipe in Unix, and in windows not finding a pager
6081 an IOError/broken pipe in Unix, and in windows not finding a pager
6078 is also an IOError, so I had to actually look at the return value
6082 is also an IOError, so I had to actually look at the return value
6079 of the exception, not just the exception itself. Should be ok now.
6083 of the exception, not just the exception itself. Should be ok now.
6080
6084
6081 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6085 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6082 modified to allow case-insensitive color scheme changes.
6086 modified to allow case-insensitive color scheme changes.
6083
6087
6084 2002-02-09 Fernando Perez <fperez@colorado.edu>
6088 2002-02-09 Fernando Perez <fperez@colorado.edu>
6085
6089
6086 * IPython/genutils.py (native_line_ends): new function to leave
6090 * IPython/genutils.py (native_line_ends): new function to leave
6087 user config files with os-native line-endings.
6091 user config files with os-native line-endings.
6088
6092
6089 * README and manual updates.
6093 * README and manual updates.
6090
6094
6091 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6095 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6092 instead of StringType to catch Unicode strings.
6096 instead of StringType to catch Unicode strings.
6093
6097
6094 * IPython/genutils.py (filefind): fixed bug for paths with
6098 * IPython/genutils.py (filefind): fixed bug for paths with
6095 embedded spaces (very common in Windows).
6099 embedded spaces (very common in Windows).
6096
6100
6097 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6101 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6098 files under Windows, so that they get automatically associated
6102 files under Windows, so that they get automatically associated
6099 with a text editor. Windows makes it a pain to handle
6103 with a text editor. Windows makes it a pain to handle
6100 extension-less files.
6104 extension-less files.
6101
6105
6102 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6106 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6103 warning about readline only occur for Posix. In Windows there's no
6107 warning about readline only occur for Posix. In Windows there's no
6104 way to get readline, so why bother with the warning.
6108 way to get readline, so why bother with the warning.
6105
6109
6106 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6110 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6107 for __str__ instead of dir(self), since dir() changed in 2.2.
6111 for __str__ instead of dir(self), since dir() changed in 2.2.
6108
6112
6109 * Ported to Windows! Tested on XP, I suspect it should work fine
6113 * Ported to Windows! Tested on XP, I suspect it should work fine
6110 on NT/2000, but I don't think it will work on 98 et al. That
6114 on NT/2000, but I don't think it will work on 98 et al. That
6111 series of Windows is such a piece of junk anyway that I won't try
6115 series of Windows is such a piece of junk anyway that I won't try
6112 porting it there. The XP port was straightforward, showed a few
6116 porting it there. The XP port was straightforward, showed a few
6113 bugs here and there (fixed all), in particular some string
6117 bugs here and there (fixed all), in particular some string
6114 handling stuff which required considering Unicode strings (which
6118 handling stuff which required considering Unicode strings (which
6115 Windows uses). This is good, but hasn't been too tested :) No
6119 Windows uses). This is good, but hasn't been too tested :) No
6116 fancy installer yet, I'll put a note in the manual so people at
6120 fancy installer yet, I'll put a note in the manual so people at
6117 least make manually a shortcut.
6121 least make manually a shortcut.
6118
6122
6119 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6123 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6120 into a single one, "colors". This now controls both prompt and
6124 into a single one, "colors". This now controls both prompt and
6121 exception color schemes, and can be changed both at startup
6125 exception color schemes, and can be changed both at startup
6122 (either via command-line switches or via ipythonrc files) and at
6126 (either via command-line switches or via ipythonrc files) and at
6123 runtime, with @colors.
6127 runtime, with @colors.
6124 (Magic.magic_run): renamed @prun to @run and removed the old
6128 (Magic.magic_run): renamed @prun to @run and removed the old
6125 @run. The two were too similar to warrant keeping both.
6129 @run. The two were too similar to warrant keeping both.
6126
6130
6127 2002-02-03 Fernando Perez <fperez@colorado.edu>
6131 2002-02-03 Fernando Perez <fperez@colorado.edu>
6128
6132
6129 * IPython/iplib.py (install_first_time): Added comment on how to
6133 * IPython/iplib.py (install_first_time): Added comment on how to
6130 configure the color options for first-time users. Put a <return>
6134 configure the color options for first-time users. Put a <return>
6131 request at the end so that small-terminal users get a chance to
6135 request at the end so that small-terminal users get a chance to
6132 read the startup info.
6136 read the startup info.
6133
6137
6134 2002-01-23 Fernando Perez <fperez@colorado.edu>
6138 2002-01-23 Fernando Perez <fperez@colorado.edu>
6135
6139
6136 * IPython/iplib.py (CachedOutput.update): Changed output memory
6140 * IPython/iplib.py (CachedOutput.update): Changed output memory
6137 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6141 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6138 input history we still use _i. Did this b/c these variable are
6142 input history we still use _i. Did this b/c these variable are
6139 very commonly used in interactive work, so the less we need to
6143 very commonly used in interactive work, so the less we need to
6140 type the better off we are.
6144 type the better off we are.
6141 (Magic.magic_prun): updated @prun to better handle the namespaces
6145 (Magic.magic_prun): updated @prun to better handle the namespaces
6142 the file will run in, including a fix for __name__ not being set
6146 the file will run in, including a fix for __name__ not being set
6143 before.
6147 before.
6144
6148
6145 2002-01-20 Fernando Perez <fperez@colorado.edu>
6149 2002-01-20 Fernando Perez <fperez@colorado.edu>
6146
6150
6147 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6151 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6148 extra garbage for Python 2.2. Need to look more carefully into
6152 extra garbage for Python 2.2. Need to look more carefully into
6149 this later.
6153 this later.
6150
6154
6151 2002-01-19 Fernando Perez <fperez@colorado.edu>
6155 2002-01-19 Fernando Perez <fperez@colorado.edu>
6152
6156
6153 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6157 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6154 display SyntaxError exceptions properly formatted when they occur
6158 display SyntaxError exceptions properly formatted when they occur
6155 (they can be triggered by imported code).
6159 (they can be triggered by imported code).
6156
6160
6157 2002-01-18 Fernando Perez <fperez@colorado.edu>
6161 2002-01-18 Fernando Perez <fperez@colorado.edu>
6158
6162
6159 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6163 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6160 SyntaxError exceptions are reported nicely formatted, instead of
6164 SyntaxError exceptions are reported nicely formatted, instead of
6161 spitting out only offset information as before.
6165 spitting out only offset information as before.
6162 (Magic.magic_prun): Added the @prun function for executing
6166 (Magic.magic_prun): Added the @prun function for executing
6163 programs with command line args inside IPython.
6167 programs with command line args inside IPython.
6164
6168
6165 2002-01-16 Fernando Perez <fperez@colorado.edu>
6169 2002-01-16 Fernando Perez <fperez@colorado.edu>
6166
6170
6167 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6171 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6168 to *not* include the last item given in a range. This brings their
6172 to *not* include the last item given in a range. This brings their
6169 behavior in line with Python's slicing:
6173 behavior in line with Python's slicing:
6170 a[n1:n2] -> a[n1]...a[n2-1]
6174 a[n1:n2] -> a[n1]...a[n2-1]
6171 It may be a bit less convenient, but I prefer to stick to Python's
6175 It may be a bit less convenient, but I prefer to stick to Python's
6172 conventions *everywhere*, so users never have to wonder.
6176 conventions *everywhere*, so users never have to wonder.
6173 (Magic.magic_macro): Added @macro function to ease the creation of
6177 (Magic.magic_macro): Added @macro function to ease the creation of
6174 macros.
6178 macros.
6175
6179
6176 2002-01-05 Fernando Perez <fperez@colorado.edu>
6180 2002-01-05 Fernando Perez <fperez@colorado.edu>
6177
6181
6178 * Released 0.2.4.
6182 * Released 0.2.4.
6179
6183
6180 * IPython/iplib.py (Magic.magic_pdef):
6184 * IPython/iplib.py (Magic.magic_pdef):
6181 (InteractiveShell.safe_execfile): report magic lines and error
6185 (InteractiveShell.safe_execfile): report magic lines and error
6182 lines without line numbers so one can easily copy/paste them for
6186 lines without line numbers so one can easily copy/paste them for
6183 re-execution.
6187 re-execution.
6184
6188
6185 * Updated manual with recent changes.
6189 * Updated manual with recent changes.
6186
6190
6187 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6191 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6188 docstring printing when class? is called. Very handy for knowing
6192 docstring printing when class? is called. Very handy for knowing
6189 how to create class instances (as long as __init__ is well
6193 how to create class instances (as long as __init__ is well
6190 documented, of course :)
6194 documented, of course :)
6191 (Magic.magic_doc): print both class and constructor docstrings.
6195 (Magic.magic_doc): print both class and constructor docstrings.
6192 (Magic.magic_pdef): give constructor info if passed a class and
6196 (Magic.magic_pdef): give constructor info if passed a class and
6193 __call__ info for callable object instances.
6197 __call__ info for callable object instances.
6194
6198
6195 2002-01-04 Fernando Perez <fperez@colorado.edu>
6199 2002-01-04 Fernando Perez <fperez@colorado.edu>
6196
6200
6197 * Made deep_reload() off by default. It doesn't always work
6201 * Made deep_reload() off by default. It doesn't always work
6198 exactly as intended, so it's probably safer to have it off. It's
6202 exactly as intended, so it's probably safer to have it off. It's
6199 still available as dreload() anyway, so nothing is lost.
6203 still available as dreload() anyway, so nothing is lost.
6200
6204
6201 2002-01-02 Fernando Perez <fperez@colorado.edu>
6205 2002-01-02 Fernando Perez <fperez@colorado.edu>
6202
6206
6203 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6207 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6204 so I wanted an updated release).
6208 so I wanted an updated release).
6205
6209
6206 2001-12-27 Fernando Perez <fperez@colorado.edu>
6210 2001-12-27 Fernando Perez <fperez@colorado.edu>
6207
6211
6208 * IPython/iplib.py (InteractiveShell.interact): Added the original
6212 * IPython/iplib.py (InteractiveShell.interact): Added the original
6209 code from 'code.py' for this module in order to change the
6213 code from 'code.py' for this module in order to change the
6210 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6214 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6211 the history cache would break when the user hit Ctrl-C, and
6215 the history cache would break when the user hit Ctrl-C, and
6212 interact() offers no way to add any hooks to it.
6216 interact() offers no way to add any hooks to it.
6213
6217
6214 2001-12-23 Fernando Perez <fperez@colorado.edu>
6218 2001-12-23 Fernando Perez <fperez@colorado.edu>
6215
6219
6216 * setup.py: added check for 'MANIFEST' before trying to remove
6220 * setup.py: added check for 'MANIFEST' before trying to remove
6217 it. Thanks to Sean Reifschneider.
6221 it. Thanks to Sean Reifschneider.
6218
6222
6219 2001-12-22 Fernando Perez <fperez@colorado.edu>
6223 2001-12-22 Fernando Perez <fperez@colorado.edu>
6220
6224
6221 * Released 0.2.2.
6225 * Released 0.2.2.
6222
6226
6223 * Finished (reasonably) writing the manual. Later will add the
6227 * Finished (reasonably) writing the manual. Later will add the
6224 python-standard navigation stylesheets, but for the time being
6228 python-standard navigation stylesheets, but for the time being
6225 it's fairly complete. Distribution will include html and pdf
6229 it's fairly complete. Distribution will include html and pdf
6226 versions.
6230 versions.
6227
6231
6228 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6232 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6229 (MayaVi author).
6233 (MayaVi author).
6230
6234
6231 2001-12-21 Fernando Perez <fperez@colorado.edu>
6235 2001-12-21 Fernando Perez <fperez@colorado.edu>
6232
6236
6233 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6237 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6234 good public release, I think (with the manual and the distutils
6238 good public release, I think (with the manual and the distutils
6235 installer). The manual can use some work, but that can go
6239 installer). The manual can use some work, but that can go
6236 slowly. Otherwise I think it's quite nice for end users. Next
6240 slowly. Otherwise I think it's quite nice for end users. Next
6237 summer, rewrite the guts of it...
6241 summer, rewrite the guts of it...
6238
6242
6239 * Changed format of ipythonrc files to use whitespace as the
6243 * Changed format of ipythonrc files to use whitespace as the
6240 separator instead of an explicit '='. Cleaner.
6244 separator instead of an explicit '='. Cleaner.
6241
6245
6242 2001-12-20 Fernando Perez <fperez@colorado.edu>
6246 2001-12-20 Fernando Perez <fperez@colorado.edu>
6243
6247
6244 * Started a manual in LyX. For now it's just a quick merge of the
6248 * Started a manual in LyX. For now it's just a quick merge of the
6245 various internal docstrings and READMEs. Later it may grow into a
6249 various internal docstrings and READMEs. Later it may grow into a
6246 nice, full-blown manual.
6250 nice, full-blown manual.
6247
6251
6248 * Set up a distutils based installer. Installation should now be
6252 * Set up a distutils based installer. Installation should now be
6249 trivially simple for end-users.
6253 trivially simple for end-users.
6250
6254
6251 2001-12-11 Fernando Perez <fperez@colorado.edu>
6255 2001-12-11 Fernando Perez <fperez@colorado.edu>
6252
6256
6253 * Released 0.2.0. First public release, announced it at
6257 * Released 0.2.0. First public release, announced it at
6254 comp.lang.python. From now on, just bugfixes...
6258 comp.lang.python. From now on, just bugfixes...
6255
6259
6256 * Went through all the files, set copyright/license notices and
6260 * Went through all the files, set copyright/license notices and
6257 cleaned up things. Ready for release.
6261 cleaned up things. Ready for release.
6258
6262
6259 2001-12-10 Fernando Perez <fperez@colorado.edu>
6263 2001-12-10 Fernando Perez <fperez@colorado.edu>
6260
6264
6261 * Changed the first-time installer not to use tarfiles. It's more
6265 * Changed the first-time installer not to use tarfiles. It's more
6262 robust now and less unix-dependent. Also makes it easier for
6266 robust now and less unix-dependent. Also makes it easier for
6263 people to later upgrade versions.
6267 people to later upgrade versions.
6264
6268
6265 * Changed @exit to @abort to reflect the fact that it's pretty
6269 * Changed @exit to @abort to reflect the fact that it's pretty
6266 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6270 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6267 becomes significant only when IPyhton is embedded: in that case,
6271 becomes significant only when IPyhton is embedded: in that case,
6268 C-D closes IPython only, but @abort kills the enclosing program
6272 C-D closes IPython only, but @abort kills the enclosing program
6269 too (unless it had called IPython inside a try catching
6273 too (unless it had called IPython inside a try catching
6270 SystemExit).
6274 SystemExit).
6271
6275
6272 * Created Shell module which exposes the actuall IPython Shell
6276 * Created Shell module which exposes the actuall IPython Shell
6273 classes, currently the normal and the embeddable one. This at
6277 classes, currently the normal and the embeddable one. This at
6274 least offers a stable interface we won't need to change when
6278 least offers a stable interface we won't need to change when
6275 (later) the internals are rewritten. That rewrite will be confined
6279 (later) the internals are rewritten. That rewrite will be confined
6276 to iplib and ipmaker, but the Shell interface should remain as is.
6280 to iplib and ipmaker, but the Shell interface should remain as is.
6277
6281
6278 * Added embed module which offers an embeddable IPShell object,
6282 * Added embed module which offers an embeddable IPShell object,
6279 useful to fire up IPython *inside* a running program. Great for
6283 useful to fire up IPython *inside* a running program. Great for
6280 debugging or dynamical data analysis.
6284 debugging or dynamical data analysis.
6281
6285
6282 2001-12-08 Fernando Perez <fperez@colorado.edu>
6286 2001-12-08 Fernando Perez <fperez@colorado.edu>
6283
6287
6284 * Fixed small bug preventing seeing info from methods of defined
6288 * Fixed small bug preventing seeing info from methods of defined
6285 objects (incorrect namespace in _ofind()).
6289 objects (incorrect namespace in _ofind()).
6286
6290
6287 * Documentation cleanup. Moved the main usage docstrings to a
6291 * Documentation cleanup. Moved the main usage docstrings to a
6288 separate file, usage.py (cleaner to maintain, and hopefully in the
6292 separate file, usage.py (cleaner to maintain, and hopefully in the
6289 future some perlpod-like way of producing interactive, man and
6293 future some perlpod-like way of producing interactive, man and
6290 html docs out of it will be found).
6294 html docs out of it will be found).
6291
6295
6292 * Added @profile to see your profile at any time.
6296 * Added @profile to see your profile at any time.
6293
6297
6294 * Added @p as an alias for 'print'. It's especially convenient if
6298 * Added @p as an alias for 'print'. It's especially convenient if
6295 using automagic ('p x' prints x).
6299 using automagic ('p x' prints x).
6296
6300
6297 * Small cleanups and fixes after a pychecker run.
6301 * Small cleanups and fixes after a pychecker run.
6298
6302
6299 * Changed the @cd command to handle @cd - and @cd -<n> for
6303 * Changed the @cd command to handle @cd - and @cd -<n> for
6300 visiting any directory in _dh.
6304 visiting any directory in _dh.
6301
6305
6302 * Introduced _dh, a history of visited directories. @dhist prints
6306 * Introduced _dh, a history of visited directories. @dhist prints
6303 it out with numbers.
6307 it out with numbers.
6304
6308
6305 2001-12-07 Fernando Perez <fperez@colorado.edu>
6309 2001-12-07 Fernando Perez <fperez@colorado.edu>
6306
6310
6307 * Released 0.1.22
6311 * Released 0.1.22
6308
6312
6309 * Made initialization a bit more robust against invalid color
6313 * Made initialization a bit more robust against invalid color
6310 options in user input (exit, not traceback-crash).
6314 options in user input (exit, not traceback-crash).
6311
6315
6312 * Changed the bug crash reporter to write the report only in the
6316 * Changed the bug crash reporter to write the report only in the
6313 user's .ipython directory. That way IPython won't litter people's
6317 user's .ipython directory. That way IPython won't litter people's
6314 hard disks with crash files all over the place. Also print on
6318 hard disks with crash files all over the place. Also print on
6315 screen the necessary mail command.
6319 screen the necessary mail command.
6316
6320
6317 * With the new ultraTB, implemented LightBG color scheme for light
6321 * With the new ultraTB, implemented LightBG color scheme for light
6318 background terminals. A lot of people like white backgrounds, so I
6322 background terminals. A lot of people like white backgrounds, so I
6319 guess we should at least give them something readable.
6323 guess we should at least give them something readable.
6320
6324
6321 2001-12-06 Fernando Perez <fperez@colorado.edu>
6325 2001-12-06 Fernando Perez <fperez@colorado.edu>
6322
6326
6323 * Modified the structure of ultraTB. Now there's a proper class
6327 * Modified the structure of ultraTB. Now there's a proper class
6324 for tables of color schemes which allow adding schemes easily and
6328 for tables of color schemes which allow adding schemes easily and
6325 switching the active scheme without creating a new instance every
6329 switching the active scheme without creating a new instance every
6326 time (which was ridiculous). The syntax for creating new schemes
6330 time (which was ridiculous). The syntax for creating new schemes
6327 is also cleaner. I think ultraTB is finally done, with a clean
6331 is also cleaner. I think ultraTB is finally done, with a clean
6328 class structure. Names are also much cleaner (now there's proper
6332 class structure. Names are also much cleaner (now there's proper
6329 color tables, no need for every variable to also have 'color' in
6333 color tables, no need for every variable to also have 'color' in
6330 its name).
6334 its name).
6331
6335
6332 * Broke down genutils into separate files. Now genutils only
6336 * Broke down genutils into separate files. Now genutils only
6333 contains utility functions, and classes have been moved to their
6337 contains utility functions, and classes have been moved to their
6334 own files (they had enough independent functionality to warrant
6338 own files (they had enough independent functionality to warrant
6335 it): ConfigLoader, OutputTrap, Struct.
6339 it): ConfigLoader, OutputTrap, Struct.
6336
6340
6337 2001-12-05 Fernando Perez <fperez@colorado.edu>
6341 2001-12-05 Fernando Perez <fperez@colorado.edu>
6338
6342
6339 * IPython turns 21! Released version 0.1.21, as a candidate for
6343 * IPython turns 21! Released version 0.1.21, as a candidate for
6340 public consumption. If all goes well, release in a few days.
6344 public consumption. If all goes well, release in a few days.
6341
6345
6342 * Fixed path bug (files in Extensions/ directory wouldn't be found
6346 * Fixed path bug (files in Extensions/ directory wouldn't be found
6343 unless IPython/ was explicitly in sys.path).
6347 unless IPython/ was explicitly in sys.path).
6344
6348
6345 * Extended the FlexCompleter class as MagicCompleter to allow
6349 * Extended the FlexCompleter class as MagicCompleter to allow
6346 completion of @-starting lines.
6350 completion of @-starting lines.
6347
6351
6348 * Created __release__.py file as a central repository for release
6352 * Created __release__.py file as a central repository for release
6349 info that other files can read from.
6353 info that other files can read from.
6350
6354
6351 * Fixed small bug in logging: when logging was turned on in
6355 * Fixed small bug in logging: when logging was turned on in
6352 mid-session, old lines with special meanings (!@?) were being
6356 mid-session, old lines with special meanings (!@?) were being
6353 logged without the prepended comment, which is necessary since
6357 logged without the prepended comment, which is necessary since
6354 they are not truly valid python syntax. This should make session
6358 they are not truly valid python syntax. This should make session
6355 restores produce less errors.
6359 restores produce less errors.
6356
6360
6357 * The namespace cleanup forced me to make a FlexCompleter class
6361 * The namespace cleanup forced me to make a FlexCompleter class
6358 which is nothing but a ripoff of rlcompleter, but with selectable
6362 which is nothing but a ripoff of rlcompleter, but with selectable
6359 namespace (rlcompleter only works in __main__.__dict__). I'll try
6363 namespace (rlcompleter only works in __main__.__dict__). I'll try
6360 to submit a note to the authors to see if this change can be
6364 to submit a note to the authors to see if this change can be
6361 incorporated in future rlcompleter releases (Dec.6: done)
6365 incorporated in future rlcompleter releases (Dec.6: done)
6362
6366
6363 * More fixes to namespace handling. It was a mess! Now all
6367 * More fixes to namespace handling. It was a mess! Now all
6364 explicit references to __main__.__dict__ are gone (except when
6368 explicit references to __main__.__dict__ are gone (except when
6365 really needed) and everything is handled through the namespace
6369 really needed) and everything is handled through the namespace
6366 dicts in the IPython instance. We seem to be getting somewhere
6370 dicts in the IPython instance. We seem to be getting somewhere
6367 with this, finally...
6371 with this, finally...
6368
6372
6369 * Small documentation updates.
6373 * Small documentation updates.
6370
6374
6371 * Created the Extensions directory under IPython (with an
6375 * Created the Extensions directory under IPython (with an
6372 __init__.py). Put the PhysicalQ stuff there. This directory should
6376 __init__.py). Put the PhysicalQ stuff there. This directory should
6373 be used for all special-purpose extensions.
6377 be used for all special-purpose extensions.
6374
6378
6375 * File renaming:
6379 * File renaming:
6376 ipythonlib --> ipmaker
6380 ipythonlib --> ipmaker
6377 ipplib --> iplib
6381 ipplib --> iplib
6378 This makes a bit more sense in terms of what these files actually do.
6382 This makes a bit more sense in terms of what these files actually do.
6379
6383
6380 * Moved all the classes and functions in ipythonlib to ipplib, so
6384 * Moved all the classes and functions in ipythonlib to ipplib, so
6381 now ipythonlib only has make_IPython(). This will ease up its
6385 now ipythonlib only has make_IPython(). This will ease up its
6382 splitting in smaller functional chunks later.
6386 splitting in smaller functional chunks later.
6383
6387
6384 * Cleaned up (done, I think) output of @whos. Better column
6388 * Cleaned up (done, I think) output of @whos. Better column
6385 formatting, and now shows str(var) for as much as it can, which is
6389 formatting, and now shows str(var) for as much as it can, which is
6386 typically what one gets with a 'print var'.
6390 typically what one gets with a 'print var'.
6387
6391
6388 2001-12-04 Fernando Perez <fperez@colorado.edu>
6392 2001-12-04 Fernando Perez <fperez@colorado.edu>
6389
6393
6390 * Fixed namespace problems. Now builtin/IPyhton/user names get
6394 * Fixed namespace problems. Now builtin/IPyhton/user names get
6391 properly reported in their namespace. Internal namespace handling
6395 properly reported in their namespace. Internal namespace handling
6392 is finally getting decent (not perfect yet, but much better than
6396 is finally getting decent (not perfect yet, but much better than
6393 the ad-hoc mess we had).
6397 the ad-hoc mess we had).
6394
6398
6395 * Removed -exit option. If people just want to run a python
6399 * Removed -exit option. If people just want to run a python
6396 script, that's what the normal interpreter is for. Less
6400 script, that's what the normal interpreter is for. Less
6397 unnecessary options, less chances for bugs.
6401 unnecessary options, less chances for bugs.
6398
6402
6399 * Added a crash handler which generates a complete post-mortem if
6403 * Added a crash handler which generates a complete post-mortem if
6400 IPython crashes. This will help a lot in tracking bugs down the
6404 IPython crashes. This will help a lot in tracking bugs down the
6401 road.
6405 road.
6402
6406
6403 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6407 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6404 which were boud to functions being reassigned would bypass the
6408 which were boud to functions being reassigned would bypass the
6405 logger, breaking the sync of _il with the prompt counter. This
6409 logger, breaking the sync of _il with the prompt counter. This
6406 would then crash IPython later when a new line was logged.
6410 would then crash IPython later when a new line was logged.
6407
6411
6408 2001-12-02 Fernando Perez <fperez@colorado.edu>
6412 2001-12-02 Fernando Perez <fperez@colorado.edu>
6409
6413
6410 * Made IPython a package. This means people don't have to clutter
6414 * Made IPython a package. This means people don't have to clutter
6411 their sys.path with yet another directory. Changed the INSTALL
6415 their sys.path with yet another directory. Changed the INSTALL
6412 file accordingly.
6416 file accordingly.
6413
6417
6414 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6418 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6415 sorts its output (so @who shows it sorted) and @whos formats the
6419 sorts its output (so @who shows it sorted) and @whos formats the
6416 table according to the width of the first column. Nicer, easier to
6420 table according to the width of the first column. Nicer, easier to
6417 read. Todo: write a generic table_format() which takes a list of
6421 read. Todo: write a generic table_format() which takes a list of
6418 lists and prints it nicely formatted, with optional row/column
6422 lists and prints it nicely formatted, with optional row/column
6419 separators and proper padding and justification.
6423 separators and proper padding and justification.
6420
6424
6421 * Released 0.1.20
6425 * Released 0.1.20
6422
6426
6423 * Fixed bug in @log which would reverse the inputcache list (a
6427 * Fixed bug in @log which would reverse the inputcache list (a
6424 copy operation was missing).
6428 copy operation was missing).
6425
6429
6426 * Code cleanup. @config was changed to use page(). Better, since
6430 * Code cleanup. @config was changed to use page(). Better, since
6427 its output is always quite long.
6431 its output is always quite long.
6428
6432
6429 * Itpl is back as a dependency. I was having too many problems
6433 * Itpl is back as a dependency. I was having too many problems
6430 getting the parametric aliases to work reliably, and it's just
6434 getting the parametric aliases to work reliably, and it's just
6431 easier to code weird string operations with it than playing %()s
6435 easier to code weird string operations with it than playing %()s
6432 games. It's only ~6k, so I don't think it's too big a deal.
6436 games. It's only ~6k, so I don't think it's too big a deal.
6433
6437
6434 * Found (and fixed) a very nasty bug with history. !lines weren't
6438 * Found (and fixed) a very nasty bug with history. !lines weren't
6435 getting cached, and the out of sync caches would crash
6439 getting cached, and the out of sync caches would crash
6436 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6440 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6437 division of labor a bit better. Bug fixed, cleaner structure.
6441 division of labor a bit better. Bug fixed, cleaner structure.
6438
6442
6439 2001-12-01 Fernando Perez <fperez@colorado.edu>
6443 2001-12-01 Fernando Perez <fperez@colorado.edu>
6440
6444
6441 * Released 0.1.19
6445 * Released 0.1.19
6442
6446
6443 * Added option -n to @hist to prevent line number printing. Much
6447 * Added option -n to @hist to prevent line number printing. Much
6444 easier to copy/paste code this way.
6448 easier to copy/paste code this way.
6445
6449
6446 * Created global _il to hold the input list. Allows easy
6450 * Created global _il to hold the input list. Allows easy
6447 re-execution of blocks of code by slicing it (inspired by Janko's
6451 re-execution of blocks of code by slicing it (inspired by Janko's
6448 comment on 'macros').
6452 comment on 'macros').
6449
6453
6450 * Small fixes and doc updates.
6454 * Small fixes and doc updates.
6451
6455
6452 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6456 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6453 much too fragile with automagic. Handles properly multi-line
6457 much too fragile with automagic. Handles properly multi-line
6454 statements and takes parameters.
6458 statements and takes parameters.
6455
6459
6456 2001-11-30 Fernando Perez <fperez@colorado.edu>
6460 2001-11-30 Fernando Perez <fperez@colorado.edu>
6457
6461
6458 * Version 0.1.18 released.
6462 * Version 0.1.18 released.
6459
6463
6460 * Fixed nasty namespace bug in initial module imports.
6464 * Fixed nasty namespace bug in initial module imports.
6461
6465
6462 * Added copyright/license notes to all code files (except
6466 * Added copyright/license notes to all code files (except
6463 DPyGetOpt). For the time being, LGPL. That could change.
6467 DPyGetOpt). For the time being, LGPL. That could change.
6464
6468
6465 * Rewrote a much nicer README, updated INSTALL, cleaned up
6469 * Rewrote a much nicer README, updated INSTALL, cleaned up
6466 ipythonrc-* samples.
6470 ipythonrc-* samples.
6467
6471
6468 * Overall code/documentation cleanup. Basically ready for
6472 * Overall code/documentation cleanup. Basically ready for
6469 release. Only remaining thing: licence decision (LGPL?).
6473 release. Only remaining thing: licence decision (LGPL?).
6470
6474
6471 * Converted load_config to a class, ConfigLoader. Now recursion
6475 * Converted load_config to a class, ConfigLoader. Now recursion
6472 control is better organized. Doesn't include the same file twice.
6476 control is better organized. Doesn't include the same file twice.
6473
6477
6474 2001-11-29 Fernando Perez <fperez@colorado.edu>
6478 2001-11-29 Fernando Perez <fperez@colorado.edu>
6475
6479
6476 * Got input history working. Changed output history variables from
6480 * Got input history working. Changed output history variables from
6477 _p to _o so that _i is for input and _o for output. Just cleaner
6481 _p to _o so that _i is for input and _o for output. Just cleaner
6478 convention.
6482 convention.
6479
6483
6480 * Implemented parametric aliases. This pretty much allows the
6484 * Implemented parametric aliases. This pretty much allows the
6481 alias system to offer full-blown shell convenience, I think.
6485 alias system to offer full-blown shell convenience, I think.
6482
6486
6483 * Version 0.1.17 released, 0.1.18 opened.
6487 * Version 0.1.17 released, 0.1.18 opened.
6484
6488
6485 * dot_ipython/ipythonrc (alias): added documentation.
6489 * dot_ipython/ipythonrc (alias): added documentation.
6486 (xcolor): Fixed small bug (xcolors -> xcolor)
6490 (xcolor): Fixed small bug (xcolors -> xcolor)
6487
6491
6488 * Changed the alias system. Now alias is a magic command to define
6492 * Changed the alias system. Now alias is a magic command to define
6489 aliases just like the shell. Rationale: the builtin magics should
6493 aliases just like the shell. Rationale: the builtin magics should
6490 be there for things deeply connected to IPython's
6494 be there for things deeply connected to IPython's
6491 architecture. And this is a much lighter system for what I think
6495 architecture. And this is a much lighter system for what I think
6492 is the really important feature: allowing users to define quickly
6496 is the really important feature: allowing users to define quickly
6493 magics that will do shell things for them, so they can customize
6497 magics that will do shell things for them, so they can customize
6494 IPython easily to match their work habits. If someone is really
6498 IPython easily to match their work habits. If someone is really
6495 desperate to have another name for a builtin alias, they can
6499 desperate to have another name for a builtin alias, they can
6496 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6500 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6497 works.
6501 works.
6498
6502
6499 2001-11-28 Fernando Perez <fperez@colorado.edu>
6503 2001-11-28 Fernando Perez <fperez@colorado.edu>
6500
6504
6501 * Changed @file so that it opens the source file at the proper
6505 * Changed @file so that it opens the source file at the proper
6502 line. Since it uses less, if your EDITOR environment is
6506 line. Since it uses less, if your EDITOR environment is
6503 configured, typing v will immediately open your editor of choice
6507 configured, typing v will immediately open your editor of choice
6504 right at the line where the object is defined. Not as quick as
6508 right at the line where the object is defined. Not as quick as
6505 having a direct @edit command, but for all intents and purposes it
6509 having a direct @edit command, but for all intents and purposes it
6506 works. And I don't have to worry about writing @edit to deal with
6510 works. And I don't have to worry about writing @edit to deal with
6507 all the editors, less does that.
6511 all the editors, less does that.
6508
6512
6509 * Version 0.1.16 released, 0.1.17 opened.
6513 * Version 0.1.16 released, 0.1.17 opened.
6510
6514
6511 * Fixed some nasty bugs in the page/page_dumb combo that could
6515 * Fixed some nasty bugs in the page/page_dumb combo that could
6512 crash IPython.
6516 crash IPython.
6513
6517
6514 2001-11-27 Fernando Perez <fperez@colorado.edu>
6518 2001-11-27 Fernando Perez <fperez@colorado.edu>
6515
6519
6516 * Version 0.1.15 released, 0.1.16 opened.
6520 * Version 0.1.15 released, 0.1.16 opened.
6517
6521
6518 * Finally got ? and ?? to work for undefined things: now it's
6522 * Finally got ? and ?? to work for undefined things: now it's
6519 possible to type {}.get? and get information about the get method
6523 possible to type {}.get? and get information about the get method
6520 of dicts, or os.path? even if only os is defined (so technically
6524 of dicts, or os.path? even if only os is defined (so technically
6521 os.path isn't). Works at any level. For example, after import os,
6525 os.path isn't). Works at any level. For example, after import os,
6522 os?, os.path?, os.path.abspath? all work. This is great, took some
6526 os?, os.path?, os.path.abspath? all work. This is great, took some
6523 work in _ofind.
6527 work in _ofind.
6524
6528
6525 * Fixed more bugs with logging. The sanest way to do it was to add
6529 * Fixed more bugs with logging. The sanest way to do it was to add
6526 to @log a 'mode' parameter. Killed two in one shot (this mode
6530 to @log a 'mode' parameter. Killed two in one shot (this mode
6527 option was a request of Janko's). I think it's finally clean
6531 option was a request of Janko's). I think it's finally clean
6528 (famous last words).
6532 (famous last words).
6529
6533
6530 * Added a page_dumb() pager which does a decent job of paging on
6534 * Added a page_dumb() pager which does a decent job of paging on
6531 screen, if better things (like less) aren't available. One less
6535 screen, if better things (like less) aren't available. One less
6532 unix dependency (someday maybe somebody will port this to
6536 unix dependency (someday maybe somebody will port this to
6533 windows).
6537 windows).
6534
6538
6535 * Fixed problem in magic_log: would lock of logging out if log
6539 * Fixed problem in magic_log: would lock of logging out if log
6536 creation failed (because it would still think it had succeeded).
6540 creation failed (because it would still think it had succeeded).
6537
6541
6538 * Improved the page() function using curses to auto-detect screen
6542 * Improved the page() function using curses to auto-detect screen
6539 size. Now it can make a much better decision on whether to print
6543 size. Now it can make a much better decision on whether to print
6540 or page a string. Option screen_length was modified: a value 0
6544 or page a string. Option screen_length was modified: a value 0
6541 means auto-detect, and that's the default now.
6545 means auto-detect, and that's the default now.
6542
6546
6543 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6547 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6544 go out. I'll test it for a few days, then talk to Janko about
6548 go out. I'll test it for a few days, then talk to Janko about
6545 licences and announce it.
6549 licences and announce it.
6546
6550
6547 * Fixed the length of the auto-generated ---> prompt which appears
6551 * Fixed the length of the auto-generated ---> prompt which appears
6548 for auto-parens and auto-quotes. Getting this right isn't trivial,
6552 for auto-parens and auto-quotes. Getting this right isn't trivial,
6549 with all the color escapes, different prompt types and optional
6553 with all the color escapes, different prompt types and optional
6550 separators. But it seems to be working in all the combinations.
6554 separators. But it seems to be working in all the combinations.
6551
6555
6552 2001-11-26 Fernando Perez <fperez@colorado.edu>
6556 2001-11-26 Fernando Perez <fperez@colorado.edu>
6553
6557
6554 * Wrote a regexp filter to get option types from the option names
6558 * Wrote a regexp filter to get option types from the option names
6555 string. This eliminates the need to manually keep two duplicate
6559 string. This eliminates the need to manually keep two duplicate
6556 lists.
6560 lists.
6557
6561
6558 * Removed the unneeded check_option_names. Now options are handled
6562 * Removed the unneeded check_option_names. Now options are handled
6559 in a much saner manner and it's easy to visually check that things
6563 in a much saner manner and it's easy to visually check that things
6560 are ok.
6564 are ok.
6561
6565
6562 * Updated version numbers on all files I modified to carry a
6566 * Updated version numbers on all files I modified to carry a
6563 notice so Janko and Nathan have clear version markers.
6567 notice so Janko and Nathan have clear version markers.
6564
6568
6565 * Updated docstring for ultraTB with my changes. I should send
6569 * Updated docstring for ultraTB with my changes. I should send
6566 this to Nathan.
6570 this to Nathan.
6567
6571
6568 * Lots of small fixes. Ran everything through pychecker again.
6572 * Lots of small fixes. Ran everything through pychecker again.
6569
6573
6570 * Made loading of deep_reload an cmd line option. If it's not too
6574 * Made loading of deep_reload an cmd line option. If it's not too
6571 kosher, now people can just disable it. With -nodeep_reload it's
6575 kosher, now people can just disable it. With -nodeep_reload it's
6572 still available as dreload(), it just won't overwrite reload().
6576 still available as dreload(), it just won't overwrite reload().
6573
6577
6574 * Moved many options to the no| form (-opt and -noopt
6578 * Moved many options to the no| form (-opt and -noopt
6575 accepted). Cleaner.
6579 accepted). Cleaner.
6576
6580
6577 * Changed magic_log so that if called with no parameters, it uses
6581 * Changed magic_log so that if called with no parameters, it uses
6578 'rotate' mode. That way auto-generated logs aren't automatically
6582 'rotate' mode. That way auto-generated logs aren't automatically
6579 over-written. For normal logs, now a backup is made if it exists
6583 over-written. For normal logs, now a backup is made if it exists
6580 (only 1 level of backups). A new 'backup' mode was added to the
6584 (only 1 level of backups). A new 'backup' mode was added to the
6581 Logger class to support this. This was a request by Janko.
6585 Logger class to support this. This was a request by Janko.
6582
6586
6583 * Added @logoff/@logon to stop/restart an active log.
6587 * Added @logoff/@logon to stop/restart an active log.
6584
6588
6585 * Fixed a lot of bugs in log saving/replay. It was pretty
6589 * Fixed a lot of bugs in log saving/replay. It was pretty
6586 broken. Now special lines (!@,/) appear properly in the command
6590 broken. Now special lines (!@,/) appear properly in the command
6587 history after a log replay.
6591 history after a log replay.
6588
6592
6589 * Tried and failed to implement full session saving via pickle. My
6593 * Tried and failed to implement full session saving via pickle. My
6590 idea was to pickle __main__.__dict__, but modules can't be
6594 idea was to pickle __main__.__dict__, but modules can't be
6591 pickled. This would be a better alternative to replaying logs, but
6595 pickled. This would be a better alternative to replaying logs, but
6592 seems quite tricky to get to work. Changed -session to be called
6596 seems quite tricky to get to work. Changed -session to be called
6593 -logplay, which more accurately reflects what it does. And if we
6597 -logplay, which more accurately reflects what it does. And if we
6594 ever get real session saving working, -session is now available.
6598 ever get real session saving working, -session is now available.
6595
6599
6596 * Implemented color schemes for prompts also. As for tracebacks,
6600 * Implemented color schemes for prompts also. As for tracebacks,
6597 currently only NoColor and Linux are supported. But now the
6601 currently only NoColor and Linux are supported. But now the
6598 infrastructure is in place, based on a generic ColorScheme
6602 infrastructure is in place, based on a generic ColorScheme
6599 class. So writing and activating new schemes both for the prompts
6603 class. So writing and activating new schemes both for the prompts
6600 and the tracebacks should be straightforward.
6604 and the tracebacks should be straightforward.
6601
6605
6602 * Version 0.1.13 released, 0.1.14 opened.
6606 * Version 0.1.13 released, 0.1.14 opened.
6603
6607
6604 * Changed handling of options for output cache. Now counter is
6608 * Changed handling of options for output cache. Now counter is
6605 hardwired starting at 1 and one specifies the maximum number of
6609 hardwired starting at 1 and one specifies the maximum number of
6606 entries *in the outcache* (not the max prompt counter). This is
6610 entries *in the outcache* (not the max prompt counter). This is
6607 much better, since many statements won't increase the cache
6611 much better, since many statements won't increase the cache
6608 count. It also eliminated some confusing options, now there's only
6612 count. It also eliminated some confusing options, now there's only
6609 one: cache_size.
6613 one: cache_size.
6610
6614
6611 * Added 'alias' magic function and magic_alias option in the
6615 * Added 'alias' magic function and magic_alias option in the
6612 ipythonrc file. Now the user can easily define whatever names he
6616 ipythonrc file. Now the user can easily define whatever names he
6613 wants for the magic functions without having to play weird
6617 wants for the magic functions without having to play weird
6614 namespace games. This gives IPython a real shell-like feel.
6618 namespace games. This gives IPython a real shell-like feel.
6615
6619
6616 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6620 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6617 @ or not).
6621 @ or not).
6618
6622
6619 This was one of the last remaining 'visible' bugs (that I know
6623 This was one of the last remaining 'visible' bugs (that I know
6620 of). I think if I can clean up the session loading so it works
6624 of). I think if I can clean up the session loading so it works
6621 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6625 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6622 about licensing).
6626 about licensing).
6623
6627
6624 2001-11-25 Fernando Perez <fperez@colorado.edu>
6628 2001-11-25 Fernando Perez <fperez@colorado.edu>
6625
6629
6626 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6630 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6627 there's a cleaner distinction between what ? and ?? show.
6631 there's a cleaner distinction between what ? and ?? show.
6628
6632
6629 * Added screen_length option. Now the user can define his own
6633 * Added screen_length option. Now the user can define his own
6630 screen size for page() operations.
6634 screen size for page() operations.
6631
6635
6632 * Implemented magic shell-like functions with automatic code
6636 * Implemented magic shell-like functions with automatic code
6633 generation. Now adding another function is just a matter of adding
6637 generation. Now adding another function is just a matter of adding
6634 an entry to a dict, and the function is dynamically generated at
6638 an entry to a dict, and the function is dynamically generated at
6635 run-time. Python has some really cool features!
6639 run-time. Python has some really cool features!
6636
6640
6637 * Renamed many options to cleanup conventions a little. Now all
6641 * Renamed many options to cleanup conventions a little. Now all
6638 are lowercase, and only underscores where needed. Also in the code
6642 are lowercase, and only underscores where needed. Also in the code
6639 option name tables are clearer.
6643 option name tables are clearer.
6640
6644
6641 * Changed prompts a little. Now input is 'In [n]:' instead of
6645 * Changed prompts a little. Now input is 'In [n]:' instead of
6642 'In[n]:='. This allows it the numbers to be aligned with the
6646 'In[n]:='. This allows it the numbers to be aligned with the
6643 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6647 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6644 Python (it was a Mathematica thing). The '...' continuation prompt
6648 Python (it was a Mathematica thing). The '...' continuation prompt
6645 was also changed a little to align better.
6649 was also changed a little to align better.
6646
6650
6647 * Fixed bug when flushing output cache. Not all _p<n> variables
6651 * Fixed bug when flushing output cache. Not all _p<n> variables
6648 exist, so their deletion needs to be wrapped in a try:
6652 exist, so their deletion needs to be wrapped in a try:
6649
6653
6650 * Figured out how to properly use inspect.formatargspec() (it
6654 * Figured out how to properly use inspect.formatargspec() (it
6651 requires the args preceded by *). So I removed all the code from
6655 requires the args preceded by *). So I removed all the code from
6652 _get_pdef in Magic, which was just replicating that.
6656 _get_pdef in Magic, which was just replicating that.
6653
6657
6654 * Added test to prefilter to allow redefining magic function names
6658 * Added test to prefilter to allow redefining magic function names
6655 as variables. This is ok, since the @ form is always available,
6659 as variables. This is ok, since the @ form is always available,
6656 but whe should allow the user to define a variable called 'ls' if
6660 but whe should allow the user to define a variable called 'ls' if
6657 he needs it.
6661 he needs it.
6658
6662
6659 * Moved the ToDo information from README into a separate ToDo.
6663 * Moved the ToDo information from README into a separate ToDo.
6660
6664
6661 * General code cleanup and small bugfixes. I think it's close to a
6665 * General code cleanup and small bugfixes. I think it's close to a
6662 state where it can be released, obviously with a big 'beta'
6666 state where it can be released, obviously with a big 'beta'
6663 warning on it.
6667 warning on it.
6664
6668
6665 * Got the magic function split to work. Now all magics are defined
6669 * Got the magic function split to work. Now all magics are defined
6666 in a separate class. It just organizes things a bit, and now
6670 in a separate class. It just organizes things a bit, and now
6667 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6671 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6668 was too long).
6672 was too long).
6669
6673
6670 * Changed @clear to @reset to avoid potential confusions with
6674 * Changed @clear to @reset to avoid potential confusions with
6671 the shell command clear. Also renamed @cl to @clear, which does
6675 the shell command clear. Also renamed @cl to @clear, which does
6672 exactly what people expect it to from their shell experience.
6676 exactly what people expect it to from their shell experience.
6673
6677
6674 Added a check to the @reset command (since it's so
6678 Added a check to the @reset command (since it's so
6675 destructive, it's probably a good idea to ask for confirmation).
6679 destructive, it's probably a good idea to ask for confirmation).
6676 But now reset only works for full namespace resetting. Since the
6680 But now reset only works for full namespace resetting. Since the
6677 del keyword is already there for deleting a few specific
6681 del keyword is already there for deleting a few specific
6678 variables, I don't see the point of having a redundant magic
6682 variables, I don't see the point of having a redundant magic
6679 function for the same task.
6683 function for the same task.
6680
6684
6681 2001-11-24 Fernando Perez <fperez@colorado.edu>
6685 2001-11-24 Fernando Perez <fperez@colorado.edu>
6682
6686
6683 * Updated the builtin docs (esp. the ? ones).
6687 * Updated the builtin docs (esp. the ? ones).
6684
6688
6685 * Ran all the code through pychecker. Not terribly impressed with
6689 * Ran all the code through pychecker. Not terribly impressed with
6686 it: lots of spurious warnings and didn't really find anything of
6690 it: lots of spurious warnings and didn't really find anything of
6687 substance (just a few modules being imported and not used).
6691 substance (just a few modules being imported and not used).
6688
6692
6689 * Implemented the new ultraTB functionality into IPython. New
6693 * Implemented the new ultraTB functionality into IPython. New
6690 option: xcolors. This chooses color scheme. xmode now only selects
6694 option: xcolors. This chooses color scheme. xmode now only selects
6691 between Plain and Verbose. Better orthogonality.
6695 between Plain and Verbose. Better orthogonality.
6692
6696
6693 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6697 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6694 mode and color scheme for the exception handlers. Now it's
6698 mode and color scheme for the exception handlers. Now it's
6695 possible to have the verbose traceback with no coloring.
6699 possible to have the verbose traceback with no coloring.
6696
6700
6697 2001-11-23 Fernando Perez <fperez@colorado.edu>
6701 2001-11-23 Fernando Perez <fperez@colorado.edu>
6698
6702
6699 * Version 0.1.12 released, 0.1.13 opened.
6703 * Version 0.1.12 released, 0.1.13 opened.
6700
6704
6701 * Removed option to set auto-quote and auto-paren escapes by
6705 * Removed option to set auto-quote and auto-paren escapes by
6702 user. The chances of breaking valid syntax are just too high. If
6706 user. The chances of breaking valid syntax are just too high. If
6703 someone *really* wants, they can always dig into the code.
6707 someone *really* wants, they can always dig into the code.
6704
6708
6705 * Made prompt separators configurable.
6709 * Made prompt separators configurable.
6706
6710
6707 2001-11-22 Fernando Perez <fperez@colorado.edu>
6711 2001-11-22 Fernando Perez <fperez@colorado.edu>
6708
6712
6709 * Small bugfixes in many places.
6713 * Small bugfixes in many places.
6710
6714
6711 * Removed the MyCompleter class from ipplib. It seemed redundant
6715 * Removed the MyCompleter class from ipplib. It seemed redundant
6712 with the C-p,C-n history search functionality. Less code to
6716 with the C-p,C-n history search functionality. Less code to
6713 maintain.
6717 maintain.
6714
6718
6715 * Moved all the original ipython.py code into ipythonlib.py. Right
6719 * Moved all the original ipython.py code into ipythonlib.py. Right
6716 now it's just one big dump into a function called make_IPython, so
6720 now it's just one big dump into a function called make_IPython, so
6717 no real modularity has been gained. But at least it makes the
6721 no real modularity has been gained. But at least it makes the
6718 wrapper script tiny, and since ipythonlib is a module, it gets
6722 wrapper script tiny, and since ipythonlib is a module, it gets
6719 compiled and startup is much faster.
6723 compiled and startup is much faster.
6720
6724
6721 This is a reasobably 'deep' change, so we should test it for a
6725 This is a reasobably 'deep' change, so we should test it for a
6722 while without messing too much more with the code.
6726 while without messing too much more with the code.
6723
6727
6724 2001-11-21 Fernando Perez <fperez@colorado.edu>
6728 2001-11-21 Fernando Perez <fperez@colorado.edu>
6725
6729
6726 * Version 0.1.11 released, 0.1.12 opened for further work.
6730 * Version 0.1.11 released, 0.1.12 opened for further work.
6727
6731
6728 * Removed dependency on Itpl. It was only needed in one place. It
6732 * Removed dependency on Itpl. It was only needed in one place. It
6729 would be nice if this became part of python, though. It makes life
6733 would be nice if this became part of python, though. It makes life
6730 *a lot* easier in some cases.
6734 *a lot* easier in some cases.
6731
6735
6732 * Simplified the prefilter code a bit. Now all handlers are
6736 * Simplified the prefilter code a bit. Now all handlers are
6733 expected to explicitly return a value (at least a blank string).
6737 expected to explicitly return a value (at least a blank string).
6734
6738
6735 * Heavy edits in ipplib. Removed the help system altogether. Now
6739 * Heavy edits in ipplib. Removed the help system altogether. Now
6736 obj?/?? is used for inspecting objects, a magic @doc prints
6740 obj?/?? is used for inspecting objects, a magic @doc prints
6737 docstrings, and full-blown Python help is accessed via the 'help'
6741 docstrings, and full-blown Python help is accessed via the 'help'
6738 keyword. This cleans up a lot of code (less to maintain) and does
6742 keyword. This cleans up a lot of code (less to maintain) and does
6739 the job. Since 'help' is now a standard Python component, might as
6743 the job. Since 'help' is now a standard Python component, might as
6740 well use it and remove duplicate functionality.
6744 well use it and remove duplicate functionality.
6741
6745
6742 Also removed the option to use ipplib as a standalone program. By
6746 Also removed the option to use ipplib as a standalone program. By
6743 now it's too dependent on other parts of IPython to function alone.
6747 now it's too dependent on other parts of IPython to function alone.
6744
6748
6745 * Fixed bug in genutils.pager. It would crash if the pager was
6749 * Fixed bug in genutils.pager. It would crash if the pager was
6746 exited immediately after opening (broken pipe).
6750 exited immediately after opening (broken pipe).
6747
6751
6748 * Trimmed down the VerboseTB reporting a little. The header is
6752 * Trimmed down the VerboseTB reporting a little. The header is
6749 much shorter now and the repeated exception arguments at the end
6753 much shorter now and the repeated exception arguments at the end
6750 have been removed. For interactive use the old header seemed a bit
6754 have been removed. For interactive use the old header seemed a bit
6751 excessive.
6755 excessive.
6752
6756
6753 * Fixed small bug in output of @whos for variables with multi-word
6757 * Fixed small bug in output of @whos for variables with multi-word
6754 types (only first word was displayed).
6758 types (only first word was displayed).
6755
6759
6756 2001-11-17 Fernando Perez <fperez@colorado.edu>
6760 2001-11-17 Fernando Perez <fperez@colorado.edu>
6757
6761
6758 * Version 0.1.10 released, 0.1.11 opened for further work.
6762 * Version 0.1.10 released, 0.1.11 opened for further work.
6759
6763
6760 * Modified dirs and friends. dirs now *returns* the stack (not
6764 * Modified dirs and friends. dirs now *returns* the stack (not
6761 prints), so one can manipulate it as a variable. Convenient to
6765 prints), so one can manipulate it as a variable. Convenient to
6762 travel along many directories.
6766 travel along many directories.
6763
6767
6764 * Fixed bug in magic_pdef: would only work with functions with
6768 * Fixed bug in magic_pdef: would only work with functions with
6765 arguments with default values.
6769 arguments with default values.
6766
6770
6767 2001-11-14 Fernando Perez <fperez@colorado.edu>
6771 2001-11-14 Fernando Perez <fperez@colorado.edu>
6768
6772
6769 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6773 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6770 example with IPython. Various other minor fixes and cleanups.
6774 example with IPython. Various other minor fixes and cleanups.
6771
6775
6772 * Version 0.1.9 released, 0.1.10 opened for further work.
6776 * Version 0.1.9 released, 0.1.10 opened for further work.
6773
6777
6774 * Added sys.path to the list of directories searched in the
6778 * Added sys.path to the list of directories searched in the
6775 execfile= option. It used to be the current directory and the
6779 execfile= option. It used to be the current directory and the
6776 user's IPYTHONDIR only.
6780 user's IPYTHONDIR only.
6777
6781
6778 2001-11-13 Fernando Perez <fperez@colorado.edu>
6782 2001-11-13 Fernando Perez <fperez@colorado.edu>
6779
6783
6780 * Reinstated the raw_input/prefilter separation that Janko had
6784 * Reinstated the raw_input/prefilter separation that Janko had
6781 initially. This gives a more convenient setup for extending the
6785 initially. This gives a more convenient setup for extending the
6782 pre-processor from the outside: raw_input always gets a string,
6786 pre-processor from the outside: raw_input always gets a string,
6783 and prefilter has to process it. We can then redefine prefilter
6787 and prefilter has to process it. We can then redefine prefilter
6784 from the outside and implement extensions for special
6788 from the outside and implement extensions for special
6785 purposes.
6789 purposes.
6786
6790
6787 Today I got one for inputting PhysicalQuantity objects
6791 Today I got one for inputting PhysicalQuantity objects
6788 (from Scientific) without needing any function calls at
6792 (from Scientific) without needing any function calls at
6789 all. Extremely convenient, and it's all done as a user-level
6793 all. Extremely convenient, and it's all done as a user-level
6790 extension (no IPython code was touched). Now instead of:
6794 extension (no IPython code was touched). Now instead of:
6791 a = PhysicalQuantity(4.2,'m/s**2')
6795 a = PhysicalQuantity(4.2,'m/s**2')
6792 one can simply say
6796 one can simply say
6793 a = 4.2 m/s**2
6797 a = 4.2 m/s**2
6794 or even
6798 or even
6795 a = 4.2 m/s^2
6799 a = 4.2 m/s^2
6796
6800
6797 I use this, but it's also a proof of concept: IPython really is
6801 I use this, but it's also a proof of concept: IPython really is
6798 fully user-extensible, even at the level of the parsing of the
6802 fully user-extensible, even at the level of the parsing of the
6799 command line. It's not trivial, but it's perfectly doable.
6803 command line. It's not trivial, but it's perfectly doable.
6800
6804
6801 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6805 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6802 the problem of modules being loaded in the inverse order in which
6806 the problem of modules being loaded in the inverse order in which
6803 they were defined in
6807 they were defined in
6804
6808
6805 * Version 0.1.8 released, 0.1.9 opened for further work.
6809 * Version 0.1.8 released, 0.1.9 opened for further work.
6806
6810
6807 * Added magics pdef, source and file. They respectively show the
6811 * Added magics pdef, source and file. They respectively show the
6808 definition line ('prototype' in C), source code and full python
6812 definition line ('prototype' in C), source code and full python
6809 file for any callable object. The object inspector oinfo uses
6813 file for any callable object. The object inspector oinfo uses
6810 these to show the same information.
6814 these to show the same information.
6811
6815
6812 * Version 0.1.7 released, 0.1.8 opened for further work.
6816 * Version 0.1.7 released, 0.1.8 opened for further work.
6813
6817
6814 * Separated all the magic functions into a class called Magic. The
6818 * Separated all the magic functions into a class called Magic. The
6815 InteractiveShell class was becoming too big for Xemacs to handle
6819 InteractiveShell class was becoming too big for Xemacs to handle
6816 (de-indenting a line would lock it up for 10 seconds while it
6820 (de-indenting a line would lock it up for 10 seconds while it
6817 backtracked on the whole class!)
6821 backtracked on the whole class!)
6818
6822
6819 FIXME: didn't work. It can be done, but right now namespaces are
6823 FIXME: didn't work. It can be done, but right now namespaces are
6820 all messed up. Do it later (reverted it for now, so at least
6824 all messed up. Do it later (reverted it for now, so at least
6821 everything works as before).
6825 everything works as before).
6822
6826
6823 * Got the object introspection system (magic_oinfo) working! I
6827 * Got the object introspection system (magic_oinfo) working! I
6824 think this is pretty much ready for release to Janko, so he can
6828 think this is pretty much ready for release to Janko, so he can
6825 test it for a while and then announce it. Pretty much 100% of what
6829 test it for a while and then announce it. Pretty much 100% of what
6826 I wanted for the 'phase 1' release is ready. Happy, tired.
6830 I wanted for the 'phase 1' release is ready. Happy, tired.
6827
6831
6828 2001-11-12 Fernando Perez <fperez@colorado.edu>
6832 2001-11-12 Fernando Perez <fperez@colorado.edu>
6829
6833
6830 * Version 0.1.6 released, 0.1.7 opened for further work.
6834 * Version 0.1.6 released, 0.1.7 opened for further work.
6831
6835
6832 * Fixed bug in printing: it used to test for truth before
6836 * Fixed bug in printing: it used to test for truth before
6833 printing, so 0 wouldn't print. Now checks for None.
6837 printing, so 0 wouldn't print. Now checks for None.
6834
6838
6835 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6839 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6836 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6840 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6837 reaches by hand into the outputcache. Think of a better way to do
6841 reaches by hand into the outputcache. Think of a better way to do
6838 this later.
6842 this later.
6839
6843
6840 * Various small fixes thanks to Nathan's comments.
6844 * Various small fixes thanks to Nathan's comments.
6841
6845
6842 * Changed magic_pprint to magic_Pprint. This way it doesn't
6846 * Changed magic_pprint to magic_Pprint. This way it doesn't
6843 collide with pprint() and the name is consistent with the command
6847 collide with pprint() and the name is consistent with the command
6844 line option.
6848 line option.
6845
6849
6846 * Changed prompt counter behavior to be fully like
6850 * Changed prompt counter behavior to be fully like
6847 Mathematica's. That is, even input that doesn't return a result
6851 Mathematica's. That is, even input that doesn't return a result
6848 raises the prompt counter. The old behavior was kind of confusing
6852 raises the prompt counter. The old behavior was kind of confusing
6849 (getting the same prompt number several times if the operation
6853 (getting the same prompt number several times if the operation
6850 didn't return a result).
6854 didn't return a result).
6851
6855
6852 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6856 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6853
6857
6854 * Fixed -Classic mode (wasn't working anymore).
6858 * Fixed -Classic mode (wasn't working anymore).
6855
6859
6856 * Added colored prompts using Nathan's new code. Colors are
6860 * Added colored prompts using Nathan's new code. Colors are
6857 currently hardwired, they can be user-configurable. For
6861 currently hardwired, they can be user-configurable. For
6858 developers, they can be chosen in file ipythonlib.py, at the
6862 developers, they can be chosen in file ipythonlib.py, at the
6859 beginning of the CachedOutput class def.
6863 beginning of the CachedOutput class def.
6860
6864
6861 2001-11-11 Fernando Perez <fperez@colorado.edu>
6865 2001-11-11 Fernando Perez <fperez@colorado.edu>
6862
6866
6863 * Version 0.1.5 released, 0.1.6 opened for further work.
6867 * Version 0.1.5 released, 0.1.6 opened for further work.
6864
6868
6865 * Changed magic_env to *return* the environment as a dict (not to
6869 * Changed magic_env to *return* the environment as a dict (not to
6866 print it). This way it prints, but it can also be processed.
6870 print it). This way it prints, but it can also be processed.
6867
6871
6868 * Added Verbose exception reporting to interactive
6872 * Added Verbose exception reporting to interactive
6869 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6873 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6870 traceback. Had to make some changes to the ultraTB file. This is
6874 traceback. Had to make some changes to the ultraTB file. This is
6871 probably the last 'big' thing in my mental todo list. This ties
6875 probably the last 'big' thing in my mental todo list. This ties
6872 in with the next entry:
6876 in with the next entry:
6873
6877
6874 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6878 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6875 has to specify is Plain, Color or Verbose for all exception
6879 has to specify is Plain, Color or Verbose for all exception
6876 handling.
6880 handling.
6877
6881
6878 * Removed ShellServices option. All this can really be done via
6882 * Removed ShellServices option. All this can really be done via
6879 the magic system. It's easier to extend, cleaner and has automatic
6883 the magic system. It's easier to extend, cleaner and has automatic
6880 namespace protection and documentation.
6884 namespace protection and documentation.
6881
6885
6882 2001-11-09 Fernando Perez <fperez@colorado.edu>
6886 2001-11-09 Fernando Perez <fperez@colorado.edu>
6883
6887
6884 * Fixed bug in output cache flushing (missing parameter to
6888 * Fixed bug in output cache flushing (missing parameter to
6885 __init__). Other small bugs fixed (found using pychecker).
6889 __init__). Other small bugs fixed (found using pychecker).
6886
6890
6887 * Version 0.1.4 opened for bugfixing.
6891 * Version 0.1.4 opened for bugfixing.
6888
6892
6889 2001-11-07 Fernando Perez <fperez@colorado.edu>
6893 2001-11-07 Fernando Perez <fperez@colorado.edu>
6890
6894
6891 * Version 0.1.3 released, mainly because of the raw_input bug.
6895 * Version 0.1.3 released, mainly because of the raw_input bug.
6892
6896
6893 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6897 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6894 and when testing for whether things were callable, a call could
6898 and when testing for whether things were callable, a call could
6895 actually be made to certain functions. They would get called again
6899 actually be made to certain functions. They would get called again
6896 once 'really' executed, with a resulting double call. A disaster
6900 once 'really' executed, with a resulting double call. A disaster
6897 in many cases (list.reverse() would never work!).
6901 in many cases (list.reverse() would never work!).
6898
6902
6899 * Removed prefilter() function, moved its code to raw_input (which
6903 * Removed prefilter() function, moved its code to raw_input (which
6900 after all was just a near-empty caller for prefilter). This saves
6904 after all was just a near-empty caller for prefilter). This saves
6901 a function call on every prompt, and simplifies the class a tiny bit.
6905 a function call on every prompt, and simplifies the class a tiny bit.
6902
6906
6903 * Fix _ip to __ip name in magic example file.
6907 * Fix _ip to __ip name in magic example file.
6904
6908
6905 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6909 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6906 work with non-gnu versions of tar.
6910 work with non-gnu versions of tar.
6907
6911
6908 2001-11-06 Fernando Perez <fperez@colorado.edu>
6912 2001-11-06 Fernando Perez <fperez@colorado.edu>
6909
6913
6910 * Version 0.1.2. Just to keep track of the recent changes.
6914 * Version 0.1.2. Just to keep track of the recent changes.
6911
6915
6912 * Fixed nasty bug in output prompt routine. It used to check 'if
6916 * Fixed nasty bug in output prompt routine. It used to check 'if
6913 arg != None...'. Problem is, this fails if arg implements a
6917 arg != None...'. Problem is, this fails if arg implements a
6914 special comparison (__cmp__) which disallows comparing to
6918 special comparison (__cmp__) which disallows comparing to
6915 None. Found it when trying to use the PhysicalQuantity module from
6919 None. Found it when trying to use the PhysicalQuantity module from
6916 ScientificPython.
6920 ScientificPython.
6917
6921
6918 2001-11-05 Fernando Perez <fperez@colorado.edu>
6922 2001-11-05 Fernando Perez <fperez@colorado.edu>
6919
6923
6920 * Also added dirs. Now the pushd/popd/dirs family functions
6924 * Also added dirs. Now the pushd/popd/dirs family functions
6921 basically like the shell, with the added convenience of going home
6925 basically like the shell, with the added convenience of going home
6922 when called with no args.
6926 when called with no args.
6923
6927
6924 * pushd/popd slightly modified to mimic shell behavior more
6928 * pushd/popd slightly modified to mimic shell behavior more
6925 closely.
6929 closely.
6926
6930
6927 * Added env,pushd,popd from ShellServices as magic functions. I
6931 * Added env,pushd,popd from ShellServices as magic functions. I
6928 think the cleanest will be to port all desired functions from
6932 think the cleanest will be to port all desired functions from
6929 ShellServices as magics and remove ShellServices altogether. This
6933 ShellServices as magics and remove ShellServices altogether. This
6930 will provide a single, clean way of adding functionality
6934 will provide a single, clean way of adding functionality
6931 (shell-type or otherwise) to IP.
6935 (shell-type or otherwise) to IP.
6932
6936
6933 2001-11-04 Fernando Perez <fperez@colorado.edu>
6937 2001-11-04 Fernando Perez <fperez@colorado.edu>
6934
6938
6935 * Added .ipython/ directory to sys.path. This way users can keep
6939 * Added .ipython/ directory to sys.path. This way users can keep
6936 customizations there and access them via import.
6940 customizations there and access them via import.
6937
6941
6938 2001-11-03 Fernando Perez <fperez@colorado.edu>
6942 2001-11-03 Fernando Perez <fperez@colorado.edu>
6939
6943
6940 * Opened version 0.1.1 for new changes.
6944 * Opened version 0.1.1 for new changes.
6941
6945
6942 * Changed version number to 0.1.0: first 'public' release, sent to
6946 * Changed version number to 0.1.0: first 'public' release, sent to
6943 Nathan and Janko.
6947 Nathan and Janko.
6944
6948
6945 * Lots of small fixes and tweaks.
6949 * Lots of small fixes and tweaks.
6946
6950
6947 * Minor changes to whos format. Now strings are shown, snipped if
6951 * Minor changes to whos format. Now strings are shown, snipped if
6948 too long.
6952 too long.
6949
6953
6950 * Changed ShellServices to work on __main__ so they show up in @who
6954 * Changed ShellServices to work on __main__ so they show up in @who
6951
6955
6952 * Help also works with ? at the end of a line:
6956 * Help also works with ? at the end of a line:
6953 ?sin and sin?
6957 ?sin and sin?
6954 both produce the same effect. This is nice, as often I use the
6958 both produce the same effect. This is nice, as often I use the
6955 tab-complete to find the name of a method, but I used to then have
6959 tab-complete to find the name of a method, but I used to then have
6956 to go to the beginning of the line to put a ? if I wanted more
6960 to go to the beginning of the line to put a ? if I wanted more
6957 info. Now I can just add the ? and hit return. Convenient.
6961 info. Now I can just add the ? and hit return. Convenient.
6958
6962
6959 2001-11-02 Fernando Perez <fperez@colorado.edu>
6963 2001-11-02 Fernando Perez <fperez@colorado.edu>
6960
6964
6961 * Python version check (>=2.1) added.
6965 * Python version check (>=2.1) added.
6962
6966
6963 * Added LazyPython documentation. At this point the docs are quite
6967 * Added LazyPython documentation. At this point the docs are quite
6964 a mess. A cleanup is in order.
6968 a mess. A cleanup is in order.
6965
6969
6966 * Auto-installer created. For some bizarre reason, the zipfiles
6970 * Auto-installer created. For some bizarre reason, the zipfiles
6967 module isn't working on my system. So I made a tar version
6971 module isn't working on my system. So I made a tar version
6968 (hopefully the command line options in various systems won't kill
6972 (hopefully the command line options in various systems won't kill
6969 me).
6973 me).
6970
6974
6971 * Fixes to Struct in genutils. Now all dictionary-like methods are
6975 * Fixes to Struct in genutils. Now all dictionary-like methods are
6972 protected (reasonably).
6976 protected (reasonably).
6973
6977
6974 * Added pager function to genutils and changed ? to print usage
6978 * Added pager function to genutils and changed ? to print usage
6975 note through it (it was too long).
6979 note through it (it was too long).
6976
6980
6977 * Added the LazyPython functionality. Works great! I changed the
6981 * Added the LazyPython functionality. Works great! I changed the
6978 auto-quote escape to ';', it's on home row and next to '. But
6982 auto-quote escape to ';', it's on home row and next to '. But
6979 both auto-quote and auto-paren (still /) escapes are command-line
6983 both auto-quote and auto-paren (still /) escapes are command-line
6980 parameters.
6984 parameters.
6981
6985
6982
6986
6983 2001-11-01 Fernando Perez <fperez@colorado.edu>
6987 2001-11-01 Fernando Perez <fperez@colorado.edu>
6984
6988
6985 * Version changed to 0.0.7. Fairly large change: configuration now
6989 * Version changed to 0.0.7. Fairly large change: configuration now
6986 is all stored in a directory, by default .ipython. There, all
6990 is all stored in a directory, by default .ipython. There, all
6987 config files have normal looking names (not .names)
6991 config files have normal looking names (not .names)
6988
6992
6989 * Version 0.0.6 Released first to Lucas and Archie as a test
6993 * Version 0.0.6 Released first to Lucas and Archie as a test
6990 run. Since it's the first 'semi-public' release, change version to
6994 run. Since it's the first 'semi-public' release, change version to
6991 > 0.0.6 for any changes now.
6995 > 0.0.6 for any changes now.
6992
6996
6993 * Stuff I had put in the ipplib.py changelog:
6997 * Stuff I had put in the ipplib.py changelog:
6994
6998
6995 Changes to InteractiveShell:
6999 Changes to InteractiveShell:
6996
7000
6997 - Made the usage message a parameter.
7001 - Made the usage message a parameter.
6998
7002
6999 - Require the name of the shell variable to be given. It's a bit
7003 - Require the name of the shell variable to be given. It's a bit
7000 of a hack, but allows the name 'shell' not to be hardwired in the
7004 of a hack, but allows the name 'shell' not to be hardwired in the
7001 magic (@) handler, which is problematic b/c it requires
7005 magic (@) handler, which is problematic b/c it requires
7002 polluting the global namespace with 'shell'. This in turn is
7006 polluting the global namespace with 'shell'. This in turn is
7003 fragile: if a user redefines a variable called shell, things
7007 fragile: if a user redefines a variable called shell, things
7004 break.
7008 break.
7005
7009
7006 - magic @: all functions available through @ need to be defined
7010 - magic @: all functions available through @ need to be defined
7007 as magic_<name>, even though they can be called simply as
7011 as magic_<name>, even though they can be called simply as
7008 @<name>. This allows the special command @magic to gather
7012 @<name>. This allows the special command @magic to gather
7009 information automatically about all existing magic functions,
7013 information automatically about all existing magic functions,
7010 even if they are run-time user extensions, by parsing the shell
7014 even if they are run-time user extensions, by parsing the shell
7011 instance __dict__ looking for special magic_ names.
7015 instance __dict__ looking for special magic_ names.
7012
7016
7013 - mainloop: added *two* local namespace parameters. This allows
7017 - mainloop: added *two* local namespace parameters. This allows
7014 the class to differentiate between parameters which were there
7018 the class to differentiate between parameters which were there
7015 before and after command line initialization was processed. This
7019 before and after command line initialization was processed. This
7016 way, later @who can show things loaded at startup by the
7020 way, later @who can show things loaded at startup by the
7017 user. This trick was necessary to make session saving/reloading
7021 user. This trick was necessary to make session saving/reloading
7018 really work: ideally after saving/exiting/reloading a session,
7022 really work: ideally after saving/exiting/reloading a session,
7019 *everything* should look the same, including the output of @who. I
7023 *everything* should look the same, including the output of @who. I
7020 was only able to make this work with this double namespace
7024 was only able to make this work with this double namespace
7021 trick.
7025 trick.
7022
7026
7023 - added a header to the logfile which allows (almost) full
7027 - added a header to the logfile which allows (almost) full
7024 session restoring.
7028 session restoring.
7025
7029
7026 - prepend lines beginning with @ or !, with a and log
7030 - prepend lines beginning with @ or !, with a and log
7027 them. Why? !lines: may be useful to know what you did @lines:
7031 them. Why? !lines: may be useful to know what you did @lines:
7028 they may affect session state. So when restoring a session, at
7032 they may affect session state. So when restoring a session, at
7029 least inform the user of their presence. I couldn't quite get
7033 least inform the user of their presence. I couldn't quite get
7030 them to properly re-execute, but at least the user is warned.
7034 them to properly re-execute, but at least the user is warned.
7031
7035
7032 * Started ChangeLog.
7036 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now