##// END OF EJS Templates
- Small fixes and updates to 'foo?'.
fperez -
Show More
@@ -1,555 +1,565 b''
1 # -*- coding: utf-8 -*-
1 # -*- coding: utf-8 -*-
2 """Tools for inspecting Python objects.
2 """Tools for inspecting Python objects.
3
3
4 Uses syntax highlighting for presenting the various information elements.
4 Uses syntax highlighting for presenting the various information elements.
5
5
6 Similar in spirit to the inspect module, but all calls take a name argument to
6 Similar in spirit to the inspect module, but all calls take a name argument to
7 reference the name under which an object is being read.
7 reference the name under which an object is being read.
8
8
9 $Id: OInspect.py 2480 2007-07-06 19:33:43Z fperez $
9 $Id: OInspect.py 2558 2007-07-25 19:54:28Z fperez $
10 """
10 """
11
11
12 #*****************************************************************************
12 #*****************************************************************************
13 # Copyright (C) 2001-2004 Fernando Perez <fperez@colorado.edu>
13 # Copyright (C) 2001-2004 Fernando Perez <fperez@colorado.edu>
14 #
14 #
15 # Distributed under the terms of the BSD License. The full license is in
15 # Distributed under the terms of the BSD License. The full license is in
16 # the file COPYING, distributed as part of this software.
16 # the file COPYING, distributed as part of this software.
17 #*****************************************************************************
17 #*****************************************************************************
18
18
19 from IPython import Release
19 from IPython import Release
20 __author__ = '%s <%s>' % Release.authors['Fernando']
20 __author__ = '%s <%s>' % Release.authors['Fernando']
21 __license__ = Release.license
21 __license__ = Release.license
22
22
23 __all__ = ['Inspector','InspectColors']
23 __all__ = ['Inspector','InspectColors']
24
24
25 # stdlib modules
25 # stdlib modules
26 import __builtin__
26 import __builtin__
27 import inspect
27 import inspect
28 import linecache
28 import linecache
29 import string
29 import string
30 import StringIO
30 import StringIO
31 import types
31 import types
32 import os
32 import os
33 import sys
33 import sys
34 # IPython's own
34 # IPython's own
35 from IPython import PyColorize
35 from IPython import PyColorize
36 from IPython.genutils import page,indent,Term,mkdict
36 from IPython.genutils import page,indent,Term,mkdict
37 from IPython.Itpl import itpl
37 from IPython.Itpl import itpl
38 from IPython.wildcard import list_namespace
38 from IPython.wildcard import list_namespace
39 from IPython.ColorANSI import *
39 from IPython.ColorANSI import *
40
40
41 #****************************************************************************
41 #****************************************************************************
42 # HACK!!! This is a crude fix for bugs in python 2.3's inspect module. We
42 # HACK!!! This is a crude fix for bugs in python 2.3's inspect module. We
43 # simply monkeypatch inspect with code copied from python 2.4.
43 # simply monkeypatch inspect with code copied from python 2.4.
44 if sys.version_info[:2] == (2,3):
44 if sys.version_info[:2] == (2,3):
45 from inspect import ismodule, getabsfile, modulesbyfile
45 from inspect import ismodule, getabsfile, modulesbyfile
46 def getmodule(object):
46 def getmodule(object):
47 """Return the module an object was defined in, or None if not found."""
47 """Return the module an object was defined in, or None if not found."""
48 if ismodule(object):
48 if ismodule(object):
49 return object
49 return object
50 if hasattr(object, '__module__'):
50 if hasattr(object, '__module__'):
51 return sys.modules.get(object.__module__)
51 return sys.modules.get(object.__module__)
52 try:
52 try:
53 file = getabsfile(object)
53 file = getabsfile(object)
54 except TypeError:
54 except TypeError:
55 return None
55 return None
56 if file in modulesbyfile:
56 if file in modulesbyfile:
57 return sys.modules.get(modulesbyfile[file])
57 return sys.modules.get(modulesbyfile[file])
58 for module in sys.modules.values():
58 for module in sys.modules.values():
59 if hasattr(module, '__file__'):
59 if hasattr(module, '__file__'):
60 modulesbyfile[
60 modulesbyfile[
61 os.path.realpath(
61 os.path.realpath(
62 getabsfile(module))] = module.__name__
62 getabsfile(module))] = module.__name__
63 if file in modulesbyfile:
63 if file in modulesbyfile:
64 return sys.modules.get(modulesbyfile[file])
64 return sys.modules.get(modulesbyfile[file])
65 main = sys.modules['__main__']
65 main = sys.modules['__main__']
66 if not hasattr(object, '__name__'):
66 if not hasattr(object, '__name__'):
67 return None
67 return None
68 if hasattr(main, object.__name__):
68 if hasattr(main, object.__name__):
69 mainobject = getattr(main, object.__name__)
69 mainobject = getattr(main, object.__name__)
70 if mainobject is object:
70 if mainobject is object:
71 return main
71 return main
72 builtin = sys.modules['__builtin__']
72 builtin = sys.modules['__builtin__']
73 if hasattr(builtin, object.__name__):
73 if hasattr(builtin, object.__name__):
74 builtinobject = getattr(builtin, object.__name__)
74 builtinobject = getattr(builtin, object.__name__)
75 if builtinobject is object:
75 if builtinobject is object:
76 return builtin
76 return builtin
77
77
78 inspect.getmodule = getmodule
78 inspect.getmodule = getmodule
79
79
80 #****************************************************************************
80 #****************************************************************************
81 # Builtin color schemes
81 # Builtin color schemes
82
82
83 Colors = TermColors # just a shorthand
83 Colors = TermColors # just a shorthand
84
84
85 # Build a few color schemes
85 # Build a few color schemes
86 NoColor = ColorScheme(
86 NoColor = ColorScheme(
87 'NoColor',{
87 'NoColor',{
88 'header' : Colors.NoColor,
88 'header' : Colors.NoColor,
89 'normal' : Colors.NoColor # color off (usu. Colors.Normal)
89 'normal' : Colors.NoColor # color off (usu. Colors.Normal)
90 } )
90 } )
91
91
92 LinuxColors = ColorScheme(
92 LinuxColors = ColorScheme(
93 'Linux',{
93 'Linux',{
94 'header' : Colors.LightRed,
94 'header' : Colors.LightRed,
95 'normal' : Colors.Normal # color off (usu. Colors.Normal)
95 'normal' : Colors.Normal # color off (usu. Colors.Normal)
96 } )
96 } )
97
97
98 LightBGColors = ColorScheme(
98 LightBGColors = ColorScheme(
99 'LightBG',{
99 'LightBG',{
100 'header' : Colors.Red,
100 'header' : Colors.Red,
101 'normal' : Colors.Normal # color off (usu. Colors.Normal)
101 'normal' : Colors.Normal # color off (usu. Colors.Normal)
102 } )
102 } )
103
103
104 # Build table of color schemes (needed by the parser)
104 # Build table of color schemes (needed by the parser)
105 InspectColors = ColorSchemeTable([NoColor,LinuxColors,LightBGColors],
105 InspectColors = ColorSchemeTable([NoColor,LinuxColors,LightBGColors],
106 'Linux')
106 'Linux')
107
107
108 #****************************************************************************
108 #****************************************************************************
109 # Auxiliary functions
109 # Auxiliary functions
110 def getdoc(obj):
110 def getdoc(obj):
111 """Stable wrapper around inspect.getdoc.
111 """Stable wrapper around inspect.getdoc.
112
112
113 This can't crash because of attribute problems.
113 This can't crash because of attribute problems.
114
114
115 It also attempts to call a getdoc() method on the given object. This
115 It also attempts to call a getdoc() method on the given object. This
116 allows objects which provide their docstrings via non-standard mechanisms
116 allows objects which provide their docstrings via non-standard mechanisms
117 (like Pyro proxies) to still be inspected by ipython's ? system."""
117 (like Pyro proxies) to still be inspected by ipython's ? system."""
118
118
119 ds = None # default return value
119 ds = None # default return value
120 try:
120 try:
121 ds = inspect.getdoc(obj)
121 ds = inspect.getdoc(obj)
122 except:
122 except:
123 # Harden against an inspect failure, which can occur with
123 # Harden against an inspect failure, which can occur with
124 # SWIG-wrapped extensions.
124 # SWIG-wrapped extensions.
125 pass
125 pass
126 # Allow objects to offer customized documentation via a getdoc method:
126 # Allow objects to offer customized documentation via a getdoc method:
127 try:
127 try:
128 ds2 = obj.getdoc()
128 ds2 = obj.getdoc()
129 except:
129 except:
130 pass
130 pass
131 else:
131 else:
132 # if we get extra info, we add it to the normal docstring.
132 # if we get extra info, we add it to the normal docstring.
133 if ds is None:
133 if ds is None:
134 ds = ds2
134 ds = ds2
135 else:
135 else:
136 ds = '%s\n%s' % (ds,ds2)
136 ds = '%s\n%s' % (ds,ds2)
137 return ds
137 return ds
138
138
139 def getsource(obj,is_binary=False):
139 def getsource(obj,is_binary=False):
140 """Wrapper around inspect.getsource.
140 """Wrapper around inspect.getsource.
141
141
142 This can be modified by other projects to provide customized source
142 This can be modified by other projects to provide customized source
143 extraction.
143 extraction.
144
144
145 Inputs:
145 Inputs:
146
146
147 - obj: an object whose source code we will attempt to extract.
147 - obj: an object whose source code we will attempt to extract.
148
148
149 Optional inputs:
149 Optional inputs:
150
150
151 - is_binary: whether the object is known to come from a binary source.
151 - is_binary: whether the object is known to come from a binary source.
152 This implementation will skip returning any output for binary objects, but
152 This implementation will skip returning any output for binary objects, but
153 custom extractors may know how to meaningfully process them."""
153 custom extractors may know how to meaningfully process them."""
154
154
155 if is_binary:
155 if is_binary:
156 return None
156 return None
157 else:
157 else:
158 return inspect.getsource(obj)
158 return inspect.getsource(obj)
159
159
160 #****************************************************************************
160 #****************************************************************************
161 # Class definitions
161 # Class definitions
162
162
163 class myStringIO(StringIO.StringIO):
163 class myStringIO(StringIO.StringIO):
164 """Adds a writeln method to normal StringIO."""
164 """Adds a writeln method to normal StringIO."""
165 def writeln(self,*arg,**kw):
165 def writeln(self,*arg,**kw):
166 """Does a write() and then a write('\n')"""
166 """Does a write() and then a write('\n')"""
167 self.write(*arg,**kw)
167 self.write(*arg,**kw)
168 self.write('\n')
168 self.write('\n')
169
169
170 class Inspector:
170 class Inspector:
171 def __init__(self,color_table,code_color_table,scheme,
171 def __init__(self,color_table,code_color_table,scheme,
172 str_detail_level=0):
172 str_detail_level=0):
173 self.color_table = color_table
173 self.color_table = color_table
174 self.parser = PyColorize.Parser(code_color_table,out='str')
174 self.parser = PyColorize.Parser(code_color_table,out='str')
175 self.format = self.parser.format
175 self.format = self.parser.format
176 self.str_detail_level = str_detail_level
176 self.str_detail_level = str_detail_level
177 self.set_active_scheme(scheme)
177 self.set_active_scheme(scheme)
178
178
179 def __getargspec(self,obj):
179 def __getargspec(self,obj):
180 """Get the names and default values of a function's arguments.
180 """Get the names and default values of a function's arguments.
181
181
182 A tuple of four things is returned: (args, varargs, varkw, defaults).
182 A tuple of four things is returned: (args, varargs, varkw, defaults).
183 'args' is a list of the argument names (it may contain nested lists).
183 'args' is a list of the argument names (it may contain nested lists).
184 'varargs' and 'varkw' are the names of the * and ** arguments or None.
184 'varargs' and 'varkw' are the names of the * and ** arguments or None.
185 'defaults' is an n-tuple of the default values of the last n arguments.
185 'defaults' is an n-tuple of the default values of the last n arguments.
186
186
187 Modified version of inspect.getargspec from the Python Standard
187 Modified version of inspect.getargspec from the Python Standard
188 Library."""
188 Library."""
189
189
190 if inspect.isfunction(obj):
190 if inspect.isfunction(obj):
191 func_obj = obj
191 func_obj = obj
192 elif inspect.ismethod(obj):
192 elif inspect.ismethod(obj):
193 func_obj = obj.im_func
193 func_obj = obj.im_func
194 else:
194 else:
195 raise TypeError, 'arg is not a Python function'
195 raise TypeError, 'arg is not a Python function'
196 args, varargs, varkw = inspect.getargs(func_obj.func_code)
196 args, varargs, varkw = inspect.getargs(func_obj.func_code)
197 return args, varargs, varkw, func_obj.func_defaults
197 return args, varargs, varkw, func_obj.func_defaults
198
198
199 def __getdef(self,obj,oname=''):
199 def __getdef(self,obj,oname=''):
200 """Return the definition header for any callable object.
200 """Return the definition header for any callable object.
201
201
202 If any exception is generated, None is returned instead and the
202 If any exception is generated, None is returned instead and the
203 exception is suppressed."""
203 exception is suppressed."""
204
204
205 try:
205 try:
206 return oname + inspect.formatargspec(*self.__getargspec(obj))
206 return oname + inspect.formatargspec(*self.__getargspec(obj))
207 except:
207 except:
208 return None
208 return None
209
209
210 def __head(self,h):
210 def __head(self,h):
211 """Return a header string with proper colors."""
211 """Return a header string with proper colors."""
212 return '%s%s%s' % (self.color_table.active_colors.header,h,
212 return '%s%s%s' % (self.color_table.active_colors.header,h,
213 self.color_table.active_colors.normal)
213 self.color_table.active_colors.normal)
214
214
215 def set_active_scheme(self,scheme):
215 def set_active_scheme(self,scheme):
216 self.color_table.set_active_scheme(scheme)
216 self.color_table.set_active_scheme(scheme)
217 self.parser.color_table.set_active_scheme(scheme)
217 self.parser.color_table.set_active_scheme(scheme)
218
218
219 def noinfo(self,msg,oname):
219 def noinfo(self,msg,oname):
220 """Generic message when no information is found."""
220 """Generic message when no information is found."""
221 print 'No %s found' % msg,
221 print 'No %s found' % msg,
222 if oname:
222 if oname:
223 print 'for %s' % oname
223 print 'for %s' % oname
224 else:
224 else:
225 print
225 print
226
226
227 def pdef(self,obj,oname=''):
227 def pdef(self,obj,oname=''):
228 """Print the definition header for any callable object.
228 """Print the definition header for any callable object.
229
229
230 If the object is a class, print the constructor information."""
230 If the object is a class, print the constructor information."""
231
231
232 if not callable(obj):
232 if not callable(obj):
233 print 'Object is not callable.'
233 print 'Object is not callable.'
234 return
234 return
235
235
236 header = ''
236 header = ''
237
237
238 if inspect.isclass(obj):
238 if inspect.isclass(obj):
239 header = self.__head('Class constructor information:\n')
239 header = self.__head('Class constructor information:\n')
240 obj = obj.__init__
240 obj = obj.__init__
241 elif type(obj) is types.InstanceType or \
241 elif type(obj) is types.InstanceType or \
242 isinstance(obj,object):
242 isinstance(obj,object):
243 obj = obj.__call__
243 obj = obj.__call__
244
244
245 output = self.__getdef(obj,oname)
245 output = self.__getdef(obj,oname)
246 if output is None:
246 if output is None:
247 self.noinfo('definition header',oname)
247 self.noinfo('definition header',oname)
248 else:
248 else:
249 print >>Term.cout, header,self.format(output),
249 print >>Term.cout, header,self.format(output),
250
250
251 def pdoc(self,obj,oname='',formatter = None):
251 def pdoc(self,obj,oname='',formatter = None):
252 """Print the docstring for any object.
252 """Print the docstring for any object.
253
253
254 Optional:
254 Optional:
255 -formatter: a function to run the docstring through for specially
255 -formatter: a function to run the docstring through for specially
256 formatted docstrings."""
256 formatted docstrings."""
257
257
258 head = self.__head # so that itpl can find it even if private
258 head = self.__head # so that itpl can find it even if private
259 ds = getdoc(obj)
259 ds = getdoc(obj)
260 if formatter:
260 if formatter:
261 ds = formatter(ds)
261 ds = formatter(ds)
262 if inspect.isclass(obj):
262 if inspect.isclass(obj):
263 init_ds = getdoc(obj.__init__)
263 init_ds = getdoc(obj.__init__)
264 output = itpl('$head("Class Docstring:")\n'
264 output = itpl('$head("Class Docstring:")\n'
265 '$indent(ds)\n'
265 '$indent(ds)\n'
266 '$head("Constructor Docstring"):\n'
266 '$head("Constructor Docstring"):\n'
267 '$indent(init_ds)')
267 '$indent(init_ds)')
268 elif (type(obj) is types.InstanceType or isinstance(obj,object)) \
268 elif (type(obj) is types.InstanceType or isinstance(obj,object)) \
269 and hasattr(obj,'__call__'):
269 and hasattr(obj,'__call__'):
270 call_ds = getdoc(obj.__call__)
270 call_ds = getdoc(obj.__call__)
271 if call_ds:
271 if call_ds:
272 output = itpl('$head("Class Docstring:")\n$indent(ds)\n'
272 output = itpl('$head("Class Docstring:")\n$indent(ds)\n'
273 '$head("Calling Docstring:")\n$indent(call_ds)')
273 '$head("Calling Docstring:")\n$indent(call_ds)')
274 else:
274 else:
275 output = ds
275 output = ds
276 else:
276 else:
277 output = ds
277 output = ds
278 if output is None:
278 if output is None:
279 self.noinfo('documentation',oname)
279 self.noinfo('documentation',oname)
280 return
280 return
281 page(output)
281 page(output)
282
282
283 def psource(self,obj,oname=''):
283 def psource(self,obj,oname=''):
284 """Print the source code for an object."""
284 """Print the source code for an object."""
285
285
286 # Flush the source cache because inspect can return out-of-date source
286 # Flush the source cache because inspect can return out-of-date source
287 linecache.checkcache()
287 linecache.checkcache()
288 try:
288 try:
289 src = getsource(obj)
289 src = getsource(obj)
290 except:
290 except:
291 self.noinfo('source',oname)
291 self.noinfo('source',oname)
292 else:
292 else:
293 page(self.format(src))
293 page(self.format(src))
294
294
295 def pfile(self,obj,oname=''):
295 def pfile(self,obj,oname=''):
296 """Show the whole file where an object was defined."""
296 """Show the whole file where an object was defined."""
297 try:
297 try:
298 sourcelines,lineno = inspect.getsourcelines(obj)
298 sourcelines,lineno = inspect.getsourcelines(obj)
299 except:
299 except:
300 self.noinfo('file',oname)
300 self.noinfo('file',oname)
301 else:
301 else:
302 # run contents of file through pager starting at line
302 # run contents of file through pager starting at line
303 # where the object is defined
303 # where the object is defined
304 ofile = inspect.getabsfile(obj)
304 ofile = inspect.getabsfile(obj)
305
305
306 if (ofile.endswith('.so') or ofile.endswith('.dll')):
306 if (ofile.endswith('.so') or ofile.endswith('.dll')):
307 print 'File %r is binary, not printing.' % ofile
307 print 'File %r is binary, not printing.' % ofile
308 elif not os.path.isfile(ofile):
308 elif not os.path.isfile(ofile):
309 print 'File %r does not exist, not printing.' % ofile
309 print 'File %r does not exist, not printing.' % ofile
310 else:
310 else:
311 # Print only text files, not extension binaries.
311 # Print only text files, not extension binaries.
312 page(self.format(open(ofile).read()),lineno)
312 page(self.format(open(ofile).read()),lineno)
313 #page(self.format(open(inspect.getabsfile(obj)).read()),lineno)
313 #page(self.format(open(inspect.getabsfile(obj)).read()),lineno)
314
314
315 def pinfo(self,obj,oname='',formatter=None,info=None,detail_level=0):
315 def pinfo(self,obj,oname='',formatter=None,info=None,detail_level=0):
316 """Show detailed information about an object.
316 """Show detailed information about an object.
317
317
318 Optional arguments:
318 Optional arguments:
319
319
320 - oname: name of the variable pointing to the object.
320 - oname: name of the variable pointing to the object.
321
321
322 - formatter: special formatter for docstrings (see pdoc)
322 - formatter: special formatter for docstrings (see pdoc)
323
323
324 - info: a structure with some information fields which may have been
324 - info: a structure with some information fields which may have been
325 precomputed already.
325 precomputed already.
326
326
327 - detail_level: if set to 1, more information is given.
327 - detail_level: if set to 1, more information is given.
328 """
328 """
329
329
330 obj_type = type(obj)
330 obj_type = type(obj)
331
331
332 header = self.__head
332 header = self.__head
333 if info is None:
333 if info is None:
334 ismagic = 0
334 ismagic = 0
335 isalias = 0
335 isalias = 0
336 ospace = ''
336 ospace = ''
337 else:
337 else:
338 ismagic = info.ismagic
338 ismagic = info.ismagic
339 isalias = info.isalias
339 isalias = info.isalias
340 ospace = info.namespace
340 ospace = info.namespace
341 # Get docstring, special-casing aliases:
341 # Get docstring, special-casing aliases:
342 if isalias:
342 if isalias:
343 if not callable(obj):
343 if not callable(obj):
344 ds = "Alias to the system command:\n %s" % obj[1]
344 ds = "Alias to the system command:\n %s" % obj[1]
345 else:
345 else:
346 ds = "Alias to " + str(obj)
346 ds = "Alias to " + str(obj)
347 else:
347 else:
348 ds = getdoc(obj)
348 ds = getdoc(obj)
349 if ds is None:
349 if ds is None:
350 ds = '<no docstring>'
350 ds = '<no docstring>'
351 if formatter is not None:
351 if formatter is not None:
352 ds = formatter(ds)
352 ds = formatter(ds)
353
353
354 # store output in a list which gets joined with \n at the end.
354 # store output in a list which gets joined with \n at the end.
355 out = myStringIO()
355 out = myStringIO()
356
356
357 string_max = 200 # max size of strings to show (snipped if longer)
357 string_max = 200 # max size of strings to show (snipped if longer)
358 shalf = int((string_max -5)/2)
358 shalf = int((string_max -5)/2)
359
359
360 if ismagic:
360 if ismagic:
361 obj_type_name = 'Magic function'
361 obj_type_name = 'Magic function'
362 elif isalias:
362 elif isalias:
363 obj_type_name = 'System alias'
363 obj_type_name = 'System alias'
364 else:
364 else:
365 obj_type_name = obj_type.__name__
365 obj_type_name = obj_type.__name__
366 out.writeln(header('Type:\t\t')+obj_type_name)
366 out.writeln(header('Type:\t\t')+obj_type_name)
367
367
368 try:
368 try:
369 bclass = obj.__class__
369 bclass = obj.__class__
370 out.writeln(header('Base Class:\t')+str(bclass))
370 out.writeln(header('Base Class:\t')+str(bclass))
371 except: pass
371 except: pass
372
372
373 # String form, but snip if too long in ? form (full in ??)
373 # String form, but snip if too long in ? form (full in ??)
374 if detail_level >= self.str_detail_level:
374 if detail_level >= self.str_detail_level:
375 try:
375 try:
376 ostr = str(obj)
376 ostr = str(obj)
377 str_head = 'String Form:'
377 str_head = 'String Form:'
378 if not detail_level and len(ostr)>string_max:
378 if not detail_level and len(ostr)>string_max:
379 ostr = ostr[:shalf] + ' <...> ' + ostr[-shalf:]
379 ostr = ostr[:shalf] + ' <...> ' + ostr[-shalf:]
380 ostr = ("\n" + " " * len(str_head.expandtabs())).\
380 ostr = ("\n" + " " * len(str_head.expandtabs())).\
381 join(map(string.strip,ostr.split("\n")))
381 join(map(string.strip,ostr.split("\n")))
382 if ostr.find('\n') > -1:
382 if ostr.find('\n') > -1:
383 # Print multi-line strings starting at the next line.
383 # Print multi-line strings starting at the next line.
384 str_sep = '\n'
384 str_sep = '\n'
385 else:
385 else:
386 str_sep = '\t'
386 str_sep = '\t'
387 out.writeln("%s%s%s" % (header(str_head),str_sep,ostr))
387 out.writeln("%s%s%s" % (header(str_head),str_sep,ostr))
388 except:
388 except:
389 pass
389 pass
390
390
391 if ospace:
391 if ospace:
392 out.writeln(header('Namespace:\t')+ospace)
392 out.writeln(header('Namespace:\t')+ospace)
393
393
394 # Length (for strings and lists)
394 # Length (for strings and lists)
395 try:
395 try:
396 length = str(len(obj))
396 length = str(len(obj))
397 out.writeln(header('Length:\t\t')+length)
397 out.writeln(header('Length:\t\t')+length)
398 except: pass
398 except: pass
399
399
400 # Filename where object was defined
400 # Filename where object was defined
401 binary_file = False
401 binary_file = False
402 try:
402 try:
403 fname = inspect.getabsfile(obj)
403 fname = inspect.getabsfile(obj)
404 if fname.endswith('<string>'):
404 if fname.endswith('<string>'):
405 fname = 'Dynamically generated function. No source code available.'
405 fname = 'Dynamically generated function. No source code available.'
406 if (fname.endswith('.so') or fname.endswith('.dll') or
406 if (fname.endswith('.so') or fname.endswith('.dll') or
407 not os.path.isfile(fname)):
407 not os.path.isfile(fname)):
408 binary_file = True
408 binary_file = True
409 out.writeln(header('File:\t\t')+fname)
409 out.writeln(header('File:\t\t')+fname)
410 except:
410 except:
411 # if anything goes wrong, we don't want to show source, so it's as
411 # if anything goes wrong, we don't want to show source, so it's as
412 # if the file was binary
412 # if the file was binary
413 binary_file = True
413 binary_file = True
414
414
415 # reconstruct the function definition and print it:
415 # reconstruct the function definition and print it:
416 defln = self.__getdef(obj,oname)
416 defln = self.__getdef(obj,oname)
417 if defln:
417 if defln:
418 out.write(header('Definition:\t')+self.format(defln))
418 out.write(header('Definition:\t')+self.format(defln))
419
419
420 # Docstrings only in detail 0 mode, since source contains them (we
420 # Docstrings only in detail 0 mode, since source contains them (we
421 # avoid repetitions). If source fails, we add them back, see below.
421 # avoid repetitions). If source fails, we add them back, see below.
422 if ds and detail_level == 0:
422 if ds and detail_level == 0:
423 out.writeln(header('Docstring:\n') + indent(ds))
423 out.writeln(header('Docstring:\n') + indent(ds))
424
424
425
425
426 # Original source code for any callable
426 # Original source code for any callable
427 if detail_level:
427 if detail_level:
428 # Flush the source cache because inspect can return out-of-date source
428 # Flush the source cache because inspect can return out-of-date source
429 linecache.checkcache()
429 linecache.checkcache()
430 source_success = False
430 source_success = False
431 try:
431 try:
432 source = self.format(getsource(obj,binary_file))
432 source = self.format(getsource(obj,binary_file))
433 if source:
433 if source:
434 out.write(header('Source:\n')+source.rstrip())
434 out.write(header('Source:\n')+source.rstrip())
435 source_success = True
435 source_success = True
436 except Exception, msg:
436 except Exception, msg:
437 pass
437 pass
438
438
439 if ds and not source_success:
439 if ds and not source_success:
440 out.writeln(header('Docstring [source file open failed]:\n')
440 out.writeln(header('Docstring [source file open failed]:\n')
441 + indent(ds))
441 + indent(ds))
442
442
443 # Constructor docstring for classes
443 # Constructor docstring for classes
444 if inspect.isclass(obj):
444 if inspect.isclass(obj):
445 # reconstruct the function definition and print it:
445 # reconstruct the function definition and print it:
446 try:
446 try:
447 obj_init = obj.__init__
447 obj_init = obj.__init__
448 except AttributeError:
448 except AttributeError:
449 init_def = init_ds = None
449 init_def = init_ds = None
450 else:
450 else:
451 init_def = self.__getdef(obj_init,oname)
451 init_def = self.__getdef(obj_init,oname)
452 init_ds = getdoc(obj_init)
452 init_ds = getdoc(obj_init)
453
453
454 if init_def or init_ds:
454 if init_def or init_ds:
455 out.writeln(header('\nConstructor information:'))
455 out.writeln(header('\nConstructor information:'))
456 if init_def:
456 if init_def:
457 out.write(header('Definition:\t')+ self.format(init_def))
457 out.write(header('Definition:\t')+ self.format(init_def))
458 if init_ds:
458 if init_ds:
459 out.writeln(header('Docstring:\n') + indent(init_ds))
459 out.writeln(header('Docstring:\n') + indent(init_ds))
460 # and class docstring for instances:
460 # and class docstring for instances:
461 elif obj_type is types.InstanceType or \
461 elif obj_type is types.InstanceType or \
462 isinstance(obj,object):
462 isinstance(obj,object):
463
463
464 # First, check whether the instance docstring is identical to the
464 # First, check whether the instance docstring is identical to the
465 # class one, and print it separately if they don't coincide. In
465 # class one, and print it separately if they don't coincide. In
466 # most cases they will, but it's nice to print all the info for
466 # most cases they will, but it's nice to print all the info for
467 # objects which use instance-customized docstrings.
467 # objects which use instance-customized docstrings.
468 if ds:
468 if ds:
469 class_ds = getdoc(obj.__class__)
469 class_ds = getdoc(obj.__class__)
470 # Skip Python's auto-generated docstrings
471 if class_ds.startswith('function(code, globals[, name[,') or \
472 class_ds.startswith('instancemethod(function, instance,'):
473 class_ds = None
470 if class_ds and ds != class_ds:
474 if class_ds and ds != class_ds:
471 out.writeln(header('Class Docstring:\n') +
475 out.writeln(header('Class Docstring:\n') +
472 indent(class_ds))
476 indent(class_ds))
473
477
474 # Next, try to show constructor docstrings
478 # Next, try to show constructor docstrings
475 try:
479 try:
476 init_ds = getdoc(obj.__init__)
480 init_ds = getdoc(obj.__init__)
481 # Skip Python's auto-generated docstrings
482 if init_ds.startswith('x.__init__(...) initializes x'):
483 init_ds = None
477 except AttributeError:
484 except AttributeError:
478 init_ds = None
485 init_ds = None
479 if init_ds:
486 if init_ds:
480 out.writeln(header('Constructor Docstring:\n') +
487 out.writeln(header('Constructor Docstring:\n') +
481 indent(init_ds))
488 indent(init_ds))
482
489
483 # Call form docstring for callable instances
490 # Call form docstring for callable instances
484 if hasattr(obj,'__call__'):
491 if hasattr(obj,'__call__'):
485 out.writeln(header('Callable:\t')+'Yes')
492 #out.writeln(header('Callable:\t')+'Yes')
486 call_def = self.__getdef(obj.__call__,oname)
493 call_def = self.__getdef(obj.__call__,oname)
487 if call_def is None:
494 #if call_def is None:
488 out.write(header('Call def:\t')+
495 # out.writeln(header('Call def:\t')+
489 'Calling definition not available.')
496 # 'Calling definition not available.')
490 else:
497 if call_def is not None:
491 out.write(header('Call def:\t')+self.format(call_def))
498 out.writeln(header('Call def:\t')+self.format(call_def))
492 call_ds = getdoc(obj.__call__)
499 call_ds = getdoc(obj.__call__)
500 # Skip Python's auto-generated docstrings
501 if call_ds.startswith('x.__call__(...) <==> x(...)'):
502 call_ds = None
493 if call_ds:
503 if call_ds:
494 out.writeln(header('Call docstring:\n') + indent(call_ds))
504 out.writeln(header('Call docstring:\n') + indent(call_ds))
495
505
496 # Finally send to printer/pager
506 # Finally send to printer/pager
497 output = out.getvalue()
507 output = out.getvalue()
498 if output:
508 if output:
499 page(output)
509 page(output)
500 # end pinfo
510 # end pinfo
501
511
502 def psearch(self,pattern,ns_table,ns_search=[],
512 def psearch(self,pattern,ns_table,ns_search=[],
503 ignore_case=False,show_all=False):
513 ignore_case=False,show_all=False):
504 """Search namespaces with wildcards for objects.
514 """Search namespaces with wildcards for objects.
505
515
506 Arguments:
516 Arguments:
507
517
508 - pattern: string containing shell-like wildcards to use in namespace
518 - pattern: string containing shell-like wildcards to use in namespace
509 searches and optionally a type specification to narrow the search to
519 searches and optionally a type specification to narrow the search to
510 objects of that type.
520 objects of that type.
511
521
512 - ns_table: dict of name->namespaces for search.
522 - ns_table: dict of name->namespaces for search.
513
523
514 Optional arguments:
524 Optional arguments:
515
525
516 - ns_search: list of namespace names to include in search.
526 - ns_search: list of namespace names to include in search.
517
527
518 - ignore_case(False): make the search case-insensitive.
528 - ignore_case(False): make the search case-insensitive.
519
529
520 - show_all(False): show all names, including those starting with
530 - show_all(False): show all names, including those starting with
521 underscores.
531 underscores.
522 """
532 """
523 # defaults
533 # defaults
524 type_pattern = 'all'
534 type_pattern = 'all'
525 filter = ''
535 filter = ''
526
536
527 cmds = pattern.split()
537 cmds = pattern.split()
528 len_cmds = len(cmds)
538 len_cmds = len(cmds)
529 if len_cmds == 1:
539 if len_cmds == 1:
530 # Only filter pattern given
540 # Only filter pattern given
531 filter = cmds[0]
541 filter = cmds[0]
532 elif len_cmds == 2:
542 elif len_cmds == 2:
533 # Both filter and type specified
543 # Both filter and type specified
534 filter,type_pattern = cmds
544 filter,type_pattern = cmds
535 else:
545 else:
536 raise ValueError('invalid argument string for psearch: <%s>' %
546 raise ValueError('invalid argument string for psearch: <%s>' %
537 pattern)
547 pattern)
538
548
539 # filter search namespaces
549 # filter search namespaces
540 for name in ns_search:
550 for name in ns_search:
541 if name not in ns_table:
551 if name not in ns_table:
542 raise ValueError('invalid namespace <%s>. Valid names: %s' %
552 raise ValueError('invalid namespace <%s>. Valid names: %s' %
543 (name,ns_table.keys()))
553 (name,ns_table.keys()))
544
554
545 #print 'type_pattern:',type_pattern # dbg
555 #print 'type_pattern:',type_pattern # dbg
546 search_result = []
556 search_result = []
547 for ns_name in ns_search:
557 for ns_name in ns_search:
548 ns = ns_table[ns_name]
558 ns = ns_table[ns_name]
549 tmp_res = list(list_namespace(ns,type_pattern,filter,
559 tmp_res = list(list_namespace(ns,type_pattern,filter,
550 ignore_case=ignore_case,
560 ignore_case=ignore_case,
551 show_all=show_all))
561 show_all=show_all))
552 search_result.extend(tmp_res)
562 search_result.extend(tmp_res)
553 search_result.sort()
563 search_result.sort()
554
564
555 page('\n'.join(search_result))
565 page('\n'.join(search_result))
@@ -1,6859 +1,6869 b''
1 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
4 'foo?' and update the code to prevent printing of default
5 docstrings that started appearing after I added support for
6 new-style classes. The approach I'm using isn't ideal (I just
7 special-case those strings) but I'm not sure how to more robustly
8 differentiate between truly user-written strings and Python's
9 automatic ones.
10
1 2007-07-09 Ville Vainio <vivainio@gmail.com>
11 2007-07-09 Ville Vainio <vivainio@gmail.com>
2
12
3 * completer.py: Applied Matthew Neeley's patch:
13 * completer.py: Applied Matthew Neeley's patch:
4 Dynamic attributes from trait_names and _getAttributeNames are added
14 Dynamic attributes from trait_names and _getAttributeNames are added
5 to the list of tab completions, but when this happens, the attribute
15 to the list of tab completions, but when this happens, the attribute
6 list is turned into a set, so the attributes are unordered when
16 list is turned into a set, so the attributes are unordered when
7 printed, which makes it hard to find the right completion. This patch
17 printed, which makes it hard to find the right completion. This patch
8 turns this set back into a list and sort it.
18 turns this set back into a list and sort it.
9
19
10 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
20 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
11
21
12 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
22 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
13 classes in various inspector functions.
23 classes in various inspector functions.
14
24
15 2007-06-28 Ville Vainio <vivainio@gmail.com>
25 2007-06-28 Ville Vainio <vivainio@gmail.com>
16
26
17 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
27 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
18 Implement "shadow" namespace, and callable aliases that reside there.
28 Implement "shadow" namespace, and callable aliases that reside there.
19 Use them by:
29 Use them by:
20
30
21 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
31 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
22
32
23 foo hello world
33 foo hello world
24 (gets translated to:)
34 (gets translated to:)
25 _sh.foo(r"""hello world""")
35 _sh.foo(r"""hello world""")
26
36
27 In practice, this kind of alias can take the role of a magic function
37 In practice, this kind of alias can take the role of a magic function
28
38
29 * New generic inspect_object, called on obj? and obj??
39 * New generic inspect_object, called on obj? and obj??
30
40
31 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
41 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
32
42
33 * IPython/ultraTB.py (findsource): fix a problem with
43 * IPython/ultraTB.py (findsource): fix a problem with
34 inspect.getfile that can cause crashes during traceback construction.
44 inspect.getfile that can cause crashes during traceback construction.
35
45
36 2007-06-14 Ville Vainio <vivainio@gmail.com>
46 2007-06-14 Ville Vainio <vivainio@gmail.com>
37
47
38 * iplib.py (handle_auto): Try to use ascii for printing "--->"
48 * iplib.py (handle_auto): Try to use ascii for printing "--->"
39 autocall rewrite indication, becausesometimes unicode fails to print
49 autocall rewrite indication, becausesometimes unicode fails to print
40 properly (and you get ' - - - '). Use plain uncoloured ---> for
50 properly (and you get ' - - - '). Use plain uncoloured ---> for
41 unicode.
51 unicode.
42
52
43 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
53 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
44
54
45 . pickleshare 'hash' commands (hget, hset, hcompress,
55 . pickleshare 'hash' commands (hget, hset, hcompress,
46 hdict) for efficient shadow history storage.
56 hdict) for efficient shadow history storage.
47
57
48 2007-06-13 Ville Vainio <vivainio@gmail.com>
58 2007-06-13 Ville Vainio <vivainio@gmail.com>
49
59
50 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
60 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
51 Added kw arg 'interactive', tell whether vars should be visible
61 Added kw arg 'interactive', tell whether vars should be visible
52 with %whos.
62 with %whos.
53
63
54 2007-06-11 Ville Vainio <vivainio@gmail.com>
64 2007-06-11 Ville Vainio <vivainio@gmail.com>
55
65
56 * pspersistence.py, Magic.py, iplib.py: directory history now saved
66 * pspersistence.py, Magic.py, iplib.py: directory history now saved
57 to db
67 to db
58
68
59 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
69 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
60 Also, it exits IPython immediately after evaluating the command (just like
70 Also, it exits IPython immediately after evaluating the command (just like
61 std python)
71 std python)
62
72
63 2007-06-05 Walter Doerwald <walter@livinglogic.de>
73 2007-06-05 Walter Doerwald <walter@livinglogic.de>
64
74
65 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
75 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
66 Python string and captures the output. (Idea and original patch by
76 Python string and captures the output. (Idea and original patch by
67 StοΏ½fan van der Walt)
77 StοΏ½fan van der Walt)
68
78
69 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
79 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
70
80
71 * IPython/ultraTB.py (VerboseTB.text): update printing of
81 * IPython/ultraTB.py (VerboseTB.text): update printing of
72 exception types for Python 2.5 (now all exceptions in the stdlib
82 exception types for Python 2.5 (now all exceptions in the stdlib
73 are new-style classes).
83 are new-style classes).
74
84
75 2007-05-31 Walter Doerwald <walter@livinglogic.de>
85 2007-05-31 Walter Doerwald <walter@livinglogic.de>
76
86
77 * IPython/Extensions/igrid.py: Add new commands refresh and
87 * IPython/Extensions/igrid.py: Add new commands refresh and
78 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
88 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
79 the iterator once (refresh) or after every x seconds (refresh_timer).
89 the iterator once (refresh) or after every x seconds (refresh_timer).
80 Add a working implementation of "searchexpression", where the text
90 Add a working implementation of "searchexpression", where the text
81 entered is not the text to search for, but an expression that must
91 entered is not the text to search for, but an expression that must
82 be true. Added display of shortcuts to the menu. Added commands "pickinput"
92 be true. Added display of shortcuts to the menu. Added commands "pickinput"
83 and "pickinputattr" that put the object or attribute under the cursor
93 and "pickinputattr" that put the object or attribute under the cursor
84 in the input line. Split the statusbar to be able to display the currently
94 in the input line. Split the statusbar to be able to display the currently
85 active refresh interval. (Patch by Nik Tautenhahn)
95 active refresh interval. (Patch by Nik Tautenhahn)
86
96
87 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
97 2007-05-29 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
88
98
89 * fixing set_term_title to use ctypes as default
99 * fixing set_term_title to use ctypes as default
90
100
91 * fixing set_term_title fallback to work when curent dir
101 * fixing set_term_title fallback to work when curent dir
92 is on a windows network share
102 is on a windows network share
93
103
94 2007-05-28 Ville Vainio <vivainio@gmail.com>
104 2007-05-28 Ville Vainio <vivainio@gmail.com>
95
105
96 * %cpaste: strip + with > from left (diffs).
106 * %cpaste: strip + with > from left (diffs).
97
107
98 * iplib.py: Fix crash when readline not installed
108 * iplib.py: Fix crash when readline not installed
99
109
100 2007-05-26 Ville Vainio <vivainio@gmail.com>
110 2007-05-26 Ville Vainio <vivainio@gmail.com>
101
111
102 * generics.py: intruduce easy to extend result_display generic
112 * generics.py: intruduce easy to extend result_display generic
103 function (using simplegeneric.py).
113 function (using simplegeneric.py).
104
114
105 * Fixed the append functionality of %set.
115 * Fixed the append functionality of %set.
106
116
107 2007-05-25 Ville Vainio <vivainio@gmail.com>
117 2007-05-25 Ville Vainio <vivainio@gmail.com>
108
118
109 * New magic: %rep (fetch / run old commands from history)
119 * New magic: %rep (fetch / run old commands from history)
110
120
111 * New extension: mglob (%mglob magic), for powerful glob / find /filter
121 * New extension: mglob (%mglob magic), for powerful glob / find /filter
112 like functionality
122 like functionality
113
123
114 % maghistory.py: %hist -g PATTERM greps the history for pattern
124 % maghistory.py: %hist -g PATTERM greps the history for pattern
115
125
116 2007-05-24 Walter Doerwald <walter@livinglogic.de>
126 2007-05-24 Walter Doerwald <walter@livinglogic.de>
117
127
118 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
128 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
119 browse the IPython input history
129 browse the IPython input history
120
130
121 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
131 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
122 (mapped to "i") can be used to put the object under the curser in the input
132 (mapped to "i") can be used to put the object under the curser in the input
123 line. pickinputattr (mapped to "I") does the same for the attribute under
133 line. pickinputattr (mapped to "I") does the same for the attribute under
124 the cursor.
134 the cursor.
125
135
126 2007-05-24 Ville Vainio <vivainio@gmail.com>
136 2007-05-24 Ville Vainio <vivainio@gmail.com>
127
137
128 * Grand magic cleansing (changeset [2380]):
138 * Grand magic cleansing (changeset [2380]):
129
139
130 * Introduce ipy_legacy.py where the following magics were
140 * Introduce ipy_legacy.py where the following magics were
131 moved:
141 moved:
132
142
133 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
143 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
134
144
135 If you need them, either use default profile or "import ipy_legacy"
145 If you need them, either use default profile or "import ipy_legacy"
136 in your ipy_user_conf.py
146 in your ipy_user_conf.py
137
147
138 * Move sh and scipy profile to Extensions from UserConfig. this implies
148 * Move sh and scipy profile to Extensions from UserConfig. this implies
139 you should not edit them, but you don't need to run %upgrade when
149 you should not edit them, but you don't need to run %upgrade when
140 upgrading IPython anymore.
150 upgrading IPython anymore.
141
151
142 * %hist/%history now operates in "raw" mode by default. To get the old
152 * %hist/%history now operates in "raw" mode by default. To get the old
143 behaviour, run '%hist -n' (native mode).
153 behaviour, run '%hist -n' (native mode).
144
154
145 * split ipy_stock_completers.py to ipy_stock_completers.py and
155 * split ipy_stock_completers.py to ipy_stock_completers.py and
146 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
156 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
147 installed as default.
157 installed as default.
148
158
149 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
159 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
150 handling.
160 handling.
151
161
152 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
162 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
153 input if readline is available.
163 input if readline is available.
154
164
155 2007-05-23 Ville Vainio <vivainio@gmail.com>
165 2007-05-23 Ville Vainio <vivainio@gmail.com>
156
166
157 * macro.py: %store uses __getstate__ properly
167 * macro.py: %store uses __getstate__ properly
158
168
159 * exesetup.py: added new setup script for creating
169 * exesetup.py: added new setup script for creating
160 standalone IPython executables with py2exe (i.e.
170 standalone IPython executables with py2exe (i.e.
161 no python installation required).
171 no python installation required).
162
172
163 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
173 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
164 its place.
174 its place.
165
175
166 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
176 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
167
177
168 2007-05-21 Ville Vainio <vivainio@gmail.com>
178 2007-05-21 Ville Vainio <vivainio@gmail.com>
169
179
170 * platutil_win32.py (set_term_title): handle
180 * platutil_win32.py (set_term_title): handle
171 failure of 'title' system call properly.
181 failure of 'title' system call properly.
172
182
173 2007-05-17 Walter Doerwald <walter@livinglogic.de>
183 2007-05-17 Walter Doerwald <walter@livinglogic.de>
174
184
175 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
185 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
176 (Bug detected by Paul Mueller).
186 (Bug detected by Paul Mueller).
177
187
178 2007-05-16 Ville Vainio <vivainio@gmail.com>
188 2007-05-16 Ville Vainio <vivainio@gmail.com>
179
189
180 * ipy_profile_sci.py, ipython_win_post_install.py: Create
190 * ipy_profile_sci.py, ipython_win_post_install.py: Create
181 new "sci" profile, effectively a modern version of the old
191 new "sci" profile, effectively a modern version of the old
182 "scipy" profile (which is now slated for deprecation).
192 "scipy" profile (which is now slated for deprecation).
183
193
184 2007-05-15 Ville Vainio <vivainio@gmail.com>
194 2007-05-15 Ville Vainio <vivainio@gmail.com>
185
195
186 * pycolorize.py, pycolor.1: Paul Mueller's patches that
196 * pycolorize.py, pycolor.1: Paul Mueller's patches that
187 make pycolorize read input from stdin when run without arguments.
197 make pycolorize read input from stdin when run without arguments.
188
198
189 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
199 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
190
200
191 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
201 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
192 it in sh profile (instead of ipy_system_conf.py).
202 it in sh profile (instead of ipy_system_conf.py).
193
203
194 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
204 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
195 aliases are now lower case on windows (MyCommand.exe => mycommand).
205 aliases are now lower case on windows (MyCommand.exe => mycommand).
196
206
197 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
207 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
198 Macros are now callable objects that inherit from ipapi.IPyAutocall,
208 Macros are now callable objects that inherit from ipapi.IPyAutocall,
199 i.e. get autocalled regardless of system autocall setting.
209 i.e. get autocalled regardless of system autocall setting.
200
210
201 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
211 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
202
212
203 * IPython/rlineimpl.py: check for clear_history in readline and
213 * IPython/rlineimpl.py: check for clear_history in readline and
204 make it a dummy no-op if not available. This function isn't
214 make it a dummy no-op if not available. This function isn't
205 guaranteed to be in the API and appeared in Python 2.4, so we need
215 guaranteed to be in the API and appeared in Python 2.4, so we need
206 to check it ourselves. Also, clean up this file quite a bit.
216 to check it ourselves. Also, clean up this file quite a bit.
207
217
208 * ipython.1: update man page and full manual with information
218 * ipython.1: update man page and full manual with information
209 about threads (remove outdated warning). Closes #151.
219 about threads (remove outdated warning). Closes #151.
210
220
211 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
221 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
212
222
213 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
223 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
214 in trunk (note that this made it into the 0.8.1 release already,
224 in trunk (note that this made it into the 0.8.1 release already,
215 but the changelogs didn't get coordinated). Many thanks to Gael
225 but the changelogs didn't get coordinated). Many thanks to Gael
216 Varoquaux <gael.varoquaux-AT-normalesup.org>
226 Varoquaux <gael.varoquaux-AT-normalesup.org>
217
227
218 2007-05-09 *** Released version 0.8.1
228 2007-05-09 *** Released version 0.8.1
219
229
220 2007-05-10 Walter Doerwald <walter@livinglogic.de>
230 2007-05-10 Walter Doerwald <walter@livinglogic.de>
221
231
222 * IPython/Extensions/igrid.py: Incorporate html help into
232 * IPython/Extensions/igrid.py: Incorporate html help into
223 the module, so we don't have to search for the file.
233 the module, so we don't have to search for the file.
224
234
225 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
235 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
226
236
227 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
237 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
228
238
229 2007-04-30 Ville Vainio <vivainio@gmail.com>
239 2007-04-30 Ville Vainio <vivainio@gmail.com>
230
240
231 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
241 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
232 user has illegal (non-ascii) home directory name
242 user has illegal (non-ascii) home directory name
233
243
234 2007-04-27 Ville Vainio <vivainio@gmail.com>
244 2007-04-27 Ville Vainio <vivainio@gmail.com>
235
245
236 * platutils_win32.py: implement set_term_title for windows
246 * platutils_win32.py: implement set_term_title for windows
237
247
238 * Update version number
248 * Update version number
239
249
240 * ipy_profile_sh.py: more informative prompt (2 dir levels)
250 * ipy_profile_sh.py: more informative prompt (2 dir levels)
241
251
242 2007-04-26 Walter Doerwald <walter@livinglogic.de>
252 2007-04-26 Walter Doerwald <walter@livinglogic.de>
243
253
244 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
254 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
245 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
255 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
246 bug discovered by Ville).
256 bug discovered by Ville).
247
257
248 2007-04-26 Ville Vainio <vivainio@gmail.com>
258 2007-04-26 Ville Vainio <vivainio@gmail.com>
249
259
250 * Extensions/ipy_completers.py: Olivier's module completer now
260 * Extensions/ipy_completers.py: Olivier's module completer now
251 saves the list of root modules if it takes > 4 secs on the first run.
261 saves the list of root modules if it takes > 4 secs on the first run.
252
262
253 * Magic.py (%rehashx): %rehashx now clears the completer cache
263 * Magic.py (%rehashx): %rehashx now clears the completer cache
254
264
255
265
256 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
266 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
257
267
258 * ipython.el: fix incorrect color scheme, reported by Stefan.
268 * ipython.el: fix incorrect color scheme, reported by Stefan.
259 Closes #149.
269 Closes #149.
260
270
261 * IPython/PyColorize.py (Parser.format2): fix state-handling
271 * IPython/PyColorize.py (Parser.format2): fix state-handling
262 logic. I still don't like how that code handles state, but at
272 logic. I still don't like how that code handles state, but at
263 least now it should be correct, if inelegant. Closes #146.
273 least now it should be correct, if inelegant. Closes #146.
264
274
265 2007-04-25 Ville Vainio <vivainio@gmail.com>
275 2007-04-25 Ville Vainio <vivainio@gmail.com>
266
276
267 * Extensions/ipy_which.py: added extension for %which magic, works
277 * Extensions/ipy_which.py: added extension for %which magic, works
268 a lot like unix 'which' but also finds and expands aliases, and
278 a lot like unix 'which' but also finds and expands aliases, and
269 allows wildcards.
279 allows wildcards.
270
280
271 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
281 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
272 as opposed to returning nothing.
282 as opposed to returning nothing.
273
283
274 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
284 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
275 ipy_stock_completers on default profile, do import on sh profile.
285 ipy_stock_completers on default profile, do import on sh profile.
276
286
277 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
287 2007-04-22 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
278
288
279 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
289 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
280 like ipython.py foo.py which raised a IndexError.
290 like ipython.py foo.py which raised a IndexError.
281
291
282 2007-04-21 Ville Vainio <vivainio@gmail.com>
292 2007-04-21 Ville Vainio <vivainio@gmail.com>
283
293
284 * Extensions/ipy_extutil.py: added extension to manage other ipython
294 * Extensions/ipy_extutil.py: added extension to manage other ipython
285 extensions. Now only supports 'ls' == list extensions.
295 extensions. Now only supports 'ls' == list extensions.
286
296
287 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
297 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
288
298
289 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
299 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
290 would prevent use of the exception system outside of a running
300 would prevent use of the exception system outside of a running
291 IPython instance.
301 IPython instance.
292
302
293 2007-04-20 Ville Vainio <vivainio@gmail.com>
303 2007-04-20 Ville Vainio <vivainio@gmail.com>
294
304
295 * Extensions/ipy_render.py: added extension for easy
305 * Extensions/ipy_render.py: added extension for easy
296 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
306 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
297 'Iptl' template notation,
307 'Iptl' template notation,
298
308
299 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
309 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
300 safer & faster 'import' completer.
310 safer & faster 'import' completer.
301
311
302 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
312 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
303 and _ip.defalias(name, command).
313 and _ip.defalias(name, command).
304
314
305 * Extensions/ipy_exportdb.py: New extension for exporting all the
315 * Extensions/ipy_exportdb.py: New extension for exporting all the
306 %store'd data in a portable format (normal ipapi calls like
316 %store'd data in a portable format (normal ipapi calls like
307 defmacro() etc.)
317 defmacro() etc.)
308
318
309 2007-04-19 Ville Vainio <vivainio@gmail.com>
319 2007-04-19 Ville Vainio <vivainio@gmail.com>
310
320
311 * upgrade_dir.py: skip junk files like *.pyc
321 * upgrade_dir.py: skip junk files like *.pyc
312
322
313 * Release.py: version number to 0.8.1
323 * Release.py: version number to 0.8.1
314
324
315 2007-04-18 Ville Vainio <vivainio@gmail.com>
325 2007-04-18 Ville Vainio <vivainio@gmail.com>
316
326
317 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
327 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
318 and later on win32.
328 and later on win32.
319
329
320 2007-04-16 Ville Vainio <vivainio@gmail.com>
330 2007-04-16 Ville Vainio <vivainio@gmail.com>
321
331
322 * iplib.py (showtraceback): Do not crash when running w/o readline.
332 * iplib.py (showtraceback): Do not crash when running w/o readline.
323
333
324 2007-04-12 Walter Doerwald <walter@livinglogic.de>
334 2007-04-12 Walter Doerwald <walter@livinglogic.de>
325
335
326 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
336 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
327 sorted (case sensitive with files and dirs mixed).
337 sorted (case sensitive with files and dirs mixed).
328
338
329 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
339 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
330
340
331 * IPython/Release.py (version): Open trunk for 0.8.1 development.
341 * IPython/Release.py (version): Open trunk for 0.8.1 development.
332
342
333 2007-04-10 *** Released version 0.8.0
343 2007-04-10 *** Released version 0.8.0
334
344
335 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
345 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
336
346
337 * Tag 0.8.0 for release.
347 * Tag 0.8.0 for release.
338
348
339 * IPython/iplib.py (reloadhist): add API function to cleanly
349 * IPython/iplib.py (reloadhist): add API function to cleanly
340 reload the readline history, which was growing inappropriately on
350 reload the readline history, which was growing inappropriately on
341 every %run call.
351 every %run call.
342
352
343 * win32_manual_post_install.py (run): apply last part of Nicolas
353 * win32_manual_post_install.py (run): apply last part of Nicolas
344 Pernetty's patch (I'd accidentally applied it in a different
354 Pernetty's patch (I'd accidentally applied it in a different
345 directory and this particular file didn't get patched).
355 directory and this particular file didn't get patched).
346
356
347 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
357 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
348
358
349 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
359 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
350 find the main thread id and use the proper API call. Thanks to
360 find the main thread id and use the proper API call. Thanks to
351 Stefan for the fix.
361 Stefan for the fix.
352
362
353 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
363 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
354 unit tests to reflect fixed ticket #52, and add more tests sent by
364 unit tests to reflect fixed ticket #52, and add more tests sent by
355 him.
365 him.
356
366
357 * IPython/iplib.py (raw_input): restore the readline completer
367 * IPython/iplib.py (raw_input): restore the readline completer
358 state on every input, in case third-party code messed it up.
368 state on every input, in case third-party code messed it up.
359 (_prefilter): revert recent addition of early-escape checks which
369 (_prefilter): revert recent addition of early-escape checks which
360 prevent many valid alias calls from working.
370 prevent many valid alias calls from working.
361
371
362 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
372 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
363 flag for sigint handler so we don't run a full signal() call on
373 flag for sigint handler so we don't run a full signal() call on
364 each runcode access.
374 each runcode access.
365
375
366 * IPython/Magic.py (magic_whos): small improvement to diagnostic
376 * IPython/Magic.py (magic_whos): small improvement to diagnostic
367 message.
377 message.
368
378
369 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
379 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
370
380
371 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
381 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
372 asynchronous exceptions working, i.e., Ctrl-C can actually
382 asynchronous exceptions working, i.e., Ctrl-C can actually
373 interrupt long-running code in the multithreaded shells.
383 interrupt long-running code in the multithreaded shells.
374
384
375 This is using Tomer Filiba's great ctypes-based trick:
385 This is using Tomer Filiba's great ctypes-based trick:
376 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
386 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
377 this in the past, but hadn't been able to make it work before. So
387 this in the past, but hadn't been able to make it work before. So
378 far it looks like it's actually running, but this needs more
388 far it looks like it's actually running, but this needs more
379 testing. If it really works, I'll be *very* happy, and we'll owe
389 testing. If it really works, I'll be *very* happy, and we'll owe
380 a huge thank you to Tomer. My current implementation is ugly,
390 a huge thank you to Tomer. My current implementation is ugly,
381 hackish and uses nasty globals, but I don't want to try and clean
391 hackish and uses nasty globals, but I don't want to try and clean
382 anything up until we know if it actually works.
392 anything up until we know if it actually works.
383
393
384 NOTE: this feature needs ctypes to work. ctypes is included in
394 NOTE: this feature needs ctypes to work. ctypes is included in
385 Python2.5, but 2.4 users will need to manually install it. This
395 Python2.5, but 2.4 users will need to manually install it. This
386 feature makes multi-threaded shells so much more usable that it's
396 feature makes multi-threaded shells so much more usable that it's
387 a minor price to pay (ctypes is very easy to install, already a
397 a minor price to pay (ctypes is very easy to install, already a
388 requirement for win32 and available in major linux distros).
398 requirement for win32 and available in major linux distros).
389
399
390 2007-04-04 Ville Vainio <vivainio@gmail.com>
400 2007-04-04 Ville Vainio <vivainio@gmail.com>
391
401
392 * Extensions/ipy_completers.py, ipy_stock_completers.py:
402 * Extensions/ipy_completers.py, ipy_stock_completers.py:
393 Moved implementations of 'bundled' completers to ipy_completers.py,
403 Moved implementations of 'bundled' completers to ipy_completers.py,
394 they are only enabled in ipy_stock_completers.py.
404 they are only enabled in ipy_stock_completers.py.
395
405
396 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
397
407
398 * IPython/PyColorize.py (Parser.format2): Fix identation of
408 * IPython/PyColorize.py (Parser.format2): Fix identation of
399 colorzied output and return early if color scheme is NoColor, to
409 colorzied output and return early if color scheme is NoColor, to
400 avoid unnecessary and expensive tokenization. Closes #131.
410 avoid unnecessary and expensive tokenization. Closes #131.
401
411
402 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
412 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
403
413
404 * IPython/Debugger.py: disable the use of pydb version 1.17. It
414 * IPython/Debugger.py: disable the use of pydb version 1.17. It
405 has a critical bug (a missing import that makes post-mortem not
415 has a critical bug (a missing import that makes post-mortem not
406 work at all). Unfortunately as of this time, this is the version
416 work at all). Unfortunately as of this time, this is the version
407 shipped with Ubuntu Edgy, so quite a few people have this one. I
417 shipped with Ubuntu Edgy, so quite a few people have this one. I
408 hope Edgy will update to a more recent package.
418 hope Edgy will update to a more recent package.
409
419
410 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
420 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
411
421
412 * IPython/iplib.py (_prefilter): close #52, second part of a patch
422 * IPython/iplib.py (_prefilter): close #52, second part of a patch
413 set by Stefan (only the first part had been applied before).
423 set by Stefan (only the first part had been applied before).
414
424
415 * IPython/Extensions/ipy_stock_completers.py (module_completer):
425 * IPython/Extensions/ipy_stock_completers.py (module_completer):
416 remove usage of the dangerous pkgutil.walk_packages(). See
426 remove usage of the dangerous pkgutil.walk_packages(). See
417 details in comments left in the code.
427 details in comments left in the code.
418
428
419 * IPython/Magic.py (magic_whos): add support for numpy arrays
429 * IPython/Magic.py (magic_whos): add support for numpy arrays
420 similar to what we had for Numeric.
430 similar to what we had for Numeric.
421
431
422 * IPython/completer.py (IPCompleter.complete): extend the
432 * IPython/completer.py (IPCompleter.complete): extend the
423 complete() call API to support completions by other mechanisms
433 complete() call API to support completions by other mechanisms
424 than readline. Closes #109.
434 than readline. Closes #109.
425
435
426 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
436 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
427 protect against a bug in Python's execfile(). Closes #123.
437 protect against a bug in Python's execfile(). Closes #123.
428
438
429 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
439 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
430
440
431 * IPython/iplib.py (split_user_input): ensure that when splitting
441 * IPython/iplib.py (split_user_input): ensure that when splitting
432 user input, the part that can be treated as a python name is pure
442 user input, the part that can be treated as a python name is pure
433 ascii (Python identifiers MUST be pure ascii). Part of the
443 ascii (Python identifiers MUST be pure ascii). Part of the
434 ongoing Unicode support work.
444 ongoing Unicode support work.
435
445
436 * IPython/Prompts.py (prompt_specials_color): Add \N for the
446 * IPython/Prompts.py (prompt_specials_color): Add \N for the
437 actual prompt number, without any coloring. This allows users to
447 actual prompt number, without any coloring. This allows users to
438 produce numbered prompts with their own colors. Added after a
448 produce numbered prompts with their own colors. Added after a
439 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
449 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
440
450
441 2007-03-31 Walter Doerwald <walter@livinglogic.de>
451 2007-03-31 Walter Doerwald <walter@livinglogic.de>
442
452
443 * IPython/Extensions/igrid.py: Map the return key
453 * IPython/Extensions/igrid.py: Map the return key
444 to enter() and shift-return to enterattr().
454 to enter() and shift-return to enterattr().
445
455
446 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
456 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
447
457
448 * IPython/Magic.py (magic_psearch): add unicode support by
458 * IPython/Magic.py (magic_psearch): add unicode support by
449 encoding to ascii the input, since this routine also only deals
459 encoding to ascii the input, since this routine also only deals
450 with valid Python names. Fixes a bug reported by Stefan.
460 with valid Python names. Fixes a bug reported by Stefan.
451
461
452 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
462 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
453
463
454 * IPython/Magic.py (_inspect): convert unicode input into ascii
464 * IPython/Magic.py (_inspect): convert unicode input into ascii
455 before trying to evaluate it as a Python identifier. This fixes a
465 before trying to evaluate it as a Python identifier. This fixes a
456 problem that the new unicode support had introduced when analyzing
466 problem that the new unicode support had introduced when analyzing
457 long definition lines for functions.
467 long definition lines for functions.
458
468
459 2007-03-24 Walter Doerwald <walter@livinglogic.de>
469 2007-03-24 Walter Doerwald <walter@livinglogic.de>
460
470
461 * IPython/Extensions/igrid.py: Fix picking. Using
471 * IPython/Extensions/igrid.py: Fix picking. Using
462 igrid with wxPython 2.6 and -wthread should work now.
472 igrid with wxPython 2.6 and -wthread should work now.
463 igrid.display() simply tries to create a frame without
473 igrid.display() simply tries to create a frame without
464 an application. Only if this fails an application is created.
474 an application. Only if this fails an application is created.
465
475
466 2007-03-23 Walter Doerwald <walter@livinglogic.de>
476 2007-03-23 Walter Doerwald <walter@livinglogic.de>
467
477
468 * IPython/Extensions/path.py: Updated to version 2.2.
478 * IPython/Extensions/path.py: Updated to version 2.2.
469
479
470 2007-03-23 Ville Vainio <vivainio@gmail.com>
480 2007-03-23 Ville Vainio <vivainio@gmail.com>
471
481
472 * iplib.py: recursive alias expansion now works better, so that
482 * iplib.py: recursive alias expansion now works better, so that
473 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
483 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
474 doesn't trip up the process, if 'd' has been aliased to 'ls'.
484 doesn't trip up the process, if 'd' has been aliased to 'ls'.
475
485
476 * Extensions/ipy_gnuglobal.py added, provides %global magic
486 * Extensions/ipy_gnuglobal.py added, provides %global magic
477 for users of http://www.gnu.org/software/global
487 for users of http://www.gnu.org/software/global
478
488
479 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
489 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
480 Closes #52. Patch by Stefan van der Walt.
490 Closes #52. Patch by Stefan van der Walt.
481
491
482 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
492 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
483
493
484 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
494 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
485 respect the __file__ attribute when using %run. Thanks to a bug
495 respect the __file__ attribute when using %run. Thanks to a bug
486 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
496 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
487
497
488 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
498 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
489
499
490 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
500 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
491 input. Patch sent by Stefan.
501 input. Patch sent by Stefan.
492
502
493 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
503 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
494 * IPython/Extensions/ipy_stock_completer.py
504 * IPython/Extensions/ipy_stock_completer.py
495 shlex_split, fix bug in shlex_split. len function
505 shlex_split, fix bug in shlex_split. len function
496 call was missing an if statement. Caused shlex_split to
506 call was missing an if statement. Caused shlex_split to
497 sometimes return "" as last element.
507 sometimes return "" as last element.
498
508
499 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
509 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
500
510
501 * IPython/completer.py
511 * IPython/completer.py
502 (IPCompleter.file_matches.single_dir_expand): fix a problem
512 (IPCompleter.file_matches.single_dir_expand): fix a problem
503 reported by Stefan, where directories containign a single subdir
513 reported by Stefan, where directories containign a single subdir
504 would be completed too early.
514 would be completed too early.
505
515
506 * IPython/Shell.py (_load_pylab): Make the execution of 'from
516 * IPython/Shell.py (_load_pylab): Make the execution of 'from
507 pylab import *' when -pylab is given be optional. A new flag,
517 pylab import *' when -pylab is given be optional. A new flag,
508 pylab_import_all controls this behavior, the default is True for
518 pylab_import_all controls this behavior, the default is True for
509 backwards compatibility.
519 backwards compatibility.
510
520
511 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
521 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
512 modified) R. Bernstein's patch for fully syntax highlighted
522 modified) R. Bernstein's patch for fully syntax highlighted
513 tracebacks. The functionality is also available under ultraTB for
523 tracebacks. The functionality is also available under ultraTB for
514 non-ipython users (someone using ultraTB but outside an ipython
524 non-ipython users (someone using ultraTB but outside an ipython
515 session). They can select the color scheme by setting the
525 session). They can select the color scheme by setting the
516 module-level global DEFAULT_SCHEME. The highlight functionality
526 module-level global DEFAULT_SCHEME. The highlight functionality
517 also works when debugging.
527 also works when debugging.
518
528
519 * IPython/genutils.py (IOStream.close): small patch by
529 * IPython/genutils.py (IOStream.close): small patch by
520 R. Bernstein for improved pydb support.
530 R. Bernstein for improved pydb support.
521
531
522 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
532 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
523 DaveS <davls@telus.net> to improve support of debugging under
533 DaveS <davls@telus.net> to improve support of debugging under
524 NTEmacs, including improved pydb behavior.
534 NTEmacs, including improved pydb behavior.
525
535
526 * IPython/Magic.py (magic_prun): Fix saving of profile info for
536 * IPython/Magic.py (magic_prun): Fix saving of profile info for
527 Python 2.5, where the stats object API changed a little. Thanks
537 Python 2.5, where the stats object API changed a little. Thanks
528 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
538 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
529
539
530 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
540 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
531 Pernetty's patch to improve support for (X)Emacs under Win32.
541 Pernetty's patch to improve support for (X)Emacs under Win32.
532
542
533 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
543 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
534
544
535 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
545 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
536 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
546 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
537 a report by Nik Tautenhahn.
547 a report by Nik Tautenhahn.
538
548
539 2007-03-16 Walter Doerwald <walter@livinglogic.de>
549 2007-03-16 Walter Doerwald <walter@livinglogic.de>
540
550
541 * setup.py: Add the igrid help files to the list of data files
551 * setup.py: Add the igrid help files to the list of data files
542 to be installed alongside igrid.
552 to be installed alongside igrid.
543 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
553 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
544 Show the input object of the igrid browser as the window tile.
554 Show the input object of the igrid browser as the window tile.
545 Show the object the cursor is on in the statusbar.
555 Show the object the cursor is on in the statusbar.
546
556
547 2007-03-15 Ville Vainio <vivainio@gmail.com>
557 2007-03-15 Ville Vainio <vivainio@gmail.com>
548
558
549 * Extensions/ipy_stock_completers.py: Fixed exception
559 * Extensions/ipy_stock_completers.py: Fixed exception
550 on mismatching quotes in %run completer. Patch by
560 on mismatching quotes in %run completer. Patch by
551 JοΏ½rgen Stenarson. Closes #127.
561 JοΏ½rgen Stenarson. Closes #127.
552
562
553 2007-03-14 Ville Vainio <vivainio@gmail.com>
563 2007-03-14 Ville Vainio <vivainio@gmail.com>
554
564
555 * Extensions/ext_rehashdir.py: Do not do auto_alias
565 * Extensions/ext_rehashdir.py: Do not do auto_alias
556 in %rehashdir, it clobbers %store'd aliases.
566 in %rehashdir, it clobbers %store'd aliases.
557
567
558 * UserConfig/ipy_profile_sh.py: envpersist.py extension
568 * UserConfig/ipy_profile_sh.py: envpersist.py extension
559 (beefed up %env) imported for sh profile.
569 (beefed up %env) imported for sh profile.
560
570
561 2007-03-10 Walter Doerwald <walter@livinglogic.de>
571 2007-03-10 Walter Doerwald <walter@livinglogic.de>
562
572
563 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
573 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
564 as the default browser.
574 as the default browser.
565 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
575 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
566 As igrid displays all attributes it ever encounters, fetch() (which has
576 As igrid displays all attributes it ever encounters, fetch() (which has
567 been renamed to _fetch()) doesn't have to recalculate the display attributes
577 been renamed to _fetch()) doesn't have to recalculate the display attributes
568 every time a new item is fetched. This should speed up scrolling.
578 every time a new item is fetched. This should speed up scrolling.
569
579
570 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
580 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
571
581
572 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
582 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
573 Schmolck's recently reported tab-completion bug (my previous one
583 Schmolck's recently reported tab-completion bug (my previous one
574 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
584 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
575
585
576 2007-03-09 Walter Doerwald <walter@livinglogic.de>
586 2007-03-09 Walter Doerwald <walter@livinglogic.de>
577
587
578 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
588 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
579 Close help window if exiting igrid.
589 Close help window if exiting igrid.
580
590
581 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
591 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
582
592
583 * IPython/Extensions/ipy_defaults.py: Check if readline is available
593 * IPython/Extensions/ipy_defaults.py: Check if readline is available
584 before calling functions from readline.
594 before calling functions from readline.
585
595
586 2007-03-02 Walter Doerwald <walter@livinglogic.de>
596 2007-03-02 Walter Doerwald <walter@livinglogic.de>
587
597
588 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
598 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
589 igrid is a wxPython-based display object for ipipe. If your system has
599 igrid is a wxPython-based display object for ipipe. If your system has
590 wx installed igrid will be the default display. Without wx ipipe falls
600 wx installed igrid will be the default display. Without wx ipipe falls
591 back to ibrowse (which needs curses). If no curses is installed ipipe
601 back to ibrowse (which needs curses). If no curses is installed ipipe
592 falls back to idump.
602 falls back to idump.
593
603
594 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
604 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
595
605
596 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
606 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
597 my changes from yesterday, they introduced bugs. Will reactivate
607 my changes from yesterday, they introduced bugs. Will reactivate
598 once I get a correct solution, which will be much easier thanks to
608 once I get a correct solution, which will be much easier thanks to
599 Dan Milstein's new prefilter test suite.
609 Dan Milstein's new prefilter test suite.
600
610
601 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
611 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
602
612
603 * IPython/iplib.py (split_user_input): fix input splitting so we
613 * IPython/iplib.py (split_user_input): fix input splitting so we
604 don't attempt attribute accesses on things that can't possibly be
614 don't attempt attribute accesses on things that can't possibly be
605 valid Python attributes. After a bug report by Alex Schmolck.
615 valid Python attributes. After a bug report by Alex Schmolck.
606 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
616 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
607 %magic with explicit % prefix.
617 %magic with explicit % prefix.
608
618
609 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
619 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
610
620
611 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
621 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
612 avoid a DeprecationWarning from GTK.
622 avoid a DeprecationWarning from GTK.
613
623
614 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
624 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
615
625
616 * IPython/genutils.py (clock): I modified clock() to return total
626 * IPython/genutils.py (clock): I modified clock() to return total
617 time, user+system. This is a more commonly needed metric. I also
627 time, user+system. This is a more commonly needed metric. I also
618 introduced the new clocku/clocks to get only user/system time if
628 introduced the new clocku/clocks to get only user/system time if
619 one wants those instead.
629 one wants those instead.
620
630
621 ***WARNING: API CHANGE*** clock() used to return only user time,
631 ***WARNING: API CHANGE*** clock() used to return only user time,
622 so if you want exactly the same results as before, use clocku
632 so if you want exactly the same results as before, use clocku
623 instead.
633 instead.
624
634
625 2007-02-22 Ville Vainio <vivainio@gmail.com>
635 2007-02-22 Ville Vainio <vivainio@gmail.com>
626
636
627 * IPython/Extensions/ipy_p4.py: Extension for improved
637 * IPython/Extensions/ipy_p4.py: Extension for improved
628 p4 (perforce version control system) experience.
638 p4 (perforce version control system) experience.
629 Adds %p4 magic with p4 command completion and
639 Adds %p4 magic with p4 command completion and
630 automatic -G argument (marshall output as python dict)
640 automatic -G argument (marshall output as python dict)
631
641
632 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
642 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
633
643
634 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
644 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
635 stop marks.
645 stop marks.
636 (ClearingMixin): a simple mixin to easily make a Demo class clear
646 (ClearingMixin): a simple mixin to easily make a Demo class clear
637 the screen in between blocks and have empty marquees. The
647 the screen in between blocks and have empty marquees. The
638 ClearDemo and ClearIPDemo classes that use it are included.
648 ClearDemo and ClearIPDemo classes that use it are included.
639
649
640 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
650 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
641
651
642 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
652 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
643 protect against exceptions at Python shutdown time. Patch
653 protect against exceptions at Python shutdown time. Patch
644 sumbmitted to upstream.
654 sumbmitted to upstream.
645
655
646 2007-02-14 Walter Doerwald <walter@livinglogic.de>
656 2007-02-14 Walter Doerwald <walter@livinglogic.de>
647
657
648 * IPython/Extensions/ibrowse.py: If entering the first object level
658 * IPython/Extensions/ibrowse.py: If entering the first object level
649 (i.e. the object for which the browser has been started) fails,
659 (i.e. the object for which the browser has been started) fails,
650 now the error is raised directly (aborting the browser) instead of
660 now the error is raised directly (aborting the browser) instead of
651 running into an empty levels list later.
661 running into an empty levels list later.
652
662
653 2007-02-03 Walter Doerwald <walter@livinglogic.de>
663 2007-02-03 Walter Doerwald <walter@livinglogic.de>
654
664
655 * IPython/Extensions/ipipe.py: Add an xrepr implementation
665 * IPython/Extensions/ipipe.py: Add an xrepr implementation
656 for the noitem object.
666 for the noitem object.
657
667
658 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
668 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
659
669
660 * IPython/completer.py (Completer.attr_matches): Fix small
670 * IPython/completer.py (Completer.attr_matches): Fix small
661 tab-completion bug with Enthought Traits objects with units.
671 tab-completion bug with Enthought Traits objects with units.
662 Thanks to a bug report by Tom Denniston
672 Thanks to a bug report by Tom Denniston
663 <tom.denniston-AT-alum.dartmouth.org>.
673 <tom.denniston-AT-alum.dartmouth.org>.
664
674
665 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
675 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
666
676
667 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
677 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
668 bug where only .ipy or .py would be completed. Once the first
678 bug where only .ipy or .py would be completed. Once the first
669 argument to %run has been given, all completions are valid because
679 argument to %run has been given, all completions are valid because
670 they are the arguments to the script, which may well be non-python
680 they are the arguments to the script, which may well be non-python
671 filenames.
681 filenames.
672
682
673 * IPython/irunner.py (InteractiveRunner.run_source): major updates
683 * IPython/irunner.py (InteractiveRunner.run_source): major updates
674 to irunner to allow it to correctly support real doctesting of
684 to irunner to allow it to correctly support real doctesting of
675 out-of-process ipython code.
685 out-of-process ipython code.
676
686
677 * IPython/Magic.py (magic_cd): Make the setting of the terminal
687 * IPython/Magic.py (magic_cd): Make the setting of the terminal
678 title an option (-noterm_title) because it completely breaks
688 title an option (-noterm_title) because it completely breaks
679 doctesting.
689 doctesting.
680
690
681 * IPython/demo.py: fix IPythonDemo class that was not actually working.
691 * IPython/demo.py: fix IPythonDemo class that was not actually working.
682
692
683 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
693 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
684
694
685 * IPython/irunner.py (main): fix small bug where extensions were
695 * IPython/irunner.py (main): fix small bug where extensions were
686 not being correctly recognized.
696 not being correctly recognized.
687
697
688 2007-01-23 Walter Doerwald <walter@livinglogic.de>
698 2007-01-23 Walter Doerwald <walter@livinglogic.de>
689
699
690 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
700 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
691 a string containing a single line yields the string itself as the
701 a string containing a single line yields the string itself as the
692 only item.
702 only item.
693
703
694 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
704 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
695 object if it's the same as the one on the last level (This avoids
705 object if it's the same as the one on the last level (This avoids
696 infinite recursion for one line strings).
706 infinite recursion for one line strings).
697
707
698 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
708 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
699
709
700 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
710 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
701 all output streams before printing tracebacks. This ensures that
711 all output streams before printing tracebacks. This ensures that
702 user output doesn't end up interleaved with traceback output.
712 user output doesn't end up interleaved with traceback output.
703
713
704 2007-01-10 Ville Vainio <vivainio@gmail.com>
714 2007-01-10 Ville Vainio <vivainio@gmail.com>
705
715
706 * Extensions/envpersist.py: Turbocharged %env that remembers
716 * Extensions/envpersist.py: Turbocharged %env that remembers
707 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
717 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
708 "%env VISUAL=jed".
718 "%env VISUAL=jed".
709
719
710 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
720 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
711
721
712 * IPython/iplib.py (showtraceback): ensure that we correctly call
722 * IPython/iplib.py (showtraceback): ensure that we correctly call
713 custom handlers in all cases (some with pdb were slipping through,
723 custom handlers in all cases (some with pdb were slipping through,
714 but I'm not exactly sure why).
724 but I'm not exactly sure why).
715
725
716 * IPython/Debugger.py (Tracer.__init__): added new class to
726 * IPython/Debugger.py (Tracer.__init__): added new class to
717 support set_trace-like usage of IPython's enhanced debugger.
727 support set_trace-like usage of IPython's enhanced debugger.
718
728
719 2006-12-24 Ville Vainio <vivainio@gmail.com>
729 2006-12-24 Ville Vainio <vivainio@gmail.com>
720
730
721 * ipmaker.py: more informative message when ipy_user_conf
731 * ipmaker.py: more informative message when ipy_user_conf
722 import fails (suggest running %upgrade).
732 import fails (suggest running %upgrade).
723
733
724 * tools/run_ipy_in_profiler.py: Utility to see where
734 * tools/run_ipy_in_profiler.py: Utility to see where
725 the time during IPython startup is spent.
735 the time during IPython startup is spent.
726
736
727 2006-12-20 Ville Vainio <vivainio@gmail.com>
737 2006-12-20 Ville Vainio <vivainio@gmail.com>
728
738
729 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
739 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
730
740
731 * ipapi.py: Add new ipapi method, expand_alias.
741 * ipapi.py: Add new ipapi method, expand_alias.
732
742
733 * Release.py: Bump up version to 0.7.4.svn
743 * Release.py: Bump up version to 0.7.4.svn
734
744
735 2006-12-17 Ville Vainio <vivainio@gmail.com>
745 2006-12-17 Ville Vainio <vivainio@gmail.com>
736
746
737 * Extensions/jobctrl.py: Fixed &cmd arg arg...
747 * Extensions/jobctrl.py: Fixed &cmd arg arg...
738 to work properly on posix too
748 to work properly on posix too
739
749
740 * Release.py: Update revnum (version is still just 0.7.3).
750 * Release.py: Update revnum (version is still just 0.7.3).
741
751
742 2006-12-15 Ville Vainio <vivainio@gmail.com>
752 2006-12-15 Ville Vainio <vivainio@gmail.com>
743
753
744 * scripts/ipython_win_post_install: create ipython.py in
754 * scripts/ipython_win_post_install: create ipython.py in
745 prefix + "/scripts".
755 prefix + "/scripts".
746
756
747 * Release.py: Update version to 0.7.3.
757 * Release.py: Update version to 0.7.3.
748
758
749 2006-12-14 Ville Vainio <vivainio@gmail.com>
759 2006-12-14 Ville Vainio <vivainio@gmail.com>
750
760
751 * scripts/ipython_win_post_install: Overwrite old shortcuts
761 * scripts/ipython_win_post_install: Overwrite old shortcuts
752 if they already exist
762 if they already exist
753
763
754 * Release.py: release 0.7.3rc2
764 * Release.py: release 0.7.3rc2
755
765
756 2006-12-13 Ville Vainio <vivainio@gmail.com>
766 2006-12-13 Ville Vainio <vivainio@gmail.com>
757
767
758 * Branch and update Release.py for 0.7.3rc1
768 * Branch and update Release.py for 0.7.3rc1
759
769
760 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
770 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
761
771
762 * IPython/Shell.py (IPShellWX): update for current WX naming
772 * IPython/Shell.py (IPShellWX): update for current WX naming
763 conventions, to avoid a deprecation warning with current WX
773 conventions, to avoid a deprecation warning with current WX
764 versions. Thanks to a report by Danny Shevitz.
774 versions. Thanks to a report by Danny Shevitz.
765
775
766 2006-12-12 Ville Vainio <vivainio@gmail.com>
776 2006-12-12 Ville Vainio <vivainio@gmail.com>
767
777
768 * ipmaker.py: apply david cournapeau's patch to make
778 * ipmaker.py: apply david cournapeau's patch to make
769 import_some work properly even when ipythonrc does
779 import_some work properly even when ipythonrc does
770 import_some on empty list (it was an old bug!).
780 import_some on empty list (it was an old bug!).
771
781
772 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
782 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
773 Add deprecation note to ipythonrc and a url to wiki
783 Add deprecation note to ipythonrc and a url to wiki
774 in ipy_user_conf.py
784 in ipy_user_conf.py
775
785
776
786
777 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
787 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
778 as if it was typed on IPython command prompt, i.e.
788 as if it was typed on IPython command prompt, i.e.
779 as IPython script.
789 as IPython script.
780
790
781 * example-magic.py, magic_grepl.py: remove outdated examples
791 * example-magic.py, magic_grepl.py: remove outdated examples
782
792
783 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
793 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
784
794
785 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
795 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
786 is called before any exception has occurred.
796 is called before any exception has occurred.
787
797
788 2006-12-08 Ville Vainio <vivainio@gmail.com>
798 2006-12-08 Ville Vainio <vivainio@gmail.com>
789
799
790 * Extensions/ipy_stock_completers.py: fix cd completer
800 * Extensions/ipy_stock_completers.py: fix cd completer
791 to translate /'s to \'s again.
801 to translate /'s to \'s again.
792
802
793 * completer.py: prevent traceback on file completions w/
803 * completer.py: prevent traceback on file completions w/
794 backslash.
804 backslash.
795
805
796 * Release.py: Update release number to 0.7.3b3 for release
806 * Release.py: Update release number to 0.7.3b3 for release
797
807
798 2006-12-07 Ville Vainio <vivainio@gmail.com>
808 2006-12-07 Ville Vainio <vivainio@gmail.com>
799
809
800 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
810 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
801 while executing external code. Provides more shell-like behaviour
811 while executing external code. Provides more shell-like behaviour
802 and overall better response to ctrl + C / ctrl + break.
812 and overall better response to ctrl + C / ctrl + break.
803
813
804 * tools/make_tarball.py: new script to create tarball straight from svn
814 * tools/make_tarball.py: new script to create tarball straight from svn
805 (setup.py sdist doesn't work on win32).
815 (setup.py sdist doesn't work on win32).
806
816
807 * Extensions/ipy_stock_completers.py: fix cd completer to give up
817 * Extensions/ipy_stock_completers.py: fix cd completer to give up
808 on dirnames with spaces and use the default completer instead.
818 on dirnames with spaces and use the default completer instead.
809
819
810 * Revision.py: Change version to 0.7.3b2 for release.
820 * Revision.py: Change version to 0.7.3b2 for release.
811
821
812 2006-12-05 Ville Vainio <vivainio@gmail.com>
822 2006-12-05 Ville Vainio <vivainio@gmail.com>
813
823
814 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
824 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
815 pydb patch 4 (rm debug printing, py 2.5 checking)
825 pydb patch 4 (rm debug printing, py 2.5 checking)
816
826
817 2006-11-30 Walter Doerwald <walter@livinglogic.de>
827 2006-11-30 Walter Doerwald <walter@livinglogic.de>
818 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
828 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
819 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
829 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
820 "refreshfind" (mapped to "R") does the same but tries to go back to the same
830 "refreshfind" (mapped to "R") does the same but tries to go back to the same
821 object the cursor was on before the refresh. The command "markrange" is
831 object the cursor was on before the refresh. The command "markrange" is
822 mapped to "%" now.
832 mapped to "%" now.
823 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
833 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
824
834
825 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
835 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
826
836
827 * IPython/Magic.py (magic_debug): new %debug magic to activate the
837 * IPython/Magic.py (magic_debug): new %debug magic to activate the
828 interactive debugger on the last traceback, without having to call
838 interactive debugger on the last traceback, without having to call
829 %pdb and rerun your code. Made minor changes in various modules,
839 %pdb and rerun your code. Made minor changes in various modules,
830 should automatically recognize pydb if available.
840 should automatically recognize pydb if available.
831
841
832 2006-11-28 Ville Vainio <vivainio@gmail.com>
842 2006-11-28 Ville Vainio <vivainio@gmail.com>
833
843
834 * completer.py: If the text start with !, show file completions
844 * completer.py: If the text start with !, show file completions
835 properly. This helps when trying to complete command name
845 properly. This helps when trying to complete command name
836 for shell escapes.
846 for shell escapes.
837
847
838 2006-11-27 Ville Vainio <vivainio@gmail.com>
848 2006-11-27 Ville Vainio <vivainio@gmail.com>
839
849
840 * ipy_stock_completers.py: bzr completer submitted by Stefan van
850 * ipy_stock_completers.py: bzr completer submitted by Stefan van
841 der Walt. Clean up svn and hg completers by using a common
851 der Walt. Clean up svn and hg completers by using a common
842 vcs_completer.
852 vcs_completer.
843
853
844 2006-11-26 Ville Vainio <vivainio@gmail.com>
854 2006-11-26 Ville Vainio <vivainio@gmail.com>
845
855
846 * Remove ipconfig and %config; you should use _ip.options structure
856 * Remove ipconfig and %config; you should use _ip.options structure
847 directly instead!
857 directly instead!
848
858
849 * genutils.py: add wrap_deprecated function for deprecating callables
859 * genutils.py: add wrap_deprecated function for deprecating callables
850
860
851 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
861 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
852 _ip.system instead. ipalias is redundant.
862 _ip.system instead. ipalias is redundant.
853
863
854 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
864 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
855 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
865 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
856 explicit.
866 explicit.
857
867
858 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
868 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
859 completer. Try it by entering 'hg ' and pressing tab.
869 completer. Try it by entering 'hg ' and pressing tab.
860
870
861 * macro.py: Give Macro a useful __repr__ method
871 * macro.py: Give Macro a useful __repr__ method
862
872
863 * Magic.py: %whos abbreviates the typename of Macro for brevity.
873 * Magic.py: %whos abbreviates the typename of Macro for brevity.
864
874
865 2006-11-24 Walter Doerwald <walter@livinglogic.de>
875 2006-11-24 Walter Doerwald <walter@livinglogic.de>
866 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
876 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
867 we don't get a duplicate ipipe module, where registration of the xrepr
877 we don't get a duplicate ipipe module, where registration of the xrepr
868 implementation for Text is useless.
878 implementation for Text is useless.
869
879
870 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
880 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
871
881
872 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
882 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
873
883
874 2006-11-24 Ville Vainio <vivainio@gmail.com>
884 2006-11-24 Ville Vainio <vivainio@gmail.com>
875
885
876 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
886 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
877 try to use "cProfile" instead of the slower pure python
887 try to use "cProfile" instead of the slower pure python
878 "profile"
888 "profile"
879
889
880 2006-11-23 Ville Vainio <vivainio@gmail.com>
890 2006-11-23 Ville Vainio <vivainio@gmail.com>
881
891
882 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
892 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
883 Qt+IPython+Designer link in documentation.
893 Qt+IPython+Designer link in documentation.
884
894
885 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
895 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
886 correct Pdb object to %pydb.
896 correct Pdb object to %pydb.
887
897
888
898
889 2006-11-22 Walter Doerwald <walter@livinglogic.de>
899 2006-11-22 Walter Doerwald <walter@livinglogic.de>
890 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
900 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
891 generic xrepr(), otherwise the list implementation would kick in.
901 generic xrepr(), otherwise the list implementation would kick in.
892
902
893 2006-11-21 Ville Vainio <vivainio@gmail.com>
903 2006-11-21 Ville Vainio <vivainio@gmail.com>
894
904
895 * upgrade_dir.py: Now actually overwrites a nonmodified user file
905 * upgrade_dir.py: Now actually overwrites a nonmodified user file
896 with one from UserConfig.
906 with one from UserConfig.
897
907
898 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
908 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
899 it was missing which broke the sh profile.
909 it was missing which broke the sh profile.
900
910
901 * completer.py: file completer now uses explicit '/' instead
911 * completer.py: file completer now uses explicit '/' instead
902 of os.path.join, expansion of 'foo' was broken on win32
912 of os.path.join, expansion of 'foo' was broken on win32
903 if there was one directory with name 'foobar'.
913 if there was one directory with name 'foobar'.
904
914
905 * A bunch of patches from Kirill Smelkov:
915 * A bunch of patches from Kirill Smelkov:
906
916
907 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
917 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
908
918
909 * [patch 7/9] Implement %page -r (page in raw mode) -
919 * [patch 7/9] Implement %page -r (page in raw mode) -
910
920
911 * [patch 5/9] ScientificPython webpage has moved
921 * [patch 5/9] ScientificPython webpage has moved
912
922
913 * [patch 4/9] The manual mentions %ds, should be %dhist
923 * [patch 4/9] The manual mentions %ds, should be %dhist
914
924
915 * [patch 3/9] Kill old bits from %prun doc.
925 * [patch 3/9] Kill old bits from %prun doc.
916
926
917 * [patch 1/9] Fix typos here and there.
927 * [patch 1/9] Fix typos here and there.
918
928
919 2006-11-08 Ville Vainio <vivainio@gmail.com>
929 2006-11-08 Ville Vainio <vivainio@gmail.com>
920
930
921 * completer.py (attr_matches): catch all exceptions raised
931 * completer.py (attr_matches): catch all exceptions raised
922 by eval of expr with dots.
932 by eval of expr with dots.
923
933
924 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
934 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
925
935
926 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
936 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
927 input if it starts with whitespace. This allows you to paste
937 input if it starts with whitespace. This allows you to paste
928 indented input from any editor without manually having to type in
938 indented input from any editor without manually having to type in
929 the 'if 1:', which is convenient when working interactively.
939 the 'if 1:', which is convenient when working interactively.
930 Slightly modifed version of a patch by Bo Peng
940 Slightly modifed version of a patch by Bo Peng
931 <bpeng-AT-rice.edu>.
941 <bpeng-AT-rice.edu>.
932
942
933 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
943 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
934
944
935 * IPython/irunner.py (main): modified irunner so it automatically
945 * IPython/irunner.py (main): modified irunner so it automatically
936 recognizes the right runner to use based on the extension (.py for
946 recognizes the right runner to use based on the extension (.py for
937 python, .ipy for ipython and .sage for sage).
947 python, .ipy for ipython and .sage for sage).
938
948
939 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
949 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
940 visible in ipapi as ip.config(), to programatically control the
950 visible in ipapi as ip.config(), to programatically control the
941 internal rc object. There's an accompanying %config magic for
951 internal rc object. There's an accompanying %config magic for
942 interactive use, which has been enhanced to match the
952 interactive use, which has been enhanced to match the
943 funtionality in ipconfig.
953 funtionality in ipconfig.
944
954
945 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
955 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
946 so it's not just a toggle, it now takes an argument. Add support
956 so it's not just a toggle, it now takes an argument. Add support
947 for a customizable header when making system calls, as the new
957 for a customizable header when making system calls, as the new
948 system_header variable in the ipythonrc file.
958 system_header variable in the ipythonrc file.
949
959
950 2006-11-03 Walter Doerwald <walter@livinglogic.de>
960 2006-11-03 Walter Doerwald <walter@livinglogic.de>
951
961
952 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
962 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
953 generic functions (using Philip J. Eby's simplegeneric package).
963 generic functions (using Philip J. Eby's simplegeneric package).
954 This makes it possible to customize the display of third-party classes
964 This makes it possible to customize the display of third-party classes
955 without having to monkeypatch them. xiter() no longer supports a mode
965 without having to monkeypatch them. xiter() no longer supports a mode
956 argument and the XMode class has been removed. The same functionality can
966 argument and the XMode class has been removed. The same functionality can
957 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
967 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
958 One consequence of the switch to generic functions is that xrepr() and
968 One consequence of the switch to generic functions is that xrepr() and
959 xattrs() implementation must define the default value for the mode
969 xattrs() implementation must define the default value for the mode
960 argument themselves and xattrs() implementations must return real
970 argument themselves and xattrs() implementations must return real
961 descriptors.
971 descriptors.
962
972
963 * IPython/external: This new subpackage will contain all third-party
973 * IPython/external: This new subpackage will contain all third-party
964 packages that are bundled with IPython. (The first one is simplegeneric).
974 packages that are bundled with IPython. (The first one is simplegeneric).
965
975
966 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
976 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
967 directory which as been dropped in r1703.
977 directory which as been dropped in r1703.
968
978
969 * IPython/Extensions/ipipe.py (iless): Fixed.
979 * IPython/Extensions/ipipe.py (iless): Fixed.
970
980
971 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
981 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
972
982
973 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
983 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
974
984
975 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
985 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
976 handling in variable expansion so that shells and magics recognize
986 handling in variable expansion so that shells and magics recognize
977 function local scopes correctly. Bug reported by Brian.
987 function local scopes correctly. Bug reported by Brian.
978
988
979 * scripts/ipython: remove the very first entry in sys.path which
989 * scripts/ipython: remove the very first entry in sys.path which
980 Python auto-inserts for scripts, so that sys.path under IPython is
990 Python auto-inserts for scripts, so that sys.path under IPython is
981 as similar as possible to that under plain Python.
991 as similar as possible to that under plain Python.
982
992
983 * IPython/completer.py (IPCompleter.file_matches): Fix
993 * IPython/completer.py (IPCompleter.file_matches): Fix
984 tab-completion so that quotes are not closed unless the completion
994 tab-completion so that quotes are not closed unless the completion
985 is unambiguous. After a request by Stefan. Minor cleanups in
995 is unambiguous. After a request by Stefan. Minor cleanups in
986 ipy_stock_completers.
996 ipy_stock_completers.
987
997
988 2006-11-02 Ville Vainio <vivainio@gmail.com>
998 2006-11-02 Ville Vainio <vivainio@gmail.com>
989
999
990 * ipy_stock_completers.py: Add %run and %cd completers.
1000 * ipy_stock_completers.py: Add %run and %cd completers.
991
1001
992 * completer.py: Try running custom completer for both
1002 * completer.py: Try running custom completer for both
993 "foo" and "%foo" if the command is just "foo". Ignore case
1003 "foo" and "%foo" if the command is just "foo". Ignore case
994 when filtering possible completions.
1004 when filtering possible completions.
995
1005
996 * UserConfig/ipy_user_conf.py: install stock completers as default
1006 * UserConfig/ipy_user_conf.py: install stock completers as default
997
1007
998 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1008 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
999 simplified readline history save / restore through a wrapper
1009 simplified readline history save / restore through a wrapper
1000 function
1010 function
1001
1011
1002
1012
1003 2006-10-31 Ville Vainio <vivainio@gmail.com>
1013 2006-10-31 Ville Vainio <vivainio@gmail.com>
1004
1014
1005 * strdispatch.py, completer.py, ipy_stock_completers.py:
1015 * strdispatch.py, completer.py, ipy_stock_completers.py:
1006 Allow str_key ("command") in completer hooks. Implement
1016 Allow str_key ("command") in completer hooks. Implement
1007 trivial completer for 'import' (stdlib modules only). Rename
1017 trivial completer for 'import' (stdlib modules only). Rename
1008 ipy_linux_package_managers.py to ipy_stock_completers.py.
1018 ipy_linux_package_managers.py to ipy_stock_completers.py.
1009 SVN completer.
1019 SVN completer.
1010
1020
1011 * Extensions/ledit.py: %magic line editor for easily and
1021 * Extensions/ledit.py: %magic line editor for easily and
1012 incrementally manipulating lists of strings. The magic command
1022 incrementally manipulating lists of strings. The magic command
1013 name is %led.
1023 name is %led.
1014
1024
1015 2006-10-30 Ville Vainio <vivainio@gmail.com>
1025 2006-10-30 Ville Vainio <vivainio@gmail.com>
1016
1026
1017 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1027 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1018 Bernsteins's patches for pydb integration.
1028 Bernsteins's patches for pydb integration.
1019 http://bashdb.sourceforge.net/pydb/
1029 http://bashdb.sourceforge.net/pydb/
1020
1030
1021 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1031 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1022 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1032 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1023 custom completer hook to allow the users to implement their own
1033 custom completer hook to allow the users to implement their own
1024 completers. See ipy_linux_package_managers.py for example. The
1034 completers. See ipy_linux_package_managers.py for example. The
1025 hook name is 'complete_command'.
1035 hook name is 'complete_command'.
1026
1036
1027 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1037 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1038
1029 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1039 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1030 Numeric leftovers.
1040 Numeric leftovers.
1031
1041
1032 * ipython.el (py-execute-region): apply Stefan's patch to fix
1042 * ipython.el (py-execute-region): apply Stefan's patch to fix
1033 garbled results if the python shell hasn't been previously started.
1043 garbled results if the python shell hasn't been previously started.
1034
1044
1035 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1045 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1036 pretty generic function and useful for other things.
1046 pretty generic function and useful for other things.
1037
1047
1038 * IPython/OInspect.py (getsource): Add customizable source
1048 * IPython/OInspect.py (getsource): Add customizable source
1039 extractor. After a request/patch form W. Stein (SAGE).
1049 extractor. After a request/patch form W. Stein (SAGE).
1040
1050
1041 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1051 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1042 window size to a more reasonable value from what pexpect does,
1052 window size to a more reasonable value from what pexpect does,
1043 since their choice causes wrapping bugs with long input lines.
1053 since their choice causes wrapping bugs with long input lines.
1044
1054
1045 2006-10-28 Ville Vainio <vivainio@gmail.com>
1055 2006-10-28 Ville Vainio <vivainio@gmail.com>
1046
1056
1047 * Magic.py (%run): Save and restore the readline history from
1057 * Magic.py (%run): Save and restore the readline history from
1048 file around %run commands to prevent side effects from
1058 file around %run commands to prevent side effects from
1049 %runned programs that might use readline (e.g. pydb).
1059 %runned programs that might use readline (e.g. pydb).
1050
1060
1051 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1061 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1052 invoking the pydb enhanced debugger.
1062 invoking the pydb enhanced debugger.
1053
1063
1054 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1064 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1055
1065
1056 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1066 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1057 call the base class method and propagate the return value to
1067 call the base class method and propagate the return value to
1058 ifile. This is now done by path itself.
1068 ifile. This is now done by path itself.
1059
1069
1060 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1070 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1061
1071
1062 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1072 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1063 api: set_crash_handler(), to expose the ability to change the
1073 api: set_crash_handler(), to expose the ability to change the
1064 internal crash handler.
1074 internal crash handler.
1065
1075
1066 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1076 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1067 the various parameters of the crash handler so that apps using
1077 the various parameters of the crash handler so that apps using
1068 IPython as their engine can customize crash handling. Ipmlemented
1078 IPython as their engine can customize crash handling. Ipmlemented
1069 at the request of SAGE.
1079 at the request of SAGE.
1070
1080
1071 2006-10-14 Ville Vainio <vivainio@gmail.com>
1081 2006-10-14 Ville Vainio <vivainio@gmail.com>
1072
1082
1073 * Magic.py, ipython.el: applied first "safe" part of Rocky
1083 * Magic.py, ipython.el: applied first "safe" part of Rocky
1074 Bernstein's patch set for pydb integration.
1084 Bernstein's patch set for pydb integration.
1075
1085
1076 * Magic.py (%unalias, %alias): %store'd aliases can now be
1086 * Magic.py (%unalias, %alias): %store'd aliases can now be
1077 removed with '%unalias'. %alias w/o args now shows most
1087 removed with '%unalias'. %alias w/o args now shows most
1078 interesting (stored / manually defined) aliases last
1088 interesting (stored / manually defined) aliases last
1079 where they catch the eye w/o scrolling.
1089 where they catch the eye w/o scrolling.
1080
1090
1081 * Magic.py (%rehashx), ext_rehashdir.py: files with
1091 * Magic.py (%rehashx), ext_rehashdir.py: files with
1082 'py' extension are always considered executable, even
1092 'py' extension are always considered executable, even
1083 when not in PATHEXT environment variable.
1093 when not in PATHEXT environment variable.
1084
1094
1085 2006-10-12 Ville Vainio <vivainio@gmail.com>
1095 2006-10-12 Ville Vainio <vivainio@gmail.com>
1086
1096
1087 * jobctrl.py: Add new "jobctrl" extension for spawning background
1097 * jobctrl.py: Add new "jobctrl" extension for spawning background
1088 processes with "&find /". 'import jobctrl' to try it out. Requires
1098 processes with "&find /". 'import jobctrl' to try it out. Requires
1089 'subprocess' module, standard in python 2.4+.
1099 'subprocess' module, standard in python 2.4+.
1090
1100
1091 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1101 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1092 so if foo -> bar and bar -> baz, then foo -> baz.
1102 so if foo -> bar and bar -> baz, then foo -> baz.
1093
1103
1094 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1104 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1095
1105
1096 * IPython/Magic.py (Magic.parse_options): add a new posix option
1106 * IPython/Magic.py (Magic.parse_options): add a new posix option
1097 to allow parsing of input args in magics that doesn't strip quotes
1107 to allow parsing of input args in magics that doesn't strip quotes
1098 (if posix=False). This also closes %timeit bug reported by
1108 (if posix=False). This also closes %timeit bug reported by
1099 Stefan.
1109 Stefan.
1100
1110
1101 2006-10-03 Ville Vainio <vivainio@gmail.com>
1111 2006-10-03 Ville Vainio <vivainio@gmail.com>
1102
1112
1103 * iplib.py (raw_input, interact): Return ValueError catching for
1113 * iplib.py (raw_input, interact): Return ValueError catching for
1104 raw_input. Fixes infinite loop for sys.stdin.close() or
1114 raw_input. Fixes infinite loop for sys.stdin.close() or
1105 sys.stdout.close().
1115 sys.stdout.close().
1106
1116
1107 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1117 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1108
1118
1109 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1119 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1110 to help in handling doctests. irunner is now pretty useful for
1120 to help in handling doctests. irunner is now pretty useful for
1111 running standalone scripts and simulate a full interactive session
1121 running standalone scripts and simulate a full interactive session
1112 in a format that can be then pasted as a doctest.
1122 in a format that can be then pasted as a doctest.
1113
1123
1114 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1124 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1115 on top of the default (useless) ones. This also fixes the nasty
1125 on top of the default (useless) ones. This also fixes the nasty
1116 way in which 2.5's Quitter() exits (reverted [1785]).
1126 way in which 2.5's Quitter() exits (reverted [1785]).
1117
1127
1118 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1128 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1119 2.5.
1129 2.5.
1120
1130
1121 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1131 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1122 color scheme is updated as well when color scheme is changed
1132 color scheme is updated as well when color scheme is changed
1123 interactively.
1133 interactively.
1124
1134
1125 2006-09-27 Ville Vainio <vivainio@gmail.com>
1135 2006-09-27 Ville Vainio <vivainio@gmail.com>
1126
1136
1127 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1137 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1128 infinite loop and just exit. It's a hack, but will do for a while.
1138 infinite loop and just exit. It's a hack, but will do for a while.
1129
1139
1130 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1140 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1131
1141
1132 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1142 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1133 the constructor, this makes it possible to get a list of only directories
1143 the constructor, this makes it possible to get a list of only directories
1134 or only files.
1144 or only files.
1135
1145
1136 2006-08-12 Ville Vainio <vivainio@gmail.com>
1146 2006-08-12 Ville Vainio <vivainio@gmail.com>
1137
1147
1138 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1148 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1139 they broke unittest
1149 they broke unittest
1140
1150
1141 2006-08-11 Ville Vainio <vivainio@gmail.com>
1151 2006-08-11 Ville Vainio <vivainio@gmail.com>
1142
1152
1143 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1153 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1144 by resolving issue properly, i.e. by inheriting FakeModule
1154 by resolving issue properly, i.e. by inheriting FakeModule
1145 from types.ModuleType. Pickling ipython interactive data
1155 from types.ModuleType. Pickling ipython interactive data
1146 should still work as usual (testing appreciated).
1156 should still work as usual (testing appreciated).
1147
1157
1148 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1158 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1149
1159
1150 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1160 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1151 running under python 2.3 with code from 2.4 to fix a bug with
1161 running under python 2.3 with code from 2.4 to fix a bug with
1152 help(). Reported by the Debian maintainers, Norbert Tretkowski
1162 help(). Reported by the Debian maintainers, Norbert Tretkowski
1153 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1163 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1154 <afayolle-AT-debian.org>.
1164 <afayolle-AT-debian.org>.
1155
1165
1156 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1166 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1157
1167
1158 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1168 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1159 (which was displaying "quit" twice).
1169 (which was displaying "quit" twice).
1160
1170
1161 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1171 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1162
1172
1163 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1173 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1164 the mode argument).
1174 the mode argument).
1165
1175
1166 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1176 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1167
1177
1168 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1178 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1169 not running under IPython.
1179 not running under IPython.
1170
1180
1171 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1181 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1172 and make it iterable (iterating over the attribute itself). Add two new
1182 and make it iterable (iterating over the attribute itself). Add two new
1173 magic strings for __xattrs__(): If the string starts with "-", the attribute
1183 magic strings for __xattrs__(): If the string starts with "-", the attribute
1174 will not be displayed in ibrowse's detail view (but it can still be
1184 will not be displayed in ibrowse's detail view (but it can still be
1175 iterated over). This makes it possible to add attributes that are large
1185 iterated over). This makes it possible to add attributes that are large
1176 lists or generator methods to the detail view. Replace magic attribute names
1186 lists or generator methods to the detail view. Replace magic attribute names
1177 and _attrname() and _getattr() with "descriptors": For each type of magic
1187 and _attrname() and _getattr() with "descriptors": For each type of magic
1178 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1188 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1179 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1189 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1180 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1190 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1181 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1191 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1182 are still supported.
1192 are still supported.
1183
1193
1184 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1194 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1185 fails in ibrowse.fetch(), the exception object is added as the last item
1195 fails in ibrowse.fetch(), the exception object is added as the last item
1186 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1196 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1187 a generator throws an exception midway through execution.
1197 a generator throws an exception midway through execution.
1188
1198
1189 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1199 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1190 encoding into methods.
1200 encoding into methods.
1191
1201
1192 2006-07-26 Ville Vainio <vivainio@gmail.com>
1202 2006-07-26 Ville Vainio <vivainio@gmail.com>
1193
1203
1194 * iplib.py: history now stores multiline input as single
1204 * iplib.py: history now stores multiline input as single
1195 history entries. Patch by Jorgen Cederlof.
1205 history entries. Patch by Jorgen Cederlof.
1196
1206
1197 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1207 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1198
1208
1199 * IPython/Extensions/ibrowse.py: Make cursor visible over
1209 * IPython/Extensions/ibrowse.py: Make cursor visible over
1200 non existing attributes.
1210 non existing attributes.
1201
1211
1202 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1212 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1203
1213
1204 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1214 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1205 error output of the running command doesn't mess up the screen.
1215 error output of the running command doesn't mess up the screen.
1206
1216
1207 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1217 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1208
1218
1209 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1219 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1210 argument. This sorts the items themselves.
1220 argument. This sorts the items themselves.
1211
1221
1212 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1222 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1213
1223
1214 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1224 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1215 Compile expression strings into code objects. This should speed
1225 Compile expression strings into code objects. This should speed
1216 up ifilter and friends somewhat.
1226 up ifilter and friends somewhat.
1217
1227
1218 2006-07-08 Ville Vainio <vivainio@gmail.com>
1228 2006-07-08 Ville Vainio <vivainio@gmail.com>
1219
1229
1220 * Magic.py: %cpaste now strips > from the beginning of lines
1230 * Magic.py: %cpaste now strips > from the beginning of lines
1221 to ease pasting quoted code from emails. Contributed by
1231 to ease pasting quoted code from emails. Contributed by
1222 Stefan van der Walt.
1232 Stefan van der Walt.
1223
1233
1224 2006-06-29 Ville Vainio <vivainio@gmail.com>
1234 2006-06-29 Ville Vainio <vivainio@gmail.com>
1225
1235
1226 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1236 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1227 mode, patch contributed by Darren Dale. NEEDS TESTING!
1237 mode, patch contributed by Darren Dale. NEEDS TESTING!
1228
1238
1229 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1239 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1230
1240
1231 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1241 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1232 a blue background. Fix fetching new display rows when the browser
1242 a blue background. Fix fetching new display rows when the browser
1233 scrolls more than a screenful (e.g. by using the goto command).
1243 scrolls more than a screenful (e.g. by using the goto command).
1234
1244
1235 2006-06-27 Ville Vainio <vivainio@gmail.com>
1245 2006-06-27 Ville Vainio <vivainio@gmail.com>
1236
1246
1237 * Magic.py (_inspect, _ofind) Apply David Huard's
1247 * Magic.py (_inspect, _ofind) Apply David Huard's
1238 patch for displaying the correct docstring for 'property'
1248 patch for displaying the correct docstring for 'property'
1239 attributes.
1249 attributes.
1240
1250
1241 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1251 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1242
1252
1243 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1253 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1244 commands into the methods implementing them.
1254 commands into the methods implementing them.
1245
1255
1246 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1256 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1247
1257
1248 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1258 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1249 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1259 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1250 autoindent support was authored by Jin Liu.
1260 autoindent support was authored by Jin Liu.
1251
1261
1252 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1262 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1253
1263
1254 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1264 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1255 for keymaps with a custom class that simplifies handling.
1265 for keymaps with a custom class that simplifies handling.
1256
1266
1257 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1267 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1258
1268
1259 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1269 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1260 resizing. This requires Python 2.5 to work.
1270 resizing. This requires Python 2.5 to work.
1261
1271
1262 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1272 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1263
1273
1264 * IPython/Extensions/ibrowse.py: Add two new commands to
1274 * IPython/Extensions/ibrowse.py: Add two new commands to
1265 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1275 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1266 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1276 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1267 attributes again. Remapped the help command to "?". Display
1277 attributes again. Remapped the help command to "?". Display
1268 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1278 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1269 as keys for the "home" and "end" commands. Add three new commands
1279 as keys for the "home" and "end" commands. Add three new commands
1270 to the input mode for "find" and friends: "delend" (CTRL-K)
1280 to the input mode for "find" and friends: "delend" (CTRL-K)
1271 deletes to the end of line. "incsearchup" searches upwards in the
1281 deletes to the end of line. "incsearchup" searches upwards in the
1272 command history for an input that starts with the text before the cursor.
1282 command history for an input that starts with the text before the cursor.
1273 "incsearchdown" does the same downwards. Removed a bogus mapping of
1283 "incsearchdown" does the same downwards. Removed a bogus mapping of
1274 the x key to "delete".
1284 the x key to "delete".
1275
1285
1276 2006-06-15 Ville Vainio <vivainio@gmail.com>
1286 2006-06-15 Ville Vainio <vivainio@gmail.com>
1277
1287
1278 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1288 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1279 used to create prompts dynamically, instead of the "old" way of
1289 used to create prompts dynamically, instead of the "old" way of
1280 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1290 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1281 way still works (it's invoked by the default hook), of course.
1291 way still works (it's invoked by the default hook), of course.
1282
1292
1283 * Prompts.py: added generate_output_prompt hook for altering output
1293 * Prompts.py: added generate_output_prompt hook for altering output
1284 prompt
1294 prompt
1285
1295
1286 * Release.py: Changed version string to 0.7.3.svn.
1296 * Release.py: Changed version string to 0.7.3.svn.
1287
1297
1288 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1298 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1289
1299
1290 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1300 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1291 the call to fetch() always tries to fetch enough data for at least one
1301 the call to fetch() always tries to fetch enough data for at least one
1292 full screen. This makes it possible to simply call moveto(0,0,True) in
1302 full screen. This makes it possible to simply call moveto(0,0,True) in
1293 the constructor. Fix typos and removed the obsolete goto attribute.
1303 the constructor. Fix typos and removed the obsolete goto attribute.
1294
1304
1295 2006-06-12 Ville Vainio <vivainio@gmail.com>
1305 2006-06-12 Ville Vainio <vivainio@gmail.com>
1296
1306
1297 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1307 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1298 allowing $variable interpolation within multiline statements,
1308 allowing $variable interpolation within multiline statements,
1299 though so far only with "sh" profile for a testing period.
1309 though so far only with "sh" profile for a testing period.
1300 The patch also enables splitting long commands with \ but it
1310 The patch also enables splitting long commands with \ but it
1301 doesn't work properly yet.
1311 doesn't work properly yet.
1302
1312
1303 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1313 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1304
1314
1305 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1315 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1306 input history and the position of the cursor in the input history for
1316 input history and the position of the cursor in the input history for
1307 the find, findbackwards and goto command.
1317 the find, findbackwards and goto command.
1308
1318
1309 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1319 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1310
1320
1311 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1321 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1312 implements the basic functionality of browser commands that require
1322 implements the basic functionality of browser commands that require
1313 input. Reimplement the goto, find and findbackwards commands as
1323 input. Reimplement the goto, find and findbackwards commands as
1314 subclasses of _CommandInput. Add an input history and keymaps to those
1324 subclasses of _CommandInput. Add an input history and keymaps to those
1315 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1325 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1316 execute commands.
1326 execute commands.
1317
1327
1318 2006-06-07 Ville Vainio <vivainio@gmail.com>
1328 2006-06-07 Ville Vainio <vivainio@gmail.com>
1319
1329
1320 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1330 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1321 running the batch files instead of leaving the session open.
1331 running the batch files instead of leaving the session open.
1322
1332
1323 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1333 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1324
1334
1325 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1335 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1326 the original fix was incomplete. Patch submitted by W. Maier.
1336 the original fix was incomplete. Patch submitted by W. Maier.
1327
1337
1328 2006-06-07 Ville Vainio <vivainio@gmail.com>
1338 2006-06-07 Ville Vainio <vivainio@gmail.com>
1329
1339
1330 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1340 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1331 Confirmation prompts can be supressed by 'quiet' option.
1341 Confirmation prompts can be supressed by 'quiet' option.
1332 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1342 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1333
1343
1334 2006-06-06 *** Released version 0.7.2
1344 2006-06-06 *** Released version 0.7.2
1335
1345
1336 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1346 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1337
1347
1338 * IPython/Release.py (version): Made 0.7.2 final for release.
1348 * IPython/Release.py (version): Made 0.7.2 final for release.
1339 Repo tagged and release cut.
1349 Repo tagged and release cut.
1340
1350
1341 2006-06-05 Ville Vainio <vivainio@gmail.com>
1351 2006-06-05 Ville Vainio <vivainio@gmail.com>
1342
1352
1343 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1353 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1344 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1354 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1345
1355
1346 * upgrade_dir.py: try import 'path' module a bit harder
1356 * upgrade_dir.py: try import 'path' module a bit harder
1347 (for %upgrade)
1357 (for %upgrade)
1348
1358
1349 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1359 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1350
1360
1351 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1361 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1352 instead of looping 20 times.
1362 instead of looping 20 times.
1353
1363
1354 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1364 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1355 correctly at initialization time. Bug reported by Krishna Mohan
1365 correctly at initialization time. Bug reported by Krishna Mohan
1356 Gundu <gkmohan-AT-gmail.com> on the user list.
1366 Gundu <gkmohan-AT-gmail.com> on the user list.
1357
1367
1358 * IPython/Release.py (version): Mark 0.7.2 version to start
1368 * IPython/Release.py (version): Mark 0.7.2 version to start
1359 testing for release on 06/06.
1369 testing for release on 06/06.
1360
1370
1361 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1371 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1362
1372
1363 * scripts/irunner: thin script interface so users don't have to
1373 * scripts/irunner: thin script interface so users don't have to
1364 find the module and call it as an executable, since modules rarely
1374 find the module and call it as an executable, since modules rarely
1365 live in people's PATH.
1375 live in people's PATH.
1366
1376
1367 * IPython/irunner.py (InteractiveRunner.__init__): added
1377 * IPython/irunner.py (InteractiveRunner.__init__): added
1368 delaybeforesend attribute to control delays with newer versions of
1378 delaybeforesend attribute to control delays with newer versions of
1369 pexpect. Thanks to detailed help from pexpect's author, Noah
1379 pexpect. Thanks to detailed help from pexpect's author, Noah
1370 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1380 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1371 correctly (it works in NoColor mode).
1381 correctly (it works in NoColor mode).
1372
1382
1373 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1383 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1374 SAGE list, from improper log() calls.
1384 SAGE list, from improper log() calls.
1375
1385
1376 2006-05-31 Ville Vainio <vivainio@gmail.com>
1386 2006-05-31 Ville Vainio <vivainio@gmail.com>
1377
1387
1378 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1388 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1379 with args in parens to work correctly with dirs that have spaces.
1389 with args in parens to work correctly with dirs that have spaces.
1380
1390
1381 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1391 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1382
1392
1383 * IPython/Logger.py (Logger.logstart): add option to log raw input
1393 * IPython/Logger.py (Logger.logstart): add option to log raw input
1384 instead of the processed one. A -r flag was added to the
1394 instead of the processed one. A -r flag was added to the
1385 %logstart magic used for controlling logging.
1395 %logstart magic used for controlling logging.
1386
1396
1387 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1397 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1388
1398
1389 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1399 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1390 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1400 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1391 recognize the option. After a bug report by Will Maier. This
1401 recognize the option. After a bug report by Will Maier. This
1392 closes #64 (will do it after confirmation from W. Maier).
1402 closes #64 (will do it after confirmation from W. Maier).
1393
1403
1394 * IPython/irunner.py: New module to run scripts as if manually
1404 * IPython/irunner.py: New module to run scripts as if manually
1395 typed into an interactive environment, based on pexpect. After a
1405 typed into an interactive environment, based on pexpect. After a
1396 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1406 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1397 ipython-user list. Simple unittests in the tests/ directory.
1407 ipython-user list. Simple unittests in the tests/ directory.
1398
1408
1399 * tools/release: add Will Maier, OpenBSD port maintainer, to
1409 * tools/release: add Will Maier, OpenBSD port maintainer, to
1400 recepients list. We are now officially part of the OpenBSD ports:
1410 recepients list. We are now officially part of the OpenBSD ports:
1401 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1411 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1402 work.
1412 work.
1403
1413
1404 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1414 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1405
1415
1406 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1416 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1407 so that it doesn't break tkinter apps.
1417 so that it doesn't break tkinter apps.
1408
1418
1409 * IPython/iplib.py (_prefilter): fix bug where aliases would
1419 * IPython/iplib.py (_prefilter): fix bug where aliases would
1410 shadow variables when autocall was fully off. Reported by SAGE
1420 shadow variables when autocall was fully off. Reported by SAGE
1411 author William Stein.
1421 author William Stein.
1412
1422
1413 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1423 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1414 at what detail level strings are computed when foo? is requested.
1424 at what detail level strings are computed when foo? is requested.
1415 This allows users to ask for example that the string form of an
1425 This allows users to ask for example that the string form of an
1416 object is only computed when foo?? is called, or even never, by
1426 object is only computed when foo?? is called, or even never, by
1417 setting the object_info_string_level >= 2 in the configuration
1427 setting the object_info_string_level >= 2 in the configuration
1418 file. This new option has been added and documented. After a
1428 file. This new option has been added and documented. After a
1419 request by SAGE to be able to control the printing of very large
1429 request by SAGE to be able to control the printing of very large
1420 objects more easily.
1430 objects more easily.
1421
1431
1422 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1432 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1423
1433
1424 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1434 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1425 from sys.argv, to be 100% consistent with how Python itself works
1435 from sys.argv, to be 100% consistent with how Python itself works
1426 (as seen for example with python -i file.py). After a bug report
1436 (as seen for example with python -i file.py). After a bug report
1427 by Jeffrey Collins.
1437 by Jeffrey Collins.
1428
1438
1429 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1439 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1430 nasty bug which was preventing custom namespaces with -pylab,
1440 nasty bug which was preventing custom namespaces with -pylab,
1431 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1441 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1432 compatibility (long gone from mpl).
1442 compatibility (long gone from mpl).
1433
1443
1434 * IPython/ipapi.py (make_session): name change: create->make. We
1444 * IPython/ipapi.py (make_session): name change: create->make. We
1435 use make in other places (ipmaker,...), it's shorter and easier to
1445 use make in other places (ipmaker,...), it's shorter and easier to
1436 type and say, etc. I'm trying to clean things before 0.7.2 so
1446 type and say, etc. I'm trying to clean things before 0.7.2 so
1437 that I can keep things stable wrt to ipapi in the chainsaw branch.
1447 that I can keep things stable wrt to ipapi in the chainsaw branch.
1438
1448
1439 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1449 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1440 python-mode recognizes our debugger mode. Add support for
1450 python-mode recognizes our debugger mode. Add support for
1441 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1451 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1442 <m.liu.jin-AT-gmail.com> originally written by
1452 <m.liu.jin-AT-gmail.com> originally written by
1443 doxgen-AT-newsmth.net (with minor modifications for xemacs
1453 doxgen-AT-newsmth.net (with minor modifications for xemacs
1444 compatibility)
1454 compatibility)
1445
1455
1446 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1456 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1447 tracebacks when walking the stack so that the stack tracking system
1457 tracebacks when walking the stack so that the stack tracking system
1448 in emacs' python-mode can identify the frames correctly.
1458 in emacs' python-mode can identify the frames correctly.
1449
1459
1450 * IPython/ipmaker.py (make_IPython): make the internal (and
1460 * IPython/ipmaker.py (make_IPython): make the internal (and
1451 default config) autoedit_syntax value false by default. Too many
1461 default config) autoedit_syntax value false by default. Too many
1452 users have complained to me (both on and off-list) about problems
1462 users have complained to me (both on and off-list) about problems
1453 with this option being on by default, so I'm making it default to
1463 with this option being on by default, so I'm making it default to
1454 off. It can still be enabled by anyone via the usual mechanisms.
1464 off. It can still be enabled by anyone via the usual mechanisms.
1455
1465
1456 * IPython/completer.py (Completer.attr_matches): add support for
1466 * IPython/completer.py (Completer.attr_matches): add support for
1457 PyCrust-style _getAttributeNames magic method. Patch contributed
1467 PyCrust-style _getAttributeNames magic method. Patch contributed
1458 by <mscott-AT-goldenspud.com>. Closes #50.
1468 by <mscott-AT-goldenspud.com>. Closes #50.
1459
1469
1460 * IPython/iplib.py (InteractiveShell.__init__): remove the
1470 * IPython/iplib.py (InteractiveShell.__init__): remove the
1461 deletion of exit/quit from __builtin__, which can break
1471 deletion of exit/quit from __builtin__, which can break
1462 third-party tools like the Zope debugging console. The
1472 third-party tools like the Zope debugging console. The
1463 %exit/%quit magics remain. In general, it's probably a good idea
1473 %exit/%quit magics remain. In general, it's probably a good idea
1464 not to delete anything from __builtin__, since we never know what
1474 not to delete anything from __builtin__, since we never know what
1465 that will break. In any case, python now (for 2.5) will support
1475 that will break. In any case, python now (for 2.5) will support
1466 'real' exit/quit, so this issue is moot. Closes #55.
1476 'real' exit/quit, so this issue is moot. Closes #55.
1467
1477
1468 * IPython/genutils.py (with_obj): rename the 'with' function to
1478 * IPython/genutils.py (with_obj): rename the 'with' function to
1469 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1479 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1470 becomes a language keyword. Closes #53.
1480 becomes a language keyword. Closes #53.
1471
1481
1472 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1482 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1473 __file__ attribute to this so it fools more things into thinking
1483 __file__ attribute to this so it fools more things into thinking
1474 it is a real module. Closes #59.
1484 it is a real module. Closes #59.
1475
1485
1476 * IPython/Magic.py (magic_edit): add -n option to open the editor
1486 * IPython/Magic.py (magic_edit): add -n option to open the editor
1477 at a specific line number. After a patch by Stefan van der Walt.
1487 at a specific line number. After a patch by Stefan van der Walt.
1478
1488
1479 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1489 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1480
1490
1481 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1491 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1482 reason the file could not be opened. After automatic crash
1492 reason the file could not be opened. After automatic crash
1483 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1493 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1484 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1494 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1485 (_should_recompile): Don't fire editor if using %bg, since there
1495 (_should_recompile): Don't fire editor if using %bg, since there
1486 is no file in the first place. From the same report as above.
1496 is no file in the first place. From the same report as above.
1487 (raw_input): protect against faulty third-party prefilters. After
1497 (raw_input): protect against faulty third-party prefilters. After
1488 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1498 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1489 while running under SAGE.
1499 while running under SAGE.
1490
1500
1491 2006-05-23 Ville Vainio <vivainio@gmail.com>
1501 2006-05-23 Ville Vainio <vivainio@gmail.com>
1492
1502
1493 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1503 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1494 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1504 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1495 now returns None (again), unless dummy is specifically allowed by
1505 now returns None (again), unless dummy is specifically allowed by
1496 ipapi.get(allow_dummy=True).
1506 ipapi.get(allow_dummy=True).
1497
1507
1498 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1508 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1499
1509
1500 * IPython: remove all 2.2-compatibility objects and hacks from
1510 * IPython: remove all 2.2-compatibility objects and hacks from
1501 everywhere, since we only support 2.3 at this point. Docs
1511 everywhere, since we only support 2.3 at this point. Docs
1502 updated.
1512 updated.
1503
1513
1504 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1514 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1505 Anything requiring extra validation can be turned into a Python
1515 Anything requiring extra validation can be turned into a Python
1506 property in the future. I used a property for the db one b/c
1516 property in the future. I used a property for the db one b/c
1507 there was a nasty circularity problem with the initialization
1517 there was a nasty circularity problem with the initialization
1508 order, which right now I don't have time to clean up.
1518 order, which right now I don't have time to clean up.
1509
1519
1510 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1520 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1511 another locking bug reported by Jorgen. I'm not 100% sure though,
1521 another locking bug reported by Jorgen. I'm not 100% sure though,
1512 so more testing is needed...
1522 so more testing is needed...
1513
1523
1514 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1524 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1515
1525
1516 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1526 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1517 local variables from any routine in user code (typically executed
1527 local variables from any routine in user code (typically executed
1518 with %run) directly into the interactive namespace. Very useful
1528 with %run) directly into the interactive namespace. Very useful
1519 when doing complex debugging.
1529 when doing complex debugging.
1520 (IPythonNotRunning): Changed the default None object to a dummy
1530 (IPythonNotRunning): Changed the default None object to a dummy
1521 whose attributes can be queried as well as called without
1531 whose attributes can be queried as well as called without
1522 exploding, to ease writing code which works transparently both in
1532 exploding, to ease writing code which works transparently both in
1523 and out of ipython and uses some of this API.
1533 and out of ipython and uses some of this API.
1524
1534
1525 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1535 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1526
1536
1527 * IPython/hooks.py (result_display): Fix the fact that our display
1537 * IPython/hooks.py (result_display): Fix the fact that our display
1528 hook was using str() instead of repr(), as the default python
1538 hook was using str() instead of repr(), as the default python
1529 console does. This had gone unnoticed b/c it only happened if
1539 console does. This had gone unnoticed b/c it only happened if
1530 %Pprint was off, but the inconsistency was there.
1540 %Pprint was off, but the inconsistency was there.
1531
1541
1532 2006-05-15 Ville Vainio <vivainio@gmail.com>
1542 2006-05-15 Ville Vainio <vivainio@gmail.com>
1533
1543
1534 * Oinspect.py: Only show docstring for nonexisting/binary files
1544 * Oinspect.py: Only show docstring for nonexisting/binary files
1535 when doing object??, closing ticket #62
1545 when doing object??, closing ticket #62
1536
1546
1537 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1547 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1538
1548
1539 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1549 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1540 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1550 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1541 was being released in a routine which hadn't checked if it had
1551 was being released in a routine which hadn't checked if it had
1542 been the one to acquire it.
1552 been the one to acquire it.
1543
1553
1544 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1554 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1545
1555
1546 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1556 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1547
1557
1548 2006-04-11 Ville Vainio <vivainio@gmail.com>
1558 2006-04-11 Ville Vainio <vivainio@gmail.com>
1549
1559
1550 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1560 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1551 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1561 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1552 prefilters, allowing stuff like magics and aliases in the file.
1562 prefilters, allowing stuff like magics and aliases in the file.
1553
1563
1554 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1564 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1555 added. Supported now are "%clear in" and "%clear out" (clear input and
1565 added. Supported now are "%clear in" and "%clear out" (clear input and
1556 output history, respectively). Also fixed CachedOutput.flush to
1566 output history, respectively). Also fixed CachedOutput.flush to
1557 properly flush the output cache.
1567 properly flush the output cache.
1558
1568
1559 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1569 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1560 half-success (and fail explicitly).
1570 half-success (and fail explicitly).
1561
1571
1562 2006-03-28 Ville Vainio <vivainio@gmail.com>
1572 2006-03-28 Ville Vainio <vivainio@gmail.com>
1563
1573
1564 * iplib.py: Fix quoting of aliases so that only argless ones
1574 * iplib.py: Fix quoting of aliases so that only argless ones
1565 are quoted
1575 are quoted
1566
1576
1567 2006-03-28 Ville Vainio <vivainio@gmail.com>
1577 2006-03-28 Ville Vainio <vivainio@gmail.com>
1568
1578
1569 * iplib.py: Quote aliases with spaces in the name.
1579 * iplib.py: Quote aliases with spaces in the name.
1570 "c:\program files\blah\bin" is now legal alias target.
1580 "c:\program files\blah\bin" is now legal alias target.
1571
1581
1572 * ext_rehashdir.py: Space no longer allowed as arg
1582 * ext_rehashdir.py: Space no longer allowed as arg
1573 separator, since space is legal in path names.
1583 separator, since space is legal in path names.
1574
1584
1575 2006-03-16 Ville Vainio <vivainio@gmail.com>
1585 2006-03-16 Ville Vainio <vivainio@gmail.com>
1576
1586
1577 * upgrade_dir.py: Take path.py from Extensions, correcting
1587 * upgrade_dir.py: Take path.py from Extensions, correcting
1578 %upgrade magic
1588 %upgrade magic
1579
1589
1580 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1590 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1581
1591
1582 * hooks.py: Only enclose editor binary in quotes if legal and
1592 * hooks.py: Only enclose editor binary in quotes if legal and
1583 necessary (space in the name, and is an existing file). Fixes a bug
1593 necessary (space in the name, and is an existing file). Fixes a bug
1584 reported by Zachary Pincus.
1594 reported by Zachary Pincus.
1585
1595
1586 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1596 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1587
1597
1588 * Manual: thanks to a tip on proper color handling for Emacs, by
1598 * Manual: thanks to a tip on proper color handling for Emacs, by
1589 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1599 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1590
1600
1591 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1601 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1592 by applying the provided patch. Thanks to Liu Jin
1602 by applying the provided patch. Thanks to Liu Jin
1593 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1603 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1594 XEmacs/Linux, I'm trusting the submitter that it actually helps
1604 XEmacs/Linux, I'm trusting the submitter that it actually helps
1595 under win32/GNU Emacs. Will revisit if any problems are reported.
1605 under win32/GNU Emacs. Will revisit if any problems are reported.
1596
1606
1597 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1607 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1598
1608
1599 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1609 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1600 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1610 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1601
1611
1602 2006-03-12 Ville Vainio <vivainio@gmail.com>
1612 2006-03-12 Ville Vainio <vivainio@gmail.com>
1603
1613
1604 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1614 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1605 Torsten Marek.
1615 Torsten Marek.
1606
1616
1607 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1617 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1608
1618
1609 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1619 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1610 line ranges works again.
1620 line ranges works again.
1611
1621
1612 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1622 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1613
1623
1614 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1624 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1615 and friends, after a discussion with Zach Pincus on ipython-user.
1625 and friends, after a discussion with Zach Pincus on ipython-user.
1616 I'm not 100% sure, but after thinking about it quite a bit, it may
1626 I'm not 100% sure, but after thinking about it quite a bit, it may
1617 be OK. Testing with the multithreaded shells didn't reveal any
1627 be OK. Testing with the multithreaded shells didn't reveal any
1618 problems, but let's keep an eye out.
1628 problems, but let's keep an eye out.
1619
1629
1620 In the process, I fixed a few things which were calling
1630 In the process, I fixed a few things which were calling
1621 self.InteractiveTB() directly (like safe_execfile), which is a
1631 self.InteractiveTB() directly (like safe_execfile), which is a
1622 mistake: ALL exception reporting should be done by calling
1632 mistake: ALL exception reporting should be done by calling
1623 self.showtraceback(), which handles state and tab-completion and
1633 self.showtraceback(), which handles state and tab-completion and
1624 more.
1634 more.
1625
1635
1626 2006-03-01 Ville Vainio <vivainio@gmail.com>
1636 2006-03-01 Ville Vainio <vivainio@gmail.com>
1627
1637
1628 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1638 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1629 To use, do "from ipipe import *".
1639 To use, do "from ipipe import *".
1630
1640
1631 2006-02-24 Ville Vainio <vivainio@gmail.com>
1641 2006-02-24 Ville Vainio <vivainio@gmail.com>
1632
1642
1633 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1643 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1634 "cleanly" and safely than the older upgrade mechanism.
1644 "cleanly" and safely than the older upgrade mechanism.
1635
1645
1636 2006-02-21 Ville Vainio <vivainio@gmail.com>
1646 2006-02-21 Ville Vainio <vivainio@gmail.com>
1637
1647
1638 * Magic.py: %save works again.
1648 * Magic.py: %save works again.
1639
1649
1640 2006-02-15 Ville Vainio <vivainio@gmail.com>
1650 2006-02-15 Ville Vainio <vivainio@gmail.com>
1641
1651
1642 * Magic.py: %Pprint works again
1652 * Magic.py: %Pprint works again
1643
1653
1644 * Extensions/ipy_sane_defaults.py: Provide everything provided
1654 * Extensions/ipy_sane_defaults.py: Provide everything provided
1645 in default ipythonrc, to make it possible to have a completely empty
1655 in default ipythonrc, to make it possible to have a completely empty
1646 ipythonrc (and thus completely rc-file free configuration)
1656 ipythonrc (and thus completely rc-file free configuration)
1647
1657
1648 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1658 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1649
1659
1650 * IPython/hooks.py (editor): quote the call to the editor command,
1660 * IPython/hooks.py (editor): quote the call to the editor command,
1651 to allow commands with spaces in them. Problem noted by watching
1661 to allow commands with spaces in them. Problem noted by watching
1652 Ian Oswald's video about textpad under win32 at
1662 Ian Oswald's video about textpad under win32 at
1653 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1663 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1654
1664
1655 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1665 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1656 describing magics (we haven't used @ for a loong time).
1666 describing magics (we haven't used @ for a loong time).
1657
1667
1658 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1668 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1659 contributed by marienz to close
1669 contributed by marienz to close
1660 http://www.scipy.net/roundup/ipython/issue53.
1670 http://www.scipy.net/roundup/ipython/issue53.
1661
1671
1662 2006-02-10 Ville Vainio <vivainio@gmail.com>
1672 2006-02-10 Ville Vainio <vivainio@gmail.com>
1663
1673
1664 * genutils.py: getoutput now works in win32 too
1674 * genutils.py: getoutput now works in win32 too
1665
1675
1666 * completer.py: alias and magic completion only invoked
1676 * completer.py: alias and magic completion only invoked
1667 at the first "item" in the line, to avoid "cd %store"
1677 at the first "item" in the line, to avoid "cd %store"
1668 nonsense.
1678 nonsense.
1669
1679
1670 2006-02-09 Ville Vainio <vivainio@gmail.com>
1680 2006-02-09 Ville Vainio <vivainio@gmail.com>
1671
1681
1672 * test/*: Added a unit testing framework (finally).
1682 * test/*: Added a unit testing framework (finally).
1673 '%run runtests.py' to run test_*.
1683 '%run runtests.py' to run test_*.
1674
1684
1675 * ipapi.py: Exposed runlines and set_custom_exc
1685 * ipapi.py: Exposed runlines and set_custom_exc
1676
1686
1677 2006-02-07 Ville Vainio <vivainio@gmail.com>
1687 2006-02-07 Ville Vainio <vivainio@gmail.com>
1678
1688
1679 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1689 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1680 instead use "f(1 2)" as before.
1690 instead use "f(1 2)" as before.
1681
1691
1682 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1692 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1683
1693
1684 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1694 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1685 facilities, for demos processed by the IPython input filter
1695 facilities, for demos processed by the IPython input filter
1686 (IPythonDemo), and for running a script one-line-at-a-time as a
1696 (IPythonDemo), and for running a script one-line-at-a-time as a
1687 demo, both for pure Python (LineDemo) and for IPython-processed
1697 demo, both for pure Python (LineDemo) and for IPython-processed
1688 input (IPythonLineDemo). After a request by Dave Kohel, from the
1698 input (IPythonLineDemo). After a request by Dave Kohel, from the
1689 SAGE team.
1699 SAGE team.
1690 (Demo.edit): added an edit() method to the demo objects, to edit
1700 (Demo.edit): added an edit() method to the demo objects, to edit
1691 the in-memory copy of the last executed block.
1701 the in-memory copy of the last executed block.
1692
1702
1693 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1703 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1694 processing to %edit, %macro and %save. These commands can now be
1704 processing to %edit, %macro and %save. These commands can now be
1695 invoked on the unprocessed input as it was typed by the user
1705 invoked on the unprocessed input as it was typed by the user
1696 (without any prefilters applied). After requests by the SAGE team
1706 (without any prefilters applied). After requests by the SAGE team
1697 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1707 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1698
1708
1699 2006-02-01 Ville Vainio <vivainio@gmail.com>
1709 2006-02-01 Ville Vainio <vivainio@gmail.com>
1700
1710
1701 * setup.py, eggsetup.py: easy_install ipython==dev works
1711 * setup.py, eggsetup.py: easy_install ipython==dev works
1702 correctly now (on Linux)
1712 correctly now (on Linux)
1703
1713
1704 * ipy_user_conf,ipmaker: user config changes, removed spurious
1714 * ipy_user_conf,ipmaker: user config changes, removed spurious
1705 warnings
1715 warnings
1706
1716
1707 * iplib: if rc.banner is string, use it as is.
1717 * iplib: if rc.banner is string, use it as is.
1708
1718
1709 * Magic: %pycat accepts a string argument and pages it's contents.
1719 * Magic: %pycat accepts a string argument and pages it's contents.
1710
1720
1711
1721
1712 2006-01-30 Ville Vainio <vivainio@gmail.com>
1722 2006-01-30 Ville Vainio <vivainio@gmail.com>
1713
1723
1714 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1724 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1715 Now %store and bookmarks work through PickleShare, meaning that
1725 Now %store and bookmarks work through PickleShare, meaning that
1716 concurrent access is possible and all ipython sessions see the
1726 concurrent access is possible and all ipython sessions see the
1717 same database situation all the time, instead of snapshot of
1727 same database situation all the time, instead of snapshot of
1718 the situation when the session was started. Hence, %bookmark
1728 the situation when the session was started. Hence, %bookmark
1719 results are immediately accessible from othes sessions. The database
1729 results are immediately accessible from othes sessions. The database
1720 is also available for use by user extensions. See:
1730 is also available for use by user extensions. See:
1721 http://www.python.org/pypi/pickleshare
1731 http://www.python.org/pypi/pickleshare
1722
1732
1723 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1733 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1724
1734
1725 * aliases can now be %store'd
1735 * aliases can now be %store'd
1726
1736
1727 * path.py moved to Extensions so that pickleshare does not need
1737 * path.py moved to Extensions so that pickleshare does not need
1728 IPython-specific import. Extensions added to pythonpath right
1738 IPython-specific import. Extensions added to pythonpath right
1729 at __init__.
1739 at __init__.
1730
1740
1731 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1741 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1732 called with _ip.system and the pre-transformed command string.
1742 called with _ip.system and the pre-transformed command string.
1733
1743
1734 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1744 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1735
1745
1736 * IPython/iplib.py (interact): Fix that we were not catching
1746 * IPython/iplib.py (interact): Fix that we were not catching
1737 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1747 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1738 logic here had to change, but it's fixed now.
1748 logic here had to change, but it's fixed now.
1739
1749
1740 2006-01-29 Ville Vainio <vivainio@gmail.com>
1750 2006-01-29 Ville Vainio <vivainio@gmail.com>
1741
1751
1742 * iplib.py: Try to import pyreadline on Windows.
1752 * iplib.py: Try to import pyreadline on Windows.
1743
1753
1744 2006-01-27 Ville Vainio <vivainio@gmail.com>
1754 2006-01-27 Ville Vainio <vivainio@gmail.com>
1745
1755
1746 * iplib.py: Expose ipapi as _ip in builtin namespace.
1756 * iplib.py: Expose ipapi as _ip in builtin namespace.
1747 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1757 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1748 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1758 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1749 syntax now produce _ip.* variant of the commands.
1759 syntax now produce _ip.* variant of the commands.
1750
1760
1751 * "_ip.options().autoedit_syntax = 2" automatically throws
1761 * "_ip.options().autoedit_syntax = 2" automatically throws
1752 user to editor for syntax error correction without prompting.
1762 user to editor for syntax error correction without prompting.
1753
1763
1754 2006-01-27 Ville Vainio <vivainio@gmail.com>
1764 2006-01-27 Ville Vainio <vivainio@gmail.com>
1755
1765
1756 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1766 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1757 'ipython' at argv[0]) executed through command line.
1767 'ipython' at argv[0]) executed through command line.
1758 NOTE: this DEPRECATES calling ipython with multiple scripts
1768 NOTE: this DEPRECATES calling ipython with multiple scripts
1759 ("ipython a.py b.py c.py")
1769 ("ipython a.py b.py c.py")
1760
1770
1761 * iplib.py, hooks.py: Added configurable input prefilter,
1771 * iplib.py, hooks.py: Added configurable input prefilter,
1762 named 'input_prefilter'. See ext_rescapture.py for example
1772 named 'input_prefilter'. See ext_rescapture.py for example
1763 usage.
1773 usage.
1764
1774
1765 * ext_rescapture.py, Magic.py: Better system command output capture
1775 * ext_rescapture.py, Magic.py: Better system command output capture
1766 through 'var = !ls' (deprecates user-visible %sc). Same notation
1776 through 'var = !ls' (deprecates user-visible %sc). Same notation
1767 applies for magics, 'var = %alias' assigns alias list to var.
1777 applies for magics, 'var = %alias' assigns alias list to var.
1768
1778
1769 * ipapi.py: added meta() for accessing extension-usable data store.
1779 * ipapi.py: added meta() for accessing extension-usable data store.
1770
1780
1771 * iplib.py: added InteractiveShell.getapi(). New magics should be
1781 * iplib.py: added InteractiveShell.getapi(). New magics should be
1772 written doing self.getapi() instead of using the shell directly.
1782 written doing self.getapi() instead of using the shell directly.
1773
1783
1774 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1784 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1775 %store foo >> ~/myfoo.txt to store variables to files (in clean
1785 %store foo >> ~/myfoo.txt to store variables to files (in clean
1776 textual form, not a restorable pickle).
1786 textual form, not a restorable pickle).
1777
1787
1778 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1788 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1779
1789
1780 * usage.py, Magic.py: added %quickref
1790 * usage.py, Magic.py: added %quickref
1781
1791
1782 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1792 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1783
1793
1784 * GetoptErrors when invoking magics etc. with wrong args
1794 * GetoptErrors when invoking magics etc. with wrong args
1785 are now more helpful:
1795 are now more helpful:
1786 GetoptError: option -l not recognized (allowed: "qb" )
1796 GetoptError: option -l not recognized (allowed: "qb" )
1787
1797
1788 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1798 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1789
1799
1790 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1800 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1791 computationally intensive blocks don't appear to stall the demo.
1801 computationally intensive blocks don't appear to stall the demo.
1792
1802
1793 2006-01-24 Ville Vainio <vivainio@gmail.com>
1803 2006-01-24 Ville Vainio <vivainio@gmail.com>
1794
1804
1795 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1805 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1796 value to manipulate resulting history entry.
1806 value to manipulate resulting history entry.
1797
1807
1798 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1808 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1799 to instance methods of IPApi class, to make extending an embedded
1809 to instance methods of IPApi class, to make extending an embedded
1800 IPython feasible. See ext_rehashdir.py for example usage.
1810 IPython feasible. See ext_rehashdir.py for example usage.
1801
1811
1802 * Merged 1071-1076 from branches/0.7.1
1812 * Merged 1071-1076 from branches/0.7.1
1803
1813
1804
1814
1805 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1815 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1806
1816
1807 * tools/release (daystamp): Fix build tools to use the new
1817 * tools/release (daystamp): Fix build tools to use the new
1808 eggsetup.py script to build lightweight eggs.
1818 eggsetup.py script to build lightweight eggs.
1809
1819
1810 * Applied changesets 1062 and 1064 before 0.7.1 release.
1820 * Applied changesets 1062 and 1064 before 0.7.1 release.
1811
1821
1812 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1822 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1813 see the raw input history (without conversions like %ls ->
1823 see the raw input history (without conversions like %ls ->
1814 ipmagic("ls")). After a request from W. Stein, SAGE
1824 ipmagic("ls")). After a request from W. Stein, SAGE
1815 (http://modular.ucsd.edu/sage) developer. This information is
1825 (http://modular.ucsd.edu/sage) developer. This information is
1816 stored in the input_hist_raw attribute of the IPython instance, so
1826 stored in the input_hist_raw attribute of the IPython instance, so
1817 developers can access it if needed (it's an InputList instance).
1827 developers can access it if needed (it's an InputList instance).
1818
1828
1819 * Versionstring = 0.7.2.svn
1829 * Versionstring = 0.7.2.svn
1820
1830
1821 * eggsetup.py: A separate script for constructing eggs, creates
1831 * eggsetup.py: A separate script for constructing eggs, creates
1822 proper launch scripts even on Windows (an .exe file in
1832 proper launch scripts even on Windows (an .exe file in
1823 \python24\scripts).
1833 \python24\scripts).
1824
1834
1825 * ipapi.py: launch_new_instance, launch entry point needed for the
1835 * ipapi.py: launch_new_instance, launch entry point needed for the
1826 egg.
1836 egg.
1827
1837
1828 2006-01-23 Ville Vainio <vivainio@gmail.com>
1838 2006-01-23 Ville Vainio <vivainio@gmail.com>
1829
1839
1830 * Added %cpaste magic for pasting python code
1840 * Added %cpaste magic for pasting python code
1831
1841
1832 2006-01-22 Ville Vainio <vivainio@gmail.com>
1842 2006-01-22 Ville Vainio <vivainio@gmail.com>
1833
1843
1834 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1844 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1835
1845
1836 * Versionstring = 0.7.2.svn
1846 * Versionstring = 0.7.2.svn
1837
1847
1838 * eggsetup.py: A separate script for constructing eggs, creates
1848 * eggsetup.py: A separate script for constructing eggs, creates
1839 proper launch scripts even on Windows (an .exe file in
1849 proper launch scripts even on Windows (an .exe file in
1840 \python24\scripts).
1850 \python24\scripts).
1841
1851
1842 * ipapi.py: launch_new_instance, launch entry point needed for the
1852 * ipapi.py: launch_new_instance, launch entry point needed for the
1843 egg.
1853 egg.
1844
1854
1845 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1855 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1846
1856
1847 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1857 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1848 %pfile foo would print the file for foo even if it was a binary.
1858 %pfile foo would print the file for foo even if it was a binary.
1849 Now, extensions '.so' and '.dll' are skipped.
1859 Now, extensions '.so' and '.dll' are skipped.
1850
1860
1851 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1861 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1852 bug, where macros would fail in all threaded modes. I'm not 100%
1862 bug, where macros would fail in all threaded modes. I'm not 100%
1853 sure, so I'm going to put out an rc instead of making a release
1863 sure, so I'm going to put out an rc instead of making a release
1854 today, and wait for feedback for at least a few days.
1864 today, and wait for feedback for at least a few days.
1855
1865
1856 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1866 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1857 it...) the handling of pasting external code with autoindent on.
1867 it...) the handling of pasting external code with autoindent on.
1858 To get out of a multiline input, the rule will appear for most
1868 To get out of a multiline input, the rule will appear for most
1859 users unchanged: two blank lines or change the indent level
1869 users unchanged: two blank lines or change the indent level
1860 proposed by IPython. But there is a twist now: you can
1870 proposed by IPython. But there is a twist now: you can
1861 add/subtract only *one or two spaces*. If you add/subtract three
1871 add/subtract only *one or two spaces*. If you add/subtract three
1862 or more (unless you completely delete the line), IPython will
1872 or more (unless you completely delete the line), IPython will
1863 accept that line, and you'll need to enter a second one of pure
1873 accept that line, and you'll need to enter a second one of pure
1864 whitespace. I know it sounds complicated, but I can't find a
1874 whitespace. I know it sounds complicated, but I can't find a
1865 different solution that covers all the cases, with the right
1875 different solution that covers all the cases, with the right
1866 heuristics. Hopefully in actual use, nobody will really notice
1876 heuristics. Hopefully in actual use, nobody will really notice
1867 all these strange rules and things will 'just work'.
1877 all these strange rules and things will 'just work'.
1868
1878
1869 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1879 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1870
1880
1871 * IPython/iplib.py (interact): catch exceptions which can be
1881 * IPython/iplib.py (interact): catch exceptions which can be
1872 triggered asynchronously by signal handlers. Thanks to an
1882 triggered asynchronously by signal handlers. Thanks to an
1873 automatic crash report, submitted by Colin Kingsley
1883 automatic crash report, submitted by Colin Kingsley
1874 <tercel-AT-gentoo.org>.
1884 <tercel-AT-gentoo.org>.
1875
1885
1876 2006-01-20 Ville Vainio <vivainio@gmail.com>
1886 2006-01-20 Ville Vainio <vivainio@gmail.com>
1877
1887
1878 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1888 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1879 (%rehashdir, very useful, try it out) of how to extend ipython
1889 (%rehashdir, very useful, try it out) of how to extend ipython
1880 with new magics. Also added Extensions dir to pythonpath to make
1890 with new magics. Also added Extensions dir to pythonpath to make
1881 importing extensions easy.
1891 importing extensions easy.
1882
1892
1883 * %store now complains when trying to store interactively declared
1893 * %store now complains when trying to store interactively declared
1884 classes / instances of those classes.
1894 classes / instances of those classes.
1885
1895
1886 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1896 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1887 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1897 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1888 if they exist, and ipy_user_conf.py with some defaults is created for
1898 if they exist, and ipy_user_conf.py with some defaults is created for
1889 the user.
1899 the user.
1890
1900
1891 * Startup rehashing done by the config file, not InterpreterExec.
1901 * Startup rehashing done by the config file, not InterpreterExec.
1892 This means system commands are available even without selecting the
1902 This means system commands are available even without selecting the
1893 pysh profile. It's the sensible default after all.
1903 pysh profile. It's the sensible default after all.
1894
1904
1895 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1905 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1896
1906
1897 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1907 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1898 multiline code with autoindent on working. But I am really not
1908 multiline code with autoindent on working. But I am really not
1899 sure, so this needs more testing. Will commit a debug-enabled
1909 sure, so this needs more testing. Will commit a debug-enabled
1900 version for now, while I test it some more, so that Ville and
1910 version for now, while I test it some more, so that Ville and
1901 others may also catch any problems. Also made
1911 others may also catch any problems. Also made
1902 self.indent_current_str() a method, to ensure that there's no
1912 self.indent_current_str() a method, to ensure that there's no
1903 chance of the indent space count and the corresponding string
1913 chance of the indent space count and the corresponding string
1904 falling out of sync. All code needing the string should just call
1914 falling out of sync. All code needing the string should just call
1905 the method.
1915 the method.
1906
1916
1907 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1917 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1908
1918
1909 * IPython/Magic.py (magic_edit): fix check for when users don't
1919 * IPython/Magic.py (magic_edit): fix check for when users don't
1910 save their output files, the try/except was in the wrong section.
1920 save their output files, the try/except was in the wrong section.
1911
1921
1912 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1922 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1913
1923
1914 * IPython/Magic.py (magic_run): fix __file__ global missing from
1924 * IPython/Magic.py (magic_run): fix __file__ global missing from
1915 script's namespace when executed via %run. After a report by
1925 script's namespace when executed via %run. After a report by
1916 Vivian.
1926 Vivian.
1917
1927
1918 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1928 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1919 when using python 2.4. The parent constructor changed in 2.4, and
1929 when using python 2.4. The parent constructor changed in 2.4, and
1920 we need to track it directly (we can't call it, as it messes up
1930 we need to track it directly (we can't call it, as it messes up
1921 readline and tab-completion inside our pdb would stop working).
1931 readline and tab-completion inside our pdb would stop working).
1922 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1932 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1923
1933
1924 2006-01-16 Ville Vainio <vivainio@gmail.com>
1934 2006-01-16 Ville Vainio <vivainio@gmail.com>
1925
1935
1926 * Ipython/magic.py: Reverted back to old %edit functionality
1936 * Ipython/magic.py: Reverted back to old %edit functionality
1927 that returns file contents on exit.
1937 that returns file contents on exit.
1928
1938
1929 * IPython/path.py: Added Jason Orendorff's "path" module to
1939 * IPython/path.py: Added Jason Orendorff's "path" module to
1930 IPython tree, http://www.jorendorff.com/articles/python/path/.
1940 IPython tree, http://www.jorendorff.com/articles/python/path/.
1931 You can get path objects conveniently through %sc, and !!, e.g.:
1941 You can get path objects conveniently through %sc, and !!, e.g.:
1932 sc files=ls
1942 sc files=ls
1933 for p in files.paths: # or files.p
1943 for p in files.paths: # or files.p
1934 print p,p.mtime
1944 print p,p.mtime
1935
1945
1936 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1946 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1937 now work again without considering the exclusion regexp -
1947 now work again without considering the exclusion regexp -
1938 hence, things like ',foo my/path' turn to 'foo("my/path")'
1948 hence, things like ',foo my/path' turn to 'foo("my/path")'
1939 instead of syntax error.
1949 instead of syntax error.
1940
1950
1941
1951
1942 2006-01-14 Ville Vainio <vivainio@gmail.com>
1952 2006-01-14 Ville Vainio <vivainio@gmail.com>
1943
1953
1944 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1954 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1945 ipapi decorators for python 2.4 users, options() provides access to rc
1955 ipapi decorators for python 2.4 users, options() provides access to rc
1946 data.
1956 data.
1947
1957
1948 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1958 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1949 as path separators (even on Linux ;-). Space character after
1959 as path separators (even on Linux ;-). Space character after
1950 backslash (as yielded by tab completer) is still space;
1960 backslash (as yielded by tab completer) is still space;
1951 "%cd long\ name" works as expected.
1961 "%cd long\ name" works as expected.
1952
1962
1953 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1963 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1954 as "chain of command", with priority. API stays the same,
1964 as "chain of command", with priority. API stays the same,
1955 TryNext exception raised by a hook function signals that
1965 TryNext exception raised by a hook function signals that
1956 current hook failed and next hook should try handling it, as
1966 current hook failed and next hook should try handling it, as
1957 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1967 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1958 requested configurable display hook, which is now implemented.
1968 requested configurable display hook, which is now implemented.
1959
1969
1960 2006-01-13 Ville Vainio <vivainio@gmail.com>
1970 2006-01-13 Ville Vainio <vivainio@gmail.com>
1961
1971
1962 * IPython/platutils*.py: platform specific utility functions,
1972 * IPython/platutils*.py: platform specific utility functions,
1963 so far only set_term_title is implemented (change terminal
1973 so far only set_term_title is implemented (change terminal
1964 label in windowing systems). %cd now changes the title to
1974 label in windowing systems). %cd now changes the title to
1965 current dir.
1975 current dir.
1966
1976
1967 * IPython/Release.py: Added myself to "authors" list,
1977 * IPython/Release.py: Added myself to "authors" list,
1968 had to create new files.
1978 had to create new files.
1969
1979
1970 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1980 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1971 shell escape; not a known bug but had potential to be one in the
1981 shell escape; not a known bug but had potential to be one in the
1972 future.
1982 future.
1973
1983
1974 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1984 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1975 extension API for IPython! See the module for usage example. Fix
1985 extension API for IPython! See the module for usage example. Fix
1976 OInspect for docstring-less magic functions.
1986 OInspect for docstring-less magic functions.
1977
1987
1978
1988
1979 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1989 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1980
1990
1981 * IPython/iplib.py (raw_input): temporarily deactivate all
1991 * IPython/iplib.py (raw_input): temporarily deactivate all
1982 attempts at allowing pasting of code with autoindent on. It
1992 attempts at allowing pasting of code with autoindent on. It
1983 introduced bugs (reported by Prabhu) and I can't seem to find a
1993 introduced bugs (reported by Prabhu) and I can't seem to find a
1984 robust combination which works in all cases. Will have to revisit
1994 robust combination which works in all cases. Will have to revisit
1985 later.
1995 later.
1986
1996
1987 * IPython/genutils.py: remove isspace() function. We've dropped
1997 * IPython/genutils.py: remove isspace() function. We've dropped
1988 2.2 compatibility, so it's OK to use the string method.
1998 2.2 compatibility, so it's OK to use the string method.
1989
1999
1990 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2000 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1991
2001
1992 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2002 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1993 matching what NOT to autocall on, to include all python binary
2003 matching what NOT to autocall on, to include all python binary
1994 operators (including things like 'and', 'or', 'is' and 'in').
2004 operators (including things like 'and', 'or', 'is' and 'in').
1995 Prompted by a bug report on 'foo & bar', but I realized we had
2005 Prompted by a bug report on 'foo & bar', but I realized we had
1996 many more potential bug cases with other operators. The regexp is
2006 many more potential bug cases with other operators. The regexp is
1997 self.re_exclude_auto, it's fairly commented.
2007 self.re_exclude_auto, it's fairly commented.
1998
2008
1999 2006-01-12 Ville Vainio <vivainio@gmail.com>
2009 2006-01-12 Ville Vainio <vivainio@gmail.com>
2000
2010
2001 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2011 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2002 Prettified and hardened string/backslash quoting with ipsystem(),
2012 Prettified and hardened string/backslash quoting with ipsystem(),
2003 ipalias() and ipmagic(). Now even \ characters are passed to
2013 ipalias() and ipmagic(). Now even \ characters are passed to
2004 %magics, !shell escapes and aliases exactly as they are in the
2014 %magics, !shell escapes and aliases exactly as they are in the
2005 ipython command line. Should improve backslash experience,
2015 ipython command line. Should improve backslash experience,
2006 particularly in Windows (path delimiter for some commands that
2016 particularly in Windows (path delimiter for some commands that
2007 won't understand '/'), but Unix benefits as well (regexps). %cd
2017 won't understand '/'), but Unix benefits as well (regexps). %cd
2008 magic still doesn't support backslash path delimiters, though. Also
2018 magic still doesn't support backslash path delimiters, though. Also
2009 deleted all pretense of supporting multiline command strings in
2019 deleted all pretense of supporting multiline command strings in
2010 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2020 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2011
2021
2012 * doc/build_doc_instructions.txt added. Documentation on how to
2022 * doc/build_doc_instructions.txt added. Documentation on how to
2013 use doc/update_manual.py, added yesterday. Both files contributed
2023 use doc/update_manual.py, added yesterday. Both files contributed
2014 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2024 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2015 doc/*.sh for deprecation at a later date.
2025 doc/*.sh for deprecation at a later date.
2016
2026
2017 * /ipython.py Added ipython.py to root directory for
2027 * /ipython.py Added ipython.py to root directory for
2018 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2028 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2019 ipython.py) and development convenience (no need to keep doing
2029 ipython.py) and development convenience (no need to keep doing
2020 "setup.py install" between changes).
2030 "setup.py install" between changes).
2021
2031
2022 * Made ! and !! shell escapes work (again) in multiline expressions:
2032 * Made ! and !! shell escapes work (again) in multiline expressions:
2023 if 1:
2033 if 1:
2024 !ls
2034 !ls
2025 !!ls
2035 !!ls
2026
2036
2027 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2037 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2028
2038
2029 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2039 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2030 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2040 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2031 module in case-insensitive installation. Was causing crashes
2041 module in case-insensitive installation. Was causing crashes
2032 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2042 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2033
2043
2034 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2044 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2035 <marienz-AT-gentoo.org>, closes
2045 <marienz-AT-gentoo.org>, closes
2036 http://www.scipy.net/roundup/ipython/issue51.
2046 http://www.scipy.net/roundup/ipython/issue51.
2037
2047
2038 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2048 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2039
2049
2040 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2050 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2041 problem of excessive CPU usage under *nix and keyboard lag under
2051 problem of excessive CPU usage under *nix and keyboard lag under
2042 win32.
2052 win32.
2043
2053
2044 2006-01-10 *** Released version 0.7.0
2054 2006-01-10 *** Released version 0.7.0
2045
2055
2046 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2056 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2047
2057
2048 * IPython/Release.py (revision): tag version number to 0.7.0,
2058 * IPython/Release.py (revision): tag version number to 0.7.0,
2049 ready for release.
2059 ready for release.
2050
2060
2051 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2061 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2052 it informs the user of the name of the temp. file used. This can
2062 it informs the user of the name of the temp. file used. This can
2053 help if you decide later to reuse that same file, so you know
2063 help if you decide later to reuse that same file, so you know
2054 where to copy the info from.
2064 where to copy the info from.
2055
2065
2056 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2066 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2057
2067
2058 * setup_bdist_egg.py: little script to build an egg. Added
2068 * setup_bdist_egg.py: little script to build an egg. Added
2059 support in the release tools as well.
2069 support in the release tools as well.
2060
2070
2061 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2071 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2062
2072
2063 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2073 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2064 version selection (new -wxversion command line and ipythonrc
2074 version selection (new -wxversion command line and ipythonrc
2065 parameter). Patch contributed by Arnd Baecker
2075 parameter). Patch contributed by Arnd Baecker
2066 <arnd.baecker-AT-web.de>.
2076 <arnd.baecker-AT-web.de>.
2067
2077
2068 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2078 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2069 embedded instances, for variables defined at the interactive
2079 embedded instances, for variables defined at the interactive
2070 prompt of the embedded ipython. Reported by Arnd.
2080 prompt of the embedded ipython. Reported by Arnd.
2071
2081
2072 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2082 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2073 it can be used as a (stateful) toggle, or with a direct parameter.
2083 it can be used as a (stateful) toggle, or with a direct parameter.
2074
2084
2075 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2085 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2076 could be triggered in certain cases and cause the traceback
2086 could be triggered in certain cases and cause the traceback
2077 printer not to work.
2087 printer not to work.
2078
2088
2079 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2089 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2080
2090
2081 * IPython/iplib.py (_should_recompile): Small fix, closes
2091 * IPython/iplib.py (_should_recompile): Small fix, closes
2082 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2092 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2083
2093
2084 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2094 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2085
2095
2086 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2096 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2087 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2097 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2088 Moad for help with tracking it down.
2098 Moad for help with tracking it down.
2089
2099
2090 * IPython/iplib.py (handle_auto): fix autocall handling for
2100 * IPython/iplib.py (handle_auto): fix autocall handling for
2091 objects which support BOTH __getitem__ and __call__ (so that f [x]
2101 objects which support BOTH __getitem__ and __call__ (so that f [x]
2092 is left alone, instead of becoming f([x]) automatically).
2102 is left alone, instead of becoming f([x]) automatically).
2093
2103
2094 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2104 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2095 Ville's patch.
2105 Ville's patch.
2096
2106
2097 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2107 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2098
2108
2099 * IPython/iplib.py (handle_auto): changed autocall semantics to
2109 * IPython/iplib.py (handle_auto): changed autocall semantics to
2100 include 'smart' mode, where the autocall transformation is NOT
2110 include 'smart' mode, where the autocall transformation is NOT
2101 applied if there are no arguments on the line. This allows you to
2111 applied if there are no arguments on the line. This allows you to
2102 just type 'foo' if foo is a callable to see its internal form,
2112 just type 'foo' if foo is a callable to see its internal form,
2103 instead of having it called with no arguments (typically a
2113 instead of having it called with no arguments (typically a
2104 mistake). The old 'full' autocall still exists: for that, you
2114 mistake). The old 'full' autocall still exists: for that, you
2105 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2115 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2106
2116
2107 * IPython/completer.py (Completer.attr_matches): add
2117 * IPython/completer.py (Completer.attr_matches): add
2108 tab-completion support for Enthoughts' traits. After a report by
2118 tab-completion support for Enthoughts' traits. After a report by
2109 Arnd and a patch by Prabhu.
2119 Arnd and a patch by Prabhu.
2110
2120
2111 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2121 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2112
2122
2113 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2123 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2114 Schmolck's patch to fix inspect.getinnerframes().
2124 Schmolck's patch to fix inspect.getinnerframes().
2115
2125
2116 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2126 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2117 for embedded instances, regarding handling of namespaces and items
2127 for embedded instances, regarding handling of namespaces and items
2118 added to the __builtin__ one. Multiple embedded instances and
2128 added to the __builtin__ one. Multiple embedded instances and
2119 recursive embeddings should work better now (though I'm not sure
2129 recursive embeddings should work better now (though I'm not sure
2120 I've got all the corner cases fixed, that code is a bit of a brain
2130 I've got all the corner cases fixed, that code is a bit of a brain
2121 twister).
2131 twister).
2122
2132
2123 * IPython/Magic.py (magic_edit): added support to edit in-memory
2133 * IPython/Magic.py (magic_edit): added support to edit in-memory
2124 macros (automatically creates the necessary temp files). %edit
2134 macros (automatically creates the necessary temp files). %edit
2125 also doesn't return the file contents anymore, it's just noise.
2135 also doesn't return the file contents anymore, it's just noise.
2126
2136
2127 * IPython/completer.py (Completer.attr_matches): revert change to
2137 * IPython/completer.py (Completer.attr_matches): revert change to
2128 complete only on attributes listed in __all__. I realized it
2138 complete only on attributes listed in __all__. I realized it
2129 cripples the tab-completion system as a tool for exploring the
2139 cripples the tab-completion system as a tool for exploring the
2130 internals of unknown libraries (it renders any non-__all__
2140 internals of unknown libraries (it renders any non-__all__
2131 attribute off-limits). I got bit by this when trying to see
2141 attribute off-limits). I got bit by this when trying to see
2132 something inside the dis module.
2142 something inside the dis module.
2133
2143
2134 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2144 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2135
2145
2136 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2146 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2137 namespace for users and extension writers to hold data in. This
2147 namespace for users and extension writers to hold data in. This
2138 follows the discussion in
2148 follows the discussion in
2139 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2149 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2140
2150
2141 * IPython/completer.py (IPCompleter.complete): small patch to help
2151 * IPython/completer.py (IPCompleter.complete): small patch to help
2142 tab-completion under Emacs, after a suggestion by John Barnard
2152 tab-completion under Emacs, after a suggestion by John Barnard
2143 <barnarj-AT-ccf.org>.
2153 <barnarj-AT-ccf.org>.
2144
2154
2145 * IPython/Magic.py (Magic.extract_input_slices): added support for
2155 * IPython/Magic.py (Magic.extract_input_slices): added support for
2146 the slice notation in magics to use N-M to represent numbers N...M
2156 the slice notation in magics to use N-M to represent numbers N...M
2147 (closed endpoints). This is used by %macro and %save.
2157 (closed endpoints). This is used by %macro and %save.
2148
2158
2149 * IPython/completer.py (Completer.attr_matches): for modules which
2159 * IPython/completer.py (Completer.attr_matches): for modules which
2150 define __all__, complete only on those. After a patch by Jeffrey
2160 define __all__, complete only on those. After a patch by Jeffrey
2151 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2161 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2152 speed up this routine.
2162 speed up this routine.
2153
2163
2154 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2164 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2155 don't know if this is the end of it, but the behavior now is
2165 don't know if this is the end of it, but the behavior now is
2156 certainly much more correct. Note that coupled with macros,
2166 certainly much more correct. Note that coupled with macros,
2157 slightly surprising (at first) behavior may occur: a macro will in
2167 slightly surprising (at first) behavior may occur: a macro will in
2158 general expand to multiple lines of input, so upon exiting, the
2168 general expand to multiple lines of input, so upon exiting, the
2159 in/out counters will both be bumped by the corresponding amount
2169 in/out counters will both be bumped by the corresponding amount
2160 (as if the macro's contents had been typed interactively). Typing
2170 (as if the macro's contents had been typed interactively). Typing
2161 %hist will reveal the intermediate (silently processed) lines.
2171 %hist will reveal the intermediate (silently processed) lines.
2162
2172
2163 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2173 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2164 pickle to fail (%run was overwriting __main__ and not restoring
2174 pickle to fail (%run was overwriting __main__ and not restoring
2165 it, but pickle relies on __main__ to operate).
2175 it, but pickle relies on __main__ to operate).
2166
2176
2167 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2177 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2168 using properties, but forgot to make the main InteractiveShell
2178 using properties, but forgot to make the main InteractiveShell
2169 class a new-style class. Properties fail silently, and
2179 class a new-style class. Properties fail silently, and
2170 mysteriously, with old-style class (getters work, but
2180 mysteriously, with old-style class (getters work, but
2171 setters don't do anything).
2181 setters don't do anything).
2172
2182
2173 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2183 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2174
2184
2175 * IPython/Magic.py (magic_history): fix history reporting bug (I
2185 * IPython/Magic.py (magic_history): fix history reporting bug (I
2176 know some nasties are still there, I just can't seem to find a
2186 know some nasties are still there, I just can't seem to find a
2177 reproducible test case to track them down; the input history is
2187 reproducible test case to track them down; the input history is
2178 falling out of sync...)
2188 falling out of sync...)
2179
2189
2180 * IPython/iplib.py (handle_shell_escape): fix bug where both
2190 * IPython/iplib.py (handle_shell_escape): fix bug where both
2181 aliases and system accesses where broken for indented code (such
2191 aliases and system accesses where broken for indented code (such
2182 as loops).
2192 as loops).
2183
2193
2184 * IPython/genutils.py (shell): fix small but critical bug for
2194 * IPython/genutils.py (shell): fix small but critical bug for
2185 win32 system access.
2195 win32 system access.
2186
2196
2187 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2197 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2188
2198
2189 * IPython/iplib.py (showtraceback): remove use of the
2199 * IPython/iplib.py (showtraceback): remove use of the
2190 sys.last_{type/value/traceback} structures, which are non
2200 sys.last_{type/value/traceback} structures, which are non
2191 thread-safe.
2201 thread-safe.
2192 (_prefilter): change control flow to ensure that we NEVER
2202 (_prefilter): change control flow to ensure that we NEVER
2193 introspect objects when autocall is off. This will guarantee that
2203 introspect objects when autocall is off. This will guarantee that
2194 having an input line of the form 'x.y', where access to attribute
2204 having an input line of the form 'x.y', where access to attribute
2195 'y' has side effects, doesn't trigger the side effect TWICE. It
2205 'y' has side effects, doesn't trigger the side effect TWICE. It
2196 is important to note that, with autocall on, these side effects
2206 is important to note that, with autocall on, these side effects
2197 can still happen.
2207 can still happen.
2198 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2208 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2199 trio. IPython offers these three kinds of special calls which are
2209 trio. IPython offers these three kinds of special calls which are
2200 not python code, and it's a good thing to have their call method
2210 not python code, and it's a good thing to have their call method
2201 be accessible as pure python functions (not just special syntax at
2211 be accessible as pure python functions (not just special syntax at
2202 the command line). It gives us a better internal implementation
2212 the command line). It gives us a better internal implementation
2203 structure, as well as exposing these for user scripting more
2213 structure, as well as exposing these for user scripting more
2204 cleanly.
2214 cleanly.
2205
2215
2206 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2216 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2207 file. Now that they'll be more likely to be used with the
2217 file. Now that they'll be more likely to be used with the
2208 persistance system (%store), I want to make sure their module path
2218 persistance system (%store), I want to make sure their module path
2209 doesn't change in the future, so that we don't break things for
2219 doesn't change in the future, so that we don't break things for
2210 users' persisted data.
2220 users' persisted data.
2211
2221
2212 * IPython/iplib.py (autoindent_update): move indentation
2222 * IPython/iplib.py (autoindent_update): move indentation
2213 management into the _text_ processing loop, not the keyboard
2223 management into the _text_ processing loop, not the keyboard
2214 interactive one. This is necessary to correctly process non-typed
2224 interactive one. This is necessary to correctly process non-typed
2215 multiline input (such as macros).
2225 multiline input (such as macros).
2216
2226
2217 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2227 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2218 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2228 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2219 which was producing problems in the resulting manual.
2229 which was producing problems in the resulting manual.
2220 (magic_whos): improve reporting of instances (show their class,
2230 (magic_whos): improve reporting of instances (show their class,
2221 instead of simply printing 'instance' which isn't terribly
2231 instead of simply printing 'instance' which isn't terribly
2222 informative).
2232 informative).
2223
2233
2224 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2234 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2225 (minor mods) to support network shares under win32.
2235 (minor mods) to support network shares under win32.
2226
2236
2227 * IPython/winconsole.py (get_console_size): add new winconsole
2237 * IPython/winconsole.py (get_console_size): add new winconsole
2228 module and fixes to page_dumb() to improve its behavior under
2238 module and fixes to page_dumb() to improve its behavior under
2229 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2239 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2230
2240
2231 * IPython/Magic.py (Macro): simplified Macro class to just
2241 * IPython/Magic.py (Macro): simplified Macro class to just
2232 subclass list. We've had only 2.2 compatibility for a very long
2242 subclass list. We've had only 2.2 compatibility for a very long
2233 time, yet I was still avoiding subclassing the builtin types. No
2243 time, yet I was still avoiding subclassing the builtin types. No
2234 more (I'm also starting to use properties, though I won't shift to
2244 more (I'm also starting to use properties, though I won't shift to
2235 2.3-specific features quite yet).
2245 2.3-specific features quite yet).
2236 (magic_store): added Ville's patch for lightweight variable
2246 (magic_store): added Ville's patch for lightweight variable
2237 persistence, after a request on the user list by Matt Wilkie
2247 persistence, after a request on the user list by Matt Wilkie
2238 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2248 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2239 details.
2249 details.
2240
2250
2241 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2251 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2242 changed the default logfile name from 'ipython.log' to
2252 changed the default logfile name from 'ipython.log' to
2243 'ipython_log.py'. These logs are real python files, and now that
2253 'ipython_log.py'. These logs are real python files, and now that
2244 we have much better multiline support, people are more likely to
2254 we have much better multiline support, people are more likely to
2245 want to use them as such. Might as well name them correctly.
2255 want to use them as such. Might as well name them correctly.
2246
2256
2247 * IPython/Magic.py: substantial cleanup. While we can't stop
2257 * IPython/Magic.py: substantial cleanup. While we can't stop
2248 using magics as mixins, due to the existing customizations 'out
2258 using magics as mixins, due to the existing customizations 'out
2249 there' which rely on the mixin naming conventions, at least I
2259 there' which rely on the mixin naming conventions, at least I
2250 cleaned out all cross-class name usage. So once we are OK with
2260 cleaned out all cross-class name usage. So once we are OK with
2251 breaking compatibility, the two systems can be separated.
2261 breaking compatibility, the two systems can be separated.
2252
2262
2253 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2263 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2254 anymore, and the class is a fair bit less hideous as well. New
2264 anymore, and the class is a fair bit less hideous as well. New
2255 features were also introduced: timestamping of input, and logging
2265 features were also introduced: timestamping of input, and logging
2256 of output results. These are user-visible with the -t and -o
2266 of output results. These are user-visible with the -t and -o
2257 options to %logstart. Closes
2267 options to %logstart. Closes
2258 http://www.scipy.net/roundup/ipython/issue11 and a request by
2268 http://www.scipy.net/roundup/ipython/issue11 and a request by
2259 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2269 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2260
2270
2261 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2271 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2272
2263 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2273 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2264 better handle backslashes in paths. See the thread 'More Windows
2274 better handle backslashes in paths. See the thread 'More Windows
2265 questions part 2 - \/ characters revisited' on the iypthon user
2275 questions part 2 - \/ characters revisited' on the iypthon user
2266 list:
2276 list:
2267 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2277 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2268
2278
2269 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2279 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2270
2280
2271 (InteractiveShell.__init__): change threaded shells to not use the
2281 (InteractiveShell.__init__): change threaded shells to not use the
2272 ipython crash handler. This was causing more problems than not,
2282 ipython crash handler. This was causing more problems than not,
2273 as exceptions in the main thread (GUI code, typically) would
2283 as exceptions in the main thread (GUI code, typically) would
2274 always show up as a 'crash', when they really weren't.
2284 always show up as a 'crash', when they really weren't.
2275
2285
2276 The colors and exception mode commands (%colors/%xmode) have been
2286 The colors and exception mode commands (%colors/%xmode) have been
2277 synchronized to also take this into account, so users can get
2287 synchronized to also take this into account, so users can get
2278 verbose exceptions for their threaded code as well. I also added
2288 verbose exceptions for their threaded code as well. I also added
2279 support for activating pdb inside this exception handler as well,
2289 support for activating pdb inside this exception handler as well,
2280 so now GUI authors can use IPython's enhanced pdb at runtime.
2290 so now GUI authors can use IPython's enhanced pdb at runtime.
2281
2291
2282 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2292 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2283 true by default, and add it to the shipped ipythonrc file. Since
2293 true by default, and add it to the shipped ipythonrc file. Since
2284 this asks the user before proceeding, I think it's OK to make it
2294 this asks the user before proceeding, I think it's OK to make it
2285 true by default.
2295 true by default.
2286
2296
2287 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2297 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2288 of the previous special-casing of input in the eval loop. I think
2298 of the previous special-casing of input in the eval loop. I think
2289 this is cleaner, as they really are commands and shouldn't have
2299 this is cleaner, as they really are commands and shouldn't have
2290 a special role in the middle of the core code.
2300 a special role in the middle of the core code.
2291
2301
2292 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2302 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2293
2303
2294 * IPython/iplib.py (edit_syntax_error): added support for
2304 * IPython/iplib.py (edit_syntax_error): added support for
2295 automatically reopening the editor if the file had a syntax error
2305 automatically reopening the editor if the file had a syntax error
2296 in it. Thanks to scottt who provided the patch at:
2306 in it. Thanks to scottt who provided the patch at:
2297 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2307 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2298 version committed).
2308 version committed).
2299
2309
2300 * IPython/iplib.py (handle_normal): add suport for multi-line
2310 * IPython/iplib.py (handle_normal): add suport for multi-line
2301 input with emtpy lines. This fixes
2311 input with emtpy lines. This fixes
2302 http://www.scipy.net/roundup/ipython/issue43 and a similar
2312 http://www.scipy.net/roundup/ipython/issue43 and a similar
2303 discussion on the user list.
2313 discussion on the user list.
2304
2314
2305 WARNING: a behavior change is necessarily introduced to support
2315 WARNING: a behavior change is necessarily introduced to support
2306 blank lines: now a single blank line with whitespace does NOT
2316 blank lines: now a single blank line with whitespace does NOT
2307 break the input loop, which means that when autoindent is on, by
2317 break the input loop, which means that when autoindent is on, by
2308 default hitting return on the next (indented) line does NOT exit.
2318 default hitting return on the next (indented) line does NOT exit.
2309
2319
2310 Instead, to exit a multiline input you can either have:
2320 Instead, to exit a multiline input you can either have:
2311
2321
2312 - TWO whitespace lines (just hit return again), or
2322 - TWO whitespace lines (just hit return again), or
2313 - a single whitespace line of a different length than provided
2323 - a single whitespace line of a different length than provided
2314 by the autoindent (add or remove a space).
2324 by the autoindent (add or remove a space).
2315
2325
2316 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2326 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2317 module to better organize all readline-related functionality.
2327 module to better organize all readline-related functionality.
2318 I've deleted FlexCompleter and put all completion clases here.
2328 I've deleted FlexCompleter and put all completion clases here.
2319
2329
2320 * IPython/iplib.py (raw_input): improve indentation management.
2330 * IPython/iplib.py (raw_input): improve indentation management.
2321 It is now possible to paste indented code with autoindent on, and
2331 It is now possible to paste indented code with autoindent on, and
2322 the code is interpreted correctly (though it still looks bad on
2332 the code is interpreted correctly (though it still looks bad on
2323 screen, due to the line-oriented nature of ipython).
2333 screen, due to the line-oriented nature of ipython).
2324 (MagicCompleter.complete): change behavior so that a TAB key on an
2334 (MagicCompleter.complete): change behavior so that a TAB key on an
2325 otherwise empty line actually inserts a tab, instead of completing
2335 otherwise empty line actually inserts a tab, instead of completing
2326 on the entire global namespace. This makes it easier to use the
2336 on the entire global namespace. This makes it easier to use the
2327 TAB key for indentation. After a request by Hans Meine
2337 TAB key for indentation. After a request by Hans Meine
2328 <hans_meine-AT-gmx.net>
2338 <hans_meine-AT-gmx.net>
2329 (_prefilter): add support so that typing plain 'exit' or 'quit'
2339 (_prefilter): add support so that typing plain 'exit' or 'quit'
2330 does a sensible thing. Originally I tried to deviate as little as
2340 does a sensible thing. Originally I tried to deviate as little as
2331 possible from the default python behavior, but even that one may
2341 possible from the default python behavior, but even that one may
2332 change in this direction (thread on python-dev to that effect).
2342 change in this direction (thread on python-dev to that effect).
2333 Regardless, ipython should do the right thing even if CPython's
2343 Regardless, ipython should do the right thing even if CPython's
2334 '>>>' prompt doesn't.
2344 '>>>' prompt doesn't.
2335 (InteractiveShell): removed subclassing code.InteractiveConsole
2345 (InteractiveShell): removed subclassing code.InteractiveConsole
2336 class. By now we'd overridden just about all of its methods: I've
2346 class. By now we'd overridden just about all of its methods: I've
2337 copied the remaining two over, and now ipython is a standalone
2347 copied the remaining two over, and now ipython is a standalone
2338 class. This will provide a clearer picture for the chainsaw
2348 class. This will provide a clearer picture for the chainsaw
2339 branch refactoring.
2349 branch refactoring.
2340
2350
2341 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2351 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2342
2352
2343 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2353 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2344 failures for objects which break when dir() is called on them.
2354 failures for objects which break when dir() is called on them.
2345
2355
2346 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2356 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2347 distinct local and global namespaces in the completer API. This
2357 distinct local and global namespaces in the completer API. This
2348 change allows us to properly handle completion with distinct
2358 change allows us to properly handle completion with distinct
2349 scopes, including in embedded instances (this had never really
2359 scopes, including in embedded instances (this had never really
2350 worked correctly).
2360 worked correctly).
2351
2361
2352 Note: this introduces a change in the constructor for
2362 Note: this introduces a change in the constructor for
2353 MagicCompleter, as a new global_namespace parameter is now the
2363 MagicCompleter, as a new global_namespace parameter is now the
2354 second argument (the others were bumped one position).
2364 second argument (the others were bumped one position).
2355
2365
2356 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2366 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2357
2367
2358 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2368 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2359 embedded instances (which can be done now thanks to Vivian's
2369 embedded instances (which can be done now thanks to Vivian's
2360 frame-handling fixes for pdb).
2370 frame-handling fixes for pdb).
2361 (InteractiveShell.__init__): Fix namespace handling problem in
2371 (InteractiveShell.__init__): Fix namespace handling problem in
2362 embedded instances. We were overwriting __main__ unconditionally,
2372 embedded instances. We were overwriting __main__ unconditionally,
2363 and this should only be done for 'full' (non-embedded) IPython;
2373 and this should only be done for 'full' (non-embedded) IPython;
2364 embedded instances must respect the caller's __main__. Thanks to
2374 embedded instances must respect the caller's __main__. Thanks to
2365 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2375 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2366
2376
2367 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2377 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2368
2378
2369 * setup.py: added download_url to setup(). This registers the
2379 * setup.py: added download_url to setup(). This registers the
2370 download address at PyPI, which is not only useful to humans
2380 download address at PyPI, which is not only useful to humans
2371 browsing the site, but is also picked up by setuptools (the Eggs
2381 browsing the site, but is also picked up by setuptools (the Eggs
2372 machinery). Thanks to Ville and R. Kern for the info/discussion
2382 machinery). Thanks to Ville and R. Kern for the info/discussion
2373 on this.
2383 on this.
2374
2384
2375 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2385 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2376
2386
2377 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2387 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2378 This brings a lot of nice functionality to the pdb mode, which now
2388 This brings a lot of nice functionality to the pdb mode, which now
2379 has tab-completion, syntax highlighting, and better stack handling
2389 has tab-completion, syntax highlighting, and better stack handling
2380 than before. Many thanks to Vivian De Smedt
2390 than before. Many thanks to Vivian De Smedt
2381 <vivian-AT-vdesmedt.com> for the original patches.
2391 <vivian-AT-vdesmedt.com> for the original patches.
2382
2392
2383 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2393 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2384
2394
2385 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2395 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2386 sequence to consistently accept the banner argument. The
2396 sequence to consistently accept the banner argument. The
2387 inconsistency was tripping SAGE, thanks to Gary Zablackis
2397 inconsistency was tripping SAGE, thanks to Gary Zablackis
2388 <gzabl-AT-yahoo.com> for the report.
2398 <gzabl-AT-yahoo.com> for the report.
2389
2399
2390 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2400 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2391
2401
2392 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2402 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2393 Fix bug where a naked 'alias' call in the ipythonrc file would
2403 Fix bug where a naked 'alias' call in the ipythonrc file would
2394 cause a crash. Bug reported by Jorgen Stenarson.
2404 cause a crash. Bug reported by Jorgen Stenarson.
2395
2405
2396 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2406 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2397
2407
2398 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2408 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2399 startup time.
2409 startup time.
2400
2410
2401 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2411 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2402 instances had introduced a bug with globals in normal code. Now
2412 instances had introduced a bug with globals in normal code. Now
2403 it's working in all cases.
2413 it's working in all cases.
2404
2414
2405 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2415 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2406 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2416 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2407 has been introduced to set the default case sensitivity of the
2417 has been introduced to set the default case sensitivity of the
2408 searches. Users can still select either mode at runtime on a
2418 searches. Users can still select either mode at runtime on a
2409 per-search basis.
2419 per-search basis.
2410
2420
2411 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2421 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2412
2422
2413 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2423 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2414 attributes in wildcard searches for subclasses. Modified version
2424 attributes in wildcard searches for subclasses. Modified version
2415 of a patch by Jorgen.
2425 of a patch by Jorgen.
2416
2426
2417 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2427 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2428
2419 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2429 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2420 embedded instances. I added a user_global_ns attribute to the
2430 embedded instances. I added a user_global_ns attribute to the
2421 InteractiveShell class to handle this.
2431 InteractiveShell class to handle this.
2422
2432
2423 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2433 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2424
2434
2425 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2435 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2426 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2436 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2427 (reported under win32, but may happen also in other platforms).
2437 (reported under win32, but may happen also in other platforms).
2428 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2438 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2429
2439
2430 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2440 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2431
2441
2432 * IPython/Magic.py (magic_psearch): new support for wildcard
2442 * IPython/Magic.py (magic_psearch): new support for wildcard
2433 patterns. Now, typing ?a*b will list all names which begin with a
2443 patterns. Now, typing ?a*b will list all names which begin with a
2434 and end in b, for example. The %psearch magic has full
2444 and end in b, for example. The %psearch magic has full
2435 docstrings. Many thanks to JΓΆrgen Stenarson
2445 docstrings. Many thanks to JΓΆrgen Stenarson
2436 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2446 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2437 implementing this functionality.
2447 implementing this functionality.
2438
2448
2439 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2449 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2440
2450
2441 * Manual: fixed long-standing annoyance of double-dashes (as in
2451 * Manual: fixed long-standing annoyance of double-dashes (as in
2442 --prefix=~, for example) being stripped in the HTML version. This
2452 --prefix=~, for example) being stripped in the HTML version. This
2443 is a latex2html bug, but a workaround was provided. Many thanks
2453 is a latex2html bug, but a workaround was provided. Many thanks
2444 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2454 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2445 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2455 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2446 rolling. This seemingly small issue had tripped a number of users
2456 rolling. This seemingly small issue had tripped a number of users
2447 when first installing, so I'm glad to see it gone.
2457 when first installing, so I'm glad to see it gone.
2448
2458
2449 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2459 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2450
2460
2451 * IPython/Extensions/numeric_formats.py: fix missing import,
2461 * IPython/Extensions/numeric_formats.py: fix missing import,
2452 reported by Stephen Walton.
2462 reported by Stephen Walton.
2453
2463
2454 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2464 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2455
2465
2456 * IPython/demo.py: finish demo module, fully documented now.
2466 * IPython/demo.py: finish demo module, fully documented now.
2457
2467
2458 * IPython/genutils.py (file_read): simple little utility to read a
2468 * IPython/genutils.py (file_read): simple little utility to read a
2459 file and ensure it's closed afterwards.
2469 file and ensure it's closed afterwards.
2460
2470
2461 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2471 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2462
2472
2463 * IPython/demo.py (Demo.__init__): added support for individually
2473 * IPython/demo.py (Demo.__init__): added support for individually
2464 tagging blocks for automatic execution.
2474 tagging blocks for automatic execution.
2465
2475
2466 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2476 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2467 syntax-highlighted python sources, requested by John.
2477 syntax-highlighted python sources, requested by John.
2468
2478
2469 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2479 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2470
2480
2471 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2481 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2472 finishing.
2482 finishing.
2473
2483
2474 * IPython/genutils.py (shlex_split): moved from Magic to here,
2484 * IPython/genutils.py (shlex_split): moved from Magic to here,
2475 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2485 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2476
2486
2477 * IPython/demo.py (Demo.__init__): added support for silent
2487 * IPython/demo.py (Demo.__init__): added support for silent
2478 blocks, improved marks as regexps, docstrings written.
2488 blocks, improved marks as regexps, docstrings written.
2479 (Demo.__init__): better docstring, added support for sys.argv.
2489 (Demo.__init__): better docstring, added support for sys.argv.
2480
2490
2481 * IPython/genutils.py (marquee): little utility used by the demo
2491 * IPython/genutils.py (marquee): little utility used by the demo
2482 code, handy in general.
2492 code, handy in general.
2483
2493
2484 * IPython/demo.py (Demo.__init__): new class for interactive
2494 * IPython/demo.py (Demo.__init__): new class for interactive
2485 demos. Not documented yet, I just wrote it in a hurry for
2495 demos. Not documented yet, I just wrote it in a hurry for
2486 scipy'05. Will docstring later.
2496 scipy'05. Will docstring later.
2487
2497
2488 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2498 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2489
2499
2490 * IPython/Shell.py (sigint_handler): Drastic simplification which
2500 * IPython/Shell.py (sigint_handler): Drastic simplification which
2491 also seems to make Ctrl-C work correctly across threads! This is
2501 also seems to make Ctrl-C work correctly across threads! This is
2492 so simple, that I can't beleive I'd missed it before. Needs more
2502 so simple, that I can't beleive I'd missed it before. Needs more
2493 testing, though.
2503 testing, though.
2494 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2504 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2495 like this before...
2505 like this before...
2496
2506
2497 * IPython/genutils.py (get_home_dir): add protection against
2507 * IPython/genutils.py (get_home_dir): add protection against
2498 non-dirs in win32 registry.
2508 non-dirs in win32 registry.
2499
2509
2500 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2510 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2501 bug where dict was mutated while iterating (pysh crash).
2511 bug where dict was mutated while iterating (pysh crash).
2502
2512
2503 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2513 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2504
2514
2505 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2515 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2506 spurious newlines added by this routine. After a report by
2516 spurious newlines added by this routine. After a report by
2507 F. Mantegazza.
2517 F. Mantegazza.
2508
2518
2509 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2519 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2510
2520
2511 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2521 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2512 calls. These were a leftover from the GTK 1.x days, and can cause
2522 calls. These were a leftover from the GTK 1.x days, and can cause
2513 problems in certain cases (after a report by John Hunter).
2523 problems in certain cases (after a report by John Hunter).
2514
2524
2515 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2525 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2516 os.getcwd() fails at init time. Thanks to patch from David Remahl
2526 os.getcwd() fails at init time. Thanks to patch from David Remahl
2517 <chmod007-AT-mac.com>.
2527 <chmod007-AT-mac.com>.
2518 (InteractiveShell.__init__): prevent certain special magics from
2528 (InteractiveShell.__init__): prevent certain special magics from
2519 being shadowed by aliases. Closes
2529 being shadowed by aliases. Closes
2520 http://www.scipy.net/roundup/ipython/issue41.
2530 http://www.scipy.net/roundup/ipython/issue41.
2521
2531
2522 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2532 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2523
2533
2524 * IPython/iplib.py (InteractiveShell.complete): Added new
2534 * IPython/iplib.py (InteractiveShell.complete): Added new
2525 top-level completion method to expose the completion mechanism
2535 top-level completion method to expose the completion mechanism
2526 beyond readline-based environments.
2536 beyond readline-based environments.
2527
2537
2528 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2538 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2529
2539
2530 * tools/ipsvnc (svnversion): fix svnversion capture.
2540 * tools/ipsvnc (svnversion): fix svnversion capture.
2531
2541
2532 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2542 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2533 attribute to self, which was missing. Before, it was set by a
2543 attribute to self, which was missing. Before, it was set by a
2534 routine which in certain cases wasn't being called, so the
2544 routine which in certain cases wasn't being called, so the
2535 instance could end up missing the attribute. This caused a crash.
2545 instance could end up missing the attribute. This caused a crash.
2536 Closes http://www.scipy.net/roundup/ipython/issue40.
2546 Closes http://www.scipy.net/roundup/ipython/issue40.
2537
2547
2538 2005-08-16 Fernando Perez <fperez@colorado.edu>
2548 2005-08-16 Fernando Perez <fperez@colorado.edu>
2539
2549
2540 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2550 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2541 contains non-string attribute. Closes
2551 contains non-string attribute. Closes
2542 http://www.scipy.net/roundup/ipython/issue38.
2552 http://www.scipy.net/roundup/ipython/issue38.
2543
2553
2544 2005-08-14 Fernando Perez <fperez@colorado.edu>
2554 2005-08-14 Fernando Perez <fperez@colorado.edu>
2545
2555
2546 * tools/ipsvnc: Minor improvements, to add changeset info.
2556 * tools/ipsvnc: Minor improvements, to add changeset info.
2547
2557
2548 2005-08-12 Fernando Perez <fperez@colorado.edu>
2558 2005-08-12 Fernando Perez <fperez@colorado.edu>
2549
2559
2550 * IPython/iplib.py (runsource): remove self.code_to_run_src
2560 * IPython/iplib.py (runsource): remove self.code_to_run_src
2551 attribute. I realized this is nothing more than
2561 attribute. I realized this is nothing more than
2552 '\n'.join(self.buffer), and having the same data in two different
2562 '\n'.join(self.buffer), and having the same data in two different
2553 places is just asking for synchronization bugs. This may impact
2563 places is just asking for synchronization bugs. This may impact
2554 people who have custom exception handlers, so I need to warn
2564 people who have custom exception handlers, so I need to warn
2555 ipython-dev about it (F. Mantegazza may use them).
2565 ipython-dev about it (F. Mantegazza may use them).
2556
2566
2557 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2567 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2558
2568
2559 * IPython/genutils.py: fix 2.2 compatibility (generators)
2569 * IPython/genutils.py: fix 2.2 compatibility (generators)
2560
2570
2561 2005-07-18 Fernando Perez <fperez@colorado.edu>
2571 2005-07-18 Fernando Perez <fperez@colorado.edu>
2562
2572
2563 * IPython/genutils.py (get_home_dir): fix to help users with
2573 * IPython/genutils.py (get_home_dir): fix to help users with
2564 invalid $HOME under win32.
2574 invalid $HOME under win32.
2565
2575
2566 2005-07-17 Fernando Perez <fperez@colorado.edu>
2576 2005-07-17 Fernando Perez <fperez@colorado.edu>
2567
2577
2568 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2578 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2569 some old hacks and clean up a bit other routines; code should be
2579 some old hacks and clean up a bit other routines; code should be
2570 simpler and a bit faster.
2580 simpler and a bit faster.
2571
2581
2572 * IPython/iplib.py (interact): removed some last-resort attempts
2582 * IPython/iplib.py (interact): removed some last-resort attempts
2573 to survive broken stdout/stderr. That code was only making it
2583 to survive broken stdout/stderr. That code was only making it
2574 harder to abstract out the i/o (necessary for gui integration),
2584 harder to abstract out the i/o (necessary for gui integration),
2575 and the crashes it could prevent were extremely rare in practice
2585 and the crashes it could prevent were extremely rare in practice
2576 (besides being fully user-induced in a pretty violent manner).
2586 (besides being fully user-induced in a pretty violent manner).
2577
2587
2578 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2588 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2579 Nothing major yet, but the code is simpler to read; this should
2589 Nothing major yet, but the code is simpler to read; this should
2580 make it easier to do more serious modifications in the future.
2590 make it easier to do more serious modifications in the future.
2581
2591
2582 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2592 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2583 which broke in .15 (thanks to a report by Ville).
2593 which broke in .15 (thanks to a report by Ville).
2584
2594
2585 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2595 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2586 be quite correct, I know next to nothing about unicode). This
2596 be quite correct, I know next to nothing about unicode). This
2587 will allow unicode strings to be used in prompts, amongst other
2597 will allow unicode strings to be used in prompts, amongst other
2588 cases. It also will prevent ipython from crashing when unicode
2598 cases. It also will prevent ipython from crashing when unicode
2589 shows up unexpectedly in many places. If ascii encoding fails, we
2599 shows up unexpectedly in many places. If ascii encoding fails, we
2590 assume utf_8. Currently the encoding is not a user-visible
2600 assume utf_8. Currently the encoding is not a user-visible
2591 setting, though it could be made so if there is demand for it.
2601 setting, though it could be made so if there is demand for it.
2592
2602
2593 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2603 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2594
2604
2595 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2605 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2596
2606
2597 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2607 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2598
2608
2599 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2609 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2600 code can work transparently for 2.2/2.3.
2610 code can work transparently for 2.2/2.3.
2601
2611
2602 2005-07-16 Fernando Perez <fperez@colorado.edu>
2612 2005-07-16 Fernando Perez <fperez@colorado.edu>
2603
2613
2604 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2614 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2605 out of the color scheme table used for coloring exception
2615 out of the color scheme table used for coloring exception
2606 tracebacks. This allows user code to add new schemes at runtime.
2616 tracebacks. This allows user code to add new schemes at runtime.
2607 This is a minimally modified version of the patch at
2617 This is a minimally modified version of the patch at
2608 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2618 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2609 for the contribution.
2619 for the contribution.
2610
2620
2611 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2621 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2612 slightly modified version of the patch in
2622 slightly modified version of the patch in
2613 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2623 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2614 to remove the previous try/except solution (which was costlier).
2624 to remove the previous try/except solution (which was costlier).
2615 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2625 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2616
2626
2617 2005-06-08 Fernando Perez <fperez@colorado.edu>
2627 2005-06-08 Fernando Perez <fperez@colorado.edu>
2618
2628
2619 * IPython/iplib.py (write/write_err): Add methods to abstract all
2629 * IPython/iplib.py (write/write_err): Add methods to abstract all
2620 I/O a bit more.
2630 I/O a bit more.
2621
2631
2622 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2632 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2623 warning, reported by Aric Hagberg, fix by JD Hunter.
2633 warning, reported by Aric Hagberg, fix by JD Hunter.
2624
2634
2625 2005-06-02 *** Released version 0.6.15
2635 2005-06-02 *** Released version 0.6.15
2626
2636
2627 2005-06-01 Fernando Perez <fperez@colorado.edu>
2637 2005-06-01 Fernando Perez <fperez@colorado.edu>
2628
2638
2629 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2639 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2630 tab-completion of filenames within open-quoted strings. Note that
2640 tab-completion of filenames within open-quoted strings. Note that
2631 this requires that in ~/.ipython/ipythonrc, users change the
2641 this requires that in ~/.ipython/ipythonrc, users change the
2632 readline delimiters configuration to read:
2642 readline delimiters configuration to read:
2633
2643
2634 readline_remove_delims -/~
2644 readline_remove_delims -/~
2635
2645
2636
2646
2637 2005-05-31 *** Released version 0.6.14
2647 2005-05-31 *** Released version 0.6.14
2638
2648
2639 2005-05-29 Fernando Perez <fperez@colorado.edu>
2649 2005-05-29 Fernando Perez <fperez@colorado.edu>
2640
2650
2641 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2651 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2642 with files not on the filesystem. Reported by Eliyahu Sandler
2652 with files not on the filesystem. Reported by Eliyahu Sandler
2643 <eli@gondolin.net>
2653 <eli@gondolin.net>
2644
2654
2645 2005-05-22 Fernando Perez <fperez@colorado.edu>
2655 2005-05-22 Fernando Perez <fperez@colorado.edu>
2646
2656
2647 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2657 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2648 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2658 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2649
2659
2650 2005-05-19 Fernando Perez <fperez@colorado.edu>
2660 2005-05-19 Fernando Perez <fperez@colorado.edu>
2651
2661
2652 * IPython/iplib.py (safe_execfile): close a file which could be
2662 * IPython/iplib.py (safe_execfile): close a file which could be
2653 left open (causing problems in win32, which locks open files).
2663 left open (causing problems in win32, which locks open files).
2654 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2664 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2655
2665
2656 2005-05-18 Fernando Perez <fperez@colorado.edu>
2666 2005-05-18 Fernando Perez <fperez@colorado.edu>
2657
2667
2658 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2668 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2659 keyword arguments correctly to safe_execfile().
2669 keyword arguments correctly to safe_execfile().
2660
2670
2661 2005-05-13 Fernando Perez <fperez@colorado.edu>
2671 2005-05-13 Fernando Perez <fperez@colorado.edu>
2662
2672
2663 * ipython.1: Added info about Qt to manpage, and threads warning
2673 * ipython.1: Added info about Qt to manpage, and threads warning
2664 to usage page (invoked with --help).
2674 to usage page (invoked with --help).
2665
2675
2666 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2676 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2667 new matcher (it goes at the end of the priority list) to do
2677 new matcher (it goes at the end of the priority list) to do
2668 tab-completion on named function arguments. Submitted by George
2678 tab-completion on named function arguments. Submitted by George
2669 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2679 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2670 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2680 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2671 for more details.
2681 for more details.
2672
2682
2673 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2683 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2674 SystemExit exceptions in the script being run. Thanks to a report
2684 SystemExit exceptions in the script being run. Thanks to a report
2675 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2685 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2676 producing very annoying behavior when running unit tests.
2686 producing very annoying behavior when running unit tests.
2677
2687
2678 2005-05-12 Fernando Perez <fperez@colorado.edu>
2688 2005-05-12 Fernando Perez <fperez@colorado.edu>
2679
2689
2680 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2690 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2681 which I'd broken (again) due to a changed regexp. In the process,
2691 which I'd broken (again) due to a changed regexp. In the process,
2682 added ';' as an escape to auto-quote the whole line without
2692 added ';' as an escape to auto-quote the whole line without
2683 splitting its arguments. Thanks to a report by Jerry McRae
2693 splitting its arguments. Thanks to a report by Jerry McRae
2684 <qrs0xyc02-AT-sneakemail.com>.
2694 <qrs0xyc02-AT-sneakemail.com>.
2685
2695
2686 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2696 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2687 possible crashes caused by a TokenError. Reported by Ed Schofield
2697 possible crashes caused by a TokenError. Reported by Ed Schofield
2688 <schofield-AT-ftw.at>.
2698 <schofield-AT-ftw.at>.
2689
2699
2690 2005-05-06 Fernando Perez <fperez@colorado.edu>
2700 2005-05-06 Fernando Perez <fperez@colorado.edu>
2691
2701
2692 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2702 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2693
2703
2694 2005-04-29 Fernando Perez <fperez@colorado.edu>
2704 2005-04-29 Fernando Perez <fperez@colorado.edu>
2695
2705
2696 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2706 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2697 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2707 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2698 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2708 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2699 which provides support for Qt interactive usage (similar to the
2709 which provides support for Qt interactive usage (similar to the
2700 existing one for WX and GTK). This had been often requested.
2710 existing one for WX and GTK). This had been often requested.
2701
2711
2702 2005-04-14 *** Released version 0.6.13
2712 2005-04-14 *** Released version 0.6.13
2703
2713
2704 2005-04-08 Fernando Perez <fperez@colorado.edu>
2714 2005-04-08 Fernando Perez <fperez@colorado.edu>
2705
2715
2706 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2716 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2707 from _ofind, which gets called on almost every input line. Now,
2717 from _ofind, which gets called on almost every input line. Now,
2708 we only try to get docstrings if they are actually going to be
2718 we only try to get docstrings if they are actually going to be
2709 used (the overhead of fetching unnecessary docstrings can be
2719 used (the overhead of fetching unnecessary docstrings can be
2710 noticeable for certain objects, such as Pyro proxies).
2720 noticeable for certain objects, such as Pyro proxies).
2711
2721
2712 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2722 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2713 for completers. For some reason I had been passing them the state
2723 for completers. For some reason I had been passing them the state
2714 variable, which completers never actually need, and was in
2724 variable, which completers never actually need, and was in
2715 conflict with the rlcompleter API. Custom completers ONLY need to
2725 conflict with the rlcompleter API. Custom completers ONLY need to
2716 take the text parameter.
2726 take the text parameter.
2717
2727
2718 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2728 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2719 work correctly in pysh. I've also moved all the logic which used
2729 work correctly in pysh. I've also moved all the logic which used
2720 to be in pysh.py here, which will prevent problems with future
2730 to be in pysh.py here, which will prevent problems with future
2721 upgrades. However, this time I must warn users to update their
2731 upgrades. However, this time I must warn users to update their
2722 pysh profile to include the line
2732 pysh profile to include the line
2723
2733
2724 import_all IPython.Extensions.InterpreterExec
2734 import_all IPython.Extensions.InterpreterExec
2725
2735
2726 because otherwise things won't work for them. They MUST also
2736 because otherwise things won't work for them. They MUST also
2727 delete pysh.py and the line
2737 delete pysh.py and the line
2728
2738
2729 execfile pysh.py
2739 execfile pysh.py
2730
2740
2731 from their ipythonrc-pysh.
2741 from their ipythonrc-pysh.
2732
2742
2733 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2743 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2734 robust in the face of objects whose dir() returns non-strings
2744 robust in the face of objects whose dir() returns non-strings
2735 (which it shouldn't, but some broken libs like ITK do). Thanks to
2745 (which it shouldn't, but some broken libs like ITK do). Thanks to
2736 a patch by John Hunter (implemented differently, though). Also
2746 a patch by John Hunter (implemented differently, though). Also
2737 minor improvements by using .extend instead of + on lists.
2747 minor improvements by using .extend instead of + on lists.
2738
2748
2739 * pysh.py:
2749 * pysh.py:
2740
2750
2741 2005-04-06 Fernando Perez <fperez@colorado.edu>
2751 2005-04-06 Fernando Perez <fperez@colorado.edu>
2742
2752
2743 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2753 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2744 by default, so that all users benefit from it. Those who don't
2754 by default, so that all users benefit from it. Those who don't
2745 want it can still turn it off.
2755 want it can still turn it off.
2746
2756
2747 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2757 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2748 config file, I'd forgotten about this, so users were getting it
2758 config file, I'd forgotten about this, so users were getting it
2749 off by default.
2759 off by default.
2750
2760
2751 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2761 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2752 consistency. Now magics can be called in multiline statements,
2762 consistency. Now magics can be called in multiline statements,
2753 and python variables can be expanded in magic calls via $var.
2763 and python variables can be expanded in magic calls via $var.
2754 This makes the magic system behave just like aliases or !system
2764 This makes the magic system behave just like aliases or !system
2755 calls.
2765 calls.
2756
2766
2757 2005-03-28 Fernando Perez <fperez@colorado.edu>
2767 2005-03-28 Fernando Perez <fperez@colorado.edu>
2758
2768
2759 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2769 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2760 expensive string additions for building command. Add support for
2770 expensive string additions for building command. Add support for
2761 trailing ';' when autocall is used.
2771 trailing ';' when autocall is used.
2762
2772
2763 2005-03-26 Fernando Perez <fperez@colorado.edu>
2773 2005-03-26 Fernando Perez <fperez@colorado.edu>
2764
2774
2765 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2775 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2766 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2776 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2767 ipython.el robust against prompts with any number of spaces
2777 ipython.el robust against prompts with any number of spaces
2768 (including 0) after the ':' character.
2778 (including 0) after the ':' character.
2769
2779
2770 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2780 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2771 continuation prompt, which misled users to think the line was
2781 continuation prompt, which misled users to think the line was
2772 already indented. Closes debian Bug#300847, reported to me by
2782 already indented. Closes debian Bug#300847, reported to me by
2773 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2783 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2774
2784
2775 2005-03-23 Fernando Perez <fperez@colorado.edu>
2785 2005-03-23 Fernando Perez <fperez@colorado.edu>
2776
2786
2777 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2787 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2778 properly aligned if they have embedded newlines.
2788 properly aligned if they have embedded newlines.
2779
2789
2780 * IPython/iplib.py (runlines): Add a public method to expose
2790 * IPython/iplib.py (runlines): Add a public method to expose
2781 IPython's code execution machinery, so that users can run strings
2791 IPython's code execution machinery, so that users can run strings
2782 as if they had been typed at the prompt interactively.
2792 as if they had been typed at the prompt interactively.
2783 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2793 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2784 methods which can call the system shell, but with python variable
2794 methods which can call the system shell, but with python variable
2785 expansion. The three such methods are: __IPYTHON__.system,
2795 expansion. The three such methods are: __IPYTHON__.system,
2786 .getoutput and .getoutputerror. These need to be documented in a
2796 .getoutput and .getoutputerror. These need to be documented in a
2787 'public API' section (to be written) of the manual.
2797 'public API' section (to be written) of the manual.
2788
2798
2789 2005-03-20 Fernando Perez <fperez@colorado.edu>
2799 2005-03-20 Fernando Perez <fperez@colorado.edu>
2790
2800
2791 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2801 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2792 for custom exception handling. This is quite powerful, and it
2802 for custom exception handling. This is quite powerful, and it
2793 allows for user-installable exception handlers which can trap
2803 allows for user-installable exception handlers which can trap
2794 custom exceptions at runtime and treat them separately from
2804 custom exceptions at runtime and treat them separately from
2795 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2805 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2796 Mantegazza <mantegazza-AT-ill.fr>.
2806 Mantegazza <mantegazza-AT-ill.fr>.
2797 (InteractiveShell.set_custom_completer): public API function to
2807 (InteractiveShell.set_custom_completer): public API function to
2798 add new completers at runtime.
2808 add new completers at runtime.
2799
2809
2800 2005-03-19 Fernando Perez <fperez@colorado.edu>
2810 2005-03-19 Fernando Perez <fperez@colorado.edu>
2801
2811
2802 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2812 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2803 allow objects which provide their docstrings via non-standard
2813 allow objects which provide their docstrings via non-standard
2804 mechanisms (like Pyro proxies) to still be inspected by ipython's
2814 mechanisms (like Pyro proxies) to still be inspected by ipython's
2805 ? system.
2815 ? system.
2806
2816
2807 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2817 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2808 automatic capture system. I tried quite hard to make it work
2818 automatic capture system. I tried quite hard to make it work
2809 reliably, and simply failed. I tried many combinations with the
2819 reliably, and simply failed. I tried many combinations with the
2810 subprocess module, but eventually nothing worked in all needed
2820 subprocess module, but eventually nothing worked in all needed
2811 cases (not blocking stdin for the child, duplicating stdout
2821 cases (not blocking stdin for the child, duplicating stdout
2812 without blocking, etc). The new %sc/%sx still do capture to these
2822 without blocking, etc). The new %sc/%sx still do capture to these
2813 magical list/string objects which make shell use much more
2823 magical list/string objects which make shell use much more
2814 conveninent, so not all is lost.
2824 conveninent, so not all is lost.
2815
2825
2816 XXX - FIX MANUAL for the change above!
2826 XXX - FIX MANUAL for the change above!
2817
2827
2818 (runsource): I copied code.py's runsource() into ipython to modify
2828 (runsource): I copied code.py's runsource() into ipython to modify
2819 it a bit. Now the code object and source to be executed are
2829 it a bit. Now the code object and source to be executed are
2820 stored in ipython. This makes this info accessible to third-party
2830 stored in ipython. This makes this info accessible to third-party
2821 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2831 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2822 Mantegazza <mantegazza-AT-ill.fr>.
2832 Mantegazza <mantegazza-AT-ill.fr>.
2823
2833
2824 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2834 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2825 history-search via readline (like C-p/C-n). I'd wanted this for a
2835 history-search via readline (like C-p/C-n). I'd wanted this for a
2826 long time, but only recently found out how to do it. For users
2836 long time, but only recently found out how to do it. For users
2827 who already have their ipythonrc files made and want this, just
2837 who already have their ipythonrc files made and want this, just
2828 add:
2838 add:
2829
2839
2830 readline_parse_and_bind "\e[A": history-search-backward
2840 readline_parse_and_bind "\e[A": history-search-backward
2831 readline_parse_and_bind "\e[B": history-search-forward
2841 readline_parse_and_bind "\e[B": history-search-forward
2832
2842
2833 2005-03-18 Fernando Perez <fperez@colorado.edu>
2843 2005-03-18 Fernando Perez <fperez@colorado.edu>
2834
2844
2835 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2845 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2836 LSString and SList classes which allow transparent conversions
2846 LSString and SList classes which allow transparent conversions
2837 between list mode and whitespace-separated string.
2847 between list mode and whitespace-separated string.
2838 (magic_r): Fix recursion problem in %r.
2848 (magic_r): Fix recursion problem in %r.
2839
2849
2840 * IPython/genutils.py (LSString): New class to be used for
2850 * IPython/genutils.py (LSString): New class to be used for
2841 automatic storage of the results of all alias/system calls in _o
2851 automatic storage of the results of all alias/system calls in _o
2842 and _e (stdout/err). These provide a .l/.list attribute which
2852 and _e (stdout/err). These provide a .l/.list attribute which
2843 does automatic splitting on newlines. This means that for most
2853 does automatic splitting on newlines. This means that for most
2844 uses, you'll never need to do capturing of output with %sc/%sx
2854 uses, you'll never need to do capturing of output with %sc/%sx
2845 anymore, since ipython keeps this always done for you. Note that
2855 anymore, since ipython keeps this always done for you. Note that
2846 only the LAST results are stored, the _o/e variables are
2856 only the LAST results are stored, the _o/e variables are
2847 overwritten on each call. If you need to save their contents
2857 overwritten on each call. If you need to save their contents
2848 further, simply bind them to any other name.
2858 further, simply bind them to any other name.
2849
2859
2850 2005-03-17 Fernando Perez <fperez@colorado.edu>
2860 2005-03-17 Fernando Perez <fperez@colorado.edu>
2851
2861
2852 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2862 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2853 prompt namespace handling.
2863 prompt namespace handling.
2854
2864
2855 2005-03-16 Fernando Perez <fperez@colorado.edu>
2865 2005-03-16 Fernando Perez <fperez@colorado.edu>
2856
2866
2857 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2867 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2858 classic prompts to be '>>> ' (final space was missing, and it
2868 classic prompts to be '>>> ' (final space was missing, and it
2859 trips the emacs python mode).
2869 trips the emacs python mode).
2860 (BasePrompt.__str__): Added safe support for dynamic prompt
2870 (BasePrompt.__str__): Added safe support for dynamic prompt
2861 strings. Now you can set your prompt string to be '$x', and the
2871 strings. Now you can set your prompt string to be '$x', and the
2862 value of x will be printed from your interactive namespace. The
2872 value of x will be printed from your interactive namespace. The
2863 interpolation syntax includes the full Itpl support, so
2873 interpolation syntax includes the full Itpl support, so
2864 ${foo()+x+bar()} is a valid prompt string now, and the function
2874 ${foo()+x+bar()} is a valid prompt string now, and the function
2865 calls will be made at runtime.
2875 calls will be made at runtime.
2866
2876
2867 2005-03-15 Fernando Perez <fperez@colorado.edu>
2877 2005-03-15 Fernando Perez <fperez@colorado.edu>
2868
2878
2869 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2879 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2870 avoid name clashes in pylab. %hist still works, it just forwards
2880 avoid name clashes in pylab. %hist still works, it just forwards
2871 the call to %history.
2881 the call to %history.
2872
2882
2873 2005-03-02 *** Released version 0.6.12
2883 2005-03-02 *** Released version 0.6.12
2874
2884
2875 2005-03-02 Fernando Perez <fperez@colorado.edu>
2885 2005-03-02 Fernando Perez <fperez@colorado.edu>
2876
2886
2877 * IPython/iplib.py (handle_magic): log magic calls properly as
2887 * IPython/iplib.py (handle_magic): log magic calls properly as
2878 ipmagic() function calls.
2888 ipmagic() function calls.
2879
2889
2880 * IPython/Magic.py (magic_time): Improved %time to support
2890 * IPython/Magic.py (magic_time): Improved %time to support
2881 statements and provide wall-clock as well as CPU time.
2891 statements and provide wall-clock as well as CPU time.
2882
2892
2883 2005-02-27 Fernando Perez <fperez@colorado.edu>
2893 2005-02-27 Fernando Perez <fperez@colorado.edu>
2884
2894
2885 * IPython/hooks.py: New hooks module, to expose user-modifiable
2895 * IPython/hooks.py: New hooks module, to expose user-modifiable
2886 IPython functionality in a clean manner. For now only the editor
2896 IPython functionality in a clean manner. For now only the editor
2887 hook is actually written, and other thigns which I intend to turn
2897 hook is actually written, and other thigns which I intend to turn
2888 into proper hooks aren't yet there. The display and prefilter
2898 into proper hooks aren't yet there. The display and prefilter
2889 stuff, for example, should be hooks. But at least now the
2899 stuff, for example, should be hooks. But at least now the
2890 framework is in place, and the rest can be moved here with more
2900 framework is in place, and the rest can be moved here with more
2891 time later. IPython had had a .hooks variable for a long time for
2901 time later. IPython had had a .hooks variable for a long time for
2892 this purpose, but I'd never actually used it for anything.
2902 this purpose, but I'd never actually used it for anything.
2893
2903
2894 2005-02-26 Fernando Perez <fperez@colorado.edu>
2904 2005-02-26 Fernando Perez <fperez@colorado.edu>
2895
2905
2896 * IPython/ipmaker.py (make_IPython): make the default ipython
2906 * IPython/ipmaker.py (make_IPython): make the default ipython
2897 directory be called _ipython under win32, to follow more the
2907 directory be called _ipython under win32, to follow more the
2898 naming peculiarities of that platform (where buggy software like
2908 naming peculiarities of that platform (where buggy software like
2899 Visual Sourcesafe breaks with .named directories). Reported by
2909 Visual Sourcesafe breaks with .named directories). Reported by
2900 Ville Vainio.
2910 Ville Vainio.
2901
2911
2902 2005-02-23 Fernando Perez <fperez@colorado.edu>
2912 2005-02-23 Fernando Perez <fperez@colorado.edu>
2903
2913
2904 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2914 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2905 auto_aliases for win32 which were causing problems. Users can
2915 auto_aliases for win32 which were causing problems. Users can
2906 define the ones they personally like.
2916 define the ones they personally like.
2907
2917
2908 2005-02-21 Fernando Perez <fperez@colorado.edu>
2918 2005-02-21 Fernando Perez <fperez@colorado.edu>
2909
2919
2910 * IPython/Magic.py (magic_time): new magic to time execution of
2920 * IPython/Magic.py (magic_time): new magic to time execution of
2911 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2921 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2912
2922
2913 2005-02-19 Fernando Perez <fperez@colorado.edu>
2923 2005-02-19 Fernando Perez <fperez@colorado.edu>
2914
2924
2915 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2925 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2916 into keys (for prompts, for example).
2926 into keys (for prompts, for example).
2917
2927
2918 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2928 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2919 prompts in case users want them. This introduces a small behavior
2929 prompts in case users want them. This introduces a small behavior
2920 change: ipython does not automatically add a space to all prompts
2930 change: ipython does not automatically add a space to all prompts
2921 anymore. To get the old prompts with a space, users should add it
2931 anymore. To get the old prompts with a space, users should add it
2922 manually to their ipythonrc file, so for example prompt_in1 should
2932 manually to their ipythonrc file, so for example prompt_in1 should
2923 now read 'In [\#]: ' instead of 'In [\#]:'.
2933 now read 'In [\#]: ' instead of 'In [\#]:'.
2924 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2934 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2925 file) to control left-padding of secondary prompts.
2935 file) to control left-padding of secondary prompts.
2926
2936
2927 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2937 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2928 the profiler can't be imported. Fix for Debian, which removed
2938 the profiler can't be imported. Fix for Debian, which removed
2929 profile.py because of License issues. I applied a slightly
2939 profile.py because of License issues. I applied a slightly
2930 modified version of the original Debian patch at
2940 modified version of the original Debian patch at
2931 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2941 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2932
2942
2933 2005-02-17 Fernando Perez <fperez@colorado.edu>
2943 2005-02-17 Fernando Perez <fperez@colorado.edu>
2934
2944
2935 * IPython/genutils.py (native_line_ends): Fix bug which would
2945 * IPython/genutils.py (native_line_ends): Fix bug which would
2936 cause improper line-ends under win32 b/c I was not opening files
2946 cause improper line-ends under win32 b/c I was not opening files
2937 in binary mode. Bug report and fix thanks to Ville.
2947 in binary mode. Bug report and fix thanks to Ville.
2938
2948
2939 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2949 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2940 trying to catch spurious foo[1] autocalls. My fix actually broke
2950 trying to catch spurious foo[1] autocalls. My fix actually broke
2941 ',/' autoquote/call with explicit escape (bad regexp).
2951 ',/' autoquote/call with explicit escape (bad regexp).
2942
2952
2943 2005-02-15 *** Released version 0.6.11
2953 2005-02-15 *** Released version 0.6.11
2944
2954
2945 2005-02-14 Fernando Perez <fperez@colorado.edu>
2955 2005-02-14 Fernando Perez <fperez@colorado.edu>
2946
2956
2947 * IPython/background_jobs.py: New background job management
2957 * IPython/background_jobs.py: New background job management
2948 subsystem. This is implemented via a new set of classes, and
2958 subsystem. This is implemented via a new set of classes, and
2949 IPython now provides a builtin 'jobs' object for background job
2959 IPython now provides a builtin 'jobs' object for background job
2950 execution. A convenience %bg magic serves as a lightweight
2960 execution. A convenience %bg magic serves as a lightweight
2951 frontend for starting the more common type of calls. This was
2961 frontend for starting the more common type of calls. This was
2952 inspired by discussions with B. Granger and the BackgroundCommand
2962 inspired by discussions with B. Granger and the BackgroundCommand
2953 class described in the book Python Scripting for Computational
2963 class described in the book Python Scripting for Computational
2954 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2964 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2955 (although ultimately no code from this text was used, as IPython's
2965 (although ultimately no code from this text was used, as IPython's
2956 system is a separate implementation).
2966 system is a separate implementation).
2957
2967
2958 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2968 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2959 to control the completion of single/double underscore names
2969 to control the completion of single/double underscore names
2960 separately. As documented in the example ipytonrc file, the
2970 separately. As documented in the example ipytonrc file, the
2961 readline_omit__names variable can now be set to 2, to omit even
2971 readline_omit__names variable can now be set to 2, to omit even
2962 single underscore names. Thanks to a patch by Brian Wong
2972 single underscore names. Thanks to a patch by Brian Wong
2963 <BrianWong-AT-AirgoNetworks.Com>.
2973 <BrianWong-AT-AirgoNetworks.Com>.
2964 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2974 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2965 be autocalled as foo([1]) if foo were callable. A problem for
2975 be autocalled as foo([1]) if foo were callable. A problem for
2966 things which are both callable and implement __getitem__.
2976 things which are both callable and implement __getitem__.
2967 (init_readline): Fix autoindentation for win32. Thanks to a patch
2977 (init_readline): Fix autoindentation for win32. Thanks to a patch
2968 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2978 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2969
2979
2970 2005-02-12 Fernando Perez <fperez@colorado.edu>
2980 2005-02-12 Fernando Perez <fperez@colorado.edu>
2971
2981
2972 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2982 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2973 which I had written long ago to sort out user error messages which
2983 which I had written long ago to sort out user error messages which
2974 may occur during startup. This seemed like a good idea initially,
2984 may occur during startup. This seemed like a good idea initially,
2975 but it has proven a disaster in retrospect. I don't want to
2985 but it has proven a disaster in retrospect. I don't want to
2976 change much code for now, so my fix is to set the internal 'debug'
2986 change much code for now, so my fix is to set the internal 'debug'
2977 flag to true everywhere, whose only job was precisely to control
2987 flag to true everywhere, whose only job was precisely to control
2978 this subsystem. This closes issue 28 (as well as avoiding all
2988 this subsystem. This closes issue 28 (as well as avoiding all
2979 sorts of strange hangups which occur from time to time).
2989 sorts of strange hangups which occur from time to time).
2980
2990
2981 2005-02-07 Fernando Perez <fperez@colorado.edu>
2991 2005-02-07 Fernando Perez <fperez@colorado.edu>
2982
2992
2983 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2993 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2984 previous call produced a syntax error.
2994 previous call produced a syntax error.
2985
2995
2986 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2996 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2987 classes without constructor.
2997 classes without constructor.
2988
2998
2989 2005-02-06 Fernando Perez <fperez@colorado.edu>
2999 2005-02-06 Fernando Perez <fperez@colorado.edu>
2990
3000
2991 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3001 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2992 completions with the results of each matcher, so we return results
3002 completions with the results of each matcher, so we return results
2993 to the user from all namespaces. This breaks with ipython
3003 to the user from all namespaces. This breaks with ipython
2994 tradition, but I think it's a nicer behavior. Now you get all
3004 tradition, but I think it's a nicer behavior. Now you get all
2995 possible completions listed, from all possible namespaces (python,
3005 possible completions listed, from all possible namespaces (python,
2996 filesystem, magics...) After a request by John Hunter
3006 filesystem, magics...) After a request by John Hunter
2997 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3007 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2998
3008
2999 2005-02-05 Fernando Perez <fperez@colorado.edu>
3009 2005-02-05 Fernando Perez <fperez@colorado.edu>
3000
3010
3001 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3011 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3002 the call had quote characters in it (the quotes were stripped).
3012 the call had quote characters in it (the quotes were stripped).
3003
3013
3004 2005-01-31 Fernando Perez <fperez@colorado.edu>
3014 2005-01-31 Fernando Perez <fperez@colorado.edu>
3005
3015
3006 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3016 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3007 Itpl.itpl() to make the code more robust against psyco
3017 Itpl.itpl() to make the code more robust against psyco
3008 optimizations.
3018 optimizations.
3009
3019
3010 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3020 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3011 of causing an exception. Quicker, cleaner.
3021 of causing an exception. Quicker, cleaner.
3012
3022
3013 2005-01-28 Fernando Perez <fperez@colorado.edu>
3023 2005-01-28 Fernando Perez <fperez@colorado.edu>
3014
3024
3015 * scripts/ipython_win_post_install.py (install): hardcode
3025 * scripts/ipython_win_post_install.py (install): hardcode
3016 sys.prefix+'python.exe' as the executable path. It turns out that
3026 sys.prefix+'python.exe' as the executable path. It turns out that
3017 during the post-installation run, sys.executable resolves to the
3027 during the post-installation run, sys.executable resolves to the
3018 name of the binary installer! I should report this as a distutils
3028 name of the binary installer! I should report this as a distutils
3019 bug, I think. I updated the .10 release with this tiny fix, to
3029 bug, I think. I updated the .10 release with this tiny fix, to
3020 avoid annoying the lists further.
3030 avoid annoying the lists further.
3021
3031
3022 2005-01-27 *** Released version 0.6.10
3032 2005-01-27 *** Released version 0.6.10
3023
3033
3024 2005-01-27 Fernando Perez <fperez@colorado.edu>
3034 2005-01-27 Fernando Perez <fperez@colorado.edu>
3025
3035
3026 * IPython/numutils.py (norm): Added 'inf' as optional name for
3036 * IPython/numutils.py (norm): Added 'inf' as optional name for
3027 L-infinity norm, included references to mathworld.com for vector
3037 L-infinity norm, included references to mathworld.com for vector
3028 norm definitions.
3038 norm definitions.
3029 (amin/amax): added amin/amax for array min/max. Similar to what
3039 (amin/amax): added amin/amax for array min/max. Similar to what
3030 pylab ships with after the recent reorganization of names.
3040 pylab ships with after the recent reorganization of names.
3031 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3041 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3032
3042
3033 * ipython.el: committed Alex's recent fixes and improvements.
3043 * ipython.el: committed Alex's recent fixes and improvements.
3034 Tested with python-mode from CVS, and it looks excellent. Since
3044 Tested with python-mode from CVS, and it looks excellent. Since
3035 python-mode hasn't released anything in a while, I'm temporarily
3045 python-mode hasn't released anything in a while, I'm temporarily
3036 putting a copy of today's CVS (v 4.70) of python-mode in:
3046 putting a copy of today's CVS (v 4.70) of python-mode in:
3037 http://ipython.scipy.org/tmp/python-mode.el
3047 http://ipython.scipy.org/tmp/python-mode.el
3038
3048
3039 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3049 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3040 sys.executable for the executable name, instead of assuming it's
3050 sys.executable for the executable name, instead of assuming it's
3041 called 'python.exe' (the post-installer would have produced broken
3051 called 'python.exe' (the post-installer would have produced broken
3042 setups on systems with a differently named python binary).
3052 setups on systems with a differently named python binary).
3043
3053
3044 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3054 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3045 references to os.linesep, to make the code more
3055 references to os.linesep, to make the code more
3046 platform-independent. This is also part of the win32 coloring
3056 platform-independent. This is also part of the win32 coloring
3047 fixes.
3057 fixes.
3048
3058
3049 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3059 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3050 lines, which actually cause coloring bugs because the length of
3060 lines, which actually cause coloring bugs because the length of
3051 the line is very difficult to correctly compute with embedded
3061 the line is very difficult to correctly compute with embedded
3052 escapes. This was the source of all the coloring problems under
3062 escapes. This was the source of all the coloring problems under
3053 Win32. I think that _finally_, Win32 users have a properly
3063 Win32. I think that _finally_, Win32 users have a properly
3054 working ipython in all respects. This would never have happened
3064 working ipython in all respects. This would never have happened
3055 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3065 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3056
3066
3057 2005-01-26 *** Released version 0.6.9
3067 2005-01-26 *** Released version 0.6.9
3058
3068
3059 2005-01-25 Fernando Perez <fperez@colorado.edu>
3069 2005-01-25 Fernando Perez <fperez@colorado.edu>
3060
3070
3061 * setup.py: finally, we have a true Windows installer, thanks to
3071 * setup.py: finally, we have a true Windows installer, thanks to
3062 the excellent work of Viktor Ransmayr
3072 the excellent work of Viktor Ransmayr
3063 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3073 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3064 Windows users. The setup routine is quite a bit cleaner thanks to
3074 Windows users. The setup routine is quite a bit cleaner thanks to
3065 this, and the post-install script uses the proper functions to
3075 this, and the post-install script uses the proper functions to
3066 allow a clean de-installation using the standard Windows Control
3076 allow a clean de-installation using the standard Windows Control
3067 Panel.
3077 Panel.
3068
3078
3069 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3079 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3070 environment variable under all OSes (including win32) if
3080 environment variable under all OSes (including win32) if
3071 available. This will give consistency to win32 users who have set
3081 available. This will give consistency to win32 users who have set
3072 this variable for any reason. If os.environ['HOME'] fails, the
3082 this variable for any reason. If os.environ['HOME'] fails, the
3073 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3083 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3074
3084
3075 2005-01-24 Fernando Perez <fperez@colorado.edu>
3085 2005-01-24 Fernando Perez <fperez@colorado.edu>
3076
3086
3077 * IPython/numutils.py (empty_like): add empty_like(), similar to
3087 * IPython/numutils.py (empty_like): add empty_like(), similar to
3078 zeros_like() but taking advantage of the new empty() Numeric routine.
3088 zeros_like() but taking advantage of the new empty() Numeric routine.
3079
3089
3080 2005-01-23 *** Released version 0.6.8
3090 2005-01-23 *** Released version 0.6.8
3081
3091
3082 2005-01-22 Fernando Perez <fperez@colorado.edu>
3092 2005-01-22 Fernando Perez <fperez@colorado.edu>
3083
3093
3084 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3094 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3085 automatic show() calls. After discussing things with JDH, it
3095 automatic show() calls. After discussing things with JDH, it
3086 turns out there are too many corner cases where this can go wrong.
3096 turns out there are too many corner cases where this can go wrong.
3087 It's best not to try to be 'too smart', and simply have ipython
3097 It's best not to try to be 'too smart', and simply have ipython
3088 reproduce as much as possible the default behavior of a normal
3098 reproduce as much as possible the default behavior of a normal
3089 python shell.
3099 python shell.
3090
3100
3091 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3101 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3092 line-splitting regexp and _prefilter() to avoid calling getattr()
3102 line-splitting regexp and _prefilter() to avoid calling getattr()
3093 on assignments. This closes
3103 on assignments. This closes
3094 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3104 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3095 readline uses getattr(), so a simple <TAB> keypress is still
3105 readline uses getattr(), so a simple <TAB> keypress is still
3096 enough to trigger getattr() calls on an object.
3106 enough to trigger getattr() calls on an object.
3097
3107
3098 2005-01-21 Fernando Perez <fperez@colorado.edu>
3108 2005-01-21 Fernando Perez <fperez@colorado.edu>
3099
3109
3100 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3110 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3101 docstring under pylab so it doesn't mask the original.
3111 docstring under pylab so it doesn't mask the original.
3102
3112
3103 2005-01-21 *** Released version 0.6.7
3113 2005-01-21 *** Released version 0.6.7
3104
3114
3105 2005-01-21 Fernando Perez <fperez@colorado.edu>
3115 2005-01-21 Fernando Perez <fperez@colorado.edu>
3106
3116
3107 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3117 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3108 signal handling for win32 users in multithreaded mode.
3118 signal handling for win32 users in multithreaded mode.
3109
3119
3110 2005-01-17 Fernando Perez <fperez@colorado.edu>
3120 2005-01-17 Fernando Perez <fperez@colorado.edu>
3111
3121
3112 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3122 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3113 instances with no __init__. After a crash report by Norbert Nemec
3123 instances with no __init__. After a crash report by Norbert Nemec
3114 <Norbert-AT-nemec-online.de>.
3124 <Norbert-AT-nemec-online.de>.
3115
3125
3116 2005-01-14 Fernando Perez <fperez@colorado.edu>
3126 2005-01-14 Fernando Perez <fperez@colorado.edu>
3117
3127
3118 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3128 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3119 names for verbose exceptions, when multiple dotted names and the
3129 names for verbose exceptions, when multiple dotted names and the
3120 'parent' object were present on the same line.
3130 'parent' object were present on the same line.
3121
3131
3122 2005-01-11 Fernando Perez <fperez@colorado.edu>
3132 2005-01-11 Fernando Perez <fperez@colorado.edu>
3123
3133
3124 * IPython/genutils.py (flag_calls): new utility to trap and flag
3134 * IPython/genutils.py (flag_calls): new utility to trap and flag
3125 calls in functions. I need it to clean up matplotlib support.
3135 calls in functions. I need it to clean up matplotlib support.
3126 Also removed some deprecated code in genutils.
3136 Also removed some deprecated code in genutils.
3127
3137
3128 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3138 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3129 that matplotlib scripts called with %run, which don't call show()
3139 that matplotlib scripts called with %run, which don't call show()
3130 themselves, still have their plotting windows open.
3140 themselves, still have their plotting windows open.
3131
3141
3132 2005-01-05 Fernando Perez <fperez@colorado.edu>
3142 2005-01-05 Fernando Perez <fperez@colorado.edu>
3133
3143
3134 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3144 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3135 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3145 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3136
3146
3137 2004-12-19 Fernando Perez <fperez@colorado.edu>
3147 2004-12-19 Fernando Perez <fperez@colorado.edu>
3138
3148
3139 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3149 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3140 parent_runcode, which was an eyesore. The same result can be
3150 parent_runcode, which was an eyesore. The same result can be
3141 obtained with Python's regular superclass mechanisms.
3151 obtained with Python's regular superclass mechanisms.
3142
3152
3143 2004-12-17 Fernando Perez <fperez@colorado.edu>
3153 2004-12-17 Fernando Perez <fperez@colorado.edu>
3144
3154
3145 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3155 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3146 reported by Prabhu.
3156 reported by Prabhu.
3147 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3157 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3148 sys.stderr) instead of explicitly calling sys.stderr. This helps
3158 sys.stderr) instead of explicitly calling sys.stderr. This helps
3149 maintain our I/O abstractions clean, for future GUI embeddings.
3159 maintain our I/O abstractions clean, for future GUI embeddings.
3150
3160
3151 * IPython/genutils.py (info): added new utility for sys.stderr
3161 * IPython/genutils.py (info): added new utility for sys.stderr
3152 unified info message handling (thin wrapper around warn()).
3162 unified info message handling (thin wrapper around warn()).
3153
3163
3154 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3164 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3155 composite (dotted) names on verbose exceptions.
3165 composite (dotted) names on verbose exceptions.
3156 (VerboseTB.nullrepr): harden against another kind of errors which
3166 (VerboseTB.nullrepr): harden against another kind of errors which
3157 Python's inspect module can trigger, and which were crashing
3167 Python's inspect module can trigger, and which were crashing
3158 IPython. Thanks to a report by Marco Lombardi
3168 IPython. Thanks to a report by Marco Lombardi
3159 <mlombard-AT-ma010192.hq.eso.org>.
3169 <mlombard-AT-ma010192.hq.eso.org>.
3160
3170
3161 2004-12-13 *** Released version 0.6.6
3171 2004-12-13 *** Released version 0.6.6
3162
3172
3163 2004-12-12 Fernando Perez <fperez@colorado.edu>
3173 2004-12-12 Fernando Perez <fperez@colorado.edu>
3164
3174
3165 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3175 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3166 generated by pygtk upon initialization if it was built without
3176 generated by pygtk upon initialization if it was built without
3167 threads (for matplotlib users). After a crash reported by
3177 threads (for matplotlib users). After a crash reported by
3168 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3178 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3169
3179
3170 * IPython/ipmaker.py (make_IPython): fix small bug in the
3180 * IPython/ipmaker.py (make_IPython): fix small bug in the
3171 import_some parameter for multiple imports.
3181 import_some parameter for multiple imports.
3172
3182
3173 * IPython/iplib.py (ipmagic): simplified the interface of
3183 * IPython/iplib.py (ipmagic): simplified the interface of
3174 ipmagic() to take a single string argument, just as it would be
3184 ipmagic() to take a single string argument, just as it would be
3175 typed at the IPython cmd line.
3185 typed at the IPython cmd line.
3176 (ipalias): Added new ipalias() with an interface identical to
3186 (ipalias): Added new ipalias() with an interface identical to
3177 ipmagic(). This completes exposing a pure python interface to the
3187 ipmagic(). This completes exposing a pure python interface to the
3178 alias and magic system, which can be used in loops or more complex
3188 alias and magic system, which can be used in loops or more complex
3179 code where IPython's automatic line mangling is not active.
3189 code where IPython's automatic line mangling is not active.
3180
3190
3181 * IPython/genutils.py (timing): changed interface of timing to
3191 * IPython/genutils.py (timing): changed interface of timing to
3182 simply run code once, which is the most common case. timings()
3192 simply run code once, which is the most common case. timings()
3183 remains unchanged, for the cases where you want multiple runs.
3193 remains unchanged, for the cases where you want multiple runs.
3184
3194
3185 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3195 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3186 bug where Python2.2 crashes with exec'ing code which does not end
3196 bug where Python2.2 crashes with exec'ing code which does not end
3187 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3197 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3188 before.
3198 before.
3189
3199
3190 2004-12-10 Fernando Perez <fperez@colorado.edu>
3200 2004-12-10 Fernando Perez <fperez@colorado.edu>
3191
3201
3192 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3202 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3193 -t to -T, to accomodate the new -t flag in %run (the %run and
3203 -t to -T, to accomodate the new -t flag in %run (the %run and
3194 %prun options are kind of intermixed, and it's not easy to change
3204 %prun options are kind of intermixed, and it's not easy to change
3195 this with the limitations of python's getopt).
3205 this with the limitations of python's getopt).
3196
3206
3197 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3207 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3198 the execution of scripts. It's not as fine-tuned as timeit.py,
3208 the execution of scripts. It's not as fine-tuned as timeit.py,
3199 but it works from inside ipython (and under 2.2, which lacks
3209 but it works from inside ipython (and under 2.2, which lacks
3200 timeit.py). Optionally a number of runs > 1 can be given for
3210 timeit.py). Optionally a number of runs > 1 can be given for
3201 timing very short-running code.
3211 timing very short-running code.
3202
3212
3203 * IPython/genutils.py (uniq_stable): new routine which returns a
3213 * IPython/genutils.py (uniq_stable): new routine which returns a
3204 list of unique elements in any iterable, but in stable order of
3214 list of unique elements in any iterable, but in stable order of
3205 appearance. I needed this for the ultraTB fixes, and it's a handy
3215 appearance. I needed this for the ultraTB fixes, and it's a handy
3206 utility.
3216 utility.
3207
3217
3208 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3218 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3209 dotted names in Verbose exceptions. This had been broken since
3219 dotted names in Verbose exceptions. This had been broken since
3210 the very start, now x.y will properly be printed in a Verbose
3220 the very start, now x.y will properly be printed in a Verbose
3211 traceback, instead of x being shown and y appearing always as an
3221 traceback, instead of x being shown and y appearing always as an
3212 'undefined global'. Getting this to work was a bit tricky,
3222 'undefined global'. Getting this to work was a bit tricky,
3213 because by default python tokenizers are stateless. Saved by
3223 because by default python tokenizers are stateless. Saved by
3214 python's ability to easily add a bit of state to an arbitrary
3224 python's ability to easily add a bit of state to an arbitrary
3215 function (without needing to build a full-blown callable object).
3225 function (without needing to build a full-blown callable object).
3216
3226
3217 Also big cleanup of this code, which had horrendous runtime
3227 Also big cleanup of this code, which had horrendous runtime
3218 lookups of zillions of attributes for colorization. Moved all
3228 lookups of zillions of attributes for colorization. Moved all
3219 this code into a few templates, which make it cleaner and quicker.
3229 this code into a few templates, which make it cleaner and quicker.
3220
3230
3221 Printout quality was also improved for Verbose exceptions: one
3231 Printout quality was also improved for Verbose exceptions: one
3222 variable per line, and memory addresses are printed (this can be
3232 variable per line, and memory addresses are printed (this can be
3223 quite handy in nasty debugging situations, which is what Verbose
3233 quite handy in nasty debugging situations, which is what Verbose
3224 is for).
3234 is for).
3225
3235
3226 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3236 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3227 the command line as scripts to be loaded by embedded instances.
3237 the command line as scripts to be loaded by embedded instances.
3228 Doing so has the potential for an infinite recursion if there are
3238 Doing so has the potential for an infinite recursion if there are
3229 exceptions thrown in the process. This fixes a strange crash
3239 exceptions thrown in the process. This fixes a strange crash
3230 reported by Philippe MULLER <muller-AT-irit.fr>.
3240 reported by Philippe MULLER <muller-AT-irit.fr>.
3231
3241
3232 2004-12-09 Fernando Perez <fperez@colorado.edu>
3242 2004-12-09 Fernando Perez <fperez@colorado.edu>
3233
3243
3234 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3244 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3235 to reflect new names in matplotlib, which now expose the
3245 to reflect new names in matplotlib, which now expose the
3236 matlab-compatible interface via a pylab module instead of the
3246 matlab-compatible interface via a pylab module instead of the
3237 'matlab' name. The new code is backwards compatible, so users of
3247 'matlab' name. The new code is backwards compatible, so users of
3238 all matplotlib versions are OK. Patch by J. Hunter.
3248 all matplotlib versions are OK. Patch by J. Hunter.
3239
3249
3240 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3250 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3241 of __init__ docstrings for instances (class docstrings are already
3251 of __init__ docstrings for instances (class docstrings are already
3242 automatically printed). Instances with customized docstrings
3252 automatically printed). Instances with customized docstrings
3243 (indep. of the class) are also recognized and all 3 separate
3253 (indep. of the class) are also recognized and all 3 separate
3244 docstrings are printed (instance, class, constructor). After some
3254 docstrings are printed (instance, class, constructor). After some
3245 comments/suggestions by J. Hunter.
3255 comments/suggestions by J. Hunter.
3246
3256
3247 2004-12-05 Fernando Perez <fperez@colorado.edu>
3257 2004-12-05 Fernando Perez <fperez@colorado.edu>
3248
3258
3249 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3259 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3250 warnings when tab-completion fails and triggers an exception.
3260 warnings when tab-completion fails and triggers an exception.
3251
3261
3252 2004-12-03 Fernando Perez <fperez@colorado.edu>
3262 2004-12-03 Fernando Perez <fperez@colorado.edu>
3253
3263
3254 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3264 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3255 be triggered when using 'run -p'. An incorrect option flag was
3265 be triggered when using 'run -p'. An incorrect option flag was
3256 being set ('d' instead of 'D').
3266 being set ('d' instead of 'D').
3257 (manpage): fix missing escaped \- sign.
3267 (manpage): fix missing escaped \- sign.
3258
3268
3259 2004-11-30 *** Released version 0.6.5
3269 2004-11-30 *** Released version 0.6.5
3260
3270
3261 2004-11-30 Fernando Perez <fperez@colorado.edu>
3271 2004-11-30 Fernando Perez <fperez@colorado.edu>
3262
3272
3263 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3273 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3264 setting with -d option.
3274 setting with -d option.
3265
3275
3266 * setup.py (docfiles): Fix problem where the doc glob I was using
3276 * setup.py (docfiles): Fix problem where the doc glob I was using
3267 was COMPLETELY BROKEN. It was giving the right files by pure
3277 was COMPLETELY BROKEN. It was giving the right files by pure
3268 accident, but failed once I tried to include ipython.el. Note:
3278 accident, but failed once I tried to include ipython.el. Note:
3269 glob() does NOT allow you to do exclusion on multiple endings!
3279 glob() does NOT allow you to do exclusion on multiple endings!
3270
3280
3271 2004-11-29 Fernando Perez <fperez@colorado.edu>
3281 2004-11-29 Fernando Perez <fperez@colorado.edu>
3272
3282
3273 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3283 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3274 the manpage as the source. Better formatting & consistency.
3284 the manpage as the source. Better formatting & consistency.
3275
3285
3276 * IPython/Magic.py (magic_run): Added new -d option, to run
3286 * IPython/Magic.py (magic_run): Added new -d option, to run
3277 scripts under the control of the python pdb debugger. Note that
3287 scripts under the control of the python pdb debugger. Note that
3278 this required changing the %prun option -d to -D, to avoid a clash
3288 this required changing the %prun option -d to -D, to avoid a clash
3279 (since %run must pass options to %prun, and getopt is too dumb to
3289 (since %run must pass options to %prun, and getopt is too dumb to
3280 handle options with string values with embedded spaces). Thanks
3290 handle options with string values with embedded spaces). Thanks
3281 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3291 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3282 (magic_who_ls): added type matching to %who and %whos, so that one
3292 (magic_who_ls): added type matching to %who and %whos, so that one
3283 can filter their output to only include variables of certain
3293 can filter their output to only include variables of certain
3284 types. Another suggestion by Matthew.
3294 types. Another suggestion by Matthew.
3285 (magic_whos): Added memory summaries in kb and Mb for arrays.
3295 (magic_whos): Added memory summaries in kb and Mb for arrays.
3286 (magic_who): Improve formatting (break lines every 9 vars).
3296 (magic_who): Improve formatting (break lines every 9 vars).
3287
3297
3288 2004-11-28 Fernando Perez <fperez@colorado.edu>
3298 2004-11-28 Fernando Perez <fperez@colorado.edu>
3289
3299
3290 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3300 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3291 cache when empty lines were present.
3301 cache when empty lines were present.
3292
3302
3293 2004-11-24 Fernando Perez <fperez@colorado.edu>
3303 2004-11-24 Fernando Perez <fperez@colorado.edu>
3294
3304
3295 * IPython/usage.py (__doc__): document the re-activated threading
3305 * IPython/usage.py (__doc__): document the re-activated threading
3296 options for WX and GTK.
3306 options for WX and GTK.
3297
3307
3298 2004-11-23 Fernando Perez <fperez@colorado.edu>
3308 2004-11-23 Fernando Perez <fperez@colorado.edu>
3299
3309
3300 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3310 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3301 the -wthread and -gthread options, along with a new -tk one to try
3311 the -wthread and -gthread options, along with a new -tk one to try
3302 and coordinate Tk threading with wx/gtk. The tk support is very
3312 and coordinate Tk threading with wx/gtk. The tk support is very
3303 platform dependent, since it seems to require Tcl and Tk to be
3313 platform dependent, since it seems to require Tcl and Tk to be
3304 built with threads (Fedora1/2 appears NOT to have it, but in
3314 built with threads (Fedora1/2 appears NOT to have it, but in
3305 Prabhu's Debian boxes it works OK). But even with some Tk
3315 Prabhu's Debian boxes it works OK). But even with some Tk
3306 limitations, this is a great improvement.
3316 limitations, this is a great improvement.
3307
3317
3308 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3318 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3309 info in user prompts. Patch by Prabhu.
3319 info in user prompts. Patch by Prabhu.
3310
3320
3311 2004-11-18 Fernando Perez <fperez@colorado.edu>
3321 2004-11-18 Fernando Perez <fperez@colorado.edu>
3312
3322
3313 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3323 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3314 EOFErrors and bail, to avoid infinite loops if a non-terminating
3324 EOFErrors and bail, to avoid infinite loops if a non-terminating
3315 file is fed into ipython. Patch submitted in issue 19 by user,
3325 file is fed into ipython. Patch submitted in issue 19 by user,
3316 many thanks.
3326 many thanks.
3317
3327
3318 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3328 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3319 autoquote/parens in continuation prompts, which can cause lots of
3329 autoquote/parens in continuation prompts, which can cause lots of
3320 problems. Closes roundup issue 20.
3330 problems. Closes roundup issue 20.
3321
3331
3322 2004-11-17 Fernando Perez <fperez@colorado.edu>
3332 2004-11-17 Fernando Perez <fperez@colorado.edu>
3323
3333
3324 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3334 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3325 reported as debian bug #280505. I'm not sure my local changelog
3335 reported as debian bug #280505. I'm not sure my local changelog
3326 entry has the proper debian format (Jack?).
3336 entry has the proper debian format (Jack?).
3327
3337
3328 2004-11-08 *** Released version 0.6.4
3338 2004-11-08 *** Released version 0.6.4
3329
3339
3330 2004-11-08 Fernando Perez <fperez@colorado.edu>
3340 2004-11-08 Fernando Perez <fperez@colorado.edu>
3331
3341
3332 * IPython/iplib.py (init_readline): Fix exit message for Windows
3342 * IPython/iplib.py (init_readline): Fix exit message for Windows
3333 when readline is active. Thanks to a report by Eric Jones
3343 when readline is active. Thanks to a report by Eric Jones
3334 <eric-AT-enthought.com>.
3344 <eric-AT-enthought.com>.
3335
3345
3336 2004-11-07 Fernando Perez <fperez@colorado.edu>
3346 2004-11-07 Fernando Perez <fperez@colorado.edu>
3337
3347
3338 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3348 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3339 sometimes seen by win2k/cygwin users.
3349 sometimes seen by win2k/cygwin users.
3340
3350
3341 2004-11-06 Fernando Perez <fperez@colorado.edu>
3351 2004-11-06 Fernando Perez <fperez@colorado.edu>
3342
3352
3343 * IPython/iplib.py (interact): Change the handling of %Exit from
3353 * IPython/iplib.py (interact): Change the handling of %Exit from
3344 trying to propagate a SystemExit to an internal ipython flag.
3354 trying to propagate a SystemExit to an internal ipython flag.
3345 This is less elegant than using Python's exception mechanism, but
3355 This is less elegant than using Python's exception mechanism, but
3346 I can't get that to work reliably with threads, so under -pylab
3356 I can't get that to work reliably with threads, so under -pylab
3347 %Exit was hanging IPython. Cross-thread exception handling is
3357 %Exit was hanging IPython. Cross-thread exception handling is
3348 really a bitch. Thaks to a bug report by Stephen Walton
3358 really a bitch. Thaks to a bug report by Stephen Walton
3349 <stephen.walton-AT-csun.edu>.
3359 <stephen.walton-AT-csun.edu>.
3350
3360
3351 2004-11-04 Fernando Perez <fperez@colorado.edu>
3361 2004-11-04 Fernando Perez <fperez@colorado.edu>
3352
3362
3353 * IPython/iplib.py (raw_input_original): store a pointer to the
3363 * IPython/iplib.py (raw_input_original): store a pointer to the
3354 true raw_input to harden against code which can modify it
3364 true raw_input to harden against code which can modify it
3355 (wx.py.PyShell does this and would otherwise crash ipython).
3365 (wx.py.PyShell does this and would otherwise crash ipython).
3356 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3366 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3357
3367
3358 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3368 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3359 Ctrl-C problem, which does not mess up the input line.
3369 Ctrl-C problem, which does not mess up the input line.
3360
3370
3361 2004-11-03 Fernando Perez <fperez@colorado.edu>
3371 2004-11-03 Fernando Perez <fperez@colorado.edu>
3362
3372
3363 * IPython/Release.py: Changed licensing to BSD, in all files.
3373 * IPython/Release.py: Changed licensing to BSD, in all files.
3364 (name): lowercase name for tarball/RPM release.
3374 (name): lowercase name for tarball/RPM release.
3365
3375
3366 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3376 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3367 use throughout ipython.
3377 use throughout ipython.
3368
3378
3369 * IPython/Magic.py (Magic._ofind): Switch to using the new
3379 * IPython/Magic.py (Magic._ofind): Switch to using the new
3370 OInspect.getdoc() function.
3380 OInspect.getdoc() function.
3371
3381
3372 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3382 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3373 of the line currently being canceled via Ctrl-C. It's extremely
3383 of the line currently being canceled via Ctrl-C. It's extremely
3374 ugly, but I don't know how to do it better (the problem is one of
3384 ugly, but I don't know how to do it better (the problem is one of
3375 handling cross-thread exceptions).
3385 handling cross-thread exceptions).
3376
3386
3377 2004-10-28 Fernando Perez <fperez@colorado.edu>
3387 2004-10-28 Fernando Perez <fperez@colorado.edu>
3378
3388
3379 * IPython/Shell.py (signal_handler): add signal handlers to trap
3389 * IPython/Shell.py (signal_handler): add signal handlers to trap
3380 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3390 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3381 report by Francesc Alted.
3391 report by Francesc Alted.
3382
3392
3383 2004-10-21 Fernando Perez <fperez@colorado.edu>
3393 2004-10-21 Fernando Perez <fperez@colorado.edu>
3384
3394
3385 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3395 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3386 to % for pysh syntax extensions.
3396 to % for pysh syntax extensions.
3387
3397
3388 2004-10-09 Fernando Perez <fperez@colorado.edu>
3398 2004-10-09 Fernando Perez <fperez@colorado.edu>
3389
3399
3390 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3400 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3391 arrays to print a more useful summary, without calling str(arr).
3401 arrays to print a more useful summary, without calling str(arr).
3392 This avoids the problem of extremely lengthy computations which
3402 This avoids the problem of extremely lengthy computations which
3393 occur if arr is large, and appear to the user as a system lockup
3403 occur if arr is large, and appear to the user as a system lockup
3394 with 100% cpu activity. After a suggestion by Kristian Sandberg
3404 with 100% cpu activity. After a suggestion by Kristian Sandberg
3395 <Kristian.Sandberg@colorado.edu>.
3405 <Kristian.Sandberg@colorado.edu>.
3396 (Magic.__init__): fix bug in global magic escapes not being
3406 (Magic.__init__): fix bug in global magic escapes not being
3397 correctly set.
3407 correctly set.
3398
3408
3399 2004-10-08 Fernando Perez <fperez@colorado.edu>
3409 2004-10-08 Fernando Perez <fperez@colorado.edu>
3400
3410
3401 * IPython/Magic.py (__license__): change to absolute imports of
3411 * IPython/Magic.py (__license__): change to absolute imports of
3402 ipython's own internal packages, to start adapting to the absolute
3412 ipython's own internal packages, to start adapting to the absolute
3403 import requirement of PEP-328.
3413 import requirement of PEP-328.
3404
3414
3405 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3415 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3406 files, and standardize author/license marks through the Release
3416 files, and standardize author/license marks through the Release
3407 module instead of having per/file stuff (except for files with
3417 module instead of having per/file stuff (except for files with
3408 particular licenses, like the MIT/PSF-licensed codes).
3418 particular licenses, like the MIT/PSF-licensed codes).
3409
3419
3410 * IPython/Debugger.py: remove dead code for python 2.1
3420 * IPython/Debugger.py: remove dead code for python 2.1
3411
3421
3412 2004-10-04 Fernando Perez <fperez@colorado.edu>
3422 2004-10-04 Fernando Perez <fperez@colorado.edu>
3413
3423
3414 * IPython/iplib.py (ipmagic): New function for accessing magics
3424 * IPython/iplib.py (ipmagic): New function for accessing magics
3415 via a normal python function call.
3425 via a normal python function call.
3416
3426
3417 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3427 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3418 from '@' to '%', to accomodate the new @decorator syntax of python
3428 from '@' to '%', to accomodate the new @decorator syntax of python
3419 2.4.
3429 2.4.
3420
3430
3421 2004-09-29 Fernando Perez <fperez@colorado.edu>
3431 2004-09-29 Fernando Perez <fperez@colorado.edu>
3422
3432
3423 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3433 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3424 matplotlib.use to prevent running scripts which try to switch
3434 matplotlib.use to prevent running scripts which try to switch
3425 interactive backends from within ipython. This will just crash
3435 interactive backends from within ipython. This will just crash
3426 the python interpreter, so we can't allow it (but a detailed error
3436 the python interpreter, so we can't allow it (but a detailed error
3427 is given to the user).
3437 is given to the user).
3428
3438
3429 2004-09-28 Fernando Perez <fperez@colorado.edu>
3439 2004-09-28 Fernando Perez <fperez@colorado.edu>
3430
3440
3431 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3441 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3432 matplotlib-related fixes so that using @run with non-matplotlib
3442 matplotlib-related fixes so that using @run with non-matplotlib
3433 scripts doesn't pop up spurious plot windows. This requires
3443 scripts doesn't pop up spurious plot windows. This requires
3434 matplotlib >= 0.63, where I had to make some changes as well.
3444 matplotlib >= 0.63, where I had to make some changes as well.
3435
3445
3436 * IPython/ipmaker.py (make_IPython): update version requirement to
3446 * IPython/ipmaker.py (make_IPython): update version requirement to
3437 python 2.2.
3447 python 2.2.
3438
3448
3439 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3449 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3440 banner arg for embedded customization.
3450 banner arg for embedded customization.
3441
3451
3442 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3452 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3443 explicit uses of __IP as the IPython's instance name. Now things
3453 explicit uses of __IP as the IPython's instance name. Now things
3444 are properly handled via the shell.name value. The actual code
3454 are properly handled via the shell.name value. The actual code
3445 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3455 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3446 is much better than before. I'll clean things completely when the
3456 is much better than before. I'll clean things completely when the
3447 magic stuff gets a real overhaul.
3457 magic stuff gets a real overhaul.
3448
3458
3449 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3459 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3450 minor changes to debian dir.
3460 minor changes to debian dir.
3451
3461
3452 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3462 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3453 pointer to the shell itself in the interactive namespace even when
3463 pointer to the shell itself in the interactive namespace even when
3454 a user-supplied dict is provided. This is needed for embedding
3464 a user-supplied dict is provided. This is needed for embedding
3455 purposes (found by tests with Michel Sanner).
3465 purposes (found by tests with Michel Sanner).
3456
3466
3457 2004-09-27 Fernando Perez <fperez@colorado.edu>
3467 2004-09-27 Fernando Perez <fperez@colorado.edu>
3458
3468
3459 * IPython/UserConfig/ipythonrc: remove []{} from
3469 * IPython/UserConfig/ipythonrc: remove []{} from
3460 readline_remove_delims, so that things like [modname.<TAB> do
3470 readline_remove_delims, so that things like [modname.<TAB> do
3461 proper completion. This disables [].TAB, but that's a less common
3471 proper completion. This disables [].TAB, but that's a less common
3462 case than module names in list comprehensions, for example.
3472 case than module names in list comprehensions, for example.
3463 Thanks to a report by Andrea Riciputi.
3473 Thanks to a report by Andrea Riciputi.
3464
3474
3465 2004-09-09 Fernando Perez <fperez@colorado.edu>
3475 2004-09-09 Fernando Perez <fperez@colorado.edu>
3466
3476
3467 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3477 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3468 blocking problems in win32 and osx. Fix by John.
3478 blocking problems in win32 and osx. Fix by John.
3469
3479
3470 2004-09-08 Fernando Perez <fperez@colorado.edu>
3480 2004-09-08 Fernando Perez <fperez@colorado.edu>
3471
3481
3472 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3482 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3473 for Win32 and OSX. Fix by John Hunter.
3483 for Win32 and OSX. Fix by John Hunter.
3474
3484
3475 2004-08-30 *** Released version 0.6.3
3485 2004-08-30 *** Released version 0.6.3
3476
3486
3477 2004-08-30 Fernando Perez <fperez@colorado.edu>
3487 2004-08-30 Fernando Perez <fperez@colorado.edu>
3478
3488
3479 * setup.py (isfile): Add manpages to list of dependent files to be
3489 * setup.py (isfile): Add manpages to list of dependent files to be
3480 updated.
3490 updated.
3481
3491
3482 2004-08-27 Fernando Perez <fperez@colorado.edu>
3492 2004-08-27 Fernando Perez <fperez@colorado.edu>
3483
3493
3484 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3494 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3485 for now. They don't really work with standalone WX/GTK code
3495 for now. They don't really work with standalone WX/GTK code
3486 (though matplotlib IS working fine with both of those backends).
3496 (though matplotlib IS working fine with both of those backends).
3487 This will neeed much more testing. I disabled most things with
3497 This will neeed much more testing. I disabled most things with
3488 comments, so turning it back on later should be pretty easy.
3498 comments, so turning it back on later should be pretty easy.
3489
3499
3490 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3500 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3491 autocalling of expressions like r'foo', by modifying the line
3501 autocalling of expressions like r'foo', by modifying the line
3492 split regexp. Closes
3502 split regexp. Closes
3493 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3503 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3494 Riley <ipythonbugs-AT-sabi.net>.
3504 Riley <ipythonbugs-AT-sabi.net>.
3495 (InteractiveShell.mainloop): honor --nobanner with banner
3505 (InteractiveShell.mainloop): honor --nobanner with banner
3496 extensions.
3506 extensions.
3497
3507
3498 * IPython/Shell.py: Significant refactoring of all classes, so
3508 * IPython/Shell.py: Significant refactoring of all classes, so
3499 that we can really support ALL matplotlib backends and threading
3509 that we can really support ALL matplotlib backends and threading
3500 models (John spotted a bug with Tk which required this). Now we
3510 models (John spotted a bug with Tk which required this). Now we
3501 should support single-threaded, WX-threads and GTK-threads, both
3511 should support single-threaded, WX-threads and GTK-threads, both
3502 for generic code and for matplotlib.
3512 for generic code and for matplotlib.
3503
3513
3504 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3514 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3505 -pylab, to simplify things for users. Will also remove the pylab
3515 -pylab, to simplify things for users. Will also remove the pylab
3506 profile, since now all of matplotlib configuration is directly
3516 profile, since now all of matplotlib configuration is directly
3507 handled here. This also reduces startup time.
3517 handled here. This also reduces startup time.
3508
3518
3509 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3519 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3510 shell wasn't being correctly called. Also in IPShellWX.
3520 shell wasn't being correctly called. Also in IPShellWX.
3511
3521
3512 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3522 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3513 fine-tune banner.
3523 fine-tune banner.
3514
3524
3515 * IPython/numutils.py (spike): Deprecate these spike functions,
3525 * IPython/numutils.py (spike): Deprecate these spike functions,
3516 delete (long deprecated) gnuplot_exec handler.
3526 delete (long deprecated) gnuplot_exec handler.
3517
3527
3518 2004-08-26 Fernando Perez <fperez@colorado.edu>
3528 2004-08-26 Fernando Perez <fperez@colorado.edu>
3519
3529
3520 * ipython.1: Update for threading options, plus some others which
3530 * ipython.1: Update for threading options, plus some others which
3521 were missing.
3531 were missing.
3522
3532
3523 * IPython/ipmaker.py (__call__): Added -wthread option for
3533 * IPython/ipmaker.py (__call__): Added -wthread option for
3524 wxpython thread handling. Make sure threading options are only
3534 wxpython thread handling. Make sure threading options are only
3525 valid at the command line.
3535 valid at the command line.
3526
3536
3527 * scripts/ipython: moved shell selection into a factory function
3537 * scripts/ipython: moved shell selection into a factory function
3528 in Shell.py, to keep the starter script to a minimum.
3538 in Shell.py, to keep the starter script to a minimum.
3529
3539
3530 2004-08-25 Fernando Perez <fperez@colorado.edu>
3540 2004-08-25 Fernando Perez <fperez@colorado.edu>
3531
3541
3532 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3542 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3533 John. Along with some recent changes he made to matplotlib, the
3543 John. Along with some recent changes he made to matplotlib, the
3534 next versions of both systems should work very well together.
3544 next versions of both systems should work very well together.
3535
3545
3536 2004-08-24 Fernando Perez <fperez@colorado.edu>
3546 2004-08-24 Fernando Perez <fperez@colorado.edu>
3537
3547
3538 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3548 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3539 tried to switch the profiling to using hotshot, but I'm getting
3549 tried to switch the profiling to using hotshot, but I'm getting
3540 strange errors from prof.runctx() there. I may be misreading the
3550 strange errors from prof.runctx() there. I may be misreading the
3541 docs, but it looks weird. For now the profiling code will
3551 docs, but it looks weird. For now the profiling code will
3542 continue to use the standard profiler.
3552 continue to use the standard profiler.
3543
3553
3544 2004-08-23 Fernando Perez <fperez@colorado.edu>
3554 2004-08-23 Fernando Perez <fperez@colorado.edu>
3545
3555
3546 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3556 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3547 threaded shell, by John Hunter. It's not quite ready yet, but
3557 threaded shell, by John Hunter. It's not quite ready yet, but
3548 close.
3558 close.
3549
3559
3550 2004-08-22 Fernando Perez <fperez@colorado.edu>
3560 2004-08-22 Fernando Perez <fperez@colorado.edu>
3551
3561
3552 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3562 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3553 in Magic and ultraTB.
3563 in Magic and ultraTB.
3554
3564
3555 * ipython.1: document threading options in manpage.
3565 * ipython.1: document threading options in manpage.
3556
3566
3557 * scripts/ipython: Changed name of -thread option to -gthread,
3567 * scripts/ipython: Changed name of -thread option to -gthread,
3558 since this is GTK specific. I want to leave the door open for a
3568 since this is GTK specific. I want to leave the door open for a
3559 -wthread option for WX, which will most likely be necessary. This
3569 -wthread option for WX, which will most likely be necessary. This
3560 change affects usage and ipmaker as well.
3570 change affects usage and ipmaker as well.
3561
3571
3562 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3572 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3563 handle the matplotlib shell issues. Code by John Hunter
3573 handle the matplotlib shell issues. Code by John Hunter
3564 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3574 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3565 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3575 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3566 broken (and disabled for end users) for now, but it puts the
3576 broken (and disabled for end users) for now, but it puts the
3567 infrastructure in place.
3577 infrastructure in place.
3568
3578
3569 2004-08-21 Fernando Perez <fperez@colorado.edu>
3579 2004-08-21 Fernando Perez <fperez@colorado.edu>
3570
3580
3571 * ipythonrc-pylab: Add matplotlib support.
3581 * ipythonrc-pylab: Add matplotlib support.
3572
3582
3573 * matplotlib_config.py: new files for matplotlib support, part of
3583 * matplotlib_config.py: new files for matplotlib support, part of
3574 the pylab profile.
3584 the pylab profile.
3575
3585
3576 * IPython/usage.py (__doc__): documented the threading options.
3586 * IPython/usage.py (__doc__): documented the threading options.
3577
3587
3578 2004-08-20 Fernando Perez <fperez@colorado.edu>
3588 2004-08-20 Fernando Perez <fperez@colorado.edu>
3579
3589
3580 * ipython: Modified the main calling routine to handle the -thread
3590 * ipython: Modified the main calling routine to handle the -thread
3581 and -mpthread options. This needs to be done as a top-level hack,
3591 and -mpthread options. This needs to be done as a top-level hack,
3582 because it determines which class to instantiate for IPython
3592 because it determines which class to instantiate for IPython
3583 itself.
3593 itself.
3584
3594
3585 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3595 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3586 classes to support multithreaded GTK operation without blocking,
3596 classes to support multithreaded GTK operation without blocking,
3587 and matplotlib with all backends. This is a lot of still very
3597 and matplotlib with all backends. This is a lot of still very
3588 experimental code, and threads are tricky. So it may still have a
3598 experimental code, and threads are tricky. So it may still have a
3589 few rough edges... This code owes a lot to
3599 few rough edges... This code owes a lot to
3590 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3600 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3591 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3601 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3592 to John Hunter for all the matplotlib work.
3602 to John Hunter for all the matplotlib work.
3593
3603
3594 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3604 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3595 options for gtk thread and matplotlib support.
3605 options for gtk thread and matplotlib support.
3596
3606
3597 2004-08-16 Fernando Perez <fperez@colorado.edu>
3607 2004-08-16 Fernando Perez <fperez@colorado.edu>
3598
3608
3599 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3609 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3600 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3610 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3601 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3611 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3602
3612
3603 2004-08-11 Fernando Perez <fperez@colorado.edu>
3613 2004-08-11 Fernando Perez <fperez@colorado.edu>
3604
3614
3605 * setup.py (isfile): Fix build so documentation gets updated for
3615 * setup.py (isfile): Fix build so documentation gets updated for
3606 rpms (it was only done for .tgz builds).
3616 rpms (it was only done for .tgz builds).
3607
3617
3608 2004-08-10 Fernando Perez <fperez@colorado.edu>
3618 2004-08-10 Fernando Perez <fperez@colorado.edu>
3609
3619
3610 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3620 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3611
3621
3612 * iplib.py : Silence syntax error exceptions in tab-completion.
3622 * iplib.py : Silence syntax error exceptions in tab-completion.
3613
3623
3614 2004-08-05 Fernando Perez <fperez@colorado.edu>
3624 2004-08-05 Fernando Perez <fperez@colorado.edu>
3615
3625
3616 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3626 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3617 'color off' mark for continuation prompts. This was causing long
3627 'color off' mark for continuation prompts. This was causing long
3618 continuation lines to mis-wrap.
3628 continuation lines to mis-wrap.
3619
3629
3620 2004-08-01 Fernando Perez <fperez@colorado.edu>
3630 2004-08-01 Fernando Perez <fperez@colorado.edu>
3621
3631
3622 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3632 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3623 for building ipython to be a parameter. All this is necessary
3633 for building ipython to be a parameter. All this is necessary
3624 right now to have a multithreaded version, but this insane
3634 right now to have a multithreaded version, but this insane
3625 non-design will be cleaned up soon. For now, it's a hack that
3635 non-design will be cleaned up soon. For now, it's a hack that
3626 works.
3636 works.
3627
3637
3628 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3638 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3629 args in various places. No bugs so far, but it's a dangerous
3639 args in various places. No bugs so far, but it's a dangerous
3630 practice.
3640 practice.
3631
3641
3632 2004-07-31 Fernando Perez <fperez@colorado.edu>
3642 2004-07-31 Fernando Perez <fperez@colorado.edu>
3633
3643
3634 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3644 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3635 fix completion of files with dots in their names under most
3645 fix completion of files with dots in their names under most
3636 profiles (pysh was OK because the completion order is different).
3646 profiles (pysh was OK because the completion order is different).
3637
3647
3638 2004-07-27 Fernando Perez <fperez@colorado.edu>
3648 2004-07-27 Fernando Perez <fperez@colorado.edu>
3639
3649
3640 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3650 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3641 keywords manually, b/c the one in keyword.py was removed in python
3651 keywords manually, b/c the one in keyword.py was removed in python
3642 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3652 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3643 This is NOT a bug under python 2.3 and earlier.
3653 This is NOT a bug under python 2.3 and earlier.
3644
3654
3645 2004-07-26 Fernando Perez <fperez@colorado.edu>
3655 2004-07-26 Fernando Perez <fperez@colorado.edu>
3646
3656
3647 * IPython/ultraTB.py (VerboseTB.text): Add another
3657 * IPython/ultraTB.py (VerboseTB.text): Add another
3648 linecache.checkcache() call to try to prevent inspect.py from
3658 linecache.checkcache() call to try to prevent inspect.py from
3649 crashing under python 2.3. I think this fixes
3659 crashing under python 2.3. I think this fixes
3650 http://www.scipy.net/roundup/ipython/issue17.
3660 http://www.scipy.net/roundup/ipython/issue17.
3651
3661
3652 2004-07-26 *** Released version 0.6.2
3662 2004-07-26 *** Released version 0.6.2
3653
3663
3654 2004-07-26 Fernando Perez <fperez@colorado.edu>
3664 2004-07-26 Fernando Perez <fperez@colorado.edu>
3655
3665
3656 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3666 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3657 fail for any number.
3667 fail for any number.
3658 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3668 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3659 empty bookmarks.
3669 empty bookmarks.
3660
3670
3661 2004-07-26 *** Released version 0.6.1
3671 2004-07-26 *** Released version 0.6.1
3662
3672
3663 2004-07-26 Fernando Perez <fperez@colorado.edu>
3673 2004-07-26 Fernando Perez <fperez@colorado.edu>
3664
3674
3665 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3675 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3666
3676
3667 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3677 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3668 escaping '()[]{}' in filenames.
3678 escaping '()[]{}' in filenames.
3669
3679
3670 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3680 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3671 Python 2.2 users who lack a proper shlex.split.
3681 Python 2.2 users who lack a proper shlex.split.
3672
3682
3673 2004-07-19 Fernando Perez <fperez@colorado.edu>
3683 2004-07-19 Fernando Perez <fperez@colorado.edu>
3674
3684
3675 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3685 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3676 for reading readline's init file. I follow the normal chain:
3686 for reading readline's init file. I follow the normal chain:
3677 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3687 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3678 report by Mike Heeter. This closes
3688 report by Mike Heeter. This closes
3679 http://www.scipy.net/roundup/ipython/issue16.
3689 http://www.scipy.net/roundup/ipython/issue16.
3680
3690
3681 2004-07-18 Fernando Perez <fperez@colorado.edu>
3691 2004-07-18 Fernando Perez <fperez@colorado.edu>
3682
3692
3683 * IPython/iplib.py (__init__): Add better handling of '\' under
3693 * IPython/iplib.py (__init__): Add better handling of '\' under
3684 Win32 for filenames. After a patch by Ville.
3694 Win32 for filenames. After a patch by Ville.
3685
3695
3686 2004-07-17 Fernando Perez <fperez@colorado.edu>
3696 2004-07-17 Fernando Perez <fperez@colorado.edu>
3687
3697
3688 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3698 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3689 autocalling would be triggered for 'foo is bar' if foo is
3699 autocalling would be triggered for 'foo is bar' if foo is
3690 callable. I also cleaned up the autocall detection code to use a
3700 callable. I also cleaned up the autocall detection code to use a
3691 regexp, which is faster. Bug reported by Alexander Schmolck.
3701 regexp, which is faster. Bug reported by Alexander Schmolck.
3692
3702
3693 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3703 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3694 '?' in them would confuse the help system. Reported by Alex
3704 '?' in them would confuse the help system. Reported by Alex
3695 Schmolck.
3705 Schmolck.
3696
3706
3697 2004-07-16 Fernando Perez <fperez@colorado.edu>
3707 2004-07-16 Fernando Perez <fperez@colorado.edu>
3698
3708
3699 * IPython/GnuplotInteractive.py (__all__): added plot2.
3709 * IPython/GnuplotInteractive.py (__all__): added plot2.
3700
3710
3701 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3711 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3702 plotting dictionaries, lists or tuples of 1d arrays.
3712 plotting dictionaries, lists or tuples of 1d arrays.
3703
3713
3704 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3714 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3705 optimizations.
3715 optimizations.
3706
3716
3707 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3717 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3708 the information which was there from Janko's original IPP code:
3718 the information which was there from Janko's original IPP code:
3709
3719
3710 03.05.99 20:53 porto.ifm.uni-kiel.de
3720 03.05.99 20:53 porto.ifm.uni-kiel.de
3711 --Started changelog.
3721 --Started changelog.
3712 --make clear do what it say it does
3722 --make clear do what it say it does
3713 --added pretty output of lines from inputcache
3723 --added pretty output of lines from inputcache
3714 --Made Logger a mixin class, simplifies handling of switches
3724 --Made Logger a mixin class, simplifies handling of switches
3715 --Added own completer class. .string<TAB> expands to last history
3725 --Added own completer class. .string<TAB> expands to last history
3716 line which starts with string. The new expansion is also present
3726 line which starts with string. The new expansion is also present
3717 with Ctrl-r from the readline library. But this shows, who this
3727 with Ctrl-r from the readline library. But this shows, who this
3718 can be done for other cases.
3728 can be done for other cases.
3719 --Added convention that all shell functions should accept a
3729 --Added convention that all shell functions should accept a
3720 parameter_string This opens the door for different behaviour for
3730 parameter_string This opens the door for different behaviour for
3721 each function. @cd is a good example of this.
3731 each function. @cd is a good example of this.
3722
3732
3723 04.05.99 12:12 porto.ifm.uni-kiel.de
3733 04.05.99 12:12 porto.ifm.uni-kiel.de
3724 --added logfile rotation
3734 --added logfile rotation
3725 --added new mainloop method which freezes first the namespace
3735 --added new mainloop method which freezes first the namespace
3726
3736
3727 07.05.99 21:24 porto.ifm.uni-kiel.de
3737 07.05.99 21:24 porto.ifm.uni-kiel.de
3728 --added the docreader classes. Now there is a help system.
3738 --added the docreader classes. Now there is a help system.
3729 -This is only a first try. Currently it's not easy to put new
3739 -This is only a first try. Currently it's not easy to put new
3730 stuff in the indices. But this is the way to go. Info would be
3740 stuff in the indices. But this is the way to go. Info would be
3731 better, but HTML is every where and not everybody has an info
3741 better, but HTML is every where and not everybody has an info
3732 system installed and it's not so easy to change html-docs to info.
3742 system installed and it's not so easy to change html-docs to info.
3733 --added global logfile option
3743 --added global logfile option
3734 --there is now a hook for object inspection method pinfo needs to
3744 --there is now a hook for object inspection method pinfo needs to
3735 be provided for this. Can be reached by two '??'.
3745 be provided for this. Can be reached by two '??'.
3736
3746
3737 08.05.99 20:51 porto.ifm.uni-kiel.de
3747 08.05.99 20:51 porto.ifm.uni-kiel.de
3738 --added a README
3748 --added a README
3739 --bug in rc file. Something has changed so functions in the rc
3749 --bug in rc file. Something has changed so functions in the rc
3740 file need to reference the shell and not self. Not clear if it's a
3750 file need to reference the shell and not self. Not clear if it's a
3741 bug or feature.
3751 bug or feature.
3742 --changed rc file for new behavior
3752 --changed rc file for new behavior
3743
3753
3744 2004-07-15 Fernando Perez <fperez@colorado.edu>
3754 2004-07-15 Fernando Perez <fperez@colorado.edu>
3745
3755
3746 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3756 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3747 cache was falling out of sync in bizarre manners when multi-line
3757 cache was falling out of sync in bizarre manners when multi-line
3748 input was present. Minor optimizations and cleanup.
3758 input was present. Minor optimizations and cleanup.
3749
3759
3750 (Logger): Remove old Changelog info for cleanup. This is the
3760 (Logger): Remove old Changelog info for cleanup. This is the
3751 information which was there from Janko's original code:
3761 information which was there from Janko's original code:
3752
3762
3753 Changes to Logger: - made the default log filename a parameter
3763 Changes to Logger: - made the default log filename a parameter
3754
3764
3755 - put a check for lines beginning with !@? in log(). Needed
3765 - put a check for lines beginning with !@? in log(). Needed
3756 (even if the handlers properly log their lines) for mid-session
3766 (even if the handlers properly log their lines) for mid-session
3757 logging activation to work properly. Without this, lines logged
3767 logging activation to work properly. Without this, lines logged
3758 in mid session, which get read from the cache, would end up
3768 in mid session, which get read from the cache, would end up
3759 'bare' (with !@? in the open) in the log. Now they are caught
3769 'bare' (with !@? in the open) in the log. Now they are caught
3760 and prepended with a #.
3770 and prepended with a #.
3761
3771
3762 * IPython/iplib.py (InteractiveShell.init_readline): added check
3772 * IPython/iplib.py (InteractiveShell.init_readline): added check
3763 in case MagicCompleter fails to be defined, so we don't crash.
3773 in case MagicCompleter fails to be defined, so we don't crash.
3764
3774
3765 2004-07-13 Fernando Perez <fperez@colorado.edu>
3775 2004-07-13 Fernando Perez <fperez@colorado.edu>
3766
3776
3767 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3777 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3768 of EPS if the requested filename ends in '.eps'.
3778 of EPS if the requested filename ends in '.eps'.
3769
3779
3770 2004-07-04 Fernando Perez <fperez@colorado.edu>
3780 2004-07-04 Fernando Perez <fperez@colorado.edu>
3771
3781
3772 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3782 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3773 escaping of quotes when calling the shell.
3783 escaping of quotes when calling the shell.
3774
3784
3775 2004-07-02 Fernando Perez <fperez@colorado.edu>
3785 2004-07-02 Fernando Perez <fperez@colorado.edu>
3776
3786
3777 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3787 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3778 gettext not working because we were clobbering '_'. Fixes
3788 gettext not working because we were clobbering '_'. Fixes
3779 http://www.scipy.net/roundup/ipython/issue6.
3789 http://www.scipy.net/roundup/ipython/issue6.
3780
3790
3781 2004-07-01 Fernando Perez <fperez@colorado.edu>
3791 2004-07-01 Fernando Perez <fperez@colorado.edu>
3782
3792
3783 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3793 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3784 into @cd. Patch by Ville.
3794 into @cd. Patch by Ville.
3785
3795
3786 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3796 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3787 new function to store things after ipmaker runs. Patch by Ville.
3797 new function to store things after ipmaker runs. Patch by Ville.
3788 Eventually this will go away once ipmaker is removed and the class
3798 Eventually this will go away once ipmaker is removed and the class
3789 gets cleaned up, but for now it's ok. Key functionality here is
3799 gets cleaned up, but for now it's ok. Key functionality here is
3790 the addition of the persistent storage mechanism, a dict for
3800 the addition of the persistent storage mechanism, a dict for
3791 keeping data across sessions (for now just bookmarks, but more can
3801 keeping data across sessions (for now just bookmarks, but more can
3792 be implemented later).
3802 be implemented later).
3793
3803
3794 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3804 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3795 persistent across sections. Patch by Ville, I modified it
3805 persistent across sections. Patch by Ville, I modified it
3796 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3806 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3797 added a '-l' option to list all bookmarks.
3807 added a '-l' option to list all bookmarks.
3798
3808
3799 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3809 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3800 center for cleanup. Registered with atexit.register(). I moved
3810 center for cleanup. Registered with atexit.register(). I moved
3801 here the old exit_cleanup(). After a patch by Ville.
3811 here the old exit_cleanup(). After a patch by Ville.
3802
3812
3803 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3813 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3804 characters in the hacked shlex_split for python 2.2.
3814 characters in the hacked shlex_split for python 2.2.
3805
3815
3806 * IPython/iplib.py (file_matches): more fixes to filenames with
3816 * IPython/iplib.py (file_matches): more fixes to filenames with
3807 whitespace in them. It's not perfect, but limitations in python's
3817 whitespace in them. It's not perfect, but limitations in python's
3808 readline make it impossible to go further.
3818 readline make it impossible to go further.
3809
3819
3810 2004-06-29 Fernando Perez <fperez@colorado.edu>
3820 2004-06-29 Fernando Perez <fperez@colorado.edu>
3811
3821
3812 * IPython/iplib.py (file_matches): escape whitespace correctly in
3822 * IPython/iplib.py (file_matches): escape whitespace correctly in
3813 filename completions. Bug reported by Ville.
3823 filename completions. Bug reported by Ville.
3814
3824
3815 2004-06-28 Fernando Perez <fperez@colorado.edu>
3825 2004-06-28 Fernando Perez <fperez@colorado.edu>
3816
3826
3817 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3827 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3818 the history file will be called 'history-PROFNAME' (or just
3828 the history file will be called 'history-PROFNAME' (or just
3819 'history' if no profile is loaded). I was getting annoyed at
3829 'history' if no profile is loaded). I was getting annoyed at
3820 getting my Numerical work history clobbered by pysh sessions.
3830 getting my Numerical work history clobbered by pysh sessions.
3821
3831
3822 * IPython/iplib.py (InteractiveShell.__init__): Internal
3832 * IPython/iplib.py (InteractiveShell.__init__): Internal
3823 getoutputerror() function so that we can honor the system_verbose
3833 getoutputerror() function so that we can honor the system_verbose
3824 flag for _all_ system calls. I also added escaping of #
3834 flag for _all_ system calls. I also added escaping of #
3825 characters here to avoid confusing Itpl.
3835 characters here to avoid confusing Itpl.
3826
3836
3827 * IPython/Magic.py (shlex_split): removed call to shell in
3837 * IPython/Magic.py (shlex_split): removed call to shell in
3828 parse_options and replaced it with shlex.split(). The annoying
3838 parse_options and replaced it with shlex.split(). The annoying
3829 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3839 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3830 to backport it from 2.3, with several frail hacks (the shlex
3840 to backport it from 2.3, with several frail hacks (the shlex
3831 module is rather limited in 2.2). Thanks to a suggestion by Ville
3841 module is rather limited in 2.2). Thanks to a suggestion by Ville
3832 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3842 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3833 problem.
3843 problem.
3834
3844
3835 (Magic.magic_system_verbose): new toggle to print the actual
3845 (Magic.magic_system_verbose): new toggle to print the actual
3836 system calls made by ipython. Mainly for debugging purposes.
3846 system calls made by ipython. Mainly for debugging purposes.
3837
3847
3838 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3848 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3839 doesn't support persistence. Reported (and fix suggested) by
3849 doesn't support persistence. Reported (and fix suggested) by
3840 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3850 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3841
3851
3842 2004-06-26 Fernando Perez <fperez@colorado.edu>
3852 2004-06-26 Fernando Perez <fperez@colorado.edu>
3843
3853
3844 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3854 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3845 continue prompts.
3855 continue prompts.
3846
3856
3847 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3857 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3848 function (basically a big docstring) and a few more things here to
3858 function (basically a big docstring) and a few more things here to
3849 speedup startup. pysh.py is now very lightweight. We want because
3859 speedup startup. pysh.py is now very lightweight. We want because
3850 it gets execfile'd, while InterpreterExec gets imported, so
3860 it gets execfile'd, while InterpreterExec gets imported, so
3851 byte-compilation saves time.
3861 byte-compilation saves time.
3852
3862
3853 2004-06-25 Fernando Perez <fperez@colorado.edu>
3863 2004-06-25 Fernando Perez <fperez@colorado.edu>
3854
3864
3855 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3865 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3856 -NUM', which was recently broken.
3866 -NUM', which was recently broken.
3857
3867
3858 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3868 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3859 in multi-line input (but not !!, which doesn't make sense there).
3869 in multi-line input (but not !!, which doesn't make sense there).
3860
3870
3861 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3871 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3862 It's just too useful, and people can turn it off in the less
3872 It's just too useful, and people can turn it off in the less
3863 common cases where it's a problem.
3873 common cases where it's a problem.
3864
3874
3865 2004-06-24 Fernando Perez <fperez@colorado.edu>
3875 2004-06-24 Fernando Perez <fperez@colorado.edu>
3866
3876
3867 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3877 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3868 special syntaxes (like alias calling) is now allied in multi-line
3878 special syntaxes (like alias calling) is now allied in multi-line
3869 input. This is still _very_ experimental, but it's necessary for
3879 input. This is still _very_ experimental, but it's necessary for
3870 efficient shell usage combining python looping syntax with system
3880 efficient shell usage combining python looping syntax with system
3871 calls. For now it's restricted to aliases, I don't think it
3881 calls. For now it's restricted to aliases, I don't think it
3872 really even makes sense to have this for magics.
3882 really even makes sense to have this for magics.
3873
3883
3874 2004-06-23 Fernando Perez <fperez@colorado.edu>
3884 2004-06-23 Fernando Perez <fperez@colorado.edu>
3875
3885
3876 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3886 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3877 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3887 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3878
3888
3879 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3889 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3880 extensions under Windows (after code sent by Gary Bishop). The
3890 extensions under Windows (after code sent by Gary Bishop). The
3881 extensions considered 'executable' are stored in IPython's rc
3891 extensions considered 'executable' are stored in IPython's rc
3882 structure as win_exec_ext.
3892 structure as win_exec_ext.
3883
3893
3884 * IPython/genutils.py (shell): new function, like system() but
3894 * IPython/genutils.py (shell): new function, like system() but
3885 without return value. Very useful for interactive shell work.
3895 without return value. Very useful for interactive shell work.
3886
3896
3887 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3897 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3888 delete aliases.
3898 delete aliases.
3889
3899
3890 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3900 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3891 sure that the alias table doesn't contain python keywords.
3901 sure that the alias table doesn't contain python keywords.
3892
3902
3893 2004-06-21 Fernando Perez <fperez@colorado.edu>
3903 2004-06-21 Fernando Perez <fperez@colorado.edu>
3894
3904
3895 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3905 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3896 non-existent items are found in $PATH. Reported by Thorsten.
3906 non-existent items are found in $PATH. Reported by Thorsten.
3897
3907
3898 2004-06-20 Fernando Perez <fperez@colorado.edu>
3908 2004-06-20 Fernando Perez <fperez@colorado.edu>
3899
3909
3900 * IPython/iplib.py (complete): modified the completer so that the
3910 * IPython/iplib.py (complete): modified the completer so that the
3901 order of priorities can be easily changed at runtime.
3911 order of priorities can be easily changed at runtime.
3902
3912
3903 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3913 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3904 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3914 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3905
3915
3906 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3916 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3907 expand Python variables prepended with $ in all system calls. The
3917 expand Python variables prepended with $ in all system calls. The
3908 same was done to InteractiveShell.handle_shell_escape. Now all
3918 same was done to InteractiveShell.handle_shell_escape. Now all
3909 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3919 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3910 expansion of python variables and expressions according to the
3920 expansion of python variables and expressions according to the
3911 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3921 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3912
3922
3913 Though PEP-215 has been rejected, a similar (but simpler) one
3923 Though PEP-215 has been rejected, a similar (but simpler) one
3914 seems like it will go into Python 2.4, PEP-292 -
3924 seems like it will go into Python 2.4, PEP-292 -
3915 http://www.python.org/peps/pep-0292.html.
3925 http://www.python.org/peps/pep-0292.html.
3916
3926
3917 I'll keep the full syntax of PEP-215, since IPython has since the
3927 I'll keep the full syntax of PEP-215, since IPython has since the
3918 start used Ka-Ping Yee's reference implementation discussed there
3928 start used Ka-Ping Yee's reference implementation discussed there
3919 (Itpl), and I actually like the powerful semantics it offers.
3929 (Itpl), and I actually like the powerful semantics it offers.
3920
3930
3921 In order to access normal shell variables, the $ has to be escaped
3931 In order to access normal shell variables, the $ has to be escaped
3922 via an extra $. For example:
3932 via an extra $. For example:
3923
3933
3924 In [7]: PATH='a python variable'
3934 In [7]: PATH='a python variable'
3925
3935
3926 In [8]: !echo $PATH
3936 In [8]: !echo $PATH
3927 a python variable
3937 a python variable
3928
3938
3929 In [9]: !echo $$PATH
3939 In [9]: !echo $$PATH
3930 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3940 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3931
3941
3932 (Magic.parse_options): escape $ so the shell doesn't evaluate
3942 (Magic.parse_options): escape $ so the shell doesn't evaluate
3933 things prematurely.
3943 things prematurely.
3934
3944
3935 * IPython/iplib.py (InteractiveShell.call_alias): added the
3945 * IPython/iplib.py (InteractiveShell.call_alias): added the
3936 ability for aliases to expand python variables via $.
3946 ability for aliases to expand python variables via $.
3937
3947
3938 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3948 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3939 system, now there's a @rehash/@rehashx pair of magics. These work
3949 system, now there's a @rehash/@rehashx pair of magics. These work
3940 like the csh rehash command, and can be invoked at any time. They
3950 like the csh rehash command, and can be invoked at any time. They
3941 build a table of aliases to everything in the user's $PATH
3951 build a table of aliases to everything in the user's $PATH
3942 (@rehash uses everything, @rehashx is slower but only adds
3952 (@rehash uses everything, @rehashx is slower but only adds
3943 executable files). With this, the pysh.py-based shell profile can
3953 executable files). With this, the pysh.py-based shell profile can
3944 now simply call rehash upon startup, and full access to all
3954 now simply call rehash upon startup, and full access to all
3945 programs in the user's path is obtained.
3955 programs in the user's path is obtained.
3946
3956
3947 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3957 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3948 functionality is now fully in place. I removed the old dynamic
3958 functionality is now fully in place. I removed the old dynamic
3949 code generation based approach, in favor of a much lighter one
3959 code generation based approach, in favor of a much lighter one
3950 based on a simple dict. The advantage is that this allows me to
3960 based on a simple dict. The advantage is that this allows me to
3951 now have thousands of aliases with negligible cost (unthinkable
3961 now have thousands of aliases with negligible cost (unthinkable
3952 with the old system).
3962 with the old system).
3953
3963
3954 2004-06-19 Fernando Perez <fperez@colorado.edu>
3964 2004-06-19 Fernando Perez <fperez@colorado.edu>
3955
3965
3956 * IPython/iplib.py (__init__): extended MagicCompleter class to
3966 * IPython/iplib.py (__init__): extended MagicCompleter class to
3957 also complete (last in priority) on user aliases.
3967 also complete (last in priority) on user aliases.
3958
3968
3959 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3969 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3960 call to eval.
3970 call to eval.
3961 (ItplNS.__init__): Added a new class which functions like Itpl,
3971 (ItplNS.__init__): Added a new class which functions like Itpl,
3962 but allows configuring the namespace for the evaluation to occur
3972 but allows configuring the namespace for the evaluation to occur
3963 in.
3973 in.
3964
3974
3965 2004-06-18 Fernando Perez <fperez@colorado.edu>
3975 2004-06-18 Fernando Perez <fperez@colorado.edu>
3966
3976
3967 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3977 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3968 better message when 'exit' or 'quit' are typed (a common newbie
3978 better message when 'exit' or 'quit' are typed (a common newbie
3969 confusion).
3979 confusion).
3970
3980
3971 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3981 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3972 check for Windows users.
3982 check for Windows users.
3973
3983
3974 * IPython/iplib.py (InteractiveShell.user_setup): removed
3984 * IPython/iplib.py (InteractiveShell.user_setup): removed
3975 disabling of colors for Windows. I'll test at runtime and issue a
3985 disabling of colors for Windows. I'll test at runtime and issue a
3976 warning if Gary's readline isn't found, as to nudge users to
3986 warning if Gary's readline isn't found, as to nudge users to
3977 download it.
3987 download it.
3978
3988
3979 2004-06-16 Fernando Perez <fperez@colorado.edu>
3989 2004-06-16 Fernando Perez <fperez@colorado.edu>
3980
3990
3981 * IPython/genutils.py (Stream.__init__): changed to print errors
3991 * IPython/genutils.py (Stream.__init__): changed to print errors
3982 to sys.stderr. I had a circular dependency here. Now it's
3992 to sys.stderr. I had a circular dependency here. Now it's
3983 possible to run ipython as IDLE's shell (consider this pre-alpha,
3993 possible to run ipython as IDLE's shell (consider this pre-alpha,
3984 since true stdout things end up in the starting terminal instead
3994 since true stdout things end up in the starting terminal instead
3985 of IDLE's out).
3995 of IDLE's out).
3986
3996
3987 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3997 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3988 users who haven't # updated their prompt_in2 definitions. Remove
3998 users who haven't # updated their prompt_in2 definitions. Remove
3989 eventually.
3999 eventually.
3990 (multiple_replace): added credit to original ASPN recipe.
4000 (multiple_replace): added credit to original ASPN recipe.
3991
4001
3992 2004-06-15 Fernando Perez <fperez@colorado.edu>
4002 2004-06-15 Fernando Perez <fperez@colorado.edu>
3993
4003
3994 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4004 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3995 list of auto-defined aliases.
4005 list of auto-defined aliases.
3996
4006
3997 2004-06-13 Fernando Perez <fperez@colorado.edu>
4007 2004-06-13 Fernando Perez <fperez@colorado.edu>
3998
4008
3999 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4009 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4000 install was really requested (so setup.py can be used for other
4010 install was really requested (so setup.py can be used for other
4001 things under Windows).
4011 things under Windows).
4002
4012
4003 2004-06-10 Fernando Perez <fperez@colorado.edu>
4013 2004-06-10 Fernando Perez <fperez@colorado.edu>
4004
4014
4005 * IPython/Logger.py (Logger.create_log): Manually remove any old
4015 * IPython/Logger.py (Logger.create_log): Manually remove any old
4006 backup, since os.remove may fail under Windows. Fixes bug
4016 backup, since os.remove may fail under Windows. Fixes bug
4007 reported by Thorsten.
4017 reported by Thorsten.
4008
4018
4009 2004-06-09 Fernando Perez <fperez@colorado.edu>
4019 2004-06-09 Fernando Perez <fperez@colorado.edu>
4010
4020
4011 * examples/example-embed.py: fixed all references to %n (replaced
4021 * examples/example-embed.py: fixed all references to %n (replaced
4012 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4022 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4013 for all examples and the manual as well.
4023 for all examples and the manual as well.
4014
4024
4015 2004-06-08 Fernando Perez <fperez@colorado.edu>
4025 2004-06-08 Fernando Perez <fperez@colorado.edu>
4016
4026
4017 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4027 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4018 alignment and color management. All 3 prompt subsystems now
4028 alignment and color management. All 3 prompt subsystems now
4019 inherit from BasePrompt.
4029 inherit from BasePrompt.
4020
4030
4021 * tools/release: updates for windows installer build and tag rpms
4031 * tools/release: updates for windows installer build and tag rpms
4022 with python version (since paths are fixed).
4032 with python version (since paths are fixed).
4023
4033
4024 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4034 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4025 which will become eventually obsolete. Also fixed the default
4035 which will become eventually obsolete. Also fixed the default
4026 prompt_in2 to use \D, so at least new users start with the correct
4036 prompt_in2 to use \D, so at least new users start with the correct
4027 defaults.
4037 defaults.
4028 WARNING: Users with existing ipythonrc files will need to apply
4038 WARNING: Users with existing ipythonrc files will need to apply
4029 this fix manually!
4039 this fix manually!
4030
4040
4031 * setup.py: make windows installer (.exe). This is finally the
4041 * setup.py: make windows installer (.exe). This is finally the
4032 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4042 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4033 which I hadn't included because it required Python 2.3 (or recent
4043 which I hadn't included because it required Python 2.3 (or recent
4034 distutils).
4044 distutils).
4035
4045
4036 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4046 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4037 usage of new '\D' escape.
4047 usage of new '\D' escape.
4038
4048
4039 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4049 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4040 lacks os.getuid())
4050 lacks os.getuid())
4041 (CachedOutput.set_colors): Added the ability to turn coloring
4051 (CachedOutput.set_colors): Added the ability to turn coloring
4042 on/off with @colors even for manually defined prompt colors. It
4052 on/off with @colors even for manually defined prompt colors. It
4043 uses a nasty global, but it works safely and via the generic color
4053 uses a nasty global, but it works safely and via the generic color
4044 handling mechanism.
4054 handling mechanism.
4045 (Prompt2.__init__): Introduced new escape '\D' for continuation
4055 (Prompt2.__init__): Introduced new escape '\D' for continuation
4046 prompts. It represents the counter ('\#') as dots.
4056 prompts. It represents the counter ('\#') as dots.
4047 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4057 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4048 need to update their ipythonrc files and replace '%n' with '\D' in
4058 need to update their ipythonrc files and replace '%n' with '\D' in
4049 their prompt_in2 settings everywhere. Sorry, but there's
4059 their prompt_in2 settings everywhere. Sorry, but there's
4050 otherwise no clean way to get all prompts to properly align. The
4060 otherwise no clean way to get all prompts to properly align. The
4051 ipythonrc shipped with IPython has been updated.
4061 ipythonrc shipped with IPython has been updated.
4052
4062
4053 2004-06-07 Fernando Perez <fperez@colorado.edu>
4063 2004-06-07 Fernando Perez <fperez@colorado.edu>
4054
4064
4055 * setup.py (isfile): Pass local_icons option to latex2html, so the
4065 * setup.py (isfile): Pass local_icons option to latex2html, so the
4056 resulting HTML file is self-contained. Thanks to
4066 resulting HTML file is self-contained. Thanks to
4057 dryice-AT-liu.com.cn for the tip.
4067 dryice-AT-liu.com.cn for the tip.
4058
4068
4059 * pysh.py: I created a new profile 'shell', which implements a
4069 * pysh.py: I created a new profile 'shell', which implements a
4060 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4070 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4061 system shell, nor will it become one anytime soon. It's mainly
4071 system shell, nor will it become one anytime soon. It's mainly
4062 meant to illustrate the use of the new flexible bash-like prompts.
4072 meant to illustrate the use of the new flexible bash-like prompts.
4063 I guess it could be used by hardy souls for true shell management,
4073 I guess it could be used by hardy souls for true shell management,
4064 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4074 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4065 profile. This uses the InterpreterExec extension provided by
4075 profile. This uses the InterpreterExec extension provided by
4066 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4076 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4067
4077
4068 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4078 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4069 auto-align itself with the length of the previous input prompt
4079 auto-align itself with the length of the previous input prompt
4070 (taking into account the invisible color escapes).
4080 (taking into account the invisible color escapes).
4071 (CachedOutput.__init__): Large restructuring of this class. Now
4081 (CachedOutput.__init__): Large restructuring of this class. Now
4072 all three prompts (primary1, primary2, output) are proper objects,
4082 all three prompts (primary1, primary2, output) are proper objects,
4073 managed by the 'parent' CachedOutput class. The code is still a
4083 managed by the 'parent' CachedOutput class. The code is still a
4074 bit hackish (all prompts share state via a pointer to the cache),
4084 bit hackish (all prompts share state via a pointer to the cache),
4075 but it's overall far cleaner than before.
4085 but it's overall far cleaner than before.
4076
4086
4077 * IPython/genutils.py (getoutputerror): modified to add verbose,
4087 * IPython/genutils.py (getoutputerror): modified to add verbose,
4078 debug and header options. This makes the interface of all getout*
4088 debug and header options. This makes the interface of all getout*
4079 functions uniform.
4089 functions uniform.
4080 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4090 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4081
4091
4082 * IPython/Magic.py (Magic.default_option): added a function to
4092 * IPython/Magic.py (Magic.default_option): added a function to
4083 allow registering default options for any magic command. This
4093 allow registering default options for any magic command. This
4084 makes it easy to have profiles which customize the magics globally
4094 makes it easy to have profiles which customize the magics globally
4085 for a certain use. The values set through this function are
4095 for a certain use. The values set through this function are
4086 picked up by the parse_options() method, which all magics should
4096 picked up by the parse_options() method, which all magics should
4087 use to parse their options.
4097 use to parse their options.
4088
4098
4089 * IPython/genutils.py (warn): modified the warnings framework to
4099 * IPython/genutils.py (warn): modified the warnings framework to
4090 use the Term I/O class. I'm trying to slowly unify all of
4100 use the Term I/O class. I'm trying to slowly unify all of
4091 IPython's I/O operations to pass through Term.
4101 IPython's I/O operations to pass through Term.
4092
4102
4093 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4103 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4094 the secondary prompt to correctly match the length of the primary
4104 the secondary prompt to correctly match the length of the primary
4095 one for any prompt. Now multi-line code will properly line up
4105 one for any prompt. Now multi-line code will properly line up
4096 even for path dependent prompts, such as the new ones available
4106 even for path dependent prompts, such as the new ones available
4097 via the prompt_specials.
4107 via the prompt_specials.
4098
4108
4099 2004-06-06 Fernando Perez <fperez@colorado.edu>
4109 2004-06-06 Fernando Perez <fperez@colorado.edu>
4100
4110
4101 * IPython/Prompts.py (prompt_specials): Added the ability to have
4111 * IPython/Prompts.py (prompt_specials): Added the ability to have
4102 bash-like special sequences in the prompts, which get
4112 bash-like special sequences in the prompts, which get
4103 automatically expanded. Things like hostname, current working
4113 automatically expanded. Things like hostname, current working
4104 directory and username are implemented already, but it's easy to
4114 directory and username are implemented already, but it's easy to
4105 add more in the future. Thanks to a patch by W.J. van der Laan
4115 add more in the future. Thanks to a patch by W.J. van der Laan
4106 <gnufnork-AT-hetdigitalegat.nl>
4116 <gnufnork-AT-hetdigitalegat.nl>
4107 (prompt_specials): Added color support for prompt strings, so
4117 (prompt_specials): Added color support for prompt strings, so
4108 users can define arbitrary color setups for their prompts.
4118 users can define arbitrary color setups for their prompts.
4109
4119
4110 2004-06-05 Fernando Perez <fperez@colorado.edu>
4120 2004-06-05 Fernando Perez <fperez@colorado.edu>
4111
4121
4112 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4122 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4113 code to load Gary Bishop's readline and configure it
4123 code to load Gary Bishop's readline and configure it
4114 automatically. Thanks to Gary for help on this.
4124 automatically. Thanks to Gary for help on this.
4115
4125
4116 2004-06-01 Fernando Perez <fperez@colorado.edu>
4126 2004-06-01 Fernando Perez <fperez@colorado.edu>
4117
4127
4118 * IPython/Logger.py (Logger.create_log): fix bug for logging
4128 * IPython/Logger.py (Logger.create_log): fix bug for logging
4119 with no filename (previous fix was incomplete).
4129 with no filename (previous fix was incomplete).
4120
4130
4121 2004-05-25 Fernando Perez <fperez@colorado.edu>
4131 2004-05-25 Fernando Perez <fperez@colorado.edu>
4122
4132
4123 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4133 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4124 parens would get passed to the shell.
4134 parens would get passed to the shell.
4125
4135
4126 2004-05-20 Fernando Perez <fperez@colorado.edu>
4136 2004-05-20 Fernando Perez <fperez@colorado.edu>
4127
4137
4128 * IPython/Magic.py (Magic.magic_prun): changed default profile
4138 * IPython/Magic.py (Magic.magic_prun): changed default profile
4129 sort order to 'time' (the more common profiling need).
4139 sort order to 'time' (the more common profiling need).
4130
4140
4131 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4141 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4132 so that source code shown is guaranteed in sync with the file on
4142 so that source code shown is guaranteed in sync with the file on
4133 disk (also changed in psource). Similar fix to the one for
4143 disk (also changed in psource). Similar fix to the one for
4134 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4144 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4135 <yann.ledu-AT-noos.fr>.
4145 <yann.ledu-AT-noos.fr>.
4136
4146
4137 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4147 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4138 with a single option would not be correctly parsed. Closes
4148 with a single option would not be correctly parsed. Closes
4139 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4149 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4140 introduced in 0.6.0 (on 2004-05-06).
4150 introduced in 0.6.0 (on 2004-05-06).
4141
4151
4142 2004-05-13 *** Released version 0.6.0
4152 2004-05-13 *** Released version 0.6.0
4143
4153
4144 2004-05-13 Fernando Perez <fperez@colorado.edu>
4154 2004-05-13 Fernando Perez <fperez@colorado.edu>
4145
4155
4146 * debian/: Added debian/ directory to CVS, so that debian support
4156 * debian/: Added debian/ directory to CVS, so that debian support
4147 is publicly accessible. The debian package is maintained by Jack
4157 is publicly accessible. The debian package is maintained by Jack
4148 Moffit <jack-AT-xiph.org>.
4158 Moffit <jack-AT-xiph.org>.
4149
4159
4150 * Documentation: included the notes about an ipython-based system
4160 * Documentation: included the notes about an ipython-based system
4151 shell (the hypothetical 'pysh') into the new_design.pdf document,
4161 shell (the hypothetical 'pysh') into the new_design.pdf document,
4152 so that these ideas get distributed to users along with the
4162 so that these ideas get distributed to users along with the
4153 official documentation.
4163 official documentation.
4154
4164
4155 2004-05-10 Fernando Perez <fperez@colorado.edu>
4165 2004-05-10 Fernando Perez <fperez@colorado.edu>
4156
4166
4157 * IPython/Logger.py (Logger.create_log): fix recently introduced
4167 * IPython/Logger.py (Logger.create_log): fix recently introduced
4158 bug (misindented line) where logstart would fail when not given an
4168 bug (misindented line) where logstart would fail when not given an
4159 explicit filename.
4169 explicit filename.
4160
4170
4161 2004-05-09 Fernando Perez <fperez@colorado.edu>
4171 2004-05-09 Fernando Perez <fperez@colorado.edu>
4162
4172
4163 * IPython/Magic.py (Magic.parse_options): skip system call when
4173 * IPython/Magic.py (Magic.parse_options): skip system call when
4164 there are no options to look for. Faster, cleaner for the common
4174 there are no options to look for. Faster, cleaner for the common
4165 case.
4175 case.
4166
4176
4167 * Documentation: many updates to the manual: describing Windows
4177 * Documentation: many updates to the manual: describing Windows
4168 support better, Gnuplot updates, credits, misc small stuff. Also
4178 support better, Gnuplot updates, credits, misc small stuff. Also
4169 updated the new_design doc a bit.
4179 updated the new_design doc a bit.
4170
4180
4171 2004-05-06 *** Released version 0.6.0.rc1
4181 2004-05-06 *** Released version 0.6.0.rc1
4172
4182
4173 2004-05-06 Fernando Perez <fperez@colorado.edu>
4183 2004-05-06 Fernando Perez <fperez@colorado.edu>
4174
4184
4175 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4185 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4176 operations to use the vastly more efficient list/''.join() method.
4186 operations to use the vastly more efficient list/''.join() method.
4177 (FormattedTB.text): Fix
4187 (FormattedTB.text): Fix
4178 http://www.scipy.net/roundup/ipython/issue12 - exception source
4188 http://www.scipy.net/roundup/ipython/issue12 - exception source
4179 extract not updated after reload. Thanks to Mike Salib
4189 extract not updated after reload. Thanks to Mike Salib
4180 <msalib-AT-mit.edu> for pinning the source of the problem.
4190 <msalib-AT-mit.edu> for pinning the source of the problem.
4181 Fortunately, the solution works inside ipython and doesn't require
4191 Fortunately, the solution works inside ipython and doesn't require
4182 any changes to python proper.
4192 any changes to python proper.
4183
4193
4184 * IPython/Magic.py (Magic.parse_options): Improved to process the
4194 * IPython/Magic.py (Magic.parse_options): Improved to process the
4185 argument list as a true shell would (by actually using the
4195 argument list as a true shell would (by actually using the
4186 underlying system shell). This way, all @magics automatically get
4196 underlying system shell). This way, all @magics automatically get
4187 shell expansion for variables. Thanks to a comment by Alex
4197 shell expansion for variables. Thanks to a comment by Alex
4188 Schmolck.
4198 Schmolck.
4189
4199
4190 2004-04-04 Fernando Perez <fperez@colorado.edu>
4200 2004-04-04 Fernando Perez <fperez@colorado.edu>
4191
4201
4192 * IPython/iplib.py (InteractiveShell.interact): Added a special
4202 * IPython/iplib.py (InteractiveShell.interact): Added a special
4193 trap for a debugger quit exception, which is basically impossible
4203 trap for a debugger quit exception, which is basically impossible
4194 to handle by normal mechanisms, given what pdb does to the stack.
4204 to handle by normal mechanisms, given what pdb does to the stack.
4195 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4205 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4196
4206
4197 2004-04-03 Fernando Perez <fperez@colorado.edu>
4207 2004-04-03 Fernando Perez <fperez@colorado.edu>
4198
4208
4199 * IPython/genutils.py (Term): Standardized the names of the Term
4209 * IPython/genutils.py (Term): Standardized the names of the Term
4200 class streams to cin/cout/cerr, following C++ naming conventions
4210 class streams to cin/cout/cerr, following C++ naming conventions
4201 (I can't use in/out/err because 'in' is not a valid attribute
4211 (I can't use in/out/err because 'in' is not a valid attribute
4202 name).
4212 name).
4203
4213
4204 * IPython/iplib.py (InteractiveShell.interact): don't increment
4214 * IPython/iplib.py (InteractiveShell.interact): don't increment
4205 the prompt if there's no user input. By Daniel 'Dang' Griffith
4215 the prompt if there's no user input. By Daniel 'Dang' Griffith
4206 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4216 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4207 Francois Pinard.
4217 Francois Pinard.
4208
4218
4209 2004-04-02 Fernando Perez <fperez@colorado.edu>
4219 2004-04-02 Fernando Perez <fperez@colorado.edu>
4210
4220
4211 * IPython/genutils.py (Stream.__init__): Modified to survive at
4221 * IPython/genutils.py (Stream.__init__): Modified to survive at
4212 least importing in contexts where stdin/out/err aren't true file
4222 least importing in contexts where stdin/out/err aren't true file
4213 objects, such as PyCrust (they lack fileno() and mode). However,
4223 objects, such as PyCrust (they lack fileno() and mode). However,
4214 the recovery facilities which rely on these things existing will
4224 the recovery facilities which rely on these things existing will
4215 not work.
4225 not work.
4216
4226
4217 2004-04-01 Fernando Perez <fperez@colorado.edu>
4227 2004-04-01 Fernando Perez <fperez@colorado.edu>
4218
4228
4219 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4229 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4220 use the new getoutputerror() function, so it properly
4230 use the new getoutputerror() function, so it properly
4221 distinguishes stdout/err.
4231 distinguishes stdout/err.
4222
4232
4223 * IPython/genutils.py (getoutputerror): added a function to
4233 * IPython/genutils.py (getoutputerror): added a function to
4224 capture separately the standard output and error of a command.
4234 capture separately the standard output and error of a command.
4225 After a comment from dang on the mailing lists. This code is
4235 After a comment from dang on the mailing lists. This code is
4226 basically a modified version of commands.getstatusoutput(), from
4236 basically a modified version of commands.getstatusoutput(), from
4227 the standard library.
4237 the standard library.
4228
4238
4229 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4239 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4230 '!!' as a special syntax (shorthand) to access @sx.
4240 '!!' as a special syntax (shorthand) to access @sx.
4231
4241
4232 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4242 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4233 command and return its output as a list split on '\n'.
4243 command and return its output as a list split on '\n'.
4234
4244
4235 2004-03-31 Fernando Perez <fperez@colorado.edu>
4245 2004-03-31 Fernando Perez <fperez@colorado.edu>
4236
4246
4237 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4247 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4238 method to dictionaries used as FakeModule instances if they lack
4248 method to dictionaries used as FakeModule instances if they lack
4239 it. At least pydoc in python2.3 breaks for runtime-defined
4249 it. At least pydoc in python2.3 breaks for runtime-defined
4240 functions without this hack. At some point I need to _really_
4250 functions without this hack. At some point I need to _really_
4241 understand what FakeModule is doing, because it's a gross hack.
4251 understand what FakeModule is doing, because it's a gross hack.
4242 But it solves Arnd's problem for now...
4252 But it solves Arnd's problem for now...
4243
4253
4244 2004-02-27 Fernando Perez <fperez@colorado.edu>
4254 2004-02-27 Fernando Perez <fperez@colorado.edu>
4245
4255
4246 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4256 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4247 mode would behave erratically. Also increased the number of
4257 mode would behave erratically. Also increased the number of
4248 possible logs in rotate mod to 999. Thanks to Rod Holland
4258 possible logs in rotate mod to 999. Thanks to Rod Holland
4249 <rhh@StructureLABS.com> for the report and fixes.
4259 <rhh@StructureLABS.com> for the report and fixes.
4250
4260
4251 2004-02-26 Fernando Perez <fperez@colorado.edu>
4261 2004-02-26 Fernando Perez <fperez@colorado.edu>
4252
4262
4253 * IPython/genutils.py (page): Check that the curses module really
4263 * IPython/genutils.py (page): Check that the curses module really
4254 has the initscr attribute before trying to use it. For some
4264 has the initscr attribute before trying to use it. For some
4255 reason, the Solaris curses module is missing this. I think this
4265 reason, the Solaris curses module is missing this. I think this
4256 should be considered a Solaris python bug, but I'm not sure.
4266 should be considered a Solaris python bug, but I'm not sure.
4257
4267
4258 2004-01-17 Fernando Perez <fperez@colorado.edu>
4268 2004-01-17 Fernando Perez <fperez@colorado.edu>
4259
4269
4260 * IPython/genutils.py (Stream.__init__): Changes to try to make
4270 * IPython/genutils.py (Stream.__init__): Changes to try to make
4261 ipython robust against stdin/out/err being closed by the user.
4271 ipython robust against stdin/out/err being closed by the user.
4262 This is 'user error' (and blocks a normal python session, at least
4272 This is 'user error' (and blocks a normal python session, at least
4263 the stdout case). However, Ipython should be able to survive such
4273 the stdout case). However, Ipython should be able to survive such
4264 instances of abuse as gracefully as possible. To simplify the
4274 instances of abuse as gracefully as possible. To simplify the
4265 coding and maintain compatibility with Gary Bishop's Term
4275 coding and maintain compatibility with Gary Bishop's Term
4266 contributions, I've made use of classmethods for this. I think
4276 contributions, I've made use of classmethods for this. I think
4267 this introduces a dependency on python 2.2.
4277 this introduces a dependency on python 2.2.
4268
4278
4269 2004-01-13 Fernando Perez <fperez@colorado.edu>
4279 2004-01-13 Fernando Perez <fperez@colorado.edu>
4270
4280
4271 * IPython/numutils.py (exp_safe): simplified the code a bit and
4281 * IPython/numutils.py (exp_safe): simplified the code a bit and
4272 removed the need for importing the kinds module altogether.
4282 removed the need for importing the kinds module altogether.
4273
4283
4274 2004-01-06 Fernando Perez <fperez@colorado.edu>
4284 2004-01-06 Fernando Perez <fperez@colorado.edu>
4275
4285
4276 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4286 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4277 a magic function instead, after some community feedback. No
4287 a magic function instead, after some community feedback. No
4278 special syntax will exist for it, but its name is deliberately
4288 special syntax will exist for it, but its name is deliberately
4279 very short.
4289 very short.
4280
4290
4281 2003-12-20 Fernando Perez <fperez@colorado.edu>
4291 2003-12-20 Fernando Perez <fperez@colorado.edu>
4282
4292
4283 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4293 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4284 new functionality, to automagically assign the result of a shell
4294 new functionality, to automagically assign the result of a shell
4285 command to a variable. I'll solicit some community feedback on
4295 command to a variable. I'll solicit some community feedback on
4286 this before making it permanent.
4296 this before making it permanent.
4287
4297
4288 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4298 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4289 requested about callables for which inspect couldn't obtain a
4299 requested about callables for which inspect couldn't obtain a
4290 proper argspec. Thanks to a crash report sent by Etienne
4300 proper argspec. Thanks to a crash report sent by Etienne
4291 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4301 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4292
4302
4293 2003-12-09 Fernando Perez <fperez@colorado.edu>
4303 2003-12-09 Fernando Perez <fperez@colorado.edu>
4294
4304
4295 * IPython/genutils.py (page): patch for the pager to work across
4305 * IPython/genutils.py (page): patch for the pager to work across
4296 various versions of Windows. By Gary Bishop.
4306 various versions of Windows. By Gary Bishop.
4297
4307
4298 2003-12-04 Fernando Perez <fperez@colorado.edu>
4308 2003-12-04 Fernando Perez <fperez@colorado.edu>
4299
4309
4300 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4310 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4301 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4311 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4302 While I tested this and it looks ok, there may still be corner
4312 While I tested this and it looks ok, there may still be corner
4303 cases I've missed.
4313 cases I've missed.
4304
4314
4305 2003-12-01 Fernando Perez <fperez@colorado.edu>
4315 2003-12-01 Fernando Perez <fperez@colorado.edu>
4306
4316
4307 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4317 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4308 where a line like 'p,q=1,2' would fail because the automagic
4318 where a line like 'p,q=1,2' would fail because the automagic
4309 system would be triggered for @p.
4319 system would be triggered for @p.
4310
4320
4311 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4321 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4312 cleanups, code unmodified.
4322 cleanups, code unmodified.
4313
4323
4314 * IPython/genutils.py (Term): added a class for IPython to handle
4324 * IPython/genutils.py (Term): added a class for IPython to handle
4315 output. In most cases it will just be a proxy for stdout/err, but
4325 output. In most cases it will just be a proxy for stdout/err, but
4316 having this allows modifications to be made for some platforms,
4326 having this allows modifications to be made for some platforms,
4317 such as handling color escapes under Windows. All of this code
4327 such as handling color escapes under Windows. All of this code
4318 was contributed by Gary Bishop, with minor modifications by me.
4328 was contributed by Gary Bishop, with minor modifications by me.
4319 The actual changes affect many files.
4329 The actual changes affect many files.
4320
4330
4321 2003-11-30 Fernando Perez <fperez@colorado.edu>
4331 2003-11-30 Fernando Perez <fperez@colorado.edu>
4322
4332
4323 * IPython/iplib.py (file_matches): new completion code, courtesy
4333 * IPython/iplib.py (file_matches): new completion code, courtesy
4324 of Jeff Collins. This enables filename completion again under
4334 of Jeff Collins. This enables filename completion again under
4325 python 2.3, which disabled it at the C level.
4335 python 2.3, which disabled it at the C level.
4326
4336
4327 2003-11-11 Fernando Perez <fperez@colorado.edu>
4337 2003-11-11 Fernando Perez <fperez@colorado.edu>
4328
4338
4329 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4339 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4330 for Numeric.array(map(...)), but often convenient.
4340 for Numeric.array(map(...)), but often convenient.
4331
4341
4332 2003-11-05 Fernando Perez <fperez@colorado.edu>
4342 2003-11-05 Fernando Perez <fperez@colorado.edu>
4333
4343
4334 * IPython/numutils.py (frange): Changed a call from int() to
4344 * IPython/numutils.py (frange): Changed a call from int() to
4335 int(round()) to prevent a problem reported with arange() in the
4345 int(round()) to prevent a problem reported with arange() in the
4336 numpy list.
4346 numpy list.
4337
4347
4338 2003-10-06 Fernando Perez <fperez@colorado.edu>
4348 2003-10-06 Fernando Perez <fperez@colorado.edu>
4339
4349
4340 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4350 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4341 prevent crashes if sys lacks an argv attribute (it happens with
4351 prevent crashes if sys lacks an argv attribute (it happens with
4342 embedded interpreters which build a bare-bones sys module).
4352 embedded interpreters which build a bare-bones sys module).
4343 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4353 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4344
4354
4345 2003-09-24 Fernando Perez <fperez@colorado.edu>
4355 2003-09-24 Fernando Perez <fperez@colorado.edu>
4346
4356
4347 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4357 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4348 to protect against poorly written user objects where __getattr__
4358 to protect against poorly written user objects where __getattr__
4349 raises exceptions other than AttributeError. Thanks to a bug
4359 raises exceptions other than AttributeError. Thanks to a bug
4350 report by Oliver Sander <osander-AT-gmx.de>.
4360 report by Oliver Sander <osander-AT-gmx.de>.
4351
4361
4352 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4362 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4353 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4363 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4354
4364
4355 2003-09-09 Fernando Perez <fperez@colorado.edu>
4365 2003-09-09 Fernando Perez <fperez@colorado.edu>
4356
4366
4357 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4367 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4358 unpacking a list whith a callable as first element would
4368 unpacking a list whith a callable as first element would
4359 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4369 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4360 Collins.
4370 Collins.
4361
4371
4362 2003-08-25 *** Released version 0.5.0
4372 2003-08-25 *** Released version 0.5.0
4363
4373
4364 2003-08-22 Fernando Perez <fperez@colorado.edu>
4374 2003-08-22 Fernando Perez <fperez@colorado.edu>
4365
4375
4366 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4376 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4367 improperly defined user exceptions. Thanks to feedback from Mark
4377 improperly defined user exceptions. Thanks to feedback from Mark
4368 Russell <mrussell-AT-verio.net>.
4378 Russell <mrussell-AT-verio.net>.
4369
4379
4370 2003-08-20 Fernando Perez <fperez@colorado.edu>
4380 2003-08-20 Fernando Perez <fperez@colorado.edu>
4371
4381
4372 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4382 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4373 printing so that it would print multi-line string forms starting
4383 printing so that it would print multi-line string forms starting
4374 with a new line. This way the formatting is better respected for
4384 with a new line. This way the formatting is better respected for
4375 objects which work hard to make nice string forms.
4385 objects which work hard to make nice string forms.
4376
4386
4377 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4387 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4378 autocall would overtake data access for objects with both
4388 autocall would overtake data access for objects with both
4379 __getitem__ and __call__.
4389 __getitem__ and __call__.
4380
4390
4381 2003-08-19 *** Released version 0.5.0-rc1
4391 2003-08-19 *** Released version 0.5.0-rc1
4382
4392
4383 2003-08-19 Fernando Perez <fperez@colorado.edu>
4393 2003-08-19 Fernando Perez <fperez@colorado.edu>
4384
4394
4385 * IPython/deep_reload.py (load_tail): single tiny change here
4395 * IPython/deep_reload.py (load_tail): single tiny change here
4386 seems to fix the long-standing bug of dreload() failing to work
4396 seems to fix the long-standing bug of dreload() failing to work
4387 for dotted names. But this module is pretty tricky, so I may have
4397 for dotted names. But this module is pretty tricky, so I may have
4388 missed some subtlety. Needs more testing!.
4398 missed some subtlety. Needs more testing!.
4389
4399
4390 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4400 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4391 exceptions which have badly implemented __str__ methods.
4401 exceptions which have badly implemented __str__ methods.
4392 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4402 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4393 which I've been getting reports about from Python 2.3 users. I
4403 which I've been getting reports about from Python 2.3 users. I
4394 wish I had a simple test case to reproduce the problem, so I could
4404 wish I had a simple test case to reproduce the problem, so I could
4395 either write a cleaner workaround or file a bug report if
4405 either write a cleaner workaround or file a bug report if
4396 necessary.
4406 necessary.
4397
4407
4398 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4408 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4399 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4409 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4400 a bug report by Tjabo Kloppenburg.
4410 a bug report by Tjabo Kloppenburg.
4401
4411
4402 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4412 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4403 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4413 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4404 seems rather unstable. Thanks to a bug report by Tjabo
4414 seems rather unstable. Thanks to a bug report by Tjabo
4405 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4415 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4406
4416
4407 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4417 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4408 this out soon because of the critical fixes in the inner loop for
4418 this out soon because of the critical fixes in the inner loop for
4409 generators.
4419 generators.
4410
4420
4411 * IPython/Magic.py (Magic.getargspec): removed. This (and
4421 * IPython/Magic.py (Magic.getargspec): removed. This (and
4412 _get_def) have been obsoleted by OInspect for a long time, I
4422 _get_def) have been obsoleted by OInspect for a long time, I
4413 hadn't noticed that they were dead code.
4423 hadn't noticed that they were dead code.
4414 (Magic._ofind): restored _ofind functionality for a few literals
4424 (Magic._ofind): restored _ofind functionality for a few literals
4415 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4425 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4416 for things like "hello".capitalize?, since that would require a
4426 for things like "hello".capitalize?, since that would require a
4417 potentially dangerous eval() again.
4427 potentially dangerous eval() again.
4418
4428
4419 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4429 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4420 logic a bit more to clean up the escapes handling and minimize the
4430 logic a bit more to clean up the escapes handling and minimize the
4421 use of _ofind to only necessary cases. The interactive 'feel' of
4431 use of _ofind to only necessary cases. The interactive 'feel' of
4422 IPython should have improved quite a bit with the changes in
4432 IPython should have improved quite a bit with the changes in
4423 _prefilter and _ofind (besides being far safer than before).
4433 _prefilter and _ofind (besides being far safer than before).
4424
4434
4425 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4435 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4426 obscure, never reported). Edit would fail to find the object to
4436 obscure, never reported). Edit would fail to find the object to
4427 edit under some circumstances.
4437 edit under some circumstances.
4428 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4438 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4429 which were causing double-calling of generators. Those eval calls
4439 which were causing double-calling of generators. Those eval calls
4430 were _very_ dangerous, since code with side effects could be
4440 were _very_ dangerous, since code with side effects could be
4431 triggered. As they say, 'eval is evil'... These were the
4441 triggered. As they say, 'eval is evil'... These were the
4432 nastiest evals in IPython. Besides, _ofind is now far simpler,
4442 nastiest evals in IPython. Besides, _ofind is now far simpler,
4433 and it should also be quite a bit faster. Its use of inspect is
4443 and it should also be quite a bit faster. Its use of inspect is
4434 also safer, so perhaps some of the inspect-related crashes I've
4444 also safer, so perhaps some of the inspect-related crashes I've
4435 seen lately with Python 2.3 might be taken care of. That will
4445 seen lately with Python 2.3 might be taken care of. That will
4436 need more testing.
4446 need more testing.
4437
4447
4438 2003-08-17 Fernando Perez <fperez@colorado.edu>
4448 2003-08-17 Fernando Perez <fperez@colorado.edu>
4439
4449
4440 * IPython/iplib.py (InteractiveShell._prefilter): significant
4450 * IPython/iplib.py (InteractiveShell._prefilter): significant
4441 simplifications to the logic for handling user escapes. Faster
4451 simplifications to the logic for handling user escapes. Faster
4442 and simpler code.
4452 and simpler code.
4443
4453
4444 2003-08-14 Fernando Perez <fperez@colorado.edu>
4454 2003-08-14 Fernando Perez <fperez@colorado.edu>
4445
4455
4446 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4456 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4447 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4457 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4448 but it should be quite a bit faster. And the recursive version
4458 but it should be quite a bit faster. And the recursive version
4449 generated O(log N) intermediate storage for all rank>1 arrays,
4459 generated O(log N) intermediate storage for all rank>1 arrays,
4450 even if they were contiguous.
4460 even if they were contiguous.
4451 (l1norm): Added this function.
4461 (l1norm): Added this function.
4452 (norm): Added this function for arbitrary norms (including
4462 (norm): Added this function for arbitrary norms (including
4453 l-infinity). l1 and l2 are still special cases for convenience
4463 l-infinity). l1 and l2 are still special cases for convenience
4454 and speed.
4464 and speed.
4455
4465
4456 2003-08-03 Fernando Perez <fperez@colorado.edu>
4466 2003-08-03 Fernando Perez <fperez@colorado.edu>
4457
4467
4458 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4468 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4459 exceptions, which now raise PendingDeprecationWarnings in Python
4469 exceptions, which now raise PendingDeprecationWarnings in Python
4460 2.3. There were some in Magic and some in Gnuplot2.
4470 2.3. There were some in Magic and some in Gnuplot2.
4461
4471
4462 2003-06-30 Fernando Perez <fperez@colorado.edu>
4472 2003-06-30 Fernando Perez <fperez@colorado.edu>
4463
4473
4464 * IPython/genutils.py (page): modified to call curses only for
4474 * IPython/genutils.py (page): modified to call curses only for
4465 terminals where TERM=='xterm'. After problems under many other
4475 terminals where TERM=='xterm'. After problems under many other
4466 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4476 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4467
4477
4468 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4478 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4469 would be triggered when readline was absent. This was just an old
4479 would be triggered when readline was absent. This was just an old
4470 debugging statement I'd forgotten to take out.
4480 debugging statement I'd forgotten to take out.
4471
4481
4472 2003-06-20 Fernando Perez <fperez@colorado.edu>
4482 2003-06-20 Fernando Perez <fperez@colorado.edu>
4473
4483
4474 * IPython/genutils.py (clock): modified to return only user time
4484 * IPython/genutils.py (clock): modified to return only user time
4475 (not counting system time), after a discussion on scipy. While
4485 (not counting system time), after a discussion on scipy. While
4476 system time may be a useful quantity occasionally, it may much
4486 system time may be a useful quantity occasionally, it may much
4477 more easily be skewed by occasional swapping or other similar
4487 more easily be skewed by occasional swapping or other similar
4478 activity.
4488 activity.
4479
4489
4480 2003-06-05 Fernando Perez <fperez@colorado.edu>
4490 2003-06-05 Fernando Perez <fperez@colorado.edu>
4481
4491
4482 * IPython/numutils.py (identity): new function, for building
4492 * IPython/numutils.py (identity): new function, for building
4483 arbitrary rank Kronecker deltas (mostly backwards compatible with
4493 arbitrary rank Kronecker deltas (mostly backwards compatible with
4484 Numeric.identity)
4494 Numeric.identity)
4485
4495
4486 2003-06-03 Fernando Perez <fperez@colorado.edu>
4496 2003-06-03 Fernando Perez <fperez@colorado.edu>
4487
4497
4488 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4498 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4489 arguments passed to magics with spaces, to allow trailing '\' to
4499 arguments passed to magics with spaces, to allow trailing '\' to
4490 work normally (mainly for Windows users).
4500 work normally (mainly for Windows users).
4491
4501
4492 2003-05-29 Fernando Perez <fperez@colorado.edu>
4502 2003-05-29 Fernando Perez <fperez@colorado.edu>
4493
4503
4494 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4504 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4495 instead of pydoc.help. This fixes a bizarre behavior where
4505 instead of pydoc.help. This fixes a bizarre behavior where
4496 printing '%s' % locals() would trigger the help system. Now
4506 printing '%s' % locals() would trigger the help system. Now
4497 ipython behaves like normal python does.
4507 ipython behaves like normal python does.
4498
4508
4499 Note that if one does 'from pydoc import help', the bizarre
4509 Note that if one does 'from pydoc import help', the bizarre
4500 behavior returns, but this will also happen in normal python, so
4510 behavior returns, but this will also happen in normal python, so
4501 it's not an ipython bug anymore (it has to do with how pydoc.help
4511 it's not an ipython bug anymore (it has to do with how pydoc.help
4502 is implemented).
4512 is implemented).
4503
4513
4504 2003-05-22 Fernando Perez <fperez@colorado.edu>
4514 2003-05-22 Fernando Perez <fperez@colorado.edu>
4505
4515
4506 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4516 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4507 return [] instead of None when nothing matches, also match to end
4517 return [] instead of None when nothing matches, also match to end
4508 of line. Patch by Gary Bishop.
4518 of line. Patch by Gary Bishop.
4509
4519
4510 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4520 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4511 protection as before, for files passed on the command line. This
4521 protection as before, for files passed on the command line. This
4512 prevents the CrashHandler from kicking in if user files call into
4522 prevents the CrashHandler from kicking in if user files call into
4513 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4523 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4514 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4524 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4515
4525
4516 2003-05-20 *** Released version 0.4.0
4526 2003-05-20 *** Released version 0.4.0
4517
4527
4518 2003-05-20 Fernando Perez <fperez@colorado.edu>
4528 2003-05-20 Fernando Perez <fperez@colorado.edu>
4519
4529
4520 * setup.py: added support for manpages. It's a bit hackish b/c of
4530 * setup.py: added support for manpages. It's a bit hackish b/c of
4521 a bug in the way the bdist_rpm distutils target handles gzipped
4531 a bug in the way the bdist_rpm distutils target handles gzipped
4522 manpages, but it works. After a patch by Jack.
4532 manpages, but it works. After a patch by Jack.
4523
4533
4524 2003-05-19 Fernando Perez <fperez@colorado.edu>
4534 2003-05-19 Fernando Perez <fperez@colorado.edu>
4525
4535
4526 * IPython/numutils.py: added a mockup of the kinds module, since
4536 * IPython/numutils.py: added a mockup of the kinds module, since
4527 it was recently removed from Numeric. This way, numutils will
4537 it was recently removed from Numeric. This way, numutils will
4528 work for all users even if they are missing kinds.
4538 work for all users even if they are missing kinds.
4529
4539
4530 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4540 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4531 failure, which can occur with SWIG-wrapped extensions. After a
4541 failure, which can occur with SWIG-wrapped extensions. After a
4532 crash report from Prabhu.
4542 crash report from Prabhu.
4533
4543
4534 2003-05-16 Fernando Perez <fperez@colorado.edu>
4544 2003-05-16 Fernando Perez <fperez@colorado.edu>
4535
4545
4536 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4546 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4537 protect ipython from user code which may call directly
4547 protect ipython from user code which may call directly
4538 sys.excepthook (this looks like an ipython crash to the user, even
4548 sys.excepthook (this looks like an ipython crash to the user, even
4539 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4549 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4540 This is especially important to help users of WxWindows, but may
4550 This is especially important to help users of WxWindows, but may
4541 also be useful in other cases.
4551 also be useful in other cases.
4542
4552
4543 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4553 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4544 an optional tb_offset to be specified, and to preserve exception
4554 an optional tb_offset to be specified, and to preserve exception
4545 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4555 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4546
4556
4547 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4557 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4548
4558
4549 2003-05-15 Fernando Perez <fperez@colorado.edu>
4559 2003-05-15 Fernando Perez <fperez@colorado.edu>
4550
4560
4551 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4561 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4552 installing for a new user under Windows.
4562 installing for a new user under Windows.
4553
4563
4554 2003-05-12 Fernando Perez <fperez@colorado.edu>
4564 2003-05-12 Fernando Perez <fperez@colorado.edu>
4555
4565
4556 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4566 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4557 handler for Emacs comint-based lines. Currently it doesn't do
4567 handler for Emacs comint-based lines. Currently it doesn't do
4558 much (but importantly, it doesn't update the history cache). In
4568 much (but importantly, it doesn't update the history cache). In
4559 the future it may be expanded if Alex needs more functionality
4569 the future it may be expanded if Alex needs more functionality
4560 there.
4570 there.
4561
4571
4562 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4572 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4563 info to crash reports.
4573 info to crash reports.
4564
4574
4565 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4575 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4566 just like Python's -c. Also fixed crash with invalid -color
4576 just like Python's -c. Also fixed crash with invalid -color
4567 option value at startup. Thanks to Will French
4577 option value at startup. Thanks to Will French
4568 <wfrench-AT-bestweb.net> for the bug report.
4578 <wfrench-AT-bestweb.net> for the bug report.
4569
4579
4570 2003-05-09 Fernando Perez <fperez@colorado.edu>
4580 2003-05-09 Fernando Perez <fperez@colorado.edu>
4571
4581
4572 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4582 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4573 to EvalDict (it's a mapping, after all) and simplified its code
4583 to EvalDict (it's a mapping, after all) and simplified its code
4574 quite a bit, after a nice discussion on c.l.py where Gustavo
4584 quite a bit, after a nice discussion on c.l.py where Gustavo
4575 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4585 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4576
4586
4577 2003-04-30 Fernando Perez <fperez@colorado.edu>
4587 2003-04-30 Fernando Perez <fperez@colorado.edu>
4578
4588
4579 * IPython/genutils.py (timings_out): modified it to reduce its
4589 * IPython/genutils.py (timings_out): modified it to reduce its
4580 overhead in the common reps==1 case.
4590 overhead in the common reps==1 case.
4581
4591
4582 2003-04-29 Fernando Perez <fperez@colorado.edu>
4592 2003-04-29 Fernando Perez <fperez@colorado.edu>
4583
4593
4584 * IPython/genutils.py (timings_out): Modified to use the resource
4594 * IPython/genutils.py (timings_out): Modified to use the resource
4585 module, which avoids the wraparound problems of time.clock().
4595 module, which avoids the wraparound problems of time.clock().
4586
4596
4587 2003-04-17 *** Released version 0.2.15pre4
4597 2003-04-17 *** Released version 0.2.15pre4
4588
4598
4589 2003-04-17 Fernando Perez <fperez@colorado.edu>
4599 2003-04-17 Fernando Perez <fperez@colorado.edu>
4590
4600
4591 * setup.py (scriptfiles): Split windows-specific stuff over to a
4601 * setup.py (scriptfiles): Split windows-specific stuff over to a
4592 separate file, in an attempt to have a Windows GUI installer.
4602 separate file, in an attempt to have a Windows GUI installer.
4593 That didn't work, but part of the groundwork is done.
4603 That didn't work, but part of the groundwork is done.
4594
4604
4595 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4605 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4596 indent/unindent with 4 spaces. Particularly useful in combination
4606 indent/unindent with 4 spaces. Particularly useful in combination
4597 with the new auto-indent option.
4607 with the new auto-indent option.
4598
4608
4599 2003-04-16 Fernando Perez <fperez@colorado.edu>
4609 2003-04-16 Fernando Perez <fperez@colorado.edu>
4600
4610
4601 * IPython/Magic.py: various replacements of self.rc for
4611 * IPython/Magic.py: various replacements of self.rc for
4602 self.shell.rc. A lot more remains to be done to fully disentangle
4612 self.shell.rc. A lot more remains to be done to fully disentangle
4603 this class from the main Shell class.
4613 this class from the main Shell class.
4604
4614
4605 * IPython/GnuplotRuntime.py: added checks for mouse support so
4615 * IPython/GnuplotRuntime.py: added checks for mouse support so
4606 that we don't try to enable it if the current gnuplot doesn't
4616 that we don't try to enable it if the current gnuplot doesn't
4607 really support it. Also added checks so that we don't try to
4617 really support it. Also added checks so that we don't try to
4608 enable persist under Windows (where Gnuplot doesn't recognize the
4618 enable persist under Windows (where Gnuplot doesn't recognize the
4609 option).
4619 option).
4610
4620
4611 * IPython/iplib.py (InteractiveShell.interact): Added optional
4621 * IPython/iplib.py (InteractiveShell.interact): Added optional
4612 auto-indenting code, after a patch by King C. Shu
4622 auto-indenting code, after a patch by King C. Shu
4613 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4623 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4614 get along well with pasting indented code. If I ever figure out
4624 get along well with pasting indented code. If I ever figure out
4615 how to make that part go well, it will become on by default.
4625 how to make that part go well, it will become on by default.
4616
4626
4617 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4627 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4618 crash ipython if there was an unmatched '%' in the user's prompt
4628 crash ipython if there was an unmatched '%' in the user's prompt
4619 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4629 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4620
4630
4621 * IPython/iplib.py (InteractiveShell.interact): removed the
4631 * IPython/iplib.py (InteractiveShell.interact): removed the
4622 ability to ask the user whether he wants to crash or not at the
4632 ability to ask the user whether he wants to crash or not at the
4623 'last line' exception handler. Calling functions at that point
4633 'last line' exception handler. Calling functions at that point
4624 changes the stack, and the error reports would have incorrect
4634 changes the stack, and the error reports would have incorrect
4625 tracebacks.
4635 tracebacks.
4626
4636
4627 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4637 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4628 pass through a peger a pretty-printed form of any object. After a
4638 pass through a peger a pretty-printed form of any object. After a
4629 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4639 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4630
4640
4631 2003-04-14 Fernando Perez <fperez@colorado.edu>
4641 2003-04-14 Fernando Perez <fperez@colorado.edu>
4632
4642
4633 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4643 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4634 all files in ~ would be modified at first install (instead of
4644 all files in ~ would be modified at first install (instead of
4635 ~/.ipython). This could be potentially disastrous, as the
4645 ~/.ipython). This could be potentially disastrous, as the
4636 modification (make line-endings native) could damage binary files.
4646 modification (make line-endings native) could damage binary files.
4637
4647
4638 2003-04-10 Fernando Perez <fperez@colorado.edu>
4648 2003-04-10 Fernando Perez <fperez@colorado.edu>
4639
4649
4640 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4650 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4641 handle only lines which are invalid python. This now means that
4651 handle only lines which are invalid python. This now means that
4642 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4652 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4643 for the bug report.
4653 for the bug report.
4644
4654
4645 2003-04-01 Fernando Perez <fperez@colorado.edu>
4655 2003-04-01 Fernando Perez <fperez@colorado.edu>
4646
4656
4647 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4657 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4648 where failing to set sys.last_traceback would crash pdb.pm().
4658 where failing to set sys.last_traceback would crash pdb.pm().
4649 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4659 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4650 report.
4660 report.
4651
4661
4652 2003-03-25 Fernando Perez <fperez@colorado.edu>
4662 2003-03-25 Fernando Perez <fperez@colorado.edu>
4653
4663
4654 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4664 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4655 before printing it (it had a lot of spurious blank lines at the
4665 before printing it (it had a lot of spurious blank lines at the
4656 end).
4666 end).
4657
4667
4658 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4668 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4659 output would be sent 21 times! Obviously people don't use this
4669 output would be sent 21 times! Obviously people don't use this
4660 too often, or I would have heard about it.
4670 too often, or I would have heard about it.
4661
4671
4662 2003-03-24 Fernando Perez <fperez@colorado.edu>
4672 2003-03-24 Fernando Perez <fperez@colorado.edu>
4663
4673
4664 * setup.py (scriptfiles): renamed the data_files parameter from
4674 * setup.py (scriptfiles): renamed the data_files parameter from
4665 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4675 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4666 for the patch.
4676 for the patch.
4667
4677
4668 2003-03-20 Fernando Perez <fperez@colorado.edu>
4678 2003-03-20 Fernando Perez <fperez@colorado.edu>
4669
4679
4670 * IPython/genutils.py (error): added error() and fatal()
4680 * IPython/genutils.py (error): added error() and fatal()
4671 functions.
4681 functions.
4672
4682
4673 2003-03-18 *** Released version 0.2.15pre3
4683 2003-03-18 *** Released version 0.2.15pre3
4674
4684
4675 2003-03-18 Fernando Perez <fperez@colorado.edu>
4685 2003-03-18 Fernando Perez <fperez@colorado.edu>
4676
4686
4677 * setupext/install_data_ext.py
4687 * setupext/install_data_ext.py
4678 (install_data_ext.initialize_options): Class contributed by Jack
4688 (install_data_ext.initialize_options): Class contributed by Jack
4679 Moffit for fixing the old distutils hack. He is sending this to
4689 Moffit for fixing the old distutils hack. He is sending this to
4680 the distutils folks so in the future we may not need it as a
4690 the distutils folks so in the future we may not need it as a
4681 private fix.
4691 private fix.
4682
4692
4683 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4693 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4684 changes for Debian packaging. See his patch for full details.
4694 changes for Debian packaging. See his patch for full details.
4685 The old distutils hack of making the ipythonrc* files carry a
4695 The old distutils hack of making the ipythonrc* files carry a
4686 bogus .py extension is gone, at last. Examples were moved to a
4696 bogus .py extension is gone, at last. Examples were moved to a
4687 separate subdir under doc/, and the separate executable scripts
4697 separate subdir under doc/, and the separate executable scripts
4688 now live in their own directory. Overall a great cleanup. The
4698 now live in their own directory. Overall a great cleanup. The
4689 manual was updated to use the new files, and setup.py has been
4699 manual was updated to use the new files, and setup.py has been
4690 fixed for this setup.
4700 fixed for this setup.
4691
4701
4692 * IPython/PyColorize.py (Parser.usage): made non-executable and
4702 * IPython/PyColorize.py (Parser.usage): made non-executable and
4693 created a pycolor wrapper around it to be included as a script.
4703 created a pycolor wrapper around it to be included as a script.
4694
4704
4695 2003-03-12 *** Released version 0.2.15pre2
4705 2003-03-12 *** Released version 0.2.15pre2
4696
4706
4697 2003-03-12 Fernando Perez <fperez@colorado.edu>
4707 2003-03-12 Fernando Perez <fperez@colorado.edu>
4698
4708
4699 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4709 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4700 long-standing problem with garbage characters in some terminals.
4710 long-standing problem with garbage characters in some terminals.
4701 The issue was really that the \001 and \002 escapes must _only_ be
4711 The issue was really that the \001 and \002 escapes must _only_ be
4702 passed to input prompts (which call readline), but _never_ to
4712 passed to input prompts (which call readline), but _never_ to
4703 normal text to be printed on screen. I changed ColorANSI to have
4713 normal text to be printed on screen. I changed ColorANSI to have
4704 two classes: TermColors and InputTermColors, each with the
4714 two classes: TermColors and InputTermColors, each with the
4705 appropriate escapes for input prompts or normal text. The code in
4715 appropriate escapes for input prompts or normal text. The code in
4706 Prompts.py got slightly more complicated, but this very old and
4716 Prompts.py got slightly more complicated, but this very old and
4707 annoying bug is finally fixed.
4717 annoying bug is finally fixed.
4708
4718
4709 All the credit for nailing down the real origin of this problem
4719 All the credit for nailing down the real origin of this problem
4710 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4720 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4711 *Many* thanks to him for spending quite a bit of effort on this.
4721 *Many* thanks to him for spending quite a bit of effort on this.
4712
4722
4713 2003-03-05 *** Released version 0.2.15pre1
4723 2003-03-05 *** Released version 0.2.15pre1
4714
4724
4715 2003-03-03 Fernando Perez <fperez@colorado.edu>
4725 2003-03-03 Fernando Perez <fperez@colorado.edu>
4716
4726
4717 * IPython/FakeModule.py: Moved the former _FakeModule to a
4727 * IPython/FakeModule.py: Moved the former _FakeModule to a
4718 separate file, because it's also needed by Magic (to fix a similar
4728 separate file, because it's also needed by Magic (to fix a similar
4719 pickle-related issue in @run).
4729 pickle-related issue in @run).
4720
4730
4721 2003-03-02 Fernando Perez <fperez@colorado.edu>
4731 2003-03-02 Fernando Perez <fperez@colorado.edu>
4722
4732
4723 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4733 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4724 the autocall option at runtime.
4734 the autocall option at runtime.
4725 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4735 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4726 across Magic.py to start separating Magic from InteractiveShell.
4736 across Magic.py to start separating Magic from InteractiveShell.
4727 (Magic._ofind): Fixed to return proper namespace for dotted
4737 (Magic._ofind): Fixed to return proper namespace for dotted
4728 names. Before, a dotted name would always return 'not currently
4738 names. Before, a dotted name would always return 'not currently
4729 defined', because it would find the 'parent'. s.x would be found,
4739 defined', because it would find the 'parent'. s.x would be found,
4730 but since 'x' isn't defined by itself, it would get confused.
4740 but since 'x' isn't defined by itself, it would get confused.
4731 (Magic.magic_run): Fixed pickling problems reported by Ralf
4741 (Magic.magic_run): Fixed pickling problems reported by Ralf
4732 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4742 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4733 that I'd used when Mike Heeter reported similar issues at the
4743 that I'd used when Mike Heeter reported similar issues at the
4734 top-level, but now for @run. It boils down to injecting the
4744 top-level, but now for @run. It boils down to injecting the
4735 namespace where code is being executed with something that looks
4745 namespace where code is being executed with something that looks
4736 enough like a module to fool pickle.dump(). Since a pickle stores
4746 enough like a module to fool pickle.dump(). Since a pickle stores
4737 a named reference to the importing module, we need this for
4747 a named reference to the importing module, we need this for
4738 pickles to save something sensible.
4748 pickles to save something sensible.
4739
4749
4740 * IPython/ipmaker.py (make_IPython): added an autocall option.
4750 * IPython/ipmaker.py (make_IPython): added an autocall option.
4741
4751
4742 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4752 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4743 the auto-eval code. Now autocalling is an option, and the code is
4753 the auto-eval code. Now autocalling is an option, and the code is
4744 also vastly safer. There is no more eval() involved at all.
4754 also vastly safer. There is no more eval() involved at all.
4745
4755
4746 2003-03-01 Fernando Perez <fperez@colorado.edu>
4756 2003-03-01 Fernando Perez <fperez@colorado.edu>
4747
4757
4748 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4758 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4749 dict with named keys instead of a tuple.
4759 dict with named keys instead of a tuple.
4750
4760
4751 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4761 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4752
4762
4753 * setup.py (make_shortcut): Fixed message about directories
4763 * setup.py (make_shortcut): Fixed message about directories
4754 created during Windows installation (the directories were ok, just
4764 created during Windows installation (the directories were ok, just
4755 the printed message was misleading). Thanks to Chris Liechti
4765 the printed message was misleading). Thanks to Chris Liechti
4756 <cliechti-AT-gmx.net> for the heads up.
4766 <cliechti-AT-gmx.net> for the heads up.
4757
4767
4758 2003-02-21 Fernando Perez <fperez@colorado.edu>
4768 2003-02-21 Fernando Perez <fperez@colorado.edu>
4759
4769
4760 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4770 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4761 of ValueError exception when checking for auto-execution. This
4771 of ValueError exception when checking for auto-execution. This
4762 one is raised by things like Numeric arrays arr.flat when the
4772 one is raised by things like Numeric arrays arr.flat when the
4763 array is non-contiguous.
4773 array is non-contiguous.
4764
4774
4765 2003-01-31 Fernando Perez <fperez@colorado.edu>
4775 2003-01-31 Fernando Perez <fperez@colorado.edu>
4766
4776
4767 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4777 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4768 not return any value at all (even though the command would get
4778 not return any value at all (even though the command would get
4769 executed).
4779 executed).
4770 (xsys): Flush stdout right after printing the command to ensure
4780 (xsys): Flush stdout right after printing the command to ensure
4771 proper ordering of commands and command output in the total
4781 proper ordering of commands and command output in the total
4772 output.
4782 output.
4773 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4783 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4774 system/getoutput as defaults. The old ones are kept for
4784 system/getoutput as defaults. The old ones are kept for
4775 compatibility reasons, so no code which uses this library needs
4785 compatibility reasons, so no code which uses this library needs
4776 changing.
4786 changing.
4777
4787
4778 2003-01-27 *** Released version 0.2.14
4788 2003-01-27 *** Released version 0.2.14
4779
4789
4780 2003-01-25 Fernando Perez <fperez@colorado.edu>
4790 2003-01-25 Fernando Perez <fperez@colorado.edu>
4781
4791
4782 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4792 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4783 functions defined in previous edit sessions could not be re-edited
4793 functions defined in previous edit sessions could not be re-edited
4784 (because the temp files were immediately removed). Now temp files
4794 (because the temp files were immediately removed). Now temp files
4785 are removed only at IPython's exit.
4795 are removed only at IPython's exit.
4786 (Magic.magic_run): Improved @run to perform shell-like expansions
4796 (Magic.magic_run): Improved @run to perform shell-like expansions
4787 on its arguments (~users and $VARS). With this, @run becomes more
4797 on its arguments (~users and $VARS). With this, @run becomes more
4788 like a normal command-line.
4798 like a normal command-line.
4789
4799
4790 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4800 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4791 bugs related to embedding and cleaned up that code. A fairly
4801 bugs related to embedding and cleaned up that code. A fairly
4792 important one was the impossibility to access the global namespace
4802 important one was the impossibility to access the global namespace
4793 through the embedded IPython (only local variables were visible).
4803 through the embedded IPython (only local variables were visible).
4794
4804
4795 2003-01-14 Fernando Perez <fperez@colorado.edu>
4805 2003-01-14 Fernando Perez <fperez@colorado.edu>
4796
4806
4797 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4807 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4798 auto-calling to be a bit more conservative. Now it doesn't get
4808 auto-calling to be a bit more conservative. Now it doesn't get
4799 triggered if any of '!=()<>' are in the rest of the input line, to
4809 triggered if any of '!=()<>' are in the rest of the input line, to
4800 allow comparing callables. Thanks to Alex for the heads up.
4810 allow comparing callables. Thanks to Alex for the heads up.
4801
4811
4802 2003-01-07 Fernando Perez <fperez@colorado.edu>
4812 2003-01-07 Fernando Perez <fperez@colorado.edu>
4803
4813
4804 * IPython/genutils.py (page): fixed estimation of the number of
4814 * IPython/genutils.py (page): fixed estimation of the number of
4805 lines in a string to be paged to simply count newlines. This
4815 lines in a string to be paged to simply count newlines. This
4806 prevents over-guessing due to embedded escape sequences. A better
4816 prevents over-guessing due to embedded escape sequences. A better
4807 long-term solution would involve stripping out the control chars
4817 long-term solution would involve stripping out the control chars
4808 for the count, but it's potentially so expensive I just don't
4818 for the count, but it's potentially so expensive I just don't
4809 think it's worth doing.
4819 think it's worth doing.
4810
4820
4811 2002-12-19 *** Released version 0.2.14pre50
4821 2002-12-19 *** Released version 0.2.14pre50
4812
4822
4813 2002-12-19 Fernando Perez <fperez@colorado.edu>
4823 2002-12-19 Fernando Perez <fperez@colorado.edu>
4814
4824
4815 * tools/release (version): Changed release scripts to inform
4825 * tools/release (version): Changed release scripts to inform
4816 Andrea and build a NEWS file with a list of recent changes.
4826 Andrea and build a NEWS file with a list of recent changes.
4817
4827
4818 * IPython/ColorANSI.py (__all__): changed terminal detection
4828 * IPython/ColorANSI.py (__all__): changed terminal detection
4819 code. Seems to work better for xterms without breaking
4829 code. Seems to work better for xterms without breaking
4820 konsole. Will need more testing to determine if WinXP and Mac OSX
4830 konsole. Will need more testing to determine if WinXP and Mac OSX
4821 also work ok.
4831 also work ok.
4822
4832
4823 2002-12-18 *** Released version 0.2.14pre49
4833 2002-12-18 *** Released version 0.2.14pre49
4824
4834
4825 2002-12-18 Fernando Perez <fperez@colorado.edu>
4835 2002-12-18 Fernando Perez <fperez@colorado.edu>
4826
4836
4827 * Docs: added new info about Mac OSX, from Andrea.
4837 * Docs: added new info about Mac OSX, from Andrea.
4828
4838
4829 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4839 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4830 allow direct plotting of python strings whose format is the same
4840 allow direct plotting of python strings whose format is the same
4831 of gnuplot data files.
4841 of gnuplot data files.
4832
4842
4833 2002-12-16 Fernando Perez <fperez@colorado.edu>
4843 2002-12-16 Fernando Perez <fperez@colorado.edu>
4834
4844
4835 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4845 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4836 value of exit question to be acknowledged.
4846 value of exit question to be acknowledged.
4837
4847
4838 2002-12-03 Fernando Perez <fperez@colorado.edu>
4848 2002-12-03 Fernando Perez <fperez@colorado.edu>
4839
4849
4840 * IPython/ipmaker.py: removed generators, which had been added
4850 * IPython/ipmaker.py: removed generators, which had been added
4841 by mistake in an earlier debugging run. This was causing trouble
4851 by mistake in an earlier debugging run. This was causing trouble
4842 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4852 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4843 for pointing this out.
4853 for pointing this out.
4844
4854
4845 2002-11-17 Fernando Perez <fperez@colorado.edu>
4855 2002-11-17 Fernando Perez <fperez@colorado.edu>
4846
4856
4847 * Manual: updated the Gnuplot section.
4857 * Manual: updated the Gnuplot section.
4848
4858
4849 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4859 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4850 a much better split of what goes in Runtime and what goes in
4860 a much better split of what goes in Runtime and what goes in
4851 Interactive.
4861 Interactive.
4852
4862
4853 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4863 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4854 being imported from iplib.
4864 being imported from iplib.
4855
4865
4856 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4866 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4857 for command-passing. Now the global Gnuplot instance is called
4867 for command-passing. Now the global Gnuplot instance is called
4858 'gp' instead of 'g', which was really a far too fragile and
4868 'gp' instead of 'g', which was really a far too fragile and
4859 common name.
4869 common name.
4860
4870
4861 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4871 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4862 bounding boxes generated by Gnuplot for square plots.
4872 bounding boxes generated by Gnuplot for square plots.
4863
4873
4864 * IPython/genutils.py (popkey): new function added. I should
4874 * IPython/genutils.py (popkey): new function added. I should
4865 suggest this on c.l.py as a dict method, it seems useful.
4875 suggest this on c.l.py as a dict method, it seems useful.
4866
4876
4867 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4877 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4868 to transparently handle PostScript generation. MUCH better than
4878 to transparently handle PostScript generation. MUCH better than
4869 the previous plot_eps/replot_eps (which I removed now). The code
4879 the previous plot_eps/replot_eps (which I removed now). The code
4870 is also fairly clean and well documented now (including
4880 is also fairly clean and well documented now (including
4871 docstrings).
4881 docstrings).
4872
4882
4873 2002-11-13 Fernando Perez <fperez@colorado.edu>
4883 2002-11-13 Fernando Perez <fperez@colorado.edu>
4874
4884
4875 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4885 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4876 (inconsistent with options).
4886 (inconsistent with options).
4877
4887
4878 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4888 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4879 manually disabled, I don't know why. Fixed it.
4889 manually disabled, I don't know why. Fixed it.
4880 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4890 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4881 eps output.
4891 eps output.
4882
4892
4883 2002-11-12 Fernando Perez <fperez@colorado.edu>
4893 2002-11-12 Fernando Perez <fperez@colorado.edu>
4884
4894
4885 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4895 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4886 don't propagate up to caller. Fixes crash reported by François
4896 don't propagate up to caller. Fixes crash reported by François
4887 Pinard.
4897 Pinard.
4888
4898
4889 2002-11-09 Fernando Perez <fperez@colorado.edu>
4899 2002-11-09 Fernando Perez <fperez@colorado.edu>
4890
4900
4891 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4901 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4892 history file for new users.
4902 history file for new users.
4893 (make_IPython): fixed bug where initial install would leave the
4903 (make_IPython): fixed bug where initial install would leave the
4894 user running in the .ipython dir.
4904 user running in the .ipython dir.
4895 (make_IPython): fixed bug where config dir .ipython would be
4905 (make_IPython): fixed bug where config dir .ipython would be
4896 created regardless of the given -ipythondir option. Thanks to Cory
4906 created regardless of the given -ipythondir option. Thanks to Cory
4897 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4907 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4898
4908
4899 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4909 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4900 type confirmations. Will need to use it in all of IPython's code
4910 type confirmations. Will need to use it in all of IPython's code
4901 consistently.
4911 consistently.
4902
4912
4903 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4913 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4904 context to print 31 lines instead of the default 5. This will make
4914 context to print 31 lines instead of the default 5. This will make
4905 the crash reports extremely detailed in case the problem is in
4915 the crash reports extremely detailed in case the problem is in
4906 libraries I don't have access to.
4916 libraries I don't have access to.
4907
4917
4908 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4918 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4909 line of defense' code to still crash, but giving users fair
4919 line of defense' code to still crash, but giving users fair
4910 warning. I don't want internal errors to go unreported: if there's
4920 warning. I don't want internal errors to go unreported: if there's
4911 an internal problem, IPython should crash and generate a full
4921 an internal problem, IPython should crash and generate a full
4912 report.
4922 report.
4913
4923
4914 2002-11-08 Fernando Perez <fperez@colorado.edu>
4924 2002-11-08 Fernando Perez <fperez@colorado.edu>
4915
4925
4916 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4926 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4917 otherwise uncaught exceptions which can appear if people set
4927 otherwise uncaught exceptions which can appear if people set
4918 sys.stdout to something badly broken. Thanks to a crash report
4928 sys.stdout to something badly broken. Thanks to a crash report
4919 from henni-AT-mail.brainbot.com.
4929 from henni-AT-mail.brainbot.com.
4920
4930
4921 2002-11-04 Fernando Perez <fperez@colorado.edu>
4931 2002-11-04 Fernando Perez <fperez@colorado.edu>
4922
4932
4923 * IPython/iplib.py (InteractiveShell.interact): added
4933 * IPython/iplib.py (InteractiveShell.interact): added
4924 __IPYTHON__active to the builtins. It's a flag which goes on when
4934 __IPYTHON__active to the builtins. It's a flag which goes on when
4925 the interaction starts and goes off again when it stops. This
4935 the interaction starts and goes off again when it stops. This
4926 allows embedding code to detect being inside IPython. Before this
4936 allows embedding code to detect being inside IPython. Before this
4927 was done via __IPYTHON__, but that only shows that an IPython
4937 was done via __IPYTHON__, but that only shows that an IPython
4928 instance has been created.
4938 instance has been created.
4929
4939
4930 * IPython/Magic.py (Magic.magic_env): I realized that in a
4940 * IPython/Magic.py (Magic.magic_env): I realized that in a
4931 UserDict, instance.data holds the data as a normal dict. So I
4941 UserDict, instance.data holds the data as a normal dict. So I
4932 modified @env to return os.environ.data instead of rebuilding a
4942 modified @env to return os.environ.data instead of rebuilding a
4933 dict by hand.
4943 dict by hand.
4934
4944
4935 2002-11-02 Fernando Perez <fperez@colorado.edu>
4945 2002-11-02 Fernando Perez <fperez@colorado.edu>
4936
4946
4937 * IPython/genutils.py (warn): changed so that level 1 prints no
4947 * IPython/genutils.py (warn): changed so that level 1 prints no
4938 header. Level 2 is now the default (with 'WARNING' header, as
4948 header. Level 2 is now the default (with 'WARNING' header, as
4939 before). I think I tracked all places where changes were needed in
4949 before). I think I tracked all places where changes were needed in
4940 IPython, but outside code using the old level numbering may have
4950 IPython, but outside code using the old level numbering may have
4941 broken.
4951 broken.
4942
4952
4943 * IPython/iplib.py (InteractiveShell.runcode): added this to
4953 * IPython/iplib.py (InteractiveShell.runcode): added this to
4944 handle the tracebacks in SystemExit traps correctly. The previous
4954 handle the tracebacks in SystemExit traps correctly. The previous
4945 code (through interact) was printing more of the stack than
4955 code (through interact) was printing more of the stack than
4946 necessary, showing IPython internal code to the user.
4956 necessary, showing IPython internal code to the user.
4947
4957
4948 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4958 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4949 default. Now that the default at the confirmation prompt is yes,
4959 default. Now that the default at the confirmation prompt is yes,
4950 it's not so intrusive. François' argument that ipython sessions
4960 it's not so intrusive. François' argument that ipython sessions
4951 tend to be complex enough not to lose them from an accidental C-d,
4961 tend to be complex enough not to lose them from an accidental C-d,
4952 is a valid one.
4962 is a valid one.
4953
4963
4954 * IPython/iplib.py (InteractiveShell.interact): added a
4964 * IPython/iplib.py (InteractiveShell.interact): added a
4955 showtraceback() call to the SystemExit trap, and modified the exit
4965 showtraceback() call to the SystemExit trap, and modified the exit
4956 confirmation to have yes as the default.
4966 confirmation to have yes as the default.
4957
4967
4958 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4968 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4959 this file. It's been gone from the code for a long time, this was
4969 this file. It's been gone from the code for a long time, this was
4960 simply leftover junk.
4970 simply leftover junk.
4961
4971
4962 2002-11-01 Fernando Perez <fperez@colorado.edu>
4972 2002-11-01 Fernando Perez <fperez@colorado.edu>
4963
4973
4964 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4974 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4965 added. If set, IPython now traps EOF and asks for
4975 added. If set, IPython now traps EOF and asks for
4966 confirmation. After a request by François Pinard.
4976 confirmation. After a request by François Pinard.
4967
4977
4968 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4978 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4969 of @abort, and with a new (better) mechanism for handling the
4979 of @abort, and with a new (better) mechanism for handling the
4970 exceptions.
4980 exceptions.
4971
4981
4972 2002-10-27 Fernando Perez <fperez@colorado.edu>
4982 2002-10-27 Fernando Perez <fperez@colorado.edu>
4973
4983
4974 * IPython/usage.py (__doc__): updated the --help information and
4984 * IPython/usage.py (__doc__): updated the --help information and
4975 the ipythonrc file to indicate that -log generates
4985 the ipythonrc file to indicate that -log generates
4976 ./ipython.log. Also fixed the corresponding info in @logstart.
4986 ./ipython.log. Also fixed the corresponding info in @logstart.
4977 This and several other fixes in the manuals thanks to reports by
4987 This and several other fixes in the manuals thanks to reports by
4978 François Pinard <pinard-AT-iro.umontreal.ca>.
4988 François Pinard <pinard-AT-iro.umontreal.ca>.
4979
4989
4980 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4990 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4981 refer to @logstart (instead of @log, which doesn't exist).
4991 refer to @logstart (instead of @log, which doesn't exist).
4982
4992
4983 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4993 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4984 AttributeError crash. Thanks to Christopher Armstrong
4994 AttributeError crash. Thanks to Christopher Armstrong
4985 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4995 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4986 introduced recently (in 0.2.14pre37) with the fix to the eval
4996 introduced recently (in 0.2.14pre37) with the fix to the eval
4987 problem mentioned below.
4997 problem mentioned below.
4988
4998
4989 2002-10-17 Fernando Perez <fperez@colorado.edu>
4999 2002-10-17 Fernando Perez <fperez@colorado.edu>
4990
5000
4991 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5001 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4992 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5002 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4993
5003
4994 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5004 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4995 this function to fix a problem reported by Alex Schmolck. He saw
5005 this function to fix a problem reported by Alex Schmolck. He saw
4996 it with list comprehensions and generators, which were getting
5006 it with list comprehensions and generators, which were getting
4997 called twice. The real problem was an 'eval' call in testing for
5007 called twice. The real problem was an 'eval' call in testing for
4998 automagic which was evaluating the input line silently.
5008 automagic which was evaluating the input line silently.
4999
5009
5000 This is a potentially very nasty bug, if the input has side
5010 This is a potentially very nasty bug, if the input has side
5001 effects which must not be repeated. The code is much cleaner now,
5011 effects which must not be repeated. The code is much cleaner now,
5002 without any blanket 'except' left and with a regexp test for
5012 without any blanket 'except' left and with a regexp test for
5003 actual function names.
5013 actual function names.
5004
5014
5005 But an eval remains, which I'm not fully comfortable with. I just
5015 But an eval remains, which I'm not fully comfortable with. I just
5006 don't know how to find out if an expression could be a callable in
5016 don't know how to find out if an expression could be a callable in
5007 the user's namespace without doing an eval on the string. However
5017 the user's namespace without doing an eval on the string. However
5008 that string is now much more strictly checked so that no code
5018 that string is now much more strictly checked so that no code
5009 slips by, so the eval should only happen for things that can
5019 slips by, so the eval should only happen for things that can
5010 really be only function/method names.
5020 really be only function/method names.
5011
5021
5012 2002-10-15 Fernando Perez <fperez@colorado.edu>
5022 2002-10-15 Fernando Perez <fperez@colorado.edu>
5013
5023
5014 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5024 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5015 OSX information to main manual, removed README_Mac_OSX file from
5025 OSX information to main manual, removed README_Mac_OSX file from
5016 distribution. Also updated credits for recent additions.
5026 distribution. Also updated credits for recent additions.
5017
5027
5018 2002-10-10 Fernando Perez <fperez@colorado.edu>
5028 2002-10-10 Fernando Perez <fperez@colorado.edu>
5019
5029
5020 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5030 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5021 terminal-related issues. Many thanks to Andrea Riciputi
5031 terminal-related issues. Many thanks to Andrea Riciputi
5022 <andrea.riciputi-AT-libero.it> for writing it.
5032 <andrea.riciputi-AT-libero.it> for writing it.
5023
5033
5024 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5034 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5025 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5035 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5026
5036
5027 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5037 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5028 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5038 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5029 <syver-en-AT-online.no> who both submitted patches for this problem.
5039 <syver-en-AT-online.no> who both submitted patches for this problem.
5030
5040
5031 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5041 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5032 global embedding to make sure that things don't overwrite user
5042 global embedding to make sure that things don't overwrite user
5033 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5043 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5034
5044
5035 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5045 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5036 compatibility. Thanks to Hayden Callow
5046 compatibility. Thanks to Hayden Callow
5037 <h.callow-AT-elec.canterbury.ac.nz>
5047 <h.callow-AT-elec.canterbury.ac.nz>
5038
5048
5039 2002-10-04 Fernando Perez <fperez@colorado.edu>
5049 2002-10-04 Fernando Perez <fperez@colorado.edu>
5040
5050
5041 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5051 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5042 Gnuplot.File objects.
5052 Gnuplot.File objects.
5043
5053
5044 2002-07-23 Fernando Perez <fperez@colorado.edu>
5054 2002-07-23 Fernando Perez <fperez@colorado.edu>
5045
5055
5046 * IPython/genutils.py (timing): Added timings() and timing() for
5056 * IPython/genutils.py (timing): Added timings() and timing() for
5047 quick access to the most commonly needed data, the execution
5057 quick access to the most commonly needed data, the execution
5048 times. Old timing() renamed to timings_out().
5058 times. Old timing() renamed to timings_out().
5049
5059
5050 2002-07-18 Fernando Perez <fperez@colorado.edu>
5060 2002-07-18 Fernando Perez <fperez@colorado.edu>
5051
5061
5052 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5062 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5053 bug with nested instances disrupting the parent's tab completion.
5063 bug with nested instances disrupting the parent's tab completion.
5054
5064
5055 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5065 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5056 all_completions code to begin the emacs integration.
5066 all_completions code to begin the emacs integration.
5057
5067
5058 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5068 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5059 argument to allow titling individual arrays when plotting.
5069 argument to allow titling individual arrays when plotting.
5060
5070
5061 2002-07-15 Fernando Perez <fperez@colorado.edu>
5071 2002-07-15 Fernando Perez <fperez@colorado.edu>
5062
5072
5063 * setup.py (make_shortcut): changed to retrieve the value of
5073 * setup.py (make_shortcut): changed to retrieve the value of
5064 'Program Files' directory from the registry (this value changes in
5074 'Program Files' directory from the registry (this value changes in
5065 non-english versions of Windows). Thanks to Thomas Fanslau
5075 non-english versions of Windows). Thanks to Thomas Fanslau
5066 <tfanslau-AT-gmx.de> for the report.
5076 <tfanslau-AT-gmx.de> for the report.
5067
5077
5068 2002-07-10 Fernando Perez <fperez@colorado.edu>
5078 2002-07-10 Fernando Perez <fperez@colorado.edu>
5069
5079
5070 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5080 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5071 a bug in pdb, which crashes if a line with only whitespace is
5081 a bug in pdb, which crashes if a line with only whitespace is
5072 entered. Bug report submitted to sourceforge.
5082 entered. Bug report submitted to sourceforge.
5073
5083
5074 2002-07-09 Fernando Perez <fperez@colorado.edu>
5084 2002-07-09 Fernando Perez <fperez@colorado.edu>
5075
5085
5076 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5086 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5077 reporting exceptions (it's a bug in inspect.py, I just set a
5087 reporting exceptions (it's a bug in inspect.py, I just set a
5078 workaround).
5088 workaround).
5079
5089
5080 2002-07-08 Fernando Perez <fperez@colorado.edu>
5090 2002-07-08 Fernando Perez <fperez@colorado.edu>
5081
5091
5082 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5092 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5083 __IPYTHON__ in __builtins__ to show up in user_ns.
5093 __IPYTHON__ in __builtins__ to show up in user_ns.
5084
5094
5085 2002-07-03 Fernando Perez <fperez@colorado.edu>
5095 2002-07-03 Fernando Perez <fperez@colorado.edu>
5086
5096
5087 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5097 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5088 name from @gp_set_instance to @gp_set_default.
5098 name from @gp_set_instance to @gp_set_default.
5089
5099
5090 * IPython/ipmaker.py (make_IPython): default editor value set to
5100 * IPython/ipmaker.py (make_IPython): default editor value set to
5091 '0' (a string), to match the rc file. Otherwise will crash when
5101 '0' (a string), to match the rc file. Otherwise will crash when
5092 .strip() is called on it.
5102 .strip() is called on it.
5093
5103
5094
5104
5095 2002-06-28 Fernando Perez <fperez@colorado.edu>
5105 2002-06-28 Fernando Perez <fperez@colorado.edu>
5096
5106
5097 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5107 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5098 of files in current directory when a file is executed via
5108 of files in current directory when a file is executed via
5099 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5109 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5100
5110
5101 * setup.py (manfiles): fix for rpm builds, submitted by RA
5111 * setup.py (manfiles): fix for rpm builds, submitted by RA
5102 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5112 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5103
5113
5104 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5114 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5105 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5115 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5106 string!). A. Schmolck caught this one.
5116 string!). A. Schmolck caught this one.
5107
5117
5108 2002-06-27 Fernando Perez <fperez@colorado.edu>
5118 2002-06-27 Fernando Perez <fperez@colorado.edu>
5109
5119
5110 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5120 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5111 defined files at the cmd line. __name__ wasn't being set to
5121 defined files at the cmd line. __name__ wasn't being set to
5112 __main__.
5122 __main__.
5113
5123
5114 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5124 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5115 regular lists and tuples besides Numeric arrays.
5125 regular lists and tuples besides Numeric arrays.
5116
5126
5117 * IPython/Prompts.py (CachedOutput.__call__): Added output
5127 * IPython/Prompts.py (CachedOutput.__call__): Added output
5118 supression for input ending with ';'. Similar to Mathematica and
5128 supression for input ending with ';'. Similar to Mathematica and
5119 Matlab. The _* vars and Out[] list are still updated, just like
5129 Matlab. The _* vars and Out[] list are still updated, just like
5120 Mathematica behaves.
5130 Mathematica behaves.
5121
5131
5122 2002-06-25 Fernando Perez <fperez@colorado.edu>
5132 2002-06-25 Fernando Perez <fperez@colorado.edu>
5123
5133
5124 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5134 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5125 .ini extensions for profiels under Windows.
5135 .ini extensions for profiels under Windows.
5126
5136
5127 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5137 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5128 string form. Fix contributed by Alexander Schmolck
5138 string form. Fix contributed by Alexander Schmolck
5129 <a.schmolck-AT-gmx.net>
5139 <a.schmolck-AT-gmx.net>
5130
5140
5131 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5141 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5132 pre-configured Gnuplot instance.
5142 pre-configured Gnuplot instance.
5133
5143
5134 2002-06-21 Fernando Perez <fperez@colorado.edu>
5144 2002-06-21 Fernando Perez <fperez@colorado.edu>
5135
5145
5136 * IPython/numutils.py (exp_safe): new function, works around the
5146 * IPython/numutils.py (exp_safe): new function, works around the
5137 underflow problems in Numeric.
5147 underflow problems in Numeric.
5138 (log2): New fn. Safe log in base 2: returns exact integer answer
5148 (log2): New fn. Safe log in base 2: returns exact integer answer
5139 for exact integer powers of 2.
5149 for exact integer powers of 2.
5140
5150
5141 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5151 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5142 properly.
5152 properly.
5143
5153
5144 2002-06-20 Fernando Perez <fperez@colorado.edu>
5154 2002-06-20 Fernando Perez <fperez@colorado.edu>
5145
5155
5146 * IPython/genutils.py (timing): new function like
5156 * IPython/genutils.py (timing): new function like
5147 Mathematica's. Similar to time_test, but returns more info.
5157 Mathematica's. Similar to time_test, but returns more info.
5148
5158
5149 2002-06-18 Fernando Perez <fperez@colorado.edu>
5159 2002-06-18 Fernando Perez <fperez@colorado.edu>
5150
5160
5151 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5161 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5152 according to Mike Heeter's suggestions.
5162 according to Mike Heeter's suggestions.
5153
5163
5154 2002-06-16 Fernando Perez <fperez@colorado.edu>
5164 2002-06-16 Fernando Perez <fperez@colorado.edu>
5155
5165
5156 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5166 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5157 system. GnuplotMagic is gone as a user-directory option. New files
5167 system. GnuplotMagic is gone as a user-directory option. New files
5158 make it easier to use all the gnuplot stuff both from external
5168 make it easier to use all the gnuplot stuff both from external
5159 programs as well as from IPython. Had to rewrite part of
5169 programs as well as from IPython. Had to rewrite part of
5160 hardcopy() b/c of a strange bug: often the ps files simply don't
5170 hardcopy() b/c of a strange bug: often the ps files simply don't
5161 get created, and require a repeat of the command (often several
5171 get created, and require a repeat of the command (often several
5162 times).
5172 times).
5163
5173
5164 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5174 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5165 resolve output channel at call time, so that if sys.stderr has
5175 resolve output channel at call time, so that if sys.stderr has
5166 been redirected by user this gets honored.
5176 been redirected by user this gets honored.
5167
5177
5168 2002-06-13 Fernando Perez <fperez@colorado.edu>
5178 2002-06-13 Fernando Perez <fperez@colorado.edu>
5169
5179
5170 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5180 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5171 IPShell. Kept a copy with the old names to avoid breaking people's
5181 IPShell. Kept a copy with the old names to avoid breaking people's
5172 embedded code.
5182 embedded code.
5173
5183
5174 * IPython/ipython: simplified it to the bare minimum after
5184 * IPython/ipython: simplified it to the bare minimum after
5175 Holger's suggestions. Added info about how to use it in
5185 Holger's suggestions. Added info about how to use it in
5176 PYTHONSTARTUP.
5186 PYTHONSTARTUP.
5177
5187
5178 * IPython/Shell.py (IPythonShell): changed the options passing
5188 * IPython/Shell.py (IPythonShell): changed the options passing
5179 from a string with funky %s replacements to a straight list. Maybe
5189 from a string with funky %s replacements to a straight list. Maybe
5180 a bit more typing, but it follows sys.argv conventions, so there's
5190 a bit more typing, but it follows sys.argv conventions, so there's
5181 less special-casing to remember.
5191 less special-casing to remember.
5182
5192
5183 2002-06-12 Fernando Perez <fperez@colorado.edu>
5193 2002-06-12 Fernando Perez <fperez@colorado.edu>
5184
5194
5185 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5195 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5186 command. Thanks to a suggestion by Mike Heeter.
5196 command. Thanks to a suggestion by Mike Heeter.
5187 (Magic.magic_pfile): added behavior to look at filenames if given
5197 (Magic.magic_pfile): added behavior to look at filenames if given
5188 arg is not a defined object.
5198 arg is not a defined object.
5189 (Magic.magic_save): New @save function to save code snippets. Also
5199 (Magic.magic_save): New @save function to save code snippets. Also
5190 a Mike Heeter idea.
5200 a Mike Heeter idea.
5191
5201
5192 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5202 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5193 plot() and replot(). Much more convenient now, especially for
5203 plot() and replot(). Much more convenient now, especially for
5194 interactive use.
5204 interactive use.
5195
5205
5196 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5206 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5197 filenames.
5207 filenames.
5198
5208
5199 2002-06-02 Fernando Perez <fperez@colorado.edu>
5209 2002-06-02 Fernando Perez <fperez@colorado.edu>
5200
5210
5201 * IPython/Struct.py (Struct.__init__): modified to admit
5211 * IPython/Struct.py (Struct.__init__): modified to admit
5202 initialization via another struct.
5212 initialization via another struct.
5203
5213
5204 * IPython/genutils.py (SystemExec.__init__): New stateful
5214 * IPython/genutils.py (SystemExec.__init__): New stateful
5205 interface to xsys and bq. Useful for writing system scripts.
5215 interface to xsys and bq. Useful for writing system scripts.
5206
5216
5207 2002-05-30 Fernando Perez <fperez@colorado.edu>
5217 2002-05-30 Fernando Perez <fperez@colorado.edu>
5208
5218
5209 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5219 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5210 documents. This will make the user download smaller (it's getting
5220 documents. This will make the user download smaller (it's getting
5211 too big).
5221 too big).
5212
5222
5213 2002-05-29 Fernando Perez <fperez@colorado.edu>
5223 2002-05-29 Fernando Perez <fperez@colorado.edu>
5214
5224
5215 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5225 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5216 fix problems with shelve and pickle. Seems to work, but I don't
5226 fix problems with shelve and pickle. Seems to work, but I don't
5217 know if corner cases break it. Thanks to Mike Heeter
5227 know if corner cases break it. Thanks to Mike Heeter
5218 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5228 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5219
5229
5220 2002-05-24 Fernando Perez <fperez@colorado.edu>
5230 2002-05-24 Fernando Perez <fperez@colorado.edu>
5221
5231
5222 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5232 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5223 macros having broken.
5233 macros having broken.
5224
5234
5225 2002-05-21 Fernando Perez <fperez@colorado.edu>
5235 2002-05-21 Fernando Perez <fperez@colorado.edu>
5226
5236
5227 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5237 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5228 introduced logging bug: all history before logging started was
5238 introduced logging bug: all history before logging started was
5229 being written one character per line! This came from the redesign
5239 being written one character per line! This came from the redesign
5230 of the input history as a special list which slices to strings,
5240 of the input history as a special list which slices to strings,
5231 not to lists.
5241 not to lists.
5232
5242
5233 2002-05-20 Fernando Perez <fperez@colorado.edu>
5243 2002-05-20 Fernando Perez <fperez@colorado.edu>
5234
5244
5235 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5245 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5236 be an attribute of all classes in this module. The design of these
5246 be an attribute of all classes in this module. The design of these
5237 classes needs some serious overhauling.
5247 classes needs some serious overhauling.
5238
5248
5239 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5249 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5240 which was ignoring '_' in option names.
5250 which was ignoring '_' in option names.
5241
5251
5242 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5252 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5243 'Verbose_novars' to 'Context' and made it the new default. It's a
5253 'Verbose_novars' to 'Context' and made it the new default. It's a
5244 bit more readable and also safer than verbose.
5254 bit more readable and also safer than verbose.
5245
5255
5246 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5256 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5247 triple-quoted strings.
5257 triple-quoted strings.
5248
5258
5249 * IPython/OInspect.py (__all__): new module exposing the object
5259 * IPython/OInspect.py (__all__): new module exposing the object
5250 introspection facilities. Now the corresponding magics are dummy
5260 introspection facilities. Now the corresponding magics are dummy
5251 wrappers around this. Having this module will make it much easier
5261 wrappers around this. Having this module will make it much easier
5252 to put these functions into our modified pdb.
5262 to put these functions into our modified pdb.
5253 This new object inspector system uses the new colorizing module,
5263 This new object inspector system uses the new colorizing module,
5254 so source code and other things are nicely syntax highlighted.
5264 so source code and other things are nicely syntax highlighted.
5255
5265
5256 2002-05-18 Fernando Perez <fperez@colorado.edu>
5266 2002-05-18 Fernando Perez <fperez@colorado.edu>
5257
5267
5258 * IPython/ColorANSI.py: Split the coloring tools into a separate
5268 * IPython/ColorANSI.py: Split the coloring tools into a separate
5259 module so I can use them in other code easier (they were part of
5269 module so I can use them in other code easier (they were part of
5260 ultraTB).
5270 ultraTB).
5261
5271
5262 2002-05-17 Fernando Perez <fperez@colorado.edu>
5272 2002-05-17 Fernando Perez <fperez@colorado.edu>
5263
5273
5264 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5274 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5265 fixed it to set the global 'g' also to the called instance, as
5275 fixed it to set the global 'g' also to the called instance, as
5266 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5276 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5267 user's 'g' variables).
5277 user's 'g' variables).
5268
5278
5269 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5279 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5270 global variables (aliases to _ih,_oh) so that users which expect
5280 global variables (aliases to _ih,_oh) so that users which expect
5271 In[5] or Out[7] to work aren't unpleasantly surprised.
5281 In[5] or Out[7] to work aren't unpleasantly surprised.
5272 (InputList.__getslice__): new class to allow executing slices of
5282 (InputList.__getslice__): new class to allow executing slices of
5273 input history directly. Very simple class, complements the use of
5283 input history directly. Very simple class, complements the use of
5274 macros.
5284 macros.
5275
5285
5276 2002-05-16 Fernando Perez <fperez@colorado.edu>
5286 2002-05-16 Fernando Perez <fperez@colorado.edu>
5277
5287
5278 * setup.py (docdirbase): make doc directory be just doc/IPython
5288 * setup.py (docdirbase): make doc directory be just doc/IPython
5279 without version numbers, it will reduce clutter for users.
5289 without version numbers, it will reduce clutter for users.
5280
5290
5281 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5291 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5282 execfile call to prevent possible memory leak. See for details:
5292 execfile call to prevent possible memory leak. See for details:
5283 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5293 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5284
5294
5285 2002-05-15 Fernando Perez <fperez@colorado.edu>
5295 2002-05-15 Fernando Perez <fperez@colorado.edu>
5286
5296
5287 * IPython/Magic.py (Magic.magic_psource): made the object
5297 * IPython/Magic.py (Magic.magic_psource): made the object
5288 introspection names be more standard: pdoc, pdef, pfile and
5298 introspection names be more standard: pdoc, pdef, pfile and
5289 psource. They all print/page their output, and it makes
5299 psource. They all print/page their output, and it makes
5290 remembering them easier. Kept old names for compatibility as
5300 remembering them easier. Kept old names for compatibility as
5291 aliases.
5301 aliases.
5292
5302
5293 2002-05-14 Fernando Perez <fperez@colorado.edu>
5303 2002-05-14 Fernando Perez <fperez@colorado.edu>
5294
5304
5295 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5305 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5296 what the mouse problem was. The trick is to use gnuplot with temp
5306 what the mouse problem was. The trick is to use gnuplot with temp
5297 files and NOT with pipes (for data communication), because having
5307 files and NOT with pipes (for data communication), because having
5298 both pipes and the mouse on is bad news.
5308 both pipes and the mouse on is bad news.
5299
5309
5300 2002-05-13 Fernando Perez <fperez@colorado.edu>
5310 2002-05-13 Fernando Perez <fperez@colorado.edu>
5301
5311
5302 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5312 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5303 bug. Information would be reported about builtins even when
5313 bug. Information would be reported about builtins even when
5304 user-defined functions overrode them.
5314 user-defined functions overrode them.
5305
5315
5306 2002-05-11 Fernando Perez <fperez@colorado.edu>
5316 2002-05-11 Fernando Perez <fperez@colorado.edu>
5307
5317
5308 * IPython/__init__.py (__all__): removed FlexCompleter from
5318 * IPython/__init__.py (__all__): removed FlexCompleter from
5309 __all__ so that things don't fail in platforms without readline.
5319 __all__ so that things don't fail in platforms without readline.
5310
5320
5311 2002-05-10 Fernando Perez <fperez@colorado.edu>
5321 2002-05-10 Fernando Perez <fperez@colorado.edu>
5312
5322
5313 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5323 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5314 it requires Numeric, effectively making Numeric a dependency for
5324 it requires Numeric, effectively making Numeric a dependency for
5315 IPython.
5325 IPython.
5316
5326
5317 * Released 0.2.13
5327 * Released 0.2.13
5318
5328
5319 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5329 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5320 profiler interface. Now all the major options from the profiler
5330 profiler interface. Now all the major options from the profiler
5321 module are directly supported in IPython, both for single
5331 module are directly supported in IPython, both for single
5322 expressions (@prun) and for full programs (@run -p).
5332 expressions (@prun) and for full programs (@run -p).
5323
5333
5324 2002-05-09 Fernando Perez <fperez@colorado.edu>
5334 2002-05-09 Fernando Perez <fperez@colorado.edu>
5325
5335
5326 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5336 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5327 magic properly formatted for screen.
5337 magic properly formatted for screen.
5328
5338
5329 * setup.py (make_shortcut): Changed things to put pdf version in
5339 * setup.py (make_shortcut): Changed things to put pdf version in
5330 doc/ instead of doc/manual (had to change lyxport a bit).
5340 doc/ instead of doc/manual (had to change lyxport a bit).
5331
5341
5332 * IPython/Magic.py (Profile.string_stats): made profile runs go
5342 * IPython/Magic.py (Profile.string_stats): made profile runs go
5333 through pager (they are long and a pager allows searching, saving,
5343 through pager (they are long and a pager allows searching, saving,
5334 etc.)
5344 etc.)
5335
5345
5336 2002-05-08 Fernando Perez <fperez@colorado.edu>
5346 2002-05-08 Fernando Perez <fperez@colorado.edu>
5337
5347
5338 * Released 0.2.12
5348 * Released 0.2.12
5339
5349
5340 2002-05-06 Fernando Perez <fperez@colorado.edu>
5350 2002-05-06 Fernando Perez <fperez@colorado.edu>
5341
5351
5342 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5352 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5343 introduced); 'hist n1 n2' was broken.
5353 introduced); 'hist n1 n2' was broken.
5344 (Magic.magic_pdb): added optional on/off arguments to @pdb
5354 (Magic.magic_pdb): added optional on/off arguments to @pdb
5345 (Magic.magic_run): added option -i to @run, which executes code in
5355 (Magic.magic_run): added option -i to @run, which executes code in
5346 the IPython namespace instead of a clean one. Also added @irun as
5356 the IPython namespace instead of a clean one. Also added @irun as
5347 an alias to @run -i.
5357 an alias to @run -i.
5348
5358
5349 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5359 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5350 fixed (it didn't really do anything, the namespaces were wrong).
5360 fixed (it didn't really do anything, the namespaces were wrong).
5351
5361
5352 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5362 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5353
5363
5354 * IPython/__init__.py (__all__): Fixed package namespace, now
5364 * IPython/__init__.py (__all__): Fixed package namespace, now
5355 'import IPython' does give access to IPython.<all> as
5365 'import IPython' does give access to IPython.<all> as
5356 expected. Also renamed __release__ to Release.
5366 expected. Also renamed __release__ to Release.
5357
5367
5358 * IPython/Debugger.py (__license__): created new Pdb class which
5368 * IPython/Debugger.py (__license__): created new Pdb class which
5359 functions like a drop-in for the normal pdb.Pdb but does NOT
5369 functions like a drop-in for the normal pdb.Pdb but does NOT
5360 import readline by default. This way it doesn't muck up IPython's
5370 import readline by default. This way it doesn't muck up IPython's
5361 readline handling, and now tab-completion finally works in the
5371 readline handling, and now tab-completion finally works in the
5362 debugger -- sort of. It completes things globally visible, but the
5372 debugger -- sort of. It completes things globally visible, but the
5363 completer doesn't track the stack as pdb walks it. That's a bit
5373 completer doesn't track the stack as pdb walks it. That's a bit
5364 tricky, and I'll have to implement it later.
5374 tricky, and I'll have to implement it later.
5365
5375
5366 2002-05-05 Fernando Perez <fperez@colorado.edu>
5376 2002-05-05 Fernando Perez <fperez@colorado.edu>
5367
5377
5368 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5378 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5369 magic docstrings when printed via ? (explicit \'s were being
5379 magic docstrings when printed via ? (explicit \'s were being
5370 printed).
5380 printed).
5371
5381
5372 * IPython/ipmaker.py (make_IPython): fixed namespace
5382 * IPython/ipmaker.py (make_IPython): fixed namespace
5373 identification bug. Now variables loaded via logs or command-line
5383 identification bug. Now variables loaded via logs or command-line
5374 files are recognized in the interactive namespace by @who.
5384 files are recognized in the interactive namespace by @who.
5375
5385
5376 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5386 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5377 log replay system stemming from the string form of Structs.
5387 log replay system stemming from the string form of Structs.
5378
5388
5379 * IPython/Magic.py (Macro.__init__): improved macros to properly
5389 * IPython/Magic.py (Macro.__init__): improved macros to properly
5380 handle magic commands in them.
5390 handle magic commands in them.
5381 (Magic.magic_logstart): usernames are now expanded so 'logstart
5391 (Magic.magic_logstart): usernames are now expanded so 'logstart
5382 ~/mylog' now works.
5392 ~/mylog' now works.
5383
5393
5384 * IPython/iplib.py (complete): fixed bug where paths starting with
5394 * IPython/iplib.py (complete): fixed bug where paths starting with
5385 '/' would be completed as magic names.
5395 '/' would be completed as magic names.
5386
5396
5387 2002-05-04 Fernando Perez <fperez@colorado.edu>
5397 2002-05-04 Fernando Perez <fperez@colorado.edu>
5388
5398
5389 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5399 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5390 allow running full programs under the profiler's control.
5400 allow running full programs under the profiler's control.
5391
5401
5392 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5402 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5393 mode to report exceptions verbosely but without formatting
5403 mode to report exceptions verbosely but without formatting
5394 variables. This addresses the issue of ipython 'freezing' (it's
5404 variables. This addresses the issue of ipython 'freezing' (it's
5395 not frozen, but caught in an expensive formatting loop) when huge
5405 not frozen, but caught in an expensive formatting loop) when huge
5396 variables are in the context of an exception.
5406 variables are in the context of an exception.
5397 (VerboseTB.text): Added '--->' markers at line where exception was
5407 (VerboseTB.text): Added '--->' markers at line where exception was
5398 triggered. Much clearer to read, especially in NoColor modes.
5408 triggered. Much clearer to read, especially in NoColor modes.
5399
5409
5400 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5410 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5401 implemented in reverse when changing to the new parse_options().
5411 implemented in reverse when changing to the new parse_options().
5402
5412
5403 2002-05-03 Fernando Perez <fperez@colorado.edu>
5413 2002-05-03 Fernando Perez <fperez@colorado.edu>
5404
5414
5405 * IPython/Magic.py (Magic.parse_options): new function so that
5415 * IPython/Magic.py (Magic.parse_options): new function so that
5406 magics can parse options easier.
5416 magics can parse options easier.
5407 (Magic.magic_prun): new function similar to profile.run(),
5417 (Magic.magic_prun): new function similar to profile.run(),
5408 suggested by Chris Hart.
5418 suggested by Chris Hart.
5409 (Magic.magic_cd): fixed behavior so that it only changes if
5419 (Magic.magic_cd): fixed behavior so that it only changes if
5410 directory actually is in history.
5420 directory actually is in history.
5411
5421
5412 * IPython/usage.py (__doc__): added information about potential
5422 * IPython/usage.py (__doc__): added information about potential
5413 slowness of Verbose exception mode when there are huge data
5423 slowness of Verbose exception mode when there are huge data
5414 structures to be formatted (thanks to Archie Paulson).
5424 structures to be formatted (thanks to Archie Paulson).
5415
5425
5416 * IPython/ipmaker.py (make_IPython): Changed default logging
5426 * IPython/ipmaker.py (make_IPython): Changed default logging
5417 (when simply called with -log) to use curr_dir/ipython.log in
5427 (when simply called with -log) to use curr_dir/ipython.log in
5418 rotate mode. Fixed crash which was occuring with -log before
5428 rotate mode. Fixed crash which was occuring with -log before
5419 (thanks to Jim Boyle).
5429 (thanks to Jim Boyle).
5420
5430
5421 2002-05-01 Fernando Perez <fperez@colorado.edu>
5431 2002-05-01 Fernando Perez <fperez@colorado.edu>
5422
5432
5423 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5433 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5424 was nasty -- though somewhat of a corner case).
5434 was nasty -- though somewhat of a corner case).
5425
5435
5426 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5436 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5427 text (was a bug).
5437 text (was a bug).
5428
5438
5429 2002-04-30 Fernando Perez <fperez@colorado.edu>
5439 2002-04-30 Fernando Perez <fperez@colorado.edu>
5430
5440
5431 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5441 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5432 a print after ^D or ^C from the user so that the In[] prompt
5442 a print after ^D or ^C from the user so that the In[] prompt
5433 doesn't over-run the gnuplot one.
5443 doesn't over-run the gnuplot one.
5434
5444
5435 2002-04-29 Fernando Perez <fperez@colorado.edu>
5445 2002-04-29 Fernando Perez <fperez@colorado.edu>
5436
5446
5437 * Released 0.2.10
5447 * Released 0.2.10
5438
5448
5439 * IPython/__release__.py (version): get date dynamically.
5449 * IPython/__release__.py (version): get date dynamically.
5440
5450
5441 * Misc. documentation updates thanks to Arnd's comments. Also ran
5451 * Misc. documentation updates thanks to Arnd's comments. Also ran
5442 a full spellcheck on the manual (hadn't been done in a while).
5452 a full spellcheck on the manual (hadn't been done in a while).
5443
5453
5444 2002-04-27 Fernando Perez <fperez@colorado.edu>
5454 2002-04-27 Fernando Perez <fperez@colorado.edu>
5445
5455
5446 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5456 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5447 starting a log in mid-session would reset the input history list.
5457 starting a log in mid-session would reset the input history list.
5448
5458
5449 2002-04-26 Fernando Perez <fperez@colorado.edu>
5459 2002-04-26 Fernando Perez <fperez@colorado.edu>
5450
5460
5451 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5461 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5452 all files were being included in an update. Now anything in
5462 all files were being included in an update. Now anything in
5453 UserConfig that matches [A-Za-z]*.py will go (this excludes
5463 UserConfig that matches [A-Za-z]*.py will go (this excludes
5454 __init__.py)
5464 __init__.py)
5455
5465
5456 2002-04-25 Fernando Perez <fperez@colorado.edu>
5466 2002-04-25 Fernando Perez <fperez@colorado.edu>
5457
5467
5458 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5468 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5459 to __builtins__ so that any form of embedded or imported code can
5469 to __builtins__ so that any form of embedded or imported code can
5460 test for being inside IPython.
5470 test for being inside IPython.
5461
5471
5462 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5472 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5463 changed to GnuplotMagic because it's now an importable module,
5473 changed to GnuplotMagic because it's now an importable module,
5464 this makes the name follow that of the standard Gnuplot module.
5474 this makes the name follow that of the standard Gnuplot module.
5465 GnuplotMagic can now be loaded at any time in mid-session.
5475 GnuplotMagic can now be loaded at any time in mid-session.
5466
5476
5467 2002-04-24 Fernando Perez <fperez@colorado.edu>
5477 2002-04-24 Fernando Perez <fperez@colorado.edu>
5468
5478
5469 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5479 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5470 the globals (IPython has its own namespace) and the
5480 the globals (IPython has its own namespace) and the
5471 PhysicalQuantity stuff is much better anyway.
5481 PhysicalQuantity stuff is much better anyway.
5472
5482
5473 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5483 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5474 embedding example to standard user directory for
5484 embedding example to standard user directory for
5475 distribution. Also put it in the manual.
5485 distribution. Also put it in the manual.
5476
5486
5477 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5487 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5478 instance as first argument (so it doesn't rely on some obscure
5488 instance as first argument (so it doesn't rely on some obscure
5479 hidden global).
5489 hidden global).
5480
5490
5481 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5491 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5482 delimiters. While it prevents ().TAB from working, it allows
5492 delimiters. While it prevents ().TAB from working, it allows
5483 completions in open (... expressions. This is by far a more common
5493 completions in open (... expressions. This is by far a more common
5484 case.
5494 case.
5485
5495
5486 2002-04-23 Fernando Perez <fperez@colorado.edu>
5496 2002-04-23 Fernando Perez <fperez@colorado.edu>
5487
5497
5488 * IPython/Extensions/InterpreterPasteInput.py: new
5498 * IPython/Extensions/InterpreterPasteInput.py: new
5489 syntax-processing module for pasting lines with >>> or ... at the
5499 syntax-processing module for pasting lines with >>> or ... at the
5490 start.
5500 start.
5491
5501
5492 * IPython/Extensions/PhysicalQ_Interactive.py
5502 * IPython/Extensions/PhysicalQ_Interactive.py
5493 (PhysicalQuantityInteractive.__int__): fixed to work with either
5503 (PhysicalQuantityInteractive.__int__): fixed to work with either
5494 Numeric or math.
5504 Numeric or math.
5495
5505
5496 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5506 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5497 provided profiles. Now we have:
5507 provided profiles. Now we have:
5498 -math -> math module as * and cmath with its own namespace.
5508 -math -> math module as * and cmath with its own namespace.
5499 -numeric -> Numeric as *, plus gnuplot & grace
5509 -numeric -> Numeric as *, plus gnuplot & grace
5500 -physics -> same as before
5510 -physics -> same as before
5501
5511
5502 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5512 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5503 user-defined magics wouldn't be found by @magic if they were
5513 user-defined magics wouldn't be found by @magic if they were
5504 defined as class methods. Also cleaned up the namespace search
5514 defined as class methods. Also cleaned up the namespace search
5505 logic and the string building (to use %s instead of many repeated
5515 logic and the string building (to use %s instead of many repeated
5506 string adds).
5516 string adds).
5507
5517
5508 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5518 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5509 of user-defined magics to operate with class methods (cleaner, in
5519 of user-defined magics to operate with class methods (cleaner, in
5510 line with the gnuplot code).
5520 line with the gnuplot code).
5511
5521
5512 2002-04-22 Fernando Perez <fperez@colorado.edu>
5522 2002-04-22 Fernando Perez <fperez@colorado.edu>
5513
5523
5514 * setup.py: updated dependency list so that manual is updated when
5524 * setup.py: updated dependency list so that manual is updated when
5515 all included files change.
5525 all included files change.
5516
5526
5517 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5527 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5518 the delimiter removal option (the fix is ugly right now).
5528 the delimiter removal option (the fix is ugly right now).
5519
5529
5520 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5530 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5521 all of the math profile (quicker loading, no conflict between
5531 all of the math profile (quicker loading, no conflict between
5522 g-9.8 and g-gnuplot).
5532 g-9.8 and g-gnuplot).
5523
5533
5524 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5534 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5525 name of post-mortem files to IPython_crash_report.txt.
5535 name of post-mortem files to IPython_crash_report.txt.
5526
5536
5527 * Cleanup/update of the docs. Added all the new readline info and
5537 * Cleanup/update of the docs. Added all the new readline info and
5528 formatted all lists as 'real lists'.
5538 formatted all lists as 'real lists'.
5529
5539
5530 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5540 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5531 tab-completion options, since the full readline parse_and_bind is
5541 tab-completion options, since the full readline parse_and_bind is
5532 now accessible.
5542 now accessible.
5533
5543
5534 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5544 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5535 handling of readline options. Now users can specify any string to
5545 handling of readline options. Now users can specify any string to
5536 be passed to parse_and_bind(), as well as the delimiters to be
5546 be passed to parse_and_bind(), as well as the delimiters to be
5537 removed.
5547 removed.
5538 (InteractiveShell.__init__): Added __name__ to the global
5548 (InteractiveShell.__init__): Added __name__ to the global
5539 namespace so that things like Itpl which rely on its existence
5549 namespace so that things like Itpl which rely on its existence
5540 don't crash.
5550 don't crash.
5541 (InteractiveShell._prefilter): Defined the default with a _ so
5551 (InteractiveShell._prefilter): Defined the default with a _ so
5542 that prefilter() is easier to override, while the default one
5552 that prefilter() is easier to override, while the default one
5543 remains available.
5553 remains available.
5544
5554
5545 2002-04-18 Fernando Perez <fperez@colorado.edu>
5555 2002-04-18 Fernando Perez <fperez@colorado.edu>
5546
5556
5547 * Added information about pdb in the docs.
5557 * Added information about pdb in the docs.
5548
5558
5549 2002-04-17 Fernando Perez <fperez@colorado.edu>
5559 2002-04-17 Fernando Perez <fperez@colorado.edu>
5550
5560
5551 * IPython/ipmaker.py (make_IPython): added rc_override option to
5561 * IPython/ipmaker.py (make_IPython): added rc_override option to
5552 allow passing config options at creation time which may override
5562 allow passing config options at creation time which may override
5553 anything set in the config files or command line. This is
5563 anything set in the config files or command line. This is
5554 particularly useful for configuring embedded instances.
5564 particularly useful for configuring embedded instances.
5555
5565
5556 2002-04-15 Fernando Perez <fperez@colorado.edu>
5566 2002-04-15 Fernando Perez <fperez@colorado.edu>
5557
5567
5558 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5568 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5559 crash embedded instances because of the input cache falling out of
5569 crash embedded instances because of the input cache falling out of
5560 sync with the output counter.
5570 sync with the output counter.
5561
5571
5562 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5572 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5563 mode which calls pdb after an uncaught exception in IPython itself.
5573 mode which calls pdb after an uncaught exception in IPython itself.
5564
5574
5565 2002-04-14 Fernando Perez <fperez@colorado.edu>
5575 2002-04-14 Fernando Perez <fperez@colorado.edu>
5566
5576
5567 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5577 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5568 readline, fix it back after each call.
5578 readline, fix it back after each call.
5569
5579
5570 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5580 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5571 method to force all access via __call__(), which guarantees that
5581 method to force all access via __call__(), which guarantees that
5572 traceback references are properly deleted.
5582 traceback references are properly deleted.
5573
5583
5574 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5584 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5575 improve printing when pprint is in use.
5585 improve printing when pprint is in use.
5576
5586
5577 2002-04-13 Fernando Perez <fperez@colorado.edu>
5587 2002-04-13 Fernando Perez <fperez@colorado.edu>
5578
5588
5579 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5589 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5580 exceptions aren't caught anymore. If the user triggers one, he
5590 exceptions aren't caught anymore. If the user triggers one, he
5581 should know why he's doing it and it should go all the way up,
5591 should know why he's doing it and it should go all the way up,
5582 just like any other exception. So now @abort will fully kill the
5592 just like any other exception. So now @abort will fully kill the
5583 embedded interpreter and the embedding code (unless that happens
5593 embedded interpreter and the embedding code (unless that happens
5584 to catch SystemExit).
5594 to catch SystemExit).
5585
5595
5586 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5596 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5587 and a debugger() method to invoke the interactive pdb debugger
5597 and a debugger() method to invoke the interactive pdb debugger
5588 after printing exception information. Also added the corresponding
5598 after printing exception information. Also added the corresponding
5589 -pdb option and @pdb magic to control this feature, and updated
5599 -pdb option and @pdb magic to control this feature, and updated
5590 the docs. After a suggestion from Christopher Hart
5600 the docs. After a suggestion from Christopher Hart
5591 (hart-AT-caltech.edu).
5601 (hart-AT-caltech.edu).
5592
5602
5593 2002-04-12 Fernando Perez <fperez@colorado.edu>
5603 2002-04-12 Fernando Perez <fperez@colorado.edu>
5594
5604
5595 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5605 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5596 the exception handlers defined by the user (not the CrashHandler)
5606 the exception handlers defined by the user (not the CrashHandler)
5597 so that user exceptions don't trigger an ipython bug report.
5607 so that user exceptions don't trigger an ipython bug report.
5598
5608
5599 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5609 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5600 configurable (it should have always been so).
5610 configurable (it should have always been so).
5601
5611
5602 2002-03-26 Fernando Perez <fperez@colorado.edu>
5612 2002-03-26 Fernando Perez <fperez@colorado.edu>
5603
5613
5604 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5614 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5605 and there to fix embedding namespace issues. This should all be
5615 and there to fix embedding namespace issues. This should all be
5606 done in a more elegant way.
5616 done in a more elegant way.
5607
5617
5608 2002-03-25 Fernando Perez <fperez@colorado.edu>
5618 2002-03-25 Fernando Perez <fperez@colorado.edu>
5609
5619
5610 * IPython/genutils.py (get_home_dir): Try to make it work under
5620 * IPython/genutils.py (get_home_dir): Try to make it work under
5611 win9x also.
5621 win9x also.
5612
5622
5613 2002-03-20 Fernando Perez <fperez@colorado.edu>
5623 2002-03-20 Fernando Perez <fperez@colorado.edu>
5614
5624
5615 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5625 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5616 sys.displayhook untouched upon __init__.
5626 sys.displayhook untouched upon __init__.
5617
5627
5618 2002-03-19 Fernando Perez <fperez@colorado.edu>
5628 2002-03-19 Fernando Perez <fperez@colorado.edu>
5619
5629
5620 * Released 0.2.9 (for embedding bug, basically).
5630 * Released 0.2.9 (for embedding bug, basically).
5621
5631
5622 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5632 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5623 exceptions so that enclosing shell's state can be restored.
5633 exceptions so that enclosing shell's state can be restored.
5624
5634
5625 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5635 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5626 naming conventions in the .ipython/ dir.
5636 naming conventions in the .ipython/ dir.
5627
5637
5628 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5638 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5629 from delimiters list so filenames with - in them get expanded.
5639 from delimiters list so filenames with - in them get expanded.
5630
5640
5631 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5641 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5632 sys.displayhook not being properly restored after an embedded call.
5642 sys.displayhook not being properly restored after an embedded call.
5633
5643
5634 2002-03-18 Fernando Perez <fperez@colorado.edu>
5644 2002-03-18 Fernando Perez <fperez@colorado.edu>
5635
5645
5636 * Released 0.2.8
5646 * Released 0.2.8
5637
5647
5638 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5648 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5639 some files weren't being included in a -upgrade.
5649 some files weren't being included in a -upgrade.
5640 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5650 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5641 on' so that the first tab completes.
5651 on' so that the first tab completes.
5642 (InteractiveShell.handle_magic): fixed bug with spaces around
5652 (InteractiveShell.handle_magic): fixed bug with spaces around
5643 quotes breaking many magic commands.
5653 quotes breaking many magic commands.
5644
5654
5645 * setup.py: added note about ignoring the syntax error messages at
5655 * setup.py: added note about ignoring the syntax error messages at
5646 installation.
5656 installation.
5647
5657
5648 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5658 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5649 streamlining the gnuplot interface, now there's only one magic @gp.
5659 streamlining the gnuplot interface, now there's only one magic @gp.
5650
5660
5651 2002-03-17 Fernando Perez <fperez@colorado.edu>
5661 2002-03-17 Fernando Perez <fperez@colorado.edu>
5652
5662
5653 * IPython/UserConfig/magic_gnuplot.py: new name for the
5663 * IPython/UserConfig/magic_gnuplot.py: new name for the
5654 example-magic_pm.py file. Much enhanced system, now with a shell
5664 example-magic_pm.py file. Much enhanced system, now with a shell
5655 for communicating directly with gnuplot, one command at a time.
5665 for communicating directly with gnuplot, one command at a time.
5656
5666
5657 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5667 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5658 setting __name__=='__main__'.
5668 setting __name__=='__main__'.
5659
5669
5660 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5670 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5661 mini-shell for accessing gnuplot from inside ipython. Should
5671 mini-shell for accessing gnuplot from inside ipython. Should
5662 extend it later for grace access too. Inspired by Arnd's
5672 extend it later for grace access too. Inspired by Arnd's
5663 suggestion.
5673 suggestion.
5664
5674
5665 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5675 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5666 calling magic functions with () in their arguments. Thanks to Arnd
5676 calling magic functions with () in their arguments. Thanks to Arnd
5667 Baecker for pointing this to me.
5677 Baecker for pointing this to me.
5668
5678
5669 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5679 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5670 infinitely for integer or complex arrays (only worked with floats).
5680 infinitely for integer or complex arrays (only worked with floats).
5671
5681
5672 2002-03-16 Fernando Perez <fperez@colorado.edu>
5682 2002-03-16 Fernando Perez <fperez@colorado.edu>
5673
5683
5674 * setup.py: Merged setup and setup_windows into a single script
5684 * setup.py: Merged setup and setup_windows into a single script
5675 which properly handles things for windows users.
5685 which properly handles things for windows users.
5676
5686
5677 2002-03-15 Fernando Perez <fperez@colorado.edu>
5687 2002-03-15 Fernando Perez <fperez@colorado.edu>
5678
5688
5679 * Big change to the manual: now the magics are all automatically
5689 * Big change to the manual: now the magics are all automatically
5680 documented. This information is generated from their docstrings
5690 documented. This information is generated from their docstrings
5681 and put in a latex file included by the manual lyx file. This way
5691 and put in a latex file included by the manual lyx file. This way
5682 we get always up to date information for the magics. The manual
5692 we get always up to date information for the magics. The manual
5683 now also has proper version information, also auto-synced.
5693 now also has proper version information, also auto-synced.
5684
5694
5685 For this to work, an undocumented --magic_docstrings option was added.
5695 For this to work, an undocumented --magic_docstrings option was added.
5686
5696
5687 2002-03-13 Fernando Perez <fperez@colorado.edu>
5697 2002-03-13 Fernando Perez <fperez@colorado.edu>
5688
5698
5689 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5699 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5690 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5700 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5691
5701
5692 2002-03-12 Fernando Perez <fperez@colorado.edu>
5702 2002-03-12 Fernando Perez <fperez@colorado.edu>
5693
5703
5694 * IPython/ultraTB.py (TermColors): changed color escapes again to
5704 * IPython/ultraTB.py (TermColors): changed color escapes again to
5695 fix the (old, reintroduced) line-wrapping bug. Basically, if
5705 fix the (old, reintroduced) line-wrapping bug. Basically, if
5696 \001..\002 aren't given in the color escapes, lines get wrapped
5706 \001..\002 aren't given in the color escapes, lines get wrapped
5697 weirdly. But giving those screws up old xterms and emacs terms. So
5707 weirdly. But giving those screws up old xterms and emacs terms. So
5698 I added some logic for emacs terms to be ok, but I can't identify old
5708 I added some logic for emacs terms to be ok, but I can't identify old
5699 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5709 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5700
5710
5701 2002-03-10 Fernando Perez <fperez@colorado.edu>
5711 2002-03-10 Fernando Perez <fperez@colorado.edu>
5702
5712
5703 * IPython/usage.py (__doc__): Various documentation cleanups and
5713 * IPython/usage.py (__doc__): Various documentation cleanups and
5704 updates, both in usage docstrings and in the manual.
5714 updates, both in usage docstrings and in the manual.
5705
5715
5706 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5716 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5707 handling of caching. Set minimum acceptabe value for having a
5717 handling of caching. Set minimum acceptabe value for having a
5708 cache at 20 values.
5718 cache at 20 values.
5709
5719
5710 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5720 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5711 install_first_time function to a method, renamed it and added an
5721 install_first_time function to a method, renamed it and added an
5712 'upgrade' mode. Now people can update their config directory with
5722 'upgrade' mode. Now people can update their config directory with
5713 a simple command line switch (-upgrade, also new).
5723 a simple command line switch (-upgrade, also new).
5714
5724
5715 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5725 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5716 @file (convenient for automagic users under Python >= 2.2).
5726 @file (convenient for automagic users under Python >= 2.2).
5717 Removed @files (it seemed more like a plural than an abbrev. of
5727 Removed @files (it seemed more like a plural than an abbrev. of
5718 'file show').
5728 'file show').
5719
5729
5720 * IPython/iplib.py (install_first_time): Fixed crash if there were
5730 * IPython/iplib.py (install_first_time): Fixed crash if there were
5721 backup files ('~') in .ipython/ install directory.
5731 backup files ('~') in .ipython/ install directory.
5722
5732
5723 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5733 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5724 system. Things look fine, but these changes are fairly
5734 system. Things look fine, but these changes are fairly
5725 intrusive. Test them for a few days.
5735 intrusive. Test them for a few days.
5726
5736
5727 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5737 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5728 the prompts system. Now all in/out prompt strings are user
5738 the prompts system. Now all in/out prompt strings are user
5729 controllable. This is particularly useful for embedding, as one
5739 controllable. This is particularly useful for embedding, as one
5730 can tag embedded instances with particular prompts.
5740 can tag embedded instances with particular prompts.
5731
5741
5732 Also removed global use of sys.ps1/2, which now allows nested
5742 Also removed global use of sys.ps1/2, which now allows nested
5733 embeddings without any problems. Added command-line options for
5743 embeddings without any problems. Added command-line options for
5734 the prompt strings.
5744 the prompt strings.
5735
5745
5736 2002-03-08 Fernando Perez <fperez@colorado.edu>
5746 2002-03-08 Fernando Perez <fperez@colorado.edu>
5737
5747
5738 * IPython/UserConfig/example-embed-short.py (ipshell): added
5748 * IPython/UserConfig/example-embed-short.py (ipshell): added
5739 example file with the bare minimum code for embedding.
5749 example file with the bare minimum code for embedding.
5740
5750
5741 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5751 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5742 functionality for the embeddable shell to be activated/deactivated
5752 functionality for the embeddable shell to be activated/deactivated
5743 either globally or at each call.
5753 either globally or at each call.
5744
5754
5745 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5755 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5746 rewriting the prompt with '--->' for auto-inputs with proper
5756 rewriting the prompt with '--->' for auto-inputs with proper
5747 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5757 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5748 this is handled by the prompts class itself, as it should.
5758 this is handled by the prompts class itself, as it should.
5749
5759
5750 2002-03-05 Fernando Perez <fperez@colorado.edu>
5760 2002-03-05 Fernando Perez <fperez@colorado.edu>
5751
5761
5752 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5762 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5753 @logstart to avoid name clashes with the math log function.
5763 @logstart to avoid name clashes with the math log function.
5754
5764
5755 * Big updates to X/Emacs section of the manual.
5765 * Big updates to X/Emacs section of the manual.
5756
5766
5757 * Removed ipython_emacs. Milan explained to me how to pass
5767 * Removed ipython_emacs. Milan explained to me how to pass
5758 arguments to ipython through Emacs. Some day I'm going to end up
5768 arguments to ipython through Emacs. Some day I'm going to end up
5759 learning some lisp...
5769 learning some lisp...
5760
5770
5761 2002-03-04 Fernando Perez <fperez@colorado.edu>
5771 2002-03-04 Fernando Perez <fperez@colorado.edu>
5762
5772
5763 * IPython/ipython_emacs: Created script to be used as the
5773 * IPython/ipython_emacs: Created script to be used as the
5764 py-python-command Emacs variable so we can pass IPython
5774 py-python-command Emacs variable so we can pass IPython
5765 parameters. I can't figure out how to tell Emacs directly to pass
5775 parameters. I can't figure out how to tell Emacs directly to pass
5766 parameters to IPython, so a dummy shell script will do it.
5776 parameters to IPython, so a dummy shell script will do it.
5767
5777
5768 Other enhancements made for things to work better under Emacs'
5778 Other enhancements made for things to work better under Emacs'
5769 various types of terminals. Many thanks to Milan Zamazal
5779 various types of terminals. Many thanks to Milan Zamazal
5770 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5780 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5771
5781
5772 2002-03-01 Fernando Perez <fperez@colorado.edu>
5782 2002-03-01 Fernando Perez <fperez@colorado.edu>
5773
5783
5774 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5784 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5775 that loading of readline is now optional. This gives better
5785 that loading of readline is now optional. This gives better
5776 control to emacs users.
5786 control to emacs users.
5777
5787
5778 * IPython/ultraTB.py (__date__): Modified color escape sequences
5788 * IPython/ultraTB.py (__date__): Modified color escape sequences
5779 and now things work fine under xterm and in Emacs' term buffers
5789 and now things work fine under xterm and in Emacs' term buffers
5780 (though not shell ones). Well, in emacs you get colors, but all
5790 (though not shell ones). Well, in emacs you get colors, but all
5781 seem to be 'light' colors (no difference between dark and light
5791 seem to be 'light' colors (no difference between dark and light
5782 ones). But the garbage chars are gone, and also in xterms. It
5792 ones). But the garbage chars are gone, and also in xterms. It
5783 seems that now I'm using 'cleaner' ansi sequences.
5793 seems that now I'm using 'cleaner' ansi sequences.
5784
5794
5785 2002-02-21 Fernando Perez <fperez@colorado.edu>
5795 2002-02-21 Fernando Perez <fperez@colorado.edu>
5786
5796
5787 * Released 0.2.7 (mainly to publish the scoping fix).
5797 * Released 0.2.7 (mainly to publish the scoping fix).
5788
5798
5789 * IPython/Logger.py (Logger.logstate): added. A corresponding
5799 * IPython/Logger.py (Logger.logstate): added. A corresponding
5790 @logstate magic was created.
5800 @logstate magic was created.
5791
5801
5792 * IPython/Magic.py: fixed nested scoping problem under Python
5802 * IPython/Magic.py: fixed nested scoping problem under Python
5793 2.1.x (automagic wasn't working).
5803 2.1.x (automagic wasn't working).
5794
5804
5795 2002-02-20 Fernando Perez <fperez@colorado.edu>
5805 2002-02-20 Fernando Perez <fperez@colorado.edu>
5796
5806
5797 * Released 0.2.6.
5807 * Released 0.2.6.
5798
5808
5799 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5809 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5800 option so that logs can come out without any headers at all.
5810 option so that logs can come out without any headers at all.
5801
5811
5802 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5812 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5803 SciPy.
5813 SciPy.
5804
5814
5805 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5815 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5806 that embedded IPython calls don't require vars() to be explicitly
5816 that embedded IPython calls don't require vars() to be explicitly
5807 passed. Now they are extracted from the caller's frame (code
5817 passed. Now they are extracted from the caller's frame (code
5808 snatched from Eric Jones' weave). Added better documentation to
5818 snatched from Eric Jones' weave). Added better documentation to
5809 the section on embedding and the example file.
5819 the section on embedding and the example file.
5810
5820
5811 * IPython/genutils.py (page): Changed so that under emacs, it just
5821 * IPython/genutils.py (page): Changed so that under emacs, it just
5812 prints the string. You can then page up and down in the emacs
5822 prints the string. You can then page up and down in the emacs
5813 buffer itself. This is how the builtin help() works.
5823 buffer itself. This is how the builtin help() works.
5814
5824
5815 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5825 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5816 macro scoping: macros need to be executed in the user's namespace
5826 macro scoping: macros need to be executed in the user's namespace
5817 to work as if they had been typed by the user.
5827 to work as if they had been typed by the user.
5818
5828
5819 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5829 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5820 execute automatically (no need to type 'exec...'). They then
5830 execute automatically (no need to type 'exec...'). They then
5821 behave like 'true macros'. The printing system was also modified
5831 behave like 'true macros'. The printing system was also modified
5822 for this to work.
5832 for this to work.
5823
5833
5824 2002-02-19 Fernando Perez <fperez@colorado.edu>
5834 2002-02-19 Fernando Perez <fperez@colorado.edu>
5825
5835
5826 * IPython/genutils.py (page_file): new function for paging files
5836 * IPython/genutils.py (page_file): new function for paging files
5827 in an OS-independent way. Also necessary for file viewing to work
5837 in an OS-independent way. Also necessary for file viewing to work
5828 well inside Emacs buffers.
5838 well inside Emacs buffers.
5829 (page): Added checks for being in an emacs buffer.
5839 (page): Added checks for being in an emacs buffer.
5830 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5840 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5831 same bug in iplib.
5841 same bug in iplib.
5832
5842
5833 2002-02-18 Fernando Perez <fperez@colorado.edu>
5843 2002-02-18 Fernando Perez <fperez@colorado.edu>
5834
5844
5835 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5845 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5836 of readline so that IPython can work inside an Emacs buffer.
5846 of readline so that IPython can work inside an Emacs buffer.
5837
5847
5838 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5848 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5839 method signatures (they weren't really bugs, but it looks cleaner
5849 method signatures (they weren't really bugs, but it looks cleaner
5840 and keeps PyChecker happy).
5850 and keeps PyChecker happy).
5841
5851
5842 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5852 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5843 for implementing various user-defined hooks. Currently only
5853 for implementing various user-defined hooks. Currently only
5844 display is done.
5854 display is done.
5845
5855
5846 * IPython/Prompts.py (CachedOutput._display): changed display
5856 * IPython/Prompts.py (CachedOutput._display): changed display
5847 functions so that they can be dynamically changed by users easily.
5857 functions so that they can be dynamically changed by users easily.
5848
5858
5849 * IPython/Extensions/numeric_formats.py (num_display): added an
5859 * IPython/Extensions/numeric_formats.py (num_display): added an
5850 extension for printing NumPy arrays in flexible manners. It
5860 extension for printing NumPy arrays in flexible manners. It
5851 doesn't do anything yet, but all the structure is in
5861 doesn't do anything yet, but all the structure is in
5852 place. Ultimately the plan is to implement output format control
5862 place. Ultimately the plan is to implement output format control
5853 like in Octave.
5863 like in Octave.
5854
5864
5855 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5865 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5856 methods are found at run-time by all the automatic machinery.
5866 methods are found at run-time by all the automatic machinery.
5857
5867
5858 2002-02-17 Fernando Perez <fperez@colorado.edu>
5868 2002-02-17 Fernando Perez <fperez@colorado.edu>
5859
5869
5860 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5870 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5861 whole file a little.
5871 whole file a little.
5862
5872
5863 * ToDo: closed this document. Now there's a new_design.lyx
5873 * ToDo: closed this document. Now there's a new_design.lyx
5864 document for all new ideas. Added making a pdf of it for the
5874 document for all new ideas. Added making a pdf of it for the
5865 end-user distro.
5875 end-user distro.
5866
5876
5867 * IPython/Logger.py (Logger.switch_log): Created this to replace
5877 * IPython/Logger.py (Logger.switch_log): Created this to replace
5868 logon() and logoff(). It also fixes a nasty crash reported by
5878 logon() and logoff(). It also fixes a nasty crash reported by
5869 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5879 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5870
5880
5871 * IPython/iplib.py (complete): got auto-completion to work with
5881 * IPython/iplib.py (complete): got auto-completion to work with
5872 automagic (I had wanted this for a long time).
5882 automagic (I had wanted this for a long time).
5873
5883
5874 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5884 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5875 to @file, since file() is now a builtin and clashes with automagic
5885 to @file, since file() is now a builtin and clashes with automagic
5876 for @file.
5886 for @file.
5877
5887
5878 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5888 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5879 of this was previously in iplib, which had grown to more than 2000
5889 of this was previously in iplib, which had grown to more than 2000
5880 lines, way too long. No new functionality, but it makes managing
5890 lines, way too long. No new functionality, but it makes managing
5881 the code a bit easier.
5891 the code a bit easier.
5882
5892
5883 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5893 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5884 information to crash reports.
5894 information to crash reports.
5885
5895
5886 2002-02-12 Fernando Perez <fperez@colorado.edu>
5896 2002-02-12 Fernando Perez <fperez@colorado.edu>
5887
5897
5888 * Released 0.2.5.
5898 * Released 0.2.5.
5889
5899
5890 2002-02-11 Fernando Perez <fperez@colorado.edu>
5900 2002-02-11 Fernando Perez <fperez@colorado.edu>
5891
5901
5892 * Wrote a relatively complete Windows installer. It puts
5902 * Wrote a relatively complete Windows installer. It puts
5893 everything in place, creates Start Menu entries and fixes the
5903 everything in place, creates Start Menu entries and fixes the
5894 color issues. Nothing fancy, but it works.
5904 color issues. Nothing fancy, but it works.
5895
5905
5896 2002-02-10 Fernando Perez <fperez@colorado.edu>
5906 2002-02-10 Fernando Perez <fperez@colorado.edu>
5897
5907
5898 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5908 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5899 os.path.expanduser() call so that we can type @run ~/myfile.py and
5909 os.path.expanduser() call so that we can type @run ~/myfile.py and
5900 have thigs work as expected.
5910 have thigs work as expected.
5901
5911
5902 * IPython/genutils.py (page): fixed exception handling so things
5912 * IPython/genutils.py (page): fixed exception handling so things
5903 work both in Unix and Windows correctly. Quitting a pager triggers
5913 work both in Unix and Windows correctly. Quitting a pager triggers
5904 an IOError/broken pipe in Unix, and in windows not finding a pager
5914 an IOError/broken pipe in Unix, and in windows not finding a pager
5905 is also an IOError, so I had to actually look at the return value
5915 is also an IOError, so I had to actually look at the return value
5906 of the exception, not just the exception itself. Should be ok now.
5916 of the exception, not just the exception itself. Should be ok now.
5907
5917
5908 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5918 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5909 modified to allow case-insensitive color scheme changes.
5919 modified to allow case-insensitive color scheme changes.
5910
5920
5911 2002-02-09 Fernando Perez <fperez@colorado.edu>
5921 2002-02-09 Fernando Perez <fperez@colorado.edu>
5912
5922
5913 * IPython/genutils.py (native_line_ends): new function to leave
5923 * IPython/genutils.py (native_line_ends): new function to leave
5914 user config files with os-native line-endings.
5924 user config files with os-native line-endings.
5915
5925
5916 * README and manual updates.
5926 * README and manual updates.
5917
5927
5918 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5928 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5919 instead of StringType to catch Unicode strings.
5929 instead of StringType to catch Unicode strings.
5920
5930
5921 * IPython/genutils.py (filefind): fixed bug for paths with
5931 * IPython/genutils.py (filefind): fixed bug for paths with
5922 embedded spaces (very common in Windows).
5932 embedded spaces (very common in Windows).
5923
5933
5924 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5934 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5925 files under Windows, so that they get automatically associated
5935 files under Windows, so that they get automatically associated
5926 with a text editor. Windows makes it a pain to handle
5936 with a text editor. Windows makes it a pain to handle
5927 extension-less files.
5937 extension-less files.
5928
5938
5929 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5939 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5930 warning about readline only occur for Posix. In Windows there's no
5940 warning about readline only occur for Posix. In Windows there's no
5931 way to get readline, so why bother with the warning.
5941 way to get readline, so why bother with the warning.
5932
5942
5933 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5943 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5934 for __str__ instead of dir(self), since dir() changed in 2.2.
5944 for __str__ instead of dir(self), since dir() changed in 2.2.
5935
5945
5936 * Ported to Windows! Tested on XP, I suspect it should work fine
5946 * Ported to Windows! Tested on XP, I suspect it should work fine
5937 on NT/2000, but I don't think it will work on 98 et al. That
5947 on NT/2000, but I don't think it will work on 98 et al. That
5938 series of Windows is such a piece of junk anyway that I won't try
5948 series of Windows is such a piece of junk anyway that I won't try
5939 porting it there. The XP port was straightforward, showed a few
5949 porting it there. The XP port was straightforward, showed a few
5940 bugs here and there (fixed all), in particular some string
5950 bugs here and there (fixed all), in particular some string
5941 handling stuff which required considering Unicode strings (which
5951 handling stuff which required considering Unicode strings (which
5942 Windows uses). This is good, but hasn't been too tested :) No
5952 Windows uses). This is good, but hasn't been too tested :) No
5943 fancy installer yet, I'll put a note in the manual so people at
5953 fancy installer yet, I'll put a note in the manual so people at
5944 least make manually a shortcut.
5954 least make manually a shortcut.
5945
5955
5946 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5956 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5947 into a single one, "colors". This now controls both prompt and
5957 into a single one, "colors". This now controls both prompt and
5948 exception color schemes, and can be changed both at startup
5958 exception color schemes, and can be changed both at startup
5949 (either via command-line switches or via ipythonrc files) and at
5959 (either via command-line switches or via ipythonrc files) and at
5950 runtime, with @colors.
5960 runtime, with @colors.
5951 (Magic.magic_run): renamed @prun to @run and removed the old
5961 (Magic.magic_run): renamed @prun to @run and removed the old
5952 @run. The two were too similar to warrant keeping both.
5962 @run. The two were too similar to warrant keeping both.
5953
5963
5954 2002-02-03 Fernando Perez <fperez@colorado.edu>
5964 2002-02-03 Fernando Perez <fperez@colorado.edu>
5955
5965
5956 * IPython/iplib.py (install_first_time): Added comment on how to
5966 * IPython/iplib.py (install_first_time): Added comment on how to
5957 configure the color options for first-time users. Put a <return>
5967 configure the color options for first-time users. Put a <return>
5958 request at the end so that small-terminal users get a chance to
5968 request at the end so that small-terminal users get a chance to
5959 read the startup info.
5969 read the startup info.
5960
5970
5961 2002-01-23 Fernando Perez <fperez@colorado.edu>
5971 2002-01-23 Fernando Perez <fperez@colorado.edu>
5962
5972
5963 * IPython/iplib.py (CachedOutput.update): Changed output memory
5973 * IPython/iplib.py (CachedOutput.update): Changed output memory
5964 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5974 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5965 input history we still use _i. Did this b/c these variable are
5975 input history we still use _i. Did this b/c these variable are
5966 very commonly used in interactive work, so the less we need to
5976 very commonly used in interactive work, so the less we need to
5967 type the better off we are.
5977 type the better off we are.
5968 (Magic.magic_prun): updated @prun to better handle the namespaces
5978 (Magic.magic_prun): updated @prun to better handle the namespaces
5969 the file will run in, including a fix for __name__ not being set
5979 the file will run in, including a fix for __name__ not being set
5970 before.
5980 before.
5971
5981
5972 2002-01-20 Fernando Perez <fperez@colorado.edu>
5982 2002-01-20 Fernando Perez <fperez@colorado.edu>
5973
5983
5974 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5984 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5975 extra garbage for Python 2.2. Need to look more carefully into
5985 extra garbage for Python 2.2. Need to look more carefully into
5976 this later.
5986 this later.
5977
5987
5978 2002-01-19 Fernando Perez <fperez@colorado.edu>
5988 2002-01-19 Fernando Perez <fperez@colorado.edu>
5979
5989
5980 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5990 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5981 display SyntaxError exceptions properly formatted when they occur
5991 display SyntaxError exceptions properly formatted when they occur
5982 (they can be triggered by imported code).
5992 (they can be triggered by imported code).
5983
5993
5984 2002-01-18 Fernando Perez <fperez@colorado.edu>
5994 2002-01-18 Fernando Perez <fperez@colorado.edu>
5985
5995
5986 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5996 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5987 SyntaxError exceptions are reported nicely formatted, instead of
5997 SyntaxError exceptions are reported nicely formatted, instead of
5988 spitting out only offset information as before.
5998 spitting out only offset information as before.
5989 (Magic.magic_prun): Added the @prun function for executing
5999 (Magic.magic_prun): Added the @prun function for executing
5990 programs with command line args inside IPython.
6000 programs with command line args inside IPython.
5991
6001
5992 2002-01-16 Fernando Perez <fperez@colorado.edu>
6002 2002-01-16 Fernando Perez <fperez@colorado.edu>
5993
6003
5994 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6004 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5995 to *not* include the last item given in a range. This brings their
6005 to *not* include the last item given in a range. This brings their
5996 behavior in line with Python's slicing:
6006 behavior in line with Python's slicing:
5997 a[n1:n2] -> a[n1]...a[n2-1]
6007 a[n1:n2] -> a[n1]...a[n2-1]
5998 It may be a bit less convenient, but I prefer to stick to Python's
6008 It may be a bit less convenient, but I prefer to stick to Python's
5999 conventions *everywhere*, so users never have to wonder.
6009 conventions *everywhere*, so users never have to wonder.
6000 (Magic.magic_macro): Added @macro function to ease the creation of
6010 (Magic.magic_macro): Added @macro function to ease the creation of
6001 macros.
6011 macros.
6002
6012
6003 2002-01-05 Fernando Perez <fperez@colorado.edu>
6013 2002-01-05 Fernando Perez <fperez@colorado.edu>
6004
6014
6005 * Released 0.2.4.
6015 * Released 0.2.4.
6006
6016
6007 * IPython/iplib.py (Magic.magic_pdef):
6017 * IPython/iplib.py (Magic.magic_pdef):
6008 (InteractiveShell.safe_execfile): report magic lines and error
6018 (InteractiveShell.safe_execfile): report magic lines and error
6009 lines without line numbers so one can easily copy/paste them for
6019 lines without line numbers so one can easily copy/paste them for
6010 re-execution.
6020 re-execution.
6011
6021
6012 * Updated manual with recent changes.
6022 * Updated manual with recent changes.
6013
6023
6014 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6024 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6015 docstring printing when class? is called. Very handy for knowing
6025 docstring printing when class? is called. Very handy for knowing
6016 how to create class instances (as long as __init__ is well
6026 how to create class instances (as long as __init__ is well
6017 documented, of course :)
6027 documented, of course :)
6018 (Magic.magic_doc): print both class and constructor docstrings.
6028 (Magic.magic_doc): print both class and constructor docstrings.
6019 (Magic.magic_pdef): give constructor info if passed a class and
6029 (Magic.magic_pdef): give constructor info if passed a class and
6020 __call__ info for callable object instances.
6030 __call__ info for callable object instances.
6021
6031
6022 2002-01-04 Fernando Perez <fperez@colorado.edu>
6032 2002-01-04 Fernando Perez <fperez@colorado.edu>
6023
6033
6024 * Made deep_reload() off by default. It doesn't always work
6034 * Made deep_reload() off by default. It doesn't always work
6025 exactly as intended, so it's probably safer to have it off. It's
6035 exactly as intended, so it's probably safer to have it off. It's
6026 still available as dreload() anyway, so nothing is lost.
6036 still available as dreload() anyway, so nothing is lost.
6027
6037
6028 2002-01-02 Fernando Perez <fperez@colorado.edu>
6038 2002-01-02 Fernando Perez <fperez@colorado.edu>
6029
6039
6030 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6040 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6031 so I wanted an updated release).
6041 so I wanted an updated release).
6032
6042
6033 2001-12-27 Fernando Perez <fperez@colorado.edu>
6043 2001-12-27 Fernando Perez <fperez@colorado.edu>
6034
6044
6035 * IPython/iplib.py (InteractiveShell.interact): Added the original
6045 * IPython/iplib.py (InteractiveShell.interact): Added the original
6036 code from 'code.py' for this module in order to change the
6046 code from 'code.py' for this module in order to change the
6037 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6047 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6038 the history cache would break when the user hit Ctrl-C, and
6048 the history cache would break when the user hit Ctrl-C, and
6039 interact() offers no way to add any hooks to it.
6049 interact() offers no way to add any hooks to it.
6040
6050
6041 2001-12-23 Fernando Perez <fperez@colorado.edu>
6051 2001-12-23 Fernando Perez <fperez@colorado.edu>
6042
6052
6043 * setup.py: added check for 'MANIFEST' before trying to remove
6053 * setup.py: added check for 'MANIFEST' before trying to remove
6044 it. Thanks to Sean Reifschneider.
6054 it. Thanks to Sean Reifschneider.
6045
6055
6046 2001-12-22 Fernando Perez <fperez@colorado.edu>
6056 2001-12-22 Fernando Perez <fperez@colorado.edu>
6047
6057
6048 * Released 0.2.2.
6058 * Released 0.2.2.
6049
6059
6050 * Finished (reasonably) writing the manual. Later will add the
6060 * Finished (reasonably) writing the manual. Later will add the
6051 python-standard navigation stylesheets, but for the time being
6061 python-standard navigation stylesheets, but for the time being
6052 it's fairly complete. Distribution will include html and pdf
6062 it's fairly complete. Distribution will include html and pdf
6053 versions.
6063 versions.
6054
6064
6055 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6065 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6056 (MayaVi author).
6066 (MayaVi author).
6057
6067
6058 2001-12-21 Fernando Perez <fperez@colorado.edu>
6068 2001-12-21 Fernando Perez <fperez@colorado.edu>
6059
6069
6060 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6070 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6061 good public release, I think (with the manual and the distutils
6071 good public release, I think (with the manual and the distutils
6062 installer). The manual can use some work, but that can go
6072 installer). The manual can use some work, but that can go
6063 slowly. Otherwise I think it's quite nice for end users. Next
6073 slowly. Otherwise I think it's quite nice for end users. Next
6064 summer, rewrite the guts of it...
6074 summer, rewrite the guts of it...
6065
6075
6066 * Changed format of ipythonrc files to use whitespace as the
6076 * Changed format of ipythonrc files to use whitespace as the
6067 separator instead of an explicit '='. Cleaner.
6077 separator instead of an explicit '='. Cleaner.
6068
6078
6069 2001-12-20 Fernando Perez <fperez@colorado.edu>
6079 2001-12-20 Fernando Perez <fperez@colorado.edu>
6070
6080
6071 * Started a manual in LyX. For now it's just a quick merge of the
6081 * Started a manual in LyX. For now it's just a quick merge of the
6072 various internal docstrings and READMEs. Later it may grow into a
6082 various internal docstrings and READMEs. Later it may grow into a
6073 nice, full-blown manual.
6083 nice, full-blown manual.
6074
6084
6075 * Set up a distutils based installer. Installation should now be
6085 * Set up a distutils based installer. Installation should now be
6076 trivially simple for end-users.
6086 trivially simple for end-users.
6077
6087
6078 2001-12-11 Fernando Perez <fperez@colorado.edu>
6088 2001-12-11 Fernando Perez <fperez@colorado.edu>
6079
6089
6080 * Released 0.2.0. First public release, announced it at
6090 * Released 0.2.0. First public release, announced it at
6081 comp.lang.python. From now on, just bugfixes...
6091 comp.lang.python. From now on, just bugfixes...
6082
6092
6083 * Went through all the files, set copyright/license notices and
6093 * Went through all the files, set copyright/license notices and
6084 cleaned up things. Ready for release.
6094 cleaned up things. Ready for release.
6085
6095
6086 2001-12-10 Fernando Perez <fperez@colorado.edu>
6096 2001-12-10 Fernando Perez <fperez@colorado.edu>
6087
6097
6088 * Changed the first-time installer not to use tarfiles. It's more
6098 * Changed the first-time installer not to use tarfiles. It's more
6089 robust now and less unix-dependent. Also makes it easier for
6099 robust now and less unix-dependent. Also makes it easier for
6090 people to later upgrade versions.
6100 people to later upgrade versions.
6091
6101
6092 * Changed @exit to @abort to reflect the fact that it's pretty
6102 * Changed @exit to @abort to reflect the fact that it's pretty
6093 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6103 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6094 becomes significant only when IPyhton is embedded: in that case,
6104 becomes significant only when IPyhton is embedded: in that case,
6095 C-D closes IPython only, but @abort kills the enclosing program
6105 C-D closes IPython only, but @abort kills the enclosing program
6096 too (unless it had called IPython inside a try catching
6106 too (unless it had called IPython inside a try catching
6097 SystemExit).
6107 SystemExit).
6098
6108
6099 * Created Shell module which exposes the actuall IPython Shell
6109 * Created Shell module which exposes the actuall IPython Shell
6100 classes, currently the normal and the embeddable one. This at
6110 classes, currently the normal and the embeddable one. This at
6101 least offers a stable interface we won't need to change when
6111 least offers a stable interface we won't need to change when
6102 (later) the internals are rewritten. That rewrite will be confined
6112 (later) the internals are rewritten. That rewrite will be confined
6103 to iplib and ipmaker, but the Shell interface should remain as is.
6113 to iplib and ipmaker, but the Shell interface should remain as is.
6104
6114
6105 * Added embed module which offers an embeddable IPShell object,
6115 * Added embed module which offers an embeddable IPShell object,
6106 useful to fire up IPython *inside* a running program. Great for
6116 useful to fire up IPython *inside* a running program. Great for
6107 debugging or dynamical data analysis.
6117 debugging or dynamical data analysis.
6108
6118
6109 2001-12-08 Fernando Perez <fperez@colorado.edu>
6119 2001-12-08 Fernando Perez <fperez@colorado.edu>
6110
6120
6111 * Fixed small bug preventing seeing info from methods of defined
6121 * Fixed small bug preventing seeing info from methods of defined
6112 objects (incorrect namespace in _ofind()).
6122 objects (incorrect namespace in _ofind()).
6113
6123
6114 * Documentation cleanup. Moved the main usage docstrings to a
6124 * Documentation cleanup. Moved the main usage docstrings to a
6115 separate file, usage.py (cleaner to maintain, and hopefully in the
6125 separate file, usage.py (cleaner to maintain, and hopefully in the
6116 future some perlpod-like way of producing interactive, man and
6126 future some perlpod-like way of producing interactive, man and
6117 html docs out of it will be found).
6127 html docs out of it will be found).
6118
6128
6119 * Added @profile to see your profile at any time.
6129 * Added @profile to see your profile at any time.
6120
6130
6121 * Added @p as an alias for 'print'. It's especially convenient if
6131 * Added @p as an alias for 'print'. It's especially convenient if
6122 using automagic ('p x' prints x).
6132 using automagic ('p x' prints x).
6123
6133
6124 * Small cleanups and fixes after a pychecker run.
6134 * Small cleanups and fixes after a pychecker run.
6125
6135
6126 * Changed the @cd command to handle @cd - and @cd -<n> for
6136 * Changed the @cd command to handle @cd - and @cd -<n> for
6127 visiting any directory in _dh.
6137 visiting any directory in _dh.
6128
6138
6129 * Introduced _dh, a history of visited directories. @dhist prints
6139 * Introduced _dh, a history of visited directories. @dhist prints
6130 it out with numbers.
6140 it out with numbers.
6131
6141
6132 2001-12-07 Fernando Perez <fperez@colorado.edu>
6142 2001-12-07 Fernando Perez <fperez@colorado.edu>
6133
6143
6134 * Released 0.1.22
6144 * Released 0.1.22
6135
6145
6136 * Made initialization a bit more robust against invalid color
6146 * Made initialization a bit more robust against invalid color
6137 options in user input (exit, not traceback-crash).
6147 options in user input (exit, not traceback-crash).
6138
6148
6139 * Changed the bug crash reporter to write the report only in the
6149 * Changed the bug crash reporter to write the report only in the
6140 user's .ipython directory. That way IPython won't litter people's
6150 user's .ipython directory. That way IPython won't litter people's
6141 hard disks with crash files all over the place. Also print on
6151 hard disks with crash files all over the place. Also print on
6142 screen the necessary mail command.
6152 screen the necessary mail command.
6143
6153
6144 * With the new ultraTB, implemented LightBG color scheme for light
6154 * With the new ultraTB, implemented LightBG color scheme for light
6145 background terminals. A lot of people like white backgrounds, so I
6155 background terminals. A lot of people like white backgrounds, so I
6146 guess we should at least give them something readable.
6156 guess we should at least give them something readable.
6147
6157
6148 2001-12-06 Fernando Perez <fperez@colorado.edu>
6158 2001-12-06 Fernando Perez <fperez@colorado.edu>
6149
6159
6150 * Modified the structure of ultraTB. Now there's a proper class
6160 * Modified the structure of ultraTB. Now there's a proper class
6151 for tables of color schemes which allow adding schemes easily and
6161 for tables of color schemes which allow adding schemes easily and
6152 switching the active scheme without creating a new instance every
6162 switching the active scheme without creating a new instance every
6153 time (which was ridiculous). The syntax for creating new schemes
6163 time (which was ridiculous). The syntax for creating new schemes
6154 is also cleaner. I think ultraTB is finally done, with a clean
6164 is also cleaner. I think ultraTB is finally done, with a clean
6155 class structure. Names are also much cleaner (now there's proper
6165 class structure. Names are also much cleaner (now there's proper
6156 color tables, no need for every variable to also have 'color' in
6166 color tables, no need for every variable to also have 'color' in
6157 its name).
6167 its name).
6158
6168
6159 * Broke down genutils into separate files. Now genutils only
6169 * Broke down genutils into separate files. Now genutils only
6160 contains utility functions, and classes have been moved to their
6170 contains utility functions, and classes have been moved to their
6161 own files (they had enough independent functionality to warrant
6171 own files (they had enough independent functionality to warrant
6162 it): ConfigLoader, OutputTrap, Struct.
6172 it): ConfigLoader, OutputTrap, Struct.
6163
6173
6164 2001-12-05 Fernando Perez <fperez@colorado.edu>
6174 2001-12-05 Fernando Perez <fperez@colorado.edu>
6165
6175
6166 * IPython turns 21! Released version 0.1.21, as a candidate for
6176 * IPython turns 21! Released version 0.1.21, as a candidate for
6167 public consumption. If all goes well, release in a few days.
6177 public consumption. If all goes well, release in a few days.
6168
6178
6169 * Fixed path bug (files in Extensions/ directory wouldn't be found
6179 * Fixed path bug (files in Extensions/ directory wouldn't be found
6170 unless IPython/ was explicitly in sys.path).
6180 unless IPython/ was explicitly in sys.path).
6171
6181
6172 * Extended the FlexCompleter class as MagicCompleter to allow
6182 * Extended the FlexCompleter class as MagicCompleter to allow
6173 completion of @-starting lines.
6183 completion of @-starting lines.
6174
6184
6175 * Created __release__.py file as a central repository for release
6185 * Created __release__.py file as a central repository for release
6176 info that other files can read from.
6186 info that other files can read from.
6177
6187
6178 * Fixed small bug in logging: when logging was turned on in
6188 * Fixed small bug in logging: when logging was turned on in
6179 mid-session, old lines with special meanings (!@?) were being
6189 mid-session, old lines with special meanings (!@?) were being
6180 logged without the prepended comment, which is necessary since
6190 logged without the prepended comment, which is necessary since
6181 they are not truly valid python syntax. This should make session
6191 they are not truly valid python syntax. This should make session
6182 restores produce less errors.
6192 restores produce less errors.
6183
6193
6184 * The namespace cleanup forced me to make a FlexCompleter class
6194 * The namespace cleanup forced me to make a FlexCompleter class
6185 which is nothing but a ripoff of rlcompleter, but with selectable
6195 which is nothing but a ripoff of rlcompleter, but with selectable
6186 namespace (rlcompleter only works in __main__.__dict__). I'll try
6196 namespace (rlcompleter only works in __main__.__dict__). I'll try
6187 to submit a note to the authors to see if this change can be
6197 to submit a note to the authors to see if this change can be
6188 incorporated in future rlcompleter releases (Dec.6: done)
6198 incorporated in future rlcompleter releases (Dec.6: done)
6189
6199
6190 * More fixes to namespace handling. It was a mess! Now all
6200 * More fixes to namespace handling. It was a mess! Now all
6191 explicit references to __main__.__dict__ are gone (except when
6201 explicit references to __main__.__dict__ are gone (except when
6192 really needed) and everything is handled through the namespace
6202 really needed) and everything is handled through the namespace
6193 dicts in the IPython instance. We seem to be getting somewhere
6203 dicts in the IPython instance. We seem to be getting somewhere
6194 with this, finally...
6204 with this, finally...
6195
6205
6196 * Small documentation updates.
6206 * Small documentation updates.
6197
6207
6198 * Created the Extensions directory under IPython (with an
6208 * Created the Extensions directory under IPython (with an
6199 __init__.py). Put the PhysicalQ stuff there. This directory should
6209 __init__.py). Put the PhysicalQ stuff there. This directory should
6200 be used for all special-purpose extensions.
6210 be used for all special-purpose extensions.
6201
6211
6202 * File renaming:
6212 * File renaming:
6203 ipythonlib --> ipmaker
6213 ipythonlib --> ipmaker
6204 ipplib --> iplib
6214 ipplib --> iplib
6205 This makes a bit more sense in terms of what these files actually do.
6215 This makes a bit more sense in terms of what these files actually do.
6206
6216
6207 * Moved all the classes and functions in ipythonlib to ipplib, so
6217 * Moved all the classes and functions in ipythonlib to ipplib, so
6208 now ipythonlib only has make_IPython(). This will ease up its
6218 now ipythonlib only has make_IPython(). This will ease up its
6209 splitting in smaller functional chunks later.
6219 splitting in smaller functional chunks later.
6210
6220
6211 * Cleaned up (done, I think) output of @whos. Better column
6221 * Cleaned up (done, I think) output of @whos. Better column
6212 formatting, and now shows str(var) for as much as it can, which is
6222 formatting, and now shows str(var) for as much as it can, which is
6213 typically what one gets with a 'print var'.
6223 typically what one gets with a 'print var'.
6214
6224
6215 2001-12-04 Fernando Perez <fperez@colorado.edu>
6225 2001-12-04 Fernando Perez <fperez@colorado.edu>
6216
6226
6217 * Fixed namespace problems. Now builtin/IPyhton/user names get
6227 * Fixed namespace problems. Now builtin/IPyhton/user names get
6218 properly reported in their namespace. Internal namespace handling
6228 properly reported in their namespace. Internal namespace handling
6219 is finally getting decent (not perfect yet, but much better than
6229 is finally getting decent (not perfect yet, but much better than
6220 the ad-hoc mess we had).
6230 the ad-hoc mess we had).
6221
6231
6222 * Removed -exit option. If people just want to run a python
6232 * Removed -exit option. If people just want to run a python
6223 script, that's what the normal interpreter is for. Less
6233 script, that's what the normal interpreter is for. Less
6224 unnecessary options, less chances for bugs.
6234 unnecessary options, less chances for bugs.
6225
6235
6226 * Added a crash handler which generates a complete post-mortem if
6236 * Added a crash handler which generates a complete post-mortem if
6227 IPython crashes. This will help a lot in tracking bugs down the
6237 IPython crashes. This will help a lot in tracking bugs down the
6228 road.
6238 road.
6229
6239
6230 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6240 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6231 which were boud to functions being reassigned would bypass the
6241 which were boud to functions being reassigned would bypass the
6232 logger, breaking the sync of _il with the prompt counter. This
6242 logger, breaking the sync of _il with the prompt counter. This
6233 would then crash IPython later when a new line was logged.
6243 would then crash IPython later when a new line was logged.
6234
6244
6235 2001-12-02 Fernando Perez <fperez@colorado.edu>
6245 2001-12-02 Fernando Perez <fperez@colorado.edu>
6236
6246
6237 * Made IPython a package. This means people don't have to clutter
6247 * Made IPython a package. This means people don't have to clutter
6238 their sys.path with yet another directory. Changed the INSTALL
6248 their sys.path with yet another directory. Changed the INSTALL
6239 file accordingly.
6249 file accordingly.
6240
6250
6241 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6251 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6242 sorts its output (so @who shows it sorted) and @whos formats the
6252 sorts its output (so @who shows it sorted) and @whos formats the
6243 table according to the width of the first column. Nicer, easier to
6253 table according to the width of the first column. Nicer, easier to
6244 read. Todo: write a generic table_format() which takes a list of
6254 read. Todo: write a generic table_format() which takes a list of
6245 lists and prints it nicely formatted, with optional row/column
6255 lists and prints it nicely formatted, with optional row/column
6246 separators and proper padding and justification.
6256 separators and proper padding and justification.
6247
6257
6248 * Released 0.1.20
6258 * Released 0.1.20
6249
6259
6250 * Fixed bug in @log which would reverse the inputcache list (a
6260 * Fixed bug in @log which would reverse the inputcache list (a
6251 copy operation was missing).
6261 copy operation was missing).
6252
6262
6253 * Code cleanup. @config was changed to use page(). Better, since
6263 * Code cleanup. @config was changed to use page(). Better, since
6254 its output is always quite long.
6264 its output is always quite long.
6255
6265
6256 * Itpl is back as a dependency. I was having too many problems
6266 * Itpl is back as a dependency. I was having too many problems
6257 getting the parametric aliases to work reliably, and it's just
6267 getting the parametric aliases to work reliably, and it's just
6258 easier to code weird string operations with it than playing %()s
6268 easier to code weird string operations with it than playing %()s
6259 games. It's only ~6k, so I don't think it's too big a deal.
6269 games. It's only ~6k, so I don't think it's too big a deal.
6260
6270
6261 * Found (and fixed) a very nasty bug with history. !lines weren't
6271 * Found (and fixed) a very nasty bug with history. !lines weren't
6262 getting cached, and the out of sync caches would crash
6272 getting cached, and the out of sync caches would crash
6263 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6273 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6264 division of labor a bit better. Bug fixed, cleaner structure.
6274 division of labor a bit better. Bug fixed, cleaner structure.
6265
6275
6266 2001-12-01 Fernando Perez <fperez@colorado.edu>
6276 2001-12-01 Fernando Perez <fperez@colorado.edu>
6267
6277
6268 * Released 0.1.19
6278 * Released 0.1.19
6269
6279
6270 * Added option -n to @hist to prevent line number printing. Much
6280 * Added option -n to @hist to prevent line number printing. Much
6271 easier to copy/paste code this way.
6281 easier to copy/paste code this way.
6272
6282
6273 * Created global _il to hold the input list. Allows easy
6283 * Created global _il to hold the input list. Allows easy
6274 re-execution of blocks of code by slicing it (inspired by Janko's
6284 re-execution of blocks of code by slicing it (inspired by Janko's
6275 comment on 'macros').
6285 comment on 'macros').
6276
6286
6277 * Small fixes and doc updates.
6287 * Small fixes and doc updates.
6278
6288
6279 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6289 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6280 much too fragile with automagic. Handles properly multi-line
6290 much too fragile with automagic. Handles properly multi-line
6281 statements and takes parameters.
6291 statements and takes parameters.
6282
6292
6283 2001-11-30 Fernando Perez <fperez@colorado.edu>
6293 2001-11-30 Fernando Perez <fperez@colorado.edu>
6284
6294
6285 * Version 0.1.18 released.
6295 * Version 0.1.18 released.
6286
6296
6287 * Fixed nasty namespace bug in initial module imports.
6297 * Fixed nasty namespace bug in initial module imports.
6288
6298
6289 * Added copyright/license notes to all code files (except
6299 * Added copyright/license notes to all code files (except
6290 DPyGetOpt). For the time being, LGPL. That could change.
6300 DPyGetOpt). For the time being, LGPL. That could change.
6291
6301
6292 * Rewrote a much nicer README, updated INSTALL, cleaned up
6302 * Rewrote a much nicer README, updated INSTALL, cleaned up
6293 ipythonrc-* samples.
6303 ipythonrc-* samples.
6294
6304
6295 * Overall code/documentation cleanup. Basically ready for
6305 * Overall code/documentation cleanup. Basically ready for
6296 release. Only remaining thing: licence decision (LGPL?).
6306 release. Only remaining thing: licence decision (LGPL?).
6297
6307
6298 * Converted load_config to a class, ConfigLoader. Now recursion
6308 * Converted load_config to a class, ConfigLoader. Now recursion
6299 control is better organized. Doesn't include the same file twice.
6309 control is better organized. Doesn't include the same file twice.
6300
6310
6301 2001-11-29 Fernando Perez <fperez@colorado.edu>
6311 2001-11-29 Fernando Perez <fperez@colorado.edu>
6302
6312
6303 * Got input history working. Changed output history variables from
6313 * Got input history working. Changed output history variables from
6304 _p to _o so that _i is for input and _o for output. Just cleaner
6314 _p to _o so that _i is for input and _o for output. Just cleaner
6305 convention.
6315 convention.
6306
6316
6307 * Implemented parametric aliases. This pretty much allows the
6317 * Implemented parametric aliases. This pretty much allows the
6308 alias system to offer full-blown shell convenience, I think.
6318 alias system to offer full-blown shell convenience, I think.
6309
6319
6310 * Version 0.1.17 released, 0.1.18 opened.
6320 * Version 0.1.17 released, 0.1.18 opened.
6311
6321
6312 * dot_ipython/ipythonrc (alias): added documentation.
6322 * dot_ipython/ipythonrc (alias): added documentation.
6313 (xcolor): Fixed small bug (xcolors -> xcolor)
6323 (xcolor): Fixed small bug (xcolors -> xcolor)
6314
6324
6315 * Changed the alias system. Now alias is a magic command to define
6325 * Changed the alias system. Now alias is a magic command to define
6316 aliases just like the shell. Rationale: the builtin magics should
6326 aliases just like the shell. Rationale: the builtin magics should
6317 be there for things deeply connected to IPython's
6327 be there for things deeply connected to IPython's
6318 architecture. And this is a much lighter system for what I think
6328 architecture. And this is a much lighter system for what I think
6319 is the really important feature: allowing users to define quickly
6329 is the really important feature: allowing users to define quickly
6320 magics that will do shell things for them, so they can customize
6330 magics that will do shell things for them, so they can customize
6321 IPython easily to match their work habits. If someone is really
6331 IPython easily to match their work habits. If someone is really
6322 desperate to have another name for a builtin alias, they can
6332 desperate to have another name for a builtin alias, they can
6323 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6333 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6324 works.
6334 works.
6325
6335
6326 2001-11-28 Fernando Perez <fperez@colorado.edu>
6336 2001-11-28 Fernando Perez <fperez@colorado.edu>
6327
6337
6328 * Changed @file so that it opens the source file at the proper
6338 * Changed @file so that it opens the source file at the proper
6329 line. Since it uses less, if your EDITOR environment is
6339 line. Since it uses less, if your EDITOR environment is
6330 configured, typing v will immediately open your editor of choice
6340 configured, typing v will immediately open your editor of choice
6331 right at the line where the object is defined. Not as quick as
6341 right at the line where the object is defined. Not as quick as
6332 having a direct @edit command, but for all intents and purposes it
6342 having a direct @edit command, but for all intents and purposes it
6333 works. And I don't have to worry about writing @edit to deal with
6343 works. And I don't have to worry about writing @edit to deal with
6334 all the editors, less does that.
6344 all the editors, less does that.
6335
6345
6336 * Version 0.1.16 released, 0.1.17 opened.
6346 * Version 0.1.16 released, 0.1.17 opened.
6337
6347
6338 * Fixed some nasty bugs in the page/page_dumb combo that could
6348 * Fixed some nasty bugs in the page/page_dumb combo that could
6339 crash IPython.
6349 crash IPython.
6340
6350
6341 2001-11-27 Fernando Perez <fperez@colorado.edu>
6351 2001-11-27 Fernando Perez <fperez@colorado.edu>
6342
6352
6343 * Version 0.1.15 released, 0.1.16 opened.
6353 * Version 0.1.15 released, 0.1.16 opened.
6344
6354
6345 * Finally got ? and ?? to work for undefined things: now it's
6355 * Finally got ? and ?? to work for undefined things: now it's
6346 possible to type {}.get? and get information about the get method
6356 possible to type {}.get? and get information about the get method
6347 of dicts, or os.path? even if only os is defined (so technically
6357 of dicts, or os.path? even if only os is defined (so technically
6348 os.path isn't). Works at any level. For example, after import os,
6358 os.path isn't). Works at any level. For example, after import os,
6349 os?, os.path?, os.path.abspath? all work. This is great, took some
6359 os?, os.path?, os.path.abspath? all work. This is great, took some
6350 work in _ofind.
6360 work in _ofind.
6351
6361
6352 * Fixed more bugs with logging. The sanest way to do it was to add
6362 * Fixed more bugs with logging. The sanest way to do it was to add
6353 to @log a 'mode' parameter. Killed two in one shot (this mode
6363 to @log a 'mode' parameter. Killed two in one shot (this mode
6354 option was a request of Janko's). I think it's finally clean
6364 option was a request of Janko's). I think it's finally clean
6355 (famous last words).
6365 (famous last words).
6356
6366
6357 * Added a page_dumb() pager which does a decent job of paging on
6367 * Added a page_dumb() pager which does a decent job of paging on
6358 screen, if better things (like less) aren't available. One less
6368 screen, if better things (like less) aren't available. One less
6359 unix dependency (someday maybe somebody will port this to
6369 unix dependency (someday maybe somebody will port this to
6360 windows).
6370 windows).
6361
6371
6362 * Fixed problem in magic_log: would lock of logging out if log
6372 * Fixed problem in magic_log: would lock of logging out if log
6363 creation failed (because it would still think it had succeeded).
6373 creation failed (because it would still think it had succeeded).
6364
6374
6365 * Improved the page() function using curses to auto-detect screen
6375 * Improved the page() function using curses to auto-detect screen
6366 size. Now it can make a much better decision on whether to print
6376 size. Now it can make a much better decision on whether to print
6367 or page a string. Option screen_length was modified: a value 0
6377 or page a string. Option screen_length was modified: a value 0
6368 means auto-detect, and that's the default now.
6378 means auto-detect, and that's the default now.
6369
6379
6370 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6380 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6371 go out. I'll test it for a few days, then talk to Janko about
6381 go out. I'll test it for a few days, then talk to Janko about
6372 licences and announce it.
6382 licences and announce it.
6373
6383
6374 * Fixed the length of the auto-generated ---> prompt which appears
6384 * Fixed the length of the auto-generated ---> prompt which appears
6375 for auto-parens and auto-quotes. Getting this right isn't trivial,
6385 for auto-parens and auto-quotes. Getting this right isn't trivial,
6376 with all the color escapes, different prompt types and optional
6386 with all the color escapes, different prompt types and optional
6377 separators. But it seems to be working in all the combinations.
6387 separators. But it seems to be working in all the combinations.
6378
6388
6379 2001-11-26 Fernando Perez <fperez@colorado.edu>
6389 2001-11-26 Fernando Perez <fperez@colorado.edu>
6380
6390
6381 * Wrote a regexp filter to get option types from the option names
6391 * Wrote a regexp filter to get option types from the option names
6382 string. This eliminates the need to manually keep two duplicate
6392 string. This eliminates the need to manually keep two duplicate
6383 lists.
6393 lists.
6384
6394
6385 * Removed the unneeded check_option_names. Now options are handled
6395 * Removed the unneeded check_option_names. Now options are handled
6386 in a much saner manner and it's easy to visually check that things
6396 in a much saner manner and it's easy to visually check that things
6387 are ok.
6397 are ok.
6388
6398
6389 * Updated version numbers on all files I modified to carry a
6399 * Updated version numbers on all files I modified to carry a
6390 notice so Janko and Nathan have clear version markers.
6400 notice so Janko and Nathan have clear version markers.
6391
6401
6392 * Updated docstring for ultraTB with my changes. I should send
6402 * Updated docstring for ultraTB with my changes. I should send
6393 this to Nathan.
6403 this to Nathan.
6394
6404
6395 * Lots of small fixes. Ran everything through pychecker again.
6405 * Lots of small fixes. Ran everything through pychecker again.
6396
6406
6397 * Made loading of deep_reload an cmd line option. If it's not too
6407 * Made loading of deep_reload an cmd line option. If it's not too
6398 kosher, now people can just disable it. With -nodeep_reload it's
6408 kosher, now people can just disable it. With -nodeep_reload it's
6399 still available as dreload(), it just won't overwrite reload().
6409 still available as dreload(), it just won't overwrite reload().
6400
6410
6401 * Moved many options to the no| form (-opt and -noopt
6411 * Moved many options to the no| form (-opt and -noopt
6402 accepted). Cleaner.
6412 accepted). Cleaner.
6403
6413
6404 * Changed magic_log so that if called with no parameters, it uses
6414 * Changed magic_log so that if called with no parameters, it uses
6405 'rotate' mode. That way auto-generated logs aren't automatically
6415 'rotate' mode. That way auto-generated logs aren't automatically
6406 over-written. For normal logs, now a backup is made if it exists
6416 over-written. For normal logs, now a backup is made if it exists
6407 (only 1 level of backups). A new 'backup' mode was added to the
6417 (only 1 level of backups). A new 'backup' mode was added to the
6408 Logger class to support this. This was a request by Janko.
6418 Logger class to support this. This was a request by Janko.
6409
6419
6410 * Added @logoff/@logon to stop/restart an active log.
6420 * Added @logoff/@logon to stop/restart an active log.
6411
6421
6412 * Fixed a lot of bugs in log saving/replay. It was pretty
6422 * Fixed a lot of bugs in log saving/replay. It was pretty
6413 broken. Now special lines (!@,/) appear properly in the command
6423 broken. Now special lines (!@,/) appear properly in the command
6414 history after a log replay.
6424 history after a log replay.
6415
6425
6416 * Tried and failed to implement full session saving via pickle. My
6426 * Tried and failed to implement full session saving via pickle. My
6417 idea was to pickle __main__.__dict__, but modules can't be
6427 idea was to pickle __main__.__dict__, but modules can't be
6418 pickled. This would be a better alternative to replaying logs, but
6428 pickled. This would be a better alternative to replaying logs, but
6419 seems quite tricky to get to work. Changed -session to be called
6429 seems quite tricky to get to work. Changed -session to be called
6420 -logplay, which more accurately reflects what it does. And if we
6430 -logplay, which more accurately reflects what it does. And if we
6421 ever get real session saving working, -session is now available.
6431 ever get real session saving working, -session is now available.
6422
6432
6423 * Implemented color schemes for prompts also. As for tracebacks,
6433 * Implemented color schemes for prompts also. As for tracebacks,
6424 currently only NoColor and Linux are supported. But now the
6434 currently only NoColor and Linux are supported. But now the
6425 infrastructure is in place, based on a generic ColorScheme
6435 infrastructure is in place, based on a generic ColorScheme
6426 class. So writing and activating new schemes both for the prompts
6436 class. So writing and activating new schemes both for the prompts
6427 and the tracebacks should be straightforward.
6437 and the tracebacks should be straightforward.
6428
6438
6429 * Version 0.1.13 released, 0.1.14 opened.
6439 * Version 0.1.13 released, 0.1.14 opened.
6430
6440
6431 * Changed handling of options for output cache. Now counter is
6441 * Changed handling of options for output cache. Now counter is
6432 hardwired starting at 1 and one specifies the maximum number of
6442 hardwired starting at 1 and one specifies the maximum number of
6433 entries *in the outcache* (not the max prompt counter). This is
6443 entries *in the outcache* (not the max prompt counter). This is
6434 much better, since many statements won't increase the cache
6444 much better, since many statements won't increase the cache
6435 count. It also eliminated some confusing options, now there's only
6445 count. It also eliminated some confusing options, now there's only
6436 one: cache_size.
6446 one: cache_size.
6437
6447
6438 * Added 'alias' magic function and magic_alias option in the
6448 * Added 'alias' magic function and magic_alias option in the
6439 ipythonrc file. Now the user can easily define whatever names he
6449 ipythonrc file. Now the user can easily define whatever names he
6440 wants for the magic functions without having to play weird
6450 wants for the magic functions without having to play weird
6441 namespace games. This gives IPython a real shell-like feel.
6451 namespace games. This gives IPython a real shell-like feel.
6442
6452
6443 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6453 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6444 @ or not).
6454 @ or not).
6445
6455
6446 This was one of the last remaining 'visible' bugs (that I know
6456 This was one of the last remaining 'visible' bugs (that I know
6447 of). I think if I can clean up the session loading so it works
6457 of). I think if I can clean up the session loading so it works
6448 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6458 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6449 about licensing).
6459 about licensing).
6450
6460
6451 2001-11-25 Fernando Perez <fperez@colorado.edu>
6461 2001-11-25 Fernando Perez <fperez@colorado.edu>
6452
6462
6453 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6463 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6454 there's a cleaner distinction between what ? and ?? show.
6464 there's a cleaner distinction between what ? and ?? show.
6455
6465
6456 * Added screen_length option. Now the user can define his own
6466 * Added screen_length option. Now the user can define his own
6457 screen size for page() operations.
6467 screen size for page() operations.
6458
6468
6459 * Implemented magic shell-like functions with automatic code
6469 * Implemented magic shell-like functions with automatic code
6460 generation. Now adding another function is just a matter of adding
6470 generation. Now adding another function is just a matter of adding
6461 an entry to a dict, and the function is dynamically generated at
6471 an entry to a dict, and the function is dynamically generated at
6462 run-time. Python has some really cool features!
6472 run-time. Python has some really cool features!
6463
6473
6464 * Renamed many options to cleanup conventions a little. Now all
6474 * Renamed many options to cleanup conventions a little. Now all
6465 are lowercase, and only underscores where needed. Also in the code
6475 are lowercase, and only underscores where needed. Also in the code
6466 option name tables are clearer.
6476 option name tables are clearer.
6467
6477
6468 * Changed prompts a little. Now input is 'In [n]:' instead of
6478 * Changed prompts a little. Now input is 'In [n]:' instead of
6469 'In[n]:='. This allows it the numbers to be aligned with the
6479 'In[n]:='. This allows it the numbers to be aligned with the
6470 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6480 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6471 Python (it was a Mathematica thing). The '...' continuation prompt
6481 Python (it was a Mathematica thing). The '...' continuation prompt
6472 was also changed a little to align better.
6482 was also changed a little to align better.
6473
6483
6474 * Fixed bug when flushing output cache. Not all _p<n> variables
6484 * Fixed bug when flushing output cache. Not all _p<n> variables
6475 exist, so their deletion needs to be wrapped in a try:
6485 exist, so their deletion needs to be wrapped in a try:
6476
6486
6477 * Figured out how to properly use inspect.formatargspec() (it
6487 * Figured out how to properly use inspect.formatargspec() (it
6478 requires the args preceded by *). So I removed all the code from
6488 requires the args preceded by *). So I removed all the code from
6479 _get_pdef in Magic, which was just replicating that.
6489 _get_pdef in Magic, which was just replicating that.
6480
6490
6481 * Added test to prefilter to allow redefining magic function names
6491 * Added test to prefilter to allow redefining magic function names
6482 as variables. This is ok, since the @ form is always available,
6492 as variables. This is ok, since the @ form is always available,
6483 but whe should allow the user to define a variable called 'ls' if
6493 but whe should allow the user to define a variable called 'ls' if
6484 he needs it.
6494 he needs it.
6485
6495
6486 * Moved the ToDo information from README into a separate ToDo.
6496 * Moved the ToDo information from README into a separate ToDo.
6487
6497
6488 * General code cleanup and small bugfixes. I think it's close to a
6498 * General code cleanup and small bugfixes. I think it's close to a
6489 state where it can be released, obviously with a big 'beta'
6499 state where it can be released, obviously with a big 'beta'
6490 warning on it.
6500 warning on it.
6491
6501
6492 * Got the magic function split to work. Now all magics are defined
6502 * Got the magic function split to work. Now all magics are defined
6493 in a separate class. It just organizes things a bit, and now
6503 in a separate class. It just organizes things a bit, and now
6494 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6504 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6495 was too long).
6505 was too long).
6496
6506
6497 * Changed @clear to @reset to avoid potential confusions with
6507 * Changed @clear to @reset to avoid potential confusions with
6498 the shell command clear. Also renamed @cl to @clear, which does
6508 the shell command clear. Also renamed @cl to @clear, which does
6499 exactly what people expect it to from their shell experience.
6509 exactly what people expect it to from their shell experience.
6500
6510
6501 Added a check to the @reset command (since it's so
6511 Added a check to the @reset command (since it's so
6502 destructive, it's probably a good idea to ask for confirmation).
6512 destructive, it's probably a good idea to ask for confirmation).
6503 But now reset only works for full namespace resetting. Since the
6513 But now reset only works for full namespace resetting. Since the
6504 del keyword is already there for deleting a few specific
6514 del keyword is already there for deleting a few specific
6505 variables, I don't see the point of having a redundant magic
6515 variables, I don't see the point of having a redundant magic
6506 function for the same task.
6516 function for the same task.
6507
6517
6508 2001-11-24 Fernando Perez <fperez@colorado.edu>
6518 2001-11-24 Fernando Perez <fperez@colorado.edu>
6509
6519
6510 * Updated the builtin docs (esp. the ? ones).
6520 * Updated the builtin docs (esp. the ? ones).
6511
6521
6512 * Ran all the code through pychecker. Not terribly impressed with
6522 * Ran all the code through pychecker. Not terribly impressed with
6513 it: lots of spurious warnings and didn't really find anything of
6523 it: lots of spurious warnings and didn't really find anything of
6514 substance (just a few modules being imported and not used).
6524 substance (just a few modules being imported and not used).
6515
6525
6516 * Implemented the new ultraTB functionality into IPython. New
6526 * Implemented the new ultraTB functionality into IPython. New
6517 option: xcolors. This chooses color scheme. xmode now only selects
6527 option: xcolors. This chooses color scheme. xmode now only selects
6518 between Plain and Verbose. Better orthogonality.
6528 between Plain and Verbose. Better orthogonality.
6519
6529
6520 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6530 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6521 mode and color scheme for the exception handlers. Now it's
6531 mode and color scheme for the exception handlers. Now it's
6522 possible to have the verbose traceback with no coloring.
6532 possible to have the verbose traceback with no coloring.
6523
6533
6524 2001-11-23 Fernando Perez <fperez@colorado.edu>
6534 2001-11-23 Fernando Perez <fperez@colorado.edu>
6525
6535
6526 * Version 0.1.12 released, 0.1.13 opened.
6536 * Version 0.1.12 released, 0.1.13 opened.
6527
6537
6528 * Removed option to set auto-quote and auto-paren escapes by
6538 * Removed option to set auto-quote and auto-paren escapes by
6529 user. The chances of breaking valid syntax are just too high. If
6539 user. The chances of breaking valid syntax are just too high. If
6530 someone *really* wants, they can always dig into the code.
6540 someone *really* wants, they can always dig into the code.
6531
6541
6532 * Made prompt separators configurable.
6542 * Made prompt separators configurable.
6533
6543
6534 2001-11-22 Fernando Perez <fperez@colorado.edu>
6544 2001-11-22 Fernando Perez <fperez@colorado.edu>
6535
6545
6536 * Small bugfixes in many places.
6546 * Small bugfixes in many places.
6537
6547
6538 * Removed the MyCompleter class from ipplib. It seemed redundant
6548 * Removed the MyCompleter class from ipplib. It seemed redundant
6539 with the C-p,C-n history search functionality. Less code to
6549 with the C-p,C-n history search functionality. Less code to
6540 maintain.
6550 maintain.
6541
6551
6542 * Moved all the original ipython.py code into ipythonlib.py. Right
6552 * Moved all the original ipython.py code into ipythonlib.py. Right
6543 now it's just one big dump into a function called make_IPython, so
6553 now it's just one big dump into a function called make_IPython, so
6544 no real modularity has been gained. But at least it makes the
6554 no real modularity has been gained. But at least it makes the
6545 wrapper script tiny, and since ipythonlib is a module, it gets
6555 wrapper script tiny, and since ipythonlib is a module, it gets
6546 compiled and startup is much faster.
6556 compiled and startup is much faster.
6547
6557
6548 This is a reasobably 'deep' change, so we should test it for a
6558 This is a reasobably 'deep' change, so we should test it for a
6549 while without messing too much more with the code.
6559 while without messing too much more with the code.
6550
6560
6551 2001-11-21 Fernando Perez <fperez@colorado.edu>
6561 2001-11-21 Fernando Perez <fperez@colorado.edu>
6552
6562
6553 * Version 0.1.11 released, 0.1.12 opened for further work.
6563 * Version 0.1.11 released, 0.1.12 opened for further work.
6554
6564
6555 * Removed dependency on Itpl. It was only needed in one place. It
6565 * Removed dependency on Itpl. It was only needed in one place. It
6556 would be nice if this became part of python, though. It makes life
6566 would be nice if this became part of python, though. It makes life
6557 *a lot* easier in some cases.
6567 *a lot* easier in some cases.
6558
6568
6559 * Simplified the prefilter code a bit. Now all handlers are
6569 * Simplified the prefilter code a bit. Now all handlers are
6560 expected to explicitly return a value (at least a blank string).
6570 expected to explicitly return a value (at least a blank string).
6561
6571
6562 * Heavy edits in ipplib. Removed the help system altogether. Now
6572 * Heavy edits in ipplib. Removed the help system altogether. Now
6563 obj?/?? is used for inspecting objects, a magic @doc prints
6573 obj?/?? is used for inspecting objects, a magic @doc prints
6564 docstrings, and full-blown Python help is accessed via the 'help'
6574 docstrings, and full-blown Python help is accessed via the 'help'
6565 keyword. This cleans up a lot of code (less to maintain) and does
6575 keyword. This cleans up a lot of code (less to maintain) and does
6566 the job. Since 'help' is now a standard Python component, might as
6576 the job. Since 'help' is now a standard Python component, might as
6567 well use it and remove duplicate functionality.
6577 well use it and remove duplicate functionality.
6568
6578
6569 Also removed the option to use ipplib as a standalone program. By
6579 Also removed the option to use ipplib as a standalone program. By
6570 now it's too dependent on other parts of IPython to function alone.
6580 now it's too dependent on other parts of IPython to function alone.
6571
6581
6572 * Fixed bug in genutils.pager. It would crash if the pager was
6582 * Fixed bug in genutils.pager. It would crash if the pager was
6573 exited immediately after opening (broken pipe).
6583 exited immediately after opening (broken pipe).
6574
6584
6575 * Trimmed down the VerboseTB reporting a little. The header is
6585 * Trimmed down the VerboseTB reporting a little. The header is
6576 much shorter now and the repeated exception arguments at the end
6586 much shorter now and the repeated exception arguments at the end
6577 have been removed. For interactive use the old header seemed a bit
6587 have been removed. For interactive use the old header seemed a bit
6578 excessive.
6588 excessive.
6579
6589
6580 * Fixed small bug in output of @whos for variables with multi-word
6590 * Fixed small bug in output of @whos for variables with multi-word
6581 types (only first word was displayed).
6591 types (only first word was displayed).
6582
6592
6583 2001-11-17 Fernando Perez <fperez@colorado.edu>
6593 2001-11-17 Fernando Perez <fperez@colorado.edu>
6584
6594
6585 * Version 0.1.10 released, 0.1.11 opened for further work.
6595 * Version 0.1.10 released, 0.1.11 opened for further work.
6586
6596
6587 * Modified dirs and friends. dirs now *returns* the stack (not
6597 * Modified dirs and friends. dirs now *returns* the stack (not
6588 prints), so one can manipulate it as a variable. Convenient to
6598 prints), so one can manipulate it as a variable. Convenient to
6589 travel along many directories.
6599 travel along many directories.
6590
6600
6591 * Fixed bug in magic_pdef: would only work with functions with
6601 * Fixed bug in magic_pdef: would only work with functions with
6592 arguments with default values.
6602 arguments with default values.
6593
6603
6594 2001-11-14 Fernando Perez <fperez@colorado.edu>
6604 2001-11-14 Fernando Perez <fperez@colorado.edu>
6595
6605
6596 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6606 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6597 example with IPython. Various other minor fixes and cleanups.
6607 example with IPython. Various other minor fixes and cleanups.
6598
6608
6599 * Version 0.1.9 released, 0.1.10 opened for further work.
6609 * Version 0.1.9 released, 0.1.10 opened for further work.
6600
6610
6601 * Added sys.path to the list of directories searched in the
6611 * Added sys.path to the list of directories searched in the
6602 execfile= option. It used to be the current directory and the
6612 execfile= option. It used to be the current directory and the
6603 user's IPYTHONDIR only.
6613 user's IPYTHONDIR only.
6604
6614
6605 2001-11-13 Fernando Perez <fperez@colorado.edu>
6615 2001-11-13 Fernando Perez <fperez@colorado.edu>
6606
6616
6607 * Reinstated the raw_input/prefilter separation that Janko had
6617 * Reinstated the raw_input/prefilter separation that Janko had
6608 initially. This gives a more convenient setup for extending the
6618 initially. This gives a more convenient setup for extending the
6609 pre-processor from the outside: raw_input always gets a string,
6619 pre-processor from the outside: raw_input always gets a string,
6610 and prefilter has to process it. We can then redefine prefilter
6620 and prefilter has to process it. We can then redefine prefilter
6611 from the outside and implement extensions for special
6621 from the outside and implement extensions for special
6612 purposes.
6622 purposes.
6613
6623
6614 Today I got one for inputting PhysicalQuantity objects
6624 Today I got one for inputting PhysicalQuantity objects
6615 (from Scientific) without needing any function calls at
6625 (from Scientific) without needing any function calls at
6616 all. Extremely convenient, and it's all done as a user-level
6626 all. Extremely convenient, and it's all done as a user-level
6617 extension (no IPython code was touched). Now instead of:
6627 extension (no IPython code was touched). Now instead of:
6618 a = PhysicalQuantity(4.2,'m/s**2')
6628 a = PhysicalQuantity(4.2,'m/s**2')
6619 one can simply say
6629 one can simply say
6620 a = 4.2 m/s**2
6630 a = 4.2 m/s**2
6621 or even
6631 or even
6622 a = 4.2 m/s^2
6632 a = 4.2 m/s^2
6623
6633
6624 I use this, but it's also a proof of concept: IPython really is
6634 I use this, but it's also a proof of concept: IPython really is
6625 fully user-extensible, even at the level of the parsing of the
6635 fully user-extensible, even at the level of the parsing of the
6626 command line. It's not trivial, but it's perfectly doable.
6636 command line. It's not trivial, but it's perfectly doable.
6627
6637
6628 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6638 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6629 the problem of modules being loaded in the inverse order in which
6639 the problem of modules being loaded in the inverse order in which
6630 they were defined in
6640 they were defined in
6631
6641
6632 * Version 0.1.8 released, 0.1.9 opened for further work.
6642 * Version 0.1.8 released, 0.1.9 opened for further work.
6633
6643
6634 * Added magics pdef, source and file. They respectively show the
6644 * Added magics pdef, source and file. They respectively show the
6635 definition line ('prototype' in C), source code and full python
6645 definition line ('prototype' in C), source code and full python
6636 file for any callable object. The object inspector oinfo uses
6646 file for any callable object. The object inspector oinfo uses
6637 these to show the same information.
6647 these to show the same information.
6638
6648
6639 * Version 0.1.7 released, 0.1.8 opened for further work.
6649 * Version 0.1.7 released, 0.1.8 opened for further work.
6640
6650
6641 * Separated all the magic functions into a class called Magic. The
6651 * Separated all the magic functions into a class called Magic. The
6642 InteractiveShell class was becoming too big for Xemacs to handle
6652 InteractiveShell class was becoming too big for Xemacs to handle
6643 (de-indenting a line would lock it up for 10 seconds while it
6653 (de-indenting a line would lock it up for 10 seconds while it
6644 backtracked on the whole class!)
6654 backtracked on the whole class!)
6645
6655
6646 FIXME: didn't work. It can be done, but right now namespaces are
6656 FIXME: didn't work. It can be done, but right now namespaces are
6647 all messed up. Do it later (reverted it for now, so at least
6657 all messed up. Do it later (reverted it for now, so at least
6648 everything works as before).
6658 everything works as before).
6649
6659
6650 * Got the object introspection system (magic_oinfo) working! I
6660 * Got the object introspection system (magic_oinfo) working! I
6651 think this is pretty much ready for release to Janko, so he can
6661 think this is pretty much ready for release to Janko, so he can
6652 test it for a while and then announce it. Pretty much 100% of what
6662 test it for a while and then announce it. Pretty much 100% of what
6653 I wanted for the 'phase 1' release is ready. Happy, tired.
6663 I wanted for the 'phase 1' release is ready. Happy, tired.
6654
6664
6655 2001-11-12 Fernando Perez <fperez@colorado.edu>
6665 2001-11-12 Fernando Perez <fperez@colorado.edu>
6656
6666
6657 * Version 0.1.6 released, 0.1.7 opened for further work.
6667 * Version 0.1.6 released, 0.1.7 opened for further work.
6658
6668
6659 * Fixed bug in printing: it used to test for truth before
6669 * Fixed bug in printing: it used to test for truth before
6660 printing, so 0 wouldn't print. Now checks for None.
6670 printing, so 0 wouldn't print. Now checks for None.
6661
6671
6662 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6672 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6663 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6673 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6664 reaches by hand into the outputcache. Think of a better way to do
6674 reaches by hand into the outputcache. Think of a better way to do
6665 this later.
6675 this later.
6666
6676
6667 * Various small fixes thanks to Nathan's comments.
6677 * Various small fixes thanks to Nathan's comments.
6668
6678
6669 * Changed magic_pprint to magic_Pprint. This way it doesn't
6679 * Changed magic_pprint to magic_Pprint. This way it doesn't
6670 collide with pprint() and the name is consistent with the command
6680 collide with pprint() and the name is consistent with the command
6671 line option.
6681 line option.
6672
6682
6673 * Changed prompt counter behavior to be fully like
6683 * Changed prompt counter behavior to be fully like
6674 Mathematica's. That is, even input that doesn't return a result
6684 Mathematica's. That is, even input that doesn't return a result
6675 raises the prompt counter. The old behavior was kind of confusing
6685 raises the prompt counter. The old behavior was kind of confusing
6676 (getting the same prompt number several times if the operation
6686 (getting the same prompt number several times if the operation
6677 didn't return a result).
6687 didn't return a result).
6678
6688
6679 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6689 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6680
6690
6681 * Fixed -Classic mode (wasn't working anymore).
6691 * Fixed -Classic mode (wasn't working anymore).
6682
6692
6683 * Added colored prompts using Nathan's new code. Colors are
6693 * Added colored prompts using Nathan's new code. Colors are
6684 currently hardwired, they can be user-configurable. For
6694 currently hardwired, they can be user-configurable. For
6685 developers, they can be chosen in file ipythonlib.py, at the
6695 developers, they can be chosen in file ipythonlib.py, at the
6686 beginning of the CachedOutput class def.
6696 beginning of the CachedOutput class def.
6687
6697
6688 2001-11-11 Fernando Perez <fperez@colorado.edu>
6698 2001-11-11 Fernando Perez <fperez@colorado.edu>
6689
6699
6690 * Version 0.1.5 released, 0.1.6 opened for further work.
6700 * Version 0.1.5 released, 0.1.6 opened for further work.
6691
6701
6692 * Changed magic_env to *return* the environment as a dict (not to
6702 * Changed magic_env to *return* the environment as a dict (not to
6693 print it). This way it prints, but it can also be processed.
6703 print it). This way it prints, but it can also be processed.
6694
6704
6695 * Added Verbose exception reporting to interactive
6705 * Added Verbose exception reporting to interactive
6696 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6706 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6697 traceback. Had to make some changes to the ultraTB file. This is
6707 traceback. Had to make some changes to the ultraTB file. This is
6698 probably the last 'big' thing in my mental todo list. This ties
6708 probably the last 'big' thing in my mental todo list. This ties
6699 in with the next entry:
6709 in with the next entry:
6700
6710
6701 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6711 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6702 has to specify is Plain, Color or Verbose for all exception
6712 has to specify is Plain, Color or Verbose for all exception
6703 handling.
6713 handling.
6704
6714
6705 * Removed ShellServices option. All this can really be done via
6715 * Removed ShellServices option. All this can really be done via
6706 the magic system. It's easier to extend, cleaner and has automatic
6716 the magic system. It's easier to extend, cleaner and has automatic
6707 namespace protection and documentation.
6717 namespace protection and documentation.
6708
6718
6709 2001-11-09 Fernando Perez <fperez@colorado.edu>
6719 2001-11-09 Fernando Perez <fperez@colorado.edu>
6710
6720
6711 * Fixed bug in output cache flushing (missing parameter to
6721 * Fixed bug in output cache flushing (missing parameter to
6712 __init__). Other small bugs fixed (found using pychecker).
6722 __init__). Other small bugs fixed (found using pychecker).
6713
6723
6714 * Version 0.1.4 opened for bugfixing.
6724 * Version 0.1.4 opened for bugfixing.
6715
6725
6716 2001-11-07 Fernando Perez <fperez@colorado.edu>
6726 2001-11-07 Fernando Perez <fperez@colorado.edu>
6717
6727
6718 * Version 0.1.3 released, mainly because of the raw_input bug.
6728 * Version 0.1.3 released, mainly because of the raw_input bug.
6719
6729
6720 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6730 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6721 and when testing for whether things were callable, a call could
6731 and when testing for whether things were callable, a call could
6722 actually be made to certain functions. They would get called again
6732 actually be made to certain functions. They would get called again
6723 once 'really' executed, with a resulting double call. A disaster
6733 once 'really' executed, with a resulting double call. A disaster
6724 in many cases (list.reverse() would never work!).
6734 in many cases (list.reverse() would never work!).
6725
6735
6726 * Removed prefilter() function, moved its code to raw_input (which
6736 * Removed prefilter() function, moved its code to raw_input (which
6727 after all was just a near-empty caller for prefilter). This saves
6737 after all was just a near-empty caller for prefilter). This saves
6728 a function call on every prompt, and simplifies the class a tiny bit.
6738 a function call on every prompt, and simplifies the class a tiny bit.
6729
6739
6730 * Fix _ip to __ip name in magic example file.
6740 * Fix _ip to __ip name in magic example file.
6731
6741
6732 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6742 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6733 work with non-gnu versions of tar.
6743 work with non-gnu versions of tar.
6734
6744
6735 2001-11-06 Fernando Perez <fperez@colorado.edu>
6745 2001-11-06 Fernando Perez <fperez@colorado.edu>
6736
6746
6737 * Version 0.1.2. Just to keep track of the recent changes.
6747 * Version 0.1.2. Just to keep track of the recent changes.
6738
6748
6739 * Fixed nasty bug in output prompt routine. It used to check 'if
6749 * Fixed nasty bug in output prompt routine. It used to check 'if
6740 arg != None...'. Problem is, this fails if arg implements a
6750 arg != None...'. Problem is, this fails if arg implements a
6741 special comparison (__cmp__) which disallows comparing to
6751 special comparison (__cmp__) which disallows comparing to
6742 None. Found it when trying to use the PhysicalQuantity module from
6752 None. Found it when trying to use the PhysicalQuantity module from
6743 ScientificPython.
6753 ScientificPython.
6744
6754
6745 2001-11-05 Fernando Perez <fperez@colorado.edu>
6755 2001-11-05 Fernando Perez <fperez@colorado.edu>
6746
6756
6747 * Also added dirs. Now the pushd/popd/dirs family functions
6757 * Also added dirs. Now the pushd/popd/dirs family functions
6748 basically like the shell, with the added convenience of going home
6758 basically like the shell, with the added convenience of going home
6749 when called with no args.
6759 when called with no args.
6750
6760
6751 * pushd/popd slightly modified to mimic shell behavior more
6761 * pushd/popd slightly modified to mimic shell behavior more
6752 closely.
6762 closely.
6753
6763
6754 * Added env,pushd,popd from ShellServices as magic functions. I
6764 * Added env,pushd,popd from ShellServices as magic functions. I
6755 think the cleanest will be to port all desired functions from
6765 think the cleanest will be to port all desired functions from
6756 ShellServices as magics and remove ShellServices altogether. This
6766 ShellServices as magics and remove ShellServices altogether. This
6757 will provide a single, clean way of adding functionality
6767 will provide a single, clean way of adding functionality
6758 (shell-type or otherwise) to IP.
6768 (shell-type or otherwise) to IP.
6759
6769
6760 2001-11-04 Fernando Perez <fperez@colorado.edu>
6770 2001-11-04 Fernando Perez <fperez@colorado.edu>
6761
6771
6762 * Added .ipython/ directory to sys.path. This way users can keep
6772 * Added .ipython/ directory to sys.path. This way users can keep
6763 customizations there and access them via import.
6773 customizations there and access them via import.
6764
6774
6765 2001-11-03 Fernando Perez <fperez@colorado.edu>
6775 2001-11-03 Fernando Perez <fperez@colorado.edu>
6766
6776
6767 * Opened version 0.1.1 for new changes.
6777 * Opened version 0.1.1 for new changes.
6768
6778
6769 * Changed version number to 0.1.0: first 'public' release, sent to
6779 * Changed version number to 0.1.0: first 'public' release, sent to
6770 Nathan and Janko.
6780 Nathan and Janko.
6771
6781
6772 * Lots of small fixes and tweaks.
6782 * Lots of small fixes and tweaks.
6773
6783
6774 * Minor changes to whos format. Now strings are shown, snipped if
6784 * Minor changes to whos format. Now strings are shown, snipped if
6775 too long.
6785 too long.
6776
6786
6777 * Changed ShellServices to work on __main__ so they show up in @who
6787 * Changed ShellServices to work on __main__ so they show up in @who
6778
6788
6779 * Help also works with ? at the end of a line:
6789 * Help also works with ? at the end of a line:
6780 ?sin and sin?
6790 ?sin and sin?
6781 both produce the same effect. This is nice, as often I use the
6791 both produce the same effect. This is nice, as often I use the
6782 tab-complete to find the name of a method, but I used to then have
6792 tab-complete to find the name of a method, but I used to then have
6783 to go to the beginning of the line to put a ? if I wanted more
6793 to go to the beginning of the line to put a ? if I wanted more
6784 info. Now I can just add the ? and hit return. Convenient.
6794 info. Now I can just add the ? and hit return. Convenient.
6785
6795
6786 2001-11-02 Fernando Perez <fperez@colorado.edu>
6796 2001-11-02 Fernando Perez <fperez@colorado.edu>
6787
6797
6788 * Python version check (>=2.1) added.
6798 * Python version check (>=2.1) added.
6789
6799
6790 * Added LazyPython documentation. At this point the docs are quite
6800 * Added LazyPython documentation. At this point the docs are quite
6791 a mess. A cleanup is in order.
6801 a mess. A cleanup is in order.
6792
6802
6793 * Auto-installer created. For some bizarre reason, the zipfiles
6803 * Auto-installer created. For some bizarre reason, the zipfiles
6794 module isn't working on my system. So I made a tar version
6804 module isn't working on my system. So I made a tar version
6795 (hopefully the command line options in various systems won't kill
6805 (hopefully the command line options in various systems won't kill
6796 me).
6806 me).
6797
6807
6798 * Fixes to Struct in genutils. Now all dictionary-like methods are
6808 * Fixes to Struct in genutils. Now all dictionary-like methods are
6799 protected (reasonably).
6809 protected (reasonably).
6800
6810
6801 * Added pager function to genutils and changed ? to print usage
6811 * Added pager function to genutils and changed ? to print usage
6802 note through it (it was too long).
6812 note through it (it was too long).
6803
6813
6804 * Added the LazyPython functionality. Works great! I changed the
6814 * Added the LazyPython functionality. Works great! I changed the
6805 auto-quote escape to ';', it's on home row and next to '. But
6815 auto-quote escape to ';', it's on home row and next to '. But
6806 both auto-quote and auto-paren (still /) escapes are command-line
6816 both auto-quote and auto-paren (still /) escapes are command-line
6807 parameters.
6817 parameters.
6808
6818
6809
6819
6810 2001-11-01 Fernando Perez <fperez@colorado.edu>
6820 2001-11-01 Fernando Perez <fperez@colorado.edu>
6811
6821
6812 * Version changed to 0.0.7. Fairly large change: configuration now
6822 * Version changed to 0.0.7. Fairly large change: configuration now
6813 is all stored in a directory, by default .ipython. There, all
6823 is all stored in a directory, by default .ipython. There, all
6814 config files have normal looking names (not .names)
6824 config files have normal looking names (not .names)
6815
6825
6816 * Version 0.0.6 Released first to Lucas and Archie as a test
6826 * Version 0.0.6 Released first to Lucas and Archie as a test
6817 run. Since it's the first 'semi-public' release, change version to
6827 run. Since it's the first 'semi-public' release, change version to
6818 > 0.0.6 for any changes now.
6828 > 0.0.6 for any changes now.
6819
6829
6820 * Stuff I had put in the ipplib.py changelog:
6830 * Stuff I had put in the ipplib.py changelog:
6821
6831
6822 Changes to InteractiveShell:
6832 Changes to InteractiveShell:
6823
6833
6824 - Made the usage message a parameter.
6834 - Made the usage message a parameter.
6825
6835
6826 - Require the name of the shell variable to be given. It's a bit
6836 - Require the name of the shell variable to be given. It's a bit
6827 of a hack, but allows the name 'shell' not to be hardwired in the
6837 of a hack, but allows the name 'shell' not to be hardwired in the
6828 magic (@) handler, which is problematic b/c it requires
6838 magic (@) handler, which is problematic b/c it requires
6829 polluting the global namespace with 'shell'. This in turn is
6839 polluting the global namespace with 'shell'. This in turn is
6830 fragile: if a user redefines a variable called shell, things
6840 fragile: if a user redefines a variable called shell, things
6831 break.
6841 break.
6832
6842
6833 - magic @: all functions available through @ need to be defined
6843 - magic @: all functions available through @ need to be defined
6834 as magic_<name>, even though they can be called simply as
6844 as magic_<name>, even though they can be called simply as
6835 @<name>. This allows the special command @magic to gather
6845 @<name>. This allows the special command @magic to gather
6836 information automatically about all existing magic functions,
6846 information automatically about all existing magic functions,
6837 even if they are run-time user extensions, by parsing the shell
6847 even if they are run-time user extensions, by parsing the shell
6838 instance __dict__ looking for special magic_ names.
6848 instance __dict__ looking for special magic_ names.
6839
6849
6840 - mainloop: added *two* local namespace parameters. This allows
6850 - mainloop: added *two* local namespace parameters. This allows
6841 the class to differentiate between parameters which were there
6851 the class to differentiate between parameters which were there
6842 before and after command line initialization was processed. This
6852 before and after command line initialization was processed. This
6843 way, later @who can show things loaded at startup by the
6853 way, later @who can show things loaded at startup by the
6844 user. This trick was necessary to make session saving/reloading
6854 user. This trick was necessary to make session saving/reloading
6845 really work: ideally after saving/exiting/reloading a session,
6855 really work: ideally after saving/exiting/reloading a session,
6846 *everything* should look the same, including the output of @who. I
6856 *everything* should look the same, including the output of @who. I
6847 was only able to make this work with this double namespace
6857 was only able to make this work with this double namespace
6848 trick.
6858 trick.
6849
6859
6850 - added a header to the logfile which allows (almost) full
6860 - added a header to the logfile which allows (almost) full
6851 session restoring.
6861 session restoring.
6852
6862
6853 - prepend lines beginning with @ or !, with a and log
6863 - prepend lines beginning with @ or !, with a and log
6854 them. Why? !lines: may be useful to know what you did @lines:
6864 them. Why? !lines: may be useful to know what you did @lines:
6855 they may affect session state. So when restoring a session, at
6865 they may affect session state. So when restoring a session, at
6856 least inform the user of their presence. I couldn't quite get
6866 least inform the user of their presence. I couldn't quite get
6857 them to properly re-execute, but at least the user is warned.
6867 them to properly re-execute, but at least the user is warned.
6858
6868
6859 * Started ChangeLog.
6869 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now