##// END OF EJS Templates
fix small bug seen with f2py-generated modules
fperez -
Show More
@@ -1,577 +1,582 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 2723 2007-09-07 07:44:16Z fperez $
9 $Id: OInspect.py 2843 2007-10-15 21:22:32Z 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:
241 elif type(obj) is types.InstanceType:
242 obj = obj.__call__
242 obj = obj.__call__
243
243
244 output = self.__getdef(obj,oname)
244 output = self.__getdef(obj,oname)
245 if output is None:
245 if output is None:
246 self.noinfo('definition header',oname)
246 self.noinfo('definition header',oname)
247 else:
247 else:
248 print >>Term.cout, header,self.format(output),
248 print >>Term.cout, header,self.format(output),
249
249
250 def pdoc(self,obj,oname='',formatter = None):
250 def pdoc(self,obj,oname='',formatter = None):
251 """Print the docstring for any object.
251 """Print the docstring for any object.
252
252
253 Optional:
253 Optional:
254 -formatter: a function to run the docstring through for specially
254 -formatter: a function to run the docstring through for specially
255 formatted docstrings."""
255 formatted docstrings."""
256
256
257 head = self.__head # so that itpl can find it even if private
257 head = self.__head # so that itpl can find it even if private
258 ds = getdoc(obj)
258 ds = getdoc(obj)
259 if formatter:
259 if formatter:
260 ds = formatter(ds)
260 ds = formatter(ds)
261 if inspect.isclass(obj):
261 if inspect.isclass(obj):
262 init_ds = getdoc(obj.__init__)
262 init_ds = getdoc(obj.__init__)
263 output = itpl('$head("Class Docstring:")\n'
263 output = itpl('$head("Class Docstring:")\n'
264 '$indent(ds)\n'
264 '$indent(ds)\n'
265 '$head("Constructor Docstring"):\n'
265 '$head("Constructor Docstring"):\n'
266 '$indent(init_ds)')
266 '$indent(init_ds)')
267 elif (type(obj) is types.InstanceType or isinstance(obj,object)) \
267 elif (type(obj) is types.InstanceType or isinstance(obj,object)) \
268 and hasattr(obj,'__call__'):
268 and hasattr(obj,'__call__'):
269 call_ds = getdoc(obj.__call__)
269 call_ds = getdoc(obj.__call__)
270 if call_ds:
270 if call_ds:
271 output = itpl('$head("Class Docstring:")\n$indent(ds)\n'
271 output = itpl('$head("Class Docstring:")\n$indent(ds)\n'
272 '$head("Calling Docstring:")\n$indent(call_ds)')
272 '$head("Calling Docstring:")\n$indent(call_ds)')
273 else:
273 else:
274 output = ds
274 output = ds
275 else:
275 else:
276 output = ds
276 output = ds
277 if output is None:
277 if output is None:
278 self.noinfo('documentation',oname)
278 self.noinfo('documentation',oname)
279 return
279 return
280 page(output)
280 page(output)
281
281
282 def psource(self,obj,oname=''):
282 def psource(self,obj,oname=''):
283 """Print the source code for an object."""
283 """Print the source code for an object."""
284
284
285 # Flush the source cache because inspect can return out-of-date source
285 # Flush the source cache because inspect can return out-of-date source
286 linecache.checkcache()
286 linecache.checkcache()
287 try:
287 try:
288 src = getsource(obj)
288 src = getsource(obj)
289 except:
289 except:
290 self.noinfo('source',oname)
290 self.noinfo('source',oname)
291 else:
291 else:
292 page(self.format(src))
292 page(self.format(src))
293
293
294 def pfile(self,obj,oname=''):
294 def pfile(self,obj,oname=''):
295 """Show the whole file where an object was defined."""
295 """Show the whole file where an object was defined."""
296 try:
296 try:
297 sourcelines,lineno = inspect.getsourcelines(obj)
297 sourcelines,lineno = inspect.getsourcelines(obj)
298 except:
298 except:
299 self.noinfo('file',oname)
299 self.noinfo('file',oname)
300 else:
300 else:
301 # run contents of file through pager starting at line
301 # run contents of file through pager starting at line
302 # where the object is defined
302 # where the object is defined
303 ofile = inspect.getabsfile(obj)
303 ofile = inspect.getabsfile(obj)
304
304
305 if (ofile.endswith('.so') or ofile.endswith('.dll')):
305 if (ofile.endswith('.so') or ofile.endswith('.dll')):
306 print 'File %r is binary, not printing.' % ofile
306 print 'File %r is binary, not printing.' % ofile
307 elif not os.path.isfile(ofile):
307 elif not os.path.isfile(ofile):
308 print 'File %r does not exist, not printing.' % ofile
308 print 'File %r does not exist, not printing.' % ofile
309 else:
309 else:
310 # Print only text files, not extension binaries.
310 # Print only text files, not extension binaries.
311 page(self.format(open(ofile).read()),lineno)
311 page(self.format(open(ofile).read()),lineno)
312 #page(self.format(open(inspect.getabsfile(obj)).read()),lineno)
312 #page(self.format(open(inspect.getabsfile(obj)).read()),lineno)
313
313
314 def pinfo(self,obj,oname='',formatter=None,info=None,detail_level=0):
314 def pinfo(self,obj,oname='',formatter=None,info=None,detail_level=0):
315 """Show detailed information about an object.
315 """Show detailed information about an object.
316
316
317 Optional arguments:
317 Optional arguments:
318
318
319 - oname: name of the variable pointing to the object.
319 - oname: name of the variable pointing to the object.
320
320
321 - formatter: special formatter for docstrings (see pdoc)
321 - formatter: special formatter for docstrings (see pdoc)
322
322
323 - info: a structure with some information fields which may have been
323 - info: a structure with some information fields which may have been
324 precomputed already.
324 precomputed already.
325
325
326 - detail_level: if set to 1, more information is given.
326 - detail_level: if set to 1, more information is given.
327 """
327 """
328
328
329 obj_type = type(obj)
329 obj_type = type(obj)
330
330
331 header = self.__head
331 header = self.__head
332 if info is None:
332 if info is None:
333 ismagic = 0
333 ismagic = 0
334 isalias = 0
334 isalias = 0
335 ospace = ''
335 ospace = ''
336 else:
336 else:
337 ismagic = info.ismagic
337 ismagic = info.ismagic
338 isalias = info.isalias
338 isalias = info.isalias
339 ospace = info.namespace
339 ospace = info.namespace
340 # Get docstring, special-casing aliases:
340 # Get docstring, special-casing aliases:
341 if isalias:
341 if isalias:
342 if not callable(obj):
342 if not callable(obj):
343 try:
343 try:
344 ds = "Alias to the system command:\n %s" % obj[1]
344 ds = "Alias to the system command:\n %s" % obj[1]
345 except:
345 except:
346 ds = "Alias: " + str(obj)
346 ds = "Alias: " + str(obj)
347 else:
347 else:
348 ds = "Alias to " + str(obj)
348 ds = "Alias to " + str(obj)
349 if obj.__doc__:
349 if obj.__doc__:
350 ds += "\nDocstring:\n" + obj.__doc__
350 ds += "\nDocstring:\n" + obj.__doc__
351 else:
351 else:
352 ds = getdoc(obj)
352 ds = getdoc(obj)
353 if ds is None:
353 if ds is None:
354 ds = '<no docstring>'
354 ds = '<no docstring>'
355 if formatter is not None:
355 if formatter is not None:
356 ds = formatter(ds)
356 ds = formatter(ds)
357
357
358 # store output in a list which gets joined with \n at the end.
358 # store output in a list which gets joined with \n at the end.
359 out = myStringIO()
359 out = myStringIO()
360
360
361 string_max = 200 # max size of strings to show (snipped if longer)
361 string_max = 200 # max size of strings to show (snipped if longer)
362 shalf = int((string_max -5)/2)
362 shalf = int((string_max -5)/2)
363
363
364 if ismagic:
364 if ismagic:
365 obj_type_name = 'Magic function'
365 obj_type_name = 'Magic function'
366 elif isalias:
366 elif isalias:
367 obj_type_name = 'System alias'
367 obj_type_name = 'System alias'
368 else:
368 else:
369 obj_type_name = obj_type.__name__
369 obj_type_name = obj_type.__name__
370 out.writeln(header('Type:\t\t')+obj_type_name)
370 out.writeln(header('Type:\t\t')+obj_type_name)
371
371
372 try:
372 try:
373 bclass = obj.__class__
373 bclass = obj.__class__
374 out.writeln(header('Base Class:\t')+str(bclass))
374 out.writeln(header('Base Class:\t')+str(bclass))
375 except: pass
375 except: pass
376
376
377 # String form, but snip if too long in ? form (full in ??)
377 # String form, but snip if too long in ? form (full in ??)
378 if detail_level >= self.str_detail_level:
378 if detail_level >= self.str_detail_level:
379 try:
379 try:
380 ostr = str(obj)
380 ostr = str(obj)
381 str_head = 'String Form:'
381 str_head = 'String Form:'
382 if not detail_level and len(ostr)>string_max:
382 if not detail_level and len(ostr)>string_max:
383 ostr = ostr[:shalf] + ' <...> ' + ostr[-shalf:]
383 ostr = ostr[:shalf] + ' <...> ' + ostr[-shalf:]
384 ostr = ("\n" + " " * len(str_head.expandtabs())).\
384 ostr = ("\n" + " " * len(str_head.expandtabs())).\
385 join(map(string.strip,ostr.split("\n")))
385 join(map(string.strip,ostr.split("\n")))
386 if ostr.find('\n') > -1:
386 if ostr.find('\n') > -1:
387 # Print multi-line strings starting at the next line.
387 # Print multi-line strings starting at the next line.
388 str_sep = '\n'
388 str_sep = '\n'
389 else:
389 else:
390 str_sep = '\t'
390 str_sep = '\t'
391 out.writeln("%s%s%s" % (header(str_head),str_sep,ostr))
391 out.writeln("%s%s%s" % (header(str_head),str_sep,ostr))
392 except:
392 except:
393 pass
393 pass
394
394
395 if ospace:
395 if ospace:
396 out.writeln(header('Namespace:\t')+ospace)
396 out.writeln(header('Namespace:\t')+ospace)
397
397
398 # Length (for strings and lists)
398 # Length (for strings and lists)
399 try:
399 try:
400 length = str(len(obj))
400 length = str(len(obj))
401 out.writeln(header('Length:\t\t')+length)
401 out.writeln(header('Length:\t\t')+length)
402 except: pass
402 except: pass
403
403
404 # Filename where object was defined
404 # Filename where object was defined
405 binary_file = False
405 binary_file = False
406 try:
406 try:
407 fname = inspect.getabsfile(obj)
407 fname = inspect.getabsfile(obj)
408 if fname.endswith('<string>'):
408 if fname.endswith('<string>'):
409 fname = 'Dynamically generated function. No source code available.'
409 fname = 'Dynamically generated function. No source code available.'
410 if (fname.endswith('.so') or fname.endswith('.dll')):
410 if (fname.endswith('.so') or fname.endswith('.dll')):
411 binary_file = True
411 binary_file = True
412 out.writeln(header('File:\t\t')+fname)
412 out.writeln(header('File:\t\t')+fname)
413 except:
413 except:
414 # if anything goes wrong, we don't want to show source, so it's as
414 # if anything goes wrong, we don't want to show source, so it's as
415 # if the file was binary
415 # if the file was binary
416 binary_file = True
416 binary_file = True
417
417
418 # reconstruct the function definition and print it:
418 # reconstruct the function definition and print it:
419 defln = self.__getdef(obj,oname)
419 defln = self.__getdef(obj,oname)
420 if defln:
420 if defln:
421 out.write(header('Definition:\t')+self.format(defln))
421 out.write(header('Definition:\t')+self.format(defln))
422
422
423 # Docstrings only in detail 0 mode, since source contains them (we
423 # Docstrings only in detail 0 mode, since source contains them (we
424 # avoid repetitions). If source fails, we add them back, see below.
424 # avoid repetitions). If source fails, we add them back, see below.
425 if ds and detail_level == 0:
425 if ds and detail_level == 0:
426 out.writeln(header('Docstring:\n') + indent(ds))
426 out.writeln(header('Docstring:\n') + indent(ds))
427
427
428 # Original source code for any callable
428 # Original source code for any callable
429 if detail_level:
429 if detail_level:
430 # Flush the source cache because inspect can return out-of-date
430 # Flush the source cache because inspect can return out-of-date
431 # source
431 # source
432 linecache.checkcache()
432 linecache.checkcache()
433 source_success = False
433 source_success = False
434 try:
434 try:
435 source = self.format(getsource(obj,binary_file))
435 source = self.format(getsource(obj,binary_file))
436 if source:
436 if source:
437 out.write(header('Source:\n')+source.rstrip())
437 out.write(header('Source:\n')+source.rstrip())
438 source_success = True
438 source_success = True
439 except Exception, msg:
439 except Exception, msg:
440 pass
440 pass
441
441
442 if ds and not source_success:
442 if ds and not source_success:
443 out.writeln(header('Docstring [source file open failed]:\n')
443 out.writeln(header('Docstring [source file open failed]:\n')
444 + indent(ds))
444 + indent(ds))
445
445
446 # Constructor docstring for classes
446 # Constructor docstring for classes
447 if inspect.isclass(obj):
447 if inspect.isclass(obj):
448 # reconstruct the function definition and print it:
448 # reconstruct the function definition and print it:
449 try:
449 try:
450 obj_init = obj.__init__
450 obj_init = obj.__init__
451 except AttributeError:
451 except AttributeError:
452 init_def = init_ds = None
452 init_def = init_ds = None
453 else:
453 else:
454 init_def = self.__getdef(obj_init,oname)
454 init_def = self.__getdef(obj_init,oname)
455 init_ds = getdoc(obj_init)
455 init_ds = getdoc(obj_init)
456 # Skip Python's auto-generated docstrings
456 # Skip Python's auto-generated docstrings
457 if init_ds and \
457 if init_ds and \
458 init_ds.startswith('x.__init__(...) initializes'):
458 init_ds.startswith('x.__init__(...) initializes'):
459 init_ds = None
459 init_ds = None
460
460
461 if init_def or init_ds:
461 if init_def or init_ds:
462 out.writeln(header('\nConstructor information:'))
462 out.writeln(header('\nConstructor information:'))
463 if init_def:
463 if init_def:
464 out.write(header('Definition:\t')+ self.format(init_def))
464 out.write(header('Definition:\t')+ self.format(init_def))
465 if init_ds:
465 if init_ds:
466 out.writeln(header('Docstring:\n') + indent(init_ds))
466 out.writeln(header('Docstring:\n') + indent(init_ds))
467 # and class docstring for instances:
467 # and class docstring for instances:
468 elif obj_type is types.InstanceType or \
468 elif obj_type is types.InstanceType or \
469 isinstance(obj,object):
469 isinstance(obj,object):
470
470
471 # First, check whether the instance docstring is identical to the
471 # First, check whether the instance docstring is identical to the
472 # class one, and print it separately if they don't coincide. In
472 # class one, and print it separately if they don't coincide. In
473 # most cases they will, but it's nice to print all the info for
473 # most cases they will, but it's nice to print all the info for
474 # objects which use instance-customized docstrings.
474 # objects which use instance-customized docstrings.
475 if ds:
475 if ds:
476 class_ds = getdoc(obj.__class__)
476 try:
477 cls = getattr(obj,'__class__')
478 except:
479 class_ds = None
480 else:
481 class_ds = getdoc(cls)
477 # Skip Python's auto-generated docstrings
482 # Skip Python's auto-generated docstrings
478 if class_ds and \
483 if class_ds and \
479 (class_ds.startswith('function(code, globals[,') or \
484 (class_ds.startswith('function(code, globals[,') or \
480 class_ds.startswith('instancemethod(function, instance,') or \
485 class_ds.startswith('instancemethod(function, instance,') or \
481 class_ds.startswith('module(name[,') ):
486 class_ds.startswith('module(name[,') ):
482 class_ds = None
487 class_ds = None
483 if class_ds and ds != class_ds:
488 if class_ds and ds != class_ds:
484 out.writeln(header('Class Docstring:\n') +
489 out.writeln(header('Class Docstring:\n') +
485 indent(class_ds))
490 indent(class_ds))
486
491
487 # Next, try to show constructor docstrings
492 # Next, try to show constructor docstrings
488 try:
493 try:
489 init_ds = getdoc(obj.__init__)
494 init_ds = getdoc(obj.__init__)
490 # Skip Python's auto-generated docstrings
495 # Skip Python's auto-generated docstrings
491 if init_ds and \
496 if init_ds and \
492 init_ds.startswith('x.__init__(...) initializes'):
497 init_ds.startswith('x.__init__(...) initializes'):
493 init_ds = None
498 init_ds = None
494 except AttributeError:
499 except AttributeError:
495 init_ds = None
500 init_ds = None
496 if init_ds:
501 if init_ds:
497 out.writeln(header('Constructor Docstring:\n') +
502 out.writeln(header('Constructor Docstring:\n') +
498 indent(init_ds))
503 indent(init_ds))
499
504
500 # Call form docstring for callable instances
505 # Call form docstring for callable instances
501 if hasattr(obj,'__call__'):
506 if hasattr(obj,'__call__'):
502 #out.writeln(header('Callable:\t')+'Yes')
507 #out.writeln(header('Callable:\t')+'Yes')
503 call_def = self.__getdef(obj.__call__,oname)
508 call_def = self.__getdef(obj.__call__,oname)
504 #if call_def is None:
509 #if call_def is None:
505 # out.writeln(header('Call def:\t')+
510 # out.writeln(header('Call def:\t')+
506 # 'Calling definition not available.')
511 # 'Calling definition not available.')
507 if call_def is not None:
512 if call_def is not None:
508 out.writeln(header('Call def:\t')+self.format(call_def))
513 out.writeln(header('Call def:\t')+self.format(call_def))
509 call_ds = getdoc(obj.__call__)
514 call_ds = getdoc(obj.__call__)
510 # Skip Python's auto-generated docstrings
515 # Skip Python's auto-generated docstrings
511 if call_ds and call_ds.startswith('x.__call__(...) <==> x(...)'):
516 if call_ds and call_ds.startswith('x.__call__(...) <==> x(...)'):
512 call_ds = None
517 call_ds = None
513 if call_ds:
518 if call_ds:
514 out.writeln(header('Call docstring:\n') + indent(call_ds))
519 out.writeln(header('Call docstring:\n') + indent(call_ds))
515
520
516 # Finally send to printer/pager
521 # Finally send to printer/pager
517 output = out.getvalue()
522 output = out.getvalue()
518 if output:
523 if output:
519 page(output)
524 page(output)
520 # end pinfo
525 # end pinfo
521
526
522 def psearch(self,pattern,ns_table,ns_search=[],
527 def psearch(self,pattern,ns_table,ns_search=[],
523 ignore_case=False,show_all=False):
528 ignore_case=False,show_all=False):
524 """Search namespaces with wildcards for objects.
529 """Search namespaces with wildcards for objects.
525
530
526 Arguments:
531 Arguments:
527
532
528 - pattern: string containing shell-like wildcards to use in namespace
533 - pattern: string containing shell-like wildcards to use in namespace
529 searches and optionally a type specification to narrow the search to
534 searches and optionally a type specification to narrow the search to
530 objects of that type.
535 objects of that type.
531
536
532 - ns_table: dict of name->namespaces for search.
537 - ns_table: dict of name->namespaces for search.
533
538
534 Optional arguments:
539 Optional arguments:
535
540
536 - ns_search: list of namespace names to include in search.
541 - ns_search: list of namespace names to include in search.
537
542
538 - ignore_case(False): make the search case-insensitive.
543 - ignore_case(False): make the search case-insensitive.
539
544
540 - show_all(False): show all names, including those starting with
545 - show_all(False): show all names, including those starting with
541 underscores.
546 underscores.
542 """
547 """
543 #print 'ps pattern:<%r>' % pattern # dbg
548 #print 'ps pattern:<%r>' % pattern # dbg
544
549
545 # defaults
550 # defaults
546 type_pattern = 'all'
551 type_pattern = 'all'
547 filter = ''
552 filter = ''
548
553
549 cmds = pattern.split()
554 cmds = pattern.split()
550 len_cmds = len(cmds)
555 len_cmds = len(cmds)
551 if len_cmds == 1:
556 if len_cmds == 1:
552 # Only filter pattern given
557 # Only filter pattern given
553 filter = cmds[0]
558 filter = cmds[0]
554 elif len_cmds == 2:
559 elif len_cmds == 2:
555 # Both filter and type specified
560 # Both filter and type specified
556 filter,type_pattern = cmds
561 filter,type_pattern = cmds
557 else:
562 else:
558 raise ValueError('invalid argument string for psearch: <%s>' %
563 raise ValueError('invalid argument string for psearch: <%s>' %
559 pattern)
564 pattern)
560
565
561 # filter search namespaces
566 # filter search namespaces
562 for name in ns_search:
567 for name in ns_search:
563 if name not in ns_table:
568 if name not in ns_table:
564 raise ValueError('invalid namespace <%s>. Valid names: %s' %
569 raise ValueError('invalid namespace <%s>. Valid names: %s' %
565 (name,ns_table.keys()))
570 (name,ns_table.keys()))
566
571
567 #print 'type_pattern:',type_pattern # dbg
572 #print 'type_pattern:',type_pattern # dbg
568 search_result = []
573 search_result = []
569 for ns_name in ns_search:
574 for ns_name in ns_search:
570 ns = ns_table[ns_name]
575 ns = ns_table[ns_name]
571 tmp_res = list(list_namespace(ns,type_pattern,filter,
576 tmp_res = list(list_namespace(ns,type_pattern,filter,
572 ignore_case=ignore_case,
577 ignore_case=ignore_case,
573 show_all=show_all))
578 show_all=show_all))
574 search_result.extend(tmp_res)
579 search_result.extend(tmp_res)
575 search_result.sort()
580 search_result.sort()
576
581
577 page('\n'.join(search_result))
582 page('\n'.join(search_result))
@@ -1,7197 +1,7203 b''
1 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2
3 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
4 when querying objects with no __class__ attribute (such as
5 f2py-generated modules).
6
1 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
7 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
2
8
3 * IPython/Magic.py (magic_time): track compilation time and report
9 * IPython/Magic.py (magic_time): track compilation time and report
4 it if longer than 0.1s (fix done to %time and %timeit). After a
10 it if longer than 0.1s (fix done to %time and %timeit). After a
5 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
11 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
6
12
7 2007-09-18 Ville Vainio <vivainio@gmail.com>
13 2007-09-18 Ville Vainio <vivainio@gmail.com>
8
14
9 * genutils.py(make_quoted_expr): Do not use Itpl, it does
15 * genutils.py(make_quoted_expr): Do not use Itpl, it does
10 not support unicode at the moment. Fixes (many) magic calls with
16 not support unicode at the moment. Fixes (many) magic calls with
11 special characters.
17 special characters.
12
18
13 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
19 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
14
20
15 * IPython/genutils.py (doctest_reload): expose the doctest
21 * IPython/genutils.py (doctest_reload): expose the doctest
16 reloader to the user so that people can easily reset doctest while
22 reloader to the user so that people can easily reset doctest while
17 using it interactively. Fixes a problem reported by Jorgen.
23 using it interactively. Fixes a problem reported by Jorgen.
18
24
19 * IPython/iplib.py (InteractiveShell.__init__): protect the
25 * IPython/iplib.py (InteractiveShell.__init__): protect the
20 FakeModule instances used for __main__ in %run calls from
26 FakeModule instances used for __main__ in %run calls from
21 deletion, so that user code defined in them isn't left with
27 deletion, so that user code defined in them isn't left with
22 dangling references due to the Python module deletion machinery.
28 dangling references due to the Python module deletion machinery.
23 This should fix the problems reported by Darren.
29 This should fix the problems reported by Darren.
24
30
25 2007-09-10 Darren Dale <dd55@cornell.edu>
31 2007-09-10 Darren Dale <dd55@cornell.edu>
26
32
27 * Cleanup of IPShellQt and IPShellQt4
33 * Cleanup of IPShellQt and IPShellQt4
28
34
29 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
35 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
30
36
31 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
37 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
32 doctest support.
38 doctest support.
33
39
34 * IPython/iplib.py (safe_execfile): minor docstring improvements.
40 * IPython/iplib.py (safe_execfile): minor docstring improvements.
35
41
36 2007-09-08 Ville Vainio <vivainio@gmail.com>
42 2007-09-08 Ville Vainio <vivainio@gmail.com>
37
43
38 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
44 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
39 directory, not the target directory.
45 directory, not the target directory.
40
46
41 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
47 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
42 exception that won't print the tracebacks. Switched many magics to
48 exception that won't print the tracebacks. Switched many magics to
43 raise them on error situations, also GetoptError is not printed
49 raise them on error situations, also GetoptError is not printed
44 anymore.
50 anymore.
45
51
46 2007-09-07 Ville Vainio <vivainio@gmail.com>
52 2007-09-07 Ville Vainio <vivainio@gmail.com>
47
53
48 * iplib.py: do not auto-alias "dir", it screws up other dir auto
54 * iplib.py: do not auto-alias "dir", it screws up other dir auto
49 aliases.
55 aliases.
50
56
51 * genutils.py: SList.grep() implemented.
57 * genutils.py: SList.grep() implemented.
52
58
53 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
59 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
54 for easy "out of the box" setup of several common editors, so that
60 for easy "out of the box" setup of several common editors, so that
55 e.g. '%edit os.path.isfile' will jump to the correct line
61 e.g. '%edit os.path.isfile' will jump to the correct line
56 automatically. Contributions for command lines of your favourite
62 automatically. Contributions for command lines of your favourite
57 editors welcome.
63 editors welcome.
58
64
59 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
65 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
60
66
61 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
67 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
62 preventing source display in certain cases. In reality I think
68 preventing source display in certain cases. In reality I think
63 the problem is with Ubuntu's Python build, but this change works
69 the problem is with Ubuntu's Python build, but this change works
64 around the issue in some cases (not in all, unfortunately). I'd
70 around the issue in some cases (not in all, unfortunately). I'd
65 filed a Python bug on this with more details, but in the change of
71 filed a Python bug on this with more details, but in the change of
66 bug trackers it seems to have been lost.
72 bug trackers it seems to have been lost.
67
73
68 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
74 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
69 not the same, it's not self-documenting, doesn't allow range
75 not the same, it's not self-documenting, doesn't allow range
70 selection, and sorts alphabetically instead of numerically.
76 selection, and sorts alphabetically instead of numerically.
71 (magic_r): restore %r. No, "up + enter. One char magic" is not
77 (magic_r): restore %r. No, "up + enter. One char magic" is not
72 the same thing, since %r takes parameters to allow fast retrieval
78 the same thing, since %r takes parameters to allow fast retrieval
73 of old commands. I've received emails from users who use this a
79 of old commands. I've received emails from users who use this a
74 LOT, so it stays.
80 LOT, so it stays.
75 (magic_automagic): restore %automagic. "use _ip.option.automagic"
81 (magic_automagic): restore %automagic. "use _ip.option.automagic"
76 is not a valid replacement b/c it doesn't provide an complete
82 is not a valid replacement b/c it doesn't provide an complete
77 explanation (which the automagic docstring does).
83 explanation (which the automagic docstring does).
78 (magic_autocall): restore %autocall, with improved docstring.
84 (magic_autocall): restore %autocall, with improved docstring.
79 Same argument as for others, "use _ip.options.autocall" is not a
85 Same argument as for others, "use _ip.options.autocall" is not a
80 valid replacement.
86 valid replacement.
81 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
87 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
82 tutorials and online docs.
88 tutorials and online docs.
83
89
84 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
90 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
85
91
86 * IPython/usage.py (quick_reference): mention magics in quickref,
92 * IPython/usage.py (quick_reference): mention magics in quickref,
87 modified main banner to mention %quickref.
93 modified main banner to mention %quickref.
88
94
89 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
95 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
90
96
91 2007-09-06 Ville Vainio <vivainio@gmail.com>
97 2007-09-06 Ville Vainio <vivainio@gmail.com>
92
98
93 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
99 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
94 Callable aliases now pass the _ip as first arg. This breaks
100 Callable aliases now pass the _ip as first arg. This breaks
95 compatibility with earlier 0.8.2.svn series! (though they should
101 compatibility with earlier 0.8.2.svn series! (though they should
96 not have been in use yet outside these few extensions)
102 not have been in use yet outside these few extensions)
97
103
98 2007-09-05 Ville Vainio <vivainio@gmail.com>
104 2007-09-05 Ville Vainio <vivainio@gmail.com>
99
105
100 * external/mglob.py: expand('dirname') => ['dirname'], instead
106 * external/mglob.py: expand('dirname') => ['dirname'], instead
101 of ['dirname/foo','dirname/bar', ...].
107 of ['dirname/foo','dirname/bar', ...].
102
108
103 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
109 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
104 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
110 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
105 is useful for others as well).
111 is useful for others as well).
106
112
107 * iplib.py: on callable aliases (as opposed to old style aliases),
113 * iplib.py: on callable aliases (as opposed to old style aliases),
108 do var_expand() immediately, and use make_quoted_expr instead
114 do var_expand() immediately, and use make_quoted_expr instead
109 of hardcoded r"""
115 of hardcoded r"""
110
116
111 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
117 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
112 if not available load ipy_fsops.py for cp, mv, etc. replacements
118 if not available load ipy_fsops.py for cp, mv, etc. replacements
113
119
114 * OInspect.py, ipy_which.py: improve %which and obj? for callable
120 * OInspect.py, ipy_which.py: improve %which and obj? for callable
115 aliases
121 aliases
116
122
117 2007-09-04 Ville Vainio <vivainio@gmail.com>
123 2007-09-04 Ville Vainio <vivainio@gmail.com>
118
124
119 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
125 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
120 Relicensed under BSD with the authors approval.
126 Relicensed under BSD with the authors approval.
121
127
122 * ipmaker.py, usage.py: Remove %magic from default banner, improve
128 * ipmaker.py, usage.py: Remove %magic from default banner, improve
123 %quickref
129 %quickref
124
130
125 2007-09-03 Ville Vainio <vivainio@gmail.com>
131 2007-09-03 Ville Vainio <vivainio@gmail.com>
126
132
127 * Magic.py: %time now passes expression through prefilter,
133 * Magic.py: %time now passes expression through prefilter,
128 allowing IPython syntax.
134 allowing IPython syntax.
129
135
130 2007-09-01 Ville Vainio <vivainio@gmail.com>
136 2007-09-01 Ville Vainio <vivainio@gmail.com>
131
137
132 * ipmaker.py: Always show full traceback when newstyle config fails
138 * ipmaker.py: Always show full traceback when newstyle config fails
133
139
134 2007-08-27 Ville Vainio <vivainio@gmail.com>
140 2007-08-27 Ville Vainio <vivainio@gmail.com>
135
141
136 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
142 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
137
143
138 2007-08-26 Ville Vainio <vivainio@gmail.com>
144 2007-08-26 Ville Vainio <vivainio@gmail.com>
139
145
140 * ipmaker.py: Command line args have the highest priority again
146 * ipmaker.py: Command line args have the highest priority again
141
147
142 * iplib.py, ipmaker.py: -i command line argument now behaves as in
148 * iplib.py, ipmaker.py: -i command line argument now behaves as in
143 normal python, i.e. leaves the IPython session running after -c
149 normal python, i.e. leaves the IPython session running after -c
144 command or running a batch file from command line.
150 command or running a batch file from command line.
145
151
146 2007-08-22 Ville Vainio <vivainio@gmail.com>
152 2007-08-22 Ville Vainio <vivainio@gmail.com>
147
153
148 * iplib.py: no extra empty (last) line in raw hist w/ multiline
154 * iplib.py: no extra empty (last) line in raw hist w/ multiline
149 statements
155 statements
150
156
151 * logger.py: Fix bug where blank lines in history were not
157 * logger.py: Fix bug where blank lines in history were not
152 added until AFTER adding the current line; translated and raw
158 added until AFTER adding the current line; translated and raw
153 history should finally be in sync with prompt now.
159 history should finally be in sync with prompt now.
154
160
155 * ipy_completers.py: quick_completer now makes it easy to create
161 * ipy_completers.py: quick_completer now makes it easy to create
156 trivial custom completers
162 trivial custom completers
157
163
158 * clearcmd.py: shadow history compression & erasing, fixed input hist
164 * clearcmd.py: shadow history compression & erasing, fixed input hist
159 clearing.
165 clearing.
160
166
161 * envpersist.py, history.py: %env (sh profile only), %hist completers
167 * envpersist.py, history.py: %env (sh profile only), %hist completers
162
168
163 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
169 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
164 term title now include the drive letter, and always use / instead of
170 term title now include the drive letter, and always use / instead of
165 os.sep (as per recommended approach for win32 ipython in general).
171 os.sep (as per recommended approach for win32 ipython in general).
166
172
167 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
173 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
168 plain python scripts from ipykit command line by running
174 plain python scripts from ipykit command line by running
169 "py myscript.py", even w/o installed python.
175 "py myscript.py", even w/o installed python.
170
176
171 2007-08-21 Ville Vainio <vivainio@gmail.com>
177 2007-08-21 Ville Vainio <vivainio@gmail.com>
172
178
173 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
179 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
174 (for backwards compatibility)
180 (for backwards compatibility)
175
181
176 * history.py: switch back to %hist -t from %hist -r as default.
182 * history.py: switch back to %hist -t from %hist -r as default.
177 At least until raw history is fixed for good.
183 At least until raw history is fixed for good.
178
184
179 2007-08-20 Ville Vainio <vivainio@gmail.com>
185 2007-08-20 Ville Vainio <vivainio@gmail.com>
180
186
181 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
187 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
182 locate alias redeclarations etc. Also, avoid handling
188 locate alias redeclarations etc. Also, avoid handling
183 _ip.IP.alias_table directly, prefer using _ip.defalias.
189 _ip.IP.alias_table directly, prefer using _ip.defalias.
184
190
185
191
186 2007-08-15 Ville Vainio <vivainio@gmail.com>
192 2007-08-15 Ville Vainio <vivainio@gmail.com>
187
193
188 * prefilter.py: ! is now always served first
194 * prefilter.py: ! is now always served first
189
195
190 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
196 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
191
197
192 * IPython/iplib.py (safe_execfile): fix the SystemExit
198 * IPython/iplib.py (safe_execfile): fix the SystemExit
193 auto-suppression code to work in Python2.4 (the internal structure
199 auto-suppression code to work in Python2.4 (the internal structure
194 of that exception changed and I'd only tested the code with 2.5).
200 of that exception changed and I'd only tested the code with 2.5).
195 Bug reported by a SciPy attendee.
201 Bug reported by a SciPy attendee.
196
202
197 2007-08-13 Ville Vainio <vivainio@gmail.com>
203 2007-08-13 Ville Vainio <vivainio@gmail.com>
198
204
199 * prefilter.py: reverted !c:/bin/foo fix, made % in
205 * prefilter.py: reverted !c:/bin/foo fix, made % in
200 multiline specials work again
206 multiline specials work again
201
207
202 2007-08-13 Ville Vainio <vivainio@gmail.com>
208 2007-08-13 Ville Vainio <vivainio@gmail.com>
203
209
204 * prefilter.py: Take more care to special-case !, so that
210 * prefilter.py: Take more care to special-case !, so that
205 !c:/bin/foo.exe works.
211 !c:/bin/foo.exe works.
206
212
207 * setup.py: if we are building eggs, strip all docs and
213 * setup.py: if we are building eggs, strip all docs and
208 examples (it doesn't make sense to bytecompile examples,
214 examples (it doesn't make sense to bytecompile examples,
209 and docs would be in an awkward place anyway).
215 and docs would be in an awkward place anyway).
210
216
211 * Ryan Krauss' patch fixes start menu shortcuts when IPython
217 * Ryan Krauss' patch fixes start menu shortcuts when IPython
212 is installed into a directory that has spaces in the name.
218 is installed into a directory that has spaces in the name.
213
219
214 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
220 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
215
221
216 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
222 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
217 doctest profile and %doctest_mode, so they actually generate the
223 doctest profile and %doctest_mode, so they actually generate the
218 blank lines needed by doctest to separate individual tests.
224 blank lines needed by doctest to separate individual tests.
219
225
220 * IPython/iplib.py (safe_execfile): modify so that running code
226 * IPython/iplib.py (safe_execfile): modify so that running code
221 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
227 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
222 doesn't get a printed traceback. Any other value in sys.exit(),
228 doesn't get a printed traceback. Any other value in sys.exit(),
223 including the empty call, still generates a traceback. This
229 including the empty call, still generates a traceback. This
224 enables use of %run without having to pass '-e' for codes that
230 enables use of %run without having to pass '-e' for codes that
225 correctly set the exit status flag.
231 correctly set the exit status flag.
226
232
227 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
233 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
228
234
229 * IPython/iplib.py (InteractiveShell.post_config_initialization):
235 * IPython/iplib.py (InteractiveShell.post_config_initialization):
230 fix problems with doctests failing when run inside IPython due to
236 fix problems with doctests failing when run inside IPython due to
231 IPython's modifications of sys.displayhook.
237 IPython's modifications of sys.displayhook.
232
238
233 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
239 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
234
240
235 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
241 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
236 a string with names.
242 a string with names.
237
243
238 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
244 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
239
245
240 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
246 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
241 magic to toggle on/off the doctest pasting support without having
247 magic to toggle on/off the doctest pasting support without having
242 to leave a session to switch to a separate profile.
248 to leave a session to switch to a separate profile.
243
249
244 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
250 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
245
251
246 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
252 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
247 introduce a blank line between inputs, to conform to doctest
253 introduce a blank line between inputs, to conform to doctest
248 requirements.
254 requirements.
249
255
250 * IPython/OInspect.py (Inspector.pinfo): fix another part where
256 * IPython/OInspect.py (Inspector.pinfo): fix another part where
251 auto-generated docstrings for new-style classes were showing up.
257 auto-generated docstrings for new-style classes were showing up.
252
258
253 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
259 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
254
260
255 * api_changes: Add new file to track backward-incompatible
261 * api_changes: Add new file to track backward-incompatible
256 user-visible changes.
262 user-visible changes.
257
263
258 2007-08-06 Ville Vainio <vivainio@gmail.com>
264 2007-08-06 Ville Vainio <vivainio@gmail.com>
259
265
260 * ipmaker.py: fix bug where user_config_ns didn't exist at all
266 * ipmaker.py: fix bug where user_config_ns didn't exist at all
261 before all the config files were handled.
267 before all the config files were handled.
262
268
263 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
269 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
264
270
265 * IPython/irunner.py (RunnerFactory): Add new factory class for
271 * IPython/irunner.py (RunnerFactory): Add new factory class for
266 creating reusable runners based on filenames.
272 creating reusable runners based on filenames.
267
273
268 * IPython/Extensions/ipy_profile_doctest.py: New profile for
274 * IPython/Extensions/ipy_profile_doctest.py: New profile for
269 doctest support. It sets prompts/exceptions as similar to
275 doctest support. It sets prompts/exceptions as similar to
270 standard Python as possible, so that ipython sessions in this
276 standard Python as possible, so that ipython sessions in this
271 profile can be easily pasted as doctests with minimal
277 profile can be easily pasted as doctests with minimal
272 modifications. It also enables pasting of doctests from external
278 modifications. It also enables pasting of doctests from external
273 sources (even if they have leading whitespace), so that you can
279 sources (even if they have leading whitespace), so that you can
274 rerun doctests from existing sources.
280 rerun doctests from existing sources.
275
281
276 * IPython/iplib.py (_prefilter): fix a buglet where after entering
282 * IPython/iplib.py (_prefilter): fix a buglet where after entering
277 some whitespace, the prompt would become a continuation prompt
283 some whitespace, the prompt would become a continuation prompt
278 with no way of exiting it other than Ctrl-C. This fix brings us
284 with no way of exiting it other than Ctrl-C. This fix brings us
279 into conformity with how the default python prompt works.
285 into conformity with how the default python prompt works.
280
286
281 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
287 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
282 Add support for pasting not only lines that start with '>>>', but
288 Add support for pasting not only lines that start with '>>>', but
283 also with ' >>>'. That is, arbitrary whitespace can now precede
289 also with ' >>>'. That is, arbitrary whitespace can now precede
284 the prompts. This makes the system useful for pasting doctests
290 the prompts. This makes the system useful for pasting doctests
285 from docstrings back into a normal session.
291 from docstrings back into a normal session.
286
292
287 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
293 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
288
294
289 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
295 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
290 r1357, which had killed multiple invocations of an embedded
296 r1357, which had killed multiple invocations of an embedded
291 ipython (this means that example-embed has been broken for over 1
297 ipython (this means that example-embed has been broken for over 1
292 year!!!). Rather than possibly breaking the batch stuff for which
298 year!!!). Rather than possibly breaking the batch stuff for which
293 the code in iplib.py/interact was introduced, I worked around the
299 the code in iplib.py/interact was introduced, I worked around the
294 problem in the embedding class in Shell.py. We really need a
300 problem in the embedding class in Shell.py. We really need a
295 bloody test suite for this code, I'm sick of finding stuff that
301 bloody test suite for this code, I'm sick of finding stuff that
296 used to work breaking left and right every time I use an old
302 used to work breaking left and right every time I use an old
297 feature I hadn't touched in a few months.
303 feature I hadn't touched in a few months.
298 (kill_embedded): Add a new magic that only shows up in embedded
304 (kill_embedded): Add a new magic that only shows up in embedded
299 mode, to allow users to permanently deactivate an embedded instance.
305 mode, to allow users to permanently deactivate an embedded instance.
300
306
301 2007-08-01 Ville Vainio <vivainio@gmail.com>
307 2007-08-01 Ville Vainio <vivainio@gmail.com>
302
308
303 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
309 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
304 history gets out of sync on runlines (e.g. when running macros).
310 history gets out of sync on runlines (e.g. when running macros).
305
311
306 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
312 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
307
313
308 * IPython/Magic.py (magic_colors): fix win32-related error message
314 * IPython/Magic.py (magic_colors): fix win32-related error message
309 that could appear under *nix when readline was missing. Patch by
315 that could appear under *nix when readline was missing. Patch by
310 Scott Jackson, closes #175.
316 Scott Jackson, closes #175.
311
317
312 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
318 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
313
319
314 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
320 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
315 completer that it traits-aware, so that traits objects don't show
321 completer that it traits-aware, so that traits objects don't show
316 all of their internal attributes all the time.
322 all of their internal attributes all the time.
317
323
318 * IPython/genutils.py (dir2): moved this code from inside
324 * IPython/genutils.py (dir2): moved this code from inside
319 completer.py to expose it publicly, so I could use it in the
325 completer.py to expose it publicly, so I could use it in the
320 wildcards bugfix.
326 wildcards bugfix.
321
327
322 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
328 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
323 Stefan with Traits.
329 Stefan with Traits.
324
330
325 * IPython/completer.py (Completer.attr_matches): change internal
331 * IPython/completer.py (Completer.attr_matches): change internal
326 var name from 'object' to 'obj', since 'object' is now a builtin
332 var name from 'object' to 'obj', since 'object' is now a builtin
327 and this can lead to weird bugs if reusing this code elsewhere.
333 and this can lead to weird bugs if reusing this code elsewhere.
328
334
329 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
335 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
330
336
331 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
337 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
332 'foo?' and update the code to prevent printing of default
338 'foo?' and update the code to prevent printing of default
333 docstrings that started appearing after I added support for
339 docstrings that started appearing after I added support for
334 new-style classes. The approach I'm using isn't ideal (I just
340 new-style classes. The approach I'm using isn't ideal (I just
335 special-case those strings) but I'm not sure how to more robustly
341 special-case those strings) but I'm not sure how to more robustly
336 differentiate between truly user-written strings and Python's
342 differentiate between truly user-written strings and Python's
337 automatic ones.
343 automatic ones.
338
344
339 2007-07-09 Ville Vainio <vivainio@gmail.com>
345 2007-07-09 Ville Vainio <vivainio@gmail.com>
340
346
341 * completer.py: Applied Matthew Neeley's patch:
347 * completer.py: Applied Matthew Neeley's patch:
342 Dynamic attributes from trait_names and _getAttributeNames are added
348 Dynamic attributes from trait_names and _getAttributeNames are added
343 to the list of tab completions, but when this happens, the attribute
349 to the list of tab completions, but when this happens, the attribute
344 list is turned into a set, so the attributes are unordered when
350 list is turned into a set, so the attributes are unordered when
345 printed, which makes it hard to find the right completion. This patch
351 printed, which makes it hard to find the right completion. This patch
346 turns this set back into a list and sort it.
352 turns this set back into a list and sort it.
347
353
348 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
354 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
349
355
350 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
356 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
351 classes in various inspector functions.
357 classes in various inspector functions.
352
358
353 2007-06-28 Ville Vainio <vivainio@gmail.com>
359 2007-06-28 Ville Vainio <vivainio@gmail.com>
354
360
355 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
361 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
356 Implement "shadow" namespace, and callable aliases that reside there.
362 Implement "shadow" namespace, and callable aliases that reside there.
357 Use them by:
363 Use them by:
358
364
359 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
365 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
360
366
361 foo hello world
367 foo hello world
362 (gets translated to:)
368 (gets translated to:)
363 _sh.foo(r"""hello world""")
369 _sh.foo(r"""hello world""")
364
370
365 In practice, this kind of alias can take the role of a magic function
371 In practice, this kind of alias can take the role of a magic function
366
372
367 * New generic inspect_object, called on obj? and obj??
373 * New generic inspect_object, called on obj? and obj??
368
374
369 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
375 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
370
376
371 * IPython/ultraTB.py (findsource): fix a problem with
377 * IPython/ultraTB.py (findsource): fix a problem with
372 inspect.getfile that can cause crashes during traceback construction.
378 inspect.getfile that can cause crashes during traceback construction.
373
379
374 2007-06-14 Ville Vainio <vivainio@gmail.com>
380 2007-06-14 Ville Vainio <vivainio@gmail.com>
375
381
376 * iplib.py (handle_auto): Try to use ascii for printing "--->"
382 * iplib.py (handle_auto): Try to use ascii for printing "--->"
377 autocall rewrite indication, becausesometimes unicode fails to print
383 autocall rewrite indication, becausesometimes unicode fails to print
378 properly (and you get ' - - - '). Use plain uncoloured ---> for
384 properly (and you get ' - - - '). Use plain uncoloured ---> for
379 unicode.
385 unicode.
380
386
381 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
387 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
382
388
383 . pickleshare 'hash' commands (hget, hset, hcompress,
389 . pickleshare 'hash' commands (hget, hset, hcompress,
384 hdict) for efficient shadow history storage.
390 hdict) for efficient shadow history storage.
385
391
386 2007-06-13 Ville Vainio <vivainio@gmail.com>
392 2007-06-13 Ville Vainio <vivainio@gmail.com>
387
393
388 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
394 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
389 Added kw arg 'interactive', tell whether vars should be visible
395 Added kw arg 'interactive', tell whether vars should be visible
390 with %whos.
396 with %whos.
391
397
392 2007-06-11 Ville Vainio <vivainio@gmail.com>
398 2007-06-11 Ville Vainio <vivainio@gmail.com>
393
399
394 * pspersistence.py, Magic.py, iplib.py: directory history now saved
400 * pspersistence.py, Magic.py, iplib.py: directory history now saved
395 to db
401 to db
396
402
397 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
403 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
398 Also, it exits IPython immediately after evaluating the command (just like
404 Also, it exits IPython immediately after evaluating the command (just like
399 std python)
405 std python)
400
406
401 2007-06-05 Walter Doerwald <walter@livinglogic.de>
407 2007-06-05 Walter Doerwald <walter@livinglogic.de>
402
408
403 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
409 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
404 Python string and captures the output. (Idea and original patch by
410 Python string and captures the output. (Idea and original patch by
405 Stefan van der Walt)
411 Stefan van der Walt)
406
412
407 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
413 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
408
414
409 * IPython/ultraTB.py (VerboseTB.text): update printing of
415 * IPython/ultraTB.py (VerboseTB.text): update printing of
410 exception types for Python 2.5 (now all exceptions in the stdlib
416 exception types for Python 2.5 (now all exceptions in the stdlib
411 are new-style classes).
417 are new-style classes).
412
418
413 2007-05-31 Walter Doerwald <walter@livinglogic.de>
419 2007-05-31 Walter Doerwald <walter@livinglogic.de>
414
420
415 * IPython/Extensions/igrid.py: Add new commands refresh and
421 * IPython/Extensions/igrid.py: Add new commands refresh and
416 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
422 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
417 the iterator once (refresh) or after every x seconds (refresh_timer).
423 the iterator once (refresh) or after every x seconds (refresh_timer).
418 Add a working implementation of "searchexpression", where the text
424 Add a working implementation of "searchexpression", where the text
419 entered is not the text to search for, but an expression that must
425 entered is not the text to search for, but an expression that must
420 be true. Added display of shortcuts to the menu. Added commands "pickinput"
426 be true. Added display of shortcuts to the menu. Added commands "pickinput"
421 and "pickinputattr" that put the object or attribute under the cursor
427 and "pickinputattr" that put the object or attribute under the cursor
422 in the input line. Split the statusbar to be able to display the currently
428 in the input line. Split the statusbar to be able to display the currently
423 active refresh interval. (Patch by Nik Tautenhahn)
429 active refresh interval. (Patch by Nik Tautenhahn)
424
430
425 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
431 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
426
432
427 * fixing set_term_title to use ctypes as default
433 * fixing set_term_title to use ctypes as default
428
434
429 * fixing set_term_title fallback to work when curent dir
435 * fixing set_term_title fallback to work when curent dir
430 is on a windows network share
436 is on a windows network share
431
437
432 2007-05-28 Ville Vainio <vivainio@gmail.com>
438 2007-05-28 Ville Vainio <vivainio@gmail.com>
433
439
434 * %cpaste: strip + with > from left (diffs).
440 * %cpaste: strip + with > from left (diffs).
435
441
436 * iplib.py: Fix crash when readline not installed
442 * iplib.py: Fix crash when readline not installed
437
443
438 2007-05-26 Ville Vainio <vivainio@gmail.com>
444 2007-05-26 Ville Vainio <vivainio@gmail.com>
439
445
440 * generics.py: intruduce easy to extend result_display generic
446 * generics.py: intruduce easy to extend result_display generic
441 function (using simplegeneric.py).
447 function (using simplegeneric.py).
442
448
443 * Fixed the append functionality of %set.
449 * Fixed the append functionality of %set.
444
450
445 2007-05-25 Ville Vainio <vivainio@gmail.com>
451 2007-05-25 Ville Vainio <vivainio@gmail.com>
446
452
447 * New magic: %rep (fetch / run old commands from history)
453 * New magic: %rep (fetch / run old commands from history)
448
454
449 * New extension: mglob (%mglob magic), for powerful glob / find /filter
455 * New extension: mglob (%mglob magic), for powerful glob / find /filter
450 like functionality
456 like functionality
451
457
452 % maghistory.py: %hist -g PATTERM greps the history for pattern
458 % maghistory.py: %hist -g PATTERM greps the history for pattern
453
459
454 2007-05-24 Walter Doerwald <walter@livinglogic.de>
460 2007-05-24 Walter Doerwald <walter@livinglogic.de>
455
461
456 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
462 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
457 browse the IPython input history
463 browse the IPython input history
458
464
459 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
465 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
460 (mapped to "i") can be used to put the object under the curser in the input
466 (mapped to "i") can be used to put the object under the curser in the input
461 line. pickinputattr (mapped to "I") does the same for the attribute under
467 line. pickinputattr (mapped to "I") does the same for the attribute under
462 the cursor.
468 the cursor.
463
469
464 2007-05-24 Ville Vainio <vivainio@gmail.com>
470 2007-05-24 Ville Vainio <vivainio@gmail.com>
465
471
466 * Grand magic cleansing (changeset [2380]):
472 * Grand magic cleansing (changeset [2380]):
467
473
468 * Introduce ipy_legacy.py where the following magics were
474 * Introduce ipy_legacy.py where the following magics were
469 moved:
475 moved:
470
476
471 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
477 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
472
478
473 If you need them, either use default profile or "import ipy_legacy"
479 If you need them, either use default profile or "import ipy_legacy"
474 in your ipy_user_conf.py
480 in your ipy_user_conf.py
475
481
476 * Move sh and scipy profile to Extensions from UserConfig. this implies
482 * Move sh and scipy profile to Extensions from UserConfig. this implies
477 you should not edit them, but you don't need to run %upgrade when
483 you should not edit them, but you don't need to run %upgrade when
478 upgrading IPython anymore.
484 upgrading IPython anymore.
479
485
480 * %hist/%history now operates in "raw" mode by default. To get the old
486 * %hist/%history now operates in "raw" mode by default. To get the old
481 behaviour, run '%hist -n' (native mode).
487 behaviour, run '%hist -n' (native mode).
482
488
483 * split ipy_stock_completers.py to ipy_stock_completers.py and
489 * split ipy_stock_completers.py to ipy_stock_completers.py and
484 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
490 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
485 installed as default.
491 installed as default.
486
492
487 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
493 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
488 handling.
494 handling.
489
495
490 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
496 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
491 input if readline is available.
497 input if readline is available.
492
498
493 2007-05-23 Ville Vainio <vivainio@gmail.com>
499 2007-05-23 Ville Vainio <vivainio@gmail.com>
494
500
495 * macro.py: %store uses __getstate__ properly
501 * macro.py: %store uses __getstate__ properly
496
502
497 * exesetup.py: added new setup script for creating
503 * exesetup.py: added new setup script for creating
498 standalone IPython executables with py2exe (i.e.
504 standalone IPython executables with py2exe (i.e.
499 no python installation required).
505 no python installation required).
500
506
501 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
507 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
502 its place.
508 its place.
503
509
504 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
510 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
505
511
506 2007-05-21 Ville Vainio <vivainio@gmail.com>
512 2007-05-21 Ville Vainio <vivainio@gmail.com>
507
513
508 * platutil_win32.py (set_term_title): handle
514 * platutil_win32.py (set_term_title): handle
509 failure of 'title' system call properly.
515 failure of 'title' system call properly.
510
516
511 2007-05-17 Walter Doerwald <walter@livinglogic.de>
517 2007-05-17 Walter Doerwald <walter@livinglogic.de>
512
518
513 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
519 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
514 (Bug detected by Paul Mueller).
520 (Bug detected by Paul Mueller).
515
521
516 2007-05-16 Ville Vainio <vivainio@gmail.com>
522 2007-05-16 Ville Vainio <vivainio@gmail.com>
517
523
518 * ipy_profile_sci.py, ipython_win_post_install.py: Create
524 * ipy_profile_sci.py, ipython_win_post_install.py: Create
519 new "sci" profile, effectively a modern version of the old
525 new "sci" profile, effectively a modern version of the old
520 "scipy" profile (which is now slated for deprecation).
526 "scipy" profile (which is now slated for deprecation).
521
527
522 2007-05-15 Ville Vainio <vivainio@gmail.com>
528 2007-05-15 Ville Vainio <vivainio@gmail.com>
523
529
524 * pycolorize.py, pycolor.1: Paul Mueller's patches that
530 * pycolorize.py, pycolor.1: Paul Mueller's patches that
525 make pycolorize read input from stdin when run without arguments.
531 make pycolorize read input from stdin when run without arguments.
526
532
527 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
533 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
528
534
529 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
535 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
530 it in sh profile (instead of ipy_system_conf.py).
536 it in sh profile (instead of ipy_system_conf.py).
531
537
532 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
538 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
533 aliases are now lower case on windows (MyCommand.exe => mycommand).
539 aliases are now lower case on windows (MyCommand.exe => mycommand).
534
540
535 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
541 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
536 Macros are now callable objects that inherit from ipapi.IPyAutocall,
542 Macros are now callable objects that inherit from ipapi.IPyAutocall,
537 i.e. get autocalled regardless of system autocall setting.
543 i.e. get autocalled regardless of system autocall setting.
538
544
539 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
545 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
540
546
541 * IPython/rlineimpl.py: check for clear_history in readline and
547 * IPython/rlineimpl.py: check for clear_history in readline and
542 make it a dummy no-op if not available. This function isn't
548 make it a dummy no-op if not available. This function isn't
543 guaranteed to be in the API and appeared in Python 2.4, so we need
549 guaranteed to be in the API and appeared in Python 2.4, so we need
544 to check it ourselves. Also, clean up this file quite a bit.
550 to check it ourselves. Also, clean up this file quite a bit.
545
551
546 * ipython.1: update man page and full manual with information
552 * ipython.1: update man page and full manual with information
547 about threads (remove outdated warning). Closes #151.
553 about threads (remove outdated warning). Closes #151.
548
554
549 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
555 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
550
556
551 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
557 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
552 in trunk (note that this made it into the 0.8.1 release already,
558 in trunk (note that this made it into the 0.8.1 release already,
553 but the changelogs didn't get coordinated). Many thanks to Gael
559 but the changelogs didn't get coordinated). Many thanks to Gael
554 Varoquaux <gael.varoquaux-AT-normalesup.org>
560 Varoquaux <gael.varoquaux-AT-normalesup.org>
555
561
556 2007-05-09 *** Released version 0.8.1
562 2007-05-09 *** Released version 0.8.1
557
563
558 2007-05-10 Walter Doerwald <walter@livinglogic.de>
564 2007-05-10 Walter Doerwald <walter@livinglogic.de>
559
565
560 * IPython/Extensions/igrid.py: Incorporate html help into
566 * IPython/Extensions/igrid.py: Incorporate html help into
561 the module, so we don't have to search for the file.
567 the module, so we don't have to search for the file.
562
568
563 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
569 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
564
570
565 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
571 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
566
572
567 2007-04-30 Ville Vainio <vivainio@gmail.com>
573 2007-04-30 Ville Vainio <vivainio@gmail.com>
568
574
569 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
575 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
570 user has illegal (non-ascii) home directory name
576 user has illegal (non-ascii) home directory name
571
577
572 2007-04-27 Ville Vainio <vivainio@gmail.com>
578 2007-04-27 Ville Vainio <vivainio@gmail.com>
573
579
574 * platutils_win32.py: implement set_term_title for windows
580 * platutils_win32.py: implement set_term_title for windows
575
581
576 * Update version number
582 * Update version number
577
583
578 * ipy_profile_sh.py: more informative prompt (2 dir levels)
584 * ipy_profile_sh.py: more informative prompt (2 dir levels)
579
585
580 2007-04-26 Walter Doerwald <walter@livinglogic.de>
586 2007-04-26 Walter Doerwald <walter@livinglogic.de>
581
587
582 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
588 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
583 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
589 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
584 bug discovered by Ville).
590 bug discovered by Ville).
585
591
586 2007-04-26 Ville Vainio <vivainio@gmail.com>
592 2007-04-26 Ville Vainio <vivainio@gmail.com>
587
593
588 * Extensions/ipy_completers.py: Olivier's module completer now
594 * Extensions/ipy_completers.py: Olivier's module completer now
589 saves the list of root modules if it takes > 4 secs on the first run.
595 saves the list of root modules if it takes > 4 secs on the first run.
590
596
591 * Magic.py (%rehashx): %rehashx now clears the completer cache
597 * Magic.py (%rehashx): %rehashx now clears the completer cache
592
598
593
599
594 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
600 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
595
601
596 * ipython.el: fix incorrect color scheme, reported by Stefan.
602 * ipython.el: fix incorrect color scheme, reported by Stefan.
597 Closes #149.
603 Closes #149.
598
604
599 * IPython/PyColorize.py (Parser.format2): fix state-handling
605 * IPython/PyColorize.py (Parser.format2): fix state-handling
600 logic. I still don't like how that code handles state, but at
606 logic. I still don't like how that code handles state, but at
601 least now it should be correct, if inelegant. Closes #146.
607 least now it should be correct, if inelegant. Closes #146.
602
608
603 2007-04-25 Ville Vainio <vivainio@gmail.com>
609 2007-04-25 Ville Vainio <vivainio@gmail.com>
604
610
605 * Extensions/ipy_which.py: added extension for %which magic, works
611 * Extensions/ipy_which.py: added extension for %which magic, works
606 a lot like unix 'which' but also finds and expands aliases, and
612 a lot like unix 'which' but also finds and expands aliases, and
607 allows wildcards.
613 allows wildcards.
608
614
609 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
615 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
610 as opposed to returning nothing.
616 as opposed to returning nothing.
611
617
612 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
618 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
613 ipy_stock_completers on default profile, do import on sh profile.
619 ipy_stock_completers on default profile, do import on sh profile.
614
620
615 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
621 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
616
622
617 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
623 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
618 like ipython.py foo.py which raised a IndexError.
624 like ipython.py foo.py which raised a IndexError.
619
625
620 2007-04-21 Ville Vainio <vivainio@gmail.com>
626 2007-04-21 Ville Vainio <vivainio@gmail.com>
621
627
622 * Extensions/ipy_extutil.py: added extension to manage other ipython
628 * Extensions/ipy_extutil.py: added extension to manage other ipython
623 extensions. Now only supports 'ls' == list extensions.
629 extensions. Now only supports 'ls' == list extensions.
624
630
625 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
631 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
626
632
627 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
633 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
628 would prevent use of the exception system outside of a running
634 would prevent use of the exception system outside of a running
629 IPython instance.
635 IPython instance.
630
636
631 2007-04-20 Ville Vainio <vivainio@gmail.com>
637 2007-04-20 Ville Vainio <vivainio@gmail.com>
632
638
633 * Extensions/ipy_render.py: added extension for easy
639 * Extensions/ipy_render.py: added extension for easy
634 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
640 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
635 'Iptl' template notation,
641 'Iptl' template notation,
636
642
637 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
643 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
638 safer & faster 'import' completer.
644 safer & faster 'import' completer.
639
645
640 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
646 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
641 and _ip.defalias(name, command).
647 and _ip.defalias(name, command).
642
648
643 * Extensions/ipy_exportdb.py: New extension for exporting all the
649 * Extensions/ipy_exportdb.py: New extension for exporting all the
644 %store'd data in a portable format (normal ipapi calls like
650 %store'd data in a portable format (normal ipapi calls like
645 defmacro() etc.)
651 defmacro() etc.)
646
652
647 2007-04-19 Ville Vainio <vivainio@gmail.com>
653 2007-04-19 Ville Vainio <vivainio@gmail.com>
648
654
649 * upgrade_dir.py: skip junk files like *.pyc
655 * upgrade_dir.py: skip junk files like *.pyc
650
656
651 * Release.py: version number to 0.8.1
657 * Release.py: version number to 0.8.1
652
658
653 2007-04-18 Ville Vainio <vivainio@gmail.com>
659 2007-04-18 Ville Vainio <vivainio@gmail.com>
654
660
655 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
661 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
656 and later on win32.
662 and later on win32.
657
663
658 2007-04-16 Ville Vainio <vivainio@gmail.com>
664 2007-04-16 Ville Vainio <vivainio@gmail.com>
659
665
660 * iplib.py (showtraceback): Do not crash when running w/o readline.
666 * iplib.py (showtraceback): Do not crash when running w/o readline.
661
667
662 2007-04-12 Walter Doerwald <walter@livinglogic.de>
668 2007-04-12 Walter Doerwald <walter@livinglogic.de>
663
669
664 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
670 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
665 sorted (case sensitive with files and dirs mixed).
671 sorted (case sensitive with files and dirs mixed).
666
672
667 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
673 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
668
674
669 * IPython/Release.py (version): Open trunk for 0.8.1 development.
675 * IPython/Release.py (version): Open trunk for 0.8.1 development.
670
676
671 2007-04-10 *** Released version 0.8.0
677 2007-04-10 *** Released version 0.8.0
672
678
673 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
679 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
674
680
675 * Tag 0.8.0 for release.
681 * Tag 0.8.0 for release.
676
682
677 * IPython/iplib.py (reloadhist): add API function to cleanly
683 * IPython/iplib.py (reloadhist): add API function to cleanly
678 reload the readline history, which was growing inappropriately on
684 reload the readline history, which was growing inappropriately on
679 every %run call.
685 every %run call.
680
686
681 * win32_manual_post_install.py (run): apply last part of Nicolas
687 * win32_manual_post_install.py (run): apply last part of Nicolas
682 Pernetty's patch (I'd accidentally applied it in a different
688 Pernetty's patch (I'd accidentally applied it in a different
683 directory and this particular file didn't get patched).
689 directory and this particular file didn't get patched).
684
690
685 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
691 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
686
692
687 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
693 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
688 find the main thread id and use the proper API call. Thanks to
694 find the main thread id and use the proper API call. Thanks to
689 Stefan for the fix.
695 Stefan for the fix.
690
696
691 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
697 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
692 unit tests to reflect fixed ticket #52, and add more tests sent by
698 unit tests to reflect fixed ticket #52, and add more tests sent by
693 him.
699 him.
694
700
695 * IPython/iplib.py (raw_input): restore the readline completer
701 * IPython/iplib.py (raw_input): restore the readline completer
696 state on every input, in case third-party code messed it up.
702 state on every input, in case third-party code messed it up.
697 (_prefilter): revert recent addition of early-escape checks which
703 (_prefilter): revert recent addition of early-escape checks which
698 prevent many valid alias calls from working.
704 prevent many valid alias calls from working.
699
705
700 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
706 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
701 flag for sigint handler so we don't run a full signal() call on
707 flag for sigint handler so we don't run a full signal() call on
702 each runcode access.
708 each runcode access.
703
709
704 * IPython/Magic.py (magic_whos): small improvement to diagnostic
710 * IPython/Magic.py (magic_whos): small improvement to diagnostic
705 message.
711 message.
706
712
707 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
713 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
708
714
709 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
715 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
710 asynchronous exceptions working, i.e., Ctrl-C can actually
716 asynchronous exceptions working, i.e., Ctrl-C can actually
711 interrupt long-running code in the multithreaded shells.
717 interrupt long-running code in the multithreaded shells.
712
718
713 This is using Tomer Filiba's great ctypes-based trick:
719 This is using Tomer Filiba's great ctypes-based trick:
714 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
720 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
715 this in the past, but hadn't been able to make it work before. So
721 this in the past, but hadn't been able to make it work before. So
716 far it looks like it's actually running, but this needs more
722 far it looks like it's actually running, but this needs more
717 testing. If it really works, I'll be *very* happy, and we'll owe
723 testing. If it really works, I'll be *very* happy, and we'll owe
718 a huge thank you to Tomer. My current implementation is ugly,
724 a huge thank you to Tomer. My current implementation is ugly,
719 hackish and uses nasty globals, but I don't want to try and clean
725 hackish and uses nasty globals, but I don't want to try and clean
720 anything up until we know if it actually works.
726 anything up until we know if it actually works.
721
727
722 NOTE: this feature needs ctypes to work. ctypes is included in
728 NOTE: this feature needs ctypes to work. ctypes is included in
723 Python2.5, but 2.4 users will need to manually install it. This
729 Python2.5, but 2.4 users will need to manually install it. This
724 feature makes multi-threaded shells so much more usable that it's
730 feature makes multi-threaded shells so much more usable that it's
725 a minor price to pay (ctypes is very easy to install, already a
731 a minor price to pay (ctypes is very easy to install, already a
726 requirement for win32 and available in major linux distros).
732 requirement for win32 and available in major linux distros).
727
733
728 2007-04-04 Ville Vainio <vivainio@gmail.com>
734 2007-04-04 Ville Vainio <vivainio@gmail.com>
729
735
730 * Extensions/ipy_completers.py, ipy_stock_completers.py:
736 * Extensions/ipy_completers.py, ipy_stock_completers.py:
731 Moved implementations of 'bundled' completers to ipy_completers.py,
737 Moved implementations of 'bundled' completers to ipy_completers.py,
732 they are only enabled in ipy_stock_completers.py.
738 they are only enabled in ipy_stock_completers.py.
733
739
734 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
740 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
735
741
736 * IPython/PyColorize.py (Parser.format2): Fix identation of
742 * IPython/PyColorize.py (Parser.format2): Fix identation of
737 colorzied output and return early if color scheme is NoColor, to
743 colorzied output and return early if color scheme is NoColor, to
738 avoid unnecessary and expensive tokenization. Closes #131.
744 avoid unnecessary and expensive tokenization. Closes #131.
739
745
740 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
746 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
741
747
742 * IPython/Debugger.py: disable the use of pydb version 1.17. It
748 * IPython/Debugger.py: disable the use of pydb version 1.17. It
743 has a critical bug (a missing import that makes post-mortem not
749 has a critical bug (a missing import that makes post-mortem not
744 work at all). Unfortunately as of this time, this is the version
750 work at all). Unfortunately as of this time, this is the version
745 shipped with Ubuntu Edgy, so quite a few people have this one. I
751 shipped with Ubuntu Edgy, so quite a few people have this one. I
746 hope Edgy will update to a more recent package.
752 hope Edgy will update to a more recent package.
747
753
748 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
754 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
749
755
750 * IPython/iplib.py (_prefilter): close #52, second part of a patch
756 * IPython/iplib.py (_prefilter): close #52, second part of a patch
751 set by Stefan (only the first part had been applied before).
757 set by Stefan (only the first part had been applied before).
752
758
753 * IPython/Extensions/ipy_stock_completers.py (module_completer):
759 * IPython/Extensions/ipy_stock_completers.py (module_completer):
754 remove usage of the dangerous pkgutil.walk_packages(). See
760 remove usage of the dangerous pkgutil.walk_packages(). See
755 details in comments left in the code.
761 details in comments left in the code.
756
762
757 * IPython/Magic.py (magic_whos): add support for numpy arrays
763 * IPython/Magic.py (magic_whos): add support for numpy arrays
758 similar to what we had for Numeric.
764 similar to what we had for Numeric.
759
765
760 * IPython/completer.py (IPCompleter.complete): extend the
766 * IPython/completer.py (IPCompleter.complete): extend the
761 complete() call API to support completions by other mechanisms
767 complete() call API to support completions by other mechanisms
762 than readline. Closes #109.
768 than readline. Closes #109.
763
769
764 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
770 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
765 protect against a bug in Python's execfile(). Closes #123.
771 protect against a bug in Python's execfile(). Closes #123.
766
772
767 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
773 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
768
774
769 * IPython/iplib.py (split_user_input): ensure that when splitting
775 * IPython/iplib.py (split_user_input): ensure that when splitting
770 user input, the part that can be treated as a python name is pure
776 user input, the part that can be treated as a python name is pure
771 ascii (Python identifiers MUST be pure ascii). Part of the
777 ascii (Python identifiers MUST be pure ascii). Part of the
772 ongoing Unicode support work.
778 ongoing Unicode support work.
773
779
774 * IPython/Prompts.py (prompt_specials_color): Add \N for the
780 * IPython/Prompts.py (prompt_specials_color): Add \N for the
775 actual prompt number, without any coloring. This allows users to
781 actual prompt number, without any coloring. This allows users to
776 produce numbered prompts with their own colors. Added after a
782 produce numbered prompts with their own colors. Added after a
777 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
783 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
778
784
779 2007-03-31 Walter Doerwald <walter@livinglogic.de>
785 2007-03-31 Walter Doerwald <walter@livinglogic.de>
780
786
781 * IPython/Extensions/igrid.py: Map the return key
787 * IPython/Extensions/igrid.py: Map the return key
782 to enter() and shift-return to enterattr().
788 to enter() and shift-return to enterattr().
783
789
784 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
790 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
785
791
786 * IPython/Magic.py (magic_psearch): add unicode support by
792 * IPython/Magic.py (magic_psearch): add unicode support by
787 encoding to ascii the input, since this routine also only deals
793 encoding to ascii the input, since this routine also only deals
788 with valid Python names. Fixes a bug reported by Stefan.
794 with valid Python names. Fixes a bug reported by Stefan.
789
795
790 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
796 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
791
797
792 * IPython/Magic.py (_inspect): convert unicode input into ascii
798 * IPython/Magic.py (_inspect): convert unicode input into ascii
793 before trying to evaluate it as a Python identifier. This fixes a
799 before trying to evaluate it as a Python identifier. This fixes a
794 problem that the new unicode support had introduced when analyzing
800 problem that the new unicode support had introduced when analyzing
795 long definition lines for functions.
801 long definition lines for functions.
796
802
797 2007-03-24 Walter Doerwald <walter@livinglogic.de>
803 2007-03-24 Walter Doerwald <walter@livinglogic.de>
798
804
799 * IPython/Extensions/igrid.py: Fix picking. Using
805 * IPython/Extensions/igrid.py: Fix picking. Using
800 igrid with wxPython 2.6 and -wthread should work now.
806 igrid with wxPython 2.6 and -wthread should work now.
801 igrid.display() simply tries to create a frame without
807 igrid.display() simply tries to create a frame without
802 an application. Only if this fails an application is created.
808 an application. Only if this fails an application is created.
803
809
804 2007-03-23 Walter Doerwald <walter@livinglogic.de>
810 2007-03-23 Walter Doerwald <walter@livinglogic.de>
805
811
806 * IPython/Extensions/path.py: Updated to version 2.2.
812 * IPython/Extensions/path.py: Updated to version 2.2.
807
813
808 2007-03-23 Ville Vainio <vivainio@gmail.com>
814 2007-03-23 Ville Vainio <vivainio@gmail.com>
809
815
810 * iplib.py: recursive alias expansion now works better, so that
816 * iplib.py: recursive alias expansion now works better, so that
811 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
817 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
812 doesn't trip up the process, if 'd' has been aliased to 'ls'.
818 doesn't trip up the process, if 'd' has been aliased to 'ls'.
813
819
814 * Extensions/ipy_gnuglobal.py added, provides %global magic
820 * Extensions/ipy_gnuglobal.py added, provides %global magic
815 for users of http://www.gnu.org/software/global
821 for users of http://www.gnu.org/software/global
816
822
817 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
823 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
818 Closes #52. Patch by Stefan van der Walt.
824 Closes #52. Patch by Stefan van der Walt.
819
825
820 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
826 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
821
827
822 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
828 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
823 respect the __file__ attribute when using %run. Thanks to a bug
829 respect the __file__ attribute when using %run. Thanks to a bug
824 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
830 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
825
831
826 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
832 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
827
833
828 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
834 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
829 input. Patch sent by Stefan.
835 input. Patch sent by Stefan.
830
836
831 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
837 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
832 * IPython/Extensions/ipy_stock_completer.py
838 * IPython/Extensions/ipy_stock_completer.py
833 shlex_split, fix bug in shlex_split. len function
839 shlex_split, fix bug in shlex_split. len function
834 call was missing an if statement. Caused shlex_split to
840 call was missing an if statement. Caused shlex_split to
835 sometimes return "" as last element.
841 sometimes return "" as last element.
836
842
837 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
843 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
838
844
839 * IPython/completer.py
845 * IPython/completer.py
840 (IPCompleter.file_matches.single_dir_expand): fix a problem
846 (IPCompleter.file_matches.single_dir_expand): fix a problem
841 reported by Stefan, where directories containign a single subdir
847 reported by Stefan, where directories containign a single subdir
842 would be completed too early.
848 would be completed too early.
843
849
844 * IPython/Shell.py (_load_pylab): Make the execution of 'from
850 * IPython/Shell.py (_load_pylab): Make the execution of 'from
845 pylab import *' when -pylab is given be optional. A new flag,
851 pylab import *' when -pylab is given be optional. A new flag,
846 pylab_import_all controls this behavior, the default is True for
852 pylab_import_all controls this behavior, the default is True for
847 backwards compatibility.
853 backwards compatibility.
848
854
849 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
855 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
850 modified) R. Bernstein's patch for fully syntax highlighted
856 modified) R. Bernstein's patch for fully syntax highlighted
851 tracebacks. The functionality is also available under ultraTB for
857 tracebacks. The functionality is also available under ultraTB for
852 non-ipython users (someone using ultraTB but outside an ipython
858 non-ipython users (someone using ultraTB but outside an ipython
853 session). They can select the color scheme by setting the
859 session). They can select the color scheme by setting the
854 module-level global DEFAULT_SCHEME. The highlight functionality
860 module-level global DEFAULT_SCHEME. The highlight functionality
855 also works when debugging.
861 also works when debugging.
856
862
857 * IPython/genutils.py (IOStream.close): small patch by
863 * IPython/genutils.py (IOStream.close): small patch by
858 R. Bernstein for improved pydb support.
864 R. Bernstein for improved pydb support.
859
865
860 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
866 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
861 DaveS <davls@telus.net> to improve support of debugging under
867 DaveS <davls@telus.net> to improve support of debugging under
862 NTEmacs, including improved pydb behavior.
868 NTEmacs, including improved pydb behavior.
863
869
864 * IPython/Magic.py (magic_prun): Fix saving of profile info for
870 * IPython/Magic.py (magic_prun): Fix saving of profile info for
865 Python 2.5, where the stats object API changed a little. Thanks
871 Python 2.5, where the stats object API changed a little. Thanks
866 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
872 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
867
873
868 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
874 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
869 Pernetty's patch to improve support for (X)Emacs under Win32.
875 Pernetty's patch to improve support for (X)Emacs under Win32.
870
876
871 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
877 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
872
878
873 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
879 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
874 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
880 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
875 a report by Nik Tautenhahn.
881 a report by Nik Tautenhahn.
876
882
877 2007-03-16 Walter Doerwald <walter@livinglogic.de>
883 2007-03-16 Walter Doerwald <walter@livinglogic.de>
878
884
879 * setup.py: Add the igrid help files to the list of data files
885 * setup.py: Add the igrid help files to the list of data files
880 to be installed alongside igrid.
886 to be installed alongside igrid.
881 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
887 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
882 Show the input object of the igrid browser as the window tile.
888 Show the input object of the igrid browser as the window tile.
883 Show the object the cursor is on in the statusbar.
889 Show the object the cursor is on in the statusbar.
884
890
885 2007-03-15 Ville Vainio <vivainio@gmail.com>
891 2007-03-15 Ville Vainio <vivainio@gmail.com>
886
892
887 * Extensions/ipy_stock_completers.py: Fixed exception
893 * Extensions/ipy_stock_completers.py: Fixed exception
888 on mismatching quotes in %run completer. Patch by
894 on mismatching quotes in %run completer. Patch by
889 Jorgen Stenarson. Closes #127.
895 Jorgen Stenarson. Closes #127.
890
896
891 2007-03-14 Ville Vainio <vivainio@gmail.com>
897 2007-03-14 Ville Vainio <vivainio@gmail.com>
892
898
893 * Extensions/ext_rehashdir.py: Do not do auto_alias
899 * Extensions/ext_rehashdir.py: Do not do auto_alias
894 in %rehashdir, it clobbers %store'd aliases.
900 in %rehashdir, it clobbers %store'd aliases.
895
901
896 * UserConfig/ipy_profile_sh.py: envpersist.py extension
902 * UserConfig/ipy_profile_sh.py: envpersist.py extension
897 (beefed up %env) imported for sh profile.
903 (beefed up %env) imported for sh profile.
898
904
899 2007-03-10 Walter Doerwald <walter@livinglogic.de>
905 2007-03-10 Walter Doerwald <walter@livinglogic.de>
900
906
901 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
907 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
902 as the default browser.
908 as the default browser.
903 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
909 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
904 As igrid displays all attributes it ever encounters, fetch() (which has
910 As igrid displays all attributes it ever encounters, fetch() (which has
905 been renamed to _fetch()) doesn't have to recalculate the display attributes
911 been renamed to _fetch()) doesn't have to recalculate the display attributes
906 every time a new item is fetched. This should speed up scrolling.
912 every time a new item is fetched. This should speed up scrolling.
907
913
908 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
914 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
909
915
910 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
916 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
911 Schmolck's recently reported tab-completion bug (my previous one
917 Schmolck's recently reported tab-completion bug (my previous one
912 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
918 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
913
919
914 2007-03-09 Walter Doerwald <walter@livinglogic.de>
920 2007-03-09 Walter Doerwald <walter@livinglogic.de>
915
921
916 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
922 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
917 Close help window if exiting igrid.
923 Close help window if exiting igrid.
918
924
919 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
925 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
920
926
921 * IPython/Extensions/ipy_defaults.py: Check if readline is available
927 * IPython/Extensions/ipy_defaults.py: Check if readline is available
922 before calling functions from readline.
928 before calling functions from readline.
923
929
924 2007-03-02 Walter Doerwald <walter@livinglogic.de>
930 2007-03-02 Walter Doerwald <walter@livinglogic.de>
925
931
926 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
932 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
927 igrid is a wxPython-based display object for ipipe. If your system has
933 igrid is a wxPython-based display object for ipipe. If your system has
928 wx installed igrid will be the default display. Without wx ipipe falls
934 wx installed igrid will be the default display. Without wx ipipe falls
929 back to ibrowse (which needs curses). If no curses is installed ipipe
935 back to ibrowse (which needs curses). If no curses is installed ipipe
930 falls back to idump.
936 falls back to idump.
931
937
932 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
938 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
933
939
934 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
940 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
935 my changes from yesterday, they introduced bugs. Will reactivate
941 my changes from yesterday, they introduced bugs. Will reactivate
936 once I get a correct solution, which will be much easier thanks to
942 once I get a correct solution, which will be much easier thanks to
937 Dan Milstein's new prefilter test suite.
943 Dan Milstein's new prefilter test suite.
938
944
939 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
945 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
940
946
941 * IPython/iplib.py (split_user_input): fix input splitting so we
947 * IPython/iplib.py (split_user_input): fix input splitting so we
942 don't attempt attribute accesses on things that can't possibly be
948 don't attempt attribute accesses on things that can't possibly be
943 valid Python attributes. After a bug report by Alex Schmolck.
949 valid Python attributes. After a bug report by Alex Schmolck.
944 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
950 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
945 %magic with explicit % prefix.
951 %magic with explicit % prefix.
946
952
947 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
953 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
948
954
949 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
955 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
950 avoid a DeprecationWarning from GTK.
956 avoid a DeprecationWarning from GTK.
951
957
952 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
958 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
953
959
954 * IPython/genutils.py (clock): I modified clock() to return total
960 * IPython/genutils.py (clock): I modified clock() to return total
955 time, user+system. This is a more commonly needed metric. I also
961 time, user+system. This is a more commonly needed metric. I also
956 introduced the new clocku/clocks to get only user/system time if
962 introduced the new clocku/clocks to get only user/system time if
957 one wants those instead.
963 one wants those instead.
958
964
959 ***WARNING: API CHANGE*** clock() used to return only user time,
965 ***WARNING: API CHANGE*** clock() used to return only user time,
960 so if you want exactly the same results as before, use clocku
966 so if you want exactly the same results as before, use clocku
961 instead.
967 instead.
962
968
963 2007-02-22 Ville Vainio <vivainio@gmail.com>
969 2007-02-22 Ville Vainio <vivainio@gmail.com>
964
970
965 * IPython/Extensions/ipy_p4.py: Extension for improved
971 * IPython/Extensions/ipy_p4.py: Extension for improved
966 p4 (perforce version control system) experience.
972 p4 (perforce version control system) experience.
967 Adds %p4 magic with p4 command completion and
973 Adds %p4 magic with p4 command completion and
968 automatic -G argument (marshall output as python dict)
974 automatic -G argument (marshall output as python dict)
969
975
970 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
976 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
971
977
972 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
978 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
973 stop marks.
979 stop marks.
974 (ClearingMixin): a simple mixin to easily make a Demo class clear
980 (ClearingMixin): a simple mixin to easily make a Demo class clear
975 the screen in between blocks and have empty marquees. The
981 the screen in between blocks and have empty marquees. The
976 ClearDemo and ClearIPDemo classes that use it are included.
982 ClearDemo and ClearIPDemo classes that use it are included.
977
983
978 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
984 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
979
985
980 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
986 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
981 protect against exceptions at Python shutdown time. Patch
987 protect against exceptions at Python shutdown time. Patch
982 sumbmitted to upstream.
988 sumbmitted to upstream.
983
989
984 2007-02-14 Walter Doerwald <walter@livinglogic.de>
990 2007-02-14 Walter Doerwald <walter@livinglogic.de>
985
991
986 * IPython/Extensions/ibrowse.py: If entering the first object level
992 * IPython/Extensions/ibrowse.py: If entering the first object level
987 (i.e. the object for which the browser has been started) fails,
993 (i.e. the object for which the browser has been started) fails,
988 now the error is raised directly (aborting the browser) instead of
994 now the error is raised directly (aborting the browser) instead of
989 running into an empty levels list later.
995 running into an empty levels list later.
990
996
991 2007-02-03 Walter Doerwald <walter@livinglogic.de>
997 2007-02-03 Walter Doerwald <walter@livinglogic.de>
992
998
993 * IPython/Extensions/ipipe.py: Add an xrepr implementation
999 * IPython/Extensions/ipipe.py: Add an xrepr implementation
994 for the noitem object.
1000 for the noitem object.
995
1001
996 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1002 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
997
1003
998 * IPython/completer.py (Completer.attr_matches): Fix small
1004 * IPython/completer.py (Completer.attr_matches): Fix small
999 tab-completion bug with Enthought Traits objects with units.
1005 tab-completion bug with Enthought Traits objects with units.
1000 Thanks to a bug report by Tom Denniston
1006 Thanks to a bug report by Tom Denniston
1001 <tom.denniston-AT-alum.dartmouth.org>.
1007 <tom.denniston-AT-alum.dartmouth.org>.
1002
1008
1003 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1009 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1004
1010
1005 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1011 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1006 bug where only .ipy or .py would be completed. Once the first
1012 bug where only .ipy or .py would be completed. Once the first
1007 argument to %run has been given, all completions are valid because
1013 argument to %run has been given, all completions are valid because
1008 they are the arguments to the script, which may well be non-python
1014 they are the arguments to the script, which may well be non-python
1009 filenames.
1015 filenames.
1010
1016
1011 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1017 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1012 to irunner to allow it to correctly support real doctesting of
1018 to irunner to allow it to correctly support real doctesting of
1013 out-of-process ipython code.
1019 out-of-process ipython code.
1014
1020
1015 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1021 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1016 title an option (-noterm_title) because it completely breaks
1022 title an option (-noterm_title) because it completely breaks
1017 doctesting.
1023 doctesting.
1018
1024
1019 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1025 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1020
1026
1021 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1027 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1022
1028
1023 * IPython/irunner.py (main): fix small bug where extensions were
1029 * IPython/irunner.py (main): fix small bug where extensions were
1024 not being correctly recognized.
1030 not being correctly recognized.
1025
1031
1026 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1032 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1027
1033
1028 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1034 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1029 a string containing a single line yields the string itself as the
1035 a string containing a single line yields the string itself as the
1030 only item.
1036 only item.
1031
1037
1032 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1038 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1033 object if it's the same as the one on the last level (This avoids
1039 object if it's the same as the one on the last level (This avoids
1034 infinite recursion for one line strings).
1040 infinite recursion for one line strings).
1035
1041
1036 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1042 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1037
1043
1038 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1044 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1039 all output streams before printing tracebacks. This ensures that
1045 all output streams before printing tracebacks. This ensures that
1040 user output doesn't end up interleaved with traceback output.
1046 user output doesn't end up interleaved with traceback output.
1041
1047
1042 2007-01-10 Ville Vainio <vivainio@gmail.com>
1048 2007-01-10 Ville Vainio <vivainio@gmail.com>
1043
1049
1044 * Extensions/envpersist.py: Turbocharged %env that remembers
1050 * Extensions/envpersist.py: Turbocharged %env that remembers
1045 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1051 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1046 "%env VISUAL=jed".
1052 "%env VISUAL=jed".
1047
1053
1048 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1054 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1049
1055
1050 * IPython/iplib.py (showtraceback): ensure that we correctly call
1056 * IPython/iplib.py (showtraceback): ensure that we correctly call
1051 custom handlers in all cases (some with pdb were slipping through,
1057 custom handlers in all cases (some with pdb were slipping through,
1052 but I'm not exactly sure why).
1058 but I'm not exactly sure why).
1053
1059
1054 * IPython/Debugger.py (Tracer.__init__): added new class to
1060 * IPython/Debugger.py (Tracer.__init__): added new class to
1055 support set_trace-like usage of IPython's enhanced debugger.
1061 support set_trace-like usage of IPython's enhanced debugger.
1056
1062
1057 2006-12-24 Ville Vainio <vivainio@gmail.com>
1063 2006-12-24 Ville Vainio <vivainio@gmail.com>
1058
1064
1059 * ipmaker.py: more informative message when ipy_user_conf
1065 * ipmaker.py: more informative message when ipy_user_conf
1060 import fails (suggest running %upgrade).
1066 import fails (suggest running %upgrade).
1061
1067
1062 * tools/run_ipy_in_profiler.py: Utility to see where
1068 * tools/run_ipy_in_profiler.py: Utility to see where
1063 the time during IPython startup is spent.
1069 the time during IPython startup is spent.
1064
1070
1065 2006-12-20 Ville Vainio <vivainio@gmail.com>
1071 2006-12-20 Ville Vainio <vivainio@gmail.com>
1066
1072
1067 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1073 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1068
1074
1069 * ipapi.py: Add new ipapi method, expand_alias.
1075 * ipapi.py: Add new ipapi method, expand_alias.
1070
1076
1071 * Release.py: Bump up version to 0.7.4.svn
1077 * Release.py: Bump up version to 0.7.4.svn
1072
1078
1073 2006-12-17 Ville Vainio <vivainio@gmail.com>
1079 2006-12-17 Ville Vainio <vivainio@gmail.com>
1074
1080
1075 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1081 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1076 to work properly on posix too
1082 to work properly on posix too
1077
1083
1078 * Release.py: Update revnum (version is still just 0.7.3).
1084 * Release.py: Update revnum (version is still just 0.7.3).
1079
1085
1080 2006-12-15 Ville Vainio <vivainio@gmail.com>
1086 2006-12-15 Ville Vainio <vivainio@gmail.com>
1081
1087
1082 * scripts/ipython_win_post_install: create ipython.py in
1088 * scripts/ipython_win_post_install: create ipython.py in
1083 prefix + "/scripts".
1089 prefix + "/scripts".
1084
1090
1085 * Release.py: Update version to 0.7.3.
1091 * Release.py: Update version to 0.7.3.
1086
1092
1087 2006-12-14 Ville Vainio <vivainio@gmail.com>
1093 2006-12-14 Ville Vainio <vivainio@gmail.com>
1088
1094
1089 * scripts/ipython_win_post_install: Overwrite old shortcuts
1095 * scripts/ipython_win_post_install: Overwrite old shortcuts
1090 if they already exist
1096 if they already exist
1091
1097
1092 * Release.py: release 0.7.3rc2
1098 * Release.py: release 0.7.3rc2
1093
1099
1094 2006-12-13 Ville Vainio <vivainio@gmail.com>
1100 2006-12-13 Ville Vainio <vivainio@gmail.com>
1095
1101
1096 * Branch and update Release.py for 0.7.3rc1
1102 * Branch and update Release.py for 0.7.3rc1
1097
1103
1098 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1104 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1099
1105
1100 * IPython/Shell.py (IPShellWX): update for current WX naming
1106 * IPython/Shell.py (IPShellWX): update for current WX naming
1101 conventions, to avoid a deprecation warning with current WX
1107 conventions, to avoid a deprecation warning with current WX
1102 versions. Thanks to a report by Danny Shevitz.
1108 versions. Thanks to a report by Danny Shevitz.
1103
1109
1104 2006-12-12 Ville Vainio <vivainio@gmail.com>
1110 2006-12-12 Ville Vainio <vivainio@gmail.com>
1105
1111
1106 * ipmaker.py: apply david cournapeau's patch to make
1112 * ipmaker.py: apply david cournapeau's patch to make
1107 import_some work properly even when ipythonrc does
1113 import_some work properly even when ipythonrc does
1108 import_some on empty list (it was an old bug!).
1114 import_some on empty list (it was an old bug!).
1109
1115
1110 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1116 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1111 Add deprecation note to ipythonrc and a url to wiki
1117 Add deprecation note to ipythonrc and a url to wiki
1112 in ipy_user_conf.py
1118 in ipy_user_conf.py
1113
1119
1114
1120
1115 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1121 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1116 as if it was typed on IPython command prompt, i.e.
1122 as if it was typed on IPython command prompt, i.e.
1117 as IPython script.
1123 as IPython script.
1118
1124
1119 * example-magic.py, magic_grepl.py: remove outdated examples
1125 * example-magic.py, magic_grepl.py: remove outdated examples
1120
1126
1121 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1127 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1122
1128
1123 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1129 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1124 is called before any exception has occurred.
1130 is called before any exception has occurred.
1125
1131
1126 2006-12-08 Ville Vainio <vivainio@gmail.com>
1132 2006-12-08 Ville Vainio <vivainio@gmail.com>
1127
1133
1128 * Extensions/ipy_stock_completers.py: fix cd completer
1134 * Extensions/ipy_stock_completers.py: fix cd completer
1129 to translate /'s to \'s again.
1135 to translate /'s to \'s again.
1130
1136
1131 * completer.py: prevent traceback on file completions w/
1137 * completer.py: prevent traceback on file completions w/
1132 backslash.
1138 backslash.
1133
1139
1134 * Release.py: Update release number to 0.7.3b3 for release
1140 * Release.py: Update release number to 0.7.3b3 for release
1135
1141
1136 2006-12-07 Ville Vainio <vivainio@gmail.com>
1142 2006-12-07 Ville Vainio <vivainio@gmail.com>
1137
1143
1138 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1144 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1139 while executing external code. Provides more shell-like behaviour
1145 while executing external code. Provides more shell-like behaviour
1140 and overall better response to ctrl + C / ctrl + break.
1146 and overall better response to ctrl + C / ctrl + break.
1141
1147
1142 * tools/make_tarball.py: new script to create tarball straight from svn
1148 * tools/make_tarball.py: new script to create tarball straight from svn
1143 (setup.py sdist doesn't work on win32).
1149 (setup.py sdist doesn't work on win32).
1144
1150
1145 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1151 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1146 on dirnames with spaces and use the default completer instead.
1152 on dirnames with spaces and use the default completer instead.
1147
1153
1148 * Revision.py: Change version to 0.7.3b2 for release.
1154 * Revision.py: Change version to 0.7.3b2 for release.
1149
1155
1150 2006-12-05 Ville Vainio <vivainio@gmail.com>
1156 2006-12-05 Ville Vainio <vivainio@gmail.com>
1151
1157
1152 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1158 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1153 pydb patch 4 (rm debug printing, py 2.5 checking)
1159 pydb patch 4 (rm debug printing, py 2.5 checking)
1154
1160
1155 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1161 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1156 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1162 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1157 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1163 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1158 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1164 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1159 object the cursor was on before the refresh. The command "markrange" is
1165 object the cursor was on before the refresh. The command "markrange" is
1160 mapped to "%" now.
1166 mapped to "%" now.
1161 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1167 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1162
1168
1163 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1169 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1164
1170
1165 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1171 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1166 interactive debugger on the last traceback, without having to call
1172 interactive debugger on the last traceback, without having to call
1167 %pdb and rerun your code. Made minor changes in various modules,
1173 %pdb and rerun your code. Made minor changes in various modules,
1168 should automatically recognize pydb if available.
1174 should automatically recognize pydb if available.
1169
1175
1170 2006-11-28 Ville Vainio <vivainio@gmail.com>
1176 2006-11-28 Ville Vainio <vivainio@gmail.com>
1171
1177
1172 * completer.py: If the text start with !, show file completions
1178 * completer.py: If the text start with !, show file completions
1173 properly. This helps when trying to complete command name
1179 properly. This helps when trying to complete command name
1174 for shell escapes.
1180 for shell escapes.
1175
1181
1176 2006-11-27 Ville Vainio <vivainio@gmail.com>
1182 2006-11-27 Ville Vainio <vivainio@gmail.com>
1177
1183
1178 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1184 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1179 der Walt. Clean up svn and hg completers by using a common
1185 der Walt. Clean up svn and hg completers by using a common
1180 vcs_completer.
1186 vcs_completer.
1181
1187
1182 2006-11-26 Ville Vainio <vivainio@gmail.com>
1188 2006-11-26 Ville Vainio <vivainio@gmail.com>
1183
1189
1184 * Remove ipconfig and %config; you should use _ip.options structure
1190 * Remove ipconfig and %config; you should use _ip.options structure
1185 directly instead!
1191 directly instead!
1186
1192
1187 * genutils.py: add wrap_deprecated function for deprecating callables
1193 * genutils.py: add wrap_deprecated function for deprecating callables
1188
1194
1189 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1195 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1190 _ip.system instead. ipalias is redundant.
1196 _ip.system instead. ipalias is redundant.
1191
1197
1192 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1198 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1193 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1199 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1194 explicit.
1200 explicit.
1195
1201
1196 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1202 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1197 completer. Try it by entering 'hg ' and pressing tab.
1203 completer. Try it by entering 'hg ' and pressing tab.
1198
1204
1199 * macro.py: Give Macro a useful __repr__ method
1205 * macro.py: Give Macro a useful __repr__ method
1200
1206
1201 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1207 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1202
1208
1203 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1209 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1204 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1210 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1205 we don't get a duplicate ipipe module, where registration of the xrepr
1211 we don't get a duplicate ipipe module, where registration of the xrepr
1206 implementation for Text is useless.
1212 implementation for Text is useless.
1207
1213
1208 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1214 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1209
1215
1210 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1216 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1211
1217
1212 2006-11-24 Ville Vainio <vivainio@gmail.com>
1218 2006-11-24 Ville Vainio <vivainio@gmail.com>
1213
1219
1214 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1220 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1215 try to use "cProfile" instead of the slower pure python
1221 try to use "cProfile" instead of the slower pure python
1216 "profile"
1222 "profile"
1217
1223
1218 2006-11-23 Ville Vainio <vivainio@gmail.com>
1224 2006-11-23 Ville Vainio <vivainio@gmail.com>
1219
1225
1220 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1226 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1221 Qt+IPython+Designer link in documentation.
1227 Qt+IPython+Designer link in documentation.
1222
1228
1223 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1229 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1224 correct Pdb object to %pydb.
1230 correct Pdb object to %pydb.
1225
1231
1226
1232
1227 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1233 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1228 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1234 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1229 generic xrepr(), otherwise the list implementation would kick in.
1235 generic xrepr(), otherwise the list implementation would kick in.
1230
1236
1231 2006-11-21 Ville Vainio <vivainio@gmail.com>
1237 2006-11-21 Ville Vainio <vivainio@gmail.com>
1232
1238
1233 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1239 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1234 with one from UserConfig.
1240 with one from UserConfig.
1235
1241
1236 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1242 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1237 it was missing which broke the sh profile.
1243 it was missing which broke the sh profile.
1238
1244
1239 * completer.py: file completer now uses explicit '/' instead
1245 * completer.py: file completer now uses explicit '/' instead
1240 of os.path.join, expansion of 'foo' was broken on win32
1246 of os.path.join, expansion of 'foo' was broken on win32
1241 if there was one directory with name 'foobar'.
1247 if there was one directory with name 'foobar'.
1242
1248
1243 * A bunch of patches from Kirill Smelkov:
1249 * A bunch of patches from Kirill Smelkov:
1244
1250
1245 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1251 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1246
1252
1247 * [patch 7/9] Implement %page -r (page in raw mode) -
1253 * [patch 7/9] Implement %page -r (page in raw mode) -
1248
1254
1249 * [patch 5/9] ScientificPython webpage has moved
1255 * [patch 5/9] ScientificPython webpage has moved
1250
1256
1251 * [patch 4/9] The manual mentions %ds, should be %dhist
1257 * [patch 4/9] The manual mentions %ds, should be %dhist
1252
1258
1253 * [patch 3/9] Kill old bits from %prun doc.
1259 * [patch 3/9] Kill old bits from %prun doc.
1254
1260
1255 * [patch 1/9] Fix typos here and there.
1261 * [patch 1/9] Fix typos here and there.
1256
1262
1257 2006-11-08 Ville Vainio <vivainio@gmail.com>
1263 2006-11-08 Ville Vainio <vivainio@gmail.com>
1258
1264
1259 * completer.py (attr_matches): catch all exceptions raised
1265 * completer.py (attr_matches): catch all exceptions raised
1260 by eval of expr with dots.
1266 by eval of expr with dots.
1261
1267
1262 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1268 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1263
1269
1264 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1270 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1265 input if it starts with whitespace. This allows you to paste
1271 input if it starts with whitespace. This allows you to paste
1266 indented input from any editor without manually having to type in
1272 indented input from any editor without manually having to type in
1267 the 'if 1:', which is convenient when working interactively.
1273 the 'if 1:', which is convenient when working interactively.
1268 Slightly modifed version of a patch by Bo Peng
1274 Slightly modifed version of a patch by Bo Peng
1269 <bpeng-AT-rice.edu>.
1275 <bpeng-AT-rice.edu>.
1270
1276
1271 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1277 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1272
1278
1273 * IPython/irunner.py (main): modified irunner so it automatically
1279 * IPython/irunner.py (main): modified irunner so it automatically
1274 recognizes the right runner to use based on the extension (.py for
1280 recognizes the right runner to use based on the extension (.py for
1275 python, .ipy for ipython and .sage for sage).
1281 python, .ipy for ipython and .sage for sage).
1276
1282
1277 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1283 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1278 visible in ipapi as ip.config(), to programatically control the
1284 visible in ipapi as ip.config(), to programatically control the
1279 internal rc object. There's an accompanying %config magic for
1285 internal rc object. There's an accompanying %config magic for
1280 interactive use, which has been enhanced to match the
1286 interactive use, which has been enhanced to match the
1281 funtionality in ipconfig.
1287 funtionality in ipconfig.
1282
1288
1283 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1289 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1284 so it's not just a toggle, it now takes an argument. Add support
1290 so it's not just a toggle, it now takes an argument. Add support
1285 for a customizable header when making system calls, as the new
1291 for a customizable header when making system calls, as the new
1286 system_header variable in the ipythonrc file.
1292 system_header variable in the ipythonrc file.
1287
1293
1288 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1294 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1289
1295
1290 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1296 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1291 generic functions (using Philip J. Eby's simplegeneric package).
1297 generic functions (using Philip J. Eby's simplegeneric package).
1292 This makes it possible to customize the display of third-party classes
1298 This makes it possible to customize the display of third-party classes
1293 without having to monkeypatch them. xiter() no longer supports a mode
1299 without having to monkeypatch them. xiter() no longer supports a mode
1294 argument and the XMode class has been removed. The same functionality can
1300 argument and the XMode class has been removed. The same functionality can
1295 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1301 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1296 One consequence of the switch to generic functions is that xrepr() and
1302 One consequence of the switch to generic functions is that xrepr() and
1297 xattrs() implementation must define the default value for the mode
1303 xattrs() implementation must define the default value for the mode
1298 argument themselves and xattrs() implementations must return real
1304 argument themselves and xattrs() implementations must return real
1299 descriptors.
1305 descriptors.
1300
1306
1301 * IPython/external: This new subpackage will contain all third-party
1307 * IPython/external: This new subpackage will contain all third-party
1302 packages that are bundled with IPython. (The first one is simplegeneric).
1308 packages that are bundled with IPython. (The first one is simplegeneric).
1303
1309
1304 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1310 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1305 directory which as been dropped in r1703.
1311 directory which as been dropped in r1703.
1306
1312
1307 * IPython/Extensions/ipipe.py (iless): Fixed.
1313 * IPython/Extensions/ipipe.py (iless): Fixed.
1308
1314
1309 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1315 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1310
1316
1311 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1317 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1312
1318
1313 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1319 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1314 handling in variable expansion so that shells and magics recognize
1320 handling in variable expansion so that shells and magics recognize
1315 function local scopes correctly. Bug reported by Brian.
1321 function local scopes correctly. Bug reported by Brian.
1316
1322
1317 * scripts/ipython: remove the very first entry in sys.path which
1323 * scripts/ipython: remove the very first entry in sys.path which
1318 Python auto-inserts for scripts, so that sys.path under IPython is
1324 Python auto-inserts for scripts, so that sys.path under IPython is
1319 as similar as possible to that under plain Python.
1325 as similar as possible to that under plain Python.
1320
1326
1321 * IPython/completer.py (IPCompleter.file_matches): Fix
1327 * IPython/completer.py (IPCompleter.file_matches): Fix
1322 tab-completion so that quotes are not closed unless the completion
1328 tab-completion so that quotes are not closed unless the completion
1323 is unambiguous. After a request by Stefan. Minor cleanups in
1329 is unambiguous. After a request by Stefan. Minor cleanups in
1324 ipy_stock_completers.
1330 ipy_stock_completers.
1325
1331
1326 2006-11-02 Ville Vainio <vivainio@gmail.com>
1332 2006-11-02 Ville Vainio <vivainio@gmail.com>
1327
1333
1328 * ipy_stock_completers.py: Add %run and %cd completers.
1334 * ipy_stock_completers.py: Add %run and %cd completers.
1329
1335
1330 * completer.py: Try running custom completer for both
1336 * completer.py: Try running custom completer for both
1331 "foo" and "%foo" if the command is just "foo". Ignore case
1337 "foo" and "%foo" if the command is just "foo". Ignore case
1332 when filtering possible completions.
1338 when filtering possible completions.
1333
1339
1334 * UserConfig/ipy_user_conf.py: install stock completers as default
1340 * UserConfig/ipy_user_conf.py: install stock completers as default
1335
1341
1336 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1342 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1337 simplified readline history save / restore through a wrapper
1343 simplified readline history save / restore through a wrapper
1338 function
1344 function
1339
1345
1340
1346
1341 2006-10-31 Ville Vainio <vivainio@gmail.com>
1347 2006-10-31 Ville Vainio <vivainio@gmail.com>
1342
1348
1343 * strdispatch.py, completer.py, ipy_stock_completers.py:
1349 * strdispatch.py, completer.py, ipy_stock_completers.py:
1344 Allow str_key ("command") in completer hooks. Implement
1350 Allow str_key ("command") in completer hooks. Implement
1345 trivial completer for 'import' (stdlib modules only). Rename
1351 trivial completer for 'import' (stdlib modules only). Rename
1346 ipy_linux_package_managers.py to ipy_stock_completers.py.
1352 ipy_linux_package_managers.py to ipy_stock_completers.py.
1347 SVN completer.
1353 SVN completer.
1348
1354
1349 * Extensions/ledit.py: %magic line editor for easily and
1355 * Extensions/ledit.py: %magic line editor for easily and
1350 incrementally manipulating lists of strings. The magic command
1356 incrementally manipulating lists of strings. The magic command
1351 name is %led.
1357 name is %led.
1352
1358
1353 2006-10-30 Ville Vainio <vivainio@gmail.com>
1359 2006-10-30 Ville Vainio <vivainio@gmail.com>
1354
1360
1355 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1361 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1356 Bernsteins's patches for pydb integration.
1362 Bernsteins's patches for pydb integration.
1357 http://bashdb.sourceforge.net/pydb/
1363 http://bashdb.sourceforge.net/pydb/
1358
1364
1359 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1365 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1360 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1366 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1361 custom completer hook to allow the users to implement their own
1367 custom completer hook to allow the users to implement their own
1362 completers. See ipy_linux_package_managers.py for example. The
1368 completers. See ipy_linux_package_managers.py for example. The
1363 hook name is 'complete_command'.
1369 hook name is 'complete_command'.
1364
1370
1365 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1371 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1366
1372
1367 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1373 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1368 Numeric leftovers.
1374 Numeric leftovers.
1369
1375
1370 * ipython.el (py-execute-region): apply Stefan's patch to fix
1376 * ipython.el (py-execute-region): apply Stefan's patch to fix
1371 garbled results if the python shell hasn't been previously started.
1377 garbled results if the python shell hasn't been previously started.
1372
1378
1373 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1379 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1374 pretty generic function and useful for other things.
1380 pretty generic function and useful for other things.
1375
1381
1376 * IPython/OInspect.py (getsource): Add customizable source
1382 * IPython/OInspect.py (getsource): Add customizable source
1377 extractor. After a request/patch form W. Stein (SAGE).
1383 extractor. After a request/patch form W. Stein (SAGE).
1378
1384
1379 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1385 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1380 window size to a more reasonable value from what pexpect does,
1386 window size to a more reasonable value from what pexpect does,
1381 since their choice causes wrapping bugs with long input lines.
1387 since their choice causes wrapping bugs with long input lines.
1382
1388
1383 2006-10-28 Ville Vainio <vivainio@gmail.com>
1389 2006-10-28 Ville Vainio <vivainio@gmail.com>
1384
1390
1385 * Magic.py (%run): Save and restore the readline history from
1391 * Magic.py (%run): Save and restore the readline history from
1386 file around %run commands to prevent side effects from
1392 file around %run commands to prevent side effects from
1387 %runned programs that might use readline (e.g. pydb).
1393 %runned programs that might use readline (e.g. pydb).
1388
1394
1389 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1395 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1390 invoking the pydb enhanced debugger.
1396 invoking the pydb enhanced debugger.
1391
1397
1392 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1398 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1393
1399
1394 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1400 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1395 call the base class method and propagate the return value to
1401 call the base class method and propagate the return value to
1396 ifile. This is now done by path itself.
1402 ifile. This is now done by path itself.
1397
1403
1398 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1404 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1399
1405
1400 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1406 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1401 api: set_crash_handler(), to expose the ability to change the
1407 api: set_crash_handler(), to expose the ability to change the
1402 internal crash handler.
1408 internal crash handler.
1403
1409
1404 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1410 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1405 the various parameters of the crash handler so that apps using
1411 the various parameters of the crash handler so that apps using
1406 IPython as their engine can customize crash handling. Ipmlemented
1412 IPython as their engine can customize crash handling. Ipmlemented
1407 at the request of SAGE.
1413 at the request of SAGE.
1408
1414
1409 2006-10-14 Ville Vainio <vivainio@gmail.com>
1415 2006-10-14 Ville Vainio <vivainio@gmail.com>
1410
1416
1411 * Magic.py, ipython.el: applied first "safe" part of Rocky
1417 * Magic.py, ipython.el: applied first "safe" part of Rocky
1412 Bernstein's patch set for pydb integration.
1418 Bernstein's patch set for pydb integration.
1413
1419
1414 * Magic.py (%unalias, %alias): %store'd aliases can now be
1420 * Magic.py (%unalias, %alias): %store'd aliases can now be
1415 removed with '%unalias'. %alias w/o args now shows most
1421 removed with '%unalias'. %alias w/o args now shows most
1416 interesting (stored / manually defined) aliases last
1422 interesting (stored / manually defined) aliases last
1417 where they catch the eye w/o scrolling.
1423 where they catch the eye w/o scrolling.
1418
1424
1419 * Magic.py (%rehashx), ext_rehashdir.py: files with
1425 * Magic.py (%rehashx), ext_rehashdir.py: files with
1420 'py' extension are always considered executable, even
1426 'py' extension are always considered executable, even
1421 when not in PATHEXT environment variable.
1427 when not in PATHEXT environment variable.
1422
1428
1423 2006-10-12 Ville Vainio <vivainio@gmail.com>
1429 2006-10-12 Ville Vainio <vivainio@gmail.com>
1424
1430
1425 * jobctrl.py: Add new "jobctrl" extension for spawning background
1431 * jobctrl.py: Add new "jobctrl" extension for spawning background
1426 processes with "&find /". 'import jobctrl' to try it out. Requires
1432 processes with "&find /". 'import jobctrl' to try it out. Requires
1427 'subprocess' module, standard in python 2.4+.
1433 'subprocess' module, standard in python 2.4+.
1428
1434
1429 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1435 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1430 so if foo -> bar and bar -> baz, then foo -> baz.
1436 so if foo -> bar and bar -> baz, then foo -> baz.
1431
1437
1432 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1438 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1433
1439
1434 * IPython/Magic.py (Magic.parse_options): add a new posix option
1440 * IPython/Magic.py (Magic.parse_options): add a new posix option
1435 to allow parsing of input args in magics that doesn't strip quotes
1441 to allow parsing of input args in magics that doesn't strip quotes
1436 (if posix=False). This also closes %timeit bug reported by
1442 (if posix=False). This also closes %timeit bug reported by
1437 Stefan.
1443 Stefan.
1438
1444
1439 2006-10-03 Ville Vainio <vivainio@gmail.com>
1445 2006-10-03 Ville Vainio <vivainio@gmail.com>
1440
1446
1441 * iplib.py (raw_input, interact): Return ValueError catching for
1447 * iplib.py (raw_input, interact): Return ValueError catching for
1442 raw_input. Fixes infinite loop for sys.stdin.close() or
1448 raw_input. Fixes infinite loop for sys.stdin.close() or
1443 sys.stdout.close().
1449 sys.stdout.close().
1444
1450
1445 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1451 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1446
1452
1447 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1453 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1448 to help in handling doctests. irunner is now pretty useful for
1454 to help in handling doctests. irunner is now pretty useful for
1449 running standalone scripts and simulate a full interactive session
1455 running standalone scripts and simulate a full interactive session
1450 in a format that can be then pasted as a doctest.
1456 in a format that can be then pasted as a doctest.
1451
1457
1452 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1458 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1453 on top of the default (useless) ones. This also fixes the nasty
1459 on top of the default (useless) ones. This also fixes the nasty
1454 way in which 2.5's Quitter() exits (reverted [1785]).
1460 way in which 2.5's Quitter() exits (reverted [1785]).
1455
1461
1456 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1462 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1457 2.5.
1463 2.5.
1458
1464
1459 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1465 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1460 color scheme is updated as well when color scheme is changed
1466 color scheme is updated as well when color scheme is changed
1461 interactively.
1467 interactively.
1462
1468
1463 2006-09-27 Ville Vainio <vivainio@gmail.com>
1469 2006-09-27 Ville Vainio <vivainio@gmail.com>
1464
1470
1465 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1471 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1466 infinite loop and just exit. It's a hack, but will do for a while.
1472 infinite loop and just exit. It's a hack, but will do for a while.
1467
1473
1468 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1474 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1469
1475
1470 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1476 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1471 the constructor, this makes it possible to get a list of only directories
1477 the constructor, this makes it possible to get a list of only directories
1472 or only files.
1478 or only files.
1473
1479
1474 2006-08-12 Ville Vainio <vivainio@gmail.com>
1480 2006-08-12 Ville Vainio <vivainio@gmail.com>
1475
1481
1476 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1482 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1477 they broke unittest
1483 they broke unittest
1478
1484
1479 2006-08-11 Ville Vainio <vivainio@gmail.com>
1485 2006-08-11 Ville Vainio <vivainio@gmail.com>
1480
1486
1481 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1487 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1482 by resolving issue properly, i.e. by inheriting FakeModule
1488 by resolving issue properly, i.e. by inheriting FakeModule
1483 from types.ModuleType. Pickling ipython interactive data
1489 from types.ModuleType. Pickling ipython interactive data
1484 should still work as usual (testing appreciated).
1490 should still work as usual (testing appreciated).
1485
1491
1486 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1492 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1487
1493
1488 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1494 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1489 running under python 2.3 with code from 2.4 to fix a bug with
1495 running under python 2.3 with code from 2.4 to fix a bug with
1490 help(). Reported by the Debian maintainers, Norbert Tretkowski
1496 help(). Reported by the Debian maintainers, Norbert Tretkowski
1491 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1497 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1492 <afayolle-AT-debian.org>.
1498 <afayolle-AT-debian.org>.
1493
1499
1494 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1500 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1495
1501
1496 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1502 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1497 (which was displaying "quit" twice).
1503 (which was displaying "quit" twice).
1498
1504
1499 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1505 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1500
1506
1501 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1507 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1502 the mode argument).
1508 the mode argument).
1503
1509
1504 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1510 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1505
1511
1506 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1512 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1507 not running under IPython.
1513 not running under IPython.
1508
1514
1509 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1515 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1510 and make it iterable (iterating over the attribute itself). Add two new
1516 and make it iterable (iterating over the attribute itself). Add two new
1511 magic strings for __xattrs__(): If the string starts with "-", the attribute
1517 magic strings for __xattrs__(): If the string starts with "-", the attribute
1512 will not be displayed in ibrowse's detail view (but it can still be
1518 will not be displayed in ibrowse's detail view (but it can still be
1513 iterated over). This makes it possible to add attributes that are large
1519 iterated over). This makes it possible to add attributes that are large
1514 lists or generator methods to the detail view. Replace magic attribute names
1520 lists or generator methods to the detail view. Replace magic attribute names
1515 and _attrname() and _getattr() with "descriptors": For each type of magic
1521 and _attrname() and _getattr() with "descriptors": For each type of magic
1516 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1522 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1517 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1523 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1518 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1524 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1519 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1525 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1520 are still supported.
1526 are still supported.
1521
1527
1522 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1528 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1523 fails in ibrowse.fetch(), the exception object is added as the last item
1529 fails in ibrowse.fetch(), the exception object is added as the last item
1524 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1530 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
1525 a generator throws an exception midway through execution.
1531 a generator throws an exception midway through execution.
1526
1532
1527 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1533 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
1528 encoding into methods.
1534 encoding into methods.
1529
1535
1530 2006-07-26 Ville Vainio <vivainio@gmail.com>
1536 2006-07-26 Ville Vainio <vivainio@gmail.com>
1531
1537
1532 * iplib.py: history now stores multiline input as single
1538 * iplib.py: history now stores multiline input as single
1533 history entries. Patch by Jorgen Cederlof.
1539 history entries. Patch by Jorgen Cederlof.
1534
1540
1535 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1541 2006-07-18 Walter Doerwald <walter@livinglogic.de>
1536
1542
1537 * IPython/Extensions/ibrowse.py: Make cursor visible over
1543 * IPython/Extensions/ibrowse.py: Make cursor visible over
1538 non existing attributes.
1544 non existing attributes.
1539
1545
1540 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1546 2006-07-14 Walter Doerwald <walter@livinglogic.de>
1541
1547
1542 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1548 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
1543 error output of the running command doesn't mess up the screen.
1549 error output of the running command doesn't mess up the screen.
1544
1550
1545 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1551 2006-07-13 Walter Doerwald <walter@livinglogic.de>
1546
1552
1547 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1553 * IPython/Extensions/ipipe.py (isort): Make isort usable without
1548 argument. This sorts the items themselves.
1554 argument. This sorts the items themselves.
1549
1555
1550 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1556 2006-07-12 Walter Doerwald <walter@livinglogic.de>
1551
1557
1552 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1558 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
1553 Compile expression strings into code objects. This should speed
1559 Compile expression strings into code objects. This should speed
1554 up ifilter and friends somewhat.
1560 up ifilter and friends somewhat.
1555
1561
1556 2006-07-08 Ville Vainio <vivainio@gmail.com>
1562 2006-07-08 Ville Vainio <vivainio@gmail.com>
1557
1563
1558 * Magic.py: %cpaste now strips > from the beginning of lines
1564 * Magic.py: %cpaste now strips > from the beginning of lines
1559 to ease pasting quoted code from emails. Contributed by
1565 to ease pasting quoted code from emails. Contributed by
1560 Stefan van der Walt.
1566 Stefan van der Walt.
1561
1567
1562 2006-06-29 Ville Vainio <vivainio@gmail.com>
1568 2006-06-29 Ville Vainio <vivainio@gmail.com>
1563
1569
1564 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1570 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
1565 mode, patch contributed by Darren Dale. NEEDS TESTING!
1571 mode, patch contributed by Darren Dale. NEEDS TESTING!
1566
1572
1567 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1573 2006-06-28 Walter Doerwald <walter@livinglogic.de>
1568
1574
1569 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1575 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
1570 a blue background. Fix fetching new display rows when the browser
1576 a blue background. Fix fetching new display rows when the browser
1571 scrolls more than a screenful (e.g. by using the goto command).
1577 scrolls more than a screenful (e.g. by using the goto command).
1572
1578
1573 2006-06-27 Ville Vainio <vivainio@gmail.com>
1579 2006-06-27 Ville Vainio <vivainio@gmail.com>
1574
1580
1575 * Magic.py (_inspect, _ofind) Apply David Huard's
1581 * Magic.py (_inspect, _ofind) Apply David Huard's
1576 patch for displaying the correct docstring for 'property'
1582 patch for displaying the correct docstring for 'property'
1577 attributes.
1583 attributes.
1578
1584
1579 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1585 2006-06-23 Walter Doerwald <walter@livinglogic.de>
1580
1586
1581 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1587 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
1582 commands into the methods implementing them.
1588 commands into the methods implementing them.
1583
1589
1584 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1590 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
1585
1591
1586 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1592 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
1587 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1593 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
1588 autoindent support was authored by Jin Liu.
1594 autoindent support was authored by Jin Liu.
1589
1595
1590 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1596 2006-06-22 Walter Doerwald <walter@livinglogic.de>
1591
1597
1592 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1598 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
1593 for keymaps with a custom class that simplifies handling.
1599 for keymaps with a custom class that simplifies handling.
1594
1600
1595 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1601 2006-06-19 Walter Doerwald <walter@livinglogic.de>
1596
1602
1597 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1603 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
1598 resizing. This requires Python 2.5 to work.
1604 resizing. This requires Python 2.5 to work.
1599
1605
1600 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1606 2006-06-16 Walter Doerwald <walter@livinglogic.de>
1601
1607
1602 * IPython/Extensions/ibrowse.py: Add two new commands to
1608 * IPython/Extensions/ibrowse.py: Add two new commands to
1603 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1609 ibrowse: "hideattr" (mapped to "h") hides the attribute under
1604 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1610 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
1605 attributes again. Remapped the help command to "?". Display
1611 attributes again. Remapped the help command to "?". Display
1606 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1612 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
1607 as keys for the "home" and "end" commands. Add three new commands
1613 as keys for the "home" and "end" commands. Add three new commands
1608 to the input mode for "find" and friends: "delend" (CTRL-K)
1614 to the input mode for "find" and friends: "delend" (CTRL-K)
1609 deletes to the end of line. "incsearchup" searches upwards in the
1615 deletes to the end of line. "incsearchup" searches upwards in the
1610 command history for an input that starts with the text before the cursor.
1616 command history for an input that starts with the text before the cursor.
1611 "incsearchdown" does the same downwards. Removed a bogus mapping of
1617 "incsearchdown" does the same downwards. Removed a bogus mapping of
1612 the x key to "delete".
1618 the x key to "delete".
1613
1619
1614 2006-06-15 Ville Vainio <vivainio@gmail.com>
1620 2006-06-15 Ville Vainio <vivainio@gmail.com>
1615
1621
1616 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1622 * iplib.py, hooks.py: Added new generate_prompt hook that can be
1617 used to create prompts dynamically, instead of the "old" way of
1623 used to create prompts dynamically, instead of the "old" way of
1618 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1624 assigning "magic" strings to prompt_in1 and prompt_in2. The old
1619 way still works (it's invoked by the default hook), of course.
1625 way still works (it's invoked by the default hook), of course.
1620
1626
1621 * Prompts.py: added generate_output_prompt hook for altering output
1627 * Prompts.py: added generate_output_prompt hook for altering output
1622 prompt
1628 prompt
1623
1629
1624 * Release.py: Changed version string to 0.7.3.svn.
1630 * Release.py: Changed version string to 0.7.3.svn.
1625
1631
1626 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1632 2006-06-15 Walter Doerwald <walter@livinglogic.de>
1627
1633
1628 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1634 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
1629 the call to fetch() always tries to fetch enough data for at least one
1635 the call to fetch() always tries to fetch enough data for at least one
1630 full screen. This makes it possible to simply call moveto(0,0,True) in
1636 full screen. This makes it possible to simply call moveto(0,0,True) in
1631 the constructor. Fix typos and removed the obsolete goto attribute.
1637 the constructor. Fix typos and removed the obsolete goto attribute.
1632
1638
1633 2006-06-12 Ville Vainio <vivainio@gmail.com>
1639 2006-06-12 Ville Vainio <vivainio@gmail.com>
1634
1640
1635 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1641 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1636 allowing $variable interpolation within multiline statements,
1642 allowing $variable interpolation within multiline statements,
1637 though so far only with "sh" profile for a testing period.
1643 though so far only with "sh" profile for a testing period.
1638 The patch also enables splitting long commands with \ but it
1644 The patch also enables splitting long commands with \ but it
1639 doesn't work properly yet.
1645 doesn't work properly yet.
1640
1646
1641 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1647 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1642
1648
1643 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1649 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1644 input history and the position of the cursor in the input history for
1650 input history and the position of the cursor in the input history for
1645 the find, findbackwards and goto command.
1651 the find, findbackwards and goto command.
1646
1652
1647 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1653 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1648
1654
1649 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1655 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1650 implements the basic functionality of browser commands that require
1656 implements the basic functionality of browser commands that require
1651 input. Reimplement the goto, find and findbackwards commands as
1657 input. Reimplement the goto, find and findbackwards commands as
1652 subclasses of _CommandInput. Add an input history and keymaps to those
1658 subclasses of _CommandInput. Add an input history and keymaps to those
1653 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1659 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1654 execute commands.
1660 execute commands.
1655
1661
1656 2006-06-07 Ville Vainio <vivainio@gmail.com>
1662 2006-06-07 Ville Vainio <vivainio@gmail.com>
1657
1663
1658 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1664 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1659 running the batch files instead of leaving the session open.
1665 running the batch files instead of leaving the session open.
1660
1666
1661 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1667 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1662
1668
1663 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1669 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1664 the original fix was incomplete. Patch submitted by W. Maier.
1670 the original fix was incomplete. Patch submitted by W. Maier.
1665
1671
1666 2006-06-07 Ville Vainio <vivainio@gmail.com>
1672 2006-06-07 Ville Vainio <vivainio@gmail.com>
1667
1673
1668 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1674 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1669 Confirmation prompts can be supressed by 'quiet' option.
1675 Confirmation prompts can be supressed by 'quiet' option.
1670 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1676 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1671
1677
1672 2006-06-06 *** Released version 0.7.2
1678 2006-06-06 *** Released version 0.7.2
1673
1679
1674 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1680 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1675
1681
1676 * IPython/Release.py (version): Made 0.7.2 final for release.
1682 * IPython/Release.py (version): Made 0.7.2 final for release.
1677 Repo tagged and release cut.
1683 Repo tagged and release cut.
1678
1684
1679 2006-06-05 Ville Vainio <vivainio@gmail.com>
1685 2006-06-05 Ville Vainio <vivainio@gmail.com>
1680
1686
1681 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1687 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1682 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1688 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1683
1689
1684 * upgrade_dir.py: try import 'path' module a bit harder
1690 * upgrade_dir.py: try import 'path' module a bit harder
1685 (for %upgrade)
1691 (for %upgrade)
1686
1692
1687 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1693 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1688
1694
1689 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1695 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1690 instead of looping 20 times.
1696 instead of looping 20 times.
1691
1697
1692 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1698 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1693 correctly at initialization time. Bug reported by Krishna Mohan
1699 correctly at initialization time. Bug reported by Krishna Mohan
1694 Gundu <gkmohan-AT-gmail.com> on the user list.
1700 Gundu <gkmohan-AT-gmail.com> on the user list.
1695
1701
1696 * IPython/Release.py (version): Mark 0.7.2 version to start
1702 * IPython/Release.py (version): Mark 0.7.2 version to start
1697 testing for release on 06/06.
1703 testing for release on 06/06.
1698
1704
1699 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1705 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1700
1706
1701 * scripts/irunner: thin script interface so users don't have to
1707 * scripts/irunner: thin script interface so users don't have to
1702 find the module and call it as an executable, since modules rarely
1708 find the module and call it as an executable, since modules rarely
1703 live in people's PATH.
1709 live in people's PATH.
1704
1710
1705 * IPython/irunner.py (InteractiveRunner.__init__): added
1711 * IPython/irunner.py (InteractiveRunner.__init__): added
1706 delaybeforesend attribute to control delays with newer versions of
1712 delaybeforesend attribute to control delays with newer versions of
1707 pexpect. Thanks to detailed help from pexpect's author, Noah
1713 pexpect. Thanks to detailed help from pexpect's author, Noah
1708 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1714 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1709 correctly (it works in NoColor mode).
1715 correctly (it works in NoColor mode).
1710
1716
1711 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1717 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1712 SAGE list, from improper log() calls.
1718 SAGE list, from improper log() calls.
1713
1719
1714 2006-05-31 Ville Vainio <vivainio@gmail.com>
1720 2006-05-31 Ville Vainio <vivainio@gmail.com>
1715
1721
1716 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1722 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1717 with args in parens to work correctly with dirs that have spaces.
1723 with args in parens to work correctly with dirs that have spaces.
1718
1724
1719 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1725 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1720
1726
1721 * IPython/Logger.py (Logger.logstart): add option to log raw input
1727 * IPython/Logger.py (Logger.logstart): add option to log raw input
1722 instead of the processed one. A -r flag was added to the
1728 instead of the processed one. A -r flag was added to the
1723 %logstart magic used for controlling logging.
1729 %logstart magic used for controlling logging.
1724
1730
1725 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1731 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1726
1732
1727 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1733 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1728 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1734 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1729 recognize the option. After a bug report by Will Maier. This
1735 recognize the option. After a bug report by Will Maier. This
1730 closes #64 (will do it after confirmation from W. Maier).
1736 closes #64 (will do it after confirmation from W. Maier).
1731
1737
1732 * IPython/irunner.py: New module to run scripts as if manually
1738 * IPython/irunner.py: New module to run scripts as if manually
1733 typed into an interactive environment, based on pexpect. After a
1739 typed into an interactive environment, based on pexpect. After a
1734 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1740 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1735 ipython-user list. Simple unittests in the tests/ directory.
1741 ipython-user list. Simple unittests in the tests/ directory.
1736
1742
1737 * tools/release: add Will Maier, OpenBSD port maintainer, to
1743 * tools/release: add Will Maier, OpenBSD port maintainer, to
1738 recepients list. We are now officially part of the OpenBSD ports:
1744 recepients list. We are now officially part of the OpenBSD ports:
1739 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1745 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1740 work.
1746 work.
1741
1747
1742 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1748 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1743
1749
1744 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1750 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1745 so that it doesn't break tkinter apps.
1751 so that it doesn't break tkinter apps.
1746
1752
1747 * IPython/iplib.py (_prefilter): fix bug where aliases would
1753 * IPython/iplib.py (_prefilter): fix bug where aliases would
1748 shadow variables when autocall was fully off. Reported by SAGE
1754 shadow variables when autocall was fully off. Reported by SAGE
1749 author William Stein.
1755 author William Stein.
1750
1756
1751 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1757 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1752 at what detail level strings are computed when foo? is requested.
1758 at what detail level strings are computed when foo? is requested.
1753 This allows users to ask for example that the string form of an
1759 This allows users to ask for example that the string form of an
1754 object is only computed when foo?? is called, or even never, by
1760 object is only computed when foo?? is called, or even never, by
1755 setting the object_info_string_level >= 2 in the configuration
1761 setting the object_info_string_level >= 2 in the configuration
1756 file. This new option has been added and documented. After a
1762 file. This new option has been added and documented. After a
1757 request by SAGE to be able to control the printing of very large
1763 request by SAGE to be able to control the printing of very large
1758 objects more easily.
1764 objects more easily.
1759
1765
1760 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1766 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1761
1767
1762 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1768 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1763 from sys.argv, to be 100% consistent with how Python itself works
1769 from sys.argv, to be 100% consistent with how Python itself works
1764 (as seen for example with python -i file.py). After a bug report
1770 (as seen for example with python -i file.py). After a bug report
1765 by Jeffrey Collins.
1771 by Jeffrey Collins.
1766
1772
1767 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1773 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1768 nasty bug which was preventing custom namespaces with -pylab,
1774 nasty bug which was preventing custom namespaces with -pylab,
1769 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1775 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1770 compatibility (long gone from mpl).
1776 compatibility (long gone from mpl).
1771
1777
1772 * IPython/ipapi.py (make_session): name change: create->make. We
1778 * IPython/ipapi.py (make_session): name change: create->make. We
1773 use make in other places (ipmaker,...), it's shorter and easier to
1779 use make in other places (ipmaker,...), it's shorter and easier to
1774 type and say, etc. I'm trying to clean things before 0.7.2 so
1780 type and say, etc. I'm trying to clean things before 0.7.2 so
1775 that I can keep things stable wrt to ipapi in the chainsaw branch.
1781 that I can keep things stable wrt to ipapi in the chainsaw branch.
1776
1782
1777 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1783 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1778 python-mode recognizes our debugger mode. Add support for
1784 python-mode recognizes our debugger mode. Add support for
1779 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1785 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1780 <m.liu.jin-AT-gmail.com> originally written by
1786 <m.liu.jin-AT-gmail.com> originally written by
1781 doxgen-AT-newsmth.net (with minor modifications for xemacs
1787 doxgen-AT-newsmth.net (with minor modifications for xemacs
1782 compatibility)
1788 compatibility)
1783
1789
1784 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1790 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1785 tracebacks when walking the stack so that the stack tracking system
1791 tracebacks when walking the stack so that the stack tracking system
1786 in emacs' python-mode can identify the frames correctly.
1792 in emacs' python-mode can identify the frames correctly.
1787
1793
1788 * IPython/ipmaker.py (make_IPython): make the internal (and
1794 * IPython/ipmaker.py (make_IPython): make the internal (and
1789 default config) autoedit_syntax value false by default. Too many
1795 default config) autoedit_syntax value false by default. Too many
1790 users have complained to me (both on and off-list) about problems
1796 users have complained to me (both on and off-list) about problems
1791 with this option being on by default, so I'm making it default to
1797 with this option being on by default, so I'm making it default to
1792 off. It can still be enabled by anyone via the usual mechanisms.
1798 off. It can still be enabled by anyone via the usual mechanisms.
1793
1799
1794 * IPython/completer.py (Completer.attr_matches): add support for
1800 * IPython/completer.py (Completer.attr_matches): add support for
1795 PyCrust-style _getAttributeNames magic method. Patch contributed
1801 PyCrust-style _getAttributeNames magic method. Patch contributed
1796 by <mscott-AT-goldenspud.com>. Closes #50.
1802 by <mscott-AT-goldenspud.com>. Closes #50.
1797
1803
1798 * IPython/iplib.py (InteractiveShell.__init__): remove the
1804 * IPython/iplib.py (InteractiveShell.__init__): remove the
1799 deletion of exit/quit from __builtin__, which can break
1805 deletion of exit/quit from __builtin__, which can break
1800 third-party tools like the Zope debugging console. The
1806 third-party tools like the Zope debugging console. The
1801 %exit/%quit magics remain. In general, it's probably a good idea
1807 %exit/%quit magics remain. In general, it's probably a good idea
1802 not to delete anything from __builtin__, since we never know what
1808 not to delete anything from __builtin__, since we never know what
1803 that will break. In any case, python now (for 2.5) will support
1809 that will break. In any case, python now (for 2.5) will support
1804 'real' exit/quit, so this issue is moot. Closes #55.
1810 'real' exit/quit, so this issue is moot. Closes #55.
1805
1811
1806 * IPython/genutils.py (with_obj): rename the 'with' function to
1812 * IPython/genutils.py (with_obj): rename the 'with' function to
1807 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1813 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1808 becomes a language keyword. Closes #53.
1814 becomes a language keyword. Closes #53.
1809
1815
1810 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1816 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1811 __file__ attribute to this so it fools more things into thinking
1817 __file__ attribute to this so it fools more things into thinking
1812 it is a real module. Closes #59.
1818 it is a real module. Closes #59.
1813
1819
1814 * IPython/Magic.py (magic_edit): add -n option to open the editor
1820 * IPython/Magic.py (magic_edit): add -n option to open the editor
1815 at a specific line number. After a patch by Stefan van der Walt.
1821 at a specific line number. After a patch by Stefan van der Walt.
1816
1822
1817 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1823 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1818
1824
1819 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1825 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1820 reason the file could not be opened. After automatic crash
1826 reason the file could not be opened. After automatic crash
1821 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1827 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1822 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1828 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1823 (_should_recompile): Don't fire editor if using %bg, since there
1829 (_should_recompile): Don't fire editor if using %bg, since there
1824 is no file in the first place. From the same report as above.
1830 is no file in the first place. From the same report as above.
1825 (raw_input): protect against faulty third-party prefilters. After
1831 (raw_input): protect against faulty third-party prefilters. After
1826 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1832 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1827 while running under SAGE.
1833 while running under SAGE.
1828
1834
1829 2006-05-23 Ville Vainio <vivainio@gmail.com>
1835 2006-05-23 Ville Vainio <vivainio@gmail.com>
1830
1836
1831 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1837 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1832 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1838 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1833 now returns None (again), unless dummy is specifically allowed by
1839 now returns None (again), unless dummy is specifically allowed by
1834 ipapi.get(allow_dummy=True).
1840 ipapi.get(allow_dummy=True).
1835
1841
1836 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1842 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1837
1843
1838 * IPython: remove all 2.2-compatibility objects and hacks from
1844 * IPython: remove all 2.2-compatibility objects and hacks from
1839 everywhere, since we only support 2.3 at this point. Docs
1845 everywhere, since we only support 2.3 at this point. Docs
1840 updated.
1846 updated.
1841
1847
1842 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1848 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1843 Anything requiring extra validation can be turned into a Python
1849 Anything requiring extra validation can be turned into a Python
1844 property in the future. I used a property for the db one b/c
1850 property in the future. I used a property for the db one b/c
1845 there was a nasty circularity problem with the initialization
1851 there was a nasty circularity problem with the initialization
1846 order, which right now I don't have time to clean up.
1852 order, which right now I don't have time to clean up.
1847
1853
1848 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1854 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1849 another locking bug reported by Jorgen. I'm not 100% sure though,
1855 another locking bug reported by Jorgen. I'm not 100% sure though,
1850 so more testing is needed...
1856 so more testing is needed...
1851
1857
1852 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1858 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1853
1859
1854 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1860 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1855 local variables from any routine in user code (typically executed
1861 local variables from any routine in user code (typically executed
1856 with %run) directly into the interactive namespace. Very useful
1862 with %run) directly into the interactive namespace. Very useful
1857 when doing complex debugging.
1863 when doing complex debugging.
1858 (IPythonNotRunning): Changed the default None object to a dummy
1864 (IPythonNotRunning): Changed the default None object to a dummy
1859 whose attributes can be queried as well as called without
1865 whose attributes can be queried as well as called without
1860 exploding, to ease writing code which works transparently both in
1866 exploding, to ease writing code which works transparently both in
1861 and out of ipython and uses some of this API.
1867 and out of ipython and uses some of this API.
1862
1868
1863 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1869 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1864
1870
1865 * IPython/hooks.py (result_display): Fix the fact that our display
1871 * IPython/hooks.py (result_display): Fix the fact that our display
1866 hook was using str() instead of repr(), as the default python
1872 hook was using str() instead of repr(), as the default python
1867 console does. This had gone unnoticed b/c it only happened if
1873 console does. This had gone unnoticed b/c it only happened if
1868 %Pprint was off, but the inconsistency was there.
1874 %Pprint was off, but the inconsistency was there.
1869
1875
1870 2006-05-15 Ville Vainio <vivainio@gmail.com>
1876 2006-05-15 Ville Vainio <vivainio@gmail.com>
1871
1877
1872 * Oinspect.py: Only show docstring for nonexisting/binary files
1878 * Oinspect.py: Only show docstring for nonexisting/binary files
1873 when doing object??, closing ticket #62
1879 when doing object??, closing ticket #62
1874
1880
1875 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1881 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1876
1882
1877 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1883 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1878 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1884 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1879 was being released in a routine which hadn't checked if it had
1885 was being released in a routine which hadn't checked if it had
1880 been the one to acquire it.
1886 been the one to acquire it.
1881
1887
1882 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1888 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1883
1889
1884 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1890 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1885
1891
1886 2006-04-11 Ville Vainio <vivainio@gmail.com>
1892 2006-04-11 Ville Vainio <vivainio@gmail.com>
1887
1893
1888 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1894 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1889 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1895 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1890 prefilters, allowing stuff like magics and aliases in the file.
1896 prefilters, allowing stuff like magics and aliases in the file.
1891
1897
1892 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1898 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1893 added. Supported now are "%clear in" and "%clear out" (clear input and
1899 added. Supported now are "%clear in" and "%clear out" (clear input and
1894 output history, respectively). Also fixed CachedOutput.flush to
1900 output history, respectively). Also fixed CachedOutput.flush to
1895 properly flush the output cache.
1901 properly flush the output cache.
1896
1902
1897 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1903 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1898 half-success (and fail explicitly).
1904 half-success (and fail explicitly).
1899
1905
1900 2006-03-28 Ville Vainio <vivainio@gmail.com>
1906 2006-03-28 Ville Vainio <vivainio@gmail.com>
1901
1907
1902 * iplib.py: Fix quoting of aliases so that only argless ones
1908 * iplib.py: Fix quoting of aliases so that only argless ones
1903 are quoted
1909 are quoted
1904
1910
1905 2006-03-28 Ville Vainio <vivainio@gmail.com>
1911 2006-03-28 Ville Vainio <vivainio@gmail.com>
1906
1912
1907 * iplib.py: Quote aliases with spaces in the name.
1913 * iplib.py: Quote aliases with spaces in the name.
1908 "c:\program files\blah\bin" is now legal alias target.
1914 "c:\program files\blah\bin" is now legal alias target.
1909
1915
1910 * ext_rehashdir.py: Space no longer allowed as arg
1916 * ext_rehashdir.py: Space no longer allowed as arg
1911 separator, since space is legal in path names.
1917 separator, since space is legal in path names.
1912
1918
1913 2006-03-16 Ville Vainio <vivainio@gmail.com>
1919 2006-03-16 Ville Vainio <vivainio@gmail.com>
1914
1920
1915 * upgrade_dir.py: Take path.py from Extensions, correcting
1921 * upgrade_dir.py: Take path.py from Extensions, correcting
1916 %upgrade magic
1922 %upgrade magic
1917
1923
1918 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1924 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1919
1925
1920 * hooks.py: Only enclose editor binary in quotes if legal and
1926 * hooks.py: Only enclose editor binary in quotes if legal and
1921 necessary (space in the name, and is an existing file). Fixes a bug
1927 necessary (space in the name, and is an existing file). Fixes a bug
1922 reported by Zachary Pincus.
1928 reported by Zachary Pincus.
1923
1929
1924 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1930 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1925
1931
1926 * Manual: thanks to a tip on proper color handling for Emacs, by
1932 * Manual: thanks to a tip on proper color handling for Emacs, by
1927 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1933 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1928
1934
1929 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1935 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1930 by applying the provided patch. Thanks to Liu Jin
1936 by applying the provided patch. Thanks to Liu Jin
1931 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1937 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1932 XEmacs/Linux, I'm trusting the submitter that it actually helps
1938 XEmacs/Linux, I'm trusting the submitter that it actually helps
1933 under win32/GNU Emacs. Will revisit if any problems are reported.
1939 under win32/GNU Emacs. Will revisit if any problems are reported.
1934
1940
1935 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1941 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1936
1942
1937 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1943 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1938 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1944 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1939
1945
1940 2006-03-12 Ville Vainio <vivainio@gmail.com>
1946 2006-03-12 Ville Vainio <vivainio@gmail.com>
1941
1947
1942 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1948 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1943 Torsten Marek.
1949 Torsten Marek.
1944
1950
1945 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1951 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1946
1952
1947 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1953 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1948 line ranges works again.
1954 line ranges works again.
1949
1955
1950 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1956 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1951
1957
1952 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1958 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1953 and friends, after a discussion with Zach Pincus on ipython-user.
1959 and friends, after a discussion with Zach Pincus on ipython-user.
1954 I'm not 100% sure, but after thinking about it quite a bit, it may
1960 I'm not 100% sure, but after thinking about it quite a bit, it may
1955 be OK. Testing with the multithreaded shells didn't reveal any
1961 be OK. Testing with the multithreaded shells didn't reveal any
1956 problems, but let's keep an eye out.
1962 problems, but let's keep an eye out.
1957
1963
1958 In the process, I fixed a few things which were calling
1964 In the process, I fixed a few things which were calling
1959 self.InteractiveTB() directly (like safe_execfile), which is a
1965 self.InteractiveTB() directly (like safe_execfile), which is a
1960 mistake: ALL exception reporting should be done by calling
1966 mistake: ALL exception reporting should be done by calling
1961 self.showtraceback(), which handles state and tab-completion and
1967 self.showtraceback(), which handles state and tab-completion and
1962 more.
1968 more.
1963
1969
1964 2006-03-01 Ville Vainio <vivainio@gmail.com>
1970 2006-03-01 Ville Vainio <vivainio@gmail.com>
1965
1971
1966 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1972 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1967 To use, do "from ipipe import *".
1973 To use, do "from ipipe import *".
1968
1974
1969 2006-02-24 Ville Vainio <vivainio@gmail.com>
1975 2006-02-24 Ville Vainio <vivainio@gmail.com>
1970
1976
1971 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1977 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1972 "cleanly" and safely than the older upgrade mechanism.
1978 "cleanly" and safely than the older upgrade mechanism.
1973
1979
1974 2006-02-21 Ville Vainio <vivainio@gmail.com>
1980 2006-02-21 Ville Vainio <vivainio@gmail.com>
1975
1981
1976 * Magic.py: %save works again.
1982 * Magic.py: %save works again.
1977
1983
1978 2006-02-15 Ville Vainio <vivainio@gmail.com>
1984 2006-02-15 Ville Vainio <vivainio@gmail.com>
1979
1985
1980 * Magic.py: %Pprint works again
1986 * Magic.py: %Pprint works again
1981
1987
1982 * Extensions/ipy_sane_defaults.py: Provide everything provided
1988 * Extensions/ipy_sane_defaults.py: Provide everything provided
1983 in default ipythonrc, to make it possible to have a completely empty
1989 in default ipythonrc, to make it possible to have a completely empty
1984 ipythonrc (and thus completely rc-file free configuration)
1990 ipythonrc (and thus completely rc-file free configuration)
1985
1991
1986 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1992 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1987
1993
1988 * IPython/hooks.py (editor): quote the call to the editor command,
1994 * IPython/hooks.py (editor): quote the call to the editor command,
1989 to allow commands with spaces in them. Problem noted by watching
1995 to allow commands with spaces in them. Problem noted by watching
1990 Ian Oswald's video about textpad under win32 at
1996 Ian Oswald's video about textpad under win32 at
1991 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1997 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1992
1998
1993 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1999 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1994 describing magics (we haven't used @ for a loong time).
2000 describing magics (we haven't used @ for a loong time).
1995
2001
1996 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2002 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1997 contributed by marienz to close
2003 contributed by marienz to close
1998 http://www.scipy.net/roundup/ipython/issue53.
2004 http://www.scipy.net/roundup/ipython/issue53.
1999
2005
2000 2006-02-10 Ville Vainio <vivainio@gmail.com>
2006 2006-02-10 Ville Vainio <vivainio@gmail.com>
2001
2007
2002 * genutils.py: getoutput now works in win32 too
2008 * genutils.py: getoutput now works in win32 too
2003
2009
2004 * completer.py: alias and magic completion only invoked
2010 * completer.py: alias and magic completion only invoked
2005 at the first "item" in the line, to avoid "cd %store"
2011 at the first "item" in the line, to avoid "cd %store"
2006 nonsense.
2012 nonsense.
2007
2013
2008 2006-02-09 Ville Vainio <vivainio@gmail.com>
2014 2006-02-09 Ville Vainio <vivainio@gmail.com>
2009
2015
2010 * test/*: Added a unit testing framework (finally).
2016 * test/*: Added a unit testing framework (finally).
2011 '%run runtests.py' to run test_*.
2017 '%run runtests.py' to run test_*.
2012
2018
2013 * ipapi.py: Exposed runlines and set_custom_exc
2019 * ipapi.py: Exposed runlines and set_custom_exc
2014
2020
2015 2006-02-07 Ville Vainio <vivainio@gmail.com>
2021 2006-02-07 Ville Vainio <vivainio@gmail.com>
2016
2022
2017 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2023 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2018 instead use "f(1 2)" as before.
2024 instead use "f(1 2)" as before.
2019
2025
2020 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2026 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2021
2027
2022 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2028 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2023 facilities, for demos processed by the IPython input filter
2029 facilities, for demos processed by the IPython input filter
2024 (IPythonDemo), and for running a script one-line-at-a-time as a
2030 (IPythonDemo), and for running a script one-line-at-a-time as a
2025 demo, both for pure Python (LineDemo) and for IPython-processed
2031 demo, both for pure Python (LineDemo) and for IPython-processed
2026 input (IPythonLineDemo). After a request by Dave Kohel, from the
2032 input (IPythonLineDemo). After a request by Dave Kohel, from the
2027 SAGE team.
2033 SAGE team.
2028 (Demo.edit): added an edit() method to the demo objects, to edit
2034 (Demo.edit): added an edit() method to the demo objects, to edit
2029 the in-memory copy of the last executed block.
2035 the in-memory copy of the last executed block.
2030
2036
2031 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2037 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2032 processing to %edit, %macro and %save. These commands can now be
2038 processing to %edit, %macro and %save. These commands can now be
2033 invoked on the unprocessed input as it was typed by the user
2039 invoked on the unprocessed input as it was typed by the user
2034 (without any prefilters applied). After requests by the SAGE team
2040 (without any prefilters applied). After requests by the SAGE team
2035 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2041 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2036
2042
2037 2006-02-01 Ville Vainio <vivainio@gmail.com>
2043 2006-02-01 Ville Vainio <vivainio@gmail.com>
2038
2044
2039 * setup.py, eggsetup.py: easy_install ipython==dev works
2045 * setup.py, eggsetup.py: easy_install ipython==dev works
2040 correctly now (on Linux)
2046 correctly now (on Linux)
2041
2047
2042 * ipy_user_conf,ipmaker: user config changes, removed spurious
2048 * ipy_user_conf,ipmaker: user config changes, removed spurious
2043 warnings
2049 warnings
2044
2050
2045 * iplib: if rc.banner is string, use it as is.
2051 * iplib: if rc.banner is string, use it as is.
2046
2052
2047 * Magic: %pycat accepts a string argument and pages it's contents.
2053 * Magic: %pycat accepts a string argument and pages it's contents.
2048
2054
2049
2055
2050 2006-01-30 Ville Vainio <vivainio@gmail.com>
2056 2006-01-30 Ville Vainio <vivainio@gmail.com>
2051
2057
2052 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2058 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2053 Now %store and bookmarks work through PickleShare, meaning that
2059 Now %store and bookmarks work through PickleShare, meaning that
2054 concurrent access is possible and all ipython sessions see the
2060 concurrent access is possible and all ipython sessions see the
2055 same database situation all the time, instead of snapshot of
2061 same database situation all the time, instead of snapshot of
2056 the situation when the session was started. Hence, %bookmark
2062 the situation when the session was started. Hence, %bookmark
2057 results are immediately accessible from othes sessions. The database
2063 results are immediately accessible from othes sessions. The database
2058 is also available for use by user extensions. See:
2064 is also available for use by user extensions. See:
2059 http://www.python.org/pypi/pickleshare
2065 http://www.python.org/pypi/pickleshare
2060
2066
2061 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2067 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2062
2068
2063 * aliases can now be %store'd
2069 * aliases can now be %store'd
2064
2070
2065 * path.py moved to Extensions so that pickleshare does not need
2071 * path.py moved to Extensions so that pickleshare does not need
2066 IPython-specific import. Extensions added to pythonpath right
2072 IPython-specific import. Extensions added to pythonpath right
2067 at __init__.
2073 at __init__.
2068
2074
2069 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2075 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2070 called with _ip.system and the pre-transformed command string.
2076 called with _ip.system and the pre-transformed command string.
2071
2077
2072 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2078 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2073
2079
2074 * IPython/iplib.py (interact): Fix that we were not catching
2080 * IPython/iplib.py (interact): Fix that we were not catching
2075 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2081 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2076 logic here had to change, but it's fixed now.
2082 logic here had to change, but it's fixed now.
2077
2083
2078 2006-01-29 Ville Vainio <vivainio@gmail.com>
2084 2006-01-29 Ville Vainio <vivainio@gmail.com>
2079
2085
2080 * iplib.py: Try to import pyreadline on Windows.
2086 * iplib.py: Try to import pyreadline on Windows.
2081
2087
2082 2006-01-27 Ville Vainio <vivainio@gmail.com>
2088 2006-01-27 Ville Vainio <vivainio@gmail.com>
2083
2089
2084 * iplib.py: Expose ipapi as _ip in builtin namespace.
2090 * iplib.py: Expose ipapi as _ip in builtin namespace.
2085 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2091 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2086 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2092 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2087 syntax now produce _ip.* variant of the commands.
2093 syntax now produce _ip.* variant of the commands.
2088
2094
2089 * "_ip.options().autoedit_syntax = 2" automatically throws
2095 * "_ip.options().autoedit_syntax = 2" automatically throws
2090 user to editor for syntax error correction without prompting.
2096 user to editor for syntax error correction without prompting.
2091
2097
2092 2006-01-27 Ville Vainio <vivainio@gmail.com>
2098 2006-01-27 Ville Vainio <vivainio@gmail.com>
2093
2099
2094 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2100 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2095 'ipython' at argv[0]) executed through command line.
2101 'ipython' at argv[0]) executed through command line.
2096 NOTE: this DEPRECATES calling ipython with multiple scripts
2102 NOTE: this DEPRECATES calling ipython with multiple scripts
2097 ("ipython a.py b.py c.py")
2103 ("ipython a.py b.py c.py")
2098
2104
2099 * iplib.py, hooks.py: Added configurable input prefilter,
2105 * iplib.py, hooks.py: Added configurable input prefilter,
2100 named 'input_prefilter'. See ext_rescapture.py for example
2106 named 'input_prefilter'. See ext_rescapture.py for example
2101 usage.
2107 usage.
2102
2108
2103 * ext_rescapture.py, Magic.py: Better system command output capture
2109 * ext_rescapture.py, Magic.py: Better system command output capture
2104 through 'var = !ls' (deprecates user-visible %sc). Same notation
2110 through 'var = !ls' (deprecates user-visible %sc). Same notation
2105 applies for magics, 'var = %alias' assigns alias list to var.
2111 applies for magics, 'var = %alias' assigns alias list to var.
2106
2112
2107 * ipapi.py: added meta() for accessing extension-usable data store.
2113 * ipapi.py: added meta() for accessing extension-usable data store.
2108
2114
2109 * iplib.py: added InteractiveShell.getapi(). New magics should be
2115 * iplib.py: added InteractiveShell.getapi(). New magics should be
2110 written doing self.getapi() instead of using the shell directly.
2116 written doing self.getapi() instead of using the shell directly.
2111
2117
2112 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2118 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2113 %store foo >> ~/myfoo.txt to store variables to files (in clean
2119 %store foo >> ~/myfoo.txt to store variables to files (in clean
2114 textual form, not a restorable pickle).
2120 textual form, not a restorable pickle).
2115
2121
2116 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2122 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2117
2123
2118 * usage.py, Magic.py: added %quickref
2124 * usage.py, Magic.py: added %quickref
2119
2125
2120 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2126 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2121
2127
2122 * GetoptErrors when invoking magics etc. with wrong args
2128 * GetoptErrors when invoking magics etc. with wrong args
2123 are now more helpful:
2129 are now more helpful:
2124 GetoptError: option -l not recognized (allowed: "qb" )
2130 GetoptError: option -l not recognized (allowed: "qb" )
2125
2131
2126 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2132 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2127
2133
2128 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2134 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2129 computationally intensive blocks don't appear to stall the demo.
2135 computationally intensive blocks don't appear to stall the demo.
2130
2136
2131 2006-01-24 Ville Vainio <vivainio@gmail.com>
2137 2006-01-24 Ville Vainio <vivainio@gmail.com>
2132
2138
2133 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2139 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2134 value to manipulate resulting history entry.
2140 value to manipulate resulting history entry.
2135
2141
2136 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2142 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2137 to instance methods of IPApi class, to make extending an embedded
2143 to instance methods of IPApi class, to make extending an embedded
2138 IPython feasible. See ext_rehashdir.py for example usage.
2144 IPython feasible. See ext_rehashdir.py for example usage.
2139
2145
2140 * Merged 1071-1076 from branches/0.7.1
2146 * Merged 1071-1076 from branches/0.7.1
2141
2147
2142
2148
2143 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2149 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2144
2150
2145 * tools/release (daystamp): Fix build tools to use the new
2151 * tools/release (daystamp): Fix build tools to use the new
2146 eggsetup.py script to build lightweight eggs.
2152 eggsetup.py script to build lightweight eggs.
2147
2153
2148 * Applied changesets 1062 and 1064 before 0.7.1 release.
2154 * Applied changesets 1062 and 1064 before 0.7.1 release.
2149
2155
2150 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2156 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2151 see the raw input history (without conversions like %ls ->
2157 see the raw input history (without conversions like %ls ->
2152 ipmagic("ls")). After a request from W. Stein, SAGE
2158 ipmagic("ls")). After a request from W. Stein, SAGE
2153 (http://modular.ucsd.edu/sage) developer. This information is
2159 (http://modular.ucsd.edu/sage) developer. This information is
2154 stored in the input_hist_raw attribute of the IPython instance, so
2160 stored in the input_hist_raw attribute of the IPython instance, so
2155 developers can access it if needed (it's an InputList instance).
2161 developers can access it if needed (it's an InputList instance).
2156
2162
2157 * Versionstring = 0.7.2.svn
2163 * Versionstring = 0.7.2.svn
2158
2164
2159 * eggsetup.py: A separate script for constructing eggs, creates
2165 * eggsetup.py: A separate script for constructing eggs, creates
2160 proper launch scripts even on Windows (an .exe file in
2166 proper launch scripts even on Windows (an .exe file in
2161 \python24\scripts).
2167 \python24\scripts).
2162
2168
2163 * ipapi.py: launch_new_instance, launch entry point needed for the
2169 * ipapi.py: launch_new_instance, launch entry point needed for the
2164 egg.
2170 egg.
2165
2171
2166 2006-01-23 Ville Vainio <vivainio@gmail.com>
2172 2006-01-23 Ville Vainio <vivainio@gmail.com>
2167
2173
2168 * Added %cpaste magic for pasting python code
2174 * Added %cpaste magic for pasting python code
2169
2175
2170 2006-01-22 Ville Vainio <vivainio@gmail.com>
2176 2006-01-22 Ville Vainio <vivainio@gmail.com>
2171
2177
2172 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2178 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2173
2179
2174 * Versionstring = 0.7.2.svn
2180 * Versionstring = 0.7.2.svn
2175
2181
2176 * eggsetup.py: A separate script for constructing eggs, creates
2182 * eggsetup.py: A separate script for constructing eggs, creates
2177 proper launch scripts even on Windows (an .exe file in
2183 proper launch scripts even on Windows (an .exe file in
2178 \python24\scripts).
2184 \python24\scripts).
2179
2185
2180 * ipapi.py: launch_new_instance, launch entry point needed for the
2186 * ipapi.py: launch_new_instance, launch entry point needed for the
2181 egg.
2187 egg.
2182
2188
2183 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2189 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2184
2190
2185 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2191 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2186 %pfile foo would print the file for foo even if it was a binary.
2192 %pfile foo would print the file for foo even if it was a binary.
2187 Now, extensions '.so' and '.dll' are skipped.
2193 Now, extensions '.so' and '.dll' are skipped.
2188
2194
2189 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2195 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2190 bug, where macros would fail in all threaded modes. I'm not 100%
2196 bug, where macros would fail in all threaded modes. I'm not 100%
2191 sure, so I'm going to put out an rc instead of making a release
2197 sure, so I'm going to put out an rc instead of making a release
2192 today, and wait for feedback for at least a few days.
2198 today, and wait for feedback for at least a few days.
2193
2199
2194 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2200 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2195 it...) the handling of pasting external code with autoindent on.
2201 it...) the handling of pasting external code with autoindent on.
2196 To get out of a multiline input, the rule will appear for most
2202 To get out of a multiline input, the rule will appear for most
2197 users unchanged: two blank lines or change the indent level
2203 users unchanged: two blank lines or change the indent level
2198 proposed by IPython. But there is a twist now: you can
2204 proposed by IPython. But there is a twist now: you can
2199 add/subtract only *one or two spaces*. If you add/subtract three
2205 add/subtract only *one or two spaces*. If you add/subtract three
2200 or more (unless you completely delete the line), IPython will
2206 or more (unless you completely delete the line), IPython will
2201 accept that line, and you'll need to enter a second one of pure
2207 accept that line, and you'll need to enter a second one of pure
2202 whitespace. I know it sounds complicated, but I can't find a
2208 whitespace. I know it sounds complicated, but I can't find a
2203 different solution that covers all the cases, with the right
2209 different solution that covers all the cases, with the right
2204 heuristics. Hopefully in actual use, nobody will really notice
2210 heuristics. Hopefully in actual use, nobody will really notice
2205 all these strange rules and things will 'just work'.
2211 all these strange rules and things will 'just work'.
2206
2212
2207 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2213 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2208
2214
2209 * IPython/iplib.py (interact): catch exceptions which can be
2215 * IPython/iplib.py (interact): catch exceptions which can be
2210 triggered asynchronously by signal handlers. Thanks to an
2216 triggered asynchronously by signal handlers. Thanks to an
2211 automatic crash report, submitted by Colin Kingsley
2217 automatic crash report, submitted by Colin Kingsley
2212 <tercel-AT-gentoo.org>.
2218 <tercel-AT-gentoo.org>.
2213
2219
2214 2006-01-20 Ville Vainio <vivainio@gmail.com>
2220 2006-01-20 Ville Vainio <vivainio@gmail.com>
2215
2221
2216 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2222 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2217 (%rehashdir, very useful, try it out) of how to extend ipython
2223 (%rehashdir, very useful, try it out) of how to extend ipython
2218 with new magics. Also added Extensions dir to pythonpath to make
2224 with new magics. Also added Extensions dir to pythonpath to make
2219 importing extensions easy.
2225 importing extensions easy.
2220
2226
2221 * %store now complains when trying to store interactively declared
2227 * %store now complains when trying to store interactively declared
2222 classes / instances of those classes.
2228 classes / instances of those classes.
2223
2229
2224 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2230 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2225 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2231 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2226 if they exist, and ipy_user_conf.py with some defaults is created for
2232 if they exist, and ipy_user_conf.py with some defaults is created for
2227 the user.
2233 the user.
2228
2234
2229 * Startup rehashing done by the config file, not InterpreterExec.
2235 * Startup rehashing done by the config file, not InterpreterExec.
2230 This means system commands are available even without selecting the
2236 This means system commands are available even without selecting the
2231 pysh profile. It's the sensible default after all.
2237 pysh profile. It's the sensible default after all.
2232
2238
2233 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2239 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2234
2240
2235 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2241 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2236 multiline code with autoindent on working. But I am really not
2242 multiline code with autoindent on working. But I am really not
2237 sure, so this needs more testing. Will commit a debug-enabled
2243 sure, so this needs more testing. Will commit a debug-enabled
2238 version for now, while I test it some more, so that Ville and
2244 version for now, while I test it some more, so that Ville and
2239 others may also catch any problems. Also made
2245 others may also catch any problems. Also made
2240 self.indent_current_str() a method, to ensure that there's no
2246 self.indent_current_str() a method, to ensure that there's no
2241 chance of the indent space count and the corresponding string
2247 chance of the indent space count and the corresponding string
2242 falling out of sync. All code needing the string should just call
2248 falling out of sync. All code needing the string should just call
2243 the method.
2249 the method.
2244
2250
2245 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2251 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2246
2252
2247 * IPython/Magic.py (magic_edit): fix check for when users don't
2253 * IPython/Magic.py (magic_edit): fix check for when users don't
2248 save their output files, the try/except was in the wrong section.
2254 save their output files, the try/except was in the wrong section.
2249
2255
2250 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2256 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2251
2257
2252 * IPython/Magic.py (magic_run): fix __file__ global missing from
2258 * IPython/Magic.py (magic_run): fix __file__ global missing from
2253 script's namespace when executed via %run. After a report by
2259 script's namespace when executed via %run. After a report by
2254 Vivian.
2260 Vivian.
2255
2261
2256 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2262 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2257 when using python 2.4. The parent constructor changed in 2.4, and
2263 when using python 2.4. The parent constructor changed in 2.4, and
2258 we need to track it directly (we can't call it, as it messes up
2264 we need to track it directly (we can't call it, as it messes up
2259 readline and tab-completion inside our pdb would stop working).
2265 readline and tab-completion inside our pdb would stop working).
2260 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2266 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2261
2267
2262 2006-01-16 Ville Vainio <vivainio@gmail.com>
2268 2006-01-16 Ville Vainio <vivainio@gmail.com>
2263
2269
2264 * Ipython/magic.py: Reverted back to old %edit functionality
2270 * Ipython/magic.py: Reverted back to old %edit functionality
2265 that returns file contents on exit.
2271 that returns file contents on exit.
2266
2272
2267 * IPython/path.py: Added Jason Orendorff's "path" module to
2273 * IPython/path.py: Added Jason Orendorff's "path" module to
2268 IPython tree, http://www.jorendorff.com/articles/python/path/.
2274 IPython tree, http://www.jorendorff.com/articles/python/path/.
2269 You can get path objects conveniently through %sc, and !!, e.g.:
2275 You can get path objects conveniently through %sc, and !!, e.g.:
2270 sc files=ls
2276 sc files=ls
2271 for p in files.paths: # or files.p
2277 for p in files.paths: # or files.p
2272 print p,p.mtime
2278 print p,p.mtime
2273
2279
2274 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2280 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2275 now work again without considering the exclusion regexp -
2281 now work again without considering the exclusion regexp -
2276 hence, things like ',foo my/path' turn to 'foo("my/path")'
2282 hence, things like ',foo my/path' turn to 'foo("my/path")'
2277 instead of syntax error.
2283 instead of syntax error.
2278
2284
2279
2285
2280 2006-01-14 Ville Vainio <vivainio@gmail.com>
2286 2006-01-14 Ville Vainio <vivainio@gmail.com>
2281
2287
2282 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2288 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2283 ipapi decorators for python 2.4 users, options() provides access to rc
2289 ipapi decorators for python 2.4 users, options() provides access to rc
2284 data.
2290 data.
2285
2291
2286 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2292 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2287 as path separators (even on Linux ;-). Space character after
2293 as path separators (even on Linux ;-). Space character after
2288 backslash (as yielded by tab completer) is still space;
2294 backslash (as yielded by tab completer) is still space;
2289 "%cd long\ name" works as expected.
2295 "%cd long\ name" works as expected.
2290
2296
2291 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2297 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2292 as "chain of command", with priority. API stays the same,
2298 as "chain of command", with priority. API stays the same,
2293 TryNext exception raised by a hook function signals that
2299 TryNext exception raised by a hook function signals that
2294 current hook failed and next hook should try handling it, as
2300 current hook failed and next hook should try handling it, as
2295 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2301 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2296 requested configurable display hook, which is now implemented.
2302 requested configurable display hook, which is now implemented.
2297
2303
2298 2006-01-13 Ville Vainio <vivainio@gmail.com>
2304 2006-01-13 Ville Vainio <vivainio@gmail.com>
2299
2305
2300 * IPython/platutils*.py: platform specific utility functions,
2306 * IPython/platutils*.py: platform specific utility functions,
2301 so far only set_term_title is implemented (change terminal
2307 so far only set_term_title is implemented (change terminal
2302 label in windowing systems). %cd now changes the title to
2308 label in windowing systems). %cd now changes the title to
2303 current dir.
2309 current dir.
2304
2310
2305 * IPython/Release.py: Added myself to "authors" list,
2311 * IPython/Release.py: Added myself to "authors" list,
2306 had to create new files.
2312 had to create new files.
2307
2313
2308 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2314 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2309 shell escape; not a known bug but had potential to be one in the
2315 shell escape; not a known bug but had potential to be one in the
2310 future.
2316 future.
2311
2317
2312 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2318 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2313 extension API for IPython! See the module for usage example. Fix
2319 extension API for IPython! See the module for usage example. Fix
2314 OInspect for docstring-less magic functions.
2320 OInspect for docstring-less magic functions.
2315
2321
2316
2322
2317 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2323 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2318
2324
2319 * IPython/iplib.py (raw_input): temporarily deactivate all
2325 * IPython/iplib.py (raw_input): temporarily deactivate all
2320 attempts at allowing pasting of code with autoindent on. It
2326 attempts at allowing pasting of code with autoindent on. It
2321 introduced bugs (reported by Prabhu) and I can't seem to find a
2327 introduced bugs (reported by Prabhu) and I can't seem to find a
2322 robust combination which works in all cases. Will have to revisit
2328 robust combination which works in all cases. Will have to revisit
2323 later.
2329 later.
2324
2330
2325 * IPython/genutils.py: remove isspace() function. We've dropped
2331 * IPython/genutils.py: remove isspace() function. We've dropped
2326 2.2 compatibility, so it's OK to use the string method.
2332 2.2 compatibility, so it's OK to use the string method.
2327
2333
2328 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2334 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2329
2335
2330 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2336 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2331 matching what NOT to autocall on, to include all python binary
2337 matching what NOT to autocall on, to include all python binary
2332 operators (including things like 'and', 'or', 'is' and 'in').
2338 operators (including things like 'and', 'or', 'is' and 'in').
2333 Prompted by a bug report on 'foo & bar', but I realized we had
2339 Prompted by a bug report on 'foo & bar', but I realized we had
2334 many more potential bug cases with other operators. The regexp is
2340 many more potential bug cases with other operators. The regexp is
2335 self.re_exclude_auto, it's fairly commented.
2341 self.re_exclude_auto, it's fairly commented.
2336
2342
2337 2006-01-12 Ville Vainio <vivainio@gmail.com>
2343 2006-01-12 Ville Vainio <vivainio@gmail.com>
2338
2344
2339 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2345 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2340 Prettified and hardened string/backslash quoting with ipsystem(),
2346 Prettified and hardened string/backslash quoting with ipsystem(),
2341 ipalias() and ipmagic(). Now even \ characters are passed to
2347 ipalias() and ipmagic(). Now even \ characters are passed to
2342 %magics, !shell escapes and aliases exactly as they are in the
2348 %magics, !shell escapes and aliases exactly as they are in the
2343 ipython command line. Should improve backslash experience,
2349 ipython command line. Should improve backslash experience,
2344 particularly in Windows (path delimiter for some commands that
2350 particularly in Windows (path delimiter for some commands that
2345 won't understand '/'), but Unix benefits as well (regexps). %cd
2351 won't understand '/'), but Unix benefits as well (regexps). %cd
2346 magic still doesn't support backslash path delimiters, though. Also
2352 magic still doesn't support backslash path delimiters, though. Also
2347 deleted all pretense of supporting multiline command strings in
2353 deleted all pretense of supporting multiline command strings in
2348 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2354 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2349
2355
2350 * doc/build_doc_instructions.txt added. Documentation on how to
2356 * doc/build_doc_instructions.txt added. Documentation on how to
2351 use doc/update_manual.py, added yesterday. Both files contributed
2357 use doc/update_manual.py, added yesterday. Both files contributed
2352 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2358 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2353 doc/*.sh for deprecation at a later date.
2359 doc/*.sh for deprecation at a later date.
2354
2360
2355 * /ipython.py Added ipython.py to root directory for
2361 * /ipython.py Added ipython.py to root directory for
2356 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2362 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2357 ipython.py) and development convenience (no need to keep doing
2363 ipython.py) and development convenience (no need to keep doing
2358 "setup.py install" between changes).
2364 "setup.py install" between changes).
2359
2365
2360 * Made ! and !! shell escapes work (again) in multiline expressions:
2366 * Made ! and !! shell escapes work (again) in multiline expressions:
2361 if 1:
2367 if 1:
2362 !ls
2368 !ls
2363 !!ls
2369 !!ls
2364
2370
2365 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2371 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2366
2372
2367 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2373 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2368 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2374 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2369 module in case-insensitive installation. Was causing crashes
2375 module in case-insensitive installation. Was causing crashes
2370 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2376 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2371
2377
2372 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2378 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2373 <marienz-AT-gentoo.org>, closes
2379 <marienz-AT-gentoo.org>, closes
2374 http://www.scipy.net/roundup/ipython/issue51.
2380 http://www.scipy.net/roundup/ipython/issue51.
2375
2381
2376 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2382 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2377
2383
2378 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2384 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2379 problem of excessive CPU usage under *nix and keyboard lag under
2385 problem of excessive CPU usage under *nix and keyboard lag under
2380 win32.
2386 win32.
2381
2387
2382 2006-01-10 *** Released version 0.7.0
2388 2006-01-10 *** Released version 0.7.0
2383
2389
2384 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2390 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2385
2391
2386 * IPython/Release.py (revision): tag version number to 0.7.0,
2392 * IPython/Release.py (revision): tag version number to 0.7.0,
2387 ready for release.
2393 ready for release.
2388
2394
2389 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2395 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2390 it informs the user of the name of the temp. file used. This can
2396 it informs the user of the name of the temp. file used. This can
2391 help if you decide later to reuse that same file, so you know
2397 help if you decide later to reuse that same file, so you know
2392 where to copy the info from.
2398 where to copy the info from.
2393
2399
2394 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2400 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2395
2401
2396 * setup_bdist_egg.py: little script to build an egg. Added
2402 * setup_bdist_egg.py: little script to build an egg. Added
2397 support in the release tools as well.
2403 support in the release tools as well.
2398
2404
2399 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2405 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2400
2406
2401 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2407 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2402 version selection (new -wxversion command line and ipythonrc
2408 version selection (new -wxversion command line and ipythonrc
2403 parameter). Patch contributed by Arnd Baecker
2409 parameter). Patch contributed by Arnd Baecker
2404 <arnd.baecker-AT-web.de>.
2410 <arnd.baecker-AT-web.de>.
2405
2411
2406 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2412 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2407 embedded instances, for variables defined at the interactive
2413 embedded instances, for variables defined at the interactive
2408 prompt of the embedded ipython. Reported by Arnd.
2414 prompt of the embedded ipython. Reported by Arnd.
2409
2415
2410 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2416 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2411 it can be used as a (stateful) toggle, or with a direct parameter.
2417 it can be used as a (stateful) toggle, or with a direct parameter.
2412
2418
2413 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2419 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2414 could be triggered in certain cases and cause the traceback
2420 could be triggered in certain cases and cause the traceback
2415 printer not to work.
2421 printer not to work.
2416
2422
2417 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2423 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2418
2424
2419 * IPython/iplib.py (_should_recompile): Small fix, closes
2425 * IPython/iplib.py (_should_recompile): Small fix, closes
2420 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2426 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2421
2427
2422 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2428 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2423
2429
2424 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2430 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2425 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2431 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2426 Moad for help with tracking it down.
2432 Moad for help with tracking it down.
2427
2433
2428 * IPython/iplib.py (handle_auto): fix autocall handling for
2434 * IPython/iplib.py (handle_auto): fix autocall handling for
2429 objects which support BOTH __getitem__ and __call__ (so that f [x]
2435 objects which support BOTH __getitem__ and __call__ (so that f [x]
2430 is left alone, instead of becoming f([x]) automatically).
2436 is left alone, instead of becoming f([x]) automatically).
2431
2437
2432 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2438 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2433 Ville's patch.
2439 Ville's patch.
2434
2440
2435 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2441 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2436
2442
2437 * IPython/iplib.py (handle_auto): changed autocall semantics to
2443 * IPython/iplib.py (handle_auto): changed autocall semantics to
2438 include 'smart' mode, where the autocall transformation is NOT
2444 include 'smart' mode, where the autocall transformation is NOT
2439 applied if there are no arguments on the line. This allows you to
2445 applied if there are no arguments on the line. This allows you to
2440 just type 'foo' if foo is a callable to see its internal form,
2446 just type 'foo' if foo is a callable to see its internal form,
2441 instead of having it called with no arguments (typically a
2447 instead of having it called with no arguments (typically a
2442 mistake). The old 'full' autocall still exists: for that, you
2448 mistake). The old 'full' autocall still exists: for that, you
2443 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2449 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2444
2450
2445 * IPython/completer.py (Completer.attr_matches): add
2451 * IPython/completer.py (Completer.attr_matches): add
2446 tab-completion support for Enthoughts' traits. After a report by
2452 tab-completion support for Enthoughts' traits. After a report by
2447 Arnd and a patch by Prabhu.
2453 Arnd and a patch by Prabhu.
2448
2454
2449 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2455 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2450
2456
2451 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2457 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2452 Schmolck's patch to fix inspect.getinnerframes().
2458 Schmolck's patch to fix inspect.getinnerframes().
2453
2459
2454 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2460 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2455 for embedded instances, regarding handling of namespaces and items
2461 for embedded instances, regarding handling of namespaces and items
2456 added to the __builtin__ one. Multiple embedded instances and
2462 added to the __builtin__ one. Multiple embedded instances and
2457 recursive embeddings should work better now (though I'm not sure
2463 recursive embeddings should work better now (though I'm not sure
2458 I've got all the corner cases fixed, that code is a bit of a brain
2464 I've got all the corner cases fixed, that code is a bit of a brain
2459 twister).
2465 twister).
2460
2466
2461 * IPython/Magic.py (magic_edit): added support to edit in-memory
2467 * IPython/Magic.py (magic_edit): added support to edit in-memory
2462 macros (automatically creates the necessary temp files). %edit
2468 macros (automatically creates the necessary temp files). %edit
2463 also doesn't return the file contents anymore, it's just noise.
2469 also doesn't return the file contents anymore, it's just noise.
2464
2470
2465 * IPython/completer.py (Completer.attr_matches): revert change to
2471 * IPython/completer.py (Completer.attr_matches): revert change to
2466 complete only on attributes listed in __all__. I realized it
2472 complete only on attributes listed in __all__. I realized it
2467 cripples the tab-completion system as a tool for exploring the
2473 cripples the tab-completion system as a tool for exploring the
2468 internals of unknown libraries (it renders any non-__all__
2474 internals of unknown libraries (it renders any non-__all__
2469 attribute off-limits). I got bit by this when trying to see
2475 attribute off-limits). I got bit by this when trying to see
2470 something inside the dis module.
2476 something inside the dis module.
2471
2477
2472 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2478 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2473
2479
2474 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2480 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2475 namespace for users and extension writers to hold data in. This
2481 namespace for users and extension writers to hold data in. This
2476 follows the discussion in
2482 follows the discussion in
2477 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2483 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2478
2484
2479 * IPython/completer.py (IPCompleter.complete): small patch to help
2485 * IPython/completer.py (IPCompleter.complete): small patch to help
2480 tab-completion under Emacs, after a suggestion by John Barnard
2486 tab-completion under Emacs, after a suggestion by John Barnard
2481 <barnarj-AT-ccf.org>.
2487 <barnarj-AT-ccf.org>.
2482
2488
2483 * IPython/Magic.py (Magic.extract_input_slices): added support for
2489 * IPython/Magic.py (Magic.extract_input_slices): added support for
2484 the slice notation in magics to use N-M to represent numbers N...M
2490 the slice notation in magics to use N-M to represent numbers N...M
2485 (closed endpoints). This is used by %macro and %save.
2491 (closed endpoints). This is used by %macro and %save.
2486
2492
2487 * IPython/completer.py (Completer.attr_matches): for modules which
2493 * IPython/completer.py (Completer.attr_matches): for modules which
2488 define __all__, complete only on those. After a patch by Jeffrey
2494 define __all__, complete only on those. After a patch by Jeffrey
2489 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2495 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2490 speed up this routine.
2496 speed up this routine.
2491
2497
2492 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2498 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2493 don't know if this is the end of it, but the behavior now is
2499 don't know if this is the end of it, but the behavior now is
2494 certainly much more correct. Note that coupled with macros,
2500 certainly much more correct. Note that coupled with macros,
2495 slightly surprising (at first) behavior may occur: a macro will in
2501 slightly surprising (at first) behavior may occur: a macro will in
2496 general expand to multiple lines of input, so upon exiting, the
2502 general expand to multiple lines of input, so upon exiting, the
2497 in/out counters will both be bumped by the corresponding amount
2503 in/out counters will both be bumped by the corresponding amount
2498 (as if the macro's contents had been typed interactively). Typing
2504 (as if the macro's contents had been typed interactively). Typing
2499 %hist will reveal the intermediate (silently processed) lines.
2505 %hist will reveal the intermediate (silently processed) lines.
2500
2506
2501 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2507 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2502 pickle to fail (%run was overwriting __main__ and not restoring
2508 pickle to fail (%run was overwriting __main__ and not restoring
2503 it, but pickle relies on __main__ to operate).
2509 it, but pickle relies on __main__ to operate).
2504
2510
2505 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2511 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2506 using properties, but forgot to make the main InteractiveShell
2512 using properties, but forgot to make the main InteractiveShell
2507 class a new-style class. Properties fail silently, and
2513 class a new-style class. Properties fail silently, and
2508 mysteriously, with old-style class (getters work, but
2514 mysteriously, with old-style class (getters work, but
2509 setters don't do anything).
2515 setters don't do anything).
2510
2516
2511 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2517 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2512
2518
2513 * IPython/Magic.py (magic_history): fix history reporting bug (I
2519 * IPython/Magic.py (magic_history): fix history reporting bug (I
2514 know some nasties are still there, I just can't seem to find a
2520 know some nasties are still there, I just can't seem to find a
2515 reproducible test case to track them down; the input history is
2521 reproducible test case to track them down; the input history is
2516 falling out of sync...)
2522 falling out of sync...)
2517
2523
2518 * IPython/iplib.py (handle_shell_escape): fix bug where both
2524 * IPython/iplib.py (handle_shell_escape): fix bug where both
2519 aliases and system accesses where broken for indented code (such
2525 aliases and system accesses where broken for indented code (such
2520 as loops).
2526 as loops).
2521
2527
2522 * IPython/genutils.py (shell): fix small but critical bug for
2528 * IPython/genutils.py (shell): fix small but critical bug for
2523 win32 system access.
2529 win32 system access.
2524
2530
2525 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2531 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
2526
2532
2527 * IPython/iplib.py (showtraceback): remove use of the
2533 * IPython/iplib.py (showtraceback): remove use of the
2528 sys.last_{type/value/traceback} structures, which are non
2534 sys.last_{type/value/traceback} structures, which are non
2529 thread-safe.
2535 thread-safe.
2530 (_prefilter): change control flow to ensure that we NEVER
2536 (_prefilter): change control flow to ensure that we NEVER
2531 introspect objects when autocall is off. This will guarantee that
2537 introspect objects when autocall is off. This will guarantee that
2532 having an input line of the form 'x.y', where access to attribute
2538 having an input line of the form 'x.y', where access to attribute
2533 'y' has side effects, doesn't trigger the side effect TWICE. It
2539 'y' has side effects, doesn't trigger the side effect TWICE. It
2534 is important to note that, with autocall on, these side effects
2540 is important to note that, with autocall on, these side effects
2535 can still happen.
2541 can still happen.
2536 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2542 (ipsystem): new builtin, to complete the ip{magic/alias/system}
2537 trio. IPython offers these three kinds of special calls which are
2543 trio. IPython offers these three kinds of special calls which are
2538 not python code, and it's a good thing to have their call method
2544 not python code, and it's a good thing to have their call method
2539 be accessible as pure python functions (not just special syntax at
2545 be accessible as pure python functions (not just special syntax at
2540 the command line). It gives us a better internal implementation
2546 the command line). It gives us a better internal implementation
2541 structure, as well as exposing these for user scripting more
2547 structure, as well as exposing these for user scripting more
2542 cleanly.
2548 cleanly.
2543
2549
2544 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2550 * IPython/macro.py (Macro.__init__): moved macros to a standalone
2545 file. Now that they'll be more likely to be used with the
2551 file. Now that they'll be more likely to be used with the
2546 persistance system (%store), I want to make sure their module path
2552 persistance system (%store), I want to make sure their module path
2547 doesn't change in the future, so that we don't break things for
2553 doesn't change in the future, so that we don't break things for
2548 users' persisted data.
2554 users' persisted data.
2549
2555
2550 * IPython/iplib.py (autoindent_update): move indentation
2556 * IPython/iplib.py (autoindent_update): move indentation
2551 management into the _text_ processing loop, not the keyboard
2557 management into the _text_ processing loop, not the keyboard
2552 interactive one. This is necessary to correctly process non-typed
2558 interactive one. This is necessary to correctly process non-typed
2553 multiline input (such as macros).
2559 multiline input (such as macros).
2554
2560
2555 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2561 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
2556 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2562 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
2557 which was producing problems in the resulting manual.
2563 which was producing problems in the resulting manual.
2558 (magic_whos): improve reporting of instances (show their class,
2564 (magic_whos): improve reporting of instances (show their class,
2559 instead of simply printing 'instance' which isn't terribly
2565 instead of simply printing 'instance' which isn't terribly
2560 informative).
2566 informative).
2561
2567
2562 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2568 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
2563 (minor mods) to support network shares under win32.
2569 (minor mods) to support network shares under win32.
2564
2570
2565 * IPython/winconsole.py (get_console_size): add new winconsole
2571 * IPython/winconsole.py (get_console_size): add new winconsole
2566 module and fixes to page_dumb() to improve its behavior under
2572 module and fixes to page_dumb() to improve its behavior under
2567 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2573 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
2568
2574
2569 * IPython/Magic.py (Macro): simplified Macro class to just
2575 * IPython/Magic.py (Macro): simplified Macro class to just
2570 subclass list. We've had only 2.2 compatibility for a very long
2576 subclass list. We've had only 2.2 compatibility for a very long
2571 time, yet I was still avoiding subclassing the builtin types. No
2577 time, yet I was still avoiding subclassing the builtin types. No
2572 more (I'm also starting to use properties, though I won't shift to
2578 more (I'm also starting to use properties, though I won't shift to
2573 2.3-specific features quite yet).
2579 2.3-specific features quite yet).
2574 (magic_store): added Ville's patch for lightweight variable
2580 (magic_store): added Ville's patch for lightweight variable
2575 persistence, after a request on the user list by Matt Wilkie
2581 persistence, after a request on the user list by Matt Wilkie
2576 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2582 <maphew-AT-gmail.com>. The new %store magic's docstring has full
2577 details.
2583 details.
2578
2584
2579 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2585 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2580 changed the default logfile name from 'ipython.log' to
2586 changed the default logfile name from 'ipython.log' to
2581 'ipython_log.py'. These logs are real python files, and now that
2587 'ipython_log.py'. These logs are real python files, and now that
2582 we have much better multiline support, people are more likely to
2588 we have much better multiline support, people are more likely to
2583 want to use them as such. Might as well name them correctly.
2589 want to use them as such. Might as well name them correctly.
2584
2590
2585 * IPython/Magic.py: substantial cleanup. While we can't stop
2591 * IPython/Magic.py: substantial cleanup. While we can't stop
2586 using magics as mixins, due to the existing customizations 'out
2592 using magics as mixins, due to the existing customizations 'out
2587 there' which rely on the mixin naming conventions, at least I
2593 there' which rely on the mixin naming conventions, at least I
2588 cleaned out all cross-class name usage. So once we are OK with
2594 cleaned out all cross-class name usage. So once we are OK with
2589 breaking compatibility, the two systems can be separated.
2595 breaking compatibility, the two systems can be separated.
2590
2596
2591 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2597 * IPython/Logger.py: major cleanup. This one is NOT a mixin
2592 anymore, and the class is a fair bit less hideous as well. New
2598 anymore, and the class is a fair bit less hideous as well. New
2593 features were also introduced: timestamping of input, and logging
2599 features were also introduced: timestamping of input, and logging
2594 of output results. These are user-visible with the -t and -o
2600 of output results. These are user-visible with the -t and -o
2595 options to %logstart. Closes
2601 options to %logstart. Closes
2596 http://www.scipy.net/roundup/ipython/issue11 and a request by
2602 http://www.scipy.net/roundup/ipython/issue11 and a request by
2597 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2603 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
2598
2604
2599 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2605 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
2600
2606
2601 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2607 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
2602 better handle backslashes in paths. See the thread 'More Windows
2608 better handle backslashes in paths. See the thread 'More Windows
2603 questions part 2 - \/ characters revisited' on the iypthon user
2609 questions part 2 - \/ characters revisited' on the iypthon user
2604 list:
2610 list:
2605 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2611 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
2606
2612
2607 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2613 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
2608
2614
2609 (InteractiveShell.__init__): change threaded shells to not use the
2615 (InteractiveShell.__init__): change threaded shells to not use the
2610 ipython crash handler. This was causing more problems than not,
2616 ipython crash handler. This was causing more problems than not,
2611 as exceptions in the main thread (GUI code, typically) would
2617 as exceptions in the main thread (GUI code, typically) would
2612 always show up as a 'crash', when they really weren't.
2618 always show up as a 'crash', when they really weren't.
2613
2619
2614 The colors and exception mode commands (%colors/%xmode) have been
2620 The colors and exception mode commands (%colors/%xmode) have been
2615 synchronized to also take this into account, so users can get
2621 synchronized to also take this into account, so users can get
2616 verbose exceptions for their threaded code as well. I also added
2622 verbose exceptions for their threaded code as well. I also added
2617 support for activating pdb inside this exception handler as well,
2623 support for activating pdb inside this exception handler as well,
2618 so now GUI authors can use IPython's enhanced pdb at runtime.
2624 so now GUI authors can use IPython's enhanced pdb at runtime.
2619
2625
2620 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2626 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
2621 true by default, and add it to the shipped ipythonrc file. Since
2627 true by default, and add it to the shipped ipythonrc file. Since
2622 this asks the user before proceeding, I think it's OK to make it
2628 this asks the user before proceeding, I think it's OK to make it
2623 true by default.
2629 true by default.
2624
2630
2625 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2631 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
2626 of the previous special-casing of input in the eval loop. I think
2632 of the previous special-casing of input in the eval loop. I think
2627 this is cleaner, as they really are commands and shouldn't have
2633 this is cleaner, as they really are commands and shouldn't have
2628 a special role in the middle of the core code.
2634 a special role in the middle of the core code.
2629
2635
2630 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2636 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2631
2637
2632 * IPython/iplib.py (edit_syntax_error): added support for
2638 * IPython/iplib.py (edit_syntax_error): added support for
2633 automatically reopening the editor if the file had a syntax error
2639 automatically reopening the editor if the file had a syntax error
2634 in it. Thanks to scottt who provided the patch at:
2640 in it. Thanks to scottt who provided the patch at:
2635 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2641 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2636 version committed).
2642 version committed).
2637
2643
2638 * IPython/iplib.py (handle_normal): add suport for multi-line
2644 * IPython/iplib.py (handle_normal): add suport for multi-line
2639 input with emtpy lines. This fixes
2645 input with emtpy lines. This fixes
2640 http://www.scipy.net/roundup/ipython/issue43 and a similar
2646 http://www.scipy.net/roundup/ipython/issue43 and a similar
2641 discussion on the user list.
2647 discussion on the user list.
2642
2648
2643 WARNING: a behavior change is necessarily introduced to support
2649 WARNING: a behavior change is necessarily introduced to support
2644 blank lines: now a single blank line with whitespace does NOT
2650 blank lines: now a single blank line with whitespace does NOT
2645 break the input loop, which means that when autoindent is on, by
2651 break the input loop, which means that when autoindent is on, by
2646 default hitting return on the next (indented) line does NOT exit.
2652 default hitting return on the next (indented) line does NOT exit.
2647
2653
2648 Instead, to exit a multiline input you can either have:
2654 Instead, to exit a multiline input you can either have:
2649
2655
2650 - TWO whitespace lines (just hit return again), or
2656 - TWO whitespace lines (just hit return again), or
2651 - a single whitespace line of a different length than provided
2657 - a single whitespace line of a different length than provided
2652 by the autoindent (add or remove a space).
2658 by the autoindent (add or remove a space).
2653
2659
2654 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2660 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2655 module to better organize all readline-related functionality.
2661 module to better organize all readline-related functionality.
2656 I've deleted FlexCompleter and put all completion clases here.
2662 I've deleted FlexCompleter and put all completion clases here.
2657
2663
2658 * IPython/iplib.py (raw_input): improve indentation management.
2664 * IPython/iplib.py (raw_input): improve indentation management.
2659 It is now possible to paste indented code with autoindent on, and
2665 It is now possible to paste indented code with autoindent on, and
2660 the code is interpreted correctly (though it still looks bad on
2666 the code is interpreted correctly (though it still looks bad on
2661 screen, due to the line-oriented nature of ipython).
2667 screen, due to the line-oriented nature of ipython).
2662 (MagicCompleter.complete): change behavior so that a TAB key on an
2668 (MagicCompleter.complete): change behavior so that a TAB key on an
2663 otherwise empty line actually inserts a tab, instead of completing
2669 otherwise empty line actually inserts a tab, instead of completing
2664 on the entire global namespace. This makes it easier to use the
2670 on the entire global namespace. This makes it easier to use the
2665 TAB key for indentation. After a request by Hans Meine
2671 TAB key for indentation. After a request by Hans Meine
2666 <hans_meine-AT-gmx.net>
2672 <hans_meine-AT-gmx.net>
2667 (_prefilter): add support so that typing plain 'exit' or 'quit'
2673 (_prefilter): add support so that typing plain 'exit' or 'quit'
2668 does a sensible thing. Originally I tried to deviate as little as
2674 does a sensible thing. Originally I tried to deviate as little as
2669 possible from the default python behavior, but even that one may
2675 possible from the default python behavior, but even that one may
2670 change in this direction (thread on python-dev to that effect).
2676 change in this direction (thread on python-dev to that effect).
2671 Regardless, ipython should do the right thing even if CPython's
2677 Regardless, ipython should do the right thing even if CPython's
2672 '>>>' prompt doesn't.
2678 '>>>' prompt doesn't.
2673 (InteractiveShell): removed subclassing code.InteractiveConsole
2679 (InteractiveShell): removed subclassing code.InteractiveConsole
2674 class. By now we'd overridden just about all of its methods: I've
2680 class. By now we'd overridden just about all of its methods: I've
2675 copied the remaining two over, and now ipython is a standalone
2681 copied the remaining two over, and now ipython is a standalone
2676 class. This will provide a clearer picture for the chainsaw
2682 class. This will provide a clearer picture for the chainsaw
2677 branch refactoring.
2683 branch refactoring.
2678
2684
2679 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2685 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2680
2686
2681 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2687 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2682 failures for objects which break when dir() is called on them.
2688 failures for objects which break when dir() is called on them.
2683
2689
2684 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2690 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2685 distinct local and global namespaces in the completer API. This
2691 distinct local and global namespaces in the completer API. This
2686 change allows us to properly handle completion with distinct
2692 change allows us to properly handle completion with distinct
2687 scopes, including in embedded instances (this had never really
2693 scopes, including in embedded instances (this had never really
2688 worked correctly).
2694 worked correctly).
2689
2695
2690 Note: this introduces a change in the constructor for
2696 Note: this introduces a change in the constructor for
2691 MagicCompleter, as a new global_namespace parameter is now the
2697 MagicCompleter, as a new global_namespace parameter is now the
2692 second argument (the others were bumped one position).
2698 second argument (the others were bumped one position).
2693
2699
2694 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2700 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2695
2701
2696 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2702 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2697 embedded instances (which can be done now thanks to Vivian's
2703 embedded instances (which can be done now thanks to Vivian's
2698 frame-handling fixes for pdb).
2704 frame-handling fixes for pdb).
2699 (InteractiveShell.__init__): Fix namespace handling problem in
2705 (InteractiveShell.__init__): Fix namespace handling problem in
2700 embedded instances. We were overwriting __main__ unconditionally,
2706 embedded instances. We were overwriting __main__ unconditionally,
2701 and this should only be done for 'full' (non-embedded) IPython;
2707 and this should only be done for 'full' (non-embedded) IPython;
2702 embedded instances must respect the caller's __main__. Thanks to
2708 embedded instances must respect the caller's __main__. Thanks to
2703 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2709 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2704
2710
2705 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2711 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2706
2712
2707 * setup.py: added download_url to setup(). This registers the
2713 * setup.py: added download_url to setup(). This registers the
2708 download address at PyPI, which is not only useful to humans
2714 download address at PyPI, which is not only useful to humans
2709 browsing the site, but is also picked up by setuptools (the Eggs
2715 browsing the site, but is also picked up by setuptools (the Eggs
2710 machinery). Thanks to Ville and R. Kern for the info/discussion
2716 machinery). Thanks to Ville and R. Kern for the info/discussion
2711 on this.
2717 on this.
2712
2718
2713 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2719 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2714
2720
2715 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2721 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2716 This brings a lot of nice functionality to the pdb mode, which now
2722 This brings a lot of nice functionality to the pdb mode, which now
2717 has tab-completion, syntax highlighting, and better stack handling
2723 has tab-completion, syntax highlighting, and better stack handling
2718 than before. Many thanks to Vivian De Smedt
2724 than before. Many thanks to Vivian De Smedt
2719 <vivian-AT-vdesmedt.com> for the original patches.
2725 <vivian-AT-vdesmedt.com> for the original patches.
2720
2726
2721 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2727 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2722
2728
2723 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2729 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2724 sequence to consistently accept the banner argument. The
2730 sequence to consistently accept the banner argument. The
2725 inconsistency was tripping SAGE, thanks to Gary Zablackis
2731 inconsistency was tripping SAGE, thanks to Gary Zablackis
2726 <gzabl-AT-yahoo.com> for the report.
2732 <gzabl-AT-yahoo.com> for the report.
2727
2733
2728 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2734 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2729
2735
2730 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2736 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2731 Fix bug where a naked 'alias' call in the ipythonrc file would
2737 Fix bug where a naked 'alias' call in the ipythonrc file would
2732 cause a crash. Bug reported by Jorgen Stenarson.
2738 cause a crash. Bug reported by Jorgen Stenarson.
2733
2739
2734 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2740 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2735
2741
2736 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2742 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2737 startup time.
2743 startup time.
2738
2744
2739 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2745 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2740 instances had introduced a bug with globals in normal code. Now
2746 instances had introduced a bug with globals in normal code. Now
2741 it's working in all cases.
2747 it's working in all cases.
2742
2748
2743 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2749 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2744 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2750 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2745 has been introduced to set the default case sensitivity of the
2751 has been introduced to set the default case sensitivity of the
2746 searches. Users can still select either mode at runtime on a
2752 searches. Users can still select either mode at runtime on a
2747 per-search basis.
2753 per-search basis.
2748
2754
2749 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2755 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2750
2756
2751 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2757 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2752 attributes in wildcard searches for subclasses. Modified version
2758 attributes in wildcard searches for subclasses. Modified version
2753 of a patch by Jorgen.
2759 of a patch by Jorgen.
2754
2760
2755 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2761 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2756
2762
2757 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2763 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2758 embedded instances. I added a user_global_ns attribute to the
2764 embedded instances. I added a user_global_ns attribute to the
2759 InteractiveShell class to handle this.
2765 InteractiveShell class to handle this.
2760
2766
2761 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2767 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2762
2768
2763 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2769 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2764 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2770 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2765 (reported under win32, but may happen also in other platforms).
2771 (reported under win32, but may happen also in other platforms).
2766 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2772 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2767
2773
2768 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2774 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2769
2775
2770 * IPython/Magic.py (magic_psearch): new support for wildcard
2776 * IPython/Magic.py (magic_psearch): new support for wildcard
2771 patterns. Now, typing ?a*b will list all names which begin with a
2777 patterns. Now, typing ?a*b will list all names which begin with a
2772 and end in b, for example. The %psearch magic has full
2778 and end in b, for example. The %psearch magic has full
2773 docstrings. Many thanks to JΓΆrgen Stenarson
2779 docstrings. Many thanks to JΓΆrgen Stenarson
2774 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2780 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2775 implementing this functionality.
2781 implementing this functionality.
2776
2782
2777 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2783 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2778
2784
2779 * Manual: fixed long-standing annoyance of double-dashes (as in
2785 * Manual: fixed long-standing annoyance of double-dashes (as in
2780 --prefix=~, for example) being stripped in the HTML version. This
2786 --prefix=~, for example) being stripped in the HTML version. This
2781 is a latex2html bug, but a workaround was provided. Many thanks
2787 is a latex2html bug, but a workaround was provided. Many thanks
2782 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2788 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2783 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2789 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2784 rolling. This seemingly small issue had tripped a number of users
2790 rolling. This seemingly small issue had tripped a number of users
2785 when first installing, so I'm glad to see it gone.
2791 when first installing, so I'm glad to see it gone.
2786
2792
2787 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2793 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2788
2794
2789 * IPython/Extensions/numeric_formats.py: fix missing import,
2795 * IPython/Extensions/numeric_formats.py: fix missing import,
2790 reported by Stephen Walton.
2796 reported by Stephen Walton.
2791
2797
2792 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2798 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2793
2799
2794 * IPython/demo.py: finish demo module, fully documented now.
2800 * IPython/demo.py: finish demo module, fully documented now.
2795
2801
2796 * IPython/genutils.py (file_read): simple little utility to read a
2802 * IPython/genutils.py (file_read): simple little utility to read a
2797 file and ensure it's closed afterwards.
2803 file and ensure it's closed afterwards.
2798
2804
2799 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2805 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2800
2806
2801 * IPython/demo.py (Demo.__init__): added support for individually
2807 * IPython/demo.py (Demo.__init__): added support for individually
2802 tagging blocks for automatic execution.
2808 tagging blocks for automatic execution.
2803
2809
2804 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2810 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2805 syntax-highlighted python sources, requested by John.
2811 syntax-highlighted python sources, requested by John.
2806
2812
2807 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2813 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2808
2814
2809 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2815 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2810 finishing.
2816 finishing.
2811
2817
2812 * IPython/genutils.py (shlex_split): moved from Magic to here,
2818 * IPython/genutils.py (shlex_split): moved from Magic to here,
2813 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2819 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2814
2820
2815 * IPython/demo.py (Demo.__init__): added support for silent
2821 * IPython/demo.py (Demo.__init__): added support for silent
2816 blocks, improved marks as regexps, docstrings written.
2822 blocks, improved marks as regexps, docstrings written.
2817 (Demo.__init__): better docstring, added support for sys.argv.
2823 (Demo.__init__): better docstring, added support for sys.argv.
2818
2824
2819 * IPython/genutils.py (marquee): little utility used by the demo
2825 * IPython/genutils.py (marquee): little utility used by the demo
2820 code, handy in general.
2826 code, handy in general.
2821
2827
2822 * IPython/demo.py (Demo.__init__): new class for interactive
2828 * IPython/demo.py (Demo.__init__): new class for interactive
2823 demos. Not documented yet, I just wrote it in a hurry for
2829 demos. Not documented yet, I just wrote it in a hurry for
2824 scipy'05. Will docstring later.
2830 scipy'05. Will docstring later.
2825
2831
2826 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2832 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2827
2833
2828 * IPython/Shell.py (sigint_handler): Drastic simplification which
2834 * IPython/Shell.py (sigint_handler): Drastic simplification which
2829 also seems to make Ctrl-C work correctly across threads! This is
2835 also seems to make Ctrl-C work correctly across threads! This is
2830 so simple, that I can't beleive I'd missed it before. Needs more
2836 so simple, that I can't beleive I'd missed it before. Needs more
2831 testing, though.
2837 testing, though.
2832 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2838 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2833 like this before...
2839 like this before...
2834
2840
2835 * IPython/genutils.py (get_home_dir): add protection against
2841 * IPython/genutils.py (get_home_dir): add protection against
2836 non-dirs in win32 registry.
2842 non-dirs in win32 registry.
2837
2843
2838 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2844 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2839 bug where dict was mutated while iterating (pysh crash).
2845 bug where dict was mutated while iterating (pysh crash).
2840
2846
2841 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2847 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2842
2848
2843 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2849 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2844 spurious newlines added by this routine. After a report by
2850 spurious newlines added by this routine. After a report by
2845 F. Mantegazza.
2851 F. Mantegazza.
2846
2852
2847 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2853 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2848
2854
2849 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2855 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2850 calls. These were a leftover from the GTK 1.x days, and can cause
2856 calls. These were a leftover from the GTK 1.x days, and can cause
2851 problems in certain cases (after a report by John Hunter).
2857 problems in certain cases (after a report by John Hunter).
2852
2858
2853 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2859 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2854 os.getcwd() fails at init time. Thanks to patch from David Remahl
2860 os.getcwd() fails at init time. Thanks to patch from David Remahl
2855 <chmod007-AT-mac.com>.
2861 <chmod007-AT-mac.com>.
2856 (InteractiveShell.__init__): prevent certain special magics from
2862 (InteractiveShell.__init__): prevent certain special magics from
2857 being shadowed by aliases. Closes
2863 being shadowed by aliases. Closes
2858 http://www.scipy.net/roundup/ipython/issue41.
2864 http://www.scipy.net/roundup/ipython/issue41.
2859
2865
2860 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2866 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2861
2867
2862 * IPython/iplib.py (InteractiveShell.complete): Added new
2868 * IPython/iplib.py (InteractiveShell.complete): Added new
2863 top-level completion method to expose the completion mechanism
2869 top-level completion method to expose the completion mechanism
2864 beyond readline-based environments.
2870 beyond readline-based environments.
2865
2871
2866 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2872 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2867
2873
2868 * tools/ipsvnc (svnversion): fix svnversion capture.
2874 * tools/ipsvnc (svnversion): fix svnversion capture.
2869
2875
2870 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2876 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2871 attribute to self, which was missing. Before, it was set by a
2877 attribute to self, which was missing. Before, it was set by a
2872 routine which in certain cases wasn't being called, so the
2878 routine which in certain cases wasn't being called, so the
2873 instance could end up missing the attribute. This caused a crash.
2879 instance could end up missing the attribute. This caused a crash.
2874 Closes http://www.scipy.net/roundup/ipython/issue40.
2880 Closes http://www.scipy.net/roundup/ipython/issue40.
2875
2881
2876 2005-08-16 Fernando Perez <fperez@colorado.edu>
2882 2005-08-16 Fernando Perez <fperez@colorado.edu>
2877
2883
2878 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2884 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2879 contains non-string attribute. Closes
2885 contains non-string attribute. Closes
2880 http://www.scipy.net/roundup/ipython/issue38.
2886 http://www.scipy.net/roundup/ipython/issue38.
2881
2887
2882 2005-08-14 Fernando Perez <fperez@colorado.edu>
2888 2005-08-14 Fernando Perez <fperez@colorado.edu>
2883
2889
2884 * tools/ipsvnc: Minor improvements, to add changeset info.
2890 * tools/ipsvnc: Minor improvements, to add changeset info.
2885
2891
2886 2005-08-12 Fernando Perez <fperez@colorado.edu>
2892 2005-08-12 Fernando Perez <fperez@colorado.edu>
2887
2893
2888 * IPython/iplib.py (runsource): remove self.code_to_run_src
2894 * IPython/iplib.py (runsource): remove self.code_to_run_src
2889 attribute. I realized this is nothing more than
2895 attribute. I realized this is nothing more than
2890 '\n'.join(self.buffer), and having the same data in two different
2896 '\n'.join(self.buffer), and having the same data in two different
2891 places is just asking for synchronization bugs. This may impact
2897 places is just asking for synchronization bugs. This may impact
2892 people who have custom exception handlers, so I need to warn
2898 people who have custom exception handlers, so I need to warn
2893 ipython-dev about it (F. Mantegazza may use them).
2899 ipython-dev about it (F. Mantegazza may use them).
2894
2900
2895 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2901 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2896
2902
2897 * IPython/genutils.py: fix 2.2 compatibility (generators)
2903 * IPython/genutils.py: fix 2.2 compatibility (generators)
2898
2904
2899 2005-07-18 Fernando Perez <fperez@colorado.edu>
2905 2005-07-18 Fernando Perez <fperez@colorado.edu>
2900
2906
2901 * IPython/genutils.py (get_home_dir): fix to help users with
2907 * IPython/genutils.py (get_home_dir): fix to help users with
2902 invalid $HOME under win32.
2908 invalid $HOME under win32.
2903
2909
2904 2005-07-17 Fernando Perez <fperez@colorado.edu>
2910 2005-07-17 Fernando Perez <fperez@colorado.edu>
2905
2911
2906 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2912 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2907 some old hacks and clean up a bit other routines; code should be
2913 some old hacks and clean up a bit other routines; code should be
2908 simpler and a bit faster.
2914 simpler and a bit faster.
2909
2915
2910 * IPython/iplib.py (interact): removed some last-resort attempts
2916 * IPython/iplib.py (interact): removed some last-resort attempts
2911 to survive broken stdout/stderr. That code was only making it
2917 to survive broken stdout/stderr. That code was only making it
2912 harder to abstract out the i/o (necessary for gui integration),
2918 harder to abstract out the i/o (necessary for gui integration),
2913 and the crashes it could prevent were extremely rare in practice
2919 and the crashes it could prevent were extremely rare in practice
2914 (besides being fully user-induced in a pretty violent manner).
2920 (besides being fully user-induced in a pretty violent manner).
2915
2921
2916 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2922 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2917 Nothing major yet, but the code is simpler to read; this should
2923 Nothing major yet, but the code is simpler to read; this should
2918 make it easier to do more serious modifications in the future.
2924 make it easier to do more serious modifications in the future.
2919
2925
2920 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2926 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2921 which broke in .15 (thanks to a report by Ville).
2927 which broke in .15 (thanks to a report by Ville).
2922
2928
2923 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2929 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2924 be quite correct, I know next to nothing about unicode). This
2930 be quite correct, I know next to nothing about unicode). This
2925 will allow unicode strings to be used in prompts, amongst other
2931 will allow unicode strings to be used in prompts, amongst other
2926 cases. It also will prevent ipython from crashing when unicode
2932 cases. It also will prevent ipython from crashing when unicode
2927 shows up unexpectedly in many places. If ascii encoding fails, we
2933 shows up unexpectedly in many places. If ascii encoding fails, we
2928 assume utf_8. Currently the encoding is not a user-visible
2934 assume utf_8. Currently the encoding is not a user-visible
2929 setting, though it could be made so if there is demand for it.
2935 setting, though it could be made so if there is demand for it.
2930
2936
2931 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2937 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2932
2938
2933 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2939 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2934
2940
2935 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2941 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2936
2942
2937 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2943 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2938 code can work transparently for 2.2/2.3.
2944 code can work transparently for 2.2/2.3.
2939
2945
2940 2005-07-16 Fernando Perez <fperez@colorado.edu>
2946 2005-07-16 Fernando Perez <fperez@colorado.edu>
2941
2947
2942 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2948 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2943 out of the color scheme table used for coloring exception
2949 out of the color scheme table used for coloring exception
2944 tracebacks. This allows user code to add new schemes at runtime.
2950 tracebacks. This allows user code to add new schemes at runtime.
2945 This is a minimally modified version of the patch at
2951 This is a minimally modified version of the patch at
2946 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2952 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2947 for the contribution.
2953 for the contribution.
2948
2954
2949 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2955 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2950 slightly modified version of the patch in
2956 slightly modified version of the patch in
2951 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2957 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2952 to remove the previous try/except solution (which was costlier).
2958 to remove the previous try/except solution (which was costlier).
2953 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2959 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2954
2960
2955 2005-06-08 Fernando Perez <fperez@colorado.edu>
2961 2005-06-08 Fernando Perez <fperez@colorado.edu>
2956
2962
2957 * IPython/iplib.py (write/write_err): Add methods to abstract all
2963 * IPython/iplib.py (write/write_err): Add methods to abstract all
2958 I/O a bit more.
2964 I/O a bit more.
2959
2965
2960 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2966 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2961 warning, reported by Aric Hagberg, fix by JD Hunter.
2967 warning, reported by Aric Hagberg, fix by JD Hunter.
2962
2968
2963 2005-06-02 *** Released version 0.6.15
2969 2005-06-02 *** Released version 0.6.15
2964
2970
2965 2005-06-01 Fernando Perez <fperez@colorado.edu>
2971 2005-06-01 Fernando Perez <fperez@colorado.edu>
2966
2972
2967 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2973 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2968 tab-completion of filenames within open-quoted strings. Note that
2974 tab-completion of filenames within open-quoted strings. Note that
2969 this requires that in ~/.ipython/ipythonrc, users change the
2975 this requires that in ~/.ipython/ipythonrc, users change the
2970 readline delimiters configuration to read:
2976 readline delimiters configuration to read:
2971
2977
2972 readline_remove_delims -/~
2978 readline_remove_delims -/~
2973
2979
2974
2980
2975 2005-05-31 *** Released version 0.6.14
2981 2005-05-31 *** Released version 0.6.14
2976
2982
2977 2005-05-29 Fernando Perez <fperez@colorado.edu>
2983 2005-05-29 Fernando Perez <fperez@colorado.edu>
2978
2984
2979 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2985 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2980 with files not on the filesystem. Reported by Eliyahu Sandler
2986 with files not on the filesystem. Reported by Eliyahu Sandler
2981 <eli@gondolin.net>
2987 <eli@gondolin.net>
2982
2988
2983 2005-05-22 Fernando Perez <fperez@colorado.edu>
2989 2005-05-22 Fernando Perez <fperez@colorado.edu>
2984
2990
2985 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2991 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2986 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2992 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2987
2993
2988 2005-05-19 Fernando Perez <fperez@colorado.edu>
2994 2005-05-19 Fernando Perez <fperez@colorado.edu>
2989
2995
2990 * IPython/iplib.py (safe_execfile): close a file which could be
2996 * IPython/iplib.py (safe_execfile): close a file which could be
2991 left open (causing problems in win32, which locks open files).
2997 left open (causing problems in win32, which locks open files).
2992 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2998 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2993
2999
2994 2005-05-18 Fernando Perez <fperez@colorado.edu>
3000 2005-05-18 Fernando Perez <fperez@colorado.edu>
2995
3001
2996 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3002 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2997 keyword arguments correctly to safe_execfile().
3003 keyword arguments correctly to safe_execfile().
2998
3004
2999 2005-05-13 Fernando Perez <fperez@colorado.edu>
3005 2005-05-13 Fernando Perez <fperez@colorado.edu>
3000
3006
3001 * ipython.1: Added info about Qt to manpage, and threads warning
3007 * ipython.1: Added info about Qt to manpage, and threads warning
3002 to usage page (invoked with --help).
3008 to usage page (invoked with --help).
3003
3009
3004 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3010 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3005 new matcher (it goes at the end of the priority list) to do
3011 new matcher (it goes at the end of the priority list) to do
3006 tab-completion on named function arguments. Submitted by George
3012 tab-completion on named function arguments. Submitted by George
3007 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3013 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3008 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3014 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3009 for more details.
3015 for more details.
3010
3016
3011 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3017 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3012 SystemExit exceptions in the script being run. Thanks to a report
3018 SystemExit exceptions in the script being run. Thanks to a report
3013 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3019 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3014 producing very annoying behavior when running unit tests.
3020 producing very annoying behavior when running unit tests.
3015
3021
3016 2005-05-12 Fernando Perez <fperez@colorado.edu>
3022 2005-05-12 Fernando Perez <fperez@colorado.edu>
3017
3023
3018 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3024 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3019 which I'd broken (again) due to a changed regexp. In the process,
3025 which I'd broken (again) due to a changed regexp. In the process,
3020 added ';' as an escape to auto-quote the whole line without
3026 added ';' as an escape to auto-quote the whole line without
3021 splitting its arguments. Thanks to a report by Jerry McRae
3027 splitting its arguments. Thanks to a report by Jerry McRae
3022 <qrs0xyc02-AT-sneakemail.com>.
3028 <qrs0xyc02-AT-sneakemail.com>.
3023
3029
3024 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3030 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3025 possible crashes caused by a TokenError. Reported by Ed Schofield
3031 possible crashes caused by a TokenError. Reported by Ed Schofield
3026 <schofield-AT-ftw.at>.
3032 <schofield-AT-ftw.at>.
3027
3033
3028 2005-05-06 Fernando Perez <fperez@colorado.edu>
3034 2005-05-06 Fernando Perez <fperez@colorado.edu>
3029
3035
3030 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3036 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3031
3037
3032 2005-04-29 Fernando Perez <fperez@colorado.edu>
3038 2005-04-29 Fernando Perez <fperez@colorado.edu>
3033
3039
3034 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3040 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3035 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3041 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3036 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3042 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3037 which provides support for Qt interactive usage (similar to the
3043 which provides support for Qt interactive usage (similar to the
3038 existing one for WX and GTK). This had been often requested.
3044 existing one for WX and GTK). This had been often requested.
3039
3045
3040 2005-04-14 *** Released version 0.6.13
3046 2005-04-14 *** Released version 0.6.13
3041
3047
3042 2005-04-08 Fernando Perez <fperez@colorado.edu>
3048 2005-04-08 Fernando Perez <fperez@colorado.edu>
3043
3049
3044 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3050 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3045 from _ofind, which gets called on almost every input line. Now,
3051 from _ofind, which gets called on almost every input line. Now,
3046 we only try to get docstrings if they are actually going to be
3052 we only try to get docstrings if they are actually going to be
3047 used (the overhead of fetching unnecessary docstrings can be
3053 used (the overhead of fetching unnecessary docstrings can be
3048 noticeable for certain objects, such as Pyro proxies).
3054 noticeable for certain objects, such as Pyro proxies).
3049
3055
3050 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3056 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3051 for completers. For some reason I had been passing them the state
3057 for completers. For some reason I had been passing them the state
3052 variable, which completers never actually need, and was in
3058 variable, which completers never actually need, and was in
3053 conflict with the rlcompleter API. Custom completers ONLY need to
3059 conflict with the rlcompleter API. Custom completers ONLY need to
3054 take the text parameter.
3060 take the text parameter.
3055
3061
3056 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3062 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3057 work correctly in pysh. I've also moved all the logic which used
3063 work correctly in pysh. I've also moved all the logic which used
3058 to be in pysh.py here, which will prevent problems with future
3064 to be in pysh.py here, which will prevent problems with future
3059 upgrades. However, this time I must warn users to update their
3065 upgrades. However, this time I must warn users to update their
3060 pysh profile to include the line
3066 pysh profile to include the line
3061
3067
3062 import_all IPython.Extensions.InterpreterExec
3068 import_all IPython.Extensions.InterpreterExec
3063
3069
3064 because otherwise things won't work for them. They MUST also
3070 because otherwise things won't work for them. They MUST also
3065 delete pysh.py and the line
3071 delete pysh.py and the line
3066
3072
3067 execfile pysh.py
3073 execfile pysh.py
3068
3074
3069 from their ipythonrc-pysh.
3075 from their ipythonrc-pysh.
3070
3076
3071 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3077 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3072 robust in the face of objects whose dir() returns non-strings
3078 robust in the face of objects whose dir() returns non-strings
3073 (which it shouldn't, but some broken libs like ITK do). Thanks to
3079 (which it shouldn't, but some broken libs like ITK do). Thanks to
3074 a patch by John Hunter (implemented differently, though). Also
3080 a patch by John Hunter (implemented differently, though). Also
3075 minor improvements by using .extend instead of + on lists.
3081 minor improvements by using .extend instead of + on lists.
3076
3082
3077 * pysh.py:
3083 * pysh.py:
3078
3084
3079 2005-04-06 Fernando Perez <fperez@colorado.edu>
3085 2005-04-06 Fernando Perez <fperez@colorado.edu>
3080
3086
3081 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3087 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3082 by default, so that all users benefit from it. Those who don't
3088 by default, so that all users benefit from it. Those who don't
3083 want it can still turn it off.
3089 want it can still turn it off.
3084
3090
3085 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3091 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3086 config file, I'd forgotten about this, so users were getting it
3092 config file, I'd forgotten about this, so users were getting it
3087 off by default.
3093 off by default.
3088
3094
3089 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3095 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3090 consistency. Now magics can be called in multiline statements,
3096 consistency. Now magics can be called in multiline statements,
3091 and python variables can be expanded in magic calls via $var.
3097 and python variables can be expanded in magic calls via $var.
3092 This makes the magic system behave just like aliases or !system
3098 This makes the magic system behave just like aliases or !system
3093 calls.
3099 calls.
3094
3100
3095 2005-03-28 Fernando Perez <fperez@colorado.edu>
3101 2005-03-28 Fernando Perez <fperez@colorado.edu>
3096
3102
3097 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3103 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3098 expensive string additions for building command. Add support for
3104 expensive string additions for building command. Add support for
3099 trailing ';' when autocall is used.
3105 trailing ';' when autocall is used.
3100
3106
3101 2005-03-26 Fernando Perez <fperez@colorado.edu>
3107 2005-03-26 Fernando Perez <fperez@colorado.edu>
3102
3108
3103 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3109 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3104 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3110 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3105 ipython.el robust against prompts with any number of spaces
3111 ipython.el robust against prompts with any number of spaces
3106 (including 0) after the ':' character.
3112 (including 0) after the ':' character.
3107
3113
3108 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3114 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3109 continuation prompt, which misled users to think the line was
3115 continuation prompt, which misled users to think the line was
3110 already indented. Closes debian Bug#300847, reported to me by
3116 already indented. Closes debian Bug#300847, reported to me by
3111 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3117 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3112
3118
3113 2005-03-23 Fernando Perez <fperez@colorado.edu>
3119 2005-03-23 Fernando Perez <fperez@colorado.edu>
3114
3120
3115 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3121 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3116 properly aligned if they have embedded newlines.
3122 properly aligned if they have embedded newlines.
3117
3123
3118 * IPython/iplib.py (runlines): Add a public method to expose
3124 * IPython/iplib.py (runlines): Add a public method to expose
3119 IPython's code execution machinery, so that users can run strings
3125 IPython's code execution machinery, so that users can run strings
3120 as if they had been typed at the prompt interactively.
3126 as if they had been typed at the prompt interactively.
3121 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3127 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3122 methods which can call the system shell, but with python variable
3128 methods which can call the system shell, but with python variable
3123 expansion. The three such methods are: __IPYTHON__.system,
3129 expansion. The three such methods are: __IPYTHON__.system,
3124 .getoutput and .getoutputerror. These need to be documented in a
3130 .getoutput and .getoutputerror. These need to be documented in a
3125 'public API' section (to be written) of the manual.
3131 'public API' section (to be written) of the manual.
3126
3132
3127 2005-03-20 Fernando Perez <fperez@colorado.edu>
3133 2005-03-20 Fernando Perez <fperez@colorado.edu>
3128
3134
3129 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3135 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3130 for custom exception handling. This is quite powerful, and it
3136 for custom exception handling. This is quite powerful, and it
3131 allows for user-installable exception handlers which can trap
3137 allows for user-installable exception handlers which can trap
3132 custom exceptions at runtime and treat them separately from
3138 custom exceptions at runtime and treat them separately from
3133 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3139 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3134 Mantegazza <mantegazza-AT-ill.fr>.
3140 Mantegazza <mantegazza-AT-ill.fr>.
3135 (InteractiveShell.set_custom_completer): public API function to
3141 (InteractiveShell.set_custom_completer): public API function to
3136 add new completers at runtime.
3142 add new completers at runtime.
3137
3143
3138 2005-03-19 Fernando Perez <fperez@colorado.edu>
3144 2005-03-19 Fernando Perez <fperez@colorado.edu>
3139
3145
3140 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3146 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3141 allow objects which provide their docstrings via non-standard
3147 allow objects which provide their docstrings via non-standard
3142 mechanisms (like Pyro proxies) to still be inspected by ipython's
3148 mechanisms (like Pyro proxies) to still be inspected by ipython's
3143 ? system.
3149 ? system.
3144
3150
3145 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3151 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3146 automatic capture system. I tried quite hard to make it work
3152 automatic capture system. I tried quite hard to make it work
3147 reliably, and simply failed. I tried many combinations with the
3153 reliably, and simply failed. I tried many combinations with the
3148 subprocess module, but eventually nothing worked in all needed
3154 subprocess module, but eventually nothing worked in all needed
3149 cases (not blocking stdin for the child, duplicating stdout
3155 cases (not blocking stdin for the child, duplicating stdout
3150 without blocking, etc). The new %sc/%sx still do capture to these
3156 without blocking, etc). The new %sc/%sx still do capture to these
3151 magical list/string objects which make shell use much more
3157 magical list/string objects which make shell use much more
3152 conveninent, so not all is lost.
3158 conveninent, so not all is lost.
3153
3159
3154 XXX - FIX MANUAL for the change above!
3160 XXX - FIX MANUAL for the change above!
3155
3161
3156 (runsource): I copied code.py's runsource() into ipython to modify
3162 (runsource): I copied code.py's runsource() into ipython to modify
3157 it a bit. Now the code object and source to be executed are
3163 it a bit. Now the code object and source to be executed are
3158 stored in ipython. This makes this info accessible to third-party
3164 stored in ipython. This makes this info accessible to third-party
3159 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3165 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3160 Mantegazza <mantegazza-AT-ill.fr>.
3166 Mantegazza <mantegazza-AT-ill.fr>.
3161
3167
3162 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3168 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3163 history-search via readline (like C-p/C-n). I'd wanted this for a
3169 history-search via readline (like C-p/C-n). I'd wanted this for a
3164 long time, but only recently found out how to do it. For users
3170 long time, but only recently found out how to do it. For users
3165 who already have their ipythonrc files made and want this, just
3171 who already have their ipythonrc files made and want this, just
3166 add:
3172 add:
3167
3173
3168 readline_parse_and_bind "\e[A": history-search-backward
3174 readline_parse_and_bind "\e[A": history-search-backward
3169 readline_parse_and_bind "\e[B": history-search-forward
3175 readline_parse_and_bind "\e[B": history-search-forward
3170
3176
3171 2005-03-18 Fernando Perez <fperez@colorado.edu>
3177 2005-03-18 Fernando Perez <fperez@colorado.edu>
3172
3178
3173 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3179 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3174 LSString and SList classes which allow transparent conversions
3180 LSString and SList classes which allow transparent conversions
3175 between list mode and whitespace-separated string.
3181 between list mode and whitespace-separated string.
3176 (magic_r): Fix recursion problem in %r.
3182 (magic_r): Fix recursion problem in %r.
3177
3183
3178 * IPython/genutils.py (LSString): New class to be used for
3184 * IPython/genutils.py (LSString): New class to be used for
3179 automatic storage of the results of all alias/system calls in _o
3185 automatic storage of the results of all alias/system calls in _o
3180 and _e (stdout/err). These provide a .l/.list attribute which
3186 and _e (stdout/err). These provide a .l/.list attribute which
3181 does automatic splitting on newlines. This means that for most
3187 does automatic splitting on newlines. This means that for most
3182 uses, you'll never need to do capturing of output with %sc/%sx
3188 uses, you'll never need to do capturing of output with %sc/%sx
3183 anymore, since ipython keeps this always done for you. Note that
3189 anymore, since ipython keeps this always done for you. Note that
3184 only the LAST results are stored, the _o/e variables are
3190 only the LAST results are stored, the _o/e variables are
3185 overwritten on each call. If you need to save their contents
3191 overwritten on each call. If you need to save their contents
3186 further, simply bind them to any other name.
3192 further, simply bind them to any other name.
3187
3193
3188 2005-03-17 Fernando Perez <fperez@colorado.edu>
3194 2005-03-17 Fernando Perez <fperez@colorado.edu>
3189
3195
3190 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3196 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3191 prompt namespace handling.
3197 prompt namespace handling.
3192
3198
3193 2005-03-16 Fernando Perez <fperez@colorado.edu>
3199 2005-03-16 Fernando Perez <fperez@colorado.edu>
3194
3200
3195 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3201 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3196 classic prompts to be '>>> ' (final space was missing, and it
3202 classic prompts to be '>>> ' (final space was missing, and it
3197 trips the emacs python mode).
3203 trips the emacs python mode).
3198 (BasePrompt.__str__): Added safe support for dynamic prompt
3204 (BasePrompt.__str__): Added safe support for dynamic prompt
3199 strings. Now you can set your prompt string to be '$x', and the
3205 strings. Now you can set your prompt string to be '$x', and the
3200 value of x will be printed from your interactive namespace. The
3206 value of x will be printed from your interactive namespace. The
3201 interpolation syntax includes the full Itpl support, so
3207 interpolation syntax includes the full Itpl support, so
3202 ${foo()+x+bar()} is a valid prompt string now, and the function
3208 ${foo()+x+bar()} is a valid prompt string now, and the function
3203 calls will be made at runtime.
3209 calls will be made at runtime.
3204
3210
3205 2005-03-15 Fernando Perez <fperez@colorado.edu>
3211 2005-03-15 Fernando Perez <fperez@colorado.edu>
3206
3212
3207 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3213 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3208 avoid name clashes in pylab. %hist still works, it just forwards
3214 avoid name clashes in pylab. %hist still works, it just forwards
3209 the call to %history.
3215 the call to %history.
3210
3216
3211 2005-03-02 *** Released version 0.6.12
3217 2005-03-02 *** Released version 0.6.12
3212
3218
3213 2005-03-02 Fernando Perez <fperez@colorado.edu>
3219 2005-03-02 Fernando Perez <fperez@colorado.edu>
3214
3220
3215 * IPython/iplib.py (handle_magic): log magic calls properly as
3221 * IPython/iplib.py (handle_magic): log magic calls properly as
3216 ipmagic() function calls.
3222 ipmagic() function calls.
3217
3223
3218 * IPython/Magic.py (magic_time): Improved %time to support
3224 * IPython/Magic.py (magic_time): Improved %time to support
3219 statements and provide wall-clock as well as CPU time.
3225 statements and provide wall-clock as well as CPU time.
3220
3226
3221 2005-02-27 Fernando Perez <fperez@colorado.edu>
3227 2005-02-27 Fernando Perez <fperez@colorado.edu>
3222
3228
3223 * IPython/hooks.py: New hooks module, to expose user-modifiable
3229 * IPython/hooks.py: New hooks module, to expose user-modifiable
3224 IPython functionality in a clean manner. For now only the editor
3230 IPython functionality in a clean manner. For now only the editor
3225 hook is actually written, and other thigns which I intend to turn
3231 hook is actually written, and other thigns which I intend to turn
3226 into proper hooks aren't yet there. The display and prefilter
3232 into proper hooks aren't yet there. The display and prefilter
3227 stuff, for example, should be hooks. But at least now the
3233 stuff, for example, should be hooks. But at least now the
3228 framework is in place, and the rest can be moved here with more
3234 framework is in place, and the rest can be moved here with more
3229 time later. IPython had had a .hooks variable for a long time for
3235 time later. IPython had had a .hooks variable for a long time for
3230 this purpose, but I'd never actually used it for anything.
3236 this purpose, but I'd never actually used it for anything.
3231
3237
3232 2005-02-26 Fernando Perez <fperez@colorado.edu>
3238 2005-02-26 Fernando Perez <fperez@colorado.edu>
3233
3239
3234 * IPython/ipmaker.py (make_IPython): make the default ipython
3240 * IPython/ipmaker.py (make_IPython): make the default ipython
3235 directory be called _ipython under win32, to follow more the
3241 directory be called _ipython under win32, to follow more the
3236 naming peculiarities of that platform (where buggy software like
3242 naming peculiarities of that platform (where buggy software like
3237 Visual Sourcesafe breaks with .named directories). Reported by
3243 Visual Sourcesafe breaks with .named directories). Reported by
3238 Ville Vainio.
3244 Ville Vainio.
3239
3245
3240 2005-02-23 Fernando Perez <fperez@colorado.edu>
3246 2005-02-23 Fernando Perez <fperez@colorado.edu>
3241
3247
3242 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3248 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3243 auto_aliases for win32 which were causing problems. Users can
3249 auto_aliases for win32 which were causing problems. Users can
3244 define the ones they personally like.
3250 define the ones they personally like.
3245
3251
3246 2005-02-21 Fernando Perez <fperez@colorado.edu>
3252 2005-02-21 Fernando Perez <fperez@colorado.edu>
3247
3253
3248 * IPython/Magic.py (magic_time): new magic to time execution of
3254 * IPython/Magic.py (magic_time): new magic to time execution of
3249 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3255 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3250
3256
3251 2005-02-19 Fernando Perez <fperez@colorado.edu>
3257 2005-02-19 Fernando Perez <fperez@colorado.edu>
3252
3258
3253 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3259 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3254 into keys (for prompts, for example).
3260 into keys (for prompts, for example).
3255
3261
3256 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3262 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3257 prompts in case users want them. This introduces a small behavior
3263 prompts in case users want them. This introduces a small behavior
3258 change: ipython does not automatically add a space to all prompts
3264 change: ipython does not automatically add a space to all prompts
3259 anymore. To get the old prompts with a space, users should add it
3265 anymore. To get the old prompts with a space, users should add it
3260 manually to their ipythonrc file, so for example prompt_in1 should
3266 manually to their ipythonrc file, so for example prompt_in1 should
3261 now read 'In [\#]: ' instead of 'In [\#]:'.
3267 now read 'In [\#]: ' instead of 'In [\#]:'.
3262 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3268 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3263 file) to control left-padding of secondary prompts.
3269 file) to control left-padding of secondary prompts.
3264
3270
3265 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3271 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3266 the profiler can't be imported. Fix for Debian, which removed
3272 the profiler can't be imported. Fix for Debian, which removed
3267 profile.py because of License issues. I applied a slightly
3273 profile.py because of License issues. I applied a slightly
3268 modified version of the original Debian patch at
3274 modified version of the original Debian patch at
3269 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3275 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3270
3276
3271 2005-02-17 Fernando Perez <fperez@colorado.edu>
3277 2005-02-17 Fernando Perez <fperez@colorado.edu>
3272
3278
3273 * IPython/genutils.py (native_line_ends): Fix bug which would
3279 * IPython/genutils.py (native_line_ends): Fix bug which would
3274 cause improper line-ends under win32 b/c I was not opening files
3280 cause improper line-ends under win32 b/c I was not opening files
3275 in binary mode. Bug report and fix thanks to Ville.
3281 in binary mode. Bug report and fix thanks to Ville.
3276
3282
3277 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3283 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3278 trying to catch spurious foo[1] autocalls. My fix actually broke
3284 trying to catch spurious foo[1] autocalls. My fix actually broke
3279 ',/' autoquote/call with explicit escape (bad regexp).
3285 ',/' autoquote/call with explicit escape (bad regexp).
3280
3286
3281 2005-02-15 *** Released version 0.6.11
3287 2005-02-15 *** Released version 0.6.11
3282
3288
3283 2005-02-14 Fernando Perez <fperez@colorado.edu>
3289 2005-02-14 Fernando Perez <fperez@colorado.edu>
3284
3290
3285 * IPython/background_jobs.py: New background job management
3291 * IPython/background_jobs.py: New background job management
3286 subsystem. This is implemented via a new set of classes, and
3292 subsystem. This is implemented via a new set of classes, and
3287 IPython now provides a builtin 'jobs' object for background job
3293 IPython now provides a builtin 'jobs' object for background job
3288 execution. A convenience %bg magic serves as a lightweight
3294 execution. A convenience %bg magic serves as a lightweight
3289 frontend for starting the more common type of calls. This was
3295 frontend for starting the more common type of calls. This was
3290 inspired by discussions with B. Granger and the BackgroundCommand
3296 inspired by discussions with B. Granger and the BackgroundCommand
3291 class described in the book Python Scripting for Computational
3297 class described in the book Python Scripting for Computational
3292 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3298 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3293 (although ultimately no code from this text was used, as IPython's
3299 (although ultimately no code from this text was used, as IPython's
3294 system is a separate implementation).
3300 system is a separate implementation).
3295
3301
3296 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3302 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3297 to control the completion of single/double underscore names
3303 to control the completion of single/double underscore names
3298 separately. As documented in the example ipytonrc file, the
3304 separately. As documented in the example ipytonrc file, the
3299 readline_omit__names variable can now be set to 2, to omit even
3305 readline_omit__names variable can now be set to 2, to omit even
3300 single underscore names. Thanks to a patch by Brian Wong
3306 single underscore names. Thanks to a patch by Brian Wong
3301 <BrianWong-AT-AirgoNetworks.Com>.
3307 <BrianWong-AT-AirgoNetworks.Com>.
3302 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3308 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3303 be autocalled as foo([1]) if foo were callable. A problem for
3309 be autocalled as foo([1]) if foo were callable. A problem for
3304 things which are both callable and implement __getitem__.
3310 things which are both callable and implement __getitem__.
3305 (init_readline): Fix autoindentation for win32. Thanks to a patch
3311 (init_readline): Fix autoindentation for win32. Thanks to a patch
3306 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3312 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3307
3313
3308 2005-02-12 Fernando Perez <fperez@colorado.edu>
3314 2005-02-12 Fernando Perez <fperez@colorado.edu>
3309
3315
3310 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3316 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3311 which I had written long ago to sort out user error messages which
3317 which I had written long ago to sort out user error messages which
3312 may occur during startup. This seemed like a good idea initially,
3318 may occur during startup. This seemed like a good idea initially,
3313 but it has proven a disaster in retrospect. I don't want to
3319 but it has proven a disaster in retrospect. I don't want to
3314 change much code for now, so my fix is to set the internal 'debug'
3320 change much code for now, so my fix is to set the internal 'debug'
3315 flag to true everywhere, whose only job was precisely to control
3321 flag to true everywhere, whose only job was precisely to control
3316 this subsystem. This closes issue 28 (as well as avoiding all
3322 this subsystem. This closes issue 28 (as well as avoiding all
3317 sorts of strange hangups which occur from time to time).
3323 sorts of strange hangups which occur from time to time).
3318
3324
3319 2005-02-07 Fernando Perez <fperez@colorado.edu>
3325 2005-02-07 Fernando Perez <fperez@colorado.edu>
3320
3326
3321 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3327 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3322 previous call produced a syntax error.
3328 previous call produced a syntax error.
3323
3329
3324 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3330 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3325 classes without constructor.
3331 classes without constructor.
3326
3332
3327 2005-02-06 Fernando Perez <fperez@colorado.edu>
3333 2005-02-06 Fernando Perez <fperez@colorado.edu>
3328
3334
3329 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3335 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3330 completions with the results of each matcher, so we return results
3336 completions with the results of each matcher, so we return results
3331 to the user from all namespaces. This breaks with ipython
3337 to the user from all namespaces. This breaks with ipython
3332 tradition, but I think it's a nicer behavior. Now you get all
3338 tradition, but I think it's a nicer behavior. Now you get all
3333 possible completions listed, from all possible namespaces (python,
3339 possible completions listed, from all possible namespaces (python,
3334 filesystem, magics...) After a request by John Hunter
3340 filesystem, magics...) After a request by John Hunter
3335 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3341 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3336
3342
3337 2005-02-05 Fernando Perez <fperez@colorado.edu>
3343 2005-02-05 Fernando Perez <fperez@colorado.edu>
3338
3344
3339 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3345 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3340 the call had quote characters in it (the quotes were stripped).
3346 the call had quote characters in it (the quotes were stripped).
3341
3347
3342 2005-01-31 Fernando Perez <fperez@colorado.edu>
3348 2005-01-31 Fernando Perez <fperez@colorado.edu>
3343
3349
3344 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3350 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3345 Itpl.itpl() to make the code more robust against psyco
3351 Itpl.itpl() to make the code more robust against psyco
3346 optimizations.
3352 optimizations.
3347
3353
3348 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3354 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3349 of causing an exception. Quicker, cleaner.
3355 of causing an exception. Quicker, cleaner.
3350
3356
3351 2005-01-28 Fernando Perez <fperez@colorado.edu>
3357 2005-01-28 Fernando Perez <fperez@colorado.edu>
3352
3358
3353 * scripts/ipython_win_post_install.py (install): hardcode
3359 * scripts/ipython_win_post_install.py (install): hardcode
3354 sys.prefix+'python.exe' as the executable path. It turns out that
3360 sys.prefix+'python.exe' as the executable path. It turns out that
3355 during the post-installation run, sys.executable resolves to the
3361 during the post-installation run, sys.executable resolves to the
3356 name of the binary installer! I should report this as a distutils
3362 name of the binary installer! I should report this as a distutils
3357 bug, I think. I updated the .10 release with this tiny fix, to
3363 bug, I think. I updated the .10 release with this tiny fix, to
3358 avoid annoying the lists further.
3364 avoid annoying the lists further.
3359
3365
3360 2005-01-27 *** Released version 0.6.10
3366 2005-01-27 *** Released version 0.6.10
3361
3367
3362 2005-01-27 Fernando Perez <fperez@colorado.edu>
3368 2005-01-27 Fernando Perez <fperez@colorado.edu>
3363
3369
3364 * IPython/numutils.py (norm): Added 'inf' as optional name for
3370 * IPython/numutils.py (norm): Added 'inf' as optional name for
3365 L-infinity norm, included references to mathworld.com for vector
3371 L-infinity norm, included references to mathworld.com for vector
3366 norm definitions.
3372 norm definitions.
3367 (amin/amax): added amin/amax for array min/max. Similar to what
3373 (amin/amax): added amin/amax for array min/max. Similar to what
3368 pylab ships with after the recent reorganization of names.
3374 pylab ships with after the recent reorganization of names.
3369 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3375 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3370
3376
3371 * ipython.el: committed Alex's recent fixes and improvements.
3377 * ipython.el: committed Alex's recent fixes and improvements.
3372 Tested with python-mode from CVS, and it looks excellent. Since
3378 Tested with python-mode from CVS, and it looks excellent. Since
3373 python-mode hasn't released anything in a while, I'm temporarily
3379 python-mode hasn't released anything in a while, I'm temporarily
3374 putting a copy of today's CVS (v 4.70) of python-mode in:
3380 putting a copy of today's CVS (v 4.70) of python-mode in:
3375 http://ipython.scipy.org/tmp/python-mode.el
3381 http://ipython.scipy.org/tmp/python-mode.el
3376
3382
3377 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3383 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3378 sys.executable for the executable name, instead of assuming it's
3384 sys.executable for the executable name, instead of assuming it's
3379 called 'python.exe' (the post-installer would have produced broken
3385 called 'python.exe' (the post-installer would have produced broken
3380 setups on systems with a differently named python binary).
3386 setups on systems with a differently named python binary).
3381
3387
3382 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3388 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3383 references to os.linesep, to make the code more
3389 references to os.linesep, to make the code more
3384 platform-independent. This is also part of the win32 coloring
3390 platform-independent. This is also part of the win32 coloring
3385 fixes.
3391 fixes.
3386
3392
3387 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3393 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3388 lines, which actually cause coloring bugs because the length of
3394 lines, which actually cause coloring bugs because the length of
3389 the line is very difficult to correctly compute with embedded
3395 the line is very difficult to correctly compute with embedded
3390 escapes. This was the source of all the coloring problems under
3396 escapes. This was the source of all the coloring problems under
3391 Win32. I think that _finally_, Win32 users have a properly
3397 Win32. I think that _finally_, Win32 users have a properly
3392 working ipython in all respects. This would never have happened
3398 working ipython in all respects. This would never have happened
3393 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3399 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3394
3400
3395 2005-01-26 *** Released version 0.6.9
3401 2005-01-26 *** Released version 0.6.9
3396
3402
3397 2005-01-25 Fernando Perez <fperez@colorado.edu>
3403 2005-01-25 Fernando Perez <fperez@colorado.edu>
3398
3404
3399 * setup.py: finally, we have a true Windows installer, thanks to
3405 * setup.py: finally, we have a true Windows installer, thanks to
3400 the excellent work of Viktor Ransmayr
3406 the excellent work of Viktor Ransmayr
3401 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3407 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3402 Windows users. The setup routine is quite a bit cleaner thanks to
3408 Windows users. The setup routine is quite a bit cleaner thanks to
3403 this, and the post-install script uses the proper functions to
3409 this, and the post-install script uses the proper functions to
3404 allow a clean de-installation using the standard Windows Control
3410 allow a clean de-installation using the standard Windows Control
3405 Panel.
3411 Panel.
3406
3412
3407 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3413 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3408 environment variable under all OSes (including win32) if
3414 environment variable under all OSes (including win32) if
3409 available. This will give consistency to win32 users who have set
3415 available. This will give consistency to win32 users who have set
3410 this variable for any reason. If os.environ['HOME'] fails, the
3416 this variable for any reason. If os.environ['HOME'] fails, the
3411 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3417 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3412
3418
3413 2005-01-24 Fernando Perez <fperez@colorado.edu>
3419 2005-01-24 Fernando Perez <fperez@colorado.edu>
3414
3420
3415 * IPython/numutils.py (empty_like): add empty_like(), similar to
3421 * IPython/numutils.py (empty_like): add empty_like(), similar to
3416 zeros_like() but taking advantage of the new empty() Numeric routine.
3422 zeros_like() but taking advantage of the new empty() Numeric routine.
3417
3423
3418 2005-01-23 *** Released version 0.6.8
3424 2005-01-23 *** Released version 0.6.8
3419
3425
3420 2005-01-22 Fernando Perez <fperez@colorado.edu>
3426 2005-01-22 Fernando Perez <fperez@colorado.edu>
3421
3427
3422 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3428 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3423 automatic show() calls. After discussing things with JDH, it
3429 automatic show() calls. After discussing things with JDH, it
3424 turns out there are too many corner cases where this can go wrong.
3430 turns out there are too many corner cases where this can go wrong.
3425 It's best not to try to be 'too smart', and simply have ipython
3431 It's best not to try to be 'too smart', and simply have ipython
3426 reproduce as much as possible the default behavior of a normal
3432 reproduce as much as possible the default behavior of a normal
3427 python shell.
3433 python shell.
3428
3434
3429 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3435 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3430 line-splitting regexp and _prefilter() to avoid calling getattr()
3436 line-splitting regexp and _prefilter() to avoid calling getattr()
3431 on assignments. This closes
3437 on assignments. This closes
3432 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3438 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3433 readline uses getattr(), so a simple <TAB> keypress is still
3439 readline uses getattr(), so a simple <TAB> keypress is still
3434 enough to trigger getattr() calls on an object.
3440 enough to trigger getattr() calls on an object.
3435
3441
3436 2005-01-21 Fernando Perez <fperez@colorado.edu>
3442 2005-01-21 Fernando Perez <fperez@colorado.edu>
3437
3443
3438 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3444 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3439 docstring under pylab so it doesn't mask the original.
3445 docstring under pylab so it doesn't mask the original.
3440
3446
3441 2005-01-21 *** Released version 0.6.7
3447 2005-01-21 *** Released version 0.6.7
3442
3448
3443 2005-01-21 Fernando Perez <fperez@colorado.edu>
3449 2005-01-21 Fernando Perez <fperez@colorado.edu>
3444
3450
3445 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3451 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3446 signal handling for win32 users in multithreaded mode.
3452 signal handling for win32 users in multithreaded mode.
3447
3453
3448 2005-01-17 Fernando Perez <fperez@colorado.edu>
3454 2005-01-17 Fernando Perez <fperez@colorado.edu>
3449
3455
3450 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3456 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3451 instances with no __init__. After a crash report by Norbert Nemec
3457 instances with no __init__. After a crash report by Norbert Nemec
3452 <Norbert-AT-nemec-online.de>.
3458 <Norbert-AT-nemec-online.de>.
3453
3459
3454 2005-01-14 Fernando Perez <fperez@colorado.edu>
3460 2005-01-14 Fernando Perez <fperez@colorado.edu>
3455
3461
3456 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3462 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3457 names for verbose exceptions, when multiple dotted names and the
3463 names for verbose exceptions, when multiple dotted names and the
3458 'parent' object were present on the same line.
3464 'parent' object were present on the same line.
3459
3465
3460 2005-01-11 Fernando Perez <fperez@colorado.edu>
3466 2005-01-11 Fernando Perez <fperez@colorado.edu>
3461
3467
3462 * IPython/genutils.py (flag_calls): new utility to trap and flag
3468 * IPython/genutils.py (flag_calls): new utility to trap and flag
3463 calls in functions. I need it to clean up matplotlib support.
3469 calls in functions. I need it to clean up matplotlib support.
3464 Also removed some deprecated code in genutils.
3470 Also removed some deprecated code in genutils.
3465
3471
3466 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3472 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3467 that matplotlib scripts called with %run, which don't call show()
3473 that matplotlib scripts called with %run, which don't call show()
3468 themselves, still have their plotting windows open.
3474 themselves, still have their plotting windows open.
3469
3475
3470 2005-01-05 Fernando Perez <fperez@colorado.edu>
3476 2005-01-05 Fernando Perez <fperez@colorado.edu>
3471
3477
3472 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3478 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3473 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3479 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3474
3480
3475 2004-12-19 Fernando Perez <fperez@colorado.edu>
3481 2004-12-19 Fernando Perez <fperez@colorado.edu>
3476
3482
3477 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3483 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3478 parent_runcode, which was an eyesore. The same result can be
3484 parent_runcode, which was an eyesore. The same result can be
3479 obtained with Python's regular superclass mechanisms.
3485 obtained with Python's regular superclass mechanisms.
3480
3486
3481 2004-12-17 Fernando Perez <fperez@colorado.edu>
3487 2004-12-17 Fernando Perez <fperez@colorado.edu>
3482
3488
3483 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3489 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3484 reported by Prabhu.
3490 reported by Prabhu.
3485 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3491 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3486 sys.stderr) instead of explicitly calling sys.stderr. This helps
3492 sys.stderr) instead of explicitly calling sys.stderr. This helps
3487 maintain our I/O abstractions clean, for future GUI embeddings.
3493 maintain our I/O abstractions clean, for future GUI embeddings.
3488
3494
3489 * IPython/genutils.py (info): added new utility for sys.stderr
3495 * IPython/genutils.py (info): added new utility for sys.stderr
3490 unified info message handling (thin wrapper around warn()).
3496 unified info message handling (thin wrapper around warn()).
3491
3497
3492 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3498 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3493 composite (dotted) names on verbose exceptions.
3499 composite (dotted) names on verbose exceptions.
3494 (VerboseTB.nullrepr): harden against another kind of errors which
3500 (VerboseTB.nullrepr): harden against another kind of errors which
3495 Python's inspect module can trigger, and which were crashing
3501 Python's inspect module can trigger, and which were crashing
3496 IPython. Thanks to a report by Marco Lombardi
3502 IPython. Thanks to a report by Marco Lombardi
3497 <mlombard-AT-ma010192.hq.eso.org>.
3503 <mlombard-AT-ma010192.hq.eso.org>.
3498
3504
3499 2004-12-13 *** Released version 0.6.6
3505 2004-12-13 *** Released version 0.6.6
3500
3506
3501 2004-12-12 Fernando Perez <fperez@colorado.edu>
3507 2004-12-12 Fernando Perez <fperez@colorado.edu>
3502
3508
3503 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3509 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3504 generated by pygtk upon initialization if it was built without
3510 generated by pygtk upon initialization if it was built without
3505 threads (for matplotlib users). After a crash reported by
3511 threads (for matplotlib users). After a crash reported by
3506 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3512 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3507
3513
3508 * IPython/ipmaker.py (make_IPython): fix small bug in the
3514 * IPython/ipmaker.py (make_IPython): fix small bug in the
3509 import_some parameter for multiple imports.
3515 import_some parameter for multiple imports.
3510
3516
3511 * IPython/iplib.py (ipmagic): simplified the interface of
3517 * IPython/iplib.py (ipmagic): simplified the interface of
3512 ipmagic() to take a single string argument, just as it would be
3518 ipmagic() to take a single string argument, just as it would be
3513 typed at the IPython cmd line.
3519 typed at the IPython cmd line.
3514 (ipalias): Added new ipalias() with an interface identical to
3520 (ipalias): Added new ipalias() with an interface identical to
3515 ipmagic(). This completes exposing a pure python interface to the
3521 ipmagic(). This completes exposing a pure python interface to the
3516 alias and magic system, which can be used in loops or more complex
3522 alias and magic system, which can be used in loops or more complex
3517 code where IPython's automatic line mangling is not active.
3523 code where IPython's automatic line mangling is not active.
3518
3524
3519 * IPython/genutils.py (timing): changed interface of timing to
3525 * IPython/genutils.py (timing): changed interface of timing to
3520 simply run code once, which is the most common case. timings()
3526 simply run code once, which is the most common case. timings()
3521 remains unchanged, for the cases where you want multiple runs.
3527 remains unchanged, for the cases where you want multiple runs.
3522
3528
3523 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3529 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
3524 bug where Python2.2 crashes with exec'ing code which does not end
3530 bug where Python2.2 crashes with exec'ing code which does not end
3525 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3531 in a single newline. Python 2.3 is OK, so I hadn't noticed this
3526 before.
3532 before.
3527
3533
3528 2004-12-10 Fernando Perez <fperez@colorado.edu>
3534 2004-12-10 Fernando Perez <fperez@colorado.edu>
3529
3535
3530 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3536 * IPython/Magic.py (Magic.magic_prun): changed name of option from
3531 -t to -T, to accomodate the new -t flag in %run (the %run and
3537 -t to -T, to accomodate the new -t flag in %run (the %run and
3532 %prun options are kind of intermixed, and it's not easy to change
3538 %prun options are kind of intermixed, and it's not easy to change
3533 this with the limitations of python's getopt).
3539 this with the limitations of python's getopt).
3534
3540
3535 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3541 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
3536 the execution of scripts. It's not as fine-tuned as timeit.py,
3542 the execution of scripts. It's not as fine-tuned as timeit.py,
3537 but it works from inside ipython (and under 2.2, which lacks
3543 but it works from inside ipython (and under 2.2, which lacks
3538 timeit.py). Optionally a number of runs > 1 can be given for
3544 timeit.py). Optionally a number of runs > 1 can be given for
3539 timing very short-running code.
3545 timing very short-running code.
3540
3546
3541 * IPython/genutils.py (uniq_stable): new routine which returns a
3547 * IPython/genutils.py (uniq_stable): new routine which returns a
3542 list of unique elements in any iterable, but in stable order of
3548 list of unique elements in any iterable, but in stable order of
3543 appearance. I needed this for the ultraTB fixes, and it's a handy
3549 appearance. I needed this for the ultraTB fixes, and it's a handy
3544 utility.
3550 utility.
3545
3551
3546 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3552 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
3547 dotted names in Verbose exceptions. This had been broken since
3553 dotted names in Verbose exceptions. This had been broken since
3548 the very start, now x.y will properly be printed in a Verbose
3554 the very start, now x.y will properly be printed in a Verbose
3549 traceback, instead of x being shown and y appearing always as an
3555 traceback, instead of x being shown and y appearing always as an
3550 'undefined global'. Getting this to work was a bit tricky,
3556 'undefined global'. Getting this to work was a bit tricky,
3551 because by default python tokenizers are stateless. Saved by
3557 because by default python tokenizers are stateless. Saved by
3552 python's ability to easily add a bit of state to an arbitrary
3558 python's ability to easily add a bit of state to an arbitrary
3553 function (without needing to build a full-blown callable object).
3559 function (without needing to build a full-blown callable object).
3554
3560
3555 Also big cleanup of this code, which had horrendous runtime
3561 Also big cleanup of this code, which had horrendous runtime
3556 lookups of zillions of attributes for colorization. Moved all
3562 lookups of zillions of attributes for colorization. Moved all
3557 this code into a few templates, which make it cleaner and quicker.
3563 this code into a few templates, which make it cleaner and quicker.
3558
3564
3559 Printout quality was also improved for Verbose exceptions: one
3565 Printout quality was also improved for Verbose exceptions: one
3560 variable per line, and memory addresses are printed (this can be
3566 variable per line, and memory addresses are printed (this can be
3561 quite handy in nasty debugging situations, which is what Verbose
3567 quite handy in nasty debugging situations, which is what Verbose
3562 is for).
3568 is for).
3563
3569
3564 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3570 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
3565 the command line as scripts to be loaded by embedded instances.
3571 the command line as scripts to be loaded by embedded instances.
3566 Doing so has the potential for an infinite recursion if there are
3572 Doing so has the potential for an infinite recursion if there are
3567 exceptions thrown in the process. This fixes a strange crash
3573 exceptions thrown in the process. This fixes a strange crash
3568 reported by Philippe MULLER <muller-AT-irit.fr>.
3574 reported by Philippe MULLER <muller-AT-irit.fr>.
3569
3575
3570 2004-12-09 Fernando Perez <fperez@colorado.edu>
3576 2004-12-09 Fernando Perez <fperez@colorado.edu>
3571
3577
3572 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3578 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
3573 to reflect new names in matplotlib, which now expose the
3579 to reflect new names in matplotlib, which now expose the
3574 matlab-compatible interface via a pylab module instead of the
3580 matlab-compatible interface via a pylab module instead of the
3575 'matlab' name. The new code is backwards compatible, so users of
3581 'matlab' name. The new code is backwards compatible, so users of
3576 all matplotlib versions are OK. Patch by J. Hunter.
3582 all matplotlib versions are OK. Patch by J. Hunter.
3577
3583
3578 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3584 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
3579 of __init__ docstrings for instances (class docstrings are already
3585 of __init__ docstrings for instances (class docstrings are already
3580 automatically printed). Instances with customized docstrings
3586 automatically printed). Instances with customized docstrings
3581 (indep. of the class) are also recognized and all 3 separate
3587 (indep. of the class) are also recognized and all 3 separate
3582 docstrings are printed (instance, class, constructor). After some
3588 docstrings are printed (instance, class, constructor). After some
3583 comments/suggestions by J. Hunter.
3589 comments/suggestions by J. Hunter.
3584
3590
3585 2004-12-05 Fernando Perez <fperez@colorado.edu>
3591 2004-12-05 Fernando Perez <fperez@colorado.edu>
3586
3592
3587 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3593 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
3588 warnings when tab-completion fails and triggers an exception.
3594 warnings when tab-completion fails and triggers an exception.
3589
3595
3590 2004-12-03 Fernando Perez <fperez@colorado.edu>
3596 2004-12-03 Fernando Perez <fperez@colorado.edu>
3591
3597
3592 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3598 * IPython/Magic.py (magic_prun): Fix bug where an exception would
3593 be triggered when using 'run -p'. An incorrect option flag was
3599 be triggered when using 'run -p'. An incorrect option flag was
3594 being set ('d' instead of 'D').
3600 being set ('d' instead of 'D').
3595 (manpage): fix missing escaped \- sign.
3601 (manpage): fix missing escaped \- sign.
3596
3602
3597 2004-11-30 *** Released version 0.6.5
3603 2004-11-30 *** Released version 0.6.5
3598
3604
3599 2004-11-30 Fernando Perez <fperez@colorado.edu>
3605 2004-11-30 Fernando Perez <fperez@colorado.edu>
3600
3606
3601 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3607 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
3602 setting with -d option.
3608 setting with -d option.
3603
3609
3604 * setup.py (docfiles): Fix problem where the doc glob I was using
3610 * setup.py (docfiles): Fix problem where the doc glob I was using
3605 was COMPLETELY BROKEN. It was giving the right files by pure
3611 was COMPLETELY BROKEN. It was giving the right files by pure
3606 accident, but failed once I tried to include ipython.el. Note:
3612 accident, but failed once I tried to include ipython.el. Note:
3607 glob() does NOT allow you to do exclusion on multiple endings!
3613 glob() does NOT allow you to do exclusion on multiple endings!
3608
3614
3609 2004-11-29 Fernando Perez <fperez@colorado.edu>
3615 2004-11-29 Fernando Perez <fperez@colorado.edu>
3610
3616
3611 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3617 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
3612 the manpage as the source. Better formatting & consistency.
3618 the manpage as the source. Better formatting & consistency.
3613
3619
3614 * IPython/Magic.py (magic_run): Added new -d option, to run
3620 * IPython/Magic.py (magic_run): Added new -d option, to run
3615 scripts under the control of the python pdb debugger. Note that
3621 scripts under the control of the python pdb debugger. Note that
3616 this required changing the %prun option -d to -D, to avoid a clash
3622 this required changing the %prun option -d to -D, to avoid a clash
3617 (since %run must pass options to %prun, and getopt is too dumb to
3623 (since %run must pass options to %prun, and getopt is too dumb to
3618 handle options with string values with embedded spaces). Thanks
3624 handle options with string values with embedded spaces). Thanks
3619 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3625 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
3620 (magic_who_ls): added type matching to %who and %whos, so that one
3626 (magic_who_ls): added type matching to %who and %whos, so that one
3621 can filter their output to only include variables of certain
3627 can filter their output to only include variables of certain
3622 types. Another suggestion by Matthew.
3628 types. Another suggestion by Matthew.
3623 (magic_whos): Added memory summaries in kb and Mb for arrays.
3629 (magic_whos): Added memory summaries in kb and Mb for arrays.
3624 (magic_who): Improve formatting (break lines every 9 vars).
3630 (magic_who): Improve formatting (break lines every 9 vars).
3625
3631
3626 2004-11-28 Fernando Perez <fperez@colorado.edu>
3632 2004-11-28 Fernando Perez <fperez@colorado.edu>
3627
3633
3628 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3634 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
3629 cache when empty lines were present.
3635 cache when empty lines were present.
3630
3636
3631 2004-11-24 Fernando Perez <fperez@colorado.edu>
3637 2004-11-24 Fernando Perez <fperez@colorado.edu>
3632
3638
3633 * IPython/usage.py (__doc__): document the re-activated threading
3639 * IPython/usage.py (__doc__): document the re-activated threading
3634 options for WX and GTK.
3640 options for WX and GTK.
3635
3641
3636 2004-11-23 Fernando Perez <fperez@colorado.edu>
3642 2004-11-23 Fernando Perez <fperez@colorado.edu>
3637
3643
3638 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3644 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3639 the -wthread and -gthread options, along with a new -tk one to try
3645 the -wthread and -gthread options, along with a new -tk one to try
3640 and coordinate Tk threading with wx/gtk. The tk support is very
3646 and coordinate Tk threading with wx/gtk. The tk support is very
3641 platform dependent, since it seems to require Tcl and Tk to be
3647 platform dependent, since it seems to require Tcl and Tk to be
3642 built with threads (Fedora1/2 appears NOT to have it, but in
3648 built with threads (Fedora1/2 appears NOT to have it, but in
3643 Prabhu's Debian boxes it works OK). But even with some Tk
3649 Prabhu's Debian boxes it works OK). But even with some Tk
3644 limitations, this is a great improvement.
3650 limitations, this is a great improvement.
3645
3651
3646 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3652 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3647 info in user prompts. Patch by Prabhu.
3653 info in user prompts. Patch by Prabhu.
3648
3654
3649 2004-11-18 Fernando Perez <fperez@colorado.edu>
3655 2004-11-18 Fernando Perez <fperez@colorado.edu>
3650
3656
3651 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3657 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3652 EOFErrors and bail, to avoid infinite loops if a non-terminating
3658 EOFErrors and bail, to avoid infinite loops if a non-terminating
3653 file is fed into ipython. Patch submitted in issue 19 by user,
3659 file is fed into ipython. Patch submitted in issue 19 by user,
3654 many thanks.
3660 many thanks.
3655
3661
3656 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3662 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3657 autoquote/parens in continuation prompts, which can cause lots of
3663 autoquote/parens in continuation prompts, which can cause lots of
3658 problems. Closes roundup issue 20.
3664 problems. Closes roundup issue 20.
3659
3665
3660 2004-11-17 Fernando Perez <fperez@colorado.edu>
3666 2004-11-17 Fernando Perez <fperez@colorado.edu>
3661
3667
3662 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3668 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3663 reported as debian bug #280505. I'm not sure my local changelog
3669 reported as debian bug #280505. I'm not sure my local changelog
3664 entry has the proper debian format (Jack?).
3670 entry has the proper debian format (Jack?).
3665
3671
3666 2004-11-08 *** Released version 0.6.4
3672 2004-11-08 *** Released version 0.6.4
3667
3673
3668 2004-11-08 Fernando Perez <fperez@colorado.edu>
3674 2004-11-08 Fernando Perez <fperez@colorado.edu>
3669
3675
3670 * IPython/iplib.py (init_readline): Fix exit message for Windows
3676 * IPython/iplib.py (init_readline): Fix exit message for Windows
3671 when readline is active. Thanks to a report by Eric Jones
3677 when readline is active. Thanks to a report by Eric Jones
3672 <eric-AT-enthought.com>.
3678 <eric-AT-enthought.com>.
3673
3679
3674 2004-11-07 Fernando Perez <fperez@colorado.edu>
3680 2004-11-07 Fernando Perez <fperez@colorado.edu>
3675
3681
3676 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3682 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3677 sometimes seen by win2k/cygwin users.
3683 sometimes seen by win2k/cygwin users.
3678
3684
3679 2004-11-06 Fernando Perez <fperez@colorado.edu>
3685 2004-11-06 Fernando Perez <fperez@colorado.edu>
3680
3686
3681 * IPython/iplib.py (interact): Change the handling of %Exit from
3687 * IPython/iplib.py (interact): Change the handling of %Exit from
3682 trying to propagate a SystemExit to an internal ipython flag.
3688 trying to propagate a SystemExit to an internal ipython flag.
3683 This is less elegant than using Python's exception mechanism, but
3689 This is less elegant than using Python's exception mechanism, but
3684 I can't get that to work reliably with threads, so under -pylab
3690 I can't get that to work reliably with threads, so under -pylab
3685 %Exit was hanging IPython. Cross-thread exception handling is
3691 %Exit was hanging IPython. Cross-thread exception handling is
3686 really a bitch. Thaks to a bug report by Stephen Walton
3692 really a bitch. Thaks to a bug report by Stephen Walton
3687 <stephen.walton-AT-csun.edu>.
3693 <stephen.walton-AT-csun.edu>.
3688
3694
3689 2004-11-04 Fernando Perez <fperez@colorado.edu>
3695 2004-11-04 Fernando Perez <fperez@colorado.edu>
3690
3696
3691 * IPython/iplib.py (raw_input_original): store a pointer to the
3697 * IPython/iplib.py (raw_input_original): store a pointer to the
3692 true raw_input to harden against code which can modify it
3698 true raw_input to harden against code which can modify it
3693 (wx.py.PyShell does this and would otherwise crash ipython).
3699 (wx.py.PyShell does this and would otherwise crash ipython).
3694 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3700 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3695
3701
3696 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3702 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3697 Ctrl-C problem, which does not mess up the input line.
3703 Ctrl-C problem, which does not mess up the input line.
3698
3704
3699 2004-11-03 Fernando Perez <fperez@colorado.edu>
3705 2004-11-03 Fernando Perez <fperez@colorado.edu>
3700
3706
3701 * IPython/Release.py: Changed licensing to BSD, in all files.
3707 * IPython/Release.py: Changed licensing to BSD, in all files.
3702 (name): lowercase name for tarball/RPM release.
3708 (name): lowercase name for tarball/RPM release.
3703
3709
3704 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3710 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3705 use throughout ipython.
3711 use throughout ipython.
3706
3712
3707 * IPython/Magic.py (Magic._ofind): Switch to using the new
3713 * IPython/Magic.py (Magic._ofind): Switch to using the new
3708 OInspect.getdoc() function.
3714 OInspect.getdoc() function.
3709
3715
3710 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3716 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3711 of the line currently being canceled via Ctrl-C. It's extremely
3717 of the line currently being canceled via Ctrl-C. It's extremely
3712 ugly, but I don't know how to do it better (the problem is one of
3718 ugly, but I don't know how to do it better (the problem is one of
3713 handling cross-thread exceptions).
3719 handling cross-thread exceptions).
3714
3720
3715 2004-10-28 Fernando Perez <fperez@colorado.edu>
3721 2004-10-28 Fernando Perez <fperez@colorado.edu>
3716
3722
3717 * IPython/Shell.py (signal_handler): add signal handlers to trap
3723 * IPython/Shell.py (signal_handler): add signal handlers to trap
3718 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3724 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3719 report by Francesc Alted.
3725 report by Francesc Alted.
3720
3726
3721 2004-10-21 Fernando Perez <fperez@colorado.edu>
3727 2004-10-21 Fernando Perez <fperez@colorado.edu>
3722
3728
3723 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3729 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3724 to % for pysh syntax extensions.
3730 to % for pysh syntax extensions.
3725
3731
3726 2004-10-09 Fernando Perez <fperez@colorado.edu>
3732 2004-10-09 Fernando Perez <fperez@colorado.edu>
3727
3733
3728 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3734 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3729 arrays to print a more useful summary, without calling str(arr).
3735 arrays to print a more useful summary, without calling str(arr).
3730 This avoids the problem of extremely lengthy computations which
3736 This avoids the problem of extremely lengthy computations which
3731 occur if arr is large, and appear to the user as a system lockup
3737 occur if arr is large, and appear to the user as a system lockup
3732 with 100% cpu activity. After a suggestion by Kristian Sandberg
3738 with 100% cpu activity. After a suggestion by Kristian Sandberg
3733 <Kristian.Sandberg@colorado.edu>.
3739 <Kristian.Sandberg@colorado.edu>.
3734 (Magic.__init__): fix bug in global magic escapes not being
3740 (Magic.__init__): fix bug in global magic escapes not being
3735 correctly set.
3741 correctly set.
3736
3742
3737 2004-10-08 Fernando Perez <fperez@colorado.edu>
3743 2004-10-08 Fernando Perez <fperez@colorado.edu>
3738
3744
3739 * IPython/Magic.py (__license__): change to absolute imports of
3745 * IPython/Magic.py (__license__): change to absolute imports of
3740 ipython's own internal packages, to start adapting to the absolute
3746 ipython's own internal packages, to start adapting to the absolute
3741 import requirement of PEP-328.
3747 import requirement of PEP-328.
3742
3748
3743 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3749 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3744 files, and standardize author/license marks through the Release
3750 files, and standardize author/license marks through the Release
3745 module instead of having per/file stuff (except for files with
3751 module instead of having per/file stuff (except for files with
3746 particular licenses, like the MIT/PSF-licensed codes).
3752 particular licenses, like the MIT/PSF-licensed codes).
3747
3753
3748 * IPython/Debugger.py: remove dead code for python 2.1
3754 * IPython/Debugger.py: remove dead code for python 2.1
3749
3755
3750 2004-10-04 Fernando Perez <fperez@colorado.edu>
3756 2004-10-04 Fernando Perez <fperez@colorado.edu>
3751
3757
3752 * IPython/iplib.py (ipmagic): New function for accessing magics
3758 * IPython/iplib.py (ipmagic): New function for accessing magics
3753 via a normal python function call.
3759 via a normal python function call.
3754
3760
3755 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3761 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3756 from '@' to '%', to accomodate the new @decorator syntax of python
3762 from '@' to '%', to accomodate the new @decorator syntax of python
3757 2.4.
3763 2.4.
3758
3764
3759 2004-09-29 Fernando Perez <fperez@colorado.edu>
3765 2004-09-29 Fernando Perez <fperez@colorado.edu>
3760
3766
3761 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3767 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3762 matplotlib.use to prevent running scripts which try to switch
3768 matplotlib.use to prevent running scripts which try to switch
3763 interactive backends from within ipython. This will just crash
3769 interactive backends from within ipython. This will just crash
3764 the python interpreter, so we can't allow it (but a detailed error
3770 the python interpreter, so we can't allow it (but a detailed error
3765 is given to the user).
3771 is given to the user).
3766
3772
3767 2004-09-28 Fernando Perez <fperez@colorado.edu>
3773 2004-09-28 Fernando Perez <fperez@colorado.edu>
3768
3774
3769 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3775 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3770 matplotlib-related fixes so that using @run with non-matplotlib
3776 matplotlib-related fixes so that using @run with non-matplotlib
3771 scripts doesn't pop up spurious plot windows. This requires
3777 scripts doesn't pop up spurious plot windows. This requires
3772 matplotlib >= 0.63, where I had to make some changes as well.
3778 matplotlib >= 0.63, where I had to make some changes as well.
3773
3779
3774 * IPython/ipmaker.py (make_IPython): update version requirement to
3780 * IPython/ipmaker.py (make_IPython): update version requirement to
3775 python 2.2.
3781 python 2.2.
3776
3782
3777 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3783 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3778 banner arg for embedded customization.
3784 banner arg for embedded customization.
3779
3785
3780 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3786 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3781 explicit uses of __IP as the IPython's instance name. Now things
3787 explicit uses of __IP as the IPython's instance name. Now things
3782 are properly handled via the shell.name value. The actual code
3788 are properly handled via the shell.name value. The actual code
3783 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3789 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3784 is much better than before. I'll clean things completely when the
3790 is much better than before. I'll clean things completely when the
3785 magic stuff gets a real overhaul.
3791 magic stuff gets a real overhaul.
3786
3792
3787 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3793 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3788 minor changes to debian dir.
3794 minor changes to debian dir.
3789
3795
3790 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3796 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3791 pointer to the shell itself in the interactive namespace even when
3797 pointer to the shell itself in the interactive namespace even when
3792 a user-supplied dict is provided. This is needed for embedding
3798 a user-supplied dict is provided. This is needed for embedding
3793 purposes (found by tests with Michel Sanner).
3799 purposes (found by tests with Michel Sanner).
3794
3800
3795 2004-09-27 Fernando Perez <fperez@colorado.edu>
3801 2004-09-27 Fernando Perez <fperez@colorado.edu>
3796
3802
3797 * IPython/UserConfig/ipythonrc: remove []{} from
3803 * IPython/UserConfig/ipythonrc: remove []{} from
3798 readline_remove_delims, so that things like [modname.<TAB> do
3804 readline_remove_delims, so that things like [modname.<TAB> do
3799 proper completion. This disables [].TAB, but that's a less common
3805 proper completion. This disables [].TAB, but that's a less common
3800 case than module names in list comprehensions, for example.
3806 case than module names in list comprehensions, for example.
3801 Thanks to a report by Andrea Riciputi.
3807 Thanks to a report by Andrea Riciputi.
3802
3808
3803 2004-09-09 Fernando Perez <fperez@colorado.edu>
3809 2004-09-09 Fernando Perez <fperez@colorado.edu>
3804
3810
3805 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3811 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3806 blocking problems in win32 and osx. Fix by John.
3812 blocking problems in win32 and osx. Fix by John.
3807
3813
3808 2004-09-08 Fernando Perez <fperez@colorado.edu>
3814 2004-09-08 Fernando Perez <fperez@colorado.edu>
3809
3815
3810 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3816 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3811 for Win32 and OSX. Fix by John Hunter.
3817 for Win32 and OSX. Fix by John Hunter.
3812
3818
3813 2004-08-30 *** Released version 0.6.3
3819 2004-08-30 *** Released version 0.6.3
3814
3820
3815 2004-08-30 Fernando Perez <fperez@colorado.edu>
3821 2004-08-30 Fernando Perez <fperez@colorado.edu>
3816
3822
3817 * setup.py (isfile): Add manpages to list of dependent files to be
3823 * setup.py (isfile): Add manpages to list of dependent files to be
3818 updated.
3824 updated.
3819
3825
3820 2004-08-27 Fernando Perez <fperez@colorado.edu>
3826 2004-08-27 Fernando Perez <fperez@colorado.edu>
3821
3827
3822 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3828 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3823 for now. They don't really work with standalone WX/GTK code
3829 for now. They don't really work with standalone WX/GTK code
3824 (though matplotlib IS working fine with both of those backends).
3830 (though matplotlib IS working fine with both of those backends).
3825 This will neeed much more testing. I disabled most things with
3831 This will neeed much more testing. I disabled most things with
3826 comments, so turning it back on later should be pretty easy.
3832 comments, so turning it back on later should be pretty easy.
3827
3833
3828 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3834 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3829 autocalling of expressions like r'foo', by modifying the line
3835 autocalling of expressions like r'foo', by modifying the line
3830 split regexp. Closes
3836 split regexp. Closes
3831 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3837 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3832 Riley <ipythonbugs-AT-sabi.net>.
3838 Riley <ipythonbugs-AT-sabi.net>.
3833 (InteractiveShell.mainloop): honor --nobanner with banner
3839 (InteractiveShell.mainloop): honor --nobanner with banner
3834 extensions.
3840 extensions.
3835
3841
3836 * IPython/Shell.py: Significant refactoring of all classes, so
3842 * IPython/Shell.py: Significant refactoring of all classes, so
3837 that we can really support ALL matplotlib backends and threading
3843 that we can really support ALL matplotlib backends and threading
3838 models (John spotted a bug with Tk which required this). Now we
3844 models (John spotted a bug with Tk which required this). Now we
3839 should support single-threaded, WX-threads and GTK-threads, both
3845 should support single-threaded, WX-threads and GTK-threads, both
3840 for generic code and for matplotlib.
3846 for generic code and for matplotlib.
3841
3847
3842 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3848 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3843 -pylab, to simplify things for users. Will also remove the pylab
3849 -pylab, to simplify things for users. Will also remove the pylab
3844 profile, since now all of matplotlib configuration is directly
3850 profile, since now all of matplotlib configuration is directly
3845 handled here. This also reduces startup time.
3851 handled here. This also reduces startup time.
3846
3852
3847 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3853 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3848 shell wasn't being correctly called. Also in IPShellWX.
3854 shell wasn't being correctly called. Also in IPShellWX.
3849
3855
3850 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3856 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3851 fine-tune banner.
3857 fine-tune banner.
3852
3858
3853 * IPython/numutils.py (spike): Deprecate these spike functions,
3859 * IPython/numutils.py (spike): Deprecate these spike functions,
3854 delete (long deprecated) gnuplot_exec handler.
3860 delete (long deprecated) gnuplot_exec handler.
3855
3861
3856 2004-08-26 Fernando Perez <fperez@colorado.edu>
3862 2004-08-26 Fernando Perez <fperez@colorado.edu>
3857
3863
3858 * ipython.1: Update for threading options, plus some others which
3864 * ipython.1: Update for threading options, plus some others which
3859 were missing.
3865 were missing.
3860
3866
3861 * IPython/ipmaker.py (__call__): Added -wthread option for
3867 * IPython/ipmaker.py (__call__): Added -wthread option for
3862 wxpython thread handling. Make sure threading options are only
3868 wxpython thread handling. Make sure threading options are only
3863 valid at the command line.
3869 valid at the command line.
3864
3870
3865 * scripts/ipython: moved shell selection into a factory function
3871 * scripts/ipython: moved shell selection into a factory function
3866 in Shell.py, to keep the starter script to a minimum.
3872 in Shell.py, to keep the starter script to a minimum.
3867
3873
3868 2004-08-25 Fernando Perez <fperez@colorado.edu>
3874 2004-08-25 Fernando Perez <fperez@colorado.edu>
3869
3875
3870 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3876 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3871 John. Along with some recent changes he made to matplotlib, the
3877 John. Along with some recent changes he made to matplotlib, the
3872 next versions of both systems should work very well together.
3878 next versions of both systems should work very well together.
3873
3879
3874 2004-08-24 Fernando Perez <fperez@colorado.edu>
3880 2004-08-24 Fernando Perez <fperez@colorado.edu>
3875
3881
3876 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3882 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3877 tried to switch the profiling to using hotshot, but I'm getting
3883 tried to switch the profiling to using hotshot, but I'm getting
3878 strange errors from prof.runctx() there. I may be misreading the
3884 strange errors from prof.runctx() there. I may be misreading the
3879 docs, but it looks weird. For now the profiling code will
3885 docs, but it looks weird. For now the profiling code will
3880 continue to use the standard profiler.
3886 continue to use the standard profiler.
3881
3887
3882 2004-08-23 Fernando Perez <fperez@colorado.edu>
3888 2004-08-23 Fernando Perez <fperez@colorado.edu>
3883
3889
3884 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3890 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3885 threaded shell, by John Hunter. It's not quite ready yet, but
3891 threaded shell, by John Hunter. It's not quite ready yet, but
3886 close.
3892 close.
3887
3893
3888 2004-08-22 Fernando Perez <fperez@colorado.edu>
3894 2004-08-22 Fernando Perez <fperez@colorado.edu>
3889
3895
3890 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3896 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3891 in Magic and ultraTB.
3897 in Magic and ultraTB.
3892
3898
3893 * ipython.1: document threading options in manpage.
3899 * ipython.1: document threading options in manpage.
3894
3900
3895 * scripts/ipython: Changed name of -thread option to -gthread,
3901 * scripts/ipython: Changed name of -thread option to -gthread,
3896 since this is GTK specific. I want to leave the door open for a
3902 since this is GTK specific. I want to leave the door open for a
3897 -wthread option for WX, which will most likely be necessary. This
3903 -wthread option for WX, which will most likely be necessary. This
3898 change affects usage and ipmaker as well.
3904 change affects usage and ipmaker as well.
3899
3905
3900 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3906 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3901 handle the matplotlib shell issues. Code by John Hunter
3907 handle the matplotlib shell issues. Code by John Hunter
3902 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3908 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3903 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3909 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3904 broken (and disabled for end users) for now, but it puts the
3910 broken (and disabled for end users) for now, but it puts the
3905 infrastructure in place.
3911 infrastructure in place.
3906
3912
3907 2004-08-21 Fernando Perez <fperez@colorado.edu>
3913 2004-08-21 Fernando Perez <fperez@colorado.edu>
3908
3914
3909 * ipythonrc-pylab: Add matplotlib support.
3915 * ipythonrc-pylab: Add matplotlib support.
3910
3916
3911 * matplotlib_config.py: new files for matplotlib support, part of
3917 * matplotlib_config.py: new files for matplotlib support, part of
3912 the pylab profile.
3918 the pylab profile.
3913
3919
3914 * IPython/usage.py (__doc__): documented the threading options.
3920 * IPython/usage.py (__doc__): documented the threading options.
3915
3921
3916 2004-08-20 Fernando Perez <fperez@colorado.edu>
3922 2004-08-20 Fernando Perez <fperez@colorado.edu>
3917
3923
3918 * ipython: Modified the main calling routine to handle the -thread
3924 * ipython: Modified the main calling routine to handle the -thread
3919 and -mpthread options. This needs to be done as a top-level hack,
3925 and -mpthread options. This needs to be done as a top-level hack,
3920 because it determines which class to instantiate for IPython
3926 because it determines which class to instantiate for IPython
3921 itself.
3927 itself.
3922
3928
3923 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3929 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3924 classes to support multithreaded GTK operation without blocking,
3930 classes to support multithreaded GTK operation without blocking,
3925 and matplotlib with all backends. This is a lot of still very
3931 and matplotlib with all backends. This is a lot of still very
3926 experimental code, and threads are tricky. So it may still have a
3932 experimental code, and threads are tricky. So it may still have a
3927 few rough edges... This code owes a lot to
3933 few rough edges... This code owes a lot to
3928 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3934 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3929 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3935 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3930 to John Hunter for all the matplotlib work.
3936 to John Hunter for all the matplotlib work.
3931
3937
3932 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3938 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3933 options for gtk thread and matplotlib support.
3939 options for gtk thread and matplotlib support.
3934
3940
3935 2004-08-16 Fernando Perez <fperez@colorado.edu>
3941 2004-08-16 Fernando Perez <fperez@colorado.edu>
3936
3942
3937 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3943 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3938 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3944 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3939 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3945 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3940
3946
3941 2004-08-11 Fernando Perez <fperez@colorado.edu>
3947 2004-08-11 Fernando Perez <fperez@colorado.edu>
3942
3948
3943 * setup.py (isfile): Fix build so documentation gets updated for
3949 * setup.py (isfile): Fix build so documentation gets updated for
3944 rpms (it was only done for .tgz builds).
3950 rpms (it was only done for .tgz builds).
3945
3951
3946 2004-08-10 Fernando Perez <fperez@colorado.edu>
3952 2004-08-10 Fernando Perez <fperez@colorado.edu>
3947
3953
3948 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3954 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3949
3955
3950 * iplib.py : Silence syntax error exceptions in tab-completion.
3956 * iplib.py : Silence syntax error exceptions in tab-completion.
3951
3957
3952 2004-08-05 Fernando Perez <fperez@colorado.edu>
3958 2004-08-05 Fernando Perez <fperez@colorado.edu>
3953
3959
3954 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3960 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3955 'color off' mark for continuation prompts. This was causing long
3961 'color off' mark for continuation prompts. This was causing long
3956 continuation lines to mis-wrap.
3962 continuation lines to mis-wrap.
3957
3963
3958 2004-08-01 Fernando Perez <fperez@colorado.edu>
3964 2004-08-01 Fernando Perez <fperez@colorado.edu>
3959
3965
3960 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3966 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3961 for building ipython to be a parameter. All this is necessary
3967 for building ipython to be a parameter. All this is necessary
3962 right now to have a multithreaded version, but this insane
3968 right now to have a multithreaded version, but this insane
3963 non-design will be cleaned up soon. For now, it's a hack that
3969 non-design will be cleaned up soon. For now, it's a hack that
3964 works.
3970 works.
3965
3971
3966 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3972 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3967 args in various places. No bugs so far, but it's a dangerous
3973 args in various places. No bugs so far, but it's a dangerous
3968 practice.
3974 practice.
3969
3975
3970 2004-07-31 Fernando Perez <fperez@colorado.edu>
3976 2004-07-31 Fernando Perez <fperez@colorado.edu>
3971
3977
3972 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3978 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3973 fix completion of files with dots in their names under most
3979 fix completion of files with dots in their names under most
3974 profiles (pysh was OK because the completion order is different).
3980 profiles (pysh was OK because the completion order is different).
3975
3981
3976 2004-07-27 Fernando Perez <fperez@colorado.edu>
3982 2004-07-27 Fernando Perez <fperez@colorado.edu>
3977
3983
3978 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3984 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3979 keywords manually, b/c the one in keyword.py was removed in python
3985 keywords manually, b/c the one in keyword.py was removed in python
3980 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3986 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3981 This is NOT a bug under python 2.3 and earlier.
3987 This is NOT a bug under python 2.3 and earlier.
3982
3988
3983 2004-07-26 Fernando Perez <fperez@colorado.edu>
3989 2004-07-26 Fernando Perez <fperez@colorado.edu>
3984
3990
3985 * IPython/ultraTB.py (VerboseTB.text): Add another
3991 * IPython/ultraTB.py (VerboseTB.text): Add another
3986 linecache.checkcache() call to try to prevent inspect.py from
3992 linecache.checkcache() call to try to prevent inspect.py from
3987 crashing under python 2.3. I think this fixes
3993 crashing under python 2.3. I think this fixes
3988 http://www.scipy.net/roundup/ipython/issue17.
3994 http://www.scipy.net/roundup/ipython/issue17.
3989
3995
3990 2004-07-26 *** Released version 0.6.2
3996 2004-07-26 *** Released version 0.6.2
3991
3997
3992 2004-07-26 Fernando Perez <fperez@colorado.edu>
3998 2004-07-26 Fernando Perez <fperez@colorado.edu>
3993
3999
3994 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4000 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3995 fail for any number.
4001 fail for any number.
3996 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4002 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3997 empty bookmarks.
4003 empty bookmarks.
3998
4004
3999 2004-07-26 *** Released version 0.6.1
4005 2004-07-26 *** Released version 0.6.1
4000
4006
4001 2004-07-26 Fernando Perez <fperez@colorado.edu>
4007 2004-07-26 Fernando Perez <fperez@colorado.edu>
4002
4008
4003 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4009 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4004
4010
4005 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4011 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4006 escaping '()[]{}' in filenames.
4012 escaping '()[]{}' in filenames.
4007
4013
4008 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4014 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4009 Python 2.2 users who lack a proper shlex.split.
4015 Python 2.2 users who lack a proper shlex.split.
4010
4016
4011 2004-07-19 Fernando Perez <fperez@colorado.edu>
4017 2004-07-19 Fernando Perez <fperez@colorado.edu>
4012
4018
4013 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4019 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4014 for reading readline's init file. I follow the normal chain:
4020 for reading readline's init file. I follow the normal chain:
4015 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4021 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4016 report by Mike Heeter. This closes
4022 report by Mike Heeter. This closes
4017 http://www.scipy.net/roundup/ipython/issue16.
4023 http://www.scipy.net/roundup/ipython/issue16.
4018
4024
4019 2004-07-18 Fernando Perez <fperez@colorado.edu>
4025 2004-07-18 Fernando Perez <fperez@colorado.edu>
4020
4026
4021 * IPython/iplib.py (__init__): Add better handling of '\' under
4027 * IPython/iplib.py (__init__): Add better handling of '\' under
4022 Win32 for filenames. After a patch by Ville.
4028 Win32 for filenames. After a patch by Ville.
4023
4029
4024 2004-07-17 Fernando Perez <fperez@colorado.edu>
4030 2004-07-17 Fernando Perez <fperez@colorado.edu>
4025
4031
4026 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4032 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4027 autocalling would be triggered for 'foo is bar' if foo is
4033 autocalling would be triggered for 'foo is bar' if foo is
4028 callable. I also cleaned up the autocall detection code to use a
4034 callable. I also cleaned up the autocall detection code to use a
4029 regexp, which is faster. Bug reported by Alexander Schmolck.
4035 regexp, which is faster. Bug reported by Alexander Schmolck.
4030
4036
4031 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4037 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4032 '?' in them would confuse the help system. Reported by Alex
4038 '?' in them would confuse the help system. Reported by Alex
4033 Schmolck.
4039 Schmolck.
4034
4040
4035 2004-07-16 Fernando Perez <fperez@colorado.edu>
4041 2004-07-16 Fernando Perez <fperez@colorado.edu>
4036
4042
4037 * IPython/GnuplotInteractive.py (__all__): added plot2.
4043 * IPython/GnuplotInteractive.py (__all__): added plot2.
4038
4044
4039 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4045 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4040 plotting dictionaries, lists or tuples of 1d arrays.
4046 plotting dictionaries, lists or tuples of 1d arrays.
4041
4047
4042 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4048 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4043 optimizations.
4049 optimizations.
4044
4050
4045 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4051 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4046 the information which was there from Janko's original IPP code:
4052 the information which was there from Janko's original IPP code:
4047
4053
4048 03.05.99 20:53 porto.ifm.uni-kiel.de
4054 03.05.99 20:53 porto.ifm.uni-kiel.de
4049 --Started changelog.
4055 --Started changelog.
4050 --make clear do what it say it does
4056 --make clear do what it say it does
4051 --added pretty output of lines from inputcache
4057 --added pretty output of lines from inputcache
4052 --Made Logger a mixin class, simplifies handling of switches
4058 --Made Logger a mixin class, simplifies handling of switches
4053 --Added own completer class. .string<TAB> expands to last history
4059 --Added own completer class. .string<TAB> expands to last history
4054 line which starts with string. The new expansion is also present
4060 line which starts with string. The new expansion is also present
4055 with Ctrl-r from the readline library. But this shows, who this
4061 with Ctrl-r from the readline library. But this shows, who this
4056 can be done for other cases.
4062 can be done for other cases.
4057 --Added convention that all shell functions should accept a
4063 --Added convention that all shell functions should accept a
4058 parameter_string This opens the door for different behaviour for
4064 parameter_string This opens the door for different behaviour for
4059 each function. @cd is a good example of this.
4065 each function. @cd is a good example of this.
4060
4066
4061 04.05.99 12:12 porto.ifm.uni-kiel.de
4067 04.05.99 12:12 porto.ifm.uni-kiel.de
4062 --added logfile rotation
4068 --added logfile rotation
4063 --added new mainloop method which freezes first the namespace
4069 --added new mainloop method which freezes first the namespace
4064
4070
4065 07.05.99 21:24 porto.ifm.uni-kiel.de
4071 07.05.99 21:24 porto.ifm.uni-kiel.de
4066 --added the docreader classes. Now there is a help system.
4072 --added the docreader classes. Now there is a help system.
4067 -This is only a first try. Currently it's not easy to put new
4073 -This is only a first try. Currently it's not easy to put new
4068 stuff in the indices. But this is the way to go. Info would be
4074 stuff in the indices. But this is the way to go. Info would be
4069 better, but HTML is every where and not everybody has an info
4075 better, but HTML is every where and not everybody has an info
4070 system installed and it's not so easy to change html-docs to info.
4076 system installed and it's not so easy to change html-docs to info.
4071 --added global logfile option
4077 --added global logfile option
4072 --there is now a hook for object inspection method pinfo needs to
4078 --there is now a hook for object inspection method pinfo needs to
4073 be provided for this. Can be reached by two '??'.
4079 be provided for this. Can be reached by two '??'.
4074
4080
4075 08.05.99 20:51 porto.ifm.uni-kiel.de
4081 08.05.99 20:51 porto.ifm.uni-kiel.de
4076 --added a README
4082 --added a README
4077 --bug in rc file. Something has changed so functions in the rc
4083 --bug in rc file. Something has changed so functions in the rc
4078 file need to reference the shell and not self. Not clear if it's a
4084 file need to reference the shell and not self. Not clear if it's a
4079 bug or feature.
4085 bug or feature.
4080 --changed rc file for new behavior
4086 --changed rc file for new behavior
4081
4087
4082 2004-07-15 Fernando Perez <fperez@colorado.edu>
4088 2004-07-15 Fernando Perez <fperez@colorado.edu>
4083
4089
4084 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4090 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4085 cache was falling out of sync in bizarre manners when multi-line
4091 cache was falling out of sync in bizarre manners when multi-line
4086 input was present. Minor optimizations and cleanup.
4092 input was present. Minor optimizations and cleanup.
4087
4093
4088 (Logger): Remove old Changelog info for cleanup. This is the
4094 (Logger): Remove old Changelog info for cleanup. This is the
4089 information which was there from Janko's original code:
4095 information which was there from Janko's original code:
4090
4096
4091 Changes to Logger: - made the default log filename a parameter
4097 Changes to Logger: - made the default log filename a parameter
4092
4098
4093 - put a check for lines beginning with !@? in log(). Needed
4099 - put a check for lines beginning with !@? in log(). Needed
4094 (even if the handlers properly log their lines) for mid-session
4100 (even if the handlers properly log their lines) for mid-session
4095 logging activation to work properly. Without this, lines logged
4101 logging activation to work properly. Without this, lines logged
4096 in mid session, which get read from the cache, would end up
4102 in mid session, which get read from the cache, would end up
4097 'bare' (with !@? in the open) in the log. Now they are caught
4103 'bare' (with !@? in the open) in the log. Now they are caught
4098 and prepended with a #.
4104 and prepended with a #.
4099
4105
4100 * IPython/iplib.py (InteractiveShell.init_readline): added check
4106 * IPython/iplib.py (InteractiveShell.init_readline): added check
4101 in case MagicCompleter fails to be defined, so we don't crash.
4107 in case MagicCompleter fails to be defined, so we don't crash.
4102
4108
4103 2004-07-13 Fernando Perez <fperez@colorado.edu>
4109 2004-07-13 Fernando Perez <fperez@colorado.edu>
4104
4110
4105 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4111 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4106 of EPS if the requested filename ends in '.eps'.
4112 of EPS if the requested filename ends in '.eps'.
4107
4113
4108 2004-07-04 Fernando Perez <fperez@colorado.edu>
4114 2004-07-04 Fernando Perez <fperez@colorado.edu>
4109
4115
4110 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4116 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4111 escaping of quotes when calling the shell.
4117 escaping of quotes when calling the shell.
4112
4118
4113 2004-07-02 Fernando Perez <fperez@colorado.edu>
4119 2004-07-02 Fernando Perez <fperez@colorado.edu>
4114
4120
4115 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4121 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4116 gettext not working because we were clobbering '_'. Fixes
4122 gettext not working because we were clobbering '_'. Fixes
4117 http://www.scipy.net/roundup/ipython/issue6.
4123 http://www.scipy.net/roundup/ipython/issue6.
4118
4124
4119 2004-07-01 Fernando Perez <fperez@colorado.edu>
4125 2004-07-01 Fernando Perez <fperez@colorado.edu>
4120
4126
4121 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4127 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4122 into @cd. Patch by Ville.
4128 into @cd. Patch by Ville.
4123
4129
4124 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4130 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4125 new function to store things after ipmaker runs. Patch by Ville.
4131 new function to store things after ipmaker runs. Patch by Ville.
4126 Eventually this will go away once ipmaker is removed and the class
4132 Eventually this will go away once ipmaker is removed and the class
4127 gets cleaned up, but for now it's ok. Key functionality here is
4133 gets cleaned up, but for now it's ok. Key functionality here is
4128 the addition of the persistent storage mechanism, a dict for
4134 the addition of the persistent storage mechanism, a dict for
4129 keeping data across sessions (for now just bookmarks, but more can
4135 keeping data across sessions (for now just bookmarks, but more can
4130 be implemented later).
4136 be implemented later).
4131
4137
4132 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4138 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4133 persistent across sections. Patch by Ville, I modified it
4139 persistent across sections. Patch by Ville, I modified it
4134 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4140 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4135 added a '-l' option to list all bookmarks.
4141 added a '-l' option to list all bookmarks.
4136
4142
4137 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4143 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4138 center for cleanup. Registered with atexit.register(). I moved
4144 center for cleanup. Registered with atexit.register(). I moved
4139 here the old exit_cleanup(). After a patch by Ville.
4145 here the old exit_cleanup(). After a patch by Ville.
4140
4146
4141 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4147 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4142 characters in the hacked shlex_split for python 2.2.
4148 characters in the hacked shlex_split for python 2.2.
4143
4149
4144 * IPython/iplib.py (file_matches): more fixes to filenames with
4150 * IPython/iplib.py (file_matches): more fixes to filenames with
4145 whitespace in them. It's not perfect, but limitations in python's
4151 whitespace in them. It's not perfect, but limitations in python's
4146 readline make it impossible to go further.
4152 readline make it impossible to go further.
4147
4153
4148 2004-06-29 Fernando Perez <fperez@colorado.edu>
4154 2004-06-29 Fernando Perez <fperez@colorado.edu>
4149
4155
4150 * IPython/iplib.py (file_matches): escape whitespace correctly in
4156 * IPython/iplib.py (file_matches): escape whitespace correctly in
4151 filename completions. Bug reported by Ville.
4157 filename completions. Bug reported by Ville.
4152
4158
4153 2004-06-28 Fernando Perez <fperez@colorado.edu>
4159 2004-06-28 Fernando Perez <fperez@colorado.edu>
4154
4160
4155 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4161 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4156 the history file will be called 'history-PROFNAME' (or just
4162 the history file will be called 'history-PROFNAME' (or just
4157 'history' if no profile is loaded). I was getting annoyed at
4163 'history' if no profile is loaded). I was getting annoyed at
4158 getting my Numerical work history clobbered by pysh sessions.
4164 getting my Numerical work history clobbered by pysh sessions.
4159
4165
4160 * IPython/iplib.py (InteractiveShell.__init__): Internal
4166 * IPython/iplib.py (InteractiveShell.__init__): Internal
4161 getoutputerror() function so that we can honor the system_verbose
4167 getoutputerror() function so that we can honor the system_verbose
4162 flag for _all_ system calls. I also added escaping of #
4168 flag for _all_ system calls. I also added escaping of #
4163 characters here to avoid confusing Itpl.
4169 characters here to avoid confusing Itpl.
4164
4170
4165 * IPython/Magic.py (shlex_split): removed call to shell in
4171 * IPython/Magic.py (shlex_split): removed call to shell in
4166 parse_options and replaced it with shlex.split(). The annoying
4172 parse_options and replaced it with shlex.split(). The annoying
4167 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4173 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4168 to backport it from 2.3, with several frail hacks (the shlex
4174 to backport it from 2.3, with several frail hacks (the shlex
4169 module is rather limited in 2.2). Thanks to a suggestion by Ville
4175 module is rather limited in 2.2). Thanks to a suggestion by Ville
4170 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4176 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4171 problem.
4177 problem.
4172
4178
4173 (Magic.magic_system_verbose): new toggle to print the actual
4179 (Magic.magic_system_verbose): new toggle to print the actual
4174 system calls made by ipython. Mainly for debugging purposes.
4180 system calls made by ipython. Mainly for debugging purposes.
4175
4181
4176 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4182 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4177 doesn't support persistence. Reported (and fix suggested) by
4183 doesn't support persistence. Reported (and fix suggested) by
4178 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4184 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4179
4185
4180 2004-06-26 Fernando Perez <fperez@colorado.edu>
4186 2004-06-26 Fernando Perez <fperez@colorado.edu>
4181
4187
4182 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4188 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4183 continue prompts.
4189 continue prompts.
4184
4190
4185 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4191 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4186 function (basically a big docstring) and a few more things here to
4192 function (basically a big docstring) and a few more things here to
4187 speedup startup. pysh.py is now very lightweight. We want because
4193 speedup startup. pysh.py is now very lightweight. We want because
4188 it gets execfile'd, while InterpreterExec gets imported, so
4194 it gets execfile'd, while InterpreterExec gets imported, so
4189 byte-compilation saves time.
4195 byte-compilation saves time.
4190
4196
4191 2004-06-25 Fernando Perez <fperez@colorado.edu>
4197 2004-06-25 Fernando Perez <fperez@colorado.edu>
4192
4198
4193 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4199 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4194 -NUM', which was recently broken.
4200 -NUM', which was recently broken.
4195
4201
4196 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4202 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4197 in multi-line input (but not !!, which doesn't make sense there).
4203 in multi-line input (but not !!, which doesn't make sense there).
4198
4204
4199 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4205 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4200 It's just too useful, and people can turn it off in the less
4206 It's just too useful, and people can turn it off in the less
4201 common cases where it's a problem.
4207 common cases where it's a problem.
4202
4208
4203 2004-06-24 Fernando Perez <fperez@colorado.edu>
4209 2004-06-24 Fernando Perez <fperez@colorado.edu>
4204
4210
4205 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4211 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4206 special syntaxes (like alias calling) is now allied in multi-line
4212 special syntaxes (like alias calling) is now allied in multi-line
4207 input. This is still _very_ experimental, but it's necessary for
4213 input. This is still _very_ experimental, but it's necessary for
4208 efficient shell usage combining python looping syntax with system
4214 efficient shell usage combining python looping syntax with system
4209 calls. For now it's restricted to aliases, I don't think it
4215 calls. For now it's restricted to aliases, I don't think it
4210 really even makes sense to have this for magics.
4216 really even makes sense to have this for magics.
4211
4217
4212 2004-06-23 Fernando Perez <fperez@colorado.edu>
4218 2004-06-23 Fernando Perez <fperez@colorado.edu>
4213
4219
4214 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4220 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4215 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4221 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4216
4222
4217 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4223 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4218 extensions under Windows (after code sent by Gary Bishop). The
4224 extensions under Windows (after code sent by Gary Bishop). The
4219 extensions considered 'executable' are stored in IPython's rc
4225 extensions considered 'executable' are stored in IPython's rc
4220 structure as win_exec_ext.
4226 structure as win_exec_ext.
4221
4227
4222 * IPython/genutils.py (shell): new function, like system() but
4228 * IPython/genutils.py (shell): new function, like system() but
4223 without return value. Very useful for interactive shell work.
4229 without return value. Very useful for interactive shell work.
4224
4230
4225 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4231 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4226 delete aliases.
4232 delete aliases.
4227
4233
4228 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4234 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4229 sure that the alias table doesn't contain python keywords.
4235 sure that the alias table doesn't contain python keywords.
4230
4236
4231 2004-06-21 Fernando Perez <fperez@colorado.edu>
4237 2004-06-21 Fernando Perez <fperez@colorado.edu>
4232
4238
4233 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4239 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4234 non-existent items are found in $PATH. Reported by Thorsten.
4240 non-existent items are found in $PATH. Reported by Thorsten.
4235
4241
4236 2004-06-20 Fernando Perez <fperez@colorado.edu>
4242 2004-06-20 Fernando Perez <fperez@colorado.edu>
4237
4243
4238 * IPython/iplib.py (complete): modified the completer so that the
4244 * IPython/iplib.py (complete): modified the completer so that the
4239 order of priorities can be easily changed at runtime.
4245 order of priorities can be easily changed at runtime.
4240
4246
4241 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4247 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4242 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4248 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4243
4249
4244 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4250 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4245 expand Python variables prepended with $ in all system calls. The
4251 expand Python variables prepended with $ in all system calls. The
4246 same was done to InteractiveShell.handle_shell_escape. Now all
4252 same was done to InteractiveShell.handle_shell_escape. Now all
4247 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4253 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4248 expansion of python variables and expressions according to the
4254 expansion of python variables and expressions according to the
4249 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4255 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4250
4256
4251 Though PEP-215 has been rejected, a similar (but simpler) one
4257 Though PEP-215 has been rejected, a similar (but simpler) one
4252 seems like it will go into Python 2.4, PEP-292 -
4258 seems like it will go into Python 2.4, PEP-292 -
4253 http://www.python.org/peps/pep-0292.html.
4259 http://www.python.org/peps/pep-0292.html.
4254
4260
4255 I'll keep the full syntax of PEP-215, since IPython has since the
4261 I'll keep the full syntax of PEP-215, since IPython has since the
4256 start used Ka-Ping Yee's reference implementation discussed there
4262 start used Ka-Ping Yee's reference implementation discussed there
4257 (Itpl), and I actually like the powerful semantics it offers.
4263 (Itpl), and I actually like the powerful semantics it offers.
4258
4264
4259 In order to access normal shell variables, the $ has to be escaped
4265 In order to access normal shell variables, the $ has to be escaped
4260 via an extra $. For example:
4266 via an extra $. For example:
4261
4267
4262 In [7]: PATH='a python variable'
4268 In [7]: PATH='a python variable'
4263
4269
4264 In [8]: !echo $PATH
4270 In [8]: !echo $PATH
4265 a python variable
4271 a python variable
4266
4272
4267 In [9]: !echo $$PATH
4273 In [9]: !echo $$PATH
4268 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4274 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4269
4275
4270 (Magic.parse_options): escape $ so the shell doesn't evaluate
4276 (Magic.parse_options): escape $ so the shell doesn't evaluate
4271 things prematurely.
4277 things prematurely.
4272
4278
4273 * IPython/iplib.py (InteractiveShell.call_alias): added the
4279 * IPython/iplib.py (InteractiveShell.call_alias): added the
4274 ability for aliases to expand python variables via $.
4280 ability for aliases to expand python variables via $.
4275
4281
4276 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4282 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4277 system, now there's a @rehash/@rehashx pair of magics. These work
4283 system, now there's a @rehash/@rehashx pair of magics. These work
4278 like the csh rehash command, and can be invoked at any time. They
4284 like the csh rehash command, and can be invoked at any time. They
4279 build a table of aliases to everything in the user's $PATH
4285 build a table of aliases to everything in the user's $PATH
4280 (@rehash uses everything, @rehashx is slower but only adds
4286 (@rehash uses everything, @rehashx is slower but only adds
4281 executable files). With this, the pysh.py-based shell profile can
4287 executable files). With this, the pysh.py-based shell profile can
4282 now simply call rehash upon startup, and full access to all
4288 now simply call rehash upon startup, and full access to all
4283 programs in the user's path is obtained.
4289 programs in the user's path is obtained.
4284
4290
4285 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4291 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4286 functionality is now fully in place. I removed the old dynamic
4292 functionality is now fully in place. I removed the old dynamic
4287 code generation based approach, in favor of a much lighter one
4293 code generation based approach, in favor of a much lighter one
4288 based on a simple dict. The advantage is that this allows me to
4294 based on a simple dict. The advantage is that this allows me to
4289 now have thousands of aliases with negligible cost (unthinkable
4295 now have thousands of aliases with negligible cost (unthinkable
4290 with the old system).
4296 with the old system).
4291
4297
4292 2004-06-19 Fernando Perez <fperez@colorado.edu>
4298 2004-06-19 Fernando Perez <fperez@colorado.edu>
4293
4299
4294 * IPython/iplib.py (__init__): extended MagicCompleter class to
4300 * IPython/iplib.py (__init__): extended MagicCompleter class to
4295 also complete (last in priority) on user aliases.
4301 also complete (last in priority) on user aliases.
4296
4302
4297 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4303 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4298 call to eval.
4304 call to eval.
4299 (ItplNS.__init__): Added a new class which functions like Itpl,
4305 (ItplNS.__init__): Added a new class which functions like Itpl,
4300 but allows configuring the namespace for the evaluation to occur
4306 but allows configuring the namespace for the evaluation to occur
4301 in.
4307 in.
4302
4308
4303 2004-06-18 Fernando Perez <fperez@colorado.edu>
4309 2004-06-18 Fernando Perez <fperez@colorado.edu>
4304
4310
4305 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4311 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4306 better message when 'exit' or 'quit' are typed (a common newbie
4312 better message when 'exit' or 'quit' are typed (a common newbie
4307 confusion).
4313 confusion).
4308
4314
4309 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4315 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4310 check for Windows users.
4316 check for Windows users.
4311
4317
4312 * IPython/iplib.py (InteractiveShell.user_setup): removed
4318 * IPython/iplib.py (InteractiveShell.user_setup): removed
4313 disabling of colors for Windows. I'll test at runtime and issue a
4319 disabling of colors for Windows. I'll test at runtime and issue a
4314 warning if Gary's readline isn't found, as to nudge users to
4320 warning if Gary's readline isn't found, as to nudge users to
4315 download it.
4321 download it.
4316
4322
4317 2004-06-16 Fernando Perez <fperez@colorado.edu>
4323 2004-06-16 Fernando Perez <fperez@colorado.edu>
4318
4324
4319 * IPython/genutils.py (Stream.__init__): changed to print errors
4325 * IPython/genutils.py (Stream.__init__): changed to print errors
4320 to sys.stderr. I had a circular dependency here. Now it's
4326 to sys.stderr. I had a circular dependency here. Now it's
4321 possible to run ipython as IDLE's shell (consider this pre-alpha,
4327 possible to run ipython as IDLE's shell (consider this pre-alpha,
4322 since true stdout things end up in the starting terminal instead
4328 since true stdout things end up in the starting terminal instead
4323 of IDLE's out).
4329 of IDLE's out).
4324
4330
4325 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4331 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4326 users who haven't # updated their prompt_in2 definitions. Remove
4332 users who haven't # updated their prompt_in2 definitions. Remove
4327 eventually.
4333 eventually.
4328 (multiple_replace): added credit to original ASPN recipe.
4334 (multiple_replace): added credit to original ASPN recipe.
4329
4335
4330 2004-06-15 Fernando Perez <fperez@colorado.edu>
4336 2004-06-15 Fernando Perez <fperez@colorado.edu>
4331
4337
4332 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4338 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4333 list of auto-defined aliases.
4339 list of auto-defined aliases.
4334
4340
4335 2004-06-13 Fernando Perez <fperez@colorado.edu>
4341 2004-06-13 Fernando Perez <fperez@colorado.edu>
4336
4342
4337 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4343 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4338 install was really requested (so setup.py can be used for other
4344 install was really requested (so setup.py can be used for other
4339 things under Windows).
4345 things under Windows).
4340
4346
4341 2004-06-10 Fernando Perez <fperez@colorado.edu>
4347 2004-06-10 Fernando Perez <fperez@colorado.edu>
4342
4348
4343 * IPython/Logger.py (Logger.create_log): Manually remove any old
4349 * IPython/Logger.py (Logger.create_log): Manually remove any old
4344 backup, since os.remove may fail under Windows. Fixes bug
4350 backup, since os.remove may fail under Windows. Fixes bug
4345 reported by Thorsten.
4351 reported by Thorsten.
4346
4352
4347 2004-06-09 Fernando Perez <fperez@colorado.edu>
4353 2004-06-09 Fernando Perez <fperez@colorado.edu>
4348
4354
4349 * examples/example-embed.py: fixed all references to %n (replaced
4355 * examples/example-embed.py: fixed all references to %n (replaced
4350 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4356 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4351 for all examples and the manual as well.
4357 for all examples and the manual as well.
4352
4358
4353 2004-06-08 Fernando Perez <fperez@colorado.edu>
4359 2004-06-08 Fernando Perez <fperez@colorado.edu>
4354
4360
4355 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4361 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4356 alignment and color management. All 3 prompt subsystems now
4362 alignment and color management. All 3 prompt subsystems now
4357 inherit from BasePrompt.
4363 inherit from BasePrompt.
4358
4364
4359 * tools/release: updates for windows installer build and tag rpms
4365 * tools/release: updates for windows installer build and tag rpms
4360 with python version (since paths are fixed).
4366 with python version (since paths are fixed).
4361
4367
4362 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4368 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4363 which will become eventually obsolete. Also fixed the default
4369 which will become eventually obsolete. Also fixed the default
4364 prompt_in2 to use \D, so at least new users start with the correct
4370 prompt_in2 to use \D, so at least new users start with the correct
4365 defaults.
4371 defaults.
4366 WARNING: Users with existing ipythonrc files will need to apply
4372 WARNING: Users with existing ipythonrc files will need to apply
4367 this fix manually!
4373 this fix manually!
4368
4374
4369 * setup.py: make windows installer (.exe). This is finally the
4375 * setup.py: make windows installer (.exe). This is finally the
4370 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4376 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4371 which I hadn't included because it required Python 2.3 (or recent
4377 which I hadn't included because it required Python 2.3 (or recent
4372 distutils).
4378 distutils).
4373
4379
4374 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4380 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4375 usage of new '\D' escape.
4381 usage of new '\D' escape.
4376
4382
4377 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4383 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4378 lacks os.getuid())
4384 lacks os.getuid())
4379 (CachedOutput.set_colors): Added the ability to turn coloring
4385 (CachedOutput.set_colors): Added the ability to turn coloring
4380 on/off with @colors even for manually defined prompt colors. It
4386 on/off with @colors even for manually defined prompt colors. It
4381 uses a nasty global, but it works safely and via the generic color
4387 uses a nasty global, but it works safely and via the generic color
4382 handling mechanism.
4388 handling mechanism.
4383 (Prompt2.__init__): Introduced new escape '\D' for continuation
4389 (Prompt2.__init__): Introduced new escape '\D' for continuation
4384 prompts. It represents the counter ('\#') as dots.
4390 prompts. It represents the counter ('\#') as dots.
4385 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4391 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4386 need to update their ipythonrc files and replace '%n' with '\D' in
4392 need to update their ipythonrc files and replace '%n' with '\D' in
4387 their prompt_in2 settings everywhere. Sorry, but there's
4393 their prompt_in2 settings everywhere. Sorry, but there's
4388 otherwise no clean way to get all prompts to properly align. The
4394 otherwise no clean way to get all prompts to properly align. The
4389 ipythonrc shipped with IPython has been updated.
4395 ipythonrc shipped with IPython has been updated.
4390
4396
4391 2004-06-07 Fernando Perez <fperez@colorado.edu>
4397 2004-06-07 Fernando Perez <fperez@colorado.edu>
4392
4398
4393 * setup.py (isfile): Pass local_icons option to latex2html, so the
4399 * setup.py (isfile): Pass local_icons option to latex2html, so the
4394 resulting HTML file is self-contained. Thanks to
4400 resulting HTML file is self-contained. Thanks to
4395 dryice-AT-liu.com.cn for the tip.
4401 dryice-AT-liu.com.cn for the tip.
4396
4402
4397 * pysh.py: I created a new profile 'shell', which implements a
4403 * pysh.py: I created a new profile 'shell', which implements a
4398 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4404 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4399 system shell, nor will it become one anytime soon. It's mainly
4405 system shell, nor will it become one anytime soon. It's mainly
4400 meant to illustrate the use of the new flexible bash-like prompts.
4406 meant to illustrate the use of the new flexible bash-like prompts.
4401 I guess it could be used by hardy souls for true shell management,
4407 I guess it could be used by hardy souls for true shell management,
4402 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4408 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4403 profile. This uses the InterpreterExec extension provided by
4409 profile. This uses the InterpreterExec extension provided by
4404 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4410 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4405
4411
4406 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4412 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4407 auto-align itself with the length of the previous input prompt
4413 auto-align itself with the length of the previous input prompt
4408 (taking into account the invisible color escapes).
4414 (taking into account the invisible color escapes).
4409 (CachedOutput.__init__): Large restructuring of this class. Now
4415 (CachedOutput.__init__): Large restructuring of this class. Now
4410 all three prompts (primary1, primary2, output) are proper objects,
4416 all three prompts (primary1, primary2, output) are proper objects,
4411 managed by the 'parent' CachedOutput class. The code is still a
4417 managed by the 'parent' CachedOutput class. The code is still a
4412 bit hackish (all prompts share state via a pointer to the cache),
4418 bit hackish (all prompts share state via a pointer to the cache),
4413 but it's overall far cleaner than before.
4419 but it's overall far cleaner than before.
4414
4420
4415 * IPython/genutils.py (getoutputerror): modified to add verbose,
4421 * IPython/genutils.py (getoutputerror): modified to add verbose,
4416 debug and header options. This makes the interface of all getout*
4422 debug and header options. This makes the interface of all getout*
4417 functions uniform.
4423 functions uniform.
4418 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4424 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4419
4425
4420 * IPython/Magic.py (Magic.default_option): added a function to
4426 * IPython/Magic.py (Magic.default_option): added a function to
4421 allow registering default options for any magic command. This
4427 allow registering default options for any magic command. This
4422 makes it easy to have profiles which customize the magics globally
4428 makes it easy to have profiles which customize the magics globally
4423 for a certain use. The values set through this function are
4429 for a certain use. The values set through this function are
4424 picked up by the parse_options() method, which all magics should
4430 picked up by the parse_options() method, which all magics should
4425 use to parse their options.
4431 use to parse their options.
4426
4432
4427 * IPython/genutils.py (warn): modified the warnings framework to
4433 * IPython/genutils.py (warn): modified the warnings framework to
4428 use the Term I/O class. I'm trying to slowly unify all of
4434 use the Term I/O class. I'm trying to slowly unify all of
4429 IPython's I/O operations to pass through Term.
4435 IPython's I/O operations to pass through Term.
4430
4436
4431 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4437 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4432 the secondary prompt to correctly match the length of the primary
4438 the secondary prompt to correctly match the length of the primary
4433 one for any prompt. Now multi-line code will properly line up
4439 one for any prompt. Now multi-line code will properly line up
4434 even for path dependent prompts, such as the new ones available
4440 even for path dependent prompts, such as the new ones available
4435 via the prompt_specials.
4441 via the prompt_specials.
4436
4442
4437 2004-06-06 Fernando Perez <fperez@colorado.edu>
4443 2004-06-06 Fernando Perez <fperez@colorado.edu>
4438
4444
4439 * IPython/Prompts.py (prompt_specials): Added the ability to have
4445 * IPython/Prompts.py (prompt_specials): Added the ability to have
4440 bash-like special sequences in the prompts, which get
4446 bash-like special sequences in the prompts, which get
4441 automatically expanded. Things like hostname, current working
4447 automatically expanded. Things like hostname, current working
4442 directory and username are implemented already, but it's easy to
4448 directory and username are implemented already, but it's easy to
4443 add more in the future. Thanks to a patch by W.J. van der Laan
4449 add more in the future. Thanks to a patch by W.J. van der Laan
4444 <gnufnork-AT-hetdigitalegat.nl>
4450 <gnufnork-AT-hetdigitalegat.nl>
4445 (prompt_specials): Added color support for prompt strings, so
4451 (prompt_specials): Added color support for prompt strings, so
4446 users can define arbitrary color setups for their prompts.
4452 users can define arbitrary color setups for their prompts.
4447
4453
4448 2004-06-05 Fernando Perez <fperez@colorado.edu>
4454 2004-06-05 Fernando Perez <fperez@colorado.edu>
4449
4455
4450 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4456 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4451 code to load Gary Bishop's readline and configure it
4457 code to load Gary Bishop's readline and configure it
4452 automatically. Thanks to Gary for help on this.
4458 automatically. Thanks to Gary for help on this.
4453
4459
4454 2004-06-01 Fernando Perez <fperez@colorado.edu>
4460 2004-06-01 Fernando Perez <fperez@colorado.edu>
4455
4461
4456 * IPython/Logger.py (Logger.create_log): fix bug for logging
4462 * IPython/Logger.py (Logger.create_log): fix bug for logging
4457 with no filename (previous fix was incomplete).
4463 with no filename (previous fix was incomplete).
4458
4464
4459 2004-05-25 Fernando Perez <fperez@colorado.edu>
4465 2004-05-25 Fernando Perez <fperez@colorado.edu>
4460
4466
4461 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4467 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4462 parens would get passed to the shell.
4468 parens would get passed to the shell.
4463
4469
4464 2004-05-20 Fernando Perez <fperez@colorado.edu>
4470 2004-05-20 Fernando Perez <fperez@colorado.edu>
4465
4471
4466 * IPython/Magic.py (Magic.magic_prun): changed default profile
4472 * IPython/Magic.py (Magic.magic_prun): changed default profile
4467 sort order to 'time' (the more common profiling need).
4473 sort order to 'time' (the more common profiling need).
4468
4474
4469 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4475 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4470 so that source code shown is guaranteed in sync with the file on
4476 so that source code shown is guaranteed in sync with the file on
4471 disk (also changed in psource). Similar fix to the one for
4477 disk (also changed in psource). Similar fix to the one for
4472 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4478 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4473 <yann.ledu-AT-noos.fr>.
4479 <yann.ledu-AT-noos.fr>.
4474
4480
4475 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4481 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4476 with a single option would not be correctly parsed. Closes
4482 with a single option would not be correctly parsed. Closes
4477 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4483 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4478 introduced in 0.6.0 (on 2004-05-06).
4484 introduced in 0.6.0 (on 2004-05-06).
4479
4485
4480 2004-05-13 *** Released version 0.6.0
4486 2004-05-13 *** Released version 0.6.0
4481
4487
4482 2004-05-13 Fernando Perez <fperez@colorado.edu>
4488 2004-05-13 Fernando Perez <fperez@colorado.edu>
4483
4489
4484 * debian/: Added debian/ directory to CVS, so that debian support
4490 * debian/: Added debian/ directory to CVS, so that debian support
4485 is publicly accessible. The debian package is maintained by Jack
4491 is publicly accessible. The debian package is maintained by Jack
4486 Moffit <jack-AT-xiph.org>.
4492 Moffit <jack-AT-xiph.org>.
4487
4493
4488 * Documentation: included the notes about an ipython-based system
4494 * Documentation: included the notes about an ipython-based system
4489 shell (the hypothetical 'pysh') into the new_design.pdf document,
4495 shell (the hypothetical 'pysh') into the new_design.pdf document,
4490 so that these ideas get distributed to users along with the
4496 so that these ideas get distributed to users along with the
4491 official documentation.
4497 official documentation.
4492
4498
4493 2004-05-10 Fernando Perez <fperez@colorado.edu>
4499 2004-05-10 Fernando Perez <fperez@colorado.edu>
4494
4500
4495 * IPython/Logger.py (Logger.create_log): fix recently introduced
4501 * IPython/Logger.py (Logger.create_log): fix recently introduced
4496 bug (misindented line) where logstart would fail when not given an
4502 bug (misindented line) where logstart would fail when not given an
4497 explicit filename.
4503 explicit filename.
4498
4504
4499 2004-05-09 Fernando Perez <fperez@colorado.edu>
4505 2004-05-09 Fernando Perez <fperez@colorado.edu>
4500
4506
4501 * IPython/Magic.py (Magic.parse_options): skip system call when
4507 * IPython/Magic.py (Magic.parse_options): skip system call when
4502 there are no options to look for. Faster, cleaner for the common
4508 there are no options to look for. Faster, cleaner for the common
4503 case.
4509 case.
4504
4510
4505 * Documentation: many updates to the manual: describing Windows
4511 * Documentation: many updates to the manual: describing Windows
4506 support better, Gnuplot updates, credits, misc small stuff. Also
4512 support better, Gnuplot updates, credits, misc small stuff. Also
4507 updated the new_design doc a bit.
4513 updated the new_design doc a bit.
4508
4514
4509 2004-05-06 *** Released version 0.6.0.rc1
4515 2004-05-06 *** Released version 0.6.0.rc1
4510
4516
4511 2004-05-06 Fernando Perez <fperez@colorado.edu>
4517 2004-05-06 Fernando Perez <fperez@colorado.edu>
4512
4518
4513 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4519 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4514 operations to use the vastly more efficient list/''.join() method.
4520 operations to use the vastly more efficient list/''.join() method.
4515 (FormattedTB.text): Fix
4521 (FormattedTB.text): Fix
4516 http://www.scipy.net/roundup/ipython/issue12 - exception source
4522 http://www.scipy.net/roundup/ipython/issue12 - exception source
4517 extract not updated after reload. Thanks to Mike Salib
4523 extract not updated after reload. Thanks to Mike Salib
4518 <msalib-AT-mit.edu> for pinning the source of the problem.
4524 <msalib-AT-mit.edu> for pinning the source of the problem.
4519 Fortunately, the solution works inside ipython and doesn't require
4525 Fortunately, the solution works inside ipython and doesn't require
4520 any changes to python proper.
4526 any changes to python proper.
4521
4527
4522 * IPython/Magic.py (Magic.parse_options): Improved to process the
4528 * IPython/Magic.py (Magic.parse_options): Improved to process the
4523 argument list as a true shell would (by actually using the
4529 argument list as a true shell would (by actually using the
4524 underlying system shell). This way, all @magics automatically get
4530 underlying system shell). This way, all @magics automatically get
4525 shell expansion for variables. Thanks to a comment by Alex
4531 shell expansion for variables. Thanks to a comment by Alex
4526 Schmolck.
4532 Schmolck.
4527
4533
4528 2004-04-04 Fernando Perez <fperez@colorado.edu>
4534 2004-04-04 Fernando Perez <fperez@colorado.edu>
4529
4535
4530 * IPython/iplib.py (InteractiveShell.interact): Added a special
4536 * IPython/iplib.py (InteractiveShell.interact): Added a special
4531 trap for a debugger quit exception, which is basically impossible
4537 trap for a debugger quit exception, which is basically impossible
4532 to handle by normal mechanisms, given what pdb does to the stack.
4538 to handle by normal mechanisms, given what pdb does to the stack.
4533 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4539 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
4534
4540
4535 2004-04-03 Fernando Perez <fperez@colorado.edu>
4541 2004-04-03 Fernando Perez <fperez@colorado.edu>
4536
4542
4537 * IPython/genutils.py (Term): Standardized the names of the Term
4543 * IPython/genutils.py (Term): Standardized the names of the Term
4538 class streams to cin/cout/cerr, following C++ naming conventions
4544 class streams to cin/cout/cerr, following C++ naming conventions
4539 (I can't use in/out/err because 'in' is not a valid attribute
4545 (I can't use in/out/err because 'in' is not a valid attribute
4540 name).
4546 name).
4541
4547
4542 * IPython/iplib.py (InteractiveShell.interact): don't increment
4548 * IPython/iplib.py (InteractiveShell.interact): don't increment
4543 the prompt if there's no user input. By Daniel 'Dang' Griffith
4549 the prompt if there's no user input. By Daniel 'Dang' Griffith
4544 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4550 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
4545 Francois Pinard.
4551 Francois Pinard.
4546
4552
4547 2004-04-02 Fernando Perez <fperez@colorado.edu>
4553 2004-04-02 Fernando Perez <fperez@colorado.edu>
4548
4554
4549 * IPython/genutils.py (Stream.__init__): Modified to survive at
4555 * IPython/genutils.py (Stream.__init__): Modified to survive at
4550 least importing in contexts where stdin/out/err aren't true file
4556 least importing in contexts where stdin/out/err aren't true file
4551 objects, such as PyCrust (they lack fileno() and mode). However,
4557 objects, such as PyCrust (they lack fileno() and mode). However,
4552 the recovery facilities which rely on these things existing will
4558 the recovery facilities which rely on these things existing will
4553 not work.
4559 not work.
4554
4560
4555 2004-04-01 Fernando Perez <fperez@colorado.edu>
4561 2004-04-01 Fernando Perez <fperez@colorado.edu>
4556
4562
4557 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4563 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
4558 use the new getoutputerror() function, so it properly
4564 use the new getoutputerror() function, so it properly
4559 distinguishes stdout/err.
4565 distinguishes stdout/err.
4560
4566
4561 * IPython/genutils.py (getoutputerror): added a function to
4567 * IPython/genutils.py (getoutputerror): added a function to
4562 capture separately the standard output and error of a command.
4568 capture separately the standard output and error of a command.
4563 After a comment from dang on the mailing lists. This code is
4569 After a comment from dang on the mailing lists. This code is
4564 basically a modified version of commands.getstatusoutput(), from
4570 basically a modified version of commands.getstatusoutput(), from
4565 the standard library.
4571 the standard library.
4566
4572
4567 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4573 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
4568 '!!' as a special syntax (shorthand) to access @sx.
4574 '!!' as a special syntax (shorthand) to access @sx.
4569
4575
4570 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4576 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
4571 command and return its output as a list split on '\n'.
4577 command and return its output as a list split on '\n'.
4572
4578
4573 2004-03-31 Fernando Perez <fperez@colorado.edu>
4579 2004-03-31 Fernando Perez <fperez@colorado.edu>
4574
4580
4575 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4581 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
4576 method to dictionaries used as FakeModule instances if they lack
4582 method to dictionaries used as FakeModule instances if they lack
4577 it. At least pydoc in python2.3 breaks for runtime-defined
4583 it. At least pydoc in python2.3 breaks for runtime-defined
4578 functions without this hack. At some point I need to _really_
4584 functions without this hack. At some point I need to _really_
4579 understand what FakeModule is doing, because it's a gross hack.
4585 understand what FakeModule is doing, because it's a gross hack.
4580 But it solves Arnd's problem for now...
4586 But it solves Arnd's problem for now...
4581
4587
4582 2004-02-27 Fernando Perez <fperez@colorado.edu>
4588 2004-02-27 Fernando Perez <fperez@colorado.edu>
4583
4589
4584 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4590 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
4585 mode would behave erratically. Also increased the number of
4591 mode would behave erratically. Also increased the number of
4586 possible logs in rotate mod to 999. Thanks to Rod Holland
4592 possible logs in rotate mod to 999. Thanks to Rod Holland
4587 <rhh@StructureLABS.com> for the report and fixes.
4593 <rhh@StructureLABS.com> for the report and fixes.
4588
4594
4589 2004-02-26 Fernando Perez <fperez@colorado.edu>
4595 2004-02-26 Fernando Perez <fperez@colorado.edu>
4590
4596
4591 * IPython/genutils.py (page): Check that the curses module really
4597 * IPython/genutils.py (page): Check that the curses module really
4592 has the initscr attribute before trying to use it. For some
4598 has the initscr attribute before trying to use it. For some
4593 reason, the Solaris curses module is missing this. I think this
4599 reason, the Solaris curses module is missing this. I think this
4594 should be considered a Solaris python bug, but I'm not sure.
4600 should be considered a Solaris python bug, but I'm not sure.
4595
4601
4596 2004-01-17 Fernando Perez <fperez@colorado.edu>
4602 2004-01-17 Fernando Perez <fperez@colorado.edu>
4597
4603
4598 * IPython/genutils.py (Stream.__init__): Changes to try to make
4604 * IPython/genutils.py (Stream.__init__): Changes to try to make
4599 ipython robust against stdin/out/err being closed by the user.
4605 ipython robust against stdin/out/err being closed by the user.
4600 This is 'user error' (and blocks a normal python session, at least
4606 This is 'user error' (and blocks a normal python session, at least
4601 the stdout case). However, Ipython should be able to survive such
4607 the stdout case). However, Ipython should be able to survive such
4602 instances of abuse as gracefully as possible. To simplify the
4608 instances of abuse as gracefully as possible. To simplify the
4603 coding and maintain compatibility with Gary Bishop's Term
4609 coding and maintain compatibility with Gary Bishop's Term
4604 contributions, I've made use of classmethods for this. I think
4610 contributions, I've made use of classmethods for this. I think
4605 this introduces a dependency on python 2.2.
4611 this introduces a dependency on python 2.2.
4606
4612
4607 2004-01-13 Fernando Perez <fperez@colorado.edu>
4613 2004-01-13 Fernando Perez <fperez@colorado.edu>
4608
4614
4609 * IPython/numutils.py (exp_safe): simplified the code a bit and
4615 * IPython/numutils.py (exp_safe): simplified the code a bit and
4610 removed the need for importing the kinds module altogether.
4616 removed the need for importing the kinds module altogether.
4611
4617
4612 2004-01-06 Fernando Perez <fperez@colorado.edu>
4618 2004-01-06 Fernando Perez <fperez@colorado.edu>
4613
4619
4614 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4620 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
4615 a magic function instead, after some community feedback. No
4621 a magic function instead, after some community feedback. No
4616 special syntax will exist for it, but its name is deliberately
4622 special syntax will exist for it, but its name is deliberately
4617 very short.
4623 very short.
4618
4624
4619 2003-12-20 Fernando Perez <fperez@colorado.edu>
4625 2003-12-20 Fernando Perez <fperez@colorado.edu>
4620
4626
4621 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4627 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
4622 new functionality, to automagically assign the result of a shell
4628 new functionality, to automagically assign the result of a shell
4623 command to a variable. I'll solicit some community feedback on
4629 command to a variable. I'll solicit some community feedback on
4624 this before making it permanent.
4630 this before making it permanent.
4625
4631
4626 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4632 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
4627 requested about callables for which inspect couldn't obtain a
4633 requested about callables for which inspect couldn't obtain a
4628 proper argspec. Thanks to a crash report sent by Etienne
4634 proper argspec. Thanks to a crash report sent by Etienne
4629 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4635 Posthumus <etienne-AT-apple01.cs.vu.nl>.
4630
4636
4631 2003-12-09 Fernando Perez <fperez@colorado.edu>
4637 2003-12-09 Fernando Perez <fperez@colorado.edu>
4632
4638
4633 * IPython/genutils.py (page): patch for the pager to work across
4639 * IPython/genutils.py (page): patch for the pager to work across
4634 various versions of Windows. By Gary Bishop.
4640 various versions of Windows. By Gary Bishop.
4635
4641
4636 2003-12-04 Fernando Perez <fperez@colorado.edu>
4642 2003-12-04 Fernando Perez <fperez@colorado.edu>
4637
4643
4638 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4644 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4639 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4645 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4640 While I tested this and it looks ok, there may still be corner
4646 While I tested this and it looks ok, there may still be corner
4641 cases I've missed.
4647 cases I've missed.
4642
4648
4643 2003-12-01 Fernando Perez <fperez@colorado.edu>
4649 2003-12-01 Fernando Perez <fperez@colorado.edu>
4644
4650
4645 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4651 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4646 where a line like 'p,q=1,2' would fail because the automagic
4652 where a line like 'p,q=1,2' would fail because the automagic
4647 system would be triggered for @p.
4653 system would be triggered for @p.
4648
4654
4649 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4655 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4650 cleanups, code unmodified.
4656 cleanups, code unmodified.
4651
4657
4652 * IPython/genutils.py (Term): added a class for IPython to handle
4658 * IPython/genutils.py (Term): added a class for IPython to handle
4653 output. In most cases it will just be a proxy for stdout/err, but
4659 output. In most cases it will just be a proxy for stdout/err, but
4654 having this allows modifications to be made for some platforms,
4660 having this allows modifications to be made for some platforms,
4655 such as handling color escapes under Windows. All of this code
4661 such as handling color escapes under Windows. All of this code
4656 was contributed by Gary Bishop, with minor modifications by me.
4662 was contributed by Gary Bishop, with minor modifications by me.
4657 The actual changes affect many files.
4663 The actual changes affect many files.
4658
4664
4659 2003-11-30 Fernando Perez <fperez@colorado.edu>
4665 2003-11-30 Fernando Perez <fperez@colorado.edu>
4660
4666
4661 * IPython/iplib.py (file_matches): new completion code, courtesy
4667 * IPython/iplib.py (file_matches): new completion code, courtesy
4662 of Jeff Collins. This enables filename completion again under
4668 of Jeff Collins. This enables filename completion again under
4663 python 2.3, which disabled it at the C level.
4669 python 2.3, which disabled it at the C level.
4664
4670
4665 2003-11-11 Fernando Perez <fperez@colorado.edu>
4671 2003-11-11 Fernando Perez <fperez@colorado.edu>
4666
4672
4667 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4673 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4668 for Numeric.array(map(...)), but often convenient.
4674 for Numeric.array(map(...)), but often convenient.
4669
4675
4670 2003-11-05 Fernando Perez <fperez@colorado.edu>
4676 2003-11-05 Fernando Perez <fperez@colorado.edu>
4671
4677
4672 * IPython/numutils.py (frange): Changed a call from int() to
4678 * IPython/numutils.py (frange): Changed a call from int() to
4673 int(round()) to prevent a problem reported with arange() in the
4679 int(round()) to prevent a problem reported with arange() in the
4674 numpy list.
4680 numpy list.
4675
4681
4676 2003-10-06 Fernando Perez <fperez@colorado.edu>
4682 2003-10-06 Fernando Perez <fperez@colorado.edu>
4677
4683
4678 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4684 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4679 prevent crashes if sys lacks an argv attribute (it happens with
4685 prevent crashes if sys lacks an argv attribute (it happens with
4680 embedded interpreters which build a bare-bones sys module).
4686 embedded interpreters which build a bare-bones sys module).
4681 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4687 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4682
4688
4683 2003-09-24 Fernando Perez <fperez@colorado.edu>
4689 2003-09-24 Fernando Perez <fperez@colorado.edu>
4684
4690
4685 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4691 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4686 to protect against poorly written user objects where __getattr__
4692 to protect against poorly written user objects where __getattr__
4687 raises exceptions other than AttributeError. Thanks to a bug
4693 raises exceptions other than AttributeError. Thanks to a bug
4688 report by Oliver Sander <osander-AT-gmx.de>.
4694 report by Oliver Sander <osander-AT-gmx.de>.
4689
4695
4690 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4696 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4691 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4697 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4692
4698
4693 2003-09-09 Fernando Perez <fperez@colorado.edu>
4699 2003-09-09 Fernando Perez <fperez@colorado.edu>
4694
4700
4695 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4701 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4696 unpacking a list whith a callable as first element would
4702 unpacking a list whith a callable as first element would
4697 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4703 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4698 Collins.
4704 Collins.
4699
4705
4700 2003-08-25 *** Released version 0.5.0
4706 2003-08-25 *** Released version 0.5.0
4701
4707
4702 2003-08-22 Fernando Perez <fperez@colorado.edu>
4708 2003-08-22 Fernando Perez <fperez@colorado.edu>
4703
4709
4704 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4710 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4705 improperly defined user exceptions. Thanks to feedback from Mark
4711 improperly defined user exceptions. Thanks to feedback from Mark
4706 Russell <mrussell-AT-verio.net>.
4712 Russell <mrussell-AT-verio.net>.
4707
4713
4708 2003-08-20 Fernando Perez <fperez@colorado.edu>
4714 2003-08-20 Fernando Perez <fperez@colorado.edu>
4709
4715
4710 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4716 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4711 printing so that it would print multi-line string forms starting
4717 printing so that it would print multi-line string forms starting
4712 with a new line. This way the formatting is better respected for
4718 with a new line. This way the formatting is better respected for
4713 objects which work hard to make nice string forms.
4719 objects which work hard to make nice string forms.
4714
4720
4715 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4721 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4716 autocall would overtake data access for objects with both
4722 autocall would overtake data access for objects with both
4717 __getitem__ and __call__.
4723 __getitem__ and __call__.
4718
4724
4719 2003-08-19 *** Released version 0.5.0-rc1
4725 2003-08-19 *** Released version 0.5.0-rc1
4720
4726
4721 2003-08-19 Fernando Perez <fperez@colorado.edu>
4727 2003-08-19 Fernando Perez <fperez@colorado.edu>
4722
4728
4723 * IPython/deep_reload.py (load_tail): single tiny change here
4729 * IPython/deep_reload.py (load_tail): single tiny change here
4724 seems to fix the long-standing bug of dreload() failing to work
4730 seems to fix the long-standing bug of dreload() failing to work
4725 for dotted names. But this module is pretty tricky, so I may have
4731 for dotted names. But this module is pretty tricky, so I may have
4726 missed some subtlety. Needs more testing!.
4732 missed some subtlety. Needs more testing!.
4727
4733
4728 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4734 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4729 exceptions which have badly implemented __str__ methods.
4735 exceptions which have badly implemented __str__ methods.
4730 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4736 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4731 which I've been getting reports about from Python 2.3 users. I
4737 which I've been getting reports about from Python 2.3 users. I
4732 wish I had a simple test case to reproduce the problem, so I could
4738 wish I had a simple test case to reproduce the problem, so I could
4733 either write a cleaner workaround or file a bug report if
4739 either write a cleaner workaround or file a bug report if
4734 necessary.
4740 necessary.
4735
4741
4736 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4742 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4737 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4743 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4738 a bug report by Tjabo Kloppenburg.
4744 a bug report by Tjabo Kloppenburg.
4739
4745
4740 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4746 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4741 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4747 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4742 seems rather unstable. Thanks to a bug report by Tjabo
4748 seems rather unstable. Thanks to a bug report by Tjabo
4743 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4749 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4744
4750
4745 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4751 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4746 this out soon because of the critical fixes in the inner loop for
4752 this out soon because of the critical fixes in the inner loop for
4747 generators.
4753 generators.
4748
4754
4749 * IPython/Magic.py (Magic.getargspec): removed. This (and
4755 * IPython/Magic.py (Magic.getargspec): removed. This (and
4750 _get_def) have been obsoleted by OInspect for a long time, I
4756 _get_def) have been obsoleted by OInspect for a long time, I
4751 hadn't noticed that they were dead code.
4757 hadn't noticed that they were dead code.
4752 (Magic._ofind): restored _ofind functionality for a few literals
4758 (Magic._ofind): restored _ofind functionality for a few literals
4753 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4759 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4754 for things like "hello".capitalize?, since that would require a
4760 for things like "hello".capitalize?, since that would require a
4755 potentially dangerous eval() again.
4761 potentially dangerous eval() again.
4756
4762
4757 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4763 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4758 logic a bit more to clean up the escapes handling and minimize the
4764 logic a bit more to clean up the escapes handling and minimize the
4759 use of _ofind to only necessary cases. The interactive 'feel' of
4765 use of _ofind to only necessary cases. The interactive 'feel' of
4760 IPython should have improved quite a bit with the changes in
4766 IPython should have improved quite a bit with the changes in
4761 _prefilter and _ofind (besides being far safer than before).
4767 _prefilter and _ofind (besides being far safer than before).
4762
4768
4763 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4769 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4764 obscure, never reported). Edit would fail to find the object to
4770 obscure, never reported). Edit would fail to find the object to
4765 edit under some circumstances.
4771 edit under some circumstances.
4766 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4772 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4767 which were causing double-calling of generators. Those eval calls
4773 which were causing double-calling of generators. Those eval calls
4768 were _very_ dangerous, since code with side effects could be
4774 were _very_ dangerous, since code with side effects could be
4769 triggered. As they say, 'eval is evil'... These were the
4775 triggered. As they say, 'eval is evil'... These were the
4770 nastiest evals in IPython. Besides, _ofind is now far simpler,
4776 nastiest evals in IPython. Besides, _ofind is now far simpler,
4771 and it should also be quite a bit faster. Its use of inspect is
4777 and it should also be quite a bit faster. Its use of inspect is
4772 also safer, so perhaps some of the inspect-related crashes I've
4778 also safer, so perhaps some of the inspect-related crashes I've
4773 seen lately with Python 2.3 might be taken care of. That will
4779 seen lately with Python 2.3 might be taken care of. That will
4774 need more testing.
4780 need more testing.
4775
4781
4776 2003-08-17 Fernando Perez <fperez@colorado.edu>
4782 2003-08-17 Fernando Perez <fperez@colorado.edu>
4777
4783
4778 * IPython/iplib.py (InteractiveShell._prefilter): significant
4784 * IPython/iplib.py (InteractiveShell._prefilter): significant
4779 simplifications to the logic for handling user escapes. Faster
4785 simplifications to the logic for handling user escapes. Faster
4780 and simpler code.
4786 and simpler code.
4781
4787
4782 2003-08-14 Fernando Perez <fperez@colorado.edu>
4788 2003-08-14 Fernando Perez <fperez@colorado.edu>
4783
4789
4784 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4790 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4785 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4791 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4786 but it should be quite a bit faster. And the recursive version
4792 but it should be quite a bit faster. And the recursive version
4787 generated O(log N) intermediate storage for all rank>1 arrays,
4793 generated O(log N) intermediate storage for all rank>1 arrays,
4788 even if they were contiguous.
4794 even if they were contiguous.
4789 (l1norm): Added this function.
4795 (l1norm): Added this function.
4790 (norm): Added this function for arbitrary norms (including
4796 (norm): Added this function for arbitrary norms (including
4791 l-infinity). l1 and l2 are still special cases for convenience
4797 l-infinity). l1 and l2 are still special cases for convenience
4792 and speed.
4798 and speed.
4793
4799
4794 2003-08-03 Fernando Perez <fperez@colorado.edu>
4800 2003-08-03 Fernando Perez <fperez@colorado.edu>
4795
4801
4796 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4802 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4797 exceptions, which now raise PendingDeprecationWarnings in Python
4803 exceptions, which now raise PendingDeprecationWarnings in Python
4798 2.3. There were some in Magic and some in Gnuplot2.
4804 2.3. There were some in Magic and some in Gnuplot2.
4799
4805
4800 2003-06-30 Fernando Perez <fperez@colorado.edu>
4806 2003-06-30 Fernando Perez <fperez@colorado.edu>
4801
4807
4802 * IPython/genutils.py (page): modified to call curses only for
4808 * IPython/genutils.py (page): modified to call curses only for
4803 terminals where TERM=='xterm'. After problems under many other
4809 terminals where TERM=='xterm'. After problems under many other
4804 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4810 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4805
4811
4806 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4812 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4807 would be triggered when readline was absent. This was just an old
4813 would be triggered when readline was absent. This was just an old
4808 debugging statement I'd forgotten to take out.
4814 debugging statement I'd forgotten to take out.
4809
4815
4810 2003-06-20 Fernando Perez <fperez@colorado.edu>
4816 2003-06-20 Fernando Perez <fperez@colorado.edu>
4811
4817
4812 * IPython/genutils.py (clock): modified to return only user time
4818 * IPython/genutils.py (clock): modified to return only user time
4813 (not counting system time), after a discussion on scipy. While
4819 (not counting system time), after a discussion on scipy. While
4814 system time may be a useful quantity occasionally, it may much
4820 system time may be a useful quantity occasionally, it may much
4815 more easily be skewed by occasional swapping or other similar
4821 more easily be skewed by occasional swapping or other similar
4816 activity.
4822 activity.
4817
4823
4818 2003-06-05 Fernando Perez <fperez@colorado.edu>
4824 2003-06-05 Fernando Perez <fperez@colorado.edu>
4819
4825
4820 * IPython/numutils.py (identity): new function, for building
4826 * IPython/numutils.py (identity): new function, for building
4821 arbitrary rank Kronecker deltas (mostly backwards compatible with
4827 arbitrary rank Kronecker deltas (mostly backwards compatible with
4822 Numeric.identity)
4828 Numeric.identity)
4823
4829
4824 2003-06-03 Fernando Perez <fperez@colorado.edu>
4830 2003-06-03 Fernando Perez <fperez@colorado.edu>
4825
4831
4826 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4832 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4827 arguments passed to magics with spaces, to allow trailing '\' to
4833 arguments passed to magics with spaces, to allow trailing '\' to
4828 work normally (mainly for Windows users).
4834 work normally (mainly for Windows users).
4829
4835
4830 2003-05-29 Fernando Perez <fperez@colorado.edu>
4836 2003-05-29 Fernando Perez <fperez@colorado.edu>
4831
4837
4832 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4838 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4833 instead of pydoc.help. This fixes a bizarre behavior where
4839 instead of pydoc.help. This fixes a bizarre behavior where
4834 printing '%s' % locals() would trigger the help system. Now
4840 printing '%s' % locals() would trigger the help system. Now
4835 ipython behaves like normal python does.
4841 ipython behaves like normal python does.
4836
4842
4837 Note that if one does 'from pydoc import help', the bizarre
4843 Note that if one does 'from pydoc import help', the bizarre
4838 behavior returns, but this will also happen in normal python, so
4844 behavior returns, but this will also happen in normal python, so
4839 it's not an ipython bug anymore (it has to do with how pydoc.help
4845 it's not an ipython bug anymore (it has to do with how pydoc.help
4840 is implemented).
4846 is implemented).
4841
4847
4842 2003-05-22 Fernando Perez <fperez@colorado.edu>
4848 2003-05-22 Fernando Perez <fperez@colorado.edu>
4843
4849
4844 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4850 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4845 return [] instead of None when nothing matches, also match to end
4851 return [] instead of None when nothing matches, also match to end
4846 of line. Patch by Gary Bishop.
4852 of line. Patch by Gary Bishop.
4847
4853
4848 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4854 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4849 protection as before, for files passed on the command line. This
4855 protection as before, for files passed on the command line. This
4850 prevents the CrashHandler from kicking in if user files call into
4856 prevents the CrashHandler from kicking in if user files call into
4851 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4857 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4852 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4858 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4853
4859
4854 2003-05-20 *** Released version 0.4.0
4860 2003-05-20 *** Released version 0.4.0
4855
4861
4856 2003-05-20 Fernando Perez <fperez@colorado.edu>
4862 2003-05-20 Fernando Perez <fperez@colorado.edu>
4857
4863
4858 * setup.py: added support for manpages. It's a bit hackish b/c of
4864 * setup.py: added support for manpages. It's a bit hackish b/c of
4859 a bug in the way the bdist_rpm distutils target handles gzipped
4865 a bug in the way the bdist_rpm distutils target handles gzipped
4860 manpages, but it works. After a patch by Jack.
4866 manpages, but it works. After a patch by Jack.
4861
4867
4862 2003-05-19 Fernando Perez <fperez@colorado.edu>
4868 2003-05-19 Fernando Perez <fperez@colorado.edu>
4863
4869
4864 * IPython/numutils.py: added a mockup of the kinds module, since
4870 * IPython/numutils.py: added a mockup of the kinds module, since
4865 it was recently removed from Numeric. This way, numutils will
4871 it was recently removed from Numeric. This way, numutils will
4866 work for all users even if they are missing kinds.
4872 work for all users even if they are missing kinds.
4867
4873
4868 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4874 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4869 failure, which can occur with SWIG-wrapped extensions. After a
4875 failure, which can occur with SWIG-wrapped extensions. After a
4870 crash report from Prabhu.
4876 crash report from Prabhu.
4871
4877
4872 2003-05-16 Fernando Perez <fperez@colorado.edu>
4878 2003-05-16 Fernando Perez <fperez@colorado.edu>
4873
4879
4874 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4880 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4875 protect ipython from user code which may call directly
4881 protect ipython from user code which may call directly
4876 sys.excepthook (this looks like an ipython crash to the user, even
4882 sys.excepthook (this looks like an ipython crash to the user, even
4877 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4883 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4878 This is especially important to help users of WxWindows, but may
4884 This is especially important to help users of WxWindows, but may
4879 also be useful in other cases.
4885 also be useful in other cases.
4880
4886
4881 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4887 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4882 an optional tb_offset to be specified, and to preserve exception
4888 an optional tb_offset to be specified, and to preserve exception
4883 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4889 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4884
4890
4885 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4891 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4886
4892
4887 2003-05-15 Fernando Perez <fperez@colorado.edu>
4893 2003-05-15 Fernando Perez <fperez@colorado.edu>
4888
4894
4889 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4895 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4890 installing for a new user under Windows.
4896 installing for a new user under Windows.
4891
4897
4892 2003-05-12 Fernando Perez <fperez@colorado.edu>
4898 2003-05-12 Fernando Perez <fperez@colorado.edu>
4893
4899
4894 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4900 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4895 handler for Emacs comint-based lines. Currently it doesn't do
4901 handler for Emacs comint-based lines. Currently it doesn't do
4896 much (but importantly, it doesn't update the history cache). In
4902 much (but importantly, it doesn't update the history cache). In
4897 the future it may be expanded if Alex needs more functionality
4903 the future it may be expanded if Alex needs more functionality
4898 there.
4904 there.
4899
4905
4900 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4906 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4901 info to crash reports.
4907 info to crash reports.
4902
4908
4903 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4909 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4904 just like Python's -c. Also fixed crash with invalid -color
4910 just like Python's -c. Also fixed crash with invalid -color
4905 option value at startup. Thanks to Will French
4911 option value at startup. Thanks to Will French
4906 <wfrench-AT-bestweb.net> for the bug report.
4912 <wfrench-AT-bestweb.net> for the bug report.
4907
4913
4908 2003-05-09 Fernando Perez <fperez@colorado.edu>
4914 2003-05-09 Fernando Perez <fperez@colorado.edu>
4909
4915
4910 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4916 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4911 to EvalDict (it's a mapping, after all) and simplified its code
4917 to EvalDict (it's a mapping, after all) and simplified its code
4912 quite a bit, after a nice discussion on c.l.py where Gustavo
4918 quite a bit, after a nice discussion on c.l.py where Gustavo
4913 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4919 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4914
4920
4915 2003-04-30 Fernando Perez <fperez@colorado.edu>
4921 2003-04-30 Fernando Perez <fperez@colorado.edu>
4916
4922
4917 * IPython/genutils.py (timings_out): modified it to reduce its
4923 * IPython/genutils.py (timings_out): modified it to reduce its
4918 overhead in the common reps==1 case.
4924 overhead in the common reps==1 case.
4919
4925
4920 2003-04-29 Fernando Perez <fperez@colorado.edu>
4926 2003-04-29 Fernando Perez <fperez@colorado.edu>
4921
4927
4922 * IPython/genutils.py (timings_out): Modified to use the resource
4928 * IPython/genutils.py (timings_out): Modified to use the resource
4923 module, which avoids the wraparound problems of time.clock().
4929 module, which avoids the wraparound problems of time.clock().
4924
4930
4925 2003-04-17 *** Released version 0.2.15pre4
4931 2003-04-17 *** Released version 0.2.15pre4
4926
4932
4927 2003-04-17 Fernando Perez <fperez@colorado.edu>
4933 2003-04-17 Fernando Perez <fperez@colorado.edu>
4928
4934
4929 * setup.py (scriptfiles): Split windows-specific stuff over to a
4935 * setup.py (scriptfiles): Split windows-specific stuff over to a
4930 separate file, in an attempt to have a Windows GUI installer.
4936 separate file, in an attempt to have a Windows GUI installer.
4931 That didn't work, but part of the groundwork is done.
4937 That didn't work, but part of the groundwork is done.
4932
4938
4933 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4939 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4934 indent/unindent with 4 spaces. Particularly useful in combination
4940 indent/unindent with 4 spaces. Particularly useful in combination
4935 with the new auto-indent option.
4941 with the new auto-indent option.
4936
4942
4937 2003-04-16 Fernando Perez <fperez@colorado.edu>
4943 2003-04-16 Fernando Perez <fperez@colorado.edu>
4938
4944
4939 * IPython/Magic.py: various replacements of self.rc for
4945 * IPython/Magic.py: various replacements of self.rc for
4940 self.shell.rc. A lot more remains to be done to fully disentangle
4946 self.shell.rc. A lot more remains to be done to fully disentangle
4941 this class from the main Shell class.
4947 this class from the main Shell class.
4942
4948
4943 * IPython/GnuplotRuntime.py: added checks for mouse support so
4949 * IPython/GnuplotRuntime.py: added checks for mouse support so
4944 that we don't try to enable it if the current gnuplot doesn't
4950 that we don't try to enable it if the current gnuplot doesn't
4945 really support it. Also added checks so that we don't try to
4951 really support it. Also added checks so that we don't try to
4946 enable persist under Windows (where Gnuplot doesn't recognize the
4952 enable persist under Windows (where Gnuplot doesn't recognize the
4947 option).
4953 option).
4948
4954
4949 * IPython/iplib.py (InteractiveShell.interact): Added optional
4955 * IPython/iplib.py (InteractiveShell.interact): Added optional
4950 auto-indenting code, after a patch by King C. Shu
4956 auto-indenting code, after a patch by King C. Shu
4951 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4957 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4952 get along well with pasting indented code. If I ever figure out
4958 get along well with pasting indented code. If I ever figure out
4953 how to make that part go well, it will become on by default.
4959 how to make that part go well, it will become on by default.
4954
4960
4955 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4961 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4956 crash ipython if there was an unmatched '%' in the user's prompt
4962 crash ipython if there was an unmatched '%' in the user's prompt
4957 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4963 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4958
4964
4959 * IPython/iplib.py (InteractiveShell.interact): removed the
4965 * IPython/iplib.py (InteractiveShell.interact): removed the
4960 ability to ask the user whether he wants to crash or not at the
4966 ability to ask the user whether he wants to crash or not at the
4961 'last line' exception handler. Calling functions at that point
4967 'last line' exception handler. Calling functions at that point
4962 changes the stack, and the error reports would have incorrect
4968 changes the stack, and the error reports would have incorrect
4963 tracebacks.
4969 tracebacks.
4964
4970
4965 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4971 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4966 pass through a peger a pretty-printed form of any object. After a
4972 pass through a peger a pretty-printed form of any object. After a
4967 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4973 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4968
4974
4969 2003-04-14 Fernando Perez <fperez@colorado.edu>
4975 2003-04-14 Fernando Perez <fperez@colorado.edu>
4970
4976
4971 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4977 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4972 all files in ~ would be modified at first install (instead of
4978 all files in ~ would be modified at first install (instead of
4973 ~/.ipython). This could be potentially disastrous, as the
4979 ~/.ipython). This could be potentially disastrous, as the
4974 modification (make line-endings native) could damage binary files.
4980 modification (make line-endings native) could damage binary files.
4975
4981
4976 2003-04-10 Fernando Perez <fperez@colorado.edu>
4982 2003-04-10 Fernando Perez <fperez@colorado.edu>
4977
4983
4978 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4984 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4979 handle only lines which are invalid python. This now means that
4985 handle only lines which are invalid python. This now means that
4980 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4986 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4981 for the bug report.
4987 for the bug report.
4982
4988
4983 2003-04-01 Fernando Perez <fperez@colorado.edu>
4989 2003-04-01 Fernando Perez <fperez@colorado.edu>
4984
4990
4985 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4991 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4986 where failing to set sys.last_traceback would crash pdb.pm().
4992 where failing to set sys.last_traceback would crash pdb.pm().
4987 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4993 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4988 report.
4994 report.
4989
4995
4990 2003-03-25 Fernando Perez <fperez@colorado.edu>
4996 2003-03-25 Fernando Perez <fperez@colorado.edu>
4991
4997
4992 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4998 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4993 before printing it (it had a lot of spurious blank lines at the
4999 before printing it (it had a lot of spurious blank lines at the
4994 end).
5000 end).
4995
5001
4996 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5002 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4997 output would be sent 21 times! Obviously people don't use this
5003 output would be sent 21 times! Obviously people don't use this
4998 too often, or I would have heard about it.
5004 too often, or I would have heard about it.
4999
5005
5000 2003-03-24 Fernando Perez <fperez@colorado.edu>
5006 2003-03-24 Fernando Perez <fperez@colorado.edu>
5001
5007
5002 * setup.py (scriptfiles): renamed the data_files parameter from
5008 * setup.py (scriptfiles): renamed the data_files parameter from
5003 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5009 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5004 for the patch.
5010 for the patch.
5005
5011
5006 2003-03-20 Fernando Perez <fperez@colorado.edu>
5012 2003-03-20 Fernando Perez <fperez@colorado.edu>
5007
5013
5008 * IPython/genutils.py (error): added error() and fatal()
5014 * IPython/genutils.py (error): added error() and fatal()
5009 functions.
5015 functions.
5010
5016
5011 2003-03-18 *** Released version 0.2.15pre3
5017 2003-03-18 *** Released version 0.2.15pre3
5012
5018
5013 2003-03-18 Fernando Perez <fperez@colorado.edu>
5019 2003-03-18 Fernando Perez <fperez@colorado.edu>
5014
5020
5015 * setupext/install_data_ext.py
5021 * setupext/install_data_ext.py
5016 (install_data_ext.initialize_options): Class contributed by Jack
5022 (install_data_ext.initialize_options): Class contributed by Jack
5017 Moffit for fixing the old distutils hack. He is sending this to
5023 Moffit for fixing the old distutils hack. He is sending this to
5018 the distutils folks so in the future we may not need it as a
5024 the distutils folks so in the future we may not need it as a
5019 private fix.
5025 private fix.
5020
5026
5021 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5027 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5022 changes for Debian packaging. See his patch for full details.
5028 changes for Debian packaging. See his patch for full details.
5023 The old distutils hack of making the ipythonrc* files carry a
5029 The old distutils hack of making the ipythonrc* files carry a
5024 bogus .py extension is gone, at last. Examples were moved to a
5030 bogus .py extension is gone, at last. Examples were moved to a
5025 separate subdir under doc/, and the separate executable scripts
5031 separate subdir under doc/, and the separate executable scripts
5026 now live in their own directory. Overall a great cleanup. The
5032 now live in their own directory. Overall a great cleanup. The
5027 manual was updated to use the new files, and setup.py has been
5033 manual was updated to use the new files, and setup.py has been
5028 fixed for this setup.
5034 fixed for this setup.
5029
5035
5030 * IPython/PyColorize.py (Parser.usage): made non-executable and
5036 * IPython/PyColorize.py (Parser.usage): made non-executable and
5031 created a pycolor wrapper around it to be included as a script.
5037 created a pycolor wrapper around it to be included as a script.
5032
5038
5033 2003-03-12 *** Released version 0.2.15pre2
5039 2003-03-12 *** Released version 0.2.15pre2
5034
5040
5035 2003-03-12 Fernando Perez <fperez@colorado.edu>
5041 2003-03-12 Fernando Perez <fperez@colorado.edu>
5036
5042
5037 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5043 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5038 long-standing problem with garbage characters in some terminals.
5044 long-standing problem with garbage characters in some terminals.
5039 The issue was really that the \001 and \002 escapes must _only_ be
5045 The issue was really that the \001 and \002 escapes must _only_ be
5040 passed to input prompts (which call readline), but _never_ to
5046 passed to input prompts (which call readline), but _never_ to
5041 normal text to be printed on screen. I changed ColorANSI to have
5047 normal text to be printed on screen. I changed ColorANSI to have
5042 two classes: TermColors and InputTermColors, each with the
5048 two classes: TermColors and InputTermColors, each with the
5043 appropriate escapes for input prompts or normal text. The code in
5049 appropriate escapes for input prompts or normal text. The code in
5044 Prompts.py got slightly more complicated, but this very old and
5050 Prompts.py got slightly more complicated, but this very old and
5045 annoying bug is finally fixed.
5051 annoying bug is finally fixed.
5046
5052
5047 All the credit for nailing down the real origin of this problem
5053 All the credit for nailing down the real origin of this problem
5048 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5054 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5049 *Many* thanks to him for spending quite a bit of effort on this.
5055 *Many* thanks to him for spending quite a bit of effort on this.
5050
5056
5051 2003-03-05 *** Released version 0.2.15pre1
5057 2003-03-05 *** Released version 0.2.15pre1
5052
5058
5053 2003-03-03 Fernando Perez <fperez@colorado.edu>
5059 2003-03-03 Fernando Perez <fperez@colorado.edu>
5054
5060
5055 * IPython/FakeModule.py: Moved the former _FakeModule to a
5061 * IPython/FakeModule.py: Moved the former _FakeModule to a
5056 separate file, because it's also needed by Magic (to fix a similar
5062 separate file, because it's also needed by Magic (to fix a similar
5057 pickle-related issue in @run).
5063 pickle-related issue in @run).
5058
5064
5059 2003-03-02 Fernando Perez <fperez@colorado.edu>
5065 2003-03-02 Fernando Perez <fperez@colorado.edu>
5060
5066
5061 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5067 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5062 the autocall option at runtime.
5068 the autocall option at runtime.
5063 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5069 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5064 across Magic.py to start separating Magic from InteractiveShell.
5070 across Magic.py to start separating Magic from InteractiveShell.
5065 (Magic._ofind): Fixed to return proper namespace for dotted
5071 (Magic._ofind): Fixed to return proper namespace for dotted
5066 names. Before, a dotted name would always return 'not currently
5072 names. Before, a dotted name would always return 'not currently
5067 defined', because it would find the 'parent'. s.x would be found,
5073 defined', because it would find the 'parent'. s.x would be found,
5068 but since 'x' isn't defined by itself, it would get confused.
5074 but since 'x' isn't defined by itself, it would get confused.
5069 (Magic.magic_run): Fixed pickling problems reported by Ralf
5075 (Magic.magic_run): Fixed pickling problems reported by Ralf
5070 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5076 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5071 that I'd used when Mike Heeter reported similar issues at the
5077 that I'd used when Mike Heeter reported similar issues at the
5072 top-level, but now for @run. It boils down to injecting the
5078 top-level, but now for @run. It boils down to injecting the
5073 namespace where code is being executed with something that looks
5079 namespace where code is being executed with something that looks
5074 enough like a module to fool pickle.dump(). Since a pickle stores
5080 enough like a module to fool pickle.dump(). Since a pickle stores
5075 a named reference to the importing module, we need this for
5081 a named reference to the importing module, we need this for
5076 pickles to save something sensible.
5082 pickles to save something sensible.
5077
5083
5078 * IPython/ipmaker.py (make_IPython): added an autocall option.
5084 * IPython/ipmaker.py (make_IPython): added an autocall option.
5079
5085
5080 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5086 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5081 the auto-eval code. Now autocalling is an option, and the code is
5087 the auto-eval code. Now autocalling is an option, and the code is
5082 also vastly safer. There is no more eval() involved at all.
5088 also vastly safer. There is no more eval() involved at all.
5083
5089
5084 2003-03-01 Fernando Perez <fperez@colorado.edu>
5090 2003-03-01 Fernando Perez <fperez@colorado.edu>
5085
5091
5086 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5092 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5087 dict with named keys instead of a tuple.
5093 dict with named keys instead of a tuple.
5088
5094
5089 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5095 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5090
5096
5091 * setup.py (make_shortcut): Fixed message about directories
5097 * setup.py (make_shortcut): Fixed message about directories
5092 created during Windows installation (the directories were ok, just
5098 created during Windows installation (the directories were ok, just
5093 the printed message was misleading). Thanks to Chris Liechti
5099 the printed message was misleading). Thanks to Chris Liechti
5094 <cliechti-AT-gmx.net> for the heads up.
5100 <cliechti-AT-gmx.net> for the heads up.
5095
5101
5096 2003-02-21 Fernando Perez <fperez@colorado.edu>
5102 2003-02-21 Fernando Perez <fperez@colorado.edu>
5097
5103
5098 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5104 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5099 of ValueError exception when checking for auto-execution. This
5105 of ValueError exception when checking for auto-execution. This
5100 one is raised by things like Numeric arrays arr.flat when the
5106 one is raised by things like Numeric arrays arr.flat when the
5101 array is non-contiguous.
5107 array is non-contiguous.
5102
5108
5103 2003-01-31 Fernando Perez <fperez@colorado.edu>
5109 2003-01-31 Fernando Perez <fperez@colorado.edu>
5104
5110
5105 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5111 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5106 not return any value at all (even though the command would get
5112 not return any value at all (even though the command would get
5107 executed).
5113 executed).
5108 (xsys): Flush stdout right after printing the command to ensure
5114 (xsys): Flush stdout right after printing the command to ensure
5109 proper ordering of commands and command output in the total
5115 proper ordering of commands and command output in the total
5110 output.
5116 output.
5111 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5117 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5112 system/getoutput as defaults. The old ones are kept for
5118 system/getoutput as defaults. The old ones are kept for
5113 compatibility reasons, so no code which uses this library needs
5119 compatibility reasons, so no code which uses this library needs
5114 changing.
5120 changing.
5115
5121
5116 2003-01-27 *** Released version 0.2.14
5122 2003-01-27 *** Released version 0.2.14
5117
5123
5118 2003-01-25 Fernando Perez <fperez@colorado.edu>
5124 2003-01-25 Fernando Perez <fperez@colorado.edu>
5119
5125
5120 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5126 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5121 functions defined in previous edit sessions could not be re-edited
5127 functions defined in previous edit sessions could not be re-edited
5122 (because the temp files were immediately removed). Now temp files
5128 (because the temp files were immediately removed). Now temp files
5123 are removed only at IPython's exit.
5129 are removed only at IPython's exit.
5124 (Magic.magic_run): Improved @run to perform shell-like expansions
5130 (Magic.magic_run): Improved @run to perform shell-like expansions
5125 on its arguments (~users and $VARS). With this, @run becomes more
5131 on its arguments (~users and $VARS). With this, @run becomes more
5126 like a normal command-line.
5132 like a normal command-line.
5127
5133
5128 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5134 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5129 bugs related to embedding and cleaned up that code. A fairly
5135 bugs related to embedding and cleaned up that code. A fairly
5130 important one was the impossibility to access the global namespace
5136 important one was the impossibility to access the global namespace
5131 through the embedded IPython (only local variables were visible).
5137 through the embedded IPython (only local variables were visible).
5132
5138
5133 2003-01-14 Fernando Perez <fperez@colorado.edu>
5139 2003-01-14 Fernando Perez <fperez@colorado.edu>
5134
5140
5135 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5141 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5136 auto-calling to be a bit more conservative. Now it doesn't get
5142 auto-calling to be a bit more conservative. Now it doesn't get
5137 triggered if any of '!=()<>' are in the rest of the input line, to
5143 triggered if any of '!=()<>' are in the rest of the input line, to
5138 allow comparing callables. Thanks to Alex for the heads up.
5144 allow comparing callables. Thanks to Alex for the heads up.
5139
5145
5140 2003-01-07 Fernando Perez <fperez@colorado.edu>
5146 2003-01-07 Fernando Perez <fperez@colorado.edu>
5141
5147
5142 * IPython/genutils.py (page): fixed estimation of the number of
5148 * IPython/genutils.py (page): fixed estimation of the number of
5143 lines in a string to be paged to simply count newlines. This
5149 lines in a string to be paged to simply count newlines. This
5144 prevents over-guessing due to embedded escape sequences. A better
5150 prevents over-guessing due to embedded escape sequences. A better
5145 long-term solution would involve stripping out the control chars
5151 long-term solution would involve stripping out the control chars
5146 for the count, but it's potentially so expensive I just don't
5152 for the count, but it's potentially so expensive I just don't
5147 think it's worth doing.
5153 think it's worth doing.
5148
5154
5149 2002-12-19 *** Released version 0.2.14pre50
5155 2002-12-19 *** Released version 0.2.14pre50
5150
5156
5151 2002-12-19 Fernando Perez <fperez@colorado.edu>
5157 2002-12-19 Fernando Perez <fperez@colorado.edu>
5152
5158
5153 * tools/release (version): Changed release scripts to inform
5159 * tools/release (version): Changed release scripts to inform
5154 Andrea and build a NEWS file with a list of recent changes.
5160 Andrea and build a NEWS file with a list of recent changes.
5155
5161
5156 * IPython/ColorANSI.py (__all__): changed terminal detection
5162 * IPython/ColorANSI.py (__all__): changed terminal detection
5157 code. Seems to work better for xterms without breaking
5163 code. Seems to work better for xterms without breaking
5158 konsole. Will need more testing to determine if WinXP and Mac OSX
5164 konsole. Will need more testing to determine if WinXP and Mac OSX
5159 also work ok.
5165 also work ok.
5160
5166
5161 2002-12-18 *** Released version 0.2.14pre49
5167 2002-12-18 *** Released version 0.2.14pre49
5162
5168
5163 2002-12-18 Fernando Perez <fperez@colorado.edu>
5169 2002-12-18 Fernando Perez <fperez@colorado.edu>
5164
5170
5165 * Docs: added new info about Mac OSX, from Andrea.
5171 * Docs: added new info about Mac OSX, from Andrea.
5166
5172
5167 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5173 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5168 allow direct plotting of python strings whose format is the same
5174 allow direct plotting of python strings whose format is the same
5169 of gnuplot data files.
5175 of gnuplot data files.
5170
5176
5171 2002-12-16 Fernando Perez <fperez@colorado.edu>
5177 2002-12-16 Fernando Perez <fperez@colorado.edu>
5172
5178
5173 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5179 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5174 value of exit question to be acknowledged.
5180 value of exit question to be acknowledged.
5175
5181
5176 2002-12-03 Fernando Perez <fperez@colorado.edu>
5182 2002-12-03 Fernando Perez <fperez@colorado.edu>
5177
5183
5178 * IPython/ipmaker.py: removed generators, which had been added
5184 * IPython/ipmaker.py: removed generators, which had been added
5179 by mistake in an earlier debugging run. This was causing trouble
5185 by mistake in an earlier debugging run. This was causing trouble
5180 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5186 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5181 for pointing this out.
5187 for pointing this out.
5182
5188
5183 2002-11-17 Fernando Perez <fperez@colorado.edu>
5189 2002-11-17 Fernando Perez <fperez@colorado.edu>
5184
5190
5185 * Manual: updated the Gnuplot section.
5191 * Manual: updated the Gnuplot section.
5186
5192
5187 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5193 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5188 a much better split of what goes in Runtime and what goes in
5194 a much better split of what goes in Runtime and what goes in
5189 Interactive.
5195 Interactive.
5190
5196
5191 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5197 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5192 being imported from iplib.
5198 being imported from iplib.
5193
5199
5194 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5200 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5195 for command-passing. Now the global Gnuplot instance is called
5201 for command-passing. Now the global Gnuplot instance is called
5196 'gp' instead of 'g', which was really a far too fragile and
5202 'gp' instead of 'g', which was really a far too fragile and
5197 common name.
5203 common name.
5198
5204
5199 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5205 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5200 bounding boxes generated by Gnuplot for square plots.
5206 bounding boxes generated by Gnuplot for square plots.
5201
5207
5202 * IPython/genutils.py (popkey): new function added. I should
5208 * IPython/genutils.py (popkey): new function added. I should
5203 suggest this on c.l.py as a dict method, it seems useful.
5209 suggest this on c.l.py as a dict method, it seems useful.
5204
5210
5205 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5211 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5206 to transparently handle PostScript generation. MUCH better than
5212 to transparently handle PostScript generation. MUCH better than
5207 the previous plot_eps/replot_eps (which I removed now). The code
5213 the previous plot_eps/replot_eps (which I removed now). The code
5208 is also fairly clean and well documented now (including
5214 is also fairly clean and well documented now (including
5209 docstrings).
5215 docstrings).
5210
5216
5211 2002-11-13 Fernando Perez <fperez@colorado.edu>
5217 2002-11-13 Fernando Perez <fperez@colorado.edu>
5212
5218
5213 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5219 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5214 (inconsistent with options).
5220 (inconsistent with options).
5215
5221
5216 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5222 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5217 manually disabled, I don't know why. Fixed it.
5223 manually disabled, I don't know why. Fixed it.
5218 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5224 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5219 eps output.
5225 eps output.
5220
5226
5221 2002-11-12 Fernando Perez <fperez@colorado.edu>
5227 2002-11-12 Fernando Perez <fperez@colorado.edu>
5222
5228
5223 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5229 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5224 don't propagate up to caller. Fixes crash reported by François
5230 don't propagate up to caller. Fixes crash reported by François
5225 Pinard.
5231 Pinard.
5226
5232
5227 2002-11-09 Fernando Perez <fperez@colorado.edu>
5233 2002-11-09 Fernando Perez <fperez@colorado.edu>
5228
5234
5229 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5235 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5230 history file for new users.
5236 history file for new users.
5231 (make_IPython): fixed bug where initial install would leave the
5237 (make_IPython): fixed bug where initial install would leave the
5232 user running in the .ipython dir.
5238 user running in the .ipython dir.
5233 (make_IPython): fixed bug where config dir .ipython would be
5239 (make_IPython): fixed bug where config dir .ipython would be
5234 created regardless of the given -ipythondir option. Thanks to Cory
5240 created regardless of the given -ipythondir option. Thanks to Cory
5235 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5241 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5236
5242
5237 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5243 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5238 type confirmations. Will need to use it in all of IPython's code
5244 type confirmations. Will need to use it in all of IPython's code
5239 consistently.
5245 consistently.
5240
5246
5241 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5247 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5242 context to print 31 lines instead of the default 5. This will make
5248 context to print 31 lines instead of the default 5. This will make
5243 the crash reports extremely detailed in case the problem is in
5249 the crash reports extremely detailed in case the problem is in
5244 libraries I don't have access to.
5250 libraries I don't have access to.
5245
5251
5246 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5252 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5247 line of defense' code to still crash, but giving users fair
5253 line of defense' code to still crash, but giving users fair
5248 warning. I don't want internal errors to go unreported: if there's
5254 warning. I don't want internal errors to go unreported: if there's
5249 an internal problem, IPython should crash and generate a full
5255 an internal problem, IPython should crash and generate a full
5250 report.
5256 report.
5251
5257
5252 2002-11-08 Fernando Perez <fperez@colorado.edu>
5258 2002-11-08 Fernando Perez <fperez@colorado.edu>
5253
5259
5254 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5260 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5255 otherwise uncaught exceptions which can appear if people set
5261 otherwise uncaught exceptions which can appear if people set
5256 sys.stdout to something badly broken. Thanks to a crash report
5262 sys.stdout to something badly broken. Thanks to a crash report
5257 from henni-AT-mail.brainbot.com.
5263 from henni-AT-mail.brainbot.com.
5258
5264
5259 2002-11-04 Fernando Perez <fperez@colorado.edu>
5265 2002-11-04 Fernando Perez <fperez@colorado.edu>
5260
5266
5261 * IPython/iplib.py (InteractiveShell.interact): added
5267 * IPython/iplib.py (InteractiveShell.interact): added
5262 __IPYTHON__active to the builtins. It's a flag which goes on when
5268 __IPYTHON__active to the builtins. It's a flag which goes on when
5263 the interaction starts and goes off again when it stops. This
5269 the interaction starts and goes off again when it stops. This
5264 allows embedding code to detect being inside IPython. Before this
5270 allows embedding code to detect being inside IPython. Before this
5265 was done via __IPYTHON__, but that only shows that an IPython
5271 was done via __IPYTHON__, but that only shows that an IPython
5266 instance has been created.
5272 instance has been created.
5267
5273
5268 * IPython/Magic.py (Magic.magic_env): I realized that in a
5274 * IPython/Magic.py (Magic.magic_env): I realized that in a
5269 UserDict, instance.data holds the data as a normal dict. So I
5275 UserDict, instance.data holds the data as a normal dict. So I
5270 modified @env to return os.environ.data instead of rebuilding a
5276 modified @env to return os.environ.data instead of rebuilding a
5271 dict by hand.
5277 dict by hand.
5272
5278
5273 2002-11-02 Fernando Perez <fperez@colorado.edu>
5279 2002-11-02 Fernando Perez <fperez@colorado.edu>
5274
5280
5275 * IPython/genutils.py (warn): changed so that level 1 prints no
5281 * IPython/genutils.py (warn): changed so that level 1 prints no
5276 header. Level 2 is now the default (with 'WARNING' header, as
5282 header. Level 2 is now the default (with 'WARNING' header, as
5277 before). I think I tracked all places where changes were needed in
5283 before). I think I tracked all places where changes were needed in
5278 IPython, but outside code using the old level numbering may have
5284 IPython, but outside code using the old level numbering may have
5279 broken.
5285 broken.
5280
5286
5281 * IPython/iplib.py (InteractiveShell.runcode): added this to
5287 * IPython/iplib.py (InteractiveShell.runcode): added this to
5282 handle the tracebacks in SystemExit traps correctly. The previous
5288 handle the tracebacks in SystemExit traps correctly. The previous
5283 code (through interact) was printing more of the stack than
5289 code (through interact) was printing more of the stack than
5284 necessary, showing IPython internal code to the user.
5290 necessary, showing IPython internal code to the user.
5285
5291
5286 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5292 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5287 default. Now that the default at the confirmation prompt is yes,
5293 default. Now that the default at the confirmation prompt is yes,
5288 it's not so intrusive. François' argument that ipython sessions
5294 it's not so intrusive. François' argument that ipython sessions
5289 tend to be complex enough not to lose them from an accidental C-d,
5295 tend to be complex enough not to lose them from an accidental C-d,
5290 is a valid one.
5296 is a valid one.
5291
5297
5292 * IPython/iplib.py (InteractiveShell.interact): added a
5298 * IPython/iplib.py (InteractiveShell.interact): added a
5293 showtraceback() call to the SystemExit trap, and modified the exit
5299 showtraceback() call to the SystemExit trap, and modified the exit
5294 confirmation to have yes as the default.
5300 confirmation to have yes as the default.
5295
5301
5296 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5302 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5297 this file. It's been gone from the code for a long time, this was
5303 this file. It's been gone from the code for a long time, this was
5298 simply leftover junk.
5304 simply leftover junk.
5299
5305
5300 2002-11-01 Fernando Perez <fperez@colorado.edu>
5306 2002-11-01 Fernando Perez <fperez@colorado.edu>
5301
5307
5302 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5308 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5303 added. If set, IPython now traps EOF and asks for
5309 added. If set, IPython now traps EOF and asks for
5304 confirmation. After a request by François Pinard.
5310 confirmation. After a request by François Pinard.
5305
5311
5306 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5312 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5307 of @abort, and with a new (better) mechanism for handling the
5313 of @abort, and with a new (better) mechanism for handling the
5308 exceptions.
5314 exceptions.
5309
5315
5310 2002-10-27 Fernando Perez <fperez@colorado.edu>
5316 2002-10-27 Fernando Perez <fperez@colorado.edu>
5311
5317
5312 * IPython/usage.py (__doc__): updated the --help information and
5318 * IPython/usage.py (__doc__): updated the --help information and
5313 the ipythonrc file to indicate that -log generates
5319 the ipythonrc file to indicate that -log generates
5314 ./ipython.log. Also fixed the corresponding info in @logstart.
5320 ./ipython.log. Also fixed the corresponding info in @logstart.
5315 This and several other fixes in the manuals thanks to reports by
5321 This and several other fixes in the manuals thanks to reports by
5316 François Pinard <pinard-AT-iro.umontreal.ca>.
5322 François Pinard <pinard-AT-iro.umontreal.ca>.
5317
5323
5318 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5324 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5319 refer to @logstart (instead of @log, which doesn't exist).
5325 refer to @logstart (instead of @log, which doesn't exist).
5320
5326
5321 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5327 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5322 AttributeError crash. Thanks to Christopher Armstrong
5328 AttributeError crash. Thanks to Christopher Armstrong
5323 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5329 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5324 introduced recently (in 0.2.14pre37) with the fix to the eval
5330 introduced recently (in 0.2.14pre37) with the fix to the eval
5325 problem mentioned below.
5331 problem mentioned below.
5326
5332
5327 2002-10-17 Fernando Perez <fperez@colorado.edu>
5333 2002-10-17 Fernando Perez <fperez@colorado.edu>
5328
5334
5329 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5335 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5330 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5336 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5331
5337
5332 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5338 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5333 this function to fix a problem reported by Alex Schmolck. He saw
5339 this function to fix a problem reported by Alex Schmolck. He saw
5334 it with list comprehensions and generators, which were getting
5340 it with list comprehensions and generators, which were getting
5335 called twice. The real problem was an 'eval' call in testing for
5341 called twice. The real problem was an 'eval' call in testing for
5336 automagic which was evaluating the input line silently.
5342 automagic which was evaluating the input line silently.
5337
5343
5338 This is a potentially very nasty bug, if the input has side
5344 This is a potentially very nasty bug, if the input has side
5339 effects which must not be repeated. The code is much cleaner now,
5345 effects which must not be repeated. The code is much cleaner now,
5340 without any blanket 'except' left and with a regexp test for
5346 without any blanket 'except' left and with a regexp test for
5341 actual function names.
5347 actual function names.
5342
5348
5343 But an eval remains, which I'm not fully comfortable with. I just
5349 But an eval remains, which I'm not fully comfortable with. I just
5344 don't know how to find out if an expression could be a callable in
5350 don't know how to find out if an expression could be a callable in
5345 the user's namespace without doing an eval on the string. However
5351 the user's namespace without doing an eval on the string. However
5346 that string is now much more strictly checked so that no code
5352 that string is now much more strictly checked so that no code
5347 slips by, so the eval should only happen for things that can
5353 slips by, so the eval should only happen for things that can
5348 really be only function/method names.
5354 really be only function/method names.
5349
5355
5350 2002-10-15 Fernando Perez <fperez@colorado.edu>
5356 2002-10-15 Fernando Perez <fperez@colorado.edu>
5351
5357
5352 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5358 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5353 OSX information to main manual, removed README_Mac_OSX file from
5359 OSX information to main manual, removed README_Mac_OSX file from
5354 distribution. Also updated credits for recent additions.
5360 distribution. Also updated credits for recent additions.
5355
5361
5356 2002-10-10 Fernando Perez <fperez@colorado.edu>
5362 2002-10-10 Fernando Perez <fperez@colorado.edu>
5357
5363
5358 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5364 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5359 terminal-related issues. Many thanks to Andrea Riciputi
5365 terminal-related issues. Many thanks to Andrea Riciputi
5360 <andrea.riciputi-AT-libero.it> for writing it.
5366 <andrea.riciputi-AT-libero.it> for writing it.
5361
5367
5362 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5368 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5363 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5369 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5364
5370
5365 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5371 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5366 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5372 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5367 <syver-en-AT-online.no> who both submitted patches for this problem.
5373 <syver-en-AT-online.no> who both submitted patches for this problem.
5368
5374
5369 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5375 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5370 global embedding to make sure that things don't overwrite user
5376 global embedding to make sure that things don't overwrite user
5371 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5377 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5372
5378
5373 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5379 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5374 compatibility. Thanks to Hayden Callow
5380 compatibility. Thanks to Hayden Callow
5375 <h.callow-AT-elec.canterbury.ac.nz>
5381 <h.callow-AT-elec.canterbury.ac.nz>
5376
5382
5377 2002-10-04 Fernando Perez <fperez@colorado.edu>
5383 2002-10-04 Fernando Perez <fperez@colorado.edu>
5378
5384
5379 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5385 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5380 Gnuplot.File objects.
5386 Gnuplot.File objects.
5381
5387
5382 2002-07-23 Fernando Perez <fperez@colorado.edu>
5388 2002-07-23 Fernando Perez <fperez@colorado.edu>
5383
5389
5384 * IPython/genutils.py (timing): Added timings() and timing() for
5390 * IPython/genutils.py (timing): Added timings() and timing() for
5385 quick access to the most commonly needed data, the execution
5391 quick access to the most commonly needed data, the execution
5386 times. Old timing() renamed to timings_out().
5392 times. Old timing() renamed to timings_out().
5387
5393
5388 2002-07-18 Fernando Perez <fperez@colorado.edu>
5394 2002-07-18 Fernando Perez <fperez@colorado.edu>
5389
5395
5390 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5396 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5391 bug with nested instances disrupting the parent's tab completion.
5397 bug with nested instances disrupting the parent's tab completion.
5392
5398
5393 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5399 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5394 all_completions code to begin the emacs integration.
5400 all_completions code to begin the emacs integration.
5395
5401
5396 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5402 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5397 argument to allow titling individual arrays when plotting.
5403 argument to allow titling individual arrays when plotting.
5398
5404
5399 2002-07-15 Fernando Perez <fperez@colorado.edu>
5405 2002-07-15 Fernando Perez <fperez@colorado.edu>
5400
5406
5401 * setup.py (make_shortcut): changed to retrieve the value of
5407 * setup.py (make_shortcut): changed to retrieve the value of
5402 'Program Files' directory from the registry (this value changes in
5408 'Program Files' directory from the registry (this value changes in
5403 non-english versions of Windows). Thanks to Thomas Fanslau
5409 non-english versions of Windows). Thanks to Thomas Fanslau
5404 <tfanslau-AT-gmx.de> for the report.
5410 <tfanslau-AT-gmx.de> for the report.
5405
5411
5406 2002-07-10 Fernando Perez <fperez@colorado.edu>
5412 2002-07-10 Fernando Perez <fperez@colorado.edu>
5407
5413
5408 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5414 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5409 a bug in pdb, which crashes if a line with only whitespace is
5415 a bug in pdb, which crashes if a line with only whitespace is
5410 entered. Bug report submitted to sourceforge.
5416 entered. Bug report submitted to sourceforge.
5411
5417
5412 2002-07-09 Fernando Perez <fperez@colorado.edu>
5418 2002-07-09 Fernando Perez <fperez@colorado.edu>
5413
5419
5414 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5420 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5415 reporting exceptions (it's a bug in inspect.py, I just set a
5421 reporting exceptions (it's a bug in inspect.py, I just set a
5416 workaround).
5422 workaround).
5417
5423
5418 2002-07-08 Fernando Perez <fperez@colorado.edu>
5424 2002-07-08 Fernando Perez <fperez@colorado.edu>
5419
5425
5420 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5426 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5421 __IPYTHON__ in __builtins__ to show up in user_ns.
5427 __IPYTHON__ in __builtins__ to show up in user_ns.
5422
5428
5423 2002-07-03 Fernando Perez <fperez@colorado.edu>
5429 2002-07-03 Fernando Perez <fperez@colorado.edu>
5424
5430
5425 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5431 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5426 name from @gp_set_instance to @gp_set_default.
5432 name from @gp_set_instance to @gp_set_default.
5427
5433
5428 * IPython/ipmaker.py (make_IPython): default editor value set to
5434 * IPython/ipmaker.py (make_IPython): default editor value set to
5429 '0' (a string), to match the rc file. Otherwise will crash when
5435 '0' (a string), to match the rc file. Otherwise will crash when
5430 .strip() is called on it.
5436 .strip() is called on it.
5431
5437
5432
5438
5433 2002-06-28 Fernando Perez <fperez@colorado.edu>
5439 2002-06-28 Fernando Perez <fperez@colorado.edu>
5434
5440
5435 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5441 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5436 of files in current directory when a file is executed via
5442 of files in current directory when a file is executed via
5437 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5443 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5438
5444
5439 * setup.py (manfiles): fix for rpm builds, submitted by RA
5445 * setup.py (manfiles): fix for rpm builds, submitted by RA
5440 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5446 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5441
5447
5442 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5448 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5443 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5449 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5444 string!). A. Schmolck caught this one.
5450 string!). A. Schmolck caught this one.
5445
5451
5446 2002-06-27 Fernando Perez <fperez@colorado.edu>
5452 2002-06-27 Fernando Perez <fperez@colorado.edu>
5447
5453
5448 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5454 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5449 defined files at the cmd line. __name__ wasn't being set to
5455 defined files at the cmd line. __name__ wasn't being set to
5450 __main__.
5456 __main__.
5451
5457
5452 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5458 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5453 regular lists and tuples besides Numeric arrays.
5459 regular lists and tuples besides Numeric arrays.
5454
5460
5455 * IPython/Prompts.py (CachedOutput.__call__): Added output
5461 * IPython/Prompts.py (CachedOutput.__call__): Added output
5456 supression for input ending with ';'. Similar to Mathematica and
5462 supression for input ending with ';'. Similar to Mathematica and
5457 Matlab. The _* vars and Out[] list are still updated, just like
5463 Matlab. The _* vars and Out[] list are still updated, just like
5458 Mathematica behaves.
5464 Mathematica behaves.
5459
5465
5460 2002-06-25 Fernando Perez <fperez@colorado.edu>
5466 2002-06-25 Fernando Perez <fperez@colorado.edu>
5461
5467
5462 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5468 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5463 .ini extensions for profiels under Windows.
5469 .ini extensions for profiels under Windows.
5464
5470
5465 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5471 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5466 string form. Fix contributed by Alexander Schmolck
5472 string form. Fix contributed by Alexander Schmolck
5467 <a.schmolck-AT-gmx.net>
5473 <a.schmolck-AT-gmx.net>
5468
5474
5469 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5475 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5470 pre-configured Gnuplot instance.
5476 pre-configured Gnuplot instance.
5471
5477
5472 2002-06-21 Fernando Perez <fperez@colorado.edu>
5478 2002-06-21 Fernando Perez <fperez@colorado.edu>
5473
5479
5474 * IPython/numutils.py (exp_safe): new function, works around the
5480 * IPython/numutils.py (exp_safe): new function, works around the
5475 underflow problems in Numeric.
5481 underflow problems in Numeric.
5476 (log2): New fn. Safe log in base 2: returns exact integer answer
5482 (log2): New fn. Safe log in base 2: returns exact integer answer
5477 for exact integer powers of 2.
5483 for exact integer powers of 2.
5478
5484
5479 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5485 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5480 properly.
5486 properly.
5481
5487
5482 2002-06-20 Fernando Perez <fperez@colorado.edu>
5488 2002-06-20 Fernando Perez <fperez@colorado.edu>
5483
5489
5484 * IPython/genutils.py (timing): new function like
5490 * IPython/genutils.py (timing): new function like
5485 Mathematica's. Similar to time_test, but returns more info.
5491 Mathematica's. Similar to time_test, but returns more info.
5486
5492
5487 2002-06-18 Fernando Perez <fperez@colorado.edu>
5493 2002-06-18 Fernando Perez <fperez@colorado.edu>
5488
5494
5489 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5495 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5490 according to Mike Heeter's suggestions.
5496 according to Mike Heeter's suggestions.
5491
5497
5492 2002-06-16 Fernando Perez <fperez@colorado.edu>
5498 2002-06-16 Fernando Perez <fperez@colorado.edu>
5493
5499
5494 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5500 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5495 system. GnuplotMagic is gone as a user-directory option. New files
5501 system. GnuplotMagic is gone as a user-directory option. New files
5496 make it easier to use all the gnuplot stuff both from external
5502 make it easier to use all the gnuplot stuff both from external
5497 programs as well as from IPython. Had to rewrite part of
5503 programs as well as from IPython. Had to rewrite part of
5498 hardcopy() b/c of a strange bug: often the ps files simply don't
5504 hardcopy() b/c of a strange bug: often the ps files simply don't
5499 get created, and require a repeat of the command (often several
5505 get created, and require a repeat of the command (often several
5500 times).
5506 times).
5501
5507
5502 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5508 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5503 resolve output channel at call time, so that if sys.stderr has
5509 resolve output channel at call time, so that if sys.stderr has
5504 been redirected by user this gets honored.
5510 been redirected by user this gets honored.
5505
5511
5506 2002-06-13 Fernando Perez <fperez@colorado.edu>
5512 2002-06-13 Fernando Perez <fperez@colorado.edu>
5507
5513
5508 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5514 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5509 IPShell. Kept a copy with the old names to avoid breaking people's
5515 IPShell. Kept a copy with the old names to avoid breaking people's
5510 embedded code.
5516 embedded code.
5511
5517
5512 * IPython/ipython: simplified it to the bare minimum after
5518 * IPython/ipython: simplified it to the bare minimum after
5513 Holger's suggestions. Added info about how to use it in
5519 Holger's suggestions. Added info about how to use it in
5514 PYTHONSTARTUP.
5520 PYTHONSTARTUP.
5515
5521
5516 * IPython/Shell.py (IPythonShell): changed the options passing
5522 * IPython/Shell.py (IPythonShell): changed the options passing
5517 from a string with funky %s replacements to a straight list. Maybe
5523 from a string with funky %s replacements to a straight list. Maybe
5518 a bit more typing, but it follows sys.argv conventions, so there's
5524 a bit more typing, but it follows sys.argv conventions, so there's
5519 less special-casing to remember.
5525 less special-casing to remember.
5520
5526
5521 2002-06-12 Fernando Perez <fperez@colorado.edu>
5527 2002-06-12 Fernando Perez <fperez@colorado.edu>
5522
5528
5523 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5529 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
5524 command. Thanks to a suggestion by Mike Heeter.
5530 command. Thanks to a suggestion by Mike Heeter.
5525 (Magic.magic_pfile): added behavior to look at filenames if given
5531 (Magic.magic_pfile): added behavior to look at filenames if given
5526 arg is not a defined object.
5532 arg is not a defined object.
5527 (Magic.magic_save): New @save function to save code snippets. Also
5533 (Magic.magic_save): New @save function to save code snippets. Also
5528 a Mike Heeter idea.
5534 a Mike Heeter idea.
5529
5535
5530 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5536 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
5531 plot() and replot(). Much more convenient now, especially for
5537 plot() and replot(). Much more convenient now, especially for
5532 interactive use.
5538 interactive use.
5533
5539
5534 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5540 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
5535 filenames.
5541 filenames.
5536
5542
5537 2002-06-02 Fernando Perez <fperez@colorado.edu>
5543 2002-06-02 Fernando Perez <fperez@colorado.edu>
5538
5544
5539 * IPython/Struct.py (Struct.__init__): modified to admit
5545 * IPython/Struct.py (Struct.__init__): modified to admit
5540 initialization via another struct.
5546 initialization via another struct.
5541
5547
5542 * IPython/genutils.py (SystemExec.__init__): New stateful
5548 * IPython/genutils.py (SystemExec.__init__): New stateful
5543 interface to xsys and bq. Useful for writing system scripts.
5549 interface to xsys and bq. Useful for writing system scripts.
5544
5550
5545 2002-05-30 Fernando Perez <fperez@colorado.edu>
5551 2002-05-30 Fernando Perez <fperez@colorado.edu>
5546
5552
5547 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5553 * MANIFEST.in: Changed docfile selection to exclude all the lyx
5548 documents. This will make the user download smaller (it's getting
5554 documents. This will make the user download smaller (it's getting
5549 too big).
5555 too big).
5550
5556
5551 2002-05-29 Fernando Perez <fperez@colorado.edu>
5557 2002-05-29 Fernando Perez <fperez@colorado.edu>
5552
5558
5553 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5559 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
5554 fix problems with shelve and pickle. Seems to work, but I don't
5560 fix problems with shelve and pickle. Seems to work, but I don't
5555 know if corner cases break it. Thanks to Mike Heeter
5561 know if corner cases break it. Thanks to Mike Heeter
5556 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5562 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
5557
5563
5558 2002-05-24 Fernando Perez <fperez@colorado.edu>
5564 2002-05-24 Fernando Perez <fperez@colorado.edu>
5559
5565
5560 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5566 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
5561 macros having broken.
5567 macros having broken.
5562
5568
5563 2002-05-21 Fernando Perez <fperez@colorado.edu>
5569 2002-05-21 Fernando Perez <fperez@colorado.edu>
5564
5570
5565 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5571 * IPython/Magic.py (Magic.magic_logstart): fixed recently
5566 introduced logging bug: all history before logging started was
5572 introduced logging bug: all history before logging started was
5567 being written one character per line! This came from the redesign
5573 being written one character per line! This came from the redesign
5568 of the input history as a special list which slices to strings,
5574 of the input history as a special list which slices to strings,
5569 not to lists.
5575 not to lists.
5570
5576
5571 2002-05-20 Fernando Perez <fperez@colorado.edu>
5577 2002-05-20 Fernando Perez <fperez@colorado.edu>
5572
5578
5573 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5579 * IPython/Prompts.py (CachedOutput.__init__): made the color table
5574 be an attribute of all classes in this module. The design of these
5580 be an attribute of all classes in this module. The design of these
5575 classes needs some serious overhauling.
5581 classes needs some serious overhauling.
5576
5582
5577 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5583 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
5578 which was ignoring '_' in option names.
5584 which was ignoring '_' in option names.
5579
5585
5580 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5586 * IPython/ultraTB.py (FormattedTB.__init__): Changed
5581 'Verbose_novars' to 'Context' and made it the new default. It's a
5587 'Verbose_novars' to 'Context' and made it the new default. It's a
5582 bit more readable and also safer than verbose.
5588 bit more readable and also safer than verbose.
5583
5589
5584 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5590 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
5585 triple-quoted strings.
5591 triple-quoted strings.
5586
5592
5587 * IPython/OInspect.py (__all__): new module exposing the object
5593 * IPython/OInspect.py (__all__): new module exposing the object
5588 introspection facilities. Now the corresponding magics are dummy
5594 introspection facilities. Now the corresponding magics are dummy
5589 wrappers around this. Having this module will make it much easier
5595 wrappers around this. Having this module will make it much easier
5590 to put these functions into our modified pdb.
5596 to put these functions into our modified pdb.
5591 This new object inspector system uses the new colorizing module,
5597 This new object inspector system uses the new colorizing module,
5592 so source code and other things are nicely syntax highlighted.
5598 so source code and other things are nicely syntax highlighted.
5593
5599
5594 2002-05-18 Fernando Perez <fperez@colorado.edu>
5600 2002-05-18 Fernando Perez <fperez@colorado.edu>
5595
5601
5596 * IPython/ColorANSI.py: Split the coloring tools into a separate
5602 * IPython/ColorANSI.py: Split the coloring tools into a separate
5597 module so I can use them in other code easier (they were part of
5603 module so I can use them in other code easier (they were part of
5598 ultraTB).
5604 ultraTB).
5599
5605
5600 2002-05-17 Fernando Perez <fperez@colorado.edu>
5606 2002-05-17 Fernando Perez <fperez@colorado.edu>
5601
5607
5602 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5608 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5603 fixed it to set the global 'g' also to the called instance, as
5609 fixed it to set the global 'g' also to the called instance, as
5604 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5610 long as 'g' was still a gnuplot instance (so it doesn't overwrite
5605 user's 'g' variables).
5611 user's 'g' variables).
5606
5612
5607 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5613 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
5608 global variables (aliases to _ih,_oh) so that users which expect
5614 global variables (aliases to _ih,_oh) so that users which expect
5609 In[5] or Out[7] to work aren't unpleasantly surprised.
5615 In[5] or Out[7] to work aren't unpleasantly surprised.
5610 (InputList.__getslice__): new class to allow executing slices of
5616 (InputList.__getslice__): new class to allow executing slices of
5611 input history directly. Very simple class, complements the use of
5617 input history directly. Very simple class, complements the use of
5612 macros.
5618 macros.
5613
5619
5614 2002-05-16 Fernando Perez <fperez@colorado.edu>
5620 2002-05-16 Fernando Perez <fperez@colorado.edu>
5615
5621
5616 * setup.py (docdirbase): make doc directory be just doc/IPython
5622 * setup.py (docdirbase): make doc directory be just doc/IPython
5617 without version numbers, it will reduce clutter for users.
5623 without version numbers, it will reduce clutter for users.
5618
5624
5619 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5625 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
5620 execfile call to prevent possible memory leak. See for details:
5626 execfile call to prevent possible memory leak. See for details:
5621 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5627 http://mail.python.org/pipermail/python-list/2002-February/088476.html
5622
5628
5623 2002-05-15 Fernando Perez <fperez@colorado.edu>
5629 2002-05-15 Fernando Perez <fperez@colorado.edu>
5624
5630
5625 * IPython/Magic.py (Magic.magic_psource): made the object
5631 * IPython/Magic.py (Magic.magic_psource): made the object
5626 introspection names be more standard: pdoc, pdef, pfile and
5632 introspection names be more standard: pdoc, pdef, pfile and
5627 psource. They all print/page their output, and it makes
5633 psource. They all print/page their output, and it makes
5628 remembering them easier. Kept old names for compatibility as
5634 remembering them easier. Kept old names for compatibility as
5629 aliases.
5635 aliases.
5630
5636
5631 2002-05-14 Fernando Perez <fperez@colorado.edu>
5637 2002-05-14 Fernando Perez <fperez@colorado.edu>
5632
5638
5633 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5639 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5634 what the mouse problem was. The trick is to use gnuplot with temp
5640 what the mouse problem was. The trick is to use gnuplot with temp
5635 files and NOT with pipes (for data communication), because having
5641 files and NOT with pipes (for data communication), because having
5636 both pipes and the mouse on is bad news.
5642 both pipes and the mouse on is bad news.
5637
5643
5638 2002-05-13 Fernando Perez <fperez@colorado.edu>
5644 2002-05-13 Fernando Perez <fperez@colorado.edu>
5639
5645
5640 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5646 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5641 bug. Information would be reported about builtins even when
5647 bug. Information would be reported about builtins even when
5642 user-defined functions overrode them.
5648 user-defined functions overrode them.
5643
5649
5644 2002-05-11 Fernando Perez <fperez@colorado.edu>
5650 2002-05-11 Fernando Perez <fperez@colorado.edu>
5645
5651
5646 * IPython/__init__.py (__all__): removed FlexCompleter from
5652 * IPython/__init__.py (__all__): removed FlexCompleter from
5647 __all__ so that things don't fail in platforms without readline.
5653 __all__ so that things don't fail in platforms without readline.
5648
5654
5649 2002-05-10 Fernando Perez <fperez@colorado.edu>
5655 2002-05-10 Fernando Perez <fperez@colorado.edu>
5650
5656
5651 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5657 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5652 it requires Numeric, effectively making Numeric a dependency for
5658 it requires Numeric, effectively making Numeric a dependency for
5653 IPython.
5659 IPython.
5654
5660
5655 * Released 0.2.13
5661 * Released 0.2.13
5656
5662
5657 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5663 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5658 profiler interface. Now all the major options from the profiler
5664 profiler interface. Now all the major options from the profiler
5659 module are directly supported in IPython, both for single
5665 module are directly supported in IPython, both for single
5660 expressions (@prun) and for full programs (@run -p).
5666 expressions (@prun) and for full programs (@run -p).
5661
5667
5662 2002-05-09 Fernando Perez <fperez@colorado.edu>
5668 2002-05-09 Fernando Perez <fperez@colorado.edu>
5663
5669
5664 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5670 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5665 magic properly formatted for screen.
5671 magic properly formatted for screen.
5666
5672
5667 * setup.py (make_shortcut): Changed things to put pdf version in
5673 * setup.py (make_shortcut): Changed things to put pdf version in
5668 doc/ instead of doc/manual (had to change lyxport a bit).
5674 doc/ instead of doc/manual (had to change lyxport a bit).
5669
5675
5670 * IPython/Magic.py (Profile.string_stats): made profile runs go
5676 * IPython/Magic.py (Profile.string_stats): made profile runs go
5671 through pager (they are long and a pager allows searching, saving,
5677 through pager (they are long and a pager allows searching, saving,
5672 etc.)
5678 etc.)
5673
5679
5674 2002-05-08 Fernando Perez <fperez@colorado.edu>
5680 2002-05-08 Fernando Perez <fperez@colorado.edu>
5675
5681
5676 * Released 0.2.12
5682 * Released 0.2.12
5677
5683
5678 2002-05-06 Fernando Perez <fperez@colorado.edu>
5684 2002-05-06 Fernando Perez <fperez@colorado.edu>
5679
5685
5680 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5686 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5681 introduced); 'hist n1 n2' was broken.
5687 introduced); 'hist n1 n2' was broken.
5682 (Magic.magic_pdb): added optional on/off arguments to @pdb
5688 (Magic.magic_pdb): added optional on/off arguments to @pdb
5683 (Magic.magic_run): added option -i to @run, which executes code in
5689 (Magic.magic_run): added option -i to @run, which executes code in
5684 the IPython namespace instead of a clean one. Also added @irun as
5690 the IPython namespace instead of a clean one. Also added @irun as
5685 an alias to @run -i.
5691 an alias to @run -i.
5686
5692
5687 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5693 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5688 fixed (it didn't really do anything, the namespaces were wrong).
5694 fixed (it didn't really do anything, the namespaces were wrong).
5689
5695
5690 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5696 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5691
5697
5692 * IPython/__init__.py (__all__): Fixed package namespace, now
5698 * IPython/__init__.py (__all__): Fixed package namespace, now
5693 'import IPython' does give access to IPython.<all> as
5699 'import IPython' does give access to IPython.<all> as
5694 expected. Also renamed __release__ to Release.
5700 expected. Also renamed __release__ to Release.
5695
5701
5696 * IPython/Debugger.py (__license__): created new Pdb class which
5702 * IPython/Debugger.py (__license__): created new Pdb class which
5697 functions like a drop-in for the normal pdb.Pdb but does NOT
5703 functions like a drop-in for the normal pdb.Pdb but does NOT
5698 import readline by default. This way it doesn't muck up IPython's
5704 import readline by default. This way it doesn't muck up IPython's
5699 readline handling, and now tab-completion finally works in the
5705 readline handling, and now tab-completion finally works in the
5700 debugger -- sort of. It completes things globally visible, but the
5706 debugger -- sort of. It completes things globally visible, but the
5701 completer doesn't track the stack as pdb walks it. That's a bit
5707 completer doesn't track the stack as pdb walks it. That's a bit
5702 tricky, and I'll have to implement it later.
5708 tricky, and I'll have to implement it later.
5703
5709
5704 2002-05-05 Fernando Perez <fperez@colorado.edu>
5710 2002-05-05 Fernando Perez <fperez@colorado.edu>
5705
5711
5706 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5712 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5707 magic docstrings when printed via ? (explicit \'s were being
5713 magic docstrings when printed via ? (explicit \'s were being
5708 printed).
5714 printed).
5709
5715
5710 * IPython/ipmaker.py (make_IPython): fixed namespace
5716 * IPython/ipmaker.py (make_IPython): fixed namespace
5711 identification bug. Now variables loaded via logs or command-line
5717 identification bug. Now variables loaded via logs or command-line
5712 files are recognized in the interactive namespace by @who.
5718 files are recognized in the interactive namespace by @who.
5713
5719
5714 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5720 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5715 log replay system stemming from the string form of Structs.
5721 log replay system stemming from the string form of Structs.
5716
5722
5717 * IPython/Magic.py (Macro.__init__): improved macros to properly
5723 * IPython/Magic.py (Macro.__init__): improved macros to properly
5718 handle magic commands in them.
5724 handle magic commands in them.
5719 (Magic.magic_logstart): usernames are now expanded so 'logstart
5725 (Magic.magic_logstart): usernames are now expanded so 'logstart
5720 ~/mylog' now works.
5726 ~/mylog' now works.
5721
5727
5722 * IPython/iplib.py (complete): fixed bug where paths starting with
5728 * IPython/iplib.py (complete): fixed bug where paths starting with
5723 '/' would be completed as magic names.
5729 '/' would be completed as magic names.
5724
5730
5725 2002-05-04 Fernando Perez <fperez@colorado.edu>
5731 2002-05-04 Fernando Perez <fperez@colorado.edu>
5726
5732
5727 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5733 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5728 allow running full programs under the profiler's control.
5734 allow running full programs under the profiler's control.
5729
5735
5730 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5736 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5731 mode to report exceptions verbosely but without formatting
5737 mode to report exceptions verbosely but without formatting
5732 variables. This addresses the issue of ipython 'freezing' (it's
5738 variables. This addresses the issue of ipython 'freezing' (it's
5733 not frozen, but caught in an expensive formatting loop) when huge
5739 not frozen, but caught in an expensive formatting loop) when huge
5734 variables are in the context of an exception.
5740 variables are in the context of an exception.
5735 (VerboseTB.text): Added '--->' markers at line where exception was
5741 (VerboseTB.text): Added '--->' markers at line where exception was
5736 triggered. Much clearer to read, especially in NoColor modes.
5742 triggered. Much clearer to read, especially in NoColor modes.
5737
5743
5738 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5744 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5739 implemented in reverse when changing to the new parse_options().
5745 implemented in reverse when changing to the new parse_options().
5740
5746
5741 2002-05-03 Fernando Perez <fperez@colorado.edu>
5747 2002-05-03 Fernando Perez <fperez@colorado.edu>
5742
5748
5743 * IPython/Magic.py (Magic.parse_options): new function so that
5749 * IPython/Magic.py (Magic.parse_options): new function so that
5744 magics can parse options easier.
5750 magics can parse options easier.
5745 (Magic.magic_prun): new function similar to profile.run(),
5751 (Magic.magic_prun): new function similar to profile.run(),
5746 suggested by Chris Hart.
5752 suggested by Chris Hart.
5747 (Magic.magic_cd): fixed behavior so that it only changes if
5753 (Magic.magic_cd): fixed behavior so that it only changes if
5748 directory actually is in history.
5754 directory actually is in history.
5749
5755
5750 * IPython/usage.py (__doc__): added information about potential
5756 * IPython/usage.py (__doc__): added information about potential
5751 slowness of Verbose exception mode when there are huge data
5757 slowness of Verbose exception mode when there are huge data
5752 structures to be formatted (thanks to Archie Paulson).
5758 structures to be formatted (thanks to Archie Paulson).
5753
5759
5754 * IPython/ipmaker.py (make_IPython): Changed default logging
5760 * IPython/ipmaker.py (make_IPython): Changed default logging
5755 (when simply called with -log) to use curr_dir/ipython.log in
5761 (when simply called with -log) to use curr_dir/ipython.log in
5756 rotate mode. Fixed crash which was occuring with -log before
5762 rotate mode. Fixed crash which was occuring with -log before
5757 (thanks to Jim Boyle).
5763 (thanks to Jim Boyle).
5758
5764
5759 2002-05-01 Fernando Perez <fperez@colorado.edu>
5765 2002-05-01 Fernando Perez <fperez@colorado.edu>
5760
5766
5761 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5767 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5762 was nasty -- though somewhat of a corner case).
5768 was nasty -- though somewhat of a corner case).
5763
5769
5764 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5770 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5765 text (was a bug).
5771 text (was a bug).
5766
5772
5767 2002-04-30 Fernando Perez <fperez@colorado.edu>
5773 2002-04-30 Fernando Perez <fperez@colorado.edu>
5768
5774
5769 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5775 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5770 a print after ^D or ^C from the user so that the In[] prompt
5776 a print after ^D or ^C from the user so that the In[] prompt
5771 doesn't over-run the gnuplot one.
5777 doesn't over-run the gnuplot one.
5772
5778
5773 2002-04-29 Fernando Perez <fperez@colorado.edu>
5779 2002-04-29 Fernando Perez <fperez@colorado.edu>
5774
5780
5775 * Released 0.2.10
5781 * Released 0.2.10
5776
5782
5777 * IPython/__release__.py (version): get date dynamically.
5783 * IPython/__release__.py (version): get date dynamically.
5778
5784
5779 * Misc. documentation updates thanks to Arnd's comments. Also ran
5785 * Misc. documentation updates thanks to Arnd's comments. Also ran
5780 a full spellcheck on the manual (hadn't been done in a while).
5786 a full spellcheck on the manual (hadn't been done in a while).
5781
5787
5782 2002-04-27 Fernando Perez <fperez@colorado.edu>
5788 2002-04-27 Fernando Perez <fperez@colorado.edu>
5783
5789
5784 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5790 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5785 starting a log in mid-session would reset the input history list.
5791 starting a log in mid-session would reset the input history list.
5786
5792
5787 2002-04-26 Fernando Perez <fperez@colorado.edu>
5793 2002-04-26 Fernando Perez <fperez@colorado.edu>
5788
5794
5789 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5795 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5790 all files were being included in an update. Now anything in
5796 all files were being included in an update. Now anything in
5791 UserConfig that matches [A-Za-z]*.py will go (this excludes
5797 UserConfig that matches [A-Za-z]*.py will go (this excludes
5792 __init__.py)
5798 __init__.py)
5793
5799
5794 2002-04-25 Fernando Perez <fperez@colorado.edu>
5800 2002-04-25 Fernando Perez <fperez@colorado.edu>
5795
5801
5796 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5802 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5797 to __builtins__ so that any form of embedded or imported code can
5803 to __builtins__ so that any form of embedded or imported code can
5798 test for being inside IPython.
5804 test for being inside IPython.
5799
5805
5800 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5806 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5801 changed to GnuplotMagic because it's now an importable module,
5807 changed to GnuplotMagic because it's now an importable module,
5802 this makes the name follow that of the standard Gnuplot module.
5808 this makes the name follow that of the standard Gnuplot module.
5803 GnuplotMagic can now be loaded at any time in mid-session.
5809 GnuplotMagic can now be loaded at any time in mid-session.
5804
5810
5805 2002-04-24 Fernando Perez <fperez@colorado.edu>
5811 2002-04-24 Fernando Perez <fperez@colorado.edu>
5806
5812
5807 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5813 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5808 the globals (IPython has its own namespace) and the
5814 the globals (IPython has its own namespace) and the
5809 PhysicalQuantity stuff is much better anyway.
5815 PhysicalQuantity stuff is much better anyway.
5810
5816
5811 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5817 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5812 embedding example to standard user directory for
5818 embedding example to standard user directory for
5813 distribution. Also put it in the manual.
5819 distribution. Also put it in the manual.
5814
5820
5815 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5821 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5816 instance as first argument (so it doesn't rely on some obscure
5822 instance as first argument (so it doesn't rely on some obscure
5817 hidden global).
5823 hidden global).
5818
5824
5819 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5825 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5820 delimiters. While it prevents ().TAB from working, it allows
5826 delimiters. While it prevents ().TAB from working, it allows
5821 completions in open (... expressions. This is by far a more common
5827 completions in open (... expressions. This is by far a more common
5822 case.
5828 case.
5823
5829
5824 2002-04-23 Fernando Perez <fperez@colorado.edu>
5830 2002-04-23 Fernando Perez <fperez@colorado.edu>
5825
5831
5826 * IPython/Extensions/InterpreterPasteInput.py: new
5832 * IPython/Extensions/InterpreterPasteInput.py: new
5827 syntax-processing module for pasting lines with >>> or ... at the
5833 syntax-processing module for pasting lines with >>> or ... at the
5828 start.
5834 start.
5829
5835
5830 * IPython/Extensions/PhysicalQ_Interactive.py
5836 * IPython/Extensions/PhysicalQ_Interactive.py
5831 (PhysicalQuantityInteractive.__int__): fixed to work with either
5837 (PhysicalQuantityInteractive.__int__): fixed to work with either
5832 Numeric or math.
5838 Numeric or math.
5833
5839
5834 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5840 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5835 provided profiles. Now we have:
5841 provided profiles. Now we have:
5836 -math -> math module as * and cmath with its own namespace.
5842 -math -> math module as * and cmath with its own namespace.
5837 -numeric -> Numeric as *, plus gnuplot & grace
5843 -numeric -> Numeric as *, plus gnuplot & grace
5838 -physics -> same as before
5844 -physics -> same as before
5839
5845
5840 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5846 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5841 user-defined magics wouldn't be found by @magic if they were
5847 user-defined magics wouldn't be found by @magic if they were
5842 defined as class methods. Also cleaned up the namespace search
5848 defined as class methods. Also cleaned up the namespace search
5843 logic and the string building (to use %s instead of many repeated
5849 logic and the string building (to use %s instead of many repeated
5844 string adds).
5850 string adds).
5845
5851
5846 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5852 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5847 of user-defined magics to operate with class methods (cleaner, in
5853 of user-defined magics to operate with class methods (cleaner, in
5848 line with the gnuplot code).
5854 line with the gnuplot code).
5849
5855
5850 2002-04-22 Fernando Perez <fperez@colorado.edu>
5856 2002-04-22 Fernando Perez <fperez@colorado.edu>
5851
5857
5852 * setup.py: updated dependency list so that manual is updated when
5858 * setup.py: updated dependency list so that manual is updated when
5853 all included files change.
5859 all included files change.
5854
5860
5855 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5861 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5856 the delimiter removal option (the fix is ugly right now).
5862 the delimiter removal option (the fix is ugly right now).
5857
5863
5858 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5864 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5859 all of the math profile (quicker loading, no conflict between
5865 all of the math profile (quicker loading, no conflict between
5860 g-9.8 and g-gnuplot).
5866 g-9.8 and g-gnuplot).
5861
5867
5862 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5868 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5863 name of post-mortem files to IPython_crash_report.txt.
5869 name of post-mortem files to IPython_crash_report.txt.
5864
5870
5865 * Cleanup/update of the docs. Added all the new readline info and
5871 * Cleanup/update of the docs. Added all the new readline info and
5866 formatted all lists as 'real lists'.
5872 formatted all lists as 'real lists'.
5867
5873
5868 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5874 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5869 tab-completion options, since the full readline parse_and_bind is
5875 tab-completion options, since the full readline parse_and_bind is
5870 now accessible.
5876 now accessible.
5871
5877
5872 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5878 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5873 handling of readline options. Now users can specify any string to
5879 handling of readline options. Now users can specify any string to
5874 be passed to parse_and_bind(), as well as the delimiters to be
5880 be passed to parse_and_bind(), as well as the delimiters to be
5875 removed.
5881 removed.
5876 (InteractiveShell.__init__): Added __name__ to the global
5882 (InteractiveShell.__init__): Added __name__ to the global
5877 namespace so that things like Itpl which rely on its existence
5883 namespace so that things like Itpl which rely on its existence
5878 don't crash.
5884 don't crash.
5879 (InteractiveShell._prefilter): Defined the default with a _ so
5885 (InteractiveShell._prefilter): Defined the default with a _ so
5880 that prefilter() is easier to override, while the default one
5886 that prefilter() is easier to override, while the default one
5881 remains available.
5887 remains available.
5882
5888
5883 2002-04-18 Fernando Perez <fperez@colorado.edu>
5889 2002-04-18 Fernando Perez <fperez@colorado.edu>
5884
5890
5885 * Added information about pdb in the docs.
5891 * Added information about pdb in the docs.
5886
5892
5887 2002-04-17 Fernando Perez <fperez@colorado.edu>
5893 2002-04-17 Fernando Perez <fperez@colorado.edu>
5888
5894
5889 * IPython/ipmaker.py (make_IPython): added rc_override option to
5895 * IPython/ipmaker.py (make_IPython): added rc_override option to
5890 allow passing config options at creation time which may override
5896 allow passing config options at creation time which may override
5891 anything set in the config files or command line. This is
5897 anything set in the config files or command line. This is
5892 particularly useful for configuring embedded instances.
5898 particularly useful for configuring embedded instances.
5893
5899
5894 2002-04-15 Fernando Perez <fperez@colorado.edu>
5900 2002-04-15 Fernando Perez <fperez@colorado.edu>
5895
5901
5896 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5902 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5897 crash embedded instances because of the input cache falling out of
5903 crash embedded instances because of the input cache falling out of
5898 sync with the output counter.
5904 sync with the output counter.
5899
5905
5900 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5906 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5901 mode which calls pdb after an uncaught exception in IPython itself.
5907 mode which calls pdb after an uncaught exception in IPython itself.
5902
5908
5903 2002-04-14 Fernando Perez <fperez@colorado.edu>
5909 2002-04-14 Fernando Perez <fperez@colorado.edu>
5904
5910
5905 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5911 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5906 readline, fix it back after each call.
5912 readline, fix it back after each call.
5907
5913
5908 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5914 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5909 method to force all access via __call__(), which guarantees that
5915 method to force all access via __call__(), which guarantees that
5910 traceback references are properly deleted.
5916 traceback references are properly deleted.
5911
5917
5912 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5918 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5913 improve printing when pprint is in use.
5919 improve printing when pprint is in use.
5914
5920
5915 2002-04-13 Fernando Perez <fperez@colorado.edu>
5921 2002-04-13 Fernando Perez <fperez@colorado.edu>
5916
5922
5917 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5923 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5918 exceptions aren't caught anymore. If the user triggers one, he
5924 exceptions aren't caught anymore. If the user triggers one, he
5919 should know why he's doing it and it should go all the way up,
5925 should know why he's doing it and it should go all the way up,
5920 just like any other exception. So now @abort will fully kill the
5926 just like any other exception. So now @abort will fully kill the
5921 embedded interpreter and the embedding code (unless that happens
5927 embedded interpreter and the embedding code (unless that happens
5922 to catch SystemExit).
5928 to catch SystemExit).
5923
5929
5924 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5930 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5925 and a debugger() method to invoke the interactive pdb debugger
5931 and a debugger() method to invoke the interactive pdb debugger
5926 after printing exception information. Also added the corresponding
5932 after printing exception information. Also added the corresponding
5927 -pdb option and @pdb magic to control this feature, and updated
5933 -pdb option and @pdb magic to control this feature, and updated
5928 the docs. After a suggestion from Christopher Hart
5934 the docs. After a suggestion from Christopher Hart
5929 (hart-AT-caltech.edu).
5935 (hart-AT-caltech.edu).
5930
5936
5931 2002-04-12 Fernando Perez <fperez@colorado.edu>
5937 2002-04-12 Fernando Perez <fperez@colorado.edu>
5932
5938
5933 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5939 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5934 the exception handlers defined by the user (not the CrashHandler)
5940 the exception handlers defined by the user (not the CrashHandler)
5935 so that user exceptions don't trigger an ipython bug report.
5941 so that user exceptions don't trigger an ipython bug report.
5936
5942
5937 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5943 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5938 configurable (it should have always been so).
5944 configurable (it should have always been so).
5939
5945
5940 2002-03-26 Fernando Perez <fperez@colorado.edu>
5946 2002-03-26 Fernando Perez <fperez@colorado.edu>
5941
5947
5942 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5948 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5943 and there to fix embedding namespace issues. This should all be
5949 and there to fix embedding namespace issues. This should all be
5944 done in a more elegant way.
5950 done in a more elegant way.
5945
5951
5946 2002-03-25 Fernando Perez <fperez@colorado.edu>
5952 2002-03-25 Fernando Perez <fperez@colorado.edu>
5947
5953
5948 * IPython/genutils.py (get_home_dir): Try to make it work under
5954 * IPython/genutils.py (get_home_dir): Try to make it work under
5949 win9x also.
5955 win9x also.
5950
5956
5951 2002-03-20 Fernando Perez <fperez@colorado.edu>
5957 2002-03-20 Fernando Perez <fperez@colorado.edu>
5952
5958
5953 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5959 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5954 sys.displayhook untouched upon __init__.
5960 sys.displayhook untouched upon __init__.
5955
5961
5956 2002-03-19 Fernando Perez <fperez@colorado.edu>
5962 2002-03-19 Fernando Perez <fperez@colorado.edu>
5957
5963
5958 * Released 0.2.9 (for embedding bug, basically).
5964 * Released 0.2.9 (for embedding bug, basically).
5959
5965
5960 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5966 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5961 exceptions so that enclosing shell's state can be restored.
5967 exceptions so that enclosing shell's state can be restored.
5962
5968
5963 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5969 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5964 naming conventions in the .ipython/ dir.
5970 naming conventions in the .ipython/ dir.
5965
5971
5966 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5972 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5967 from delimiters list so filenames with - in them get expanded.
5973 from delimiters list so filenames with - in them get expanded.
5968
5974
5969 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5975 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5970 sys.displayhook not being properly restored after an embedded call.
5976 sys.displayhook not being properly restored after an embedded call.
5971
5977
5972 2002-03-18 Fernando Perez <fperez@colorado.edu>
5978 2002-03-18 Fernando Perez <fperez@colorado.edu>
5973
5979
5974 * Released 0.2.8
5980 * Released 0.2.8
5975
5981
5976 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5982 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5977 some files weren't being included in a -upgrade.
5983 some files weren't being included in a -upgrade.
5978 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5984 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5979 on' so that the first tab completes.
5985 on' so that the first tab completes.
5980 (InteractiveShell.handle_magic): fixed bug with spaces around
5986 (InteractiveShell.handle_magic): fixed bug with spaces around
5981 quotes breaking many magic commands.
5987 quotes breaking many magic commands.
5982
5988
5983 * setup.py: added note about ignoring the syntax error messages at
5989 * setup.py: added note about ignoring the syntax error messages at
5984 installation.
5990 installation.
5985
5991
5986 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5992 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5987 streamlining the gnuplot interface, now there's only one magic @gp.
5993 streamlining the gnuplot interface, now there's only one magic @gp.
5988
5994
5989 2002-03-17 Fernando Perez <fperez@colorado.edu>
5995 2002-03-17 Fernando Perez <fperez@colorado.edu>
5990
5996
5991 * IPython/UserConfig/magic_gnuplot.py: new name for the
5997 * IPython/UserConfig/magic_gnuplot.py: new name for the
5992 example-magic_pm.py file. Much enhanced system, now with a shell
5998 example-magic_pm.py file. Much enhanced system, now with a shell
5993 for communicating directly with gnuplot, one command at a time.
5999 for communicating directly with gnuplot, one command at a time.
5994
6000
5995 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6001 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5996 setting __name__=='__main__'.
6002 setting __name__=='__main__'.
5997
6003
5998 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6004 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5999 mini-shell for accessing gnuplot from inside ipython. Should
6005 mini-shell for accessing gnuplot from inside ipython. Should
6000 extend it later for grace access too. Inspired by Arnd's
6006 extend it later for grace access too. Inspired by Arnd's
6001 suggestion.
6007 suggestion.
6002
6008
6003 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6009 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6004 calling magic functions with () in their arguments. Thanks to Arnd
6010 calling magic functions with () in their arguments. Thanks to Arnd
6005 Baecker for pointing this to me.
6011 Baecker for pointing this to me.
6006
6012
6007 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6013 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6008 infinitely for integer or complex arrays (only worked with floats).
6014 infinitely for integer or complex arrays (only worked with floats).
6009
6015
6010 2002-03-16 Fernando Perez <fperez@colorado.edu>
6016 2002-03-16 Fernando Perez <fperez@colorado.edu>
6011
6017
6012 * setup.py: Merged setup and setup_windows into a single script
6018 * setup.py: Merged setup and setup_windows into a single script
6013 which properly handles things for windows users.
6019 which properly handles things for windows users.
6014
6020
6015 2002-03-15 Fernando Perez <fperez@colorado.edu>
6021 2002-03-15 Fernando Perez <fperez@colorado.edu>
6016
6022
6017 * Big change to the manual: now the magics are all automatically
6023 * Big change to the manual: now the magics are all automatically
6018 documented. This information is generated from their docstrings
6024 documented. This information is generated from their docstrings
6019 and put in a latex file included by the manual lyx file. This way
6025 and put in a latex file included by the manual lyx file. This way
6020 we get always up to date information for the magics. The manual
6026 we get always up to date information for the magics. The manual
6021 now also has proper version information, also auto-synced.
6027 now also has proper version information, also auto-synced.
6022
6028
6023 For this to work, an undocumented --magic_docstrings option was added.
6029 For this to work, an undocumented --magic_docstrings option was added.
6024
6030
6025 2002-03-13 Fernando Perez <fperez@colorado.edu>
6031 2002-03-13 Fernando Perez <fperez@colorado.edu>
6026
6032
6027 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6033 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6028 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6034 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6029
6035
6030 2002-03-12 Fernando Perez <fperez@colorado.edu>
6036 2002-03-12 Fernando Perez <fperez@colorado.edu>
6031
6037
6032 * IPython/ultraTB.py (TermColors): changed color escapes again to
6038 * IPython/ultraTB.py (TermColors): changed color escapes again to
6033 fix the (old, reintroduced) line-wrapping bug. Basically, if
6039 fix the (old, reintroduced) line-wrapping bug. Basically, if
6034 \001..\002 aren't given in the color escapes, lines get wrapped
6040 \001..\002 aren't given in the color escapes, lines get wrapped
6035 weirdly. But giving those screws up old xterms and emacs terms. So
6041 weirdly. But giving those screws up old xterms and emacs terms. So
6036 I added some logic for emacs terms to be ok, but I can't identify old
6042 I added some logic for emacs terms to be ok, but I can't identify old
6037 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6043 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6038
6044
6039 2002-03-10 Fernando Perez <fperez@colorado.edu>
6045 2002-03-10 Fernando Perez <fperez@colorado.edu>
6040
6046
6041 * IPython/usage.py (__doc__): Various documentation cleanups and
6047 * IPython/usage.py (__doc__): Various documentation cleanups and
6042 updates, both in usage docstrings and in the manual.
6048 updates, both in usage docstrings and in the manual.
6043
6049
6044 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6050 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6045 handling of caching. Set minimum acceptabe value for having a
6051 handling of caching. Set minimum acceptabe value for having a
6046 cache at 20 values.
6052 cache at 20 values.
6047
6053
6048 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6054 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6049 install_first_time function to a method, renamed it and added an
6055 install_first_time function to a method, renamed it and added an
6050 'upgrade' mode. Now people can update their config directory with
6056 'upgrade' mode. Now people can update their config directory with
6051 a simple command line switch (-upgrade, also new).
6057 a simple command line switch (-upgrade, also new).
6052
6058
6053 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6059 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6054 @file (convenient for automagic users under Python >= 2.2).
6060 @file (convenient for automagic users under Python >= 2.2).
6055 Removed @files (it seemed more like a plural than an abbrev. of
6061 Removed @files (it seemed more like a plural than an abbrev. of
6056 'file show').
6062 'file show').
6057
6063
6058 * IPython/iplib.py (install_first_time): Fixed crash if there were
6064 * IPython/iplib.py (install_first_time): Fixed crash if there were
6059 backup files ('~') in .ipython/ install directory.
6065 backup files ('~') in .ipython/ install directory.
6060
6066
6061 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6067 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6062 system. Things look fine, but these changes are fairly
6068 system. Things look fine, but these changes are fairly
6063 intrusive. Test them for a few days.
6069 intrusive. Test them for a few days.
6064
6070
6065 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6071 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6066 the prompts system. Now all in/out prompt strings are user
6072 the prompts system. Now all in/out prompt strings are user
6067 controllable. This is particularly useful for embedding, as one
6073 controllable. This is particularly useful for embedding, as one
6068 can tag embedded instances with particular prompts.
6074 can tag embedded instances with particular prompts.
6069
6075
6070 Also removed global use of sys.ps1/2, which now allows nested
6076 Also removed global use of sys.ps1/2, which now allows nested
6071 embeddings without any problems. Added command-line options for
6077 embeddings without any problems. Added command-line options for
6072 the prompt strings.
6078 the prompt strings.
6073
6079
6074 2002-03-08 Fernando Perez <fperez@colorado.edu>
6080 2002-03-08 Fernando Perez <fperez@colorado.edu>
6075
6081
6076 * IPython/UserConfig/example-embed-short.py (ipshell): added
6082 * IPython/UserConfig/example-embed-short.py (ipshell): added
6077 example file with the bare minimum code for embedding.
6083 example file with the bare minimum code for embedding.
6078
6084
6079 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6085 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6080 functionality for the embeddable shell to be activated/deactivated
6086 functionality for the embeddable shell to be activated/deactivated
6081 either globally or at each call.
6087 either globally or at each call.
6082
6088
6083 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6089 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6084 rewriting the prompt with '--->' for auto-inputs with proper
6090 rewriting the prompt with '--->' for auto-inputs with proper
6085 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6091 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6086 this is handled by the prompts class itself, as it should.
6092 this is handled by the prompts class itself, as it should.
6087
6093
6088 2002-03-05 Fernando Perez <fperez@colorado.edu>
6094 2002-03-05 Fernando Perez <fperez@colorado.edu>
6089
6095
6090 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6096 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6091 @logstart to avoid name clashes with the math log function.
6097 @logstart to avoid name clashes with the math log function.
6092
6098
6093 * Big updates to X/Emacs section of the manual.
6099 * Big updates to X/Emacs section of the manual.
6094
6100
6095 * Removed ipython_emacs. Milan explained to me how to pass
6101 * Removed ipython_emacs. Milan explained to me how to pass
6096 arguments to ipython through Emacs. Some day I'm going to end up
6102 arguments to ipython through Emacs. Some day I'm going to end up
6097 learning some lisp...
6103 learning some lisp...
6098
6104
6099 2002-03-04 Fernando Perez <fperez@colorado.edu>
6105 2002-03-04 Fernando Perez <fperez@colorado.edu>
6100
6106
6101 * IPython/ipython_emacs: Created script to be used as the
6107 * IPython/ipython_emacs: Created script to be used as the
6102 py-python-command Emacs variable so we can pass IPython
6108 py-python-command Emacs variable so we can pass IPython
6103 parameters. I can't figure out how to tell Emacs directly to pass
6109 parameters. I can't figure out how to tell Emacs directly to pass
6104 parameters to IPython, so a dummy shell script will do it.
6110 parameters to IPython, so a dummy shell script will do it.
6105
6111
6106 Other enhancements made for things to work better under Emacs'
6112 Other enhancements made for things to work better under Emacs'
6107 various types of terminals. Many thanks to Milan Zamazal
6113 various types of terminals. Many thanks to Milan Zamazal
6108 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6114 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6109
6115
6110 2002-03-01 Fernando Perez <fperez@colorado.edu>
6116 2002-03-01 Fernando Perez <fperez@colorado.edu>
6111
6117
6112 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6118 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6113 that loading of readline is now optional. This gives better
6119 that loading of readline is now optional. This gives better
6114 control to emacs users.
6120 control to emacs users.
6115
6121
6116 * IPython/ultraTB.py (__date__): Modified color escape sequences
6122 * IPython/ultraTB.py (__date__): Modified color escape sequences
6117 and now things work fine under xterm and in Emacs' term buffers
6123 and now things work fine under xterm and in Emacs' term buffers
6118 (though not shell ones). Well, in emacs you get colors, but all
6124 (though not shell ones). Well, in emacs you get colors, but all
6119 seem to be 'light' colors (no difference between dark and light
6125 seem to be 'light' colors (no difference between dark and light
6120 ones). But the garbage chars are gone, and also in xterms. It
6126 ones). But the garbage chars are gone, and also in xterms. It
6121 seems that now I'm using 'cleaner' ansi sequences.
6127 seems that now I'm using 'cleaner' ansi sequences.
6122
6128
6123 2002-02-21 Fernando Perez <fperez@colorado.edu>
6129 2002-02-21 Fernando Perez <fperez@colorado.edu>
6124
6130
6125 * Released 0.2.7 (mainly to publish the scoping fix).
6131 * Released 0.2.7 (mainly to publish the scoping fix).
6126
6132
6127 * IPython/Logger.py (Logger.logstate): added. A corresponding
6133 * IPython/Logger.py (Logger.logstate): added. A corresponding
6128 @logstate magic was created.
6134 @logstate magic was created.
6129
6135
6130 * IPython/Magic.py: fixed nested scoping problem under Python
6136 * IPython/Magic.py: fixed nested scoping problem under Python
6131 2.1.x (automagic wasn't working).
6137 2.1.x (automagic wasn't working).
6132
6138
6133 2002-02-20 Fernando Perez <fperez@colorado.edu>
6139 2002-02-20 Fernando Perez <fperez@colorado.edu>
6134
6140
6135 * Released 0.2.6.
6141 * Released 0.2.6.
6136
6142
6137 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6143 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6138 option so that logs can come out without any headers at all.
6144 option so that logs can come out without any headers at all.
6139
6145
6140 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6146 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6141 SciPy.
6147 SciPy.
6142
6148
6143 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6149 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6144 that embedded IPython calls don't require vars() to be explicitly
6150 that embedded IPython calls don't require vars() to be explicitly
6145 passed. Now they are extracted from the caller's frame (code
6151 passed. Now they are extracted from the caller's frame (code
6146 snatched from Eric Jones' weave). Added better documentation to
6152 snatched from Eric Jones' weave). Added better documentation to
6147 the section on embedding and the example file.
6153 the section on embedding and the example file.
6148
6154
6149 * IPython/genutils.py (page): Changed so that under emacs, it just
6155 * IPython/genutils.py (page): Changed so that under emacs, it just
6150 prints the string. You can then page up and down in the emacs
6156 prints the string. You can then page up and down in the emacs
6151 buffer itself. This is how the builtin help() works.
6157 buffer itself. This is how the builtin help() works.
6152
6158
6153 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6159 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6154 macro scoping: macros need to be executed in the user's namespace
6160 macro scoping: macros need to be executed in the user's namespace
6155 to work as if they had been typed by the user.
6161 to work as if they had been typed by the user.
6156
6162
6157 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6163 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6158 execute automatically (no need to type 'exec...'). They then
6164 execute automatically (no need to type 'exec...'). They then
6159 behave like 'true macros'. The printing system was also modified
6165 behave like 'true macros'. The printing system was also modified
6160 for this to work.
6166 for this to work.
6161
6167
6162 2002-02-19 Fernando Perez <fperez@colorado.edu>
6168 2002-02-19 Fernando Perez <fperez@colorado.edu>
6163
6169
6164 * IPython/genutils.py (page_file): new function for paging files
6170 * IPython/genutils.py (page_file): new function for paging files
6165 in an OS-independent way. Also necessary for file viewing to work
6171 in an OS-independent way. Also necessary for file viewing to work
6166 well inside Emacs buffers.
6172 well inside Emacs buffers.
6167 (page): Added checks for being in an emacs buffer.
6173 (page): Added checks for being in an emacs buffer.
6168 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6174 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6169 same bug in iplib.
6175 same bug in iplib.
6170
6176
6171 2002-02-18 Fernando Perez <fperez@colorado.edu>
6177 2002-02-18 Fernando Perez <fperez@colorado.edu>
6172
6178
6173 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6179 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6174 of readline so that IPython can work inside an Emacs buffer.
6180 of readline so that IPython can work inside an Emacs buffer.
6175
6181
6176 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6182 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6177 method signatures (they weren't really bugs, but it looks cleaner
6183 method signatures (they weren't really bugs, but it looks cleaner
6178 and keeps PyChecker happy).
6184 and keeps PyChecker happy).
6179
6185
6180 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6186 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6181 for implementing various user-defined hooks. Currently only
6187 for implementing various user-defined hooks. Currently only
6182 display is done.
6188 display is done.
6183
6189
6184 * IPython/Prompts.py (CachedOutput._display): changed display
6190 * IPython/Prompts.py (CachedOutput._display): changed display
6185 functions so that they can be dynamically changed by users easily.
6191 functions so that they can be dynamically changed by users easily.
6186
6192
6187 * IPython/Extensions/numeric_formats.py (num_display): added an
6193 * IPython/Extensions/numeric_formats.py (num_display): added an
6188 extension for printing NumPy arrays in flexible manners. It
6194 extension for printing NumPy arrays in flexible manners. It
6189 doesn't do anything yet, but all the structure is in
6195 doesn't do anything yet, but all the structure is in
6190 place. Ultimately the plan is to implement output format control
6196 place. Ultimately the plan is to implement output format control
6191 like in Octave.
6197 like in Octave.
6192
6198
6193 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6199 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6194 methods are found at run-time by all the automatic machinery.
6200 methods are found at run-time by all the automatic machinery.
6195
6201
6196 2002-02-17 Fernando Perez <fperez@colorado.edu>
6202 2002-02-17 Fernando Perez <fperez@colorado.edu>
6197
6203
6198 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6204 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6199 whole file a little.
6205 whole file a little.
6200
6206
6201 * ToDo: closed this document. Now there's a new_design.lyx
6207 * ToDo: closed this document. Now there's a new_design.lyx
6202 document for all new ideas. Added making a pdf of it for the
6208 document for all new ideas. Added making a pdf of it for the
6203 end-user distro.
6209 end-user distro.
6204
6210
6205 * IPython/Logger.py (Logger.switch_log): Created this to replace
6211 * IPython/Logger.py (Logger.switch_log): Created this to replace
6206 logon() and logoff(). It also fixes a nasty crash reported by
6212 logon() and logoff(). It also fixes a nasty crash reported by
6207 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6213 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6208
6214
6209 * IPython/iplib.py (complete): got auto-completion to work with
6215 * IPython/iplib.py (complete): got auto-completion to work with
6210 automagic (I had wanted this for a long time).
6216 automagic (I had wanted this for a long time).
6211
6217
6212 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6218 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6213 to @file, since file() is now a builtin and clashes with automagic
6219 to @file, since file() is now a builtin and clashes with automagic
6214 for @file.
6220 for @file.
6215
6221
6216 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6222 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6217 of this was previously in iplib, which had grown to more than 2000
6223 of this was previously in iplib, which had grown to more than 2000
6218 lines, way too long. No new functionality, but it makes managing
6224 lines, way too long. No new functionality, but it makes managing
6219 the code a bit easier.
6225 the code a bit easier.
6220
6226
6221 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6227 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6222 information to crash reports.
6228 information to crash reports.
6223
6229
6224 2002-02-12 Fernando Perez <fperez@colorado.edu>
6230 2002-02-12 Fernando Perez <fperez@colorado.edu>
6225
6231
6226 * Released 0.2.5.
6232 * Released 0.2.5.
6227
6233
6228 2002-02-11 Fernando Perez <fperez@colorado.edu>
6234 2002-02-11 Fernando Perez <fperez@colorado.edu>
6229
6235
6230 * Wrote a relatively complete Windows installer. It puts
6236 * Wrote a relatively complete Windows installer. It puts
6231 everything in place, creates Start Menu entries and fixes the
6237 everything in place, creates Start Menu entries and fixes the
6232 color issues. Nothing fancy, but it works.
6238 color issues. Nothing fancy, but it works.
6233
6239
6234 2002-02-10 Fernando Perez <fperez@colorado.edu>
6240 2002-02-10 Fernando Perez <fperez@colorado.edu>
6235
6241
6236 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6242 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6237 os.path.expanduser() call so that we can type @run ~/myfile.py and
6243 os.path.expanduser() call so that we can type @run ~/myfile.py and
6238 have thigs work as expected.
6244 have thigs work as expected.
6239
6245
6240 * IPython/genutils.py (page): fixed exception handling so things
6246 * IPython/genutils.py (page): fixed exception handling so things
6241 work both in Unix and Windows correctly. Quitting a pager triggers
6247 work both in Unix and Windows correctly. Quitting a pager triggers
6242 an IOError/broken pipe in Unix, and in windows not finding a pager
6248 an IOError/broken pipe in Unix, and in windows not finding a pager
6243 is also an IOError, so I had to actually look at the return value
6249 is also an IOError, so I had to actually look at the return value
6244 of the exception, not just the exception itself. Should be ok now.
6250 of the exception, not just the exception itself. Should be ok now.
6245
6251
6246 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6252 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6247 modified to allow case-insensitive color scheme changes.
6253 modified to allow case-insensitive color scheme changes.
6248
6254
6249 2002-02-09 Fernando Perez <fperez@colorado.edu>
6255 2002-02-09 Fernando Perez <fperez@colorado.edu>
6250
6256
6251 * IPython/genutils.py (native_line_ends): new function to leave
6257 * IPython/genutils.py (native_line_ends): new function to leave
6252 user config files with os-native line-endings.
6258 user config files with os-native line-endings.
6253
6259
6254 * README and manual updates.
6260 * README and manual updates.
6255
6261
6256 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6262 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6257 instead of StringType to catch Unicode strings.
6263 instead of StringType to catch Unicode strings.
6258
6264
6259 * IPython/genutils.py (filefind): fixed bug for paths with
6265 * IPython/genutils.py (filefind): fixed bug for paths with
6260 embedded spaces (very common in Windows).
6266 embedded spaces (very common in Windows).
6261
6267
6262 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6268 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6263 files under Windows, so that they get automatically associated
6269 files under Windows, so that they get automatically associated
6264 with a text editor. Windows makes it a pain to handle
6270 with a text editor. Windows makes it a pain to handle
6265 extension-less files.
6271 extension-less files.
6266
6272
6267 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6273 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6268 warning about readline only occur for Posix. In Windows there's no
6274 warning about readline only occur for Posix. In Windows there's no
6269 way to get readline, so why bother with the warning.
6275 way to get readline, so why bother with the warning.
6270
6276
6271 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6277 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6272 for __str__ instead of dir(self), since dir() changed in 2.2.
6278 for __str__ instead of dir(self), since dir() changed in 2.2.
6273
6279
6274 * Ported to Windows! Tested on XP, I suspect it should work fine
6280 * Ported to Windows! Tested on XP, I suspect it should work fine
6275 on NT/2000, but I don't think it will work on 98 et al. That
6281 on NT/2000, but I don't think it will work on 98 et al. That
6276 series of Windows is such a piece of junk anyway that I won't try
6282 series of Windows is such a piece of junk anyway that I won't try
6277 porting it there. The XP port was straightforward, showed a few
6283 porting it there. The XP port was straightforward, showed a few
6278 bugs here and there (fixed all), in particular some string
6284 bugs here and there (fixed all), in particular some string
6279 handling stuff which required considering Unicode strings (which
6285 handling stuff which required considering Unicode strings (which
6280 Windows uses). This is good, but hasn't been too tested :) No
6286 Windows uses). This is good, but hasn't been too tested :) No
6281 fancy installer yet, I'll put a note in the manual so people at
6287 fancy installer yet, I'll put a note in the manual so people at
6282 least make manually a shortcut.
6288 least make manually a shortcut.
6283
6289
6284 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6290 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6285 into a single one, "colors". This now controls both prompt and
6291 into a single one, "colors". This now controls both prompt and
6286 exception color schemes, and can be changed both at startup
6292 exception color schemes, and can be changed both at startup
6287 (either via command-line switches or via ipythonrc files) and at
6293 (either via command-line switches or via ipythonrc files) and at
6288 runtime, with @colors.
6294 runtime, with @colors.
6289 (Magic.magic_run): renamed @prun to @run and removed the old
6295 (Magic.magic_run): renamed @prun to @run and removed the old
6290 @run. The two were too similar to warrant keeping both.
6296 @run. The two were too similar to warrant keeping both.
6291
6297
6292 2002-02-03 Fernando Perez <fperez@colorado.edu>
6298 2002-02-03 Fernando Perez <fperez@colorado.edu>
6293
6299
6294 * IPython/iplib.py (install_first_time): Added comment on how to
6300 * IPython/iplib.py (install_first_time): Added comment on how to
6295 configure the color options for first-time users. Put a <return>
6301 configure the color options for first-time users. Put a <return>
6296 request at the end so that small-terminal users get a chance to
6302 request at the end so that small-terminal users get a chance to
6297 read the startup info.
6303 read the startup info.
6298
6304
6299 2002-01-23 Fernando Perez <fperez@colorado.edu>
6305 2002-01-23 Fernando Perez <fperez@colorado.edu>
6300
6306
6301 * IPython/iplib.py (CachedOutput.update): Changed output memory
6307 * IPython/iplib.py (CachedOutput.update): Changed output memory
6302 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6308 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6303 input history we still use _i. Did this b/c these variable are
6309 input history we still use _i. Did this b/c these variable are
6304 very commonly used in interactive work, so the less we need to
6310 very commonly used in interactive work, so the less we need to
6305 type the better off we are.
6311 type the better off we are.
6306 (Magic.magic_prun): updated @prun to better handle the namespaces
6312 (Magic.magic_prun): updated @prun to better handle the namespaces
6307 the file will run in, including a fix for __name__ not being set
6313 the file will run in, including a fix for __name__ not being set
6308 before.
6314 before.
6309
6315
6310 2002-01-20 Fernando Perez <fperez@colorado.edu>
6316 2002-01-20 Fernando Perez <fperez@colorado.edu>
6311
6317
6312 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6318 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6313 extra garbage for Python 2.2. Need to look more carefully into
6319 extra garbage for Python 2.2. Need to look more carefully into
6314 this later.
6320 this later.
6315
6321
6316 2002-01-19 Fernando Perez <fperez@colorado.edu>
6322 2002-01-19 Fernando Perez <fperez@colorado.edu>
6317
6323
6318 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6324 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6319 display SyntaxError exceptions properly formatted when they occur
6325 display SyntaxError exceptions properly formatted when they occur
6320 (they can be triggered by imported code).
6326 (they can be triggered by imported code).
6321
6327
6322 2002-01-18 Fernando Perez <fperez@colorado.edu>
6328 2002-01-18 Fernando Perez <fperez@colorado.edu>
6323
6329
6324 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6330 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6325 SyntaxError exceptions are reported nicely formatted, instead of
6331 SyntaxError exceptions are reported nicely formatted, instead of
6326 spitting out only offset information as before.
6332 spitting out only offset information as before.
6327 (Magic.magic_prun): Added the @prun function for executing
6333 (Magic.magic_prun): Added the @prun function for executing
6328 programs with command line args inside IPython.
6334 programs with command line args inside IPython.
6329
6335
6330 2002-01-16 Fernando Perez <fperez@colorado.edu>
6336 2002-01-16 Fernando Perez <fperez@colorado.edu>
6331
6337
6332 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6338 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6333 to *not* include the last item given in a range. This brings their
6339 to *not* include the last item given in a range. This brings their
6334 behavior in line with Python's slicing:
6340 behavior in line with Python's slicing:
6335 a[n1:n2] -> a[n1]...a[n2-1]
6341 a[n1:n2] -> a[n1]...a[n2-1]
6336 It may be a bit less convenient, but I prefer to stick to Python's
6342 It may be a bit less convenient, but I prefer to stick to Python's
6337 conventions *everywhere*, so users never have to wonder.
6343 conventions *everywhere*, so users never have to wonder.
6338 (Magic.magic_macro): Added @macro function to ease the creation of
6344 (Magic.magic_macro): Added @macro function to ease the creation of
6339 macros.
6345 macros.
6340
6346
6341 2002-01-05 Fernando Perez <fperez@colorado.edu>
6347 2002-01-05 Fernando Perez <fperez@colorado.edu>
6342
6348
6343 * Released 0.2.4.
6349 * Released 0.2.4.
6344
6350
6345 * IPython/iplib.py (Magic.magic_pdef):
6351 * IPython/iplib.py (Magic.magic_pdef):
6346 (InteractiveShell.safe_execfile): report magic lines and error
6352 (InteractiveShell.safe_execfile): report magic lines and error
6347 lines without line numbers so one can easily copy/paste them for
6353 lines without line numbers so one can easily copy/paste them for
6348 re-execution.
6354 re-execution.
6349
6355
6350 * Updated manual with recent changes.
6356 * Updated manual with recent changes.
6351
6357
6352 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6358 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6353 docstring printing when class? is called. Very handy for knowing
6359 docstring printing when class? is called. Very handy for knowing
6354 how to create class instances (as long as __init__ is well
6360 how to create class instances (as long as __init__ is well
6355 documented, of course :)
6361 documented, of course :)
6356 (Magic.magic_doc): print both class and constructor docstrings.
6362 (Magic.magic_doc): print both class and constructor docstrings.
6357 (Magic.magic_pdef): give constructor info if passed a class and
6363 (Magic.magic_pdef): give constructor info if passed a class and
6358 __call__ info for callable object instances.
6364 __call__ info for callable object instances.
6359
6365
6360 2002-01-04 Fernando Perez <fperez@colorado.edu>
6366 2002-01-04 Fernando Perez <fperez@colorado.edu>
6361
6367
6362 * Made deep_reload() off by default. It doesn't always work
6368 * Made deep_reload() off by default. It doesn't always work
6363 exactly as intended, so it's probably safer to have it off. It's
6369 exactly as intended, so it's probably safer to have it off. It's
6364 still available as dreload() anyway, so nothing is lost.
6370 still available as dreload() anyway, so nothing is lost.
6365
6371
6366 2002-01-02 Fernando Perez <fperez@colorado.edu>
6372 2002-01-02 Fernando Perez <fperez@colorado.edu>
6367
6373
6368 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6374 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6369 so I wanted an updated release).
6375 so I wanted an updated release).
6370
6376
6371 2001-12-27 Fernando Perez <fperez@colorado.edu>
6377 2001-12-27 Fernando Perez <fperez@colorado.edu>
6372
6378
6373 * IPython/iplib.py (InteractiveShell.interact): Added the original
6379 * IPython/iplib.py (InteractiveShell.interact): Added the original
6374 code from 'code.py' for this module in order to change the
6380 code from 'code.py' for this module in order to change the
6375 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6381 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6376 the history cache would break when the user hit Ctrl-C, and
6382 the history cache would break when the user hit Ctrl-C, and
6377 interact() offers no way to add any hooks to it.
6383 interact() offers no way to add any hooks to it.
6378
6384
6379 2001-12-23 Fernando Perez <fperez@colorado.edu>
6385 2001-12-23 Fernando Perez <fperez@colorado.edu>
6380
6386
6381 * setup.py: added check for 'MANIFEST' before trying to remove
6387 * setup.py: added check for 'MANIFEST' before trying to remove
6382 it. Thanks to Sean Reifschneider.
6388 it. Thanks to Sean Reifschneider.
6383
6389
6384 2001-12-22 Fernando Perez <fperez@colorado.edu>
6390 2001-12-22 Fernando Perez <fperez@colorado.edu>
6385
6391
6386 * Released 0.2.2.
6392 * Released 0.2.2.
6387
6393
6388 * Finished (reasonably) writing the manual. Later will add the
6394 * Finished (reasonably) writing the manual. Later will add the
6389 python-standard navigation stylesheets, but for the time being
6395 python-standard navigation stylesheets, but for the time being
6390 it's fairly complete. Distribution will include html and pdf
6396 it's fairly complete. Distribution will include html and pdf
6391 versions.
6397 versions.
6392
6398
6393 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6399 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6394 (MayaVi author).
6400 (MayaVi author).
6395
6401
6396 2001-12-21 Fernando Perez <fperez@colorado.edu>
6402 2001-12-21 Fernando Perez <fperez@colorado.edu>
6397
6403
6398 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6404 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6399 good public release, I think (with the manual and the distutils
6405 good public release, I think (with the manual and the distutils
6400 installer). The manual can use some work, but that can go
6406 installer). The manual can use some work, but that can go
6401 slowly. Otherwise I think it's quite nice for end users. Next
6407 slowly. Otherwise I think it's quite nice for end users. Next
6402 summer, rewrite the guts of it...
6408 summer, rewrite the guts of it...
6403
6409
6404 * Changed format of ipythonrc files to use whitespace as the
6410 * Changed format of ipythonrc files to use whitespace as the
6405 separator instead of an explicit '='. Cleaner.
6411 separator instead of an explicit '='. Cleaner.
6406
6412
6407 2001-12-20 Fernando Perez <fperez@colorado.edu>
6413 2001-12-20 Fernando Perez <fperez@colorado.edu>
6408
6414
6409 * Started a manual in LyX. For now it's just a quick merge of the
6415 * Started a manual in LyX. For now it's just a quick merge of the
6410 various internal docstrings and READMEs. Later it may grow into a
6416 various internal docstrings and READMEs. Later it may grow into a
6411 nice, full-blown manual.
6417 nice, full-blown manual.
6412
6418
6413 * Set up a distutils based installer. Installation should now be
6419 * Set up a distutils based installer. Installation should now be
6414 trivially simple for end-users.
6420 trivially simple for end-users.
6415
6421
6416 2001-12-11 Fernando Perez <fperez@colorado.edu>
6422 2001-12-11 Fernando Perez <fperez@colorado.edu>
6417
6423
6418 * Released 0.2.0. First public release, announced it at
6424 * Released 0.2.0. First public release, announced it at
6419 comp.lang.python. From now on, just bugfixes...
6425 comp.lang.python. From now on, just bugfixes...
6420
6426
6421 * Went through all the files, set copyright/license notices and
6427 * Went through all the files, set copyright/license notices and
6422 cleaned up things. Ready for release.
6428 cleaned up things. Ready for release.
6423
6429
6424 2001-12-10 Fernando Perez <fperez@colorado.edu>
6430 2001-12-10 Fernando Perez <fperez@colorado.edu>
6425
6431
6426 * Changed the first-time installer not to use tarfiles. It's more
6432 * Changed the first-time installer not to use tarfiles. It's more
6427 robust now and less unix-dependent. Also makes it easier for
6433 robust now and less unix-dependent. Also makes it easier for
6428 people to later upgrade versions.
6434 people to later upgrade versions.
6429
6435
6430 * Changed @exit to @abort to reflect the fact that it's pretty
6436 * Changed @exit to @abort to reflect the fact that it's pretty
6431 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6437 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6432 becomes significant only when IPyhton is embedded: in that case,
6438 becomes significant only when IPyhton is embedded: in that case,
6433 C-D closes IPython only, but @abort kills the enclosing program
6439 C-D closes IPython only, but @abort kills the enclosing program
6434 too (unless it had called IPython inside a try catching
6440 too (unless it had called IPython inside a try catching
6435 SystemExit).
6441 SystemExit).
6436
6442
6437 * Created Shell module which exposes the actuall IPython Shell
6443 * Created Shell module which exposes the actuall IPython Shell
6438 classes, currently the normal and the embeddable one. This at
6444 classes, currently the normal and the embeddable one. This at
6439 least offers a stable interface we won't need to change when
6445 least offers a stable interface we won't need to change when
6440 (later) the internals are rewritten. That rewrite will be confined
6446 (later) the internals are rewritten. That rewrite will be confined
6441 to iplib and ipmaker, but the Shell interface should remain as is.
6447 to iplib and ipmaker, but the Shell interface should remain as is.
6442
6448
6443 * Added embed module which offers an embeddable IPShell object,
6449 * Added embed module which offers an embeddable IPShell object,
6444 useful to fire up IPython *inside* a running program. Great for
6450 useful to fire up IPython *inside* a running program. Great for
6445 debugging or dynamical data analysis.
6451 debugging or dynamical data analysis.
6446
6452
6447 2001-12-08 Fernando Perez <fperez@colorado.edu>
6453 2001-12-08 Fernando Perez <fperez@colorado.edu>
6448
6454
6449 * Fixed small bug preventing seeing info from methods of defined
6455 * Fixed small bug preventing seeing info from methods of defined
6450 objects (incorrect namespace in _ofind()).
6456 objects (incorrect namespace in _ofind()).
6451
6457
6452 * Documentation cleanup. Moved the main usage docstrings to a
6458 * Documentation cleanup. Moved the main usage docstrings to a
6453 separate file, usage.py (cleaner to maintain, and hopefully in the
6459 separate file, usage.py (cleaner to maintain, and hopefully in the
6454 future some perlpod-like way of producing interactive, man and
6460 future some perlpod-like way of producing interactive, man and
6455 html docs out of it will be found).
6461 html docs out of it will be found).
6456
6462
6457 * Added @profile to see your profile at any time.
6463 * Added @profile to see your profile at any time.
6458
6464
6459 * Added @p as an alias for 'print'. It's especially convenient if
6465 * Added @p as an alias for 'print'. It's especially convenient if
6460 using automagic ('p x' prints x).
6466 using automagic ('p x' prints x).
6461
6467
6462 * Small cleanups and fixes after a pychecker run.
6468 * Small cleanups and fixes after a pychecker run.
6463
6469
6464 * Changed the @cd command to handle @cd - and @cd -<n> for
6470 * Changed the @cd command to handle @cd - and @cd -<n> for
6465 visiting any directory in _dh.
6471 visiting any directory in _dh.
6466
6472
6467 * Introduced _dh, a history of visited directories. @dhist prints
6473 * Introduced _dh, a history of visited directories. @dhist prints
6468 it out with numbers.
6474 it out with numbers.
6469
6475
6470 2001-12-07 Fernando Perez <fperez@colorado.edu>
6476 2001-12-07 Fernando Perez <fperez@colorado.edu>
6471
6477
6472 * Released 0.1.22
6478 * Released 0.1.22
6473
6479
6474 * Made initialization a bit more robust against invalid color
6480 * Made initialization a bit more robust against invalid color
6475 options in user input (exit, not traceback-crash).
6481 options in user input (exit, not traceback-crash).
6476
6482
6477 * Changed the bug crash reporter to write the report only in the
6483 * Changed the bug crash reporter to write the report only in the
6478 user's .ipython directory. That way IPython won't litter people's
6484 user's .ipython directory. That way IPython won't litter people's
6479 hard disks with crash files all over the place. Also print on
6485 hard disks with crash files all over the place. Also print on
6480 screen the necessary mail command.
6486 screen the necessary mail command.
6481
6487
6482 * With the new ultraTB, implemented LightBG color scheme for light
6488 * With the new ultraTB, implemented LightBG color scheme for light
6483 background terminals. A lot of people like white backgrounds, so I
6489 background terminals. A lot of people like white backgrounds, so I
6484 guess we should at least give them something readable.
6490 guess we should at least give them something readable.
6485
6491
6486 2001-12-06 Fernando Perez <fperez@colorado.edu>
6492 2001-12-06 Fernando Perez <fperez@colorado.edu>
6487
6493
6488 * Modified the structure of ultraTB. Now there's a proper class
6494 * Modified the structure of ultraTB. Now there's a proper class
6489 for tables of color schemes which allow adding schemes easily and
6495 for tables of color schemes which allow adding schemes easily and
6490 switching the active scheme without creating a new instance every
6496 switching the active scheme without creating a new instance every
6491 time (which was ridiculous). The syntax for creating new schemes
6497 time (which was ridiculous). The syntax for creating new schemes
6492 is also cleaner. I think ultraTB is finally done, with a clean
6498 is also cleaner. I think ultraTB is finally done, with a clean
6493 class structure. Names are also much cleaner (now there's proper
6499 class structure. Names are also much cleaner (now there's proper
6494 color tables, no need for every variable to also have 'color' in
6500 color tables, no need for every variable to also have 'color' in
6495 its name).
6501 its name).
6496
6502
6497 * Broke down genutils into separate files. Now genutils only
6503 * Broke down genutils into separate files. Now genutils only
6498 contains utility functions, and classes have been moved to their
6504 contains utility functions, and classes have been moved to their
6499 own files (they had enough independent functionality to warrant
6505 own files (they had enough independent functionality to warrant
6500 it): ConfigLoader, OutputTrap, Struct.
6506 it): ConfigLoader, OutputTrap, Struct.
6501
6507
6502 2001-12-05 Fernando Perez <fperez@colorado.edu>
6508 2001-12-05 Fernando Perez <fperez@colorado.edu>
6503
6509
6504 * IPython turns 21! Released version 0.1.21, as a candidate for
6510 * IPython turns 21! Released version 0.1.21, as a candidate for
6505 public consumption. If all goes well, release in a few days.
6511 public consumption. If all goes well, release in a few days.
6506
6512
6507 * Fixed path bug (files in Extensions/ directory wouldn't be found
6513 * Fixed path bug (files in Extensions/ directory wouldn't be found
6508 unless IPython/ was explicitly in sys.path).
6514 unless IPython/ was explicitly in sys.path).
6509
6515
6510 * Extended the FlexCompleter class as MagicCompleter to allow
6516 * Extended the FlexCompleter class as MagicCompleter to allow
6511 completion of @-starting lines.
6517 completion of @-starting lines.
6512
6518
6513 * Created __release__.py file as a central repository for release
6519 * Created __release__.py file as a central repository for release
6514 info that other files can read from.
6520 info that other files can read from.
6515
6521
6516 * Fixed small bug in logging: when logging was turned on in
6522 * Fixed small bug in logging: when logging was turned on in
6517 mid-session, old lines with special meanings (!@?) were being
6523 mid-session, old lines with special meanings (!@?) were being
6518 logged without the prepended comment, which is necessary since
6524 logged without the prepended comment, which is necessary since
6519 they are not truly valid python syntax. This should make session
6525 they are not truly valid python syntax. This should make session
6520 restores produce less errors.
6526 restores produce less errors.
6521
6527
6522 * The namespace cleanup forced me to make a FlexCompleter class
6528 * The namespace cleanup forced me to make a FlexCompleter class
6523 which is nothing but a ripoff of rlcompleter, but with selectable
6529 which is nothing but a ripoff of rlcompleter, but with selectable
6524 namespace (rlcompleter only works in __main__.__dict__). I'll try
6530 namespace (rlcompleter only works in __main__.__dict__). I'll try
6525 to submit a note to the authors to see if this change can be
6531 to submit a note to the authors to see if this change can be
6526 incorporated in future rlcompleter releases (Dec.6: done)
6532 incorporated in future rlcompleter releases (Dec.6: done)
6527
6533
6528 * More fixes to namespace handling. It was a mess! Now all
6534 * More fixes to namespace handling. It was a mess! Now all
6529 explicit references to __main__.__dict__ are gone (except when
6535 explicit references to __main__.__dict__ are gone (except when
6530 really needed) and everything is handled through the namespace
6536 really needed) and everything is handled through the namespace
6531 dicts in the IPython instance. We seem to be getting somewhere
6537 dicts in the IPython instance. We seem to be getting somewhere
6532 with this, finally...
6538 with this, finally...
6533
6539
6534 * Small documentation updates.
6540 * Small documentation updates.
6535
6541
6536 * Created the Extensions directory under IPython (with an
6542 * Created the Extensions directory under IPython (with an
6537 __init__.py). Put the PhysicalQ stuff there. This directory should
6543 __init__.py). Put the PhysicalQ stuff there. This directory should
6538 be used for all special-purpose extensions.
6544 be used for all special-purpose extensions.
6539
6545
6540 * File renaming:
6546 * File renaming:
6541 ipythonlib --> ipmaker
6547 ipythonlib --> ipmaker
6542 ipplib --> iplib
6548 ipplib --> iplib
6543 This makes a bit more sense in terms of what these files actually do.
6549 This makes a bit more sense in terms of what these files actually do.
6544
6550
6545 * Moved all the classes and functions in ipythonlib to ipplib, so
6551 * Moved all the classes and functions in ipythonlib to ipplib, so
6546 now ipythonlib only has make_IPython(). This will ease up its
6552 now ipythonlib only has make_IPython(). This will ease up its
6547 splitting in smaller functional chunks later.
6553 splitting in smaller functional chunks later.
6548
6554
6549 * Cleaned up (done, I think) output of @whos. Better column
6555 * Cleaned up (done, I think) output of @whos. Better column
6550 formatting, and now shows str(var) for as much as it can, which is
6556 formatting, and now shows str(var) for as much as it can, which is
6551 typically what one gets with a 'print var'.
6557 typically what one gets with a 'print var'.
6552
6558
6553 2001-12-04 Fernando Perez <fperez@colorado.edu>
6559 2001-12-04 Fernando Perez <fperez@colorado.edu>
6554
6560
6555 * Fixed namespace problems. Now builtin/IPyhton/user names get
6561 * Fixed namespace problems. Now builtin/IPyhton/user names get
6556 properly reported in their namespace. Internal namespace handling
6562 properly reported in their namespace. Internal namespace handling
6557 is finally getting decent (not perfect yet, but much better than
6563 is finally getting decent (not perfect yet, but much better than
6558 the ad-hoc mess we had).
6564 the ad-hoc mess we had).
6559
6565
6560 * Removed -exit option. If people just want to run a python
6566 * Removed -exit option. If people just want to run a python
6561 script, that's what the normal interpreter is for. Less
6567 script, that's what the normal interpreter is for. Less
6562 unnecessary options, less chances for bugs.
6568 unnecessary options, less chances for bugs.
6563
6569
6564 * Added a crash handler which generates a complete post-mortem if
6570 * Added a crash handler which generates a complete post-mortem if
6565 IPython crashes. This will help a lot in tracking bugs down the
6571 IPython crashes. This will help a lot in tracking bugs down the
6566 road.
6572 road.
6567
6573
6568 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6574 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
6569 which were boud to functions being reassigned would bypass the
6575 which were boud to functions being reassigned would bypass the
6570 logger, breaking the sync of _il with the prompt counter. This
6576 logger, breaking the sync of _il with the prompt counter. This
6571 would then crash IPython later when a new line was logged.
6577 would then crash IPython later when a new line was logged.
6572
6578
6573 2001-12-02 Fernando Perez <fperez@colorado.edu>
6579 2001-12-02 Fernando Perez <fperez@colorado.edu>
6574
6580
6575 * Made IPython a package. This means people don't have to clutter
6581 * Made IPython a package. This means people don't have to clutter
6576 their sys.path with yet another directory. Changed the INSTALL
6582 their sys.path with yet another directory. Changed the INSTALL
6577 file accordingly.
6583 file accordingly.
6578
6584
6579 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6585 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
6580 sorts its output (so @who shows it sorted) and @whos formats the
6586 sorts its output (so @who shows it sorted) and @whos formats the
6581 table according to the width of the first column. Nicer, easier to
6587 table according to the width of the first column. Nicer, easier to
6582 read. Todo: write a generic table_format() which takes a list of
6588 read. Todo: write a generic table_format() which takes a list of
6583 lists and prints it nicely formatted, with optional row/column
6589 lists and prints it nicely formatted, with optional row/column
6584 separators and proper padding and justification.
6590 separators and proper padding and justification.
6585
6591
6586 * Released 0.1.20
6592 * Released 0.1.20
6587
6593
6588 * Fixed bug in @log which would reverse the inputcache list (a
6594 * Fixed bug in @log which would reverse the inputcache list (a
6589 copy operation was missing).
6595 copy operation was missing).
6590
6596
6591 * Code cleanup. @config was changed to use page(). Better, since
6597 * Code cleanup. @config was changed to use page(). Better, since
6592 its output is always quite long.
6598 its output is always quite long.
6593
6599
6594 * Itpl is back as a dependency. I was having too many problems
6600 * Itpl is back as a dependency. I was having too many problems
6595 getting the parametric aliases to work reliably, and it's just
6601 getting the parametric aliases to work reliably, and it's just
6596 easier to code weird string operations with it than playing %()s
6602 easier to code weird string operations with it than playing %()s
6597 games. It's only ~6k, so I don't think it's too big a deal.
6603 games. It's only ~6k, so I don't think it's too big a deal.
6598
6604
6599 * Found (and fixed) a very nasty bug with history. !lines weren't
6605 * Found (and fixed) a very nasty bug with history. !lines weren't
6600 getting cached, and the out of sync caches would crash
6606 getting cached, and the out of sync caches would crash
6601 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6607 IPython. Fixed it by reorganizing the prefilter/handlers/logger
6602 division of labor a bit better. Bug fixed, cleaner structure.
6608 division of labor a bit better. Bug fixed, cleaner structure.
6603
6609
6604 2001-12-01 Fernando Perez <fperez@colorado.edu>
6610 2001-12-01 Fernando Perez <fperez@colorado.edu>
6605
6611
6606 * Released 0.1.19
6612 * Released 0.1.19
6607
6613
6608 * Added option -n to @hist to prevent line number printing. Much
6614 * Added option -n to @hist to prevent line number printing. Much
6609 easier to copy/paste code this way.
6615 easier to copy/paste code this way.
6610
6616
6611 * Created global _il to hold the input list. Allows easy
6617 * Created global _il to hold the input list. Allows easy
6612 re-execution of blocks of code by slicing it (inspired by Janko's
6618 re-execution of blocks of code by slicing it (inspired by Janko's
6613 comment on 'macros').
6619 comment on 'macros').
6614
6620
6615 * Small fixes and doc updates.
6621 * Small fixes and doc updates.
6616
6622
6617 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6623 * Rewrote @history function (was @h). Renamed it to @hist, @h is
6618 much too fragile with automagic. Handles properly multi-line
6624 much too fragile with automagic. Handles properly multi-line
6619 statements and takes parameters.
6625 statements and takes parameters.
6620
6626
6621 2001-11-30 Fernando Perez <fperez@colorado.edu>
6627 2001-11-30 Fernando Perez <fperez@colorado.edu>
6622
6628
6623 * Version 0.1.18 released.
6629 * Version 0.1.18 released.
6624
6630
6625 * Fixed nasty namespace bug in initial module imports.
6631 * Fixed nasty namespace bug in initial module imports.
6626
6632
6627 * Added copyright/license notes to all code files (except
6633 * Added copyright/license notes to all code files (except
6628 DPyGetOpt). For the time being, LGPL. That could change.
6634 DPyGetOpt). For the time being, LGPL. That could change.
6629
6635
6630 * Rewrote a much nicer README, updated INSTALL, cleaned up
6636 * Rewrote a much nicer README, updated INSTALL, cleaned up
6631 ipythonrc-* samples.
6637 ipythonrc-* samples.
6632
6638
6633 * Overall code/documentation cleanup. Basically ready for
6639 * Overall code/documentation cleanup. Basically ready for
6634 release. Only remaining thing: licence decision (LGPL?).
6640 release. Only remaining thing: licence decision (LGPL?).
6635
6641
6636 * Converted load_config to a class, ConfigLoader. Now recursion
6642 * Converted load_config to a class, ConfigLoader. Now recursion
6637 control is better organized. Doesn't include the same file twice.
6643 control is better organized. Doesn't include the same file twice.
6638
6644
6639 2001-11-29 Fernando Perez <fperez@colorado.edu>
6645 2001-11-29 Fernando Perez <fperez@colorado.edu>
6640
6646
6641 * Got input history working. Changed output history variables from
6647 * Got input history working. Changed output history variables from
6642 _p to _o so that _i is for input and _o for output. Just cleaner
6648 _p to _o so that _i is for input and _o for output. Just cleaner
6643 convention.
6649 convention.
6644
6650
6645 * Implemented parametric aliases. This pretty much allows the
6651 * Implemented parametric aliases. This pretty much allows the
6646 alias system to offer full-blown shell convenience, I think.
6652 alias system to offer full-blown shell convenience, I think.
6647
6653
6648 * Version 0.1.17 released, 0.1.18 opened.
6654 * Version 0.1.17 released, 0.1.18 opened.
6649
6655
6650 * dot_ipython/ipythonrc (alias): added documentation.
6656 * dot_ipython/ipythonrc (alias): added documentation.
6651 (xcolor): Fixed small bug (xcolors -> xcolor)
6657 (xcolor): Fixed small bug (xcolors -> xcolor)
6652
6658
6653 * Changed the alias system. Now alias is a magic command to define
6659 * Changed the alias system. Now alias is a magic command to define
6654 aliases just like the shell. Rationale: the builtin magics should
6660 aliases just like the shell. Rationale: the builtin magics should
6655 be there for things deeply connected to IPython's
6661 be there for things deeply connected to IPython's
6656 architecture. And this is a much lighter system for what I think
6662 architecture. And this is a much lighter system for what I think
6657 is the really important feature: allowing users to define quickly
6663 is the really important feature: allowing users to define quickly
6658 magics that will do shell things for them, so they can customize
6664 magics that will do shell things for them, so they can customize
6659 IPython easily to match their work habits. If someone is really
6665 IPython easily to match their work habits. If someone is really
6660 desperate to have another name for a builtin alias, they can
6666 desperate to have another name for a builtin alias, they can
6661 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6667 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6662 works.
6668 works.
6663
6669
6664 2001-11-28 Fernando Perez <fperez@colorado.edu>
6670 2001-11-28 Fernando Perez <fperez@colorado.edu>
6665
6671
6666 * Changed @file so that it opens the source file at the proper
6672 * Changed @file so that it opens the source file at the proper
6667 line. Since it uses less, if your EDITOR environment is
6673 line. Since it uses less, if your EDITOR environment is
6668 configured, typing v will immediately open your editor of choice
6674 configured, typing v will immediately open your editor of choice
6669 right at the line where the object is defined. Not as quick as
6675 right at the line where the object is defined. Not as quick as
6670 having a direct @edit command, but for all intents and purposes it
6676 having a direct @edit command, but for all intents and purposes it
6671 works. And I don't have to worry about writing @edit to deal with
6677 works. And I don't have to worry about writing @edit to deal with
6672 all the editors, less does that.
6678 all the editors, less does that.
6673
6679
6674 * Version 0.1.16 released, 0.1.17 opened.
6680 * Version 0.1.16 released, 0.1.17 opened.
6675
6681
6676 * Fixed some nasty bugs in the page/page_dumb combo that could
6682 * Fixed some nasty bugs in the page/page_dumb combo that could
6677 crash IPython.
6683 crash IPython.
6678
6684
6679 2001-11-27 Fernando Perez <fperez@colorado.edu>
6685 2001-11-27 Fernando Perez <fperez@colorado.edu>
6680
6686
6681 * Version 0.1.15 released, 0.1.16 opened.
6687 * Version 0.1.15 released, 0.1.16 opened.
6682
6688
6683 * Finally got ? and ?? to work for undefined things: now it's
6689 * Finally got ? and ?? to work for undefined things: now it's
6684 possible to type {}.get? and get information about the get method
6690 possible to type {}.get? and get information about the get method
6685 of dicts, or os.path? even if only os is defined (so technically
6691 of dicts, or os.path? even if only os is defined (so technically
6686 os.path isn't). Works at any level. For example, after import os,
6692 os.path isn't). Works at any level. For example, after import os,
6687 os?, os.path?, os.path.abspath? all work. This is great, took some
6693 os?, os.path?, os.path.abspath? all work. This is great, took some
6688 work in _ofind.
6694 work in _ofind.
6689
6695
6690 * Fixed more bugs with logging. The sanest way to do it was to add
6696 * Fixed more bugs with logging. The sanest way to do it was to add
6691 to @log a 'mode' parameter. Killed two in one shot (this mode
6697 to @log a 'mode' parameter. Killed two in one shot (this mode
6692 option was a request of Janko's). I think it's finally clean
6698 option was a request of Janko's). I think it's finally clean
6693 (famous last words).
6699 (famous last words).
6694
6700
6695 * Added a page_dumb() pager which does a decent job of paging on
6701 * Added a page_dumb() pager which does a decent job of paging on
6696 screen, if better things (like less) aren't available. One less
6702 screen, if better things (like less) aren't available. One less
6697 unix dependency (someday maybe somebody will port this to
6703 unix dependency (someday maybe somebody will port this to
6698 windows).
6704 windows).
6699
6705
6700 * Fixed problem in magic_log: would lock of logging out if log
6706 * Fixed problem in magic_log: would lock of logging out if log
6701 creation failed (because it would still think it had succeeded).
6707 creation failed (because it would still think it had succeeded).
6702
6708
6703 * Improved the page() function using curses to auto-detect screen
6709 * Improved the page() function using curses to auto-detect screen
6704 size. Now it can make a much better decision on whether to print
6710 size. Now it can make a much better decision on whether to print
6705 or page a string. Option screen_length was modified: a value 0
6711 or page a string. Option screen_length was modified: a value 0
6706 means auto-detect, and that's the default now.
6712 means auto-detect, and that's the default now.
6707
6713
6708 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6714 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6709 go out. I'll test it for a few days, then talk to Janko about
6715 go out. I'll test it for a few days, then talk to Janko about
6710 licences and announce it.
6716 licences and announce it.
6711
6717
6712 * Fixed the length of the auto-generated ---> prompt which appears
6718 * Fixed the length of the auto-generated ---> prompt which appears
6713 for auto-parens and auto-quotes. Getting this right isn't trivial,
6719 for auto-parens and auto-quotes. Getting this right isn't trivial,
6714 with all the color escapes, different prompt types and optional
6720 with all the color escapes, different prompt types and optional
6715 separators. But it seems to be working in all the combinations.
6721 separators. But it seems to be working in all the combinations.
6716
6722
6717 2001-11-26 Fernando Perez <fperez@colorado.edu>
6723 2001-11-26 Fernando Perez <fperez@colorado.edu>
6718
6724
6719 * Wrote a regexp filter to get option types from the option names
6725 * Wrote a regexp filter to get option types from the option names
6720 string. This eliminates the need to manually keep two duplicate
6726 string. This eliminates the need to manually keep two duplicate
6721 lists.
6727 lists.
6722
6728
6723 * Removed the unneeded check_option_names. Now options are handled
6729 * Removed the unneeded check_option_names. Now options are handled
6724 in a much saner manner and it's easy to visually check that things
6730 in a much saner manner and it's easy to visually check that things
6725 are ok.
6731 are ok.
6726
6732
6727 * Updated version numbers on all files I modified to carry a
6733 * Updated version numbers on all files I modified to carry a
6728 notice so Janko and Nathan have clear version markers.
6734 notice so Janko and Nathan have clear version markers.
6729
6735
6730 * Updated docstring for ultraTB with my changes. I should send
6736 * Updated docstring for ultraTB with my changes. I should send
6731 this to Nathan.
6737 this to Nathan.
6732
6738
6733 * Lots of small fixes. Ran everything through pychecker again.
6739 * Lots of small fixes. Ran everything through pychecker again.
6734
6740
6735 * Made loading of deep_reload an cmd line option. If it's not too
6741 * Made loading of deep_reload an cmd line option. If it's not too
6736 kosher, now people can just disable it. With -nodeep_reload it's
6742 kosher, now people can just disable it. With -nodeep_reload it's
6737 still available as dreload(), it just won't overwrite reload().
6743 still available as dreload(), it just won't overwrite reload().
6738
6744
6739 * Moved many options to the no| form (-opt and -noopt
6745 * Moved many options to the no| form (-opt and -noopt
6740 accepted). Cleaner.
6746 accepted). Cleaner.
6741
6747
6742 * Changed magic_log so that if called with no parameters, it uses
6748 * Changed magic_log so that if called with no parameters, it uses
6743 'rotate' mode. That way auto-generated logs aren't automatically
6749 'rotate' mode. That way auto-generated logs aren't automatically
6744 over-written. For normal logs, now a backup is made if it exists
6750 over-written. For normal logs, now a backup is made if it exists
6745 (only 1 level of backups). A new 'backup' mode was added to the
6751 (only 1 level of backups). A new 'backup' mode was added to the
6746 Logger class to support this. This was a request by Janko.
6752 Logger class to support this. This was a request by Janko.
6747
6753
6748 * Added @logoff/@logon to stop/restart an active log.
6754 * Added @logoff/@logon to stop/restart an active log.
6749
6755
6750 * Fixed a lot of bugs in log saving/replay. It was pretty
6756 * Fixed a lot of bugs in log saving/replay. It was pretty
6751 broken. Now special lines (!@,/) appear properly in the command
6757 broken. Now special lines (!@,/) appear properly in the command
6752 history after a log replay.
6758 history after a log replay.
6753
6759
6754 * Tried and failed to implement full session saving via pickle. My
6760 * Tried and failed to implement full session saving via pickle. My
6755 idea was to pickle __main__.__dict__, but modules can't be
6761 idea was to pickle __main__.__dict__, but modules can't be
6756 pickled. This would be a better alternative to replaying logs, but
6762 pickled. This would be a better alternative to replaying logs, but
6757 seems quite tricky to get to work. Changed -session to be called
6763 seems quite tricky to get to work. Changed -session to be called
6758 -logplay, which more accurately reflects what it does. And if we
6764 -logplay, which more accurately reflects what it does. And if we
6759 ever get real session saving working, -session is now available.
6765 ever get real session saving working, -session is now available.
6760
6766
6761 * Implemented color schemes for prompts also. As for tracebacks,
6767 * Implemented color schemes for prompts also. As for tracebacks,
6762 currently only NoColor and Linux are supported. But now the
6768 currently only NoColor and Linux are supported. But now the
6763 infrastructure is in place, based on a generic ColorScheme
6769 infrastructure is in place, based on a generic ColorScheme
6764 class. So writing and activating new schemes both for the prompts
6770 class. So writing and activating new schemes both for the prompts
6765 and the tracebacks should be straightforward.
6771 and the tracebacks should be straightforward.
6766
6772
6767 * Version 0.1.13 released, 0.1.14 opened.
6773 * Version 0.1.13 released, 0.1.14 opened.
6768
6774
6769 * Changed handling of options for output cache. Now counter is
6775 * Changed handling of options for output cache. Now counter is
6770 hardwired starting at 1 and one specifies the maximum number of
6776 hardwired starting at 1 and one specifies the maximum number of
6771 entries *in the outcache* (not the max prompt counter). This is
6777 entries *in the outcache* (not the max prompt counter). This is
6772 much better, since many statements won't increase the cache
6778 much better, since many statements won't increase the cache
6773 count. It also eliminated some confusing options, now there's only
6779 count. It also eliminated some confusing options, now there's only
6774 one: cache_size.
6780 one: cache_size.
6775
6781
6776 * Added 'alias' magic function and magic_alias option in the
6782 * Added 'alias' magic function and magic_alias option in the
6777 ipythonrc file. Now the user can easily define whatever names he
6783 ipythonrc file. Now the user can easily define whatever names he
6778 wants for the magic functions without having to play weird
6784 wants for the magic functions without having to play weird
6779 namespace games. This gives IPython a real shell-like feel.
6785 namespace games. This gives IPython a real shell-like feel.
6780
6786
6781 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6787 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6782 @ or not).
6788 @ or not).
6783
6789
6784 This was one of the last remaining 'visible' bugs (that I know
6790 This was one of the last remaining 'visible' bugs (that I know
6785 of). I think if I can clean up the session loading so it works
6791 of). I think if I can clean up the session loading so it works
6786 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6792 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6787 about licensing).
6793 about licensing).
6788
6794
6789 2001-11-25 Fernando Perez <fperez@colorado.edu>
6795 2001-11-25 Fernando Perez <fperez@colorado.edu>
6790
6796
6791 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6797 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6792 there's a cleaner distinction between what ? and ?? show.
6798 there's a cleaner distinction between what ? and ?? show.
6793
6799
6794 * Added screen_length option. Now the user can define his own
6800 * Added screen_length option. Now the user can define his own
6795 screen size for page() operations.
6801 screen size for page() operations.
6796
6802
6797 * Implemented magic shell-like functions with automatic code
6803 * Implemented magic shell-like functions with automatic code
6798 generation. Now adding another function is just a matter of adding
6804 generation. Now adding another function is just a matter of adding
6799 an entry to a dict, and the function is dynamically generated at
6805 an entry to a dict, and the function is dynamically generated at
6800 run-time. Python has some really cool features!
6806 run-time. Python has some really cool features!
6801
6807
6802 * Renamed many options to cleanup conventions a little. Now all
6808 * Renamed many options to cleanup conventions a little. Now all
6803 are lowercase, and only underscores where needed. Also in the code
6809 are lowercase, and only underscores where needed. Also in the code
6804 option name tables are clearer.
6810 option name tables are clearer.
6805
6811
6806 * Changed prompts a little. Now input is 'In [n]:' instead of
6812 * Changed prompts a little. Now input is 'In [n]:' instead of
6807 'In[n]:='. This allows it the numbers to be aligned with the
6813 'In[n]:='. This allows it the numbers to be aligned with the
6808 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6814 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6809 Python (it was a Mathematica thing). The '...' continuation prompt
6815 Python (it was a Mathematica thing). The '...' continuation prompt
6810 was also changed a little to align better.
6816 was also changed a little to align better.
6811
6817
6812 * Fixed bug when flushing output cache. Not all _p<n> variables
6818 * Fixed bug when flushing output cache. Not all _p<n> variables
6813 exist, so their deletion needs to be wrapped in a try:
6819 exist, so their deletion needs to be wrapped in a try:
6814
6820
6815 * Figured out how to properly use inspect.formatargspec() (it
6821 * Figured out how to properly use inspect.formatargspec() (it
6816 requires the args preceded by *). So I removed all the code from
6822 requires the args preceded by *). So I removed all the code from
6817 _get_pdef in Magic, which was just replicating that.
6823 _get_pdef in Magic, which was just replicating that.
6818
6824
6819 * Added test to prefilter to allow redefining magic function names
6825 * Added test to prefilter to allow redefining magic function names
6820 as variables. This is ok, since the @ form is always available,
6826 as variables. This is ok, since the @ form is always available,
6821 but whe should allow the user to define a variable called 'ls' if
6827 but whe should allow the user to define a variable called 'ls' if
6822 he needs it.
6828 he needs it.
6823
6829
6824 * Moved the ToDo information from README into a separate ToDo.
6830 * Moved the ToDo information from README into a separate ToDo.
6825
6831
6826 * General code cleanup and small bugfixes. I think it's close to a
6832 * General code cleanup and small bugfixes. I think it's close to a
6827 state where it can be released, obviously with a big 'beta'
6833 state where it can be released, obviously with a big 'beta'
6828 warning on it.
6834 warning on it.
6829
6835
6830 * Got the magic function split to work. Now all magics are defined
6836 * Got the magic function split to work. Now all magics are defined
6831 in a separate class. It just organizes things a bit, and now
6837 in a separate class. It just organizes things a bit, and now
6832 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6838 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6833 was too long).
6839 was too long).
6834
6840
6835 * Changed @clear to @reset to avoid potential confusions with
6841 * Changed @clear to @reset to avoid potential confusions with
6836 the shell command clear. Also renamed @cl to @clear, which does
6842 the shell command clear. Also renamed @cl to @clear, which does
6837 exactly what people expect it to from their shell experience.
6843 exactly what people expect it to from their shell experience.
6838
6844
6839 Added a check to the @reset command (since it's so
6845 Added a check to the @reset command (since it's so
6840 destructive, it's probably a good idea to ask for confirmation).
6846 destructive, it's probably a good idea to ask for confirmation).
6841 But now reset only works for full namespace resetting. Since the
6847 But now reset only works for full namespace resetting. Since the
6842 del keyword is already there for deleting a few specific
6848 del keyword is already there for deleting a few specific
6843 variables, I don't see the point of having a redundant magic
6849 variables, I don't see the point of having a redundant magic
6844 function for the same task.
6850 function for the same task.
6845
6851
6846 2001-11-24 Fernando Perez <fperez@colorado.edu>
6852 2001-11-24 Fernando Perez <fperez@colorado.edu>
6847
6853
6848 * Updated the builtin docs (esp. the ? ones).
6854 * Updated the builtin docs (esp. the ? ones).
6849
6855
6850 * Ran all the code through pychecker. Not terribly impressed with
6856 * Ran all the code through pychecker. Not terribly impressed with
6851 it: lots of spurious warnings and didn't really find anything of
6857 it: lots of spurious warnings and didn't really find anything of
6852 substance (just a few modules being imported and not used).
6858 substance (just a few modules being imported and not used).
6853
6859
6854 * Implemented the new ultraTB functionality into IPython. New
6860 * Implemented the new ultraTB functionality into IPython. New
6855 option: xcolors. This chooses color scheme. xmode now only selects
6861 option: xcolors. This chooses color scheme. xmode now only selects
6856 between Plain and Verbose. Better orthogonality.
6862 between Plain and Verbose. Better orthogonality.
6857
6863
6858 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6864 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6859 mode and color scheme for the exception handlers. Now it's
6865 mode and color scheme for the exception handlers. Now it's
6860 possible to have the verbose traceback with no coloring.
6866 possible to have the verbose traceback with no coloring.
6861
6867
6862 2001-11-23 Fernando Perez <fperez@colorado.edu>
6868 2001-11-23 Fernando Perez <fperez@colorado.edu>
6863
6869
6864 * Version 0.1.12 released, 0.1.13 opened.
6870 * Version 0.1.12 released, 0.1.13 opened.
6865
6871
6866 * Removed option to set auto-quote and auto-paren escapes by
6872 * Removed option to set auto-quote and auto-paren escapes by
6867 user. The chances of breaking valid syntax are just too high. If
6873 user. The chances of breaking valid syntax are just too high. If
6868 someone *really* wants, they can always dig into the code.
6874 someone *really* wants, they can always dig into the code.
6869
6875
6870 * Made prompt separators configurable.
6876 * Made prompt separators configurable.
6871
6877
6872 2001-11-22 Fernando Perez <fperez@colorado.edu>
6878 2001-11-22 Fernando Perez <fperez@colorado.edu>
6873
6879
6874 * Small bugfixes in many places.
6880 * Small bugfixes in many places.
6875
6881
6876 * Removed the MyCompleter class from ipplib. It seemed redundant
6882 * Removed the MyCompleter class from ipplib. It seemed redundant
6877 with the C-p,C-n history search functionality. Less code to
6883 with the C-p,C-n history search functionality. Less code to
6878 maintain.
6884 maintain.
6879
6885
6880 * Moved all the original ipython.py code into ipythonlib.py. Right
6886 * Moved all the original ipython.py code into ipythonlib.py. Right
6881 now it's just one big dump into a function called make_IPython, so
6887 now it's just one big dump into a function called make_IPython, so
6882 no real modularity has been gained. But at least it makes the
6888 no real modularity has been gained. But at least it makes the
6883 wrapper script tiny, and since ipythonlib is a module, it gets
6889 wrapper script tiny, and since ipythonlib is a module, it gets
6884 compiled and startup is much faster.
6890 compiled and startup is much faster.
6885
6891
6886 This is a reasobably 'deep' change, so we should test it for a
6892 This is a reasobably 'deep' change, so we should test it for a
6887 while without messing too much more with the code.
6893 while without messing too much more with the code.
6888
6894
6889 2001-11-21 Fernando Perez <fperez@colorado.edu>
6895 2001-11-21 Fernando Perez <fperez@colorado.edu>
6890
6896
6891 * Version 0.1.11 released, 0.1.12 opened for further work.
6897 * Version 0.1.11 released, 0.1.12 opened for further work.
6892
6898
6893 * Removed dependency on Itpl. It was only needed in one place. It
6899 * Removed dependency on Itpl. It was only needed in one place. It
6894 would be nice if this became part of python, though. It makes life
6900 would be nice if this became part of python, though. It makes life
6895 *a lot* easier in some cases.
6901 *a lot* easier in some cases.
6896
6902
6897 * Simplified the prefilter code a bit. Now all handlers are
6903 * Simplified the prefilter code a bit. Now all handlers are
6898 expected to explicitly return a value (at least a blank string).
6904 expected to explicitly return a value (at least a blank string).
6899
6905
6900 * Heavy edits in ipplib. Removed the help system altogether. Now
6906 * Heavy edits in ipplib. Removed the help system altogether. Now
6901 obj?/?? is used for inspecting objects, a magic @doc prints
6907 obj?/?? is used for inspecting objects, a magic @doc prints
6902 docstrings, and full-blown Python help is accessed via the 'help'
6908 docstrings, and full-blown Python help is accessed via the 'help'
6903 keyword. This cleans up a lot of code (less to maintain) and does
6909 keyword. This cleans up a lot of code (less to maintain) and does
6904 the job. Since 'help' is now a standard Python component, might as
6910 the job. Since 'help' is now a standard Python component, might as
6905 well use it and remove duplicate functionality.
6911 well use it and remove duplicate functionality.
6906
6912
6907 Also removed the option to use ipplib as a standalone program. By
6913 Also removed the option to use ipplib as a standalone program. By
6908 now it's too dependent on other parts of IPython to function alone.
6914 now it's too dependent on other parts of IPython to function alone.
6909
6915
6910 * Fixed bug in genutils.pager. It would crash if the pager was
6916 * Fixed bug in genutils.pager. It would crash if the pager was
6911 exited immediately after opening (broken pipe).
6917 exited immediately after opening (broken pipe).
6912
6918
6913 * Trimmed down the VerboseTB reporting a little. The header is
6919 * Trimmed down the VerboseTB reporting a little. The header is
6914 much shorter now and the repeated exception arguments at the end
6920 much shorter now and the repeated exception arguments at the end
6915 have been removed. For interactive use the old header seemed a bit
6921 have been removed. For interactive use the old header seemed a bit
6916 excessive.
6922 excessive.
6917
6923
6918 * Fixed small bug in output of @whos for variables with multi-word
6924 * Fixed small bug in output of @whos for variables with multi-word
6919 types (only first word was displayed).
6925 types (only first word was displayed).
6920
6926
6921 2001-11-17 Fernando Perez <fperez@colorado.edu>
6927 2001-11-17 Fernando Perez <fperez@colorado.edu>
6922
6928
6923 * Version 0.1.10 released, 0.1.11 opened for further work.
6929 * Version 0.1.10 released, 0.1.11 opened for further work.
6924
6930
6925 * Modified dirs and friends. dirs now *returns* the stack (not
6931 * Modified dirs and friends. dirs now *returns* the stack (not
6926 prints), so one can manipulate it as a variable. Convenient to
6932 prints), so one can manipulate it as a variable. Convenient to
6927 travel along many directories.
6933 travel along many directories.
6928
6934
6929 * Fixed bug in magic_pdef: would only work with functions with
6935 * Fixed bug in magic_pdef: would only work with functions with
6930 arguments with default values.
6936 arguments with default values.
6931
6937
6932 2001-11-14 Fernando Perez <fperez@colorado.edu>
6938 2001-11-14 Fernando Perez <fperez@colorado.edu>
6933
6939
6934 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6940 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6935 example with IPython. Various other minor fixes and cleanups.
6941 example with IPython. Various other minor fixes and cleanups.
6936
6942
6937 * Version 0.1.9 released, 0.1.10 opened for further work.
6943 * Version 0.1.9 released, 0.1.10 opened for further work.
6938
6944
6939 * Added sys.path to the list of directories searched in the
6945 * Added sys.path to the list of directories searched in the
6940 execfile= option. It used to be the current directory and the
6946 execfile= option. It used to be the current directory and the
6941 user's IPYTHONDIR only.
6947 user's IPYTHONDIR only.
6942
6948
6943 2001-11-13 Fernando Perez <fperez@colorado.edu>
6949 2001-11-13 Fernando Perez <fperez@colorado.edu>
6944
6950
6945 * Reinstated the raw_input/prefilter separation that Janko had
6951 * Reinstated the raw_input/prefilter separation that Janko had
6946 initially. This gives a more convenient setup for extending the
6952 initially. This gives a more convenient setup for extending the
6947 pre-processor from the outside: raw_input always gets a string,
6953 pre-processor from the outside: raw_input always gets a string,
6948 and prefilter has to process it. We can then redefine prefilter
6954 and prefilter has to process it. We can then redefine prefilter
6949 from the outside and implement extensions for special
6955 from the outside and implement extensions for special
6950 purposes.
6956 purposes.
6951
6957
6952 Today I got one for inputting PhysicalQuantity objects
6958 Today I got one for inputting PhysicalQuantity objects
6953 (from Scientific) without needing any function calls at
6959 (from Scientific) without needing any function calls at
6954 all. Extremely convenient, and it's all done as a user-level
6960 all. Extremely convenient, and it's all done as a user-level
6955 extension (no IPython code was touched). Now instead of:
6961 extension (no IPython code was touched). Now instead of:
6956 a = PhysicalQuantity(4.2,'m/s**2')
6962 a = PhysicalQuantity(4.2,'m/s**2')
6957 one can simply say
6963 one can simply say
6958 a = 4.2 m/s**2
6964 a = 4.2 m/s**2
6959 or even
6965 or even
6960 a = 4.2 m/s^2
6966 a = 4.2 m/s^2
6961
6967
6962 I use this, but it's also a proof of concept: IPython really is
6968 I use this, but it's also a proof of concept: IPython really is
6963 fully user-extensible, even at the level of the parsing of the
6969 fully user-extensible, even at the level of the parsing of the
6964 command line. It's not trivial, but it's perfectly doable.
6970 command line. It's not trivial, but it's perfectly doable.
6965
6971
6966 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6972 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6967 the problem of modules being loaded in the inverse order in which
6973 the problem of modules being loaded in the inverse order in which
6968 they were defined in
6974 they were defined in
6969
6975
6970 * Version 0.1.8 released, 0.1.9 opened for further work.
6976 * Version 0.1.8 released, 0.1.9 opened for further work.
6971
6977
6972 * Added magics pdef, source and file. They respectively show the
6978 * Added magics pdef, source and file. They respectively show the
6973 definition line ('prototype' in C), source code and full python
6979 definition line ('prototype' in C), source code and full python
6974 file for any callable object. The object inspector oinfo uses
6980 file for any callable object. The object inspector oinfo uses
6975 these to show the same information.
6981 these to show the same information.
6976
6982
6977 * Version 0.1.7 released, 0.1.8 opened for further work.
6983 * Version 0.1.7 released, 0.1.8 opened for further work.
6978
6984
6979 * Separated all the magic functions into a class called Magic. The
6985 * Separated all the magic functions into a class called Magic. The
6980 InteractiveShell class was becoming too big for Xemacs to handle
6986 InteractiveShell class was becoming too big for Xemacs to handle
6981 (de-indenting a line would lock it up for 10 seconds while it
6987 (de-indenting a line would lock it up for 10 seconds while it
6982 backtracked on the whole class!)
6988 backtracked on the whole class!)
6983
6989
6984 FIXME: didn't work. It can be done, but right now namespaces are
6990 FIXME: didn't work. It can be done, but right now namespaces are
6985 all messed up. Do it later (reverted it for now, so at least
6991 all messed up. Do it later (reverted it for now, so at least
6986 everything works as before).
6992 everything works as before).
6987
6993
6988 * Got the object introspection system (magic_oinfo) working! I
6994 * Got the object introspection system (magic_oinfo) working! I
6989 think this is pretty much ready for release to Janko, so he can
6995 think this is pretty much ready for release to Janko, so he can
6990 test it for a while and then announce it. Pretty much 100% of what
6996 test it for a while and then announce it. Pretty much 100% of what
6991 I wanted for the 'phase 1' release is ready. Happy, tired.
6997 I wanted for the 'phase 1' release is ready. Happy, tired.
6992
6998
6993 2001-11-12 Fernando Perez <fperez@colorado.edu>
6999 2001-11-12 Fernando Perez <fperez@colorado.edu>
6994
7000
6995 * Version 0.1.6 released, 0.1.7 opened for further work.
7001 * Version 0.1.6 released, 0.1.7 opened for further work.
6996
7002
6997 * Fixed bug in printing: it used to test for truth before
7003 * Fixed bug in printing: it used to test for truth before
6998 printing, so 0 wouldn't print. Now checks for None.
7004 printing, so 0 wouldn't print. Now checks for None.
6999
7005
7000 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7006 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7001 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7007 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7002 reaches by hand into the outputcache. Think of a better way to do
7008 reaches by hand into the outputcache. Think of a better way to do
7003 this later.
7009 this later.
7004
7010
7005 * Various small fixes thanks to Nathan's comments.
7011 * Various small fixes thanks to Nathan's comments.
7006
7012
7007 * Changed magic_pprint to magic_Pprint. This way it doesn't
7013 * Changed magic_pprint to magic_Pprint. This way it doesn't
7008 collide with pprint() and the name is consistent with the command
7014 collide with pprint() and the name is consistent with the command
7009 line option.
7015 line option.
7010
7016
7011 * Changed prompt counter behavior to be fully like
7017 * Changed prompt counter behavior to be fully like
7012 Mathematica's. That is, even input that doesn't return a result
7018 Mathematica's. That is, even input that doesn't return a result
7013 raises the prompt counter. The old behavior was kind of confusing
7019 raises the prompt counter. The old behavior was kind of confusing
7014 (getting the same prompt number several times if the operation
7020 (getting the same prompt number several times if the operation
7015 didn't return a result).
7021 didn't return a result).
7016
7022
7017 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7023 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7018
7024
7019 * Fixed -Classic mode (wasn't working anymore).
7025 * Fixed -Classic mode (wasn't working anymore).
7020
7026
7021 * Added colored prompts using Nathan's new code. Colors are
7027 * Added colored prompts using Nathan's new code. Colors are
7022 currently hardwired, they can be user-configurable. For
7028 currently hardwired, they can be user-configurable. For
7023 developers, they can be chosen in file ipythonlib.py, at the
7029 developers, they can be chosen in file ipythonlib.py, at the
7024 beginning of the CachedOutput class def.
7030 beginning of the CachedOutput class def.
7025
7031
7026 2001-11-11 Fernando Perez <fperez@colorado.edu>
7032 2001-11-11 Fernando Perez <fperez@colorado.edu>
7027
7033
7028 * Version 0.1.5 released, 0.1.6 opened for further work.
7034 * Version 0.1.5 released, 0.1.6 opened for further work.
7029
7035
7030 * Changed magic_env to *return* the environment as a dict (not to
7036 * Changed magic_env to *return* the environment as a dict (not to
7031 print it). This way it prints, but it can also be processed.
7037 print it). This way it prints, but it can also be processed.
7032
7038
7033 * Added Verbose exception reporting to interactive
7039 * Added Verbose exception reporting to interactive
7034 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7040 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7035 traceback. Had to make some changes to the ultraTB file. This is
7041 traceback. Had to make some changes to the ultraTB file. This is
7036 probably the last 'big' thing in my mental todo list. This ties
7042 probably the last 'big' thing in my mental todo list. This ties
7037 in with the next entry:
7043 in with the next entry:
7038
7044
7039 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7045 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7040 has to specify is Plain, Color or Verbose for all exception
7046 has to specify is Plain, Color or Verbose for all exception
7041 handling.
7047 handling.
7042
7048
7043 * Removed ShellServices option. All this can really be done via
7049 * Removed ShellServices option. All this can really be done via
7044 the magic system. It's easier to extend, cleaner and has automatic
7050 the magic system. It's easier to extend, cleaner and has automatic
7045 namespace protection and documentation.
7051 namespace protection and documentation.
7046
7052
7047 2001-11-09 Fernando Perez <fperez@colorado.edu>
7053 2001-11-09 Fernando Perez <fperez@colorado.edu>
7048
7054
7049 * Fixed bug in output cache flushing (missing parameter to
7055 * Fixed bug in output cache flushing (missing parameter to
7050 __init__). Other small bugs fixed (found using pychecker).
7056 __init__). Other small bugs fixed (found using pychecker).
7051
7057
7052 * Version 0.1.4 opened for bugfixing.
7058 * Version 0.1.4 opened for bugfixing.
7053
7059
7054 2001-11-07 Fernando Perez <fperez@colorado.edu>
7060 2001-11-07 Fernando Perez <fperez@colorado.edu>
7055
7061
7056 * Version 0.1.3 released, mainly because of the raw_input bug.
7062 * Version 0.1.3 released, mainly because of the raw_input bug.
7057
7063
7058 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7064 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7059 and when testing for whether things were callable, a call could
7065 and when testing for whether things were callable, a call could
7060 actually be made to certain functions. They would get called again
7066 actually be made to certain functions. They would get called again
7061 once 'really' executed, with a resulting double call. A disaster
7067 once 'really' executed, with a resulting double call. A disaster
7062 in many cases (list.reverse() would never work!).
7068 in many cases (list.reverse() would never work!).
7063
7069
7064 * Removed prefilter() function, moved its code to raw_input (which
7070 * Removed prefilter() function, moved its code to raw_input (which
7065 after all was just a near-empty caller for prefilter). This saves
7071 after all was just a near-empty caller for prefilter). This saves
7066 a function call on every prompt, and simplifies the class a tiny bit.
7072 a function call on every prompt, and simplifies the class a tiny bit.
7067
7073
7068 * Fix _ip to __ip name in magic example file.
7074 * Fix _ip to __ip name in magic example file.
7069
7075
7070 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7076 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7071 work with non-gnu versions of tar.
7077 work with non-gnu versions of tar.
7072
7078
7073 2001-11-06 Fernando Perez <fperez@colorado.edu>
7079 2001-11-06 Fernando Perez <fperez@colorado.edu>
7074
7080
7075 * Version 0.1.2. Just to keep track of the recent changes.
7081 * Version 0.1.2. Just to keep track of the recent changes.
7076
7082
7077 * Fixed nasty bug in output prompt routine. It used to check 'if
7083 * Fixed nasty bug in output prompt routine. It used to check 'if
7078 arg != None...'. Problem is, this fails if arg implements a
7084 arg != None...'. Problem is, this fails if arg implements a
7079 special comparison (__cmp__) which disallows comparing to
7085 special comparison (__cmp__) which disallows comparing to
7080 None. Found it when trying to use the PhysicalQuantity module from
7086 None. Found it when trying to use the PhysicalQuantity module from
7081 ScientificPython.
7087 ScientificPython.
7082
7088
7083 2001-11-05 Fernando Perez <fperez@colorado.edu>
7089 2001-11-05 Fernando Perez <fperez@colorado.edu>
7084
7090
7085 * Also added dirs. Now the pushd/popd/dirs family functions
7091 * Also added dirs. Now the pushd/popd/dirs family functions
7086 basically like the shell, with the added convenience of going home
7092 basically like the shell, with the added convenience of going home
7087 when called with no args.
7093 when called with no args.
7088
7094
7089 * pushd/popd slightly modified to mimic shell behavior more
7095 * pushd/popd slightly modified to mimic shell behavior more
7090 closely.
7096 closely.
7091
7097
7092 * Added env,pushd,popd from ShellServices as magic functions. I
7098 * Added env,pushd,popd from ShellServices as magic functions. I
7093 think the cleanest will be to port all desired functions from
7099 think the cleanest will be to port all desired functions from
7094 ShellServices as magics and remove ShellServices altogether. This
7100 ShellServices as magics and remove ShellServices altogether. This
7095 will provide a single, clean way of adding functionality
7101 will provide a single, clean way of adding functionality
7096 (shell-type or otherwise) to IP.
7102 (shell-type or otherwise) to IP.
7097
7103
7098 2001-11-04 Fernando Perez <fperez@colorado.edu>
7104 2001-11-04 Fernando Perez <fperez@colorado.edu>
7099
7105
7100 * Added .ipython/ directory to sys.path. This way users can keep
7106 * Added .ipython/ directory to sys.path. This way users can keep
7101 customizations there and access them via import.
7107 customizations there and access them via import.
7102
7108
7103 2001-11-03 Fernando Perez <fperez@colorado.edu>
7109 2001-11-03 Fernando Perez <fperez@colorado.edu>
7104
7110
7105 * Opened version 0.1.1 for new changes.
7111 * Opened version 0.1.1 for new changes.
7106
7112
7107 * Changed version number to 0.1.0: first 'public' release, sent to
7113 * Changed version number to 0.1.0: first 'public' release, sent to
7108 Nathan and Janko.
7114 Nathan and Janko.
7109
7115
7110 * Lots of small fixes and tweaks.
7116 * Lots of small fixes and tweaks.
7111
7117
7112 * Minor changes to whos format. Now strings are shown, snipped if
7118 * Minor changes to whos format. Now strings are shown, snipped if
7113 too long.
7119 too long.
7114
7120
7115 * Changed ShellServices to work on __main__ so they show up in @who
7121 * Changed ShellServices to work on __main__ so they show up in @who
7116
7122
7117 * Help also works with ? at the end of a line:
7123 * Help also works with ? at the end of a line:
7118 ?sin and sin?
7124 ?sin and sin?
7119 both produce the same effect. This is nice, as often I use the
7125 both produce the same effect. This is nice, as often I use the
7120 tab-complete to find the name of a method, but I used to then have
7126 tab-complete to find the name of a method, but I used to then have
7121 to go to the beginning of the line to put a ? if I wanted more
7127 to go to the beginning of the line to put a ? if I wanted more
7122 info. Now I can just add the ? and hit return. Convenient.
7128 info. Now I can just add the ? and hit return. Convenient.
7123
7129
7124 2001-11-02 Fernando Perez <fperez@colorado.edu>
7130 2001-11-02 Fernando Perez <fperez@colorado.edu>
7125
7131
7126 * Python version check (>=2.1) added.
7132 * Python version check (>=2.1) added.
7127
7133
7128 * Added LazyPython documentation. At this point the docs are quite
7134 * Added LazyPython documentation. At this point the docs are quite
7129 a mess. A cleanup is in order.
7135 a mess. A cleanup is in order.
7130
7136
7131 * Auto-installer created. For some bizarre reason, the zipfiles
7137 * Auto-installer created. For some bizarre reason, the zipfiles
7132 module isn't working on my system. So I made a tar version
7138 module isn't working on my system. So I made a tar version
7133 (hopefully the command line options in various systems won't kill
7139 (hopefully the command line options in various systems won't kill
7134 me).
7140 me).
7135
7141
7136 * Fixes to Struct in genutils. Now all dictionary-like methods are
7142 * Fixes to Struct in genutils. Now all dictionary-like methods are
7137 protected (reasonably).
7143 protected (reasonably).
7138
7144
7139 * Added pager function to genutils and changed ? to print usage
7145 * Added pager function to genutils and changed ? to print usage
7140 note through it (it was too long).
7146 note through it (it was too long).
7141
7147
7142 * Added the LazyPython functionality. Works great! I changed the
7148 * Added the LazyPython functionality. Works great! I changed the
7143 auto-quote escape to ';', it's on home row and next to '. But
7149 auto-quote escape to ';', it's on home row and next to '. But
7144 both auto-quote and auto-paren (still /) escapes are command-line
7150 both auto-quote and auto-paren (still /) escapes are command-line
7145 parameters.
7151 parameters.
7146
7152
7147
7153
7148 2001-11-01 Fernando Perez <fperez@colorado.edu>
7154 2001-11-01 Fernando Perez <fperez@colorado.edu>
7149
7155
7150 * Version changed to 0.0.7. Fairly large change: configuration now
7156 * Version changed to 0.0.7. Fairly large change: configuration now
7151 is all stored in a directory, by default .ipython. There, all
7157 is all stored in a directory, by default .ipython. There, all
7152 config files have normal looking names (not .names)
7158 config files have normal looking names (not .names)
7153
7159
7154 * Version 0.0.6 Released first to Lucas and Archie as a test
7160 * Version 0.0.6 Released first to Lucas and Archie as a test
7155 run. Since it's the first 'semi-public' release, change version to
7161 run. Since it's the first 'semi-public' release, change version to
7156 > 0.0.6 for any changes now.
7162 > 0.0.6 for any changes now.
7157
7163
7158 * Stuff I had put in the ipplib.py changelog:
7164 * Stuff I had put in the ipplib.py changelog:
7159
7165
7160 Changes to InteractiveShell:
7166 Changes to InteractiveShell:
7161
7167
7162 - Made the usage message a parameter.
7168 - Made the usage message a parameter.
7163
7169
7164 - Require the name of the shell variable to be given. It's a bit
7170 - Require the name of the shell variable to be given. It's a bit
7165 of a hack, but allows the name 'shell' not to be hardwired in the
7171 of a hack, but allows the name 'shell' not to be hardwired in the
7166 magic (@) handler, which is problematic b/c it requires
7172 magic (@) handler, which is problematic b/c it requires
7167 polluting the global namespace with 'shell'. This in turn is
7173 polluting the global namespace with 'shell'. This in turn is
7168 fragile: if a user redefines a variable called shell, things
7174 fragile: if a user redefines a variable called shell, things
7169 break.
7175 break.
7170
7176
7171 - magic @: all functions available through @ need to be defined
7177 - magic @: all functions available through @ need to be defined
7172 as magic_<name>, even though they can be called simply as
7178 as magic_<name>, even though they can be called simply as
7173 @<name>. This allows the special command @magic to gather
7179 @<name>. This allows the special command @magic to gather
7174 information automatically about all existing magic functions,
7180 information automatically about all existing magic functions,
7175 even if they are run-time user extensions, by parsing the shell
7181 even if they are run-time user extensions, by parsing the shell
7176 instance __dict__ looking for special magic_ names.
7182 instance __dict__ looking for special magic_ names.
7177
7183
7178 - mainloop: added *two* local namespace parameters. This allows
7184 - mainloop: added *two* local namespace parameters. This allows
7179 the class to differentiate between parameters which were there
7185 the class to differentiate between parameters which were there
7180 before and after command line initialization was processed. This
7186 before and after command line initialization was processed. This
7181 way, later @who can show things loaded at startup by the
7187 way, later @who can show things loaded at startup by the
7182 user. This trick was necessary to make session saving/reloading
7188 user. This trick was necessary to make session saving/reloading
7183 really work: ideally after saving/exiting/reloading a session,
7189 really work: ideally after saving/exiting/reloading a session,
7184 *everything* should look the same, including the output of @who. I
7190 *everything* should look the same, including the output of @who. I
7185 was only able to make this work with this double namespace
7191 was only able to make this work with this double namespace
7186 trick.
7192 trick.
7187
7193
7188 - added a header to the logfile which allows (almost) full
7194 - added a header to the logfile which allows (almost) full
7189 session restoring.
7195 session restoring.
7190
7196
7191 - prepend lines beginning with @ or !, with a and log
7197 - prepend lines beginning with @ or !, with a and log
7192 them. Why? !lines: may be useful to know what you did @lines:
7198 them. Why? !lines: may be useful to know what you did @lines:
7193 they may affect session state. So when restoring a session, at
7199 they may affect session state. So when restoring a session, at
7194 least inform the user of their presence. I couldn't quite get
7200 least inform the user of their presence. I couldn't quite get
7195 them to properly re-execute, but at least the user is warned.
7201 them to properly re-execute, but at least the user is warned.
7196
7202
7197 * Started ChangeLog.
7203 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now