##// END OF EJS Templates
ipy_exportdb.py added...
vivainio -
Show More
@@ -0,0 +1,68 b''
1 import IPython.ipapi
2 ip = IPython.ipapi.get()
3
4 import os,pprint
5
6 def export(filename = None):
7
8 lines = ['import IPython.ipapi', 'ip = IPython.ipapi.get()','']
9
10 vars = ip.db.keys('autorestore/*')
11 vars.sort()
12 varstomove = []
13 get = ip.db.get
14
15 macros = []
16 variables = []
17
18 for var in vars:
19 k = os.path.basename(var)
20 v = get(var)
21
22 if k.startswith('_'):
23 continue
24 if isinstance(v, IPython.macro.Macro):
25 macros.append((k,v))
26 if type(v) in [int, str, float]:
27 variables.append((k,v))
28
29
30
31 if macros:
32 lines.extend(['# === Macros ===' ,''])
33 for k,v in macros:
34 lines.append("ip.defmacro('%s'," % k)
35 for line in v.value.splitlines():
36 lines.append(' ' + repr(line+'\n'))
37 lines.extend([')', ''])
38
39 if variables:
40 lines.extend(['','# === Variables ===',''])
41 for k,v in variables:
42 varstomove.append(k)
43 lines.append('%s = %s' % (k,repr(v)))
44
45 lines.append('ip.to_user_ns("%s")' % (' '.join(varstomove)))
46
47 bkms = ip.db.get('bookmarks',{})
48
49 if bkms:
50 lines.extend(['','# === Bookmarks ===',''])
51 lines.append("ip.db['bookmarks'] = %s " % pprint.pformat(bkms, indent = 2) )
52
53 aliases = ip.db.get('stored_aliases', {} )
54
55 if aliases:
56 lines.extend(['','# === Alias definitions ===',''])
57 for k,v in aliases.items():
58 lines.append("ip.defalias('%s', %s)" % (k, repr(v[1])))
59
60
61
62 out = '\n'.join(lines)
63
64 if filename:
65 open(filename,'w').write(out)
66 else:
67 print out
68
@@ -1,405 +1,405 b''
1 ''' IPython customization API
1 ''' IPython customization API
2
2
3 Your one-stop module for configuring & extending ipython
3 Your one-stop module for configuring & extending ipython
4
4
5 The API will probably break when ipython 1.0 is released, but so
5 The API will probably break when ipython 1.0 is released, but so
6 will the other configuration method (rc files).
6 will the other configuration method (rc files).
7
7
8 All names prefixed by underscores are for internal use, not part
8 All names prefixed by underscores are for internal use, not part
9 of the public api.
9 of the public api.
10
10
11 Below is an example that you can just put to a module and import from ipython.
11 Below is an example that you can just put to a module and import from ipython.
12
12
13 A good practice is to install the config script below as e.g.
13 A good practice is to install the config script below as e.g.
14
14
15 ~/.ipython/my_private_conf.py
15 ~/.ipython/my_private_conf.py
16
16
17 And do
17 And do
18
18
19 import_mod my_private_conf
19 import_mod my_private_conf
20
20
21 in ~/.ipython/ipythonrc
21 in ~/.ipython/ipythonrc
22
22
23 That way the module is imported at startup and you can have all your
23 That way the module is imported at startup and you can have all your
24 personal configuration (as opposed to boilerplate ipythonrc-PROFILENAME
24 personal configuration (as opposed to boilerplate ipythonrc-PROFILENAME
25 stuff) in there.
25 stuff) in there.
26
26
27 -----------------------------------------------
27 -----------------------------------------------
28 import IPython.ipapi
28 import IPython.ipapi
29 ip = IPython.ipapi.get()
29 ip = IPython.ipapi.get()
30
30
31 def ankka_f(self, arg):
31 def ankka_f(self, arg):
32 print "Ankka",self,"says uppercase:",arg.upper()
32 print "Ankka",self,"says uppercase:",arg.upper()
33
33
34 ip.expose_magic("ankka",ankka_f)
34 ip.expose_magic("ankka",ankka_f)
35
35
36 ip.magic('alias sayhi echo "Testing, hi ok"')
36 ip.magic('alias sayhi echo "Testing, hi ok"')
37 ip.magic('alias helloworld echo "Hello world"')
37 ip.magic('alias helloworld echo "Hello world"')
38 ip.system('pwd')
38 ip.system('pwd')
39
39
40 ip.ex('import re')
40 ip.ex('import re')
41 ip.ex("""
41 ip.ex("""
42 def funcci(a,b):
42 def funcci(a,b):
43 print a+b
43 print a+b
44 print funcci(3,4)
44 print funcci(3,4)
45 """)
45 """)
46 ip.ex("funcci(348,9)")
46 ip.ex("funcci(348,9)")
47
47
48 def jed_editor(self,filename, linenum=None):
48 def jed_editor(self,filename, linenum=None):
49 print "Calling my own editor, jed ... via hook!"
49 print "Calling my own editor, jed ... via hook!"
50 import os
50 import os
51 if linenum is None: linenum = 0
51 if linenum is None: linenum = 0
52 os.system('jed +%d %s' % (linenum, filename))
52 os.system('jed +%d %s' % (linenum, filename))
53 print "exiting jed"
53 print "exiting jed"
54
54
55 ip.set_hook('editor',jed_editor)
55 ip.set_hook('editor',jed_editor)
56
56
57 o = ip.options
57 o = ip.options
58 o.autocall = 2 # FULL autocall mode
58 o.autocall = 2 # FULL autocall mode
59
59
60 print "done!"
60 print "done!"
61 '''
61 '''
62
62
63 # stdlib imports
63 # stdlib imports
64 import __builtin__
64 import __builtin__
65 import sys
65 import sys
66
66
67 # our own
67 # our own
68 from IPython.genutils import warn,error
68 from IPython.genutils import warn,error
69
69
70 class TryNext(Exception):
70 class TryNext(Exception):
71 """Try next hook exception.
71 """Try next hook exception.
72
72
73 Raise this in your hook function to indicate that the next hook handler
73 Raise this in your hook function to indicate that the next hook handler
74 should be used to handle the operation. If you pass arguments to the
74 should be used to handle the operation. If you pass arguments to the
75 constructor those arguments will be used by the next hook instead of the
75 constructor those arguments will be used by the next hook instead of the
76 original ones.
76 original ones.
77 """
77 """
78
78
79 def __init__(self, *args, **kwargs):
79 def __init__(self, *args, **kwargs):
80 self.args = args
80 self.args = args
81 self.kwargs = kwargs
81 self.kwargs = kwargs
82
82
83 # contains the most recently instantiated IPApi
83 # contains the most recently instantiated IPApi
84
84
85 class IPythonNotRunning:
85 class IPythonNotRunning:
86 """Dummy do-nothing class.
86 """Dummy do-nothing class.
87
87
88 Instances of this class return a dummy attribute on all accesses, which
88 Instances of this class return a dummy attribute on all accesses, which
89 can be called and warns. This makes it easier to write scripts which use
89 can be called and warns. This makes it easier to write scripts which use
90 the ipapi.get() object for informational purposes to operate both with and
90 the ipapi.get() object for informational purposes to operate both with and
91 without ipython. Obviously code which uses the ipython object for
91 without ipython. Obviously code which uses the ipython object for
92 computations will not work, but this allows a wider range of code to
92 computations will not work, but this allows a wider range of code to
93 transparently work whether ipython is being used or not."""
93 transparently work whether ipython is being used or not."""
94
94
95 def __init__(self,warn=True):
95 def __init__(self,warn=True):
96 if warn:
96 if warn:
97 self.dummy = self._dummy_warn
97 self.dummy = self._dummy_warn
98 else:
98 else:
99 self.dummy = self._dummy_silent
99 self.dummy = self._dummy_silent
100
100
101 def __str__(self):
101 def __str__(self):
102 return "<IPythonNotRunning>"
102 return "<IPythonNotRunning>"
103
103
104 __repr__ = __str__
104 __repr__ = __str__
105
105
106 def __getattr__(self,name):
106 def __getattr__(self,name):
107 return self.dummy
107 return self.dummy
108
108
109 def _dummy_warn(self,*args,**kw):
109 def _dummy_warn(self,*args,**kw):
110 """Dummy function, which doesn't do anything but warn."""
110 """Dummy function, which doesn't do anything but warn."""
111
111
112 warn("IPython is not running, this is a dummy no-op function")
112 warn("IPython is not running, this is a dummy no-op function")
113
113
114 def _dummy_silent(self,*args,**kw):
114 def _dummy_silent(self,*args,**kw):
115 """Dummy function, which doesn't do anything and emits no warnings."""
115 """Dummy function, which doesn't do anything and emits no warnings."""
116 pass
116 pass
117
117
118 _recent = None
118 _recent = None
119
119
120
120
121 def get(allow_dummy=False,dummy_warn=True):
121 def get(allow_dummy=False,dummy_warn=True):
122 """Get an IPApi object.
122 """Get an IPApi object.
123
123
124 If allow_dummy is true, returns an instance of IPythonNotRunning
124 If allow_dummy is true, returns an instance of IPythonNotRunning
125 instead of None if not running under IPython.
125 instead of None if not running under IPython.
126
126
127 If dummy_warn is false, the dummy instance will be completely silent.
127 If dummy_warn is false, the dummy instance will be completely silent.
128
128
129 Running this should be the first thing you do when writing extensions that
129 Running this should be the first thing you do when writing extensions that
130 can be imported as normal modules. You can then direct all the
130 can be imported as normal modules. You can then direct all the
131 configuration operations against the returned object.
131 configuration operations against the returned object.
132 """
132 """
133 global _recent
133 global _recent
134 if allow_dummy and not _recent:
134 if allow_dummy and not _recent:
135 _recent = IPythonNotRunning(dummy_warn)
135 _recent = IPythonNotRunning(dummy_warn)
136 return _recent
136 return _recent
137
137
138 class IPApi:
138 class IPApi:
139 """ The actual API class for configuring IPython
139 """ The actual API class for configuring IPython
140
140
141 You should do all of the IPython configuration by getting an IPApi object
141 You should do all of the IPython configuration by getting an IPApi object
142 with IPython.ipapi.get() and using the attributes and methods of the
142 with IPython.ipapi.get() and using the attributes and methods of the
143 returned object."""
143 returned object."""
144
144
145 def __init__(self,ip):
145 def __init__(self,ip):
146
146
147 # All attributes exposed here are considered to be the public API of
147 # All attributes exposed here are considered to be the public API of
148 # IPython. As needs dictate, some of these may be wrapped as
148 # IPython. As needs dictate, some of these may be wrapped as
149 # properties.
149 # properties.
150
150
151 self.magic = ip.ipmagic
151 self.magic = ip.ipmagic
152
152
153 self.system = ip.ipsystem
153 self.system = ip.ipsystem
154
154
155 self.set_hook = ip.set_hook
155 self.set_hook = ip.set_hook
156
156
157 self.set_custom_exc = ip.set_custom_exc
157 self.set_custom_exc = ip.set_custom_exc
158
158
159 self.user_ns = ip.user_ns
159 self.user_ns = ip.user_ns
160
160
161 self.set_crash_handler = ip.set_crash_handler
161 self.set_crash_handler = ip.set_crash_handler
162
162
163 # Session-specific data store, which can be used to store
163 # Session-specific data store, which can be used to store
164 # data that should persist through the ipython session.
164 # data that should persist through the ipython session.
165 self.meta = ip.meta
165 self.meta = ip.meta
166
166
167 # The ipython instance provided
167 # The ipython instance provided
168 self.IP = ip
168 self.IP = ip
169
169
170 global _recent
170 global _recent
171 _recent = self
171 _recent = self
172
172
173 # Use a property for some things which are added to the instance very
173 # Use a property for some things which are added to the instance very
174 # late. I don't have time right now to disentangle the initialization
174 # late. I don't have time right now to disentangle the initialization
175 # order issues, so a property lets us delay item extraction while
175 # order issues, so a property lets us delay item extraction while
176 # providing a normal attribute API.
176 # providing a normal attribute API.
177 def get_db(self):
177 def get_db(self):
178 """A handle to persistent dict-like database (a PickleShareDB object)"""
178 """A handle to persistent dict-like database (a PickleShareDB object)"""
179 return self.IP.db
179 return self.IP.db
180
180
181 db = property(get_db,None,None,get_db.__doc__)
181 db = property(get_db,None,None,get_db.__doc__)
182
182
183 def get_options(self):
183 def get_options(self):
184 """All configurable variables."""
184 """All configurable variables."""
185
185
186 # catch typos by disabling new attribute creation. If new attr creation
186 # catch typos by disabling new attribute creation. If new attr creation
187 # is in fact wanted (e.g. when exposing new options), do allow_new_attr(True)
187 # is in fact wanted (e.g. when exposing new options), do allow_new_attr(True)
188 # for the received rc struct.
188 # for the received rc struct.
189
189
190 self.IP.rc.allow_new_attr(False)
190 self.IP.rc.allow_new_attr(False)
191 return self.IP.rc
191 return self.IP.rc
192
192
193 options = property(get_options,None,None,get_options.__doc__)
193 options = property(get_options,None,None,get_options.__doc__)
194
194
195 def expose_magic(self,magicname, func):
195 def expose_magic(self,magicname, func):
196 ''' Expose own function as magic function for ipython
196 ''' Expose own function as magic function for ipython
197
197
198 def foo_impl(self,parameter_s=''):
198 def foo_impl(self,parameter_s=''):
199 """My very own magic!. (Use docstrings, IPython reads them)."""
199 """My very own magic!. (Use docstrings, IPython reads them)."""
200 print 'Magic function. Passed parameter is between < >: <'+parameter_s+'>'
200 print 'Magic function. Passed parameter is between < >: <'+parameter_s+'>'
201 print 'The self object is:',self
201 print 'The self object is:',self
202
202
203 ipapi.expose_magic("foo",foo_impl)
203 ipapi.expose_magic("foo",foo_impl)
204 '''
204 '''
205
205
206 import new
206 import new
207 im = new.instancemethod(func,self.IP, self.IP.__class__)
207 im = new.instancemethod(func,self.IP, self.IP.__class__)
208 setattr(self.IP, "magic_" + magicname, im)
208 setattr(self.IP, "magic_" + magicname, im)
209
209
210 def ex(self,cmd):
210 def ex(self,cmd):
211 """ Execute a normal python statement in user namespace """
211 """ Execute a normal python statement in user namespace """
212 exec cmd in self.user_ns
212 exec cmd in self.user_ns
213
213
214 def ev(self,expr):
214 def ev(self,expr):
215 """ Evaluate python expression expr in user namespace
215 """ Evaluate python expression expr in user namespace
216
216
217 Returns the result of evaluation"""
217 Returns the result of evaluation"""
218 return eval(expr,self.user_ns)
218 return eval(expr,self.user_ns)
219
219
220 def runlines(self,lines):
220 def runlines(self,lines):
221 """ Run the specified lines in interpreter, honoring ipython directives.
221 """ Run the specified lines in interpreter, honoring ipython directives.
222
222
223 This allows %magic and !shell escape notations.
223 This allows %magic and !shell escape notations.
224
224
225 Takes either all lines in one string or list of lines.
225 Takes either all lines in one string or list of lines.
226 """
226 """
227 if isinstance(lines,basestring):
227 if isinstance(lines,basestring):
228 self.IP.runlines(lines)
228 self.IP.runlines(lines)
229 else:
229 else:
230 self.IP.runlines('\n'.join(lines))
230 self.IP.runlines('\n'.join(lines))
231
231
232 def to_user_ns(self,vars):
232 def to_user_ns(self,vars):
233 """Inject a group of variables into the IPython user namespace.
233 """Inject a group of variables into the IPython user namespace.
234
234
235 Inputs:
235 Inputs:
236
236
237 - vars: string with variable names separated by whitespace
237 - vars: string with variable names separated by whitespace
238
238
239 This utility routine is meant to ease interactive debugging work,
239 This utility routine is meant to ease interactive debugging work,
240 where you want to easily propagate some internal variable in your code
240 where you want to easily propagate some internal variable in your code
241 up to the interactive namespace for further exploration.
241 up to the interactive namespace for further exploration.
242
242
243 When you run code via %run, globals in your script become visible at
243 When you run code via %run, globals in your script become visible at
244 the interactive prompt, but this doesn't happen for locals inside your
244 the interactive prompt, but this doesn't happen for locals inside your
245 own functions and methods. Yet when debugging, it is common to want
245 own functions and methods. Yet when debugging, it is common to want
246 to explore some internal variables further at the interactive propmt.
246 to explore some internal variables further at the interactive propmt.
247
247
248 Examples:
248 Examples:
249
249
250 To use this, you first must obtain a handle on the ipython object as
250 To use this, you first must obtain a handle on the ipython object as
251 indicated above, via:
251 indicated above, via:
252
252
253 import IPython.ipapi
253 import IPython.ipapi
254 ip = IPython.ipapi.get()
254 ip = IPython.ipapi.get()
255
255
256 Once this is done, inside a routine foo() where you want to expose
256 Once this is done, inside a routine foo() where you want to expose
257 variables x and y, you do the following:
257 variables x and y, you do the following:
258
258
259 def foo():
259 def foo():
260 ...
260 ...
261 x = your_computation()
261 x = your_computation()
262 y = something_else()
262 y = something_else()
263
263
264 # This pushes x and y to the interactive prompt immediately, even
264 # This pushes x and y to the interactive prompt immediately, even
265 # if this routine crashes on the next line after:
265 # if this routine crashes on the next line after:
266 ip.to_user_ns('x y')
266 ip.to_user_ns('x y')
267 ...
267 ...
268 # return
268 # return
269
269
270 If you need to rename variables, just use ip.user_ns with dict
270 If you need to rename variables, just use ip.user_ns with dict
271 and update:
271 and update:
272
272
273 # exposes variables 'foo' as 'x' and 'bar' as 'y' in IPython
273 # exposes variables 'foo' as 'x' and 'bar' as 'y' in IPython
274 # user namespace
274 # user namespace
275 ip.user_ns.update(dict(x=foo,y=bar))
275 ip.user_ns.update(dict(x=foo,y=bar))
276 """
276 """
277
277
278 # print 'vars given:',vars # dbg
278 # print 'vars given:',vars # dbg
279 # Get the caller's frame to evaluate the given names in
279 # Get the caller's frame to evaluate the given names in
280 cf = sys._getframe(1)
280 cf = sys._getframe(1)
281
281
282 user_ns = self.user_ns
282 user_ns = self.user_ns
283
283
284 for name in vars.split():
284 for name in vars.split():
285 try:
285 try:
286 user_ns[name] = eval(name,cf.f_globals,cf.f_locals)
286 user_ns[name] = eval(name,cf.f_globals,cf.f_locals)
287 except:
287 except:
288 error('could not get var. %s from %s' %
288 error('could not get var. %s from %s' %
289 (name,cf.f_code.co_name))
289 (name,cf.f_code.co_name))
290
290
291 def expand_alias(self,line):
291 def expand_alias(self,line):
292 """ Expand an alias in the command line
292 """ Expand an alias in the command line
293
293
294 Returns the provided command line, possibly with the first word
294 Returns the provided command line, possibly with the first word
295 (command) translated according to alias expansion rules.
295 (command) translated according to alias expansion rules.
296
296
297 [ipython]|16> _ip.expand_aliases("np myfile.txt")
297 [ipython]|16> _ip.expand_aliases("np myfile.txt")
298 <16> 'q:/opt/np/notepad++.exe myfile.txt'
298 <16> 'q:/opt/np/notepad++.exe myfile.txt'
299 """
299 """
300
300
301 pre,fn,rest = self.IP.split_user_input(line)
301 pre,fn,rest = self.IP.split_user_input(line)
302 res = pre + self.IP.expand_aliases(fn,rest)
302 res = pre + self.IP.expand_aliases(fn,rest)
303
303
304 def defalias(self, name, cmd):
304 def defalias(self, name, cmd):
305 """ Define a new alias
305 """ Define a new alias
306
306
307 _ip.defalias('bb','bldmake bldfiles')
307 _ip.defalias('bb','bldmake bldfiles')
308
308
309 Creates a new alias named 'bb' in ipython user namespace
309 Creates a new alias named 'bb' in ipython user namespace
310 """
310 """
311
311
312
312
313 nargs = cmd.count('%s')
313 nargs = cmd.count('%s')
314 if nargs>0 and cmd.find('%l')>=0:
314 if nargs>0 and cmd.find('%l')>=0:
315 raise Exception('The %s and %l specifiers are mutually exclusive '
315 raise Exception('The %s and %l specifiers are mutually exclusive '
316 'in alias definitions.')
316 'in alias definitions.')
317
317
318 else: # all looks OK
318 else: # all looks OK
319 self.IP.alias_table[name] = (nargs,cmd)
319 self.IP.alias_table[name] = (nargs,cmd)
320
320
321 def defmacro(self, *args):
321 def defmacro(self, *args):
322 """ Define a new macro
322 """ Define a new macro
323
323
324 2 forms of calling:
324 2 forms of calling:
325
325
326 mac = _ip.defmacro('print "hello"\nprint "world"')
326 mac = _ip.defmacro('print "hello"\nprint "world"')
327
327
328 (doesn't put the created macro on user namespace)
328 (doesn't put the created macro on user namespace)
329
329
330 _ip.defmacro('build', 'bldmake bldfiles\nabld build winscw udeb')
330 _ip.defmacro('build', 'bldmake bldfiles\nabld build winscw udeb')
331
331
332 (creates a macro named 'build' in user namespace)
332 (creates a macro named 'build' in user namespace)
333 """
333 """
334
334
335 import IPython.macro
335 import IPython.macro
336 print args
336
337 if len(args) == 1:
337 if len(args) == 1:
338 return IPython.macro.Macro(args[0])
338 return IPython.macro.Macro(args[0])
339 elif len(args) == 2:
339 elif len(args) == 2:
340 self.user_ns[args[0]] = IPython.macro.Macro(args[1])
340 self.user_ns[args[0]] = IPython.macro.Macro(args[1])
341 else:
341 else:
342 return Exception("_ip.defmacro must be called with 1 or 2 arguments")
342 return Exception("_ip.defmacro must be called with 1 or 2 arguments")
343
343
344
344
345
345
346 def launch_new_instance(user_ns = None):
346 def launch_new_instance(user_ns = None):
347 """ Make and start a new ipython instance.
347 """ Make and start a new ipython instance.
348
348
349 This can be called even without having an already initialized
349 This can be called even without having an already initialized
350 ipython session running.
350 ipython session running.
351
351
352 This is also used as the egg entry point for the 'ipython' script.
352 This is also used as the egg entry point for the 'ipython' script.
353
353
354 """
354 """
355 ses = make_session(user_ns)
355 ses = make_session(user_ns)
356 ses.mainloop()
356 ses.mainloop()
357
357
358
358
359 def make_user_ns(user_ns = None):
359 def make_user_ns(user_ns = None):
360 """Return a valid user interactive namespace.
360 """Return a valid user interactive namespace.
361
361
362 This builds a dict with the minimal information needed to operate as a
362 This builds a dict with the minimal information needed to operate as a
363 valid IPython user namespace, which you can pass to the various embedding
363 valid IPython user namespace, which you can pass to the various embedding
364 classes in ipython.
364 classes in ipython.
365 """
365 """
366
366
367 if user_ns is None:
367 if user_ns is None:
368 # Set __name__ to __main__ to better match the behavior of the
368 # Set __name__ to __main__ to better match the behavior of the
369 # normal interpreter.
369 # normal interpreter.
370 user_ns = {'__name__' :'__main__',
370 user_ns = {'__name__' :'__main__',
371 '__builtins__' : __builtin__,
371 '__builtins__' : __builtin__,
372 }
372 }
373 else:
373 else:
374 user_ns.setdefault('__name__','__main__')
374 user_ns.setdefault('__name__','__main__')
375 user_ns.setdefault('__builtins__',__builtin__)
375 user_ns.setdefault('__builtins__',__builtin__)
376
376
377 return user_ns
377 return user_ns
378
378
379
379
380 def make_user_global_ns(ns = None):
380 def make_user_global_ns(ns = None):
381 """Return a valid user global namespace.
381 """Return a valid user global namespace.
382
382
383 Similar to make_user_ns(), but global namespaces are really only needed in
383 Similar to make_user_ns(), but global namespaces are really only needed in
384 embedded applications, where there is a distinction between the user's
384 embedded applications, where there is a distinction between the user's
385 interactive namespace and the global one where ipython is running."""
385 interactive namespace and the global one where ipython is running."""
386
386
387 if ns is None: ns = {}
387 if ns is None: ns = {}
388 return ns
388 return ns
389
389
390
390
391 def make_session(user_ns = None):
391 def make_session(user_ns = None):
392 """Makes, but does not launch an IPython session.
392 """Makes, but does not launch an IPython session.
393
393
394 Later on you can call obj.mainloop() on the returned object.
394 Later on you can call obj.mainloop() on the returned object.
395
395
396 Inputs:
396 Inputs:
397
397
398 - user_ns(None): a dict to be used as the user's namespace with initial
398 - user_ns(None): a dict to be used as the user's namespace with initial
399 data.
399 data.
400
400
401 WARNING: This should *not* be run when a session exists already."""
401 WARNING: This should *not* be run when a session exists already."""
402
402
403 import IPython
403 import IPython
404 return IPython.Shell.start(user_ns)
404 return IPython.Shell.start(user_ns)
405
405
@@ -1,6563 +1,6567 b''
1 2007-04-20 Ville Vainio <vivainio@gmail.com>
1 2007-04-20 Ville Vainio <vivainio@gmail.com>
2
2
3 * Extensions/ipy_render.py: added extension for easy
3 * Extensions/ipy_render.py: added extension for easy
4 interactive text template rendering (todo - add a better
4 interactive text template rendering (todo - add a better
5 renderer than string.Template)
5 renderer than string.Template)
6
6
7 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
7 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
8 safer & faster 'import' completer.
8 safer & faster 'import' completer.
9
9
10 * Introduced new ipapi methods, _ip.defmacro(name, value)
10 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
11 and _ip.defalias(name, command).
11 and _ip.defalias(name, command).
12
12
13 * Extensions/ipy_exportdb.py: New extension for exporting all the
14 %store'd data in a portable format (normal ipapi calls like
15 defmacro() etc.)
16
13 2007-04-19 Ville Vainio <vivainio@gmail.com>
17 2007-04-19 Ville Vainio <vivainio@gmail.com>
14
18
15 * upgrade_dir.py: skip junk files like *.pyc
19 * upgrade_dir.py: skip junk files like *.pyc
16
20
17 * Release.py: version number to 0.8.1
21 * Release.py: version number to 0.8.1
18
22
19 2007-04-18 Ville Vainio <vivainio@gmail.com>
23 2007-04-18 Ville Vainio <vivainio@gmail.com>
20
24
21 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
25 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
22 and later on win32.
26 and later on win32.
23
27
24 2007-04-16 Ville Vainio <vivainio@gmail.com>
28 2007-04-16 Ville Vainio <vivainio@gmail.com>
25
29
26 * iplib.py (showtraceback): Do not crash when running w/o readline.
30 * iplib.py (showtraceback): Do not crash when running w/o readline.
27
31
28 2007-04-12 Walter Doerwald <walter@livinglogic.de>
32 2007-04-12 Walter Doerwald <walter@livinglogic.de>
29
33
30 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
34 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
31 sorted (case sensitive with files and dirs mixed).
35 sorted (case sensitive with files and dirs mixed).
32
36
33 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
37 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
34
38
35 * IPython/Release.py (version): Open trunk for 0.8.1 development.
39 * IPython/Release.py (version): Open trunk for 0.8.1 development.
36
40
37 2007-04-10 *** Released version 0.8.0
41 2007-04-10 *** Released version 0.8.0
38
42
39 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
43 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
40
44
41 * Tag 0.8.0 for release.
45 * Tag 0.8.0 for release.
42
46
43 * IPython/iplib.py (reloadhist): add API function to cleanly
47 * IPython/iplib.py (reloadhist): add API function to cleanly
44 reload the readline history, which was growing inappropriately on
48 reload the readline history, which was growing inappropriately on
45 every %run call.
49 every %run call.
46
50
47 * win32_manual_post_install.py (run): apply last part of Nicolas
51 * win32_manual_post_install.py (run): apply last part of Nicolas
48 Pernetty's patch (I'd accidentally applied it in a different
52 Pernetty's patch (I'd accidentally applied it in a different
49 directory and this particular file didn't get patched).
53 directory and this particular file didn't get patched).
50
54
51 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
55 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
52
56
53 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
57 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
54 find the main thread id and use the proper API call. Thanks to
58 find the main thread id and use the proper API call. Thanks to
55 Stefan for the fix.
59 Stefan for the fix.
56
60
57 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
61 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
58 unit tests to reflect fixed ticket #52, and add more tests sent by
62 unit tests to reflect fixed ticket #52, and add more tests sent by
59 him.
63 him.
60
64
61 * IPython/iplib.py (raw_input): restore the readline completer
65 * IPython/iplib.py (raw_input): restore the readline completer
62 state on every input, in case third-party code messed it up.
66 state on every input, in case third-party code messed it up.
63 (_prefilter): revert recent addition of early-escape checks which
67 (_prefilter): revert recent addition of early-escape checks which
64 prevent many valid alias calls from working.
68 prevent many valid alias calls from working.
65
69
66 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
70 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
67 flag for sigint handler so we don't run a full signal() call on
71 flag for sigint handler so we don't run a full signal() call on
68 each runcode access.
72 each runcode access.
69
73
70 * IPython/Magic.py (magic_whos): small improvement to diagnostic
74 * IPython/Magic.py (magic_whos): small improvement to diagnostic
71 message.
75 message.
72
76
73 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
77 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
74
78
75 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
79 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
76 asynchronous exceptions working, i.e., Ctrl-C can actually
80 asynchronous exceptions working, i.e., Ctrl-C can actually
77 interrupt long-running code in the multithreaded shells.
81 interrupt long-running code in the multithreaded shells.
78
82
79 This is using Tomer Filiba's great ctypes-based trick:
83 This is using Tomer Filiba's great ctypes-based trick:
80 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
84 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
81 this in the past, but hadn't been able to make it work before. So
85 this in the past, but hadn't been able to make it work before. So
82 far it looks like it's actually running, but this needs more
86 far it looks like it's actually running, but this needs more
83 testing. If it really works, I'll be *very* happy, and we'll owe
87 testing. If it really works, I'll be *very* happy, and we'll owe
84 a huge thank you to Tomer. My current implementation is ugly,
88 a huge thank you to Tomer. My current implementation is ugly,
85 hackish and uses nasty globals, but I don't want to try and clean
89 hackish and uses nasty globals, but I don't want to try and clean
86 anything up until we know if it actually works.
90 anything up until we know if it actually works.
87
91
88 NOTE: this feature needs ctypes to work. ctypes is included in
92 NOTE: this feature needs ctypes to work. ctypes is included in
89 Python2.5, but 2.4 users will need to manually install it. This
93 Python2.5, but 2.4 users will need to manually install it. This
90 feature makes multi-threaded shells so much more usable that it's
94 feature makes multi-threaded shells so much more usable that it's
91 a minor price to pay (ctypes is very easy to install, already a
95 a minor price to pay (ctypes is very easy to install, already a
92 requirement for win32 and available in major linux distros).
96 requirement for win32 and available in major linux distros).
93
97
94 2007-04-04 Ville Vainio <vivainio@gmail.com>
98 2007-04-04 Ville Vainio <vivainio@gmail.com>
95
99
96 * Extensions/ipy_completers.py, ipy_stock_completers.py:
100 * Extensions/ipy_completers.py, ipy_stock_completers.py:
97 Moved implementations of 'bundled' completers to ipy_completers.py,
101 Moved implementations of 'bundled' completers to ipy_completers.py,
98 they are only enabled in ipy_stock_completers.py.
102 they are only enabled in ipy_stock_completers.py.
99
103
100 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
104 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
101
105
102 * IPython/PyColorize.py (Parser.format2): Fix identation of
106 * IPython/PyColorize.py (Parser.format2): Fix identation of
103 colorzied output and return early if color scheme is NoColor, to
107 colorzied output and return early if color scheme is NoColor, to
104 avoid unnecessary and expensive tokenization. Closes #131.
108 avoid unnecessary and expensive tokenization. Closes #131.
105
109
106 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
110 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
107
111
108 * IPython/Debugger.py: disable the use of pydb version 1.17. It
112 * IPython/Debugger.py: disable the use of pydb version 1.17. It
109 has a critical bug (a missing import that makes post-mortem not
113 has a critical bug (a missing import that makes post-mortem not
110 work at all). Unfortunately as of this time, this is the version
114 work at all). Unfortunately as of this time, this is the version
111 shipped with Ubuntu Edgy, so quite a few people have this one. I
115 shipped with Ubuntu Edgy, so quite a few people have this one. I
112 hope Edgy will update to a more recent package.
116 hope Edgy will update to a more recent package.
113
117
114 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
118 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
115
119
116 * IPython/iplib.py (_prefilter): close #52, second part of a patch
120 * IPython/iplib.py (_prefilter): close #52, second part of a patch
117 set by Stefan (only the first part had been applied before).
121 set by Stefan (only the first part had been applied before).
118
122
119 * IPython/Extensions/ipy_stock_completers.py (module_completer):
123 * IPython/Extensions/ipy_stock_completers.py (module_completer):
120 remove usage of the dangerous pkgutil.walk_packages(). See
124 remove usage of the dangerous pkgutil.walk_packages(). See
121 details in comments left in the code.
125 details in comments left in the code.
122
126
123 * IPython/Magic.py (magic_whos): add support for numpy arrays
127 * IPython/Magic.py (magic_whos): add support for numpy arrays
124 similar to what we had for Numeric.
128 similar to what we had for Numeric.
125
129
126 * IPython/completer.py (IPCompleter.complete): extend the
130 * IPython/completer.py (IPCompleter.complete): extend the
127 complete() call API to support completions by other mechanisms
131 complete() call API to support completions by other mechanisms
128 than readline. Closes #109.
132 than readline. Closes #109.
129
133
130 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
134 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
131 protect against a bug in Python's execfile(). Closes #123.
135 protect against a bug in Python's execfile(). Closes #123.
132
136
133 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
137 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
134
138
135 * IPython/iplib.py (split_user_input): ensure that when splitting
139 * IPython/iplib.py (split_user_input): ensure that when splitting
136 user input, the part that can be treated as a python name is pure
140 user input, the part that can be treated as a python name is pure
137 ascii (Python identifiers MUST be pure ascii). Part of the
141 ascii (Python identifiers MUST be pure ascii). Part of the
138 ongoing Unicode support work.
142 ongoing Unicode support work.
139
143
140 * IPython/Prompts.py (prompt_specials_color): Add \N for the
144 * IPython/Prompts.py (prompt_specials_color): Add \N for the
141 actual prompt number, without any coloring. This allows users to
145 actual prompt number, without any coloring. This allows users to
142 produce numbered prompts with their own colors. Added after a
146 produce numbered prompts with their own colors. Added after a
143 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
147 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
144
148
145 2007-03-31 Walter Doerwald <walter@livinglogic.de>
149 2007-03-31 Walter Doerwald <walter@livinglogic.de>
146
150
147 * IPython/Extensions/igrid.py: Map the return key
151 * IPython/Extensions/igrid.py: Map the return key
148 to enter() and shift-return to enterattr().
152 to enter() and shift-return to enterattr().
149
153
150 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
154 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
151
155
152 * IPython/Magic.py (magic_psearch): add unicode support by
156 * IPython/Magic.py (magic_psearch): add unicode support by
153 encoding to ascii the input, since this routine also only deals
157 encoding to ascii the input, since this routine also only deals
154 with valid Python names. Fixes a bug reported by Stefan.
158 with valid Python names. Fixes a bug reported by Stefan.
155
159
156 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
160 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
157
161
158 * IPython/Magic.py (_inspect): convert unicode input into ascii
162 * IPython/Magic.py (_inspect): convert unicode input into ascii
159 before trying to evaluate it as a Python identifier. This fixes a
163 before trying to evaluate it as a Python identifier. This fixes a
160 problem that the new unicode support had introduced when analyzing
164 problem that the new unicode support had introduced when analyzing
161 long definition lines for functions.
165 long definition lines for functions.
162
166
163 2007-03-24 Walter Doerwald <walter@livinglogic.de>
167 2007-03-24 Walter Doerwald <walter@livinglogic.de>
164
168
165 * IPython/Extensions/igrid.py: Fix picking. Using
169 * IPython/Extensions/igrid.py: Fix picking. Using
166 igrid with wxPython 2.6 and -wthread should work now.
170 igrid with wxPython 2.6 and -wthread should work now.
167 igrid.display() simply tries to create a frame without
171 igrid.display() simply tries to create a frame without
168 an application. Only if this fails an application is created.
172 an application. Only if this fails an application is created.
169
173
170 2007-03-23 Walter Doerwald <walter@livinglogic.de>
174 2007-03-23 Walter Doerwald <walter@livinglogic.de>
171
175
172 * IPython/Extensions/path.py: Updated to version 2.2.
176 * IPython/Extensions/path.py: Updated to version 2.2.
173
177
174 2007-03-23 Ville Vainio <vivainio@gmail.com>
178 2007-03-23 Ville Vainio <vivainio@gmail.com>
175
179
176 * iplib.py: recursive alias expansion now works better, so that
180 * iplib.py: recursive alias expansion now works better, so that
177 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
181 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
178 doesn't trip up the process, if 'd' has been aliased to 'ls'.
182 doesn't trip up the process, if 'd' has been aliased to 'ls'.
179
183
180 * Extensions/ipy_gnuglobal.py added, provides %global magic
184 * Extensions/ipy_gnuglobal.py added, provides %global magic
181 for users of http://www.gnu.org/software/global
185 for users of http://www.gnu.org/software/global
182
186
183 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
187 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
184 Closes #52. Patch by Stefan van der Walt.
188 Closes #52. Patch by Stefan van der Walt.
185
189
186 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
190 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
187
191
188 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
192 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
189 respect the __file__ attribute when using %run. Thanks to a bug
193 respect the __file__ attribute when using %run. Thanks to a bug
190 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
194 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
191
195
192 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
196 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
193
197
194 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
198 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
195 input. Patch sent by Stefan.
199 input. Patch sent by Stefan.
196
200
197 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
201 2007-03-20 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
198 * IPython/Extensions/ipy_stock_completer.py
202 * IPython/Extensions/ipy_stock_completer.py
199 shlex_split, fix bug in shlex_split. len function
203 shlex_split, fix bug in shlex_split. len function
200 call was missing an if statement. Caused shlex_split to
204 call was missing an if statement. Caused shlex_split to
201 sometimes return "" as last element.
205 sometimes return "" as last element.
202
206
203 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
207 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
204
208
205 * IPython/completer.py
209 * IPython/completer.py
206 (IPCompleter.file_matches.single_dir_expand): fix a problem
210 (IPCompleter.file_matches.single_dir_expand): fix a problem
207 reported by Stefan, where directories containign a single subdir
211 reported by Stefan, where directories containign a single subdir
208 would be completed too early.
212 would be completed too early.
209
213
210 * IPython/Shell.py (_load_pylab): Make the execution of 'from
214 * IPython/Shell.py (_load_pylab): Make the execution of 'from
211 pylab import *' when -pylab is given be optional. A new flag,
215 pylab import *' when -pylab is given be optional. A new flag,
212 pylab_import_all controls this behavior, the default is True for
216 pylab_import_all controls this behavior, the default is True for
213 backwards compatibility.
217 backwards compatibility.
214
218
215 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
219 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
216 modified) R. Bernstein's patch for fully syntax highlighted
220 modified) R. Bernstein's patch for fully syntax highlighted
217 tracebacks. The functionality is also available under ultraTB for
221 tracebacks. The functionality is also available under ultraTB for
218 non-ipython users (someone using ultraTB but outside an ipython
222 non-ipython users (someone using ultraTB but outside an ipython
219 session). They can select the color scheme by setting the
223 session). They can select the color scheme by setting the
220 module-level global DEFAULT_SCHEME. The highlight functionality
224 module-level global DEFAULT_SCHEME. The highlight functionality
221 also works when debugging.
225 also works when debugging.
222
226
223 * IPython/genutils.py (IOStream.close): small patch by
227 * IPython/genutils.py (IOStream.close): small patch by
224 R. Bernstein for improved pydb support.
228 R. Bernstein for improved pydb support.
225
229
226 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
230 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
227 DaveS <davls@telus.net> to improve support of debugging under
231 DaveS <davls@telus.net> to improve support of debugging under
228 NTEmacs, including improved pydb behavior.
232 NTEmacs, including improved pydb behavior.
229
233
230 * IPython/Magic.py (magic_prun): Fix saving of profile info for
234 * IPython/Magic.py (magic_prun): Fix saving of profile info for
231 Python 2.5, where the stats object API changed a little. Thanks
235 Python 2.5, where the stats object API changed a little. Thanks
232 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
236 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
233
237
234 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
238 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
235 Pernetty's patch to improve support for (X)Emacs under Win32.
239 Pernetty's patch to improve support for (X)Emacs under Win32.
236
240
237 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
241 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
238
242
239 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
243 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
240 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
244 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
241 a report by Nik Tautenhahn.
245 a report by Nik Tautenhahn.
242
246
243 2007-03-16 Walter Doerwald <walter@livinglogic.de>
247 2007-03-16 Walter Doerwald <walter@livinglogic.de>
244
248
245 * setup.py: Add the igrid help files to the list of data files
249 * setup.py: Add the igrid help files to the list of data files
246 to be installed alongside igrid.
250 to be installed alongside igrid.
247 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
251 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
248 Show the input object of the igrid browser as the window tile.
252 Show the input object of the igrid browser as the window tile.
249 Show the object the cursor is on in the statusbar.
253 Show the object the cursor is on in the statusbar.
250
254
251 2007-03-15 Ville Vainio <vivainio@gmail.com>
255 2007-03-15 Ville Vainio <vivainio@gmail.com>
252
256
253 * Extensions/ipy_stock_completers.py: Fixed exception
257 * Extensions/ipy_stock_completers.py: Fixed exception
254 on mismatching quotes in %run completer. Patch by
258 on mismatching quotes in %run completer. Patch by
255 JοΏ½rgen Stenarson. Closes #127.
259 JοΏ½rgen Stenarson. Closes #127.
256
260
257 2007-03-14 Ville Vainio <vivainio@gmail.com>
261 2007-03-14 Ville Vainio <vivainio@gmail.com>
258
262
259 * Extensions/ext_rehashdir.py: Do not do auto_alias
263 * Extensions/ext_rehashdir.py: Do not do auto_alias
260 in %rehashdir, it clobbers %store'd aliases.
264 in %rehashdir, it clobbers %store'd aliases.
261
265
262 * UserConfig/ipy_profile_sh.py: envpersist.py extension
266 * UserConfig/ipy_profile_sh.py: envpersist.py extension
263 (beefed up %env) imported for sh profile.
267 (beefed up %env) imported for sh profile.
264
268
265 2007-03-10 Walter Doerwald <walter@livinglogic.de>
269 2007-03-10 Walter Doerwald <walter@livinglogic.de>
266
270
267 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
271 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
268 as the default browser.
272 as the default browser.
269 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
273 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
270 As igrid displays all attributes it ever encounters, fetch() (which has
274 As igrid displays all attributes it ever encounters, fetch() (which has
271 been renamed to _fetch()) doesn't have to recalculate the display attributes
275 been renamed to _fetch()) doesn't have to recalculate the display attributes
272 every time a new item is fetched. This should speed up scrolling.
276 every time a new item is fetched. This should speed up scrolling.
273
277
274 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
278 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
275
279
276 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
280 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
277 Schmolck's recently reported tab-completion bug (my previous one
281 Schmolck's recently reported tab-completion bug (my previous one
278 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
282 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
279
283
280 2007-03-09 Walter Doerwald <walter@livinglogic.de>
284 2007-03-09 Walter Doerwald <walter@livinglogic.de>
281
285
282 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
286 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
283 Close help window if exiting igrid.
287 Close help window if exiting igrid.
284
288
285 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
289 2007-03-02 JοΏ½rgen Stenarson <jorgen.stenarson@bostream.nu>
286
290
287 * IPython/Extensions/ipy_defaults.py: Check if readline is available
291 * IPython/Extensions/ipy_defaults.py: Check if readline is available
288 before calling functions from readline.
292 before calling functions from readline.
289
293
290 2007-03-02 Walter Doerwald <walter@livinglogic.de>
294 2007-03-02 Walter Doerwald <walter@livinglogic.de>
291
295
292 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
296 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
293 igrid is a wxPython-based display object for ipipe. If your system has
297 igrid is a wxPython-based display object for ipipe. If your system has
294 wx installed igrid will be the default display. Without wx ipipe falls
298 wx installed igrid will be the default display. Without wx ipipe falls
295 back to ibrowse (which needs curses). If no curses is installed ipipe
299 back to ibrowse (which needs curses). If no curses is installed ipipe
296 falls back to idump.
300 falls back to idump.
297
301
298 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
302 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
299
303
300 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
304 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
301 my changes from yesterday, they introduced bugs. Will reactivate
305 my changes from yesterday, they introduced bugs. Will reactivate
302 once I get a correct solution, which will be much easier thanks to
306 once I get a correct solution, which will be much easier thanks to
303 Dan Milstein's new prefilter test suite.
307 Dan Milstein's new prefilter test suite.
304
308
305 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
309 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
306
310
307 * IPython/iplib.py (split_user_input): fix input splitting so we
311 * IPython/iplib.py (split_user_input): fix input splitting so we
308 don't attempt attribute accesses on things that can't possibly be
312 don't attempt attribute accesses on things that can't possibly be
309 valid Python attributes. After a bug report by Alex Schmolck.
313 valid Python attributes. After a bug report by Alex Schmolck.
310 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
314 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
311 %magic with explicit % prefix.
315 %magic with explicit % prefix.
312
316
313 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
317 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
314
318
315 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
319 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
316 avoid a DeprecationWarning from GTK.
320 avoid a DeprecationWarning from GTK.
317
321
318 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
322 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
319
323
320 * IPython/genutils.py (clock): I modified clock() to return total
324 * IPython/genutils.py (clock): I modified clock() to return total
321 time, user+system. This is a more commonly needed metric. I also
325 time, user+system. This is a more commonly needed metric. I also
322 introduced the new clocku/clocks to get only user/system time if
326 introduced the new clocku/clocks to get only user/system time if
323 one wants those instead.
327 one wants those instead.
324
328
325 ***WARNING: API CHANGE*** clock() used to return only user time,
329 ***WARNING: API CHANGE*** clock() used to return only user time,
326 so if you want exactly the same results as before, use clocku
330 so if you want exactly the same results as before, use clocku
327 instead.
331 instead.
328
332
329 2007-02-22 Ville Vainio <vivainio@gmail.com>
333 2007-02-22 Ville Vainio <vivainio@gmail.com>
330
334
331 * IPython/Extensions/ipy_p4.py: Extension for improved
335 * IPython/Extensions/ipy_p4.py: Extension for improved
332 p4 (perforce version control system) experience.
336 p4 (perforce version control system) experience.
333 Adds %p4 magic with p4 command completion and
337 Adds %p4 magic with p4 command completion and
334 automatic -G argument (marshall output as python dict)
338 automatic -G argument (marshall output as python dict)
335
339
336 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
340 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
337
341
338 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
342 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
339 stop marks.
343 stop marks.
340 (ClearingMixin): a simple mixin to easily make a Demo class clear
344 (ClearingMixin): a simple mixin to easily make a Demo class clear
341 the screen in between blocks and have empty marquees. The
345 the screen in between blocks and have empty marquees. The
342 ClearDemo and ClearIPDemo classes that use it are included.
346 ClearDemo and ClearIPDemo classes that use it are included.
343
347
344 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
348 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
345
349
346 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
350 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
347 protect against exceptions at Python shutdown time. Patch
351 protect against exceptions at Python shutdown time. Patch
348 sumbmitted to upstream.
352 sumbmitted to upstream.
349
353
350 2007-02-14 Walter Doerwald <walter@livinglogic.de>
354 2007-02-14 Walter Doerwald <walter@livinglogic.de>
351
355
352 * IPython/Extensions/ibrowse.py: If entering the first object level
356 * IPython/Extensions/ibrowse.py: If entering the first object level
353 (i.e. the object for which the browser has been started) fails,
357 (i.e. the object for which the browser has been started) fails,
354 now the error is raised directly (aborting the browser) instead of
358 now the error is raised directly (aborting the browser) instead of
355 running into an empty levels list later.
359 running into an empty levels list later.
356
360
357 2007-02-03 Walter Doerwald <walter@livinglogic.de>
361 2007-02-03 Walter Doerwald <walter@livinglogic.de>
358
362
359 * IPython/Extensions/ipipe.py: Add an xrepr implementation
363 * IPython/Extensions/ipipe.py: Add an xrepr implementation
360 for the noitem object.
364 for the noitem object.
361
365
362 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
363
367
364 * IPython/completer.py (Completer.attr_matches): Fix small
368 * IPython/completer.py (Completer.attr_matches): Fix small
365 tab-completion bug with Enthought Traits objects with units.
369 tab-completion bug with Enthought Traits objects with units.
366 Thanks to a bug report by Tom Denniston
370 Thanks to a bug report by Tom Denniston
367 <tom.denniston-AT-alum.dartmouth.org>.
371 <tom.denniston-AT-alum.dartmouth.org>.
368
372
369 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
373 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
370
374
371 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
375 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
372 bug where only .ipy or .py would be completed. Once the first
376 bug where only .ipy or .py would be completed. Once the first
373 argument to %run has been given, all completions are valid because
377 argument to %run has been given, all completions are valid because
374 they are the arguments to the script, which may well be non-python
378 they are the arguments to the script, which may well be non-python
375 filenames.
379 filenames.
376
380
377 * IPython/irunner.py (InteractiveRunner.run_source): major updates
381 * IPython/irunner.py (InteractiveRunner.run_source): major updates
378 to irunner to allow it to correctly support real doctesting of
382 to irunner to allow it to correctly support real doctesting of
379 out-of-process ipython code.
383 out-of-process ipython code.
380
384
381 * IPython/Magic.py (magic_cd): Make the setting of the terminal
385 * IPython/Magic.py (magic_cd): Make the setting of the terminal
382 title an option (-noterm_title) because it completely breaks
386 title an option (-noterm_title) because it completely breaks
383 doctesting.
387 doctesting.
384
388
385 * IPython/demo.py: fix IPythonDemo class that was not actually working.
389 * IPython/demo.py: fix IPythonDemo class that was not actually working.
386
390
387 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
391 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
388
392
389 * IPython/irunner.py (main): fix small bug where extensions were
393 * IPython/irunner.py (main): fix small bug where extensions were
390 not being correctly recognized.
394 not being correctly recognized.
391
395
392 2007-01-23 Walter Doerwald <walter@livinglogic.de>
396 2007-01-23 Walter Doerwald <walter@livinglogic.de>
393
397
394 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
398 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
395 a string containing a single line yields the string itself as the
399 a string containing a single line yields the string itself as the
396 only item.
400 only item.
397
401
398 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
402 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
399 object if it's the same as the one on the last level (This avoids
403 object if it's the same as the one on the last level (This avoids
400 infinite recursion for one line strings).
404 infinite recursion for one line strings).
401
405
402 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
406 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
403
407
404 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
408 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
405 all output streams before printing tracebacks. This ensures that
409 all output streams before printing tracebacks. This ensures that
406 user output doesn't end up interleaved with traceback output.
410 user output doesn't end up interleaved with traceback output.
407
411
408 2007-01-10 Ville Vainio <vivainio@gmail.com>
412 2007-01-10 Ville Vainio <vivainio@gmail.com>
409
413
410 * Extensions/envpersist.py: Turbocharged %env that remembers
414 * Extensions/envpersist.py: Turbocharged %env that remembers
411 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
415 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
412 "%env VISUAL=jed".
416 "%env VISUAL=jed".
413
417
414 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
418 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
415
419
416 * IPython/iplib.py (showtraceback): ensure that we correctly call
420 * IPython/iplib.py (showtraceback): ensure that we correctly call
417 custom handlers in all cases (some with pdb were slipping through,
421 custom handlers in all cases (some with pdb were slipping through,
418 but I'm not exactly sure why).
422 but I'm not exactly sure why).
419
423
420 * IPython/Debugger.py (Tracer.__init__): added new class to
424 * IPython/Debugger.py (Tracer.__init__): added new class to
421 support set_trace-like usage of IPython's enhanced debugger.
425 support set_trace-like usage of IPython's enhanced debugger.
422
426
423 2006-12-24 Ville Vainio <vivainio@gmail.com>
427 2006-12-24 Ville Vainio <vivainio@gmail.com>
424
428
425 * ipmaker.py: more informative message when ipy_user_conf
429 * ipmaker.py: more informative message when ipy_user_conf
426 import fails (suggest running %upgrade).
430 import fails (suggest running %upgrade).
427
431
428 * tools/run_ipy_in_profiler.py: Utility to see where
432 * tools/run_ipy_in_profiler.py: Utility to see where
429 the time during IPython startup is spent.
433 the time during IPython startup is spent.
430
434
431 2006-12-20 Ville Vainio <vivainio@gmail.com>
435 2006-12-20 Ville Vainio <vivainio@gmail.com>
432
436
433 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
437 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
434
438
435 * ipapi.py: Add new ipapi method, expand_alias.
439 * ipapi.py: Add new ipapi method, expand_alias.
436
440
437 * Release.py: Bump up version to 0.7.4.svn
441 * Release.py: Bump up version to 0.7.4.svn
438
442
439 2006-12-17 Ville Vainio <vivainio@gmail.com>
443 2006-12-17 Ville Vainio <vivainio@gmail.com>
440
444
441 * Extensions/jobctrl.py: Fixed &cmd arg arg...
445 * Extensions/jobctrl.py: Fixed &cmd arg arg...
442 to work properly on posix too
446 to work properly on posix too
443
447
444 * Release.py: Update revnum (version is still just 0.7.3).
448 * Release.py: Update revnum (version is still just 0.7.3).
445
449
446 2006-12-15 Ville Vainio <vivainio@gmail.com>
450 2006-12-15 Ville Vainio <vivainio@gmail.com>
447
451
448 * scripts/ipython_win_post_install: create ipython.py in
452 * scripts/ipython_win_post_install: create ipython.py in
449 prefix + "/scripts".
453 prefix + "/scripts".
450
454
451 * Release.py: Update version to 0.7.3.
455 * Release.py: Update version to 0.7.3.
452
456
453 2006-12-14 Ville Vainio <vivainio@gmail.com>
457 2006-12-14 Ville Vainio <vivainio@gmail.com>
454
458
455 * scripts/ipython_win_post_install: Overwrite old shortcuts
459 * scripts/ipython_win_post_install: Overwrite old shortcuts
456 if they already exist
460 if they already exist
457
461
458 * Release.py: release 0.7.3rc2
462 * Release.py: release 0.7.3rc2
459
463
460 2006-12-13 Ville Vainio <vivainio@gmail.com>
464 2006-12-13 Ville Vainio <vivainio@gmail.com>
461
465
462 * Branch and update Release.py for 0.7.3rc1
466 * Branch and update Release.py for 0.7.3rc1
463
467
464 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
468 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
465
469
466 * IPython/Shell.py (IPShellWX): update for current WX naming
470 * IPython/Shell.py (IPShellWX): update for current WX naming
467 conventions, to avoid a deprecation warning with current WX
471 conventions, to avoid a deprecation warning with current WX
468 versions. Thanks to a report by Danny Shevitz.
472 versions. Thanks to a report by Danny Shevitz.
469
473
470 2006-12-12 Ville Vainio <vivainio@gmail.com>
474 2006-12-12 Ville Vainio <vivainio@gmail.com>
471
475
472 * ipmaker.py: apply david cournapeau's patch to make
476 * ipmaker.py: apply david cournapeau's patch to make
473 import_some work properly even when ipythonrc does
477 import_some work properly even when ipythonrc does
474 import_some on empty list (it was an old bug!).
478 import_some on empty list (it was an old bug!).
475
479
476 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
480 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
477 Add deprecation note to ipythonrc and a url to wiki
481 Add deprecation note to ipythonrc and a url to wiki
478 in ipy_user_conf.py
482 in ipy_user_conf.py
479
483
480
484
481 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
485 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
482 as if it was typed on IPython command prompt, i.e.
486 as if it was typed on IPython command prompt, i.e.
483 as IPython script.
487 as IPython script.
484
488
485 * example-magic.py, magic_grepl.py: remove outdated examples
489 * example-magic.py, magic_grepl.py: remove outdated examples
486
490
487 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
491 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
488
492
489 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
493 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
490 is called before any exception has occurred.
494 is called before any exception has occurred.
491
495
492 2006-12-08 Ville Vainio <vivainio@gmail.com>
496 2006-12-08 Ville Vainio <vivainio@gmail.com>
493
497
494 * Extensions/ipy_stock_completers.py: fix cd completer
498 * Extensions/ipy_stock_completers.py: fix cd completer
495 to translate /'s to \'s again.
499 to translate /'s to \'s again.
496
500
497 * completer.py: prevent traceback on file completions w/
501 * completer.py: prevent traceback on file completions w/
498 backslash.
502 backslash.
499
503
500 * Release.py: Update release number to 0.7.3b3 for release
504 * Release.py: Update release number to 0.7.3b3 for release
501
505
502 2006-12-07 Ville Vainio <vivainio@gmail.com>
506 2006-12-07 Ville Vainio <vivainio@gmail.com>
503
507
504 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
508 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
505 while executing external code. Provides more shell-like behaviour
509 while executing external code. Provides more shell-like behaviour
506 and overall better response to ctrl + C / ctrl + break.
510 and overall better response to ctrl + C / ctrl + break.
507
511
508 * tools/make_tarball.py: new script to create tarball straight from svn
512 * tools/make_tarball.py: new script to create tarball straight from svn
509 (setup.py sdist doesn't work on win32).
513 (setup.py sdist doesn't work on win32).
510
514
511 * Extensions/ipy_stock_completers.py: fix cd completer to give up
515 * Extensions/ipy_stock_completers.py: fix cd completer to give up
512 on dirnames with spaces and use the default completer instead.
516 on dirnames with spaces and use the default completer instead.
513
517
514 * Revision.py: Change version to 0.7.3b2 for release.
518 * Revision.py: Change version to 0.7.3b2 for release.
515
519
516 2006-12-05 Ville Vainio <vivainio@gmail.com>
520 2006-12-05 Ville Vainio <vivainio@gmail.com>
517
521
518 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
522 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
519 pydb patch 4 (rm debug printing, py 2.5 checking)
523 pydb patch 4 (rm debug printing, py 2.5 checking)
520
524
521 2006-11-30 Walter Doerwald <walter@livinglogic.de>
525 2006-11-30 Walter Doerwald <walter@livinglogic.de>
522 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
526 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
523 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
527 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
524 "refreshfind" (mapped to "R") does the same but tries to go back to the same
528 "refreshfind" (mapped to "R") does the same but tries to go back to the same
525 object the cursor was on before the refresh. The command "markrange" is
529 object the cursor was on before the refresh. The command "markrange" is
526 mapped to "%" now.
530 mapped to "%" now.
527 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
531 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
528
532
529 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
533 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
530
534
531 * IPython/Magic.py (magic_debug): new %debug magic to activate the
535 * IPython/Magic.py (magic_debug): new %debug magic to activate the
532 interactive debugger on the last traceback, without having to call
536 interactive debugger on the last traceback, without having to call
533 %pdb and rerun your code. Made minor changes in various modules,
537 %pdb and rerun your code. Made minor changes in various modules,
534 should automatically recognize pydb if available.
538 should automatically recognize pydb if available.
535
539
536 2006-11-28 Ville Vainio <vivainio@gmail.com>
540 2006-11-28 Ville Vainio <vivainio@gmail.com>
537
541
538 * completer.py: If the text start with !, show file completions
542 * completer.py: If the text start with !, show file completions
539 properly. This helps when trying to complete command name
543 properly. This helps when trying to complete command name
540 for shell escapes.
544 for shell escapes.
541
545
542 2006-11-27 Ville Vainio <vivainio@gmail.com>
546 2006-11-27 Ville Vainio <vivainio@gmail.com>
543
547
544 * ipy_stock_completers.py: bzr completer submitted by Stefan van
548 * ipy_stock_completers.py: bzr completer submitted by Stefan van
545 der Walt. Clean up svn and hg completers by using a common
549 der Walt. Clean up svn and hg completers by using a common
546 vcs_completer.
550 vcs_completer.
547
551
548 2006-11-26 Ville Vainio <vivainio@gmail.com>
552 2006-11-26 Ville Vainio <vivainio@gmail.com>
549
553
550 * Remove ipconfig and %config; you should use _ip.options structure
554 * Remove ipconfig and %config; you should use _ip.options structure
551 directly instead!
555 directly instead!
552
556
553 * genutils.py: add wrap_deprecated function for deprecating callables
557 * genutils.py: add wrap_deprecated function for deprecating callables
554
558
555 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
559 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
556 _ip.system instead. ipalias is redundant.
560 _ip.system instead. ipalias is redundant.
557
561
558 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
562 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
559 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
563 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
560 explicit.
564 explicit.
561
565
562 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
566 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
563 completer. Try it by entering 'hg ' and pressing tab.
567 completer. Try it by entering 'hg ' and pressing tab.
564
568
565 * macro.py: Give Macro a useful __repr__ method
569 * macro.py: Give Macro a useful __repr__ method
566
570
567 * Magic.py: %whos abbreviates the typename of Macro for brevity.
571 * Magic.py: %whos abbreviates the typename of Macro for brevity.
568
572
569 2006-11-24 Walter Doerwald <walter@livinglogic.de>
573 2006-11-24 Walter Doerwald <walter@livinglogic.de>
570 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
574 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
571 we don't get a duplicate ipipe module, where registration of the xrepr
575 we don't get a duplicate ipipe module, where registration of the xrepr
572 implementation for Text is useless.
576 implementation for Text is useless.
573
577
574 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
578 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
575
579
576 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
580 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
577
581
578 2006-11-24 Ville Vainio <vivainio@gmail.com>
582 2006-11-24 Ville Vainio <vivainio@gmail.com>
579
583
580 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
584 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
581 try to use "cProfile" instead of the slower pure python
585 try to use "cProfile" instead of the slower pure python
582 "profile"
586 "profile"
583
587
584 2006-11-23 Ville Vainio <vivainio@gmail.com>
588 2006-11-23 Ville Vainio <vivainio@gmail.com>
585
589
586 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
590 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
587 Qt+IPython+Designer link in documentation.
591 Qt+IPython+Designer link in documentation.
588
592
589 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
593 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
590 correct Pdb object to %pydb.
594 correct Pdb object to %pydb.
591
595
592
596
593 2006-11-22 Walter Doerwald <walter@livinglogic.de>
597 2006-11-22 Walter Doerwald <walter@livinglogic.de>
594 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
598 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
595 generic xrepr(), otherwise the list implementation would kick in.
599 generic xrepr(), otherwise the list implementation would kick in.
596
600
597 2006-11-21 Ville Vainio <vivainio@gmail.com>
601 2006-11-21 Ville Vainio <vivainio@gmail.com>
598
602
599 * upgrade_dir.py: Now actually overwrites a nonmodified user file
603 * upgrade_dir.py: Now actually overwrites a nonmodified user file
600 with one from UserConfig.
604 with one from UserConfig.
601
605
602 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
606 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
603 it was missing which broke the sh profile.
607 it was missing which broke the sh profile.
604
608
605 * completer.py: file completer now uses explicit '/' instead
609 * completer.py: file completer now uses explicit '/' instead
606 of os.path.join, expansion of 'foo' was broken on win32
610 of os.path.join, expansion of 'foo' was broken on win32
607 if there was one directory with name 'foobar'.
611 if there was one directory with name 'foobar'.
608
612
609 * A bunch of patches from Kirill Smelkov:
613 * A bunch of patches from Kirill Smelkov:
610
614
611 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
615 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
612
616
613 * [patch 7/9] Implement %page -r (page in raw mode) -
617 * [patch 7/9] Implement %page -r (page in raw mode) -
614
618
615 * [patch 5/9] ScientificPython webpage has moved
619 * [patch 5/9] ScientificPython webpage has moved
616
620
617 * [patch 4/9] The manual mentions %ds, should be %dhist
621 * [patch 4/9] The manual mentions %ds, should be %dhist
618
622
619 * [patch 3/9] Kill old bits from %prun doc.
623 * [patch 3/9] Kill old bits from %prun doc.
620
624
621 * [patch 1/9] Fix typos here and there.
625 * [patch 1/9] Fix typos here and there.
622
626
623 2006-11-08 Ville Vainio <vivainio@gmail.com>
627 2006-11-08 Ville Vainio <vivainio@gmail.com>
624
628
625 * completer.py (attr_matches): catch all exceptions raised
629 * completer.py (attr_matches): catch all exceptions raised
626 by eval of expr with dots.
630 by eval of expr with dots.
627
631
628 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
632 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
629
633
630 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
634 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
631 input if it starts with whitespace. This allows you to paste
635 input if it starts with whitespace. This allows you to paste
632 indented input from any editor without manually having to type in
636 indented input from any editor without manually having to type in
633 the 'if 1:', which is convenient when working interactively.
637 the 'if 1:', which is convenient when working interactively.
634 Slightly modifed version of a patch by Bo Peng
638 Slightly modifed version of a patch by Bo Peng
635 <bpeng-AT-rice.edu>.
639 <bpeng-AT-rice.edu>.
636
640
637 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
641 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
638
642
639 * IPython/irunner.py (main): modified irunner so it automatically
643 * IPython/irunner.py (main): modified irunner so it automatically
640 recognizes the right runner to use based on the extension (.py for
644 recognizes the right runner to use based on the extension (.py for
641 python, .ipy for ipython and .sage for sage).
645 python, .ipy for ipython and .sage for sage).
642
646
643 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
647 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
644 visible in ipapi as ip.config(), to programatically control the
648 visible in ipapi as ip.config(), to programatically control the
645 internal rc object. There's an accompanying %config magic for
649 internal rc object. There's an accompanying %config magic for
646 interactive use, which has been enhanced to match the
650 interactive use, which has been enhanced to match the
647 funtionality in ipconfig.
651 funtionality in ipconfig.
648
652
649 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
653 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
650 so it's not just a toggle, it now takes an argument. Add support
654 so it's not just a toggle, it now takes an argument. Add support
651 for a customizable header when making system calls, as the new
655 for a customizable header when making system calls, as the new
652 system_header variable in the ipythonrc file.
656 system_header variable in the ipythonrc file.
653
657
654 2006-11-03 Walter Doerwald <walter@livinglogic.de>
658 2006-11-03 Walter Doerwald <walter@livinglogic.de>
655
659
656 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
660 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
657 generic functions (using Philip J. Eby's simplegeneric package).
661 generic functions (using Philip J. Eby's simplegeneric package).
658 This makes it possible to customize the display of third-party classes
662 This makes it possible to customize the display of third-party classes
659 without having to monkeypatch them. xiter() no longer supports a mode
663 without having to monkeypatch them. xiter() no longer supports a mode
660 argument and the XMode class has been removed. The same functionality can
664 argument and the XMode class has been removed. The same functionality can
661 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
665 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
662 One consequence of the switch to generic functions is that xrepr() and
666 One consequence of the switch to generic functions is that xrepr() and
663 xattrs() implementation must define the default value for the mode
667 xattrs() implementation must define the default value for the mode
664 argument themselves and xattrs() implementations must return real
668 argument themselves and xattrs() implementations must return real
665 descriptors.
669 descriptors.
666
670
667 * IPython/external: This new subpackage will contain all third-party
671 * IPython/external: This new subpackage will contain all third-party
668 packages that are bundled with IPython. (The first one is simplegeneric).
672 packages that are bundled with IPython. (The first one is simplegeneric).
669
673
670 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
674 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
671 directory which as been dropped in r1703.
675 directory which as been dropped in r1703.
672
676
673 * IPython/Extensions/ipipe.py (iless): Fixed.
677 * IPython/Extensions/ipipe.py (iless): Fixed.
674
678
675 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
679 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
676
680
677 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
681 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
678
682
679 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
683 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
680 handling in variable expansion so that shells and magics recognize
684 handling in variable expansion so that shells and magics recognize
681 function local scopes correctly. Bug reported by Brian.
685 function local scopes correctly. Bug reported by Brian.
682
686
683 * scripts/ipython: remove the very first entry in sys.path which
687 * scripts/ipython: remove the very first entry in sys.path which
684 Python auto-inserts for scripts, so that sys.path under IPython is
688 Python auto-inserts for scripts, so that sys.path under IPython is
685 as similar as possible to that under plain Python.
689 as similar as possible to that under plain Python.
686
690
687 * IPython/completer.py (IPCompleter.file_matches): Fix
691 * IPython/completer.py (IPCompleter.file_matches): Fix
688 tab-completion so that quotes are not closed unless the completion
692 tab-completion so that quotes are not closed unless the completion
689 is unambiguous. After a request by Stefan. Minor cleanups in
693 is unambiguous. After a request by Stefan. Minor cleanups in
690 ipy_stock_completers.
694 ipy_stock_completers.
691
695
692 2006-11-02 Ville Vainio <vivainio@gmail.com>
696 2006-11-02 Ville Vainio <vivainio@gmail.com>
693
697
694 * ipy_stock_completers.py: Add %run and %cd completers.
698 * ipy_stock_completers.py: Add %run and %cd completers.
695
699
696 * completer.py: Try running custom completer for both
700 * completer.py: Try running custom completer for both
697 "foo" and "%foo" if the command is just "foo". Ignore case
701 "foo" and "%foo" if the command is just "foo". Ignore case
698 when filtering possible completions.
702 when filtering possible completions.
699
703
700 * UserConfig/ipy_user_conf.py: install stock completers as default
704 * UserConfig/ipy_user_conf.py: install stock completers as default
701
705
702 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
706 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
703 simplified readline history save / restore through a wrapper
707 simplified readline history save / restore through a wrapper
704 function
708 function
705
709
706
710
707 2006-10-31 Ville Vainio <vivainio@gmail.com>
711 2006-10-31 Ville Vainio <vivainio@gmail.com>
708
712
709 * strdispatch.py, completer.py, ipy_stock_completers.py:
713 * strdispatch.py, completer.py, ipy_stock_completers.py:
710 Allow str_key ("command") in completer hooks. Implement
714 Allow str_key ("command") in completer hooks. Implement
711 trivial completer for 'import' (stdlib modules only). Rename
715 trivial completer for 'import' (stdlib modules only). Rename
712 ipy_linux_package_managers.py to ipy_stock_completers.py.
716 ipy_linux_package_managers.py to ipy_stock_completers.py.
713 SVN completer.
717 SVN completer.
714
718
715 * Extensions/ledit.py: %magic line editor for easily and
719 * Extensions/ledit.py: %magic line editor for easily and
716 incrementally manipulating lists of strings. The magic command
720 incrementally manipulating lists of strings. The magic command
717 name is %led.
721 name is %led.
718
722
719 2006-10-30 Ville Vainio <vivainio@gmail.com>
723 2006-10-30 Ville Vainio <vivainio@gmail.com>
720
724
721 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
725 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
722 Bernsteins's patches for pydb integration.
726 Bernsteins's patches for pydb integration.
723 http://bashdb.sourceforge.net/pydb/
727 http://bashdb.sourceforge.net/pydb/
724
728
725 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
729 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
726 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
730 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
727 custom completer hook to allow the users to implement their own
731 custom completer hook to allow the users to implement their own
728 completers. See ipy_linux_package_managers.py for example. The
732 completers. See ipy_linux_package_managers.py for example. The
729 hook name is 'complete_command'.
733 hook name is 'complete_command'.
730
734
731 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
735 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
732
736
733 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
737 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
734 Numeric leftovers.
738 Numeric leftovers.
735
739
736 * ipython.el (py-execute-region): apply Stefan's patch to fix
740 * ipython.el (py-execute-region): apply Stefan's patch to fix
737 garbled results if the python shell hasn't been previously started.
741 garbled results if the python shell hasn't been previously started.
738
742
739 * IPython/genutils.py (arg_split): moved to genutils, since it's a
743 * IPython/genutils.py (arg_split): moved to genutils, since it's a
740 pretty generic function and useful for other things.
744 pretty generic function and useful for other things.
741
745
742 * IPython/OInspect.py (getsource): Add customizable source
746 * IPython/OInspect.py (getsource): Add customizable source
743 extractor. After a request/patch form W. Stein (SAGE).
747 extractor. After a request/patch form W. Stein (SAGE).
744
748
745 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
749 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
746 window size to a more reasonable value from what pexpect does,
750 window size to a more reasonable value from what pexpect does,
747 since their choice causes wrapping bugs with long input lines.
751 since their choice causes wrapping bugs with long input lines.
748
752
749 2006-10-28 Ville Vainio <vivainio@gmail.com>
753 2006-10-28 Ville Vainio <vivainio@gmail.com>
750
754
751 * Magic.py (%run): Save and restore the readline history from
755 * Magic.py (%run): Save and restore the readline history from
752 file around %run commands to prevent side effects from
756 file around %run commands to prevent side effects from
753 %runned programs that might use readline (e.g. pydb).
757 %runned programs that might use readline (e.g. pydb).
754
758
755 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
759 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
756 invoking the pydb enhanced debugger.
760 invoking the pydb enhanced debugger.
757
761
758 2006-10-23 Walter Doerwald <walter@livinglogic.de>
762 2006-10-23 Walter Doerwald <walter@livinglogic.de>
759
763
760 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
764 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
761 call the base class method and propagate the return value to
765 call the base class method and propagate the return value to
762 ifile. This is now done by path itself.
766 ifile. This is now done by path itself.
763
767
764 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
768 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
765
769
766 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
770 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
767 api: set_crash_handler(), to expose the ability to change the
771 api: set_crash_handler(), to expose the ability to change the
768 internal crash handler.
772 internal crash handler.
769
773
770 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
774 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
771 the various parameters of the crash handler so that apps using
775 the various parameters of the crash handler so that apps using
772 IPython as their engine can customize crash handling. Ipmlemented
776 IPython as their engine can customize crash handling. Ipmlemented
773 at the request of SAGE.
777 at the request of SAGE.
774
778
775 2006-10-14 Ville Vainio <vivainio@gmail.com>
779 2006-10-14 Ville Vainio <vivainio@gmail.com>
776
780
777 * Magic.py, ipython.el: applied first "safe" part of Rocky
781 * Magic.py, ipython.el: applied first "safe" part of Rocky
778 Bernstein's patch set for pydb integration.
782 Bernstein's patch set for pydb integration.
779
783
780 * Magic.py (%unalias, %alias): %store'd aliases can now be
784 * Magic.py (%unalias, %alias): %store'd aliases can now be
781 removed with '%unalias'. %alias w/o args now shows most
785 removed with '%unalias'. %alias w/o args now shows most
782 interesting (stored / manually defined) aliases last
786 interesting (stored / manually defined) aliases last
783 where they catch the eye w/o scrolling.
787 where they catch the eye w/o scrolling.
784
788
785 * Magic.py (%rehashx), ext_rehashdir.py: files with
789 * Magic.py (%rehashx), ext_rehashdir.py: files with
786 'py' extension are always considered executable, even
790 'py' extension are always considered executable, even
787 when not in PATHEXT environment variable.
791 when not in PATHEXT environment variable.
788
792
789 2006-10-12 Ville Vainio <vivainio@gmail.com>
793 2006-10-12 Ville Vainio <vivainio@gmail.com>
790
794
791 * jobctrl.py: Add new "jobctrl" extension for spawning background
795 * jobctrl.py: Add new "jobctrl" extension for spawning background
792 processes with "&find /". 'import jobctrl' to try it out. Requires
796 processes with "&find /". 'import jobctrl' to try it out. Requires
793 'subprocess' module, standard in python 2.4+.
797 'subprocess' module, standard in python 2.4+.
794
798
795 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
799 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
796 so if foo -> bar and bar -> baz, then foo -> baz.
800 so if foo -> bar and bar -> baz, then foo -> baz.
797
801
798 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
802 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
799
803
800 * IPython/Magic.py (Magic.parse_options): add a new posix option
804 * IPython/Magic.py (Magic.parse_options): add a new posix option
801 to allow parsing of input args in magics that doesn't strip quotes
805 to allow parsing of input args in magics that doesn't strip quotes
802 (if posix=False). This also closes %timeit bug reported by
806 (if posix=False). This also closes %timeit bug reported by
803 Stefan.
807 Stefan.
804
808
805 2006-10-03 Ville Vainio <vivainio@gmail.com>
809 2006-10-03 Ville Vainio <vivainio@gmail.com>
806
810
807 * iplib.py (raw_input, interact): Return ValueError catching for
811 * iplib.py (raw_input, interact): Return ValueError catching for
808 raw_input. Fixes infinite loop for sys.stdin.close() or
812 raw_input. Fixes infinite loop for sys.stdin.close() or
809 sys.stdout.close().
813 sys.stdout.close().
810
814
811 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
815 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
812
816
813 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
817 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
814 to help in handling doctests. irunner is now pretty useful for
818 to help in handling doctests. irunner is now pretty useful for
815 running standalone scripts and simulate a full interactive session
819 running standalone scripts and simulate a full interactive session
816 in a format that can be then pasted as a doctest.
820 in a format that can be then pasted as a doctest.
817
821
818 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
822 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
819 on top of the default (useless) ones. This also fixes the nasty
823 on top of the default (useless) ones. This also fixes the nasty
820 way in which 2.5's Quitter() exits (reverted [1785]).
824 way in which 2.5's Quitter() exits (reverted [1785]).
821
825
822 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
826 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
823 2.5.
827 2.5.
824
828
825 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
829 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
826 color scheme is updated as well when color scheme is changed
830 color scheme is updated as well when color scheme is changed
827 interactively.
831 interactively.
828
832
829 2006-09-27 Ville Vainio <vivainio@gmail.com>
833 2006-09-27 Ville Vainio <vivainio@gmail.com>
830
834
831 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
835 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
832 infinite loop and just exit. It's a hack, but will do for a while.
836 infinite loop and just exit. It's a hack, but will do for a while.
833
837
834 2006-08-25 Walter Doerwald <walter@livinglogic.de>
838 2006-08-25 Walter Doerwald <walter@livinglogic.de>
835
839
836 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
840 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
837 the constructor, this makes it possible to get a list of only directories
841 the constructor, this makes it possible to get a list of only directories
838 or only files.
842 or only files.
839
843
840 2006-08-12 Ville Vainio <vivainio@gmail.com>
844 2006-08-12 Ville Vainio <vivainio@gmail.com>
841
845
842 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
846 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
843 they broke unittest
847 they broke unittest
844
848
845 2006-08-11 Ville Vainio <vivainio@gmail.com>
849 2006-08-11 Ville Vainio <vivainio@gmail.com>
846
850
847 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
851 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
848 by resolving issue properly, i.e. by inheriting FakeModule
852 by resolving issue properly, i.e. by inheriting FakeModule
849 from types.ModuleType. Pickling ipython interactive data
853 from types.ModuleType. Pickling ipython interactive data
850 should still work as usual (testing appreciated).
854 should still work as usual (testing appreciated).
851
855
852 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
856 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
853
857
854 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
858 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
855 running under python 2.3 with code from 2.4 to fix a bug with
859 running under python 2.3 with code from 2.4 to fix a bug with
856 help(). Reported by the Debian maintainers, Norbert Tretkowski
860 help(). Reported by the Debian maintainers, Norbert Tretkowski
857 <norbert-AT-tretkowski.de> and Alexandre Fayolle
861 <norbert-AT-tretkowski.de> and Alexandre Fayolle
858 <afayolle-AT-debian.org>.
862 <afayolle-AT-debian.org>.
859
863
860 2006-08-04 Walter Doerwald <walter@livinglogic.de>
864 2006-08-04 Walter Doerwald <walter@livinglogic.de>
861
865
862 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
866 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
863 (which was displaying "quit" twice).
867 (which was displaying "quit" twice).
864
868
865 2006-07-28 Walter Doerwald <walter@livinglogic.de>
869 2006-07-28 Walter Doerwald <walter@livinglogic.de>
866
870
867 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
871 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
868 the mode argument).
872 the mode argument).
869
873
870 2006-07-27 Walter Doerwald <walter@livinglogic.de>
874 2006-07-27 Walter Doerwald <walter@livinglogic.de>
871
875
872 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
876 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
873 not running under IPython.
877 not running under IPython.
874
878
875 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
879 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
876 and make it iterable (iterating over the attribute itself). Add two new
880 and make it iterable (iterating over the attribute itself). Add two new
877 magic strings for __xattrs__(): If the string starts with "-", the attribute
881 magic strings for __xattrs__(): If the string starts with "-", the attribute
878 will not be displayed in ibrowse's detail view (but it can still be
882 will not be displayed in ibrowse's detail view (but it can still be
879 iterated over). This makes it possible to add attributes that are large
883 iterated over). This makes it possible to add attributes that are large
880 lists or generator methods to the detail view. Replace magic attribute names
884 lists or generator methods to the detail view. Replace magic attribute names
881 and _attrname() and _getattr() with "descriptors": For each type of magic
885 and _attrname() and _getattr() with "descriptors": For each type of magic
882 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
886 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
883 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
887 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
884 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
888 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
885 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
889 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
886 are still supported.
890 are still supported.
887
891
888 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
892 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
889 fails in ibrowse.fetch(), the exception object is added as the last item
893 fails in ibrowse.fetch(), the exception object is added as the last item
890 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
894 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
891 a generator throws an exception midway through execution.
895 a generator throws an exception midway through execution.
892
896
893 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
897 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
894 encoding into methods.
898 encoding into methods.
895
899
896 2006-07-26 Ville Vainio <vivainio@gmail.com>
900 2006-07-26 Ville Vainio <vivainio@gmail.com>
897
901
898 * iplib.py: history now stores multiline input as single
902 * iplib.py: history now stores multiline input as single
899 history entries. Patch by Jorgen Cederlof.
903 history entries. Patch by Jorgen Cederlof.
900
904
901 2006-07-18 Walter Doerwald <walter@livinglogic.de>
905 2006-07-18 Walter Doerwald <walter@livinglogic.de>
902
906
903 * IPython/Extensions/ibrowse.py: Make cursor visible over
907 * IPython/Extensions/ibrowse.py: Make cursor visible over
904 non existing attributes.
908 non existing attributes.
905
909
906 2006-07-14 Walter Doerwald <walter@livinglogic.de>
910 2006-07-14 Walter Doerwald <walter@livinglogic.de>
907
911
908 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
912 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
909 error output of the running command doesn't mess up the screen.
913 error output of the running command doesn't mess up the screen.
910
914
911 2006-07-13 Walter Doerwald <walter@livinglogic.de>
915 2006-07-13 Walter Doerwald <walter@livinglogic.de>
912
916
913 * IPython/Extensions/ipipe.py (isort): Make isort usable without
917 * IPython/Extensions/ipipe.py (isort): Make isort usable without
914 argument. This sorts the items themselves.
918 argument. This sorts the items themselves.
915
919
916 2006-07-12 Walter Doerwald <walter@livinglogic.de>
920 2006-07-12 Walter Doerwald <walter@livinglogic.de>
917
921
918 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
922 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
919 Compile expression strings into code objects. This should speed
923 Compile expression strings into code objects. This should speed
920 up ifilter and friends somewhat.
924 up ifilter and friends somewhat.
921
925
922 2006-07-08 Ville Vainio <vivainio@gmail.com>
926 2006-07-08 Ville Vainio <vivainio@gmail.com>
923
927
924 * Magic.py: %cpaste now strips > from the beginning of lines
928 * Magic.py: %cpaste now strips > from the beginning of lines
925 to ease pasting quoted code from emails. Contributed by
929 to ease pasting quoted code from emails. Contributed by
926 Stefan van der Walt.
930 Stefan van der Walt.
927
931
928 2006-06-29 Ville Vainio <vivainio@gmail.com>
932 2006-06-29 Ville Vainio <vivainio@gmail.com>
929
933
930 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
934 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
931 mode, patch contributed by Darren Dale. NEEDS TESTING!
935 mode, patch contributed by Darren Dale. NEEDS TESTING!
932
936
933 2006-06-28 Walter Doerwald <walter@livinglogic.de>
937 2006-06-28 Walter Doerwald <walter@livinglogic.de>
934
938
935 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
939 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
936 a blue background. Fix fetching new display rows when the browser
940 a blue background. Fix fetching new display rows when the browser
937 scrolls more than a screenful (e.g. by using the goto command).
941 scrolls more than a screenful (e.g. by using the goto command).
938
942
939 2006-06-27 Ville Vainio <vivainio@gmail.com>
943 2006-06-27 Ville Vainio <vivainio@gmail.com>
940
944
941 * Magic.py (_inspect, _ofind) Apply David Huard's
945 * Magic.py (_inspect, _ofind) Apply David Huard's
942 patch for displaying the correct docstring for 'property'
946 patch for displaying the correct docstring for 'property'
943 attributes.
947 attributes.
944
948
945 2006-06-23 Walter Doerwald <walter@livinglogic.de>
949 2006-06-23 Walter Doerwald <walter@livinglogic.de>
946
950
947 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
951 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
948 commands into the methods implementing them.
952 commands into the methods implementing them.
949
953
950 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
954 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
951
955
952 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
956 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
953 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
957 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
954 autoindent support was authored by Jin Liu.
958 autoindent support was authored by Jin Liu.
955
959
956 2006-06-22 Walter Doerwald <walter@livinglogic.de>
960 2006-06-22 Walter Doerwald <walter@livinglogic.de>
957
961
958 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
962 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
959 for keymaps with a custom class that simplifies handling.
963 for keymaps with a custom class that simplifies handling.
960
964
961 2006-06-19 Walter Doerwald <walter@livinglogic.de>
965 2006-06-19 Walter Doerwald <walter@livinglogic.de>
962
966
963 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
967 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
964 resizing. This requires Python 2.5 to work.
968 resizing. This requires Python 2.5 to work.
965
969
966 2006-06-16 Walter Doerwald <walter@livinglogic.de>
970 2006-06-16 Walter Doerwald <walter@livinglogic.de>
967
971
968 * IPython/Extensions/ibrowse.py: Add two new commands to
972 * IPython/Extensions/ibrowse.py: Add two new commands to
969 ibrowse: "hideattr" (mapped to "h") hides the attribute under
973 ibrowse: "hideattr" (mapped to "h") hides the attribute under
970 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
974 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
971 attributes again. Remapped the help command to "?". Display
975 attributes again. Remapped the help command to "?". Display
972 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
976 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
973 as keys for the "home" and "end" commands. Add three new commands
977 as keys for the "home" and "end" commands. Add three new commands
974 to the input mode for "find" and friends: "delend" (CTRL-K)
978 to the input mode for "find" and friends: "delend" (CTRL-K)
975 deletes to the end of line. "incsearchup" searches upwards in the
979 deletes to the end of line. "incsearchup" searches upwards in the
976 command history for an input that starts with the text before the cursor.
980 command history for an input that starts with the text before the cursor.
977 "incsearchdown" does the same downwards. Removed a bogus mapping of
981 "incsearchdown" does the same downwards. Removed a bogus mapping of
978 the x key to "delete".
982 the x key to "delete".
979
983
980 2006-06-15 Ville Vainio <vivainio@gmail.com>
984 2006-06-15 Ville Vainio <vivainio@gmail.com>
981
985
982 * iplib.py, hooks.py: Added new generate_prompt hook that can be
986 * iplib.py, hooks.py: Added new generate_prompt hook that can be
983 used to create prompts dynamically, instead of the "old" way of
987 used to create prompts dynamically, instead of the "old" way of
984 assigning "magic" strings to prompt_in1 and prompt_in2. The old
988 assigning "magic" strings to prompt_in1 and prompt_in2. The old
985 way still works (it's invoked by the default hook), of course.
989 way still works (it's invoked by the default hook), of course.
986
990
987 * Prompts.py: added generate_output_prompt hook for altering output
991 * Prompts.py: added generate_output_prompt hook for altering output
988 prompt
992 prompt
989
993
990 * Release.py: Changed version string to 0.7.3.svn.
994 * Release.py: Changed version string to 0.7.3.svn.
991
995
992 2006-06-15 Walter Doerwald <walter@livinglogic.de>
996 2006-06-15 Walter Doerwald <walter@livinglogic.de>
993
997
994 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
998 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
995 the call to fetch() always tries to fetch enough data for at least one
999 the call to fetch() always tries to fetch enough data for at least one
996 full screen. This makes it possible to simply call moveto(0,0,True) in
1000 full screen. This makes it possible to simply call moveto(0,0,True) in
997 the constructor. Fix typos and removed the obsolete goto attribute.
1001 the constructor. Fix typos and removed the obsolete goto attribute.
998
1002
999 2006-06-12 Ville Vainio <vivainio@gmail.com>
1003 2006-06-12 Ville Vainio <vivainio@gmail.com>
1000
1004
1001 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1005 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
1002 allowing $variable interpolation within multiline statements,
1006 allowing $variable interpolation within multiline statements,
1003 though so far only with "sh" profile for a testing period.
1007 though so far only with "sh" profile for a testing period.
1004 The patch also enables splitting long commands with \ but it
1008 The patch also enables splitting long commands with \ but it
1005 doesn't work properly yet.
1009 doesn't work properly yet.
1006
1010
1007 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1011 2006-06-12 Walter Doerwald <walter@livinglogic.de>
1008
1012
1009 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1013 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
1010 input history and the position of the cursor in the input history for
1014 input history and the position of the cursor in the input history for
1011 the find, findbackwards and goto command.
1015 the find, findbackwards and goto command.
1012
1016
1013 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1017 2006-06-10 Walter Doerwald <walter@livinglogic.de>
1014
1018
1015 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1019 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
1016 implements the basic functionality of browser commands that require
1020 implements the basic functionality of browser commands that require
1017 input. Reimplement the goto, find and findbackwards commands as
1021 input. Reimplement the goto, find and findbackwards commands as
1018 subclasses of _CommandInput. Add an input history and keymaps to those
1022 subclasses of _CommandInput. Add an input history and keymaps to those
1019 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1023 commands. Add "\r" as a keyboard shortcut for the enterdefault and
1020 execute commands.
1024 execute commands.
1021
1025
1022 2006-06-07 Ville Vainio <vivainio@gmail.com>
1026 2006-06-07 Ville Vainio <vivainio@gmail.com>
1023
1027
1024 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1028 * iplib.py: ipython mybatch.ipy exits ipython immediately after
1025 running the batch files instead of leaving the session open.
1029 running the batch files instead of leaving the session open.
1026
1030
1027 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1031 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
1028
1032
1029 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1033 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
1030 the original fix was incomplete. Patch submitted by W. Maier.
1034 the original fix was incomplete. Patch submitted by W. Maier.
1031
1035
1032 2006-06-07 Ville Vainio <vivainio@gmail.com>
1036 2006-06-07 Ville Vainio <vivainio@gmail.com>
1033
1037
1034 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1038 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
1035 Confirmation prompts can be supressed by 'quiet' option.
1039 Confirmation prompts can be supressed by 'quiet' option.
1036 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1040 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
1037
1041
1038 2006-06-06 *** Released version 0.7.2
1042 2006-06-06 *** Released version 0.7.2
1039
1043
1040 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1044 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
1041
1045
1042 * IPython/Release.py (version): Made 0.7.2 final for release.
1046 * IPython/Release.py (version): Made 0.7.2 final for release.
1043 Repo tagged and release cut.
1047 Repo tagged and release cut.
1044
1048
1045 2006-06-05 Ville Vainio <vivainio@gmail.com>
1049 2006-06-05 Ville Vainio <vivainio@gmail.com>
1046
1050
1047 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1051 * Magic.py (magic_rehashx): Honor no_alias list earlier in
1048 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1052 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
1049
1053
1050 * upgrade_dir.py: try import 'path' module a bit harder
1054 * upgrade_dir.py: try import 'path' module a bit harder
1051 (for %upgrade)
1055 (for %upgrade)
1052
1056
1053 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1057 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
1054
1058
1055 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1059 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
1056 instead of looping 20 times.
1060 instead of looping 20 times.
1057
1061
1058 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1062 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
1059 correctly at initialization time. Bug reported by Krishna Mohan
1063 correctly at initialization time. Bug reported by Krishna Mohan
1060 Gundu <gkmohan-AT-gmail.com> on the user list.
1064 Gundu <gkmohan-AT-gmail.com> on the user list.
1061
1065
1062 * IPython/Release.py (version): Mark 0.7.2 version to start
1066 * IPython/Release.py (version): Mark 0.7.2 version to start
1063 testing for release on 06/06.
1067 testing for release on 06/06.
1064
1068
1065 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1069 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
1066
1070
1067 * scripts/irunner: thin script interface so users don't have to
1071 * scripts/irunner: thin script interface so users don't have to
1068 find the module and call it as an executable, since modules rarely
1072 find the module and call it as an executable, since modules rarely
1069 live in people's PATH.
1073 live in people's PATH.
1070
1074
1071 * IPython/irunner.py (InteractiveRunner.__init__): added
1075 * IPython/irunner.py (InteractiveRunner.__init__): added
1072 delaybeforesend attribute to control delays with newer versions of
1076 delaybeforesend attribute to control delays with newer versions of
1073 pexpect. Thanks to detailed help from pexpect's author, Noah
1077 pexpect. Thanks to detailed help from pexpect's author, Noah
1074 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1078 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
1075 correctly (it works in NoColor mode).
1079 correctly (it works in NoColor mode).
1076
1080
1077 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1081 * IPython/iplib.py (handle_normal): fix nasty crash reported on
1078 SAGE list, from improper log() calls.
1082 SAGE list, from improper log() calls.
1079
1083
1080 2006-05-31 Ville Vainio <vivainio@gmail.com>
1084 2006-05-31 Ville Vainio <vivainio@gmail.com>
1081
1085
1082 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1086 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
1083 with args in parens to work correctly with dirs that have spaces.
1087 with args in parens to work correctly with dirs that have spaces.
1084
1088
1085 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1089 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
1086
1090
1087 * IPython/Logger.py (Logger.logstart): add option to log raw input
1091 * IPython/Logger.py (Logger.logstart): add option to log raw input
1088 instead of the processed one. A -r flag was added to the
1092 instead of the processed one. A -r flag was added to the
1089 %logstart magic used for controlling logging.
1093 %logstart magic used for controlling logging.
1090
1094
1091 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1095 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
1092
1096
1093 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1097 * IPython/iplib.py (InteractiveShell.__init__): add check for the
1094 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1098 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
1095 recognize the option. After a bug report by Will Maier. This
1099 recognize the option. After a bug report by Will Maier. This
1096 closes #64 (will do it after confirmation from W. Maier).
1100 closes #64 (will do it after confirmation from W. Maier).
1097
1101
1098 * IPython/irunner.py: New module to run scripts as if manually
1102 * IPython/irunner.py: New module to run scripts as if manually
1099 typed into an interactive environment, based on pexpect. After a
1103 typed into an interactive environment, based on pexpect. After a
1100 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1104 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
1101 ipython-user list. Simple unittests in the tests/ directory.
1105 ipython-user list. Simple unittests in the tests/ directory.
1102
1106
1103 * tools/release: add Will Maier, OpenBSD port maintainer, to
1107 * tools/release: add Will Maier, OpenBSD port maintainer, to
1104 recepients list. We are now officially part of the OpenBSD ports:
1108 recepients list. We are now officially part of the OpenBSD ports:
1105 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1109 http://www.openbsd.org/ports.html ! Many thanks to Will for the
1106 work.
1110 work.
1107
1111
1108 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1112 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
1109
1113
1110 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1114 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
1111 so that it doesn't break tkinter apps.
1115 so that it doesn't break tkinter apps.
1112
1116
1113 * IPython/iplib.py (_prefilter): fix bug where aliases would
1117 * IPython/iplib.py (_prefilter): fix bug where aliases would
1114 shadow variables when autocall was fully off. Reported by SAGE
1118 shadow variables when autocall was fully off. Reported by SAGE
1115 author William Stein.
1119 author William Stein.
1116
1120
1117 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1121 * IPython/OInspect.py (Inspector.__init__): add a flag to control
1118 at what detail level strings are computed when foo? is requested.
1122 at what detail level strings are computed when foo? is requested.
1119 This allows users to ask for example that the string form of an
1123 This allows users to ask for example that the string form of an
1120 object is only computed when foo?? is called, or even never, by
1124 object is only computed when foo?? is called, or even never, by
1121 setting the object_info_string_level >= 2 in the configuration
1125 setting the object_info_string_level >= 2 in the configuration
1122 file. This new option has been added and documented. After a
1126 file. This new option has been added and documented. After a
1123 request by SAGE to be able to control the printing of very large
1127 request by SAGE to be able to control the printing of very large
1124 objects more easily.
1128 objects more easily.
1125
1129
1126 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1130 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
1127
1131
1128 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1132 * IPython/ipmaker.py (make_IPython): remove the ipython call path
1129 from sys.argv, to be 100% consistent with how Python itself works
1133 from sys.argv, to be 100% consistent with how Python itself works
1130 (as seen for example with python -i file.py). After a bug report
1134 (as seen for example with python -i file.py). After a bug report
1131 by Jeffrey Collins.
1135 by Jeffrey Collins.
1132
1136
1133 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1137 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
1134 nasty bug which was preventing custom namespaces with -pylab,
1138 nasty bug which was preventing custom namespaces with -pylab,
1135 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1139 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
1136 compatibility (long gone from mpl).
1140 compatibility (long gone from mpl).
1137
1141
1138 * IPython/ipapi.py (make_session): name change: create->make. We
1142 * IPython/ipapi.py (make_session): name change: create->make. We
1139 use make in other places (ipmaker,...), it's shorter and easier to
1143 use make in other places (ipmaker,...), it's shorter and easier to
1140 type and say, etc. I'm trying to clean things before 0.7.2 so
1144 type and say, etc. I'm trying to clean things before 0.7.2 so
1141 that I can keep things stable wrt to ipapi in the chainsaw branch.
1145 that I can keep things stable wrt to ipapi in the chainsaw branch.
1142
1146
1143 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1147 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
1144 python-mode recognizes our debugger mode. Add support for
1148 python-mode recognizes our debugger mode. Add support for
1145 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1149 autoindent inside (X)emacs. After a patch sent in by Jin Liu
1146 <m.liu.jin-AT-gmail.com> originally written by
1150 <m.liu.jin-AT-gmail.com> originally written by
1147 doxgen-AT-newsmth.net (with minor modifications for xemacs
1151 doxgen-AT-newsmth.net (with minor modifications for xemacs
1148 compatibility)
1152 compatibility)
1149
1153
1150 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1154 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
1151 tracebacks when walking the stack so that the stack tracking system
1155 tracebacks when walking the stack so that the stack tracking system
1152 in emacs' python-mode can identify the frames correctly.
1156 in emacs' python-mode can identify the frames correctly.
1153
1157
1154 * IPython/ipmaker.py (make_IPython): make the internal (and
1158 * IPython/ipmaker.py (make_IPython): make the internal (and
1155 default config) autoedit_syntax value false by default. Too many
1159 default config) autoedit_syntax value false by default. Too many
1156 users have complained to me (both on and off-list) about problems
1160 users have complained to me (both on and off-list) about problems
1157 with this option being on by default, so I'm making it default to
1161 with this option being on by default, so I'm making it default to
1158 off. It can still be enabled by anyone via the usual mechanisms.
1162 off. It can still be enabled by anyone via the usual mechanisms.
1159
1163
1160 * IPython/completer.py (Completer.attr_matches): add support for
1164 * IPython/completer.py (Completer.attr_matches): add support for
1161 PyCrust-style _getAttributeNames magic method. Patch contributed
1165 PyCrust-style _getAttributeNames magic method. Patch contributed
1162 by <mscott-AT-goldenspud.com>. Closes #50.
1166 by <mscott-AT-goldenspud.com>. Closes #50.
1163
1167
1164 * IPython/iplib.py (InteractiveShell.__init__): remove the
1168 * IPython/iplib.py (InteractiveShell.__init__): remove the
1165 deletion of exit/quit from __builtin__, which can break
1169 deletion of exit/quit from __builtin__, which can break
1166 third-party tools like the Zope debugging console. The
1170 third-party tools like the Zope debugging console. The
1167 %exit/%quit magics remain. In general, it's probably a good idea
1171 %exit/%quit magics remain. In general, it's probably a good idea
1168 not to delete anything from __builtin__, since we never know what
1172 not to delete anything from __builtin__, since we never know what
1169 that will break. In any case, python now (for 2.5) will support
1173 that will break. In any case, python now (for 2.5) will support
1170 'real' exit/quit, so this issue is moot. Closes #55.
1174 'real' exit/quit, so this issue is moot. Closes #55.
1171
1175
1172 * IPython/genutils.py (with_obj): rename the 'with' function to
1176 * IPython/genutils.py (with_obj): rename the 'with' function to
1173 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1177 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
1174 becomes a language keyword. Closes #53.
1178 becomes a language keyword. Closes #53.
1175
1179
1176 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1180 * IPython/FakeModule.py (FakeModule.__init__): add a proper
1177 __file__ attribute to this so it fools more things into thinking
1181 __file__ attribute to this so it fools more things into thinking
1178 it is a real module. Closes #59.
1182 it is a real module. Closes #59.
1179
1183
1180 * IPython/Magic.py (magic_edit): add -n option to open the editor
1184 * IPython/Magic.py (magic_edit): add -n option to open the editor
1181 at a specific line number. After a patch by Stefan van der Walt.
1185 at a specific line number. After a patch by Stefan van der Walt.
1182
1186
1183 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1187 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
1184
1188
1185 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1189 * IPython/iplib.py (edit_syntax_error): fix crash when for some
1186 reason the file could not be opened. After automatic crash
1190 reason the file could not be opened. After automatic crash
1187 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1191 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
1188 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1192 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
1189 (_should_recompile): Don't fire editor if using %bg, since there
1193 (_should_recompile): Don't fire editor if using %bg, since there
1190 is no file in the first place. From the same report as above.
1194 is no file in the first place. From the same report as above.
1191 (raw_input): protect against faulty third-party prefilters. After
1195 (raw_input): protect against faulty third-party prefilters. After
1192 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1196 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
1193 while running under SAGE.
1197 while running under SAGE.
1194
1198
1195 2006-05-23 Ville Vainio <vivainio@gmail.com>
1199 2006-05-23 Ville Vainio <vivainio@gmail.com>
1196
1200
1197 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1201 * ipapi.py: Stripped down ip.to_user_ns() to work only as
1198 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1202 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
1199 now returns None (again), unless dummy is specifically allowed by
1203 now returns None (again), unless dummy is specifically allowed by
1200 ipapi.get(allow_dummy=True).
1204 ipapi.get(allow_dummy=True).
1201
1205
1202 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1206 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
1203
1207
1204 * IPython: remove all 2.2-compatibility objects and hacks from
1208 * IPython: remove all 2.2-compatibility objects and hacks from
1205 everywhere, since we only support 2.3 at this point. Docs
1209 everywhere, since we only support 2.3 at this point. Docs
1206 updated.
1210 updated.
1207
1211
1208 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1212 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
1209 Anything requiring extra validation can be turned into a Python
1213 Anything requiring extra validation can be turned into a Python
1210 property in the future. I used a property for the db one b/c
1214 property in the future. I used a property for the db one b/c
1211 there was a nasty circularity problem with the initialization
1215 there was a nasty circularity problem with the initialization
1212 order, which right now I don't have time to clean up.
1216 order, which right now I don't have time to clean up.
1213
1217
1214 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1218 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
1215 another locking bug reported by Jorgen. I'm not 100% sure though,
1219 another locking bug reported by Jorgen. I'm not 100% sure though,
1216 so more testing is needed...
1220 so more testing is needed...
1217
1221
1218 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1222 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
1219
1223
1220 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1224 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
1221 local variables from any routine in user code (typically executed
1225 local variables from any routine in user code (typically executed
1222 with %run) directly into the interactive namespace. Very useful
1226 with %run) directly into the interactive namespace. Very useful
1223 when doing complex debugging.
1227 when doing complex debugging.
1224 (IPythonNotRunning): Changed the default None object to a dummy
1228 (IPythonNotRunning): Changed the default None object to a dummy
1225 whose attributes can be queried as well as called without
1229 whose attributes can be queried as well as called without
1226 exploding, to ease writing code which works transparently both in
1230 exploding, to ease writing code which works transparently both in
1227 and out of ipython and uses some of this API.
1231 and out of ipython and uses some of this API.
1228
1232
1229 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1233 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
1230
1234
1231 * IPython/hooks.py (result_display): Fix the fact that our display
1235 * IPython/hooks.py (result_display): Fix the fact that our display
1232 hook was using str() instead of repr(), as the default python
1236 hook was using str() instead of repr(), as the default python
1233 console does. This had gone unnoticed b/c it only happened if
1237 console does. This had gone unnoticed b/c it only happened if
1234 %Pprint was off, but the inconsistency was there.
1238 %Pprint was off, but the inconsistency was there.
1235
1239
1236 2006-05-15 Ville Vainio <vivainio@gmail.com>
1240 2006-05-15 Ville Vainio <vivainio@gmail.com>
1237
1241
1238 * Oinspect.py: Only show docstring for nonexisting/binary files
1242 * Oinspect.py: Only show docstring for nonexisting/binary files
1239 when doing object??, closing ticket #62
1243 when doing object??, closing ticket #62
1240
1244
1241 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1245 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
1242
1246
1243 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1247 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
1244 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1248 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
1245 was being released in a routine which hadn't checked if it had
1249 was being released in a routine which hadn't checked if it had
1246 been the one to acquire it.
1250 been the one to acquire it.
1247
1251
1248 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1252 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
1249
1253
1250 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1254 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
1251
1255
1252 2006-04-11 Ville Vainio <vivainio@gmail.com>
1256 2006-04-11 Ville Vainio <vivainio@gmail.com>
1253
1257
1254 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1258 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
1255 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1259 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
1256 prefilters, allowing stuff like magics and aliases in the file.
1260 prefilters, allowing stuff like magics and aliases in the file.
1257
1261
1258 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1262 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
1259 added. Supported now are "%clear in" and "%clear out" (clear input and
1263 added. Supported now are "%clear in" and "%clear out" (clear input and
1260 output history, respectively). Also fixed CachedOutput.flush to
1264 output history, respectively). Also fixed CachedOutput.flush to
1261 properly flush the output cache.
1265 properly flush the output cache.
1262
1266
1263 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1267 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
1264 half-success (and fail explicitly).
1268 half-success (and fail explicitly).
1265
1269
1266 2006-03-28 Ville Vainio <vivainio@gmail.com>
1270 2006-03-28 Ville Vainio <vivainio@gmail.com>
1267
1271
1268 * iplib.py: Fix quoting of aliases so that only argless ones
1272 * iplib.py: Fix quoting of aliases so that only argless ones
1269 are quoted
1273 are quoted
1270
1274
1271 2006-03-28 Ville Vainio <vivainio@gmail.com>
1275 2006-03-28 Ville Vainio <vivainio@gmail.com>
1272
1276
1273 * iplib.py: Quote aliases with spaces in the name.
1277 * iplib.py: Quote aliases with spaces in the name.
1274 "c:\program files\blah\bin" is now legal alias target.
1278 "c:\program files\blah\bin" is now legal alias target.
1275
1279
1276 * ext_rehashdir.py: Space no longer allowed as arg
1280 * ext_rehashdir.py: Space no longer allowed as arg
1277 separator, since space is legal in path names.
1281 separator, since space is legal in path names.
1278
1282
1279 2006-03-16 Ville Vainio <vivainio@gmail.com>
1283 2006-03-16 Ville Vainio <vivainio@gmail.com>
1280
1284
1281 * upgrade_dir.py: Take path.py from Extensions, correcting
1285 * upgrade_dir.py: Take path.py from Extensions, correcting
1282 %upgrade magic
1286 %upgrade magic
1283
1287
1284 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1288 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
1285
1289
1286 * hooks.py: Only enclose editor binary in quotes if legal and
1290 * hooks.py: Only enclose editor binary in quotes if legal and
1287 necessary (space in the name, and is an existing file). Fixes a bug
1291 necessary (space in the name, and is an existing file). Fixes a bug
1288 reported by Zachary Pincus.
1292 reported by Zachary Pincus.
1289
1293
1290 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1294 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
1291
1295
1292 * Manual: thanks to a tip on proper color handling for Emacs, by
1296 * Manual: thanks to a tip on proper color handling for Emacs, by
1293 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1297 Eric J Haywiser <ejh1-AT-MIT.EDU>.
1294
1298
1295 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1299 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
1296 by applying the provided patch. Thanks to Liu Jin
1300 by applying the provided patch. Thanks to Liu Jin
1297 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1301 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
1298 XEmacs/Linux, I'm trusting the submitter that it actually helps
1302 XEmacs/Linux, I'm trusting the submitter that it actually helps
1299 under win32/GNU Emacs. Will revisit if any problems are reported.
1303 under win32/GNU Emacs. Will revisit if any problems are reported.
1300
1304
1301 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1305 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1302
1306
1303 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1307 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
1304 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1308 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
1305
1309
1306 2006-03-12 Ville Vainio <vivainio@gmail.com>
1310 2006-03-12 Ville Vainio <vivainio@gmail.com>
1307
1311
1308 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1312 * Magic.py (magic_timeit): Added %timeit magic, contributed by
1309 Torsten Marek.
1313 Torsten Marek.
1310
1314
1311 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1315 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
1312
1316
1313 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1317 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
1314 line ranges works again.
1318 line ranges works again.
1315
1319
1316 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1320 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
1317
1321
1318 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1322 * IPython/iplib.py (showtraceback): add back sys.last_traceback
1319 and friends, after a discussion with Zach Pincus on ipython-user.
1323 and friends, after a discussion with Zach Pincus on ipython-user.
1320 I'm not 100% sure, but after thinking about it quite a bit, it may
1324 I'm not 100% sure, but after thinking about it quite a bit, it may
1321 be OK. Testing with the multithreaded shells didn't reveal any
1325 be OK. Testing with the multithreaded shells didn't reveal any
1322 problems, but let's keep an eye out.
1326 problems, but let's keep an eye out.
1323
1327
1324 In the process, I fixed a few things which were calling
1328 In the process, I fixed a few things which were calling
1325 self.InteractiveTB() directly (like safe_execfile), which is a
1329 self.InteractiveTB() directly (like safe_execfile), which is a
1326 mistake: ALL exception reporting should be done by calling
1330 mistake: ALL exception reporting should be done by calling
1327 self.showtraceback(), which handles state and tab-completion and
1331 self.showtraceback(), which handles state and tab-completion and
1328 more.
1332 more.
1329
1333
1330 2006-03-01 Ville Vainio <vivainio@gmail.com>
1334 2006-03-01 Ville Vainio <vivainio@gmail.com>
1331
1335
1332 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1336 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
1333 To use, do "from ipipe import *".
1337 To use, do "from ipipe import *".
1334
1338
1335 2006-02-24 Ville Vainio <vivainio@gmail.com>
1339 2006-02-24 Ville Vainio <vivainio@gmail.com>
1336
1340
1337 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1341 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
1338 "cleanly" and safely than the older upgrade mechanism.
1342 "cleanly" and safely than the older upgrade mechanism.
1339
1343
1340 2006-02-21 Ville Vainio <vivainio@gmail.com>
1344 2006-02-21 Ville Vainio <vivainio@gmail.com>
1341
1345
1342 * Magic.py: %save works again.
1346 * Magic.py: %save works again.
1343
1347
1344 2006-02-15 Ville Vainio <vivainio@gmail.com>
1348 2006-02-15 Ville Vainio <vivainio@gmail.com>
1345
1349
1346 * Magic.py: %Pprint works again
1350 * Magic.py: %Pprint works again
1347
1351
1348 * Extensions/ipy_sane_defaults.py: Provide everything provided
1352 * Extensions/ipy_sane_defaults.py: Provide everything provided
1349 in default ipythonrc, to make it possible to have a completely empty
1353 in default ipythonrc, to make it possible to have a completely empty
1350 ipythonrc (and thus completely rc-file free configuration)
1354 ipythonrc (and thus completely rc-file free configuration)
1351
1355
1352 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1356 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
1353
1357
1354 * IPython/hooks.py (editor): quote the call to the editor command,
1358 * IPython/hooks.py (editor): quote the call to the editor command,
1355 to allow commands with spaces in them. Problem noted by watching
1359 to allow commands with spaces in them. Problem noted by watching
1356 Ian Oswald's video about textpad under win32 at
1360 Ian Oswald's video about textpad under win32 at
1357 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1361 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
1358
1362
1359 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1363 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
1360 describing magics (we haven't used @ for a loong time).
1364 describing magics (we haven't used @ for a loong time).
1361
1365
1362 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1366 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
1363 contributed by marienz to close
1367 contributed by marienz to close
1364 http://www.scipy.net/roundup/ipython/issue53.
1368 http://www.scipy.net/roundup/ipython/issue53.
1365
1369
1366 2006-02-10 Ville Vainio <vivainio@gmail.com>
1370 2006-02-10 Ville Vainio <vivainio@gmail.com>
1367
1371
1368 * genutils.py: getoutput now works in win32 too
1372 * genutils.py: getoutput now works in win32 too
1369
1373
1370 * completer.py: alias and magic completion only invoked
1374 * completer.py: alias and magic completion only invoked
1371 at the first "item" in the line, to avoid "cd %store"
1375 at the first "item" in the line, to avoid "cd %store"
1372 nonsense.
1376 nonsense.
1373
1377
1374 2006-02-09 Ville Vainio <vivainio@gmail.com>
1378 2006-02-09 Ville Vainio <vivainio@gmail.com>
1375
1379
1376 * test/*: Added a unit testing framework (finally).
1380 * test/*: Added a unit testing framework (finally).
1377 '%run runtests.py' to run test_*.
1381 '%run runtests.py' to run test_*.
1378
1382
1379 * ipapi.py: Exposed runlines and set_custom_exc
1383 * ipapi.py: Exposed runlines and set_custom_exc
1380
1384
1381 2006-02-07 Ville Vainio <vivainio@gmail.com>
1385 2006-02-07 Ville Vainio <vivainio@gmail.com>
1382
1386
1383 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1387 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
1384 instead use "f(1 2)" as before.
1388 instead use "f(1 2)" as before.
1385
1389
1386 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1390 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
1387
1391
1388 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1392 * IPython/demo.py (IPythonDemo): Add new classes to the demo
1389 facilities, for demos processed by the IPython input filter
1393 facilities, for demos processed by the IPython input filter
1390 (IPythonDemo), and for running a script one-line-at-a-time as a
1394 (IPythonDemo), and for running a script one-line-at-a-time as a
1391 demo, both for pure Python (LineDemo) and for IPython-processed
1395 demo, both for pure Python (LineDemo) and for IPython-processed
1392 input (IPythonLineDemo). After a request by Dave Kohel, from the
1396 input (IPythonLineDemo). After a request by Dave Kohel, from the
1393 SAGE team.
1397 SAGE team.
1394 (Demo.edit): added an edit() method to the demo objects, to edit
1398 (Demo.edit): added an edit() method to the demo objects, to edit
1395 the in-memory copy of the last executed block.
1399 the in-memory copy of the last executed block.
1396
1400
1397 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1401 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
1398 processing to %edit, %macro and %save. These commands can now be
1402 processing to %edit, %macro and %save. These commands can now be
1399 invoked on the unprocessed input as it was typed by the user
1403 invoked on the unprocessed input as it was typed by the user
1400 (without any prefilters applied). After requests by the SAGE team
1404 (without any prefilters applied). After requests by the SAGE team
1401 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1405 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
1402
1406
1403 2006-02-01 Ville Vainio <vivainio@gmail.com>
1407 2006-02-01 Ville Vainio <vivainio@gmail.com>
1404
1408
1405 * setup.py, eggsetup.py: easy_install ipython==dev works
1409 * setup.py, eggsetup.py: easy_install ipython==dev works
1406 correctly now (on Linux)
1410 correctly now (on Linux)
1407
1411
1408 * ipy_user_conf,ipmaker: user config changes, removed spurious
1412 * ipy_user_conf,ipmaker: user config changes, removed spurious
1409 warnings
1413 warnings
1410
1414
1411 * iplib: if rc.banner is string, use it as is.
1415 * iplib: if rc.banner is string, use it as is.
1412
1416
1413 * Magic: %pycat accepts a string argument and pages it's contents.
1417 * Magic: %pycat accepts a string argument and pages it's contents.
1414
1418
1415
1419
1416 2006-01-30 Ville Vainio <vivainio@gmail.com>
1420 2006-01-30 Ville Vainio <vivainio@gmail.com>
1417
1421
1418 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1422 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
1419 Now %store and bookmarks work through PickleShare, meaning that
1423 Now %store and bookmarks work through PickleShare, meaning that
1420 concurrent access is possible and all ipython sessions see the
1424 concurrent access is possible and all ipython sessions see the
1421 same database situation all the time, instead of snapshot of
1425 same database situation all the time, instead of snapshot of
1422 the situation when the session was started. Hence, %bookmark
1426 the situation when the session was started. Hence, %bookmark
1423 results are immediately accessible from othes sessions. The database
1427 results are immediately accessible from othes sessions. The database
1424 is also available for use by user extensions. See:
1428 is also available for use by user extensions. See:
1425 http://www.python.org/pypi/pickleshare
1429 http://www.python.org/pypi/pickleshare
1426
1430
1427 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1431 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
1428
1432
1429 * aliases can now be %store'd
1433 * aliases can now be %store'd
1430
1434
1431 * path.py moved to Extensions so that pickleshare does not need
1435 * path.py moved to Extensions so that pickleshare does not need
1432 IPython-specific import. Extensions added to pythonpath right
1436 IPython-specific import. Extensions added to pythonpath right
1433 at __init__.
1437 at __init__.
1434
1438
1435 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1439 * iplib.py: ipalias deprecated/redundant; aliases are converted and
1436 called with _ip.system and the pre-transformed command string.
1440 called with _ip.system and the pre-transformed command string.
1437
1441
1438 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1442 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
1439
1443
1440 * IPython/iplib.py (interact): Fix that we were not catching
1444 * IPython/iplib.py (interact): Fix that we were not catching
1441 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1445 KeyboardInterrupt exceptions properly. I'm not quite sure why the
1442 logic here had to change, but it's fixed now.
1446 logic here had to change, but it's fixed now.
1443
1447
1444 2006-01-29 Ville Vainio <vivainio@gmail.com>
1448 2006-01-29 Ville Vainio <vivainio@gmail.com>
1445
1449
1446 * iplib.py: Try to import pyreadline on Windows.
1450 * iplib.py: Try to import pyreadline on Windows.
1447
1451
1448 2006-01-27 Ville Vainio <vivainio@gmail.com>
1452 2006-01-27 Ville Vainio <vivainio@gmail.com>
1449
1453
1450 * iplib.py: Expose ipapi as _ip in builtin namespace.
1454 * iplib.py: Expose ipapi as _ip in builtin namespace.
1451 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1455 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
1452 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1456 and ip_set_hook (-> _ip.set_hook) redundant. % and !
1453 syntax now produce _ip.* variant of the commands.
1457 syntax now produce _ip.* variant of the commands.
1454
1458
1455 * "_ip.options().autoedit_syntax = 2" automatically throws
1459 * "_ip.options().autoedit_syntax = 2" automatically throws
1456 user to editor for syntax error correction without prompting.
1460 user to editor for syntax error correction without prompting.
1457
1461
1458 2006-01-27 Ville Vainio <vivainio@gmail.com>
1462 2006-01-27 Ville Vainio <vivainio@gmail.com>
1459
1463
1460 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1464 * ipmaker.py: Give "realistic" sys.argv for scripts (without
1461 'ipython' at argv[0]) executed through command line.
1465 'ipython' at argv[0]) executed through command line.
1462 NOTE: this DEPRECATES calling ipython with multiple scripts
1466 NOTE: this DEPRECATES calling ipython with multiple scripts
1463 ("ipython a.py b.py c.py")
1467 ("ipython a.py b.py c.py")
1464
1468
1465 * iplib.py, hooks.py: Added configurable input prefilter,
1469 * iplib.py, hooks.py: Added configurable input prefilter,
1466 named 'input_prefilter'. See ext_rescapture.py for example
1470 named 'input_prefilter'. See ext_rescapture.py for example
1467 usage.
1471 usage.
1468
1472
1469 * ext_rescapture.py, Magic.py: Better system command output capture
1473 * ext_rescapture.py, Magic.py: Better system command output capture
1470 through 'var = !ls' (deprecates user-visible %sc). Same notation
1474 through 'var = !ls' (deprecates user-visible %sc). Same notation
1471 applies for magics, 'var = %alias' assigns alias list to var.
1475 applies for magics, 'var = %alias' assigns alias list to var.
1472
1476
1473 * ipapi.py: added meta() for accessing extension-usable data store.
1477 * ipapi.py: added meta() for accessing extension-usable data store.
1474
1478
1475 * iplib.py: added InteractiveShell.getapi(). New magics should be
1479 * iplib.py: added InteractiveShell.getapi(). New magics should be
1476 written doing self.getapi() instead of using the shell directly.
1480 written doing self.getapi() instead of using the shell directly.
1477
1481
1478 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1482 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
1479 %store foo >> ~/myfoo.txt to store variables to files (in clean
1483 %store foo >> ~/myfoo.txt to store variables to files (in clean
1480 textual form, not a restorable pickle).
1484 textual form, not a restorable pickle).
1481
1485
1482 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1486 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
1483
1487
1484 * usage.py, Magic.py: added %quickref
1488 * usage.py, Magic.py: added %quickref
1485
1489
1486 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1490 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
1487
1491
1488 * GetoptErrors when invoking magics etc. with wrong args
1492 * GetoptErrors when invoking magics etc. with wrong args
1489 are now more helpful:
1493 are now more helpful:
1490 GetoptError: option -l not recognized (allowed: "qb" )
1494 GetoptError: option -l not recognized (allowed: "qb" )
1491
1495
1492 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1496 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
1493
1497
1494 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1498 * IPython/demo.py (Demo.show): Flush stdout after each block, so
1495 computationally intensive blocks don't appear to stall the demo.
1499 computationally intensive blocks don't appear to stall the demo.
1496
1500
1497 2006-01-24 Ville Vainio <vivainio@gmail.com>
1501 2006-01-24 Ville Vainio <vivainio@gmail.com>
1498
1502
1499 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1503 * iplib.py, hooks.py: 'result_display' hook can return a non-None
1500 value to manipulate resulting history entry.
1504 value to manipulate resulting history entry.
1501
1505
1502 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1506 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
1503 to instance methods of IPApi class, to make extending an embedded
1507 to instance methods of IPApi class, to make extending an embedded
1504 IPython feasible. See ext_rehashdir.py for example usage.
1508 IPython feasible. See ext_rehashdir.py for example usage.
1505
1509
1506 * Merged 1071-1076 from branches/0.7.1
1510 * Merged 1071-1076 from branches/0.7.1
1507
1511
1508
1512
1509 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1513 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
1510
1514
1511 * tools/release (daystamp): Fix build tools to use the new
1515 * tools/release (daystamp): Fix build tools to use the new
1512 eggsetup.py script to build lightweight eggs.
1516 eggsetup.py script to build lightweight eggs.
1513
1517
1514 * Applied changesets 1062 and 1064 before 0.7.1 release.
1518 * Applied changesets 1062 and 1064 before 0.7.1 release.
1515
1519
1516 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1520 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
1517 see the raw input history (without conversions like %ls ->
1521 see the raw input history (without conversions like %ls ->
1518 ipmagic("ls")). After a request from W. Stein, SAGE
1522 ipmagic("ls")). After a request from W. Stein, SAGE
1519 (http://modular.ucsd.edu/sage) developer. This information is
1523 (http://modular.ucsd.edu/sage) developer. This information is
1520 stored in the input_hist_raw attribute of the IPython instance, so
1524 stored in the input_hist_raw attribute of the IPython instance, so
1521 developers can access it if needed (it's an InputList instance).
1525 developers can access it if needed (it's an InputList instance).
1522
1526
1523 * Versionstring = 0.7.2.svn
1527 * Versionstring = 0.7.2.svn
1524
1528
1525 * eggsetup.py: A separate script for constructing eggs, creates
1529 * eggsetup.py: A separate script for constructing eggs, creates
1526 proper launch scripts even on Windows (an .exe file in
1530 proper launch scripts even on Windows (an .exe file in
1527 \python24\scripts).
1531 \python24\scripts).
1528
1532
1529 * ipapi.py: launch_new_instance, launch entry point needed for the
1533 * ipapi.py: launch_new_instance, launch entry point needed for the
1530 egg.
1534 egg.
1531
1535
1532 2006-01-23 Ville Vainio <vivainio@gmail.com>
1536 2006-01-23 Ville Vainio <vivainio@gmail.com>
1533
1537
1534 * Added %cpaste magic for pasting python code
1538 * Added %cpaste magic for pasting python code
1535
1539
1536 2006-01-22 Ville Vainio <vivainio@gmail.com>
1540 2006-01-22 Ville Vainio <vivainio@gmail.com>
1537
1541
1538 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1542 * Merge from branches/0.7.1 into trunk, revs 1052-1057
1539
1543
1540 * Versionstring = 0.7.2.svn
1544 * Versionstring = 0.7.2.svn
1541
1545
1542 * eggsetup.py: A separate script for constructing eggs, creates
1546 * eggsetup.py: A separate script for constructing eggs, creates
1543 proper launch scripts even on Windows (an .exe file in
1547 proper launch scripts even on Windows (an .exe file in
1544 \python24\scripts).
1548 \python24\scripts).
1545
1549
1546 * ipapi.py: launch_new_instance, launch entry point needed for the
1550 * ipapi.py: launch_new_instance, launch entry point needed for the
1547 egg.
1551 egg.
1548
1552
1549 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1553 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
1550
1554
1551 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1555 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
1552 %pfile foo would print the file for foo even if it was a binary.
1556 %pfile foo would print the file for foo even if it was a binary.
1553 Now, extensions '.so' and '.dll' are skipped.
1557 Now, extensions '.so' and '.dll' are skipped.
1554
1558
1555 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1559 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
1556 bug, where macros would fail in all threaded modes. I'm not 100%
1560 bug, where macros would fail in all threaded modes. I'm not 100%
1557 sure, so I'm going to put out an rc instead of making a release
1561 sure, so I'm going to put out an rc instead of making a release
1558 today, and wait for feedback for at least a few days.
1562 today, and wait for feedback for at least a few days.
1559
1563
1560 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1564 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
1561 it...) the handling of pasting external code with autoindent on.
1565 it...) the handling of pasting external code with autoindent on.
1562 To get out of a multiline input, the rule will appear for most
1566 To get out of a multiline input, the rule will appear for most
1563 users unchanged: two blank lines or change the indent level
1567 users unchanged: two blank lines or change the indent level
1564 proposed by IPython. But there is a twist now: you can
1568 proposed by IPython. But there is a twist now: you can
1565 add/subtract only *one or two spaces*. If you add/subtract three
1569 add/subtract only *one or two spaces*. If you add/subtract three
1566 or more (unless you completely delete the line), IPython will
1570 or more (unless you completely delete the line), IPython will
1567 accept that line, and you'll need to enter a second one of pure
1571 accept that line, and you'll need to enter a second one of pure
1568 whitespace. I know it sounds complicated, but I can't find a
1572 whitespace. I know it sounds complicated, but I can't find a
1569 different solution that covers all the cases, with the right
1573 different solution that covers all the cases, with the right
1570 heuristics. Hopefully in actual use, nobody will really notice
1574 heuristics. Hopefully in actual use, nobody will really notice
1571 all these strange rules and things will 'just work'.
1575 all these strange rules and things will 'just work'.
1572
1576
1573 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1577 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
1574
1578
1575 * IPython/iplib.py (interact): catch exceptions which can be
1579 * IPython/iplib.py (interact): catch exceptions which can be
1576 triggered asynchronously by signal handlers. Thanks to an
1580 triggered asynchronously by signal handlers. Thanks to an
1577 automatic crash report, submitted by Colin Kingsley
1581 automatic crash report, submitted by Colin Kingsley
1578 <tercel-AT-gentoo.org>.
1582 <tercel-AT-gentoo.org>.
1579
1583
1580 2006-01-20 Ville Vainio <vivainio@gmail.com>
1584 2006-01-20 Ville Vainio <vivainio@gmail.com>
1581
1585
1582 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1586 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
1583 (%rehashdir, very useful, try it out) of how to extend ipython
1587 (%rehashdir, very useful, try it out) of how to extend ipython
1584 with new magics. Also added Extensions dir to pythonpath to make
1588 with new magics. Also added Extensions dir to pythonpath to make
1585 importing extensions easy.
1589 importing extensions easy.
1586
1590
1587 * %store now complains when trying to store interactively declared
1591 * %store now complains when trying to store interactively declared
1588 classes / instances of those classes.
1592 classes / instances of those classes.
1589
1593
1590 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1594 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
1591 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1595 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
1592 if they exist, and ipy_user_conf.py with some defaults is created for
1596 if they exist, and ipy_user_conf.py with some defaults is created for
1593 the user.
1597 the user.
1594
1598
1595 * Startup rehashing done by the config file, not InterpreterExec.
1599 * Startup rehashing done by the config file, not InterpreterExec.
1596 This means system commands are available even without selecting the
1600 This means system commands are available even without selecting the
1597 pysh profile. It's the sensible default after all.
1601 pysh profile. It's the sensible default after all.
1598
1602
1599 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1603 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
1600
1604
1601 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1605 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
1602 multiline code with autoindent on working. But I am really not
1606 multiline code with autoindent on working. But I am really not
1603 sure, so this needs more testing. Will commit a debug-enabled
1607 sure, so this needs more testing. Will commit a debug-enabled
1604 version for now, while I test it some more, so that Ville and
1608 version for now, while I test it some more, so that Ville and
1605 others may also catch any problems. Also made
1609 others may also catch any problems. Also made
1606 self.indent_current_str() a method, to ensure that there's no
1610 self.indent_current_str() a method, to ensure that there's no
1607 chance of the indent space count and the corresponding string
1611 chance of the indent space count and the corresponding string
1608 falling out of sync. All code needing the string should just call
1612 falling out of sync. All code needing the string should just call
1609 the method.
1613 the method.
1610
1614
1611 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1615 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
1612
1616
1613 * IPython/Magic.py (magic_edit): fix check for when users don't
1617 * IPython/Magic.py (magic_edit): fix check for when users don't
1614 save their output files, the try/except was in the wrong section.
1618 save their output files, the try/except was in the wrong section.
1615
1619
1616 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1620 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1617
1621
1618 * IPython/Magic.py (magic_run): fix __file__ global missing from
1622 * IPython/Magic.py (magic_run): fix __file__ global missing from
1619 script's namespace when executed via %run. After a report by
1623 script's namespace when executed via %run. After a report by
1620 Vivian.
1624 Vivian.
1621
1625
1622 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1626 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
1623 when using python 2.4. The parent constructor changed in 2.4, and
1627 when using python 2.4. The parent constructor changed in 2.4, and
1624 we need to track it directly (we can't call it, as it messes up
1628 we need to track it directly (we can't call it, as it messes up
1625 readline and tab-completion inside our pdb would stop working).
1629 readline and tab-completion inside our pdb would stop working).
1626 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1630 After a bug report by R. Bernstein <rocky-AT-panix.com>.
1627
1631
1628 2006-01-16 Ville Vainio <vivainio@gmail.com>
1632 2006-01-16 Ville Vainio <vivainio@gmail.com>
1629
1633
1630 * Ipython/magic.py: Reverted back to old %edit functionality
1634 * Ipython/magic.py: Reverted back to old %edit functionality
1631 that returns file contents on exit.
1635 that returns file contents on exit.
1632
1636
1633 * IPython/path.py: Added Jason Orendorff's "path" module to
1637 * IPython/path.py: Added Jason Orendorff's "path" module to
1634 IPython tree, http://www.jorendorff.com/articles/python/path/.
1638 IPython tree, http://www.jorendorff.com/articles/python/path/.
1635 You can get path objects conveniently through %sc, and !!, e.g.:
1639 You can get path objects conveniently through %sc, and !!, e.g.:
1636 sc files=ls
1640 sc files=ls
1637 for p in files.paths: # or files.p
1641 for p in files.paths: # or files.p
1638 print p,p.mtime
1642 print p,p.mtime
1639
1643
1640 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1644 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
1641 now work again without considering the exclusion regexp -
1645 now work again without considering the exclusion regexp -
1642 hence, things like ',foo my/path' turn to 'foo("my/path")'
1646 hence, things like ',foo my/path' turn to 'foo("my/path")'
1643 instead of syntax error.
1647 instead of syntax error.
1644
1648
1645
1649
1646 2006-01-14 Ville Vainio <vivainio@gmail.com>
1650 2006-01-14 Ville Vainio <vivainio@gmail.com>
1647
1651
1648 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1652 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
1649 ipapi decorators for python 2.4 users, options() provides access to rc
1653 ipapi decorators for python 2.4 users, options() provides access to rc
1650 data.
1654 data.
1651
1655
1652 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1656 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
1653 as path separators (even on Linux ;-). Space character after
1657 as path separators (even on Linux ;-). Space character after
1654 backslash (as yielded by tab completer) is still space;
1658 backslash (as yielded by tab completer) is still space;
1655 "%cd long\ name" works as expected.
1659 "%cd long\ name" works as expected.
1656
1660
1657 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1661 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
1658 as "chain of command", with priority. API stays the same,
1662 as "chain of command", with priority. API stays the same,
1659 TryNext exception raised by a hook function signals that
1663 TryNext exception raised by a hook function signals that
1660 current hook failed and next hook should try handling it, as
1664 current hook failed and next hook should try handling it, as
1661 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1665 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
1662 requested configurable display hook, which is now implemented.
1666 requested configurable display hook, which is now implemented.
1663
1667
1664 2006-01-13 Ville Vainio <vivainio@gmail.com>
1668 2006-01-13 Ville Vainio <vivainio@gmail.com>
1665
1669
1666 * IPython/platutils*.py: platform specific utility functions,
1670 * IPython/platutils*.py: platform specific utility functions,
1667 so far only set_term_title is implemented (change terminal
1671 so far only set_term_title is implemented (change terminal
1668 label in windowing systems). %cd now changes the title to
1672 label in windowing systems). %cd now changes the title to
1669 current dir.
1673 current dir.
1670
1674
1671 * IPython/Release.py: Added myself to "authors" list,
1675 * IPython/Release.py: Added myself to "authors" list,
1672 had to create new files.
1676 had to create new files.
1673
1677
1674 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1678 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
1675 shell escape; not a known bug but had potential to be one in the
1679 shell escape; not a known bug but had potential to be one in the
1676 future.
1680 future.
1677
1681
1678 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1682 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
1679 extension API for IPython! See the module for usage example. Fix
1683 extension API for IPython! See the module for usage example. Fix
1680 OInspect for docstring-less magic functions.
1684 OInspect for docstring-less magic functions.
1681
1685
1682
1686
1683 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1687 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
1684
1688
1685 * IPython/iplib.py (raw_input): temporarily deactivate all
1689 * IPython/iplib.py (raw_input): temporarily deactivate all
1686 attempts at allowing pasting of code with autoindent on. It
1690 attempts at allowing pasting of code with autoindent on. It
1687 introduced bugs (reported by Prabhu) and I can't seem to find a
1691 introduced bugs (reported by Prabhu) and I can't seem to find a
1688 robust combination which works in all cases. Will have to revisit
1692 robust combination which works in all cases. Will have to revisit
1689 later.
1693 later.
1690
1694
1691 * IPython/genutils.py: remove isspace() function. We've dropped
1695 * IPython/genutils.py: remove isspace() function. We've dropped
1692 2.2 compatibility, so it's OK to use the string method.
1696 2.2 compatibility, so it's OK to use the string method.
1693
1697
1694 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1698 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1695
1699
1696 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1700 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
1697 matching what NOT to autocall on, to include all python binary
1701 matching what NOT to autocall on, to include all python binary
1698 operators (including things like 'and', 'or', 'is' and 'in').
1702 operators (including things like 'and', 'or', 'is' and 'in').
1699 Prompted by a bug report on 'foo & bar', but I realized we had
1703 Prompted by a bug report on 'foo & bar', but I realized we had
1700 many more potential bug cases with other operators. The regexp is
1704 many more potential bug cases with other operators. The regexp is
1701 self.re_exclude_auto, it's fairly commented.
1705 self.re_exclude_auto, it's fairly commented.
1702
1706
1703 2006-01-12 Ville Vainio <vivainio@gmail.com>
1707 2006-01-12 Ville Vainio <vivainio@gmail.com>
1704
1708
1705 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1709 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
1706 Prettified and hardened string/backslash quoting with ipsystem(),
1710 Prettified and hardened string/backslash quoting with ipsystem(),
1707 ipalias() and ipmagic(). Now even \ characters are passed to
1711 ipalias() and ipmagic(). Now even \ characters are passed to
1708 %magics, !shell escapes and aliases exactly as they are in the
1712 %magics, !shell escapes and aliases exactly as they are in the
1709 ipython command line. Should improve backslash experience,
1713 ipython command line. Should improve backslash experience,
1710 particularly in Windows (path delimiter for some commands that
1714 particularly in Windows (path delimiter for some commands that
1711 won't understand '/'), but Unix benefits as well (regexps). %cd
1715 won't understand '/'), but Unix benefits as well (regexps). %cd
1712 magic still doesn't support backslash path delimiters, though. Also
1716 magic still doesn't support backslash path delimiters, though. Also
1713 deleted all pretense of supporting multiline command strings in
1717 deleted all pretense of supporting multiline command strings in
1714 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1718 !system or %magic commands. Thanks to Jerry McRae for suggestions.
1715
1719
1716 * doc/build_doc_instructions.txt added. Documentation on how to
1720 * doc/build_doc_instructions.txt added. Documentation on how to
1717 use doc/update_manual.py, added yesterday. Both files contributed
1721 use doc/update_manual.py, added yesterday. Both files contributed
1718 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1722 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
1719 doc/*.sh for deprecation at a later date.
1723 doc/*.sh for deprecation at a later date.
1720
1724
1721 * /ipython.py Added ipython.py to root directory for
1725 * /ipython.py Added ipython.py to root directory for
1722 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1726 zero-installation (tar xzvf ipython.tgz; cd ipython; python
1723 ipython.py) and development convenience (no need to keep doing
1727 ipython.py) and development convenience (no need to keep doing
1724 "setup.py install" between changes).
1728 "setup.py install" between changes).
1725
1729
1726 * Made ! and !! shell escapes work (again) in multiline expressions:
1730 * Made ! and !! shell escapes work (again) in multiline expressions:
1727 if 1:
1731 if 1:
1728 !ls
1732 !ls
1729 !!ls
1733 !!ls
1730
1734
1731 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1735 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
1732
1736
1733 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1737 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
1734 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1738 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
1735 module in case-insensitive installation. Was causing crashes
1739 module in case-insensitive installation. Was causing crashes
1736 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1740 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
1737
1741
1738 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1742 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
1739 <marienz-AT-gentoo.org>, closes
1743 <marienz-AT-gentoo.org>, closes
1740 http://www.scipy.net/roundup/ipython/issue51.
1744 http://www.scipy.net/roundup/ipython/issue51.
1741
1745
1742 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1746 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
1743
1747
1744 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1748 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
1745 problem of excessive CPU usage under *nix and keyboard lag under
1749 problem of excessive CPU usage under *nix and keyboard lag under
1746 win32.
1750 win32.
1747
1751
1748 2006-01-10 *** Released version 0.7.0
1752 2006-01-10 *** Released version 0.7.0
1749
1753
1750 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1754 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
1751
1755
1752 * IPython/Release.py (revision): tag version number to 0.7.0,
1756 * IPython/Release.py (revision): tag version number to 0.7.0,
1753 ready for release.
1757 ready for release.
1754
1758
1755 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1759 * IPython/Magic.py (magic_edit): Add print statement to %edit so
1756 it informs the user of the name of the temp. file used. This can
1760 it informs the user of the name of the temp. file used. This can
1757 help if you decide later to reuse that same file, so you know
1761 help if you decide later to reuse that same file, so you know
1758 where to copy the info from.
1762 where to copy the info from.
1759
1763
1760 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1764 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
1761
1765
1762 * setup_bdist_egg.py: little script to build an egg. Added
1766 * setup_bdist_egg.py: little script to build an egg. Added
1763 support in the release tools as well.
1767 support in the release tools as well.
1764
1768
1765 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1769 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
1766
1770
1767 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1771 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
1768 version selection (new -wxversion command line and ipythonrc
1772 version selection (new -wxversion command line and ipythonrc
1769 parameter). Patch contributed by Arnd Baecker
1773 parameter). Patch contributed by Arnd Baecker
1770 <arnd.baecker-AT-web.de>.
1774 <arnd.baecker-AT-web.de>.
1771
1775
1772 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1776 * IPython/iplib.py (embed_mainloop): fix tab-completion in
1773 embedded instances, for variables defined at the interactive
1777 embedded instances, for variables defined at the interactive
1774 prompt of the embedded ipython. Reported by Arnd.
1778 prompt of the embedded ipython. Reported by Arnd.
1775
1779
1776 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1780 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
1777 it can be used as a (stateful) toggle, or with a direct parameter.
1781 it can be used as a (stateful) toggle, or with a direct parameter.
1778
1782
1779 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1783 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
1780 could be triggered in certain cases and cause the traceback
1784 could be triggered in certain cases and cause the traceback
1781 printer not to work.
1785 printer not to work.
1782
1786
1783 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1787 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
1784
1788
1785 * IPython/iplib.py (_should_recompile): Small fix, closes
1789 * IPython/iplib.py (_should_recompile): Small fix, closes
1786 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1790 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
1787
1791
1788 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1792 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
1789
1793
1790 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1794 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
1791 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1795 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
1792 Moad for help with tracking it down.
1796 Moad for help with tracking it down.
1793
1797
1794 * IPython/iplib.py (handle_auto): fix autocall handling for
1798 * IPython/iplib.py (handle_auto): fix autocall handling for
1795 objects which support BOTH __getitem__ and __call__ (so that f [x]
1799 objects which support BOTH __getitem__ and __call__ (so that f [x]
1796 is left alone, instead of becoming f([x]) automatically).
1800 is left alone, instead of becoming f([x]) automatically).
1797
1801
1798 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1802 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
1799 Ville's patch.
1803 Ville's patch.
1800
1804
1801 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1805 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
1802
1806
1803 * IPython/iplib.py (handle_auto): changed autocall semantics to
1807 * IPython/iplib.py (handle_auto): changed autocall semantics to
1804 include 'smart' mode, where the autocall transformation is NOT
1808 include 'smart' mode, where the autocall transformation is NOT
1805 applied if there are no arguments on the line. This allows you to
1809 applied if there are no arguments on the line. This allows you to
1806 just type 'foo' if foo is a callable to see its internal form,
1810 just type 'foo' if foo is a callable to see its internal form,
1807 instead of having it called with no arguments (typically a
1811 instead of having it called with no arguments (typically a
1808 mistake). The old 'full' autocall still exists: for that, you
1812 mistake). The old 'full' autocall still exists: for that, you
1809 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1813 need to set the 'autocall' parameter to 2 in your ipythonrc file.
1810
1814
1811 * IPython/completer.py (Completer.attr_matches): add
1815 * IPython/completer.py (Completer.attr_matches): add
1812 tab-completion support for Enthoughts' traits. After a report by
1816 tab-completion support for Enthoughts' traits. After a report by
1813 Arnd and a patch by Prabhu.
1817 Arnd and a patch by Prabhu.
1814
1818
1815 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1819 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
1816
1820
1817 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1821 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
1818 Schmolck's patch to fix inspect.getinnerframes().
1822 Schmolck's patch to fix inspect.getinnerframes().
1819
1823
1820 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1824 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
1821 for embedded instances, regarding handling of namespaces and items
1825 for embedded instances, regarding handling of namespaces and items
1822 added to the __builtin__ one. Multiple embedded instances and
1826 added to the __builtin__ one. Multiple embedded instances and
1823 recursive embeddings should work better now (though I'm not sure
1827 recursive embeddings should work better now (though I'm not sure
1824 I've got all the corner cases fixed, that code is a bit of a brain
1828 I've got all the corner cases fixed, that code is a bit of a brain
1825 twister).
1829 twister).
1826
1830
1827 * IPython/Magic.py (magic_edit): added support to edit in-memory
1831 * IPython/Magic.py (magic_edit): added support to edit in-memory
1828 macros (automatically creates the necessary temp files). %edit
1832 macros (automatically creates the necessary temp files). %edit
1829 also doesn't return the file contents anymore, it's just noise.
1833 also doesn't return the file contents anymore, it's just noise.
1830
1834
1831 * IPython/completer.py (Completer.attr_matches): revert change to
1835 * IPython/completer.py (Completer.attr_matches): revert change to
1832 complete only on attributes listed in __all__. I realized it
1836 complete only on attributes listed in __all__. I realized it
1833 cripples the tab-completion system as a tool for exploring the
1837 cripples the tab-completion system as a tool for exploring the
1834 internals of unknown libraries (it renders any non-__all__
1838 internals of unknown libraries (it renders any non-__all__
1835 attribute off-limits). I got bit by this when trying to see
1839 attribute off-limits). I got bit by this when trying to see
1836 something inside the dis module.
1840 something inside the dis module.
1837
1841
1838 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1842 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
1839
1843
1840 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1844 * IPython/iplib.py (InteractiveShell.__init__): add .meta
1841 namespace for users and extension writers to hold data in. This
1845 namespace for users and extension writers to hold data in. This
1842 follows the discussion in
1846 follows the discussion in
1843 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1847 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
1844
1848
1845 * IPython/completer.py (IPCompleter.complete): small patch to help
1849 * IPython/completer.py (IPCompleter.complete): small patch to help
1846 tab-completion under Emacs, after a suggestion by John Barnard
1850 tab-completion under Emacs, after a suggestion by John Barnard
1847 <barnarj-AT-ccf.org>.
1851 <barnarj-AT-ccf.org>.
1848
1852
1849 * IPython/Magic.py (Magic.extract_input_slices): added support for
1853 * IPython/Magic.py (Magic.extract_input_slices): added support for
1850 the slice notation in magics to use N-M to represent numbers N...M
1854 the slice notation in magics to use N-M to represent numbers N...M
1851 (closed endpoints). This is used by %macro and %save.
1855 (closed endpoints). This is used by %macro and %save.
1852
1856
1853 * IPython/completer.py (Completer.attr_matches): for modules which
1857 * IPython/completer.py (Completer.attr_matches): for modules which
1854 define __all__, complete only on those. After a patch by Jeffrey
1858 define __all__, complete only on those. After a patch by Jeffrey
1855 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1859 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
1856 speed up this routine.
1860 speed up this routine.
1857
1861
1858 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1862 * IPython/Logger.py (Logger.log): fix a history handling bug. I
1859 don't know if this is the end of it, but the behavior now is
1863 don't know if this is the end of it, but the behavior now is
1860 certainly much more correct. Note that coupled with macros,
1864 certainly much more correct. Note that coupled with macros,
1861 slightly surprising (at first) behavior may occur: a macro will in
1865 slightly surprising (at first) behavior may occur: a macro will in
1862 general expand to multiple lines of input, so upon exiting, the
1866 general expand to multiple lines of input, so upon exiting, the
1863 in/out counters will both be bumped by the corresponding amount
1867 in/out counters will both be bumped by the corresponding amount
1864 (as if the macro's contents had been typed interactively). Typing
1868 (as if the macro's contents had been typed interactively). Typing
1865 %hist will reveal the intermediate (silently processed) lines.
1869 %hist will reveal the intermediate (silently processed) lines.
1866
1870
1867 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1871 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
1868 pickle to fail (%run was overwriting __main__ and not restoring
1872 pickle to fail (%run was overwriting __main__ and not restoring
1869 it, but pickle relies on __main__ to operate).
1873 it, but pickle relies on __main__ to operate).
1870
1874
1871 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1875 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
1872 using properties, but forgot to make the main InteractiveShell
1876 using properties, but forgot to make the main InteractiveShell
1873 class a new-style class. Properties fail silently, and
1877 class a new-style class. Properties fail silently, and
1874 mysteriously, with old-style class (getters work, but
1878 mysteriously, with old-style class (getters work, but
1875 setters don't do anything).
1879 setters don't do anything).
1876
1880
1877 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1881 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
1878
1882
1879 * IPython/Magic.py (magic_history): fix history reporting bug (I
1883 * IPython/Magic.py (magic_history): fix history reporting bug (I
1880 know some nasties are still there, I just can't seem to find a
1884 know some nasties are still there, I just can't seem to find a
1881 reproducible test case to track them down; the input history is
1885 reproducible test case to track them down; the input history is
1882 falling out of sync...)
1886 falling out of sync...)
1883
1887
1884 * IPython/iplib.py (handle_shell_escape): fix bug where both
1888 * IPython/iplib.py (handle_shell_escape): fix bug where both
1885 aliases and system accesses where broken for indented code (such
1889 aliases and system accesses where broken for indented code (such
1886 as loops).
1890 as loops).
1887
1891
1888 * IPython/genutils.py (shell): fix small but critical bug for
1892 * IPython/genutils.py (shell): fix small but critical bug for
1889 win32 system access.
1893 win32 system access.
1890
1894
1891 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1895 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
1892
1896
1893 * IPython/iplib.py (showtraceback): remove use of the
1897 * IPython/iplib.py (showtraceback): remove use of the
1894 sys.last_{type/value/traceback} structures, which are non
1898 sys.last_{type/value/traceback} structures, which are non
1895 thread-safe.
1899 thread-safe.
1896 (_prefilter): change control flow to ensure that we NEVER
1900 (_prefilter): change control flow to ensure that we NEVER
1897 introspect objects when autocall is off. This will guarantee that
1901 introspect objects when autocall is off. This will guarantee that
1898 having an input line of the form 'x.y', where access to attribute
1902 having an input line of the form 'x.y', where access to attribute
1899 'y' has side effects, doesn't trigger the side effect TWICE. It
1903 'y' has side effects, doesn't trigger the side effect TWICE. It
1900 is important to note that, with autocall on, these side effects
1904 is important to note that, with autocall on, these side effects
1901 can still happen.
1905 can still happen.
1902 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1906 (ipsystem): new builtin, to complete the ip{magic/alias/system}
1903 trio. IPython offers these three kinds of special calls which are
1907 trio. IPython offers these three kinds of special calls which are
1904 not python code, and it's a good thing to have their call method
1908 not python code, and it's a good thing to have their call method
1905 be accessible as pure python functions (not just special syntax at
1909 be accessible as pure python functions (not just special syntax at
1906 the command line). It gives us a better internal implementation
1910 the command line). It gives us a better internal implementation
1907 structure, as well as exposing these for user scripting more
1911 structure, as well as exposing these for user scripting more
1908 cleanly.
1912 cleanly.
1909
1913
1910 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1914 * IPython/macro.py (Macro.__init__): moved macros to a standalone
1911 file. Now that they'll be more likely to be used with the
1915 file. Now that they'll be more likely to be used with the
1912 persistance system (%store), I want to make sure their module path
1916 persistance system (%store), I want to make sure their module path
1913 doesn't change in the future, so that we don't break things for
1917 doesn't change in the future, so that we don't break things for
1914 users' persisted data.
1918 users' persisted data.
1915
1919
1916 * IPython/iplib.py (autoindent_update): move indentation
1920 * IPython/iplib.py (autoindent_update): move indentation
1917 management into the _text_ processing loop, not the keyboard
1921 management into the _text_ processing loop, not the keyboard
1918 interactive one. This is necessary to correctly process non-typed
1922 interactive one. This is necessary to correctly process non-typed
1919 multiline input (such as macros).
1923 multiline input (such as macros).
1920
1924
1921 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1925 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
1922 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1926 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
1923 which was producing problems in the resulting manual.
1927 which was producing problems in the resulting manual.
1924 (magic_whos): improve reporting of instances (show their class,
1928 (magic_whos): improve reporting of instances (show their class,
1925 instead of simply printing 'instance' which isn't terribly
1929 instead of simply printing 'instance' which isn't terribly
1926 informative).
1930 informative).
1927
1931
1928 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1932 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
1929 (minor mods) to support network shares under win32.
1933 (minor mods) to support network shares under win32.
1930
1934
1931 * IPython/winconsole.py (get_console_size): add new winconsole
1935 * IPython/winconsole.py (get_console_size): add new winconsole
1932 module and fixes to page_dumb() to improve its behavior under
1936 module and fixes to page_dumb() to improve its behavior under
1933 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1937 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
1934
1938
1935 * IPython/Magic.py (Macro): simplified Macro class to just
1939 * IPython/Magic.py (Macro): simplified Macro class to just
1936 subclass list. We've had only 2.2 compatibility for a very long
1940 subclass list. We've had only 2.2 compatibility for a very long
1937 time, yet I was still avoiding subclassing the builtin types. No
1941 time, yet I was still avoiding subclassing the builtin types. No
1938 more (I'm also starting to use properties, though I won't shift to
1942 more (I'm also starting to use properties, though I won't shift to
1939 2.3-specific features quite yet).
1943 2.3-specific features quite yet).
1940 (magic_store): added Ville's patch for lightweight variable
1944 (magic_store): added Ville's patch for lightweight variable
1941 persistence, after a request on the user list by Matt Wilkie
1945 persistence, after a request on the user list by Matt Wilkie
1942 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1946 <maphew-AT-gmail.com>. The new %store magic's docstring has full
1943 details.
1947 details.
1944
1948
1945 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1949 * IPython/iplib.py (InteractiveShell.post_config_initialization):
1946 changed the default logfile name from 'ipython.log' to
1950 changed the default logfile name from 'ipython.log' to
1947 'ipython_log.py'. These logs are real python files, and now that
1951 'ipython_log.py'. These logs are real python files, and now that
1948 we have much better multiline support, people are more likely to
1952 we have much better multiline support, people are more likely to
1949 want to use them as such. Might as well name them correctly.
1953 want to use them as such. Might as well name them correctly.
1950
1954
1951 * IPython/Magic.py: substantial cleanup. While we can't stop
1955 * IPython/Magic.py: substantial cleanup. While we can't stop
1952 using magics as mixins, due to the existing customizations 'out
1956 using magics as mixins, due to the existing customizations 'out
1953 there' which rely on the mixin naming conventions, at least I
1957 there' which rely on the mixin naming conventions, at least I
1954 cleaned out all cross-class name usage. So once we are OK with
1958 cleaned out all cross-class name usage. So once we are OK with
1955 breaking compatibility, the two systems can be separated.
1959 breaking compatibility, the two systems can be separated.
1956
1960
1957 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1961 * IPython/Logger.py: major cleanup. This one is NOT a mixin
1958 anymore, and the class is a fair bit less hideous as well. New
1962 anymore, and the class is a fair bit less hideous as well. New
1959 features were also introduced: timestamping of input, and logging
1963 features were also introduced: timestamping of input, and logging
1960 of output results. These are user-visible with the -t and -o
1964 of output results. These are user-visible with the -t and -o
1961 options to %logstart. Closes
1965 options to %logstart. Closes
1962 http://www.scipy.net/roundup/ipython/issue11 and a request by
1966 http://www.scipy.net/roundup/ipython/issue11 and a request by
1963 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1967 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
1964
1968
1965 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1969 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
1966
1970
1967 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1971 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
1968 better handle backslashes in paths. See the thread 'More Windows
1972 better handle backslashes in paths. See the thread 'More Windows
1969 questions part 2 - \/ characters revisited' on the iypthon user
1973 questions part 2 - \/ characters revisited' on the iypthon user
1970 list:
1974 list:
1971 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1975 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
1972
1976
1973 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1977 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
1974
1978
1975 (InteractiveShell.__init__): change threaded shells to not use the
1979 (InteractiveShell.__init__): change threaded shells to not use the
1976 ipython crash handler. This was causing more problems than not,
1980 ipython crash handler. This was causing more problems than not,
1977 as exceptions in the main thread (GUI code, typically) would
1981 as exceptions in the main thread (GUI code, typically) would
1978 always show up as a 'crash', when they really weren't.
1982 always show up as a 'crash', when they really weren't.
1979
1983
1980 The colors and exception mode commands (%colors/%xmode) have been
1984 The colors and exception mode commands (%colors/%xmode) have been
1981 synchronized to also take this into account, so users can get
1985 synchronized to also take this into account, so users can get
1982 verbose exceptions for their threaded code as well. I also added
1986 verbose exceptions for their threaded code as well. I also added
1983 support for activating pdb inside this exception handler as well,
1987 support for activating pdb inside this exception handler as well,
1984 so now GUI authors can use IPython's enhanced pdb at runtime.
1988 so now GUI authors can use IPython's enhanced pdb at runtime.
1985
1989
1986 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1990 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
1987 true by default, and add it to the shipped ipythonrc file. Since
1991 true by default, and add it to the shipped ipythonrc file. Since
1988 this asks the user before proceeding, I think it's OK to make it
1992 this asks the user before proceeding, I think it's OK to make it
1989 true by default.
1993 true by default.
1990
1994
1991 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1995 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
1992 of the previous special-casing of input in the eval loop. I think
1996 of the previous special-casing of input in the eval loop. I think
1993 this is cleaner, as they really are commands and shouldn't have
1997 this is cleaner, as they really are commands and shouldn't have
1994 a special role in the middle of the core code.
1998 a special role in the middle of the core code.
1995
1999
1996 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
2000 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
1997
2001
1998 * IPython/iplib.py (edit_syntax_error): added support for
2002 * IPython/iplib.py (edit_syntax_error): added support for
1999 automatically reopening the editor if the file had a syntax error
2003 automatically reopening the editor if the file had a syntax error
2000 in it. Thanks to scottt who provided the patch at:
2004 in it. Thanks to scottt who provided the patch at:
2001 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2005 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
2002 version committed).
2006 version committed).
2003
2007
2004 * IPython/iplib.py (handle_normal): add suport for multi-line
2008 * IPython/iplib.py (handle_normal): add suport for multi-line
2005 input with emtpy lines. This fixes
2009 input with emtpy lines. This fixes
2006 http://www.scipy.net/roundup/ipython/issue43 and a similar
2010 http://www.scipy.net/roundup/ipython/issue43 and a similar
2007 discussion on the user list.
2011 discussion on the user list.
2008
2012
2009 WARNING: a behavior change is necessarily introduced to support
2013 WARNING: a behavior change is necessarily introduced to support
2010 blank lines: now a single blank line with whitespace does NOT
2014 blank lines: now a single blank line with whitespace does NOT
2011 break the input loop, which means that when autoindent is on, by
2015 break the input loop, which means that when autoindent is on, by
2012 default hitting return on the next (indented) line does NOT exit.
2016 default hitting return on the next (indented) line does NOT exit.
2013
2017
2014 Instead, to exit a multiline input you can either have:
2018 Instead, to exit a multiline input you can either have:
2015
2019
2016 - TWO whitespace lines (just hit return again), or
2020 - TWO whitespace lines (just hit return again), or
2017 - a single whitespace line of a different length than provided
2021 - a single whitespace line of a different length than provided
2018 by the autoindent (add or remove a space).
2022 by the autoindent (add or remove a space).
2019
2023
2020 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2024 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
2021 module to better organize all readline-related functionality.
2025 module to better organize all readline-related functionality.
2022 I've deleted FlexCompleter and put all completion clases here.
2026 I've deleted FlexCompleter and put all completion clases here.
2023
2027
2024 * IPython/iplib.py (raw_input): improve indentation management.
2028 * IPython/iplib.py (raw_input): improve indentation management.
2025 It is now possible to paste indented code with autoindent on, and
2029 It is now possible to paste indented code with autoindent on, and
2026 the code is interpreted correctly (though it still looks bad on
2030 the code is interpreted correctly (though it still looks bad on
2027 screen, due to the line-oriented nature of ipython).
2031 screen, due to the line-oriented nature of ipython).
2028 (MagicCompleter.complete): change behavior so that a TAB key on an
2032 (MagicCompleter.complete): change behavior so that a TAB key on an
2029 otherwise empty line actually inserts a tab, instead of completing
2033 otherwise empty line actually inserts a tab, instead of completing
2030 on the entire global namespace. This makes it easier to use the
2034 on the entire global namespace. This makes it easier to use the
2031 TAB key for indentation. After a request by Hans Meine
2035 TAB key for indentation. After a request by Hans Meine
2032 <hans_meine-AT-gmx.net>
2036 <hans_meine-AT-gmx.net>
2033 (_prefilter): add support so that typing plain 'exit' or 'quit'
2037 (_prefilter): add support so that typing plain 'exit' or 'quit'
2034 does a sensible thing. Originally I tried to deviate as little as
2038 does a sensible thing. Originally I tried to deviate as little as
2035 possible from the default python behavior, but even that one may
2039 possible from the default python behavior, but even that one may
2036 change in this direction (thread on python-dev to that effect).
2040 change in this direction (thread on python-dev to that effect).
2037 Regardless, ipython should do the right thing even if CPython's
2041 Regardless, ipython should do the right thing even if CPython's
2038 '>>>' prompt doesn't.
2042 '>>>' prompt doesn't.
2039 (InteractiveShell): removed subclassing code.InteractiveConsole
2043 (InteractiveShell): removed subclassing code.InteractiveConsole
2040 class. By now we'd overridden just about all of its methods: I've
2044 class. By now we'd overridden just about all of its methods: I've
2041 copied the remaining two over, and now ipython is a standalone
2045 copied the remaining two over, and now ipython is a standalone
2042 class. This will provide a clearer picture for the chainsaw
2046 class. This will provide a clearer picture for the chainsaw
2043 branch refactoring.
2047 branch refactoring.
2044
2048
2045 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2049 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
2046
2050
2047 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2051 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
2048 failures for objects which break when dir() is called on them.
2052 failures for objects which break when dir() is called on them.
2049
2053
2050 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2054 * IPython/FlexCompleter.py (Completer.__init__): Added support for
2051 distinct local and global namespaces in the completer API. This
2055 distinct local and global namespaces in the completer API. This
2052 change allows us to properly handle completion with distinct
2056 change allows us to properly handle completion with distinct
2053 scopes, including in embedded instances (this had never really
2057 scopes, including in embedded instances (this had never really
2054 worked correctly).
2058 worked correctly).
2055
2059
2056 Note: this introduces a change in the constructor for
2060 Note: this introduces a change in the constructor for
2057 MagicCompleter, as a new global_namespace parameter is now the
2061 MagicCompleter, as a new global_namespace parameter is now the
2058 second argument (the others were bumped one position).
2062 second argument (the others were bumped one position).
2059
2063
2060 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2064 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
2061
2065
2062 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2066 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2063 embedded instances (which can be done now thanks to Vivian's
2067 embedded instances (which can be done now thanks to Vivian's
2064 frame-handling fixes for pdb).
2068 frame-handling fixes for pdb).
2065 (InteractiveShell.__init__): Fix namespace handling problem in
2069 (InteractiveShell.__init__): Fix namespace handling problem in
2066 embedded instances. We were overwriting __main__ unconditionally,
2070 embedded instances. We were overwriting __main__ unconditionally,
2067 and this should only be done for 'full' (non-embedded) IPython;
2071 and this should only be done for 'full' (non-embedded) IPython;
2068 embedded instances must respect the caller's __main__. Thanks to
2072 embedded instances must respect the caller's __main__. Thanks to
2069 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2073 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
2070
2074
2071 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2075 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
2072
2076
2073 * setup.py: added download_url to setup(). This registers the
2077 * setup.py: added download_url to setup(). This registers the
2074 download address at PyPI, which is not only useful to humans
2078 download address at PyPI, which is not only useful to humans
2075 browsing the site, but is also picked up by setuptools (the Eggs
2079 browsing the site, but is also picked up by setuptools (the Eggs
2076 machinery). Thanks to Ville and R. Kern for the info/discussion
2080 machinery). Thanks to Ville and R. Kern for the info/discussion
2077 on this.
2081 on this.
2078
2082
2079 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2083 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
2080
2084
2081 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2085 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
2082 This brings a lot of nice functionality to the pdb mode, which now
2086 This brings a lot of nice functionality to the pdb mode, which now
2083 has tab-completion, syntax highlighting, and better stack handling
2087 has tab-completion, syntax highlighting, and better stack handling
2084 than before. Many thanks to Vivian De Smedt
2088 than before. Many thanks to Vivian De Smedt
2085 <vivian-AT-vdesmedt.com> for the original patches.
2089 <vivian-AT-vdesmedt.com> for the original patches.
2086
2090
2087 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2091 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
2088
2092
2089 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2093 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
2090 sequence to consistently accept the banner argument. The
2094 sequence to consistently accept the banner argument. The
2091 inconsistency was tripping SAGE, thanks to Gary Zablackis
2095 inconsistency was tripping SAGE, thanks to Gary Zablackis
2092 <gzabl-AT-yahoo.com> for the report.
2096 <gzabl-AT-yahoo.com> for the report.
2093
2097
2094 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2098 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2095
2099
2096 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2100 * IPython/iplib.py (InteractiveShell.post_config_initialization):
2097 Fix bug where a naked 'alias' call in the ipythonrc file would
2101 Fix bug where a naked 'alias' call in the ipythonrc file would
2098 cause a crash. Bug reported by Jorgen Stenarson.
2102 cause a crash. Bug reported by Jorgen Stenarson.
2099
2103
2100 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2104 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
2101
2105
2102 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2106 * IPython/ipmaker.py (make_IPython): cleanups which should improve
2103 startup time.
2107 startup time.
2104
2108
2105 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2109 * IPython/iplib.py (runcode): my globals 'fix' for embedded
2106 instances had introduced a bug with globals in normal code. Now
2110 instances had introduced a bug with globals in normal code. Now
2107 it's working in all cases.
2111 it's working in all cases.
2108
2112
2109 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2113 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
2110 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2114 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
2111 has been introduced to set the default case sensitivity of the
2115 has been introduced to set the default case sensitivity of the
2112 searches. Users can still select either mode at runtime on a
2116 searches. Users can still select either mode at runtime on a
2113 per-search basis.
2117 per-search basis.
2114
2118
2115 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2119 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
2116
2120
2117 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2121 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
2118 attributes in wildcard searches for subclasses. Modified version
2122 attributes in wildcard searches for subclasses. Modified version
2119 of a patch by Jorgen.
2123 of a patch by Jorgen.
2120
2124
2121 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2125 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
2122
2126
2123 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2127 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
2124 embedded instances. I added a user_global_ns attribute to the
2128 embedded instances. I added a user_global_ns attribute to the
2125 InteractiveShell class to handle this.
2129 InteractiveShell class to handle this.
2126
2130
2127 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2131 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
2128
2132
2129 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2133 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
2130 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2134 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
2131 (reported under win32, but may happen also in other platforms).
2135 (reported under win32, but may happen also in other platforms).
2132 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2136 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
2133
2137
2134 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2138 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
2135
2139
2136 * IPython/Magic.py (magic_psearch): new support for wildcard
2140 * IPython/Magic.py (magic_psearch): new support for wildcard
2137 patterns. Now, typing ?a*b will list all names which begin with a
2141 patterns. Now, typing ?a*b will list all names which begin with a
2138 and end in b, for example. The %psearch magic has full
2142 and end in b, for example. The %psearch magic has full
2139 docstrings. Many thanks to JΓΆrgen Stenarson
2143 docstrings. Many thanks to JΓΆrgen Stenarson
2140 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2144 <jorgen.stenarson-AT-bostream.nu>, author of the patches
2141 implementing this functionality.
2145 implementing this functionality.
2142
2146
2143 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2147 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2144
2148
2145 * Manual: fixed long-standing annoyance of double-dashes (as in
2149 * Manual: fixed long-standing annoyance of double-dashes (as in
2146 --prefix=~, for example) being stripped in the HTML version. This
2150 --prefix=~, for example) being stripped in the HTML version. This
2147 is a latex2html bug, but a workaround was provided. Many thanks
2151 is a latex2html bug, but a workaround was provided. Many thanks
2148 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2152 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
2149 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2153 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
2150 rolling. This seemingly small issue had tripped a number of users
2154 rolling. This seemingly small issue had tripped a number of users
2151 when first installing, so I'm glad to see it gone.
2155 when first installing, so I'm glad to see it gone.
2152
2156
2153 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2157 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
2154
2158
2155 * IPython/Extensions/numeric_formats.py: fix missing import,
2159 * IPython/Extensions/numeric_formats.py: fix missing import,
2156 reported by Stephen Walton.
2160 reported by Stephen Walton.
2157
2161
2158 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2162 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
2159
2163
2160 * IPython/demo.py: finish demo module, fully documented now.
2164 * IPython/demo.py: finish demo module, fully documented now.
2161
2165
2162 * IPython/genutils.py (file_read): simple little utility to read a
2166 * IPython/genutils.py (file_read): simple little utility to read a
2163 file and ensure it's closed afterwards.
2167 file and ensure it's closed afterwards.
2164
2168
2165 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2169 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
2166
2170
2167 * IPython/demo.py (Demo.__init__): added support for individually
2171 * IPython/demo.py (Demo.__init__): added support for individually
2168 tagging blocks for automatic execution.
2172 tagging blocks for automatic execution.
2169
2173
2170 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2174 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
2171 syntax-highlighted python sources, requested by John.
2175 syntax-highlighted python sources, requested by John.
2172
2176
2173 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2177 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
2174
2178
2175 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2179 * IPython/demo.py (Demo.again): fix bug where again() blocks after
2176 finishing.
2180 finishing.
2177
2181
2178 * IPython/genutils.py (shlex_split): moved from Magic to here,
2182 * IPython/genutils.py (shlex_split): moved from Magic to here,
2179 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2183 where all 2.2 compatibility stuff lives. I needed it for demo.py.
2180
2184
2181 * IPython/demo.py (Demo.__init__): added support for silent
2185 * IPython/demo.py (Demo.__init__): added support for silent
2182 blocks, improved marks as regexps, docstrings written.
2186 blocks, improved marks as regexps, docstrings written.
2183 (Demo.__init__): better docstring, added support for sys.argv.
2187 (Demo.__init__): better docstring, added support for sys.argv.
2184
2188
2185 * IPython/genutils.py (marquee): little utility used by the demo
2189 * IPython/genutils.py (marquee): little utility used by the demo
2186 code, handy in general.
2190 code, handy in general.
2187
2191
2188 * IPython/demo.py (Demo.__init__): new class for interactive
2192 * IPython/demo.py (Demo.__init__): new class for interactive
2189 demos. Not documented yet, I just wrote it in a hurry for
2193 demos. Not documented yet, I just wrote it in a hurry for
2190 scipy'05. Will docstring later.
2194 scipy'05. Will docstring later.
2191
2195
2192 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2196 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
2193
2197
2194 * IPython/Shell.py (sigint_handler): Drastic simplification which
2198 * IPython/Shell.py (sigint_handler): Drastic simplification which
2195 also seems to make Ctrl-C work correctly across threads! This is
2199 also seems to make Ctrl-C work correctly across threads! This is
2196 so simple, that I can't beleive I'd missed it before. Needs more
2200 so simple, that I can't beleive I'd missed it before. Needs more
2197 testing, though.
2201 testing, though.
2198 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2202 (KBINT): Never mind, revert changes. I'm sure I'd tried something
2199 like this before...
2203 like this before...
2200
2204
2201 * IPython/genutils.py (get_home_dir): add protection against
2205 * IPython/genutils.py (get_home_dir): add protection against
2202 non-dirs in win32 registry.
2206 non-dirs in win32 registry.
2203
2207
2204 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2208 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
2205 bug where dict was mutated while iterating (pysh crash).
2209 bug where dict was mutated while iterating (pysh crash).
2206
2210
2207 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
2208
2212
2209 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2213 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
2210 spurious newlines added by this routine. After a report by
2214 spurious newlines added by this routine. After a report by
2211 F. Mantegazza.
2215 F. Mantegazza.
2212
2216
2213 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2217 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
2214
2218
2215 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2219 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
2216 calls. These were a leftover from the GTK 1.x days, and can cause
2220 calls. These were a leftover from the GTK 1.x days, and can cause
2217 problems in certain cases (after a report by John Hunter).
2221 problems in certain cases (after a report by John Hunter).
2218
2222
2219 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2223 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
2220 os.getcwd() fails at init time. Thanks to patch from David Remahl
2224 os.getcwd() fails at init time. Thanks to patch from David Remahl
2221 <chmod007-AT-mac.com>.
2225 <chmod007-AT-mac.com>.
2222 (InteractiveShell.__init__): prevent certain special magics from
2226 (InteractiveShell.__init__): prevent certain special magics from
2223 being shadowed by aliases. Closes
2227 being shadowed by aliases. Closes
2224 http://www.scipy.net/roundup/ipython/issue41.
2228 http://www.scipy.net/roundup/ipython/issue41.
2225
2229
2226 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2230 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
2227
2231
2228 * IPython/iplib.py (InteractiveShell.complete): Added new
2232 * IPython/iplib.py (InteractiveShell.complete): Added new
2229 top-level completion method to expose the completion mechanism
2233 top-level completion method to expose the completion mechanism
2230 beyond readline-based environments.
2234 beyond readline-based environments.
2231
2235
2232 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2236 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
2233
2237
2234 * tools/ipsvnc (svnversion): fix svnversion capture.
2238 * tools/ipsvnc (svnversion): fix svnversion capture.
2235
2239
2236 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2240 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
2237 attribute to self, which was missing. Before, it was set by a
2241 attribute to self, which was missing. Before, it was set by a
2238 routine which in certain cases wasn't being called, so the
2242 routine which in certain cases wasn't being called, so the
2239 instance could end up missing the attribute. This caused a crash.
2243 instance could end up missing the attribute. This caused a crash.
2240 Closes http://www.scipy.net/roundup/ipython/issue40.
2244 Closes http://www.scipy.net/roundup/ipython/issue40.
2241
2245
2242 2005-08-16 Fernando Perez <fperez@colorado.edu>
2246 2005-08-16 Fernando Perez <fperez@colorado.edu>
2243
2247
2244 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2248 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
2245 contains non-string attribute. Closes
2249 contains non-string attribute. Closes
2246 http://www.scipy.net/roundup/ipython/issue38.
2250 http://www.scipy.net/roundup/ipython/issue38.
2247
2251
2248 2005-08-14 Fernando Perez <fperez@colorado.edu>
2252 2005-08-14 Fernando Perez <fperez@colorado.edu>
2249
2253
2250 * tools/ipsvnc: Minor improvements, to add changeset info.
2254 * tools/ipsvnc: Minor improvements, to add changeset info.
2251
2255
2252 2005-08-12 Fernando Perez <fperez@colorado.edu>
2256 2005-08-12 Fernando Perez <fperez@colorado.edu>
2253
2257
2254 * IPython/iplib.py (runsource): remove self.code_to_run_src
2258 * IPython/iplib.py (runsource): remove self.code_to_run_src
2255 attribute. I realized this is nothing more than
2259 attribute. I realized this is nothing more than
2256 '\n'.join(self.buffer), and having the same data in two different
2260 '\n'.join(self.buffer), and having the same data in two different
2257 places is just asking for synchronization bugs. This may impact
2261 places is just asking for synchronization bugs. This may impact
2258 people who have custom exception handlers, so I need to warn
2262 people who have custom exception handlers, so I need to warn
2259 ipython-dev about it (F. Mantegazza may use them).
2263 ipython-dev about it (F. Mantegazza may use them).
2260
2264
2261 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2265 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
2262
2266
2263 * IPython/genutils.py: fix 2.2 compatibility (generators)
2267 * IPython/genutils.py: fix 2.2 compatibility (generators)
2264
2268
2265 2005-07-18 Fernando Perez <fperez@colorado.edu>
2269 2005-07-18 Fernando Perez <fperez@colorado.edu>
2266
2270
2267 * IPython/genutils.py (get_home_dir): fix to help users with
2271 * IPython/genutils.py (get_home_dir): fix to help users with
2268 invalid $HOME under win32.
2272 invalid $HOME under win32.
2269
2273
2270 2005-07-17 Fernando Perez <fperez@colorado.edu>
2274 2005-07-17 Fernando Perez <fperez@colorado.edu>
2271
2275
2272 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2276 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
2273 some old hacks and clean up a bit other routines; code should be
2277 some old hacks and clean up a bit other routines; code should be
2274 simpler and a bit faster.
2278 simpler and a bit faster.
2275
2279
2276 * IPython/iplib.py (interact): removed some last-resort attempts
2280 * IPython/iplib.py (interact): removed some last-resort attempts
2277 to survive broken stdout/stderr. That code was only making it
2281 to survive broken stdout/stderr. That code was only making it
2278 harder to abstract out the i/o (necessary for gui integration),
2282 harder to abstract out the i/o (necessary for gui integration),
2279 and the crashes it could prevent were extremely rare in practice
2283 and the crashes it could prevent were extremely rare in practice
2280 (besides being fully user-induced in a pretty violent manner).
2284 (besides being fully user-induced in a pretty violent manner).
2281
2285
2282 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2286 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
2283 Nothing major yet, but the code is simpler to read; this should
2287 Nothing major yet, but the code is simpler to read; this should
2284 make it easier to do more serious modifications in the future.
2288 make it easier to do more serious modifications in the future.
2285
2289
2286 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2290 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
2287 which broke in .15 (thanks to a report by Ville).
2291 which broke in .15 (thanks to a report by Ville).
2288
2292
2289 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2293 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
2290 be quite correct, I know next to nothing about unicode). This
2294 be quite correct, I know next to nothing about unicode). This
2291 will allow unicode strings to be used in prompts, amongst other
2295 will allow unicode strings to be used in prompts, amongst other
2292 cases. It also will prevent ipython from crashing when unicode
2296 cases. It also will prevent ipython from crashing when unicode
2293 shows up unexpectedly in many places. If ascii encoding fails, we
2297 shows up unexpectedly in many places. If ascii encoding fails, we
2294 assume utf_8. Currently the encoding is not a user-visible
2298 assume utf_8. Currently the encoding is not a user-visible
2295 setting, though it could be made so if there is demand for it.
2299 setting, though it could be made so if there is demand for it.
2296
2300
2297 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2301 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
2298
2302
2299 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2303 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
2300
2304
2301 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2305 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
2302
2306
2303 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2307 * IPython/genutils.py: Add 2.2 compatibility here, so all other
2304 code can work transparently for 2.2/2.3.
2308 code can work transparently for 2.2/2.3.
2305
2309
2306 2005-07-16 Fernando Perez <fperez@colorado.edu>
2310 2005-07-16 Fernando Perez <fperez@colorado.edu>
2307
2311
2308 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2312 * IPython/ultraTB.py (ExceptionColors): Make a global variable
2309 out of the color scheme table used for coloring exception
2313 out of the color scheme table used for coloring exception
2310 tracebacks. This allows user code to add new schemes at runtime.
2314 tracebacks. This allows user code to add new schemes at runtime.
2311 This is a minimally modified version of the patch at
2315 This is a minimally modified version of the patch at
2312 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2316 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
2313 for the contribution.
2317 for the contribution.
2314
2318
2315 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2319 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
2316 slightly modified version of the patch in
2320 slightly modified version of the patch in
2317 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2321 http://www.scipy.net/roundup/ipython/issue34, which also allows me
2318 to remove the previous try/except solution (which was costlier).
2322 to remove the previous try/except solution (which was costlier).
2319 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2323 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
2320
2324
2321 2005-06-08 Fernando Perez <fperez@colorado.edu>
2325 2005-06-08 Fernando Perez <fperez@colorado.edu>
2322
2326
2323 * IPython/iplib.py (write/write_err): Add methods to abstract all
2327 * IPython/iplib.py (write/write_err): Add methods to abstract all
2324 I/O a bit more.
2328 I/O a bit more.
2325
2329
2326 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2330 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
2327 warning, reported by Aric Hagberg, fix by JD Hunter.
2331 warning, reported by Aric Hagberg, fix by JD Hunter.
2328
2332
2329 2005-06-02 *** Released version 0.6.15
2333 2005-06-02 *** Released version 0.6.15
2330
2334
2331 2005-06-01 Fernando Perez <fperez@colorado.edu>
2335 2005-06-01 Fernando Perez <fperez@colorado.edu>
2332
2336
2333 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2337 * IPython/iplib.py (MagicCompleter.file_matches): Fix
2334 tab-completion of filenames within open-quoted strings. Note that
2338 tab-completion of filenames within open-quoted strings. Note that
2335 this requires that in ~/.ipython/ipythonrc, users change the
2339 this requires that in ~/.ipython/ipythonrc, users change the
2336 readline delimiters configuration to read:
2340 readline delimiters configuration to read:
2337
2341
2338 readline_remove_delims -/~
2342 readline_remove_delims -/~
2339
2343
2340
2344
2341 2005-05-31 *** Released version 0.6.14
2345 2005-05-31 *** Released version 0.6.14
2342
2346
2343 2005-05-29 Fernando Perez <fperez@colorado.edu>
2347 2005-05-29 Fernando Perez <fperez@colorado.edu>
2344
2348
2345 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2349 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
2346 with files not on the filesystem. Reported by Eliyahu Sandler
2350 with files not on the filesystem. Reported by Eliyahu Sandler
2347 <eli@gondolin.net>
2351 <eli@gondolin.net>
2348
2352
2349 2005-05-22 Fernando Perez <fperez@colorado.edu>
2353 2005-05-22 Fernando Perez <fperez@colorado.edu>
2350
2354
2351 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2355 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
2352 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2356 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
2353
2357
2354 2005-05-19 Fernando Perez <fperez@colorado.edu>
2358 2005-05-19 Fernando Perez <fperez@colorado.edu>
2355
2359
2356 * IPython/iplib.py (safe_execfile): close a file which could be
2360 * IPython/iplib.py (safe_execfile): close a file which could be
2357 left open (causing problems in win32, which locks open files).
2361 left open (causing problems in win32, which locks open files).
2358 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2362 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
2359
2363
2360 2005-05-18 Fernando Perez <fperez@colorado.edu>
2364 2005-05-18 Fernando Perez <fperez@colorado.edu>
2361
2365
2362 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2366 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
2363 keyword arguments correctly to safe_execfile().
2367 keyword arguments correctly to safe_execfile().
2364
2368
2365 2005-05-13 Fernando Perez <fperez@colorado.edu>
2369 2005-05-13 Fernando Perez <fperez@colorado.edu>
2366
2370
2367 * ipython.1: Added info about Qt to manpage, and threads warning
2371 * ipython.1: Added info about Qt to manpage, and threads warning
2368 to usage page (invoked with --help).
2372 to usage page (invoked with --help).
2369
2373
2370 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2374 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
2371 new matcher (it goes at the end of the priority list) to do
2375 new matcher (it goes at the end of the priority list) to do
2372 tab-completion on named function arguments. Submitted by George
2376 tab-completion on named function arguments. Submitted by George
2373 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2377 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
2374 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2378 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
2375 for more details.
2379 for more details.
2376
2380
2377 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2381 * IPython/Magic.py (magic_run): Added new -e flag to ignore
2378 SystemExit exceptions in the script being run. Thanks to a report
2382 SystemExit exceptions in the script being run. Thanks to a report
2379 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2383 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
2380 producing very annoying behavior when running unit tests.
2384 producing very annoying behavior when running unit tests.
2381
2385
2382 2005-05-12 Fernando Perez <fperez@colorado.edu>
2386 2005-05-12 Fernando Perez <fperez@colorado.edu>
2383
2387
2384 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2388 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
2385 which I'd broken (again) due to a changed regexp. In the process,
2389 which I'd broken (again) due to a changed regexp. In the process,
2386 added ';' as an escape to auto-quote the whole line without
2390 added ';' as an escape to auto-quote the whole line without
2387 splitting its arguments. Thanks to a report by Jerry McRae
2391 splitting its arguments. Thanks to a report by Jerry McRae
2388 <qrs0xyc02-AT-sneakemail.com>.
2392 <qrs0xyc02-AT-sneakemail.com>.
2389
2393
2390 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2394 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
2391 possible crashes caused by a TokenError. Reported by Ed Schofield
2395 possible crashes caused by a TokenError. Reported by Ed Schofield
2392 <schofield-AT-ftw.at>.
2396 <schofield-AT-ftw.at>.
2393
2397
2394 2005-05-06 Fernando Perez <fperez@colorado.edu>
2398 2005-05-06 Fernando Perez <fperez@colorado.edu>
2395
2399
2396 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2400 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
2397
2401
2398 2005-04-29 Fernando Perez <fperez@colorado.edu>
2402 2005-04-29 Fernando Perez <fperez@colorado.edu>
2399
2403
2400 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2404 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
2401 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2405 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
2402 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2406 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
2403 which provides support for Qt interactive usage (similar to the
2407 which provides support for Qt interactive usage (similar to the
2404 existing one for WX and GTK). This had been often requested.
2408 existing one for WX and GTK). This had been often requested.
2405
2409
2406 2005-04-14 *** Released version 0.6.13
2410 2005-04-14 *** Released version 0.6.13
2407
2411
2408 2005-04-08 Fernando Perez <fperez@colorado.edu>
2412 2005-04-08 Fernando Perez <fperez@colorado.edu>
2409
2413
2410 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2414 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
2411 from _ofind, which gets called on almost every input line. Now,
2415 from _ofind, which gets called on almost every input line. Now,
2412 we only try to get docstrings if they are actually going to be
2416 we only try to get docstrings if they are actually going to be
2413 used (the overhead of fetching unnecessary docstrings can be
2417 used (the overhead of fetching unnecessary docstrings can be
2414 noticeable for certain objects, such as Pyro proxies).
2418 noticeable for certain objects, such as Pyro proxies).
2415
2419
2416 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2420 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
2417 for completers. For some reason I had been passing them the state
2421 for completers. For some reason I had been passing them the state
2418 variable, which completers never actually need, and was in
2422 variable, which completers never actually need, and was in
2419 conflict with the rlcompleter API. Custom completers ONLY need to
2423 conflict with the rlcompleter API. Custom completers ONLY need to
2420 take the text parameter.
2424 take the text parameter.
2421
2425
2422 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2426 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
2423 work correctly in pysh. I've also moved all the logic which used
2427 work correctly in pysh. I've also moved all the logic which used
2424 to be in pysh.py here, which will prevent problems with future
2428 to be in pysh.py here, which will prevent problems with future
2425 upgrades. However, this time I must warn users to update their
2429 upgrades. However, this time I must warn users to update their
2426 pysh profile to include the line
2430 pysh profile to include the line
2427
2431
2428 import_all IPython.Extensions.InterpreterExec
2432 import_all IPython.Extensions.InterpreterExec
2429
2433
2430 because otherwise things won't work for them. They MUST also
2434 because otherwise things won't work for them. They MUST also
2431 delete pysh.py and the line
2435 delete pysh.py and the line
2432
2436
2433 execfile pysh.py
2437 execfile pysh.py
2434
2438
2435 from their ipythonrc-pysh.
2439 from their ipythonrc-pysh.
2436
2440
2437 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2441 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
2438 robust in the face of objects whose dir() returns non-strings
2442 robust in the face of objects whose dir() returns non-strings
2439 (which it shouldn't, but some broken libs like ITK do). Thanks to
2443 (which it shouldn't, but some broken libs like ITK do). Thanks to
2440 a patch by John Hunter (implemented differently, though). Also
2444 a patch by John Hunter (implemented differently, though). Also
2441 minor improvements by using .extend instead of + on lists.
2445 minor improvements by using .extend instead of + on lists.
2442
2446
2443 * pysh.py:
2447 * pysh.py:
2444
2448
2445 2005-04-06 Fernando Perez <fperez@colorado.edu>
2449 2005-04-06 Fernando Perez <fperez@colorado.edu>
2446
2450
2447 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2451 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
2448 by default, so that all users benefit from it. Those who don't
2452 by default, so that all users benefit from it. Those who don't
2449 want it can still turn it off.
2453 want it can still turn it off.
2450
2454
2451 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2455 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
2452 config file, I'd forgotten about this, so users were getting it
2456 config file, I'd forgotten about this, so users were getting it
2453 off by default.
2457 off by default.
2454
2458
2455 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2459 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
2456 consistency. Now magics can be called in multiline statements,
2460 consistency. Now magics can be called in multiline statements,
2457 and python variables can be expanded in magic calls via $var.
2461 and python variables can be expanded in magic calls via $var.
2458 This makes the magic system behave just like aliases or !system
2462 This makes the magic system behave just like aliases or !system
2459 calls.
2463 calls.
2460
2464
2461 2005-03-28 Fernando Perez <fperez@colorado.edu>
2465 2005-03-28 Fernando Perez <fperez@colorado.edu>
2462
2466
2463 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2467 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
2464 expensive string additions for building command. Add support for
2468 expensive string additions for building command. Add support for
2465 trailing ';' when autocall is used.
2469 trailing ';' when autocall is used.
2466
2470
2467 2005-03-26 Fernando Perez <fperez@colorado.edu>
2471 2005-03-26 Fernando Perez <fperez@colorado.edu>
2468
2472
2469 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2473 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
2470 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2474 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
2471 ipython.el robust against prompts with any number of spaces
2475 ipython.el robust against prompts with any number of spaces
2472 (including 0) after the ':' character.
2476 (including 0) after the ':' character.
2473
2477
2474 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2478 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
2475 continuation prompt, which misled users to think the line was
2479 continuation prompt, which misled users to think the line was
2476 already indented. Closes debian Bug#300847, reported to me by
2480 already indented. Closes debian Bug#300847, reported to me by
2477 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2481 Norbert Tretkowski <tretkowski-AT-inittab.de>.
2478
2482
2479 2005-03-23 Fernando Perez <fperez@colorado.edu>
2483 2005-03-23 Fernando Perez <fperez@colorado.edu>
2480
2484
2481 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2485 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
2482 properly aligned if they have embedded newlines.
2486 properly aligned if they have embedded newlines.
2483
2487
2484 * IPython/iplib.py (runlines): Add a public method to expose
2488 * IPython/iplib.py (runlines): Add a public method to expose
2485 IPython's code execution machinery, so that users can run strings
2489 IPython's code execution machinery, so that users can run strings
2486 as if they had been typed at the prompt interactively.
2490 as if they had been typed at the prompt interactively.
2487 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2491 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
2488 methods which can call the system shell, but with python variable
2492 methods which can call the system shell, but with python variable
2489 expansion. The three such methods are: __IPYTHON__.system,
2493 expansion. The three such methods are: __IPYTHON__.system,
2490 .getoutput and .getoutputerror. These need to be documented in a
2494 .getoutput and .getoutputerror. These need to be documented in a
2491 'public API' section (to be written) of the manual.
2495 'public API' section (to be written) of the manual.
2492
2496
2493 2005-03-20 Fernando Perez <fperez@colorado.edu>
2497 2005-03-20 Fernando Perez <fperez@colorado.edu>
2494
2498
2495 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2499 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
2496 for custom exception handling. This is quite powerful, and it
2500 for custom exception handling. This is quite powerful, and it
2497 allows for user-installable exception handlers which can trap
2501 allows for user-installable exception handlers which can trap
2498 custom exceptions at runtime and treat them separately from
2502 custom exceptions at runtime and treat them separately from
2499 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2503 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
2500 Mantegazza <mantegazza-AT-ill.fr>.
2504 Mantegazza <mantegazza-AT-ill.fr>.
2501 (InteractiveShell.set_custom_completer): public API function to
2505 (InteractiveShell.set_custom_completer): public API function to
2502 add new completers at runtime.
2506 add new completers at runtime.
2503
2507
2504 2005-03-19 Fernando Perez <fperez@colorado.edu>
2508 2005-03-19 Fernando Perez <fperez@colorado.edu>
2505
2509
2506 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2510 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
2507 allow objects which provide their docstrings via non-standard
2511 allow objects which provide their docstrings via non-standard
2508 mechanisms (like Pyro proxies) to still be inspected by ipython's
2512 mechanisms (like Pyro proxies) to still be inspected by ipython's
2509 ? system.
2513 ? system.
2510
2514
2511 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2515 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
2512 automatic capture system. I tried quite hard to make it work
2516 automatic capture system. I tried quite hard to make it work
2513 reliably, and simply failed. I tried many combinations with the
2517 reliably, and simply failed. I tried many combinations with the
2514 subprocess module, but eventually nothing worked in all needed
2518 subprocess module, but eventually nothing worked in all needed
2515 cases (not blocking stdin for the child, duplicating stdout
2519 cases (not blocking stdin for the child, duplicating stdout
2516 without blocking, etc). The new %sc/%sx still do capture to these
2520 without blocking, etc). The new %sc/%sx still do capture to these
2517 magical list/string objects which make shell use much more
2521 magical list/string objects which make shell use much more
2518 conveninent, so not all is lost.
2522 conveninent, so not all is lost.
2519
2523
2520 XXX - FIX MANUAL for the change above!
2524 XXX - FIX MANUAL for the change above!
2521
2525
2522 (runsource): I copied code.py's runsource() into ipython to modify
2526 (runsource): I copied code.py's runsource() into ipython to modify
2523 it a bit. Now the code object and source to be executed are
2527 it a bit. Now the code object and source to be executed are
2524 stored in ipython. This makes this info accessible to third-party
2528 stored in ipython. This makes this info accessible to third-party
2525 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2529 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
2526 Mantegazza <mantegazza-AT-ill.fr>.
2530 Mantegazza <mantegazza-AT-ill.fr>.
2527
2531
2528 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2532 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
2529 history-search via readline (like C-p/C-n). I'd wanted this for a
2533 history-search via readline (like C-p/C-n). I'd wanted this for a
2530 long time, but only recently found out how to do it. For users
2534 long time, but only recently found out how to do it. For users
2531 who already have their ipythonrc files made and want this, just
2535 who already have their ipythonrc files made and want this, just
2532 add:
2536 add:
2533
2537
2534 readline_parse_and_bind "\e[A": history-search-backward
2538 readline_parse_and_bind "\e[A": history-search-backward
2535 readline_parse_and_bind "\e[B": history-search-forward
2539 readline_parse_and_bind "\e[B": history-search-forward
2536
2540
2537 2005-03-18 Fernando Perez <fperez@colorado.edu>
2541 2005-03-18 Fernando Perez <fperez@colorado.edu>
2538
2542
2539 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2543 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
2540 LSString and SList classes which allow transparent conversions
2544 LSString and SList classes which allow transparent conversions
2541 between list mode and whitespace-separated string.
2545 between list mode and whitespace-separated string.
2542 (magic_r): Fix recursion problem in %r.
2546 (magic_r): Fix recursion problem in %r.
2543
2547
2544 * IPython/genutils.py (LSString): New class to be used for
2548 * IPython/genutils.py (LSString): New class to be used for
2545 automatic storage of the results of all alias/system calls in _o
2549 automatic storage of the results of all alias/system calls in _o
2546 and _e (stdout/err). These provide a .l/.list attribute which
2550 and _e (stdout/err). These provide a .l/.list attribute which
2547 does automatic splitting on newlines. This means that for most
2551 does automatic splitting on newlines. This means that for most
2548 uses, you'll never need to do capturing of output with %sc/%sx
2552 uses, you'll never need to do capturing of output with %sc/%sx
2549 anymore, since ipython keeps this always done for you. Note that
2553 anymore, since ipython keeps this always done for you. Note that
2550 only the LAST results are stored, the _o/e variables are
2554 only the LAST results are stored, the _o/e variables are
2551 overwritten on each call. If you need to save their contents
2555 overwritten on each call. If you need to save their contents
2552 further, simply bind them to any other name.
2556 further, simply bind them to any other name.
2553
2557
2554 2005-03-17 Fernando Perez <fperez@colorado.edu>
2558 2005-03-17 Fernando Perez <fperez@colorado.edu>
2555
2559
2556 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2560 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
2557 prompt namespace handling.
2561 prompt namespace handling.
2558
2562
2559 2005-03-16 Fernando Perez <fperez@colorado.edu>
2563 2005-03-16 Fernando Perez <fperez@colorado.edu>
2560
2564
2561 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2565 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
2562 classic prompts to be '>>> ' (final space was missing, and it
2566 classic prompts to be '>>> ' (final space was missing, and it
2563 trips the emacs python mode).
2567 trips the emacs python mode).
2564 (BasePrompt.__str__): Added safe support for dynamic prompt
2568 (BasePrompt.__str__): Added safe support for dynamic prompt
2565 strings. Now you can set your prompt string to be '$x', and the
2569 strings. Now you can set your prompt string to be '$x', and the
2566 value of x will be printed from your interactive namespace. The
2570 value of x will be printed from your interactive namespace. The
2567 interpolation syntax includes the full Itpl support, so
2571 interpolation syntax includes the full Itpl support, so
2568 ${foo()+x+bar()} is a valid prompt string now, and the function
2572 ${foo()+x+bar()} is a valid prompt string now, and the function
2569 calls will be made at runtime.
2573 calls will be made at runtime.
2570
2574
2571 2005-03-15 Fernando Perez <fperez@colorado.edu>
2575 2005-03-15 Fernando Perez <fperez@colorado.edu>
2572
2576
2573 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2577 * IPython/Magic.py (magic_history): renamed %hist to %history, to
2574 avoid name clashes in pylab. %hist still works, it just forwards
2578 avoid name clashes in pylab. %hist still works, it just forwards
2575 the call to %history.
2579 the call to %history.
2576
2580
2577 2005-03-02 *** Released version 0.6.12
2581 2005-03-02 *** Released version 0.6.12
2578
2582
2579 2005-03-02 Fernando Perez <fperez@colorado.edu>
2583 2005-03-02 Fernando Perez <fperez@colorado.edu>
2580
2584
2581 * IPython/iplib.py (handle_magic): log magic calls properly as
2585 * IPython/iplib.py (handle_magic): log magic calls properly as
2582 ipmagic() function calls.
2586 ipmagic() function calls.
2583
2587
2584 * IPython/Magic.py (magic_time): Improved %time to support
2588 * IPython/Magic.py (magic_time): Improved %time to support
2585 statements and provide wall-clock as well as CPU time.
2589 statements and provide wall-clock as well as CPU time.
2586
2590
2587 2005-02-27 Fernando Perez <fperez@colorado.edu>
2591 2005-02-27 Fernando Perez <fperez@colorado.edu>
2588
2592
2589 * IPython/hooks.py: New hooks module, to expose user-modifiable
2593 * IPython/hooks.py: New hooks module, to expose user-modifiable
2590 IPython functionality in a clean manner. For now only the editor
2594 IPython functionality in a clean manner. For now only the editor
2591 hook is actually written, and other thigns which I intend to turn
2595 hook is actually written, and other thigns which I intend to turn
2592 into proper hooks aren't yet there. The display and prefilter
2596 into proper hooks aren't yet there. The display and prefilter
2593 stuff, for example, should be hooks. But at least now the
2597 stuff, for example, should be hooks. But at least now the
2594 framework is in place, and the rest can be moved here with more
2598 framework is in place, and the rest can be moved here with more
2595 time later. IPython had had a .hooks variable for a long time for
2599 time later. IPython had had a .hooks variable for a long time for
2596 this purpose, but I'd never actually used it for anything.
2600 this purpose, but I'd never actually used it for anything.
2597
2601
2598 2005-02-26 Fernando Perez <fperez@colorado.edu>
2602 2005-02-26 Fernando Perez <fperez@colorado.edu>
2599
2603
2600 * IPython/ipmaker.py (make_IPython): make the default ipython
2604 * IPython/ipmaker.py (make_IPython): make the default ipython
2601 directory be called _ipython under win32, to follow more the
2605 directory be called _ipython under win32, to follow more the
2602 naming peculiarities of that platform (where buggy software like
2606 naming peculiarities of that platform (where buggy software like
2603 Visual Sourcesafe breaks with .named directories). Reported by
2607 Visual Sourcesafe breaks with .named directories). Reported by
2604 Ville Vainio.
2608 Ville Vainio.
2605
2609
2606 2005-02-23 Fernando Perez <fperez@colorado.edu>
2610 2005-02-23 Fernando Perez <fperez@colorado.edu>
2607
2611
2608 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2612 * IPython/iplib.py (InteractiveShell.__init__): removed a few
2609 auto_aliases for win32 which were causing problems. Users can
2613 auto_aliases for win32 which were causing problems. Users can
2610 define the ones they personally like.
2614 define the ones they personally like.
2611
2615
2612 2005-02-21 Fernando Perez <fperez@colorado.edu>
2616 2005-02-21 Fernando Perez <fperez@colorado.edu>
2613
2617
2614 * IPython/Magic.py (magic_time): new magic to time execution of
2618 * IPython/Magic.py (magic_time): new magic to time execution of
2615 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2619 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
2616
2620
2617 2005-02-19 Fernando Perez <fperez@colorado.edu>
2621 2005-02-19 Fernando Perez <fperez@colorado.edu>
2618
2622
2619 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2623 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
2620 into keys (for prompts, for example).
2624 into keys (for prompts, for example).
2621
2625
2622 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2626 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
2623 prompts in case users want them. This introduces a small behavior
2627 prompts in case users want them. This introduces a small behavior
2624 change: ipython does not automatically add a space to all prompts
2628 change: ipython does not automatically add a space to all prompts
2625 anymore. To get the old prompts with a space, users should add it
2629 anymore. To get the old prompts with a space, users should add it
2626 manually to their ipythonrc file, so for example prompt_in1 should
2630 manually to their ipythonrc file, so for example prompt_in1 should
2627 now read 'In [\#]: ' instead of 'In [\#]:'.
2631 now read 'In [\#]: ' instead of 'In [\#]:'.
2628 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2632 (BasePrompt.__init__): New option prompts_pad_left (only in rc
2629 file) to control left-padding of secondary prompts.
2633 file) to control left-padding of secondary prompts.
2630
2634
2631 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2635 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
2632 the profiler can't be imported. Fix for Debian, which removed
2636 the profiler can't be imported. Fix for Debian, which removed
2633 profile.py because of License issues. I applied a slightly
2637 profile.py because of License issues. I applied a slightly
2634 modified version of the original Debian patch at
2638 modified version of the original Debian patch at
2635 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2639 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
2636
2640
2637 2005-02-17 Fernando Perez <fperez@colorado.edu>
2641 2005-02-17 Fernando Perez <fperez@colorado.edu>
2638
2642
2639 * IPython/genutils.py (native_line_ends): Fix bug which would
2643 * IPython/genutils.py (native_line_ends): Fix bug which would
2640 cause improper line-ends under win32 b/c I was not opening files
2644 cause improper line-ends under win32 b/c I was not opening files
2641 in binary mode. Bug report and fix thanks to Ville.
2645 in binary mode. Bug report and fix thanks to Ville.
2642
2646
2643 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2647 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
2644 trying to catch spurious foo[1] autocalls. My fix actually broke
2648 trying to catch spurious foo[1] autocalls. My fix actually broke
2645 ',/' autoquote/call with explicit escape (bad regexp).
2649 ',/' autoquote/call with explicit escape (bad regexp).
2646
2650
2647 2005-02-15 *** Released version 0.6.11
2651 2005-02-15 *** Released version 0.6.11
2648
2652
2649 2005-02-14 Fernando Perez <fperez@colorado.edu>
2653 2005-02-14 Fernando Perez <fperez@colorado.edu>
2650
2654
2651 * IPython/background_jobs.py: New background job management
2655 * IPython/background_jobs.py: New background job management
2652 subsystem. This is implemented via a new set of classes, and
2656 subsystem. This is implemented via a new set of classes, and
2653 IPython now provides a builtin 'jobs' object for background job
2657 IPython now provides a builtin 'jobs' object for background job
2654 execution. A convenience %bg magic serves as a lightweight
2658 execution. A convenience %bg magic serves as a lightweight
2655 frontend for starting the more common type of calls. This was
2659 frontend for starting the more common type of calls. This was
2656 inspired by discussions with B. Granger and the BackgroundCommand
2660 inspired by discussions with B. Granger and the BackgroundCommand
2657 class described in the book Python Scripting for Computational
2661 class described in the book Python Scripting for Computational
2658 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2662 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
2659 (although ultimately no code from this text was used, as IPython's
2663 (although ultimately no code from this text was used, as IPython's
2660 system is a separate implementation).
2664 system is a separate implementation).
2661
2665
2662 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2666 * IPython/iplib.py (MagicCompleter.python_matches): add new option
2663 to control the completion of single/double underscore names
2667 to control the completion of single/double underscore names
2664 separately. As documented in the example ipytonrc file, the
2668 separately. As documented in the example ipytonrc file, the
2665 readline_omit__names variable can now be set to 2, to omit even
2669 readline_omit__names variable can now be set to 2, to omit even
2666 single underscore names. Thanks to a patch by Brian Wong
2670 single underscore names. Thanks to a patch by Brian Wong
2667 <BrianWong-AT-AirgoNetworks.Com>.
2671 <BrianWong-AT-AirgoNetworks.Com>.
2668 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2672 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
2669 be autocalled as foo([1]) if foo were callable. A problem for
2673 be autocalled as foo([1]) if foo were callable. A problem for
2670 things which are both callable and implement __getitem__.
2674 things which are both callable and implement __getitem__.
2671 (init_readline): Fix autoindentation for win32. Thanks to a patch
2675 (init_readline): Fix autoindentation for win32. Thanks to a patch
2672 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2676 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
2673
2677
2674 2005-02-12 Fernando Perez <fperez@colorado.edu>
2678 2005-02-12 Fernando Perez <fperez@colorado.edu>
2675
2679
2676 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2680 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
2677 which I had written long ago to sort out user error messages which
2681 which I had written long ago to sort out user error messages which
2678 may occur during startup. This seemed like a good idea initially,
2682 may occur during startup. This seemed like a good idea initially,
2679 but it has proven a disaster in retrospect. I don't want to
2683 but it has proven a disaster in retrospect. I don't want to
2680 change much code for now, so my fix is to set the internal 'debug'
2684 change much code for now, so my fix is to set the internal 'debug'
2681 flag to true everywhere, whose only job was precisely to control
2685 flag to true everywhere, whose only job was precisely to control
2682 this subsystem. This closes issue 28 (as well as avoiding all
2686 this subsystem. This closes issue 28 (as well as avoiding all
2683 sorts of strange hangups which occur from time to time).
2687 sorts of strange hangups which occur from time to time).
2684
2688
2685 2005-02-07 Fernando Perez <fperez@colorado.edu>
2689 2005-02-07 Fernando Perez <fperez@colorado.edu>
2686
2690
2687 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2691 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
2688 previous call produced a syntax error.
2692 previous call produced a syntax error.
2689
2693
2690 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2694 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2691 classes without constructor.
2695 classes without constructor.
2692
2696
2693 2005-02-06 Fernando Perez <fperez@colorado.edu>
2697 2005-02-06 Fernando Perez <fperez@colorado.edu>
2694
2698
2695 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2699 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
2696 completions with the results of each matcher, so we return results
2700 completions with the results of each matcher, so we return results
2697 to the user from all namespaces. This breaks with ipython
2701 to the user from all namespaces. This breaks with ipython
2698 tradition, but I think it's a nicer behavior. Now you get all
2702 tradition, but I think it's a nicer behavior. Now you get all
2699 possible completions listed, from all possible namespaces (python,
2703 possible completions listed, from all possible namespaces (python,
2700 filesystem, magics...) After a request by John Hunter
2704 filesystem, magics...) After a request by John Hunter
2701 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2705 <jdhunter-AT-nitace.bsd.uchicago.edu>.
2702
2706
2703 2005-02-05 Fernando Perez <fperez@colorado.edu>
2707 2005-02-05 Fernando Perez <fperez@colorado.edu>
2704
2708
2705 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2709 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
2706 the call had quote characters in it (the quotes were stripped).
2710 the call had quote characters in it (the quotes were stripped).
2707
2711
2708 2005-01-31 Fernando Perez <fperez@colorado.edu>
2712 2005-01-31 Fernando Perez <fperez@colorado.edu>
2709
2713
2710 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2714 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
2711 Itpl.itpl() to make the code more robust against psyco
2715 Itpl.itpl() to make the code more robust against psyco
2712 optimizations.
2716 optimizations.
2713
2717
2714 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2718 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
2715 of causing an exception. Quicker, cleaner.
2719 of causing an exception. Quicker, cleaner.
2716
2720
2717 2005-01-28 Fernando Perez <fperez@colorado.edu>
2721 2005-01-28 Fernando Perez <fperez@colorado.edu>
2718
2722
2719 * scripts/ipython_win_post_install.py (install): hardcode
2723 * scripts/ipython_win_post_install.py (install): hardcode
2720 sys.prefix+'python.exe' as the executable path. It turns out that
2724 sys.prefix+'python.exe' as the executable path. It turns out that
2721 during the post-installation run, sys.executable resolves to the
2725 during the post-installation run, sys.executable resolves to the
2722 name of the binary installer! I should report this as a distutils
2726 name of the binary installer! I should report this as a distutils
2723 bug, I think. I updated the .10 release with this tiny fix, to
2727 bug, I think. I updated the .10 release with this tiny fix, to
2724 avoid annoying the lists further.
2728 avoid annoying the lists further.
2725
2729
2726 2005-01-27 *** Released version 0.6.10
2730 2005-01-27 *** Released version 0.6.10
2727
2731
2728 2005-01-27 Fernando Perez <fperez@colorado.edu>
2732 2005-01-27 Fernando Perez <fperez@colorado.edu>
2729
2733
2730 * IPython/numutils.py (norm): Added 'inf' as optional name for
2734 * IPython/numutils.py (norm): Added 'inf' as optional name for
2731 L-infinity norm, included references to mathworld.com for vector
2735 L-infinity norm, included references to mathworld.com for vector
2732 norm definitions.
2736 norm definitions.
2733 (amin/amax): added amin/amax for array min/max. Similar to what
2737 (amin/amax): added amin/amax for array min/max. Similar to what
2734 pylab ships with after the recent reorganization of names.
2738 pylab ships with after the recent reorganization of names.
2735 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2739 (spike/spike_odd): removed deprecated spike/spike_odd functions.
2736
2740
2737 * ipython.el: committed Alex's recent fixes and improvements.
2741 * ipython.el: committed Alex's recent fixes and improvements.
2738 Tested with python-mode from CVS, and it looks excellent. Since
2742 Tested with python-mode from CVS, and it looks excellent. Since
2739 python-mode hasn't released anything in a while, I'm temporarily
2743 python-mode hasn't released anything in a while, I'm temporarily
2740 putting a copy of today's CVS (v 4.70) of python-mode in:
2744 putting a copy of today's CVS (v 4.70) of python-mode in:
2741 http://ipython.scipy.org/tmp/python-mode.el
2745 http://ipython.scipy.org/tmp/python-mode.el
2742
2746
2743 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2747 * scripts/ipython_win_post_install.py (install): Win32 fix to use
2744 sys.executable for the executable name, instead of assuming it's
2748 sys.executable for the executable name, instead of assuming it's
2745 called 'python.exe' (the post-installer would have produced broken
2749 called 'python.exe' (the post-installer would have produced broken
2746 setups on systems with a differently named python binary).
2750 setups on systems with a differently named python binary).
2747
2751
2748 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2752 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
2749 references to os.linesep, to make the code more
2753 references to os.linesep, to make the code more
2750 platform-independent. This is also part of the win32 coloring
2754 platform-independent. This is also part of the win32 coloring
2751 fixes.
2755 fixes.
2752
2756
2753 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2757 * IPython/genutils.py (page_dumb): Remove attempts to chop long
2754 lines, which actually cause coloring bugs because the length of
2758 lines, which actually cause coloring bugs because the length of
2755 the line is very difficult to correctly compute with embedded
2759 the line is very difficult to correctly compute with embedded
2756 escapes. This was the source of all the coloring problems under
2760 escapes. This was the source of all the coloring problems under
2757 Win32. I think that _finally_, Win32 users have a properly
2761 Win32. I think that _finally_, Win32 users have a properly
2758 working ipython in all respects. This would never have happened
2762 working ipython in all respects. This would never have happened
2759 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2763 if not for Gary Bishop and Viktor Ransmayr's great help and work.
2760
2764
2761 2005-01-26 *** Released version 0.6.9
2765 2005-01-26 *** Released version 0.6.9
2762
2766
2763 2005-01-25 Fernando Perez <fperez@colorado.edu>
2767 2005-01-25 Fernando Perez <fperez@colorado.edu>
2764
2768
2765 * setup.py: finally, we have a true Windows installer, thanks to
2769 * setup.py: finally, we have a true Windows installer, thanks to
2766 the excellent work of Viktor Ransmayr
2770 the excellent work of Viktor Ransmayr
2767 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2771 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
2768 Windows users. The setup routine is quite a bit cleaner thanks to
2772 Windows users. The setup routine is quite a bit cleaner thanks to
2769 this, and the post-install script uses the proper functions to
2773 this, and the post-install script uses the proper functions to
2770 allow a clean de-installation using the standard Windows Control
2774 allow a clean de-installation using the standard Windows Control
2771 Panel.
2775 Panel.
2772
2776
2773 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2777 * IPython/genutils.py (get_home_dir): changed to use the $HOME
2774 environment variable under all OSes (including win32) if
2778 environment variable under all OSes (including win32) if
2775 available. This will give consistency to win32 users who have set
2779 available. This will give consistency to win32 users who have set
2776 this variable for any reason. If os.environ['HOME'] fails, the
2780 this variable for any reason. If os.environ['HOME'] fails, the
2777 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2781 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
2778
2782
2779 2005-01-24 Fernando Perez <fperez@colorado.edu>
2783 2005-01-24 Fernando Perez <fperez@colorado.edu>
2780
2784
2781 * IPython/numutils.py (empty_like): add empty_like(), similar to
2785 * IPython/numutils.py (empty_like): add empty_like(), similar to
2782 zeros_like() but taking advantage of the new empty() Numeric routine.
2786 zeros_like() but taking advantage of the new empty() Numeric routine.
2783
2787
2784 2005-01-23 *** Released version 0.6.8
2788 2005-01-23 *** Released version 0.6.8
2785
2789
2786 2005-01-22 Fernando Perez <fperez@colorado.edu>
2790 2005-01-22 Fernando Perez <fperez@colorado.edu>
2787
2791
2788 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2792 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
2789 automatic show() calls. After discussing things with JDH, it
2793 automatic show() calls. After discussing things with JDH, it
2790 turns out there are too many corner cases where this can go wrong.
2794 turns out there are too many corner cases where this can go wrong.
2791 It's best not to try to be 'too smart', and simply have ipython
2795 It's best not to try to be 'too smart', and simply have ipython
2792 reproduce as much as possible the default behavior of a normal
2796 reproduce as much as possible the default behavior of a normal
2793 python shell.
2797 python shell.
2794
2798
2795 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2799 * IPython/iplib.py (InteractiveShell.__init__): Modified the
2796 line-splitting regexp and _prefilter() to avoid calling getattr()
2800 line-splitting regexp and _prefilter() to avoid calling getattr()
2797 on assignments. This closes
2801 on assignments. This closes
2798 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2802 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
2799 readline uses getattr(), so a simple <TAB> keypress is still
2803 readline uses getattr(), so a simple <TAB> keypress is still
2800 enough to trigger getattr() calls on an object.
2804 enough to trigger getattr() calls on an object.
2801
2805
2802 2005-01-21 Fernando Perez <fperez@colorado.edu>
2806 2005-01-21 Fernando Perez <fperez@colorado.edu>
2803
2807
2804 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2808 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
2805 docstring under pylab so it doesn't mask the original.
2809 docstring under pylab so it doesn't mask the original.
2806
2810
2807 2005-01-21 *** Released version 0.6.7
2811 2005-01-21 *** Released version 0.6.7
2808
2812
2809 2005-01-21 Fernando Perez <fperez@colorado.edu>
2813 2005-01-21 Fernando Perez <fperez@colorado.edu>
2810
2814
2811 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2815 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
2812 signal handling for win32 users in multithreaded mode.
2816 signal handling for win32 users in multithreaded mode.
2813
2817
2814 2005-01-17 Fernando Perez <fperez@colorado.edu>
2818 2005-01-17 Fernando Perez <fperez@colorado.edu>
2815
2819
2816 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2820 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
2817 instances with no __init__. After a crash report by Norbert Nemec
2821 instances with no __init__. After a crash report by Norbert Nemec
2818 <Norbert-AT-nemec-online.de>.
2822 <Norbert-AT-nemec-online.de>.
2819
2823
2820 2005-01-14 Fernando Perez <fperez@colorado.edu>
2824 2005-01-14 Fernando Perez <fperez@colorado.edu>
2821
2825
2822 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2826 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
2823 names for verbose exceptions, when multiple dotted names and the
2827 names for verbose exceptions, when multiple dotted names and the
2824 'parent' object were present on the same line.
2828 'parent' object were present on the same line.
2825
2829
2826 2005-01-11 Fernando Perez <fperez@colorado.edu>
2830 2005-01-11 Fernando Perez <fperez@colorado.edu>
2827
2831
2828 * IPython/genutils.py (flag_calls): new utility to trap and flag
2832 * IPython/genutils.py (flag_calls): new utility to trap and flag
2829 calls in functions. I need it to clean up matplotlib support.
2833 calls in functions. I need it to clean up matplotlib support.
2830 Also removed some deprecated code in genutils.
2834 Also removed some deprecated code in genutils.
2831
2835
2832 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2836 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
2833 that matplotlib scripts called with %run, which don't call show()
2837 that matplotlib scripts called with %run, which don't call show()
2834 themselves, still have their plotting windows open.
2838 themselves, still have their plotting windows open.
2835
2839
2836 2005-01-05 Fernando Perez <fperez@colorado.edu>
2840 2005-01-05 Fernando Perez <fperez@colorado.edu>
2837
2841
2838 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2842 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
2839 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2843 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
2840
2844
2841 2004-12-19 Fernando Perez <fperez@colorado.edu>
2845 2004-12-19 Fernando Perez <fperez@colorado.edu>
2842
2846
2843 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2847 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
2844 parent_runcode, which was an eyesore. The same result can be
2848 parent_runcode, which was an eyesore. The same result can be
2845 obtained with Python's regular superclass mechanisms.
2849 obtained with Python's regular superclass mechanisms.
2846
2850
2847 2004-12-17 Fernando Perez <fperez@colorado.edu>
2851 2004-12-17 Fernando Perez <fperez@colorado.edu>
2848
2852
2849 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2853 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
2850 reported by Prabhu.
2854 reported by Prabhu.
2851 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2855 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
2852 sys.stderr) instead of explicitly calling sys.stderr. This helps
2856 sys.stderr) instead of explicitly calling sys.stderr. This helps
2853 maintain our I/O abstractions clean, for future GUI embeddings.
2857 maintain our I/O abstractions clean, for future GUI embeddings.
2854
2858
2855 * IPython/genutils.py (info): added new utility for sys.stderr
2859 * IPython/genutils.py (info): added new utility for sys.stderr
2856 unified info message handling (thin wrapper around warn()).
2860 unified info message handling (thin wrapper around warn()).
2857
2861
2858 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2862 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
2859 composite (dotted) names on verbose exceptions.
2863 composite (dotted) names on verbose exceptions.
2860 (VerboseTB.nullrepr): harden against another kind of errors which
2864 (VerboseTB.nullrepr): harden against another kind of errors which
2861 Python's inspect module can trigger, and which were crashing
2865 Python's inspect module can trigger, and which were crashing
2862 IPython. Thanks to a report by Marco Lombardi
2866 IPython. Thanks to a report by Marco Lombardi
2863 <mlombard-AT-ma010192.hq.eso.org>.
2867 <mlombard-AT-ma010192.hq.eso.org>.
2864
2868
2865 2004-12-13 *** Released version 0.6.6
2869 2004-12-13 *** Released version 0.6.6
2866
2870
2867 2004-12-12 Fernando Perez <fperez@colorado.edu>
2871 2004-12-12 Fernando Perez <fperez@colorado.edu>
2868
2872
2869 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2873 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
2870 generated by pygtk upon initialization if it was built without
2874 generated by pygtk upon initialization if it was built without
2871 threads (for matplotlib users). After a crash reported by
2875 threads (for matplotlib users). After a crash reported by
2872 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2876 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
2873
2877
2874 * IPython/ipmaker.py (make_IPython): fix small bug in the
2878 * IPython/ipmaker.py (make_IPython): fix small bug in the
2875 import_some parameter for multiple imports.
2879 import_some parameter for multiple imports.
2876
2880
2877 * IPython/iplib.py (ipmagic): simplified the interface of
2881 * IPython/iplib.py (ipmagic): simplified the interface of
2878 ipmagic() to take a single string argument, just as it would be
2882 ipmagic() to take a single string argument, just as it would be
2879 typed at the IPython cmd line.
2883 typed at the IPython cmd line.
2880 (ipalias): Added new ipalias() with an interface identical to
2884 (ipalias): Added new ipalias() with an interface identical to
2881 ipmagic(). This completes exposing a pure python interface to the
2885 ipmagic(). This completes exposing a pure python interface to the
2882 alias and magic system, which can be used in loops or more complex
2886 alias and magic system, which can be used in loops or more complex
2883 code where IPython's automatic line mangling is not active.
2887 code where IPython's automatic line mangling is not active.
2884
2888
2885 * IPython/genutils.py (timing): changed interface of timing to
2889 * IPython/genutils.py (timing): changed interface of timing to
2886 simply run code once, which is the most common case. timings()
2890 simply run code once, which is the most common case. timings()
2887 remains unchanged, for the cases where you want multiple runs.
2891 remains unchanged, for the cases where you want multiple runs.
2888
2892
2889 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2893 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
2890 bug where Python2.2 crashes with exec'ing code which does not end
2894 bug where Python2.2 crashes with exec'ing code which does not end
2891 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2895 in a single newline. Python 2.3 is OK, so I hadn't noticed this
2892 before.
2896 before.
2893
2897
2894 2004-12-10 Fernando Perez <fperez@colorado.edu>
2898 2004-12-10 Fernando Perez <fperez@colorado.edu>
2895
2899
2896 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2900 * IPython/Magic.py (Magic.magic_prun): changed name of option from
2897 -t to -T, to accomodate the new -t flag in %run (the %run and
2901 -t to -T, to accomodate the new -t flag in %run (the %run and
2898 %prun options are kind of intermixed, and it's not easy to change
2902 %prun options are kind of intermixed, and it's not easy to change
2899 this with the limitations of python's getopt).
2903 this with the limitations of python's getopt).
2900
2904
2901 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2905 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
2902 the execution of scripts. It's not as fine-tuned as timeit.py,
2906 the execution of scripts. It's not as fine-tuned as timeit.py,
2903 but it works from inside ipython (and under 2.2, which lacks
2907 but it works from inside ipython (and under 2.2, which lacks
2904 timeit.py). Optionally a number of runs > 1 can be given for
2908 timeit.py). Optionally a number of runs > 1 can be given for
2905 timing very short-running code.
2909 timing very short-running code.
2906
2910
2907 * IPython/genutils.py (uniq_stable): new routine which returns a
2911 * IPython/genutils.py (uniq_stable): new routine which returns a
2908 list of unique elements in any iterable, but in stable order of
2912 list of unique elements in any iterable, but in stable order of
2909 appearance. I needed this for the ultraTB fixes, and it's a handy
2913 appearance. I needed this for the ultraTB fixes, and it's a handy
2910 utility.
2914 utility.
2911
2915
2912 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2916 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
2913 dotted names in Verbose exceptions. This had been broken since
2917 dotted names in Verbose exceptions. This had been broken since
2914 the very start, now x.y will properly be printed in a Verbose
2918 the very start, now x.y will properly be printed in a Verbose
2915 traceback, instead of x being shown and y appearing always as an
2919 traceback, instead of x being shown and y appearing always as an
2916 'undefined global'. Getting this to work was a bit tricky,
2920 'undefined global'. Getting this to work was a bit tricky,
2917 because by default python tokenizers are stateless. Saved by
2921 because by default python tokenizers are stateless. Saved by
2918 python's ability to easily add a bit of state to an arbitrary
2922 python's ability to easily add a bit of state to an arbitrary
2919 function (without needing to build a full-blown callable object).
2923 function (without needing to build a full-blown callable object).
2920
2924
2921 Also big cleanup of this code, which had horrendous runtime
2925 Also big cleanup of this code, which had horrendous runtime
2922 lookups of zillions of attributes for colorization. Moved all
2926 lookups of zillions of attributes for colorization. Moved all
2923 this code into a few templates, which make it cleaner and quicker.
2927 this code into a few templates, which make it cleaner and quicker.
2924
2928
2925 Printout quality was also improved for Verbose exceptions: one
2929 Printout quality was also improved for Verbose exceptions: one
2926 variable per line, and memory addresses are printed (this can be
2930 variable per line, and memory addresses are printed (this can be
2927 quite handy in nasty debugging situations, which is what Verbose
2931 quite handy in nasty debugging situations, which is what Verbose
2928 is for).
2932 is for).
2929
2933
2930 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2934 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
2931 the command line as scripts to be loaded by embedded instances.
2935 the command line as scripts to be loaded by embedded instances.
2932 Doing so has the potential for an infinite recursion if there are
2936 Doing so has the potential for an infinite recursion if there are
2933 exceptions thrown in the process. This fixes a strange crash
2937 exceptions thrown in the process. This fixes a strange crash
2934 reported by Philippe MULLER <muller-AT-irit.fr>.
2938 reported by Philippe MULLER <muller-AT-irit.fr>.
2935
2939
2936 2004-12-09 Fernando Perez <fperez@colorado.edu>
2940 2004-12-09 Fernando Perez <fperez@colorado.edu>
2937
2941
2938 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2942 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
2939 to reflect new names in matplotlib, which now expose the
2943 to reflect new names in matplotlib, which now expose the
2940 matlab-compatible interface via a pylab module instead of the
2944 matlab-compatible interface via a pylab module instead of the
2941 'matlab' name. The new code is backwards compatible, so users of
2945 'matlab' name. The new code is backwards compatible, so users of
2942 all matplotlib versions are OK. Patch by J. Hunter.
2946 all matplotlib versions are OK. Patch by J. Hunter.
2943
2947
2944 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2948 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
2945 of __init__ docstrings for instances (class docstrings are already
2949 of __init__ docstrings for instances (class docstrings are already
2946 automatically printed). Instances with customized docstrings
2950 automatically printed). Instances with customized docstrings
2947 (indep. of the class) are also recognized and all 3 separate
2951 (indep. of the class) are also recognized and all 3 separate
2948 docstrings are printed (instance, class, constructor). After some
2952 docstrings are printed (instance, class, constructor). After some
2949 comments/suggestions by J. Hunter.
2953 comments/suggestions by J. Hunter.
2950
2954
2951 2004-12-05 Fernando Perez <fperez@colorado.edu>
2955 2004-12-05 Fernando Perez <fperez@colorado.edu>
2952
2956
2953 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2957 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
2954 warnings when tab-completion fails and triggers an exception.
2958 warnings when tab-completion fails and triggers an exception.
2955
2959
2956 2004-12-03 Fernando Perez <fperez@colorado.edu>
2960 2004-12-03 Fernando Perez <fperez@colorado.edu>
2957
2961
2958 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2962 * IPython/Magic.py (magic_prun): Fix bug where an exception would
2959 be triggered when using 'run -p'. An incorrect option flag was
2963 be triggered when using 'run -p'. An incorrect option flag was
2960 being set ('d' instead of 'D').
2964 being set ('d' instead of 'D').
2961 (manpage): fix missing escaped \- sign.
2965 (manpage): fix missing escaped \- sign.
2962
2966
2963 2004-11-30 *** Released version 0.6.5
2967 2004-11-30 *** Released version 0.6.5
2964
2968
2965 2004-11-30 Fernando Perez <fperez@colorado.edu>
2969 2004-11-30 Fernando Perez <fperez@colorado.edu>
2966
2970
2967 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2971 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
2968 setting with -d option.
2972 setting with -d option.
2969
2973
2970 * setup.py (docfiles): Fix problem where the doc glob I was using
2974 * setup.py (docfiles): Fix problem where the doc glob I was using
2971 was COMPLETELY BROKEN. It was giving the right files by pure
2975 was COMPLETELY BROKEN. It was giving the right files by pure
2972 accident, but failed once I tried to include ipython.el. Note:
2976 accident, but failed once I tried to include ipython.el. Note:
2973 glob() does NOT allow you to do exclusion on multiple endings!
2977 glob() does NOT allow you to do exclusion on multiple endings!
2974
2978
2975 2004-11-29 Fernando Perez <fperez@colorado.edu>
2979 2004-11-29 Fernando Perez <fperez@colorado.edu>
2976
2980
2977 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2981 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
2978 the manpage as the source. Better formatting & consistency.
2982 the manpage as the source. Better formatting & consistency.
2979
2983
2980 * IPython/Magic.py (magic_run): Added new -d option, to run
2984 * IPython/Magic.py (magic_run): Added new -d option, to run
2981 scripts under the control of the python pdb debugger. Note that
2985 scripts under the control of the python pdb debugger. Note that
2982 this required changing the %prun option -d to -D, to avoid a clash
2986 this required changing the %prun option -d to -D, to avoid a clash
2983 (since %run must pass options to %prun, and getopt is too dumb to
2987 (since %run must pass options to %prun, and getopt is too dumb to
2984 handle options with string values with embedded spaces). Thanks
2988 handle options with string values with embedded spaces). Thanks
2985 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2989 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
2986 (magic_who_ls): added type matching to %who and %whos, so that one
2990 (magic_who_ls): added type matching to %who and %whos, so that one
2987 can filter their output to only include variables of certain
2991 can filter their output to only include variables of certain
2988 types. Another suggestion by Matthew.
2992 types. Another suggestion by Matthew.
2989 (magic_whos): Added memory summaries in kb and Mb for arrays.
2993 (magic_whos): Added memory summaries in kb and Mb for arrays.
2990 (magic_who): Improve formatting (break lines every 9 vars).
2994 (magic_who): Improve formatting (break lines every 9 vars).
2991
2995
2992 2004-11-28 Fernando Perez <fperez@colorado.edu>
2996 2004-11-28 Fernando Perez <fperez@colorado.edu>
2993
2997
2994 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2998 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
2995 cache when empty lines were present.
2999 cache when empty lines were present.
2996
3000
2997 2004-11-24 Fernando Perez <fperez@colorado.edu>
3001 2004-11-24 Fernando Perez <fperez@colorado.edu>
2998
3002
2999 * IPython/usage.py (__doc__): document the re-activated threading
3003 * IPython/usage.py (__doc__): document the re-activated threading
3000 options for WX and GTK.
3004 options for WX and GTK.
3001
3005
3002 2004-11-23 Fernando Perez <fperez@colorado.edu>
3006 2004-11-23 Fernando Perez <fperez@colorado.edu>
3003
3007
3004 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3008 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
3005 the -wthread and -gthread options, along with a new -tk one to try
3009 the -wthread and -gthread options, along with a new -tk one to try
3006 and coordinate Tk threading with wx/gtk. The tk support is very
3010 and coordinate Tk threading with wx/gtk. The tk support is very
3007 platform dependent, since it seems to require Tcl and Tk to be
3011 platform dependent, since it seems to require Tcl and Tk to be
3008 built with threads (Fedora1/2 appears NOT to have it, but in
3012 built with threads (Fedora1/2 appears NOT to have it, but in
3009 Prabhu's Debian boxes it works OK). But even with some Tk
3013 Prabhu's Debian boxes it works OK). But even with some Tk
3010 limitations, this is a great improvement.
3014 limitations, this is a great improvement.
3011
3015
3012 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3016 * IPython/Prompts.py (prompt_specials_color): Added \t for time
3013 info in user prompts. Patch by Prabhu.
3017 info in user prompts. Patch by Prabhu.
3014
3018
3015 2004-11-18 Fernando Perez <fperez@colorado.edu>
3019 2004-11-18 Fernando Perez <fperez@colorado.edu>
3016
3020
3017 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3021 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
3018 EOFErrors and bail, to avoid infinite loops if a non-terminating
3022 EOFErrors and bail, to avoid infinite loops if a non-terminating
3019 file is fed into ipython. Patch submitted in issue 19 by user,
3023 file is fed into ipython. Patch submitted in issue 19 by user,
3020 many thanks.
3024 many thanks.
3021
3025
3022 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3026 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
3023 autoquote/parens in continuation prompts, which can cause lots of
3027 autoquote/parens in continuation prompts, which can cause lots of
3024 problems. Closes roundup issue 20.
3028 problems. Closes roundup issue 20.
3025
3029
3026 2004-11-17 Fernando Perez <fperez@colorado.edu>
3030 2004-11-17 Fernando Perez <fperez@colorado.edu>
3027
3031
3028 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3032 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
3029 reported as debian bug #280505. I'm not sure my local changelog
3033 reported as debian bug #280505. I'm not sure my local changelog
3030 entry has the proper debian format (Jack?).
3034 entry has the proper debian format (Jack?).
3031
3035
3032 2004-11-08 *** Released version 0.6.4
3036 2004-11-08 *** Released version 0.6.4
3033
3037
3034 2004-11-08 Fernando Perez <fperez@colorado.edu>
3038 2004-11-08 Fernando Perez <fperez@colorado.edu>
3035
3039
3036 * IPython/iplib.py (init_readline): Fix exit message for Windows
3040 * IPython/iplib.py (init_readline): Fix exit message for Windows
3037 when readline is active. Thanks to a report by Eric Jones
3041 when readline is active. Thanks to a report by Eric Jones
3038 <eric-AT-enthought.com>.
3042 <eric-AT-enthought.com>.
3039
3043
3040 2004-11-07 Fernando Perez <fperez@colorado.edu>
3044 2004-11-07 Fernando Perez <fperez@colorado.edu>
3041
3045
3042 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3046 * IPython/genutils.py (page): Add a trap for OSError exceptions,
3043 sometimes seen by win2k/cygwin users.
3047 sometimes seen by win2k/cygwin users.
3044
3048
3045 2004-11-06 Fernando Perez <fperez@colorado.edu>
3049 2004-11-06 Fernando Perez <fperez@colorado.edu>
3046
3050
3047 * IPython/iplib.py (interact): Change the handling of %Exit from
3051 * IPython/iplib.py (interact): Change the handling of %Exit from
3048 trying to propagate a SystemExit to an internal ipython flag.
3052 trying to propagate a SystemExit to an internal ipython flag.
3049 This is less elegant than using Python's exception mechanism, but
3053 This is less elegant than using Python's exception mechanism, but
3050 I can't get that to work reliably with threads, so under -pylab
3054 I can't get that to work reliably with threads, so under -pylab
3051 %Exit was hanging IPython. Cross-thread exception handling is
3055 %Exit was hanging IPython. Cross-thread exception handling is
3052 really a bitch. Thaks to a bug report by Stephen Walton
3056 really a bitch. Thaks to a bug report by Stephen Walton
3053 <stephen.walton-AT-csun.edu>.
3057 <stephen.walton-AT-csun.edu>.
3054
3058
3055 2004-11-04 Fernando Perez <fperez@colorado.edu>
3059 2004-11-04 Fernando Perez <fperez@colorado.edu>
3056
3060
3057 * IPython/iplib.py (raw_input_original): store a pointer to the
3061 * IPython/iplib.py (raw_input_original): store a pointer to the
3058 true raw_input to harden against code which can modify it
3062 true raw_input to harden against code which can modify it
3059 (wx.py.PyShell does this and would otherwise crash ipython).
3063 (wx.py.PyShell does this and would otherwise crash ipython).
3060 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3064 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
3061
3065
3062 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3066 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
3063 Ctrl-C problem, which does not mess up the input line.
3067 Ctrl-C problem, which does not mess up the input line.
3064
3068
3065 2004-11-03 Fernando Perez <fperez@colorado.edu>
3069 2004-11-03 Fernando Perez <fperez@colorado.edu>
3066
3070
3067 * IPython/Release.py: Changed licensing to BSD, in all files.
3071 * IPython/Release.py: Changed licensing to BSD, in all files.
3068 (name): lowercase name for tarball/RPM release.
3072 (name): lowercase name for tarball/RPM release.
3069
3073
3070 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3074 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
3071 use throughout ipython.
3075 use throughout ipython.
3072
3076
3073 * IPython/Magic.py (Magic._ofind): Switch to using the new
3077 * IPython/Magic.py (Magic._ofind): Switch to using the new
3074 OInspect.getdoc() function.
3078 OInspect.getdoc() function.
3075
3079
3076 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3080 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
3077 of the line currently being canceled via Ctrl-C. It's extremely
3081 of the line currently being canceled via Ctrl-C. It's extremely
3078 ugly, but I don't know how to do it better (the problem is one of
3082 ugly, but I don't know how to do it better (the problem is one of
3079 handling cross-thread exceptions).
3083 handling cross-thread exceptions).
3080
3084
3081 2004-10-28 Fernando Perez <fperez@colorado.edu>
3085 2004-10-28 Fernando Perez <fperez@colorado.edu>
3082
3086
3083 * IPython/Shell.py (signal_handler): add signal handlers to trap
3087 * IPython/Shell.py (signal_handler): add signal handlers to trap
3084 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3088 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
3085 report by Francesc Alted.
3089 report by Francesc Alted.
3086
3090
3087 2004-10-21 Fernando Perez <fperez@colorado.edu>
3091 2004-10-21 Fernando Perez <fperez@colorado.edu>
3088
3092
3089 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3093 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
3090 to % for pysh syntax extensions.
3094 to % for pysh syntax extensions.
3091
3095
3092 2004-10-09 Fernando Perez <fperez@colorado.edu>
3096 2004-10-09 Fernando Perez <fperez@colorado.edu>
3093
3097
3094 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3098 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
3095 arrays to print a more useful summary, without calling str(arr).
3099 arrays to print a more useful summary, without calling str(arr).
3096 This avoids the problem of extremely lengthy computations which
3100 This avoids the problem of extremely lengthy computations which
3097 occur if arr is large, and appear to the user as a system lockup
3101 occur if arr is large, and appear to the user as a system lockup
3098 with 100% cpu activity. After a suggestion by Kristian Sandberg
3102 with 100% cpu activity. After a suggestion by Kristian Sandberg
3099 <Kristian.Sandberg@colorado.edu>.
3103 <Kristian.Sandberg@colorado.edu>.
3100 (Magic.__init__): fix bug in global magic escapes not being
3104 (Magic.__init__): fix bug in global magic escapes not being
3101 correctly set.
3105 correctly set.
3102
3106
3103 2004-10-08 Fernando Perez <fperez@colorado.edu>
3107 2004-10-08 Fernando Perez <fperez@colorado.edu>
3104
3108
3105 * IPython/Magic.py (__license__): change to absolute imports of
3109 * IPython/Magic.py (__license__): change to absolute imports of
3106 ipython's own internal packages, to start adapting to the absolute
3110 ipython's own internal packages, to start adapting to the absolute
3107 import requirement of PEP-328.
3111 import requirement of PEP-328.
3108
3112
3109 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3113 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
3110 files, and standardize author/license marks through the Release
3114 files, and standardize author/license marks through the Release
3111 module instead of having per/file stuff (except for files with
3115 module instead of having per/file stuff (except for files with
3112 particular licenses, like the MIT/PSF-licensed codes).
3116 particular licenses, like the MIT/PSF-licensed codes).
3113
3117
3114 * IPython/Debugger.py: remove dead code for python 2.1
3118 * IPython/Debugger.py: remove dead code for python 2.1
3115
3119
3116 2004-10-04 Fernando Perez <fperez@colorado.edu>
3120 2004-10-04 Fernando Perez <fperez@colorado.edu>
3117
3121
3118 * IPython/iplib.py (ipmagic): New function for accessing magics
3122 * IPython/iplib.py (ipmagic): New function for accessing magics
3119 via a normal python function call.
3123 via a normal python function call.
3120
3124
3121 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3125 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
3122 from '@' to '%', to accomodate the new @decorator syntax of python
3126 from '@' to '%', to accomodate the new @decorator syntax of python
3123 2.4.
3127 2.4.
3124
3128
3125 2004-09-29 Fernando Perez <fperez@colorado.edu>
3129 2004-09-29 Fernando Perez <fperez@colorado.edu>
3126
3130
3127 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3131 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
3128 matplotlib.use to prevent running scripts which try to switch
3132 matplotlib.use to prevent running scripts which try to switch
3129 interactive backends from within ipython. This will just crash
3133 interactive backends from within ipython. This will just crash
3130 the python interpreter, so we can't allow it (but a detailed error
3134 the python interpreter, so we can't allow it (but a detailed error
3131 is given to the user).
3135 is given to the user).
3132
3136
3133 2004-09-28 Fernando Perez <fperez@colorado.edu>
3137 2004-09-28 Fernando Perez <fperez@colorado.edu>
3134
3138
3135 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3139 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
3136 matplotlib-related fixes so that using @run with non-matplotlib
3140 matplotlib-related fixes so that using @run with non-matplotlib
3137 scripts doesn't pop up spurious plot windows. This requires
3141 scripts doesn't pop up spurious plot windows. This requires
3138 matplotlib >= 0.63, where I had to make some changes as well.
3142 matplotlib >= 0.63, where I had to make some changes as well.
3139
3143
3140 * IPython/ipmaker.py (make_IPython): update version requirement to
3144 * IPython/ipmaker.py (make_IPython): update version requirement to
3141 python 2.2.
3145 python 2.2.
3142
3146
3143 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3147 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
3144 banner arg for embedded customization.
3148 banner arg for embedded customization.
3145
3149
3146 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3150 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
3147 explicit uses of __IP as the IPython's instance name. Now things
3151 explicit uses of __IP as the IPython's instance name. Now things
3148 are properly handled via the shell.name value. The actual code
3152 are properly handled via the shell.name value. The actual code
3149 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3153 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
3150 is much better than before. I'll clean things completely when the
3154 is much better than before. I'll clean things completely when the
3151 magic stuff gets a real overhaul.
3155 magic stuff gets a real overhaul.
3152
3156
3153 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3157 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
3154 minor changes to debian dir.
3158 minor changes to debian dir.
3155
3159
3156 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3160 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
3157 pointer to the shell itself in the interactive namespace even when
3161 pointer to the shell itself in the interactive namespace even when
3158 a user-supplied dict is provided. This is needed for embedding
3162 a user-supplied dict is provided. This is needed for embedding
3159 purposes (found by tests with Michel Sanner).
3163 purposes (found by tests with Michel Sanner).
3160
3164
3161 2004-09-27 Fernando Perez <fperez@colorado.edu>
3165 2004-09-27 Fernando Perez <fperez@colorado.edu>
3162
3166
3163 * IPython/UserConfig/ipythonrc: remove []{} from
3167 * IPython/UserConfig/ipythonrc: remove []{} from
3164 readline_remove_delims, so that things like [modname.<TAB> do
3168 readline_remove_delims, so that things like [modname.<TAB> do
3165 proper completion. This disables [].TAB, but that's a less common
3169 proper completion. This disables [].TAB, but that's a less common
3166 case than module names in list comprehensions, for example.
3170 case than module names in list comprehensions, for example.
3167 Thanks to a report by Andrea Riciputi.
3171 Thanks to a report by Andrea Riciputi.
3168
3172
3169 2004-09-09 Fernando Perez <fperez@colorado.edu>
3173 2004-09-09 Fernando Perez <fperez@colorado.edu>
3170
3174
3171 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3175 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
3172 blocking problems in win32 and osx. Fix by John.
3176 blocking problems in win32 and osx. Fix by John.
3173
3177
3174 2004-09-08 Fernando Perez <fperez@colorado.edu>
3178 2004-09-08 Fernando Perez <fperez@colorado.edu>
3175
3179
3176 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3180 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
3177 for Win32 and OSX. Fix by John Hunter.
3181 for Win32 and OSX. Fix by John Hunter.
3178
3182
3179 2004-08-30 *** Released version 0.6.3
3183 2004-08-30 *** Released version 0.6.3
3180
3184
3181 2004-08-30 Fernando Perez <fperez@colorado.edu>
3185 2004-08-30 Fernando Perez <fperez@colorado.edu>
3182
3186
3183 * setup.py (isfile): Add manpages to list of dependent files to be
3187 * setup.py (isfile): Add manpages to list of dependent files to be
3184 updated.
3188 updated.
3185
3189
3186 2004-08-27 Fernando Perez <fperez@colorado.edu>
3190 2004-08-27 Fernando Perez <fperez@colorado.edu>
3187
3191
3188 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3192 * IPython/Shell.py (start): I've disabled -wthread and -gthread
3189 for now. They don't really work with standalone WX/GTK code
3193 for now. They don't really work with standalone WX/GTK code
3190 (though matplotlib IS working fine with both of those backends).
3194 (though matplotlib IS working fine with both of those backends).
3191 This will neeed much more testing. I disabled most things with
3195 This will neeed much more testing. I disabled most things with
3192 comments, so turning it back on later should be pretty easy.
3196 comments, so turning it back on later should be pretty easy.
3193
3197
3194 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3198 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
3195 autocalling of expressions like r'foo', by modifying the line
3199 autocalling of expressions like r'foo', by modifying the line
3196 split regexp. Closes
3200 split regexp. Closes
3197 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3201 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
3198 Riley <ipythonbugs-AT-sabi.net>.
3202 Riley <ipythonbugs-AT-sabi.net>.
3199 (InteractiveShell.mainloop): honor --nobanner with banner
3203 (InteractiveShell.mainloop): honor --nobanner with banner
3200 extensions.
3204 extensions.
3201
3205
3202 * IPython/Shell.py: Significant refactoring of all classes, so
3206 * IPython/Shell.py: Significant refactoring of all classes, so
3203 that we can really support ALL matplotlib backends and threading
3207 that we can really support ALL matplotlib backends and threading
3204 models (John spotted a bug with Tk which required this). Now we
3208 models (John spotted a bug with Tk which required this). Now we
3205 should support single-threaded, WX-threads and GTK-threads, both
3209 should support single-threaded, WX-threads and GTK-threads, both
3206 for generic code and for matplotlib.
3210 for generic code and for matplotlib.
3207
3211
3208 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3212 * IPython/ipmaker.py (__call__): Changed -mpthread option to
3209 -pylab, to simplify things for users. Will also remove the pylab
3213 -pylab, to simplify things for users. Will also remove the pylab
3210 profile, since now all of matplotlib configuration is directly
3214 profile, since now all of matplotlib configuration is directly
3211 handled here. This also reduces startup time.
3215 handled here. This also reduces startup time.
3212
3216
3213 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3217 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
3214 shell wasn't being correctly called. Also in IPShellWX.
3218 shell wasn't being correctly called. Also in IPShellWX.
3215
3219
3216 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3220 * IPython/iplib.py (InteractiveShell.__init__): Added option to
3217 fine-tune banner.
3221 fine-tune banner.
3218
3222
3219 * IPython/numutils.py (spike): Deprecate these spike functions,
3223 * IPython/numutils.py (spike): Deprecate these spike functions,
3220 delete (long deprecated) gnuplot_exec handler.
3224 delete (long deprecated) gnuplot_exec handler.
3221
3225
3222 2004-08-26 Fernando Perez <fperez@colorado.edu>
3226 2004-08-26 Fernando Perez <fperez@colorado.edu>
3223
3227
3224 * ipython.1: Update for threading options, plus some others which
3228 * ipython.1: Update for threading options, plus some others which
3225 were missing.
3229 were missing.
3226
3230
3227 * IPython/ipmaker.py (__call__): Added -wthread option for
3231 * IPython/ipmaker.py (__call__): Added -wthread option for
3228 wxpython thread handling. Make sure threading options are only
3232 wxpython thread handling. Make sure threading options are only
3229 valid at the command line.
3233 valid at the command line.
3230
3234
3231 * scripts/ipython: moved shell selection into a factory function
3235 * scripts/ipython: moved shell selection into a factory function
3232 in Shell.py, to keep the starter script to a minimum.
3236 in Shell.py, to keep the starter script to a minimum.
3233
3237
3234 2004-08-25 Fernando Perez <fperez@colorado.edu>
3238 2004-08-25 Fernando Perez <fperez@colorado.edu>
3235
3239
3236 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3240 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
3237 John. Along with some recent changes he made to matplotlib, the
3241 John. Along with some recent changes he made to matplotlib, the
3238 next versions of both systems should work very well together.
3242 next versions of both systems should work very well together.
3239
3243
3240 2004-08-24 Fernando Perez <fperez@colorado.edu>
3244 2004-08-24 Fernando Perez <fperez@colorado.edu>
3241
3245
3242 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3246 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
3243 tried to switch the profiling to using hotshot, but I'm getting
3247 tried to switch the profiling to using hotshot, but I'm getting
3244 strange errors from prof.runctx() there. I may be misreading the
3248 strange errors from prof.runctx() there. I may be misreading the
3245 docs, but it looks weird. For now the profiling code will
3249 docs, but it looks weird. For now the profiling code will
3246 continue to use the standard profiler.
3250 continue to use the standard profiler.
3247
3251
3248 2004-08-23 Fernando Perez <fperez@colorado.edu>
3252 2004-08-23 Fernando Perez <fperez@colorado.edu>
3249
3253
3250 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3254 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
3251 threaded shell, by John Hunter. It's not quite ready yet, but
3255 threaded shell, by John Hunter. It's not quite ready yet, but
3252 close.
3256 close.
3253
3257
3254 2004-08-22 Fernando Perez <fperez@colorado.edu>
3258 2004-08-22 Fernando Perez <fperez@colorado.edu>
3255
3259
3256 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3260 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
3257 in Magic and ultraTB.
3261 in Magic and ultraTB.
3258
3262
3259 * ipython.1: document threading options in manpage.
3263 * ipython.1: document threading options in manpage.
3260
3264
3261 * scripts/ipython: Changed name of -thread option to -gthread,
3265 * scripts/ipython: Changed name of -thread option to -gthread,
3262 since this is GTK specific. I want to leave the door open for a
3266 since this is GTK specific. I want to leave the door open for a
3263 -wthread option for WX, which will most likely be necessary. This
3267 -wthread option for WX, which will most likely be necessary. This
3264 change affects usage and ipmaker as well.
3268 change affects usage and ipmaker as well.
3265
3269
3266 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3270 * IPython/Shell.py (matplotlib_shell): Add a factory function to
3267 handle the matplotlib shell issues. Code by John Hunter
3271 handle the matplotlib shell issues. Code by John Hunter
3268 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3272 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3269 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3273 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
3270 broken (and disabled for end users) for now, but it puts the
3274 broken (and disabled for end users) for now, but it puts the
3271 infrastructure in place.
3275 infrastructure in place.
3272
3276
3273 2004-08-21 Fernando Perez <fperez@colorado.edu>
3277 2004-08-21 Fernando Perez <fperez@colorado.edu>
3274
3278
3275 * ipythonrc-pylab: Add matplotlib support.
3279 * ipythonrc-pylab: Add matplotlib support.
3276
3280
3277 * matplotlib_config.py: new files for matplotlib support, part of
3281 * matplotlib_config.py: new files for matplotlib support, part of
3278 the pylab profile.
3282 the pylab profile.
3279
3283
3280 * IPython/usage.py (__doc__): documented the threading options.
3284 * IPython/usage.py (__doc__): documented the threading options.
3281
3285
3282 2004-08-20 Fernando Perez <fperez@colorado.edu>
3286 2004-08-20 Fernando Perez <fperez@colorado.edu>
3283
3287
3284 * ipython: Modified the main calling routine to handle the -thread
3288 * ipython: Modified the main calling routine to handle the -thread
3285 and -mpthread options. This needs to be done as a top-level hack,
3289 and -mpthread options. This needs to be done as a top-level hack,
3286 because it determines which class to instantiate for IPython
3290 because it determines which class to instantiate for IPython
3287 itself.
3291 itself.
3288
3292
3289 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3293 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
3290 classes to support multithreaded GTK operation without blocking,
3294 classes to support multithreaded GTK operation without blocking,
3291 and matplotlib with all backends. This is a lot of still very
3295 and matplotlib with all backends. This is a lot of still very
3292 experimental code, and threads are tricky. So it may still have a
3296 experimental code, and threads are tricky. So it may still have a
3293 few rough edges... This code owes a lot to
3297 few rough edges... This code owes a lot to
3294 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3298 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
3295 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3299 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
3296 to John Hunter for all the matplotlib work.
3300 to John Hunter for all the matplotlib work.
3297
3301
3298 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3302 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
3299 options for gtk thread and matplotlib support.
3303 options for gtk thread and matplotlib support.
3300
3304
3301 2004-08-16 Fernando Perez <fperez@colorado.edu>
3305 2004-08-16 Fernando Perez <fperez@colorado.edu>
3302
3306
3303 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3307 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
3304 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3308 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
3305 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3309 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
3306
3310
3307 2004-08-11 Fernando Perez <fperez@colorado.edu>
3311 2004-08-11 Fernando Perez <fperez@colorado.edu>
3308
3312
3309 * setup.py (isfile): Fix build so documentation gets updated for
3313 * setup.py (isfile): Fix build so documentation gets updated for
3310 rpms (it was only done for .tgz builds).
3314 rpms (it was only done for .tgz builds).
3311
3315
3312 2004-08-10 Fernando Perez <fperez@colorado.edu>
3316 2004-08-10 Fernando Perez <fperez@colorado.edu>
3313
3317
3314 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3318 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
3315
3319
3316 * iplib.py : Silence syntax error exceptions in tab-completion.
3320 * iplib.py : Silence syntax error exceptions in tab-completion.
3317
3321
3318 2004-08-05 Fernando Perez <fperez@colorado.edu>
3322 2004-08-05 Fernando Perez <fperez@colorado.edu>
3319
3323
3320 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3324 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
3321 'color off' mark for continuation prompts. This was causing long
3325 'color off' mark for continuation prompts. This was causing long
3322 continuation lines to mis-wrap.
3326 continuation lines to mis-wrap.
3323
3327
3324 2004-08-01 Fernando Perez <fperez@colorado.edu>
3328 2004-08-01 Fernando Perez <fperez@colorado.edu>
3325
3329
3326 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3330 * IPython/ipmaker.py (make_IPython): Allow the shell class used
3327 for building ipython to be a parameter. All this is necessary
3331 for building ipython to be a parameter. All this is necessary
3328 right now to have a multithreaded version, but this insane
3332 right now to have a multithreaded version, but this insane
3329 non-design will be cleaned up soon. For now, it's a hack that
3333 non-design will be cleaned up soon. For now, it's a hack that
3330 works.
3334 works.
3331
3335
3332 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3336 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
3333 args in various places. No bugs so far, but it's a dangerous
3337 args in various places. No bugs so far, but it's a dangerous
3334 practice.
3338 practice.
3335
3339
3336 2004-07-31 Fernando Perez <fperez@colorado.edu>
3340 2004-07-31 Fernando Perez <fperez@colorado.edu>
3337
3341
3338 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3342 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
3339 fix completion of files with dots in their names under most
3343 fix completion of files with dots in their names under most
3340 profiles (pysh was OK because the completion order is different).
3344 profiles (pysh was OK because the completion order is different).
3341
3345
3342 2004-07-27 Fernando Perez <fperez@colorado.edu>
3346 2004-07-27 Fernando Perez <fperez@colorado.edu>
3343
3347
3344 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3348 * IPython/iplib.py (InteractiveShell.__init__): build dict of
3345 keywords manually, b/c the one in keyword.py was removed in python
3349 keywords manually, b/c the one in keyword.py was removed in python
3346 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3350 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
3347 This is NOT a bug under python 2.3 and earlier.
3351 This is NOT a bug under python 2.3 and earlier.
3348
3352
3349 2004-07-26 Fernando Perez <fperez@colorado.edu>
3353 2004-07-26 Fernando Perez <fperez@colorado.edu>
3350
3354
3351 * IPython/ultraTB.py (VerboseTB.text): Add another
3355 * IPython/ultraTB.py (VerboseTB.text): Add another
3352 linecache.checkcache() call to try to prevent inspect.py from
3356 linecache.checkcache() call to try to prevent inspect.py from
3353 crashing under python 2.3. I think this fixes
3357 crashing under python 2.3. I think this fixes
3354 http://www.scipy.net/roundup/ipython/issue17.
3358 http://www.scipy.net/roundup/ipython/issue17.
3355
3359
3356 2004-07-26 *** Released version 0.6.2
3360 2004-07-26 *** Released version 0.6.2
3357
3361
3358 2004-07-26 Fernando Perez <fperez@colorado.edu>
3362 2004-07-26 Fernando Perez <fperez@colorado.edu>
3359
3363
3360 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3364 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
3361 fail for any number.
3365 fail for any number.
3362 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3366 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
3363 empty bookmarks.
3367 empty bookmarks.
3364
3368
3365 2004-07-26 *** Released version 0.6.1
3369 2004-07-26 *** Released version 0.6.1
3366
3370
3367 2004-07-26 Fernando Perez <fperez@colorado.edu>
3371 2004-07-26 Fernando Perez <fperez@colorado.edu>
3368
3372
3369 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3373 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
3370
3374
3371 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3375 * IPython/iplib.py (protect_filename): Applied Ville's patch for
3372 escaping '()[]{}' in filenames.
3376 escaping '()[]{}' in filenames.
3373
3377
3374 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3378 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
3375 Python 2.2 users who lack a proper shlex.split.
3379 Python 2.2 users who lack a proper shlex.split.
3376
3380
3377 2004-07-19 Fernando Perez <fperez@colorado.edu>
3381 2004-07-19 Fernando Perez <fperez@colorado.edu>
3378
3382
3379 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3383 * IPython/iplib.py (InteractiveShell.init_readline): Add support
3380 for reading readline's init file. I follow the normal chain:
3384 for reading readline's init file. I follow the normal chain:
3381 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3385 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
3382 report by Mike Heeter. This closes
3386 report by Mike Heeter. This closes
3383 http://www.scipy.net/roundup/ipython/issue16.
3387 http://www.scipy.net/roundup/ipython/issue16.
3384
3388
3385 2004-07-18 Fernando Perez <fperez@colorado.edu>
3389 2004-07-18 Fernando Perez <fperez@colorado.edu>
3386
3390
3387 * IPython/iplib.py (__init__): Add better handling of '\' under
3391 * IPython/iplib.py (__init__): Add better handling of '\' under
3388 Win32 for filenames. After a patch by Ville.
3392 Win32 for filenames. After a patch by Ville.
3389
3393
3390 2004-07-17 Fernando Perez <fperez@colorado.edu>
3394 2004-07-17 Fernando Perez <fperez@colorado.edu>
3391
3395
3392 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3396 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
3393 autocalling would be triggered for 'foo is bar' if foo is
3397 autocalling would be triggered for 'foo is bar' if foo is
3394 callable. I also cleaned up the autocall detection code to use a
3398 callable. I also cleaned up the autocall detection code to use a
3395 regexp, which is faster. Bug reported by Alexander Schmolck.
3399 regexp, which is faster. Bug reported by Alexander Schmolck.
3396
3400
3397 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3401 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
3398 '?' in them would confuse the help system. Reported by Alex
3402 '?' in them would confuse the help system. Reported by Alex
3399 Schmolck.
3403 Schmolck.
3400
3404
3401 2004-07-16 Fernando Perez <fperez@colorado.edu>
3405 2004-07-16 Fernando Perez <fperez@colorado.edu>
3402
3406
3403 * IPython/GnuplotInteractive.py (__all__): added plot2.
3407 * IPython/GnuplotInteractive.py (__all__): added plot2.
3404
3408
3405 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3409 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
3406 plotting dictionaries, lists or tuples of 1d arrays.
3410 plotting dictionaries, lists or tuples of 1d arrays.
3407
3411
3408 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3412 * IPython/Magic.py (Magic.magic_hist): small clenaups and
3409 optimizations.
3413 optimizations.
3410
3414
3411 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3415 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
3412 the information which was there from Janko's original IPP code:
3416 the information which was there from Janko's original IPP code:
3413
3417
3414 03.05.99 20:53 porto.ifm.uni-kiel.de
3418 03.05.99 20:53 porto.ifm.uni-kiel.de
3415 --Started changelog.
3419 --Started changelog.
3416 --make clear do what it say it does
3420 --make clear do what it say it does
3417 --added pretty output of lines from inputcache
3421 --added pretty output of lines from inputcache
3418 --Made Logger a mixin class, simplifies handling of switches
3422 --Made Logger a mixin class, simplifies handling of switches
3419 --Added own completer class. .string<TAB> expands to last history
3423 --Added own completer class. .string<TAB> expands to last history
3420 line which starts with string. The new expansion is also present
3424 line which starts with string. The new expansion is also present
3421 with Ctrl-r from the readline library. But this shows, who this
3425 with Ctrl-r from the readline library. But this shows, who this
3422 can be done for other cases.
3426 can be done for other cases.
3423 --Added convention that all shell functions should accept a
3427 --Added convention that all shell functions should accept a
3424 parameter_string This opens the door for different behaviour for
3428 parameter_string This opens the door for different behaviour for
3425 each function. @cd is a good example of this.
3429 each function. @cd is a good example of this.
3426
3430
3427 04.05.99 12:12 porto.ifm.uni-kiel.de
3431 04.05.99 12:12 porto.ifm.uni-kiel.de
3428 --added logfile rotation
3432 --added logfile rotation
3429 --added new mainloop method which freezes first the namespace
3433 --added new mainloop method which freezes first the namespace
3430
3434
3431 07.05.99 21:24 porto.ifm.uni-kiel.de
3435 07.05.99 21:24 porto.ifm.uni-kiel.de
3432 --added the docreader classes. Now there is a help system.
3436 --added the docreader classes. Now there is a help system.
3433 -This is only a first try. Currently it's not easy to put new
3437 -This is only a first try. Currently it's not easy to put new
3434 stuff in the indices. But this is the way to go. Info would be
3438 stuff in the indices. But this is the way to go. Info would be
3435 better, but HTML is every where and not everybody has an info
3439 better, but HTML is every where and not everybody has an info
3436 system installed and it's not so easy to change html-docs to info.
3440 system installed and it's not so easy to change html-docs to info.
3437 --added global logfile option
3441 --added global logfile option
3438 --there is now a hook for object inspection method pinfo needs to
3442 --there is now a hook for object inspection method pinfo needs to
3439 be provided for this. Can be reached by two '??'.
3443 be provided for this. Can be reached by two '??'.
3440
3444
3441 08.05.99 20:51 porto.ifm.uni-kiel.de
3445 08.05.99 20:51 porto.ifm.uni-kiel.de
3442 --added a README
3446 --added a README
3443 --bug in rc file. Something has changed so functions in the rc
3447 --bug in rc file. Something has changed so functions in the rc
3444 file need to reference the shell and not self. Not clear if it's a
3448 file need to reference the shell and not self. Not clear if it's a
3445 bug or feature.
3449 bug or feature.
3446 --changed rc file for new behavior
3450 --changed rc file for new behavior
3447
3451
3448 2004-07-15 Fernando Perez <fperez@colorado.edu>
3452 2004-07-15 Fernando Perez <fperez@colorado.edu>
3449
3453
3450 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3454 * IPython/Logger.py (Logger.log): fixed recent bug where the input
3451 cache was falling out of sync in bizarre manners when multi-line
3455 cache was falling out of sync in bizarre manners when multi-line
3452 input was present. Minor optimizations and cleanup.
3456 input was present. Minor optimizations and cleanup.
3453
3457
3454 (Logger): Remove old Changelog info for cleanup. This is the
3458 (Logger): Remove old Changelog info for cleanup. This is the
3455 information which was there from Janko's original code:
3459 information which was there from Janko's original code:
3456
3460
3457 Changes to Logger: - made the default log filename a parameter
3461 Changes to Logger: - made the default log filename a parameter
3458
3462
3459 - put a check for lines beginning with !@? in log(). Needed
3463 - put a check for lines beginning with !@? in log(). Needed
3460 (even if the handlers properly log their lines) for mid-session
3464 (even if the handlers properly log their lines) for mid-session
3461 logging activation to work properly. Without this, lines logged
3465 logging activation to work properly. Without this, lines logged
3462 in mid session, which get read from the cache, would end up
3466 in mid session, which get read from the cache, would end up
3463 'bare' (with !@? in the open) in the log. Now they are caught
3467 'bare' (with !@? in the open) in the log. Now they are caught
3464 and prepended with a #.
3468 and prepended with a #.
3465
3469
3466 * IPython/iplib.py (InteractiveShell.init_readline): added check
3470 * IPython/iplib.py (InteractiveShell.init_readline): added check
3467 in case MagicCompleter fails to be defined, so we don't crash.
3471 in case MagicCompleter fails to be defined, so we don't crash.
3468
3472
3469 2004-07-13 Fernando Perez <fperez@colorado.edu>
3473 2004-07-13 Fernando Perez <fperez@colorado.edu>
3470
3474
3471 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3475 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
3472 of EPS if the requested filename ends in '.eps'.
3476 of EPS if the requested filename ends in '.eps'.
3473
3477
3474 2004-07-04 Fernando Perez <fperez@colorado.edu>
3478 2004-07-04 Fernando Perez <fperez@colorado.edu>
3475
3479
3476 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3480 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
3477 escaping of quotes when calling the shell.
3481 escaping of quotes when calling the shell.
3478
3482
3479 2004-07-02 Fernando Perez <fperez@colorado.edu>
3483 2004-07-02 Fernando Perez <fperez@colorado.edu>
3480
3484
3481 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3485 * IPython/Prompts.py (CachedOutput.update): Fix problem with
3482 gettext not working because we were clobbering '_'. Fixes
3486 gettext not working because we were clobbering '_'. Fixes
3483 http://www.scipy.net/roundup/ipython/issue6.
3487 http://www.scipy.net/roundup/ipython/issue6.
3484
3488
3485 2004-07-01 Fernando Perez <fperez@colorado.edu>
3489 2004-07-01 Fernando Perez <fperez@colorado.edu>
3486
3490
3487 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3491 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
3488 into @cd. Patch by Ville.
3492 into @cd. Patch by Ville.
3489
3493
3490 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3494 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3491 new function to store things after ipmaker runs. Patch by Ville.
3495 new function to store things after ipmaker runs. Patch by Ville.
3492 Eventually this will go away once ipmaker is removed and the class
3496 Eventually this will go away once ipmaker is removed and the class
3493 gets cleaned up, but for now it's ok. Key functionality here is
3497 gets cleaned up, but for now it's ok. Key functionality here is
3494 the addition of the persistent storage mechanism, a dict for
3498 the addition of the persistent storage mechanism, a dict for
3495 keeping data across sessions (for now just bookmarks, but more can
3499 keeping data across sessions (for now just bookmarks, but more can
3496 be implemented later).
3500 be implemented later).
3497
3501
3498 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3502 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
3499 persistent across sections. Patch by Ville, I modified it
3503 persistent across sections. Patch by Ville, I modified it
3500 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3504 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
3501 added a '-l' option to list all bookmarks.
3505 added a '-l' option to list all bookmarks.
3502
3506
3503 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3507 * IPython/iplib.py (InteractiveShell.atexit_operations): new
3504 center for cleanup. Registered with atexit.register(). I moved
3508 center for cleanup. Registered with atexit.register(). I moved
3505 here the old exit_cleanup(). After a patch by Ville.
3509 here the old exit_cleanup(). After a patch by Ville.
3506
3510
3507 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3511 * IPython/Magic.py (get_py_filename): added '~' to the accepted
3508 characters in the hacked shlex_split for python 2.2.
3512 characters in the hacked shlex_split for python 2.2.
3509
3513
3510 * IPython/iplib.py (file_matches): more fixes to filenames with
3514 * IPython/iplib.py (file_matches): more fixes to filenames with
3511 whitespace in them. It's not perfect, but limitations in python's
3515 whitespace in them. It's not perfect, but limitations in python's
3512 readline make it impossible to go further.
3516 readline make it impossible to go further.
3513
3517
3514 2004-06-29 Fernando Perez <fperez@colorado.edu>
3518 2004-06-29 Fernando Perez <fperez@colorado.edu>
3515
3519
3516 * IPython/iplib.py (file_matches): escape whitespace correctly in
3520 * IPython/iplib.py (file_matches): escape whitespace correctly in
3517 filename completions. Bug reported by Ville.
3521 filename completions. Bug reported by Ville.
3518
3522
3519 2004-06-28 Fernando Perez <fperez@colorado.edu>
3523 2004-06-28 Fernando Perez <fperez@colorado.edu>
3520
3524
3521 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3525 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
3522 the history file will be called 'history-PROFNAME' (or just
3526 the history file will be called 'history-PROFNAME' (or just
3523 'history' if no profile is loaded). I was getting annoyed at
3527 'history' if no profile is loaded). I was getting annoyed at
3524 getting my Numerical work history clobbered by pysh sessions.
3528 getting my Numerical work history clobbered by pysh sessions.
3525
3529
3526 * IPython/iplib.py (InteractiveShell.__init__): Internal
3530 * IPython/iplib.py (InteractiveShell.__init__): Internal
3527 getoutputerror() function so that we can honor the system_verbose
3531 getoutputerror() function so that we can honor the system_verbose
3528 flag for _all_ system calls. I also added escaping of #
3532 flag for _all_ system calls. I also added escaping of #
3529 characters here to avoid confusing Itpl.
3533 characters here to avoid confusing Itpl.
3530
3534
3531 * IPython/Magic.py (shlex_split): removed call to shell in
3535 * IPython/Magic.py (shlex_split): removed call to shell in
3532 parse_options and replaced it with shlex.split(). The annoying
3536 parse_options and replaced it with shlex.split(). The annoying
3533 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3537 part was that in Python 2.2, shlex.split() doesn't exist, so I had
3534 to backport it from 2.3, with several frail hacks (the shlex
3538 to backport it from 2.3, with several frail hacks (the shlex
3535 module is rather limited in 2.2). Thanks to a suggestion by Ville
3539 module is rather limited in 2.2). Thanks to a suggestion by Ville
3536 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3540 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
3537 problem.
3541 problem.
3538
3542
3539 (Magic.magic_system_verbose): new toggle to print the actual
3543 (Magic.magic_system_verbose): new toggle to print the actual
3540 system calls made by ipython. Mainly for debugging purposes.
3544 system calls made by ipython. Mainly for debugging purposes.
3541
3545
3542 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3546 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
3543 doesn't support persistence. Reported (and fix suggested) by
3547 doesn't support persistence. Reported (and fix suggested) by
3544 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3548 Travis Caldwell <travis_caldwell2000@yahoo.com>.
3545
3549
3546 2004-06-26 Fernando Perez <fperez@colorado.edu>
3550 2004-06-26 Fernando Perez <fperez@colorado.edu>
3547
3551
3548 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3552 * IPython/Logger.py (Logger.log): fix to handle correctly empty
3549 continue prompts.
3553 continue prompts.
3550
3554
3551 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3555 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
3552 function (basically a big docstring) and a few more things here to
3556 function (basically a big docstring) and a few more things here to
3553 speedup startup. pysh.py is now very lightweight. We want because
3557 speedup startup. pysh.py is now very lightweight. We want because
3554 it gets execfile'd, while InterpreterExec gets imported, so
3558 it gets execfile'd, while InterpreterExec gets imported, so
3555 byte-compilation saves time.
3559 byte-compilation saves time.
3556
3560
3557 2004-06-25 Fernando Perez <fperez@colorado.edu>
3561 2004-06-25 Fernando Perez <fperez@colorado.edu>
3558
3562
3559 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3563 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
3560 -NUM', which was recently broken.
3564 -NUM', which was recently broken.
3561
3565
3562 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3566 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
3563 in multi-line input (but not !!, which doesn't make sense there).
3567 in multi-line input (but not !!, which doesn't make sense there).
3564
3568
3565 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3569 * IPython/UserConfig/ipythonrc: made autoindent on by default.
3566 It's just too useful, and people can turn it off in the less
3570 It's just too useful, and people can turn it off in the less
3567 common cases where it's a problem.
3571 common cases where it's a problem.
3568
3572
3569 2004-06-24 Fernando Perez <fperez@colorado.edu>
3573 2004-06-24 Fernando Perez <fperez@colorado.edu>
3570
3574
3571 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3575 * IPython/iplib.py (InteractiveShell._prefilter): big change -
3572 special syntaxes (like alias calling) is now allied in multi-line
3576 special syntaxes (like alias calling) is now allied in multi-line
3573 input. This is still _very_ experimental, but it's necessary for
3577 input. This is still _very_ experimental, but it's necessary for
3574 efficient shell usage combining python looping syntax with system
3578 efficient shell usage combining python looping syntax with system
3575 calls. For now it's restricted to aliases, I don't think it
3579 calls. For now it's restricted to aliases, I don't think it
3576 really even makes sense to have this for magics.
3580 really even makes sense to have this for magics.
3577
3581
3578 2004-06-23 Fernando Perez <fperez@colorado.edu>
3582 2004-06-23 Fernando Perez <fperez@colorado.edu>
3579
3583
3580 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3584 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
3581 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3585 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
3582
3586
3583 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3587 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
3584 extensions under Windows (after code sent by Gary Bishop). The
3588 extensions under Windows (after code sent by Gary Bishop). The
3585 extensions considered 'executable' are stored in IPython's rc
3589 extensions considered 'executable' are stored in IPython's rc
3586 structure as win_exec_ext.
3590 structure as win_exec_ext.
3587
3591
3588 * IPython/genutils.py (shell): new function, like system() but
3592 * IPython/genutils.py (shell): new function, like system() but
3589 without return value. Very useful for interactive shell work.
3593 without return value. Very useful for interactive shell work.
3590
3594
3591 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3595 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
3592 delete aliases.
3596 delete aliases.
3593
3597
3594 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3598 * IPython/iplib.py (InteractiveShell.alias_table_update): make
3595 sure that the alias table doesn't contain python keywords.
3599 sure that the alias table doesn't contain python keywords.
3596
3600
3597 2004-06-21 Fernando Perez <fperez@colorado.edu>
3601 2004-06-21 Fernando Perez <fperez@colorado.edu>
3598
3602
3599 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3603 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
3600 non-existent items are found in $PATH. Reported by Thorsten.
3604 non-existent items are found in $PATH. Reported by Thorsten.
3601
3605
3602 2004-06-20 Fernando Perez <fperez@colorado.edu>
3606 2004-06-20 Fernando Perez <fperez@colorado.edu>
3603
3607
3604 * IPython/iplib.py (complete): modified the completer so that the
3608 * IPython/iplib.py (complete): modified the completer so that the
3605 order of priorities can be easily changed at runtime.
3609 order of priorities can be easily changed at runtime.
3606
3610
3607 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3611 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
3608 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3612 Modified to auto-execute all lines beginning with '~', '/' or '.'.
3609
3613
3610 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3614 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
3611 expand Python variables prepended with $ in all system calls. The
3615 expand Python variables prepended with $ in all system calls. The
3612 same was done to InteractiveShell.handle_shell_escape. Now all
3616 same was done to InteractiveShell.handle_shell_escape. Now all
3613 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3617 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
3614 expansion of python variables and expressions according to the
3618 expansion of python variables and expressions according to the
3615 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3619 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
3616
3620
3617 Though PEP-215 has been rejected, a similar (but simpler) one
3621 Though PEP-215 has been rejected, a similar (but simpler) one
3618 seems like it will go into Python 2.4, PEP-292 -
3622 seems like it will go into Python 2.4, PEP-292 -
3619 http://www.python.org/peps/pep-0292.html.
3623 http://www.python.org/peps/pep-0292.html.
3620
3624
3621 I'll keep the full syntax of PEP-215, since IPython has since the
3625 I'll keep the full syntax of PEP-215, since IPython has since the
3622 start used Ka-Ping Yee's reference implementation discussed there
3626 start used Ka-Ping Yee's reference implementation discussed there
3623 (Itpl), and I actually like the powerful semantics it offers.
3627 (Itpl), and I actually like the powerful semantics it offers.
3624
3628
3625 In order to access normal shell variables, the $ has to be escaped
3629 In order to access normal shell variables, the $ has to be escaped
3626 via an extra $. For example:
3630 via an extra $. For example:
3627
3631
3628 In [7]: PATH='a python variable'
3632 In [7]: PATH='a python variable'
3629
3633
3630 In [8]: !echo $PATH
3634 In [8]: !echo $PATH
3631 a python variable
3635 a python variable
3632
3636
3633 In [9]: !echo $$PATH
3637 In [9]: !echo $$PATH
3634 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3638 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
3635
3639
3636 (Magic.parse_options): escape $ so the shell doesn't evaluate
3640 (Magic.parse_options): escape $ so the shell doesn't evaluate
3637 things prematurely.
3641 things prematurely.
3638
3642
3639 * IPython/iplib.py (InteractiveShell.call_alias): added the
3643 * IPython/iplib.py (InteractiveShell.call_alias): added the
3640 ability for aliases to expand python variables via $.
3644 ability for aliases to expand python variables via $.
3641
3645
3642 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3646 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
3643 system, now there's a @rehash/@rehashx pair of magics. These work
3647 system, now there's a @rehash/@rehashx pair of magics. These work
3644 like the csh rehash command, and can be invoked at any time. They
3648 like the csh rehash command, and can be invoked at any time. They
3645 build a table of aliases to everything in the user's $PATH
3649 build a table of aliases to everything in the user's $PATH
3646 (@rehash uses everything, @rehashx is slower but only adds
3650 (@rehash uses everything, @rehashx is slower but only adds
3647 executable files). With this, the pysh.py-based shell profile can
3651 executable files). With this, the pysh.py-based shell profile can
3648 now simply call rehash upon startup, and full access to all
3652 now simply call rehash upon startup, and full access to all
3649 programs in the user's path is obtained.
3653 programs in the user's path is obtained.
3650
3654
3651 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3655 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
3652 functionality is now fully in place. I removed the old dynamic
3656 functionality is now fully in place. I removed the old dynamic
3653 code generation based approach, in favor of a much lighter one
3657 code generation based approach, in favor of a much lighter one
3654 based on a simple dict. The advantage is that this allows me to
3658 based on a simple dict. The advantage is that this allows me to
3655 now have thousands of aliases with negligible cost (unthinkable
3659 now have thousands of aliases with negligible cost (unthinkable
3656 with the old system).
3660 with the old system).
3657
3661
3658 2004-06-19 Fernando Perez <fperez@colorado.edu>
3662 2004-06-19 Fernando Perez <fperez@colorado.edu>
3659
3663
3660 * IPython/iplib.py (__init__): extended MagicCompleter class to
3664 * IPython/iplib.py (__init__): extended MagicCompleter class to
3661 also complete (last in priority) on user aliases.
3665 also complete (last in priority) on user aliases.
3662
3666
3663 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3667 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
3664 call to eval.
3668 call to eval.
3665 (ItplNS.__init__): Added a new class which functions like Itpl,
3669 (ItplNS.__init__): Added a new class which functions like Itpl,
3666 but allows configuring the namespace for the evaluation to occur
3670 but allows configuring the namespace for the evaluation to occur
3667 in.
3671 in.
3668
3672
3669 2004-06-18 Fernando Perez <fperez@colorado.edu>
3673 2004-06-18 Fernando Perez <fperez@colorado.edu>
3670
3674
3671 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3675 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
3672 better message when 'exit' or 'quit' are typed (a common newbie
3676 better message when 'exit' or 'quit' are typed (a common newbie
3673 confusion).
3677 confusion).
3674
3678
3675 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3679 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
3676 check for Windows users.
3680 check for Windows users.
3677
3681
3678 * IPython/iplib.py (InteractiveShell.user_setup): removed
3682 * IPython/iplib.py (InteractiveShell.user_setup): removed
3679 disabling of colors for Windows. I'll test at runtime and issue a
3683 disabling of colors for Windows. I'll test at runtime and issue a
3680 warning if Gary's readline isn't found, as to nudge users to
3684 warning if Gary's readline isn't found, as to nudge users to
3681 download it.
3685 download it.
3682
3686
3683 2004-06-16 Fernando Perez <fperez@colorado.edu>
3687 2004-06-16 Fernando Perez <fperez@colorado.edu>
3684
3688
3685 * IPython/genutils.py (Stream.__init__): changed to print errors
3689 * IPython/genutils.py (Stream.__init__): changed to print errors
3686 to sys.stderr. I had a circular dependency here. Now it's
3690 to sys.stderr. I had a circular dependency here. Now it's
3687 possible to run ipython as IDLE's shell (consider this pre-alpha,
3691 possible to run ipython as IDLE's shell (consider this pre-alpha,
3688 since true stdout things end up in the starting terminal instead
3692 since true stdout things end up in the starting terminal instead
3689 of IDLE's out).
3693 of IDLE's out).
3690
3694
3691 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3695 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
3692 users who haven't # updated their prompt_in2 definitions. Remove
3696 users who haven't # updated their prompt_in2 definitions. Remove
3693 eventually.
3697 eventually.
3694 (multiple_replace): added credit to original ASPN recipe.
3698 (multiple_replace): added credit to original ASPN recipe.
3695
3699
3696 2004-06-15 Fernando Perez <fperez@colorado.edu>
3700 2004-06-15 Fernando Perez <fperez@colorado.edu>
3697
3701
3698 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3702 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
3699 list of auto-defined aliases.
3703 list of auto-defined aliases.
3700
3704
3701 2004-06-13 Fernando Perez <fperez@colorado.edu>
3705 2004-06-13 Fernando Perez <fperez@colorado.edu>
3702
3706
3703 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3707 * setup.py (scriptfiles): Don't trigger win_post_install unless an
3704 install was really requested (so setup.py can be used for other
3708 install was really requested (so setup.py can be used for other
3705 things under Windows).
3709 things under Windows).
3706
3710
3707 2004-06-10 Fernando Perez <fperez@colorado.edu>
3711 2004-06-10 Fernando Perez <fperez@colorado.edu>
3708
3712
3709 * IPython/Logger.py (Logger.create_log): Manually remove any old
3713 * IPython/Logger.py (Logger.create_log): Manually remove any old
3710 backup, since os.remove may fail under Windows. Fixes bug
3714 backup, since os.remove may fail under Windows. Fixes bug
3711 reported by Thorsten.
3715 reported by Thorsten.
3712
3716
3713 2004-06-09 Fernando Perez <fperez@colorado.edu>
3717 2004-06-09 Fernando Perez <fperez@colorado.edu>
3714
3718
3715 * examples/example-embed.py: fixed all references to %n (replaced
3719 * examples/example-embed.py: fixed all references to %n (replaced
3716 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3720 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
3717 for all examples and the manual as well.
3721 for all examples and the manual as well.
3718
3722
3719 2004-06-08 Fernando Perez <fperez@colorado.edu>
3723 2004-06-08 Fernando Perez <fperez@colorado.edu>
3720
3724
3721 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3725 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
3722 alignment and color management. All 3 prompt subsystems now
3726 alignment and color management. All 3 prompt subsystems now
3723 inherit from BasePrompt.
3727 inherit from BasePrompt.
3724
3728
3725 * tools/release: updates for windows installer build and tag rpms
3729 * tools/release: updates for windows installer build and tag rpms
3726 with python version (since paths are fixed).
3730 with python version (since paths are fixed).
3727
3731
3728 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3732 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
3729 which will become eventually obsolete. Also fixed the default
3733 which will become eventually obsolete. Also fixed the default
3730 prompt_in2 to use \D, so at least new users start with the correct
3734 prompt_in2 to use \D, so at least new users start with the correct
3731 defaults.
3735 defaults.
3732 WARNING: Users with existing ipythonrc files will need to apply
3736 WARNING: Users with existing ipythonrc files will need to apply
3733 this fix manually!
3737 this fix manually!
3734
3738
3735 * setup.py: make windows installer (.exe). This is finally the
3739 * setup.py: make windows installer (.exe). This is finally the
3736 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3740 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
3737 which I hadn't included because it required Python 2.3 (or recent
3741 which I hadn't included because it required Python 2.3 (or recent
3738 distutils).
3742 distutils).
3739
3743
3740 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3744 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
3741 usage of new '\D' escape.
3745 usage of new '\D' escape.
3742
3746
3743 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3747 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
3744 lacks os.getuid())
3748 lacks os.getuid())
3745 (CachedOutput.set_colors): Added the ability to turn coloring
3749 (CachedOutput.set_colors): Added the ability to turn coloring
3746 on/off with @colors even for manually defined prompt colors. It
3750 on/off with @colors even for manually defined prompt colors. It
3747 uses a nasty global, but it works safely and via the generic color
3751 uses a nasty global, but it works safely and via the generic color
3748 handling mechanism.
3752 handling mechanism.
3749 (Prompt2.__init__): Introduced new escape '\D' for continuation
3753 (Prompt2.__init__): Introduced new escape '\D' for continuation
3750 prompts. It represents the counter ('\#') as dots.
3754 prompts. It represents the counter ('\#') as dots.
3751 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3755 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
3752 need to update their ipythonrc files and replace '%n' with '\D' in
3756 need to update their ipythonrc files and replace '%n' with '\D' in
3753 their prompt_in2 settings everywhere. Sorry, but there's
3757 their prompt_in2 settings everywhere. Sorry, but there's
3754 otherwise no clean way to get all prompts to properly align. The
3758 otherwise no clean way to get all prompts to properly align. The
3755 ipythonrc shipped with IPython has been updated.
3759 ipythonrc shipped with IPython has been updated.
3756
3760
3757 2004-06-07 Fernando Perez <fperez@colorado.edu>
3761 2004-06-07 Fernando Perez <fperez@colorado.edu>
3758
3762
3759 * setup.py (isfile): Pass local_icons option to latex2html, so the
3763 * setup.py (isfile): Pass local_icons option to latex2html, so the
3760 resulting HTML file is self-contained. Thanks to
3764 resulting HTML file is self-contained. Thanks to
3761 dryice-AT-liu.com.cn for the tip.
3765 dryice-AT-liu.com.cn for the tip.
3762
3766
3763 * pysh.py: I created a new profile 'shell', which implements a
3767 * pysh.py: I created a new profile 'shell', which implements a
3764 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3768 _rudimentary_ IPython-based shell. This is in NO WAY a realy
3765 system shell, nor will it become one anytime soon. It's mainly
3769 system shell, nor will it become one anytime soon. It's mainly
3766 meant to illustrate the use of the new flexible bash-like prompts.
3770 meant to illustrate the use of the new flexible bash-like prompts.
3767 I guess it could be used by hardy souls for true shell management,
3771 I guess it could be used by hardy souls for true shell management,
3768 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3772 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
3769 profile. This uses the InterpreterExec extension provided by
3773 profile. This uses the InterpreterExec extension provided by
3770 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3774 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
3771
3775
3772 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3776 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
3773 auto-align itself with the length of the previous input prompt
3777 auto-align itself with the length of the previous input prompt
3774 (taking into account the invisible color escapes).
3778 (taking into account the invisible color escapes).
3775 (CachedOutput.__init__): Large restructuring of this class. Now
3779 (CachedOutput.__init__): Large restructuring of this class. Now
3776 all three prompts (primary1, primary2, output) are proper objects,
3780 all three prompts (primary1, primary2, output) are proper objects,
3777 managed by the 'parent' CachedOutput class. The code is still a
3781 managed by the 'parent' CachedOutput class. The code is still a
3778 bit hackish (all prompts share state via a pointer to the cache),
3782 bit hackish (all prompts share state via a pointer to the cache),
3779 but it's overall far cleaner than before.
3783 but it's overall far cleaner than before.
3780
3784
3781 * IPython/genutils.py (getoutputerror): modified to add verbose,
3785 * IPython/genutils.py (getoutputerror): modified to add verbose,
3782 debug and header options. This makes the interface of all getout*
3786 debug and header options. This makes the interface of all getout*
3783 functions uniform.
3787 functions uniform.
3784 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3788 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
3785
3789
3786 * IPython/Magic.py (Magic.default_option): added a function to
3790 * IPython/Magic.py (Magic.default_option): added a function to
3787 allow registering default options for any magic command. This
3791 allow registering default options for any magic command. This
3788 makes it easy to have profiles which customize the magics globally
3792 makes it easy to have profiles which customize the magics globally
3789 for a certain use. The values set through this function are
3793 for a certain use. The values set through this function are
3790 picked up by the parse_options() method, which all magics should
3794 picked up by the parse_options() method, which all magics should
3791 use to parse their options.
3795 use to parse their options.
3792
3796
3793 * IPython/genutils.py (warn): modified the warnings framework to
3797 * IPython/genutils.py (warn): modified the warnings framework to
3794 use the Term I/O class. I'm trying to slowly unify all of
3798 use the Term I/O class. I'm trying to slowly unify all of
3795 IPython's I/O operations to pass through Term.
3799 IPython's I/O operations to pass through Term.
3796
3800
3797 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3801 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
3798 the secondary prompt to correctly match the length of the primary
3802 the secondary prompt to correctly match the length of the primary
3799 one for any prompt. Now multi-line code will properly line up
3803 one for any prompt. Now multi-line code will properly line up
3800 even for path dependent prompts, such as the new ones available
3804 even for path dependent prompts, such as the new ones available
3801 via the prompt_specials.
3805 via the prompt_specials.
3802
3806
3803 2004-06-06 Fernando Perez <fperez@colorado.edu>
3807 2004-06-06 Fernando Perez <fperez@colorado.edu>
3804
3808
3805 * IPython/Prompts.py (prompt_specials): Added the ability to have
3809 * IPython/Prompts.py (prompt_specials): Added the ability to have
3806 bash-like special sequences in the prompts, which get
3810 bash-like special sequences in the prompts, which get
3807 automatically expanded. Things like hostname, current working
3811 automatically expanded. Things like hostname, current working
3808 directory and username are implemented already, but it's easy to
3812 directory and username are implemented already, but it's easy to
3809 add more in the future. Thanks to a patch by W.J. van der Laan
3813 add more in the future. Thanks to a patch by W.J. van der Laan
3810 <gnufnork-AT-hetdigitalegat.nl>
3814 <gnufnork-AT-hetdigitalegat.nl>
3811 (prompt_specials): Added color support for prompt strings, so
3815 (prompt_specials): Added color support for prompt strings, so
3812 users can define arbitrary color setups for their prompts.
3816 users can define arbitrary color setups for their prompts.
3813
3817
3814 2004-06-05 Fernando Perez <fperez@colorado.edu>
3818 2004-06-05 Fernando Perez <fperez@colorado.edu>
3815
3819
3816 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3820 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
3817 code to load Gary Bishop's readline and configure it
3821 code to load Gary Bishop's readline and configure it
3818 automatically. Thanks to Gary for help on this.
3822 automatically. Thanks to Gary for help on this.
3819
3823
3820 2004-06-01 Fernando Perez <fperez@colorado.edu>
3824 2004-06-01 Fernando Perez <fperez@colorado.edu>
3821
3825
3822 * IPython/Logger.py (Logger.create_log): fix bug for logging
3826 * IPython/Logger.py (Logger.create_log): fix bug for logging
3823 with no filename (previous fix was incomplete).
3827 with no filename (previous fix was incomplete).
3824
3828
3825 2004-05-25 Fernando Perez <fperez@colorado.edu>
3829 2004-05-25 Fernando Perez <fperez@colorado.edu>
3826
3830
3827 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3831 * IPython/Magic.py (Magic.parse_options): fix bug where naked
3828 parens would get passed to the shell.
3832 parens would get passed to the shell.
3829
3833
3830 2004-05-20 Fernando Perez <fperez@colorado.edu>
3834 2004-05-20 Fernando Perez <fperez@colorado.edu>
3831
3835
3832 * IPython/Magic.py (Magic.magic_prun): changed default profile
3836 * IPython/Magic.py (Magic.magic_prun): changed default profile
3833 sort order to 'time' (the more common profiling need).
3837 sort order to 'time' (the more common profiling need).
3834
3838
3835 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3839 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
3836 so that source code shown is guaranteed in sync with the file on
3840 so that source code shown is guaranteed in sync with the file on
3837 disk (also changed in psource). Similar fix to the one for
3841 disk (also changed in psource). Similar fix to the one for
3838 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3842 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
3839 <yann.ledu-AT-noos.fr>.
3843 <yann.ledu-AT-noos.fr>.
3840
3844
3841 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3845 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
3842 with a single option would not be correctly parsed. Closes
3846 with a single option would not be correctly parsed. Closes
3843 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3847 http://www.scipy.net/roundup/ipython/issue14. This bug had been
3844 introduced in 0.6.0 (on 2004-05-06).
3848 introduced in 0.6.0 (on 2004-05-06).
3845
3849
3846 2004-05-13 *** Released version 0.6.0
3850 2004-05-13 *** Released version 0.6.0
3847
3851
3848 2004-05-13 Fernando Perez <fperez@colorado.edu>
3852 2004-05-13 Fernando Perez <fperez@colorado.edu>
3849
3853
3850 * debian/: Added debian/ directory to CVS, so that debian support
3854 * debian/: Added debian/ directory to CVS, so that debian support
3851 is publicly accessible. The debian package is maintained by Jack
3855 is publicly accessible. The debian package is maintained by Jack
3852 Moffit <jack-AT-xiph.org>.
3856 Moffit <jack-AT-xiph.org>.
3853
3857
3854 * Documentation: included the notes about an ipython-based system
3858 * Documentation: included the notes about an ipython-based system
3855 shell (the hypothetical 'pysh') into the new_design.pdf document,
3859 shell (the hypothetical 'pysh') into the new_design.pdf document,
3856 so that these ideas get distributed to users along with the
3860 so that these ideas get distributed to users along with the
3857 official documentation.
3861 official documentation.
3858
3862
3859 2004-05-10 Fernando Perez <fperez@colorado.edu>
3863 2004-05-10 Fernando Perez <fperez@colorado.edu>
3860
3864
3861 * IPython/Logger.py (Logger.create_log): fix recently introduced
3865 * IPython/Logger.py (Logger.create_log): fix recently introduced
3862 bug (misindented line) where logstart would fail when not given an
3866 bug (misindented line) where logstart would fail when not given an
3863 explicit filename.
3867 explicit filename.
3864
3868
3865 2004-05-09 Fernando Perez <fperez@colorado.edu>
3869 2004-05-09 Fernando Perez <fperez@colorado.edu>
3866
3870
3867 * IPython/Magic.py (Magic.parse_options): skip system call when
3871 * IPython/Magic.py (Magic.parse_options): skip system call when
3868 there are no options to look for. Faster, cleaner for the common
3872 there are no options to look for. Faster, cleaner for the common
3869 case.
3873 case.
3870
3874
3871 * Documentation: many updates to the manual: describing Windows
3875 * Documentation: many updates to the manual: describing Windows
3872 support better, Gnuplot updates, credits, misc small stuff. Also
3876 support better, Gnuplot updates, credits, misc small stuff. Also
3873 updated the new_design doc a bit.
3877 updated the new_design doc a bit.
3874
3878
3875 2004-05-06 *** Released version 0.6.0.rc1
3879 2004-05-06 *** Released version 0.6.0.rc1
3876
3880
3877 2004-05-06 Fernando Perez <fperez@colorado.edu>
3881 2004-05-06 Fernando Perez <fperez@colorado.edu>
3878
3882
3879 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3883 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
3880 operations to use the vastly more efficient list/''.join() method.
3884 operations to use the vastly more efficient list/''.join() method.
3881 (FormattedTB.text): Fix
3885 (FormattedTB.text): Fix
3882 http://www.scipy.net/roundup/ipython/issue12 - exception source
3886 http://www.scipy.net/roundup/ipython/issue12 - exception source
3883 extract not updated after reload. Thanks to Mike Salib
3887 extract not updated after reload. Thanks to Mike Salib
3884 <msalib-AT-mit.edu> for pinning the source of the problem.
3888 <msalib-AT-mit.edu> for pinning the source of the problem.
3885 Fortunately, the solution works inside ipython and doesn't require
3889 Fortunately, the solution works inside ipython and doesn't require
3886 any changes to python proper.
3890 any changes to python proper.
3887
3891
3888 * IPython/Magic.py (Magic.parse_options): Improved to process the
3892 * IPython/Magic.py (Magic.parse_options): Improved to process the
3889 argument list as a true shell would (by actually using the
3893 argument list as a true shell would (by actually using the
3890 underlying system shell). This way, all @magics automatically get
3894 underlying system shell). This way, all @magics automatically get
3891 shell expansion for variables. Thanks to a comment by Alex
3895 shell expansion for variables. Thanks to a comment by Alex
3892 Schmolck.
3896 Schmolck.
3893
3897
3894 2004-04-04 Fernando Perez <fperez@colorado.edu>
3898 2004-04-04 Fernando Perez <fperez@colorado.edu>
3895
3899
3896 * IPython/iplib.py (InteractiveShell.interact): Added a special
3900 * IPython/iplib.py (InteractiveShell.interact): Added a special
3897 trap for a debugger quit exception, which is basically impossible
3901 trap for a debugger quit exception, which is basically impossible
3898 to handle by normal mechanisms, given what pdb does to the stack.
3902 to handle by normal mechanisms, given what pdb does to the stack.
3899 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3903 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
3900
3904
3901 2004-04-03 Fernando Perez <fperez@colorado.edu>
3905 2004-04-03 Fernando Perez <fperez@colorado.edu>
3902
3906
3903 * IPython/genutils.py (Term): Standardized the names of the Term
3907 * IPython/genutils.py (Term): Standardized the names of the Term
3904 class streams to cin/cout/cerr, following C++ naming conventions
3908 class streams to cin/cout/cerr, following C++ naming conventions
3905 (I can't use in/out/err because 'in' is not a valid attribute
3909 (I can't use in/out/err because 'in' is not a valid attribute
3906 name).
3910 name).
3907
3911
3908 * IPython/iplib.py (InteractiveShell.interact): don't increment
3912 * IPython/iplib.py (InteractiveShell.interact): don't increment
3909 the prompt if there's no user input. By Daniel 'Dang' Griffith
3913 the prompt if there's no user input. By Daniel 'Dang' Griffith
3910 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3914 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
3911 Francois Pinard.
3915 Francois Pinard.
3912
3916
3913 2004-04-02 Fernando Perez <fperez@colorado.edu>
3917 2004-04-02 Fernando Perez <fperez@colorado.edu>
3914
3918
3915 * IPython/genutils.py (Stream.__init__): Modified to survive at
3919 * IPython/genutils.py (Stream.__init__): Modified to survive at
3916 least importing in contexts where stdin/out/err aren't true file
3920 least importing in contexts where stdin/out/err aren't true file
3917 objects, such as PyCrust (they lack fileno() and mode). However,
3921 objects, such as PyCrust (they lack fileno() and mode). However,
3918 the recovery facilities which rely on these things existing will
3922 the recovery facilities which rely on these things existing will
3919 not work.
3923 not work.
3920
3924
3921 2004-04-01 Fernando Perez <fperez@colorado.edu>
3925 2004-04-01 Fernando Perez <fperez@colorado.edu>
3922
3926
3923 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3927 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
3924 use the new getoutputerror() function, so it properly
3928 use the new getoutputerror() function, so it properly
3925 distinguishes stdout/err.
3929 distinguishes stdout/err.
3926
3930
3927 * IPython/genutils.py (getoutputerror): added a function to
3931 * IPython/genutils.py (getoutputerror): added a function to
3928 capture separately the standard output and error of a command.
3932 capture separately the standard output and error of a command.
3929 After a comment from dang on the mailing lists. This code is
3933 After a comment from dang on the mailing lists. This code is
3930 basically a modified version of commands.getstatusoutput(), from
3934 basically a modified version of commands.getstatusoutput(), from
3931 the standard library.
3935 the standard library.
3932
3936
3933 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3937 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
3934 '!!' as a special syntax (shorthand) to access @sx.
3938 '!!' as a special syntax (shorthand) to access @sx.
3935
3939
3936 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3940 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
3937 command and return its output as a list split on '\n'.
3941 command and return its output as a list split on '\n'.
3938
3942
3939 2004-03-31 Fernando Perez <fperez@colorado.edu>
3943 2004-03-31 Fernando Perez <fperez@colorado.edu>
3940
3944
3941 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3945 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
3942 method to dictionaries used as FakeModule instances if they lack
3946 method to dictionaries used as FakeModule instances if they lack
3943 it. At least pydoc in python2.3 breaks for runtime-defined
3947 it. At least pydoc in python2.3 breaks for runtime-defined
3944 functions without this hack. At some point I need to _really_
3948 functions without this hack. At some point I need to _really_
3945 understand what FakeModule is doing, because it's a gross hack.
3949 understand what FakeModule is doing, because it's a gross hack.
3946 But it solves Arnd's problem for now...
3950 But it solves Arnd's problem for now...
3947
3951
3948 2004-02-27 Fernando Perez <fperez@colorado.edu>
3952 2004-02-27 Fernando Perez <fperez@colorado.edu>
3949
3953
3950 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3954 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
3951 mode would behave erratically. Also increased the number of
3955 mode would behave erratically. Also increased the number of
3952 possible logs in rotate mod to 999. Thanks to Rod Holland
3956 possible logs in rotate mod to 999. Thanks to Rod Holland
3953 <rhh@StructureLABS.com> for the report and fixes.
3957 <rhh@StructureLABS.com> for the report and fixes.
3954
3958
3955 2004-02-26 Fernando Perez <fperez@colorado.edu>
3959 2004-02-26 Fernando Perez <fperez@colorado.edu>
3956
3960
3957 * IPython/genutils.py (page): Check that the curses module really
3961 * IPython/genutils.py (page): Check that the curses module really
3958 has the initscr attribute before trying to use it. For some
3962 has the initscr attribute before trying to use it. For some
3959 reason, the Solaris curses module is missing this. I think this
3963 reason, the Solaris curses module is missing this. I think this
3960 should be considered a Solaris python bug, but I'm not sure.
3964 should be considered a Solaris python bug, but I'm not sure.
3961
3965
3962 2004-01-17 Fernando Perez <fperez@colorado.edu>
3966 2004-01-17 Fernando Perez <fperez@colorado.edu>
3963
3967
3964 * IPython/genutils.py (Stream.__init__): Changes to try to make
3968 * IPython/genutils.py (Stream.__init__): Changes to try to make
3965 ipython robust against stdin/out/err being closed by the user.
3969 ipython robust against stdin/out/err being closed by the user.
3966 This is 'user error' (and blocks a normal python session, at least
3970 This is 'user error' (and blocks a normal python session, at least
3967 the stdout case). However, Ipython should be able to survive such
3971 the stdout case). However, Ipython should be able to survive such
3968 instances of abuse as gracefully as possible. To simplify the
3972 instances of abuse as gracefully as possible. To simplify the
3969 coding and maintain compatibility with Gary Bishop's Term
3973 coding and maintain compatibility with Gary Bishop's Term
3970 contributions, I've made use of classmethods for this. I think
3974 contributions, I've made use of classmethods for this. I think
3971 this introduces a dependency on python 2.2.
3975 this introduces a dependency on python 2.2.
3972
3976
3973 2004-01-13 Fernando Perez <fperez@colorado.edu>
3977 2004-01-13 Fernando Perez <fperez@colorado.edu>
3974
3978
3975 * IPython/numutils.py (exp_safe): simplified the code a bit and
3979 * IPython/numutils.py (exp_safe): simplified the code a bit and
3976 removed the need for importing the kinds module altogether.
3980 removed the need for importing the kinds module altogether.
3977
3981
3978 2004-01-06 Fernando Perez <fperez@colorado.edu>
3982 2004-01-06 Fernando Perez <fperez@colorado.edu>
3979
3983
3980 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3984 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
3981 a magic function instead, after some community feedback. No
3985 a magic function instead, after some community feedback. No
3982 special syntax will exist for it, but its name is deliberately
3986 special syntax will exist for it, but its name is deliberately
3983 very short.
3987 very short.
3984
3988
3985 2003-12-20 Fernando Perez <fperez@colorado.edu>
3989 2003-12-20 Fernando Perez <fperez@colorado.edu>
3986
3990
3987 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3991 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
3988 new functionality, to automagically assign the result of a shell
3992 new functionality, to automagically assign the result of a shell
3989 command to a variable. I'll solicit some community feedback on
3993 command to a variable. I'll solicit some community feedback on
3990 this before making it permanent.
3994 this before making it permanent.
3991
3995
3992 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3996 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
3993 requested about callables for which inspect couldn't obtain a
3997 requested about callables for which inspect couldn't obtain a
3994 proper argspec. Thanks to a crash report sent by Etienne
3998 proper argspec. Thanks to a crash report sent by Etienne
3995 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3999 Posthumus <etienne-AT-apple01.cs.vu.nl>.
3996
4000
3997 2003-12-09 Fernando Perez <fperez@colorado.edu>
4001 2003-12-09 Fernando Perez <fperez@colorado.edu>
3998
4002
3999 * IPython/genutils.py (page): patch for the pager to work across
4003 * IPython/genutils.py (page): patch for the pager to work across
4000 various versions of Windows. By Gary Bishop.
4004 various versions of Windows. By Gary Bishop.
4001
4005
4002 2003-12-04 Fernando Perez <fperez@colorado.edu>
4006 2003-12-04 Fernando Perez <fperez@colorado.edu>
4003
4007
4004 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4008 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
4005 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4009 Gnuplot.py version 1.7, whose internal names changed quite a bit.
4006 While I tested this and it looks ok, there may still be corner
4010 While I tested this and it looks ok, there may still be corner
4007 cases I've missed.
4011 cases I've missed.
4008
4012
4009 2003-12-01 Fernando Perez <fperez@colorado.edu>
4013 2003-12-01 Fernando Perez <fperez@colorado.edu>
4010
4014
4011 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4015 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
4012 where a line like 'p,q=1,2' would fail because the automagic
4016 where a line like 'p,q=1,2' would fail because the automagic
4013 system would be triggered for @p.
4017 system would be triggered for @p.
4014
4018
4015 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4019 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
4016 cleanups, code unmodified.
4020 cleanups, code unmodified.
4017
4021
4018 * IPython/genutils.py (Term): added a class for IPython to handle
4022 * IPython/genutils.py (Term): added a class for IPython to handle
4019 output. In most cases it will just be a proxy for stdout/err, but
4023 output. In most cases it will just be a proxy for stdout/err, but
4020 having this allows modifications to be made for some platforms,
4024 having this allows modifications to be made for some platforms,
4021 such as handling color escapes under Windows. All of this code
4025 such as handling color escapes under Windows. All of this code
4022 was contributed by Gary Bishop, with minor modifications by me.
4026 was contributed by Gary Bishop, with minor modifications by me.
4023 The actual changes affect many files.
4027 The actual changes affect many files.
4024
4028
4025 2003-11-30 Fernando Perez <fperez@colorado.edu>
4029 2003-11-30 Fernando Perez <fperez@colorado.edu>
4026
4030
4027 * IPython/iplib.py (file_matches): new completion code, courtesy
4031 * IPython/iplib.py (file_matches): new completion code, courtesy
4028 of Jeff Collins. This enables filename completion again under
4032 of Jeff Collins. This enables filename completion again under
4029 python 2.3, which disabled it at the C level.
4033 python 2.3, which disabled it at the C level.
4030
4034
4031 2003-11-11 Fernando Perez <fperez@colorado.edu>
4035 2003-11-11 Fernando Perez <fperez@colorado.edu>
4032
4036
4033 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4037 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
4034 for Numeric.array(map(...)), but often convenient.
4038 for Numeric.array(map(...)), but often convenient.
4035
4039
4036 2003-11-05 Fernando Perez <fperez@colorado.edu>
4040 2003-11-05 Fernando Perez <fperez@colorado.edu>
4037
4041
4038 * IPython/numutils.py (frange): Changed a call from int() to
4042 * IPython/numutils.py (frange): Changed a call from int() to
4039 int(round()) to prevent a problem reported with arange() in the
4043 int(round()) to prevent a problem reported with arange() in the
4040 numpy list.
4044 numpy list.
4041
4045
4042 2003-10-06 Fernando Perez <fperez@colorado.edu>
4046 2003-10-06 Fernando Perez <fperez@colorado.edu>
4043
4047
4044 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4048 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
4045 prevent crashes if sys lacks an argv attribute (it happens with
4049 prevent crashes if sys lacks an argv attribute (it happens with
4046 embedded interpreters which build a bare-bones sys module).
4050 embedded interpreters which build a bare-bones sys module).
4047 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4051 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
4048
4052
4049 2003-09-24 Fernando Perez <fperez@colorado.edu>
4053 2003-09-24 Fernando Perez <fperez@colorado.edu>
4050
4054
4051 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4055 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
4052 to protect against poorly written user objects where __getattr__
4056 to protect against poorly written user objects where __getattr__
4053 raises exceptions other than AttributeError. Thanks to a bug
4057 raises exceptions other than AttributeError. Thanks to a bug
4054 report by Oliver Sander <osander-AT-gmx.de>.
4058 report by Oliver Sander <osander-AT-gmx.de>.
4055
4059
4056 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4060 * IPython/FakeModule.py (FakeModule.__repr__): this method was
4057 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4061 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
4058
4062
4059 2003-09-09 Fernando Perez <fperez@colorado.edu>
4063 2003-09-09 Fernando Perez <fperez@colorado.edu>
4060
4064
4061 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4065 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4062 unpacking a list whith a callable as first element would
4066 unpacking a list whith a callable as first element would
4063 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4067 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
4064 Collins.
4068 Collins.
4065
4069
4066 2003-08-25 *** Released version 0.5.0
4070 2003-08-25 *** Released version 0.5.0
4067
4071
4068 2003-08-22 Fernando Perez <fperez@colorado.edu>
4072 2003-08-22 Fernando Perez <fperez@colorado.edu>
4069
4073
4070 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4074 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
4071 improperly defined user exceptions. Thanks to feedback from Mark
4075 improperly defined user exceptions. Thanks to feedback from Mark
4072 Russell <mrussell-AT-verio.net>.
4076 Russell <mrussell-AT-verio.net>.
4073
4077
4074 2003-08-20 Fernando Perez <fperez@colorado.edu>
4078 2003-08-20 Fernando Perez <fperez@colorado.edu>
4075
4079
4076 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4080 * IPython/OInspect.py (Inspector.pinfo): changed String Form
4077 printing so that it would print multi-line string forms starting
4081 printing so that it would print multi-line string forms starting
4078 with a new line. This way the formatting is better respected for
4082 with a new line. This way the formatting is better respected for
4079 objects which work hard to make nice string forms.
4083 objects which work hard to make nice string forms.
4080
4084
4081 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4085 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
4082 autocall would overtake data access for objects with both
4086 autocall would overtake data access for objects with both
4083 __getitem__ and __call__.
4087 __getitem__ and __call__.
4084
4088
4085 2003-08-19 *** Released version 0.5.0-rc1
4089 2003-08-19 *** Released version 0.5.0-rc1
4086
4090
4087 2003-08-19 Fernando Perez <fperez@colorado.edu>
4091 2003-08-19 Fernando Perez <fperez@colorado.edu>
4088
4092
4089 * IPython/deep_reload.py (load_tail): single tiny change here
4093 * IPython/deep_reload.py (load_tail): single tiny change here
4090 seems to fix the long-standing bug of dreload() failing to work
4094 seems to fix the long-standing bug of dreload() failing to work
4091 for dotted names. But this module is pretty tricky, so I may have
4095 for dotted names. But this module is pretty tricky, so I may have
4092 missed some subtlety. Needs more testing!.
4096 missed some subtlety. Needs more testing!.
4093
4097
4094 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4098 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
4095 exceptions which have badly implemented __str__ methods.
4099 exceptions which have badly implemented __str__ methods.
4096 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4100 (VerboseTB.text): harden against inspect.getinnerframes crashing,
4097 which I've been getting reports about from Python 2.3 users. I
4101 which I've been getting reports about from Python 2.3 users. I
4098 wish I had a simple test case to reproduce the problem, so I could
4102 wish I had a simple test case to reproduce the problem, so I could
4099 either write a cleaner workaround or file a bug report if
4103 either write a cleaner workaround or file a bug report if
4100 necessary.
4104 necessary.
4101
4105
4102 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4106 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
4103 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4107 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
4104 a bug report by Tjabo Kloppenburg.
4108 a bug report by Tjabo Kloppenburg.
4105
4109
4106 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4110 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
4107 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4111 crashes. Wrapped the pdb call in a blanket try/except, since pdb
4108 seems rather unstable. Thanks to a bug report by Tjabo
4112 seems rather unstable. Thanks to a bug report by Tjabo
4109 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4113 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
4110
4114
4111 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4115 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
4112 this out soon because of the critical fixes in the inner loop for
4116 this out soon because of the critical fixes in the inner loop for
4113 generators.
4117 generators.
4114
4118
4115 * IPython/Magic.py (Magic.getargspec): removed. This (and
4119 * IPython/Magic.py (Magic.getargspec): removed. This (and
4116 _get_def) have been obsoleted by OInspect for a long time, I
4120 _get_def) have been obsoleted by OInspect for a long time, I
4117 hadn't noticed that they were dead code.
4121 hadn't noticed that they were dead code.
4118 (Magic._ofind): restored _ofind functionality for a few literals
4122 (Magic._ofind): restored _ofind functionality for a few literals
4119 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4123 (those in ["''",'""','[]','{}','()']). But it won't work anymore
4120 for things like "hello".capitalize?, since that would require a
4124 for things like "hello".capitalize?, since that would require a
4121 potentially dangerous eval() again.
4125 potentially dangerous eval() again.
4122
4126
4123 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4127 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
4124 logic a bit more to clean up the escapes handling and minimize the
4128 logic a bit more to clean up the escapes handling and minimize the
4125 use of _ofind to only necessary cases. The interactive 'feel' of
4129 use of _ofind to only necessary cases. The interactive 'feel' of
4126 IPython should have improved quite a bit with the changes in
4130 IPython should have improved quite a bit with the changes in
4127 _prefilter and _ofind (besides being far safer than before).
4131 _prefilter and _ofind (besides being far safer than before).
4128
4132
4129 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4133 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
4130 obscure, never reported). Edit would fail to find the object to
4134 obscure, never reported). Edit would fail to find the object to
4131 edit under some circumstances.
4135 edit under some circumstances.
4132 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4136 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
4133 which were causing double-calling of generators. Those eval calls
4137 which were causing double-calling of generators. Those eval calls
4134 were _very_ dangerous, since code with side effects could be
4138 were _very_ dangerous, since code with side effects could be
4135 triggered. As they say, 'eval is evil'... These were the
4139 triggered. As they say, 'eval is evil'... These were the
4136 nastiest evals in IPython. Besides, _ofind is now far simpler,
4140 nastiest evals in IPython. Besides, _ofind is now far simpler,
4137 and it should also be quite a bit faster. Its use of inspect is
4141 and it should also be quite a bit faster. Its use of inspect is
4138 also safer, so perhaps some of the inspect-related crashes I've
4142 also safer, so perhaps some of the inspect-related crashes I've
4139 seen lately with Python 2.3 might be taken care of. That will
4143 seen lately with Python 2.3 might be taken care of. That will
4140 need more testing.
4144 need more testing.
4141
4145
4142 2003-08-17 Fernando Perez <fperez@colorado.edu>
4146 2003-08-17 Fernando Perez <fperez@colorado.edu>
4143
4147
4144 * IPython/iplib.py (InteractiveShell._prefilter): significant
4148 * IPython/iplib.py (InteractiveShell._prefilter): significant
4145 simplifications to the logic for handling user escapes. Faster
4149 simplifications to the logic for handling user escapes. Faster
4146 and simpler code.
4150 and simpler code.
4147
4151
4148 2003-08-14 Fernando Perez <fperez@colorado.edu>
4152 2003-08-14 Fernando Perez <fperez@colorado.edu>
4149
4153
4150 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4154 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
4151 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4155 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
4152 but it should be quite a bit faster. And the recursive version
4156 but it should be quite a bit faster. And the recursive version
4153 generated O(log N) intermediate storage for all rank>1 arrays,
4157 generated O(log N) intermediate storage for all rank>1 arrays,
4154 even if they were contiguous.
4158 even if they were contiguous.
4155 (l1norm): Added this function.
4159 (l1norm): Added this function.
4156 (norm): Added this function for arbitrary norms (including
4160 (norm): Added this function for arbitrary norms (including
4157 l-infinity). l1 and l2 are still special cases for convenience
4161 l-infinity). l1 and l2 are still special cases for convenience
4158 and speed.
4162 and speed.
4159
4163
4160 2003-08-03 Fernando Perez <fperez@colorado.edu>
4164 2003-08-03 Fernando Perez <fperez@colorado.edu>
4161
4165
4162 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4166 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
4163 exceptions, which now raise PendingDeprecationWarnings in Python
4167 exceptions, which now raise PendingDeprecationWarnings in Python
4164 2.3. There were some in Magic and some in Gnuplot2.
4168 2.3. There were some in Magic and some in Gnuplot2.
4165
4169
4166 2003-06-30 Fernando Perez <fperez@colorado.edu>
4170 2003-06-30 Fernando Perez <fperez@colorado.edu>
4167
4171
4168 * IPython/genutils.py (page): modified to call curses only for
4172 * IPython/genutils.py (page): modified to call curses only for
4169 terminals where TERM=='xterm'. After problems under many other
4173 terminals where TERM=='xterm'. After problems under many other
4170 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4174 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
4171
4175
4172 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4176 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
4173 would be triggered when readline was absent. This was just an old
4177 would be triggered when readline was absent. This was just an old
4174 debugging statement I'd forgotten to take out.
4178 debugging statement I'd forgotten to take out.
4175
4179
4176 2003-06-20 Fernando Perez <fperez@colorado.edu>
4180 2003-06-20 Fernando Perez <fperez@colorado.edu>
4177
4181
4178 * IPython/genutils.py (clock): modified to return only user time
4182 * IPython/genutils.py (clock): modified to return only user time
4179 (not counting system time), after a discussion on scipy. While
4183 (not counting system time), after a discussion on scipy. While
4180 system time may be a useful quantity occasionally, it may much
4184 system time may be a useful quantity occasionally, it may much
4181 more easily be skewed by occasional swapping or other similar
4185 more easily be skewed by occasional swapping or other similar
4182 activity.
4186 activity.
4183
4187
4184 2003-06-05 Fernando Perez <fperez@colorado.edu>
4188 2003-06-05 Fernando Perez <fperez@colorado.edu>
4185
4189
4186 * IPython/numutils.py (identity): new function, for building
4190 * IPython/numutils.py (identity): new function, for building
4187 arbitrary rank Kronecker deltas (mostly backwards compatible with
4191 arbitrary rank Kronecker deltas (mostly backwards compatible with
4188 Numeric.identity)
4192 Numeric.identity)
4189
4193
4190 2003-06-03 Fernando Perez <fperez@colorado.edu>
4194 2003-06-03 Fernando Perez <fperez@colorado.edu>
4191
4195
4192 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4196 * IPython/iplib.py (InteractiveShell.handle_magic): protect
4193 arguments passed to magics with spaces, to allow trailing '\' to
4197 arguments passed to magics with spaces, to allow trailing '\' to
4194 work normally (mainly for Windows users).
4198 work normally (mainly for Windows users).
4195
4199
4196 2003-05-29 Fernando Perez <fperez@colorado.edu>
4200 2003-05-29 Fernando Perez <fperez@colorado.edu>
4197
4201
4198 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4202 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
4199 instead of pydoc.help. This fixes a bizarre behavior where
4203 instead of pydoc.help. This fixes a bizarre behavior where
4200 printing '%s' % locals() would trigger the help system. Now
4204 printing '%s' % locals() would trigger the help system. Now
4201 ipython behaves like normal python does.
4205 ipython behaves like normal python does.
4202
4206
4203 Note that if one does 'from pydoc import help', the bizarre
4207 Note that if one does 'from pydoc import help', the bizarre
4204 behavior returns, but this will also happen in normal python, so
4208 behavior returns, but this will also happen in normal python, so
4205 it's not an ipython bug anymore (it has to do with how pydoc.help
4209 it's not an ipython bug anymore (it has to do with how pydoc.help
4206 is implemented).
4210 is implemented).
4207
4211
4208 2003-05-22 Fernando Perez <fperez@colorado.edu>
4212 2003-05-22 Fernando Perez <fperez@colorado.edu>
4209
4213
4210 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4214 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
4211 return [] instead of None when nothing matches, also match to end
4215 return [] instead of None when nothing matches, also match to end
4212 of line. Patch by Gary Bishop.
4216 of line. Patch by Gary Bishop.
4213
4217
4214 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4218 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
4215 protection as before, for files passed on the command line. This
4219 protection as before, for files passed on the command line. This
4216 prevents the CrashHandler from kicking in if user files call into
4220 prevents the CrashHandler from kicking in if user files call into
4217 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4221 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
4218 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4222 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
4219
4223
4220 2003-05-20 *** Released version 0.4.0
4224 2003-05-20 *** Released version 0.4.0
4221
4225
4222 2003-05-20 Fernando Perez <fperez@colorado.edu>
4226 2003-05-20 Fernando Perez <fperez@colorado.edu>
4223
4227
4224 * setup.py: added support for manpages. It's a bit hackish b/c of
4228 * setup.py: added support for manpages. It's a bit hackish b/c of
4225 a bug in the way the bdist_rpm distutils target handles gzipped
4229 a bug in the way the bdist_rpm distutils target handles gzipped
4226 manpages, but it works. After a patch by Jack.
4230 manpages, but it works. After a patch by Jack.
4227
4231
4228 2003-05-19 Fernando Perez <fperez@colorado.edu>
4232 2003-05-19 Fernando Perez <fperez@colorado.edu>
4229
4233
4230 * IPython/numutils.py: added a mockup of the kinds module, since
4234 * IPython/numutils.py: added a mockup of the kinds module, since
4231 it was recently removed from Numeric. This way, numutils will
4235 it was recently removed from Numeric. This way, numutils will
4232 work for all users even if they are missing kinds.
4236 work for all users even if they are missing kinds.
4233
4237
4234 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4238 * IPython/Magic.py (Magic._ofind): Harden against an inspect
4235 failure, which can occur with SWIG-wrapped extensions. After a
4239 failure, which can occur with SWIG-wrapped extensions. After a
4236 crash report from Prabhu.
4240 crash report from Prabhu.
4237
4241
4238 2003-05-16 Fernando Perez <fperez@colorado.edu>
4242 2003-05-16 Fernando Perez <fperez@colorado.edu>
4239
4243
4240 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4244 * IPython/iplib.py (InteractiveShell.excepthook): New method to
4241 protect ipython from user code which may call directly
4245 protect ipython from user code which may call directly
4242 sys.excepthook (this looks like an ipython crash to the user, even
4246 sys.excepthook (this looks like an ipython crash to the user, even
4243 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4247 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4244 This is especially important to help users of WxWindows, but may
4248 This is especially important to help users of WxWindows, but may
4245 also be useful in other cases.
4249 also be useful in other cases.
4246
4250
4247 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4251 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
4248 an optional tb_offset to be specified, and to preserve exception
4252 an optional tb_offset to be specified, and to preserve exception
4249 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4253 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
4250
4254
4251 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4255 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
4252
4256
4253 2003-05-15 Fernando Perez <fperez@colorado.edu>
4257 2003-05-15 Fernando Perez <fperez@colorado.edu>
4254
4258
4255 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4259 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
4256 installing for a new user under Windows.
4260 installing for a new user under Windows.
4257
4261
4258 2003-05-12 Fernando Perez <fperez@colorado.edu>
4262 2003-05-12 Fernando Perez <fperez@colorado.edu>
4259
4263
4260 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4264 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
4261 handler for Emacs comint-based lines. Currently it doesn't do
4265 handler for Emacs comint-based lines. Currently it doesn't do
4262 much (but importantly, it doesn't update the history cache). In
4266 much (but importantly, it doesn't update the history cache). In
4263 the future it may be expanded if Alex needs more functionality
4267 the future it may be expanded if Alex needs more functionality
4264 there.
4268 there.
4265
4269
4266 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4270 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
4267 info to crash reports.
4271 info to crash reports.
4268
4272
4269 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4273 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
4270 just like Python's -c. Also fixed crash with invalid -color
4274 just like Python's -c. Also fixed crash with invalid -color
4271 option value at startup. Thanks to Will French
4275 option value at startup. Thanks to Will French
4272 <wfrench-AT-bestweb.net> for the bug report.
4276 <wfrench-AT-bestweb.net> for the bug report.
4273
4277
4274 2003-05-09 Fernando Perez <fperez@colorado.edu>
4278 2003-05-09 Fernando Perez <fperez@colorado.edu>
4275
4279
4276 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4280 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
4277 to EvalDict (it's a mapping, after all) and simplified its code
4281 to EvalDict (it's a mapping, after all) and simplified its code
4278 quite a bit, after a nice discussion on c.l.py where Gustavo
4282 quite a bit, after a nice discussion on c.l.py where Gustavo
4279 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4283 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
4280
4284
4281 2003-04-30 Fernando Perez <fperez@colorado.edu>
4285 2003-04-30 Fernando Perez <fperez@colorado.edu>
4282
4286
4283 * IPython/genutils.py (timings_out): modified it to reduce its
4287 * IPython/genutils.py (timings_out): modified it to reduce its
4284 overhead in the common reps==1 case.
4288 overhead in the common reps==1 case.
4285
4289
4286 2003-04-29 Fernando Perez <fperez@colorado.edu>
4290 2003-04-29 Fernando Perez <fperez@colorado.edu>
4287
4291
4288 * IPython/genutils.py (timings_out): Modified to use the resource
4292 * IPython/genutils.py (timings_out): Modified to use the resource
4289 module, which avoids the wraparound problems of time.clock().
4293 module, which avoids the wraparound problems of time.clock().
4290
4294
4291 2003-04-17 *** Released version 0.2.15pre4
4295 2003-04-17 *** Released version 0.2.15pre4
4292
4296
4293 2003-04-17 Fernando Perez <fperez@colorado.edu>
4297 2003-04-17 Fernando Perez <fperez@colorado.edu>
4294
4298
4295 * setup.py (scriptfiles): Split windows-specific stuff over to a
4299 * setup.py (scriptfiles): Split windows-specific stuff over to a
4296 separate file, in an attempt to have a Windows GUI installer.
4300 separate file, in an attempt to have a Windows GUI installer.
4297 That didn't work, but part of the groundwork is done.
4301 That didn't work, but part of the groundwork is done.
4298
4302
4299 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4303 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
4300 indent/unindent with 4 spaces. Particularly useful in combination
4304 indent/unindent with 4 spaces. Particularly useful in combination
4301 with the new auto-indent option.
4305 with the new auto-indent option.
4302
4306
4303 2003-04-16 Fernando Perez <fperez@colorado.edu>
4307 2003-04-16 Fernando Perez <fperez@colorado.edu>
4304
4308
4305 * IPython/Magic.py: various replacements of self.rc for
4309 * IPython/Magic.py: various replacements of self.rc for
4306 self.shell.rc. A lot more remains to be done to fully disentangle
4310 self.shell.rc. A lot more remains to be done to fully disentangle
4307 this class from the main Shell class.
4311 this class from the main Shell class.
4308
4312
4309 * IPython/GnuplotRuntime.py: added checks for mouse support so
4313 * IPython/GnuplotRuntime.py: added checks for mouse support so
4310 that we don't try to enable it if the current gnuplot doesn't
4314 that we don't try to enable it if the current gnuplot doesn't
4311 really support it. Also added checks so that we don't try to
4315 really support it. Also added checks so that we don't try to
4312 enable persist under Windows (where Gnuplot doesn't recognize the
4316 enable persist under Windows (where Gnuplot doesn't recognize the
4313 option).
4317 option).
4314
4318
4315 * IPython/iplib.py (InteractiveShell.interact): Added optional
4319 * IPython/iplib.py (InteractiveShell.interact): Added optional
4316 auto-indenting code, after a patch by King C. Shu
4320 auto-indenting code, after a patch by King C. Shu
4317 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4321 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
4318 get along well with pasting indented code. If I ever figure out
4322 get along well with pasting indented code. If I ever figure out
4319 how to make that part go well, it will become on by default.
4323 how to make that part go well, it will become on by default.
4320
4324
4321 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4325 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
4322 crash ipython if there was an unmatched '%' in the user's prompt
4326 crash ipython if there was an unmatched '%' in the user's prompt
4323 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4327 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4324
4328
4325 * IPython/iplib.py (InteractiveShell.interact): removed the
4329 * IPython/iplib.py (InteractiveShell.interact): removed the
4326 ability to ask the user whether he wants to crash or not at the
4330 ability to ask the user whether he wants to crash or not at the
4327 'last line' exception handler. Calling functions at that point
4331 'last line' exception handler. Calling functions at that point
4328 changes the stack, and the error reports would have incorrect
4332 changes the stack, and the error reports would have incorrect
4329 tracebacks.
4333 tracebacks.
4330
4334
4331 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4335 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
4332 pass through a peger a pretty-printed form of any object. After a
4336 pass through a peger a pretty-printed form of any object. After a
4333 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4337 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
4334
4338
4335 2003-04-14 Fernando Perez <fperez@colorado.edu>
4339 2003-04-14 Fernando Perez <fperez@colorado.edu>
4336
4340
4337 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4341 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
4338 all files in ~ would be modified at first install (instead of
4342 all files in ~ would be modified at first install (instead of
4339 ~/.ipython). This could be potentially disastrous, as the
4343 ~/.ipython). This could be potentially disastrous, as the
4340 modification (make line-endings native) could damage binary files.
4344 modification (make line-endings native) could damage binary files.
4341
4345
4342 2003-04-10 Fernando Perez <fperez@colorado.edu>
4346 2003-04-10 Fernando Perez <fperez@colorado.edu>
4343
4347
4344 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4348 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
4345 handle only lines which are invalid python. This now means that
4349 handle only lines which are invalid python. This now means that
4346 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4350 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
4347 for the bug report.
4351 for the bug report.
4348
4352
4349 2003-04-01 Fernando Perez <fperez@colorado.edu>
4353 2003-04-01 Fernando Perez <fperez@colorado.edu>
4350
4354
4351 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4355 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
4352 where failing to set sys.last_traceback would crash pdb.pm().
4356 where failing to set sys.last_traceback would crash pdb.pm().
4353 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4357 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
4354 report.
4358 report.
4355
4359
4356 2003-03-25 Fernando Perez <fperez@colorado.edu>
4360 2003-03-25 Fernando Perez <fperez@colorado.edu>
4357
4361
4358 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4362 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
4359 before printing it (it had a lot of spurious blank lines at the
4363 before printing it (it had a lot of spurious blank lines at the
4360 end).
4364 end).
4361
4365
4362 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4366 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
4363 output would be sent 21 times! Obviously people don't use this
4367 output would be sent 21 times! Obviously people don't use this
4364 too often, or I would have heard about it.
4368 too often, or I would have heard about it.
4365
4369
4366 2003-03-24 Fernando Perez <fperez@colorado.edu>
4370 2003-03-24 Fernando Perez <fperez@colorado.edu>
4367
4371
4368 * setup.py (scriptfiles): renamed the data_files parameter from
4372 * setup.py (scriptfiles): renamed the data_files parameter from
4369 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4373 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
4370 for the patch.
4374 for the patch.
4371
4375
4372 2003-03-20 Fernando Perez <fperez@colorado.edu>
4376 2003-03-20 Fernando Perez <fperez@colorado.edu>
4373
4377
4374 * IPython/genutils.py (error): added error() and fatal()
4378 * IPython/genutils.py (error): added error() and fatal()
4375 functions.
4379 functions.
4376
4380
4377 2003-03-18 *** Released version 0.2.15pre3
4381 2003-03-18 *** Released version 0.2.15pre3
4378
4382
4379 2003-03-18 Fernando Perez <fperez@colorado.edu>
4383 2003-03-18 Fernando Perez <fperez@colorado.edu>
4380
4384
4381 * setupext/install_data_ext.py
4385 * setupext/install_data_ext.py
4382 (install_data_ext.initialize_options): Class contributed by Jack
4386 (install_data_ext.initialize_options): Class contributed by Jack
4383 Moffit for fixing the old distutils hack. He is sending this to
4387 Moffit for fixing the old distutils hack. He is sending this to
4384 the distutils folks so in the future we may not need it as a
4388 the distutils folks so in the future we may not need it as a
4385 private fix.
4389 private fix.
4386
4390
4387 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4391 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
4388 changes for Debian packaging. See his patch for full details.
4392 changes for Debian packaging. See his patch for full details.
4389 The old distutils hack of making the ipythonrc* files carry a
4393 The old distutils hack of making the ipythonrc* files carry a
4390 bogus .py extension is gone, at last. Examples were moved to a
4394 bogus .py extension is gone, at last. Examples were moved to a
4391 separate subdir under doc/, and the separate executable scripts
4395 separate subdir under doc/, and the separate executable scripts
4392 now live in their own directory. Overall a great cleanup. The
4396 now live in their own directory. Overall a great cleanup. The
4393 manual was updated to use the new files, and setup.py has been
4397 manual was updated to use the new files, and setup.py has been
4394 fixed for this setup.
4398 fixed for this setup.
4395
4399
4396 * IPython/PyColorize.py (Parser.usage): made non-executable and
4400 * IPython/PyColorize.py (Parser.usage): made non-executable and
4397 created a pycolor wrapper around it to be included as a script.
4401 created a pycolor wrapper around it to be included as a script.
4398
4402
4399 2003-03-12 *** Released version 0.2.15pre2
4403 2003-03-12 *** Released version 0.2.15pre2
4400
4404
4401 2003-03-12 Fernando Perez <fperez@colorado.edu>
4405 2003-03-12 Fernando Perez <fperez@colorado.edu>
4402
4406
4403 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4407 * IPython/ColorANSI.py (make_color_table): Finally fixed the
4404 long-standing problem with garbage characters in some terminals.
4408 long-standing problem with garbage characters in some terminals.
4405 The issue was really that the \001 and \002 escapes must _only_ be
4409 The issue was really that the \001 and \002 escapes must _only_ be
4406 passed to input prompts (which call readline), but _never_ to
4410 passed to input prompts (which call readline), but _never_ to
4407 normal text to be printed on screen. I changed ColorANSI to have
4411 normal text to be printed on screen. I changed ColorANSI to have
4408 two classes: TermColors and InputTermColors, each with the
4412 two classes: TermColors and InputTermColors, each with the
4409 appropriate escapes for input prompts or normal text. The code in
4413 appropriate escapes for input prompts or normal text. The code in
4410 Prompts.py got slightly more complicated, but this very old and
4414 Prompts.py got slightly more complicated, but this very old and
4411 annoying bug is finally fixed.
4415 annoying bug is finally fixed.
4412
4416
4413 All the credit for nailing down the real origin of this problem
4417 All the credit for nailing down the real origin of this problem
4414 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4418 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
4415 *Many* thanks to him for spending quite a bit of effort on this.
4419 *Many* thanks to him for spending quite a bit of effort on this.
4416
4420
4417 2003-03-05 *** Released version 0.2.15pre1
4421 2003-03-05 *** Released version 0.2.15pre1
4418
4422
4419 2003-03-03 Fernando Perez <fperez@colorado.edu>
4423 2003-03-03 Fernando Perez <fperez@colorado.edu>
4420
4424
4421 * IPython/FakeModule.py: Moved the former _FakeModule to a
4425 * IPython/FakeModule.py: Moved the former _FakeModule to a
4422 separate file, because it's also needed by Magic (to fix a similar
4426 separate file, because it's also needed by Magic (to fix a similar
4423 pickle-related issue in @run).
4427 pickle-related issue in @run).
4424
4428
4425 2003-03-02 Fernando Perez <fperez@colorado.edu>
4429 2003-03-02 Fernando Perez <fperez@colorado.edu>
4426
4430
4427 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4431 * IPython/Magic.py (Magic.magic_autocall): new magic to control
4428 the autocall option at runtime.
4432 the autocall option at runtime.
4429 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4433 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
4430 across Magic.py to start separating Magic from InteractiveShell.
4434 across Magic.py to start separating Magic from InteractiveShell.
4431 (Magic._ofind): Fixed to return proper namespace for dotted
4435 (Magic._ofind): Fixed to return proper namespace for dotted
4432 names. Before, a dotted name would always return 'not currently
4436 names. Before, a dotted name would always return 'not currently
4433 defined', because it would find the 'parent'. s.x would be found,
4437 defined', because it would find the 'parent'. s.x would be found,
4434 but since 'x' isn't defined by itself, it would get confused.
4438 but since 'x' isn't defined by itself, it would get confused.
4435 (Magic.magic_run): Fixed pickling problems reported by Ralf
4439 (Magic.magic_run): Fixed pickling problems reported by Ralf
4436 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4440 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
4437 that I'd used when Mike Heeter reported similar issues at the
4441 that I'd used when Mike Heeter reported similar issues at the
4438 top-level, but now for @run. It boils down to injecting the
4442 top-level, but now for @run. It boils down to injecting the
4439 namespace where code is being executed with something that looks
4443 namespace where code is being executed with something that looks
4440 enough like a module to fool pickle.dump(). Since a pickle stores
4444 enough like a module to fool pickle.dump(). Since a pickle stores
4441 a named reference to the importing module, we need this for
4445 a named reference to the importing module, we need this for
4442 pickles to save something sensible.
4446 pickles to save something sensible.
4443
4447
4444 * IPython/ipmaker.py (make_IPython): added an autocall option.
4448 * IPython/ipmaker.py (make_IPython): added an autocall option.
4445
4449
4446 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4450 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
4447 the auto-eval code. Now autocalling is an option, and the code is
4451 the auto-eval code. Now autocalling is an option, and the code is
4448 also vastly safer. There is no more eval() involved at all.
4452 also vastly safer. There is no more eval() involved at all.
4449
4453
4450 2003-03-01 Fernando Perez <fperez@colorado.edu>
4454 2003-03-01 Fernando Perez <fperez@colorado.edu>
4451
4455
4452 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4456 * IPython/Magic.py (Magic._ofind): Changed interface to return a
4453 dict with named keys instead of a tuple.
4457 dict with named keys instead of a tuple.
4454
4458
4455 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4459 * IPython: Started using CVS for IPython as of 0.2.15pre1.
4456
4460
4457 * setup.py (make_shortcut): Fixed message about directories
4461 * setup.py (make_shortcut): Fixed message about directories
4458 created during Windows installation (the directories were ok, just
4462 created during Windows installation (the directories were ok, just
4459 the printed message was misleading). Thanks to Chris Liechti
4463 the printed message was misleading). Thanks to Chris Liechti
4460 <cliechti-AT-gmx.net> for the heads up.
4464 <cliechti-AT-gmx.net> for the heads up.
4461
4465
4462 2003-02-21 Fernando Perez <fperez@colorado.edu>
4466 2003-02-21 Fernando Perez <fperez@colorado.edu>
4463
4467
4464 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4468 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
4465 of ValueError exception when checking for auto-execution. This
4469 of ValueError exception when checking for auto-execution. This
4466 one is raised by things like Numeric arrays arr.flat when the
4470 one is raised by things like Numeric arrays arr.flat when the
4467 array is non-contiguous.
4471 array is non-contiguous.
4468
4472
4469 2003-01-31 Fernando Perez <fperez@colorado.edu>
4473 2003-01-31 Fernando Perez <fperez@colorado.edu>
4470
4474
4471 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4475 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
4472 not return any value at all (even though the command would get
4476 not return any value at all (even though the command would get
4473 executed).
4477 executed).
4474 (xsys): Flush stdout right after printing the command to ensure
4478 (xsys): Flush stdout right after printing the command to ensure
4475 proper ordering of commands and command output in the total
4479 proper ordering of commands and command output in the total
4476 output.
4480 output.
4477 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4481 (SystemExec/xsys/bq): Switched the names of xsys/bq and
4478 system/getoutput as defaults. The old ones are kept for
4482 system/getoutput as defaults. The old ones are kept for
4479 compatibility reasons, so no code which uses this library needs
4483 compatibility reasons, so no code which uses this library needs
4480 changing.
4484 changing.
4481
4485
4482 2003-01-27 *** Released version 0.2.14
4486 2003-01-27 *** Released version 0.2.14
4483
4487
4484 2003-01-25 Fernando Perez <fperez@colorado.edu>
4488 2003-01-25 Fernando Perez <fperez@colorado.edu>
4485
4489
4486 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4490 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
4487 functions defined in previous edit sessions could not be re-edited
4491 functions defined in previous edit sessions could not be re-edited
4488 (because the temp files were immediately removed). Now temp files
4492 (because the temp files were immediately removed). Now temp files
4489 are removed only at IPython's exit.
4493 are removed only at IPython's exit.
4490 (Magic.magic_run): Improved @run to perform shell-like expansions
4494 (Magic.magic_run): Improved @run to perform shell-like expansions
4491 on its arguments (~users and $VARS). With this, @run becomes more
4495 on its arguments (~users and $VARS). With this, @run becomes more
4492 like a normal command-line.
4496 like a normal command-line.
4493
4497
4494 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4498 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
4495 bugs related to embedding and cleaned up that code. A fairly
4499 bugs related to embedding and cleaned up that code. A fairly
4496 important one was the impossibility to access the global namespace
4500 important one was the impossibility to access the global namespace
4497 through the embedded IPython (only local variables were visible).
4501 through the embedded IPython (only local variables were visible).
4498
4502
4499 2003-01-14 Fernando Perez <fperez@colorado.edu>
4503 2003-01-14 Fernando Perez <fperez@colorado.edu>
4500
4504
4501 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4505 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
4502 auto-calling to be a bit more conservative. Now it doesn't get
4506 auto-calling to be a bit more conservative. Now it doesn't get
4503 triggered if any of '!=()<>' are in the rest of the input line, to
4507 triggered if any of '!=()<>' are in the rest of the input line, to
4504 allow comparing callables. Thanks to Alex for the heads up.
4508 allow comparing callables. Thanks to Alex for the heads up.
4505
4509
4506 2003-01-07 Fernando Perez <fperez@colorado.edu>
4510 2003-01-07 Fernando Perez <fperez@colorado.edu>
4507
4511
4508 * IPython/genutils.py (page): fixed estimation of the number of
4512 * IPython/genutils.py (page): fixed estimation of the number of
4509 lines in a string to be paged to simply count newlines. This
4513 lines in a string to be paged to simply count newlines. This
4510 prevents over-guessing due to embedded escape sequences. A better
4514 prevents over-guessing due to embedded escape sequences. A better
4511 long-term solution would involve stripping out the control chars
4515 long-term solution would involve stripping out the control chars
4512 for the count, but it's potentially so expensive I just don't
4516 for the count, but it's potentially so expensive I just don't
4513 think it's worth doing.
4517 think it's worth doing.
4514
4518
4515 2002-12-19 *** Released version 0.2.14pre50
4519 2002-12-19 *** Released version 0.2.14pre50
4516
4520
4517 2002-12-19 Fernando Perez <fperez@colorado.edu>
4521 2002-12-19 Fernando Perez <fperez@colorado.edu>
4518
4522
4519 * tools/release (version): Changed release scripts to inform
4523 * tools/release (version): Changed release scripts to inform
4520 Andrea and build a NEWS file with a list of recent changes.
4524 Andrea and build a NEWS file with a list of recent changes.
4521
4525
4522 * IPython/ColorANSI.py (__all__): changed terminal detection
4526 * IPython/ColorANSI.py (__all__): changed terminal detection
4523 code. Seems to work better for xterms without breaking
4527 code. Seems to work better for xterms without breaking
4524 konsole. Will need more testing to determine if WinXP and Mac OSX
4528 konsole. Will need more testing to determine if WinXP and Mac OSX
4525 also work ok.
4529 also work ok.
4526
4530
4527 2002-12-18 *** Released version 0.2.14pre49
4531 2002-12-18 *** Released version 0.2.14pre49
4528
4532
4529 2002-12-18 Fernando Perez <fperez@colorado.edu>
4533 2002-12-18 Fernando Perez <fperez@colorado.edu>
4530
4534
4531 * Docs: added new info about Mac OSX, from Andrea.
4535 * Docs: added new info about Mac OSX, from Andrea.
4532
4536
4533 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4537 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
4534 allow direct plotting of python strings whose format is the same
4538 allow direct plotting of python strings whose format is the same
4535 of gnuplot data files.
4539 of gnuplot data files.
4536
4540
4537 2002-12-16 Fernando Perez <fperez@colorado.edu>
4541 2002-12-16 Fernando Perez <fperez@colorado.edu>
4538
4542
4539 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4543 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
4540 value of exit question to be acknowledged.
4544 value of exit question to be acknowledged.
4541
4545
4542 2002-12-03 Fernando Perez <fperez@colorado.edu>
4546 2002-12-03 Fernando Perez <fperez@colorado.edu>
4543
4547
4544 * IPython/ipmaker.py: removed generators, which had been added
4548 * IPython/ipmaker.py: removed generators, which had been added
4545 by mistake in an earlier debugging run. This was causing trouble
4549 by mistake in an earlier debugging run. This was causing trouble
4546 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4550 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
4547 for pointing this out.
4551 for pointing this out.
4548
4552
4549 2002-11-17 Fernando Perez <fperez@colorado.edu>
4553 2002-11-17 Fernando Perez <fperez@colorado.edu>
4550
4554
4551 * Manual: updated the Gnuplot section.
4555 * Manual: updated the Gnuplot section.
4552
4556
4553 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4557 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
4554 a much better split of what goes in Runtime and what goes in
4558 a much better split of what goes in Runtime and what goes in
4555 Interactive.
4559 Interactive.
4556
4560
4557 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4561 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
4558 being imported from iplib.
4562 being imported from iplib.
4559
4563
4560 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4564 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
4561 for command-passing. Now the global Gnuplot instance is called
4565 for command-passing. Now the global Gnuplot instance is called
4562 'gp' instead of 'g', which was really a far too fragile and
4566 'gp' instead of 'g', which was really a far too fragile and
4563 common name.
4567 common name.
4564
4568
4565 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4569 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
4566 bounding boxes generated by Gnuplot for square plots.
4570 bounding boxes generated by Gnuplot for square plots.
4567
4571
4568 * IPython/genutils.py (popkey): new function added. I should
4572 * IPython/genutils.py (popkey): new function added. I should
4569 suggest this on c.l.py as a dict method, it seems useful.
4573 suggest this on c.l.py as a dict method, it seems useful.
4570
4574
4571 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4575 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
4572 to transparently handle PostScript generation. MUCH better than
4576 to transparently handle PostScript generation. MUCH better than
4573 the previous plot_eps/replot_eps (which I removed now). The code
4577 the previous plot_eps/replot_eps (which I removed now). The code
4574 is also fairly clean and well documented now (including
4578 is also fairly clean and well documented now (including
4575 docstrings).
4579 docstrings).
4576
4580
4577 2002-11-13 Fernando Perez <fperez@colorado.edu>
4581 2002-11-13 Fernando Perez <fperez@colorado.edu>
4578
4582
4579 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4583 * IPython/Magic.py (Magic.magic_edit): fixed docstring
4580 (inconsistent with options).
4584 (inconsistent with options).
4581
4585
4582 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4586 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
4583 manually disabled, I don't know why. Fixed it.
4587 manually disabled, I don't know why. Fixed it.
4584 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4588 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
4585 eps output.
4589 eps output.
4586
4590
4587 2002-11-12 Fernando Perez <fperez@colorado.edu>
4591 2002-11-12 Fernando Perez <fperez@colorado.edu>
4588
4592
4589 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4593 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
4590 don't propagate up to caller. Fixes crash reported by François
4594 don't propagate up to caller. Fixes crash reported by François
4591 Pinard.
4595 Pinard.
4592
4596
4593 2002-11-09 Fernando Perez <fperez@colorado.edu>
4597 2002-11-09 Fernando Perez <fperez@colorado.edu>
4594
4598
4595 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4599 * IPython/ipmaker.py (make_IPython): fixed problem with writing
4596 history file for new users.
4600 history file for new users.
4597 (make_IPython): fixed bug where initial install would leave the
4601 (make_IPython): fixed bug where initial install would leave the
4598 user running in the .ipython dir.
4602 user running in the .ipython dir.
4599 (make_IPython): fixed bug where config dir .ipython would be
4603 (make_IPython): fixed bug where config dir .ipython would be
4600 created regardless of the given -ipythondir option. Thanks to Cory
4604 created regardless of the given -ipythondir option. Thanks to Cory
4601 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4605 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
4602
4606
4603 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4607 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
4604 type confirmations. Will need to use it in all of IPython's code
4608 type confirmations. Will need to use it in all of IPython's code
4605 consistently.
4609 consistently.
4606
4610
4607 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4611 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
4608 context to print 31 lines instead of the default 5. This will make
4612 context to print 31 lines instead of the default 5. This will make
4609 the crash reports extremely detailed in case the problem is in
4613 the crash reports extremely detailed in case the problem is in
4610 libraries I don't have access to.
4614 libraries I don't have access to.
4611
4615
4612 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4616 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
4613 line of defense' code to still crash, but giving users fair
4617 line of defense' code to still crash, but giving users fair
4614 warning. I don't want internal errors to go unreported: if there's
4618 warning. I don't want internal errors to go unreported: if there's
4615 an internal problem, IPython should crash and generate a full
4619 an internal problem, IPython should crash and generate a full
4616 report.
4620 report.
4617
4621
4618 2002-11-08 Fernando Perez <fperez@colorado.edu>
4622 2002-11-08 Fernando Perez <fperez@colorado.edu>
4619
4623
4620 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4624 * IPython/iplib.py (InteractiveShell.interact): added code to trap
4621 otherwise uncaught exceptions which can appear if people set
4625 otherwise uncaught exceptions which can appear if people set
4622 sys.stdout to something badly broken. Thanks to a crash report
4626 sys.stdout to something badly broken. Thanks to a crash report
4623 from henni-AT-mail.brainbot.com.
4627 from henni-AT-mail.brainbot.com.
4624
4628
4625 2002-11-04 Fernando Perez <fperez@colorado.edu>
4629 2002-11-04 Fernando Perez <fperez@colorado.edu>
4626
4630
4627 * IPython/iplib.py (InteractiveShell.interact): added
4631 * IPython/iplib.py (InteractiveShell.interact): added
4628 __IPYTHON__active to the builtins. It's a flag which goes on when
4632 __IPYTHON__active to the builtins. It's a flag which goes on when
4629 the interaction starts and goes off again when it stops. This
4633 the interaction starts and goes off again when it stops. This
4630 allows embedding code to detect being inside IPython. Before this
4634 allows embedding code to detect being inside IPython. Before this
4631 was done via __IPYTHON__, but that only shows that an IPython
4635 was done via __IPYTHON__, but that only shows that an IPython
4632 instance has been created.
4636 instance has been created.
4633
4637
4634 * IPython/Magic.py (Magic.magic_env): I realized that in a
4638 * IPython/Magic.py (Magic.magic_env): I realized that in a
4635 UserDict, instance.data holds the data as a normal dict. So I
4639 UserDict, instance.data holds the data as a normal dict. So I
4636 modified @env to return os.environ.data instead of rebuilding a
4640 modified @env to return os.environ.data instead of rebuilding a
4637 dict by hand.
4641 dict by hand.
4638
4642
4639 2002-11-02 Fernando Perez <fperez@colorado.edu>
4643 2002-11-02 Fernando Perez <fperez@colorado.edu>
4640
4644
4641 * IPython/genutils.py (warn): changed so that level 1 prints no
4645 * IPython/genutils.py (warn): changed so that level 1 prints no
4642 header. Level 2 is now the default (with 'WARNING' header, as
4646 header. Level 2 is now the default (with 'WARNING' header, as
4643 before). I think I tracked all places where changes were needed in
4647 before). I think I tracked all places where changes were needed in
4644 IPython, but outside code using the old level numbering may have
4648 IPython, but outside code using the old level numbering may have
4645 broken.
4649 broken.
4646
4650
4647 * IPython/iplib.py (InteractiveShell.runcode): added this to
4651 * IPython/iplib.py (InteractiveShell.runcode): added this to
4648 handle the tracebacks in SystemExit traps correctly. The previous
4652 handle the tracebacks in SystemExit traps correctly. The previous
4649 code (through interact) was printing more of the stack than
4653 code (through interact) was printing more of the stack than
4650 necessary, showing IPython internal code to the user.
4654 necessary, showing IPython internal code to the user.
4651
4655
4652 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4656 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
4653 default. Now that the default at the confirmation prompt is yes,
4657 default. Now that the default at the confirmation prompt is yes,
4654 it's not so intrusive. François' argument that ipython sessions
4658 it's not so intrusive. François' argument that ipython sessions
4655 tend to be complex enough not to lose them from an accidental C-d,
4659 tend to be complex enough not to lose them from an accidental C-d,
4656 is a valid one.
4660 is a valid one.
4657
4661
4658 * IPython/iplib.py (InteractiveShell.interact): added a
4662 * IPython/iplib.py (InteractiveShell.interact): added a
4659 showtraceback() call to the SystemExit trap, and modified the exit
4663 showtraceback() call to the SystemExit trap, and modified the exit
4660 confirmation to have yes as the default.
4664 confirmation to have yes as the default.
4661
4665
4662 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4666 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
4663 this file. It's been gone from the code for a long time, this was
4667 this file. It's been gone from the code for a long time, this was
4664 simply leftover junk.
4668 simply leftover junk.
4665
4669
4666 2002-11-01 Fernando Perez <fperez@colorado.edu>
4670 2002-11-01 Fernando Perez <fperez@colorado.edu>
4667
4671
4668 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4672 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
4669 added. If set, IPython now traps EOF and asks for
4673 added. If set, IPython now traps EOF and asks for
4670 confirmation. After a request by François Pinard.
4674 confirmation. After a request by François Pinard.
4671
4675
4672 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4676 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
4673 of @abort, and with a new (better) mechanism for handling the
4677 of @abort, and with a new (better) mechanism for handling the
4674 exceptions.
4678 exceptions.
4675
4679
4676 2002-10-27 Fernando Perez <fperez@colorado.edu>
4680 2002-10-27 Fernando Perez <fperez@colorado.edu>
4677
4681
4678 * IPython/usage.py (__doc__): updated the --help information and
4682 * IPython/usage.py (__doc__): updated the --help information and
4679 the ipythonrc file to indicate that -log generates
4683 the ipythonrc file to indicate that -log generates
4680 ./ipython.log. Also fixed the corresponding info in @logstart.
4684 ./ipython.log. Also fixed the corresponding info in @logstart.
4681 This and several other fixes in the manuals thanks to reports by
4685 This and several other fixes in the manuals thanks to reports by
4682 François Pinard <pinard-AT-iro.umontreal.ca>.
4686 François Pinard <pinard-AT-iro.umontreal.ca>.
4683
4687
4684 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4688 * IPython/Logger.py (Logger.switch_log): Fixed error message to
4685 refer to @logstart (instead of @log, which doesn't exist).
4689 refer to @logstart (instead of @log, which doesn't exist).
4686
4690
4687 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4691 * IPython/iplib.py (InteractiveShell._prefilter): fixed
4688 AttributeError crash. Thanks to Christopher Armstrong
4692 AttributeError crash. Thanks to Christopher Armstrong
4689 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4693 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
4690 introduced recently (in 0.2.14pre37) with the fix to the eval
4694 introduced recently (in 0.2.14pre37) with the fix to the eval
4691 problem mentioned below.
4695 problem mentioned below.
4692
4696
4693 2002-10-17 Fernando Perez <fperez@colorado.edu>
4697 2002-10-17 Fernando Perez <fperez@colorado.edu>
4694
4698
4695 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4699 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
4696 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4700 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
4697
4701
4698 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4702 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
4699 this function to fix a problem reported by Alex Schmolck. He saw
4703 this function to fix a problem reported by Alex Schmolck. He saw
4700 it with list comprehensions and generators, which were getting
4704 it with list comprehensions and generators, which were getting
4701 called twice. The real problem was an 'eval' call in testing for
4705 called twice. The real problem was an 'eval' call in testing for
4702 automagic which was evaluating the input line silently.
4706 automagic which was evaluating the input line silently.
4703
4707
4704 This is a potentially very nasty bug, if the input has side
4708 This is a potentially very nasty bug, if the input has side
4705 effects which must not be repeated. The code is much cleaner now,
4709 effects which must not be repeated. The code is much cleaner now,
4706 without any blanket 'except' left and with a regexp test for
4710 without any blanket 'except' left and with a regexp test for
4707 actual function names.
4711 actual function names.
4708
4712
4709 But an eval remains, which I'm not fully comfortable with. I just
4713 But an eval remains, which I'm not fully comfortable with. I just
4710 don't know how to find out if an expression could be a callable in
4714 don't know how to find out if an expression could be a callable in
4711 the user's namespace without doing an eval on the string. However
4715 the user's namespace without doing an eval on the string. However
4712 that string is now much more strictly checked so that no code
4716 that string is now much more strictly checked so that no code
4713 slips by, so the eval should only happen for things that can
4717 slips by, so the eval should only happen for things that can
4714 really be only function/method names.
4718 really be only function/method names.
4715
4719
4716 2002-10-15 Fernando Perez <fperez@colorado.edu>
4720 2002-10-15 Fernando Perez <fperez@colorado.edu>
4717
4721
4718 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4722 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
4719 OSX information to main manual, removed README_Mac_OSX file from
4723 OSX information to main manual, removed README_Mac_OSX file from
4720 distribution. Also updated credits for recent additions.
4724 distribution. Also updated credits for recent additions.
4721
4725
4722 2002-10-10 Fernando Perez <fperez@colorado.edu>
4726 2002-10-10 Fernando Perez <fperez@colorado.edu>
4723
4727
4724 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4728 * README_Mac_OSX: Added a README for Mac OSX users for fixing
4725 terminal-related issues. Many thanks to Andrea Riciputi
4729 terminal-related issues. Many thanks to Andrea Riciputi
4726 <andrea.riciputi-AT-libero.it> for writing it.
4730 <andrea.riciputi-AT-libero.it> for writing it.
4727
4731
4728 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4732 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
4729 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4733 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
4730
4734
4731 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4735 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
4732 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4736 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
4733 <syver-en-AT-online.no> who both submitted patches for this problem.
4737 <syver-en-AT-online.no> who both submitted patches for this problem.
4734
4738
4735 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4739 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
4736 global embedding to make sure that things don't overwrite user
4740 global embedding to make sure that things don't overwrite user
4737 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4741 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
4738
4742
4739 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4743 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
4740 compatibility. Thanks to Hayden Callow
4744 compatibility. Thanks to Hayden Callow
4741 <h.callow-AT-elec.canterbury.ac.nz>
4745 <h.callow-AT-elec.canterbury.ac.nz>
4742
4746
4743 2002-10-04 Fernando Perez <fperez@colorado.edu>
4747 2002-10-04 Fernando Perez <fperez@colorado.edu>
4744
4748
4745 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4749 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
4746 Gnuplot.File objects.
4750 Gnuplot.File objects.
4747
4751
4748 2002-07-23 Fernando Perez <fperez@colorado.edu>
4752 2002-07-23 Fernando Perez <fperez@colorado.edu>
4749
4753
4750 * IPython/genutils.py (timing): Added timings() and timing() for
4754 * IPython/genutils.py (timing): Added timings() and timing() for
4751 quick access to the most commonly needed data, the execution
4755 quick access to the most commonly needed data, the execution
4752 times. Old timing() renamed to timings_out().
4756 times. Old timing() renamed to timings_out().
4753
4757
4754 2002-07-18 Fernando Perez <fperez@colorado.edu>
4758 2002-07-18 Fernando Perez <fperez@colorado.edu>
4755
4759
4756 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4760 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
4757 bug with nested instances disrupting the parent's tab completion.
4761 bug with nested instances disrupting the parent's tab completion.
4758
4762
4759 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4763 * IPython/iplib.py (all_completions): Added Alex Schmolck's
4760 all_completions code to begin the emacs integration.
4764 all_completions code to begin the emacs integration.
4761
4765
4762 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4766 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
4763 argument to allow titling individual arrays when plotting.
4767 argument to allow titling individual arrays when plotting.
4764
4768
4765 2002-07-15 Fernando Perez <fperez@colorado.edu>
4769 2002-07-15 Fernando Perez <fperez@colorado.edu>
4766
4770
4767 * setup.py (make_shortcut): changed to retrieve the value of
4771 * setup.py (make_shortcut): changed to retrieve the value of
4768 'Program Files' directory from the registry (this value changes in
4772 'Program Files' directory from the registry (this value changes in
4769 non-english versions of Windows). Thanks to Thomas Fanslau
4773 non-english versions of Windows). Thanks to Thomas Fanslau
4770 <tfanslau-AT-gmx.de> for the report.
4774 <tfanslau-AT-gmx.de> for the report.
4771
4775
4772 2002-07-10 Fernando Perez <fperez@colorado.edu>
4776 2002-07-10 Fernando Perez <fperez@colorado.edu>
4773
4777
4774 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4778 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
4775 a bug in pdb, which crashes if a line with only whitespace is
4779 a bug in pdb, which crashes if a line with only whitespace is
4776 entered. Bug report submitted to sourceforge.
4780 entered. Bug report submitted to sourceforge.
4777
4781
4778 2002-07-09 Fernando Perez <fperez@colorado.edu>
4782 2002-07-09 Fernando Perez <fperez@colorado.edu>
4779
4783
4780 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4784 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
4781 reporting exceptions (it's a bug in inspect.py, I just set a
4785 reporting exceptions (it's a bug in inspect.py, I just set a
4782 workaround).
4786 workaround).
4783
4787
4784 2002-07-08 Fernando Perez <fperez@colorado.edu>
4788 2002-07-08 Fernando Perez <fperez@colorado.edu>
4785
4789
4786 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4790 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
4787 __IPYTHON__ in __builtins__ to show up in user_ns.
4791 __IPYTHON__ in __builtins__ to show up in user_ns.
4788
4792
4789 2002-07-03 Fernando Perez <fperez@colorado.edu>
4793 2002-07-03 Fernando Perez <fperez@colorado.edu>
4790
4794
4791 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4795 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
4792 name from @gp_set_instance to @gp_set_default.
4796 name from @gp_set_instance to @gp_set_default.
4793
4797
4794 * IPython/ipmaker.py (make_IPython): default editor value set to
4798 * IPython/ipmaker.py (make_IPython): default editor value set to
4795 '0' (a string), to match the rc file. Otherwise will crash when
4799 '0' (a string), to match the rc file. Otherwise will crash when
4796 .strip() is called on it.
4800 .strip() is called on it.
4797
4801
4798
4802
4799 2002-06-28 Fernando Perez <fperez@colorado.edu>
4803 2002-06-28 Fernando Perez <fperez@colorado.edu>
4800
4804
4801 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4805 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
4802 of files in current directory when a file is executed via
4806 of files in current directory when a file is executed via
4803 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4807 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
4804
4808
4805 * setup.py (manfiles): fix for rpm builds, submitted by RA
4809 * setup.py (manfiles): fix for rpm builds, submitted by RA
4806 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4810 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
4807
4811
4808 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4812 * IPython/ipmaker.py (make_IPython): fixed lookup of default
4809 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4813 editor when set to '0'. Problem was, '0' evaluates to True (it's a
4810 string!). A. Schmolck caught this one.
4814 string!). A. Schmolck caught this one.
4811
4815
4812 2002-06-27 Fernando Perez <fperez@colorado.edu>
4816 2002-06-27 Fernando Perez <fperez@colorado.edu>
4813
4817
4814 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4818 * IPython/ipmaker.py (make_IPython): fixed bug when running user
4815 defined files at the cmd line. __name__ wasn't being set to
4819 defined files at the cmd line. __name__ wasn't being set to
4816 __main__.
4820 __main__.
4817
4821
4818 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4822 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
4819 regular lists and tuples besides Numeric arrays.
4823 regular lists and tuples besides Numeric arrays.
4820
4824
4821 * IPython/Prompts.py (CachedOutput.__call__): Added output
4825 * IPython/Prompts.py (CachedOutput.__call__): Added output
4822 supression for input ending with ';'. Similar to Mathematica and
4826 supression for input ending with ';'. Similar to Mathematica and
4823 Matlab. The _* vars and Out[] list are still updated, just like
4827 Matlab. The _* vars and Out[] list are still updated, just like
4824 Mathematica behaves.
4828 Mathematica behaves.
4825
4829
4826 2002-06-25 Fernando Perez <fperez@colorado.edu>
4830 2002-06-25 Fernando Perez <fperez@colorado.edu>
4827
4831
4828 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4832 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
4829 .ini extensions for profiels under Windows.
4833 .ini extensions for profiels under Windows.
4830
4834
4831 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4835 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
4832 string form. Fix contributed by Alexander Schmolck
4836 string form. Fix contributed by Alexander Schmolck
4833 <a.schmolck-AT-gmx.net>
4837 <a.schmolck-AT-gmx.net>
4834
4838
4835 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4839 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
4836 pre-configured Gnuplot instance.
4840 pre-configured Gnuplot instance.
4837
4841
4838 2002-06-21 Fernando Perez <fperez@colorado.edu>
4842 2002-06-21 Fernando Perez <fperez@colorado.edu>
4839
4843
4840 * IPython/numutils.py (exp_safe): new function, works around the
4844 * IPython/numutils.py (exp_safe): new function, works around the
4841 underflow problems in Numeric.
4845 underflow problems in Numeric.
4842 (log2): New fn. Safe log in base 2: returns exact integer answer
4846 (log2): New fn. Safe log in base 2: returns exact integer answer
4843 for exact integer powers of 2.
4847 for exact integer powers of 2.
4844
4848
4845 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4849 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
4846 properly.
4850 properly.
4847
4851
4848 2002-06-20 Fernando Perez <fperez@colorado.edu>
4852 2002-06-20 Fernando Perez <fperez@colorado.edu>
4849
4853
4850 * IPython/genutils.py (timing): new function like
4854 * IPython/genutils.py (timing): new function like
4851 Mathematica's. Similar to time_test, but returns more info.
4855 Mathematica's. Similar to time_test, but returns more info.
4852
4856
4853 2002-06-18 Fernando Perez <fperez@colorado.edu>
4857 2002-06-18 Fernando Perez <fperez@colorado.edu>
4854
4858
4855 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4859 * IPython/Magic.py (Magic.magic_save): modified @save and @r
4856 according to Mike Heeter's suggestions.
4860 according to Mike Heeter's suggestions.
4857
4861
4858 2002-06-16 Fernando Perez <fperez@colorado.edu>
4862 2002-06-16 Fernando Perez <fperez@colorado.edu>
4859
4863
4860 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4864 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
4861 system. GnuplotMagic is gone as a user-directory option. New files
4865 system. GnuplotMagic is gone as a user-directory option. New files
4862 make it easier to use all the gnuplot stuff both from external
4866 make it easier to use all the gnuplot stuff both from external
4863 programs as well as from IPython. Had to rewrite part of
4867 programs as well as from IPython. Had to rewrite part of
4864 hardcopy() b/c of a strange bug: often the ps files simply don't
4868 hardcopy() b/c of a strange bug: often the ps files simply don't
4865 get created, and require a repeat of the command (often several
4869 get created, and require a repeat of the command (often several
4866 times).
4870 times).
4867
4871
4868 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4872 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
4869 resolve output channel at call time, so that if sys.stderr has
4873 resolve output channel at call time, so that if sys.stderr has
4870 been redirected by user this gets honored.
4874 been redirected by user this gets honored.
4871
4875
4872 2002-06-13 Fernando Perez <fperez@colorado.edu>
4876 2002-06-13 Fernando Perez <fperez@colorado.edu>
4873
4877
4874 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4878 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
4875 IPShell. Kept a copy with the old names to avoid breaking people's
4879 IPShell. Kept a copy with the old names to avoid breaking people's
4876 embedded code.
4880 embedded code.
4877
4881
4878 * IPython/ipython: simplified it to the bare minimum after
4882 * IPython/ipython: simplified it to the bare minimum after
4879 Holger's suggestions. Added info about how to use it in
4883 Holger's suggestions. Added info about how to use it in
4880 PYTHONSTARTUP.
4884 PYTHONSTARTUP.
4881
4885
4882 * IPython/Shell.py (IPythonShell): changed the options passing
4886 * IPython/Shell.py (IPythonShell): changed the options passing
4883 from a string with funky %s replacements to a straight list. Maybe
4887 from a string with funky %s replacements to a straight list. Maybe
4884 a bit more typing, but it follows sys.argv conventions, so there's
4888 a bit more typing, but it follows sys.argv conventions, so there's
4885 less special-casing to remember.
4889 less special-casing to remember.
4886
4890
4887 2002-06-12 Fernando Perez <fperez@colorado.edu>
4891 2002-06-12 Fernando Perez <fperez@colorado.edu>
4888
4892
4889 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4893 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
4890 command. Thanks to a suggestion by Mike Heeter.
4894 command. Thanks to a suggestion by Mike Heeter.
4891 (Magic.magic_pfile): added behavior to look at filenames if given
4895 (Magic.magic_pfile): added behavior to look at filenames if given
4892 arg is not a defined object.
4896 arg is not a defined object.
4893 (Magic.magic_save): New @save function to save code snippets. Also
4897 (Magic.magic_save): New @save function to save code snippets. Also
4894 a Mike Heeter idea.
4898 a Mike Heeter idea.
4895
4899
4896 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4900 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
4897 plot() and replot(). Much more convenient now, especially for
4901 plot() and replot(). Much more convenient now, especially for
4898 interactive use.
4902 interactive use.
4899
4903
4900 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4904 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
4901 filenames.
4905 filenames.
4902
4906
4903 2002-06-02 Fernando Perez <fperez@colorado.edu>
4907 2002-06-02 Fernando Perez <fperez@colorado.edu>
4904
4908
4905 * IPython/Struct.py (Struct.__init__): modified to admit
4909 * IPython/Struct.py (Struct.__init__): modified to admit
4906 initialization via another struct.
4910 initialization via another struct.
4907
4911
4908 * IPython/genutils.py (SystemExec.__init__): New stateful
4912 * IPython/genutils.py (SystemExec.__init__): New stateful
4909 interface to xsys and bq. Useful for writing system scripts.
4913 interface to xsys and bq. Useful for writing system scripts.
4910
4914
4911 2002-05-30 Fernando Perez <fperez@colorado.edu>
4915 2002-05-30 Fernando Perez <fperez@colorado.edu>
4912
4916
4913 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4917 * MANIFEST.in: Changed docfile selection to exclude all the lyx
4914 documents. This will make the user download smaller (it's getting
4918 documents. This will make the user download smaller (it's getting
4915 too big).
4919 too big).
4916
4920
4917 2002-05-29 Fernando Perez <fperez@colorado.edu>
4921 2002-05-29 Fernando Perez <fperez@colorado.edu>
4918
4922
4919 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4923 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
4920 fix problems with shelve and pickle. Seems to work, but I don't
4924 fix problems with shelve and pickle. Seems to work, but I don't
4921 know if corner cases break it. Thanks to Mike Heeter
4925 know if corner cases break it. Thanks to Mike Heeter
4922 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4926 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
4923
4927
4924 2002-05-24 Fernando Perez <fperez@colorado.edu>
4928 2002-05-24 Fernando Perez <fperez@colorado.edu>
4925
4929
4926 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4930 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
4927 macros having broken.
4931 macros having broken.
4928
4932
4929 2002-05-21 Fernando Perez <fperez@colorado.edu>
4933 2002-05-21 Fernando Perez <fperez@colorado.edu>
4930
4934
4931 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4935 * IPython/Magic.py (Magic.magic_logstart): fixed recently
4932 introduced logging bug: all history before logging started was
4936 introduced logging bug: all history before logging started was
4933 being written one character per line! This came from the redesign
4937 being written one character per line! This came from the redesign
4934 of the input history as a special list which slices to strings,
4938 of the input history as a special list which slices to strings,
4935 not to lists.
4939 not to lists.
4936
4940
4937 2002-05-20 Fernando Perez <fperez@colorado.edu>
4941 2002-05-20 Fernando Perez <fperez@colorado.edu>
4938
4942
4939 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4943 * IPython/Prompts.py (CachedOutput.__init__): made the color table
4940 be an attribute of all classes in this module. The design of these
4944 be an attribute of all classes in this module. The design of these
4941 classes needs some serious overhauling.
4945 classes needs some serious overhauling.
4942
4946
4943 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4947 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
4944 which was ignoring '_' in option names.
4948 which was ignoring '_' in option names.
4945
4949
4946 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4950 * IPython/ultraTB.py (FormattedTB.__init__): Changed
4947 'Verbose_novars' to 'Context' and made it the new default. It's a
4951 'Verbose_novars' to 'Context' and made it the new default. It's a
4948 bit more readable and also safer than verbose.
4952 bit more readable and also safer than verbose.
4949
4953
4950 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4954 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
4951 triple-quoted strings.
4955 triple-quoted strings.
4952
4956
4953 * IPython/OInspect.py (__all__): new module exposing the object
4957 * IPython/OInspect.py (__all__): new module exposing the object
4954 introspection facilities. Now the corresponding magics are dummy
4958 introspection facilities. Now the corresponding magics are dummy
4955 wrappers around this. Having this module will make it much easier
4959 wrappers around this. Having this module will make it much easier
4956 to put these functions into our modified pdb.
4960 to put these functions into our modified pdb.
4957 This new object inspector system uses the new colorizing module,
4961 This new object inspector system uses the new colorizing module,
4958 so source code and other things are nicely syntax highlighted.
4962 so source code and other things are nicely syntax highlighted.
4959
4963
4960 2002-05-18 Fernando Perez <fperez@colorado.edu>
4964 2002-05-18 Fernando Perez <fperez@colorado.edu>
4961
4965
4962 * IPython/ColorANSI.py: Split the coloring tools into a separate
4966 * IPython/ColorANSI.py: Split the coloring tools into a separate
4963 module so I can use them in other code easier (they were part of
4967 module so I can use them in other code easier (they were part of
4964 ultraTB).
4968 ultraTB).
4965
4969
4966 2002-05-17 Fernando Perez <fperez@colorado.edu>
4970 2002-05-17 Fernando Perez <fperez@colorado.edu>
4967
4971
4968 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4972 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
4969 fixed it to set the global 'g' also to the called instance, as
4973 fixed it to set the global 'g' also to the called instance, as
4970 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4974 long as 'g' was still a gnuplot instance (so it doesn't overwrite
4971 user's 'g' variables).
4975 user's 'g' variables).
4972
4976
4973 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4977 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
4974 global variables (aliases to _ih,_oh) so that users which expect
4978 global variables (aliases to _ih,_oh) so that users which expect
4975 In[5] or Out[7] to work aren't unpleasantly surprised.
4979 In[5] or Out[7] to work aren't unpleasantly surprised.
4976 (InputList.__getslice__): new class to allow executing slices of
4980 (InputList.__getslice__): new class to allow executing slices of
4977 input history directly. Very simple class, complements the use of
4981 input history directly. Very simple class, complements the use of
4978 macros.
4982 macros.
4979
4983
4980 2002-05-16 Fernando Perez <fperez@colorado.edu>
4984 2002-05-16 Fernando Perez <fperez@colorado.edu>
4981
4985
4982 * setup.py (docdirbase): make doc directory be just doc/IPython
4986 * setup.py (docdirbase): make doc directory be just doc/IPython
4983 without version numbers, it will reduce clutter for users.
4987 without version numbers, it will reduce clutter for users.
4984
4988
4985 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4989 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
4986 execfile call to prevent possible memory leak. See for details:
4990 execfile call to prevent possible memory leak. See for details:
4987 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4991 http://mail.python.org/pipermail/python-list/2002-February/088476.html
4988
4992
4989 2002-05-15 Fernando Perez <fperez@colorado.edu>
4993 2002-05-15 Fernando Perez <fperez@colorado.edu>
4990
4994
4991 * IPython/Magic.py (Magic.magic_psource): made the object
4995 * IPython/Magic.py (Magic.magic_psource): made the object
4992 introspection names be more standard: pdoc, pdef, pfile and
4996 introspection names be more standard: pdoc, pdef, pfile and
4993 psource. They all print/page their output, and it makes
4997 psource. They all print/page their output, and it makes
4994 remembering them easier. Kept old names for compatibility as
4998 remembering them easier. Kept old names for compatibility as
4995 aliases.
4999 aliases.
4996
5000
4997 2002-05-14 Fernando Perez <fperez@colorado.edu>
5001 2002-05-14 Fernando Perez <fperez@colorado.edu>
4998
5002
4999 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5003 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
5000 what the mouse problem was. The trick is to use gnuplot with temp
5004 what the mouse problem was. The trick is to use gnuplot with temp
5001 files and NOT with pipes (for data communication), because having
5005 files and NOT with pipes (for data communication), because having
5002 both pipes and the mouse on is bad news.
5006 both pipes and the mouse on is bad news.
5003
5007
5004 2002-05-13 Fernando Perez <fperez@colorado.edu>
5008 2002-05-13 Fernando Perez <fperez@colorado.edu>
5005
5009
5006 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5010 * IPython/Magic.py (Magic._ofind): fixed namespace order search
5007 bug. Information would be reported about builtins even when
5011 bug. Information would be reported about builtins even when
5008 user-defined functions overrode them.
5012 user-defined functions overrode them.
5009
5013
5010 2002-05-11 Fernando Perez <fperez@colorado.edu>
5014 2002-05-11 Fernando Perez <fperez@colorado.edu>
5011
5015
5012 * IPython/__init__.py (__all__): removed FlexCompleter from
5016 * IPython/__init__.py (__all__): removed FlexCompleter from
5013 __all__ so that things don't fail in platforms without readline.
5017 __all__ so that things don't fail in platforms without readline.
5014
5018
5015 2002-05-10 Fernando Perez <fperez@colorado.edu>
5019 2002-05-10 Fernando Perez <fperez@colorado.edu>
5016
5020
5017 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5021 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
5018 it requires Numeric, effectively making Numeric a dependency for
5022 it requires Numeric, effectively making Numeric a dependency for
5019 IPython.
5023 IPython.
5020
5024
5021 * Released 0.2.13
5025 * Released 0.2.13
5022
5026
5023 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5027 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
5024 profiler interface. Now all the major options from the profiler
5028 profiler interface. Now all the major options from the profiler
5025 module are directly supported in IPython, both for single
5029 module are directly supported in IPython, both for single
5026 expressions (@prun) and for full programs (@run -p).
5030 expressions (@prun) and for full programs (@run -p).
5027
5031
5028 2002-05-09 Fernando Perez <fperez@colorado.edu>
5032 2002-05-09 Fernando Perez <fperez@colorado.edu>
5029
5033
5030 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5034 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
5031 magic properly formatted for screen.
5035 magic properly formatted for screen.
5032
5036
5033 * setup.py (make_shortcut): Changed things to put pdf version in
5037 * setup.py (make_shortcut): Changed things to put pdf version in
5034 doc/ instead of doc/manual (had to change lyxport a bit).
5038 doc/ instead of doc/manual (had to change lyxport a bit).
5035
5039
5036 * IPython/Magic.py (Profile.string_stats): made profile runs go
5040 * IPython/Magic.py (Profile.string_stats): made profile runs go
5037 through pager (they are long and a pager allows searching, saving,
5041 through pager (they are long and a pager allows searching, saving,
5038 etc.)
5042 etc.)
5039
5043
5040 2002-05-08 Fernando Perez <fperez@colorado.edu>
5044 2002-05-08 Fernando Perez <fperez@colorado.edu>
5041
5045
5042 * Released 0.2.12
5046 * Released 0.2.12
5043
5047
5044 2002-05-06 Fernando Perez <fperez@colorado.edu>
5048 2002-05-06 Fernando Perez <fperez@colorado.edu>
5045
5049
5046 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5050 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
5047 introduced); 'hist n1 n2' was broken.
5051 introduced); 'hist n1 n2' was broken.
5048 (Magic.magic_pdb): added optional on/off arguments to @pdb
5052 (Magic.magic_pdb): added optional on/off arguments to @pdb
5049 (Magic.magic_run): added option -i to @run, which executes code in
5053 (Magic.magic_run): added option -i to @run, which executes code in
5050 the IPython namespace instead of a clean one. Also added @irun as
5054 the IPython namespace instead of a clean one. Also added @irun as
5051 an alias to @run -i.
5055 an alias to @run -i.
5052
5056
5053 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5057 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
5054 fixed (it didn't really do anything, the namespaces were wrong).
5058 fixed (it didn't really do anything, the namespaces were wrong).
5055
5059
5056 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5060 * IPython/Debugger.py (__init__): Added workaround for python 2.1
5057
5061
5058 * IPython/__init__.py (__all__): Fixed package namespace, now
5062 * IPython/__init__.py (__all__): Fixed package namespace, now
5059 'import IPython' does give access to IPython.<all> as
5063 'import IPython' does give access to IPython.<all> as
5060 expected. Also renamed __release__ to Release.
5064 expected. Also renamed __release__ to Release.
5061
5065
5062 * IPython/Debugger.py (__license__): created new Pdb class which
5066 * IPython/Debugger.py (__license__): created new Pdb class which
5063 functions like a drop-in for the normal pdb.Pdb but does NOT
5067 functions like a drop-in for the normal pdb.Pdb but does NOT
5064 import readline by default. This way it doesn't muck up IPython's
5068 import readline by default. This way it doesn't muck up IPython's
5065 readline handling, and now tab-completion finally works in the
5069 readline handling, and now tab-completion finally works in the
5066 debugger -- sort of. It completes things globally visible, but the
5070 debugger -- sort of. It completes things globally visible, but the
5067 completer doesn't track the stack as pdb walks it. That's a bit
5071 completer doesn't track the stack as pdb walks it. That's a bit
5068 tricky, and I'll have to implement it later.
5072 tricky, and I'll have to implement it later.
5069
5073
5070 2002-05-05 Fernando Perez <fperez@colorado.edu>
5074 2002-05-05 Fernando Perez <fperez@colorado.edu>
5071
5075
5072 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5076 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
5073 magic docstrings when printed via ? (explicit \'s were being
5077 magic docstrings when printed via ? (explicit \'s were being
5074 printed).
5078 printed).
5075
5079
5076 * IPython/ipmaker.py (make_IPython): fixed namespace
5080 * IPython/ipmaker.py (make_IPython): fixed namespace
5077 identification bug. Now variables loaded via logs or command-line
5081 identification bug. Now variables loaded via logs or command-line
5078 files are recognized in the interactive namespace by @who.
5082 files are recognized in the interactive namespace by @who.
5079
5083
5080 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5084 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
5081 log replay system stemming from the string form of Structs.
5085 log replay system stemming from the string form of Structs.
5082
5086
5083 * IPython/Magic.py (Macro.__init__): improved macros to properly
5087 * IPython/Magic.py (Macro.__init__): improved macros to properly
5084 handle magic commands in them.
5088 handle magic commands in them.
5085 (Magic.magic_logstart): usernames are now expanded so 'logstart
5089 (Magic.magic_logstart): usernames are now expanded so 'logstart
5086 ~/mylog' now works.
5090 ~/mylog' now works.
5087
5091
5088 * IPython/iplib.py (complete): fixed bug where paths starting with
5092 * IPython/iplib.py (complete): fixed bug where paths starting with
5089 '/' would be completed as magic names.
5093 '/' would be completed as magic names.
5090
5094
5091 2002-05-04 Fernando Perez <fperez@colorado.edu>
5095 2002-05-04 Fernando Perez <fperez@colorado.edu>
5092
5096
5093 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5097 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
5094 allow running full programs under the profiler's control.
5098 allow running full programs under the profiler's control.
5095
5099
5096 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5100 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
5097 mode to report exceptions verbosely but without formatting
5101 mode to report exceptions verbosely but without formatting
5098 variables. This addresses the issue of ipython 'freezing' (it's
5102 variables. This addresses the issue of ipython 'freezing' (it's
5099 not frozen, but caught in an expensive formatting loop) when huge
5103 not frozen, but caught in an expensive formatting loop) when huge
5100 variables are in the context of an exception.
5104 variables are in the context of an exception.
5101 (VerboseTB.text): Added '--->' markers at line where exception was
5105 (VerboseTB.text): Added '--->' markers at line where exception was
5102 triggered. Much clearer to read, especially in NoColor modes.
5106 triggered. Much clearer to read, especially in NoColor modes.
5103
5107
5104 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5108 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
5105 implemented in reverse when changing to the new parse_options().
5109 implemented in reverse when changing to the new parse_options().
5106
5110
5107 2002-05-03 Fernando Perez <fperez@colorado.edu>
5111 2002-05-03 Fernando Perez <fperez@colorado.edu>
5108
5112
5109 * IPython/Magic.py (Magic.parse_options): new function so that
5113 * IPython/Magic.py (Magic.parse_options): new function so that
5110 magics can parse options easier.
5114 magics can parse options easier.
5111 (Magic.magic_prun): new function similar to profile.run(),
5115 (Magic.magic_prun): new function similar to profile.run(),
5112 suggested by Chris Hart.
5116 suggested by Chris Hart.
5113 (Magic.magic_cd): fixed behavior so that it only changes if
5117 (Magic.magic_cd): fixed behavior so that it only changes if
5114 directory actually is in history.
5118 directory actually is in history.
5115
5119
5116 * IPython/usage.py (__doc__): added information about potential
5120 * IPython/usage.py (__doc__): added information about potential
5117 slowness of Verbose exception mode when there are huge data
5121 slowness of Verbose exception mode when there are huge data
5118 structures to be formatted (thanks to Archie Paulson).
5122 structures to be formatted (thanks to Archie Paulson).
5119
5123
5120 * IPython/ipmaker.py (make_IPython): Changed default logging
5124 * IPython/ipmaker.py (make_IPython): Changed default logging
5121 (when simply called with -log) to use curr_dir/ipython.log in
5125 (when simply called with -log) to use curr_dir/ipython.log in
5122 rotate mode. Fixed crash which was occuring with -log before
5126 rotate mode. Fixed crash which was occuring with -log before
5123 (thanks to Jim Boyle).
5127 (thanks to Jim Boyle).
5124
5128
5125 2002-05-01 Fernando Perez <fperez@colorado.edu>
5129 2002-05-01 Fernando Perez <fperez@colorado.edu>
5126
5130
5127 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5131 * Released 0.2.11 for these fixes (mainly the ultraTB one which
5128 was nasty -- though somewhat of a corner case).
5132 was nasty -- though somewhat of a corner case).
5129
5133
5130 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5134 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
5131 text (was a bug).
5135 text (was a bug).
5132
5136
5133 2002-04-30 Fernando Perez <fperez@colorado.edu>
5137 2002-04-30 Fernando Perez <fperez@colorado.edu>
5134
5138
5135 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5139 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
5136 a print after ^D or ^C from the user so that the In[] prompt
5140 a print after ^D or ^C from the user so that the In[] prompt
5137 doesn't over-run the gnuplot one.
5141 doesn't over-run the gnuplot one.
5138
5142
5139 2002-04-29 Fernando Perez <fperez@colorado.edu>
5143 2002-04-29 Fernando Perez <fperez@colorado.edu>
5140
5144
5141 * Released 0.2.10
5145 * Released 0.2.10
5142
5146
5143 * IPython/__release__.py (version): get date dynamically.
5147 * IPython/__release__.py (version): get date dynamically.
5144
5148
5145 * Misc. documentation updates thanks to Arnd's comments. Also ran
5149 * Misc. documentation updates thanks to Arnd's comments. Also ran
5146 a full spellcheck on the manual (hadn't been done in a while).
5150 a full spellcheck on the manual (hadn't been done in a while).
5147
5151
5148 2002-04-27 Fernando Perez <fperez@colorado.edu>
5152 2002-04-27 Fernando Perez <fperez@colorado.edu>
5149
5153
5150 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5154 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
5151 starting a log in mid-session would reset the input history list.
5155 starting a log in mid-session would reset the input history list.
5152
5156
5153 2002-04-26 Fernando Perez <fperez@colorado.edu>
5157 2002-04-26 Fernando Perez <fperez@colorado.edu>
5154
5158
5155 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5159 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
5156 all files were being included in an update. Now anything in
5160 all files were being included in an update. Now anything in
5157 UserConfig that matches [A-Za-z]*.py will go (this excludes
5161 UserConfig that matches [A-Za-z]*.py will go (this excludes
5158 __init__.py)
5162 __init__.py)
5159
5163
5160 2002-04-25 Fernando Perez <fperez@colorado.edu>
5164 2002-04-25 Fernando Perez <fperez@colorado.edu>
5161
5165
5162 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5166 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
5163 to __builtins__ so that any form of embedded or imported code can
5167 to __builtins__ so that any form of embedded or imported code can
5164 test for being inside IPython.
5168 test for being inside IPython.
5165
5169
5166 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5170 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
5167 changed to GnuplotMagic because it's now an importable module,
5171 changed to GnuplotMagic because it's now an importable module,
5168 this makes the name follow that of the standard Gnuplot module.
5172 this makes the name follow that of the standard Gnuplot module.
5169 GnuplotMagic can now be loaded at any time in mid-session.
5173 GnuplotMagic can now be loaded at any time in mid-session.
5170
5174
5171 2002-04-24 Fernando Perez <fperez@colorado.edu>
5175 2002-04-24 Fernando Perez <fperez@colorado.edu>
5172
5176
5173 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5177 * IPython/numutils.py: removed SIUnits. It doesn't properly set
5174 the globals (IPython has its own namespace) and the
5178 the globals (IPython has its own namespace) and the
5175 PhysicalQuantity stuff is much better anyway.
5179 PhysicalQuantity stuff is much better anyway.
5176
5180
5177 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5181 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
5178 embedding example to standard user directory for
5182 embedding example to standard user directory for
5179 distribution. Also put it in the manual.
5183 distribution. Also put it in the manual.
5180
5184
5181 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5185 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
5182 instance as first argument (so it doesn't rely on some obscure
5186 instance as first argument (so it doesn't rely on some obscure
5183 hidden global).
5187 hidden global).
5184
5188
5185 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5189 * IPython/UserConfig/ipythonrc.py: put () back in accepted
5186 delimiters. While it prevents ().TAB from working, it allows
5190 delimiters. While it prevents ().TAB from working, it allows
5187 completions in open (... expressions. This is by far a more common
5191 completions in open (... expressions. This is by far a more common
5188 case.
5192 case.
5189
5193
5190 2002-04-23 Fernando Perez <fperez@colorado.edu>
5194 2002-04-23 Fernando Perez <fperez@colorado.edu>
5191
5195
5192 * IPython/Extensions/InterpreterPasteInput.py: new
5196 * IPython/Extensions/InterpreterPasteInput.py: new
5193 syntax-processing module for pasting lines with >>> or ... at the
5197 syntax-processing module for pasting lines with >>> or ... at the
5194 start.
5198 start.
5195
5199
5196 * IPython/Extensions/PhysicalQ_Interactive.py
5200 * IPython/Extensions/PhysicalQ_Interactive.py
5197 (PhysicalQuantityInteractive.__int__): fixed to work with either
5201 (PhysicalQuantityInteractive.__int__): fixed to work with either
5198 Numeric or math.
5202 Numeric or math.
5199
5203
5200 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5204 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
5201 provided profiles. Now we have:
5205 provided profiles. Now we have:
5202 -math -> math module as * and cmath with its own namespace.
5206 -math -> math module as * and cmath with its own namespace.
5203 -numeric -> Numeric as *, plus gnuplot & grace
5207 -numeric -> Numeric as *, plus gnuplot & grace
5204 -physics -> same as before
5208 -physics -> same as before
5205
5209
5206 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5210 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
5207 user-defined magics wouldn't be found by @magic if they were
5211 user-defined magics wouldn't be found by @magic if they were
5208 defined as class methods. Also cleaned up the namespace search
5212 defined as class methods. Also cleaned up the namespace search
5209 logic and the string building (to use %s instead of many repeated
5213 logic and the string building (to use %s instead of many repeated
5210 string adds).
5214 string adds).
5211
5215
5212 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5216 * IPython/UserConfig/example-magic.py (magic_foo): updated example
5213 of user-defined magics to operate with class methods (cleaner, in
5217 of user-defined magics to operate with class methods (cleaner, in
5214 line with the gnuplot code).
5218 line with the gnuplot code).
5215
5219
5216 2002-04-22 Fernando Perez <fperez@colorado.edu>
5220 2002-04-22 Fernando Perez <fperez@colorado.edu>
5217
5221
5218 * setup.py: updated dependency list so that manual is updated when
5222 * setup.py: updated dependency list so that manual is updated when
5219 all included files change.
5223 all included files change.
5220
5224
5221 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5225 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
5222 the delimiter removal option (the fix is ugly right now).
5226 the delimiter removal option (the fix is ugly right now).
5223
5227
5224 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5228 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
5225 all of the math profile (quicker loading, no conflict between
5229 all of the math profile (quicker loading, no conflict between
5226 g-9.8 and g-gnuplot).
5230 g-9.8 and g-gnuplot).
5227
5231
5228 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5232 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
5229 name of post-mortem files to IPython_crash_report.txt.
5233 name of post-mortem files to IPython_crash_report.txt.
5230
5234
5231 * Cleanup/update of the docs. Added all the new readline info and
5235 * Cleanup/update of the docs. Added all the new readline info and
5232 formatted all lists as 'real lists'.
5236 formatted all lists as 'real lists'.
5233
5237
5234 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5238 * IPython/ipmaker.py (make_IPython): removed now-obsolete
5235 tab-completion options, since the full readline parse_and_bind is
5239 tab-completion options, since the full readline parse_and_bind is
5236 now accessible.
5240 now accessible.
5237
5241
5238 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5242 * IPython/iplib.py (InteractiveShell.init_readline): Changed
5239 handling of readline options. Now users can specify any string to
5243 handling of readline options. Now users can specify any string to
5240 be passed to parse_and_bind(), as well as the delimiters to be
5244 be passed to parse_and_bind(), as well as the delimiters to be
5241 removed.
5245 removed.
5242 (InteractiveShell.__init__): Added __name__ to the global
5246 (InteractiveShell.__init__): Added __name__ to the global
5243 namespace so that things like Itpl which rely on its existence
5247 namespace so that things like Itpl which rely on its existence
5244 don't crash.
5248 don't crash.
5245 (InteractiveShell._prefilter): Defined the default with a _ so
5249 (InteractiveShell._prefilter): Defined the default with a _ so
5246 that prefilter() is easier to override, while the default one
5250 that prefilter() is easier to override, while the default one
5247 remains available.
5251 remains available.
5248
5252
5249 2002-04-18 Fernando Perez <fperez@colorado.edu>
5253 2002-04-18 Fernando Perez <fperez@colorado.edu>
5250
5254
5251 * Added information about pdb in the docs.
5255 * Added information about pdb in the docs.
5252
5256
5253 2002-04-17 Fernando Perez <fperez@colorado.edu>
5257 2002-04-17 Fernando Perez <fperez@colorado.edu>
5254
5258
5255 * IPython/ipmaker.py (make_IPython): added rc_override option to
5259 * IPython/ipmaker.py (make_IPython): added rc_override option to
5256 allow passing config options at creation time which may override
5260 allow passing config options at creation time which may override
5257 anything set in the config files or command line. This is
5261 anything set in the config files or command line. This is
5258 particularly useful for configuring embedded instances.
5262 particularly useful for configuring embedded instances.
5259
5263
5260 2002-04-15 Fernando Perez <fperez@colorado.edu>
5264 2002-04-15 Fernando Perez <fperez@colorado.edu>
5261
5265
5262 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5266 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
5263 crash embedded instances because of the input cache falling out of
5267 crash embedded instances because of the input cache falling out of
5264 sync with the output counter.
5268 sync with the output counter.
5265
5269
5266 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5270 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
5267 mode which calls pdb after an uncaught exception in IPython itself.
5271 mode which calls pdb after an uncaught exception in IPython itself.
5268
5272
5269 2002-04-14 Fernando Perez <fperez@colorado.edu>
5273 2002-04-14 Fernando Perez <fperez@colorado.edu>
5270
5274
5271 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5275 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
5272 readline, fix it back after each call.
5276 readline, fix it back after each call.
5273
5277
5274 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5278 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
5275 method to force all access via __call__(), which guarantees that
5279 method to force all access via __call__(), which guarantees that
5276 traceback references are properly deleted.
5280 traceback references are properly deleted.
5277
5281
5278 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5282 * IPython/Prompts.py (CachedOutput._display): minor fixes to
5279 improve printing when pprint is in use.
5283 improve printing when pprint is in use.
5280
5284
5281 2002-04-13 Fernando Perez <fperez@colorado.edu>
5285 2002-04-13 Fernando Perez <fperez@colorado.edu>
5282
5286
5283 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5287 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
5284 exceptions aren't caught anymore. If the user triggers one, he
5288 exceptions aren't caught anymore. If the user triggers one, he
5285 should know why he's doing it and it should go all the way up,
5289 should know why he's doing it and it should go all the way up,
5286 just like any other exception. So now @abort will fully kill the
5290 just like any other exception. So now @abort will fully kill the
5287 embedded interpreter and the embedding code (unless that happens
5291 embedded interpreter and the embedding code (unless that happens
5288 to catch SystemExit).
5292 to catch SystemExit).
5289
5293
5290 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5294 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
5291 and a debugger() method to invoke the interactive pdb debugger
5295 and a debugger() method to invoke the interactive pdb debugger
5292 after printing exception information. Also added the corresponding
5296 after printing exception information. Also added the corresponding
5293 -pdb option and @pdb magic to control this feature, and updated
5297 -pdb option and @pdb magic to control this feature, and updated
5294 the docs. After a suggestion from Christopher Hart
5298 the docs. After a suggestion from Christopher Hart
5295 (hart-AT-caltech.edu).
5299 (hart-AT-caltech.edu).
5296
5300
5297 2002-04-12 Fernando Perez <fperez@colorado.edu>
5301 2002-04-12 Fernando Perez <fperez@colorado.edu>
5298
5302
5299 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5303 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
5300 the exception handlers defined by the user (not the CrashHandler)
5304 the exception handlers defined by the user (not the CrashHandler)
5301 so that user exceptions don't trigger an ipython bug report.
5305 so that user exceptions don't trigger an ipython bug report.
5302
5306
5303 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5307 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
5304 configurable (it should have always been so).
5308 configurable (it should have always been so).
5305
5309
5306 2002-03-26 Fernando Perez <fperez@colorado.edu>
5310 2002-03-26 Fernando Perez <fperez@colorado.edu>
5307
5311
5308 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5312 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
5309 and there to fix embedding namespace issues. This should all be
5313 and there to fix embedding namespace issues. This should all be
5310 done in a more elegant way.
5314 done in a more elegant way.
5311
5315
5312 2002-03-25 Fernando Perez <fperez@colorado.edu>
5316 2002-03-25 Fernando Perez <fperez@colorado.edu>
5313
5317
5314 * IPython/genutils.py (get_home_dir): Try to make it work under
5318 * IPython/genutils.py (get_home_dir): Try to make it work under
5315 win9x also.
5319 win9x also.
5316
5320
5317 2002-03-20 Fernando Perez <fperez@colorado.edu>
5321 2002-03-20 Fernando Perez <fperez@colorado.edu>
5318
5322
5319 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5323 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
5320 sys.displayhook untouched upon __init__.
5324 sys.displayhook untouched upon __init__.
5321
5325
5322 2002-03-19 Fernando Perez <fperez@colorado.edu>
5326 2002-03-19 Fernando Perez <fperez@colorado.edu>
5323
5327
5324 * Released 0.2.9 (for embedding bug, basically).
5328 * Released 0.2.9 (for embedding bug, basically).
5325
5329
5326 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5330 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
5327 exceptions so that enclosing shell's state can be restored.
5331 exceptions so that enclosing shell's state can be restored.
5328
5332
5329 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5333 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
5330 naming conventions in the .ipython/ dir.
5334 naming conventions in the .ipython/ dir.
5331
5335
5332 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5336 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
5333 from delimiters list so filenames with - in them get expanded.
5337 from delimiters list so filenames with - in them get expanded.
5334
5338
5335 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5339 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
5336 sys.displayhook not being properly restored after an embedded call.
5340 sys.displayhook not being properly restored after an embedded call.
5337
5341
5338 2002-03-18 Fernando Perez <fperez@colorado.edu>
5342 2002-03-18 Fernando Perez <fperez@colorado.edu>
5339
5343
5340 * Released 0.2.8
5344 * Released 0.2.8
5341
5345
5342 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5346 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
5343 some files weren't being included in a -upgrade.
5347 some files weren't being included in a -upgrade.
5344 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5348 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
5345 on' so that the first tab completes.
5349 on' so that the first tab completes.
5346 (InteractiveShell.handle_magic): fixed bug with spaces around
5350 (InteractiveShell.handle_magic): fixed bug with spaces around
5347 quotes breaking many magic commands.
5351 quotes breaking many magic commands.
5348
5352
5349 * setup.py: added note about ignoring the syntax error messages at
5353 * setup.py: added note about ignoring the syntax error messages at
5350 installation.
5354 installation.
5351
5355
5352 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5356 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
5353 streamlining the gnuplot interface, now there's only one magic @gp.
5357 streamlining the gnuplot interface, now there's only one magic @gp.
5354
5358
5355 2002-03-17 Fernando Perez <fperez@colorado.edu>
5359 2002-03-17 Fernando Perez <fperez@colorado.edu>
5356
5360
5357 * IPython/UserConfig/magic_gnuplot.py: new name for the
5361 * IPython/UserConfig/magic_gnuplot.py: new name for the
5358 example-magic_pm.py file. Much enhanced system, now with a shell
5362 example-magic_pm.py file. Much enhanced system, now with a shell
5359 for communicating directly with gnuplot, one command at a time.
5363 for communicating directly with gnuplot, one command at a time.
5360
5364
5361 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5365 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
5362 setting __name__=='__main__'.
5366 setting __name__=='__main__'.
5363
5367
5364 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5368 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
5365 mini-shell for accessing gnuplot from inside ipython. Should
5369 mini-shell for accessing gnuplot from inside ipython. Should
5366 extend it later for grace access too. Inspired by Arnd's
5370 extend it later for grace access too. Inspired by Arnd's
5367 suggestion.
5371 suggestion.
5368
5372
5369 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5373 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
5370 calling magic functions with () in their arguments. Thanks to Arnd
5374 calling magic functions with () in their arguments. Thanks to Arnd
5371 Baecker for pointing this to me.
5375 Baecker for pointing this to me.
5372
5376
5373 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5377 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
5374 infinitely for integer or complex arrays (only worked with floats).
5378 infinitely for integer or complex arrays (only worked with floats).
5375
5379
5376 2002-03-16 Fernando Perez <fperez@colorado.edu>
5380 2002-03-16 Fernando Perez <fperez@colorado.edu>
5377
5381
5378 * setup.py: Merged setup and setup_windows into a single script
5382 * setup.py: Merged setup and setup_windows into a single script
5379 which properly handles things for windows users.
5383 which properly handles things for windows users.
5380
5384
5381 2002-03-15 Fernando Perez <fperez@colorado.edu>
5385 2002-03-15 Fernando Perez <fperez@colorado.edu>
5382
5386
5383 * Big change to the manual: now the magics are all automatically
5387 * Big change to the manual: now the magics are all automatically
5384 documented. This information is generated from their docstrings
5388 documented. This information is generated from their docstrings
5385 and put in a latex file included by the manual lyx file. This way
5389 and put in a latex file included by the manual lyx file. This way
5386 we get always up to date information for the magics. The manual
5390 we get always up to date information for the magics. The manual
5387 now also has proper version information, also auto-synced.
5391 now also has proper version information, also auto-synced.
5388
5392
5389 For this to work, an undocumented --magic_docstrings option was added.
5393 For this to work, an undocumented --magic_docstrings option was added.
5390
5394
5391 2002-03-13 Fernando Perez <fperez@colorado.edu>
5395 2002-03-13 Fernando Perez <fperez@colorado.edu>
5392
5396
5393 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5397 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
5394 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5398 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
5395
5399
5396 2002-03-12 Fernando Perez <fperez@colorado.edu>
5400 2002-03-12 Fernando Perez <fperez@colorado.edu>
5397
5401
5398 * IPython/ultraTB.py (TermColors): changed color escapes again to
5402 * IPython/ultraTB.py (TermColors): changed color escapes again to
5399 fix the (old, reintroduced) line-wrapping bug. Basically, if
5403 fix the (old, reintroduced) line-wrapping bug. Basically, if
5400 \001..\002 aren't given in the color escapes, lines get wrapped
5404 \001..\002 aren't given in the color escapes, lines get wrapped
5401 weirdly. But giving those screws up old xterms and emacs terms. So
5405 weirdly. But giving those screws up old xterms and emacs terms. So
5402 I added some logic for emacs terms to be ok, but I can't identify old
5406 I added some logic for emacs terms to be ok, but I can't identify old
5403 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5407 xterms separately ($TERM=='xterm' for many terminals, like konsole).
5404
5408
5405 2002-03-10 Fernando Perez <fperez@colorado.edu>
5409 2002-03-10 Fernando Perez <fperez@colorado.edu>
5406
5410
5407 * IPython/usage.py (__doc__): Various documentation cleanups and
5411 * IPython/usage.py (__doc__): Various documentation cleanups and
5408 updates, both in usage docstrings and in the manual.
5412 updates, both in usage docstrings and in the manual.
5409
5413
5410 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5414 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
5411 handling of caching. Set minimum acceptabe value for having a
5415 handling of caching. Set minimum acceptabe value for having a
5412 cache at 20 values.
5416 cache at 20 values.
5413
5417
5414 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5418 * IPython/iplib.py (InteractiveShell.user_setup): moved the
5415 install_first_time function to a method, renamed it and added an
5419 install_first_time function to a method, renamed it and added an
5416 'upgrade' mode. Now people can update their config directory with
5420 'upgrade' mode. Now people can update their config directory with
5417 a simple command line switch (-upgrade, also new).
5421 a simple command line switch (-upgrade, also new).
5418
5422
5419 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5423 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
5420 @file (convenient for automagic users under Python >= 2.2).
5424 @file (convenient for automagic users under Python >= 2.2).
5421 Removed @files (it seemed more like a plural than an abbrev. of
5425 Removed @files (it seemed more like a plural than an abbrev. of
5422 'file show').
5426 'file show').
5423
5427
5424 * IPython/iplib.py (install_first_time): Fixed crash if there were
5428 * IPython/iplib.py (install_first_time): Fixed crash if there were
5425 backup files ('~') in .ipython/ install directory.
5429 backup files ('~') in .ipython/ install directory.
5426
5430
5427 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5431 * IPython/ipmaker.py (make_IPython): fixes for new prompt
5428 system. Things look fine, but these changes are fairly
5432 system. Things look fine, but these changes are fairly
5429 intrusive. Test them for a few days.
5433 intrusive. Test them for a few days.
5430
5434
5431 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5435 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
5432 the prompts system. Now all in/out prompt strings are user
5436 the prompts system. Now all in/out prompt strings are user
5433 controllable. This is particularly useful for embedding, as one
5437 controllable. This is particularly useful for embedding, as one
5434 can tag embedded instances with particular prompts.
5438 can tag embedded instances with particular prompts.
5435
5439
5436 Also removed global use of sys.ps1/2, which now allows nested
5440 Also removed global use of sys.ps1/2, which now allows nested
5437 embeddings without any problems. Added command-line options for
5441 embeddings without any problems. Added command-line options for
5438 the prompt strings.
5442 the prompt strings.
5439
5443
5440 2002-03-08 Fernando Perez <fperez@colorado.edu>
5444 2002-03-08 Fernando Perez <fperez@colorado.edu>
5441
5445
5442 * IPython/UserConfig/example-embed-short.py (ipshell): added
5446 * IPython/UserConfig/example-embed-short.py (ipshell): added
5443 example file with the bare minimum code for embedding.
5447 example file with the bare minimum code for embedding.
5444
5448
5445 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5449 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
5446 functionality for the embeddable shell to be activated/deactivated
5450 functionality for the embeddable shell to be activated/deactivated
5447 either globally or at each call.
5451 either globally or at each call.
5448
5452
5449 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5453 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
5450 rewriting the prompt with '--->' for auto-inputs with proper
5454 rewriting the prompt with '--->' for auto-inputs with proper
5451 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5455 coloring. Now the previous UGLY hack in handle_auto() is gone, and
5452 this is handled by the prompts class itself, as it should.
5456 this is handled by the prompts class itself, as it should.
5453
5457
5454 2002-03-05 Fernando Perez <fperez@colorado.edu>
5458 2002-03-05 Fernando Perez <fperez@colorado.edu>
5455
5459
5456 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5460 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
5457 @logstart to avoid name clashes with the math log function.
5461 @logstart to avoid name clashes with the math log function.
5458
5462
5459 * Big updates to X/Emacs section of the manual.
5463 * Big updates to X/Emacs section of the manual.
5460
5464
5461 * Removed ipython_emacs. Milan explained to me how to pass
5465 * Removed ipython_emacs. Milan explained to me how to pass
5462 arguments to ipython through Emacs. Some day I'm going to end up
5466 arguments to ipython through Emacs. Some day I'm going to end up
5463 learning some lisp...
5467 learning some lisp...
5464
5468
5465 2002-03-04 Fernando Perez <fperez@colorado.edu>
5469 2002-03-04 Fernando Perez <fperez@colorado.edu>
5466
5470
5467 * IPython/ipython_emacs: Created script to be used as the
5471 * IPython/ipython_emacs: Created script to be used as the
5468 py-python-command Emacs variable so we can pass IPython
5472 py-python-command Emacs variable so we can pass IPython
5469 parameters. I can't figure out how to tell Emacs directly to pass
5473 parameters. I can't figure out how to tell Emacs directly to pass
5470 parameters to IPython, so a dummy shell script will do it.
5474 parameters to IPython, so a dummy shell script will do it.
5471
5475
5472 Other enhancements made for things to work better under Emacs'
5476 Other enhancements made for things to work better under Emacs'
5473 various types of terminals. Many thanks to Milan Zamazal
5477 various types of terminals. Many thanks to Milan Zamazal
5474 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5478 <pdm-AT-zamazal.org> for all the suggestions and pointers.
5475
5479
5476 2002-03-01 Fernando Perez <fperez@colorado.edu>
5480 2002-03-01 Fernando Perez <fperez@colorado.edu>
5477
5481
5478 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5482 * IPython/ipmaker.py (make_IPython): added a --readline! option so
5479 that loading of readline is now optional. This gives better
5483 that loading of readline is now optional. This gives better
5480 control to emacs users.
5484 control to emacs users.
5481
5485
5482 * IPython/ultraTB.py (__date__): Modified color escape sequences
5486 * IPython/ultraTB.py (__date__): Modified color escape sequences
5483 and now things work fine under xterm and in Emacs' term buffers
5487 and now things work fine under xterm and in Emacs' term buffers
5484 (though not shell ones). Well, in emacs you get colors, but all
5488 (though not shell ones). Well, in emacs you get colors, but all
5485 seem to be 'light' colors (no difference between dark and light
5489 seem to be 'light' colors (no difference between dark and light
5486 ones). But the garbage chars are gone, and also in xterms. It
5490 ones). But the garbage chars are gone, and also in xterms. It
5487 seems that now I'm using 'cleaner' ansi sequences.
5491 seems that now I'm using 'cleaner' ansi sequences.
5488
5492
5489 2002-02-21 Fernando Perez <fperez@colorado.edu>
5493 2002-02-21 Fernando Perez <fperez@colorado.edu>
5490
5494
5491 * Released 0.2.7 (mainly to publish the scoping fix).
5495 * Released 0.2.7 (mainly to publish the scoping fix).
5492
5496
5493 * IPython/Logger.py (Logger.logstate): added. A corresponding
5497 * IPython/Logger.py (Logger.logstate): added. A corresponding
5494 @logstate magic was created.
5498 @logstate magic was created.
5495
5499
5496 * IPython/Magic.py: fixed nested scoping problem under Python
5500 * IPython/Magic.py: fixed nested scoping problem under Python
5497 2.1.x (automagic wasn't working).
5501 2.1.x (automagic wasn't working).
5498
5502
5499 2002-02-20 Fernando Perez <fperez@colorado.edu>
5503 2002-02-20 Fernando Perez <fperez@colorado.edu>
5500
5504
5501 * Released 0.2.6.
5505 * Released 0.2.6.
5502
5506
5503 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5507 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
5504 option so that logs can come out without any headers at all.
5508 option so that logs can come out without any headers at all.
5505
5509
5506 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5510 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
5507 SciPy.
5511 SciPy.
5508
5512
5509 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5513 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
5510 that embedded IPython calls don't require vars() to be explicitly
5514 that embedded IPython calls don't require vars() to be explicitly
5511 passed. Now they are extracted from the caller's frame (code
5515 passed. Now they are extracted from the caller's frame (code
5512 snatched from Eric Jones' weave). Added better documentation to
5516 snatched from Eric Jones' weave). Added better documentation to
5513 the section on embedding and the example file.
5517 the section on embedding and the example file.
5514
5518
5515 * IPython/genutils.py (page): Changed so that under emacs, it just
5519 * IPython/genutils.py (page): Changed so that under emacs, it just
5516 prints the string. You can then page up and down in the emacs
5520 prints the string. You can then page up and down in the emacs
5517 buffer itself. This is how the builtin help() works.
5521 buffer itself. This is how the builtin help() works.
5518
5522
5519 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5523 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
5520 macro scoping: macros need to be executed in the user's namespace
5524 macro scoping: macros need to be executed in the user's namespace
5521 to work as if they had been typed by the user.
5525 to work as if they had been typed by the user.
5522
5526
5523 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5527 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
5524 execute automatically (no need to type 'exec...'). They then
5528 execute automatically (no need to type 'exec...'). They then
5525 behave like 'true macros'. The printing system was also modified
5529 behave like 'true macros'. The printing system was also modified
5526 for this to work.
5530 for this to work.
5527
5531
5528 2002-02-19 Fernando Perez <fperez@colorado.edu>
5532 2002-02-19 Fernando Perez <fperez@colorado.edu>
5529
5533
5530 * IPython/genutils.py (page_file): new function for paging files
5534 * IPython/genutils.py (page_file): new function for paging files
5531 in an OS-independent way. Also necessary for file viewing to work
5535 in an OS-independent way. Also necessary for file viewing to work
5532 well inside Emacs buffers.
5536 well inside Emacs buffers.
5533 (page): Added checks for being in an emacs buffer.
5537 (page): Added checks for being in an emacs buffer.
5534 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5538 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
5535 same bug in iplib.
5539 same bug in iplib.
5536
5540
5537 2002-02-18 Fernando Perez <fperez@colorado.edu>
5541 2002-02-18 Fernando Perez <fperez@colorado.edu>
5538
5542
5539 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5543 * IPython/iplib.py (InteractiveShell.init_readline): modified use
5540 of readline so that IPython can work inside an Emacs buffer.
5544 of readline so that IPython can work inside an Emacs buffer.
5541
5545
5542 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5546 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
5543 method signatures (they weren't really bugs, but it looks cleaner
5547 method signatures (they weren't really bugs, but it looks cleaner
5544 and keeps PyChecker happy).
5548 and keeps PyChecker happy).
5545
5549
5546 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5550 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
5547 for implementing various user-defined hooks. Currently only
5551 for implementing various user-defined hooks. Currently only
5548 display is done.
5552 display is done.
5549
5553
5550 * IPython/Prompts.py (CachedOutput._display): changed display
5554 * IPython/Prompts.py (CachedOutput._display): changed display
5551 functions so that they can be dynamically changed by users easily.
5555 functions so that they can be dynamically changed by users easily.
5552
5556
5553 * IPython/Extensions/numeric_formats.py (num_display): added an
5557 * IPython/Extensions/numeric_formats.py (num_display): added an
5554 extension for printing NumPy arrays in flexible manners. It
5558 extension for printing NumPy arrays in flexible manners. It
5555 doesn't do anything yet, but all the structure is in
5559 doesn't do anything yet, but all the structure is in
5556 place. Ultimately the plan is to implement output format control
5560 place. Ultimately the plan is to implement output format control
5557 like in Octave.
5561 like in Octave.
5558
5562
5559 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5563 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
5560 methods are found at run-time by all the automatic machinery.
5564 methods are found at run-time by all the automatic machinery.
5561
5565
5562 2002-02-17 Fernando Perez <fperez@colorado.edu>
5566 2002-02-17 Fernando Perez <fperez@colorado.edu>
5563
5567
5564 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5568 * setup_Windows.py (make_shortcut): documented. Cleaned up the
5565 whole file a little.
5569 whole file a little.
5566
5570
5567 * ToDo: closed this document. Now there's a new_design.lyx
5571 * ToDo: closed this document. Now there's a new_design.lyx
5568 document for all new ideas. Added making a pdf of it for the
5572 document for all new ideas. Added making a pdf of it for the
5569 end-user distro.
5573 end-user distro.
5570
5574
5571 * IPython/Logger.py (Logger.switch_log): Created this to replace
5575 * IPython/Logger.py (Logger.switch_log): Created this to replace
5572 logon() and logoff(). It also fixes a nasty crash reported by
5576 logon() and logoff(). It also fixes a nasty crash reported by
5573 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5577 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
5574
5578
5575 * IPython/iplib.py (complete): got auto-completion to work with
5579 * IPython/iplib.py (complete): got auto-completion to work with
5576 automagic (I had wanted this for a long time).
5580 automagic (I had wanted this for a long time).
5577
5581
5578 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5582 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
5579 to @file, since file() is now a builtin and clashes with automagic
5583 to @file, since file() is now a builtin and clashes with automagic
5580 for @file.
5584 for @file.
5581
5585
5582 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5586 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
5583 of this was previously in iplib, which had grown to more than 2000
5587 of this was previously in iplib, which had grown to more than 2000
5584 lines, way too long. No new functionality, but it makes managing
5588 lines, way too long. No new functionality, but it makes managing
5585 the code a bit easier.
5589 the code a bit easier.
5586
5590
5587 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5591 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
5588 information to crash reports.
5592 information to crash reports.
5589
5593
5590 2002-02-12 Fernando Perez <fperez@colorado.edu>
5594 2002-02-12 Fernando Perez <fperez@colorado.edu>
5591
5595
5592 * Released 0.2.5.
5596 * Released 0.2.5.
5593
5597
5594 2002-02-11 Fernando Perez <fperez@colorado.edu>
5598 2002-02-11 Fernando Perez <fperez@colorado.edu>
5595
5599
5596 * Wrote a relatively complete Windows installer. It puts
5600 * Wrote a relatively complete Windows installer. It puts
5597 everything in place, creates Start Menu entries and fixes the
5601 everything in place, creates Start Menu entries and fixes the
5598 color issues. Nothing fancy, but it works.
5602 color issues. Nothing fancy, but it works.
5599
5603
5600 2002-02-10 Fernando Perez <fperez@colorado.edu>
5604 2002-02-10 Fernando Perez <fperez@colorado.edu>
5601
5605
5602 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5606 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
5603 os.path.expanduser() call so that we can type @run ~/myfile.py and
5607 os.path.expanduser() call so that we can type @run ~/myfile.py and
5604 have thigs work as expected.
5608 have thigs work as expected.
5605
5609
5606 * IPython/genutils.py (page): fixed exception handling so things
5610 * IPython/genutils.py (page): fixed exception handling so things
5607 work both in Unix and Windows correctly. Quitting a pager triggers
5611 work both in Unix and Windows correctly. Quitting a pager triggers
5608 an IOError/broken pipe in Unix, and in windows not finding a pager
5612 an IOError/broken pipe in Unix, and in windows not finding a pager
5609 is also an IOError, so I had to actually look at the return value
5613 is also an IOError, so I had to actually look at the return value
5610 of the exception, not just the exception itself. Should be ok now.
5614 of the exception, not just the exception itself. Should be ok now.
5611
5615
5612 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5616 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
5613 modified to allow case-insensitive color scheme changes.
5617 modified to allow case-insensitive color scheme changes.
5614
5618
5615 2002-02-09 Fernando Perez <fperez@colorado.edu>
5619 2002-02-09 Fernando Perez <fperez@colorado.edu>
5616
5620
5617 * IPython/genutils.py (native_line_ends): new function to leave
5621 * IPython/genutils.py (native_line_ends): new function to leave
5618 user config files with os-native line-endings.
5622 user config files with os-native line-endings.
5619
5623
5620 * README and manual updates.
5624 * README and manual updates.
5621
5625
5622 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5626 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
5623 instead of StringType to catch Unicode strings.
5627 instead of StringType to catch Unicode strings.
5624
5628
5625 * IPython/genutils.py (filefind): fixed bug for paths with
5629 * IPython/genutils.py (filefind): fixed bug for paths with
5626 embedded spaces (very common in Windows).
5630 embedded spaces (very common in Windows).
5627
5631
5628 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5632 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
5629 files under Windows, so that they get automatically associated
5633 files under Windows, so that they get automatically associated
5630 with a text editor. Windows makes it a pain to handle
5634 with a text editor. Windows makes it a pain to handle
5631 extension-less files.
5635 extension-less files.
5632
5636
5633 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5637 * IPython/iplib.py (InteractiveShell.init_readline): Made the
5634 warning about readline only occur for Posix. In Windows there's no
5638 warning about readline only occur for Posix. In Windows there's no
5635 way to get readline, so why bother with the warning.
5639 way to get readline, so why bother with the warning.
5636
5640
5637 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5641 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
5638 for __str__ instead of dir(self), since dir() changed in 2.2.
5642 for __str__ instead of dir(self), since dir() changed in 2.2.
5639
5643
5640 * Ported to Windows! Tested on XP, I suspect it should work fine
5644 * Ported to Windows! Tested on XP, I suspect it should work fine
5641 on NT/2000, but I don't think it will work on 98 et al. That
5645 on NT/2000, but I don't think it will work on 98 et al. That
5642 series of Windows is such a piece of junk anyway that I won't try
5646 series of Windows is such a piece of junk anyway that I won't try
5643 porting it there. The XP port was straightforward, showed a few
5647 porting it there. The XP port was straightforward, showed a few
5644 bugs here and there (fixed all), in particular some string
5648 bugs here and there (fixed all), in particular some string
5645 handling stuff which required considering Unicode strings (which
5649 handling stuff which required considering Unicode strings (which
5646 Windows uses). This is good, but hasn't been too tested :) No
5650 Windows uses). This is good, but hasn't been too tested :) No
5647 fancy installer yet, I'll put a note in the manual so people at
5651 fancy installer yet, I'll put a note in the manual so people at
5648 least make manually a shortcut.
5652 least make manually a shortcut.
5649
5653
5650 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5654 * IPython/iplib.py (Magic.magic_colors): Unified the color options
5651 into a single one, "colors". This now controls both prompt and
5655 into a single one, "colors". This now controls both prompt and
5652 exception color schemes, and can be changed both at startup
5656 exception color schemes, and can be changed both at startup
5653 (either via command-line switches or via ipythonrc files) and at
5657 (either via command-line switches or via ipythonrc files) and at
5654 runtime, with @colors.
5658 runtime, with @colors.
5655 (Magic.magic_run): renamed @prun to @run and removed the old
5659 (Magic.magic_run): renamed @prun to @run and removed the old
5656 @run. The two were too similar to warrant keeping both.
5660 @run. The two were too similar to warrant keeping both.
5657
5661
5658 2002-02-03 Fernando Perez <fperez@colorado.edu>
5662 2002-02-03 Fernando Perez <fperez@colorado.edu>
5659
5663
5660 * IPython/iplib.py (install_first_time): Added comment on how to
5664 * IPython/iplib.py (install_first_time): Added comment on how to
5661 configure the color options for first-time users. Put a <return>
5665 configure the color options for first-time users. Put a <return>
5662 request at the end so that small-terminal users get a chance to
5666 request at the end so that small-terminal users get a chance to
5663 read the startup info.
5667 read the startup info.
5664
5668
5665 2002-01-23 Fernando Perez <fperez@colorado.edu>
5669 2002-01-23 Fernando Perez <fperez@colorado.edu>
5666
5670
5667 * IPython/iplib.py (CachedOutput.update): Changed output memory
5671 * IPython/iplib.py (CachedOutput.update): Changed output memory
5668 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5672 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
5669 input history we still use _i. Did this b/c these variable are
5673 input history we still use _i. Did this b/c these variable are
5670 very commonly used in interactive work, so the less we need to
5674 very commonly used in interactive work, so the less we need to
5671 type the better off we are.
5675 type the better off we are.
5672 (Magic.magic_prun): updated @prun to better handle the namespaces
5676 (Magic.magic_prun): updated @prun to better handle the namespaces
5673 the file will run in, including a fix for __name__ not being set
5677 the file will run in, including a fix for __name__ not being set
5674 before.
5678 before.
5675
5679
5676 2002-01-20 Fernando Perez <fperez@colorado.edu>
5680 2002-01-20 Fernando Perez <fperez@colorado.edu>
5677
5681
5678 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5682 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
5679 extra garbage for Python 2.2. Need to look more carefully into
5683 extra garbage for Python 2.2. Need to look more carefully into
5680 this later.
5684 this later.
5681
5685
5682 2002-01-19 Fernando Perez <fperez@colorado.edu>
5686 2002-01-19 Fernando Perez <fperez@colorado.edu>
5683
5687
5684 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5688 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
5685 display SyntaxError exceptions properly formatted when they occur
5689 display SyntaxError exceptions properly formatted when they occur
5686 (they can be triggered by imported code).
5690 (they can be triggered by imported code).
5687
5691
5688 2002-01-18 Fernando Perez <fperez@colorado.edu>
5692 2002-01-18 Fernando Perez <fperez@colorado.edu>
5689
5693
5690 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5694 * IPython/iplib.py (InteractiveShell.safe_execfile): now
5691 SyntaxError exceptions are reported nicely formatted, instead of
5695 SyntaxError exceptions are reported nicely formatted, instead of
5692 spitting out only offset information as before.
5696 spitting out only offset information as before.
5693 (Magic.magic_prun): Added the @prun function for executing
5697 (Magic.magic_prun): Added the @prun function for executing
5694 programs with command line args inside IPython.
5698 programs with command line args inside IPython.
5695
5699
5696 2002-01-16 Fernando Perez <fperez@colorado.edu>
5700 2002-01-16 Fernando Perez <fperez@colorado.edu>
5697
5701
5698 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5702 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
5699 to *not* include the last item given in a range. This brings their
5703 to *not* include the last item given in a range. This brings their
5700 behavior in line with Python's slicing:
5704 behavior in line with Python's slicing:
5701 a[n1:n2] -> a[n1]...a[n2-1]
5705 a[n1:n2] -> a[n1]...a[n2-1]
5702 It may be a bit less convenient, but I prefer to stick to Python's
5706 It may be a bit less convenient, but I prefer to stick to Python's
5703 conventions *everywhere*, so users never have to wonder.
5707 conventions *everywhere*, so users never have to wonder.
5704 (Magic.magic_macro): Added @macro function to ease the creation of
5708 (Magic.magic_macro): Added @macro function to ease the creation of
5705 macros.
5709 macros.
5706
5710
5707 2002-01-05 Fernando Perez <fperez@colorado.edu>
5711 2002-01-05 Fernando Perez <fperez@colorado.edu>
5708
5712
5709 * Released 0.2.4.
5713 * Released 0.2.4.
5710
5714
5711 * IPython/iplib.py (Magic.magic_pdef):
5715 * IPython/iplib.py (Magic.magic_pdef):
5712 (InteractiveShell.safe_execfile): report magic lines and error
5716 (InteractiveShell.safe_execfile): report magic lines and error
5713 lines without line numbers so one can easily copy/paste them for
5717 lines without line numbers so one can easily copy/paste them for
5714 re-execution.
5718 re-execution.
5715
5719
5716 * Updated manual with recent changes.
5720 * Updated manual with recent changes.
5717
5721
5718 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5722 * IPython/iplib.py (Magic.magic_oinfo): added constructor
5719 docstring printing when class? is called. Very handy for knowing
5723 docstring printing when class? is called. Very handy for knowing
5720 how to create class instances (as long as __init__ is well
5724 how to create class instances (as long as __init__ is well
5721 documented, of course :)
5725 documented, of course :)
5722 (Magic.magic_doc): print both class and constructor docstrings.
5726 (Magic.magic_doc): print both class and constructor docstrings.
5723 (Magic.magic_pdef): give constructor info if passed a class and
5727 (Magic.magic_pdef): give constructor info if passed a class and
5724 __call__ info for callable object instances.
5728 __call__ info for callable object instances.
5725
5729
5726 2002-01-04 Fernando Perez <fperez@colorado.edu>
5730 2002-01-04 Fernando Perez <fperez@colorado.edu>
5727
5731
5728 * Made deep_reload() off by default. It doesn't always work
5732 * Made deep_reload() off by default. It doesn't always work
5729 exactly as intended, so it's probably safer to have it off. It's
5733 exactly as intended, so it's probably safer to have it off. It's
5730 still available as dreload() anyway, so nothing is lost.
5734 still available as dreload() anyway, so nothing is lost.
5731
5735
5732 2002-01-02 Fernando Perez <fperez@colorado.edu>
5736 2002-01-02 Fernando Perez <fperez@colorado.edu>
5733
5737
5734 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5738 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
5735 so I wanted an updated release).
5739 so I wanted an updated release).
5736
5740
5737 2001-12-27 Fernando Perez <fperez@colorado.edu>
5741 2001-12-27 Fernando Perez <fperez@colorado.edu>
5738
5742
5739 * IPython/iplib.py (InteractiveShell.interact): Added the original
5743 * IPython/iplib.py (InteractiveShell.interact): Added the original
5740 code from 'code.py' for this module in order to change the
5744 code from 'code.py' for this module in order to change the
5741 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5745 handling of a KeyboardInterrupt. This was necessary b/c otherwise
5742 the history cache would break when the user hit Ctrl-C, and
5746 the history cache would break when the user hit Ctrl-C, and
5743 interact() offers no way to add any hooks to it.
5747 interact() offers no way to add any hooks to it.
5744
5748
5745 2001-12-23 Fernando Perez <fperez@colorado.edu>
5749 2001-12-23 Fernando Perez <fperez@colorado.edu>
5746
5750
5747 * setup.py: added check for 'MANIFEST' before trying to remove
5751 * setup.py: added check for 'MANIFEST' before trying to remove
5748 it. Thanks to Sean Reifschneider.
5752 it. Thanks to Sean Reifschneider.
5749
5753
5750 2001-12-22 Fernando Perez <fperez@colorado.edu>
5754 2001-12-22 Fernando Perez <fperez@colorado.edu>
5751
5755
5752 * Released 0.2.2.
5756 * Released 0.2.2.
5753
5757
5754 * Finished (reasonably) writing the manual. Later will add the
5758 * Finished (reasonably) writing the manual. Later will add the
5755 python-standard navigation stylesheets, but for the time being
5759 python-standard navigation stylesheets, but for the time being
5756 it's fairly complete. Distribution will include html and pdf
5760 it's fairly complete. Distribution will include html and pdf
5757 versions.
5761 versions.
5758
5762
5759 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5763 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
5760 (MayaVi author).
5764 (MayaVi author).
5761
5765
5762 2001-12-21 Fernando Perez <fperez@colorado.edu>
5766 2001-12-21 Fernando Perez <fperez@colorado.edu>
5763
5767
5764 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5768 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
5765 good public release, I think (with the manual and the distutils
5769 good public release, I think (with the manual and the distutils
5766 installer). The manual can use some work, but that can go
5770 installer). The manual can use some work, but that can go
5767 slowly. Otherwise I think it's quite nice for end users. Next
5771 slowly. Otherwise I think it's quite nice for end users. Next
5768 summer, rewrite the guts of it...
5772 summer, rewrite the guts of it...
5769
5773
5770 * Changed format of ipythonrc files to use whitespace as the
5774 * Changed format of ipythonrc files to use whitespace as the
5771 separator instead of an explicit '='. Cleaner.
5775 separator instead of an explicit '='. Cleaner.
5772
5776
5773 2001-12-20 Fernando Perez <fperez@colorado.edu>
5777 2001-12-20 Fernando Perez <fperez@colorado.edu>
5774
5778
5775 * Started a manual in LyX. For now it's just a quick merge of the
5779 * Started a manual in LyX. For now it's just a quick merge of the
5776 various internal docstrings and READMEs. Later it may grow into a
5780 various internal docstrings and READMEs. Later it may grow into a
5777 nice, full-blown manual.
5781 nice, full-blown manual.
5778
5782
5779 * Set up a distutils based installer. Installation should now be
5783 * Set up a distutils based installer. Installation should now be
5780 trivially simple for end-users.
5784 trivially simple for end-users.
5781
5785
5782 2001-12-11 Fernando Perez <fperez@colorado.edu>
5786 2001-12-11 Fernando Perez <fperez@colorado.edu>
5783
5787
5784 * Released 0.2.0. First public release, announced it at
5788 * Released 0.2.0. First public release, announced it at
5785 comp.lang.python. From now on, just bugfixes...
5789 comp.lang.python. From now on, just bugfixes...
5786
5790
5787 * Went through all the files, set copyright/license notices and
5791 * Went through all the files, set copyright/license notices and
5788 cleaned up things. Ready for release.
5792 cleaned up things. Ready for release.
5789
5793
5790 2001-12-10 Fernando Perez <fperez@colorado.edu>
5794 2001-12-10 Fernando Perez <fperez@colorado.edu>
5791
5795
5792 * Changed the first-time installer not to use tarfiles. It's more
5796 * Changed the first-time installer not to use tarfiles. It's more
5793 robust now and less unix-dependent. Also makes it easier for
5797 robust now and less unix-dependent. Also makes it easier for
5794 people to later upgrade versions.
5798 people to later upgrade versions.
5795
5799
5796 * Changed @exit to @abort to reflect the fact that it's pretty
5800 * Changed @exit to @abort to reflect the fact that it's pretty
5797 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5801 brutal (a sys.exit()). The difference between @abort and Ctrl-D
5798 becomes significant only when IPyhton is embedded: in that case,
5802 becomes significant only when IPyhton is embedded: in that case,
5799 C-D closes IPython only, but @abort kills the enclosing program
5803 C-D closes IPython only, but @abort kills the enclosing program
5800 too (unless it had called IPython inside a try catching
5804 too (unless it had called IPython inside a try catching
5801 SystemExit).
5805 SystemExit).
5802
5806
5803 * Created Shell module which exposes the actuall IPython Shell
5807 * Created Shell module which exposes the actuall IPython Shell
5804 classes, currently the normal and the embeddable one. This at
5808 classes, currently the normal and the embeddable one. This at
5805 least offers a stable interface we won't need to change when
5809 least offers a stable interface we won't need to change when
5806 (later) the internals are rewritten. That rewrite will be confined
5810 (later) the internals are rewritten. That rewrite will be confined
5807 to iplib and ipmaker, but the Shell interface should remain as is.
5811 to iplib and ipmaker, but the Shell interface should remain as is.
5808
5812
5809 * Added embed module which offers an embeddable IPShell object,
5813 * Added embed module which offers an embeddable IPShell object,
5810 useful to fire up IPython *inside* a running program. Great for
5814 useful to fire up IPython *inside* a running program. Great for
5811 debugging or dynamical data analysis.
5815 debugging or dynamical data analysis.
5812
5816
5813 2001-12-08 Fernando Perez <fperez@colorado.edu>
5817 2001-12-08 Fernando Perez <fperez@colorado.edu>
5814
5818
5815 * Fixed small bug preventing seeing info from methods of defined
5819 * Fixed small bug preventing seeing info from methods of defined
5816 objects (incorrect namespace in _ofind()).
5820 objects (incorrect namespace in _ofind()).
5817
5821
5818 * Documentation cleanup. Moved the main usage docstrings to a
5822 * Documentation cleanup. Moved the main usage docstrings to a
5819 separate file, usage.py (cleaner to maintain, and hopefully in the
5823 separate file, usage.py (cleaner to maintain, and hopefully in the
5820 future some perlpod-like way of producing interactive, man and
5824 future some perlpod-like way of producing interactive, man and
5821 html docs out of it will be found).
5825 html docs out of it will be found).
5822
5826
5823 * Added @profile to see your profile at any time.
5827 * Added @profile to see your profile at any time.
5824
5828
5825 * Added @p as an alias for 'print'. It's especially convenient if
5829 * Added @p as an alias for 'print'. It's especially convenient if
5826 using automagic ('p x' prints x).
5830 using automagic ('p x' prints x).
5827
5831
5828 * Small cleanups and fixes after a pychecker run.
5832 * Small cleanups and fixes after a pychecker run.
5829
5833
5830 * Changed the @cd command to handle @cd - and @cd -<n> for
5834 * Changed the @cd command to handle @cd - and @cd -<n> for
5831 visiting any directory in _dh.
5835 visiting any directory in _dh.
5832
5836
5833 * Introduced _dh, a history of visited directories. @dhist prints
5837 * Introduced _dh, a history of visited directories. @dhist prints
5834 it out with numbers.
5838 it out with numbers.
5835
5839
5836 2001-12-07 Fernando Perez <fperez@colorado.edu>
5840 2001-12-07 Fernando Perez <fperez@colorado.edu>
5837
5841
5838 * Released 0.1.22
5842 * Released 0.1.22
5839
5843
5840 * Made initialization a bit more robust against invalid color
5844 * Made initialization a bit more robust against invalid color
5841 options in user input (exit, not traceback-crash).
5845 options in user input (exit, not traceback-crash).
5842
5846
5843 * Changed the bug crash reporter to write the report only in the
5847 * Changed the bug crash reporter to write the report only in the
5844 user's .ipython directory. That way IPython won't litter people's
5848 user's .ipython directory. That way IPython won't litter people's
5845 hard disks with crash files all over the place. Also print on
5849 hard disks with crash files all over the place. Also print on
5846 screen the necessary mail command.
5850 screen the necessary mail command.
5847
5851
5848 * With the new ultraTB, implemented LightBG color scheme for light
5852 * With the new ultraTB, implemented LightBG color scheme for light
5849 background terminals. A lot of people like white backgrounds, so I
5853 background terminals. A lot of people like white backgrounds, so I
5850 guess we should at least give them something readable.
5854 guess we should at least give them something readable.
5851
5855
5852 2001-12-06 Fernando Perez <fperez@colorado.edu>
5856 2001-12-06 Fernando Perez <fperez@colorado.edu>
5853
5857
5854 * Modified the structure of ultraTB. Now there's a proper class
5858 * Modified the structure of ultraTB. Now there's a proper class
5855 for tables of color schemes which allow adding schemes easily and
5859 for tables of color schemes which allow adding schemes easily and
5856 switching the active scheme without creating a new instance every
5860 switching the active scheme without creating a new instance every
5857 time (which was ridiculous). The syntax for creating new schemes
5861 time (which was ridiculous). The syntax for creating new schemes
5858 is also cleaner. I think ultraTB is finally done, with a clean
5862 is also cleaner. I think ultraTB is finally done, with a clean
5859 class structure. Names are also much cleaner (now there's proper
5863 class structure. Names are also much cleaner (now there's proper
5860 color tables, no need for every variable to also have 'color' in
5864 color tables, no need for every variable to also have 'color' in
5861 its name).
5865 its name).
5862
5866
5863 * Broke down genutils into separate files. Now genutils only
5867 * Broke down genutils into separate files. Now genutils only
5864 contains utility functions, and classes have been moved to their
5868 contains utility functions, and classes have been moved to their
5865 own files (they had enough independent functionality to warrant
5869 own files (they had enough independent functionality to warrant
5866 it): ConfigLoader, OutputTrap, Struct.
5870 it): ConfigLoader, OutputTrap, Struct.
5867
5871
5868 2001-12-05 Fernando Perez <fperez@colorado.edu>
5872 2001-12-05 Fernando Perez <fperez@colorado.edu>
5869
5873
5870 * IPython turns 21! Released version 0.1.21, as a candidate for
5874 * IPython turns 21! Released version 0.1.21, as a candidate for
5871 public consumption. If all goes well, release in a few days.
5875 public consumption. If all goes well, release in a few days.
5872
5876
5873 * Fixed path bug (files in Extensions/ directory wouldn't be found
5877 * Fixed path bug (files in Extensions/ directory wouldn't be found
5874 unless IPython/ was explicitly in sys.path).
5878 unless IPython/ was explicitly in sys.path).
5875
5879
5876 * Extended the FlexCompleter class as MagicCompleter to allow
5880 * Extended the FlexCompleter class as MagicCompleter to allow
5877 completion of @-starting lines.
5881 completion of @-starting lines.
5878
5882
5879 * Created __release__.py file as a central repository for release
5883 * Created __release__.py file as a central repository for release
5880 info that other files can read from.
5884 info that other files can read from.
5881
5885
5882 * Fixed small bug in logging: when logging was turned on in
5886 * Fixed small bug in logging: when logging was turned on in
5883 mid-session, old lines with special meanings (!@?) were being
5887 mid-session, old lines with special meanings (!@?) were being
5884 logged without the prepended comment, which is necessary since
5888 logged without the prepended comment, which is necessary since
5885 they are not truly valid python syntax. This should make session
5889 they are not truly valid python syntax. This should make session
5886 restores produce less errors.
5890 restores produce less errors.
5887
5891
5888 * The namespace cleanup forced me to make a FlexCompleter class
5892 * The namespace cleanup forced me to make a FlexCompleter class
5889 which is nothing but a ripoff of rlcompleter, but with selectable
5893 which is nothing but a ripoff of rlcompleter, but with selectable
5890 namespace (rlcompleter only works in __main__.__dict__). I'll try
5894 namespace (rlcompleter only works in __main__.__dict__). I'll try
5891 to submit a note to the authors to see if this change can be
5895 to submit a note to the authors to see if this change can be
5892 incorporated in future rlcompleter releases (Dec.6: done)
5896 incorporated in future rlcompleter releases (Dec.6: done)
5893
5897
5894 * More fixes to namespace handling. It was a mess! Now all
5898 * More fixes to namespace handling. It was a mess! Now all
5895 explicit references to __main__.__dict__ are gone (except when
5899 explicit references to __main__.__dict__ are gone (except when
5896 really needed) and everything is handled through the namespace
5900 really needed) and everything is handled through the namespace
5897 dicts in the IPython instance. We seem to be getting somewhere
5901 dicts in the IPython instance. We seem to be getting somewhere
5898 with this, finally...
5902 with this, finally...
5899
5903
5900 * Small documentation updates.
5904 * Small documentation updates.
5901
5905
5902 * Created the Extensions directory under IPython (with an
5906 * Created the Extensions directory under IPython (with an
5903 __init__.py). Put the PhysicalQ stuff there. This directory should
5907 __init__.py). Put the PhysicalQ stuff there. This directory should
5904 be used for all special-purpose extensions.
5908 be used for all special-purpose extensions.
5905
5909
5906 * File renaming:
5910 * File renaming:
5907 ipythonlib --> ipmaker
5911 ipythonlib --> ipmaker
5908 ipplib --> iplib
5912 ipplib --> iplib
5909 This makes a bit more sense in terms of what these files actually do.
5913 This makes a bit more sense in terms of what these files actually do.
5910
5914
5911 * Moved all the classes and functions in ipythonlib to ipplib, so
5915 * Moved all the classes and functions in ipythonlib to ipplib, so
5912 now ipythonlib only has make_IPython(). This will ease up its
5916 now ipythonlib only has make_IPython(). This will ease up its
5913 splitting in smaller functional chunks later.
5917 splitting in smaller functional chunks later.
5914
5918
5915 * Cleaned up (done, I think) output of @whos. Better column
5919 * Cleaned up (done, I think) output of @whos. Better column
5916 formatting, and now shows str(var) for as much as it can, which is
5920 formatting, and now shows str(var) for as much as it can, which is
5917 typically what one gets with a 'print var'.
5921 typically what one gets with a 'print var'.
5918
5922
5919 2001-12-04 Fernando Perez <fperez@colorado.edu>
5923 2001-12-04 Fernando Perez <fperez@colorado.edu>
5920
5924
5921 * Fixed namespace problems. Now builtin/IPyhton/user names get
5925 * Fixed namespace problems. Now builtin/IPyhton/user names get
5922 properly reported in their namespace. Internal namespace handling
5926 properly reported in their namespace. Internal namespace handling
5923 is finally getting decent (not perfect yet, but much better than
5927 is finally getting decent (not perfect yet, but much better than
5924 the ad-hoc mess we had).
5928 the ad-hoc mess we had).
5925
5929
5926 * Removed -exit option. If people just want to run a python
5930 * Removed -exit option. If people just want to run a python
5927 script, that's what the normal interpreter is for. Less
5931 script, that's what the normal interpreter is for. Less
5928 unnecessary options, less chances for bugs.
5932 unnecessary options, less chances for bugs.
5929
5933
5930 * Added a crash handler which generates a complete post-mortem if
5934 * Added a crash handler which generates a complete post-mortem if
5931 IPython crashes. This will help a lot in tracking bugs down the
5935 IPython crashes. This will help a lot in tracking bugs down the
5932 road.
5936 road.
5933
5937
5934 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5938 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
5935 which were boud to functions being reassigned would bypass the
5939 which were boud to functions being reassigned would bypass the
5936 logger, breaking the sync of _il with the prompt counter. This
5940 logger, breaking the sync of _il with the prompt counter. This
5937 would then crash IPython later when a new line was logged.
5941 would then crash IPython later when a new line was logged.
5938
5942
5939 2001-12-02 Fernando Perez <fperez@colorado.edu>
5943 2001-12-02 Fernando Perez <fperez@colorado.edu>
5940
5944
5941 * Made IPython a package. This means people don't have to clutter
5945 * Made IPython a package. This means people don't have to clutter
5942 their sys.path with yet another directory. Changed the INSTALL
5946 their sys.path with yet another directory. Changed the INSTALL
5943 file accordingly.
5947 file accordingly.
5944
5948
5945 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5949 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
5946 sorts its output (so @who shows it sorted) and @whos formats the
5950 sorts its output (so @who shows it sorted) and @whos formats the
5947 table according to the width of the first column. Nicer, easier to
5951 table according to the width of the first column. Nicer, easier to
5948 read. Todo: write a generic table_format() which takes a list of
5952 read. Todo: write a generic table_format() which takes a list of
5949 lists and prints it nicely formatted, with optional row/column
5953 lists and prints it nicely formatted, with optional row/column
5950 separators and proper padding and justification.
5954 separators and proper padding and justification.
5951
5955
5952 * Released 0.1.20
5956 * Released 0.1.20
5953
5957
5954 * Fixed bug in @log which would reverse the inputcache list (a
5958 * Fixed bug in @log which would reverse the inputcache list (a
5955 copy operation was missing).
5959 copy operation was missing).
5956
5960
5957 * Code cleanup. @config was changed to use page(). Better, since
5961 * Code cleanup. @config was changed to use page(). Better, since
5958 its output is always quite long.
5962 its output is always quite long.
5959
5963
5960 * Itpl is back as a dependency. I was having too many problems
5964 * Itpl is back as a dependency. I was having too many problems
5961 getting the parametric aliases to work reliably, and it's just
5965 getting the parametric aliases to work reliably, and it's just
5962 easier to code weird string operations with it than playing %()s
5966 easier to code weird string operations with it than playing %()s
5963 games. It's only ~6k, so I don't think it's too big a deal.
5967 games. It's only ~6k, so I don't think it's too big a deal.
5964
5968
5965 * Found (and fixed) a very nasty bug with history. !lines weren't
5969 * Found (and fixed) a very nasty bug with history. !lines weren't
5966 getting cached, and the out of sync caches would crash
5970 getting cached, and the out of sync caches would crash
5967 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5971 IPython. Fixed it by reorganizing the prefilter/handlers/logger
5968 division of labor a bit better. Bug fixed, cleaner structure.
5972 division of labor a bit better. Bug fixed, cleaner structure.
5969
5973
5970 2001-12-01 Fernando Perez <fperez@colorado.edu>
5974 2001-12-01 Fernando Perez <fperez@colorado.edu>
5971
5975
5972 * Released 0.1.19
5976 * Released 0.1.19
5973
5977
5974 * Added option -n to @hist to prevent line number printing. Much
5978 * Added option -n to @hist to prevent line number printing. Much
5975 easier to copy/paste code this way.
5979 easier to copy/paste code this way.
5976
5980
5977 * Created global _il to hold the input list. Allows easy
5981 * Created global _il to hold the input list. Allows easy
5978 re-execution of blocks of code by slicing it (inspired by Janko's
5982 re-execution of blocks of code by slicing it (inspired by Janko's
5979 comment on 'macros').
5983 comment on 'macros').
5980
5984
5981 * Small fixes and doc updates.
5985 * Small fixes and doc updates.
5982
5986
5983 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5987 * Rewrote @history function (was @h). Renamed it to @hist, @h is
5984 much too fragile with automagic. Handles properly multi-line
5988 much too fragile with automagic. Handles properly multi-line
5985 statements and takes parameters.
5989 statements and takes parameters.
5986
5990
5987 2001-11-30 Fernando Perez <fperez@colorado.edu>
5991 2001-11-30 Fernando Perez <fperez@colorado.edu>
5988
5992
5989 * Version 0.1.18 released.
5993 * Version 0.1.18 released.
5990
5994
5991 * Fixed nasty namespace bug in initial module imports.
5995 * Fixed nasty namespace bug in initial module imports.
5992
5996
5993 * Added copyright/license notes to all code files (except
5997 * Added copyright/license notes to all code files (except
5994 DPyGetOpt). For the time being, LGPL. That could change.
5998 DPyGetOpt). For the time being, LGPL. That could change.
5995
5999
5996 * Rewrote a much nicer README, updated INSTALL, cleaned up
6000 * Rewrote a much nicer README, updated INSTALL, cleaned up
5997 ipythonrc-* samples.
6001 ipythonrc-* samples.
5998
6002
5999 * Overall code/documentation cleanup. Basically ready for
6003 * Overall code/documentation cleanup. Basically ready for
6000 release. Only remaining thing: licence decision (LGPL?).
6004 release. Only remaining thing: licence decision (LGPL?).
6001
6005
6002 * Converted load_config to a class, ConfigLoader. Now recursion
6006 * Converted load_config to a class, ConfigLoader. Now recursion
6003 control is better organized. Doesn't include the same file twice.
6007 control is better organized. Doesn't include the same file twice.
6004
6008
6005 2001-11-29 Fernando Perez <fperez@colorado.edu>
6009 2001-11-29 Fernando Perez <fperez@colorado.edu>
6006
6010
6007 * Got input history working. Changed output history variables from
6011 * Got input history working. Changed output history variables from
6008 _p to _o so that _i is for input and _o for output. Just cleaner
6012 _p to _o so that _i is for input and _o for output. Just cleaner
6009 convention.
6013 convention.
6010
6014
6011 * Implemented parametric aliases. This pretty much allows the
6015 * Implemented parametric aliases. This pretty much allows the
6012 alias system to offer full-blown shell convenience, I think.
6016 alias system to offer full-blown shell convenience, I think.
6013
6017
6014 * Version 0.1.17 released, 0.1.18 opened.
6018 * Version 0.1.17 released, 0.1.18 opened.
6015
6019
6016 * dot_ipython/ipythonrc (alias): added documentation.
6020 * dot_ipython/ipythonrc (alias): added documentation.
6017 (xcolor): Fixed small bug (xcolors -> xcolor)
6021 (xcolor): Fixed small bug (xcolors -> xcolor)
6018
6022
6019 * Changed the alias system. Now alias is a magic command to define
6023 * Changed the alias system. Now alias is a magic command to define
6020 aliases just like the shell. Rationale: the builtin magics should
6024 aliases just like the shell. Rationale: the builtin magics should
6021 be there for things deeply connected to IPython's
6025 be there for things deeply connected to IPython's
6022 architecture. And this is a much lighter system for what I think
6026 architecture. And this is a much lighter system for what I think
6023 is the really important feature: allowing users to define quickly
6027 is the really important feature: allowing users to define quickly
6024 magics that will do shell things for them, so they can customize
6028 magics that will do shell things for them, so they can customize
6025 IPython easily to match their work habits. If someone is really
6029 IPython easily to match their work habits. If someone is really
6026 desperate to have another name for a builtin alias, they can
6030 desperate to have another name for a builtin alias, they can
6027 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6031 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
6028 works.
6032 works.
6029
6033
6030 2001-11-28 Fernando Perez <fperez@colorado.edu>
6034 2001-11-28 Fernando Perez <fperez@colorado.edu>
6031
6035
6032 * Changed @file so that it opens the source file at the proper
6036 * Changed @file so that it opens the source file at the proper
6033 line. Since it uses less, if your EDITOR environment is
6037 line. Since it uses less, if your EDITOR environment is
6034 configured, typing v will immediately open your editor of choice
6038 configured, typing v will immediately open your editor of choice
6035 right at the line where the object is defined. Not as quick as
6039 right at the line where the object is defined. Not as quick as
6036 having a direct @edit command, but for all intents and purposes it
6040 having a direct @edit command, but for all intents and purposes it
6037 works. And I don't have to worry about writing @edit to deal with
6041 works. And I don't have to worry about writing @edit to deal with
6038 all the editors, less does that.
6042 all the editors, less does that.
6039
6043
6040 * Version 0.1.16 released, 0.1.17 opened.
6044 * Version 0.1.16 released, 0.1.17 opened.
6041
6045
6042 * Fixed some nasty bugs in the page/page_dumb combo that could
6046 * Fixed some nasty bugs in the page/page_dumb combo that could
6043 crash IPython.
6047 crash IPython.
6044
6048
6045 2001-11-27 Fernando Perez <fperez@colorado.edu>
6049 2001-11-27 Fernando Perez <fperez@colorado.edu>
6046
6050
6047 * Version 0.1.15 released, 0.1.16 opened.
6051 * Version 0.1.15 released, 0.1.16 opened.
6048
6052
6049 * Finally got ? and ?? to work for undefined things: now it's
6053 * Finally got ? and ?? to work for undefined things: now it's
6050 possible to type {}.get? and get information about the get method
6054 possible to type {}.get? and get information about the get method
6051 of dicts, or os.path? even if only os is defined (so technically
6055 of dicts, or os.path? even if only os is defined (so technically
6052 os.path isn't). Works at any level. For example, after import os,
6056 os.path isn't). Works at any level. For example, after import os,
6053 os?, os.path?, os.path.abspath? all work. This is great, took some
6057 os?, os.path?, os.path.abspath? all work. This is great, took some
6054 work in _ofind.
6058 work in _ofind.
6055
6059
6056 * Fixed more bugs with logging. The sanest way to do it was to add
6060 * Fixed more bugs with logging. The sanest way to do it was to add
6057 to @log a 'mode' parameter. Killed two in one shot (this mode
6061 to @log a 'mode' parameter. Killed two in one shot (this mode
6058 option was a request of Janko's). I think it's finally clean
6062 option was a request of Janko's). I think it's finally clean
6059 (famous last words).
6063 (famous last words).
6060
6064
6061 * Added a page_dumb() pager which does a decent job of paging on
6065 * Added a page_dumb() pager which does a decent job of paging on
6062 screen, if better things (like less) aren't available. One less
6066 screen, if better things (like less) aren't available. One less
6063 unix dependency (someday maybe somebody will port this to
6067 unix dependency (someday maybe somebody will port this to
6064 windows).
6068 windows).
6065
6069
6066 * Fixed problem in magic_log: would lock of logging out if log
6070 * Fixed problem in magic_log: would lock of logging out if log
6067 creation failed (because it would still think it had succeeded).
6071 creation failed (because it would still think it had succeeded).
6068
6072
6069 * Improved the page() function using curses to auto-detect screen
6073 * Improved the page() function using curses to auto-detect screen
6070 size. Now it can make a much better decision on whether to print
6074 size. Now it can make a much better decision on whether to print
6071 or page a string. Option screen_length was modified: a value 0
6075 or page a string. Option screen_length was modified: a value 0
6072 means auto-detect, and that's the default now.
6076 means auto-detect, and that's the default now.
6073
6077
6074 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6078 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
6075 go out. I'll test it for a few days, then talk to Janko about
6079 go out. I'll test it for a few days, then talk to Janko about
6076 licences and announce it.
6080 licences and announce it.
6077
6081
6078 * Fixed the length of the auto-generated ---> prompt which appears
6082 * Fixed the length of the auto-generated ---> prompt which appears
6079 for auto-parens and auto-quotes. Getting this right isn't trivial,
6083 for auto-parens and auto-quotes. Getting this right isn't trivial,
6080 with all the color escapes, different prompt types and optional
6084 with all the color escapes, different prompt types and optional
6081 separators. But it seems to be working in all the combinations.
6085 separators. But it seems to be working in all the combinations.
6082
6086
6083 2001-11-26 Fernando Perez <fperez@colorado.edu>
6087 2001-11-26 Fernando Perez <fperez@colorado.edu>
6084
6088
6085 * Wrote a regexp filter to get option types from the option names
6089 * Wrote a regexp filter to get option types from the option names
6086 string. This eliminates the need to manually keep two duplicate
6090 string. This eliminates the need to manually keep two duplicate
6087 lists.
6091 lists.
6088
6092
6089 * Removed the unneeded check_option_names. Now options are handled
6093 * Removed the unneeded check_option_names. Now options are handled
6090 in a much saner manner and it's easy to visually check that things
6094 in a much saner manner and it's easy to visually check that things
6091 are ok.
6095 are ok.
6092
6096
6093 * Updated version numbers on all files I modified to carry a
6097 * Updated version numbers on all files I modified to carry a
6094 notice so Janko and Nathan have clear version markers.
6098 notice so Janko and Nathan have clear version markers.
6095
6099
6096 * Updated docstring for ultraTB with my changes. I should send
6100 * Updated docstring for ultraTB with my changes. I should send
6097 this to Nathan.
6101 this to Nathan.
6098
6102
6099 * Lots of small fixes. Ran everything through pychecker again.
6103 * Lots of small fixes. Ran everything through pychecker again.
6100
6104
6101 * Made loading of deep_reload an cmd line option. If it's not too
6105 * Made loading of deep_reload an cmd line option. If it's not too
6102 kosher, now people can just disable it. With -nodeep_reload it's
6106 kosher, now people can just disable it. With -nodeep_reload it's
6103 still available as dreload(), it just won't overwrite reload().
6107 still available as dreload(), it just won't overwrite reload().
6104
6108
6105 * Moved many options to the no| form (-opt and -noopt
6109 * Moved many options to the no| form (-opt and -noopt
6106 accepted). Cleaner.
6110 accepted). Cleaner.
6107
6111
6108 * Changed magic_log so that if called with no parameters, it uses
6112 * Changed magic_log so that if called with no parameters, it uses
6109 'rotate' mode. That way auto-generated logs aren't automatically
6113 'rotate' mode. That way auto-generated logs aren't automatically
6110 over-written. For normal logs, now a backup is made if it exists
6114 over-written. For normal logs, now a backup is made if it exists
6111 (only 1 level of backups). A new 'backup' mode was added to the
6115 (only 1 level of backups). A new 'backup' mode was added to the
6112 Logger class to support this. This was a request by Janko.
6116 Logger class to support this. This was a request by Janko.
6113
6117
6114 * Added @logoff/@logon to stop/restart an active log.
6118 * Added @logoff/@logon to stop/restart an active log.
6115
6119
6116 * Fixed a lot of bugs in log saving/replay. It was pretty
6120 * Fixed a lot of bugs in log saving/replay. It was pretty
6117 broken. Now special lines (!@,/) appear properly in the command
6121 broken. Now special lines (!@,/) appear properly in the command
6118 history after a log replay.
6122 history after a log replay.
6119
6123
6120 * Tried and failed to implement full session saving via pickle. My
6124 * Tried and failed to implement full session saving via pickle. My
6121 idea was to pickle __main__.__dict__, but modules can't be
6125 idea was to pickle __main__.__dict__, but modules can't be
6122 pickled. This would be a better alternative to replaying logs, but
6126 pickled. This would be a better alternative to replaying logs, but
6123 seems quite tricky to get to work. Changed -session to be called
6127 seems quite tricky to get to work. Changed -session to be called
6124 -logplay, which more accurately reflects what it does. And if we
6128 -logplay, which more accurately reflects what it does. And if we
6125 ever get real session saving working, -session is now available.
6129 ever get real session saving working, -session is now available.
6126
6130
6127 * Implemented color schemes for prompts also. As for tracebacks,
6131 * Implemented color schemes for prompts also. As for tracebacks,
6128 currently only NoColor and Linux are supported. But now the
6132 currently only NoColor and Linux are supported. But now the
6129 infrastructure is in place, based on a generic ColorScheme
6133 infrastructure is in place, based on a generic ColorScheme
6130 class. So writing and activating new schemes both for the prompts
6134 class. So writing and activating new schemes both for the prompts
6131 and the tracebacks should be straightforward.
6135 and the tracebacks should be straightforward.
6132
6136
6133 * Version 0.1.13 released, 0.1.14 opened.
6137 * Version 0.1.13 released, 0.1.14 opened.
6134
6138
6135 * Changed handling of options for output cache. Now counter is
6139 * Changed handling of options for output cache. Now counter is
6136 hardwired starting at 1 and one specifies the maximum number of
6140 hardwired starting at 1 and one specifies the maximum number of
6137 entries *in the outcache* (not the max prompt counter). This is
6141 entries *in the outcache* (not the max prompt counter). This is
6138 much better, since many statements won't increase the cache
6142 much better, since many statements won't increase the cache
6139 count. It also eliminated some confusing options, now there's only
6143 count. It also eliminated some confusing options, now there's only
6140 one: cache_size.
6144 one: cache_size.
6141
6145
6142 * Added 'alias' magic function and magic_alias option in the
6146 * Added 'alias' magic function and magic_alias option in the
6143 ipythonrc file. Now the user can easily define whatever names he
6147 ipythonrc file. Now the user can easily define whatever names he
6144 wants for the magic functions without having to play weird
6148 wants for the magic functions without having to play weird
6145 namespace games. This gives IPython a real shell-like feel.
6149 namespace games. This gives IPython a real shell-like feel.
6146
6150
6147 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6151 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
6148 @ or not).
6152 @ or not).
6149
6153
6150 This was one of the last remaining 'visible' bugs (that I know
6154 This was one of the last remaining 'visible' bugs (that I know
6151 of). I think if I can clean up the session loading so it works
6155 of). I think if I can clean up the session loading so it works
6152 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6156 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
6153 about licensing).
6157 about licensing).
6154
6158
6155 2001-11-25 Fernando Perez <fperez@colorado.edu>
6159 2001-11-25 Fernando Perez <fperez@colorado.edu>
6156
6160
6157 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6161 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
6158 there's a cleaner distinction between what ? and ?? show.
6162 there's a cleaner distinction between what ? and ?? show.
6159
6163
6160 * Added screen_length option. Now the user can define his own
6164 * Added screen_length option. Now the user can define his own
6161 screen size for page() operations.
6165 screen size for page() operations.
6162
6166
6163 * Implemented magic shell-like functions with automatic code
6167 * Implemented magic shell-like functions with automatic code
6164 generation. Now adding another function is just a matter of adding
6168 generation. Now adding another function is just a matter of adding
6165 an entry to a dict, and the function is dynamically generated at
6169 an entry to a dict, and the function is dynamically generated at
6166 run-time. Python has some really cool features!
6170 run-time. Python has some really cool features!
6167
6171
6168 * Renamed many options to cleanup conventions a little. Now all
6172 * Renamed many options to cleanup conventions a little. Now all
6169 are lowercase, and only underscores where needed. Also in the code
6173 are lowercase, and only underscores where needed. Also in the code
6170 option name tables are clearer.
6174 option name tables are clearer.
6171
6175
6172 * Changed prompts a little. Now input is 'In [n]:' instead of
6176 * Changed prompts a little. Now input is 'In [n]:' instead of
6173 'In[n]:='. This allows it the numbers to be aligned with the
6177 'In[n]:='. This allows it the numbers to be aligned with the
6174 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6178 Out[n] numbers, and removes usage of ':=' which doesn't exist in
6175 Python (it was a Mathematica thing). The '...' continuation prompt
6179 Python (it was a Mathematica thing). The '...' continuation prompt
6176 was also changed a little to align better.
6180 was also changed a little to align better.
6177
6181
6178 * Fixed bug when flushing output cache. Not all _p<n> variables
6182 * Fixed bug when flushing output cache. Not all _p<n> variables
6179 exist, so their deletion needs to be wrapped in a try:
6183 exist, so their deletion needs to be wrapped in a try:
6180
6184
6181 * Figured out how to properly use inspect.formatargspec() (it
6185 * Figured out how to properly use inspect.formatargspec() (it
6182 requires the args preceded by *). So I removed all the code from
6186 requires the args preceded by *). So I removed all the code from
6183 _get_pdef in Magic, which was just replicating that.
6187 _get_pdef in Magic, which was just replicating that.
6184
6188
6185 * Added test to prefilter to allow redefining magic function names
6189 * Added test to prefilter to allow redefining magic function names
6186 as variables. This is ok, since the @ form is always available,
6190 as variables. This is ok, since the @ form is always available,
6187 but whe should allow the user to define a variable called 'ls' if
6191 but whe should allow the user to define a variable called 'ls' if
6188 he needs it.
6192 he needs it.
6189
6193
6190 * Moved the ToDo information from README into a separate ToDo.
6194 * Moved the ToDo information from README into a separate ToDo.
6191
6195
6192 * General code cleanup and small bugfixes. I think it's close to a
6196 * General code cleanup and small bugfixes. I think it's close to a
6193 state where it can be released, obviously with a big 'beta'
6197 state where it can be released, obviously with a big 'beta'
6194 warning on it.
6198 warning on it.
6195
6199
6196 * Got the magic function split to work. Now all magics are defined
6200 * Got the magic function split to work. Now all magics are defined
6197 in a separate class. It just organizes things a bit, and now
6201 in a separate class. It just organizes things a bit, and now
6198 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6202 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
6199 was too long).
6203 was too long).
6200
6204
6201 * Changed @clear to @reset to avoid potential confusions with
6205 * Changed @clear to @reset to avoid potential confusions with
6202 the shell command clear. Also renamed @cl to @clear, which does
6206 the shell command clear. Also renamed @cl to @clear, which does
6203 exactly what people expect it to from their shell experience.
6207 exactly what people expect it to from their shell experience.
6204
6208
6205 Added a check to the @reset command (since it's so
6209 Added a check to the @reset command (since it's so
6206 destructive, it's probably a good idea to ask for confirmation).
6210 destructive, it's probably a good idea to ask for confirmation).
6207 But now reset only works for full namespace resetting. Since the
6211 But now reset only works for full namespace resetting. Since the
6208 del keyword is already there for deleting a few specific
6212 del keyword is already there for deleting a few specific
6209 variables, I don't see the point of having a redundant magic
6213 variables, I don't see the point of having a redundant magic
6210 function for the same task.
6214 function for the same task.
6211
6215
6212 2001-11-24 Fernando Perez <fperez@colorado.edu>
6216 2001-11-24 Fernando Perez <fperez@colorado.edu>
6213
6217
6214 * Updated the builtin docs (esp. the ? ones).
6218 * Updated the builtin docs (esp. the ? ones).
6215
6219
6216 * Ran all the code through pychecker. Not terribly impressed with
6220 * Ran all the code through pychecker. Not terribly impressed with
6217 it: lots of spurious warnings and didn't really find anything of
6221 it: lots of spurious warnings and didn't really find anything of
6218 substance (just a few modules being imported and not used).
6222 substance (just a few modules being imported and not used).
6219
6223
6220 * Implemented the new ultraTB functionality into IPython. New
6224 * Implemented the new ultraTB functionality into IPython. New
6221 option: xcolors. This chooses color scheme. xmode now only selects
6225 option: xcolors. This chooses color scheme. xmode now only selects
6222 between Plain and Verbose. Better orthogonality.
6226 between Plain and Verbose. Better orthogonality.
6223
6227
6224 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6228 * Large rewrite of ultraTB. Much cleaner now, with a separation of
6225 mode and color scheme for the exception handlers. Now it's
6229 mode and color scheme for the exception handlers. Now it's
6226 possible to have the verbose traceback with no coloring.
6230 possible to have the verbose traceback with no coloring.
6227
6231
6228 2001-11-23 Fernando Perez <fperez@colorado.edu>
6232 2001-11-23 Fernando Perez <fperez@colorado.edu>
6229
6233
6230 * Version 0.1.12 released, 0.1.13 opened.
6234 * Version 0.1.12 released, 0.1.13 opened.
6231
6235
6232 * Removed option to set auto-quote and auto-paren escapes by
6236 * Removed option to set auto-quote and auto-paren escapes by
6233 user. The chances of breaking valid syntax are just too high. If
6237 user. The chances of breaking valid syntax are just too high. If
6234 someone *really* wants, they can always dig into the code.
6238 someone *really* wants, they can always dig into the code.
6235
6239
6236 * Made prompt separators configurable.
6240 * Made prompt separators configurable.
6237
6241
6238 2001-11-22 Fernando Perez <fperez@colorado.edu>
6242 2001-11-22 Fernando Perez <fperez@colorado.edu>
6239
6243
6240 * Small bugfixes in many places.
6244 * Small bugfixes in many places.
6241
6245
6242 * Removed the MyCompleter class from ipplib. It seemed redundant
6246 * Removed the MyCompleter class from ipplib. It seemed redundant
6243 with the C-p,C-n history search functionality. Less code to
6247 with the C-p,C-n history search functionality. Less code to
6244 maintain.
6248 maintain.
6245
6249
6246 * Moved all the original ipython.py code into ipythonlib.py. Right
6250 * Moved all the original ipython.py code into ipythonlib.py. Right
6247 now it's just one big dump into a function called make_IPython, so
6251 now it's just one big dump into a function called make_IPython, so
6248 no real modularity has been gained. But at least it makes the
6252 no real modularity has been gained. But at least it makes the
6249 wrapper script tiny, and since ipythonlib is a module, it gets
6253 wrapper script tiny, and since ipythonlib is a module, it gets
6250 compiled and startup is much faster.
6254 compiled and startup is much faster.
6251
6255
6252 This is a reasobably 'deep' change, so we should test it for a
6256 This is a reasobably 'deep' change, so we should test it for a
6253 while without messing too much more with the code.
6257 while without messing too much more with the code.
6254
6258
6255 2001-11-21 Fernando Perez <fperez@colorado.edu>
6259 2001-11-21 Fernando Perez <fperez@colorado.edu>
6256
6260
6257 * Version 0.1.11 released, 0.1.12 opened for further work.
6261 * Version 0.1.11 released, 0.1.12 opened for further work.
6258
6262
6259 * Removed dependency on Itpl. It was only needed in one place. It
6263 * Removed dependency on Itpl. It was only needed in one place. It
6260 would be nice if this became part of python, though. It makes life
6264 would be nice if this became part of python, though. It makes life
6261 *a lot* easier in some cases.
6265 *a lot* easier in some cases.
6262
6266
6263 * Simplified the prefilter code a bit. Now all handlers are
6267 * Simplified the prefilter code a bit. Now all handlers are
6264 expected to explicitly return a value (at least a blank string).
6268 expected to explicitly return a value (at least a blank string).
6265
6269
6266 * Heavy edits in ipplib. Removed the help system altogether. Now
6270 * Heavy edits in ipplib. Removed the help system altogether. Now
6267 obj?/?? is used for inspecting objects, a magic @doc prints
6271 obj?/?? is used for inspecting objects, a magic @doc prints
6268 docstrings, and full-blown Python help is accessed via the 'help'
6272 docstrings, and full-blown Python help is accessed via the 'help'
6269 keyword. This cleans up a lot of code (less to maintain) and does
6273 keyword. This cleans up a lot of code (less to maintain) and does
6270 the job. Since 'help' is now a standard Python component, might as
6274 the job. Since 'help' is now a standard Python component, might as
6271 well use it and remove duplicate functionality.
6275 well use it and remove duplicate functionality.
6272
6276
6273 Also removed the option to use ipplib as a standalone program. By
6277 Also removed the option to use ipplib as a standalone program. By
6274 now it's too dependent on other parts of IPython to function alone.
6278 now it's too dependent on other parts of IPython to function alone.
6275
6279
6276 * Fixed bug in genutils.pager. It would crash if the pager was
6280 * Fixed bug in genutils.pager. It would crash if the pager was
6277 exited immediately after opening (broken pipe).
6281 exited immediately after opening (broken pipe).
6278
6282
6279 * Trimmed down the VerboseTB reporting a little. The header is
6283 * Trimmed down the VerboseTB reporting a little. The header is
6280 much shorter now and the repeated exception arguments at the end
6284 much shorter now and the repeated exception arguments at the end
6281 have been removed. For interactive use the old header seemed a bit
6285 have been removed. For interactive use the old header seemed a bit
6282 excessive.
6286 excessive.
6283
6287
6284 * Fixed small bug in output of @whos for variables with multi-word
6288 * Fixed small bug in output of @whos for variables with multi-word
6285 types (only first word was displayed).
6289 types (only first word was displayed).
6286
6290
6287 2001-11-17 Fernando Perez <fperez@colorado.edu>
6291 2001-11-17 Fernando Perez <fperez@colorado.edu>
6288
6292
6289 * Version 0.1.10 released, 0.1.11 opened for further work.
6293 * Version 0.1.10 released, 0.1.11 opened for further work.
6290
6294
6291 * Modified dirs and friends. dirs now *returns* the stack (not
6295 * Modified dirs and friends. dirs now *returns* the stack (not
6292 prints), so one can manipulate it as a variable. Convenient to
6296 prints), so one can manipulate it as a variable. Convenient to
6293 travel along many directories.
6297 travel along many directories.
6294
6298
6295 * Fixed bug in magic_pdef: would only work with functions with
6299 * Fixed bug in magic_pdef: would only work with functions with
6296 arguments with default values.
6300 arguments with default values.
6297
6301
6298 2001-11-14 Fernando Perez <fperez@colorado.edu>
6302 2001-11-14 Fernando Perez <fperez@colorado.edu>
6299
6303
6300 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6304 * Added the PhysicsInput stuff to dot_ipython so it ships as an
6301 example with IPython. Various other minor fixes and cleanups.
6305 example with IPython. Various other minor fixes and cleanups.
6302
6306
6303 * Version 0.1.9 released, 0.1.10 opened for further work.
6307 * Version 0.1.9 released, 0.1.10 opened for further work.
6304
6308
6305 * Added sys.path to the list of directories searched in the
6309 * Added sys.path to the list of directories searched in the
6306 execfile= option. It used to be the current directory and the
6310 execfile= option. It used to be the current directory and the
6307 user's IPYTHONDIR only.
6311 user's IPYTHONDIR only.
6308
6312
6309 2001-11-13 Fernando Perez <fperez@colorado.edu>
6313 2001-11-13 Fernando Perez <fperez@colorado.edu>
6310
6314
6311 * Reinstated the raw_input/prefilter separation that Janko had
6315 * Reinstated the raw_input/prefilter separation that Janko had
6312 initially. This gives a more convenient setup for extending the
6316 initially. This gives a more convenient setup for extending the
6313 pre-processor from the outside: raw_input always gets a string,
6317 pre-processor from the outside: raw_input always gets a string,
6314 and prefilter has to process it. We can then redefine prefilter
6318 and prefilter has to process it. We can then redefine prefilter
6315 from the outside and implement extensions for special
6319 from the outside and implement extensions for special
6316 purposes.
6320 purposes.
6317
6321
6318 Today I got one for inputting PhysicalQuantity objects
6322 Today I got one for inputting PhysicalQuantity objects
6319 (from Scientific) without needing any function calls at
6323 (from Scientific) without needing any function calls at
6320 all. Extremely convenient, and it's all done as a user-level
6324 all. Extremely convenient, and it's all done as a user-level
6321 extension (no IPython code was touched). Now instead of:
6325 extension (no IPython code was touched). Now instead of:
6322 a = PhysicalQuantity(4.2,'m/s**2')
6326 a = PhysicalQuantity(4.2,'m/s**2')
6323 one can simply say
6327 one can simply say
6324 a = 4.2 m/s**2
6328 a = 4.2 m/s**2
6325 or even
6329 or even
6326 a = 4.2 m/s^2
6330 a = 4.2 m/s^2
6327
6331
6328 I use this, but it's also a proof of concept: IPython really is
6332 I use this, but it's also a proof of concept: IPython really is
6329 fully user-extensible, even at the level of the parsing of the
6333 fully user-extensible, even at the level of the parsing of the
6330 command line. It's not trivial, but it's perfectly doable.
6334 command line. It's not trivial, but it's perfectly doable.
6331
6335
6332 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6336 * Added 'add_flip' method to inclusion conflict resolver. Fixes
6333 the problem of modules being loaded in the inverse order in which
6337 the problem of modules being loaded in the inverse order in which
6334 they were defined in
6338 they were defined in
6335
6339
6336 * Version 0.1.8 released, 0.1.9 opened for further work.
6340 * Version 0.1.8 released, 0.1.9 opened for further work.
6337
6341
6338 * Added magics pdef, source and file. They respectively show the
6342 * Added magics pdef, source and file. They respectively show the
6339 definition line ('prototype' in C), source code and full python
6343 definition line ('prototype' in C), source code and full python
6340 file for any callable object. The object inspector oinfo uses
6344 file for any callable object. The object inspector oinfo uses
6341 these to show the same information.
6345 these to show the same information.
6342
6346
6343 * Version 0.1.7 released, 0.1.8 opened for further work.
6347 * Version 0.1.7 released, 0.1.8 opened for further work.
6344
6348
6345 * Separated all the magic functions into a class called Magic. The
6349 * Separated all the magic functions into a class called Magic. The
6346 InteractiveShell class was becoming too big for Xemacs to handle
6350 InteractiveShell class was becoming too big for Xemacs to handle
6347 (de-indenting a line would lock it up for 10 seconds while it
6351 (de-indenting a line would lock it up for 10 seconds while it
6348 backtracked on the whole class!)
6352 backtracked on the whole class!)
6349
6353
6350 FIXME: didn't work. It can be done, but right now namespaces are
6354 FIXME: didn't work. It can be done, but right now namespaces are
6351 all messed up. Do it later (reverted it for now, so at least
6355 all messed up. Do it later (reverted it for now, so at least
6352 everything works as before).
6356 everything works as before).
6353
6357
6354 * Got the object introspection system (magic_oinfo) working! I
6358 * Got the object introspection system (magic_oinfo) working! I
6355 think this is pretty much ready for release to Janko, so he can
6359 think this is pretty much ready for release to Janko, so he can
6356 test it for a while and then announce it. Pretty much 100% of what
6360 test it for a while and then announce it. Pretty much 100% of what
6357 I wanted for the 'phase 1' release is ready. Happy, tired.
6361 I wanted for the 'phase 1' release is ready. Happy, tired.
6358
6362
6359 2001-11-12 Fernando Perez <fperez@colorado.edu>
6363 2001-11-12 Fernando Perez <fperez@colorado.edu>
6360
6364
6361 * Version 0.1.6 released, 0.1.7 opened for further work.
6365 * Version 0.1.6 released, 0.1.7 opened for further work.
6362
6366
6363 * Fixed bug in printing: it used to test for truth before
6367 * Fixed bug in printing: it used to test for truth before
6364 printing, so 0 wouldn't print. Now checks for None.
6368 printing, so 0 wouldn't print. Now checks for None.
6365
6369
6366 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6370 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
6367 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6371 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
6368 reaches by hand into the outputcache. Think of a better way to do
6372 reaches by hand into the outputcache. Think of a better way to do
6369 this later.
6373 this later.
6370
6374
6371 * Various small fixes thanks to Nathan's comments.
6375 * Various small fixes thanks to Nathan's comments.
6372
6376
6373 * Changed magic_pprint to magic_Pprint. This way it doesn't
6377 * Changed magic_pprint to magic_Pprint. This way it doesn't
6374 collide with pprint() and the name is consistent with the command
6378 collide with pprint() and the name is consistent with the command
6375 line option.
6379 line option.
6376
6380
6377 * Changed prompt counter behavior to be fully like
6381 * Changed prompt counter behavior to be fully like
6378 Mathematica's. That is, even input that doesn't return a result
6382 Mathematica's. That is, even input that doesn't return a result
6379 raises the prompt counter. The old behavior was kind of confusing
6383 raises the prompt counter. The old behavior was kind of confusing
6380 (getting the same prompt number several times if the operation
6384 (getting the same prompt number several times if the operation
6381 didn't return a result).
6385 didn't return a result).
6382
6386
6383 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6387 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
6384
6388
6385 * Fixed -Classic mode (wasn't working anymore).
6389 * Fixed -Classic mode (wasn't working anymore).
6386
6390
6387 * Added colored prompts using Nathan's new code. Colors are
6391 * Added colored prompts using Nathan's new code. Colors are
6388 currently hardwired, they can be user-configurable. For
6392 currently hardwired, they can be user-configurable. For
6389 developers, they can be chosen in file ipythonlib.py, at the
6393 developers, they can be chosen in file ipythonlib.py, at the
6390 beginning of the CachedOutput class def.
6394 beginning of the CachedOutput class def.
6391
6395
6392 2001-11-11 Fernando Perez <fperez@colorado.edu>
6396 2001-11-11 Fernando Perez <fperez@colorado.edu>
6393
6397
6394 * Version 0.1.5 released, 0.1.6 opened for further work.
6398 * Version 0.1.5 released, 0.1.6 opened for further work.
6395
6399
6396 * Changed magic_env to *return* the environment as a dict (not to
6400 * Changed magic_env to *return* the environment as a dict (not to
6397 print it). This way it prints, but it can also be processed.
6401 print it). This way it prints, but it can also be processed.
6398
6402
6399 * Added Verbose exception reporting to interactive
6403 * Added Verbose exception reporting to interactive
6400 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6404 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
6401 traceback. Had to make some changes to the ultraTB file. This is
6405 traceback. Had to make some changes to the ultraTB file. This is
6402 probably the last 'big' thing in my mental todo list. This ties
6406 probably the last 'big' thing in my mental todo list. This ties
6403 in with the next entry:
6407 in with the next entry:
6404
6408
6405 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6409 * Changed -Xi and -Xf to a single -xmode option. Now all the user
6406 has to specify is Plain, Color or Verbose for all exception
6410 has to specify is Plain, Color or Verbose for all exception
6407 handling.
6411 handling.
6408
6412
6409 * Removed ShellServices option. All this can really be done via
6413 * Removed ShellServices option. All this can really be done via
6410 the magic system. It's easier to extend, cleaner and has automatic
6414 the magic system. It's easier to extend, cleaner and has automatic
6411 namespace protection and documentation.
6415 namespace protection and documentation.
6412
6416
6413 2001-11-09 Fernando Perez <fperez@colorado.edu>
6417 2001-11-09 Fernando Perez <fperez@colorado.edu>
6414
6418
6415 * Fixed bug in output cache flushing (missing parameter to
6419 * Fixed bug in output cache flushing (missing parameter to
6416 __init__). Other small bugs fixed (found using pychecker).
6420 __init__). Other small bugs fixed (found using pychecker).
6417
6421
6418 * Version 0.1.4 opened for bugfixing.
6422 * Version 0.1.4 opened for bugfixing.
6419
6423
6420 2001-11-07 Fernando Perez <fperez@colorado.edu>
6424 2001-11-07 Fernando Perez <fperez@colorado.edu>
6421
6425
6422 * Version 0.1.3 released, mainly because of the raw_input bug.
6426 * Version 0.1.3 released, mainly because of the raw_input bug.
6423
6427
6424 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6428 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
6425 and when testing for whether things were callable, a call could
6429 and when testing for whether things were callable, a call could
6426 actually be made to certain functions. They would get called again
6430 actually be made to certain functions. They would get called again
6427 once 'really' executed, with a resulting double call. A disaster
6431 once 'really' executed, with a resulting double call. A disaster
6428 in many cases (list.reverse() would never work!).
6432 in many cases (list.reverse() would never work!).
6429
6433
6430 * Removed prefilter() function, moved its code to raw_input (which
6434 * Removed prefilter() function, moved its code to raw_input (which
6431 after all was just a near-empty caller for prefilter). This saves
6435 after all was just a near-empty caller for prefilter). This saves
6432 a function call on every prompt, and simplifies the class a tiny bit.
6436 a function call on every prompt, and simplifies the class a tiny bit.
6433
6437
6434 * Fix _ip to __ip name in magic example file.
6438 * Fix _ip to __ip name in magic example file.
6435
6439
6436 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6440 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
6437 work with non-gnu versions of tar.
6441 work with non-gnu versions of tar.
6438
6442
6439 2001-11-06 Fernando Perez <fperez@colorado.edu>
6443 2001-11-06 Fernando Perez <fperez@colorado.edu>
6440
6444
6441 * Version 0.1.2. Just to keep track of the recent changes.
6445 * Version 0.1.2. Just to keep track of the recent changes.
6442
6446
6443 * Fixed nasty bug in output prompt routine. It used to check 'if
6447 * Fixed nasty bug in output prompt routine. It used to check 'if
6444 arg != None...'. Problem is, this fails if arg implements a
6448 arg != None...'. Problem is, this fails if arg implements a
6445 special comparison (__cmp__) which disallows comparing to
6449 special comparison (__cmp__) which disallows comparing to
6446 None. Found it when trying to use the PhysicalQuantity module from
6450 None. Found it when trying to use the PhysicalQuantity module from
6447 ScientificPython.
6451 ScientificPython.
6448
6452
6449 2001-11-05 Fernando Perez <fperez@colorado.edu>
6453 2001-11-05 Fernando Perez <fperez@colorado.edu>
6450
6454
6451 * Also added dirs. Now the pushd/popd/dirs family functions
6455 * Also added dirs. Now the pushd/popd/dirs family functions
6452 basically like the shell, with the added convenience of going home
6456 basically like the shell, with the added convenience of going home
6453 when called with no args.
6457 when called with no args.
6454
6458
6455 * pushd/popd slightly modified to mimic shell behavior more
6459 * pushd/popd slightly modified to mimic shell behavior more
6456 closely.
6460 closely.
6457
6461
6458 * Added env,pushd,popd from ShellServices as magic functions. I
6462 * Added env,pushd,popd from ShellServices as magic functions. I
6459 think the cleanest will be to port all desired functions from
6463 think the cleanest will be to port all desired functions from
6460 ShellServices as magics and remove ShellServices altogether. This
6464 ShellServices as magics and remove ShellServices altogether. This
6461 will provide a single, clean way of adding functionality
6465 will provide a single, clean way of adding functionality
6462 (shell-type or otherwise) to IP.
6466 (shell-type or otherwise) to IP.
6463
6467
6464 2001-11-04 Fernando Perez <fperez@colorado.edu>
6468 2001-11-04 Fernando Perez <fperez@colorado.edu>
6465
6469
6466 * Added .ipython/ directory to sys.path. This way users can keep
6470 * Added .ipython/ directory to sys.path. This way users can keep
6467 customizations there and access them via import.
6471 customizations there and access them via import.
6468
6472
6469 2001-11-03 Fernando Perez <fperez@colorado.edu>
6473 2001-11-03 Fernando Perez <fperez@colorado.edu>
6470
6474
6471 * Opened version 0.1.1 for new changes.
6475 * Opened version 0.1.1 for new changes.
6472
6476
6473 * Changed version number to 0.1.0: first 'public' release, sent to
6477 * Changed version number to 0.1.0: first 'public' release, sent to
6474 Nathan and Janko.
6478 Nathan and Janko.
6475
6479
6476 * Lots of small fixes and tweaks.
6480 * Lots of small fixes and tweaks.
6477
6481
6478 * Minor changes to whos format. Now strings are shown, snipped if
6482 * Minor changes to whos format. Now strings are shown, snipped if
6479 too long.
6483 too long.
6480
6484
6481 * Changed ShellServices to work on __main__ so they show up in @who
6485 * Changed ShellServices to work on __main__ so they show up in @who
6482
6486
6483 * Help also works with ? at the end of a line:
6487 * Help also works with ? at the end of a line:
6484 ?sin and sin?
6488 ?sin and sin?
6485 both produce the same effect. This is nice, as often I use the
6489 both produce the same effect. This is nice, as often I use the
6486 tab-complete to find the name of a method, but I used to then have
6490 tab-complete to find the name of a method, but I used to then have
6487 to go to the beginning of the line to put a ? if I wanted more
6491 to go to the beginning of the line to put a ? if I wanted more
6488 info. Now I can just add the ? and hit return. Convenient.
6492 info. Now I can just add the ? and hit return. Convenient.
6489
6493
6490 2001-11-02 Fernando Perez <fperez@colorado.edu>
6494 2001-11-02 Fernando Perez <fperez@colorado.edu>
6491
6495
6492 * Python version check (>=2.1) added.
6496 * Python version check (>=2.1) added.
6493
6497
6494 * Added LazyPython documentation. At this point the docs are quite
6498 * Added LazyPython documentation. At this point the docs are quite
6495 a mess. A cleanup is in order.
6499 a mess. A cleanup is in order.
6496
6500
6497 * Auto-installer created. For some bizarre reason, the zipfiles
6501 * Auto-installer created. For some bizarre reason, the zipfiles
6498 module isn't working on my system. So I made a tar version
6502 module isn't working on my system. So I made a tar version
6499 (hopefully the command line options in various systems won't kill
6503 (hopefully the command line options in various systems won't kill
6500 me).
6504 me).
6501
6505
6502 * Fixes to Struct in genutils. Now all dictionary-like methods are
6506 * Fixes to Struct in genutils. Now all dictionary-like methods are
6503 protected (reasonably).
6507 protected (reasonably).
6504
6508
6505 * Added pager function to genutils and changed ? to print usage
6509 * Added pager function to genutils and changed ? to print usage
6506 note through it (it was too long).
6510 note through it (it was too long).
6507
6511
6508 * Added the LazyPython functionality. Works great! I changed the
6512 * Added the LazyPython functionality. Works great! I changed the
6509 auto-quote escape to ';', it's on home row and next to '. But
6513 auto-quote escape to ';', it's on home row and next to '. But
6510 both auto-quote and auto-paren (still /) escapes are command-line
6514 both auto-quote and auto-paren (still /) escapes are command-line
6511 parameters.
6515 parameters.
6512
6516
6513
6517
6514 2001-11-01 Fernando Perez <fperez@colorado.edu>
6518 2001-11-01 Fernando Perez <fperez@colorado.edu>
6515
6519
6516 * Version changed to 0.0.7. Fairly large change: configuration now
6520 * Version changed to 0.0.7. Fairly large change: configuration now
6517 is all stored in a directory, by default .ipython. There, all
6521 is all stored in a directory, by default .ipython. There, all
6518 config files have normal looking names (not .names)
6522 config files have normal looking names (not .names)
6519
6523
6520 * Version 0.0.6 Released first to Lucas and Archie as a test
6524 * Version 0.0.6 Released first to Lucas and Archie as a test
6521 run. Since it's the first 'semi-public' release, change version to
6525 run. Since it's the first 'semi-public' release, change version to
6522 > 0.0.6 for any changes now.
6526 > 0.0.6 for any changes now.
6523
6527
6524 * Stuff I had put in the ipplib.py changelog:
6528 * Stuff I had put in the ipplib.py changelog:
6525
6529
6526 Changes to InteractiveShell:
6530 Changes to InteractiveShell:
6527
6531
6528 - Made the usage message a parameter.
6532 - Made the usage message a parameter.
6529
6533
6530 - Require the name of the shell variable to be given. It's a bit
6534 - Require the name of the shell variable to be given. It's a bit
6531 of a hack, but allows the name 'shell' not to be hardwired in the
6535 of a hack, but allows the name 'shell' not to be hardwired in the
6532 magic (@) handler, which is problematic b/c it requires
6536 magic (@) handler, which is problematic b/c it requires
6533 polluting the global namespace with 'shell'. This in turn is
6537 polluting the global namespace with 'shell'. This in turn is
6534 fragile: if a user redefines a variable called shell, things
6538 fragile: if a user redefines a variable called shell, things
6535 break.
6539 break.
6536
6540
6537 - magic @: all functions available through @ need to be defined
6541 - magic @: all functions available through @ need to be defined
6538 as magic_<name>, even though they can be called simply as
6542 as magic_<name>, even though they can be called simply as
6539 @<name>. This allows the special command @magic to gather
6543 @<name>. This allows the special command @magic to gather
6540 information automatically about all existing magic functions,
6544 information automatically about all existing magic functions,
6541 even if they are run-time user extensions, by parsing the shell
6545 even if they are run-time user extensions, by parsing the shell
6542 instance __dict__ looking for special magic_ names.
6546 instance __dict__ looking for special magic_ names.
6543
6547
6544 - mainloop: added *two* local namespace parameters. This allows
6548 - mainloop: added *two* local namespace parameters. This allows
6545 the class to differentiate between parameters which were there
6549 the class to differentiate between parameters which were there
6546 before and after command line initialization was processed. This
6550 before and after command line initialization was processed. This
6547 way, later @who can show things loaded at startup by the
6551 way, later @who can show things loaded at startup by the
6548 user. This trick was necessary to make session saving/reloading
6552 user. This trick was necessary to make session saving/reloading
6549 really work: ideally after saving/exiting/reloading a session,
6553 really work: ideally after saving/exiting/reloading a session,
6550 *everything* should look the same, including the output of @who. I
6554 *everything* should look the same, including the output of @who. I
6551 was only able to make this work with this double namespace
6555 was only able to make this work with this double namespace
6552 trick.
6556 trick.
6553
6557
6554 - added a header to the logfile which allows (almost) full
6558 - added a header to the logfile which allows (almost) full
6555 session restoring.
6559 session restoring.
6556
6560
6557 - prepend lines beginning with @ or !, with a and log
6561 - prepend lines beginning with @ or !, with a and log
6558 them. Why? !lines: may be useful to know what you did @lines:
6562 them. Why? !lines: may be useful to know what you did @lines:
6559 they may affect session state. So when restoring a session, at
6563 they may affect session state. So when restoring a session, at
6560 least inform the user of their presence. I couldn't quite get
6564 least inform the user of their presence. I couldn't quite get
6561 them to properly re-execute, but at least the user is warned.
6565 them to properly re-execute, but at least the user is warned.
6562
6566
6563 * Started ChangeLog.
6567 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now