##// END OF EJS Templates
Pauli's autoreload patch to do proper "superreload", i.e. replace code objects of used function objects. Fixes #237691
Ville M. Vainio -
Show More
@@ -1,244 +1,340 b''
1 """
1 """
2 IPython extension: autoreload modules before executing the next line
2 IPython extension: autoreload modules before executing the next line
3
3
4 Try::
4 Try::
5
5
6 %autoreload?
6 %autoreload?
7
7
8 for documentation.
8 for documentation.
9 """
9 """
10
10
11 # Pauli Virtanen <pav@iki.fi>, 2008.
11 # Pauli Virtanen <pav@iki.fi>, 2008.
12 # Thomas Heller, 2000.
12 # Thomas Heller, 2000.
13 #
13 #
14 # This IPython module is written by Pauli Virtanen, based on the autoreload
14 # This IPython module is written by Pauli Virtanen, based on the autoreload
15 # code by Thomas Heller.
15 # code by Thomas Heller.
16
16
17 #------------------------------------------------------------------------------
17 #------------------------------------------------------------------------------
18 # Autoreload functionality
18 # Autoreload functionality
19 #------------------------------------------------------------------------------
19 #------------------------------------------------------------------------------
20
20
21 import time, os, threading, sys, types, imp, inspect, traceback, atexit
21 import time, os, threading, sys, types, imp, inspect, traceback, atexit
22 import weakref
22
23
23 def _get_compiled_ext():
24 def _get_compiled_ext():
24 """Official way to get the extension of compiled files (.pyc or .pyo)"""
25 """Official way to get the extension of compiled files (.pyc or .pyo)"""
25 for ext, mode, typ in imp.get_suffixes():
26 for ext, mode, typ in imp.get_suffixes():
26 if typ == imp.PY_COMPILED:
27 if typ == imp.PY_COMPILED:
27 return ext
28 return ext
28
29
29 PY_COMPILED_EXT = _get_compiled_ext()
30 PY_COMPILED_EXT = _get_compiled_ext()
30
31
31 class ModuleReloader(object):
32 class ModuleReloader(object):
32 skipped = {}
33 failed = {}
33 """Modules that failed to reload: {module: mtime-on-failed-reload, ...}"""
34 """Modules that failed to reload: {module: mtime-on-failed-reload, ...}"""
34
35
35 modules = {}
36 modules = {}
36 """Modules specially marked as autoreloadable."""
37 """Modules specially marked as autoreloadable."""
37
38
38 skip_modules = {}
39 skip_modules = {}
39 """Modules specially marked as not autoreloadable."""
40 """Modules specially marked as not autoreloadable."""
40
41
41 check_all = True
42 check_all = True
42 """Autoreload all modules, not just those listed in 'modules'"""
43 """Autoreload all modules, not just those listed in 'modules'"""
44
45 old_objects = {}
46 """(module-name, name) -> weakref, for replacing old code objects"""
43
47
44 def check(self, check_all=False):
48 def check(self, check_all=False):
45 """Check whether some modules need to be reloaded."""
49 """Check whether some modules need to be reloaded."""
46
50
47 if check_all or self.check_all:
51 if check_all or self.check_all:
48 modules = sys.modules.keys()
52 modules = sys.modules.keys()
49 else:
53 else:
50 modules = self.modules.keys()
54 modules = self.modules.keys()
51
55
52 for modname in modules:
56 for modname in modules:
53 m = sys.modules.get(modname, None)
57 m = sys.modules.get(modname, None)
54
58
55 if modname in self.skip_modules:
59 if modname in self.skip_modules:
56 continue
60 continue
57
61
58 if not hasattr(m, '__file__'):
62 if not hasattr(m, '__file__'):
59 continue
63 continue
60
64
61 if m.__name__ == '__main__':
65 if m.__name__ == '__main__':
62 # we cannot reload(__main__)
66 # we cannot reload(__main__)
63 continue
67 continue
64
68
65 filename = m.__file__
69 filename = m.__file__
66 dirname = os.path.dirname(filename)
70 dirname = os.path.dirname(filename)
67 path, ext = os.path.splitext(filename)
71 path, ext = os.path.splitext(filename)
68
72
69 if ext.lower() == '.py':
73 if ext.lower() == '.py':
70 ext = PY_COMPILED_EXT
74 ext = PY_COMPILED_EXT
71 filename = os.path.join(dirname, path + PY_COMPILED_EXT)
75 filename = os.path.join(dirname, path + PY_COMPILED_EXT)
72
76
73 if ext != PY_COMPILED_EXT:
77 if ext != PY_COMPILED_EXT:
74 continue
78 continue
75
79
76 try:
80 try:
77 pymtime = os.stat(filename[:-1]).st_mtime
81 pymtime = os.stat(filename[:-1]).st_mtime
78 if pymtime <= os.stat(filename).st_mtime:
82 if pymtime <= os.stat(filename).st_mtime:
79 continue
83 continue
80 if self.skipped.get(filename[:-1], None) == pymtime:
84 if self.failed.get(filename[:-1], None) == pymtime:
81 continue
85 continue
82 except OSError:
86 except OSError:
83 continue
87 continue
84
88
85 try:
89 try:
86 superreload(m)
90 superreload(m, reload, self.old_objects)
87 if filename[:-1] in self.skipped:
91 if filename[:-1] in self.failed:
88 del self.skipped[filename[:-1]]
92 del self.failed[filename[:-1]]
89 except:
93 except:
90 self.skipped[filename[:-1]] = pymtime
94 print >> sys.stderr, "[autoreload of %s failed: %s]" % (
95 modname, traceback.format_exc(1))
96 self.failed[filename[:-1]] = pymtime
91
97
92 def update_function(old, new, attrnames):
98 #------------------------------------------------------------------------------
93 for name in attrnames:
99 # superreload
94 setattr(old, name, getattr(new, name))
100 #------------------------------------------------------------------------------
95
101
96 def superreload(module, reload=reload):
102 def update_function(old, new):
103 """Upgrade the code object of a function"""
104 for name in ['func_code', 'func_defaults', 'func_doc',
105 'func_closure', 'func_globals', 'func_dict']:
106 try:
107 setattr(old, name, getattr(new, name))
108 except (AttributeError, TypeError):
109 pass
110
111 def update_class(old, new):
112 """Replace stuff in the __dict__ of a class, and upgrade
113 method code objects"""
114 for key in old.__dict__.keys():
115 old_obj = getattr(old, key)
116
117 try:
118 new_obj = getattr(new, key)
119 except AttributeError:
120 # obsolete attribute: remove it
121 try:
122 delattr(old, key)
123 except (AttributeError, TypeError):
124 pass
125 continue
126
127 if update_generic(old_obj, new_obj): continue
128
129 try:
130 setattr(old, key, getattr(new, key))
131 except (AttributeError, TypeError):
132 pass # skip non-writable attributes
133
134 def update_property(old, new):
135 """Replace get/set/del functions of a property"""
136 update_generic(old.fdel, new.fdel)
137 update_generic(old.fget, new.fget)
138 update_generic(old.fset, new.fset)
139
140 def isinstance2(a, b, typ):
141 return isinstance(a, typ) and isinstance(b, typ)
142
143 UPDATE_RULES = [
144 (lambda a, b: isinstance2(a, b, types.ClassType),
145 update_class),
146 (lambda a, b: isinstance2(a, b, types.TypeType),
147 update_class),
148 (lambda a, b: isinstance2(a, b, types.FunctionType),
149 update_function),
150 (lambda a, b: isinstance2(a, b, property),
151 update_property),
152 (lambda a, b: isinstance2(a, b, types.MethodType),
153 lambda a, b: update_function(a.im_func, b.im_func)),
154 ]
155
156 def update_generic(a, b):
157 for type_check, update in UPDATE_RULES:
158 if type_check(a, b):
159 update(a, b)
160 return True
161 return False
162
163 class StrongRef(object):
164 def __init__(self, obj):
165 self.obj = obj
166 def __call__(self):
167 return self.obj
168
169 def superreload(module, reload=reload, old_objects={}):
97 """Enhanced version of the builtin reload function.
170 """Enhanced version of the builtin reload function.
98
171
99 superreload replaces the class dictionary of every top-level
172 superreload remembers objects previously in the module, and
100 class in the module with the new one automatically,
173
101 as well as every function's code object.
174 - upgrades the class dictionary of every old class in the module
175 - upgrades the code object of every old function and method
176 - clears the module's namespace before reloading
102
177
103 """
178 """
104
179
180 # collect old objects in the module
181 for name, obj in module.__dict__.items():
182 if not hasattr(obj, '__module__') or obj.__module__ != module.__name__:
183 continue
184 key = (module.__name__, name)
185 try:
186 old_objects.setdefault(key, []).append(weakref.ref(obj))
187 except TypeError:
188 # weakref doesn't work for all types;
189 # create strong references for 'important' cases
190 if isinstance(obj, types.ClassType):
191 old_objects.setdefault(key, []).append(StrongRef(obj))
192
193 # reload module
194 try:
195 # clear namespace first from old cruft
196 old_name = module.__name__
197 module.__dict__.clear()
198 module.__dict__['__name__'] = old_name
199 except (TypeError, AttributeError, KeyError):
200 pass
105 module = reload(module)
201 module = reload(module)
106
202
107 # iterate over all objects and update them
203 # iterate over all objects and update functions & classes
108 count = 0
109 for name, new_obj in module.__dict__.items():
204 for name, new_obj in module.__dict__.items():
110 key = (module.__name__, name)
205 key = (module.__name__, name)
111 if _old_objects.has_key(key):
206 if key not in old_objects: continue
112 for old_obj in _old_objects[key]:
207
113 if type(new_obj) == types.ClassType:
208 new_refs = []
114 old_obj.__dict__.update(new_obj.__dict__)
209 for old_ref in old_objects[key]:
115 count += 1
210 old_obj = old_ref()
116 elif type(new_obj) == types.FunctionType:
211 if old_obj is None: continue
117 update_function(old_obj,
212 new_refs.append(old_ref)
118 new_obj,
213 update_generic(old_obj, new_obj)
119 "func_code func_defaults func_doc".split())
214
120 count += 1
215 if new_refs:
121 elif type(new_obj) == types.MethodType:
216 old_objects[key] = new_refs
122 update_function(old_obj.im_func,
217 else:
123 new_obj.im_func,
218 del old_objects[key]
124 "func_code func_defaults func_doc".split())
219
125 count += 1
126
127 return module
220 return module
128
221
129 reloader = ModuleReloader()
222 reloader = ModuleReloader()
130
223
131 #------------------------------------------------------------------------------
224 #------------------------------------------------------------------------------
132 # IPython monkey-patching
225 # IPython connectivity
133 #------------------------------------------------------------------------------
226 #------------------------------------------------------------------------------
227 import IPython.ipapi
134
228
135 import IPython.iplib
229 ip = IPython.ipapi.get()
136
230
137 autoreload_enabled = False
231 autoreload_enabled = False
138
232
139 def runcode_hook(self):
233 def runcode_hook(self):
140 if not autoreload_enabled:
234 if not autoreload_enabled:
141 raise IPython.ipapi.TryNext
235 raise IPython.ipapi.TryNext
142 try:
236 try:
143 reloader.check()
237 reloader.check()
144 except:
238 except:
145 pass
239 pass
146
240
147
148 def enable_autoreload():
241 def enable_autoreload():
149 global autoreload_enabled
242 global autoreload_enabled
150 autoreload_enabled = True
243 autoreload_enabled = True
151
152
244
153 def disable_autoreload():
245 def disable_autoreload():
154 global autoreload_enabled
246 global autoreload_enabled
155 autoreload_enabled = False
247 autoreload_enabled = False
156
157 #------------------------------------------------------------------------------
158 # IPython connectivity
159 #------------------------------------------------------------------------------
160
161 import IPython.ipapi
162 ip = IPython.ipapi.get()
163
248
164 def autoreload_f(self, parameter_s=''):
249 def autoreload_f(self, parameter_s=''):
165 r""" %autoreload => Reload modules automatically
250 r""" %autoreload => Reload modules automatically
166
251
167 %autoreload
252 %autoreload
168 Reload all modules (except thoses excluded by %aimport) automatically now.
253 Reload all modules (except those excluded by %aimport) automatically now.
169
254
170 %autoreload 1
255 %autoreload 1
171 Reload all modules imported with %aimport every time before executing
256 Reload all modules imported with %aimport every time before executing
172 the Python code typed.
257 the Python code typed.
173
258
174 %autoreload 2
259 %autoreload 2
175 Reload all modules (except thoses excluded by %aimport) every time
260 Reload all modules (except those excluded by %aimport) every time
176 before executing the Python code typed.
261 before executing the Python code typed.
177
262
178 Reloading Python modules in a reliable way is in general
263 Reloading Python modules in a reliable way is in general difficult,
179 difficult, and unexpected things may occur. Some of the common
264 and unexpected things may occur. %autoreload tries to work
180 caveats relevant for 'autoreload' are:
265 around common pitfalls by replacing code objects of functions
181
266 previously in the module with new versions. This makes the following
182 - Modules are not reloaded in any specific order, and no dependency
267 things to work:
183 analysis is done. For example, modules with 'from xxx import foo'
268
184 retain old versions of 'foo' when 'xxx' is autoreloaded.
269 - Functions and classes imported via 'from xxx import foo' are upgraded
185 - Functions or objects imported from the autoreloaded module to
270 to new versions when 'xxx' is reloaded.
186 the interactive namespace are not updated.
271 - Methods and properties of classes are upgraded on reload, so that
272 calling 'c.foo()' on an object 'c' created before the reload causes
273 the new code for 'foo' to be executed.
274
275 Some of the known remaining caveats are:
276
277 - Replacing code objects does not always succeed: changing a @property
278 in a class to an ordinary method or a method to a member variable
279 can cause problems (but in old objects only).
280 - Functions that are removed (eg. via monkey-patching) from a module
281 before it is reloaded are not upgraded.
187 - C extension modules cannot be reloaded, and so cannot be
282 - C extension modules cannot be reloaded, and so cannot be
188 autoreloaded.
283 autoreloaded.
284
189 """
285 """
190 if parameter_s == '':
286 if parameter_s == '':
191 reloader.check(True)
287 reloader.check(True)
192 elif parameter_s == '0':
288 elif parameter_s == '0':
193 disable_autoreload()
289 disable_autoreload()
194 elif parameter_s == '1':
290 elif parameter_s == '1':
195 reloader.check_all = False
291 reloader.check_all = False
196 enable_autoreload()
292 enable_autoreload()
197 elif parameter_s == '2':
293 elif parameter_s == '2':
198 reloader.check_all = True
294 reloader.check_all = True
199 enable_autoreload()
295 enable_autoreload()
200
296
201 def aimport_f(self, parameter_s=''):
297 def aimport_f(self, parameter_s=''):
202 """%aimport => Import modules for automatic reloading.
298 """%aimport => Import modules for automatic reloading.
203
299
204 %aimport
300 %aimport
205 List modules to automatically import and not to import.
301 List modules to automatically import and not to import.
206
302
207 %aimport foo
303 %aimport foo
208 Import module 'foo' and mark it to be autoreloaded for %autoreload 1
304 Import module 'foo' and mark it to be autoreloaded for %autoreload 1
209
305
210 %aimport -foo
306 %aimport -foo
211 Mark module 'foo' to not be autoreloaded for %autoreload 1
307 Mark module 'foo' to not be autoreloaded for %autoreload 1
212
308
213 """
309 """
214
310
215 modname = parameter_s
311 modname = parameter_s
216 if not modname:
312 if not modname:
217 to_reload = reloader.modules.keys()
313 to_reload = reloader.modules.keys()
218 to_reload.sort()
314 to_reload.sort()
219 to_skip = reloader.skip_modules.keys()
315 to_skip = reloader.skip_modules.keys()
220 to_skip.sort()
316 to_skip.sort()
221 if reloader.check_all:
317 if reloader.check_all:
222 print "Modules to reload:\nall-expect-skipped"
318 print "Modules to reload:\nall-expect-skipped"
223 else:
319 else:
224 print "Modules to reload:\n%s" % ' '.join(to_reload)
320 print "Modules to reload:\n%s" % ' '.join(to_reload)
225 print "\nModules to skip:\n%s" % ' '.join(to_skip)
321 print "\nModules to skip:\n%s" % ' '.join(to_skip)
226 elif modname.startswith('-'):
322 elif modname.startswith('-'):
227 modname = modname[1:]
323 modname = modname[1:]
228 try: del reloader.modules[modname]
324 try: del reloader.modules[modname]
229 except KeyError: pass
325 except KeyError: pass
230 reloader.skip_modules[modname] = True
326 reloader.skip_modules[modname] = True
231 else:
327 else:
232 try: del reloader.skip_modules[modname]
328 try: del reloader.skip_modules[modname]
233 except KeyError: pass
329 except KeyError: pass
234 reloader.modules[modname] = True
330 reloader.modules[modname] = True
235
331
236 mod = __import__(modname)
332 mod = __import__(modname)
237 ip.to_user_ns({modname: mod})
333 ip.to_user_ns({modname: mod})
238
334
239 def init():
335 def init():
240 ip.expose_magic('autoreload', autoreload_f)
336 ip.expose_magic('autoreload', autoreload_f)
241 ip.expose_magic('aimport', aimport_f)
337 ip.expose_magic('aimport', aimport_f)
242 ip.set_hook('pre_runcode_hook', runcode_hook)
338 ip.set_hook('pre_runcode_hook', runcode_hook)
243
339
244 init() No newline at end of file
340 init()
@@ -1,7673 +1,7683 b''
1 2008-06-09 Ville Vainio <vivainio@gmail.com>
2
3 * Extensions/ipy_autoreload.py: Apply Pauli Virtanen's patch
4 to autoreloading that also replaces the changed code objects
5 with new versions
6
7 * pspersistence.py: report UsageError on %store -w w/o arg,
8 and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
9
10
1 2008-06-03 Ville Vainio <vivainio@gmail.com>
11 2008-06-03 Ville Vainio <vivainio@gmail.com>
2
12
3 * ipython.rst, ipython.1: remove -twisted from man page,
13 * ipython.rst, ipython.1: remove -twisted from man page,
4 add -pydb to both man page and manual.
14 add -pydb to both man page and manual.
5
15
6 * pspersistence.py: report UsageError on %store -w w/o arg,
16 * pspersistence.py: report UsageError on %store -w w/o arg,
7 and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
17 and other usage pattern errors. Bug report by Johann Cohen-Tanugi.
8
18
9 2008-06-02 Fernando Perez <Fernando.Perez@berkeley.edu>
19 2008-06-02 Fernando Perez <Fernando.Perez@berkeley.edu>
10
20
11 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): add
21 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): add
12 numpy/np/pyplot/plt imports according to new conventions we're
22 numpy/np/pyplot/plt imports according to new conventions we're
13 trying to standardize on. This only affects the -pylab mode.
23 trying to standardize on. This only affects the -pylab mode.
14
24
15 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
25 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
16
26
17 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
27 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
18 disabled.
28 disabled.
19
29
20 2008-05-31 *** Released version 0.8.4
30 2008-05-31 *** Released version 0.8.4
21
31
22 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
32 2008-05-31 Fernando Perez <Fernando.Perez@berkeley.edu>
23
33
24 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
34 * IPython/ipmaker.py (make_IPython): The -twisted option is fully
25 disabled.
35 disabled.
26
36
27 * IPython/Shell.py (_select_shell): completely disable -twisted.
37 * IPython/Shell.py (_select_shell): completely disable -twisted.
28 This code is of dubious quality and normal users should not
38 This code is of dubious quality and normal users should not
29 encounter it until we can clarify things further, even under
39 encounter it until we can clarify things further, even under
30 win32. Since we need a quick emergency 0.8.4 release, it is now
40 win32. Since we need a quick emergency 0.8.4 release, it is now
31 disabled completely. Users who want to run it can use the
41 disabled completely. Users who want to run it can use the
32 following command (it's easy to put it in an alias or script):
42 following command (it's easy to put it in an alias or script):
33
43
34 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
44 python -c"from IPython import twshell;twshell.IPShellTwisted().mainloop()"
35
45
36 2008-05-30 Ville Vainio <vivainio@gmail.com>
46 2008-05-30 Ville Vainio <vivainio@gmail.com>
37
47
38 * shell.py: disable -twisted on non-win32 platforms.
48 * shell.py: disable -twisted on non-win32 platforms.
39 import sets module on python 2.3.
49 import sets module on python 2.3.
40
50
41 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
51 * ipy_profile_sh.py: disable ipy_signals. Now, ipython
42 is verified to work with python 2.3
52 is verified to work with python 2.3
43
53
44 * Release.py: update version to 0.8.4 for quick point fix
54 * Release.py: update version to 0.8.4 for quick point fix
45
55
46 2008-05-28 *** Released version 0.8.3
56 2008-05-28 *** Released version 0.8.3
47
57
48 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
58 2008-05-28 Fernando Perez <Fernando.Perez@berkeley.edu>
49
59
50 * ../win32_manual_post_install.py (run): Fix the windows installer
60 * ../win32_manual_post_install.py (run): Fix the windows installer
51 so the links to the docs are correct.
61 so the links to the docs are correct.
52
62
53 * IPython/ultraTB.py: flush stderr after writing to it to fix
63 * IPython/ultraTB.py: flush stderr after writing to it to fix
54 problems with exception traceback ordering in some platforms.
64 problems with exception traceback ordering in some platforms.
55 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
65 Thanks to a report/fix by Jie Tang <jietang86-AT-gmail.com>.
56
66
57 * IPython/Magic.py (magic_cpaste): add stripping of continuation
67 * IPython/Magic.py (magic_cpaste): add stripping of continuation
58 prompts, feature requested by Stefan vdW.
68 prompts, feature requested by Stefan vdW.
59
69
60 * ../setup.py: updates to build and release tools in preparation
70 * ../setup.py: updates to build and release tools in preparation
61 for 0.8.3 release.
71 for 0.8.3 release.
62
72
63 2008-05-27 Ville Vainio <vivainio@gmail.com>
73 2008-05-27 Ville Vainio <vivainio@gmail.com>
64
74
65 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
75 * iplib.py, ipmaker.py: survive lack of doctest and site._Helper
66 for minimal environments (e.g. Maemo sdk python)
76 for minimal environments (e.g. Maemo sdk python)
67
77
68 * Magic.py: cpaste strips whitespace before >>> (allow pasting
78 * Magic.py: cpaste strips whitespace before >>> (allow pasting
69 doctests)
79 doctests)
70
80
71 * ipy_completers.py: cd completer now does recursive path expand
81 * ipy_completers.py: cd completer now does recursive path expand
72 (old behaviour is buggy on some readline versions)
82 (old behaviour is buggy on some readline versions)
73
83
74 2008-05-14 Ville Vainio <vivainio@gmail.com>
84 2008-05-14 Ville Vainio <vivainio@gmail.com>
75
85
76 * Extensions/ipy_greedycompleter.py:
86 * Extensions/ipy_greedycompleter.py:
77 New extension that enables a bit more "relaxed" tab
87 New extension that enables a bit more "relaxed" tab
78 completer that evaluates code without safety checks
88 completer that evaluates code without safety checks
79 (i.e. there can be side effects like function calls)
89 (i.e. there can be side effects like function calls)
80
90
81 2008-04-20 Ville Vainio <vivainio@gmail.com>
91 2008-04-20 Ville Vainio <vivainio@gmail.com>
82
92
83 * Extensions/ipy_lookfor.py: add %lookfor magic command
93 * Extensions/ipy_lookfor.py: add %lookfor magic command
84 (search docstrings for words) by Pauli Virtanen. Close #245.
94 (search docstrings for words) by Pauli Virtanen. Close #245.
85
95
86 * Extension/ipy_jot.py: %jot and %read magics, analogous
96 * Extension/ipy_jot.py: %jot and %read magics, analogous
87 to %store but you can specify some notes. Not read
97 to %store but you can specify some notes. Not read
88 in automatically on startup, you need %read.
98 in automatically on startup, you need %read.
89 Contributed by Yichun Wei.
99 Contributed by Yichun Wei.
90
100
91 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
101 2008-04-18 Fernando Perez <Fernando.Perez@berkeley.edu>
92
102
93 * IPython/genutils.py (page): apply workaround to curses bug that
103 * IPython/genutils.py (page): apply workaround to curses bug that
94 can leave terminal corrupted after a call to initscr().
104 can leave terminal corrupted after a call to initscr().
95
105
96 2008-04-15 Ville Vainio <vivainio@gmail.com>
106 2008-04-15 Ville Vainio <vivainio@gmail.com>
97
107
98 * genutils.py: SList.grep supports 'field' argument
108 * genutils.py: SList.grep supports 'field' argument
99
109
100 * ipy_completers.py: module completer looks inside
110 * ipy_completers.py: module completer looks inside
101 .egg zip files (patch by mc). Close #196.
111 .egg zip files (patch by mc). Close #196.
102
112
103 2008-04-09 Ville Vainio <vivainio@gmail.com>
113 2008-04-09 Ville Vainio <vivainio@gmail.com>
104
114
105 * deep_reload.py: do not crash on from __future__ import
115 * deep_reload.py: do not crash on from __future__ import
106 absolute_import. Close #244.
116 absolute_import. Close #244.
107
117
108 2008-04-02 Ville Vainio <vivainio@gmail.com>
118 2008-04-02 Ville Vainio <vivainio@gmail.com>
109
119
110 * ipy_winpdb.py: New extension for winpdb integration. %wdb
120 * ipy_winpdb.py: New extension for winpdb integration. %wdb
111 test.py is winpdb equivalent of %run -d test.py. winpdb is a
121 test.py is winpdb equivalent of %run -d test.py. winpdb is a
112 crossplatform remote GUI debugger based on wxpython.
122 crossplatform remote GUI debugger based on wxpython.
113
123
114 2008-03-29 Ville Vainio <vivainio@gmail.com>
124 2008-03-29 Ville Vainio <vivainio@gmail.com>
115
125
116 * ipython.rst, do_sphinx.py: New documentation base, based on
126 * ipython.rst, do_sphinx.py: New documentation base, based on
117 reStucturedText and Sphinx (html/pdf generation). The old Lyx
127 reStucturedText and Sphinx (html/pdf generation). The old Lyx
118 based documentation will not be updated anymore.
128 based documentation will not be updated anymore.
119
129
120 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
130 * jobctrl.py: Use shell in Popen for 'start' command (in windows).
121
131
122 2008-03-24 Ville Vainio <vivainio@gmail.com>
132 2008-03-24 Ville Vainio <vivainio@gmail.com>
123
133
124 * ipython.rst, do_sphinx.py: New documentation base, based on
134 * ipython.rst, do_sphinx.py: New documentation base, based on
125 reStucturedText and Sphinx (html/pdf generation). The old Lyx
135 reStucturedText and Sphinx (html/pdf generation). The old Lyx
126 based documentation will not be updated anymore.
136 based documentation will not be updated anymore.
127
137
128 ipython.rst has up to date documentation on matters that were not
138 ipython.rst has up to date documentation on matters that were not
129 documented at all, and it also removes various
139 documented at all, and it also removes various
130 misdocumented/deprecated features.
140 misdocumented/deprecated features.
131
141
132 2008-03-22 Ville Vainio <vivainio@gmail.com>
142 2008-03-22 Ville Vainio <vivainio@gmail.com>
133
143
134 * Shell.py: Merge mtexp branch:
144 * Shell.py: Merge mtexp branch:
135 https://code.launchpad.net/~ipython/ipython/mtexp
145 https://code.launchpad.net/~ipython/ipython/mtexp
136
146
137 Privides simpler and more robust MTInteractiveShell that won't
147 Privides simpler and more robust MTInteractiveShell that won't
138 deadlock, even when the worker thread (GUI) stops doing runcode()
148 deadlock, even when the worker thread (GUI) stops doing runcode()
139 regularly. r71.
149 regularly. r71.
140
150
141 2008-03-20 Ville Vainio <vivainio@gmail.com>
151 2008-03-20 Ville Vainio <vivainio@gmail.com>
142
152
143 * twshell.py: New shell that runs IPython code in Twisted reactor.
153 * twshell.py: New shell that runs IPython code in Twisted reactor.
144 Launch by doing ipython -twisted. r67.
154 Launch by doing ipython -twisted. r67.
145
155
146 2008-03-19 Ville Vainio <vivainio@gmail.com>
156 2008-03-19 Ville Vainio <vivainio@gmail.com>
147
157
148 * Magic.py: %rehashx works correctly when shadowed system commands
158 * Magic.py: %rehashx works correctly when shadowed system commands
149 have upper case characters (e.g. Print.exe). r64.
159 have upper case characters (e.g. Print.exe). r64.
150
160
151 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
161 * ipy_bzr.py, ipy_app_completers.py: new bzr completer that also
152 knows options to commands, based on bzrtools. Uses bzrlib
162 knows options to commands, based on bzrtools. Uses bzrlib
153 directly. r66.
163 directly. r66.
154
164
155 2008-03-16 Ville Vainio <vivainio@gmail.com>
165 2008-03-16 Ville Vainio <vivainio@gmail.com>
156
166
157 * make_tarball.py: Fixed for bzr.
167 * make_tarball.py: Fixed for bzr.
158
168
159 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
169 * ipapi.py: Better _ip.runlines() script cleanup. r56,r79.
160
170
161 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
171 * ipy_vimserver.py, ipy.vim: New extension for vim server mode,
162 by Erich Heine.
172 by Erich Heine.
163
173
164 2008-03-12 Ville Vainio <vivainio@gmail.com>
174 2008-03-12 Ville Vainio <vivainio@gmail.com>
165
175
166 * ipmaker.py: Force (reload?) import of ipy_user_conf and
176 * ipmaker.py: Force (reload?) import of ipy_user_conf and
167 ipy_profile_foo, so that embedded instances can be relaunched and
177 ipy_profile_foo, so that embedded instances can be relaunched and
168 configuration is still done. r50
178 configuration is still done. r50
169
179
170 * ipapi.py, test_embed.py: Allow specifying shell class in
180 * ipapi.py, test_embed.py: Allow specifying shell class in
171 launch_new_instance & make_new instance. Use this in
181 launch_new_instance & make_new instance. Use this in
172 test_embed.py. r51.
182 test_embed.py. r51.
173
183
174 test_embed.py is also a good and simple demo of embedding IPython.
184 test_embed.py is also a good and simple demo of embedding IPython.
175
185
176
186
177 2008-03-10 Ville Vainio <vivainio@gmail.com>
187 2008-03-10 Ville Vainio <vivainio@gmail.com>
178
188
179 * tool/update_revnum.py: Change to bzr revisioning scheme in
189 * tool/update_revnum.py: Change to bzr revisioning scheme in
180 revision numbers.
190 revision numbers.
181
191
182 * Shell.py: Threading improvements:
192 * Shell.py: Threading improvements:
183
193
184 In multithreaded shells, do not hang on macros and o.autoexec
194 In multithreaded shells, do not hang on macros and o.autoexec
185 commands (or anything executed with _ip.runlines()) anymore. Allow
195 commands (or anything executed with _ip.runlines()) anymore. Allow
186 recursive execution of IPython code in
196 recursive execution of IPython code in
187 MTInteractiveShell.runsource by checking if we are already in
197 MTInteractiveShell.runsource by checking if we are already in
188 worker thread, and execute code directly if we are. r48.
198 worker thread, and execute code directly if we are. r48.
189
199
190 MTInteractiveShell.runsource: execute code directly if worker
200 MTInteractiveShell.runsource: execute code directly if worker
191 thread is not running yet (this is the case in config files). r49.
201 thread is not running yet (this is the case in config files). r49.
192
202
193 2008-03-09 Ville Vainio <vivainio@gmail.com>
203 2008-03-09 Ville Vainio <vivainio@gmail.com>
194
204
195 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
205 * ipy_profile_sh.py: You can now use $LA or LA() to refer to last
196 argument of previous command in sh profile. Similar to bash '!$'.
206 argument of previous command in sh profile. Similar to bash '!$'.
197 LA(3) or $LA(3) stands for last argument of input history command
207 LA(3) or $LA(3) stands for last argument of input history command
198 3.
208 3.
199
209
200 * Shell.py: -pylab names don't clutter %whos listing.
210 * Shell.py: -pylab names don't clutter %whos listing.
201
211
202 2008-03-07 Ville Vainio <vivainio@gmail.com>
212 2008-03-07 Ville Vainio <vivainio@gmail.com>
203
213
204 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
214 * ipy_autoreload.py: new extension (by Pauli Virtanen) for
205 autoreloading modules; try %autoreload and %aimport. Close #154.
215 autoreloading modules; try %autoreload and %aimport. Close #154.
206 Uses the new pre_runcode_hook.
216 Uses the new pre_runcode_hook.
207
217
208 2008-02-24 Ville Vainio <vivainio@gmail.com>
218 2008-02-24 Ville Vainio <vivainio@gmail.com>
209
219
210 * platutils_posix.py: freeze_term_title works
220 * platutils_posix.py: freeze_term_title works
211
221
212 2008-02-21 Ville Vainio <vivainio@gmail.com>
222 2008-02-21 Ville Vainio <vivainio@gmail.com>
213
223
214 * Magic.py: %quickref does not crash with empty docstring
224 * Magic.py: %quickref does not crash with empty docstring
215
225
216 2008-02-20 Ville Vainio <vivainio@gmail.com>
226 2008-02-20 Ville Vainio <vivainio@gmail.com>
217
227
218 * completer.py: do not treat [](){} as protectable chars anymore,
228 * completer.py: do not treat [](){} as protectable chars anymore,
219 close #233.
229 close #233.
220
230
221 * completer.py: do not treat [](){} as protectable chars anymore
231 * completer.py: do not treat [](){} as protectable chars anymore
222
232
223 * magic.py, test_cpaste.py: Allow different prefix for pasting
233 * magic.py, test_cpaste.py: Allow different prefix for pasting
224 from email
234 from email
225
235
226 2008-02-17 Ville Vainio <vivainio@gmail.com>
236 2008-02-17 Ville Vainio <vivainio@gmail.com>
227
237
228 * Switched over to Launchpad/bzr as primary VCS.
238 * Switched over to Launchpad/bzr as primary VCS.
229
239
230 2008-02-14 Ville Vainio <vivainio@gmail.com>
240 2008-02-14 Ville Vainio <vivainio@gmail.com>
231
241
232 * ipapi.py: _ip.runlines() is now much more liberal about
242 * ipapi.py: _ip.runlines() is now much more liberal about
233 indentation - it cleans up the scripts it gets
243 indentation - it cleans up the scripts it gets
234
244
235 2008-02-14 Ville Vainio <vivainio@gmail.com>
245 2008-02-14 Ville Vainio <vivainio@gmail.com>
236
246
237 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
247 * Extensions/ipy_leo.py: created 'ILeo' IPython-Leo bridge.
238 Changes to it (later on) are too numerous to list in ChangeLog
248 Changes to it (later on) are too numerous to list in ChangeLog
239 until it stabilizes
249 until it stabilizes
240
250
241 2008-02-07 Darren Dale <darren.dale@cornell.edu>
251 2008-02-07 Darren Dale <darren.dale@cornell.edu>
242
252
243 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
253 * IPython/Shell.py: Call QtCore.pyqtRemoveInputHook() when creating
244 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
254 an IPShellQt4. PyQt4-4.2.1 and later uses PyOS_InputHook to improve
245 interaction in the interpreter (like Tkinter does), but it seems to
255 interaction in the interpreter (like Tkinter does), but it seems to
246 partially interfere with the IPython implementation and exec_()
256 partially interfere with the IPython implementation and exec_()
247 still seems to block. So we disable the PyQt implementation and
257 still seems to block. So we disable the PyQt implementation and
248 stick with the IPython one for now.
258 stick with the IPython one for now.
249
259
250 2008-02-02 Walter Doerwald <walter@livinglogic.de>
260 2008-02-02 Walter Doerwald <walter@livinglogic.de>
251
261
252 * ipipe.py: A new ipipe table has been added: ialias produces all
262 * ipipe.py: A new ipipe table has been added: ialias produces all
253 entries from IPython's alias table.
263 entries from IPython's alias table.
254
264
255 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
265 2008-02-01 Fernando Perez <Fernando.Perez@colorado.edu>
256
266
257 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
267 * IPython/Shell.py (MTInteractiveShell.runcode): Improve handling
258 of KBINT in threaded shells. After code provided by Marc in #212.
268 of KBINT in threaded shells. After code provided by Marc in #212.
259
269
260 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
270 2008-01-30 Fernando Perez <Fernando.Perez@colorado.edu>
261
271
262 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
272 * IPython/Shell.py (MTInteractiveShell.__init__): Fixed deadlock
263 that could occur due to a race condition in threaded shells.
273 that could occur due to a race condition in threaded shells.
264 Thanks to code provided by Marc, as #210.
274 Thanks to code provided by Marc, as #210.
265
275
266 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
276 2008-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
267
277
268 * IPython/Magic.py (magic_doctest_mode): respect the user's
278 * IPython/Magic.py (magic_doctest_mode): respect the user's
269 settings for input separators rather than overriding them. After
279 settings for input separators rather than overriding them. After
270 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
280 a report by Jeff Kowalczyk <jtk-AT-yahoo.com>
271
281
272 * IPython/history.py (magic_history): Add support for declaring an
282 * IPython/history.py (magic_history): Add support for declaring an
273 output file directly from the history command.
283 output file directly from the history command.
274
284
275 2008-01-21 Walter Doerwald <walter@livinglogic.de>
285 2008-01-21 Walter Doerwald <walter@livinglogic.de>
276
286
277 * ipipe.py: Register ipipe's displayhooks via the generic function
287 * ipipe.py: Register ipipe's displayhooks via the generic function
278 generics.result_display() instead of using ipapi.set_hook().
288 generics.result_display() instead of using ipapi.set_hook().
279
289
280 2008-01-19 Walter Doerwald <walter@livinglogic.de>
290 2008-01-19 Walter Doerwald <walter@livinglogic.de>
281
291
282 * ibrowse.py, igrid.py, ipipe.py:
292 * ibrowse.py, igrid.py, ipipe.py:
283 The input object can now be passed to the constructor of the display classes.
293 The input object can now be passed to the constructor of the display classes.
284 This makes it possible to use them with objects that implement __or__.
294 This makes it possible to use them with objects that implement __or__.
285 Use this constructor in the displayhook instead of piping.
295 Use this constructor in the displayhook instead of piping.
286
296
287 * ipipe.py: Importing astyle.py is done as late as possible to
297 * ipipe.py: Importing astyle.py is done as late as possible to
288 avoid problems with circular imports.
298 avoid problems with circular imports.
289
299
290 2008-01-19 Ville Vainio <vivainio@gmail.com>
300 2008-01-19 Ville Vainio <vivainio@gmail.com>
291
301
292 * hooks.py, iplib.py: Added 'shell_hook' to customize how
302 * hooks.py, iplib.py: Added 'shell_hook' to customize how
293 IPython calls shell.
303 IPython calls shell.
294
304
295 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
305 * hooks.py, iplib.py: Added 'show_in_pager' hook to specify
296 how IPython pages text (%page, %pycat, %pdoc etc.)
306 how IPython pages text (%page, %pycat, %pdoc etc.)
297
307
298 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
308 * Extensions/jobctrl.py: Use shell_hook. New magics: '%tasks'
299 and '%kill' to kill hanging processes that won't obey ctrl+C.
309 and '%kill' to kill hanging processes that won't obey ctrl+C.
300
310
301 2008-01-16 Ville Vainio <vivainio@gmail.com>
311 2008-01-16 Ville Vainio <vivainio@gmail.com>
302
312
303 * ipy_completers.py: pyw extension support for %run completer.
313 * ipy_completers.py: pyw extension support for %run completer.
304
314
305 2008-01-11 Ville Vainio <vivainio@gmail.com>
315 2008-01-11 Ville Vainio <vivainio@gmail.com>
306
316
307 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
317 * iplib.py, ipmaker.py: new rc option - autoexec. It's a list
308 of ipython commands to be run when IPython has started up
318 of ipython commands to be run when IPython has started up
309 (just before running the scripts and -c arg on command line).
319 (just before running the scripts and -c arg on command line).
310
320
311 * ipy_user_conf.py: Added an example on how to change term
321 * ipy_user_conf.py: Added an example on how to change term
312 colors in config file (through using autoexec).
322 colors in config file (through using autoexec).
313
323
314 * completer.py, test_completer.py: Ability to specify custom
324 * completer.py, test_completer.py: Ability to specify custom
315 get_endidx to replace readline.get_endidx. For emacs users.
325 get_endidx to replace readline.get_endidx. For emacs users.
316
326
317 2008-01-10 Ville Vainio <vivainio@gmail.com>
327 2008-01-10 Ville Vainio <vivainio@gmail.com>
318
328
319 * Prompts.py (set_p_str): do not crash on illegal prompt strings
329 * Prompts.py (set_p_str): do not crash on illegal prompt strings
320
330
321 2008-01-08 Ville Vainio <vivainio@gmail.com>
331 2008-01-08 Ville Vainio <vivainio@gmail.com>
322
332
323 * '%macro -r' (raw mode) is now default in sh profile.
333 * '%macro -r' (raw mode) is now default in sh profile.
324
334
325 2007-12-31 Ville Vainio <vivainio@gmail.com>
335 2007-12-31 Ville Vainio <vivainio@gmail.com>
326
336
327 * completer.py: custom completer matching is now case sensitive
337 * completer.py: custom completer matching is now case sensitive
328 (#207).
338 (#207).
329
339
330 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
340 * ultraTB.py, iplib.py: Add some KeyboardInterrupt catching in
331 an attempt to prevent occasional crashes.
341 an attempt to prevent occasional crashes.
332
342
333 * CrashHandler.py: Crash log dump now asks user to press enter
343 * CrashHandler.py: Crash log dump now asks user to press enter
334 before exiting.
344 before exiting.
335
345
336 * Store _ip in user_ns instead of __builtin__, enabling safer
346 * Store _ip in user_ns instead of __builtin__, enabling safer
337 coexistence of multiple IPython instances in the same python
347 coexistence of multiple IPython instances in the same python
338 interpreter (#197).
348 interpreter (#197).
339
349
340 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
350 * Debugger.py, ipmaker.py: Need to add '-pydb' command line
341 switch to enable pydb in post-mortem debugging and %run -d.
351 switch to enable pydb in post-mortem debugging and %run -d.
342
352
343 2007-12-28 Ville Vainio <vivainio@gmail.com>
353 2007-12-28 Ville Vainio <vivainio@gmail.com>
344
354
345 * ipy_server.py: TCP socket server for "remote control" of an IPython
355 * ipy_server.py: TCP socket server for "remote control" of an IPython
346 instance.
356 instance.
347
357
348 * Debugger.py: Change to PSF license
358 * Debugger.py: Change to PSF license
349
359
350 * simplegeneric.py: Add license & author notes.
360 * simplegeneric.py: Add license & author notes.
351
361
352 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
362 * ipy_fsops.py: Added PathObj and FileObj, an object-oriented way
353 to navigate file system with a custom completer. Run
363 to navigate file system with a custom completer. Run
354 ipy_fsops.test_pathobj() to play with it.
364 ipy_fsops.test_pathobj() to play with it.
355
365
356 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
366 2007-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
357
367
358 * IPython/dtutils.py: Add utilities for interactively running
368 * IPython/dtutils.py: Add utilities for interactively running
359 doctests. Still needs work to more easily handle the namespace of
369 doctests. Still needs work to more easily handle the namespace of
360 the package one may be working on, but the basics are in place.
370 the package one may be working on, but the basics are in place.
361
371
362 2007-12-27 Ville Vainio <vivainio@gmail.com>
372 2007-12-27 Ville Vainio <vivainio@gmail.com>
363
373
364 * ipy_completers.py: Applied arno's patch to get proper list of
374 * ipy_completers.py: Applied arno's patch to get proper list of
365 packages in import completer. Closes #196.
375 packages in import completer. Closes #196.
366
376
367 2007-12-20 Ville Vainio <vivainio@gmail.com>
377 2007-12-20 Ville Vainio <vivainio@gmail.com>
368
378
369 * completer.py, generics.py(complete_object): Allow
379 * completer.py, generics.py(complete_object): Allow
370 custom complers based on python objects via simplegeneric.
380 custom complers based on python objects via simplegeneric.
371 See generics.py / my_demo_complete_object
381 See generics.py / my_demo_complete_object
372
382
373 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
383 2007-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
374
384
375 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
385 * IPython/Prompts.py (BasePrompt.__nonzero__): add proper boolean
376 behavior to prompt objects, useful for display hooks to adjust
386 behavior to prompt objects, useful for display hooks to adjust
377 themselves depending on whether prompts will be there or not.
387 themselves depending on whether prompts will be there or not.
378
388
379 2007-12-13 Ville Vainio <vivainio@gmail.com>
389 2007-12-13 Ville Vainio <vivainio@gmail.com>
380
390
381 * iplib.py(raw_input): unix readline does not allow unicode in
391 * iplib.py(raw_input): unix readline does not allow unicode in
382 history, encode to normal string. After patch by Tiago.
392 history, encode to normal string. After patch by Tiago.
383 Close #201
393 Close #201
384
394
385 2007-12-12 Ville Vainio <vivainio@gmail.com>
395 2007-12-12 Ville Vainio <vivainio@gmail.com>
386
396
387 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
397 * genutils.py (abbrev_cwd): Terminal title now shows 2 levels of
388 current directory.
398 current directory.
389
399
390 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
400 2007-12-12 Fernando Perez <Fernando.Perez@colorado.edu>
391
401
392 * IPython/Shell.py (_select_shell): add support for controlling
402 * IPython/Shell.py (_select_shell): add support for controlling
393 the pylab threading mode directly at the command line, without
403 the pylab threading mode directly at the command line, without
394 having to modify MPL config files. Added unit tests for this
404 having to modify MPL config files. Added unit tests for this
395 feature, though manual/docs update is still pending, will do later.
405 feature, though manual/docs update is still pending, will do later.
396
406
397 2007-12-11 Ville Vainio <vivainio@gmail.com>
407 2007-12-11 Ville Vainio <vivainio@gmail.com>
398
408
399 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
409 * ext_rescapture.py: var = !cmd is no longer verbose (to facilitate
400 use in scripts)
410 use in scripts)
401
411
402 2007-12-07 Ville Vainio <vivainio@gmail.com>
412 2007-12-07 Ville Vainio <vivainio@gmail.com>
403
413
404 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
414 * iplib.py, ipy_profile_sh.py: Do not escape # on command lines
405 anymore (to \#) - even if it is a comment char that is implicitly
415 anymore (to \#) - even if it is a comment char that is implicitly
406 escaped in some unix shells in interactive mode, it is ok to leave
416 escaped in some unix shells in interactive mode, it is ok to leave
407 it in IPython as such.
417 it in IPython as such.
408
418
409
419
410 2007-12-01 Robert Kern <robert.kern@gmail.com>
420 2007-12-01 Robert Kern <robert.kern@gmail.com>
411
421
412 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
422 * IPython/ultraTB.py (findsource): Improve the monkeypatch to
413 inspect.findsource(). It can now find source lines inside zipped
423 inspect.findsource(). It can now find source lines inside zipped
414 packages.
424 packages.
415
425
416 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
426 * IPython/ultraTB.py: When constructing tracebacks, try to use __file__
417 in the frame's namespace before trusting the filename in the code object
427 in the frame's namespace before trusting the filename in the code object
418 which created the frame.
428 which created the frame.
419
429
420 2007-11-29 *** Released version 0.8.2
430 2007-11-29 *** Released version 0.8.2
421
431
422 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
432 2007-11-25 Fernando Perez <Fernando.Perez@colorado.edu>
423
433
424 * IPython/Logger.py (Logger.logstop): add a proper logstop()
434 * IPython/Logger.py (Logger.logstop): add a proper logstop()
425 method to fully stop the logger, along with a corresponding
435 method to fully stop the logger, along with a corresponding
426 %logstop magic for interactive use.
436 %logstop magic for interactive use.
427
437
428 * IPython/Extensions/ipy_host_completers.py: added new host
438 * IPython/Extensions/ipy_host_completers.py: added new host
429 completers functionality, contributed by Gael Pasgrimaud
439 completers functionality, contributed by Gael Pasgrimaud
430 <gawel-AT-afpy.org>.
440 <gawel-AT-afpy.org>.
431
441
432 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
442 2007-11-24 Fernando Perez <Fernando.Perez@colorado.edu>
433
443
434 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
444 * IPython/DPyGetOpt.py (ArgumentError): Apply patch by Paul Mueller
435 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
445 <gakusei-AT-dakotacom.net>, to fix deprecated string exceptions in
436 options handling. Unicode fix in %whos (committed a while ago)
446 options handling. Unicode fix in %whos (committed a while ago)
437 was also contributed by Paul.
447 was also contributed by Paul.
438
448
439 2007-11-23 Darren Dale <darren.dale@cornell.edu>
449 2007-11-23 Darren Dale <darren.dale@cornell.edu>
440 * ipy_traits_completer.py: let traits_completer respect the user's
450 * ipy_traits_completer.py: let traits_completer respect the user's
441 readline_omit__names setting.
451 readline_omit__names setting.
442
452
443 2007-11-08 Ville Vainio <vivainio@gmail.com>
453 2007-11-08 Ville Vainio <vivainio@gmail.com>
444
454
445 * ipy_completers.py (import completer): assume 'xml' module exists.
455 * ipy_completers.py (import completer): assume 'xml' module exists.
446 Do not add every module twice anymore. Closes #196.
456 Do not add every module twice anymore. Closes #196.
447
457
448 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
458 * ipy_completers.py, ipy_app_completers.py: Add proper apt-get
449 completer that uses apt-cache to search for existing packages.
459 completer that uses apt-cache to search for existing packages.
450
460
451 2007-11-06 Ville Vainio <vivainio@gmail.com>
461 2007-11-06 Ville Vainio <vivainio@gmail.com>
452
462
453 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
463 * Prompts.py: Do not update _oh and _123 when do_full_cache is not
454 true. Closes #194.
464 true. Closes #194.
455
465
456 2007-11-01 Brian Granger <ellisonbg@gmail.com>
466 2007-11-01 Brian Granger <ellisonbg@gmail.com>
457
467
458 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
468 * iplib.py, rlineimpl.py: Applied Body Water's patches to get IPython
459 working with OS X 10.5 libedit implementation of readline.
469 working with OS X 10.5 libedit implementation of readline.
460
470
461 2007-10-24 Ville Vainio <vivainio@gmail.com>
471 2007-10-24 Ville Vainio <vivainio@gmail.com>
462
472
463 * iplib.py(user_setup): To route around buggy installations where
473 * iplib.py(user_setup): To route around buggy installations where
464 UserConfig is not available, create a minimal _ipython.
474 UserConfig is not available, create a minimal _ipython.
465
475
466 * iplib.py: Unicode fixes from Jorgen.
476 * iplib.py: Unicode fixes from Jorgen.
467
477
468 * genutils.py: Slist now has new method 'fields()' for extraction of
478 * genutils.py: Slist now has new method 'fields()' for extraction of
469 whitespace-separated fields from line-oriented data.
479 whitespace-separated fields from line-oriented data.
470
480
471 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
481 2007-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
472
482
473 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
483 * IPython/OInspect.py (Inspector.pinfo): fix bug that could arise
474 when querying objects with no __class__ attribute (such as
484 when querying objects with no __class__ attribute (such as
475 f2py-generated modules).
485 f2py-generated modules).
476
486
477 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
487 2007-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
478
488
479 * IPython/Magic.py (magic_time): track compilation time and report
489 * IPython/Magic.py (magic_time): track compilation time and report
480 it if longer than 0.1s (fix done to %time and %timeit). After a
490 it if longer than 0.1s (fix done to %time and %timeit). After a
481 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
491 SAGE bug report: http://trac.sagemath.org/sage_trac/ticket/632.
482
492
483 2007-09-18 Ville Vainio <vivainio@gmail.com>
493 2007-09-18 Ville Vainio <vivainio@gmail.com>
484
494
485 * genutils.py(make_quoted_expr): Do not use Itpl, it does
495 * genutils.py(make_quoted_expr): Do not use Itpl, it does
486 not support unicode at the moment. Fixes (many) magic calls with
496 not support unicode at the moment. Fixes (many) magic calls with
487 special characters.
497 special characters.
488
498
489 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
499 2007-09-14 Fernando Perez <Fernando.Perez@colorado.edu>
490
500
491 * IPython/genutils.py (doctest_reload): expose the doctest
501 * IPython/genutils.py (doctest_reload): expose the doctest
492 reloader to the user so that people can easily reset doctest while
502 reloader to the user so that people can easily reset doctest while
493 using it interactively. Fixes a problem reported by Jorgen.
503 using it interactively. Fixes a problem reported by Jorgen.
494
504
495 * IPython/iplib.py (InteractiveShell.__init__): protect the
505 * IPython/iplib.py (InteractiveShell.__init__): protect the
496 FakeModule instances used for __main__ in %run calls from
506 FakeModule instances used for __main__ in %run calls from
497 deletion, so that user code defined in them isn't left with
507 deletion, so that user code defined in them isn't left with
498 dangling references due to the Python module deletion machinery.
508 dangling references due to the Python module deletion machinery.
499 This should fix the problems reported by Darren.
509 This should fix the problems reported by Darren.
500
510
501 2007-09-10 Darren Dale <dd55@cornell.edu>
511 2007-09-10 Darren Dale <dd55@cornell.edu>
502
512
503 * Cleanup of IPShellQt and IPShellQt4
513 * Cleanup of IPShellQt and IPShellQt4
504
514
505 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
515 2007-09-09 Fernando Perez <Fernando.Perez@colorado.edu>
506
516
507 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
517 * IPython/FakeModule.py (FakeModule.__init__): further fixes for
508 doctest support.
518 doctest support.
509
519
510 * IPython/iplib.py (safe_execfile): minor docstring improvements.
520 * IPython/iplib.py (safe_execfile): minor docstring improvements.
511
521
512 2007-09-08 Ville Vainio <vivainio@gmail.com>
522 2007-09-08 Ville Vainio <vivainio@gmail.com>
513
523
514 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
524 * Magic.py (%pushd, %popd, %dirs): Fix dir stack - push *current*
515 directory, not the target directory.
525 directory, not the target directory.
516
526
517 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
527 * ipapi.py, Magic.py, iplib.py: Add ipapi.UsageError, a lighter weight
518 exception that won't print the tracebacks. Switched many magics to
528 exception that won't print the tracebacks. Switched many magics to
519 raise them on error situations, also GetoptError is not printed
529 raise them on error situations, also GetoptError is not printed
520 anymore.
530 anymore.
521
531
522 2007-09-07 Ville Vainio <vivainio@gmail.com>
532 2007-09-07 Ville Vainio <vivainio@gmail.com>
523
533
524 * iplib.py: do not auto-alias "dir", it screws up other dir auto
534 * iplib.py: do not auto-alias "dir", it screws up other dir auto
525 aliases.
535 aliases.
526
536
527 * genutils.py: SList.grep() implemented.
537 * genutils.py: SList.grep() implemented.
528
538
529 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
539 * ipy_editors.py, UserConfig/ipy_user_conf.py: Add some editors
530 for easy "out of the box" setup of several common editors, so that
540 for easy "out of the box" setup of several common editors, so that
531 e.g. '%edit os.path.isfile' will jump to the correct line
541 e.g. '%edit os.path.isfile' will jump to the correct line
532 automatically. Contributions for command lines of your favourite
542 automatically. Contributions for command lines of your favourite
533 editors welcome.
543 editors welcome.
534
544
535 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
545 2007-09-07 Fernando Perez <Fernando.Perez@colorado.edu>
536
546
537 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
547 * IPython/OInspect.py (Inspector.pinfo): fixed bug that was
538 preventing source display in certain cases. In reality I think
548 preventing source display in certain cases. In reality I think
539 the problem is with Ubuntu's Python build, but this change works
549 the problem is with Ubuntu's Python build, but this change works
540 around the issue in some cases (not in all, unfortunately). I'd
550 around the issue in some cases (not in all, unfortunately). I'd
541 filed a Python bug on this with more details, but in the change of
551 filed a Python bug on this with more details, but in the change of
542 bug trackers it seems to have been lost.
552 bug trackers it seems to have been lost.
543
553
544 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
554 * IPython/Magic.py (magic_dhist): restore %dhist. No, cd -TAB is
545 not the same, it's not self-documenting, doesn't allow range
555 not the same, it's not self-documenting, doesn't allow range
546 selection, and sorts alphabetically instead of numerically.
556 selection, and sorts alphabetically instead of numerically.
547 (magic_r): restore %r. No, "up + enter. One char magic" is not
557 (magic_r): restore %r. No, "up + enter. One char magic" is not
548 the same thing, since %r takes parameters to allow fast retrieval
558 the same thing, since %r takes parameters to allow fast retrieval
549 of old commands. I've received emails from users who use this a
559 of old commands. I've received emails from users who use this a
550 LOT, so it stays.
560 LOT, so it stays.
551 (magic_automagic): restore %automagic. "use _ip.option.automagic"
561 (magic_automagic): restore %automagic. "use _ip.option.automagic"
552 is not a valid replacement b/c it doesn't provide an complete
562 is not a valid replacement b/c it doesn't provide an complete
553 explanation (which the automagic docstring does).
563 explanation (which the automagic docstring does).
554 (magic_autocall): restore %autocall, with improved docstring.
564 (magic_autocall): restore %autocall, with improved docstring.
555 Same argument as for others, "use _ip.options.autocall" is not a
565 Same argument as for others, "use _ip.options.autocall" is not a
556 valid replacement.
566 valid replacement.
557 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
567 (magic_pdef): restore %pdef & friends. Used widely, mentioned in
558 tutorials and online docs.
568 tutorials and online docs.
559
569
560 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
570 2007-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
561
571
562 * IPython/usage.py (quick_reference): mention magics in quickref,
572 * IPython/usage.py (quick_reference): mention magics in quickref,
563 modified main banner to mention %quickref.
573 modified main banner to mention %quickref.
564
574
565 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
575 * IPython/FakeModule.py (FakeModule): fixes for doctest compatibility.
566
576
567 2007-09-06 Ville Vainio <vivainio@gmail.com>
577 2007-09-06 Ville Vainio <vivainio@gmail.com>
568
578
569 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
579 * ipy_rehashdir.py, ipy_workdir.py, ipy_fsops.py, iplib.py:
570 Callable aliases now pass the _ip as first arg. This breaks
580 Callable aliases now pass the _ip as first arg. This breaks
571 compatibility with earlier 0.8.2.svn series! (though they should
581 compatibility with earlier 0.8.2.svn series! (though they should
572 not have been in use yet outside these few extensions)
582 not have been in use yet outside these few extensions)
573
583
574 2007-09-05 Ville Vainio <vivainio@gmail.com>
584 2007-09-05 Ville Vainio <vivainio@gmail.com>
575
585
576 * external/mglob.py: expand('dirname') => ['dirname'], instead
586 * external/mglob.py: expand('dirname') => ['dirname'], instead
577 of ['dirname/foo','dirname/bar', ...].
587 of ['dirname/foo','dirname/bar', ...].
578
588
579 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
589 * Extensions/ipy_fsops.py: added, has usefull shell utils for plain
580 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
590 win32 installations: icp, imv, imkdir, igrep, irm, collect (collect
581 is useful for others as well).
591 is useful for others as well).
582
592
583 * iplib.py: on callable aliases (as opposed to old style aliases),
593 * iplib.py: on callable aliases (as opposed to old style aliases),
584 do var_expand() immediately, and use make_quoted_expr instead
594 do var_expand() immediately, and use make_quoted_expr instead
585 of hardcoded r"""
595 of hardcoded r"""
586
596
587 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
597 * Extensions/ipy_profile_sh.py: Try to detect cygwin on win32,
588 if not available load ipy_fsops.py for cp, mv, etc. replacements
598 if not available load ipy_fsops.py for cp, mv, etc. replacements
589
599
590 * OInspect.py, ipy_which.py: improve %which and obj? for callable
600 * OInspect.py, ipy_which.py: improve %which and obj? for callable
591 aliases
601 aliases
592
602
593 2007-09-04 Ville Vainio <vivainio@gmail.com>
603 2007-09-04 Ville Vainio <vivainio@gmail.com>
594
604
595 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
605 * ipy_profile_zope.py: add zope profile, by Stefan Eletzhofer.
596 Relicensed under BSD with the authors approval.
606 Relicensed under BSD with the authors approval.
597
607
598 * ipmaker.py, usage.py: Remove %magic from default banner, improve
608 * ipmaker.py, usage.py: Remove %magic from default banner, improve
599 %quickref
609 %quickref
600
610
601 2007-09-03 Ville Vainio <vivainio@gmail.com>
611 2007-09-03 Ville Vainio <vivainio@gmail.com>
602
612
603 * Magic.py: %time now passes expression through prefilter,
613 * Magic.py: %time now passes expression through prefilter,
604 allowing IPython syntax.
614 allowing IPython syntax.
605
615
606 2007-09-01 Ville Vainio <vivainio@gmail.com>
616 2007-09-01 Ville Vainio <vivainio@gmail.com>
607
617
608 * ipmaker.py: Always show full traceback when newstyle config fails
618 * ipmaker.py: Always show full traceback when newstyle config fails
609
619
610 2007-08-27 Ville Vainio <vivainio@gmail.com>
620 2007-08-27 Ville Vainio <vivainio@gmail.com>
611
621
612 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
622 * Magic.py: fix %cd for nonexistent dir when dhist is empty, close #180
613
623
614 2007-08-26 Ville Vainio <vivainio@gmail.com>
624 2007-08-26 Ville Vainio <vivainio@gmail.com>
615
625
616 * ipmaker.py: Command line args have the highest priority again
626 * ipmaker.py: Command line args have the highest priority again
617
627
618 * iplib.py, ipmaker.py: -i command line argument now behaves as in
628 * iplib.py, ipmaker.py: -i command line argument now behaves as in
619 normal python, i.e. leaves the IPython session running after -c
629 normal python, i.e. leaves the IPython session running after -c
620 command or running a batch file from command line.
630 command or running a batch file from command line.
621
631
622 2007-08-22 Ville Vainio <vivainio@gmail.com>
632 2007-08-22 Ville Vainio <vivainio@gmail.com>
623
633
624 * iplib.py: no extra empty (last) line in raw hist w/ multiline
634 * iplib.py: no extra empty (last) line in raw hist w/ multiline
625 statements
635 statements
626
636
627 * logger.py: Fix bug where blank lines in history were not
637 * logger.py: Fix bug where blank lines in history were not
628 added until AFTER adding the current line; translated and raw
638 added until AFTER adding the current line; translated and raw
629 history should finally be in sync with prompt now.
639 history should finally be in sync with prompt now.
630
640
631 * ipy_completers.py: quick_completer now makes it easy to create
641 * ipy_completers.py: quick_completer now makes it easy to create
632 trivial custom completers
642 trivial custom completers
633
643
634 * clearcmd.py: shadow history compression & erasing, fixed input hist
644 * clearcmd.py: shadow history compression & erasing, fixed input hist
635 clearing.
645 clearing.
636
646
637 * envpersist.py, history.py: %env (sh profile only), %hist completers
647 * envpersist.py, history.py: %env (sh profile only), %hist completers
638
648
639 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
649 * genutils.py, Prompts.py, Magic.py: win32 - prompt (with \yDEPTH) and
640 term title now include the drive letter, and always use / instead of
650 term title now include the drive letter, and always use / instead of
641 os.sep (as per recommended approach for win32 ipython in general).
651 os.sep (as per recommended approach for win32 ipython in general).
642
652
643 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
653 * ipykit.py, ipy_kitcfg.py: special launcher for ipykit. Allows running
644 plain python scripts from ipykit command line by running
654 plain python scripts from ipykit command line by running
645 "py myscript.py", even w/o installed python.
655 "py myscript.py", even w/o installed python.
646
656
647 2007-08-21 Ville Vainio <vivainio@gmail.com>
657 2007-08-21 Ville Vainio <vivainio@gmail.com>
648
658
649 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
659 * ipmaker.py: finding ipythonrc-PROF now skips ipy_profile_PROF.
650 (for backwards compatibility)
660 (for backwards compatibility)
651
661
652 * history.py: switch back to %hist -t from %hist -r as default.
662 * history.py: switch back to %hist -t from %hist -r as default.
653 At least until raw history is fixed for good.
663 At least until raw history is fixed for good.
654
664
655 2007-08-20 Ville Vainio <vivainio@gmail.com>
665 2007-08-20 Ville Vainio <vivainio@gmail.com>
656
666
657 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
667 * ipapi.py, iplib.py: DebugTools accessible via _ip.dbg, to catch &
658 locate alias redeclarations etc. Also, avoid handling
668 locate alias redeclarations etc. Also, avoid handling
659 _ip.IP.alias_table directly, prefer using _ip.defalias.
669 _ip.IP.alias_table directly, prefer using _ip.defalias.
660
670
661
671
662 2007-08-15 Ville Vainio <vivainio@gmail.com>
672 2007-08-15 Ville Vainio <vivainio@gmail.com>
663
673
664 * prefilter.py: ! is now always served first
674 * prefilter.py: ! is now always served first
665
675
666 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
676 2007-08-15 Fernando Perez <Fernando.Perez@colorado.edu>
667
677
668 * IPython/iplib.py (safe_execfile): fix the SystemExit
678 * IPython/iplib.py (safe_execfile): fix the SystemExit
669 auto-suppression code to work in Python2.4 (the internal structure
679 auto-suppression code to work in Python2.4 (the internal structure
670 of that exception changed and I'd only tested the code with 2.5).
680 of that exception changed and I'd only tested the code with 2.5).
671 Bug reported by a SciPy attendee.
681 Bug reported by a SciPy attendee.
672
682
673 2007-08-13 Ville Vainio <vivainio@gmail.com>
683 2007-08-13 Ville Vainio <vivainio@gmail.com>
674
684
675 * prefilter.py: reverted !c:/bin/foo fix, made % in
685 * prefilter.py: reverted !c:/bin/foo fix, made % in
676 multiline specials work again
686 multiline specials work again
677
687
678 2007-08-13 Ville Vainio <vivainio@gmail.com>
688 2007-08-13 Ville Vainio <vivainio@gmail.com>
679
689
680 * prefilter.py: Take more care to special-case !, so that
690 * prefilter.py: Take more care to special-case !, so that
681 !c:/bin/foo.exe works.
691 !c:/bin/foo.exe works.
682
692
683 * setup.py: if we are building eggs, strip all docs and
693 * setup.py: if we are building eggs, strip all docs and
684 examples (it doesn't make sense to bytecompile examples,
694 examples (it doesn't make sense to bytecompile examples,
685 and docs would be in an awkward place anyway).
695 and docs would be in an awkward place anyway).
686
696
687 * Ryan Krauss' patch fixes start menu shortcuts when IPython
697 * Ryan Krauss' patch fixes start menu shortcuts when IPython
688 is installed into a directory that has spaces in the name.
698 is installed into a directory that has spaces in the name.
689
699
690 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
700 2007-08-13 Fernando Perez <Fernando.Perez@colorado.edu>
691
701
692 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
702 * IPython/Magic.py (magic_doctest_mode): fix prompt separators in
693 doctest profile and %doctest_mode, so they actually generate the
703 doctest profile and %doctest_mode, so they actually generate the
694 blank lines needed by doctest to separate individual tests.
704 blank lines needed by doctest to separate individual tests.
695
705
696 * IPython/iplib.py (safe_execfile): modify so that running code
706 * IPython/iplib.py (safe_execfile): modify so that running code
697 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
707 which calls sys.exit(0) (or equivalently, raise SystemExit(0))
698 doesn't get a printed traceback. Any other value in sys.exit(),
708 doesn't get a printed traceback. Any other value in sys.exit(),
699 including the empty call, still generates a traceback. This
709 including the empty call, still generates a traceback. This
700 enables use of %run without having to pass '-e' for codes that
710 enables use of %run without having to pass '-e' for codes that
701 correctly set the exit status flag.
711 correctly set the exit status flag.
702
712
703 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
713 2007-08-12 Fernando Perez <Fernando.Perez@colorado.edu>
704
714
705 * IPython/iplib.py (InteractiveShell.post_config_initialization):
715 * IPython/iplib.py (InteractiveShell.post_config_initialization):
706 fix problems with doctests failing when run inside IPython due to
716 fix problems with doctests failing when run inside IPython due to
707 IPython's modifications of sys.displayhook.
717 IPython's modifications of sys.displayhook.
708
718
709 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
719 2007-8-9 Fernando Perez <fperez@planck.colorado.edu>
710
720
711 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
721 * IPython/ipapi.py (to_user_ns): update to accept a dict as well as
712 a string with names.
722 a string with names.
713
723
714 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
724 2007-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
715
725
716 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
726 * IPython/Magic.py (magic_doctest_mode): added new %doctest_mode
717 magic to toggle on/off the doctest pasting support without having
727 magic to toggle on/off the doctest pasting support without having
718 to leave a session to switch to a separate profile.
728 to leave a session to switch to a separate profile.
719
729
720 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
730 2007-08-08 Fernando Perez <Fernando.Perez@colorado.edu>
721
731
722 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
732 * IPython/Extensions/ipy_profile_doctest.py (main): fix prompt to
723 introduce a blank line between inputs, to conform to doctest
733 introduce a blank line between inputs, to conform to doctest
724 requirements.
734 requirements.
725
735
726 * IPython/OInspect.py (Inspector.pinfo): fix another part where
736 * IPython/OInspect.py (Inspector.pinfo): fix another part where
727 auto-generated docstrings for new-style classes were showing up.
737 auto-generated docstrings for new-style classes were showing up.
728
738
729 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
739 2007-08-07 Fernando Perez <Fernando.Perez@colorado.edu>
730
740
731 * api_changes: Add new file to track backward-incompatible
741 * api_changes: Add new file to track backward-incompatible
732 user-visible changes.
742 user-visible changes.
733
743
734 2007-08-06 Ville Vainio <vivainio@gmail.com>
744 2007-08-06 Ville Vainio <vivainio@gmail.com>
735
745
736 * ipmaker.py: fix bug where user_config_ns didn't exist at all
746 * ipmaker.py: fix bug where user_config_ns didn't exist at all
737 before all the config files were handled.
747 before all the config files were handled.
738
748
739 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
749 2007-08-04 Fernando Perez <Fernando.Perez@colorado.edu>
740
750
741 * IPython/irunner.py (RunnerFactory): Add new factory class for
751 * IPython/irunner.py (RunnerFactory): Add new factory class for
742 creating reusable runners based on filenames.
752 creating reusable runners based on filenames.
743
753
744 * IPython/Extensions/ipy_profile_doctest.py: New profile for
754 * IPython/Extensions/ipy_profile_doctest.py: New profile for
745 doctest support. It sets prompts/exceptions as similar to
755 doctest support. It sets prompts/exceptions as similar to
746 standard Python as possible, so that ipython sessions in this
756 standard Python as possible, so that ipython sessions in this
747 profile can be easily pasted as doctests with minimal
757 profile can be easily pasted as doctests with minimal
748 modifications. It also enables pasting of doctests from external
758 modifications. It also enables pasting of doctests from external
749 sources (even if they have leading whitespace), so that you can
759 sources (even if they have leading whitespace), so that you can
750 rerun doctests from existing sources.
760 rerun doctests from existing sources.
751
761
752 * IPython/iplib.py (_prefilter): fix a buglet where after entering
762 * IPython/iplib.py (_prefilter): fix a buglet where after entering
753 some whitespace, the prompt would become a continuation prompt
763 some whitespace, the prompt would become a continuation prompt
754 with no way of exiting it other than Ctrl-C. This fix brings us
764 with no way of exiting it other than Ctrl-C. This fix brings us
755 into conformity with how the default python prompt works.
765 into conformity with how the default python prompt works.
756
766
757 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
767 * IPython/Extensions/InterpreterPasteInput.py (prefilter_paste):
758 Add support for pasting not only lines that start with '>>>', but
768 Add support for pasting not only lines that start with '>>>', but
759 also with ' >>>'. That is, arbitrary whitespace can now precede
769 also with ' >>>'. That is, arbitrary whitespace can now precede
760 the prompts. This makes the system useful for pasting doctests
770 the prompts. This makes the system useful for pasting doctests
761 from docstrings back into a normal session.
771 from docstrings back into a normal session.
762
772
763 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
773 2007-08-02 Fernando Perez <Fernando.Perez@colorado.edu>
764
774
765 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
775 * IPython/Shell.py (IPShellEmbed.__call__): fix bug introduced in
766 r1357, which had killed multiple invocations of an embedded
776 r1357, which had killed multiple invocations of an embedded
767 ipython (this means that example-embed has been broken for over 1
777 ipython (this means that example-embed has been broken for over 1
768 year!!!). Rather than possibly breaking the batch stuff for which
778 year!!!). Rather than possibly breaking the batch stuff for which
769 the code in iplib.py/interact was introduced, I worked around the
779 the code in iplib.py/interact was introduced, I worked around the
770 problem in the embedding class in Shell.py. We really need a
780 problem in the embedding class in Shell.py. We really need a
771 bloody test suite for this code, I'm sick of finding stuff that
781 bloody test suite for this code, I'm sick of finding stuff that
772 used to work breaking left and right every time I use an old
782 used to work breaking left and right every time I use an old
773 feature I hadn't touched in a few months.
783 feature I hadn't touched in a few months.
774 (kill_embedded): Add a new magic that only shows up in embedded
784 (kill_embedded): Add a new magic that only shows up in embedded
775 mode, to allow users to permanently deactivate an embedded instance.
785 mode, to allow users to permanently deactivate an embedded instance.
776
786
777 2007-08-01 Ville Vainio <vivainio@gmail.com>
787 2007-08-01 Ville Vainio <vivainio@gmail.com>
778
788
779 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
789 * iplib.py, ipy_profile_sh.py (runlines): Fix the bug where raw
780 history gets out of sync on runlines (e.g. when running macros).
790 history gets out of sync on runlines (e.g. when running macros).
781
791
782 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
792 2007-07-31 Fernando Perez <Fernando.Perez@colorado.edu>
783
793
784 * IPython/Magic.py (magic_colors): fix win32-related error message
794 * IPython/Magic.py (magic_colors): fix win32-related error message
785 that could appear under *nix when readline was missing. Patch by
795 that could appear under *nix when readline was missing. Patch by
786 Scott Jackson, closes #175.
796 Scott Jackson, closes #175.
787
797
788 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
798 2007-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
789
799
790 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
800 * IPython/Extensions/ipy_traits_completer.py: Add a new custom
791 completer that it traits-aware, so that traits objects don't show
801 completer that it traits-aware, so that traits objects don't show
792 all of their internal attributes all the time.
802 all of their internal attributes all the time.
793
803
794 * IPython/genutils.py (dir2): moved this code from inside
804 * IPython/genutils.py (dir2): moved this code from inside
795 completer.py to expose it publicly, so I could use it in the
805 completer.py to expose it publicly, so I could use it in the
796 wildcards bugfix.
806 wildcards bugfix.
797
807
798 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
808 * IPython/wildcard.py (NameSpace.__init__): fix a bug reported by
799 Stefan with Traits.
809 Stefan with Traits.
800
810
801 * IPython/completer.py (Completer.attr_matches): change internal
811 * IPython/completer.py (Completer.attr_matches): change internal
802 var name from 'object' to 'obj', since 'object' is now a builtin
812 var name from 'object' to 'obj', since 'object' is now a builtin
803 and this can lead to weird bugs if reusing this code elsewhere.
813 and this can lead to weird bugs if reusing this code elsewhere.
804
814
805 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
815 2007-07-25 Fernando Perez <Fernando.Perez@colorado.edu>
806
816
807 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
817 * IPython/OInspect.py (Inspector.pinfo): fix small glitches in
808 'foo?' and update the code to prevent printing of default
818 'foo?' and update the code to prevent printing of default
809 docstrings that started appearing after I added support for
819 docstrings that started appearing after I added support for
810 new-style classes. The approach I'm using isn't ideal (I just
820 new-style classes. The approach I'm using isn't ideal (I just
811 special-case those strings) but I'm not sure how to more robustly
821 special-case those strings) but I'm not sure how to more robustly
812 differentiate between truly user-written strings and Python's
822 differentiate between truly user-written strings and Python's
813 automatic ones.
823 automatic ones.
814
824
815 2007-07-09 Ville Vainio <vivainio@gmail.com>
825 2007-07-09 Ville Vainio <vivainio@gmail.com>
816
826
817 * completer.py: Applied Matthew Neeley's patch:
827 * completer.py: Applied Matthew Neeley's patch:
818 Dynamic attributes from trait_names and _getAttributeNames are added
828 Dynamic attributes from trait_names and _getAttributeNames are added
819 to the list of tab completions, but when this happens, the attribute
829 to the list of tab completions, but when this happens, the attribute
820 list is turned into a set, so the attributes are unordered when
830 list is turned into a set, so the attributes are unordered when
821 printed, which makes it hard to find the right completion. This patch
831 printed, which makes it hard to find the right completion. This patch
822 turns this set back into a list and sort it.
832 turns this set back into a list and sort it.
823
833
824 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
834 2007-07-06 Fernando Perez <Fernando.Perez@colorado.edu>
825
835
826 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
836 * IPython/OInspect.py (Inspector.pinfo): Add support for new-style
827 classes in various inspector functions.
837 classes in various inspector functions.
828
838
829 2007-06-28 Ville Vainio <vivainio@gmail.com>
839 2007-06-28 Ville Vainio <vivainio@gmail.com>
830
840
831 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
841 * shadowns.py, iplib.py, ipapi.py, OInspect.py:
832 Implement "shadow" namespace, and callable aliases that reside there.
842 Implement "shadow" namespace, and callable aliases that reside there.
833 Use them by:
843 Use them by:
834
844
835 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
845 _ip.defalias('foo',myfunc) # creates _sh.foo that points to myfunc
836
846
837 foo hello world
847 foo hello world
838 (gets translated to:)
848 (gets translated to:)
839 _sh.foo(r"""hello world""")
849 _sh.foo(r"""hello world""")
840
850
841 In practice, this kind of alias can take the role of a magic function
851 In practice, this kind of alias can take the role of a magic function
842
852
843 * New generic inspect_object, called on obj? and obj??
853 * New generic inspect_object, called on obj? and obj??
844
854
845 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
855 2007-06-15 Fernando Perez <Fernando.Perez@colorado.edu>
846
856
847 * IPython/ultraTB.py (findsource): fix a problem with
857 * IPython/ultraTB.py (findsource): fix a problem with
848 inspect.getfile that can cause crashes during traceback construction.
858 inspect.getfile that can cause crashes during traceback construction.
849
859
850 2007-06-14 Ville Vainio <vivainio@gmail.com>
860 2007-06-14 Ville Vainio <vivainio@gmail.com>
851
861
852 * iplib.py (handle_auto): Try to use ascii for printing "--->"
862 * iplib.py (handle_auto): Try to use ascii for printing "--->"
853 autocall rewrite indication, becausesometimes unicode fails to print
863 autocall rewrite indication, becausesometimes unicode fails to print
854 properly (and you get ' - - - '). Use plain uncoloured ---> for
864 properly (and you get ' - - - '). Use plain uncoloured ---> for
855 unicode.
865 unicode.
856
866
857 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
867 * shadow history. Usable through "%hist -g <pat>" and "%rep 0123".
858
868
859 . pickleshare 'hash' commands (hget, hset, hcompress,
869 . pickleshare 'hash' commands (hget, hset, hcompress,
860 hdict) for efficient shadow history storage.
870 hdict) for efficient shadow history storage.
861
871
862 2007-06-13 Ville Vainio <vivainio@gmail.com>
872 2007-06-13 Ville Vainio <vivainio@gmail.com>
863
873
864 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
874 * ipapi.py: _ip.to_user_ns(vars, interactive = True).
865 Added kw arg 'interactive', tell whether vars should be visible
875 Added kw arg 'interactive', tell whether vars should be visible
866 with %whos.
876 with %whos.
867
877
868 2007-06-11 Ville Vainio <vivainio@gmail.com>
878 2007-06-11 Ville Vainio <vivainio@gmail.com>
869
879
870 * pspersistence.py, Magic.py, iplib.py: directory history now saved
880 * pspersistence.py, Magic.py, iplib.py: directory history now saved
871 to db
881 to db
872
882
873 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
883 * iplib.py: "ipython -c <cmd>" now passes the command through prefilter.
874 Also, it exits IPython immediately after evaluating the command (just like
884 Also, it exits IPython immediately after evaluating the command (just like
875 std python)
885 std python)
876
886
877 2007-06-05 Walter Doerwald <walter@livinglogic.de>
887 2007-06-05 Walter Doerwald <walter@livinglogic.de>
878
888
879 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
889 * IPython/Extensions/ipipe.py: Added a new table icap, which executes a
880 Python string and captures the output. (Idea and original patch by
890 Python string and captures the output. (Idea and original patch by
881 Stefan van der Walt)
891 Stefan van der Walt)
882
892
883 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
893 2007-06-01 Fernando Perez <Fernando.Perez@colorado.edu>
884
894
885 * IPython/ultraTB.py (VerboseTB.text): update printing of
895 * IPython/ultraTB.py (VerboseTB.text): update printing of
886 exception types for Python 2.5 (now all exceptions in the stdlib
896 exception types for Python 2.5 (now all exceptions in the stdlib
887 are new-style classes).
897 are new-style classes).
888
898
889 2007-05-31 Walter Doerwald <walter@livinglogic.de>
899 2007-05-31 Walter Doerwald <walter@livinglogic.de>
890
900
891 * IPython/Extensions/igrid.py: Add new commands refresh and
901 * IPython/Extensions/igrid.py: Add new commands refresh and
892 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
902 refresh_timer (mapped to "R"/"F5" and to the menu) which restarts
893 the iterator once (refresh) or after every x seconds (refresh_timer).
903 the iterator once (refresh) or after every x seconds (refresh_timer).
894 Add a working implementation of "searchexpression", where the text
904 Add a working implementation of "searchexpression", where the text
895 entered is not the text to search for, but an expression that must
905 entered is not the text to search for, but an expression that must
896 be true. Added display of shortcuts to the menu. Added commands "pickinput"
906 be true. Added display of shortcuts to the menu. Added commands "pickinput"
897 and "pickinputattr" that put the object or attribute under the cursor
907 and "pickinputattr" that put the object or attribute under the cursor
898 in the input line. Split the statusbar to be able to display the currently
908 in the input line. Split the statusbar to be able to display the currently
899 active refresh interval. (Patch by Nik Tautenhahn)
909 active refresh interval. (Patch by Nik Tautenhahn)
900
910
901 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
911 2007-05-29 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
902
912
903 * fixing set_term_title to use ctypes as default
913 * fixing set_term_title to use ctypes as default
904
914
905 * fixing set_term_title fallback to work when curent dir
915 * fixing set_term_title fallback to work when curent dir
906 is on a windows network share
916 is on a windows network share
907
917
908 2007-05-28 Ville Vainio <vivainio@gmail.com>
918 2007-05-28 Ville Vainio <vivainio@gmail.com>
909
919
910 * %cpaste: strip + with > from left (diffs).
920 * %cpaste: strip + with > from left (diffs).
911
921
912 * iplib.py: Fix crash when readline not installed
922 * iplib.py: Fix crash when readline not installed
913
923
914 2007-05-26 Ville Vainio <vivainio@gmail.com>
924 2007-05-26 Ville Vainio <vivainio@gmail.com>
915
925
916 * generics.py: introduce easy to extend result_display generic
926 * generics.py: introduce easy to extend result_display generic
917 function (using simplegeneric.py).
927 function (using simplegeneric.py).
918
928
919 * Fixed the append functionality of %set.
929 * Fixed the append functionality of %set.
920
930
921 2007-05-25 Ville Vainio <vivainio@gmail.com>
931 2007-05-25 Ville Vainio <vivainio@gmail.com>
922
932
923 * New magic: %rep (fetch / run old commands from history)
933 * New magic: %rep (fetch / run old commands from history)
924
934
925 * New extension: mglob (%mglob magic), for powerful glob / find /filter
935 * New extension: mglob (%mglob magic), for powerful glob / find /filter
926 like functionality
936 like functionality
927
937
928 % maghistory.py: %hist -g PATTERM greps the history for pattern
938 % maghistory.py: %hist -g PATTERM greps the history for pattern
929
939
930 2007-05-24 Walter Doerwald <walter@livinglogic.de>
940 2007-05-24 Walter Doerwald <walter@livinglogic.de>
931
941
932 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
942 * IPython/Extensions/ipipe.py: Added a Table ihist that can be used to
933 browse the IPython input history
943 browse the IPython input history
934
944
935 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
945 * IPython/Extensions/ibrowse.py: Added two command to ibrowse: pickinput
936 (mapped to "i") can be used to put the object under the curser in the input
946 (mapped to "i") can be used to put the object under the curser in the input
937 line. pickinputattr (mapped to "I") does the same for the attribute under
947 line. pickinputattr (mapped to "I") does the same for the attribute under
938 the cursor.
948 the cursor.
939
949
940 2007-05-24 Ville Vainio <vivainio@gmail.com>
950 2007-05-24 Ville Vainio <vivainio@gmail.com>
941
951
942 * Grand magic cleansing (changeset [2380]):
952 * Grand magic cleansing (changeset [2380]):
943
953
944 * Introduce ipy_legacy.py where the following magics were
954 * Introduce ipy_legacy.py where the following magics were
945 moved:
955 moved:
946
956
947 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
957 pdef pdoc psource pfile rehash dhist Quit p r automagic autocall
948
958
949 If you need them, either use default profile or "import ipy_legacy"
959 If you need them, either use default profile or "import ipy_legacy"
950 in your ipy_user_conf.py
960 in your ipy_user_conf.py
951
961
952 * Move sh and scipy profile to Extensions from UserConfig. this implies
962 * Move sh and scipy profile to Extensions from UserConfig. this implies
953 you should not edit them, but you don't need to run %upgrade when
963 you should not edit them, but you don't need to run %upgrade when
954 upgrading IPython anymore.
964 upgrading IPython anymore.
955
965
956 * %hist/%history now operates in "raw" mode by default. To get the old
966 * %hist/%history now operates in "raw" mode by default. To get the old
957 behaviour, run '%hist -n' (native mode).
967 behaviour, run '%hist -n' (native mode).
958
968
959 * split ipy_stock_completers.py to ipy_stock_completers.py and
969 * split ipy_stock_completers.py to ipy_stock_completers.py and
960 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
970 ipy_app_completers.py. Stock completers (%cd, import, %run) are now
961 installed as default.
971 installed as default.
962
972
963 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
973 * sh profile now installs ipy_signals.py, for (hopefully) better ctrl+c
964 handling.
974 handling.
965
975
966 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
976 * iplib.py, ipapi.py: _ip.set_next_input(s) sets the next ("default")
967 input if readline is available.
977 input if readline is available.
968
978
969 2007-05-23 Ville Vainio <vivainio@gmail.com>
979 2007-05-23 Ville Vainio <vivainio@gmail.com>
970
980
971 * macro.py: %store uses __getstate__ properly
981 * macro.py: %store uses __getstate__ properly
972
982
973 * exesetup.py: added new setup script for creating
983 * exesetup.py: added new setup script for creating
974 standalone IPython executables with py2exe (i.e.
984 standalone IPython executables with py2exe (i.e.
975 no python installation required).
985 no python installation required).
976
986
977 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
987 * Removed ipythonrc-scipy, ipy_profile_scipy.py takes
978 its place.
988 its place.
979
989
980 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
990 * rlineimpl.py, genutils.py (get_home_dir): py2exe support
981
991
982 2007-05-21 Ville Vainio <vivainio@gmail.com>
992 2007-05-21 Ville Vainio <vivainio@gmail.com>
983
993
984 * platutil_win32.py (set_term_title): handle
994 * platutil_win32.py (set_term_title): handle
985 failure of 'title' system call properly.
995 failure of 'title' system call properly.
986
996
987 2007-05-17 Walter Doerwald <walter@livinglogic.de>
997 2007-05-17 Walter Doerwald <walter@livinglogic.de>
988
998
989 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
999 * IPython/Extensions/ipipe.py: Fix xrepr for ifiles.
990 (Bug detected by Paul Mueller).
1000 (Bug detected by Paul Mueller).
991
1001
992 2007-05-16 Ville Vainio <vivainio@gmail.com>
1002 2007-05-16 Ville Vainio <vivainio@gmail.com>
993
1003
994 * ipy_profile_sci.py, ipython_win_post_install.py: Create
1004 * ipy_profile_sci.py, ipython_win_post_install.py: Create
995 new "sci" profile, effectively a modern version of the old
1005 new "sci" profile, effectively a modern version of the old
996 "scipy" profile (which is now slated for deprecation).
1006 "scipy" profile (which is now slated for deprecation).
997
1007
998 2007-05-15 Ville Vainio <vivainio@gmail.com>
1008 2007-05-15 Ville Vainio <vivainio@gmail.com>
999
1009
1000 * pycolorize.py, pycolor.1: Paul Mueller's patches that
1010 * pycolorize.py, pycolor.1: Paul Mueller's patches that
1001 make pycolorize read input from stdin when run without arguments.
1011 make pycolorize read input from stdin when run without arguments.
1002
1012
1003 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
1013 * Magic.py: do not require 'PATH' in %rehash/%rehashx. Closes #155
1004
1014
1005 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
1015 * ipy_rehashdir.py: rename ext_rehashdir to ipy_rehashdir, import
1006 it in sh profile (instead of ipy_system_conf.py).
1016 it in sh profile (instead of ipy_system_conf.py).
1007
1017
1008 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
1018 * Magic.py, ipy_rehashdir.py, ipy_profile_sh.py: System command
1009 aliases are now lower case on windows (MyCommand.exe => mycommand).
1019 aliases are now lower case on windows (MyCommand.exe => mycommand).
1010
1020
1011 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
1021 * macro.py, ipapi.py, iplib.py, Prompts.py: Macro system rehaul.
1012 Macros are now callable objects that inherit from ipapi.IPyAutocall,
1022 Macros are now callable objects that inherit from ipapi.IPyAutocall,
1013 i.e. get autocalled regardless of system autocall setting.
1023 i.e. get autocalled regardless of system autocall setting.
1014
1024
1015 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
1025 2007-05-10 Fernando Perez <Fernando.Perez@colorado.edu>
1016
1026
1017 * IPython/rlineimpl.py: check for clear_history in readline and
1027 * IPython/rlineimpl.py: check for clear_history in readline and
1018 make it a dummy no-op if not available. This function isn't
1028 make it a dummy no-op if not available. This function isn't
1019 guaranteed to be in the API and appeared in Python 2.4, so we need
1029 guaranteed to be in the API and appeared in Python 2.4, so we need
1020 to check it ourselves. Also, clean up this file quite a bit.
1030 to check it ourselves. Also, clean up this file quite a bit.
1021
1031
1022 * ipython.1: update man page and full manual with information
1032 * ipython.1: update man page and full manual with information
1023 about threads (remove outdated warning). Closes #151.
1033 about threads (remove outdated warning). Closes #151.
1024
1034
1025 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1035 2007-05-09 Fernando Perez <Fernando.Perez@colorado.edu>
1026
1036
1027 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1037 * IPython/Extensions/ipy_constants.py: Add Gael's constants module
1028 in trunk (note that this made it into the 0.8.1 release already,
1038 in trunk (note that this made it into the 0.8.1 release already,
1029 but the changelogs didn't get coordinated). Many thanks to Gael
1039 but the changelogs didn't get coordinated). Many thanks to Gael
1030 Varoquaux <gael.varoquaux-AT-normalesup.org>
1040 Varoquaux <gael.varoquaux-AT-normalesup.org>
1031
1041
1032 2007-05-09 *** Released version 0.8.1
1042 2007-05-09 *** Released version 0.8.1
1033
1043
1034 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1044 2007-05-10 Walter Doerwald <walter@livinglogic.de>
1035
1045
1036 * IPython/Extensions/igrid.py: Incorporate html help into
1046 * IPython/Extensions/igrid.py: Incorporate html help into
1037 the module, so we don't have to search for the file.
1047 the module, so we don't have to search for the file.
1038
1048
1039 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1049 2007-05-02 Fernando Perez <Fernando.Perez@colorado.edu>
1040
1050
1041 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1051 * test/test_irunner.py (RunnerTestCase._test_runner): Close #147.
1042
1052
1043 2007-04-30 Ville Vainio <vivainio@gmail.com>
1053 2007-04-30 Ville Vainio <vivainio@gmail.com>
1044
1054
1045 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1055 * iplib.py: (pre_config_initialization) Catch UnicodeDecodeError if the
1046 user has illegal (non-ascii) home directory name
1056 user has illegal (non-ascii) home directory name
1047
1057
1048 2007-04-27 Ville Vainio <vivainio@gmail.com>
1058 2007-04-27 Ville Vainio <vivainio@gmail.com>
1049
1059
1050 * platutils_win32.py: implement set_term_title for windows
1060 * platutils_win32.py: implement set_term_title for windows
1051
1061
1052 * Update version number
1062 * Update version number
1053
1063
1054 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1064 * ipy_profile_sh.py: more informative prompt (2 dir levels)
1055
1065
1056 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1066 2007-04-26 Walter Doerwald <walter@livinglogic.de>
1057
1067
1058 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1068 * IPython/Extensions/igrid.py: (igrid) Fix bug that surfaced
1059 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1069 when the igrid input raised an exception. (Patch by Nik Tautenhahn,
1060 bug discovered by Ville).
1070 bug discovered by Ville).
1061
1071
1062 2007-04-26 Ville Vainio <vivainio@gmail.com>
1072 2007-04-26 Ville Vainio <vivainio@gmail.com>
1063
1073
1064 * Extensions/ipy_completers.py: Olivier's module completer now
1074 * Extensions/ipy_completers.py: Olivier's module completer now
1065 saves the list of root modules if it takes > 4 secs on the first run.
1075 saves the list of root modules if it takes > 4 secs on the first run.
1066
1076
1067 * Magic.py (%rehashx): %rehashx now clears the completer cache
1077 * Magic.py (%rehashx): %rehashx now clears the completer cache
1068
1078
1069
1079
1070 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1080 2007-04-26 Fernando Perez <Fernando.Perez@colorado.edu>
1071
1081
1072 * ipython.el: fix incorrect color scheme, reported by Stefan.
1082 * ipython.el: fix incorrect color scheme, reported by Stefan.
1073 Closes #149.
1083 Closes #149.
1074
1084
1075 * IPython/PyColorize.py (Parser.format2): fix state-handling
1085 * IPython/PyColorize.py (Parser.format2): fix state-handling
1076 logic. I still don't like how that code handles state, but at
1086 logic. I still don't like how that code handles state, but at
1077 least now it should be correct, if inelegant. Closes #146.
1087 least now it should be correct, if inelegant. Closes #146.
1078
1088
1079 2007-04-25 Ville Vainio <vivainio@gmail.com>
1089 2007-04-25 Ville Vainio <vivainio@gmail.com>
1080
1090
1081 * Extensions/ipy_which.py: added extension for %which magic, works
1091 * Extensions/ipy_which.py: added extension for %which magic, works
1082 a lot like unix 'which' but also finds and expands aliases, and
1092 a lot like unix 'which' but also finds and expands aliases, and
1083 allows wildcards.
1093 allows wildcards.
1084
1094
1085 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1095 * ipapi.py (expand_alias): Now actually *return* the expanded alias,
1086 as opposed to returning nothing.
1096 as opposed to returning nothing.
1087
1097
1088 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1098 * UserConfig/ipy_user_conf.py, ipy_profile_sh.py: do not import
1089 ipy_stock_completers on default profile, do import on sh profile.
1099 ipy_stock_completers on default profile, do import on sh profile.
1090
1100
1091 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1101 2007-04-22 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1092
1102
1093 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1103 * Fix bug in iplib.py/safe_execfile when launching ipython with a script
1094 like ipython.py foo.py which raised a IndexError.
1104 like ipython.py foo.py which raised a IndexError.
1095
1105
1096 2007-04-21 Ville Vainio <vivainio@gmail.com>
1106 2007-04-21 Ville Vainio <vivainio@gmail.com>
1097
1107
1098 * Extensions/ipy_extutil.py: added extension to manage other ipython
1108 * Extensions/ipy_extutil.py: added extension to manage other ipython
1099 extensions. Now only supports 'ls' == list extensions.
1109 extensions. Now only supports 'ls' == list extensions.
1100
1110
1101 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1111 2007-04-20 Fernando Perez <Fernando.Perez@colorado.edu>
1102
1112
1103 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1113 * IPython/Debugger.py (BdbQuit_excepthook): fix small bug that
1104 would prevent use of the exception system outside of a running
1114 would prevent use of the exception system outside of a running
1105 IPython instance.
1115 IPython instance.
1106
1116
1107 2007-04-20 Ville Vainio <vivainio@gmail.com>
1117 2007-04-20 Ville Vainio <vivainio@gmail.com>
1108
1118
1109 * Extensions/ipy_render.py: added extension for easy
1119 * Extensions/ipy_render.py: added extension for easy
1110 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1120 interactive text template rendering (to clipboard). Uses Ka-Ping Yee's
1111 'Iptl' template notation,
1121 'Iptl' template notation,
1112
1122
1113 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1123 * Extensions/ipy_completers.py: introduced Olivier Lauzanne's
1114 safer & faster 'import' completer.
1124 safer & faster 'import' completer.
1115
1125
1116 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1126 * ipapi.py: Introduced new ipapi methods, _ip.defmacro(name, value)
1117 and _ip.defalias(name, command).
1127 and _ip.defalias(name, command).
1118
1128
1119 * Extensions/ipy_exportdb.py: New extension for exporting all the
1129 * Extensions/ipy_exportdb.py: New extension for exporting all the
1120 %store'd data in a portable format (normal ipapi calls like
1130 %store'd data in a portable format (normal ipapi calls like
1121 defmacro() etc.)
1131 defmacro() etc.)
1122
1132
1123 2007-04-19 Ville Vainio <vivainio@gmail.com>
1133 2007-04-19 Ville Vainio <vivainio@gmail.com>
1124
1134
1125 * upgrade_dir.py: skip junk files like *.pyc
1135 * upgrade_dir.py: skip junk files like *.pyc
1126
1136
1127 * Release.py: version number to 0.8.1
1137 * Release.py: version number to 0.8.1
1128
1138
1129 2007-04-18 Ville Vainio <vivainio@gmail.com>
1139 2007-04-18 Ville Vainio <vivainio@gmail.com>
1130
1140
1131 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1141 * iplib.py (safe_execfile): make "ipython foo.py" work with 2.5.1c1
1132 and later on win32.
1142 and later on win32.
1133
1143
1134 2007-04-16 Ville Vainio <vivainio@gmail.com>
1144 2007-04-16 Ville Vainio <vivainio@gmail.com>
1135
1145
1136 * iplib.py (showtraceback): Do not crash when running w/o readline.
1146 * iplib.py (showtraceback): Do not crash when running w/o readline.
1137
1147
1138 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1148 2007-04-12 Walter Doerwald <walter@livinglogic.de>
1139
1149
1140 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1150 * IPython/Extensions/ipipe.py: (ils) Directoy listings are now
1141 sorted (case sensitive with files and dirs mixed).
1151 sorted (case sensitive with files and dirs mixed).
1142
1152
1143 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1153 2007-04-10 Fernando Perez <Fernando.Perez@colorado.edu>
1144
1154
1145 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1155 * IPython/Release.py (version): Open trunk for 0.8.1 development.
1146
1156
1147 2007-04-10 *** Released version 0.8.0
1157 2007-04-10 *** Released version 0.8.0
1148
1158
1149 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1159 2007-04-07 Fernando Perez <Fernando.Perez@colorado.edu>
1150
1160
1151 * Tag 0.8.0 for release.
1161 * Tag 0.8.0 for release.
1152
1162
1153 * IPython/iplib.py (reloadhist): add API function to cleanly
1163 * IPython/iplib.py (reloadhist): add API function to cleanly
1154 reload the readline history, which was growing inappropriately on
1164 reload the readline history, which was growing inappropriately on
1155 every %run call.
1165 every %run call.
1156
1166
1157 * win32_manual_post_install.py (run): apply last part of Nicolas
1167 * win32_manual_post_install.py (run): apply last part of Nicolas
1158 Pernetty's patch (I'd accidentally applied it in a different
1168 Pernetty's patch (I'd accidentally applied it in a different
1159 directory and this particular file didn't get patched).
1169 directory and this particular file didn't get patched).
1160
1170
1161 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1171 2007-04-05 Fernando Perez <Fernando.Perez@colorado.edu>
1162
1172
1163 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1173 * IPython/Shell.py (MAIN_THREAD_ID): get rid of my stupid hack to
1164 find the main thread id and use the proper API call. Thanks to
1174 find the main thread id and use the proper API call. Thanks to
1165 Stefan for the fix.
1175 Stefan for the fix.
1166
1176
1167 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1177 * test/test_prefilter.py (esc_handler_tests): udpate one of Dan's
1168 unit tests to reflect fixed ticket #52, and add more tests sent by
1178 unit tests to reflect fixed ticket #52, and add more tests sent by
1169 him.
1179 him.
1170
1180
1171 * IPython/iplib.py (raw_input): restore the readline completer
1181 * IPython/iplib.py (raw_input): restore the readline completer
1172 state on every input, in case third-party code messed it up.
1182 state on every input, in case third-party code messed it up.
1173 (_prefilter): revert recent addition of early-escape checks which
1183 (_prefilter): revert recent addition of early-escape checks which
1174 prevent many valid alias calls from working.
1184 prevent many valid alias calls from working.
1175
1185
1176 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1186 * IPython/Shell.py (MTInteractiveShell.runcode): add a tracking
1177 flag for sigint handler so we don't run a full signal() call on
1187 flag for sigint handler so we don't run a full signal() call on
1178 each runcode access.
1188 each runcode access.
1179
1189
1180 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1190 * IPython/Magic.py (magic_whos): small improvement to diagnostic
1181 message.
1191 message.
1182
1192
1183 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1193 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1184
1194
1185 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1195 * IPython/Shell.py (sigint_handler): I *THINK* I finally got
1186 asynchronous exceptions working, i.e., Ctrl-C can actually
1196 asynchronous exceptions working, i.e., Ctrl-C can actually
1187 interrupt long-running code in the multithreaded shells.
1197 interrupt long-running code in the multithreaded shells.
1188
1198
1189 This is using Tomer Filiba's great ctypes-based trick:
1199 This is using Tomer Filiba's great ctypes-based trick:
1190 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1200 http://sebulba.wikispaces.com/recipe+thread2. I'd already tried
1191 this in the past, but hadn't been able to make it work before. So
1201 this in the past, but hadn't been able to make it work before. So
1192 far it looks like it's actually running, but this needs more
1202 far it looks like it's actually running, but this needs more
1193 testing. If it really works, I'll be *very* happy, and we'll owe
1203 testing. If it really works, I'll be *very* happy, and we'll owe
1194 a huge thank you to Tomer. My current implementation is ugly,
1204 a huge thank you to Tomer. My current implementation is ugly,
1195 hackish and uses nasty globals, but I don't want to try and clean
1205 hackish and uses nasty globals, but I don't want to try and clean
1196 anything up until we know if it actually works.
1206 anything up until we know if it actually works.
1197
1207
1198 NOTE: this feature needs ctypes to work. ctypes is included in
1208 NOTE: this feature needs ctypes to work. ctypes is included in
1199 Python2.5, but 2.4 users will need to manually install it. This
1209 Python2.5, but 2.4 users will need to manually install it. This
1200 feature makes multi-threaded shells so much more usable that it's
1210 feature makes multi-threaded shells so much more usable that it's
1201 a minor price to pay (ctypes is very easy to install, already a
1211 a minor price to pay (ctypes is very easy to install, already a
1202 requirement for win32 and available in major linux distros).
1212 requirement for win32 and available in major linux distros).
1203
1213
1204 2007-04-04 Ville Vainio <vivainio@gmail.com>
1214 2007-04-04 Ville Vainio <vivainio@gmail.com>
1205
1215
1206 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1216 * Extensions/ipy_completers.py, ipy_stock_completers.py:
1207 Moved implementations of 'bundled' completers to ipy_completers.py,
1217 Moved implementations of 'bundled' completers to ipy_completers.py,
1208 they are only enabled in ipy_stock_completers.py.
1218 they are only enabled in ipy_stock_completers.py.
1209
1219
1210 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1220 2007-04-04 Fernando Perez <Fernando.Perez@colorado.edu>
1211
1221
1212 * IPython/PyColorize.py (Parser.format2): Fix identation of
1222 * IPython/PyColorize.py (Parser.format2): Fix identation of
1213 colorzied output and return early if color scheme is NoColor, to
1223 colorzied output and return early if color scheme is NoColor, to
1214 avoid unnecessary and expensive tokenization. Closes #131.
1224 avoid unnecessary and expensive tokenization. Closes #131.
1215
1225
1216 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1226 2007-04-03 Fernando Perez <Fernando.Perez@colorado.edu>
1217
1227
1218 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1228 * IPython/Debugger.py: disable the use of pydb version 1.17. It
1219 has a critical bug (a missing import that makes post-mortem not
1229 has a critical bug (a missing import that makes post-mortem not
1220 work at all). Unfortunately as of this time, this is the version
1230 work at all). Unfortunately as of this time, this is the version
1221 shipped with Ubuntu Edgy, so quite a few people have this one. I
1231 shipped with Ubuntu Edgy, so quite a few people have this one. I
1222 hope Edgy will update to a more recent package.
1232 hope Edgy will update to a more recent package.
1223
1233
1224 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1234 2007-04-02 Fernando Perez <Fernando.Perez@colorado.edu>
1225
1235
1226 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1236 * IPython/iplib.py (_prefilter): close #52, second part of a patch
1227 set by Stefan (only the first part had been applied before).
1237 set by Stefan (only the first part had been applied before).
1228
1238
1229 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1239 * IPython/Extensions/ipy_stock_completers.py (module_completer):
1230 remove usage of the dangerous pkgutil.walk_packages(). See
1240 remove usage of the dangerous pkgutil.walk_packages(). See
1231 details in comments left in the code.
1241 details in comments left in the code.
1232
1242
1233 * IPython/Magic.py (magic_whos): add support for numpy arrays
1243 * IPython/Magic.py (magic_whos): add support for numpy arrays
1234 similar to what we had for Numeric.
1244 similar to what we had for Numeric.
1235
1245
1236 * IPython/completer.py (IPCompleter.complete): extend the
1246 * IPython/completer.py (IPCompleter.complete): extend the
1237 complete() call API to support completions by other mechanisms
1247 complete() call API to support completions by other mechanisms
1238 than readline. Closes #109.
1248 than readline. Closes #109.
1239
1249
1240 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1250 * IPython/iplib.py (safe_execfile): add a safeguard under Win32 to
1241 protect against a bug in Python's execfile(). Closes #123.
1251 protect against a bug in Python's execfile(). Closes #123.
1242
1252
1243 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1253 2007-04-01 Fernando Perez <Fernando.Perez@colorado.edu>
1244
1254
1245 * IPython/iplib.py (split_user_input): ensure that when splitting
1255 * IPython/iplib.py (split_user_input): ensure that when splitting
1246 user input, the part that can be treated as a python name is pure
1256 user input, the part that can be treated as a python name is pure
1247 ascii (Python identifiers MUST be pure ascii). Part of the
1257 ascii (Python identifiers MUST be pure ascii). Part of the
1248 ongoing Unicode support work.
1258 ongoing Unicode support work.
1249
1259
1250 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1260 * IPython/Prompts.py (prompt_specials_color): Add \N for the
1251 actual prompt number, without any coloring. This allows users to
1261 actual prompt number, without any coloring. This allows users to
1252 produce numbered prompts with their own colors. Added after a
1262 produce numbered prompts with their own colors. Added after a
1253 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1263 report/request by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
1254
1264
1255 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1265 2007-03-31 Walter Doerwald <walter@livinglogic.de>
1256
1266
1257 * IPython/Extensions/igrid.py: Map the return key
1267 * IPython/Extensions/igrid.py: Map the return key
1258 to enter() and shift-return to enterattr().
1268 to enter() and shift-return to enterattr().
1259
1269
1260 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1270 2007-03-30 Fernando Perez <Fernando.Perez@colorado.edu>
1261
1271
1262 * IPython/Magic.py (magic_psearch): add unicode support by
1272 * IPython/Magic.py (magic_psearch): add unicode support by
1263 encoding to ascii the input, since this routine also only deals
1273 encoding to ascii the input, since this routine also only deals
1264 with valid Python names. Fixes a bug reported by Stefan.
1274 with valid Python names. Fixes a bug reported by Stefan.
1265
1275
1266 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1276 2007-03-29 Fernando Perez <Fernando.Perez@colorado.edu>
1267
1277
1268 * IPython/Magic.py (_inspect): convert unicode input into ascii
1278 * IPython/Magic.py (_inspect): convert unicode input into ascii
1269 before trying to evaluate it as a Python identifier. This fixes a
1279 before trying to evaluate it as a Python identifier. This fixes a
1270 problem that the new unicode support had introduced when analyzing
1280 problem that the new unicode support had introduced when analyzing
1271 long definition lines for functions.
1281 long definition lines for functions.
1272
1282
1273 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1283 2007-03-24 Walter Doerwald <walter@livinglogic.de>
1274
1284
1275 * IPython/Extensions/igrid.py: Fix picking. Using
1285 * IPython/Extensions/igrid.py: Fix picking. Using
1276 igrid with wxPython 2.6 and -wthread should work now.
1286 igrid with wxPython 2.6 and -wthread should work now.
1277 igrid.display() simply tries to create a frame without
1287 igrid.display() simply tries to create a frame without
1278 an application. Only if this fails an application is created.
1288 an application. Only if this fails an application is created.
1279
1289
1280 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1290 2007-03-23 Walter Doerwald <walter@livinglogic.de>
1281
1291
1282 * IPython/Extensions/path.py: Updated to version 2.2.
1292 * IPython/Extensions/path.py: Updated to version 2.2.
1283
1293
1284 2007-03-23 Ville Vainio <vivainio@gmail.com>
1294 2007-03-23 Ville Vainio <vivainio@gmail.com>
1285
1295
1286 * iplib.py: recursive alias expansion now works better, so that
1296 * iplib.py: recursive alias expansion now works better, so that
1287 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1297 cases like 'top' -> 'd:/cygwin/top' -> 'ls :/cygwin/top'
1288 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1298 doesn't trip up the process, if 'd' has been aliased to 'ls'.
1289
1299
1290 * Extensions/ipy_gnuglobal.py added, provides %global magic
1300 * Extensions/ipy_gnuglobal.py added, provides %global magic
1291 for users of http://www.gnu.org/software/global
1301 for users of http://www.gnu.org/software/global
1292
1302
1293 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1303 * iplib.py: '!command /?' now doesn't invoke IPython's help system.
1294 Closes #52. Patch by Stefan van der Walt.
1304 Closes #52. Patch by Stefan van der Walt.
1295
1305
1296 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1306 2007-03-23 Fernando Perez <Fernando.Perez@colorado.edu>
1297
1307
1298 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1308 * IPython/FakeModule.py (FakeModule.__init__): Small fix to
1299 respect the __file__ attribute when using %run. Thanks to a bug
1309 respect the __file__ attribute when using %run. Thanks to a bug
1300 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1310 report by Sebastian Rooks <sebastian.rooks-AT-free.fr>.
1301
1311
1302 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1312 2007-03-22 Fernando Perez <Fernando.Perez@colorado.edu>
1303
1313
1304 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1314 * IPython/iplib.py (raw_input): Fix mishandling of unicode at
1305 input. Patch sent by Stefan.
1315 input. Patch sent by Stefan.
1306
1316
1307 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1317 2007-03-20 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1308 * IPython/Extensions/ipy_stock_completer.py
1318 * IPython/Extensions/ipy_stock_completer.py
1309 shlex_split, fix bug in shlex_split. len function
1319 shlex_split, fix bug in shlex_split. len function
1310 call was missing an if statement. Caused shlex_split to
1320 call was missing an if statement. Caused shlex_split to
1311 sometimes return "" as last element.
1321 sometimes return "" as last element.
1312
1322
1313 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1323 2007-03-18 Fernando Perez <Fernando.Perez@colorado.edu>
1314
1324
1315 * IPython/completer.py
1325 * IPython/completer.py
1316 (IPCompleter.file_matches.single_dir_expand): fix a problem
1326 (IPCompleter.file_matches.single_dir_expand): fix a problem
1317 reported by Stefan, where directories containign a single subdir
1327 reported by Stefan, where directories containign a single subdir
1318 would be completed too early.
1328 would be completed too early.
1319
1329
1320 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1330 * IPython/Shell.py (_load_pylab): Make the execution of 'from
1321 pylab import *' when -pylab is given be optional. A new flag,
1331 pylab import *' when -pylab is given be optional. A new flag,
1322 pylab_import_all controls this behavior, the default is True for
1332 pylab_import_all controls this behavior, the default is True for
1323 backwards compatibility.
1333 backwards compatibility.
1324
1334
1325 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1335 * IPython/ultraTB.py (_formatTracebackLines): Added (slightly
1326 modified) R. Bernstein's patch for fully syntax highlighted
1336 modified) R. Bernstein's patch for fully syntax highlighted
1327 tracebacks. The functionality is also available under ultraTB for
1337 tracebacks. The functionality is also available under ultraTB for
1328 non-ipython users (someone using ultraTB but outside an ipython
1338 non-ipython users (someone using ultraTB but outside an ipython
1329 session). They can select the color scheme by setting the
1339 session). They can select the color scheme by setting the
1330 module-level global DEFAULT_SCHEME. The highlight functionality
1340 module-level global DEFAULT_SCHEME. The highlight functionality
1331 also works when debugging.
1341 also works when debugging.
1332
1342
1333 * IPython/genutils.py (IOStream.close): small patch by
1343 * IPython/genutils.py (IOStream.close): small patch by
1334 R. Bernstein for improved pydb support.
1344 R. Bernstein for improved pydb support.
1335
1345
1336 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1346 * IPython/Debugger.py (Pdb.format_stack_entry): Added patch by
1337 DaveS <davls@telus.net> to improve support of debugging under
1347 DaveS <davls@telus.net> to improve support of debugging under
1338 NTEmacs, including improved pydb behavior.
1348 NTEmacs, including improved pydb behavior.
1339
1349
1340 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1350 * IPython/Magic.py (magic_prun): Fix saving of profile info for
1341 Python 2.5, where the stats object API changed a little. Thanks
1351 Python 2.5, where the stats object API changed a little. Thanks
1342 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1352 to a bug report by Paul Smith <paul.smith-AT-catugmt.com>.
1343
1353
1344 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1354 * IPython/ColorANSI.py (InputTermColors.Normal): applied Nicolas
1345 Pernetty's patch to improve support for (X)Emacs under Win32.
1355 Pernetty's patch to improve support for (X)Emacs under Win32.
1346
1356
1347 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1357 2007-03-17 Fernando Perez <Fernando.Perez@colorado.edu>
1348
1358
1349 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1359 * IPython/Shell.py (hijack_wx): ipmort WX with current semantics
1350 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1360 to quiet a deprecation warning that fires with Wx 2.8. Thanks to
1351 a report by Nik Tautenhahn.
1361 a report by Nik Tautenhahn.
1352
1362
1353 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1363 2007-03-16 Walter Doerwald <walter@livinglogic.de>
1354
1364
1355 * setup.py: Add the igrid help files to the list of data files
1365 * setup.py: Add the igrid help files to the list of data files
1356 to be installed alongside igrid.
1366 to be installed alongside igrid.
1357 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1367 * IPython/Extensions/igrid.py: (Patch by Nik Tautenhahn)
1358 Show the input object of the igrid browser as the window tile.
1368 Show the input object of the igrid browser as the window tile.
1359 Show the object the cursor is on in the statusbar.
1369 Show the object the cursor is on in the statusbar.
1360
1370
1361 2007-03-15 Ville Vainio <vivainio@gmail.com>
1371 2007-03-15 Ville Vainio <vivainio@gmail.com>
1362
1372
1363 * Extensions/ipy_stock_completers.py: Fixed exception
1373 * Extensions/ipy_stock_completers.py: Fixed exception
1364 on mismatching quotes in %run completer. Patch by
1374 on mismatching quotes in %run completer. Patch by
1365 Jorgen Stenarson. Closes #127.
1375 Jorgen Stenarson. Closes #127.
1366
1376
1367 2007-03-14 Ville Vainio <vivainio@gmail.com>
1377 2007-03-14 Ville Vainio <vivainio@gmail.com>
1368
1378
1369 * Extensions/ext_rehashdir.py: Do not do auto_alias
1379 * Extensions/ext_rehashdir.py: Do not do auto_alias
1370 in %rehashdir, it clobbers %store'd aliases.
1380 in %rehashdir, it clobbers %store'd aliases.
1371
1381
1372 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1382 * UserConfig/ipy_profile_sh.py: envpersist.py extension
1373 (beefed up %env) imported for sh profile.
1383 (beefed up %env) imported for sh profile.
1374
1384
1375 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1385 2007-03-10 Walter Doerwald <walter@livinglogic.de>
1376
1386
1377 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1387 * IPython/Extensions/ipipe.py: Prefer ibrowse over igrid
1378 as the default browser.
1388 as the default browser.
1379 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1389 * IPython/Extensions/igrid.py: Make a few igrid attributes private.
1380 As igrid displays all attributes it ever encounters, fetch() (which has
1390 As igrid displays all attributes it ever encounters, fetch() (which has
1381 been renamed to _fetch()) doesn't have to recalculate the display attributes
1391 been renamed to _fetch()) doesn't have to recalculate the display attributes
1382 every time a new item is fetched. This should speed up scrolling.
1392 every time a new item is fetched. This should speed up scrolling.
1383
1393
1384 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1394 2007-03-10 Fernando Perez <Fernando.Perez@colorado.edu>
1385
1395
1386 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1396 * IPython/iplib.py (InteractiveShell.__init__): fix for Alex
1387 Schmolck's recently reported tab-completion bug (my previous one
1397 Schmolck's recently reported tab-completion bug (my previous one
1388 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1398 had a problem). Patch by Dan Milstein <danmil-AT-comcast.net>.
1389
1399
1390 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1400 2007-03-09 Walter Doerwald <walter@livinglogic.de>
1391
1401
1392 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1402 * IPython/Extensions/igrid.py: Patch by Nik Tautenhahn:
1393 Close help window if exiting igrid.
1403 Close help window if exiting igrid.
1394
1404
1395 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1405 2007-03-02 Jorgen Stenarson <jorgen.stenarson@bostream.nu>
1396
1406
1397 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1407 * IPython/Extensions/ipy_defaults.py: Check if readline is available
1398 before calling functions from readline.
1408 before calling functions from readline.
1399
1409
1400 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1410 2007-03-02 Walter Doerwald <walter@livinglogic.de>
1401
1411
1402 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1412 * IPython/Extensions/igrid.py: Add Nik Tautenhahns igrid extension.
1403 igrid is a wxPython-based display object for ipipe. If your system has
1413 igrid is a wxPython-based display object for ipipe. If your system has
1404 wx installed igrid will be the default display. Without wx ipipe falls
1414 wx installed igrid will be the default display. Without wx ipipe falls
1405 back to ibrowse (which needs curses). If no curses is installed ipipe
1415 back to ibrowse (which needs curses). If no curses is installed ipipe
1406 falls back to idump.
1416 falls back to idump.
1407
1417
1408 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1418 2007-03-01 Fernando Perez <Fernando.Perez@colorado.edu>
1409
1419
1410 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1420 * IPython/iplib.py (split_user_inputBROKEN): temporarily disable
1411 my changes from yesterday, they introduced bugs. Will reactivate
1421 my changes from yesterday, they introduced bugs. Will reactivate
1412 once I get a correct solution, which will be much easier thanks to
1422 once I get a correct solution, which will be much easier thanks to
1413 Dan Milstein's new prefilter test suite.
1423 Dan Milstein's new prefilter test suite.
1414
1424
1415 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1425 2007-02-28 Fernando Perez <Fernando.Perez@colorado.edu>
1416
1426
1417 * IPython/iplib.py (split_user_input): fix input splitting so we
1427 * IPython/iplib.py (split_user_input): fix input splitting so we
1418 don't attempt attribute accesses on things that can't possibly be
1428 don't attempt attribute accesses on things that can't possibly be
1419 valid Python attributes. After a bug report by Alex Schmolck.
1429 valid Python attributes. After a bug report by Alex Schmolck.
1420 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1430 (InteractiveShell.__init__): brown-paper bag fix; regexp broke
1421 %magic with explicit % prefix.
1431 %magic with explicit % prefix.
1422
1432
1423 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1433 2007-02-27 Fernando Perez <Fernando.Perez@colorado.edu>
1424
1434
1425 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1435 * IPython/Shell.py (IPShellGTK.mainloop): update threads calls to
1426 avoid a DeprecationWarning from GTK.
1436 avoid a DeprecationWarning from GTK.
1427
1437
1428 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1438 2007-02-22 Fernando Perez <Fernando.Perez@colorado.edu>
1429
1439
1430 * IPython/genutils.py (clock): I modified clock() to return total
1440 * IPython/genutils.py (clock): I modified clock() to return total
1431 time, user+system. This is a more commonly needed metric. I also
1441 time, user+system. This is a more commonly needed metric. I also
1432 introduced the new clocku/clocks to get only user/system time if
1442 introduced the new clocku/clocks to get only user/system time if
1433 one wants those instead.
1443 one wants those instead.
1434
1444
1435 ***WARNING: API CHANGE*** clock() used to return only user time,
1445 ***WARNING: API CHANGE*** clock() used to return only user time,
1436 so if you want exactly the same results as before, use clocku
1446 so if you want exactly the same results as before, use clocku
1437 instead.
1447 instead.
1438
1448
1439 2007-02-22 Ville Vainio <vivainio@gmail.com>
1449 2007-02-22 Ville Vainio <vivainio@gmail.com>
1440
1450
1441 * IPython/Extensions/ipy_p4.py: Extension for improved
1451 * IPython/Extensions/ipy_p4.py: Extension for improved
1442 p4 (perforce version control system) experience.
1452 p4 (perforce version control system) experience.
1443 Adds %p4 magic with p4 command completion and
1453 Adds %p4 magic with p4 command completion and
1444 automatic -G argument (marshall output as python dict)
1454 automatic -G argument (marshall output as python dict)
1445
1455
1446 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1456 2007-02-19 Fernando Perez <Fernando.Perez@colorado.edu>
1447
1457
1448 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1458 * IPython/demo.py (Demo.re_stop): make dashes optional in demo
1449 stop marks.
1459 stop marks.
1450 (ClearingMixin): a simple mixin to easily make a Demo class clear
1460 (ClearingMixin): a simple mixin to easily make a Demo class clear
1451 the screen in between blocks and have empty marquees. The
1461 the screen in between blocks and have empty marquees. The
1452 ClearDemo and ClearIPDemo classes that use it are included.
1462 ClearDemo and ClearIPDemo classes that use it are included.
1453
1463
1454 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1464 2007-02-18 Fernando Perez <Fernando.Perez@colorado.edu>
1455
1465
1456 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1466 * IPython/irunner.py (pexpect_monkeypatch): patch pexpect to
1457 protect against exceptions at Python shutdown time. Patch
1467 protect against exceptions at Python shutdown time. Patch
1458 sumbmitted to upstream.
1468 sumbmitted to upstream.
1459
1469
1460 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1470 2007-02-14 Walter Doerwald <walter@livinglogic.de>
1461
1471
1462 * IPython/Extensions/ibrowse.py: If entering the first object level
1472 * IPython/Extensions/ibrowse.py: If entering the first object level
1463 (i.e. the object for which the browser has been started) fails,
1473 (i.e. the object for which the browser has been started) fails,
1464 now the error is raised directly (aborting the browser) instead of
1474 now the error is raised directly (aborting the browser) instead of
1465 running into an empty levels list later.
1475 running into an empty levels list later.
1466
1476
1467 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1477 2007-02-03 Walter Doerwald <walter@livinglogic.de>
1468
1478
1469 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1479 * IPython/Extensions/ipipe.py: Add an xrepr implementation
1470 for the noitem object.
1480 for the noitem object.
1471
1481
1472 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1482 2007-01-31 Fernando Perez <Fernando.Perez@colorado.edu>
1473
1483
1474 * IPython/completer.py (Completer.attr_matches): Fix small
1484 * IPython/completer.py (Completer.attr_matches): Fix small
1475 tab-completion bug with Enthought Traits objects with units.
1485 tab-completion bug with Enthought Traits objects with units.
1476 Thanks to a bug report by Tom Denniston
1486 Thanks to a bug report by Tom Denniston
1477 <tom.denniston-AT-alum.dartmouth.org>.
1487 <tom.denniston-AT-alum.dartmouth.org>.
1478
1488
1479 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1489 2007-01-27 Fernando Perez <Fernando.Perez@colorado.edu>
1480
1490
1481 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1491 * IPython/Extensions/ipy_stock_completers.py (runlistpy): fix a
1482 bug where only .ipy or .py would be completed. Once the first
1492 bug where only .ipy or .py would be completed. Once the first
1483 argument to %run has been given, all completions are valid because
1493 argument to %run has been given, all completions are valid because
1484 they are the arguments to the script, which may well be non-python
1494 they are the arguments to the script, which may well be non-python
1485 filenames.
1495 filenames.
1486
1496
1487 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1497 * IPython/irunner.py (InteractiveRunner.run_source): major updates
1488 to irunner to allow it to correctly support real doctesting of
1498 to irunner to allow it to correctly support real doctesting of
1489 out-of-process ipython code.
1499 out-of-process ipython code.
1490
1500
1491 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1501 * IPython/Magic.py (magic_cd): Make the setting of the terminal
1492 title an option (-noterm_title) because it completely breaks
1502 title an option (-noterm_title) because it completely breaks
1493 doctesting.
1503 doctesting.
1494
1504
1495 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1505 * IPython/demo.py: fix IPythonDemo class that was not actually working.
1496
1506
1497 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1507 2007-01-24 Fernando Perez <Fernando.Perez@colorado.edu>
1498
1508
1499 * IPython/irunner.py (main): fix small bug where extensions were
1509 * IPython/irunner.py (main): fix small bug where extensions were
1500 not being correctly recognized.
1510 not being correctly recognized.
1501
1511
1502 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1512 2007-01-23 Walter Doerwald <walter@livinglogic.de>
1503
1513
1504 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1514 * IPython/Extensions/ipipe.py (xiter): Make sure that iterating
1505 a string containing a single line yields the string itself as the
1515 a string containing a single line yields the string itself as the
1506 only item.
1516 only item.
1507
1517
1508 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1518 * IPython/Extensions/ibrowse.py (ibrowse): Avoid entering an
1509 object if it's the same as the one on the last level (This avoids
1519 object if it's the same as the one on the last level (This avoids
1510 infinite recursion for one line strings).
1520 infinite recursion for one line strings).
1511
1521
1512 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1522 2007-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
1513
1523
1514 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1524 * IPython/ultraTB.py (AutoFormattedTB.__call__): properly flush
1515 all output streams before printing tracebacks. This ensures that
1525 all output streams before printing tracebacks. This ensures that
1516 user output doesn't end up interleaved with traceback output.
1526 user output doesn't end up interleaved with traceback output.
1517
1527
1518 2007-01-10 Ville Vainio <vivainio@gmail.com>
1528 2007-01-10 Ville Vainio <vivainio@gmail.com>
1519
1529
1520 * Extensions/envpersist.py: Turbocharged %env that remembers
1530 * Extensions/envpersist.py: Turbocharged %env that remembers
1521 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1531 env vars across sessions; e.g. "%env PATH+=;/opt/scripts" or
1522 "%env VISUAL=jed".
1532 "%env VISUAL=jed".
1523
1533
1524 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1534 2007-01-05 Fernando Perez <Fernando.Perez@colorado.edu>
1525
1535
1526 * IPython/iplib.py (showtraceback): ensure that we correctly call
1536 * IPython/iplib.py (showtraceback): ensure that we correctly call
1527 custom handlers in all cases (some with pdb were slipping through,
1537 custom handlers in all cases (some with pdb were slipping through,
1528 but I'm not exactly sure why).
1538 but I'm not exactly sure why).
1529
1539
1530 * IPython/Debugger.py (Tracer.__init__): added new class to
1540 * IPython/Debugger.py (Tracer.__init__): added new class to
1531 support set_trace-like usage of IPython's enhanced debugger.
1541 support set_trace-like usage of IPython's enhanced debugger.
1532
1542
1533 2006-12-24 Ville Vainio <vivainio@gmail.com>
1543 2006-12-24 Ville Vainio <vivainio@gmail.com>
1534
1544
1535 * ipmaker.py: more informative message when ipy_user_conf
1545 * ipmaker.py: more informative message when ipy_user_conf
1536 import fails (suggest running %upgrade).
1546 import fails (suggest running %upgrade).
1537
1547
1538 * tools/run_ipy_in_profiler.py: Utility to see where
1548 * tools/run_ipy_in_profiler.py: Utility to see where
1539 the time during IPython startup is spent.
1549 the time during IPython startup is spent.
1540
1550
1541 2006-12-20 Ville Vainio <vivainio@gmail.com>
1551 2006-12-20 Ville Vainio <vivainio@gmail.com>
1542
1552
1543 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1553 * 0.7.3 is out - merge all from 0.7.3 branch to trunk
1544
1554
1545 * ipapi.py: Add new ipapi method, expand_alias.
1555 * ipapi.py: Add new ipapi method, expand_alias.
1546
1556
1547 * Release.py: Bump up version to 0.7.4.svn
1557 * Release.py: Bump up version to 0.7.4.svn
1548
1558
1549 2006-12-17 Ville Vainio <vivainio@gmail.com>
1559 2006-12-17 Ville Vainio <vivainio@gmail.com>
1550
1560
1551 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1561 * Extensions/jobctrl.py: Fixed &cmd arg arg...
1552 to work properly on posix too
1562 to work properly on posix too
1553
1563
1554 * Release.py: Update revnum (version is still just 0.7.3).
1564 * Release.py: Update revnum (version is still just 0.7.3).
1555
1565
1556 2006-12-15 Ville Vainio <vivainio@gmail.com>
1566 2006-12-15 Ville Vainio <vivainio@gmail.com>
1557
1567
1558 * scripts/ipython_win_post_install: create ipython.py in
1568 * scripts/ipython_win_post_install: create ipython.py in
1559 prefix + "/scripts".
1569 prefix + "/scripts".
1560
1570
1561 * Release.py: Update version to 0.7.3.
1571 * Release.py: Update version to 0.7.3.
1562
1572
1563 2006-12-14 Ville Vainio <vivainio@gmail.com>
1573 2006-12-14 Ville Vainio <vivainio@gmail.com>
1564
1574
1565 * scripts/ipython_win_post_install: Overwrite old shortcuts
1575 * scripts/ipython_win_post_install: Overwrite old shortcuts
1566 if they already exist
1576 if they already exist
1567
1577
1568 * Release.py: release 0.7.3rc2
1578 * Release.py: release 0.7.3rc2
1569
1579
1570 2006-12-13 Ville Vainio <vivainio@gmail.com>
1580 2006-12-13 Ville Vainio <vivainio@gmail.com>
1571
1581
1572 * Branch and update Release.py for 0.7.3rc1
1582 * Branch and update Release.py for 0.7.3rc1
1573
1583
1574 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1584 2006-12-13 Fernando Perez <Fernando.Perez@colorado.edu>
1575
1585
1576 * IPython/Shell.py (IPShellWX): update for current WX naming
1586 * IPython/Shell.py (IPShellWX): update for current WX naming
1577 conventions, to avoid a deprecation warning with current WX
1587 conventions, to avoid a deprecation warning with current WX
1578 versions. Thanks to a report by Danny Shevitz.
1588 versions. Thanks to a report by Danny Shevitz.
1579
1589
1580 2006-12-12 Ville Vainio <vivainio@gmail.com>
1590 2006-12-12 Ville Vainio <vivainio@gmail.com>
1581
1591
1582 * ipmaker.py: apply david cournapeau's patch to make
1592 * ipmaker.py: apply david cournapeau's patch to make
1583 import_some work properly even when ipythonrc does
1593 import_some work properly even when ipythonrc does
1584 import_some on empty list (it was an old bug!).
1594 import_some on empty list (it was an old bug!).
1585
1595
1586 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1596 * UserConfig/ipy_user_conf.py, UserConfig/ipythonrc:
1587 Add deprecation note to ipythonrc and a url to wiki
1597 Add deprecation note to ipythonrc and a url to wiki
1588 in ipy_user_conf.py
1598 in ipy_user_conf.py
1589
1599
1590
1600
1591 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1601 * Magic.py (%run): %run myscript.ipy now runs myscript.ipy
1592 as if it was typed on IPython command prompt, i.e.
1602 as if it was typed on IPython command prompt, i.e.
1593 as IPython script.
1603 as IPython script.
1594
1604
1595 * example-magic.py, magic_grepl.py: remove outdated examples
1605 * example-magic.py, magic_grepl.py: remove outdated examples
1596
1606
1597 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1607 2006-12-11 Fernando Perez <Fernando.Perez@colorado.edu>
1598
1608
1599 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1609 * IPython/iplib.py (debugger): prevent a nasty traceback if %debug
1600 is called before any exception has occurred.
1610 is called before any exception has occurred.
1601
1611
1602 2006-12-08 Ville Vainio <vivainio@gmail.com>
1612 2006-12-08 Ville Vainio <vivainio@gmail.com>
1603
1613
1604 * Extensions/ipy_stock_completers.py: fix cd completer
1614 * Extensions/ipy_stock_completers.py: fix cd completer
1605 to translate /'s to \'s again.
1615 to translate /'s to \'s again.
1606
1616
1607 * completer.py: prevent traceback on file completions w/
1617 * completer.py: prevent traceback on file completions w/
1608 backslash.
1618 backslash.
1609
1619
1610 * Release.py: Update release number to 0.7.3b3 for release
1620 * Release.py: Update release number to 0.7.3b3 for release
1611
1621
1612 2006-12-07 Ville Vainio <vivainio@gmail.com>
1622 2006-12-07 Ville Vainio <vivainio@gmail.com>
1613
1623
1614 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1624 * Extensions/ipy_signals.py: Ignore ctrl+C in IPython process
1615 while executing external code. Provides more shell-like behaviour
1625 while executing external code. Provides more shell-like behaviour
1616 and overall better response to ctrl + C / ctrl + break.
1626 and overall better response to ctrl + C / ctrl + break.
1617
1627
1618 * tools/make_tarball.py: new script to create tarball straight from svn
1628 * tools/make_tarball.py: new script to create tarball straight from svn
1619 (setup.py sdist doesn't work on win32).
1629 (setup.py sdist doesn't work on win32).
1620
1630
1621 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1631 * Extensions/ipy_stock_completers.py: fix cd completer to give up
1622 on dirnames with spaces and use the default completer instead.
1632 on dirnames with spaces and use the default completer instead.
1623
1633
1624 * Revision.py: Change version to 0.7.3b2 for release.
1634 * Revision.py: Change version to 0.7.3b2 for release.
1625
1635
1626 2006-12-05 Ville Vainio <vivainio@gmail.com>
1636 2006-12-05 Ville Vainio <vivainio@gmail.com>
1627
1637
1628 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1638 * Magic.py, iplib.py, completer.py: Apply R. Bernstein's
1629 pydb patch 4 (rm debug printing, py 2.5 checking)
1639 pydb patch 4 (rm debug printing, py 2.5 checking)
1630
1640
1631 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1641 2006-11-30 Walter Doerwald <walter@livinglogic.de>
1632 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1642 * IPython/Extensions/ibrowse.py: Add two new commands to ibrowse:
1633 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1643 "refresh" (mapped to "r") refreshes the screen by restarting the iterator.
1634 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1644 "refreshfind" (mapped to "R") does the same but tries to go back to the same
1635 object the cursor was on before the refresh. The command "markrange" is
1645 object the cursor was on before the refresh. The command "markrange" is
1636 mapped to "%" now.
1646 mapped to "%" now.
1637 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1647 * IPython/Extensions/ibrowse.py: Make igrpentry and ipwdentry comparable.
1638
1648
1639 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1649 2006-11-29 Fernando Perez <Fernando.Perez@colorado.edu>
1640
1650
1641 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1651 * IPython/Magic.py (magic_debug): new %debug magic to activate the
1642 interactive debugger on the last traceback, without having to call
1652 interactive debugger on the last traceback, without having to call
1643 %pdb and rerun your code. Made minor changes in various modules,
1653 %pdb and rerun your code. Made minor changes in various modules,
1644 should automatically recognize pydb if available.
1654 should automatically recognize pydb if available.
1645
1655
1646 2006-11-28 Ville Vainio <vivainio@gmail.com>
1656 2006-11-28 Ville Vainio <vivainio@gmail.com>
1647
1657
1648 * completer.py: If the text start with !, show file completions
1658 * completer.py: If the text start with !, show file completions
1649 properly. This helps when trying to complete command name
1659 properly. This helps when trying to complete command name
1650 for shell escapes.
1660 for shell escapes.
1651
1661
1652 2006-11-27 Ville Vainio <vivainio@gmail.com>
1662 2006-11-27 Ville Vainio <vivainio@gmail.com>
1653
1663
1654 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1664 * ipy_stock_completers.py: bzr completer submitted by Stefan van
1655 der Walt. Clean up svn and hg completers by using a common
1665 der Walt. Clean up svn and hg completers by using a common
1656 vcs_completer.
1666 vcs_completer.
1657
1667
1658 2006-11-26 Ville Vainio <vivainio@gmail.com>
1668 2006-11-26 Ville Vainio <vivainio@gmail.com>
1659
1669
1660 * Remove ipconfig and %config; you should use _ip.options structure
1670 * Remove ipconfig and %config; you should use _ip.options structure
1661 directly instead!
1671 directly instead!
1662
1672
1663 * genutils.py: add wrap_deprecated function for deprecating callables
1673 * genutils.py: add wrap_deprecated function for deprecating callables
1664
1674
1665 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1675 * iplib.py: deprecate ipmagic, ipsystem, ipalias. Use _ip.magic and
1666 _ip.system instead. ipalias is redundant.
1676 _ip.system instead. ipalias is redundant.
1667
1677
1668 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1678 * Magic.py: %rehashdir no longer aliases 'cmdname' to 'cmdname.exe' on
1669 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1679 win32, but just 'cmdname'. Other extensions (non-'exe') are still made
1670 explicit.
1680 explicit.
1671
1681
1672 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1682 * ipy_stock_completers.py: 'hg' (mercurial VCS) now has a custom
1673 completer. Try it by entering 'hg ' and pressing tab.
1683 completer. Try it by entering 'hg ' and pressing tab.
1674
1684
1675 * macro.py: Give Macro a useful __repr__ method
1685 * macro.py: Give Macro a useful __repr__ method
1676
1686
1677 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1687 * Magic.py: %whos abbreviates the typename of Macro for brevity.
1678
1688
1679 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1689 2006-11-24 Walter Doerwald <walter@livinglogic.de>
1680 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1690 * IPython/Extensions/astyle.py: Do a relative import of ipipe, so that
1681 we don't get a duplicate ipipe module, where registration of the xrepr
1691 we don't get a duplicate ipipe module, where registration of the xrepr
1682 implementation for Text is useless.
1692 implementation for Text is useless.
1683
1693
1684 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1694 * IPython/Extensions/ipipe.py: Fix __xrepr__() implementation for ils.
1685
1695
1686 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1696 * IPython/Extensions/ibrowse.py: Fix keymapping for the enter command.
1687
1697
1688 2006-11-24 Ville Vainio <vivainio@gmail.com>
1698 2006-11-24 Ville Vainio <vivainio@gmail.com>
1689
1699
1690 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1700 * Magic.py, manual_base.lyx: Kirill Smelkov patch:
1691 try to use "cProfile" instead of the slower pure python
1701 try to use "cProfile" instead of the slower pure python
1692 "profile"
1702 "profile"
1693
1703
1694 2006-11-23 Ville Vainio <vivainio@gmail.com>
1704 2006-11-23 Ville Vainio <vivainio@gmail.com>
1695
1705
1696 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1706 * manual_base.lyx: Kirill Smelkov patch: Fix wrong
1697 Qt+IPython+Designer link in documentation.
1707 Qt+IPython+Designer link in documentation.
1698
1708
1699 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1709 * Extensions/ipy_pydb.py: R. Bernstein's patch for passing
1700 correct Pdb object to %pydb.
1710 correct Pdb object to %pydb.
1701
1711
1702
1712
1703 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1713 2006-11-22 Walter Doerwald <walter@livinglogic.de>
1704 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1714 * IPython/Extensions/astyle.py: Text needs it's own implemenation of the
1705 generic xrepr(), otherwise the list implementation would kick in.
1715 generic xrepr(), otherwise the list implementation would kick in.
1706
1716
1707 2006-11-21 Ville Vainio <vivainio@gmail.com>
1717 2006-11-21 Ville Vainio <vivainio@gmail.com>
1708
1718
1709 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1719 * upgrade_dir.py: Now actually overwrites a nonmodified user file
1710 with one from UserConfig.
1720 with one from UserConfig.
1711
1721
1712 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1722 * ipy_profile_sh.py: Add dummy "depth" to var_expand lambda,
1713 it was missing which broke the sh profile.
1723 it was missing which broke the sh profile.
1714
1724
1715 * completer.py: file completer now uses explicit '/' instead
1725 * completer.py: file completer now uses explicit '/' instead
1716 of os.path.join, expansion of 'foo' was broken on win32
1726 of os.path.join, expansion of 'foo' was broken on win32
1717 if there was one directory with name 'foobar'.
1727 if there was one directory with name 'foobar'.
1718
1728
1719 * A bunch of patches from Kirill Smelkov:
1729 * A bunch of patches from Kirill Smelkov:
1720
1730
1721 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1731 * [patch 9/9] doc: point bug-tracker URL to IPythons trac-tickets.
1722
1732
1723 * [patch 7/9] Implement %page -r (page in raw mode) -
1733 * [patch 7/9] Implement %page -r (page in raw mode) -
1724
1734
1725 * [patch 5/9] ScientificPython webpage has moved
1735 * [patch 5/9] ScientificPython webpage has moved
1726
1736
1727 * [patch 4/9] The manual mentions %ds, should be %dhist
1737 * [patch 4/9] The manual mentions %ds, should be %dhist
1728
1738
1729 * [patch 3/9] Kill old bits from %prun doc.
1739 * [patch 3/9] Kill old bits from %prun doc.
1730
1740
1731 * [patch 1/9] Fix typos here and there.
1741 * [patch 1/9] Fix typos here and there.
1732
1742
1733 2006-11-08 Ville Vainio <vivainio@gmail.com>
1743 2006-11-08 Ville Vainio <vivainio@gmail.com>
1734
1744
1735 * completer.py (attr_matches): catch all exceptions raised
1745 * completer.py (attr_matches): catch all exceptions raised
1736 by eval of expr with dots.
1746 by eval of expr with dots.
1737
1747
1738 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1748 2006-11-07 Fernando Perez <Fernando.Perez@colorado.edu>
1739
1749
1740 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1750 * IPython/iplib.py (runsource): Prepend an 'if 1:' to the user
1741 input if it starts with whitespace. This allows you to paste
1751 input if it starts with whitespace. This allows you to paste
1742 indented input from any editor without manually having to type in
1752 indented input from any editor without manually having to type in
1743 the 'if 1:', which is convenient when working interactively.
1753 the 'if 1:', which is convenient when working interactively.
1744 Slightly modifed version of a patch by Bo Peng
1754 Slightly modifed version of a patch by Bo Peng
1745 <bpeng-AT-rice.edu>.
1755 <bpeng-AT-rice.edu>.
1746
1756
1747 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1757 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1748
1758
1749 * IPython/irunner.py (main): modified irunner so it automatically
1759 * IPython/irunner.py (main): modified irunner so it automatically
1750 recognizes the right runner to use based on the extension (.py for
1760 recognizes the right runner to use based on the extension (.py for
1751 python, .ipy for ipython and .sage for sage).
1761 python, .ipy for ipython and .sage for sage).
1752
1762
1753 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1763 * IPython/iplib.py (InteractiveShell.ipconfig): new builtin, also
1754 visible in ipapi as ip.config(), to programatically control the
1764 visible in ipapi as ip.config(), to programatically control the
1755 internal rc object. There's an accompanying %config magic for
1765 internal rc object. There's an accompanying %config magic for
1756 interactive use, which has been enhanced to match the
1766 interactive use, which has been enhanced to match the
1757 funtionality in ipconfig.
1767 funtionality in ipconfig.
1758
1768
1759 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1769 * IPython/Magic.py (magic_system_verbose): Change %system_verbose
1760 so it's not just a toggle, it now takes an argument. Add support
1770 so it's not just a toggle, it now takes an argument. Add support
1761 for a customizable header when making system calls, as the new
1771 for a customizable header when making system calls, as the new
1762 system_header variable in the ipythonrc file.
1772 system_header variable in the ipythonrc file.
1763
1773
1764 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1774 2006-11-03 Walter Doerwald <walter@livinglogic.de>
1765
1775
1766 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1776 * IPython/Extensions/ipipe.py: xrepr(), xiter() and xattrs() are now
1767 generic functions (using Philip J. Eby's simplegeneric package).
1777 generic functions (using Philip J. Eby's simplegeneric package).
1768 This makes it possible to customize the display of third-party classes
1778 This makes it possible to customize the display of third-party classes
1769 without having to monkeypatch them. xiter() no longer supports a mode
1779 without having to monkeypatch them. xiter() no longer supports a mode
1770 argument and the XMode class has been removed. The same functionality can
1780 argument and the XMode class has been removed. The same functionality can
1771 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1781 be implemented via IterAttributeDescriptor and IterMethodDescriptor.
1772 One consequence of the switch to generic functions is that xrepr() and
1782 One consequence of the switch to generic functions is that xrepr() and
1773 xattrs() implementation must define the default value for the mode
1783 xattrs() implementation must define the default value for the mode
1774 argument themselves and xattrs() implementations must return real
1784 argument themselves and xattrs() implementations must return real
1775 descriptors.
1785 descriptors.
1776
1786
1777 * IPython/external: This new subpackage will contain all third-party
1787 * IPython/external: This new subpackage will contain all third-party
1778 packages that are bundled with IPython. (The first one is simplegeneric).
1788 packages that are bundled with IPython. (The first one is simplegeneric).
1779
1789
1780 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1790 * IPython/Extensions/ipipe.py (ifile/ils): Readd output of the parent
1781 directory which as been dropped in r1703.
1791 directory which as been dropped in r1703.
1782
1792
1783 * IPython/Extensions/ipipe.py (iless): Fixed.
1793 * IPython/Extensions/ipipe.py (iless): Fixed.
1784
1794
1785 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1795 * IPython/Extensions/ibrowse: Fixed sorting under Python 2.3.
1786
1796
1787 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1797 2006-11-03 Fernando Perez <Fernando.Perez@colorado.edu>
1788
1798
1789 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1799 * IPython/iplib.py (InteractiveShell.var_expand): fix stack
1790 handling in variable expansion so that shells and magics recognize
1800 handling in variable expansion so that shells and magics recognize
1791 function local scopes correctly. Bug reported by Brian.
1801 function local scopes correctly. Bug reported by Brian.
1792
1802
1793 * scripts/ipython: remove the very first entry in sys.path which
1803 * scripts/ipython: remove the very first entry in sys.path which
1794 Python auto-inserts for scripts, so that sys.path under IPython is
1804 Python auto-inserts for scripts, so that sys.path under IPython is
1795 as similar as possible to that under plain Python.
1805 as similar as possible to that under plain Python.
1796
1806
1797 * IPython/completer.py (IPCompleter.file_matches): Fix
1807 * IPython/completer.py (IPCompleter.file_matches): Fix
1798 tab-completion so that quotes are not closed unless the completion
1808 tab-completion so that quotes are not closed unless the completion
1799 is unambiguous. After a request by Stefan. Minor cleanups in
1809 is unambiguous. After a request by Stefan. Minor cleanups in
1800 ipy_stock_completers.
1810 ipy_stock_completers.
1801
1811
1802 2006-11-02 Ville Vainio <vivainio@gmail.com>
1812 2006-11-02 Ville Vainio <vivainio@gmail.com>
1803
1813
1804 * ipy_stock_completers.py: Add %run and %cd completers.
1814 * ipy_stock_completers.py: Add %run and %cd completers.
1805
1815
1806 * completer.py: Try running custom completer for both
1816 * completer.py: Try running custom completer for both
1807 "foo" and "%foo" if the command is just "foo". Ignore case
1817 "foo" and "%foo" if the command is just "foo". Ignore case
1808 when filtering possible completions.
1818 when filtering possible completions.
1809
1819
1810 * UserConfig/ipy_user_conf.py: install stock completers as default
1820 * UserConfig/ipy_user_conf.py: install stock completers as default
1811
1821
1812 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1822 * iplib.py (history_saving_wrapper), debugger(), ipy_pydb.py:
1813 simplified readline history save / restore through a wrapper
1823 simplified readline history save / restore through a wrapper
1814 function
1824 function
1815
1825
1816
1826
1817 2006-10-31 Ville Vainio <vivainio@gmail.com>
1827 2006-10-31 Ville Vainio <vivainio@gmail.com>
1818
1828
1819 * strdispatch.py, completer.py, ipy_stock_completers.py:
1829 * strdispatch.py, completer.py, ipy_stock_completers.py:
1820 Allow str_key ("command") in completer hooks. Implement
1830 Allow str_key ("command") in completer hooks. Implement
1821 trivial completer for 'import' (stdlib modules only). Rename
1831 trivial completer for 'import' (stdlib modules only). Rename
1822 ipy_linux_package_managers.py to ipy_stock_completers.py.
1832 ipy_linux_package_managers.py to ipy_stock_completers.py.
1823 SVN completer.
1833 SVN completer.
1824
1834
1825 * Extensions/ledit.py: %magic line editor for easily and
1835 * Extensions/ledit.py: %magic line editor for easily and
1826 incrementally manipulating lists of strings. The magic command
1836 incrementally manipulating lists of strings. The magic command
1827 name is %led.
1837 name is %led.
1828
1838
1829 2006-10-30 Ville Vainio <vivainio@gmail.com>
1839 2006-10-30 Ville Vainio <vivainio@gmail.com>
1830
1840
1831 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1841 * Debugger.py, iplib.py (debugger()): Add last set of Rocky
1832 Bernsteins's patches for pydb integration.
1842 Bernsteins's patches for pydb integration.
1833 http://bashdb.sourceforge.net/pydb/
1843 http://bashdb.sourceforge.net/pydb/
1834
1844
1835 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1845 * strdispatch.py, iplib.py, completer.py, IPython/__init__.py,
1836 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1846 Extensions/ipy_linux_package_managers.py, hooks.py: Implement
1837 custom completer hook to allow the users to implement their own
1847 custom completer hook to allow the users to implement their own
1838 completers. See ipy_linux_package_managers.py for example. The
1848 completers. See ipy_linux_package_managers.py for example. The
1839 hook name is 'complete_command'.
1849 hook name is 'complete_command'.
1840
1850
1841 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1851 2006-10-28 Fernando Perez <Fernando.Perez@colorado.edu>
1842
1852
1843 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1853 * IPython/UserConfig/ipythonrc-scipy: minor cleanups to remove old
1844 Numeric leftovers.
1854 Numeric leftovers.
1845
1855
1846 * ipython.el (py-execute-region): apply Stefan's patch to fix
1856 * ipython.el (py-execute-region): apply Stefan's patch to fix
1847 garbled results if the python shell hasn't been previously started.
1857 garbled results if the python shell hasn't been previously started.
1848
1858
1849 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1859 * IPython/genutils.py (arg_split): moved to genutils, since it's a
1850 pretty generic function and useful for other things.
1860 pretty generic function and useful for other things.
1851
1861
1852 * IPython/OInspect.py (getsource): Add customizable source
1862 * IPython/OInspect.py (getsource): Add customizable source
1853 extractor. After a request/patch form W. Stein (SAGE).
1863 extractor. After a request/patch form W. Stein (SAGE).
1854
1864
1855 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1865 * IPython/irunner.py (InteractiveRunner.run_source): reset tty
1856 window size to a more reasonable value from what pexpect does,
1866 window size to a more reasonable value from what pexpect does,
1857 since their choice causes wrapping bugs with long input lines.
1867 since their choice causes wrapping bugs with long input lines.
1858
1868
1859 2006-10-28 Ville Vainio <vivainio@gmail.com>
1869 2006-10-28 Ville Vainio <vivainio@gmail.com>
1860
1870
1861 * Magic.py (%run): Save and restore the readline history from
1871 * Magic.py (%run): Save and restore the readline history from
1862 file around %run commands to prevent side effects from
1872 file around %run commands to prevent side effects from
1863 %runned programs that might use readline (e.g. pydb).
1873 %runned programs that might use readline (e.g. pydb).
1864
1874
1865 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1875 * extensions/ipy_pydb.py: Adds %pydb magic when imported, for
1866 invoking the pydb enhanced debugger.
1876 invoking the pydb enhanced debugger.
1867
1877
1868 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1878 2006-10-23 Walter Doerwald <walter@livinglogic.de>
1869
1879
1870 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1880 * IPython/Extensions/ipipe.py (ifile): Remove all methods that
1871 call the base class method and propagate the return value to
1881 call the base class method and propagate the return value to
1872 ifile. This is now done by path itself.
1882 ifile. This is now done by path itself.
1873
1883
1874 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1884 2006-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
1875
1885
1876 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1886 * IPython/ipapi.py (IPApi.__init__): Added new entry to public
1877 api: set_crash_handler(), to expose the ability to change the
1887 api: set_crash_handler(), to expose the ability to change the
1878 internal crash handler.
1888 internal crash handler.
1879
1889
1880 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1890 * IPython/CrashHandler.py (CrashHandler.__init__): abstract out
1881 the various parameters of the crash handler so that apps using
1891 the various parameters of the crash handler so that apps using
1882 IPython as their engine can customize crash handling. Ipmlemented
1892 IPython as their engine can customize crash handling. Ipmlemented
1883 at the request of SAGE.
1893 at the request of SAGE.
1884
1894
1885 2006-10-14 Ville Vainio <vivainio@gmail.com>
1895 2006-10-14 Ville Vainio <vivainio@gmail.com>
1886
1896
1887 * Magic.py, ipython.el: applied first "safe" part of Rocky
1897 * Magic.py, ipython.el: applied first "safe" part of Rocky
1888 Bernstein's patch set for pydb integration.
1898 Bernstein's patch set for pydb integration.
1889
1899
1890 * Magic.py (%unalias, %alias): %store'd aliases can now be
1900 * Magic.py (%unalias, %alias): %store'd aliases can now be
1891 removed with '%unalias'. %alias w/o args now shows most
1901 removed with '%unalias'. %alias w/o args now shows most
1892 interesting (stored / manually defined) aliases last
1902 interesting (stored / manually defined) aliases last
1893 where they catch the eye w/o scrolling.
1903 where they catch the eye w/o scrolling.
1894
1904
1895 * Magic.py (%rehashx), ext_rehashdir.py: files with
1905 * Magic.py (%rehashx), ext_rehashdir.py: files with
1896 'py' extension are always considered executable, even
1906 'py' extension are always considered executable, even
1897 when not in PATHEXT environment variable.
1907 when not in PATHEXT environment variable.
1898
1908
1899 2006-10-12 Ville Vainio <vivainio@gmail.com>
1909 2006-10-12 Ville Vainio <vivainio@gmail.com>
1900
1910
1901 * jobctrl.py: Add new "jobctrl" extension for spawning background
1911 * jobctrl.py: Add new "jobctrl" extension for spawning background
1902 processes with "&find /". 'import jobctrl' to try it out. Requires
1912 processes with "&find /". 'import jobctrl' to try it out. Requires
1903 'subprocess' module, standard in python 2.4+.
1913 'subprocess' module, standard in python 2.4+.
1904
1914
1905 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1915 * iplib.py (expand_aliases, handle_alias): Aliases expand transitively,
1906 so if foo -> bar and bar -> baz, then foo -> baz.
1916 so if foo -> bar and bar -> baz, then foo -> baz.
1907
1917
1908 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1918 2006-10-09 Fernando Perez <Fernando.Perez@colorado.edu>
1909
1919
1910 * IPython/Magic.py (Magic.parse_options): add a new posix option
1920 * IPython/Magic.py (Magic.parse_options): add a new posix option
1911 to allow parsing of input args in magics that doesn't strip quotes
1921 to allow parsing of input args in magics that doesn't strip quotes
1912 (if posix=False). This also closes %timeit bug reported by
1922 (if posix=False). This also closes %timeit bug reported by
1913 Stefan.
1923 Stefan.
1914
1924
1915 2006-10-03 Ville Vainio <vivainio@gmail.com>
1925 2006-10-03 Ville Vainio <vivainio@gmail.com>
1916
1926
1917 * iplib.py (raw_input, interact): Return ValueError catching for
1927 * iplib.py (raw_input, interact): Return ValueError catching for
1918 raw_input. Fixes infinite loop for sys.stdin.close() or
1928 raw_input. Fixes infinite loop for sys.stdin.close() or
1919 sys.stdout.close().
1929 sys.stdout.close().
1920
1930
1921 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1931 2006-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
1922
1932
1923 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1933 * IPython/irunner.py (InteractiveRunner.run_source): small fixes
1924 to help in handling doctests. irunner is now pretty useful for
1934 to help in handling doctests. irunner is now pretty useful for
1925 running standalone scripts and simulate a full interactive session
1935 running standalone scripts and simulate a full interactive session
1926 in a format that can be then pasted as a doctest.
1936 in a format that can be then pasted as a doctest.
1927
1937
1928 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1938 * IPython/iplib.py (InteractiveShell.__init__): Install exit/quit
1929 on top of the default (useless) ones. This also fixes the nasty
1939 on top of the default (useless) ones. This also fixes the nasty
1930 way in which 2.5's Quitter() exits (reverted [1785]).
1940 way in which 2.5's Quitter() exits (reverted [1785]).
1931
1941
1932 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1942 * IPython/Debugger.py (Pdb.__init__): Fix ipdb to work with python
1933 2.5.
1943 2.5.
1934
1944
1935 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1945 * IPython/ultraTB.py (TBTools.set_colors): Make sure that ipdb
1936 color scheme is updated as well when color scheme is changed
1946 color scheme is updated as well when color scheme is changed
1937 interactively.
1947 interactively.
1938
1948
1939 2006-09-27 Ville Vainio <vivainio@gmail.com>
1949 2006-09-27 Ville Vainio <vivainio@gmail.com>
1940
1950
1941 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1951 * iplib.py (raw_input): python 2.5 closes stdin on quit -> avoid
1942 infinite loop and just exit. It's a hack, but will do for a while.
1952 infinite loop and just exit. It's a hack, but will do for a while.
1943
1953
1944 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1954 2006-08-25 Walter Doerwald <walter@livinglogic.de>
1945
1955
1946 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1956 * IPython/Extensions/ipipe.py (ils): Add arguments dirs and files to
1947 the constructor, this makes it possible to get a list of only directories
1957 the constructor, this makes it possible to get a list of only directories
1948 or only files.
1958 or only files.
1949
1959
1950 2006-08-12 Ville Vainio <vivainio@gmail.com>
1960 2006-08-12 Ville Vainio <vivainio@gmail.com>
1951
1961
1952 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1962 * Fakemodule.py, OInspect.py: Reverted 2006-08-11 mods,
1953 they broke unittest
1963 they broke unittest
1954
1964
1955 2006-08-11 Ville Vainio <vivainio@gmail.com>
1965 2006-08-11 Ville Vainio <vivainio@gmail.com>
1956
1966
1957 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1967 * Fakemodule.py, OInspect.py: remove 2006-08-09 monkepatch
1958 by resolving issue properly, i.e. by inheriting FakeModule
1968 by resolving issue properly, i.e. by inheriting FakeModule
1959 from types.ModuleType. Pickling ipython interactive data
1969 from types.ModuleType. Pickling ipython interactive data
1960 should still work as usual (testing appreciated).
1970 should still work as usual (testing appreciated).
1961
1971
1962 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1972 2006-08-09 Fernando Perez <Fernando.Perez@colorado.edu>
1963
1973
1964 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1974 * IPython/OInspect.py: monkeypatch inspect from the stdlib if
1965 running under python 2.3 with code from 2.4 to fix a bug with
1975 running under python 2.3 with code from 2.4 to fix a bug with
1966 help(). Reported by the Debian maintainers, Norbert Tretkowski
1976 help(). Reported by the Debian maintainers, Norbert Tretkowski
1967 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1977 <norbert-AT-tretkowski.de> and Alexandre Fayolle
1968 <afayolle-AT-debian.org>.
1978 <afayolle-AT-debian.org>.
1969
1979
1970 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1980 2006-08-04 Walter Doerwald <walter@livinglogic.de>
1971
1981
1972 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1982 * IPython/Extensions/ibrowse.py: Fixed the help message in the footer
1973 (which was displaying "quit" twice).
1983 (which was displaying "quit" twice).
1974
1984
1975 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1985 2006-07-28 Walter Doerwald <walter@livinglogic.de>
1976
1986
1977 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1987 * IPython/Extensions/ipipe.py: Fix isort.__iter__() (was still using
1978 the mode argument).
1988 the mode argument).
1979
1989
1980 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1990 2006-07-27 Walter Doerwald <walter@livinglogic.de>
1981
1991
1982 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1992 * IPython/Extensions/ipipe.py: Fix getglobals() if we're
1983 not running under IPython.
1993 not running under IPython.
1984
1994
1985 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1995 * IPython/Extensions/ipipe.py: Rename XAttr to AttributeDetail
1986 and make it iterable (iterating over the attribute itself). Add two new
1996 and make it iterable (iterating over the attribute itself). Add two new
1987 magic strings for __xattrs__(): If the string starts with "-", the attribute
1997 magic strings for __xattrs__(): If the string starts with "-", the attribute
1988 will not be displayed in ibrowse's detail view (but it can still be
1998 will not be displayed in ibrowse's detail view (but it can still be
1989 iterated over). This makes it possible to add attributes that are large
1999 iterated over). This makes it possible to add attributes that are large
1990 lists or generator methods to the detail view. Replace magic attribute names
2000 lists or generator methods to the detail view. Replace magic attribute names
1991 and _attrname() and _getattr() with "descriptors": For each type of magic
2001 and _attrname() and _getattr() with "descriptors": For each type of magic
1992 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
2002 attribute name there's a subclass of Descriptor: None -> SelfDescriptor();
1993 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
2003 "foo" -> AttributeDescriptor("foo"); "foo()" -> MethodDescriptor("foo");
1994 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
2004 "-foo" -> IterAttributeDescriptor("foo"); "-foo()" -> IterMethodDescriptor("foo");
1995 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
2005 foo() -> FunctionDescriptor(foo). Magic strings returned from __xattrs__()
1996 are still supported.
2006 are still supported.
1997
2007
1998 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
2008 * IPython/Extensions/ibrowse.py: If fetching the next row from the input
1999 fails in ibrowse.fetch(), the exception object is added as the last item
2009 fails in ibrowse.fetch(), the exception object is added as the last item
2000 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
2010 and item fetching is canceled. This prevents ibrowse from aborting if e.g.
2001 a generator throws an exception midway through execution.
2011 a generator throws an exception midway through execution.
2002
2012
2003 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
2013 * IPython/Extensions/ipipe.py: Turn ifile's properties mimetype and
2004 encoding into methods.
2014 encoding into methods.
2005
2015
2006 2006-07-26 Ville Vainio <vivainio@gmail.com>
2016 2006-07-26 Ville Vainio <vivainio@gmail.com>
2007
2017
2008 * iplib.py: history now stores multiline input as single
2018 * iplib.py: history now stores multiline input as single
2009 history entries. Patch by Jorgen Cederlof.
2019 history entries. Patch by Jorgen Cederlof.
2010
2020
2011 2006-07-18 Walter Doerwald <walter@livinglogic.de>
2021 2006-07-18 Walter Doerwald <walter@livinglogic.de>
2012
2022
2013 * IPython/Extensions/ibrowse.py: Make cursor visible over
2023 * IPython/Extensions/ibrowse.py: Make cursor visible over
2014 non existing attributes.
2024 non existing attributes.
2015
2025
2016 2006-07-14 Walter Doerwald <walter@livinglogic.de>
2026 2006-07-14 Walter Doerwald <walter@livinglogic.de>
2017
2027
2018 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2028 * IPython/Extensions/ipipe.py (ix): Use os.popen4() so that the
2019 error output of the running command doesn't mess up the screen.
2029 error output of the running command doesn't mess up the screen.
2020
2030
2021 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2031 2006-07-13 Walter Doerwald <walter@livinglogic.de>
2022
2032
2023 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2033 * IPython/Extensions/ipipe.py (isort): Make isort usable without
2024 argument. This sorts the items themselves.
2034 argument. This sorts the items themselves.
2025
2035
2026 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2036 2006-07-12 Walter Doerwald <walter@livinglogic.de>
2027
2037
2028 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2038 * IPython/Extensions/ipipe.py (eval, ifilter, isort, ieval):
2029 Compile expression strings into code objects. This should speed
2039 Compile expression strings into code objects. This should speed
2030 up ifilter and friends somewhat.
2040 up ifilter and friends somewhat.
2031
2041
2032 2006-07-08 Ville Vainio <vivainio@gmail.com>
2042 2006-07-08 Ville Vainio <vivainio@gmail.com>
2033
2043
2034 * Magic.py: %cpaste now strips > from the beginning of lines
2044 * Magic.py: %cpaste now strips > from the beginning of lines
2035 to ease pasting quoted code from emails. Contributed by
2045 to ease pasting quoted code from emails. Contributed by
2036 Stefan van der Walt.
2046 Stefan van der Walt.
2037
2047
2038 2006-06-29 Ville Vainio <vivainio@gmail.com>
2048 2006-06-29 Ville Vainio <vivainio@gmail.com>
2039
2049
2040 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2050 * ipmaker.py, Shell.py: qt4agg matplotlib backend support for pylab
2041 mode, patch contributed by Darren Dale. NEEDS TESTING!
2051 mode, patch contributed by Darren Dale. NEEDS TESTING!
2042
2052
2043 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2053 2006-06-28 Walter Doerwald <walter@livinglogic.de>
2044
2054
2045 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2055 * IPython/Extensions/ibrowse.py: Give the ibrowse cursor row
2046 a blue background. Fix fetching new display rows when the browser
2056 a blue background. Fix fetching new display rows when the browser
2047 scrolls more than a screenful (e.g. by using the goto command).
2057 scrolls more than a screenful (e.g. by using the goto command).
2048
2058
2049 2006-06-27 Ville Vainio <vivainio@gmail.com>
2059 2006-06-27 Ville Vainio <vivainio@gmail.com>
2050
2060
2051 * Magic.py (_inspect, _ofind) Apply David Huard's
2061 * Magic.py (_inspect, _ofind) Apply David Huard's
2052 patch for displaying the correct docstring for 'property'
2062 patch for displaying the correct docstring for 'property'
2053 attributes.
2063 attributes.
2054
2064
2055 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2065 2006-06-23 Walter Doerwald <walter@livinglogic.de>
2056
2066
2057 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2067 * IPython/Extensions/ibrowse.py: Put the documentation of the keyboard
2058 commands into the methods implementing them.
2068 commands into the methods implementing them.
2059
2069
2060 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2070 2006-06-22 Fernando Perez <Fernando.Perez@colorado.edu>
2061
2071
2062 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2072 * ipython.el (ipython-indentation-hook): cleanup patch, submitted
2063 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2073 by Kov Chai <tchaikov-AT-gmail.com>. He notes that the original
2064 autoindent support was authored by Jin Liu.
2074 autoindent support was authored by Jin Liu.
2065
2075
2066 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2076 2006-06-22 Walter Doerwald <walter@livinglogic.de>
2067
2077
2068 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2078 * IPython/Extensions/ibrowse.py: Replace the plain dictionaries used
2069 for keymaps with a custom class that simplifies handling.
2079 for keymaps with a custom class that simplifies handling.
2070
2080
2071 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2081 2006-06-19 Walter Doerwald <walter@livinglogic.de>
2072
2082
2073 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2083 * IPython/Extensions/ibrowse.py: ibrowse now properly handles terminal
2074 resizing. This requires Python 2.5 to work.
2084 resizing. This requires Python 2.5 to work.
2075
2085
2076 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2086 2006-06-16 Walter Doerwald <walter@livinglogic.de>
2077
2087
2078 * IPython/Extensions/ibrowse.py: Add two new commands to
2088 * IPython/Extensions/ibrowse.py: Add two new commands to
2079 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2089 ibrowse: "hideattr" (mapped to "h") hides the attribute under
2080 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2090 the cursor. "unhiderattrs" (mapped to "H") reveals all hidden
2081 attributes again. Remapped the help command to "?". Display
2091 attributes again. Remapped the help command to "?". Display
2082 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2092 keycodes in the range 0x01-0x1F as CTRL-xx. Add CTRL-a and CTRL-e
2083 as keys for the "home" and "end" commands. Add three new commands
2093 as keys for the "home" and "end" commands. Add three new commands
2084 to the input mode for "find" and friends: "delend" (CTRL-K)
2094 to the input mode for "find" and friends: "delend" (CTRL-K)
2085 deletes to the end of line. "incsearchup" searches upwards in the
2095 deletes to the end of line. "incsearchup" searches upwards in the
2086 command history for an input that starts with the text before the cursor.
2096 command history for an input that starts with the text before the cursor.
2087 "incsearchdown" does the same downwards. Removed a bogus mapping of
2097 "incsearchdown" does the same downwards. Removed a bogus mapping of
2088 the x key to "delete".
2098 the x key to "delete".
2089
2099
2090 2006-06-15 Ville Vainio <vivainio@gmail.com>
2100 2006-06-15 Ville Vainio <vivainio@gmail.com>
2091
2101
2092 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2102 * iplib.py, hooks.py: Added new generate_prompt hook that can be
2093 used to create prompts dynamically, instead of the "old" way of
2103 used to create prompts dynamically, instead of the "old" way of
2094 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2104 assigning "magic" strings to prompt_in1 and prompt_in2. The old
2095 way still works (it's invoked by the default hook), of course.
2105 way still works (it's invoked by the default hook), of course.
2096
2106
2097 * Prompts.py: added generate_output_prompt hook for altering output
2107 * Prompts.py: added generate_output_prompt hook for altering output
2098 prompt
2108 prompt
2099
2109
2100 * Release.py: Changed version string to 0.7.3.svn.
2110 * Release.py: Changed version string to 0.7.3.svn.
2101
2111
2102 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2112 2006-06-15 Walter Doerwald <walter@livinglogic.de>
2103
2113
2104 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2114 * IPython/Extensions/ibrowse.py: Change _BrowserLevel.moveto() so that
2105 the call to fetch() always tries to fetch enough data for at least one
2115 the call to fetch() always tries to fetch enough data for at least one
2106 full screen. This makes it possible to simply call moveto(0,0,True) in
2116 full screen. This makes it possible to simply call moveto(0,0,True) in
2107 the constructor. Fix typos and removed the obsolete goto attribute.
2117 the constructor. Fix typos and removed the obsolete goto attribute.
2108
2118
2109 2006-06-12 Ville Vainio <vivainio@gmail.com>
2119 2006-06-12 Ville Vainio <vivainio@gmail.com>
2110
2120
2111 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2121 * ipy_profile_sh.py: applied Krisha Mohan Gundu's patch for
2112 allowing $variable interpolation within multiline statements,
2122 allowing $variable interpolation within multiline statements,
2113 though so far only with "sh" profile for a testing period.
2123 though so far only with "sh" profile for a testing period.
2114 The patch also enables splitting long commands with \ but it
2124 The patch also enables splitting long commands with \ but it
2115 doesn't work properly yet.
2125 doesn't work properly yet.
2116
2126
2117 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2127 2006-06-12 Walter Doerwald <walter@livinglogic.de>
2118
2128
2119 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2129 * IPython/Extensions/ibrowse.py (_dodisplay): Display the length of the
2120 input history and the position of the cursor in the input history for
2130 input history and the position of the cursor in the input history for
2121 the find, findbackwards and goto command.
2131 the find, findbackwards and goto command.
2122
2132
2123 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2133 2006-06-10 Walter Doerwald <walter@livinglogic.de>
2124
2134
2125 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2135 * IPython/Extensions/ibrowse.py: Add a class _CommandInput that
2126 implements the basic functionality of browser commands that require
2136 implements the basic functionality of browser commands that require
2127 input. Reimplement the goto, find and findbackwards commands as
2137 input. Reimplement the goto, find and findbackwards commands as
2128 subclasses of _CommandInput. Add an input history and keymaps to those
2138 subclasses of _CommandInput. Add an input history and keymaps to those
2129 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2139 commands. Add "\r" as a keyboard shortcut for the enterdefault and
2130 execute commands.
2140 execute commands.
2131
2141
2132 2006-06-07 Ville Vainio <vivainio@gmail.com>
2142 2006-06-07 Ville Vainio <vivainio@gmail.com>
2133
2143
2134 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2144 * iplib.py: ipython mybatch.ipy exits ipython immediately after
2135 running the batch files instead of leaving the session open.
2145 running the batch files instead of leaving the session open.
2136
2146
2137 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2147 2006-06-07 Fernando Perez <Fernando.Perez@colorado.edu>
2138
2148
2139 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2149 * IPython/iplib.py (InteractiveShell.__init__): update BSD fix, as
2140 the original fix was incomplete. Patch submitted by W. Maier.
2150 the original fix was incomplete. Patch submitted by W. Maier.
2141
2151
2142 2006-06-07 Ville Vainio <vivainio@gmail.com>
2152 2006-06-07 Ville Vainio <vivainio@gmail.com>
2143
2153
2144 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2154 * iplib.py,Magic.py, ipmaker.py (magic_rehashx):
2145 Confirmation prompts can be supressed by 'quiet' option.
2155 Confirmation prompts can be supressed by 'quiet' option.
2146 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2156 _ip.options.quiet = 1 means "assume yes for all yes/no queries".
2147
2157
2148 2006-06-06 *** Released version 0.7.2
2158 2006-06-06 *** Released version 0.7.2
2149
2159
2150 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2160 2006-06-06 Fernando Perez <Fernando.Perez@colorado.edu>
2151
2161
2152 * IPython/Release.py (version): Made 0.7.2 final for release.
2162 * IPython/Release.py (version): Made 0.7.2 final for release.
2153 Repo tagged and release cut.
2163 Repo tagged and release cut.
2154
2164
2155 2006-06-05 Ville Vainio <vivainio@gmail.com>
2165 2006-06-05 Ville Vainio <vivainio@gmail.com>
2156
2166
2157 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2167 * Magic.py (magic_rehashx): Honor no_alias list earlier in
2158 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2168 %rehashx, to avoid clobbering builtins in ipy_profile_sh.py
2159
2169
2160 * upgrade_dir.py: try import 'path' module a bit harder
2170 * upgrade_dir.py: try import 'path' module a bit harder
2161 (for %upgrade)
2171 (for %upgrade)
2162
2172
2163 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2173 2006-06-03 Fernando Perez <Fernando.Perez@colorado.edu>
2164
2174
2165 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2175 * IPython/genutils.py (ask_yes_no): treat EOF as a default answer
2166 instead of looping 20 times.
2176 instead of looping 20 times.
2167
2177
2168 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2178 * IPython/ipmaker.py (make_IPython): honor -ipythondir flag
2169 correctly at initialization time. Bug reported by Krishna Mohan
2179 correctly at initialization time. Bug reported by Krishna Mohan
2170 Gundu <gkmohan-AT-gmail.com> on the user list.
2180 Gundu <gkmohan-AT-gmail.com> on the user list.
2171
2181
2172 * IPython/Release.py (version): Mark 0.7.2 version to start
2182 * IPython/Release.py (version): Mark 0.7.2 version to start
2173 testing for release on 06/06.
2183 testing for release on 06/06.
2174
2184
2175 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2185 2006-05-31 Fernando Perez <Fernando.Perez@colorado.edu>
2176
2186
2177 * scripts/irunner: thin script interface so users don't have to
2187 * scripts/irunner: thin script interface so users don't have to
2178 find the module and call it as an executable, since modules rarely
2188 find the module and call it as an executable, since modules rarely
2179 live in people's PATH.
2189 live in people's PATH.
2180
2190
2181 * IPython/irunner.py (InteractiveRunner.__init__): added
2191 * IPython/irunner.py (InteractiveRunner.__init__): added
2182 delaybeforesend attribute to control delays with newer versions of
2192 delaybeforesend attribute to control delays with newer versions of
2183 pexpect. Thanks to detailed help from pexpect's author, Noah
2193 pexpect. Thanks to detailed help from pexpect's author, Noah
2184 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2194 Spurrier <noah-AT-noah.org>. Noted how to use the SAGE runner
2185 correctly (it works in NoColor mode).
2195 correctly (it works in NoColor mode).
2186
2196
2187 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2197 * IPython/iplib.py (handle_normal): fix nasty crash reported on
2188 SAGE list, from improper log() calls.
2198 SAGE list, from improper log() calls.
2189
2199
2190 2006-05-31 Ville Vainio <vivainio@gmail.com>
2200 2006-05-31 Ville Vainio <vivainio@gmail.com>
2191
2201
2192 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2202 * upgrade_dir.py, Magic.py (magic_upgrade): call upgrade_dir
2193 with args in parens to work correctly with dirs that have spaces.
2203 with args in parens to work correctly with dirs that have spaces.
2194
2204
2195 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2205 2006-05-30 Fernando Perez <Fernando.Perez@colorado.edu>
2196
2206
2197 * IPython/Logger.py (Logger.logstart): add option to log raw input
2207 * IPython/Logger.py (Logger.logstart): add option to log raw input
2198 instead of the processed one. A -r flag was added to the
2208 instead of the processed one. A -r flag was added to the
2199 %logstart magic used for controlling logging.
2209 %logstart magic used for controlling logging.
2200
2210
2201 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2211 2006-05-29 Fernando Perez <Fernando.Perez@colorado.edu>
2202
2212
2203 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2213 * IPython/iplib.py (InteractiveShell.__init__): add check for the
2204 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2214 *BSDs to omit --color from all 'ls' aliases, since *BSD ls doesn't
2205 recognize the option. After a bug report by Will Maier. This
2215 recognize the option. After a bug report by Will Maier. This
2206 closes #64 (will do it after confirmation from W. Maier).
2216 closes #64 (will do it after confirmation from W. Maier).
2207
2217
2208 * IPython/irunner.py: New module to run scripts as if manually
2218 * IPython/irunner.py: New module to run scripts as if manually
2209 typed into an interactive environment, based on pexpect. After a
2219 typed into an interactive environment, based on pexpect. After a
2210 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2220 submission by Ken Schutte <kschutte-AT-csail.mit.edu> on the
2211 ipython-user list. Simple unittests in the tests/ directory.
2221 ipython-user list. Simple unittests in the tests/ directory.
2212
2222
2213 * tools/release: add Will Maier, OpenBSD port maintainer, to
2223 * tools/release: add Will Maier, OpenBSD port maintainer, to
2214 recepients list. We are now officially part of the OpenBSD ports:
2224 recepients list. We are now officially part of the OpenBSD ports:
2215 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2225 http://www.openbsd.org/ports.html ! Many thanks to Will for the
2216 work.
2226 work.
2217
2227
2218 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2228 2006-05-26 Fernando Perez <Fernando.Perez@colorado.edu>
2219
2229
2220 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2230 * IPython/ipmaker.py (make_IPython): modify sys.argv fix (below)
2221 so that it doesn't break tkinter apps.
2231 so that it doesn't break tkinter apps.
2222
2232
2223 * IPython/iplib.py (_prefilter): fix bug where aliases would
2233 * IPython/iplib.py (_prefilter): fix bug where aliases would
2224 shadow variables when autocall was fully off. Reported by SAGE
2234 shadow variables when autocall was fully off. Reported by SAGE
2225 author William Stein.
2235 author William Stein.
2226
2236
2227 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2237 * IPython/OInspect.py (Inspector.__init__): add a flag to control
2228 at what detail level strings are computed when foo? is requested.
2238 at what detail level strings are computed when foo? is requested.
2229 This allows users to ask for example that the string form of an
2239 This allows users to ask for example that the string form of an
2230 object is only computed when foo?? is called, or even never, by
2240 object is only computed when foo?? is called, or even never, by
2231 setting the object_info_string_level >= 2 in the configuration
2241 setting the object_info_string_level >= 2 in the configuration
2232 file. This new option has been added and documented. After a
2242 file. This new option has been added and documented. After a
2233 request by SAGE to be able to control the printing of very large
2243 request by SAGE to be able to control the printing of very large
2234 objects more easily.
2244 objects more easily.
2235
2245
2236 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2246 2006-05-25 Fernando Perez <Fernando.Perez@colorado.edu>
2237
2247
2238 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2248 * IPython/ipmaker.py (make_IPython): remove the ipython call path
2239 from sys.argv, to be 100% consistent with how Python itself works
2249 from sys.argv, to be 100% consistent with how Python itself works
2240 (as seen for example with python -i file.py). After a bug report
2250 (as seen for example with python -i file.py). After a bug report
2241 by Jeffrey Collins.
2251 by Jeffrey Collins.
2242
2252
2243 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2253 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix
2244 nasty bug which was preventing custom namespaces with -pylab,
2254 nasty bug which was preventing custom namespaces with -pylab,
2245 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2255 reported by M. Foord. Minor cleanup, remove old matplotlib.matlab
2246 compatibility (long gone from mpl).
2256 compatibility (long gone from mpl).
2247
2257
2248 * IPython/ipapi.py (make_session): name change: create->make. We
2258 * IPython/ipapi.py (make_session): name change: create->make. We
2249 use make in other places (ipmaker,...), it's shorter and easier to
2259 use make in other places (ipmaker,...), it's shorter and easier to
2250 type and say, etc. I'm trying to clean things before 0.7.2 so
2260 type and say, etc. I'm trying to clean things before 0.7.2 so
2251 that I can keep things stable wrt to ipapi in the chainsaw branch.
2261 that I can keep things stable wrt to ipapi in the chainsaw branch.
2252
2262
2253 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2263 * ipython.el: fix the py-pdbtrack-input-prompt variable so that
2254 python-mode recognizes our debugger mode. Add support for
2264 python-mode recognizes our debugger mode. Add support for
2255 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2265 autoindent inside (X)emacs. After a patch sent in by Jin Liu
2256 <m.liu.jin-AT-gmail.com> originally written by
2266 <m.liu.jin-AT-gmail.com> originally written by
2257 doxgen-AT-newsmth.net (with minor modifications for xemacs
2267 doxgen-AT-newsmth.net (with minor modifications for xemacs
2258 compatibility)
2268 compatibility)
2259
2269
2260 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2270 * IPython/Debugger.py (Pdb.format_stack_entry): fix formatting of
2261 tracebacks when walking the stack so that the stack tracking system
2271 tracebacks when walking the stack so that the stack tracking system
2262 in emacs' python-mode can identify the frames correctly.
2272 in emacs' python-mode can identify the frames correctly.
2263
2273
2264 * IPython/ipmaker.py (make_IPython): make the internal (and
2274 * IPython/ipmaker.py (make_IPython): make the internal (and
2265 default config) autoedit_syntax value false by default. Too many
2275 default config) autoedit_syntax value false by default. Too many
2266 users have complained to me (both on and off-list) about problems
2276 users have complained to me (both on and off-list) about problems
2267 with this option being on by default, so I'm making it default to
2277 with this option being on by default, so I'm making it default to
2268 off. It can still be enabled by anyone via the usual mechanisms.
2278 off. It can still be enabled by anyone via the usual mechanisms.
2269
2279
2270 * IPython/completer.py (Completer.attr_matches): add support for
2280 * IPython/completer.py (Completer.attr_matches): add support for
2271 PyCrust-style _getAttributeNames magic method. Patch contributed
2281 PyCrust-style _getAttributeNames magic method. Patch contributed
2272 by <mscott-AT-goldenspud.com>. Closes #50.
2282 by <mscott-AT-goldenspud.com>. Closes #50.
2273
2283
2274 * IPython/iplib.py (InteractiveShell.__init__): remove the
2284 * IPython/iplib.py (InteractiveShell.__init__): remove the
2275 deletion of exit/quit from __builtin__, which can break
2285 deletion of exit/quit from __builtin__, which can break
2276 third-party tools like the Zope debugging console. The
2286 third-party tools like the Zope debugging console. The
2277 %exit/%quit magics remain. In general, it's probably a good idea
2287 %exit/%quit magics remain. In general, it's probably a good idea
2278 not to delete anything from __builtin__, since we never know what
2288 not to delete anything from __builtin__, since we never know what
2279 that will break. In any case, python now (for 2.5) will support
2289 that will break. In any case, python now (for 2.5) will support
2280 'real' exit/quit, so this issue is moot. Closes #55.
2290 'real' exit/quit, so this issue is moot. Closes #55.
2281
2291
2282 * IPython/genutils.py (with_obj): rename the 'with' function to
2292 * IPython/genutils.py (with_obj): rename the 'with' function to
2283 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2293 'withobj' to avoid incompatibilities with Python 2.5, where 'with'
2284 becomes a language keyword. Closes #53.
2294 becomes a language keyword. Closes #53.
2285
2295
2286 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2296 * IPython/FakeModule.py (FakeModule.__init__): add a proper
2287 __file__ attribute to this so it fools more things into thinking
2297 __file__ attribute to this so it fools more things into thinking
2288 it is a real module. Closes #59.
2298 it is a real module. Closes #59.
2289
2299
2290 * IPython/Magic.py (magic_edit): add -n option to open the editor
2300 * IPython/Magic.py (magic_edit): add -n option to open the editor
2291 at a specific line number. After a patch by Stefan van der Walt.
2301 at a specific line number. After a patch by Stefan van der Walt.
2292
2302
2293 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2303 2006-05-23 Fernando Perez <Fernando.Perez@colorado.edu>
2294
2304
2295 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2305 * IPython/iplib.py (edit_syntax_error): fix crash when for some
2296 reason the file could not be opened. After automatic crash
2306 reason the file could not be opened. After automatic crash
2297 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2307 reports sent by James Graham <jgraham-AT-ast.cam.ac.uk> and
2298 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2308 Charles Dolan <charlespatrickdolan-AT-yahoo.com>.
2299 (_should_recompile): Don't fire editor if using %bg, since there
2309 (_should_recompile): Don't fire editor if using %bg, since there
2300 is no file in the first place. From the same report as above.
2310 is no file in the first place. From the same report as above.
2301 (raw_input): protect against faulty third-party prefilters. After
2311 (raw_input): protect against faulty third-party prefilters. After
2302 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2312 an automatic crash report sent by Dirk Laurie <dirk-AT-sun.ac.za>
2303 while running under SAGE.
2313 while running under SAGE.
2304
2314
2305 2006-05-23 Ville Vainio <vivainio@gmail.com>
2315 2006-05-23 Ville Vainio <vivainio@gmail.com>
2306
2316
2307 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2317 * ipapi.py: Stripped down ip.to_user_ns() to work only as
2308 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2318 ip.to_user_ns("x1 y1"), which exposes vars x1 and y1. ipapi.get()
2309 now returns None (again), unless dummy is specifically allowed by
2319 now returns None (again), unless dummy is specifically allowed by
2310 ipapi.get(allow_dummy=True).
2320 ipapi.get(allow_dummy=True).
2311
2321
2312 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2322 2006-05-18 Fernando Perez <Fernando.Perez@colorado.edu>
2313
2323
2314 * IPython: remove all 2.2-compatibility objects and hacks from
2324 * IPython: remove all 2.2-compatibility objects and hacks from
2315 everywhere, since we only support 2.3 at this point. Docs
2325 everywhere, since we only support 2.3 at this point. Docs
2316 updated.
2326 updated.
2317
2327
2318 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2328 * IPython/ipapi.py (IPApi.__init__): Cleanup of all getters.
2319 Anything requiring extra validation can be turned into a Python
2329 Anything requiring extra validation can be turned into a Python
2320 property in the future. I used a property for the db one b/c
2330 property in the future. I used a property for the db one b/c
2321 there was a nasty circularity problem with the initialization
2331 there was a nasty circularity problem with the initialization
2322 order, which right now I don't have time to clean up.
2332 order, which right now I don't have time to clean up.
2323
2333
2324 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2334 * IPython/Shell.py (MTInteractiveShell.runcode): Fix, I think,
2325 another locking bug reported by Jorgen. I'm not 100% sure though,
2335 another locking bug reported by Jorgen. I'm not 100% sure though,
2326 so more testing is needed...
2336 so more testing is needed...
2327
2337
2328 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2338 2006-05-17 Fernando Perez <Fernando.Perez@colorado.edu>
2329
2339
2330 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2340 * IPython/ipapi.py (IPApi.to_user_ns): New function to inject
2331 local variables from any routine in user code (typically executed
2341 local variables from any routine in user code (typically executed
2332 with %run) directly into the interactive namespace. Very useful
2342 with %run) directly into the interactive namespace. Very useful
2333 when doing complex debugging.
2343 when doing complex debugging.
2334 (IPythonNotRunning): Changed the default None object to a dummy
2344 (IPythonNotRunning): Changed the default None object to a dummy
2335 whose attributes can be queried as well as called without
2345 whose attributes can be queried as well as called without
2336 exploding, to ease writing code which works transparently both in
2346 exploding, to ease writing code which works transparently both in
2337 and out of ipython and uses some of this API.
2347 and out of ipython and uses some of this API.
2338
2348
2339 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2349 2006-05-16 Fernando Perez <Fernando.Perez@colorado.edu>
2340
2350
2341 * IPython/hooks.py (result_display): Fix the fact that our display
2351 * IPython/hooks.py (result_display): Fix the fact that our display
2342 hook was using str() instead of repr(), as the default python
2352 hook was using str() instead of repr(), as the default python
2343 console does. This had gone unnoticed b/c it only happened if
2353 console does. This had gone unnoticed b/c it only happened if
2344 %Pprint was off, but the inconsistency was there.
2354 %Pprint was off, but the inconsistency was there.
2345
2355
2346 2006-05-15 Ville Vainio <vivainio@gmail.com>
2356 2006-05-15 Ville Vainio <vivainio@gmail.com>
2347
2357
2348 * Oinspect.py: Only show docstring for nonexisting/binary files
2358 * Oinspect.py: Only show docstring for nonexisting/binary files
2349 when doing object??, closing ticket #62
2359 when doing object??, closing ticket #62
2350
2360
2351 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2361 2006-05-13 Fernando Perez <Fernando.Perez@colorado.edu>
2352
2362
2353 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2363 * IPython/Shell.py (MTInteractiveShell.runsource): Fix threading
2354 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2364 bug, closes http://www.scipy.net/roundup/ipython/issue55. A lock
2355 was being released in a routine which hadn't checked if it had
2365 was being released in a routine which hadn't checked if it had
2356 been the one to acquire it.
2366 been the one to acquire it.
2357
2367
2358 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2368 2006-05-07 Fernando Perez <Fernando.Perez@colorado.edu>
2359
2369
2360 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2370 * IPython/Release.py (version): put out 0.7.2.rc1 for testing.
2361
2371
2362 2006-04-11 Ville Vainio <vivainio@gmail.com>
2372 2006-04-11 Ville Vainio <vivainio@gmail.com>
2363
2373
2364 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2374 * iplib.py, ipmaker.py: .ipy extension now means "ipython batch file"
2365 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2375 in command line. E.g. "ipython test.ipy" runs test.ipy with ipython
2366 prefilters, allowing stuff like magics and aliases in the file.
2376 prefilters, allowing stuff like magics and aliases in the file.
2367
2377
2368 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2378 * Prompts.py, Extensions/clearcmd.py, ipy_system_conf.py: %clear magic
2369 added. Supported now are "%clear in" and "%clear out" (clear input and
2379 added. Supported now are "%clear in" and "%clear out" (clear input and
2370 output history, respectively). Also fixed CachedOutput.flush to
2380 output history, respectively). Also fixed CachedOutput.flush to
2371 properly flush the output cache.
2381 properly flush the output cache.
2372
2382
2373 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2383 * Extensions/pspersistence.py: Fix %store to avoid "%store obj.attr"
2374 half-success (and fail explicitly).
2384 half-success (and fail explicitly).
2375
2385
2376 2006-03-28 Ville Vainio <vivainio@gmail.com>
2386 2006-03-28 Ville Vainio <vivainio@gmail.com>
2377
2387
2378 * iplib.py: Fix quoting of aliases so that only argless ones
2388 * iplib.py: Fix quoting of aliases so that only argless ones
2379 are quoted
2389 are quoted
2380
2390
2381 2006-03-28 Ville Vainio <vivainio@gmail.com>
2391 2006-03-28 Ville Vainio <vivainio@gmail.com>
2382
2392
2383 * iplib.py: Quote aliases with spaces in the name.
2393 * iplib.py: Quote aliases with spaces in the name.
2384 "c:\program files\blah\bin" is now legal alias target.
2394 "c:\program files\blah\bin" is now legal alias target.
2385
2395
2386 * ext_rehashdir.py: Space no longer allowed as arg
2396 * ext_rehashdir.py: Space no longer allowed as arg
2387 separator, since space is legal in path names.
2397 separator, since space is legal in path names.
2388
2398
2389 2006-03-16 Ville Vainio <vivainio@gmail.com>
2399 2006-03-16 Ville Vainio <vivainio@gmail.com>
2390
2400
2391 * upgrade_dir.py: Take path.py from Extensions, correcting
2401 * upgrade_dir.py: Take path.py from Extensions, correcting
2392 %upgrade magic
2402 %upgrade magic
2393
2403
2394 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2404 * ipmaker.py: Suggest using %upgrade if ipy_user_conf.py isn't found.
2395
2405
2396 * hooks.py: Only enclose editor binary in quotes if legal and
2406 * hooks.py: Only enclose editor binary in quotes if legal and
2397 necessary (space in the name, and is an existing file). Fixes a bug
2407 necessary (space in the name, and is an existing file). Fixes a bug
2398 reported by Zachary Pincus.
2408 reported by Zachary Pincus.
2399
2409
2400 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2410 2006-03-13 Fernando Perez <Fernando.Perez@colorado.edu>
2401
2411
2402 * Manual: thanks to a tip on proper color handling for Emacs, by
2412 * Manual: thanks to a tip on proper color handling for Emacs, by
2403 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2413 Eric J Haywiser <ejh1-AT-MIT.EDU>.
2404
2414
2405 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2415 * ipython.el: close http://www.scipy.net/roundup/ipython/issue57
2406 by applying the provided patch. Thanks to Liu Jin
2416 by applying the provided patch. Thanks to Liu Jin
2407 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2417 <m.liu.jin-AT-gmail.com> for the contribution. No problems under
2408 XEmacs/Linux, I'm trusting the submitter that it actually helps
2418 XEmacs/Linux, I'm trusting the submitter that it actually helps
2409 under win32/GNU Emacs. Will revisit if any problems are reported.
2419 under win32/GNU Emacs. Will revisit if any problems are reported.
2410
2420
2411 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2421 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2412
2422
2413 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2423 * IPython/Gnuplot2.py (_FileClass): update for current Gnuplot.py
2414 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2424 from SVN, thanks to a patch by Ryan Woodard <rywo@bas.ac.uk>.
2415
2425
2416 2006-03-12 Ville Vainio <vivainio@gmail.com>
2426 2006-03-12 Ville Vainio <vivainio@gmail.com>
2417
2427
2418 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2428 * Magic.py (magic_timeit): Added %timeit magic, contributed by
2419 Torsten Marek.
2429 Torsten Marek.
2420
2430
2421 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2431 2006-03-12 Fernando Perez <Fernando.Perez@colorado.edu>
2422
2432
2423 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2433 * IPython/Magic.py (magic_macro): fix so that the n1-n2 syntax for
2424 line ranges works again.
2434 line ranges works again.
2425
2435
2426 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2436 2006-03-11 Fernando Perez <Fernando.Perez@colorado.edu>
2427
2437
2428 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2438 * IPython/iplib.py (showtraceback): add back sys.last_traceback
2429 and friends, after a discussion with Zach Pincus on ipython-user.
2439 and friends, after a discussion with Zach Pincus on ipython-user.
2430 I'm not 100% sure, but after thinking about it quite a bit, it may
2440 I'm not 100% sure, but after thinking about it quite a bit, it may
2431 be OK. Testing with the multithreaded shells didn't reveal any
2441 be OK. Testing with the multithreaded shells didn't reveal any
2432 problems, but let's keep an eye out.
2442 problems, but let's keep an eye out.
2433
2443
2434 In the process, I fixed a few things which were calling
2444 In the process, I fixed a few things which were calling
2435 self.InteractiveTB() directly (like safe_execfile), which is a
2445 self.InteractiveTB() directly (like safe_execfile), which is a
2436 mistake: ALL exception reporting should be done by calling
2446 mistake: ALL exception reporting should be done by calling
2437 self.showtraceback(), which handles state and tab-completion and
2447 self.showtraceback(), which handles state and tab-completion and
2438 more.
2448 more.
2439
2449
2440 2006-03-01 Ville Vainio <vivainio@gmail.com>
2450 2006-03-01 Ville Vainio <vivainio@gmail.com>
2441
2451
2442 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2452 * Extensions/ipipe.py: Added Walter Doerwald's "ipipe" module.
2443 To use, do "from ipipe import *".
2453 To use, do "from ipipe import *".
2444
2454
2445 2006-02-24 Ville Vainio <vivainio@gmail.com>
2455 2006-02-24 Ville Vainio <vivainio@gmail.com>
2446
2456
2447 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2457 * Magic.py, upgrade_dir.py: %upgrade magic added. Does things more
2448 "cleanly" and safely than the older upgrade mechanism.
2458 "cleanly" and safely than the older upgrade mechanism.
2449
2459
2450 2006-02-21 Ville Vainio <vivainio@gmail.com>
2460 2006-02-21 Ville Vainio <vivainio@gmail.com>
2451
2461
2452 * Magic.py: %save works again.
2462 * Magic.py: %save works again.
2453
2463
2454 2006-02-15 Ville Vainio <vivainio@gmail.com>
2464 2006-02-15 Ville Vainio <vivainio@gmail.com>
2455
2465
2456 * Magic.py: %Pprint works again
2466 * Magic.py: %Pprint works again
2457
2467
2458 * Extensions/ipy_sane_defaults.py: Provide everything provided
2468 * Extensions/ipy_sane_defaults.py: Provide everything provided
2459 in default ipythonrc, to make it possible to have a completely empty
2469 in default ipythonrc, to make it possible to have a completely empty
2460 ipythonrc (and thus completely rc-file free configuration)
2470 ipythonrc (and thus completely rc-file free configuration)
2461
2471
2462 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2472 2006-02-11 Fernando Perez <Fernando.Perez@colorado.edu>
2463
2473
2464 * IPython/hooks.py (editor): quote the call to the editor command,
2474 * IPython/hooks.py (editor): quote the call to the editor command,
2465 to allow commands with spaces in them. Problem noted by watching
2475 to allow commands with spaces in them. Problem noted by watching
2466 Ian Oswald's video about textpad under win32 at
2476 Ian Oswald's video about textpad under win32 at
2467 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2477 http://showmedo.com/videoListPage?listKey=PythonIPythonSeries
2468
2478
2469 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2479 * IPython/UserConfig/ipythonrc: Replace @ signs with % when
2470 describing magics (we haven't used @ for a loong time).
2480 describing magics (we haven't used @ for a loong time).
2471
2481
2472 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2482 * IPython/ultraTB.py (VerboseTB.text.text_repr): Added patch
2473 contributed by marienz to close
2483 contributed by marienz to close
2474 http://www.scipy.net/roundup/ipython/issue53.
2484 http://www.scipy.net/roundup/ipython/issue53.
2475
2485
2476 2006-02-10 Ville Vainio <vivainio@gmail.com>
2486 2006-02-10 Ville Vainio <vivainio@gmail.com>
2477
2487
2478 * genutils.py: getoutput now works in win32 too
2488 * genutils.py: getoutput now works in win32 too
2479
2489
2480 * completer.py: alias and magic completion only invoked
2490 * completer.py: alias and magic completion only invoked
2481 at the first "item" in the line, to avoid "cd %store"
2491 at the first "item" in the line, to avoid "cd %store"
2482 nonsense.
2492 nonsense.
2483
2493
2484 2006-02-09 Ville Vainio <vivainio@gmail.com>
2494 2006-02-09 Ville Vainio <vivainio@gmail.com>
2485
2495
2486 * test/*: Added a unit testing framework (finally).
2496 * test/*: Added a unit testing framework (finally).
2487 '%run runtests.py' to run test_*.
2497 '%run runtests.py' to run test_*.
2488
2498
2489 * ipapi.py: Exposed runlines and set_custom_exc
2499 * ipapi.py: Exposed runlines and set_custom_exc
2490
2500
2491 2006-02-07 Ville Vainio <vivainio@gmail.com>
2501 2006-02-07 Ville Vainio <vivainio@gmail.com>
2492
2502
2493 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2503 * iplib.py: don't split "f 1 2" to "f(1,2)" in autocall,
2494 instead use "f(1 2)" as before.
2504 instead use "f(1 2)" as before.
2495
2505
2496 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2506 2006-02-05 Fernando Perez <Fernando.Perez@colorado.edu>
2497
2507
2498 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2508 * IPython/demo.py (IPythonDemo): Add new classes to the demo
2499 facilities, for demos processed by the IPython input filter
2509 facilities, for demos processed by the IPython input filter
2500 (IPythonDemo), and for running a script one-line-at-a-time as a
2510 (IPythonDemo), and for running a script one-line-at-a-time as a
2501 demo, both for pure Python (LineDemo) and for IPython-processed
2511 demo, both for pure Python (LineDemo) and for IPython-processed
2502 input (IPythonLineDemo). After a request by Dave Kohel, from the
2512 input (IPythonLineDemo). After a request by Dave Kohel, from the
2503 SAGE team.
2513 SAGE team.
2504 (Demo.edit): added an edit() method to the demo objects, to edit
2514 (Demo.edit): added an edit() method to the demo objects, to edit
2505 the in-memory copy of the last executed block.
2515 the in-memory copy of the last executed block.
2506
2516
2507 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2517 * IPython/Magic.py (magic_edit): add '-r' option for 'raw'
2508 processing to %edit, %macro and %save. These commands can now be
2518 processing to %edit, %macro and %save. These commands can now be
2509 invoked on the unprocessed input as it was typed by the user
2519 invoked on the unprocessed input as it was typed by the user
2510 (without any prefilters applied). After requests by the SAGE team
2520 (without any prefilters applied). After requests by the SAGE team
2511 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2521 at SAGE days 2006: http://modular.ucsd.edu/sage/days1/schedule.html.
2512
2522
2513 2006-02-01 Ville Vainio <vivainio@gmail.com>
2523 2006-02-01 Ville Vainio <vivainio@gmail.com>
2514
2524
2515 * setup.py, eggsetup.py: easy_install ipython==dev works
2525 * setup.py, eggsetup.py: easy_install ipython==dev works
2516 correctly now (on Linux)
2526 correctly now (on Linux)
2517
2527
2518 * ipy_user_conf,ipmaker: user config changes, removed spurious
2528 * ipy_user_conf,ipmaker: user config changes, removed spurious
2519 warnings
2529 warnings
2520
2530
2521 * iplib: if rc.banner is string, use it as is.
2531 * iplib: if rc.banner is string, use it as is.
2522
2532
2523 * Magic: %pycat accepts a string argument and pages it's contents.
2533 * Magic: %pycat accepts a string argument and pages it's contents.
2524
2534
2525
2535
2526 2006-01-30 Ville Vainio <vivainio@gmail.com>
2536 2006-01-30 Ville Vainio <vivainio@gmail.com>
2527
2537
2528 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2538 * pickleshare,pspersistence,ipapi,Magic: persistence overhaul.
2529 Now %store and bookmarks work through PickleShare, meaning that
2539 Now %store and bookmarks work through PickleShare, meaning that
2530 concurrent access is possible and all ipython sessions see the
2540 concurrent access is possible and all ipython sessions see the
2531 same database situation all the time, instead of snapshot of
2541 same database situation all the time, instead of snapshot of
2532 the situation when the session was started. Hence, %bookmark
2542 the situation when the session was started. Hence, %bookmark
2533 results are immediately accessible from othes sessions. The database
2543 results are immediately accessible from othes sessions. The database
2534 is also available for use by user extensions. See:
2544 is also available for use by user extensions. See:
2535 http://www.python.org/pypi/pickleshare
2545 http://www.python.org/pypi/pickleshare
2536
2546
2537 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2547 * hooks.py: Two new hooks, 'shutdown_hook' and 'late_startup_hook'.
2538
2548
2539 * aliases can now be %store'd
2549 * aliases can now be %store'd
2540
2550
2541 * path.py moved to Extensions so that pickleshare does not need
2551 * path.py moved to Extensions so that pickleshare does not need
2542 IPython-specific import. Extensions added to pythonpath right
2552 IPython-specific import. Extensions added to pythonpath right
2543 at __init__.
2553 at __init__.
2544
2554
2545 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2555 * iplib.py: ipalias deprecated/redundant; aliases are converted and
2546 called with _ip.system and the pre-transformed command string.
2556 called with _ip.system and the pre-transformed command string.
2547
2557
2548 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2558 2006-01-29 Fernando Perez <Fernando.Perez@colorado.edu>
2549
2559
2550 * IPython/iplib.py (interact): Fix that we were not catching
2560 * IPython/iplib.py (interact): Fix that we were not catching
2551 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2561 KeyboardInterrupt exceptions properly. I'm not quite sure why the
2552 logic here had to change, but it's fixed now.
2562 logic here had to change, but it's fixed now.
2553
2563
2554 2006-01-29 Ville Vainio <vivainio@gmail.com>
2564 2006-01-29 Ville Vainio <vivainio@gmail.com>
2555
2565
2556 * iplib.py: Try to import pyreadline on Windows.
2566 * iplib.py: Try to import pyreadline on Windows.
2557
2567
2558 2006-01-27 Ville Vainio <vivainio@gmail.com>
2568 2006-01-27 Ville Vainio <vivainio@gmail.com>
2559
2569
2560 * iplib.py: Expose ipapi as _ip in builtin namespace.
2570 * iplib.py: Expose ipapi as _ip in builtin namespace.
2561 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2571 Makes ipmagic (-> _ip.magic), ipsystem (-> _ip.system)
2562 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2572 and ip_set_hook (-> _ip.set_hook) redundant. % and !
2563 syntax now produce _ip.* variant of the commands.
2573 syntax now produce _ip.* variant of the commands.
2564
2574
2565 * "_ip.options().autoedit_syntax = 2" automatically throws
2575 * "_ip.options().autoedit_syntax = 2" automatically throws
2566 user to editor for syntax error correction without prompting.
2576 user to editor for syntax error correction without prompting.
2567
2577
2568 2006-01-27 Ville Vainio <vivainio@gmail.com>
2578 2006-01-27 Ville Vainio <vivainio@gmail.com>
2569
2579
2570 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2580 * ipmaker.py: Give "realistic" sys.argv for scripts (without
2571 'ipython' at argv[0]) executed through command line.
2581 'ipython' at argv[0]) executed through command line.
2572 NOTE: this DEPRECATES calling ipython with multiple scripts
2582 NOTE: this DEPRECATES calling ipython with multiple scripts
2573 ("ipython a.py b.py c.py")
2583 ("ipython a.py b.py c.py")
2574
2584
2575 * iplib.py, hooks.py: Added configurable input prefilter,
2585 * iplib.py, hooks.py: Added configurable input prefilter,
2576 named 'input_prefilter'. See ext_rescapture.py for example
2586 named 'input_prefilter'. See ext_rescapture.py for example
2577 usage.
2587 usage.
2578
2588
2579 * ext_rescapture.py, Magic.py: Better system command output capture
2589 * ext_rescapture.py, Magic.py: Better system command output capture
2580 through 'var = !ls' (deprecates user-visible %sc). Same notation
2590 through 'var = !ls' (deprecates user-visible %sc). Same notation
2581 applies for magics, 'var = %alias' assigns alias list to var.
2591 applies for magics, 'var = %alias' assigns alias list to var.
2582
2592
2583 * ipapi.py: added meta() for accessing extension-usable data store.
2593 * ipapi.py: added meta() for accessing extension-usable data store.
2584
2594
2585 * iplib.py: added InteractiveShell.getapi(). New magics should be
2595 * iplib.py: added InteractiveShell.getapi(). New magics should be
2586 written doing self.getapi() instead of using the shell directly.
2596 written doing self.getapi() instead of using the shell directly.
2587
2597
2588 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2598 * Magic.py: %store now allows doing %store foo > ~/myfoo.txt and
2589 %store foo >> ~/myfoo.txt to store variables to files (in clean
2599 %store foo >> ~/myfoo.txt to store variables to files (in clean
2590 textual form, not a restorable pickle).
2600 textual form, not a restorable pickle).
2591
2601
2592 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2602 * ipmaker.py: now import ipy_profile_PROFILENAME automatically
2593
2603
2594 * usage.py, Magic.py: added %quickref
2604 * usage.py, Magic.py: added %quickref
2595
2605
2596 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2606 * iplib.py: ESC_PAREN fixes: /f 1 2 -> f(1,2), not f(1 2).
2597
2607
2598 * GetoptErrors when invoking magics etc. with wrong args
2608 * GetoptErrors when invoking magics etc. with wrong args
2599 are now more helpful:
2609 are now more helpful:
2600 GetoptError: option -l not recognized (allowed: "qb" )
2610 GetoptError: option -l not recognized (allowed: "qb" )
2601
2611
2602 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2612 2006-01-25 Fernando Perez <Fernando.Perez@colorado.edu>
2603
2613
2604 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2614 * IPython/demo.py (Demo.show): Flush stdout after each block, so
2605 computationally intensive blocks don't appear to stall the demo.
2615 computationally intensive blocks don't appear to stall the demo.
2606
2616
2607 2006-01-24 Ville Vainio <vivainio@gmail.com>
2617 2006-01-24 Ville Vainio <vivainio@gmail.com>
2608
2618
2609 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2619 * iplib.py, hooks.py: 'result_display' hook can return a non-None
2610 value to manipulate resulting history entry.
2620 value to manipulate resulting history entry.
2611
2621
2612 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2622 * ipapi.py: Moved TryNext here from hooks.py. Moved functions
2613 to instance methods of IPApi class, to make extending an embedded
2623 to instance methods of IPApi class, to make extending an embedded
2614 IPython feasible. See ext_rehashdir.py for example usage.
2624 IPython feasible. See ext_rehashdir.py for example usage.
2615
2625
2616 * Merged 1071-1076 from branches/0.7.1
2626 * Merged 1071-1076 from branches/0.7.1
2617
2627
2618
2628
2619 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2629 2006-01-23 Fernando Perez <Fernando.Perez@colorado.edu>
2620
2630
2621 * tools/release (daystamp): Fix build tools to use the new
2631 * tools/release (daystamp): Fix build tools to use the new
2622 eggsetup.py script to build lightweight eggs.
2632 eggsetup.py script to build lightweight eggs.
2623
2633
2624 * Applied changesets 1062 and 1064 before 0.7.1 release.
2634 * Applied changesets 1062 and 1064 before 0.7.1 release.
2625
2635
2626 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2636 * IPython/Magic.py (magic_history): Add '-r' option to %hist, to
2627 see the raw input history (without conversions like %ls ->
2637 see the raw input history (without conversions like %ls ->
2628 ipmagic("ls")). After a request from W. Stein, SAGE
2638 ipmagic("ls")). After a request from W. Stein, SAGE
2629 (http://modular.ucsd.edu/sage) developer. This information is
2639 (http://modular.ucsd.edu/sage) developer. This information is
2630 stored in the input_hist_raw attribute of the IPython instance, so
2640 stored in the input_hist_raw attribute of the IPython instance, so
2631 developers can access it if needed (it's an InputList instance).
2641 developers can access it if needed (it's an InputList instance).
2632
2642
2633 * Versionstring = 0.7.2.svn
2643 * Versionstring = 0.7.2.svn
2634
2644
2635 * eggsetup.py: A separate script for constructing eggs, creates
2645 * eggsetup.py: A separate script for constructing eggs, creates
2636 proper launch scripts even on Windows (an .exe file in
2646 proper launch scripts even on Windows (an .exe file in
2637 \python24\scripts).
2647 \python24\scripts).
2638
2648
2639 * ipapi.py: launch_new_instance, launch entry point needed for the
2649 * ipapi.py: launch_new_instance, launch entry point needed for the
2640 egg.
2650 egg.
2641
2651
2642 2006-01-23 Ville Vainio <vivainio@gmail.com>
2652 2006-01-23 Ville Vainio <vivainio@gmail.com>
2643
2653
2644 * Added %cpaste magic for pasting python code
2654 * Added %cpaste magic for pasting python code
2645
2655
2646 2006-01-22 Ville Vainio <vivainio@gmail.com>
2656 2006-01-22 Ville Vainio <vivainio@gmail.com>
2647
2657
2648 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2658 * Merge from branches/0.7.1 into trunk, revs 1052-1057
2649
2659
2650 * Versionstring = 0.7.2.svn
2660 * Versionstring = 0.7.2.svn
2651
2661
2652 * eggsetup.py: A separate script for constructing eggs, creates
2662 * eggsetup.py: A separate script for constructing eggs, creates
2653 proper launch scripts even on Windows (an .exe file in
2663 proper launch scripts even on Windows (an .exe file in
2654 \python24\scripts).
2664 \python24\scripts).
2655
2665
2656 * ipapi.py: launch_new_instance, launch entry point needed for the
2666 * ipapi.py: launch_new_instance, launch entry point needed for the
2657 egg.
2667 egg.
2658
2668
2659 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2669 2006-01-22 Fernando Perez <Fernando.Perez@colorado.edu>
2660
2670
2661 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2671 * IPython/OInspect.py (Inspector.pinfo): fix bug where foo?? or
2662 %pfile foo would print the file for foo even if it was a binary.
2672 %pfile foo would print the file for foo even if it was a binary.
2663 Now, extensions '.so' and '.dll' are skipped.
2673 Now, extensions '.so' and '.dll' are skipped.
2664
2674
2665 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2675 * IPython/Shell.py (MTInteractiveShell.__init__): Fix threading
2666 bug, where macros would fail in all threaded modes. I'm not 100%
2676 bug, where macros would fail in all threaded modes. I'm not 100%
2667 sure, so I'm going to put out an rc instead of making a release
2677 sure, so I'm going to put out an rc instead of making a release
2668 today, and wait for feedback for at least a few days.
2678 today, and wait for feedback for at least a few days.
2669
2679
2670 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2680 * IPython/iplib.py (handle_normal): fix (finally? somehow I doubt
2671 it...) the handling of pasting external code with autoindent on.
2681 it...) the handling of pasting external code with autoindent on.
2672 To get out of a multiline input, the rule will appear for most
2682 To get out of a multiline input, the rule will appear for most
2673 users unchanged: two blank lines or change the indent level
2683 users unchanged: two blank lines or change the indent level
2674 proposed by IPython. But there is a twist now: you can
2684 proposed by IPython. But there is a twist now: you can
2675 add/subtract only *one or two spaces*. If you add/subtract three
2685 add/subtract only *one or two spaces*. If you add/subtract three
2676 or more (unless you completely delete the line), IPython will
2686 or more (unless you completely delete the line), IPython will
2677 accept that line, and you'll need to enter a second one of pure
2687 accept that line, and you'll need to enter a second one of pure
2678 whitespace. I know it sounds complicated, but I can't find a
2688 whitespace. I know it sounds complicated, but I can't find a
2679 different solution that covers all the cases, with the right
2689 different solution that covers all the cases, with the right
2680 heuristics. Hopefully in actual use, nobody will really notice
2690 heuristics. Hopefully in actual use, nobody will really notice
2681 all these strange rules and things will 'just work'.
2691 all these strange rules and things will 'just work'.
2682
2692
2683 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2693 2006-01-21 Fernando Perez <Fernando.Perez@colorado.edu>
2684
2694
2685 * IPython/iplib.py (interact): catch exceptions which can be
2695 * IPython/iplib.py (interact): catch exceptions which can be
2686 triggered asynchronously by signal handlers. Thanks to an
2696 triggered asynchronously by signal handlers. Thanks to an
2687 automatic crash report, submitted by Colin Kingsley
2697 automatic crash report, submitted by Colin Kingsley
2688 <tercel-AT-gentoo.org>.
2698 <tercel-AT-gentoo.org>.
2689
2699
2690 2006-01-20 Ville Vainio <vivainio@gmail.com>
2700 2006-01-20 Ville Vainio <vivainio@gmail.com>
2691
2701
2692 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2702 * Ipython/Extensions/ext_rehashdir.py: Created a usable example
2693 (%rehashdir, very useful, try it out) of how to extend ipython
2703 (%rehashdir, very useful, try it out) of how to extend ipython
2694 with new magics. Also added Extensions dir to pythonpath to make
2704 with new magics. Also added Extensions dir to pythonpath to make
2695 importing extensions easy.
2705 importing extensions easy.
2696
2706
2697 * %store now complains when trying to store interactively declared
2707 * %store now complains when trying to store interactively declared
2698 classes / instances of those classes.
2708 classes / instances of those classes.
2699
2709
2700 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2710 * Extensions/ipy_system_conf.py, UserConfig/ipy_user_conf.py,
2701 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2711 ipmaker.py: Config rehaul. Now ipy_..._conf.py are always imported
2702 if they exist, and ipy_user_conf.py with some defaults is created for
2712 if they exist, and ipy_user_conf.py with some defaults is created for
2703 the user.
2713 the user.
2704
2714
2705 * Startup rehashing done by the config file, not InterpreterExec.
2715 * Startup rehashing done by the config file, not InterpreterExec.
2706 This means system commands are available even without selecting the
2716 This means system commands are available even without selecting the
2707 pysh profile. It's the sensible default after all.
2717 pysh profile. It's the sensible default after all.
2708
2718
2709 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2719 2006-01-20 Fernando Perez <Fernando.Perez@colorado.edu>
2710
2720
2711 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2721 * IPython/iplib.py (raw_input): I _think_ I got the pasting of
2712 multiline code with autoindent on working. But I am really not
2722 multiline code with autoindent on working. But I am really not
2713 sure, so this needs more testing. Will commit a debug-enabled
2723 sure, so this needs more testing. Will commit a debug-enabled
2714 version for now, while I test it some more, so that Ville and
2724 version for now, while I test it some more, so that Ville and
2715 others may also catch any problems. Also made
2725 others may also catch any problems. Also made
2716 self.indent_current_str() a method, to ensure that there's no
2726 self.indent_current_str() a method, to ensure that there's no
2717 chance of the indent space count and the corresponding string
2727 chance of the indent space count and the corresponding string
2718 falling out of sync. All code needing the string should just call
2728 falling out of sync. All code needing the string should just call
2719 the method.
2729 the method.
2720
2730
2721 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2731 2006-01-18 Fernando Perez <Fernando.Perez@colorado.edu>
2722
2732
2723 * IPython/Magic.py (magic_edit): fix check for when users don't
2733 * IPython/Magic.py (magic_edit): fix check for when users don't
2724 save their output files, the try/except was in the wrong section.
2734 save their output files, the try/except was in the wrong section.
2725
2735
2726 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2736 2006-01-17 Fernando Perez <Fernando.Perez@colorado.edu>
2727
2737
2728 * IPython/Magic.py (magic_run): fix __file__ global missing from
2738 * IPython/Magic.py (magic_run): fix __file__ global missing from
2729 script's namespace when executed via %run. After a report by
2739 script's namespace when executed via %run. After a report by
2730 Vivian.
2740 Vivian.
2731
2741
2732 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2742 * IPython/Debugger.py (Pdb.__init__): Fix breakage with '%run -d'
2733 when using python 2.4. The parent constructor changed in 2.4, and
2743 when using python 2.4. The parent constructor changed in 2.4, and
2734 we need to track it directly (we can't call it, as it messes up
2744 we need to track it directly (we can't call it, as it messes up
2735 readline and tab-completion inside our pdb would stop working).
2745 readline and tab-completion inside our pdb would stop working).
2736 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2746 After a bug report by R. Bernstein <rocky-AT-panix.com>.
2737
2747
2738 2006-01-16 Ville Vainio <vivainio@gmail.com>
2748 2006-01-16 Ville Vainio <vivainio@gmail.com>
2739
2749
2740 * Ipython/magic.py: Reverted back to old %edit functionality
2750 * Ipython/magic.py: Reverted back to old %edit functionality
2741 that returns file contents on exit.
2751 that returns file contents on exit.
2742
2752
2743 * IPython/path.py: Added Jason Orendorff's "path" module to
2753 * IPython/path.py: Added Jason Orendorff's "path" module to
2744 IPython tree, http://www.jorendorff.com/articles/python/path/.
2754 IPython tree, http://www.jorendorff.com/articles/python/path/.
2745 You can get path objects conveniently through %sc, and !!, e.g.:
2755 You can get path objects conveniently through %sc, and !!, e.g.:
2746 sc files=ls
2756 sc files=ls
2747 for p in files.paths: # or files.p
2757 for p in files.paths: # or files.p
2748 print p,p.mtime
2758 print p,p.mtime
2749
2759
2750 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2760 * Ipython/iplib.py:"," and ";" autoquoting-upon-autocall
2751 now work again without considering the exclusion regexp -
2761 now work again without considering the exclusion regexp -
2752 hence, things like ',foo my/path' turn to 'foo("my/path")'
2762 hence, things like ',foo my/path' turn to 'foo("my/path")'
2753 instead of syntax error.
2763 instead of syntax error.
2754
2764
2755
2765
2756 2006-01-14 Ville Vainio <vivainio@gmail.com>
2766 2006-01-14 Ville Vainio <vivainio@gmail.com>
2757
2767
2758 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2768 * IPython/ipapi.py (ashook, asmagic, options): Added convenience
2759 ipapi decorators for python 2.4 users, options() provides access to rc
2769 ipapi decorators for python 2.4 users, options() provides access to rc
2760 data.
2770 data.
2761
2771
2762 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2772 * IPython/Magic.py (magic_cd): %cd now accepts backslashes
2763 as path separators (even on Linux ;-). Space character after
2773 as path separators (even on Linux ;-). Space character after
2764 backslash (as yielded by tab completer) is still space;
2774 backslash (as yielded by tab completer) is still space;
2765 "%cd long\ name" works as expected.
2775 "%cd long\ name" works as expected.
2766
2776
2767 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2777 * IPython/ipapi.py,hooks.py,iplib.py: Hooks now implemented
2768 as "chain of command", with priority. API stays the same,
2778 as "chain of command", with priority. API stays the same,
2769 TryNext exception raised by a hook function signals that
2779 TryNext exception raised by a hook function signals that
2770 current hook failed and next hook should try handling it, as
2780 current hook failed and next hook should try handling it, as
2771 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2781 suggested by Walter DΓΆrwald <walter@livinglogic.de>. Walter also
2772 requested configurable display hook, which is now implemented.
2782 requested configurable display hook, which is now implemented.
2773
2783
2774 2006-01-13 Ville Vainio <vivainio@gmail.com>
2784 2006-01-13 Ville Vainio <vivainio@gmail.com>
2775
2785
2776 * IPython/platutils*.py: platform specific utility functions,
2786 * IPython/platutils*.py: platform specific utility functions,
2777 so far only set_term_title is implemented (change terminal
2787 so far only set_term_title is implemented (change terminal
2778 label in windowing systems). %cd now changes the title to
2788 label in windowing systems). %cd now changes the title to
2779 current dir.
2789 current dir.
2780
2790
2781 * IPython/Release.py: Added myself to "authors" list,
2791 * IPython/Release.py: Added myself to "authors" list,
2782 had to create new files.
2792 had to create new files.
2783
2793
2784 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2794 * IPython/iplib.py (handle_shell_escape): fixed logical flaw in
2785 shell escape; not a known bug but had potential to be one in the
2795 shell escape; not a known bug but had potential to be one in the
2786 future.
2796 future.
2787
2797
2788 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2798 * IPython/ipapi.py (added),OInspect.py,iplib.py: "Public"
2789 extension API for IPython! See the module for usage example. Fix
2799 extension API for IPython! See the module for usage example. Fix
2790 OInspect for docstring-less magic functions.
2800 OInspect for docstring-less magic functions.
2791
2801
2792
2802
2793 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2803 2006-01-13 Fernando Perez <Fernando.Perez@colorado.edu>
2794
2804
2795 * IPython/iplib.py (raw_input): temporarily deactivate all
2805 * IPython/iplib.py (raw_input): temporarily deactivate all
2796 attempts at allowing pasting of code with autoindent on. It
2806 attempts at allowing pasting of code with autoindent on. It
2797 introduced bugs (reported by Prabhu) and I can't seem to find a
2807 introduced bugs (reported by Prabhu) and I can't seem to find a
2798 robust combination which works in all cases. Will have to revisit
2808 robust combination which works in all cases. Will have to revisit
2799 later.
2809 later.
2800
2810
2801 * IPython/genutils.py: remove isspace() function. We've dropped
2811 * IPython/genutils.py: remove isspace() function. We've dropped
2802 2.2 compatibility, so it's OK to use the string method.
2812 2.2 compatibility, so it's OK to use the string method.
2803
2813
2804 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2814 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2805
2815
2806 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2816 * IPython/iplib.py (InteractiveShell.__init__): fix regexp
2807 matching what NOT to autocall on, to include all python binary
2817 matching what NOT to autocall on, to include all python binary
2808 operators (including things like 'and', 'or', 'is' and 'in').
2818 operators (including things like 'and', 'or', 'is' and 'in').
2809 Prompted by a bug report on 'foo & bar', but I realized we had
2819 Prompted by a bug report on 'foo & bar', but I realized we had
2810 many more potential bug cases with other operators. The regexp is
2820 many more potential bug cases with other operators. The regexp is
2811 self.re_exclude_auto, it's fairly commented.
2821 self.re_exclude_auto, it's fairly commented.
2812
2822
2813 2006-01-12 Ville Vainio <vivainio@gmail.com>
2823 2006-01-12 Ville Vainio <vivainio@gmail.com>
2814
2824
2815 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2825 * IPython/iplib.py (make_quoted_expr,handle_shell_escape):
2816 Prettified and hardened string/backslash quoting with ipsystem(),
2826 Prettified and hardened string/backslash quoting with ipsystem(),
2817 ipalias() and ipmagic(). Now even \ characters are passed to
2827 ipalias() and ipmagic(). Now even \ characters are passed to
2818 %magics, !shell escapes and aliases exactly as they are in the
2828 %magics, !shell escapes and aliases exactly as they are in the
2819 ipython command line. Should improve backslash experience,
2829 ipython command line. Should improve backslash experience,
2820 particularly in Windows (path delimiter for some commands that
2830 particularly in Windows (path delimiter for some commands that
2821 won't understand '/'), but Unix benefits as well (regexps). %cd
2831 won't understand '/'), but Unix benefits as well (regexps). %cd
2822 magic still doesn't support backslash path delimiters, though. Also
2832 magic still doesn't support backslash path delimiters, though. Also
2823 deleted all pretense of supporting multiline command strings in
2833 deleted all pretense of supporting multiline command strings in
2824 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2834 !system or %magic commands. Thanks to Jerry McRae for suggestions.
2825
2835
2826 * doc/build_doc_instructions.txt added. Documentation on how to
2836 * doc/build_doc_instructions.txt added. Documentation on how to
2827 use doc/update_manual.py, added yesterday. Both files contributed
2837 use doc/update_manual.py, added yesterday. Both files contributed
2828 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2838 by JΓΆrgen Stenarson <jorgen.stenarson-AT-bostream.nu>. This slates
2829 doc/*.sh for deprecation at a later date.
2839 doc/*.sh for deprecation at a later date.
2830
2840
2831 * /ipython.py Added ipython.py to root directory for
2841 * /ipython.py Added ipython.py to root directory for
2832 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2842 zero-installation (tar xzvf ipython.tgz; cd ipython; python
2833 ipython.py) and development convenience (no need to keep doing
2843 ipython.py) and development convenience (no need to keep doing
2834 "setup.py install" between changes).
2844 "setup.py install" between changes).
2835
2845
2836 * Made ! and !! shell escapes work (again) in multiline expressions:
2846 * Made ! and !! shell escapes work (again) in multiline expressions:
2837 if 1:
2847 if 1:
2838 !ls
2848 !ls
2839 !!ls
2849 !!ls
2840
2850
2841 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2851 2006-01-12 Fernando Perez <Fernando.Perez@colorado.edu>
2842
2852
2843 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2853 * IPython/ipstruct.py (Struct): Rename IPython.Struct to
2844 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2854 IPython.ipstruct, to avoid local shadowing of the stdlib 'struct'
2845 module in case-insensitive installation. Was causing crashes
2855 module in case-insensitive installation. Was causing crashes
2846 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2856 under win32. Closes http://www.scipy.net/roundup/ipython/issue49.
2847
2857
2848 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2858 * IPython/Magic.py (magic_pycat): Fix pycat, patch by Marien Zwart
2849 <marienz-AT-gentoo.org>, closes
2859 <marienz-AT-gentoo.org>, closes
2850 http://www.scipy.net/roundup/ipython/issue51.
2860 http://www.scipy.net/roundup/ipython/issue51.
2851
2861
2852 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2862 2006-01-11 Fernando Perez <Fernando.Perez@colorado.edu>
2853
2863
2854 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2864 * IPython/Shell.py (IPShellGTK.on_timer): Finally fix the
2855 problem of excessive CPU usage under *nix and keyboard lag under
2865 problem of excessive CPU usage under *nix and keyboard lag under
2856 win32.
2866 win32.
2857
2867
2858 2006-01-10 *** Released version 0.7.0
2868 2006-01-10 *** Released version 0.7.0
2859
2869
2860 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2870 2006-01-10 Fernando Perez <Fernando.Perez@colorado.edu>
2861
2871
2862 * IPython/Release.py (revision): tag version number to 0.7.0,
2872 * IPython/Release.py (revision): tag version number to 0.7.0,
2863 ready for release.
2873 ready for release.
2864
2874
2865 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2875 * IPython/Magic.py (magic_edit): Add print statement to %edit so
2866 it informs the user of the name of the temp. file used. This can
2876 it informs the user of the name of the temp. file used. This can
2867 help if you decide later to reuse that same file, so you know
2877 help if you decide later to reuse that same file, so you know
2868 where to copy the info from.
2878 where to copy the info from.
2869
2879
2870 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2880 2006-01-09 Fernando Perez <Fernando.Perez@colorado.edu>
2871
2881
2872 * setup_bdist_egg.py: little script to build an egg. Added
2882 * setup_bdist_egg.py: little script to build an egg. Added
2873 support in the release tools as well.
2883 support in the release tools as well.
2874
2884
2875 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2885 2006-01-08 Fernando Perez <Fernando.Perez@colorado.edu>
2876
2886
2877 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2887 * IPython/Shell.py (IPShellWX.__init__): add support for WXPython
2878 version selection (new -wxversion command line and ipythonrc
2888 version selection (new -wxversion command line and ipythonrc
2879 parameter). Patch contributed by Arnd Baecker
2889 parameter). Patch contributed by Arnd Baecker
2880 <arnd.baecker-AT-web.de>.
2890 <arnd.baecker-AT-web.de>.
2881
2891
2882 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2892 * IPython/iplib.py (embed_mainloop): fix tab-completion in
2883 embedded instances, for variables defined at the interactive
2893 embedded instances, for variables defined at the interactive
2884 prompt of the embedded ipython. Reported by Arnd.
2894 prompt of the embedded ipython. Reported by Arnd.
2885
2895
2886 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2896 * IPython/Magic.py (magic_autocall): Fix %autocall magic. Now
2887 it can be used as a (stateful) toggle, or with a direct parameter.
2897 it can be used as a (stateful) toggle, or with a direct parameter.
2888
2898
2889 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2899 * IPython/ultraTB.py (_fixed_getinnerframes): remove debug assert which
2890 could be triggered in certain cases and cause the traceback
2900 could be triggered in certain cases and cause the traceback
2891 printer not to work.
2901 printer not to work.
2892
2902
2893 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2903 2006-01-07 Fernando Perez <Fernando.Perez@colorado.edu>
2894
2904
2895 * IPython/iplib.py (_should_recompile): Small fix, closes
2905 * IPython/iplib.py (_should_recompile): Small fix, closes
2896 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2906 http://www.scipy.net/roundup/ipython/issue48. Patch by Scott.
2897
2907
2898 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2908 2006-01-04 Fernando Perez <Fernando.Perez@colorado.edu>
2899
2909
2900 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2910 * IPython/Shell.py (IPShellGTK.mainloop): fix bug in the GTK
2901 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2911 backend for matplotlib (100% cpu utiliziation). Thanks to Charlie
2902 Moad for help with tracking it down.
2912 Moad for help with tracking it down.
2903
2913
2904 * IPython/iplib.py (handle_auto): fix autocall handling for
2914 * IPython/iplib.py (handle_auto): fix autocall handling for
2905 objects which support BOTH __getitem__ and __call__ (so that f [x]
2915 objects which support BOTH __getitem__ and __call__ (so that f [x]
2906 is left alone, instead of becoming f([x]) automatically).
2916 is left alone, instead of becoming f([x]) automatically).
2907
2917
2908 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2918 * IPython/Magic.py (magic_cd): fix crash when cd -b was used.
2909 Ville's patch.
2919 Ville's patch.
2910
2920
2911 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2921 2006-01-03 Fernando Perez <Fernando.Perez@colorado.edu>
2912
2922
2913 * IPython/iplib.py (handle_auto): changed autocall semantics to
2923 * IPython/iplib.py (handle_auto): changed autocall semantics to
2914 include 'smart' mode, where the autocall transformation is NOT
2924 include 'smart' mode, where the autocall transformation is NOT
2915 applied if there are no arguments on the line. This allows you to
2925 applied if there are no arguments on the line. This allows you to
2916 just type 'foo' if foo is a callable to see its internal form,
2926 just type 'foo' if foo is a callable to see its internal form,
2917 instead of having it called with no arguments (typically a
2927 instead of having it called with no arguments (typically a
2918 mistake). The old 'full' autocall still exists: for that, you
2928 mistake). The old 'full' autocall still exists: for that, you
2919 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2929 need to set the 'autocall' parameter to 2 in your ipythonrc file.
2920
2930
2921 * IPython/completer.py (Completer.attr_matches): add
2931 * IPython/completer.py (Completer.attr_matches): add
2922 tab-completion support for Enthoughts' traits. After a report by
2932 tab-completion support for Enthoughts' traits. After a report by
2923 Arnd and a patch by Prabhu.
2933 Arnd and a patch by Prabhu.
2924
2934
2925 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2935 2006-01-02 Fernando Perez <Fernando.Perez@colorado.edu>
2926
2936
2927 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2937 * IPython/ultraTB.py (_fixed_getinnerframes): added Alex
2928 Schmolck's patch to fix inspect.getinnerframes().
2938 Schmolck's patch to fix inspect.getinnerframes().
2929
2939
2930 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2940 * IPython/iplib.py (InteractiveShell.__init__): significant fixes
2931 for embedded instances, regarding handling of namespaces and items
2941 for embedded instances, regarding handling of namespaces and items
2932 added to the __builtin__ one. Multiple embedded instances and
2942 added to the __builtin__ one. Multiple embedded instances and
2933 recursive embeddings should work better now (though I'm not sure
2943 recursive embeddings should work better now (though I'm not sure
2934 I've got all the corner cases fixed, that code is a bit of a brain
2944 I've got all the corner cases fixed, that code is a bit of a brain
2935 twister).
2945 twister).
2936
2946
2937 * IPython/Magic.py (magic_edit): added support to edit in-memory
2947 * IPython/Magic.py (magic_edit): added support to edit in-memory
2938 macros (automatically creates the necessary temp files). %edit
2948 macros (automatically creates the necessary temp files). %edit
2939 also doesn't return the file contents anymore, it's just noise.
2949 also doesn't return the file contents anymore, it's just noise.
2940
2950
2941 * IPython/completer.py (Completer.attr_matches): revert change to
2951 * IPython/completer.py (Completer.attr_matches): revert change to
2942 complete only on attributes listed in __all__. I realized it
2952 complete only on attributes listed in __all__. I realized it
2943 cripples the tab-completion system as a tool for exploring the
2953 cripples the tab-completion system as a tool for exploring the
2944 internals of unknown libraries (it renders any non-__all__
2954 internals of unknown libraries (it renders any non-__all__
2945 attribute off-limits). I got bit by this when trying to see
2955 attribute off-limits). I got bit by this when trying to see
2946 something inside the dis module.
2956 something inside the dis module.
2947
2957
2948 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2958 2005-12-31 Fernando Perez <Fernando.Perez@colorado.edu>
2949
2959
2950 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2960 * IPython/iplib.py (InteractiveShell.__init__): add .meta
2951 namespace for users and extension writers to hold data in. This
2961 namespace for users and extension writers to hold data in. This
2952 follows the discussion in
2962 follows the discussion in
2953 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2963 http://projects.scipy.org/ipython/ipython/wiki/RefactoringIPython.
2954
2964
2955 * IPython/completer.py (IPCompleter.complete): small patch to help
2965 * IPython/completer.py (IPCompleter.complete): small patch to help
2956 tab-completion under Emacs, after a suggestion by John Barnard
2966 tab-completion under Emacs, after a suggestion by John Barnard
2957 <barnarj-AT-ccf.org>.
2967 <barnarj-AT-ccf.org>.
2958
2968
2959 * IPython/Magic.py (Magic.extract_input_slices): added support for
2969 * IPython/Magic.py (Magic.extract_input_slices): added support for
2960 the slice notation in magics to use N-M to represent numbers N...M
2970 the slice notation in magics to use N-M to represent numbers N...M
2961 (closed endpoints). This is used by %macro and %save.
2971 (closed endpoints). This is used by %macro and %save.
2962
2972
2963 * IPython/completer.py (Completer.attr_matches): for modules which
2973 * IPython/completer.py (Completer.attr_matches): for modules which
2964 define __all__, complete only on those. After a patch by Jeffrey
2974 define __all__, complete only on those. After a patch by Jeffrey
2965 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2975 Collins <jcollins_boulder-AT-earthlink.net>. Also, clean up and
2966 speed up this routine.
2976 speed up this routine.
2967
2977
2968 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2978 * IPython/Logger.py (Logger.log): fix a history handling bug. I
2969 don't know if this is the end of it, but the behavior now is
2979 don't know if this is the end of it, but the behavior now is
2970 certainly much more correct. Note that coupled with macros,
2980 certainly much more correct. Note that coupled with macros,
2971 slightly surprising (at first) behavior may occur: a macro will in
2981 slightly surprising (at first) behavior may occur: a macro will in
2972 general expand to multiple lines of input, so upon exiting, the
2982 general expand to multiple lines of input, so upon exiting, the
2973 in/out counters will both be bumped by the corresponding amount
2983 in/out counters will both be bumped by the corresponding amount
2974 (as if the macro's contents had been typed interactively). Typing
2984 (as if the macro's contents had been typed interactively). Typing
2975 %hist will reveal the intermediate (silently processed) lines.
2985 %hist will reveal the intermediate (silently processed) lines.
2976
2986
2977 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2987 * IPython/Magic.py (magic_run): fix a subtle bug which could cause
2978 pickle to fail (%run was overwriting __main__ and not restoring
2988 pickle to fail (%run was overwriting __main__ and not restoring
2979 it, but pickle relies on __main__ to operate).
2989 it, but pickle relies on __main__ to operate).
2980
2990
2981 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2991 * IPython/iplib.py (InteractiveShell): fix pdb calling: I'm now
2982 using properties, but forgot to make the main InteractiveShell
2992 using properties, but forgot to make the main InteractiveShell
2983 class a new-style class. Properties fail silently, and
2993 class a new-style class. Properties fail silently, and
2984 mysteriously, with old-style class (getters work, but
2994 mysteriously, with old-style class (getters work, but
2985 setters don't do anything).
2995 setters don't do anything).
2986
2996
2987 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2997 2005-12-30 Fernando Perez <Fernando.Perez@colorado.edu>
2988
2998
2989 * IPython/Magic.py (magic_history): fix history reporting bug (I
2999 * IPython/Magic.py (magic_history): fix history reporting bug (I
2990 know some nasties are still there, I just can't seem to find a
3000 know some nasties are still there, I just can't seem to find a
2991 reproducible test case to track them down; the input history is
3001 reproducible test case to track them down; the input history is
2992 falling out of sync...)
3002 falling out of sync...)
2993
3003
2994 * IPython/iplib.py (handle_shell_escape): fix bug where both
3004 * IPython/iplib.py (handle_shell_escape): fix bug where both
2995 aliases and system accesses where broken for indented code (such
3005 aliases and system accesses where broken for indented code (such
2996 as loops).
3006 as loops).
2997
3007
2998 * IPython/genutils.py (shell): fix small but critical bug for
3008 * IPython/genutils.py (shell): fix small but critical bug for
2999 win32 system access.
3009 win32 system access.
3000
3010
3001 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
3011 2005-12-29 Fernando Perez <Fernando.Perez@colorado.edu>
3002
3012
3003 * IPython/iplib.py (showtraceback): remove use of the
3013 * IPython/iplib.py (showtraceback): remove use of the
3004 sys.last_{type/value/traceback} structures, which are non
3014 sys.last_{type/value/traceback} structures, which are non
3005 thread-safe.
3015 thread-safe.
3006 (_prefilter): change control flow to ensure that we NEVER
3016 (_prefilter): change control flow to ensure that we NEVER
3007 introspect objects when autocall is off. This will guarantee that
3017 introspect objects when autocall is off. This will guarantee that
3008 having an input line of the form 'x.y', where access to attribute
3018 having an input line of the form 'x.y', where access to attribute
3009 'y' has side effects, doesn't trigger the side effect TWICE. It
3019 'y' has side effects, doesn't trigger the side effect TWICE. It
3010 is important to note that, with autocall on, these side effects
3020 is important to note that, with autocall on, these side effects
3011 can still happen.
3021 can still happen.
3012 (ipsystem): new builtin, to complete the ip{magic/alias/system}
3022 (ipsystem): new builtin, to complete the ip{magic/alias/system}
3013 trio. IPython offers these three kinds of special calls which are
3023 trio. IPython offers these three kinds of special calls which are
3014 not python code, and it's a good thing to have their call method
3024 not python code, and it's a good thing to have their call method
3015 be accessible as pure python functions (not just special syntax at
3025 be accessible as pure python functions (not just special syntax at
3016 the command line). It gives us a better internal implementation
3026 the command line). It gives us a better internal implementation
3017 structure, as well as exposing these for user scripting more
3027 structure, as well as exposing these for user scripting more
3018 cleanly.
3028 cleanly.
3019
3029
3020 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3030 * IPython/macro.py (Macro.__init__): moved macros to a standalone
3021 file. Now that they'll be more likely to be used with the
3031 file. Now that they'll be more likely to be used with the
3022 persistance system (%store), I want to make sure their module path
3032 persistance system (%store), I want to make sure their module path
3023 doesn't change in the future, so that we don't break things for
3033 doesn't change in the future, so that we don't break things for
3024 users' persisted data.
3034 users' persisted data.
3025
3035
3026 * IPython/iplib.py (autoindent_update): move indentation
3036 * IPython/iplib.py (autoindent_update): move indentation
3027 management into the _text_ processing loop, not the keyboard
3037 management into the _text_ processing loop, not the keyboard
3028 interactive one. This is necessary to correctly process non-typed
3038 interactive one. This is necessary to correctly process non-typed
3029 multiline input (such as macros).
3039 multiline input (such as macros).
3030
3040
3031 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3041 * IPython/Magic.py (Magic.format_latex): patch by Stefan van der
3032 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3042 Walt <stefan-AT-sun.ac.za> to fix latex formatting of docstrings,
3033 which was producing problems in the resulting manual.
3043 which was producing problems in the resulting manual.
3034 (magic_whos): improve reporting of instances (show their class,
3044 (magic_whos): improve reporting of instances (show their class,
3035 instead of simply printing 'instance' which isn't terribly
3045 instead of simply printing 'instance' which isn't terribly
3036 informative).
3046 informative).
3037
3047
3038 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3048 * IPython/genutils.py (shell): commit Jorgen Stenarson's patch
3039 (minor mods) to support network shares under win32.
3049 (minor mods) to support network shares under win32.
3040
3050
3041 * IPython/winconsole.py (get_console_size): add new winconsole
3051 * IPython/winconsole.py (get_console_size): add new winconsole
3042 module and fixes to page_dumb() to improve its behavior under
3052 module and fixes to page_dumb() to improve its behavior under
3043 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3053 win32. Contributed by Alexander Belchenko <bialix-AT-ukr.net>.
3044
3054
3045 * IPython/Magic.py (Macro): simplified Macro class to just
3055 * IPython/Magic.py (Macro): simplified Macro class to just
3046 subclass list. We've had only 2.2 compatibility for a very long
3056 subclass list. We've had only 2.2 compatibility for a very long
3047 time, yet I was still avoiding subclassing the builtin types. No
3057 time, yet I was still avoiding subclassing the builtin types. No
3048 more (I'm also starting to use properties, though I won't shift to
3058 more (I'm also starting to use properties, though I won't shift to
3049 2.3-specific features quite yet).
3059 2.3-specific features quite yet).
3050 (magic_store): added Ville's patch for lightweight variable
3060 (magic_store): added Ville's patch for lightweight variable
3051 persistence, after a request on the user list by Matt Wilkie
3061 persistence, after a request on the user list by Matt Wilkie
3052 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3062 <maphew-AT-gmail.com>. The new %store magic's docstring has full
3053 details.
3063 details.
3054
3064
3055 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3065 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3056 changed the default logfile name from 'ipython.log' to
3066 changed the default logfile name from 'ipython.log' to
3057 'ipython_log.py'. These logs are real python files, and now that
3067 'ipython_log.py'. These logs are real python files, and now that
3058 we have much better multiline support, people are more likely to
3068 we have much better multiline support, people are more likely to
3059 want to use them as such. Might as well name them correctly.
3069 want to use them as such. Might as well name them correctly.
3060
3070
3061 * IPython/Magic.py: substantial cleanup. While we can't stop
3071 * IPython/Magic.py: substantial cleanup. While we can't stop
3062 using magics as mixins, due to the existing customizations 'out
3072 using magics as mixins, due to the existing customizations 'out
3063 there' which rely on the mixin naming conventions, at least I
3073 there' which rely on the mixin naming conventions, at least I
3064 cleaned out all cross-class name usage. So once we are OK with
3074 cleaned out all cross-class name usage. So once we are OK with
3065 breaking compatibility, the two systems can be separated.
3075 breaking compatibility, the two systems can be separated.
3066
3076
3067 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3077 * IPython/Logger.py: major cleanup. This one is NOT a mixin
3068 anymore, and the class is a fair bit less hideous as well. New
3078 anymore, and the class is a fair bit less hideous as well. New
3069 features were also introduced: timestamping of input, and logging
3079 features were also introduced: timestamping of input, and logging
3070 of output results. These are user-visible with the -t and -o
3080 of output results. These are user-visible with the -t and -o
3071 options to %logstart. Closes
3081 options to %logstart. Closes
3072 http://www.scipy.net/roundup/ipython/issue11 and a request by
3082 http://www.scipy.net/roundup/ipython/issue11 and a request by
3073 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3083 William Stein (SAGE developer - http://modular.ucsd.edu/sage).
3074
3084
3075 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3085 2005-12-28 Fernando Perez <Fernando.Perez@colorado.edu>
3076
3086
3077 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3087 * IPython/iplib.py (handle_shell_escape): add Ville's patch to
3078 better handle backslashes in paths. See the thread 'More Windows
3088 better handle backslashes in paths. See the thread 'More Windows
3079 questions part 2 - \/ characters revisited' on the iypthon user
3089 questions part 2 - \/ characters revisited' on the iypthon user
3080 list:
3090 list:
3081 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3091 http://scipy.net/pipermail/ipython-user/2005-June/000907.html
3082
3092
3083 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3093 (InteractiveShell.__init__): fix tab-completion bug in threaded shells.
3084
3094
3085 (InteractiveShell.__init__): change threaded shells to not use the
3095 (InteractiveShell.__init__): change threaded shells to not use the
3086 ipython crash handler. This was causing more problems than not,
3096 ipython crash handler. This was causing more problems than not,
3087 as exceptions in the main thread (GUI code, typically) would
3097 as exceptions in the main thread (GUI code, typically) would
3088 always show up as a 'crash', when they really weren't.
3098 always show up as a 'crash', when they really weren't.
3089
3099
3090 The colors and exception mode commands (%colors/%xmode) have been
3100 The colors and exception mode commands (%colors/%xmode) have been
3091 synchronized to also take this into account, so users can get
3101 synchronized to also take this into account, so users can get
3092 verbose exceptions for their threaded code as well. I also added
3102 verbose exceptions for their threaded code as well. I also added
3093 support for activating pdb inside this exception handler as well,
3103 support for activating pdb inside this exception handler as well,
3094 so now GUI authors can use IPython's enhanced pdb at runtime.
3104 so now GUI authors can use IPython's enhanced pdb at runtime.
3095
3105
3096 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3106 * IPython/ipmaker.py (make_IPython): make the autoedit_syntax flag
3097 true by default, and add it to the shipped ipythonrc file. Since
3107 true by default, and add it to the shipped ipythonrc file. Since
3098 this asks the user before proceeding, I think it's OK to make it
3108 this asks the user before proceeding, I think it's OK to make it
3099 true by default.
3109 true by default.
3100
3110
3101 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3111 * IPython/Magic.py (magic_exit): make new exit/quit magics instead
3102 of the previous special-casing of input in the eval loop. I think
3112 of the previous special-casing of input in the eval loop. I think
3103 this is cleaner, as they really are commands and shouldn't have
3113 this is cleaner, as they really are commands and shouldn't have
3104 a special role in the middle of the core code.
3114 a special role in the middle of the core code.
3105
3115
3106 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3116 2005-12-27 Fernando Perez <Fernando.Perez@colorado.edu>
3107
3117
3108 * IPython/iplib.py (edit_syntax_error): added support for
3118 * IPython/iplib.py (edit_syntax_error): added support for
3109 automatically reopening the editor if the file had a syntax error
3119 automatically reopening the editor if the file had a syntax error
3110 in it. Thanks to scottt who provided the patch at:
3120 in it. Thanks to scottt who provided the patch at:
3111 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3121 http://www.scipy.net/roundup/ipython/issue36 (slightly modified
3112 version committed).
3122 version committed).
3113
3123
3114 * IPython/iplib.py (handle_normal): add suport for multi-line
3124 * IPython/iplib.py (handle_normal): add suport for multi-line
3115 input with emtpy lines. This fixes
3125 input with emtpy lines. This fixes
3116 http://www.scipy.net/roundup/ipython/issue43 and a similar
3126 http://www.scipy.net/roundup/ipython/issue43 and a similar
3117 discussion on the user list.
3127 discussion on the user list.
3118
3128
3119 WARNING: a behavior change is necessarily introduced to support
3129 WARNING: a behavior change is necessarily introduced to support
3120 blank lines: now a single blank line with whitespace does NOT
3130 blank lines: now a single blank line with whitespace does NOT
3121 break the input loop, which means that when autoindent is on, by
3131 break the input loop, which means that when autoindent is on, by
3122 default hitting return on the next (indented) line does NOT exit.
3132 default hitting return on the next (indented) line does NOT exit.
3123
3133
3124 Instead, to exit a multiline input you can either have:
3134 Instead, to exit a multiline input you can either have:
3125
3135
3126 - TWO whitespace lines (just hit return again), or
3136 - TWO whitespace lines (just hit return again), or
3127 - a single whitespace line of a different length than provided
3137 - a single whitespace line of a different length than provided
3128 by the autoindent (add or remove a space).
3138 by the autoindent (add or remove a space).
3129
3139
3130 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3140 * IPython/completer.py (MagicCompleter.__init__): new 'completer'
3131 module to better organize all readline-related functionality.
3141 module to better organize all readline-related functionality.
3132 I've deleted FlexCompleter and put all completion clases here.
3142 I've deleted FlexCompleter and put all completion clases here.
3133
3143
3134 * IPython/iplib.py (raw_input): improve indentation management.
3144 * IPython/iplib.py (raw_input): improve indentation management.
3135 It is now possible to paste indented code with autoindent on, and
3145 It is now possible to paste indented code with autoindent on, and
3136 the code is interpreted correctly (though it still looks bad on
3146 the code is interpreted correctly (though it still looks bad on
3137 screen, due to the line-oriented nature of ipython).
3147 screen, due to the line-oriented nature of ipython).
3138 (MagicCompleter.complete): change behavior so that a TAB key on an
3148 (MagicCompleter.complete): change behavior so that a TAB key on an
3139 otherwise empty line actually inserts a tab, instead of completing
3149 otherwise empty line actually inserts a tab, instead of completing
3140 on the entire global namespace. This makes it easier to use the
3150 on the entire global namespace. This makes it easier to use the
3141 TAB key for indentation. After a request by Hans Meine
3151 TAB key for indentation. After a request by Hans Meine
3142 <hans_meine-AT-gmx.net>
3152 <hans_meine-AT-gmx.net>
3143 (_prefilter): add support so that typing plain 'exit' or 'quit'
3153 (_prefilter): add support so that typing plain 'exit' or 'quit'
3144 does a sensible thing. Originally I tried to deviate as little as
3154 does a sensible thing. Originally I tried to deviate as little as
3145 possible from the default python behavior, but even that one may
3155 possible from the default python behavior, but even that one may
3146 change in this direction (thread on python-dev to that effect).
3156 change in this direction (thread on python-dev to that effect).
3147 Regardless, ipython should do the right thing even if CPython's
3157 Regardless, ipython should do the right thing even if CPython's
3148 '>>>' prompt doesn't.
3158 '>>>' prompt doesn't.
3149 (InteractiveShell): removed subclassing code.InteractiveConsole
3159 (InteractiveShell): removed subclassing code.InteractiveConsole
3150 class. By now we'd overridden just about all of its methods: I've
3160 class. By now we'd overridden just about all of its methods: I've
3151 copied the remaining two over, and now ipython is a standalone
3161 copied the remaining two over, and now ipython is a standalone
3152 class. This will provide a clearer picture for the chainsaw
3162 class. This will provide a clearer picture for the chainsaw
3153 branch refactoring.
3163 branch refactoring.
3154
3164
3155 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3165 2005-12-26 Fernando Perez <Fernando.Perez@colorado.edu>
3156
3166
3157 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3167 * IPython/ultraTB.py (VerboseTB.text): harden reporting against
3158 failures for objects which break when dir() is called on them.
3168 failures for objects which break when dir() is called on them.
3159
3169
3160 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3170 * IPython/FlexCompleter.py (Completer.__init__): Added support for
3161 distinct local and global namespaces in the completer API. This
3171 distinct local and global namespaces in the completer API. This
3162 change allows us to properly handle completion with distinct
3172 change allows us to properly handle completion with distinct
3163 scopes, including in embedded instances (this had never really
3173 scopes, including in embedded instances (this had never really
3164 worked correctly).
3174 worked correctly).
3165
3175
3166 Note: this introduces a change in the constructor for
3176 Note: this introduces a change in the constructor for
3167 MagicCompleter, as a new global_namespace parameter is now the
3177 MagicCompleter, as a new global_namespace parameter is now the
3168 second argument (the others were bumped one position).
3178 second argument (the others were bumped one position).
3169
3179
3170 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3180 2005-12-25 Fernando Perez <Fernando.Perez@colorado.edu>
3171
3181
3172 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3182 * IPython/iplib.py (embed_mainloop): fix tab-completion in
3173 embedded instances (which can be done now thanks to Vivian's
3183 embedded instances (which can be done now thanks to Vivian's
3174 frame-handling fixes for pdb).
3184 frame-handling fixes for pdb).
3175 (InteractiveShell.__init__): Fix namespace handling problem in
3185 (InteractiveShell.__init__): Fix namespace handling problem in
3176 embedded instances. We were overwriting __main__ unconditionally,
3186 embedded instances. We were overwriting __main__ unconditionally,
3177 and this should only be done for 'full' (non-embedded) IPython;
3187 and this should only be done for 'full' (non-embedded) IPython;
3178 embedded instances must respect the caller's __main__. Thanks to
3188 embedded instances must respect the caller's __main__. Thanks to
3179 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3189 a bug report by Yaroslav Bulatov <yaroslavvb-AT-gmail.com>
3180
3190
3181 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3191 2005-12-24 Fernando Perez <Fernando.Perez@colorado.edu>
3182
3192
3183 * setup.py: added download_url to setup(). This registers the
3193 * setup.py: added download_url to setup(). This registers the
3184 download address at PyPI, which is not only useful to humans
3194 download address at PyPI, which is not only useful to humans
3185 browsing the site, but is also picked up by setuptools (the Eggs
3195 browsing the site, but is also picked up by setuptools (the Eggs
3186 machinery). Thanks to Ville and R. Kern for the info/discussion
3196 machinery). Thanks to Ville and R. Kern for the info/discussion
3187 on this.
3197 on this.
3188
3198
3189 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3199 2005-12-23 Fernando Perez <Fernando.Perez@colorado.edu>
3190
3200
3191 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3201 * IPython/Debugger.py (Pdb.__init__): Major pdb mode enhancements.
3192 This brings a lot of nice functionality to the pdb mode, which now
3202 This brings a lot of nice functionality to the pdb mode, which now
3193 has tab-completion, syntax highlighting, and better stack handling
3203 has tab-completion, syntax highlighting, and better stack handling
3194 than before. Many thanks to Vivian De Smedt
3204 than before. Many thanks to Vivian De Smedt
3195 <vivian-AT-vdesmedt.com> for the original patches.
3205 <vivian-AT-vdesmedt.com> for the original patches.
3196
3206
3197 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3207 2005-12-08 Fernando Perez <Fernando.Perez@colorado.edu>
3198
3208
3199 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3209 * IPython/Shell.py (IPShellGTK.mainloop): fix mainloop() calling
3200 sequence to consistently accept the banner argument. The
3210 sequence to consistently accept the banner argument. The
3201 inconsistency was tripping SAGE, thanks to Gary Zablackis
3211 inconsistency was tripping SAGE, thanks to Gary Zablackis
3202 <gzabl-AT-yahoo.com> for the report.
3212 <gzabl-AT-yahoo.com> for the report.
3203
3213
3204 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3214 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3205
3215
3206 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3216 * IPython/iplib.py (InteractiveShell.post_config_initialization):
3207 Fix bug where a naked 'alias' call in the ipythonrc file would
3217 Fix bug where a naked 'alias' call in the ipythonrc file would
3208 cause a crash. Bug reported by Jorgen Stenarson.
3218 cause a crash. Bug reported by Jorgen Stenarson.
3209
3219
3210 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3220 2005-11-15 Fernando Perez <Fernando.Perez@colorado.edu>
3211
3221
3212 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3222 * IPython/ipmaker.py (make_IPython): cleanups which should improve
3213 startup time.
3223 startup time.
3214
3224
3215 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3225 * IPython/iplib.py (runcode): my globals 'fix' for embedded
3216 instances had introduced a bug with globals in normal code. Now
3226 instances had introduced a bug with globals in normal code. Now
3217 it's working in all cases.
3227 it's working in all cases.
3218
3228
3219 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3229 * IPython/Magic.py (magic_psearch): Finish wildcard cleanup and
3220 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3230 API changes. A new ipytonrc option, 'wildcards_case_sensitive'
3221 has been introduced to set the default case sensitivity of the
3231 has been introduced to set the default case sensitivity of the
3222 searches. Users can still select either mode at runtime on a
3232 searches. Users can still select either mode at runtime on a
3223 per-search basis.
3233 per-search basis.
3224
3234
3225 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3235 2005-11-13 Fernando Perez <Fernando.Perez@colorado.edu>
3226
3236
3227 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3237 * IPython/wildcard.py (NameSpace.__init__): fix resolution of
3228 attributes in wildcard searches for subclasses. Modified version
3238 attributes in wildcard searches for subclasses. Modified version
3229 of a patch by Jorgen.
3239 of a patch by Jorgen.
3230
3240
3231 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3241 2005-11-12 Fernando Perez <Fernando.Perez@colorado.edu>
3232
3242
3233 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3243 * IPython/iplib.py (embed_mainloop): Fix handling of globals for
3234 embedded instances. I added a user_global_ns attribute to the
3244 embedded instances. I added a user_global_ns attribute to the
3235 InteractiveShell class to handle this.
3245 InteractiveShell class to handle this.
3236
3246
3237 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3247 2005-10-31 Fernando Perez <Fernando.Perez@colorado.edu>
3238
3248
3239 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3249 * IPython/Shell.py (IPShellGTK.mainloop): Change timeout_add to
3240 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3250 idle_add, which fixes horrible keyboard lag problems under gtk 2.6
3241 (reported under win32, but may happen also in other platforms).
3251 (reported under win32, but may happen also in other platforms).
3242 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3252 Bug report and fix courtesy of Sean Moore <smm-AT-logic.bm>
3243
3253
3244 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3254 2005-10-15 Fernando Perez <Fernando.Perez@colorado.edu>
3245
3255
3246 * IPython/Magic.py (magic_psearch): new support for wildcard
3256 * IPython/Magic.py (magic_psearch): new support for wildcard
3247 patterns. Now, typing ?a*b will list all names which begin with a
3257 patterns. Now, typing ?a*b will list all names which begin with a
3248 and end in b, for example. The %psearch magic has full
3258 and end in b, for example. The %psearch magic has full
3249 docstrings. Many thanks to JΓΆrgen Stenarson
3259 docstrings. Many thanks to JΓΆrgen Stenarson
3250 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3260 <jorgen.stenarson-AT-bostream.nu>, author of the patches
3251 implementing this functionality.
3261 implementing this functionality.
3252
3262
3253 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3263 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3254
3264
3255 * Manual: fixed long-standing annoyance of double-dashes (as in
3265 * Manual: fixed long-standing annoyance of double-dashes (as in
3256 --prefix=~, for example) being stripped in the HTML version. This
3266 --prefix=~, for example) being stripped in the HTML version. This
3257 is a latex2html bug, but a workaround was provided. Many thanks
3267 is a latex2html bug, but a workaround was provided. Many thanks
3258 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3268 to George K. Thiruvathukal <gthiruv-AT-luc.edu> for the detailed
3259 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3269 help, and Michael Tobis <mtobis-AT-gmail.com> for getting the ball
3260 rolling. This seemingly small issue had tripped a number of users
3270 rolling. This seemingly small issue had tripped a number of users
3261 when first installing, so I'm glad to see it gone.
3271 when first installing, so I'm glad to see it gone.
3262
3272
3263 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3273 2005-09-27 Fernando Perez <Fernando.Perez@colorado.edu>
3264
3274
3265 * IPython/Extensions/numeric_formats.py: fix missing import,
3275 * IPython/Extensions/numeric_formats.py: fix missing import,
3266 reported by Stephen Walton.
3276 reported by Stephen Walton.
3267
3277
3268 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3278 2005-09-24 Fernando Perez <Fernando.Perez@colorado.edu>
3269
3279
3270 * IPython/demo.py: finish demo module, fully documented now.
3280 * IPython/demo.py: finish demo module, fully documented now.
3271
3281
3272 * IPython/genutils.py (file_read): simple little utility to read a
3282 * IPython/genutils.py (file_read): simple little utility to read a
3273 file and ensure it's closed afterwards.
3283 file and ensure it's closed afterwards.
3274
3284
3275 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3285 2005-09-23 Fernando Perez <Fernando.Perez@colorado.edu>
3276
3286
3277 * IPython/demo.py (Demo.__init__): added support for individually
3287 * IPython/demo.py (Demo.__init__): added support for individually
3278 tagging blocks for automatic execution.
3288 tagging blocks for automatic execution.
3279
3289
3280 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3290 * IPython/Magic.py (magic_pycat): new %pycat magic for showing
3281 syntax-highlighted python sources, requested by John.
3291 syntax-highlighted python sources, requested by John.
3282
3292
3283 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3293 2005-09-22 Fernando Perez <Fernando.Perez@colorado.edu>
3284
3294
3285 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3295 * IPython/demo.py (Demo.again): fix bug where again() blocks after
3286 finishing.
3296 finishing.
3287
3297
3288 * IPython/genutils.py (shlex_split): moved from Magic to here,
3298 * IPython/genutils.py (shlex_split): moved from Magic to here,
3289 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3299 where all 2.2 compatibility stuff lives. I needed it for demo.py.
3290
3300
3291 * IPython/demo.py (Demo.__init__): added support for silent
3301 * IPython/demo.py (Demo.__init__): added support for silent
3292 blocks, improved marks as regexps, docstrings written.
3302 blocks, improved marks as regexps, docstrings written.
3293 (Demo.__init__): better docstring, added support for sys.argv.
3303 (Demo.__init__): better docstring, added support for sys.argv.
3294
3304
3295 * IPython/genutils.py (marquee): little utility used by the demo
3305 * IPython/genutils.py (marquee): little utility used by the demo
3296 code, handy in general.
3306 code, handy in general.
3297
3307
3298 * IPython/demo.py (Demo.__init__): new class for interactive
3308 * IPython/demo.py (Demo.__init__): new class for interactive
3299 demos. Not documented yet, I just wrote it in a hurry for
3309 demos. Not documented yet, I just wrote it in a hurry for
3300 scipy'05. Will docstring later.
3310 scipy'05. Will docstring later.
3301
3311
3302 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3312 2005-09-20 Fernando Perez <Fernando.Perez@colorado.edu>
3303
3313
3304 * IPython/Shell.py (sigint_handler): Drastic simplification which
3314 * IPython/Shell.py (sigint_handler): Drastic simplification which
3305 also seems to make Ctrl-C work correctly across threads! This is
3315 also seems to make Ctrl-C work correctly across threads! This is
3306 so simple, that I can't beleive I'd missed it before. Needs more
3316 so simple, that I can't beleive I'd missed it before. Needs more
3307 testing, though.
3317 testing, though.
3308 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3318 (KBINT): Never mind, revert changes. I'm sure I'd tried something
3309 like this before...
3319 like this before...
3310
3320
3311 * IPython/genutils.py (get_home_dir): add protection against
3321 * IPython/genutils.py (get_home_dir): add protection against
3312 non-dirs in win32 registry.
3322 non-dirs in win32 registry.
3313
3323
3314 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3324 * IPython/iplib.py (InteractiveShell.alias_table_validate): fix
3315 bug where dict was mutated while iterating (pysh crash).
3325 bug where dict was mutated while iterating (pysh crash).
3316
3326
3317 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3327 2005-09-06 Fernando Perez <Fernando.Perez@colorado.edu>
3318
3328
3319 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3329 * IPython/iplib.py (handle_auto): Fix inconsistency arising from
3320 spurious newlines added by this routine. After a report by
3330 spurious newlines added by this routine. After a report by
3321 F. Mantegazza.
3331 F. Mantegazza.
3322
3332
3323 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3333 2005-09-05 Fernando Perez <Fernando.Perez@colorado.edu>
3324
3334
3325 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3335 * IPython/Shell.py (hijack_gtk): remove pygtk.require("2.0")
3326 calls. These were a leftover from the GTK 1.x days, and can cause
3336 calls. These were a leftover from the GTK 1.x days, and can cause
3327 problems in certain cases (after a report by John Hunter).
3337 problems in certain cases (after a report by John Hunter).
3328
3338
3329 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3339 * IPython/iplib.py (InteractiveShell.__init__): Trap exception if
3330 os.getcwd() fails at init time. Thanks to patch from David Remahl
3340 os.getcwd() fails at init time. Thanks to patch from David Remahl
3331 <chmod007-AT-mac.com>.
3341 <chmod007-AT-mac.com>.
3332 (InteractiveShell.__init__): prevent certain special magics from
3342 (InteractiveShell.__init__): prevent certain special magics from
3333 being shadowed by aliases. Closes
3343 being shadowed by aliases. Closes
3334 http://www.scipy.net/roundup/ipython/issue41.
3344 http://www.scipy.net/roundup/ipython/issue41.
3335
3345
3336 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3346 2005-08-31 Fernando Perez <Fernando.Perez@colorado.edu>
3337
3347
3338 * IPython/iplib.py (InteractiveShell.complete): Added new
3348 * IPython/iplib.py (InteractiveShell.complete): Added new
3339 top-level completion method to expose the completion mechanism
3349 top-level completion method to expose the completion mechanism
3340 beyond readline-based environments.
3350 beyond readline-based environments.
3341
3351
3342 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3352 2005-08-19 Fernando Perez <Fernando.Perez@colorado.edu>
3343
3353
3344 * tools/ipsvnc (svnversion): fix svnversion capture.
3354 * tools/ipsvnc (svnversion): fix svnversion capture.
3345
3355
3346 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3356 * IPython/iplib.py (InteractiveShell.__init__): Add has_readline
3347 attribute to self, which was missing. Before, it was set by a
3357 attribute to self, which was missing. Before, it was set by a
3348 routine which in certain cases wasn't being called, so the
3358 routine which in certain cases wasn't being called, so the
3349 instance could end up missing the attribute. This caused a crash.
3359 instance could end up missing the attribute. This caused a crash.
3350 Closes http://www.scipy.net/roundup/ipython/issue40.
3360 Closes http://www.scipy.net/roundup/ipython/issue40.
3351
3361
3352 2005-08-16 Fernando Perez <fperez@colorado.edu>
3362 2005-08-16 Fernando Perez <fperez@colorado.edu>
3353
3363
3354 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3364 * IPython/ultraTB.py (VerboseTB.text): don't crash if object
3355 contains non-string attribute. Closes
3365 contains non-string attribute. Closes
3356 http://www.scipy.net/roundup/ipython/issue38.
3366 http://www.scipy.net/roundup/ipython/issue38.
3357
3367
3358 2005-08-14 Fernando Perez <fperez@colorado.edu>
3368 2005-08-14 Fernando Perez <fperez@colorado.edu>
3359
3369
3360 * tools/ipsvnc: Minor improvements, to add changeset info.
3370 * tools/ipsvnc: Minor improvements, to add changeset info.
3361
3371
3362 2005-08-12 Fernando Perez <fperez@colorado.edu>
3372 2005-08-12 Fernando Perez <fperez@colorado.edu>
3363
3373
3364 * IPython/iplib.py (runsource): remove self.code_to_run_src
3374 * IPython/iplib.py (runsource): remove self.code_to_run_src
3365 attribute. I realized this is nothing more than
3375 attribute. I realized this is nothing more than
3366 '\n'.join(self.buffer), and having the same data in two different
3376 '\n'.join(self.buffer), and having the same data in two different
3367 places is just asking for synchronization bugs. This may impact
3377 places is just asking for synchronization bugs. This may impact
3368 people who have custom exception handlers, so I need to warn
3378 people who have custom exception handlers, so I need to warn
3369 ipython-dev about it (F. Mantegazza may use them).
3379 ipython-dev about it (F. Mantegazza may use them).
3370
3380
3371 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3381 2005-07-29 Fernando Perez <Fernando.Perez@colorado.edu>
3372
3382
3373 * IPython/genutils.py: fix 2.2 compatibility (generators)
3383 * IPython/genutils.py: fix 2.2 compatibility (generators)
3374
3384
3375 2005-07-18 Fernando Perez <fperez@colorado.edu>
3385 2005-07-18 Fernando Perez <fperez@colorado.edu>
3376
3386
3377 * IPython/genutils.py (get_home_dir): fix to help users with
3387 * IPython/genutils.py (get_home_dir): fix to help users with
3378 invalid $HOME under win32.
3388 invalid $HOME under win32.
3379
3389
3380 2005-07-17 Fernando Perez <fperez@colorado.edu>
3390 2005-07-17 Fernando Perez <fperez@colorado.edu>
3381
3391
3382 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3392 * IPython/Prompts.py (str_safe): Make unicode-safe. Also remove
3383 some old hacks and clean up a bit other routines; code should be
3393 some old hacks and clean up a bit other routines; code should be
3384 simpler and a bit faster.
3394 simpler and a bit faster.
3385
3395
3386 * IPython/iplib.py (interact): removed some last-resort attempts
3396 * IPython/iplib.py (interact): removed some last-resort attempts
3387 to survive broken stdout/stderr. That code was only making it
3397 to survive broken stdout/stderr. That code was only making it
3388 harder to abstract out the i/o (necessary for gui integration),
3398 harder to abstract out the i/o (necessary for gui integration),
3389 and the crashes it could prevent were extremely rare in practice
3399 and the crashes it could prevent were extremely rare in practice
3390 (besides being fully user-induced in a pretty violent manner).
3400 (besides being fully user-induced in a pretty violent manner).
3391
3401
3392 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3402 * IPython/genutils.py (IOStream.__init__): Simplify the i/o stuff.
3393 Nothing major yet, but the code is simpler to read; this should
3403 Nothing major yet, but the code is simpler to read; this should
3394 make it easier to do more serious modifications in the future.
3404 make it easier to do more serious modifications in the future.
3395
3405
3396 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3406 * IPython/Extensions/InterpreterExec.py: Fix auto-quoting in pysh,
3397 which broke in .15 (thanks to a report by Ville).
3407 which broke in .15 (thanks to a report by Ville).
3398
3408
3399 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3409 * IPython/Itpl.py (Itpl.__init__): add unicode support (it may not
3400 be quite correct, I know next to nothing about unicode). This
3410 be quite correct, I know next to nothing about unicode). This
3401 will allow unicode strings to be used in prompts, amongst other
3411 will allow unicode strings to be used in prompts, amongst other
3402 cases. It also will prevent ipython from crashing when unicode
3412 cases. It also will prevent ipython from crashing when unicode
3403 shows up unexpectedly in many places. If ascii encoding fails, we
3413 shows up unexpectedly in many places. If ascii encoding fails, we
3404 assume utf_8. Currently the encoding is not a user-visible
3414 assume utf_8. Currently the encoding is not a user-visible
3405 setting, though it could be made so if there is demand for it.
3415 setting, though it could be made so if there is demand for it.
3406
3416
3407 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3417 * IPython/ipmaker.py (make_IPython): remove old 2.1-specific hack.
3408
3418
3409 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3419 * IPython/Struct.py (Struct.merge): switch keys() to iterator.
3410
3420
3411 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3421 * IPython/background_jobs.py: moved 2.2 compatibility to genutils.
3412
3422
3413 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3423 * IPython/genutils.py: Add 2.2 compatibility here, so all other
3414 code can work transparently for 2.2/2.3.
3424 code can work transparently for 2.2/2.3.
3415
3425
3416 2005-07-16 Fernando Perez <fperez@colorado.edu>
3426 2005-07-16 Fernando Perez <fperez@colorado.edu>
3417
3427
3418 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3428 * IPython/ultraTB.py (ExceptionColors): Make a global variable
3419 out of the color scheme table used for coloring exception
3429 out of the color scheme table used for coloring exception
3420 tracebacks. This allows user code to add new schemes at runtime.
3430 tracebacks. This allows user code to add new schemes at runtime.
3421 This is a minimally modified version of the patch at
3431 This is a minimally modified version of the patch at
3422 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3432 http://www.scipy.net/roundup/ipython/issue35, many thanks to pabw
3423 for the contribution.
3433 for the contribution.
3424
3434
3425 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3435 * IPython/FlexCompleter.py (Completer.attr_matches): Add a
3426 slightly modified version of the patch in
3436 slightly modified version of the patch in
3427 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3437 http://www.scipy.net/roundup/ipython/issue34, which also allows me
3428 to remove the previous try/except solution (which was costlier).
3438 to remove the previous try/except solution (which was costlier).
3429 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3439 Thanks to Gaetan Lehmann <gaetan.lehmann-AT-jouy.inra.fr> for the fix.
3430
3440
3431 2005-06-08 Fernando Perez <fperez@colorado.edu>
3441 2005-06-08 Fernando Perez <fperez@colorado.edu>
3432
3442
3433 * IPython/iplib.py (write/write_err): Add methods to abstract all
3443 * IPython/iplib.py (write/write_err): Add methods to abstract all
3434 I/O a bit more.
3444 I/O a bit more.
3435
3445
3436 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3446 * IPython/Shell.py (IPShellGTK.mainloop): Fix GTK deprecation
3437 warning, reported by Aric Hagberg, fix by JD Hunter.
3447 warning, reported by Aric Hagberg, fix by JD Hunter.
3438
3448
3439 2005-06-02 *** Released version 0.6.15
3449 2005-06-02 *** Released version 0.6.15
3440
3450
3441 2005-06-01 Fernando Perez <fperez@colorado.edu>
3451 2005-06-01 Fernando Perez <fperez@colorado.edu>
3442
3452
3443 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3453 * IPython/iplib.py (MagicCompleter.file_matches): Fix
3444 tab-completion of filenames within open-quoted strings. Note that
3454 tab-completion of filenames within open-quoted strings. Note that
3445 this requires that in ~/.ipython/ipythonrc, users change the
3455 this requires that in ~/.ipython/ipythonrc, users change the
3446 readline delimiters configuration to read:
3456 readline delimiters configuration to read:
3447
3457
3448 readline_remove_delims -/~
3458 readline_remove_delims -/~
3449
3459
3450
3460
3451 2005-05-31 *** Released version 0.6.14
3461 2005-05-31 *** Released version 0.6.14
3452
3462
3453 2005-05-29 Fernando Perez <fperez@colorado.edu>
3463 2005-05-29 Fernando Perez <fperez@colorado.edu>
3454
3464
3455 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3465 * IPython/ultraTB.py (VerboseTB.text): Fix crash for tracebacks
3456 with files not on the filesystem. Reported by Eliyahu Sandler
3466 with files not on the filesystem. Reported by Eliyahu Sandler
3457 <eli@gondolin.net>
3467 <eli@gondolin.net>
3458
3468
3459 2005-05-22 Fernando Perez <fperez@colorado.edu>
3469 2005-05-22 Fernando Perez <fperez@colorado.edu>
3460
3470
3461 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3471 * IPython/iplib.py: Fix a few crashes in the --upgrade option.
3462 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3472 After an initial report by LUK ShunTim <shuntim.luk@polyu.edu.hk>.
3463
3473
3464 2005-05-19 Fernando Perez <fperez@colorado.edu>
3474 2005-05-19 Fernando Perez <fperez@colorado.edu>
3465
3475
3466 * IPython/iplib.py (safe_execfile): close a file which could be
3476 * IPython/iplib.py (safe_execfile): close a file which could be
3467 left open (causing problems in win32, which locks open files).
3477 left open (causing problems in win32, which locks open files).
3468 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3478 Thanks to a bug report by D Brown <dbrown2@yahoo.com>.
3469
3479
3470 2005-05-18 Fernando Perez <fperez@colorado.edu>
3480 2005-05-18 Fernando Perez <fperez@colorado.edu>
3471
3481
3472 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3482 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): pass all
3473 keyword arguments correctly to safe_execfile().
3483 keyword arguments correctly to safe_execfile().
3474
3484
3475 2005-05-13 Fernando Perez <fperez@colorado.edu>
3485 2005-05-13 Fernando Perez <fperez@colorado.edu>
3476
3486
3477 * ipython.1: Added info about Qt to manpage, and threads warning
3487 * ipython.1: Added info about Qt to manpage, and threads warning
3478 to usage page (invoked with --help).
3488 to usage page (invoked with --help).
3479
3489
3480 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3490 * IPython/iplib.py (MagicCompleter.python_func_kw_matches): Added
3481 new matcher (it goes at the end of the priority list) to do
3491 new matcher (it goes at the end of the priority list) to do
3482 tab-completion on named function arguments. Submitted by George
3492 tab-completion on named function arguments. Submitted by George
3483 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3493 Sakkis <gsakkis-AT-eden.rutgers.edu>. See the thread at
3484 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3494 http://www.scipy.net/pipermail/ipython-dev/2005-April/000436.html
3485 for more details.
3495 for more details.
3486
3496
3487 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3497 * IPython/Magic.py (magic_run): Added new -e flag to ignore
3488 SystemExit exceptions in the script being run. Thanks to a report
3498 SystemExit exceptions in the script being run. Thanks to a report
3489 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3499 by danny shevitz <danny_shevitz-AT-yahoo.com>, about this
3490 producing very annoying behavior when running unit tests.
3500 producing very annoying behavior when running unit tests.
3491
3501
3492 2005-05-12 Fernando Perez <fperez@colorado.edu>
3502 2005-05-12 Fernando Perez <fperez@colorado.edu>
3493
3503
3494 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3504 * IPython/iplib.py (handle_auto): fixed auto-quoting and parens,
3495 which I'd broken (again) due to a changed regexp. In the process,
3505 which I'd broken (again) due to a changed regexp. In the process,
3496 added ';' as an escape to auto-quote the whole line without
3506 added ';' as an escape to auto-quote the whole line without
3497 splitting its arguments. Thanks to a report by Jerry McRae
3507 splitting its arguments. Thanks to a report by Jerry McRae
3498 <qrs0xyc02-AT-sneakemail.com>.
3508 <qrs0xyc02-AT-sneakemail.com>.
3499
3509
3500 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3510 * IPython/ultraTB.py (VerboseTB.text): protect against rare but
3501 possible crashes caused by a TokenError. Reported by Ed Schofield
3511 possible crashes caused by a TokenError. Reported by Ed Schofield
3502 <schofield-AT-ftw.at>.
3512 <schofield-AT-ftw.at>.
3503
3513
3504 2005-05-06 Fernando Perez <fperez@colorado.edu>
3514 2005-05-06 Fernando Perez <fperez@colorado.edu>
3505
3515
3506 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3516 * IPython/Shell.py (hijack_wx): Fix to work with WX v.2.6.
3507
3517
3508 2005-04-29 Fernando Perez <fperez@colorado.edu>
3518 2005-04-29 Fernando Perez <fperez@colorado.edu>
3509
3519
3510 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3520 * IPython/Shell.py (IPShellQt): Thanks to Denis Rivière
3511 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3521 <nudz-AT-free.fr>, Yann Cointepas <yann-AT-sapetnioc.org> and Benjamin
3512 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3522 Thyreau <Benji2-AT-decideur.info>, we now have a -qthread option
3513 which provides support for Qt interactive usage (similar to the
3523 which provides support for Qt interactive usage (similar to the
3514 existing one for WX and GTK). This had been often requested.
3524 existing one for WX and GTK). This had been often requested.
3515
3525
3516 2005-04-14 *** Released version 0.6.13
3526 2005-04-14 *** Released version 0.6.13
3517
3527
3518 2005-04-08 Fernando Perez <fperez@colorado.edu>
3528 2005-04-08 Fernando Perez <fperez@colorado.edu>
3519
3529
3520 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3530 * IPython/Magic.py (Magic._ofind): remove docstring evaluation
3521 from _ofind, which gets called on almost every input line. Now,
3531 from _ofind, which gets called on almost every input line. Now,
3522 we only try to get docstrings if they are actually going to be
3532 we only try to get docstrings if they are actually going to be
3523 used (the overhead of fetching unnecessary docstrings can be
3533 used (the overhead of fetching unnecessary docstrings can be
3524 noticeable for certain objects, such as Pyro proxies).
3534 noticeable for certain objects, such as Pyro proxies).
3525
3535
3526 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3536 * IPython/iplib.py (MagicCompleter.python_matches): Change the API
3527 for completers. For some reason I had been passing them the state
3537 for completers. For some reason I had been passing them the state
3528 variable, which completers never actually need, and was in
3538 variable, which completers never actually need, and was in
3529 conflict with the rlcompleter API. Custom completers ONLY need to
3539 conflict with the rlcompleter API. Custom completers ONLY need to
3530 take the text parameter.
3540 take the text parameter.
3531
3541
3532 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3542 * IPython/Extensions/InterpreterExec.py: Fix regexp so that magics
3533 work correctly in pysh. I've also moved all the logic which used
3543 work correctly in pysh. I've also moved all the logic which used
3534 to be in pysh.py here, which will prevent problems with future
3544 to be in pysh.py here, which will prevent problems with future
3535 upgrades. However, this time I must warn users to update their
3545 upgrades. However, this time I must warn users to update their
3536 pysh profile to include the line
3546 pysh profile to include the line
3537
3547
3538 import_all IPython.Extensions.InterpreterExec
3548 import_all IPython.Extensions.InterpreterExec
3539
3549
3540 because otherwise things won't work for them. They MUST also
3550 because otherwise things won't work for them. They MUST also
3541 delete pysh.py and the line
3551 delete pysh.py and the line
3542
3552
3543 execfile pysh.py
3553 execfile pysh.py
3544
3554
3545 from their ipythonrc-pysh.
3555 from their ipythonrc-pysh.
3546
3556
3547 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3557 * IPython/FlexCompleter.py (Completer.attr_matches): Make more
3548 robust in the face of objects whose dir() returns non-strings
3558 robust in the face of objects whose dir() returns non-strings
3549 (which it shouldn't, but some broken libs like ITK do). Thanks to
3559 (which it shouldn't, but some broken libs like ITK do). Thanks to
3550 a patch by John Hunter (implemented differently, though). Also
3560 a patch by John Hunter (implemented differently, though). Also
3551 minor improvements by using .extend instead of + on lists.
3561 minor improvements by using .extend instead of + on lists.
3552
3562
3553 * pysh.py:
3563 * pysh.py:
3554
3564
3555 2005-04-06 Fernando Perez <fperez@colorado.edu>
3565 2005-04-06 Fernando Perez <fperez@colorado.edu>
3556
3566
3557 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3567 * IPython/ipmaker.py (make_IPython): Make multi_line_specials on
3558 by default, so that all users benefit from it. Those who don't
3568 by default, so that all users benefit from it. Those who don't
3559 want it can still turn it off.
3569 want it can still turn it off.
3560
3570
3561 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3571 * IPython/UserConfig/ipythonrc: Add multi_line_specials to the
3562 config file, I'd forgotten about this, so users were getting it
3572 config file, I'd forgotten about this, so users were getting it
3563 off by default.
3573 off by default.
3564
3574
3565 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3575 * IPython/iplib.py (ipmagic): big overhaul of the magic system for
3566 consistency. Now magics can be called in multiline statements,
3576 consistency. Now magics can be called in multiline statements,
3567 and python variables can be expanded in magic calls via $var.
3577 and python variables can be expanded in magic calls via $var.
3568 This makes the magic system behave just like aliases or !system
3578 This makes the magic system behave just like aliases or !system
3569 calls.
3579 calls.
3570
3580
3571 2005-03-28 Fernando Perez <fperez@colorado.edu>
3581 2005-03-28 Fernando Perez <fperez@colorado.edu>
3572
3582
3573 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3583 * IPython/iplib.py (handle_auto): cleanup to use %s instead of
3574 expensive string additions for building command. Add support for
3584 expensive string additions for building command. Add support for
3575 trailing ';' when autocall is used.
3585 trailing ';' when autocall is used.
3576
3586
3577 2005-03-26 Fernando Perez <fperez@colorado.edu>
3587 2005-03-26 Fernando Perez <fperez@colorado.edu>
3578
3588
3579 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3589 * ipython.el: Fix http://www.scipy.net/roundup/ipython/issue31.
3580 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3590 Bugfix by A. Schmolck, the ipython.el maintainer. Also make
3581 ipython.el robust against prompts with any number of spaces
3591 ipython.el robust against prompts with any number of spaces
3582 (including 0) after the ':' character.
3592 (including 0) after the ':' character.
3583
3593
3584 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3594 * IPython/Prompts.py (Prompt2.set_p_str): Fix spurious space in
3585 continuation prompt, which misled users to think the line was
3595 continuation prompt, which misled users to think the line was
3586 already indented. Closes debian Bug#300847, reported to me by
3596 already indented. Closes debian Bug#300847, reported to me by
3587 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3597 Norbert Tretkowski <tretkowski-AT-inittab.de>.
3588
3598
3589 2005-03-23 Fernando Perez <fperez@colorado.edu>
3599 2005-03-23 Fernando Perez <fperez@colorado.edu>
3590
3600
3591 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3601 * IPython/Prompts.py (Prompt1.__str__): Make sure that prompts are
3592 properly aligned if they have embedded newlines.
3602 properly aligned if they have embedded newlines.
3593
3603
3594 * IPython/iplib.py (runlines): Add a public method to expose
3604 * IPython/iplib.py (runlines): Add a public method to expose
3595 IPython's code execution machinery, so that users can run strings
3605 IPython's code execution machinery, so that users can run strings
3596 as if they had been typed at the prompt interactively.
3606 as if they had been typed at the prompt interactively.
3597 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3607 (InteractiveShell.__init__): Added getoutput() to the __IPYTHON__
3598 methods which can call the system shell, but with python variable
3608 methods which can call the system shell, but with python variable
3599 expansion. The three such methods are: __IPYTHON__.system,
3609 expansion. The three such methods are: __IPYTHON__.system,
3600 .getoutput and .getoutputerror. These need to be documented in a
3610 .getoutput and .getoutputerror. These need to be documented in a
3601 'public API' section (to be written) of the manual.
3611 'public API' section (to be written) of the manual.
3602
3612
3603 2005-03-20 Fernando Perez <fperez@colorado.edu>
3613 2005-03-20 Fernando Perez <fperez@colorado.edu>
3604
3614
3605 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3615 * IPython/iplib.py (InteractiveShell.set_custom_exc): new system
3606 for custom exception handling. This is quite powerful, and it
3616 for custom exception handling. This is quite powerful, and it
3607 allows for user-installable exception handlers which can trap
3617 allows for user-installable exception handlers which can trap
3608 custom exceptions at runtime and treat them separately from
3618 custom exceptions at runtime and treat them separately from
3609 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3619 IPython's default mechanisms. At the request of FrΓ©dΓ©ric
3610 Mantegazza <mantegazza-AT-ill.fr>.
3620 Mantegazza <mantegazza-AT-ill.fr>.
3611 (InteractiveShell.set_custom_completer): public API function to
3621 (InteractiveShell.set_custom_completer): public API function to
3612 add new completers at runtime.
3622 add new completers at runtime.
3613
3623
3614 2005-03-19 Fernando Perez <fperez@colorado.edu>
3624 2005-03-19 Fernando Perez <fperez@colorado.edu>
3615
3625
3616 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3626 * IPython/OInspect.py (getdoc): Add a call to obj.getdoc(), to
3617 allow objects which provide their docstrings via non-standard
3627 allow objects which provide their docstrings via non-standard
3618 mechanisms (like Pyro proxies) to still be inspected by ipython's
3628 mechanisms (like Pyro proxies) to still be inspected by ipython's
3619 ? system.
3629 ? system.
3620
3630
3621 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3631 * IPython/iplib.py (InteractiveShell.__init__): back off the _o/_e
3622 automatic capture system. I tried quite hard to make it work
3632 automatic capture system. I tried quite hard to make it work
3623 reliably, and simply failed. I tried many combinations with the
3633 reliably, and simply failed. I tried many combinations with the
3624 subprocess module, but eventually nothing worked in all needed
3634 subprocess module, but eventually nothing worked in all needed
3625 cases (not blocking stdin for the child, duplicating stdout
3635 cases (not blocking stdin for the child, duplicating stdout
3626 without blocking, etc). The new %sc/%sx still do capture to these
3636 without blocking, etc). The new %sc/%sx still do capture to these
3627 magical list/string objects which make shell use much more
3637 magical list/string objects which make shell use much more
3628 conveninent, so not all is lost.
3638 conveninent, so not all is lost.
3629
3639
3630 XXX - FIX MANUAL for the change above!
3640 XXX - FIX MANUAL for the change above!
3631
3641
3632 (runsource): I copied code.py's runsource() into ipython to modify
3642 (runsource): I copied code.py's runsource() into ipython to modify
3633 it a bit. Now the code object and source to be executed are
3643 it a bit. Now the code object and source to be executed are
3634 stored in ipython. This makes this info accessible to third-party
3644 stored in ipython. This makes this info accessible to third-party
3635 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3645 tools, like custom exception handlers. After a request by FrΓ©dΓ©ric
3636 Mantegazza <mantegazza-AT-ill.fr>.
3646 Mantegazza <mantegazza-AT-ill.fr>.
3637
3647
3638 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3648 * IPython/UserConfig/ipythonrc: Add up/down arrow keys to
3639 history-search via readline (like C-p/C-n). I'd wanted this for a
3649 history-search via readline (like C-p/C-n). I'd wanted this for a
3640 long time, but only recently found out how to do it. For users
3650 long time, but only recently found out how to do it. For users
3641 who already have their ipythonrc files made and want this, just
3651 who already have their ipythonrc files made and want this, just
3642 add:
3652 add:
3643
3653
3644 readline_parse_and_bind "\e[A": history-search-backward
3654 readline_parse_and_bind "\e[A": history-search-backward
3645 readline_parse_and_bind "\e[B": history-search-forward
3655 readline_parse_and_bind "\e[B": history-search-forward
3646
3656
3647 2005-03-18 Fernando Perez <fperez@colorado.edu>
3657 2005-03-18 Fernando Perez <fperez@colorado.edu>
3648
3658
3649 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3659 * IPython/Magic.py (magic_sc): %sc and %sx now use the fancy
3650 LSString and SList classes which allow transparent conversions
3660 LSString and SList classes which allow transparent conversions
3651 between list mode and whitespace-separated string.
3661 between list mode and whitespace-separated string.
3652 (magic_r): Fix recursion problem in %r.
3662 (magic_r): Fix recursion problem in %r.
3653
3663
3654 * IPython/genutils.py (LSString): New class to be used for
3664 * IPython/genutils.py (LSString): New class to be used for
3655 automatic storage of the results of all alias/system calls in _o
3665 automatic storage of the results of all alias/system calls in _o
3656 and _e (stdout/err). These provide a .l/.list attribute which
3666 and _e (stdout/err). These provide a .l/.list attribute which
3657 does automatic splitting on newlines. This means that for most
3667 does automatic splitting on newlines. This means that for most
3658 uses, you'll never need to do capturing of output with %sc/%sx
3668 uses, you'll never need to do capturing of output with %sc/%sx
3659 anymore, since ipython keeps this always done for you. Note that
3669 anymore, since ipython keeps this always done for you. Note that
3660 only the LAST results are stored, the _o/e variables are
3670 only the LAST results are stored, the _o/e variables are
3661 overwritten on each call. If you need to save their contents
3671 overwritten on each call. If you need to save their contents
3662 further, simply bind them to any other name.
3672 further, simply bind them to any other name.
3663
3673
3664 2005-03-17 Fernando Perez <fperez@colorado.edu>
3674 2005-03-17 Fernando Perez <fperez@colorado.edu>
3665
3675
3666 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3676 * IPython/Prompts.py (BasePrompt.cwd_filt): a few more fixes for
3667 prompt namespace handling.
3677 prompt namespace handling.
3668
3678
3669 2005-03-16 Fernando Perez <fperez@colorado.edu>
3679 2005-03-16 Fernando Perez <fperez@colorado.edu>
3670
3680
3671 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3681 * IPython/Prompts.py (CachedOutput.__init__): Fix default and
3672 classic prompts to be '>>> ' (final space was missing, and it
3682 classic prompts to be '>>> ' (final space was missing, and it
3673 trips the emacs python mode).
3683 trips the emacs python mode).
3674 (BasePrompt.__str__): Added safe support for dynamic prompt
3684 (BasePrompt.__str__): Added safe support for dynamic prompt
3675 strings. Now you can set your prompt string to be '$x', and the
3685 strings. Now you can set your prompt string to be '$x', and the
3676 value of x will be printed from your interactive namespace. The
3686 value of x will be printed from your interactive namespace. The
3677 interpolation syntax includes the full Itpl support, so
3687 interpolation syntax includes the full Itpl support, so
3678 ${foo()+x+bar()} is a valid prompt string now, and the function
3688 ${foo()+x+bar()} is a valid prompt string now, and the function
3679 calls will be made at runtime.
3689 calls will be made at runtime.
3680
3690
3681 2005-03-15 Fernando Perez <fperez@colorado.edu>
3691 2005-03-15 Fernando Perez <fperez@colorado.edu>
3682
3692
3683 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3693 * IPython/Magic.py (magic_history): renamed %hist to %history, to
3684 avoid name clashes in pylab. %hist still works, it just forwards
3694 avoid name clashes in pylab. %hist still works, it just forwards
3685 the call to %history.
3695 the call to %history.
3686
3696
3687 2005-03-02 *** Released version 0.6.12
3697 2005-03-02 *** Released version 0.6.12
3688
3698
3689 2005-03-02 Fernando Perez <fperez@colorado.edu>
3699 2005-03-02 Fernando Perez <fperez@colorado.edu>
3690
3700
3691 * IPython/iplib.py (handle_magic): log magic calls properly as
3701 * IPython/iplib.py (handle_magic): log magic calls properly as
3692 ipmagic() function calls.
3702 ipmagic() function calls.
3693
3703
3694 * IPython/Magic.py (magic_time): Improved %time to support
3704 * IPython/Magic.py (magic_time): Improved %time to support
3695 statements and provide wall-clock as well as CPU time.
3705 statements and provide wall-clock as well as CPU time.
3696
3706
3697 2005-02-27 Fernando Perez <fperez@colorado.edu>
3707 2005-02-27 Fernando Perez <fperez@colorado.edu>
3698
3708
3699 * IPython/hooks.py: New hooks module, to expose user-modifiable
3709 * IPython/hooks.py: New hooks module, to expose user-modifiable
3700 IPython functionality in a clean manner. For now only the editor
3710 IPython functionality in a clean manner. For now only the editor
3701 hook is actually written, and other thigns which I intend to turn
3711 hook is actually written, and other thigns which I intend to turn
3702 into proper hooks aren't yet there. The display and prefilter
3712 into proper hooks aren't yet there. The display and prefilter
3703 stuff, for example, should be hooks. But at least now the
3713 stuff, for example, should be hooks. But at least now the
3704 framework is in place, and the rest can be moved here with more
3714 framework is in place, and the rest can be moved here with more
3705 time later. IPython had had a .hooks variable for a long time for
3715 time later. IPython had had a .hooks variable for a long time for
3706 this purpose, but I'd never actually used it for anything.
3716 this purpose, but I'd never actually used it for anything.
3707
3717
3708 2005-02-26 Fernando Perez <fperez@colorado.edu>
3718 2005-02-26 Fernando Perez <fperez@colorado.edu>
3709
3719
3710 * IPython/ipmaker.py (make_IPython): make the default ipython
3720 * IPython/ipmaker.py (make_IPython): make the default ipython
3711 directory be called _ipython under win32, to follow more the
3721 directory be called _ipython under win32, to follow more the
3712 naming peculiarities of that platform (where buggy software like
3722 naming peculiarities of that platform (where buggy software like
3713 Visual Sourcesafe breaks with .named directories). Reported by
3723 Visual Sourcesafe breaks with .named directories). Reported by
3714 Ville Vainio.
3724 Ville Vainio.
3715
3725
3716 2005-02-23 Fernando Perez <fperez@colorado.edu>
3726 2005-02-23 Fernando Perez <fperez@colorado.edu>
3717
3727
3718 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3728 * IPython/iplib.py (InteractiveShell.__init__): removed a few
3719 auto_aliases for win32 which were causing problems. Users can
3729 auto_aliases for win32 which were causing problems. Users can
3720 define the ones they personally like.
3730 define the ones they personally like.
3721
3731
3722 2005-02-21 Fernando Perez <fperez@colorado.edu>
3732 2005-02-21 Fernando Perez <fperez@colorado.edu>
3723
3733
3724 * IPython/Magic.py (magic_time): new magic to time execution of
3734 * IPython/Magic.py (magic_time): new magic to time execution of
3725 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3735 expressions. After a request by Charles Moad <cmoad-AT-indiana.edu>.
3726
3736
3727 2005-02-19 Fernando Perez <fperez@colorado.edu>
3737 2005-02-19 Fernando Perez <fperez@colorado.edu>
3728
3738
3729 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3739 * IPython/ConfigLoader.py (ConfigLoader.load): Allow empty strings
3730 into keys (for prompts, for example).
3740 into keys (for prompts, for example).
3731
3741
3732 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3742 * IPython/Prompts.py (BasePrompt.set_p_str): Fix to allow empty
3733 prompts in case users want them. This introduces a small behavior
3743 prompts in case users want them. This introduces a small behavior
3734 change: ipython does not automatically add a space to all prompts
3744 change: ipython does not automatically add a space to all prompts
3735 anymore. To get the old prompts with a space, users should add it
3745 anymore. To get the old prompts with a space, users should add it
3736 manually to their ipythonrc file, so for example prompt_in1 should
3746 manually to their ipythonrc file, so for example prompt_in1 should
3737 now read 'In [\#]: ' instead of 'In [\#]:'.
3747 now read 'In [\#]: ' instead of 'In [\#]:'.
3738 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3748 (BasePrompt.__init__): New option prompts_pad_left (only in rc
3739 file) to control left-padding of secondary prompts.
3749 file) to control left-padding of secondary prompts.
3740
3750
3741 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3751 * IPython/Magic.py (Magic.profile_missing_notice): Don't crash if
3742 the profiler can't be imported. Fix for Debian, which removed
3752 the profiler can't be imported. Fix for Debian, which removed
3743 profile.py because of License issues. I applied a slightly
3753 profile.py because of License issues. I applied a slightly
3744 modified version of the original Debian patch at
3754 modified version of the original Debian patch at
3745 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3755 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=294500.
3746
3756
3747 2005-02-17 Fernando Perez <fperez@colorado.edu>
3757 2005-02-17 Fernando Perez <fperez@colorado.edu>
3748
3758
3749 * IPython/genutils.py (native_line_ends): Fix bug which would
3759 * IPython/genutils.py (native_line_ends): Fix bug which would
3750 cause improper line-ends under win32 b/c I was not opening files
3760 cause improper line-ends under win32 b/c I was not opening files
3751 in binary mode. Bug report and fix thanks to Ville.
3761 in binary mode. Bug report and fix thanks to Ville.
3752
3762
3753 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3763 * IPython/iplib.py (handle_auto): Fix bug which I introduced when
3754 trying to catch spurious foo[1] autocalls. My fix actually broke
3764 trying to catch spurious foo[1] autocalls. My fix actually broke
3755 ',/' autoquote/call with explicit escape (bad regexp).
3765 ',/' autoquote/call with explicit escape (bad regexp).
3756
3766
3757 2005-02-15 *** Released version 0.6.11
3767 2005-02-15 *** Released version 0.6.11
3758
3768
3759 2005-02-14 Fernando Perez <fperez@colorado.edu>
3769 2005-02-14 Fernando Perez <fperez@colorado.edu>
3760
3770
3761 * IPython/background_jobs.py: New background job management
3771 * IPython/background_jobs.py: New background job management
3762 subsystem. This is implemented via a new set of classes, and
3772 subsystem. This is implemented via a new set of classes, and
3763 IPython now provides a builtin 'jobs' object for background job
3773 IPython now provides a builtin 'jobs' object for background job
3764 execution. A convenience %bg magic serves as a lightweight
3774 execution. A convenience %bg magic serves as a lightweight
3765 frontend for starting the more common type of calls. This was
3775 frontend for starting the more common type of calls. This was
3766 inspired by discussions with B. Granger and the BackgroundCommand
3776 inspired by discussions with B. Granger and the BackgroundCommand
3767 class described in the book Python Scripting for Computational
3777 class described in the book Python Scripting for Computational
3768 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3778 Science, by H. P. Langtangen: http://folk.uio.no/hpl/scripting
3769 (although ultimately no code from this text was used, as IPython's
3779 (although ultimately no code from this text was used, as IPython's
3770 system is a separate implementation).
3780 system is a separate implementation).
3771
3781
3772 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3782 * IPython/iplib.py (MagicCompleter.python_matches): add new option
3773 to control the completion of single/double underscore names
3783 to control the completion of single/double underscore names
3774 separately. As documented in the example ipytonrc file, the
3784 separately. As documented in the example ipytonrc file, the
3775 readline_omit__names variable can now be set to 2, to omit even
3785 readline_omit__names variable can now be set to 2, to omit even
3776 single underscore names. Thanks to a patch by Brian Wong
3786 single underscore names. Thanks to a patch by Brian Wong
3777 <BrianWong-AT-AirgoNetworks.Com>.
3787 <BrianWong-AT-AirgoNetworks.Com>.
3778 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3788 (InteractiveShell.__init__): Fix bug which would cause foo[1] to
3779 be autocalled as foo([1]) if foo were callable. A problem for
3789 be autocalled as foo([1]) if foo were callable. A problem for
3780 things which are both callable and implement __getitem__.
3790 things which are both callable and implement __getitem__.
3781 (init_readline): Fix autoindentation for win32. Thanks to a patch
3791 (init_readline): Fix autoindentation for win32. Thanks to a patch
3782 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3792 by Vivian De Smedt <vivian-AT-vdesmedt.com>.
3783
3793
3784 2005-02-12 Fernando Perez <fperez@colorado.edu>
3794 2005-02-12 Fernando Perez <fperez@colorado.edu>
3785
3795
3786 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3796 * IPython/ipmaker.py (make_IPython): Disabled the stout traps
3787 which I had written long ago to sort out user error messages which
3797 which I had written long ago to sort out user error messages which
3788 may occur during startup. This seemed like a good idea initially,
3798 may occur during startup. This seemed like a good idea initially,
3789 but it has proven a disaster in retrospect. I don't want to
3799 but it has proven a disaster in retrospect. I don't want to
3790 change much code for now, so my fix is to set the internal 'debug'
3800 change much code for now, so my fix is to set the internal 'debug'
3791 flag to true everywhere, whose only job was precisely to control
3801 flag to true everywhere, whose only job was precisely to control
3792 this subsystem. This closes issue 28 (as well as avoiding all
3802 this subsystem. This closes issue 28 (as well as avoiding all
3793 sorts of strange hangups which occur from time to time).
3803 sorts of strange hangups which occur from time to time).
3794
3804
3795 2005-02-07 Fernando Perez <fperez@colorado.edu>
3805 2005-02-07 Fernando Perez <fperez@colorado.edu>
3796
3806
3797 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3807 * IPython/Magic.py (magic_edit): Fix 'ed -p' not working when the
3798 previous call produced a syntax error.
3808 previous call produced a syntax error.
3799
3809
3800 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3810 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3801 classes without constructor.
3811 classes without constructor.
3802
3812
3803 2005-02-06 Fernando Perez <fperez@colorado.edu>
3813 2005-02-06 Fernando Perez <fperez@colorado.edu>
3804
3814
3805 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3815 * IPython/iplib.py (MagicCompleter.complete): Extend the list of
3806 completions with the results of each matcher, so we return results
3816 completions with the results of each matcher, so we return results
3807 to the user from all namespaces. This breaks with ipython
3817 to the user from all namespaces. This breaks with ipython
3808 tradition, but I think it's a nicer behavior. Now you get all
3818 tradition, but I think it's a nicer behavior. Now you get all
3809 possible completions listed, from all possible namespaces (python,
3819 possible completions listed, from all possible namespaces (python,
3810 filesystem, magics...) After a request by John Hunter
3820 filesystem, magics...) After a request by John Hunter
3811 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3821 <jdhunter-AT-nitace.bsd.uchicago.edu>.
3812
3822
3813 2005-02-05 Fernando Perez <fperez@colorado.edu>
3823 2005-02-05 Fernando Perez <fperez@colorado.edu>
3814
3824
3815 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3825 * IPython/Magic.py (magic_prun): Fix bug where prun would fail if
3816 the call had quote characters in it (the quotes were stripped).
3826 the call had quote characters in it (the quotes were stripped).
3817
3827
3818 2005-01-31 Fernando Perez <fperez@colorado.edu>
3828 2005-01-31 Fernando Perez <fperez@colorado.edu>
3819
3829
3820 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3830 * IPython/iplib.py (InteractiveShell.__init__): reduce reliance on
3821 Itpl.itpl() to make the code more robust against psyco
3831 Itpl.itpl() to make the code more robust against psyco
3822 optimizations.
3832 optimizations.
3823
3833
3824 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3834 * IPython/Itpl.py (Itpl.__str__): Use a _getframe() call instead
3825 of causing an exception. Quicker, cleaner.
3835 of causing an exception. Quicker, cleaner.
3826
3836
3827 2005-01-28 Fernando Perez <fperez@colorado.edu>
3837 2005-01-28 Fernando Perez <fperez@colorado.edu>
3828
3838
3829 * scripts/ipython_win_post_install.py (install): hardcode
3839 * scripts/ipython_win_post_install.py (install): hardcode
3830 sys.prefix+'python.exe' as the executable path. It turns out that
3840 sys.prefix+'python.exe' as the executable path. It turns out that
3831 during the post-installation run, sys.executable resolves to the
3841 during the post-installation run, sys.executable resolves to the
3832 name of the binary installer! I should report this as a distutils
3842 name of the binary installer! I should report this as a distutils
3833 bug, I think. I updated the .10 release with this tiny fix, to
3843 bug, I think. I updated the .10 release with this tiny fix, to
3834 avoid annoying the lists further.
3844 avoid annoying the lists further.
3835
3845
3836 2005-01-27 *** Released version 0.6.10
3846 2005-01-27 *** Released version 0.6.10
3837
3847
3838 2005-01-27 Fernando Perez <fperez@colorado.edu>
3848 2005-01-27 Fernando Perez <fperez@colorado.edu>
3839
3849
3840 * IPython/numutils.py (norm): Added 'inf' as optional name for
3850 * IPython/numutils.py (norm): Added 'inf' as optional name for
3841 L-infinity norm, included references to mathworld.com for vector
3851 L-infinity norm, included references to mathworld.com for vector
3842 norm definitions.
3852 norm definitions.
3843 (amin/amax): added amin/amax for array min/max. Similar to what
3853 (amin/amax): added amin/amax for array min/max. Similar to what
3844 pylab ships with after the recent reorganization of names.
3854 pylab ships with after the recent reorganization of names.
3845 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3855 (spike/spike_odd): removed deprecated spike/spike_odd functions.
3846
3856
3847 * ipython.el: committed Alex's recent fixes and improvements.
3857 * ipython.el: committed Alex's recent fixes and improvements.
3848 Tested with python-mode from CVS, and it looks excellent. Since
3858 Tested with python-mode from CVS, and it looks excellent. Since
3849 python-mode hasn't released anything in a while, I'm temporarily
3859 python-mode hasn't released anything in a while, I'm temporarily
3850 putting a copy of today's CVS (v 4.70) of python-mode in:
3860 putting a copy of today's CVS (v 4.70) of python-mode in:
3851 http://ipython.scipy.org/tmp/python-mode.el
3861 http://ipython.scipy.org/tmp/python-mode.el
3852
3862
3853 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3863 * scripts/ipython_win_post_install.py (install): Win32 fix to use
3854 sys.executable for the executable name, instead of assuming it's
3864 sys.executable for the executable name, instead of assuming it's
3855 called 'python.exe' (the post-installer would have produced broken
3865 called 'python.exe' (the post-installer would have produced broken
3856 setups on systems with a differently named python binary).
3866 setups on systems with a differently named python binary).
3857
3867
3858 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3868 * IPython/PyColorize.py (Parser.__call__): change explicit '\n'
3859 references to os.linesep, to make the code more
3869 references to os.linesep, to make the code more
3860 platform-independent. This is also part of the win32 coloring
3870 platform-independent. This is also part of the win32 coloring
3861 fixes.
3871 fixes.
3862
3872
3863 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3873 * IPython/genutils.py (page_dumb): Remove attempts to chop long
3864 lines, which actually cause coloring bugs because the length of
3874 lines, which actually cause coloring bugs because the length of
3865 the line is very difficult to correctly compute with embedded
3875 the line is very difficult to correctly compute with embedded
3866 escapes. This was the source of all the coloring problems under
3876 escapes. This was the source of all the coloring problems under
3867 Win32. I think that _finally_, Win32 users have a properly
3877 Win32. I think that _finally_, Win32 users have a properly
3868 working ipython in all respects. This would never have happened
3878 working ipython in all respects. This would never have happened
3869 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3879 if not for Gary Bishop and Viktor Ransmayr's great help and work.
3870
3880
3871 2005-01-26 *** Released version 0.6.9
3881 2005-01-26 *** Released version 0.6.9
3872
3882
3873 2005-01-25 Fernando Perez <fperez@colorado.edu>
3883 2005-01-25 Fernando Perez <fperez@colorado.edu>
3874
3884
3875 * setup.py: finally, we have a true Windows installer, thanks to
3885 * setup.py: finally, we have a true Windows installer, thanks to
3876 the excellent work of Viktor Ransmayr
3886 the excellent work of Viktor Ransmayr
3877 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3887 <viktor.ransmayr-AT-t-online.de>. The docs have been updated for
3878 Windows users. The setup routine is quite a bit cleaner thanks to
3888 Windows users. The setup routine is quite a bit cleaner thanks to
3879 this, and the post-install script uses the proper functions to
3889 this, and the post-install script uses the proper functions to
3880 allow a clean de-installation using the standard Windows Control
3890 allow a clean de-installation using the standard Windows Control
3881 Panel.
3891 Panel.
3882
3892
3883 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3893 * IPython/genutils.py (get_home_dir): changed to use the $HOME
3884 environment variable under all OSes (including win32) if
3894 environment variable under all OSes (including win32) if
3885 available. This will give consistency to win32 users who have set
3895 available. This will give consistency to win32 users who have set
3886 this variable for any reason. If os.environ['HOME'] fails, the
3896 this variable for any reason. If os.environ['HOME'] fails, the
3887 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3897 previous policy of using HOMEDRIVE\HOMEPATH kicks in.
3888
3898
3889 2005-01-24 Fernando Perez <fperez@colorado.edu>
3899 2005-01-24 Fernando Perez <fperez@colorado.edu>
3890
3900
3891 * IPython/numutils.py (empty_like): add empty_like(), similar to
3901 * IPython/numutils.py (empty_like): add empty_like(), similar to
3892 zeros_like() but taking advantage of the new empty() Numeric routine.
3902 zeros_like() but taking advantage of the new empty() Numeric routine.
3893
3903
3894 2005-01-23 *** Released version 0.6.8
3904 2005-01-23 *** Released version 0.6.8
3895
3905
3896 2005-01-22 Fernando Perez <fperez@colorado.edu>
3906 2005-01-22 Fernando Perez <fperez@colorado.edu>
3897
3907
3898 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3908 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): I removed the
3899 automatic show() calls. After discussing things with JDH, it
3909 automatic show() calls. After discussing things with JDH, it
3900 turns out there are too many corner cases where this can go wrong.
3910 turns out there are too many corner cases where this can go wrong.
3901 It's best not to try to be 'too smart', and simply have ipython
3911 It's best not to try to be 'too smart', and simply have ipython
3902 reproduce as much as possible the default behavior of a normal
3912 reproduce as much as possible the default behavior of a normal
3903 python shell.
3913 python shell.
3904
3914
3905 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3915 * IPython/iplib.py (InteractiveShell.__init__): Modified the
3906 line-splitting regexp and _prefilter() to avoid calling getattr()
3916 line-splitting regexp and _prefilter() to avoid calling getattr()
3907 on assignments. This closes
3917 on assignments. This closes
3908 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3918 http://www.scipy.net/roundup/ipython/issue24. Note that Python's
3909 readline uses getattr(), so a simple <TAB> keypress is still
3919 readline uses getattr(), so a simple <TAB> keypress is still
3910 enough to trigger getattr() calls on an object.
3920 enough to trigger getattr() calls on an object.
3911
3921
3912 2005-01-21 Fernando Perez <fperez@colorado.edu>
3922 2005-01-21 Fernando Perez <fperez@colorado.edu>
3913
3923
3914 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3924 * IPython/Shell.py (MatplotlibShellBase.magic_run): Fix the %run
3915 docstring under pylab so it doesn't mask the original.
3925 docstring under pylab so it doesn't mask the original.
3916
3926
3917 2005-01-21 *** Released version 0.6.7
3927 2005-01-21 *** Released version 0.6.7
3918
3928
3919 2005-01-21 Fernando Perez <fperez@colorado.edu>
3929 2005-01-21 Fernando Perez <fperez@colorado.edu>
3920
3930
3921 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3931 * IPython/Shell.py (MTInteractiveShell.runcode): Trap a crash with
3922 signal handling for win32 users in multithreaded mode.
3932 signal handling for win32 users in multithreaded mode.
3923
3933
3924 2005-01-17 Fernando Perez <fperez@colorado.edu>
3934 2005-01-17 Fernando Perez <fperez@colorado.edu>
3925
3935
3926 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3936 * IPython/OInspect.py (Inspector.pinfo): Fix crash when inspecting
3927 instances with no __init__. After a crash report by Norbert Nemec
3937 instances with no __init__. After a crash report by Norbert Nemec
3928 <Norbert-AT-nemec-online.de>.
3938 <Norbert-AT-nemec-online.de>.
3929
3939
3930 2005-01-14 Fernando Perez <fperez@colorado.edu>
3940 2005-01-14 Fernando Perez <fperez@colorado.edu>
3931
3941
3932 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3942 * IPython/ultraTB.py (VerboseTB.text): Fix bug in reporting of
3933 names for verbose exceptions, when multiple dotted names and the
3943 names for verbose exceptions, when multiple dotted names and the
3934 'parent' object were present on the same line.
3944 'parent' object were present on the same line.
3935
3945
3936 2005-01-11 Fernando Perez <fperez@colorado.edu>
3946 2005-01-11 Fernando Perez <fperez@colorado.edu>
3937
3947
3938 * IPython/genutils.py (flag_calls): new utility to trap and flag
3948 * IPython/genutils.py (flag_calls): new utility to trap and flag
3939 calls in functions. I need it to clean up matplotlib support.
3949 calls in functions. I need it to clean up matplotlib support.
3940 Also removed some deprecated code in genutils.
3950 Also removed some deprecated code in genutils.
3941
3951
3942 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3952 * IPython/Shell.py (MatplotlibShellBase.mplot_exec): small fix so
3943 that matplotlib scripts called with %run, which don't call show()
3953 that matplotlib scripts called with %run, which don't call show()
3944 themselves, still have their plotting windows open.
3954 themselves, still have their plotting windows open.
3945
3955
3946 2005-01-05 Fernando Perez <fperez@colorado.edu>
3956 2005-01-05 Fernando Perez <fperez@colorado.edu>
3947
3957
3948 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3958 * IPython/Shell.py (IPShellGTK.__init__): Patch by Andrew Straw
3949 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3959 <astraw-AT-caltech.edu>, to fix gtk deprecation warnings.
3950
3960
3951 2004-12-19 Fernando Perez <fperez@colorado.edu>
3961 2004-12-19 Fernando Perez <fperez@colorado.edu>
3952
3962
3953 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3963 * IPython/Shell.py (MTInteractiveShell.runcode): Get rid of
3954 parent_runcode, which was an eyesore. The same result can be
3964 parent_runcode, which was an eyesore. The same result can be
3955 obtained with Python's regular superclass mechanisms.
3965 obtained with Python's regular superclass mechanisms.
3956
3966
3957 2004-12-17 Fernando Perez <fperez@colorado.edu>
3967 2004-12-17 Fernando Perez <fperez@colorado.edu>
3958
3968
3959 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3969 * IPython/Magic.py (Magic.magic_sc): Fix quote stripping problem
3960 reported by Prabhu.
3970 reported by Prabhu.
3961 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3971 (Magic.magic_sx): direct all errors to Term.cerr (defaults to
3962 sys.stderr) instead of explicitly calling sys.stderr. This helps
3972 sys.stderr) instead of explicitly calling sys.stderr. This helps
3963 maintain our I/O abstractions clean, for future GUI embeddings.
3973 maintain our I/O abstractions clean, for future GUI embeddings.
3964
3974
3965 * IPython/genutils.py (info): added new utility for sys.stderr
3975 * IPython/genutils.py (info): added new utility for sys.stderr
3966 unified info message handling (thin wrapper around warn()).
3976 unified info message handling (thin wrapper around warn()).
3967
3977
3968 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3978 * IPython/ultraTB.py (VerboseTB.text): Fix misreported global
3969 composite (dotted) names on verbose exceptions.
3979 composite (dotted) names on verbose exceptions.
3970 (VerboseTB.nullrepr): harden against another kind of errors which
3980 (VerboseTB.nullrepr): harden against another kind of errors which
3971 Python's inspect module can trigger, and which were crashing
3981 Python's inspect module can trigger, and which were crashing
3972 IPython. Thanks to a report by Marco Lombardi
3982 IPython. Thanks to a report by Marco Lombardi
3973 <mlombard-AT-ma010192.hq.eso.org>.
3983 <mlombard-AT-ma010192.hq.eso.org>.
3974
3984
3975 2004-12-13 *** Released version 0.6.6
3985 2004-12-13 *** Released version 0.6.6
3976
3986
3977 2004-12-12 Fernando Perez <fperez@colorado.edu>
3987 2004-12-12 Fernando Perez <fperez@colorado.edu>
3978
3988
3979 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3989 * IPython/Shell.py (IPShellGTK.mainloop): catch RuntimeErrors
3980 generated by pygtk upon initialization if it was built without
3990 generated by pygtk upon initialization if it was built without
3981 threads (for matplotlib users). After a crash reported by
3991 threads (for matplotlib users). After a crash reported by
3982 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3992 Leguijt, Jaap J SIEP-EPT-RES <Jaap.Leguijt-AT-shell.com>.
3983
3993
3984 * IPython/ipmaker.py (make_IPython): fix small bug in the
3994 * IPython/ipmaker.py (make_IPython): fix small bug in the
3985 import_some parameter for multiple imports.
3995 import_some parameter for multiple imports.
3986
3996
3987 * IPython/iplib.py (ipmagic): simplified the interface of
3997 * IPython/iplib.py (ipmagic): simplified the interface of
3988 ipmagic() to take a single string argument, just as it would be
3998 ipmagic() to take a single string argument, just as it would be
3989 typed at the IPython cmd line.
3999 typed at the IPython cmd line.
3990 (ipalias): Added new ipalias() with an interface identical to
4000 (ipalias): Added new ipalias() with an interface identical to
3991 ipmagic(). This completes exposing a pure python interface to the
4001 ipmagic(). This completes exposing a pure python interface to the
3992 alias and magic system, which can be used in loops or more complex
4002 alias and magic system, which can be used in loops or more complex
3993 code where IPython's automatic line mangling is not active.
4003 code where IPython's automatic line mangling is not active.
3994
4004
3995 * IPython/genutils.py (timing): changed interface of timing to
4005 * IPython/genutils.py (timing): changed interface of timing to
3996 simply run code once, which is the most common case. timings()
4006 simply run code once, which is the most common case. timings()
3997 remains unchanged, for the cases where you want multiple runs.
4007 remains unchanged, for the cases where you want multiple runs.
3998
4008
3999 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
4009 * IPython/Shell.py (MatplotlibShellBase._matplotlib_config): Fix a
4000 bug where Python2.2 crashes with exec'ing code which does not end
4010 bug where Python2.2 crashes with exec'ing code which does not end
4001 in a single newline. Python 2.3 is OK, so I hadn't noticed this
4011 in a single newline. Python 2.3 is OK, so I hadn't noticed this
4002 before.
4012 before.
4003
4013
4004 2004-12-10 Fernando Perez <fperez@colorado.edu>
4014 2004-12-10 Fernando Perez <fperez@colorado.edu>
4005
4015
4006 * IPython/Magic.py (Magic.magic_prun): changed name of option from
4016 * IPython/Magic.py (Magic.magic_prun): changed name of option from
4007 -t to -T, to accomodate the new -t flag in %run (the %run and
4017 -t to -T, to accomodate the new -t flag in %run (the %run and
4008 %prun options are kind of intermixed, and it's not easy to change
4018 %prun options are kind of intermixed, and it's not easy to change
4009 this with the limitations of python's getopt).
4019 this with the limitations of python's getopt).
4010
4020
4011 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
4021 * IPython/Magic.py (Magic.magic_run): Added new -t option to time
4012 the execution of scripts. It's not as fine-tuned as timeit.py,
4022 the execution of scripts. It's not as fine-tuned as timeit.py,
4013 but it works from inside ipython (and under 2.2, which lacks
4023 but it works from inside ipython (and under 2.2, which lacks
4014 timeit.py). Optionally a number of runs > 1 can be given for
4024 timeit.py). Optionally a number of runs > 1 can be given for
4015 timing very short-running code.
4025 timing very short-running code.
4016
4026
4017 * IPython/genutils.py (uniq_stable): new routine which returns a
4027 * IPython/genutils.py (uniq_stable): new routine which returns a
4018 list of unique elements in any iterable, but in stable order of
4028 list of unique elements in any iterable, but in stable order of
4019 appearance. I needed this for the ultraTB fixes, and it's a handy
4029 appearance. I needed this for the ultraTB fixes, and it's a handy
4020 utility.
4030 utility.
4021
4031
4022 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4032 * IPython/ultraTB.py (VerboseTB.text): Fix proper reporting of
4023 dotted names in Verbose exceptions. This had been broken since
4033 dotted names in Verbose exceptions. This had been broken since
4024 the very start, now x.y will properly be printed in a Verbose
4034 the very start, now x.y will properly be printed in a Verbose
4025 traceback, instead of x being shown and y appearing always as an
4035 traceback, instead of x being shown and y appearing always as an
4026 'undefined global'. Getting this to work was a bit tricky,
4036 'undefined global'. Getting this to work was a bit tricky,
4027 because by default python tokenizers are stateless. Saved by
4037 because by default python tokenizers are stateless. Saved by
4028 python's ability to easily add a bit of state to an arbitrary
4038 python's ability to easily add a bit of state to an arbitrary
4029 function (without needing to build a full-blown callable object).
4039 function (without needing to build a full-blown callable object).
4030
4040
4031 Also big cleanup of this code, which had horrendous runtime
4041 Also big cleanup of this code, which had horrendous runtime
4032 lookups of zillions of attributes for colorization. Moved all
4042 lookups of zillions of attributes for colorization. Moved all
4033 this code into a few templates, which make it cleaner and quicker.
4043 this code into a few templates, which make it cleaner and quicker.
4034
4044
4035 Printout quality was also improved for Verbose exceptions: one
4045 Printout quality was also improved for Verbose exceptions: one
4036 variable per line, and memory addresses are printed (this can be
4046 variable per line, and memory addresses are printed (this can be
4037 quite handy in nasty debugging situations, which is what Verbose
4047 quite handy in nasty debugging situations, which is what Verbose
4038 is for).
4048 is for).
4039
4049
4040 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4050 * IPython/ipmaker.py (make_IPython): Do NOT execute files named in
4041 the command line as scripts to be loaded by embedded instances.
4051 the command line as scripts to be loaded by embedded instances.
4042 Doing so has the potential for an infinite recursion if there are
4052 Doing so has the potential for an infinite recursion if there are
4043 exceptions thrown in the process. This fixes a strange crash
4053 exceptions thrown in the process. This fixes a strange crash
4044 reported by Philippe MULLER <muller-AT-irit.fr>.
4054 reported by Philippe MULLER <muller-AT-irit.fr>.
4045
4055
4046 2004-12-09 Fernando Perez <fperez@colorado.edu>
4056 2004-12-09 Fernando Perez <fperez@colorado.edu>
4047
4057
4048 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4058 * IPython/Shell.py (MatplotlibShellBase.use): Change pylab support
4049 to reflect new names in matplotlib, which now expose the
4059 to reflect new names in matplotlib, which now expose the
4050 matlab-compatible interface via a pylab module instead of the
4060 matlab-compatible interface via a pylab module instead of the
4051 'matlab' name. The new code is backwards compatible, so users of
4061 'matlab' name. The new code is backwards compatible, so users of
4052 all matplotlib versions are OK. Patch by J. Hunter.
4062 all matplotlib versions are OK. Patch by J. Hunter.
4053
4063
4054 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4064 * IPython/OInspect.py (Inspector.pinfo): Add to object? printing
4055 of __init__ docstrings for instances (class docstrings are already
4065 of __init__ docstrings for instances (class docstrings are already
4056 automatically printed). Instances with customized docstrings
4066 automatically printed). Instances with customized docstrings
4057 (indep. of the class) are also recognized and all 3 separate
4067 (indep. of the class) are also recognized and all 3 separate
4058 docstrings are printed (instance, class, constructor). After some
4068 docstrings are printed (instance, class, constructor). After some
4059 comments/suggestions by J. Hunter.
4069 comments/suggestions by J. Hunter.
4060
4070
4061 2004-12-05 Fernando Perez <fperez@colorado.edu>
4071 2004-12-05 Fernando Perez <fperez@colorado.edu>
4062
4072
4063 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4073 * IPython/iplib.py (MagicCompleter.complete): Remove annoying
4064 warnings when tab-completion fails and triggers an exception.
4074 warnings when tab-completion fails and triggers an exception.
4065
4075
4066 2004-12-03 Fernando Perez <fperez@colorado.edu>
4076 2004-12-03 Fernando Perez <fperez@colorado.edu>
4067
4077
4068 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4078 * IPython/Magic.py (magic_prun): Fix bug where an exception would
4069 be triggered when using 'run -p'. An incorrect option flag was
4079 be triggered when using 'run -p'. An incorrect option flag was
4070 being set ('d' instead of 'D').
4080 being set ('d' instead of 'D').
4071 (manpage): fix missing escaped \- sign.
4081 (manpage): fix missing escaped \- sign.
4072
4082
4073 2004-11-30 *** Released version 0.6.5
4083 2004-11-30 *** Released version 0.6.5
4074
4084
4075 2004-11-30 Fernando Perez <fperez@colorado.edu>
4085 2004-11-30 Fernando Perez <fperez@colorado.edu>
4076
4086
4077 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4087 * IPython/Magic.py (Magic.magic_run): Fix bug in breakpoint
4078 setting with -d option.
4088 setting with -d option.
4079
4089
4080 * setup.py (docfiles): Fix problem where the doc glob I was using
4090 * setup.py (docfiles): Fix problem where the doc glob I was using
4081 was COMPLETELY BROKEN. It was giving the right files by pure
4091 was COMPLETELY BROKEN. It was giving the right files by pure
4082 accident, but failed once I tried to include ipython.el. Note:
4092 accident, but failed once I tried to include ipython.el. Note:
4083 glob() does NOT allow you to do exclusion on multiple endings!
4093 glob() does NOT allow you to do exclusion on multiple endings!
4084
4094
4085 2004-11-29 Fernando Perez <fperez@colorado.edu>
4095 2004-11-29 Fernando Perez <fperez@colorado.edu>
4086
4096
4087 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4097 * IPython/usage.py (__doc__): cleaned up usage docstring, by using
4088 the manpage as the source. Better formatting & consistency.
4098 the manpage as the source. Better formatting & consistency.
4089
4099
4090 * IPython/Magic.py (magic_run): Added new -d option, to run
4100 * IPython/Magic.py (magic_run): Added new -d option, to run
4091 scripts under the control of the python pdb debugger. Note that
4101 scripts under the control of the python pdb debugger. Note that
4092 this required changing the %prun option -d to -D, to avoid a clash
4102 this required changing the %prun option -d to -D, to avoid a clash
4093 (since %run must pass options to %prun, and getopt is too dumb to
4103 (since %run must pass options to %prun, and getopt is too dumb to
4094 handle options with string values with embedded spaces). Thanks
4104 handle options with string values with embedded spaces). Thanks
4095 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4105 to a suggestion by Matthew Arnison <maffew-AT-cat.org.au>.
4096 (magic_who_ls): added type matching to %who and %whos, so that one
4106 (magic_who_ls): added type matching to %who and %whos, so that one
4097 can filter their output to only include variables of certain
4107 can filter their output to only include variables of certain
4098 types. Another suggestion by Matthew.
4108 types. Another suggestion by Matthew.
4099 (magic_whos): Added memory summaries in kb and Mb for arrays.
4109 (magic_whos): Added memory summaries in kb and Mb for arrays.
4100 (magic_who): Improve formatting (break lines every 9 vars).
4110 (magic_who): Improve formatting (break lines every 9 vars).
4101
4111
4102 2004-11-28 Fernando Perez <fperez@colorado.edu>
4112 2004-11-28 Fernando Perez <fperez@colorado.edu>
4103
4113
4104 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4114 * IPython/Logger.py (Logger.log): Fix bug in syncing the input
4105 cache when empty lines were present.
4115 cache when empty lines were present.
4106
4116
4107 2004-11-24 Fernando Perez <fperez@colorado.edu>
4117 2004-11-24 Fernando Perez <fperez@colorado.edu>
4108
4118
4109 * IPython/usage.py (__doc__): document the re-activated threading
4119 * IPython/usage.py (__doc__): document the re-activated threading
4110 options for WX and GTK.
4120 options for WX and GTK.
4111
4121
4112 2004-11-23 Fernando Perez <fperez@colorado.edu>
4122 2004-11-23 Fernando Perez <fperez@colorado.edu>
4113
4123
4114 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4124 * IPython/Shell.py (start): Added Prabhu's big patch to reactivate
4115 the -wthread and -gthread options, along with a new -tk one to try
4125 the -wthread and -gthread options, along with a new -tk one to try
4116 and coordinate Tk threading with wx/gtk. The tk support is very
4126 and coordinate Tk threading with wx/gtk. The tk support is very
4117 platform dependent, since it seems to require Tcl and Tk to be
4127 platform dependent, since it seems to require Tcl and Tk to be
4118 built with threads (Fedora1/2 appears NOT to have it, but in
4128 built with threads (Fedora1/2 appears NOT to have it, but in
4119 Prabhu's Debian boxes it works OK). But even with some Tk
4129 Prabhu's Debian boxes it works OK). But even with some Tk
4120 limitations, this is a great improvement.
4130 limitations, this is a great improvement.
4121
4131
4122 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4132 * IPython/Prompts.py (prompt_specials_color): Added \t for time
4123 info in user prompts. Patch by Prabhu.
4133 info in user prompts. Patch by Prabhu.
4124
4134
4125 2004-11-18 Fernando Perez <fperez@colorado.edu>
4135 2004-11-18 Fernando Perez <fperez@colorado.edu>
4126
4136
4127 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4137 * IPython/genutils.py (ask_yes_no): Add check for a max of 20
4128 EOFErrors and bail, to avoid infinite loops if a non-terminating
4138 EOFErrors and bail, to avoid infinite loops if a non-terminating
4129 file is fed into ipython. Patch submitted in issue 19 by user,
4139 file is fed into ipython. Patch submitted in issue 19 by user,
4130 many thanks.
4140 many thanks.
4131
4141
4132 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4142 * IPython/iplib.py (InteractiveShell.handle_auto): do NOT trigger
4133 autoquote/parens in continuation prompts, which can cause lots of
4143 autoquote/parens in continuation prompts, which can cause lots of
4134 problems. Closes roundup issue 20.
4144 problems. Closes roundup issue 20.
4135
4145
4136 2004-11-17 Fernando Perez <fperez@colorado.edu>
4146 2004-11-17 Fernando Perez <fperez@colorado.edu>
4137
4147
4138 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4148 * debian/control (Build-Depends-Indep): Fix dpatch dependency,
4139 reported as debian bug #280505. I'm not sure my local changelog
4149 reported as debian bug #280505. I'm not sure my local changelog
4140 entry has the proper debian format (Jack?).
4150 entry has the proper debian format (Jack?).
4141
4151
4142 2004-11-08 *** Released version 0.6.4
4152 2004-11-08 *** Released version 0.6.4
4143
4153
4144 2004-11-08 Fernando Perez <fperez@colorado.edu>
4154 2004-11-08 Fernando Perez <fperez@colorado.edu>
4145
4155
4146 * IPython/iplib.py (init_readline): Fix exit message for Windows
4156 * IPython/iplib.py (init_readline): Fix exit message for Windows
4147 when readline is active. Thanks to a report by Eric Jones
4157 when readline is active. Thanks to a report by Eric Jones
4148 <eric-AT-enthought.com>.
4158 <eric-AT-enthought.com>.
4149
4159
4150 2004-11-07 Fernando Perez <fperez@colorado.edu>
4160 2004-11-07 Fernando Perez <fperez@colorado.edu>
4151
4161
4152 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4162 * IPython/genutils.py (page): Add a trap for OSError exceptions,
4153 sometimes seen by win2k/cygwin users.
4163 sometimes seen by win2k/cygwin users.
4154
4164
4155 2004-11-06 Fernando Perez <fperez@colorado.edu>
4165 2004-11-06 Fernando Perez <fperez@colorado.edu>
4156
4166
4157 * IPython/iplib.py (interact): Change the handling of %Exit from
4167 * IPython/iplib.py (interact): Change the handling of %Exit from
4158 trying to propagate a SystemExit to an internal ipython flag.
4168 trying to propagate a SystemExit to an internal ipython flag.
4159 This is less elegant than using Python's exception mechanism, but
4169 This is less elegant than using Python's exception mechanism, but
4160 I can't get that to work reliably with threads, so under -pylab
4170 I can't get that to work reliably with threads, so under -pylab
4161 %Exit was hanging IPython. Cross-thread exception handling is
4171 %Exit was hanging IPython. Cross-thread exception handling is
4162 really a bitch. Thaks to a bug report by Stephen Walton
4172 really a bitch. Thaks to a bug report by Stephen Walton
4163 <stephen.walton-AT-csun.edu>.
4173 <stephen.walton-AT-csun.edu>.
4164
4174
4165 2004-11-04 Fernando Perez <fperez@colorado.edu>
4175 2004-11-04 Fernando Perez <fperez@colorado.edu>
4166
4176
4167 * IPython/iplib.py (raw_input_original): store a pointer to the
4177 * IPython/iplib.py (raw_input_original): store a pointer to the
4168 true raw_input to harden against code which can modify it
4178 true raw_input to harden against code which can modify it
4169 (wx.py.PyShell does this and would otherwise crash ipython).
4179 (wx.py.PyShell does this and would otherwise crash ipython).
4170 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4180 Thanks to a bug report by Jim Flowers <james.flowers-AT-lgx.com>.
4171
4181
4172 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4182 * IPython/Shell.py (MTInteractiveShell.runsource): Cleaner fix for
4173 Ctrl-C problem, which does not mess up the input line.
4183 Ctrl-C problem, which does not mess up the input line.
4174
4184
4175 2004-11-03 Fernando Perez <fperez@colorado.edu>
4185 2004-11-03 Fernando Perez <fperez@colorado.edu>
4176
4186
4177 * IPython/Release.py: Changed licensing to BSD, in all files.
4187 * IPython/Release.py: Changed licensing to BSD, in all files.
4178 (name): lowercase name for tarball/RPM release.
4188 (name): lowercase name for tarball/RPM release.
4179
4189
4180 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4190 * IPython/OInspect.py (getdoc): wrap inspect.getdoc() safely for
4181 use throughout ipython.
4191 use throughout ipython.
4182
4192
4183 * IPython/Magic.py (Magic._ofind): Switch to using the new
4193 * IPython/Magic.py (Magic._ofind): Switch to using the new
4184 OInspect.getdoc() function.
4194 OInspect.getdoc() function.
4185
4195
4186 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4196 * IPython/Shell.py (sigint_handler): Hack to ignore the execution
4187 of the line currently being canceled via Ctrl-C. It's extremely
4197 of the line currently being canceled via Ctrl-C. It's extremely
4188 ugly, but I don't know how to do it better (the problem is one of
4198 ugly, but I don't know how to do it better (the problem is one of
4189 handling cross-thread exceptions).
4199 handling cross-thread exceptions).
4190
4200
4191 2004-10-28 Fernando Perez <fperez@colorado.edu>
4201 2004-10-28 Fernando Perez <fperez@colorado.edu>
4192
4202
4193 * IPython/Shell.py (signal_handler): add signal handlers to trap
4203 * IPython/Shell.py (signal_handler): add signal handlers to trap
4194 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4204 SIGINT and SIGSEGV in threaded code properly. Thanks to a bug
4195 report by Francesc Alted.
4205 report by Francesc Alted.
4196
4206
4197 2004-10-21 Fernando Perez <fperez@colorado.edu>
4207 2004-10-21 Fernando Perez <fperez@colorado.edu>
4198
4208
4199 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4209 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Fix @
4200 to % for pysh syntax extensions.
4210 to % for pysh syntax extensions.
4201
4211
4202 2004-10-09 Fernando Perez <fperez@colorado.edu>
4212 2004-10-09 Fernando Perez <fperez@colorado.edu>
4203
4213
4204 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4214 * IPython/Magic.py (Magic.magic_whos): modify output of Numeric
4205 arrays to print a more useful summary, without calling str(arr).
4215 arrays to print a more useful summary, without calling str(arr).
4206 This avoids the problem of extremely lengthy computations which
4216 This avoids the problem of extremely lengthy computations which
4207 occur if arr is large, and appear to the user as a system lockup
4217 occur if arr is large, and appear to the user as a system lockup
4208 with 100% cpu activity. After a suggestion by Kristian Sandberg
4218 with 100% cpu activity. After a suggestion by Kristian Sandberg
4209 <Kristian.Sandberg@colorado.edu>.
4219 <Kristian.Sandberg@colorado.edu>.
4210 (Magic.__init__): fix bug in global magic escapes not being
4220 (Magic.__init__): fix bug in global magic escapes not being
4211 correctly set.
4221 correctly set.
4212
4222
4213 2004-10-08 Fernando Perez <fperez@colorado.edu>
4223 2004-10-08 Fernando Perez <fperez@colorado.edu>
4214
4224
4215 * IPython/Magic.py (__license__): change to absolute imports of
4225 * IPython/Magic.py (__license__): change to absolute imports of
4216 ipython's own internal packages, to start adapting to the absolute
4226 ipython's own internal packages, to start adapting to the absolute
4217 import requirement of PEP-328.
4227 import requirement of PEP-328.
4218
4228
4219 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4229 * IPython/genutils.py (__author__): Fix coding to utf-8 on all
4220 files, and standardize author/license marks through the Release
4230 files, and standardize author/license marks through the Release
4221 module instead of having per/file stuff (except for files with
4231 module instead of having per/file stuff (except for files with
4222 particular licenses, like the MIT/PSF-licensed codes).
4232 particular licenses, like the MIT/PSF-licensed codes).
4223
4233
4224 * IPython/Debugger.py: remove dead code for python 2.1
4234 * IPython/Debugger.py: remove dead code for python 2.1
4225
4235
4226 2004-10-04 Fernando Perez <fperez@colorado.edu>
4236 2004-10-04 Fernando Perez <fperez@colorado.edu>
4227
4237
4228 * IPython/iplib.py (ipmagic): New function for accessing magics
4238 * IPython/iplib.py (ipmagic): New function for accessing magics
4229 via a normal python function call.
4239 via a normal python function call.
4230
4240
4231 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4241 * IPython/Magic.py (Magic.magic_magic): Change the magic escape
4232 from '@' to '%', to accomodate the new @decorator syntax of python
4242 from '@' to '%', to accomodate the new @decorator syntax of python
4233 2.4.
4243 2.4.
4234
4244
4235 2004-09-29 Fernando Perez <fperez@colorado.edu>
4245 2004-09-29 Fernando Perez <fperez@colorado.edu>
4236
4246
4237 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4247 * IPython/Shell.py (MatplotlibShellBase.use): Added a wrapper to
4238 matplotlib.use to prevent running scripts which try to switch
4248 matplotlib.use to prevent running scripts which try to switch
4239 interactive backends from within ipython. This will just crash
4249 interactive backends from within ipython. This will just crash
4240 the python interpreter, so we can't allow it (but a detailed error
4250 the python interpreter, so we can't allow it (but a detailed error
4241 is given to the user).
4251 is given to the user).
4242
4252
4243 2004-09-28 Fernando Perez <fperez@colorado.edu>
4253 2004-09-28 Fernando Perez <fperez@colorado.edu>
4244
4254
4245 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4255 * IPython/Shell.py (MatplotlibShellBase.mplot_exec):
4246 matplotlib-related fixes so that using @run with non-matplotlib
4256 matplotlib-related fixes so that using @run with non-matplotlib
4247 scripts doesn't pop up spurious plot windows. This requires
4257 scripts doesn't pop up spurious plot windows. This requires
4248 matplotlib >= 0.63, where I had to make some changes as well.
4258 matplotlib >= 0.63, where I had to make some changes as well.
4249
4259
4250 * IPython/ipmaker.py (make_IPython): update version requirement to
4260 * IPython/ipmaker.py (make_IPython): update version requirement to
4251 python 2.2.
4261 python 2.2.
4252
4262
4253 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4263 * IPython/iplib.py (InteractiveShell.mainloop): Add an optional
4254 banner arg for embedded customization.
4264 banner arg for embedded customization.
4255
4265
4256 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4266 * IPython/Magic.py (Magic.__init__): big cleanup to remove all
4257 explicit uses of __IP as the IPython's instance name. Now things
4267 explicit uses of __IP as the IPython's instance name. Now things
4258 are properly handled via the shell.name value. The actual code
4268 are properly handled via the shell.name value. The actual code
4259 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4269 is a bit ugly b/c I'm doing it via a global in Magic.py, but this
4260 is much better than before. I'll clean things completely when the
4270 is much better than before. I'll clean things completely when the
4261 magic stuff gets a real overhaul.
4271 magic stuff gets a real overhaul.
4262
4272
4263 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4273 * ipython.1: small fixes, sent in by Jack Moffit. He also sent in
4264 minor changes to debian dir.
4274 minor changes to debian dir.
4265
4275
4266 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4276 * IPython/iplib.py (InteractiveShell.__init__): Fix adding a
4267 pointer to the shell itself in the interactive namespace even when
4277 pointer to the shell itself in the interactive namespace even when
4268 a user-supplied dict is provided. This is needed for embedding
4278 a user-supplied dict is provided. This is needed for embedding
4269 purposes (found by tests with Michel Sanner).
4279 purposes (found by tests with Michel Sanner).
4270
4280
4271 2004-09-27 Fernando Perez <fperez@colorado.edu>
4281 2004-09-27 Fernando Perez <fperez@colorado.edu>
4272
4282
4273 * IPython/UserConfig/ipythonrc: remove []{} from
4283 * IPython/UserConfig/ipythonrc: remove []{} from
4274 readline_remove_delims, so that things like [modname.<TAB> do
4284 readline_remove_delims, so that things like [modname.<TAB> do
4275 proper completion. This disables [].TAB, but that's a less common
4285 proper completion. This disables [].TAB, but that's a less common
4276 case than module names in list comprehensions, for example.
4286 case than module names in list comprehensions, for example.
4277 Thanks to a report by Andrea Riciputi.
4287 Thanks to a report by Andrea Riciputi.
4278
4288
4279 2004-09-09 Fernando Perez <fperez@colorado.edu>
4289 2004-09-09 Fernando Perez <fperez@colorado.edu>
4280
4290
4281 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4291 * IPython/Shell.py (IPShellGTK.mainloop): reorder to avoid
4282 blocking problems in win32 and osx. Fix by John.
4292 blocking problems in win32 and osx. Fix by John.
4283
4293
4284 2004-09-08 Fernando Perez <fperez@colorado.edu>
4294 2004-09-08 Fernando Perez <fperez@colorado.edu>
4285
4295
4286 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4296 * IPython/Shell.py (IPShellWX.OnInit): Fix output redirection bug
4287 for Win32 and OSX. Fix by John Hunter.
4297 for Win32 and OSX. Fix by John Hunter.
4288
4298
4289 2004-08-30 *** Released version 0.6.3
4299 2004-08-30 *** Released version 0.6.3
4290
4300
4291 2004-08-30 Fernando Perez <fperez@colorado.edu>
4301 2004-08-30 Fernando Perez <fperez@colorado.edu>
4292
4302
4293 * setup.py (isfile): Add manpages to list of dependent files to be
4303 * setup.py (isfile): Add manpages to list of dependent files to be
4294 updated.
4304 updated.
4295
4305
4296 2004-08-27 Fernando Perez <fperez@colorado.edu>
4306 2004-08-27 Fernando Perez <fperez@colorado.edu>
4297
4307
4298 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4308 * IPython/Shell.py (start): I've disabled -wthread and -gthread
4299 for now. They don't really work with standalone WX/GTK code
4309 for now. They don't really work with standalone WX/GTK code
4300 (though matplotlib IS working fine with both of those backends).
4310 (though matplotlib IS working fine with both of those backends).
4301 This will neeed much more testing. I disabled most things with
4311 This will neeed much more testing. I disabled most things with
4302 comments, so turning it back on later should be pretty easy.
4312 comments, so turning it back on later should be pretty easy.
4303
4313
4304 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4314 * IPython/iplib.py (InteractiveShell.__init__): Fix accidental
4305 autocalling of expressions like r'foo', by modifying the line
4315 autocalling of expressions like r'foo', by modifying the line
4306 split regexp. Closes
4316 split regexp. Closes
4307 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4317 http://www.scipy.net/roundup/ipython/issue18, reported by Nicholas
4308 Riley <ipythonbugs-AT-sabi.net>.
4318 Riley <ipythonbugs-AT-sabi.net>.
4309 (InteractiveShell.mainloop): honor --nobanner with banner
4319 (InteractiveShell.mainloop): honor --nobanner with banner
4310 extensions.
4320 extensions.
4311
4321
4312 * IPython/Shell.py: Significant refactoring of all classes, so
4322 * IPython/Shell.py: Significant refactoring of all classes, so
4313 that we can really support ALL matplotlib backends and threading
4323 that we can really support ALL matplotlib backends and threading
4314 models (John spotted a bug with Tk which required this). Now we
4324 models (John spotted a bug with Tk which required this). Now we
4315 should support single-threaded, WX-threads and GTK-threads, both
4325 should support single-threaded, WX-threads and GTK-threads, both
4316 for generic code and for matplotlib.
4326 for generic code and for matplotlib.
4317
4327
4318 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4328 * IPython/ipmaker.py (__call__): Changed -mpthread option to
4319 -pylab, to simplify things for users. Will also remove the pylab
4329 -pylab, to simplify things for users. Will also remove the pylab
4320 profile, since now all of matplotlib configuration is directly
4330 profile, since now all of matplotlib configuration is directly
4321 handled here. This also reduces startup time.
4331 handled here. This also reduces startup time.
4322
4332
4323 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4333 * IPython/Shell.py (IPShellGTK.run): Fixed bug where mainloop() of
4324 shell wasn't being correctly called. Also in IPShellWX.
4334 shell wasn't being correctly called. Also in IPShellWX.
4325
4335
4326 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4336 * IPython/iplib.py (InteractiveShell.__init__): Added option to
4327 fine-tune banner.
4337 fine-tune banner.
4328
4338
4329 * IPython/numutils.py (spike): Deprecate these spike functions,
4339 * IPython/numutils.py (spike): Deprecate these spike functions,
4330 delete (long deprecated) gnuplot_exec handler.
4340 delete (long deprecated) gnuplot_exec handler.
4331
4341
4332 2004-08-26 Fernando Perez <fperez@colorado.edu>
4342 2004-08-26 Fernando Perez <fperez@colorado.edu>
4333
4343
4334 * ipython.1: Update for threading options, plus some others which
4344 * ipython.1: Update for threading options, plus some others which
4335 were missing.
4345 were missing.
4336
4346
4337 * IPython/ipmaker.py (__call__): Added -wthread option for
4347 * IPython/ipmaker.py (__call__): Added -wthread option for
4338 wxpython thread handling. Make sure threading options are only
4348 wxpython thread handling. Make sure threading options are only
4339 valid at the command line.
4349 valid at the command line.
4340
4350
4341 * scripts/ipython: moved shell selection into a factory function
4351 * scripts/ipython: moved shell selection into a factory function
4342 in Shell.py, to keep the starter script to a minimum.
4352 in Shell.py, to keep the starter script to a minimum.
4343
4353
4344 2004-08-25 Fernando Perez <fperez@colorado.edu>
4354 2004-08-25 Fernando Perez <fperez@colorado.edu>
4345
4355
4346 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4356 * IPython/Shell.py (IPShellWX.wxexit): fixes to WX threading, by
4347 John. Along with some recent changes he made to matplotlib, the
4357 John. Along with some recent changes he made to matplotlib, the
4348 next versions of both systems should work very well together.
4358 next versions of both systems should work very well together.
4349
4359
4350 2004-08-24 Fernando Perez <fperez@colorado.edu>
4360 2004-08-24 Fernando Perez <fperez@colorado.edu>
4351
4361
4352 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4362 * IPython/Magic.py (Magic.magic_prun): cleanup some dead code. I
4353 tried to switch the profiling to using hotshot, but I'm getting
4363 tried to switch the profiling to using hotshot, but I'm getting
4354 strange errors from prof.runctx() there. I may be misreading the
4364 strange errors from prof.runctx() there. I may be misreading the
4355 docs, but it looks weird. For now the profiling code will
4365 docs, but it looks weird. For now the profiling code will
4356 continue to use the standard profiler.
4366 continue to use the standard profiler.
4357
4367
4358 2004-08-23 Fernando Perez <fperez@colorado.edu>
4368 2004-08-23 Fernando Perez <fperez@colorado.edu>
4359
4369
4360 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4370 * IPython/Shell.py (IPShellWX.__init__): Improvements to the WX
4361 threaded shell, by John Hunter. It's not quite ready yet, but
4371 threaded shell, by John Hunter. It's not quite ready yet, but
4362 close.
4372 close.
4363
4373
4364 2004-08-22 Fernando Perez <fperez@colorado.edu>
4374 2004-08-22 Fernando Perez <fperez@colorado.edu>
4365
4375
4366 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4376 * IPython/iplib.py (InteractiveShell.interact): tab cleanups, also
4367 in Magic and ultraTB.
4377 in Magic and ultraTB.
4368
4378
4369 * ipython.1: document threading options in manpage.
4379 * ipython.1: document threading options in manpage.
4370
4380
4371 * scripts/ipython: Changed name of -thread option to -gthread,
4381 * scripts/ipython: Changed name of -thread option to -gthread,
4372 since this is GTK specific. I want to leave the door open for a
4382 since this is GTK specific. I want to leave the door open for a
4373 -wthread option for WX, which will most likely be necessary. This
4383 -wthread option for WX, which will most likely be necessary. This
4374 change affects usage and ipmaker as well.
4384 change affects usage and ipmaker as well.
4375
4385
4376 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4386 * IPython/Shell.py (matplotlib_shell): Add a factory function to
4377 handle the matplotlib shell issues. Code by John Hunter
4387 handle the matplotlib shell issues. Code by John Hunter
4378 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4388 <jdhunter-AT-nitace.bsd.uchicago.edu>.
4379 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4389 (IPShellMatplotlibWX.__init__): Rudimentary WX support. It's
4380 broken (and disabled for end users) for now, but it puts the
4390 broken (and disabled for end users) for now, but it puts the
4381 infrastructure in place.
4391 infrastructure in place.
4382
4392
4383 2004-08-21 Fernando Perez <fperez@colorado.edu>
4393 2004-08-21 Fernando Perez <fperez@colorado.edu>
4384
4394
4385 * ipythonrc-pylab: Add matplotlib support.
4395 * ipythonrc-pylab: Add matplotlib support.
4386
4396
4387 * matplotlib_config.py: new files for matplotlib support, part of
4397 * matplotlib_config.py: new files for matplotlib support, part of
4388 the pylab profile.
4398 the pylab profile.
4389
4399
4390 * IPython/usage.py (__doc__): documented the threading options.
4400 * IPython/usage.py (__doc__): documented the threading options.
4391
4401
4392 2004-08-20 Fernando Perez <fperez@colorado.edu>
4402 2004-08-20 Fernando Perez <fperez@colorado.edu>
4393
4403
4394 * ipython: Modified the main calling routine to handle the -thread
4404 * ipython: Modified the main calling routine to handle the -thread
4395 and -mpthread options. This needs to be done as a top-level hack,
4405 and -mpthread options. This needs to be done as a top-level hack,
4396 because it determines which class to instantiate for IPython
4406 because it determines which class to instantiate for IPython
4397 itself.
4407 itself.
4398
4408
4399 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4409 * IPython/Shell.py (MTInteractiveShell.__init__): New set of
4400 classes to support multithreaded GTK operation without blocking,
4410 classes to support multithreaded GTK operation without blocking,
4401 and matplotlib with all backends. This is a lot of still very
4411 and matplotlib with all backends. This is a lot of still very
4402 experimental code, and threads are tricky. So it may still have a
4412 experimental code, and threads are tricky. So it may still have a
4403 few rough edges... This code owes a lot to
4413 few rough edges... This code owes a lot to
4404 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4414 http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65109, by
4405 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4415 Brian # McErlean and John Finlay, to Antoon Pardon for fixes, and
4406 to John Hunter for all the matplotlib work.
4416 to John Hunter for all the matplotlib work.
4407
4417
4408 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4418 * IPython/ipmaker.py (__call__): Added -thread and -mpthread
4409 options for gtk thread and matplotlib support.
4419 options for gtk thread and matplotlib support.
4410
4420
4411 2004-08-16 Fernando Perez <fperez@colorado.edu>
4421 2004-08-16 Fernando Perez <fperez@colorado.edu>
4412
4422
4413 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4423 * IPython/iplib.py (InteractiveShell.__init__): don't trigger
4414 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4424 autocall for things like p*q,p/q,p+q,p-q, when p is callable. Bug
4415 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4425 reported by Stephen Walton <stephen.walton-AT-csun.edu>.
4416
4426
4417 2004-08-11 Fernando Perez <fperez@colorado.edu>
4427 2004-08-11 Fernando Perez <fperez@colorado.edu>
4418
4428
4419 * setup.py (isfile): Fix build so documentation gets updated for
4429 * setup.py (isfile): Fix build so documentation gets updated for
4420 rpms (it was only done for .tgz builds).
4430 rpms (it was only done for .tgz builds).
4421
4431
4422 2004-08-10 Fernando Perez <fperez@colorado.edu>
4432 2004-08-10 Fernando Perez <fperez@colorado.edu>
4423
4433
4424 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4434 * genutils.py (Term): Fix misspell of stdin stream (sin->cin).
4425
4435
4426 * iplib.py : Silence syntax error exceptions in tab-completion.
4436 * iplib.py : Silence syntax error exceptions in tab-completion.
4427
4437
4428 2004-08-05 Fernando Perez <fperez@colorado.edu>
4438 2004-08-05 Fernando Perez <fperez@colorado.edu>
4429
4439
4430 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4440 * IPython/Prompts.py (Prompt2.set_colors): Fix incorrectly set
4431 'color off' mark for continuation prompts. This was causing long
4441 'color off' mark for continuation prompts. This was causing long
4432 continuation lines to mis-wrap.
4442 continuation lines to mis-wrap.
4433
4443
4434 2004-08-01 Fernando Perez <fperez@colorado.edu>
4444 2004-08-01 Fernando Perez <fperez@colorado.edu>
4435
4445
4436 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4446 * IPython/ipmaker.py (make_IPython): Allow the shell class used
4437 for building ipython to be a parameter. All this is necessary
4447 for building ipython to be a parameter. All this is necessary
4438 right now to have a multithreaded version, but this insane
4448 right now to have a multithreaded version, but this insane
4439 non-design will be cleaned up soon. For now, it's a hack that
4449 non-design will be cleaned up soon. For now, it's a hack that
4440 works.
4450 works.
4441
4451
4442 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4452 * IPython/Shell.py (IPShell.__init__): Stop using mutable default
4443 args in various places. No bugs so far, but it's a dangerous
4453 args in various places. No bugs so far, but it's a dangerous
4444 practice.
4454 practice.
4445
4455
4446 2004-07-31 Fernando Perez <fperez@colorado.edu>
4456 2004-07-31 Fernando Perez <fperez@colorado.edu>
4447
4457
4448 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4458 * IPython/iplib.py (complete): ignore SyntaxError exceptions to
4449 fix completion of files with dots in their names under most
4459 fix completion of files with dots in their names under most
4450 profiles (pysh was OK because the completion order is different).
4460 profiles (pysh was OK because the completion order is different).
4451
4461
4452 2004-07-27 Fernando Perez <fperez@colorado.edu>
4462 2004-07-27 Fernando Perez <fperez@colorado.edu>
4453
4463
4454 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4464 * IPython/iplib.py (InteractiveShell.__init__): build dict of
4455 keywords manually, b/c the one in keyword.py was removed in python
4465 keywords manually, b/c the one in keyword.py was removed in python
4456 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4466 2.4. Patch by Anakim Border <aborder-AT-users.sourceforge.net>.
4457 This is NOT a bug under python 2.3 and earlier.
4467 This is NOT a bug under python 2.3 and earlier.
4458
4468
4459 2004-07-26 Fernando Perez <fperez@colorado.edu>
4469 2004-07-26 Fernando Perez <fperez@colorado.edu>
4460
4470
4461 * IPython/ultraTB.py (VerboseTB.text): Add another
4471 * IPython/ultraTB.py (VerboseTB.text): Add another
4462 linecache.checkcache() call to try to prevent inspect.py from
4472 linecache.checkcache() call to try to prevent inspect.py from
4463 crashing under python 2.3. I think this fixes
4473 crashing under python 2.3. I think this fixes
4464 http://www.scipy.net/roundup/ipython/issue17.
4474 http://www.scipy.net/roundup/ipython/issue17.
4465
4475
4466 2004-07-26 *** Released version 0.6.2
4476 2004-07-26 *** Released version 0.6.2
4467
4477
4468 2004-07-26 Fernando Perez <fperez@colorado.edu>
4478 2004-07-26 Fernando Perez <fperez@colorado.edu>
4469
4479
4470 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4480 * IPython/Magic.py (Magic.magic_cd): Fix bug where 'cd -N' would
4471 fail for any number.
4481 fail for any number.
4472 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4482 (Magic.magic_bookmark): Fix bug where 'bookmark -l' would fail for
4473 empty bookmarks.
4483 empty bookmarks.
4474
4484
4475 2004-07-26 *** Released version 0.6.1
4485 2004-07-26 *** Released version 0.6.1
4476
4486
4477 2004-07-26 Fernando Perez <fperez@colorado.edu>
4487 2004-07-26 Fernando Perez <fperez@colorado.edu>
4478
4488
4479 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4489 * ipython_win_post_install.py (run): Added pysh shortcut for Windows.
4480
4490
4481 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4491 * IPython/iplib.py (protect_filename): Applied Ville's patch for
4482 escaping '()[]{}' in filenames.
4492 escaping '()[]{}' in filenames.
4483
4493
4484 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4494 * IPython/Magic.py (shlex_split): Fix handling of '*' and '?' for
4485 Python 2.2 users who lack a proper shlex.split.
4495 Python 2.2 users who lack a proper shlex.split.
4486
4496
4487 2004-07-19 Fernando Perez <fperez@colorado.edu>
4497 2004-07-19 Fernando Perez <fperez@colorado.edu>
4488
4498
4489 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4499 * IPython/iplib.py (InteractiveShell.init_readline): Add support
4490 for reading readline's init file. I follow the normal chain:
4500 for reading readline's init file. I follow the normal chain:
4491 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4501 $INPUTRC is honored, otherwise ~/.inputrc is used. Thanks to a
4492 report by Mike Heeter. This closes
4502 report by Mike Heeter. This closes
4493 http://www.scipy.net/roundup/ipython/issue16.
4503 http://www.scipy.net/roundup/ipython/issue16.
4494
4504
4495 2004-07-18 Fernando Perez <fperez@colorado.edu>
4505 2004-07-18 Fernando Perez <fperez@colorado.edu>
4496
4506
4497 * IPython/iplib.py (__init__): Add better handling of '\' under
4507 * IPython/iplib.py (__init__): Add better handling of '\' under
4498 Win32 for filenames. After a patch by Ville.
4508 Win32 for filenames. After a patch by Ville.
4499
4509
4500 2004-07-17 Fernando Perez <fperez@colorado.edu>
4510 2004-07-17 Fernando Perez <fperez@colorado.edu>
4501
4511
4502 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4512 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
4503 autocalling would be triggered for 'foo is bar' if foo is
4513 autocalling would be triggered for 'foo is bar' if foo is
4504 callable. I also cleaned up the autocall detection code to use a
4514 callable. I also cleaned up the autocall detection code to use a
4505 regexp, which is faster. Bug reported by Alexander Schmolck.
4515 regexp, which is faster. Bug reported by Alexander Schmolck.
4506
4516
4507 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4517 * IPython/Magic.py (Magic.magic_pinfo): Fix bug where strings with
4508 '?' in them would confuse the help system. Reported by Alex
4518 '?' in them would confuse the help system. Reported by Alex
4509 Schmolck.
4519 Schmolck.
4510
4520
4511 2004-07-16 Fernando Perez <fperez@colorado.edu>
4521 2004-07-16 Fernando Perez <fperez@colorado.edu>
4512
4522
4513 * IPython/GnuplotInteractive.py (__all__): added plot2.
4523 * IPython/GnuplotInteractive.py (__all__): added plot2.
4514
4524
4515 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4525 * IPython/Gnuplot2.py (Gnuplot.plot2): added new function for
4516 plotting dictionaries, lists or tuples of 1d arrays.
4526 plotting dictionaries, lists or tuples of 1d arrays.
4517
4527
4518 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4528 * IPython/Magic.py (Magic.magic_hist): small clenaups and
4519 optimizations.
4529 optimizations.
4520
4530
4521 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4531 * IPython/iplib.py:Remove old Changelog info for cleanup. This is
4522 the information which was there from Janko's original IPP code:
4532 the information which was there from Janko's original IPP code:
4523
4533
4524 03.05.99 20:53 porto.ifm.uni-kiel.de
4534 03.05.99 20:53 porto.ifm.uni-kiel.de
4525 --Started changelog.
4535 --Started changelog.
4526 --make clear do what it say it does
4536 --make clear do what it say it does
4527 --added pretty output of lines from inputcache
4537 --added pretty output of lines from inputcache
4528 --Made Logger a mixin class, simplifies handling of switches
4538 --Made Logger a mixin class, simplifies handling of switches
4529 --Added own completer class. .string<TAB> expands to last history
4539 --Added own completer class. .string<TAB> expands to last history
4530 line which starts with string. The new expansion is also present
4540 line which starts with string. The new expansion is also present
4531 with Ctrl-r from the readline library. But this shows, who this
4541 with Ctrl-r from the readline library. But this shows, who this
4532 can be done for other cases.
4542 can be done for other cases.
4533 --Added convention that all shell functions should accept a
4543 --Added convention that all shell functions should accept a
4534 parameter_string This opens the door for different behaviour for
4544 parameter_string This opens the door for different behaviour for
4535 each function. @cd is a good example of this.
4545 each function. @cd is a good example of this.
4536
4546
4537 04.05.99 12:12 porto.ifm.uni-kiel.de
4547 04.05.99 12:12 porto.ifm.uni-kiel.de
4538 --added logfile rotation
4548 --added logfile rotation
4539 --added new mainloop method which freezes first the namespace
4549 --added new mainloop method which freezes first the namespace
4540
4550
4541 07.05.99 21:24 porto.ifm.uni-kiel.de
4551 07.05.99 21:24 porto.ifm.uni-kiel.de
4542 --added the docreader classes. Now there is a help system.
4552 --added the docreader classes. Now there is a help system.
4543 -This is only a first try. Currently it's not easy to put new
4553 -This is only a first try. Currently it's not easy to put new
4544 stuff in the indices. But this is the way to go. Info would be
4554 stuff in the indices. But this is the way to go. Info would be
4545 better, but HTML is every where and not everybody has an info
4555 better, but HTML is every where and not everybody has an info
4546 system installed and it's not so easy to change html-docs to info.
4556 system installed and it's not so easy to change html-docs to info.
4547 --added global logfile option
4557 --added global logfile option
4548 --there is now a hook for object inspection method pinfo needs to
4558 --there is now a hook for object inspection method pinfo needs to
4549 be provided for this. Can be reached by two '??'.
4559 be provided for this. Can be reached by two '??'.
4550
4560
4551 08.05.99 20:51 porto.ifm.uni-kiel.de
4561 08.05.99 20:51 porto.ifm.uni-kiel.de
4552 --added a README
4562 --added a README
4553 --bug in rc file. Something has changed so functions in the rc
4563 --bug in rc file. Something has changed so functions in the rc
4554 file need to reference the shell and not self. Not clear if it's a
4564 file need to reference the shell and not self. Not clear if it's a
4555 bug or feature.
4565 bug or feature.
4556 --changed rc file for new behavior
4566 --changed rc file for new behavior
4557
4567
4558 2004-07-15 Fernando Perez <fperez@colorado.edu>
4568 2004-07-15 Fernando Perez <fperez@colorado.edu>
4559
4569
4560 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4570 * IPython/Logger.py (Logger.log): fixed recent bug where the input
4561 cache was falling out of sync in bizarre manners when multi-line
4571 cache was falling out of sync in bizarre manners when multi-line
4562 input was present. Minor optimizations and cleanup.
4572 input was present. Minor optimizations and cleanup.
4563
4573
4564 (Logger): Remove old Changelog info for cleanup. This is the
4574 (Logger): Remove old Changelog info for cleanup. This is the
4565 information which was there from Janko's original code:
4575 information which was there from Janko's original code:
4566
4576
4567 Changes to Logger: - made the default log filename a parameter
4577 Changes to Logger: - made the default log filename a parameter
4568
4578
4569 - put a check for lines beginning with !@? in log(). Needed
4579 - put a check for lines beginning with !@? in log(). Needed
4570 (even if the handlers properly log their lines) for mid-session
4580 (even if the handlers properly log their lines) for mid-session
4571 logging activation to work properly. Without this, lines logged
4581 logging activation to work properly. Without this, lines logged
4572 in mid session, which get read from the cache, would end up
4582 in mid session, which get read from the cache, would end up
4573 'bare' (with !@? in the open) in the log. Now they are caught
4583 'bare' (with !@? in the open) in the log. Now they are caught
4574 and prepended with a #.
4584 and prepended with a #.
4575
4585
4576 * IPython/iplib.py (InteractiveShell.init_readline): added check
4586 * IPython/iplib.py (InteractiveShell.init_readline): added check
4577 in case MagicCompleter fails to be defined, so we don't crash.
4587 in case MagicCompleter fails to be defined, so we don't crash.
4578
4588
4579 2004-07-13 Fernando Perez <fperez@colorado.edu>
4589 2004-07-13 Fernando Perez <fperez@colorado.edu>
4580
4590
4581 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4591 * IPython/Gnuplot2.py (Gnuplot.hardcopy): add automatic generation
4582 of EPS if the requested filename ends in '.eps'.
4592 of EPS if the requested filename ends in '.eps'.
4583
4593
4584 2004-07-04 Fernando Perez <fperez@colorado.edu>
4594 2004-07-04 Fernando Perez <fperez@colorado.edu>
4585
4595
4586 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4596 * IPython/iplib.py (InteractiveShell.handle_shell_escape): Fix
4587 escaping of quotes when calling the shell.
4597 escaping of quotes when calling the shell.
4588
4598
4589 2004-07-02 Fernando Perez <fperez@colorado.edu>
4599 2004-07-02 Fernando Perez <fperez@colorado.edu>
4590
4600
4591 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4601 * IPython/Prompts.py (CachedOutput.update): Fix problem with
4592 gettext not working because we were clobbering '_'. Fixes
4602 gettext not working because we were clobbering '_'. Fixes
4593 http://www.scipy.net/roundup/ipython/issue6.
4603 http://www.scipy.net/roundup/ipython/issue6.
4594
4604
4595 2004-07-01 Fernando Perez <fperez@colorado.edu>
4605 2004-07-01 Fernando Perez <fperez@colorado.edu>
4596
4606
4597 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4607 * IPython/Magic.py (Magic.magic_cd): integrated bookmark handling
4598 into @cd. Patch by Ville.
4608 into @cd. Patch by Ville.
4599
4609
4600 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4610 * IPython/iplib.py (InteractiveShell.post_config_initialization):
4601 new function to store things after ipmaker runs. Patch by Ville.
4611 new function to store things after ipmaker runs. Patch by Ville.
4602 Eventually this will go away once ipmaker is removed and the class
4612 Eventually this will go away once ipmaker is removed and the class
4603 gets cleaned up, but for now it's ok. Key functionality here is
4613 gets cleaned up, but for now it's ok. Key functionality here is
4604 the addition of the persistent storage mechanism, a dict for
4614 the addition of the persistent storage mechanism, a dict for
4605 keeping data across sessions (for now just bookmarks, but more can
4615 keeping data across sessions (for now just bookmarks, but more can
4606 be implemented later).
4616 be implemented later).
4607
4617
4608 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4618 * IPython/Magic.py (Magic.magic_bookmark): New bookmark system,
4609 persistent across sections. Patch by Ville, I modified it
4619 persistent across sections. Patch by Ville, I modified it
4610 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4620 soemwhat to allow bookmarking arbitrary dirs other than CWD. Also
4611 added a '-l' option to list all bookmarks.
4621 added a '-l' option to list all bookmarks.
4612
4622
4613 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4623 * IPython/iplib.py (InteractiveShell.atexit_operations): new
4614 center for cleanup. Registered with atexit.register(). I moved
4624 center for cleanup. Registered with atexit.register(). I moved
4615 here the old exit_cleanup(). After a patch by Ville.
4625 here the old exit_cleanup(). After a patch by Ville.
4616
4626
4617 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4627 * IPython/Magic.py (get_py_filename): added '~' to the accepted
4618 characters in the hacked shlex_split for python 2.2.
4628 characters in the hacked shlex_split for python 2.2.
4619
4629
4620 * IPython/iplib.py (file_matches): more fixes to filenames with
4630 * IPython/iplib.py (file_matches): more fixes to filenames with
4621 whitespace in them. It's not perfect, but limitations in python's
4631 whitespace in them. It's not perfect, but limitations in python's
4622 readline make it impossible to go further.
4632 readline make it impossible to go further.
4623
4633
4624 2004-06-29 Fernando Perez <fperez@colorado.edu>
4634 2004-06-29 Fernando Perez <fperez@colorado.edu>
4625
4635
4626 * IPython/iplib.py (file_matches): escape whitespace correctly in
4636 * IPython/iplib.py (file_matches): escape whitespace correctly in
4627 filename completions. Bug reported by Ville.
4637 filename completions. Bug reported by Ville.
4628
4638
4629 2004-06-28 Fernando Perez <fperez@colorado.edu>
4639 2004-06-28 Fernando Perez <fperez@colorado.edu>
4630
4640
4631 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4641 * IPython/ipmaker.py (__call__): Added per-profile histories. Now
4632 the history file will be called 'history-PROFNAME' (or just
4642 the history file will be called 'history-PROFNAME' (or just
4633 'history' if no profile is loaded). I was getting annoyed at
4643 'history' if no profile is loaded). I was getting annoyed at
4634 getting my Numerical work history clobbered by pysh sessions.
4644 getting my Numerical work history clobbered by pysh sessions.
4635
4645
4636 * IPython/iplib.py (InteractiveShell.__init__): Internal
4646 * IPython/iplib.py (InteractiveShell.__init__): Internal
4637 getoutputerror() function so that we can honor the system_verbose
4647 getoutputerror() function so that we can honor the system_verbose
4638 flag for _all_ system calls. I also added escaping of #
4648 flag for _all_ system calls. I also added escaping of #
4639 characters here to avoid confusing Itpl.
4649 characters here to avoid confusing Itpl.
4640
4650
4641 * IPython/Magic.py (shlex_split): removed call to shell in
4651 * IPython/Magic.py (shlex_split): removed call to shell in
4642 parse_options and replaced it with shlex.split(). The annoying
4652 parse_options and replaced it with shlex.split(). The annoying
4643 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4653 part was that in Python 2.2, shlex.split() doesn't exist, so I had
4644 to backport it from 2.3, with several frail hacks (the shlex
4654 to backport it from 2.3, with several frail hacks (the shlex
4645 module is rather limited in 2.2). Thanks to a suggestion by Ville
4655 module is rather limited in 2.2). Thanks to a suggestion by Ville
4646 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4656 Vainio <vivainio@kolumbus.fi>. For Python 2.3 there should be no
4647 problem.
4657 problem.
4648
4658
4649 (Magic.magic_system_verbose): new toggle to print the actual
4659 (Magic.magic_system_verbose): new toggle to print the actual
4650 system calls made by ipython. Mainly for debugging purposes.
4660 system calls made by ipython. Mainly for debugging purposes.
4651
4661
4652 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4662 * IPython/GnuplotRuntime.py (gnu_out): fix bug for cygwin, which
4653 doesn't support persistence. Reported (and fix suggested) by
4663 doesn't support persistence. Reported (and fix suggested) by
4654 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4664 Travis Caldwell <travis_caldwell2000@yahoo.com>.
4655
4665
4656 2004-06-26 Fernando Perez <fperez@colorado.edu>
4666 2004-06-26 Fernando Perez <fperez@colorado.edu>
4657
4667
4658 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4668 * IPython/Logger.py (Logger.log): fix to handle correctly empty
4659 continue prompts.
4669 continue prompts.
4660
4670
4661 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4671 * IPython/Extensions/InterpreterExec.py (pysh): moved the pysh()
4662 function (basically a big docstring) and a few more things here to
4672 function (basically a big docstring) and a few more things here to
4663 speedup startup. pysh.py is now very lightweight. We want because
4673 speedup startup. pysh.py is now very lightweight. We want because
4664 it gets execfile'd, while InterpreterExec gets imported, so
4674 it gets execfile'd, while InterpreterExec gets imported, so
4665 byte-compilation saves time.
4675 byte-compilation saves time.
4666
4676
4667 2004-06-25 Fernando Perez <fperez@colorado.edu>
4677 2004-06-25 Fernando Perez <fperez@colorado.edu>
4668
4678
4669 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4679 * IPython/Magic.py (Magic.magic_cd): Fixed to restore usage of 'cd
4670 -NUM', which was recently broken.
4680 -NUM', which was recently broken.
4671
4681
4672 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4682 * IPython/iplib.py (InteractiveShell.handle_shell_escape): allow !
4673 in multi-line input (but not !!, which doesn't make sense there).
4683 in multi-line input (but not !!, which doesn't make sense there).
4674
4684
4675 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4685 * IPython/UserConfig/ipythonrc: made autoindent on by default.
4676 It's just too useful, and people can turn it off in the less
4686 It's just too useful, and people can turn it off in the less
4677 common cases where it's a problem.
4687 common cases where it's a problem.
4678
4688
4679 2004-06-24 Fernando Perez <fperez@colorado.edu>
4689 2004-06-24 Fernando Perez <fperez@colorado.edu>
4680
4690
4681 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4691 * IPython/iplib.py (InteractiveShell._prefilter): big change -
4682 special syntaxes (like alias calling) is now allied in multi-line
4692 special syntaxes (like alias calling) is now allied in multi-line
4683 input. This is still _very_ experimental, but it's necessary for
4693 input. This is still _very_ experimental, but it's necessary for
4684 efficient shell usage combining python looping syntax with system
4694 efficient shell usage combining python looping syntax with system
4685 calls. For now it's restricted to aliases, I don't think it
4695 calls. For now it's restricted to aliases, I don't think it
4686 really even makes sense to have this for magics.
4696 really even makes sense to have this for magics.
4687
4697
4688 2004-06-23 Fernando Perez <fperez@colorado.edu>
4698 2004-06-23 Fernando Perez <fperez@colorado.edu>
4689
4699
4690 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4700 * IPython/Extensions/InterpreterExec.py (prefilter_shell): Added
4691 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4701 $var=cmd <=> @sc var=cmd and $$var=cmd <=> @sc -l var=cmd.
4692
4702
4693 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4703 * IPython/Magic.py (Magic.magic_rehashx): modified to handle
4694 extensions under Windows (after code sent by Gary Bishop). The
4704 extensions under Windows (after code sent by Gary Bishop). The
4695 extensions considered 'executable' are stored in IPython's rc
4705 extensions considered 'executable' are stored in IPython's rc
4696 structure as win_exec_ext.
4706 structure as win_exec_ext.
4697
4707
4698 * IPython/genutils.py (shell): new function, like system() but
4708 * IPython/genutils.py (shell): new function, like system() but
4699 without return value. Very useful for interactive shell work.
4709 without return value. Very useful for interactive shell work.
4700
4710
4701 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4711 * IPython/Magic.py (Magic.magic_unalias): New @unalias function to
4702 delete aliases.
4712 delete aliases.
4703
4713
4704 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4714 * IPython/iplib.py (InteractiveShell.alias_table_update): make
4705 sure that the alias table doesn't contain python keywords.
4715 sure that the alias table doesn't contain python keywords.
4706
4716
4707 2004-06-21 Fernando Perez <fperez@colorado.edu>
4717 2004-06-21 Fernando Perez <fperez@colorado.edu>
4708
4718
4709 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4719 * IPython/Magic.py (Magic.magic_rehash): Fix crash when
4710 non-existent items are found in $PATH. Reported by Thorsten.
4720 non-existent items are found in $PATH. Reported by Thorsten.
4711
4721
4712 2004-06-20 Fernando Perez <fperez@colorado.edu>
4722 2004-06-20 Fernando Perez <fperez@colorado.edu>
4713
4723
4714 * IPython/iplib.py (complete): modified the completer so that the
4724 * IPython/iplib.py (complete): modified the completer so that the
4715 order of priorities can be easily changed at runtime.
4725 order of priorities can be easily changed at runtime.
4716
4726
4717 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4727 * IPython/Extensions/InterpreterExec.py (prefilter_shell):
4718 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4728 Modified to auto-execute all lines beginning with '~', '/' or '.'.
4719
4729
4720 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4730 * IPython/Magic.py (Magic.magic_sx): modified @sc and @sx to
4721 expand Python variables prepended with $ in all system calls. The
4731 expand Python variables prepended with $ in all system calls. The
4722 same was done to InteractiveShell.handle_shell_escape. Now all
4732 same was done to InteractiveShell.handle_shell_escape. Now all
4723 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4733 system access mechanisms (!, !!, @sc, @sx and aliases) allow the
4724 expansion of python variables and expressions according to the
4734 expansion of python variables and expressions according to the
4725 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4735 syntax of PEP-215 - http://www.python.org/peps/pep-0215.html.
4726
4736
4727 Though PEP-215 has been rejected, a similar (but simpler) one
4737 Though PEP-215 has been rejected, a similar (but simpler) one
4728 seems like it will go into Python 2.4, PEP-292 -
4738 seems like it will go into Python 2.4, PEP-292 -
4729 http://www.python.org/peps/pep-0292.html.
4739 http://www.python.org/peps/pep-0292.html.
4730
4740
4731 I'll keep the full syntax of PEP-215, since IPython has since the
4741 I'll keep the full syntax of PEP-215, since IPython has since the
4732 start used Ka-Ping Yee's reference implementation discussed there
4742 start used Ka-Ping Yee's reference implementation discussed there
4733 (Itpl), and I actually like the powerful semantics it offers.
4743 (Itpl), and I actually like the powerful semantics it offers.
4734
4744
4735 In order to access normal shell variables, the $ has to be escaped
4745 In order to access normal shell variables, the $ has to be escaped
4736 via an extra $. For example:
4746 via an extra $. For example:
4737
4747
4738 In [7]: PATH='a python variable'
4748 In [7]: PATH='a python variable'
4739
4749
4740 In [8]: !echo $PATH
4750 In [8]: !echo $PATH
4741 a python variable
4751 a python variable
4742
4752
4743 In [9]: !echo $$PATH
4753 In [9]: !echo $$PATH
4744 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4754 /usr/local/lf9560/bin:/usr/local/intel/compiler70/ia32/bin:...
4745
4755
4746 (Magic.parse_options): escape $ so the shell doesn't evaluate
4756 (Magic.parse_options): escape $ so the shell doesn't evaluate
4747 things prematurely.
4757 things prematurely.
4748
4758
4749 * IPython/iplib.py (InteractiveShell.call_alias): added the
4759 * IPython/iplib.py (InteractiveShell.call_alias): added the
4750 ability for aliases to expand python variables via $.
4760 ability for aliases to expand python variables via $.
4751
4761
4752 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4762 * IPython/Magic.py (Magic.magic_rehash): based on the new alias
4753 system, now there's a @rehash/@rehashx pair of magics. These work
4763 system, now there's a @rehash/@rehashx pair of magics. These work
4754 like the csh rehash command, and can be invoked at any time. They
4764 like the csh rehash command, and can be invoked at any time. They
4755 build a table of aliases to everything in the user's $PATH
4765 build a table of aliases to everything in the user's $PATH
4756 (@rehash uses everything, @rehashx is slower but only adds
4766 (@rehash uses everything, @rehashx is slower but only adds
4757 executable files). With this, the pysh.py-based shell profile can
4767 executable files). With this, the pysh.py-based shell profile can
4758 now simply call rehash upon startup, and full access to all
4768 now simply call rehash upon startup, and full access to all
4759 programs in the user's path is obtained.
4769 programs in the user's path is obtained.
4760
4770
4761 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4771 * IPython/iplib.py (InteractiveShell.call_alias): The new alias
4762 functionality is now fully in place. I removed the old dynamic
4772 functionality is now fully in place. I removed the old dynamic
4763 code generation based approach, in favor of a much lighter one
4773 code generation based approach, in favor of a much lighter one
4764 based on a simple dict. The advantage is that this allows me to
4774 based on a simple dict. The advantage is that this allows me to
4765 now have thousands of aliases with negligible cost (unthinkable
4775 now have thousands of aliases with negligible cost (unthinkable
4766 with the old system).
4776 with the old system).
4767
4777
4768 2004-06-19 Fernando Perez <fperez@colorado.edu>
4778 2004-06-19 Fernando Perez <fperez@colorado.edu>
4769
4779
4770 * IPython/iplib.py (__init__): extended MagicCompleter class to
4780 * IPython/iplib.py (__init__): extended MagicCompleter class to
4771 also complete (last in priority) on user aliases.
4781 also complete (last in priority) on user aliases.
4772
4782
4773 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4783 * IPython/Itpl.py (Itpl.__str__): fixed order of globals/locals in
4774 call to eval.
4784 call to eval.
4775 (ItplNS.__init__): Added a new class which functions like Itpl,
4785 (ItplNS.__init__): Added a new class which functions like Itpl,
4776 but allows configuring the namespace for the evaluation to occur
4786 but allows configuring the namespace for the evaluation to occur
4777 in.
4787 in.
4778
4788
4779 2004-06-18 Fernando Perez <fperez@colorado.edu>
4789 2004-06-18 Fernando Perez <fperez@colorado.edu>
4780
4790
4781 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4791 * IPython/iplib.py (InteractiveShell.runcode): modify to print a
4782 better message when 'exit' or 'quit' are typed (a common newbie
4792 better message when 'exit' or 'quit' are typed (a common newbie
4783 confusion).
4793 confusion).
4784
4794
4785 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4795 * IPython/Magic.py (Magic.magic_colors): Added the runtime color
4786 check for Windows users.
4796 check for Windows users.
4787
4797
4788 * IPython/iplib.py (InteractiveShell.user_setup): removed
4798 * IPython/iplib.py (InteractiveShell.user_setup): removed
4789 disabling of colors for Windows. I'll test at runtime and issue a
4799 disabling of colors for Windows. I'll test at runtime and issue a
4790 warning if Gary's readline isn't found, as to nudge users to
4800 warning if Gary's readline isn't found, as to nudge users to
4791 download it.
4801 download it.
4792
4802
4793 2004-06-16 Fernando Perez <fperez@colorado.edu>
4803 2004-06-16 Fernando Perez <fperez@colorado.edu>
4794
4804
4795 * IPython/genutils.py (Stream.__init__): changed to print errors
4805 * IPython/genutils.py (Stream.__init__): changed to print errors
4796 to sys.stderr. I had a circular dependency here. Now it's
4806 to sys.stderr. I had a circular dependency here. Now it's
4797 possible to run ipython as IDLE's shell (consider this pre-alpha,
4807 possible to run ipython as IDLE's shell (consider this pre-alpha,
4798 since true stdout things end up in the starting terminal instead
4808 since true stdout things end up in the starting terminal instead
4799 of IDLE's out).
4809 of IDLE's out).
4800
4810
4801 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4811 * IPython/Prompts.py (Prompt2.set_colors): prevent crashes for
4802 users who haven't # updated their prompt_in2 definitions. Remove
4812 users who haven't # updated their prompt_in2 definitions. Remove
4803 eventually.
4813 eventually.
4804 (multiple_replace): added credit to original ASPN recipe.
4814 (multiple_replace): added credit to original ASPN recipe.
4805
4815
4806 2004-06-15 Fernando Perez <fperez@colorado.edu>
4816 2004-06-15 Fernando Perez <fperez@colorado.edu>
4807
4817
4808 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4818 * IPython/iplib.py (InteractiveShell.__init__): add 'cp' to the
4809 list of auto-defined aliases.
4819 list of auto-defined aliases.
4810
4820
4811 2004-06-13 Fernando Perez <fperez@colorado.edu>
4821 2004-06-13 Fernando Perez <fperez@colorado.edu>
4812
4822
4813 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4823 * setup.py (scriptfiles): Don't trigger win_post_install unless an
4814 install was really requested (so setup.py can be used for other
4824 install was really requested (so setup.py can be used for other
4815 things under Windows).
4825 things under Windows).
4816
4826
4817 2004-06-10 Fernando Perez <fperez@colorado.edu>
4827 2004-06-10 Fernando Perez <fperez@colorado.edu>
4818
4828
4819 * IPython/Logger.py (Logger.create_log): Manually remove any old
4829 * IPython/Logger.py (Logger.create_log): Manually remove any old
4820 backup, since os.remove may fail under Windows. Fixes bug
4830 backup, since os.remove may fail under Windows. Fixes bug
4821 reported by Thorsten.
4831 reported by Thorsten.
4822
4832
4823 2004-06-09 Fernando Perez <fperez@colorado.edu>
4833 2004-06-09 Fernando Perez <fperez@colorado.edu>
4824
4834
4825 * examples/example-embed.py: fixed all references to %n (replaced
4835 * examples/example-embed.py: fixed all references to %n (replaced
4826 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4836 with \\# for ps1/out prompts and with \\D for ps2 prompts). Done
4827 for all examples and the manual as well.
4837 for all examples and the manual as well.
4828
4838
4829 2004-06-08 Fernando Perez <fperez@colorado.edu>
4839 2004-06-08 Fernando Perez <fperez@colorado.edu>
4830
4840
4831 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4841 * IPython/Prompts.py (Prompt2.set_p_str): fixed all prompt
4832 alignment and color management. All 3 prompt subsystems now
4842 alignment and color management. All 3 prompt subsystems now
4833 inherit from BasePrompt.
4843 inherit from BasePrompt.
4834
4844
4835 * tools/release: updates for windows installer build and tag rpms
4845 * tools/release: updates for windows installer build and tag rpms
4836 with python version (since paths are fixed).
4846 with python version (since paths are fixed).
4837
4847
4838 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4848 * IPython/UserConfig/ipythonrc: modified to use \# instead of %n,
4839 which will become eventually obsolete. Also fixed the default
4849 which will become eventually obsolete. Also fixed the default
4840 prompt_in2 to use \D, so at least new users start with the correct
4850 prompt_in2 to use \D, so at least new users start with the correct
4841 defaults.
4851 defaults.
4842 WARNING: Users with existing ipythonrc files will need to apply
4852 WARNING: Users with existing ipythonrc files will need to apply
4843 this fix manually!
4853 this fix manually!
4844
4854
4845 * setup.py: make windows installer (.exe). This is finally the
4855 * setup.py: make windows installer (.exe). This is finally the
4846 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4856 integration of an old patch by Cory Dodt <dodt-AT-fcoe.k12.ca.us>,
4847 which I hadn't included because it required Python 2.3 (or recent
4857 which I hadn't included because it required Python 2.3 (or recent
4848 distutils).
4858 distutils).
4849
4859
4850 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4860 * IPython/usage.py (__doc__): update docs (and manpage) to reflect
4851 usage of new '\D' escape.
4861 usage of new '\D' escape.
4852
4862
4853 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4863 * IPython/Prompts.py (ROOT_SYMBOL): Small fix for Windows (which
4854 lacks os.getuid())
4864 lacks os.getuid())
4855 (CachedOutput.set_colors): Added the ability to turn coloring
4865 (CachedOutput.set_colors): Added the ability to turn coloring
4856 on/off with @colors even for manually defined prompt colors. It
4866 on/off with @colors even for manually defined prompt colors. It
4857 uses a nasty global, but it works safely and via the generic color
4867 uses a nasty global, but it works safely and via the generic color
4858 handling mechanism.
4868 handling mechanism.
4859 (Prompt2.__init__): Introduced new escape '\D' for continuation
4869 (Prompt2.__init__): Introduced new escape '\D' for continuation
4860 prompts. It represents the counter ('\#') as dots.
4870 prompts. It represents the counter ('\#') as dots.
4861 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4871 *** NOTE *** THIS IS A BACKWARDS-INCOMPATIBLE CHANGE. Users will
4862 need to update their ipythonrc files and replace '%n' with '\D' in
4872 need to update their ipythonrc files and replace '%n' with '\D' in
4863 their prompt_in2 settings everywhere. Sorry, but there's
4873 their prompt_in2 settings everywhere. Sorry, but there's
4864 otherwise no clean way to get all prompts to properly align. The
4874 otherwise no clean way to get all prompts to properly align. The
4865 ipythonrc shipped with IPython has been updated.
4875 ipythonrc shipped with IPython has been updated.
4866
4876
4867 2004-06-07 Fernando Perez <fperez@colorado.edu>
4877 2004-06-07 Fernando Perez <fperez@colorado.edu>
4868
4878
4869 * setup.py (isfile): Pass local_icons option to latex2html, so the
4879 * setup.py (isfile): Pass local_icons option to latex2html, so the
4870 resulting HTML file is self-contained. Thanks to
4880 resulting HTML file is self-contained. Thanks to
4871 dryice-AT-liu.com.cn for the tip.
4881 dryice-AT-liu.com.cn for the tip.
4872
4882
4873 * pysh.py: I created a new profile 'shell', which implements a
4883 * pysh.py: I created a new profile 'shell', which implements a
4874 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4884 _rudimentary_ IPython-based shell. This is in NO WAY a realy
4875 system shell, nor will it become one anytime soon. It's mainly
4885 system shell, nor will it become one anytime soon. It's mainly
4876 meant to illustrate the use of the new flexible bash-like prompts.
4886 meant to illustrate the use of the new flexible bash-like prompts.
4877 I guess it could be used by hardy souls for true shell management,
4887 I guess it could be used by hardy souls for true shell management,
4878 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4888 but it's no tcsh/bash... pysh.py is loaded by the 'shell'
4879 profile. This uses the InterpreterExec extension provided by
4889 profile. This uses the InterpreterExec extension provided by
4880 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4890 W.J. van der Laan <gnufnork-AT-hetdigitalegat.nl>
4881
4891
4882 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4892 * IPython/Prompts.py (PromptOut.__str__): now it will correctly
4883 auto-align itself with the length of the previous input prompt
4893 auto-align itself with the length of the previous input prompt
4884 (taking into account the invisible color escapes).
4894 (taking into account the invisible color escapes).
4885 (CachedOutput.__init__): Large restructuring of this class. Now
4895 (CachedOutput.__init__): Large restructuring of this class. Now
4886 all three prompts (primary1, primary2, output) are proper objects,
4896 all three prompts (primary1, primary2, output) are proper objects,
4887 managed by the 'parent' CachedOutput class. The code is still a
4897 managed by the 'parent' CachedOutput class. The code is still a
4888 bit hackish (all prompts share state via a pointer to the cache),
4898 bit hackish (all prompts share state via a pointer to the cache),
4889 but it's overall far cleaner than before.
4899 but it's overall far cleaner than before.
4890
4900
4891 * IPython/genutils.py (getoutputerror): modified to add verbose,
4901 * IPython/genutils.py (getoutputerror): modified to add verbose,
4892 debug and header options. This makes the interface of all getout*
4902 debug and header options. This makes the interface of all getout*
4893 functions uniform.
4903 functions uniform.
4894 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4904 (SystemExec.getoutputerror): added getoutputerror to SystemExec.
4895
4905
4896 * IPython/Magic.py (Magic.default_option): added a function to
4906 * IPython/Magic.py (Magic.default_option): added a function to
4897 allow registering default options for any magic command. This
4907 allow registering default options for any magic command. This
4898 makes it easy to have profiles which customize the magics globally
4908 makes it easy to have profiles which customize the magics globally
4899 for a certain use. The values set through this function are
4909 for a certain use. The values set through this function are
4900 picked up by the parse_options() method, which all magics should
4910 picked up by the parse_options() method, which all magics should
4901 use to parse their options.
4911 use to parse their options.
4902
4912
4903 * IPython/genutils.py (warn): modified the warnings framework to
4913 * IPython/genutils.py (warn): modified the warnings framework to
4904 use the Term I/O class. I'm trying to slowly unify all of
4914 use the Term I/O class. I'm trying to slowly unify all of
4905 IPython's I/O operations to pass through Term.
4915 IPython's I/O operations to pass through Term.
4906
4916
4907 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4917 * IPython/Prompts.py (Prompt2._str_other): Added functionality in
4908 the secondary prompt to correctly match the length of the primary
4918 the secondary prompt to correctly match the length of the primary
4909 one for any prompt. Now multi-line code will properly line up
4919 one for any prompt. Now multi-line code will properly line up
4910 even for path dependent prompts, such as the new ones available
4920 even for path dependent prompts, such as the new ones available
4911 via the prompt_specials.
4921 via the prompt_specials.
4912
4922
4913 2004-06-06 Fernando Perez <fperez@colorado.edu>
4923 2004-06-06 Fernando Perez <fperez@colorado.edu>
4914
4924
4915 * IPython/Prompts.py (prompt_specials): Added the ability to have
4925 * IPython/Prompts.py (prompt_specials): Added the ability to have
4916 bash-like special sequences in the prompts, which get
4926 bash-like special sequences in the prompts, which get
4917 automatically expanded. Things like hostname, current working
4927 automatically expanded. Things like hostname, current working
4918 directory and username are implemented already, but it's easy to
4928 directory and username are implemented already, but it's easy to
4919 add more in the future. Thanks to a patch by W.J. van der Laan
4929 add more in the future. Thanks to a patch by W.J. van der Laan
4920 <gnufnork-AT-hetdigitalegat.nl>
4930 <gnufnork-AT-hetdigitalegat.nl>
4921 (prompt_specials): Added color support for prompt strings, so
4931 (prompt_specials): Added color support for prompt strings, so
4922 users can define arbitrary color setups for their prompts.
4932 users can define arbitrary color setups for their prompts.
4923
4933
4924 2004-06-05 Fernando Perez <fperez@colorado.edu>
4934 2004-06-05 Fernando Perez <fperez@colorado.edu>
4925
4935
4926 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4936 * IPython/genutils.py (Term.reopen_all): Added Windows-specific
4927 code to load Gary Bishop's readline and configure it
4937 code to load Gary Bishop's readline and configure it
4928 automatically. Thanks to Gary for help on this.
4938 automatically. Thanks to Gary for help on this.
4929
4939
4930 2004-06-01 Fernando Perez <fperez@colorado.edu>
4940 2004-06-01 Fernando Perez <fperez@colorado.edu>
4931
4941
4932 * IPython/Logger.py (Logger.create_log): fix bug for logging
4942 * IPython/Logger.py (Logger.create_log): fix bug for logging
4933 with no filename (previous fix was incomplete).
4943 with no filename (previous fix was incomplete).
4934
4944
4935 2004-05-25 Fernando Perez <fperez@colorado.edu>
4945 2004-05-25 Fernando Perez <fperez@colorado.edu>
4936
4946
4937 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4947 * IPython/Magic.py (Magic.parse_options): fix bug where naked
4938 parens would get passed to the shell.
4948 parens would get passed to the shell.
4939
4949
4940 2004-05-20 Fernando Perez <fperez@colorado.edu>
4950 2004-05-20 Fernando Perez <fperez@colorado.edu>
4941
4951
4942 * IPython/Magic.py (Magic.magic_prun): changed default profile
4952 * IPython/Magic.py (Magic.magic_prun): changed default profile
4943 sort order to 'time' (the more common profiling need).
4953 sort order to 'time' (the more common profiling need).
4944
4954
4945 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4955 * IPython/OInspect.py (Inspector.pinfo): flush the inspect cache
4946 so that source code shown is guaranteed in sync with the file on
4956 so that source code shown is guaranteed in sync with the file on
4947 disk (also changed in psource). Similar fix to the one for
4957 disk (also changed in psource). Similar fix to the one for
4948 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4958 ultraTB on 2004-05-06. Thanks to a bug report by Yann Le Du
4949 <yann.ledu-AT-noos.fr>.
4959 <yann.ledu-AT-noos.fr>.
4950
4960
4951 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4961 * IPython/Magic.py (Magic.parse_options): Fixed bug where commands
4952 with a single option would not be correctly parsed. Closes
4962 with a single option would not be correctly parsed. Closes
4953 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4963 http://www.scipy.net/roundup/ipython/issue14. This bug had been
4954 introduced in 0.6.0 (on 2004-05-06).
4964 introduced in 0.6.0 (on 2004-05-06).
4955
4965
4956 2004-05-13 *** Released version 0.6.0
4966 2004-05-13 *** Released version 0.6.0
4957
4967
4958 2004-05-13 Fernando Perez <fperez@colorado.edu>
4968 2004-05-13 Fernando Perez <fperez@colorado.edu>
4959
4969
4960 * debian/: Added debian/ directory to CVS, so that debian support
4970 * debian/: Added debian/ directory to CVS, so that debian support
4961 is publicly accessible. The debian package is maintained by Jack
4971 is publicly accessible. The debian package is maintained by Jack
4962 Moffit <jack-AT-xiph.org>.
4972 Moffit <jack-AT-xiph.org>.
4963
4973
4964 * Documentation: included the notes about an ipython-based system
4974 * Documentation: included the notes about an ipython-based system
4965 shell (the hypothetical 'pysh') into the new_design.pdf document,
4975 shell (the hypothetical 'pysh') into the new_design.pdf document,
4966 so that these ideas get distributed to users along with the
4976 so that these ideas get distributed to users along with the
4967 official documentation.
4977 official documentation.
4968
4978
4969 2004-05-10 Fernando Perez <fperez@colorado.edu>
4979 2004-05-10 Fernando Perez <fperez@colorado.edu>
4970
4980
4971 * IPython/Logger.py (Logger.create_log): fix recently introduced
4981 * IPython/Logger.py (Logger.create_log): fix recently introduced
4972 bug (misindented line) where logstart would fail when not given an
4982 bug (misindented line) where logstart would fail when not given an
4973 explicit filename.
4983 explicit filename.
4974
4984
4975 2004-05-09 Fernando Perez <fperez@colorado.edu>
4985 2004-05-09 Fernando Perez <fperez@colorado.edu>
4976
4986
4977 * IPython/Magic.py (Magic.parse_options): skip system call when
4987 * IPython/Magic.py (Magic.parse_options): skip system call when
4978 there are no options to look for. Faster, cleaner for the common
4988 there are no options to look for. Faster, cleaner for the common
4979 case.
4989 case.
4980
4990
4981 * Documentation: many updates to the manual: describing Windows
4991 * Documentation: many updates to the manual: describing Windows
4982 support better, Gnuplot updates, credits, misc small stuff. Also
4992 support better, Gnuplot updates, credits, misc small stuff. Also
4983 updated the new_design doc a bit.
4993 updated the new_design doc a bit.
4984
4994
4985 2004-05-06 *** Released version 0.6.0.rc1
4995 2004-05-06 *** Released version 0.6.0.rc1
4986
4996
4987 2004-05-06 Fernando Perez <fperez@colorado.edu>
4997 2004-05-06 Fernando Perez <fperez@colorado.edu>
4988
4998
4989 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4999 * IPython/ultraTB.py (ListTB.text): modified a ton of string +=
4990 operations to use the vastly more efficient list/''.join() method.
5000 operations to use the vastly more efficient list/''.join() method.
4991 (FormattedTB.text): Fix
5001 (FormattedTB.text): Fix
4992 http://www.scipy.net/roundup/ipython/issue12 - exception source
5002 http://www.scipy.net/roundup/ipython/issue12 - exception source
4993 extract not updated after reload. Thanks to Mike Salib
5003 extract not updated after reload. Thanks to Mike Salib
4994 <msalib-AT-mit.edu> for pinning the source of the problem.
5004 <msalib-AT-mit.edu> for pinning the source of the problem.
4995 Fortunately, the solution works inside ipython and doesn't require
5005 Fortunately, the solution works inside ipython and doesn't require
4996 any changes to python proper.
5006 any changes to python proper.
4997
5007
4998 * IPython/Magic.py (Magic.parse_options): Improved to process the
5008 * IPython/Magic.py (Magic.parse_options): Improved to process the
4999 argument list as a true shell would (by actually using the
5009 argument list as a true shell would (by actually using the
5000 underlying system shell). This way, all @magics automatically get
5010 underlying system shell). This way, all @magics automatically get
5001 shell expansion for variables. Thanks to a comment by Alex
5011 shell expansion for variables. Thanks to a comment by Alex
5002 Schmolck.
5012 Schmolck.
5003
5013
5004 2004-04-04 Fernando Perez <fperez@colorado.edu>
5014 2004-04-04 Fernando Perez <fperez@colorado.edu>
5005
5015
5006 * IPython/iplib.py (InteractiveShell.interact): Added a special
5016 * IPython/iplib.py (InteractiveShell.interact): Added a special
5007 trap for a debugger quit exception, which is basically impossible
5017 trap for a debugger quit exception, which is basically impossible
5008 to handle by normal mechanisms, given what pdb does to the stack.
5018 to handle by normal mechanisms, given what pdb does to the stack.
5009 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
5019 This fixes a crash reported by <fgibbons-AT-llama.med.harvard.edu>.
5010
5020
5011 2004-04-03 Fernando Perez <fperez@colorado.edu>
5021 2004-04-03 Fernando Perez <fperez@colorado.edu>
5012
5022
5013 * IPython/genutils.py (Term): Standardized the names of the Term
5023 * IPython/genutils.py (Term): Standardized the names of the Term
5014 class streams to cin/cout/cerr, following C++ naming conventions
5024 class streams to cin/cout/cerr, following C++ naming conventions
5015 (I can't use in/out/err because 'in' is not a valid attribute
5025 (I can't use in/out/err because 'in' is not a valid attribute
5016 name).
5026 name).
5017
5027
5018 * IPython/iplib.py (InteractiveShell.interact): don't increment
5028 * IPython/iplib.py (InteractiveShell.interact): don't increment
5019 the prompt if there's no user input. By Daniel 'Dang' Griffith
5029 the prompt if there's no user input. By Daniel 'Dang' Griffith
5020 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5030 <pythondev-dang-AT-lazytwinacres.net>, after a suggestion from
5021 Francois Pinard.
5031 Francois Pinard.
5022
5032
5023 2004-04-02 Fernando Perez <fperez@colorado.edu>
5033 2004-04-02 Fernando Perez <fperez@colorado.edu>
5024
5034
5025 * IPython/genutils.py (Stream.__init__): Modified to survive at
5035 * IPython/genutils.py (Stream.__init__): Modified to survive at
5026 least importing in contexts where stdin/out/err aren't true file
5036 least importing in contexts where stdin/out/err aren't true file
5027 objects, such as PyCrust (they lack fileno() and mode). However,
5037 objects, such as PyCrust (they lack fileno() and mode). However,
5028 the recovery facilities which rely on these things existing will
5038 the recovery facilities which rely on these things existing will
5029 not work.
5039 not work.
5030
5040
5031 2004-04-01 Fernando Perez <fperez@colorado.edu>
5041 2004-04-01 Fernando Perez <fperez@colorado.edu>
5032
5042
5033 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5043 * IPython/Magic.py (Magic.magic_sx): modified (as well as @sc) to
5034 use the new getoutputerror() function, so it properly
5044 use the new getoutputerror() function, so it properly
5035 distinguishes stdout/err.
5045 distinguishes stdout/err.
5036
5046
5037 * IPython/genutils.py (getoutputerror): added a function to
5047 * IPython/genutils.py (getoutputerror): added a function to
5038 capture separately the standard output and error of a command.
5048 capture separately the standard output and error of a command.
5039 After a comment from dang on the mailing lists. This code is
5049 After a comment from dang on the mailing lists. This code is
5040 basically a modified version of commands.getstatusoutput(), from
5050 basically a modified version of commands.getstatusoutput(), from
5041 the standard library.
5051 the standard library.
5042
5052
5043 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5053 * IPython/iplib.py (InteractiveShell.handle_shell_escape): added
5044 '!!' as a special syntax (shorthand) to access @sx.
5054 '!!' as a special syntax (shorthand) to access @sx.
5045
5055
5046 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5056 * IPython/Magic.py (Magic.magic_sx): new magic, to execute a shell
5047 command and return its output as a list split on '\n'.
5057 command and return its output as a list split on '\n'.
5048
5058
5049 2004-03-31 Fernando Perez <fperez@colorado.edu>
5059 2004-03-31 Fernando Perez <fperez@colorado.edu>
5050
5060
5051 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5061 * IPython/FakeModule.py (FakeModule.__init__): added __nonzero__
5052 method to dictionaries used as FakeModule instances if they lack
5062 method to dictionaries used as FakeModule instances if they lack
5053 it. At least pydoc in python2.3 breaks for runtime-defined
5063 it. At least pydoc in python2.3 breaks for runtime-defined
5054 functions without this hack. At some point I need to _really_
5064 functions without this hack. At some point I need to _really_
5055 understand what FakeModule is doing, because it's a gross hack.
5065 understand what FakeModule is doing, because it's a gross hack.
5056 But it solves Arnd's problem for now...
5066 But it solves Arnd's problem for now...
5057
5067
5058 2004-02-27 Fernando Perez <fperez@colorado.edu>
5068 2004-02-27 Fernando Perez <fperez@colorado.edu>
5059
5069
5060 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5070 * IPython/Logger.py (Logger.create_log): Fix bug where 'rotate'
5061 mode would behave erratically. Also increased the number of
5071 mode would behave erratically. Also increased the number of
5062 possible logs in rotate mod to 999. Thanks to Rod Holland
5072 possible logs in rotate mod to 999. Thanks to Rod Holland
5063 <rhh@StructureLABS.com> for the report and fixes.
5073 <rhh@StructureLABS.com> for the report and fixes.
5064
5074
5065 2004-02-26 Fernando Perez <fperez@colorado.edu>
5075 2004-02-26 Fernando Perez <fperez@colorado.edu>
5066
5076
5067 * IPython/genutils.py (page): Check that the curses module really
5077 * IPython/genutils.py (page): Check that the curses module really
5068 has the initscr attribute before trying to use it. For some
5078 has the initscr attribute before trying to use it. For some
5069 reason, the Solaris curses module is missing this. I think this
5079 reason, the Solaris curses module is missing this. I think this
5070 should be considered a Solaris python bug, but I'm not sure.
5080 should be considered a Solaris python bug, but I'm not sure.
5071
5081
5072 2004-01-17 Fernando Perez <fperez@colorado.edu>
5082 2004-01-17 Fernando Perez <fperez@colorado.edu>
5073
5083
5074 * IPython/genutils.py (Stream.__init__): Changes to try to make
5084 * IPython/genutils.py (Stream.__init__): Changes to try to make
5075 ipython robust against stdin/out/err being closed by the user.
5085 ipython robust against stdin/out/err being closed by the user.
5076 This is 'user error' (and blocks a normal python session, at least
5086 This is 'user error' (and blocks a normal python session, at least
5077 the stdout case). However, Ipython should be able to survive such
5087 the stdout case). However, Ipython should be able to survive such
5078 instances of abuse as gracefully as possible. To simplify the
5088 instances of abuse as gracefully as possible. To simplify the
5079 coding and maintain compatibility with Gary Bishop's Term
5089 coding and maintain compatibility with Gary Bishop's Term
5080 contributions, I've made use of classmethods for this. I think
5090 contributions, I've made use of classmethods for this. I think
5081 this introduces a dependency on python 2.2.
5091 this introduces a dependency on python 2.2.
5082
5092
5083 2004-01-13 Fernando Perez <fperez@colorado.edu>
5093 2004-01-13 Fernando Perez <fperez@colorado.edu>
5084
5094
5085 * IPython/numutils.py (exp_safe): simplified the code a bit and
5095 * IPython/numutils.py (exp_safe): simplified the code a bit and
5086 removed the need for importing the kinds module altogether.
5096 removed the need for importing the kinds module altogether.
5087
5097
5088 2004-01-06 Fernando Perez <fperez@colorado.edu>
5098 2004-01-06 Fernando Perez <fperez@colorado.edu>
5089
5099
5090 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5100 * IPython/Magic.py (Magic.magic_sc): Made the shell capture system
5091 a magic function instead, after some community feedback. No
5101 a magic function instead, after some community feedback. No
5092 special syntax will exist for it, but its name is deliberately
5102 special syntax will exist for it, but its name is deliberately
5093 very short.
5103 very short.
5094
5104
5095 2003-12-20 Fernando Perez <fperez@colorado.edu>
5105 2003-12-20 Fernando Perez <fperez@colorado.edu>
5096
5106
5097 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5107 * IPython/iplib.py (InteractiveShell.handle_shell_assign): Added
5098 new functionality, to automagically assign the result of a shell
5108 new functionality, to automagically assign the result of a shell
5099 command to a variable. I'll solicit some community feedback on
5109 command to a variable. I'll solicit some community feedback on
5100 this before making it permanent.
5110 this before making it permanent.
5101
5111
5102 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5112 * IPython/OInspect.py (Inspector.pinfo): Fix crash when info was
5103 requested about callables for which inspect couldn't obtain a
5113 requested about callables for which inspect couldn't obtain a
5104 proper argspec. Thanks to a crash report sent by Etienne
5114 proper argspec. Thanks to a crash report sent by Etienne
5105 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5115 Posthumus <etienne-AT-apple01.cs.vu.nl>.
5106
5116
5107 2003-12-09 Fernando Perez <fperez@colorado.edu>
5117 2003-12-09 Fernando Perez <fperez@colorado.edu>
5108
5118
5109 * IPython/genutils.py (page): patch for the pager to work across
5119 * IPython/genutils.py (page): patch for the pager to work across
5110 various versions of Windows. By Gary Bishop.
5120 various versions of Windows. By Gary Bishop.
5111
5121
5112 2003-12-04 Fernando Perez <fperez@colorado.edu>
5122 2003-12-04 Fernando Perez <fperez@colorado.edu>
5113
5123
5114 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5124 * IPython/Gnuplot2.py (PlotItems): Fixes for working with
5115 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5125 Gnuplot.py version 1.7, whose internal names changed quite a bit.
5116 While I tested this and it looks ok, there may still be corner
5126 While I tested this and it looks ok, there may still be corner
5117 cases I've missed.
5127 cases I've missed.
5118
5128
5119 2003-12-01 Fernando Perez <fperez@colorado.edu>
5129 2003-12-01 Fernando Perez <fperez@colorado.edu>
5120
5130
5121 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5131 * IPython/iplib.py (InteractiveShell._prefilter): Fixed a bug
5122 where a line like 'p,q=1,2' would fail because the automagic
5132 where a line like 'p,q=1,2' would fail because the automagic
5123 system would be triggered for @p.
5133 system would be triggered for @p.
5124
5134
5125 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5135 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): Tab-related
5126 cleanups, code unmodified.
5136 cleanups, code unmodified.
5127
5137
5128 * IPython/genutils.py (Term): added a class for IPython to handle
5138 * IPython/genutils.py (Term): added a class for IPython to handle
5129 output. In most cases it will just be a proxy for stdout/err, but
5139 output. In most cases it will just be a proxy for stdout/err, but
5130 having this allows modifications to be made for some platforms,
5140 having this allows modifications to be made for some platforms,
5131 such as handling color escapes under Windows. All of this code
5141 such as handling color escapes under Windows. All of this code
5132 was contributed by Gary Bishop, with minor modifications by me.
5142 was contributed by Gary Bishop, with minor modifications by me.
5133 The actual changes affect many files.
5143 The actual changes affect many files.
5134
5144
5135 2003-11-30 Fernando Perez <fperez@colorado.edu>
5145 2003-11-30 Fernando Perez <fperez@colorado.edu>
5136
5146
5137 * IPython/iplib.py (file_matches): new completion code, courtesy
5147 * IPython/iplib.py (file_matches): new completion code, courtesy
5138 of Jeff Collins. This enables filename completion again under
5148 of Jeff Collins. This enables filename completion again under
5139 python 2.3, which disabled it at the C level.
5149 python 2.3, which disabled it at the C level.
5140
5150
5141 2003-11-11 Fernando Perez <fperez@colorado.edu>
5151 2003-11-11 Fernando Perez <fperez@colorado.edu>
5142
5152
5143 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5153 * IPython/numutils.py (amap): Added amap() fn. Simple shorthand
5144 for Numeric.array(map(...)), but often convenient.
5154 for Numeric.array(map(...)), but often convenient.
5145
5155
5146 2003-11-05 Fernando Perez <fperez@colorado.edu>
5156 2003-11-05 Fernando Perez <fperez@colorado.edu>
5147
5157
5148 * IPython/numutils.py (frange): Changed a call from int() to
5158 * IPython/numutils.py (frange): Changed a call from int() to
5149 int(round()) to prevent a problem reported with arange() in the
5159 int(round()) to prevent a problem reported with arange() in the
5150 numpy list.
5160 numpy list.
5151
5161
5152 2003-10-06 Fernando Perez <fperez@colorado.edu>
5162 2003-10-06 Fernando Perez <fperez@colorado.edu>
5153
5163
5154 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5164 * IPython/DPyGetOpt.py (DPyGetOpt.processArguments): changed to
5155 prevent crashes if sys lacks an argv attribute (it happens with
5165 prevent crashes if sys lacks an argv attribute (it happens with
5156 embedded interpreters which build a bare-bones sys module).
5166 embedded interpreters which build a bare-bones sys module).
5157 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5167 Thanks to a report/bugfix by Adam Hupp <hupp-AT-cs.wisc.edu>.
5158
5168
5159 2003-09-24 Fernando Perez <fperez@colorado.edu>
5169 2003-09-24 Fernando Perez <fperez@colorado.edu>
5160
5170
5161 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5171 * IPython/Magic.py (Magic._ofind): blanket except around getattr()
5162 to protect against poorly written user objects where __getattr__
5172 to protect against poorly written user objects where __getattr__
5163 raises exceptions other than AttributeError. Thanks to a bug
5173 raises exceptions other than AttributeError. Thanks to a bug
5164 report by Oliver Sander <osander-AT-gmx.de>.
5174 report by Oliver Sander <osander-AT-gmx.de>.
5165
5175
5166 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5176 * IPython/FakeModule.py (FakeModule.__repr__): this method was
5167 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5177 missing. Thanks to bug report by Ralf Schmitt <ralf-AT-brainbot.com>.
5168
5178
5169 2003-09-09 Fernando Perez <fperez@colorado.edu>
5179 2003-09-09 Fernando Perez <fperez@colorado.edu>
5170
5180
5171 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5181 * IPython/iplib.py (InteractiveShell._prefilter): fix bug where
5172 unpacking a list whith a callable as first element would
5182 unpacking a list whith a callable as first element would
5173 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5183 mistakenly trigger autocalling. Thanks to a bug report by Jeffery
5174 Collins.
5184 Collins.
5175
5185
5176 2003-08-25 *** Released version 0.5.0
5186 2003-08-25 *** Released version 0.5.0
5177
5187
5178 2003-08-22 Fernando Perez <fperez@colorado.edu>
5188 2003-08-22 Fernando Perez <fperez@colorado.edu>
5179
5189
5180 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5190 * IPython/ultraTB.py (VerboseTB.linereader): Improved handling of
5181 improperly defined user exceptions. Thanks to feedback from Mark
5191 improperly defined user exceptions. Thanks to feedback from Mark
5182 Russell <mrussell-AT-verio.net>.
5192 Russell <mrussell-AT-verio.net>.
5183
5193
5184 2003-08-20 Fernando Perez <fperez@colorado.edu>
5194 2003-08-20 Fernando Perez <fperez@colorado.edu>
5185
5195
5186 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5196 * IPython/OInspect.py (Inspector.pinfo): changed String Form
5187 printing so that it would print multi-line string forms starting
5197 printing so that it would print multi-line string forms starting
5188 with a new line. This way the formatting is better respected for
5198 with a new line. This way the formatting is better respected for
5189 objects which work hard to make nice string forms.
5199 objects which work hard to make nice string forms.
5190
5200
5191 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5201 * IPython/iplib.py (InteractiveShell.handle_auto): Fix bug where
5192 autocall would overtake data access for objects with both
5202 autocall would overtake data access for objects with both
5193 __getitem__ and __call__.
5203 __getitem__ and __call__.
5194
5204
5195 2003-08-19 *** Released version 0.5.0-rc1
5205 2003-08-19 *** Released version 0.5.0-rc1
5196
5206
5197 2003-08-19 Fernando Perez <fperez@colorado.edu>
5207 2003-08-19 Fernando Perez <fperez@colorado.edu>
5198
5208
5199 * IPython/deep_reload.py (load_tail): single tiny change here
5209 * IPython/deep_reload.py (load_tail): single tiny change here
5200 seems to fix the long-standing bug of dreload() failing to work
5210 seems to fix the long-standing bug of dreload() failing to work
5201 for dotted names. But this module is pretty tricky, so I may have
5211 for dotted names. But this module is pretty tricky, so I may have
5202 missed some subtlety. Needs more testing!.
5212 missed some subtlety. Needs more testing!.
5203
5213
5204 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5214 * IPython/ultraTB.py (VerboseTB.linereader): harden against user
5205 exceptions which have badly implemented __str__ methods.
5215 exceptions which have badly implemented __str__ methods.
5206 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5216 (VerboseTB.text): harden against inspect.getinnerframes crashing,
5207 which I've been getting reports about from Python 2.3 users. I
5217 which I've been getting reports about from Python 2.3 users. I
5208 wish I had a simple test case to reproduce the problem, so I could
5218 wish I had a simple test case to reproduce the problem, so I could
5209 either write a cleaner workaround or file a bug report if
5219 either write a cleaner workaround or file a bug report if
5210 necessary.
5220 necessary.
5211
5221
5212 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5222 * IPython/Magic.py (Magic.magic_edit): fixed bug where after
5213 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5223 making a class 'foo', file 'foo.py' couldn't be edited. Thanks to
5214 a bug report by Tjabo Kloppenburg.
5224 a bug report by Tjabo Kloppenburg.
5215
5225
5216 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5226 * IPython/ultraTB.py (VerboseTB.debugger): hardened against pdb
5217 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5227 crashes. Wrapped the pdb call in a blanket try/except, since pdb
5218 seems rather unstable. Thanks to a bug report by Tjabo
5228 seems rather unstable. Thanks to a bug report by Tjabo
5219 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5229 Kloppenburg <tjabo.kloppenburg-AT-unix-ag.uni-siegen.de>.
5220
5230
5221 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5231 * IPython/Release.py (version): release 0.5.0-rc1. I want to put
5222 this out soon because of the critical fixes in the inner loop for
5232 this out soon because of the critical fixes in the inner loop for
5223 generators.
5233 generators.
5224
5234
5225 * IPython/Magic.py (Magic.getargspec): removed. This (and
5235 * IPython/Magic.py (Magic.getargspec): removed. This (and
5226 _get_def) have been obsoleted by OInspect for a long time, I
5236 _get_def) have been obsoleted by OInspect for a long time, I
5227 hadn't noticed that they were dead code.
5237 hadn't noticed that they were dead code.
5228 (Magic._ofind): restored _ofind functionality for a few literals
5238 (Magic._ofind): restored _ofind functionality for a few literals
5229 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5239 (those in ["''",'""','[]','{}','()']). But it won't work anymore
5230 for things like "hello".capitalize?, since that would require a
5240 for things like "hello".capitalize?, since that would require a
5231 potentially dangerous eval() again.
5241 potentially dangerous eval() again.
5232
5242
5233 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5243 * IPython/iplib.py (InteractiveShell._prefilter): reorganized the
5234 logic a bit more to clean up the escapes handling and minimize the
5244 logic a bit more to clean up the escapes handling and minimize the
5235 use of _ofind to only necessary cases. The interactive 'feel' of
5245 use of _ofind to only necessary cases. The interactive 'feel' of
5236 IPython should have improved quite a bit with the changes in
5246 IPython should have improved quite a bit with the changes in
5237 _prefilter and _ofind (besides being far safer than before).
5247 _prefilter and _ofind (besides being far safer than before).
5238
5248
5239 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5249 * IPython/Magic.py (Magic.magic_edit): Fixed old bug (but rather
5240 obscure, never reported). Edit would fail to find the object to
5250 obscure, never reported). Edit would fail to find the object to
5241 edit under some circumstances.
5251 edit under some circumstances.
5242 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5252 (Magic._ofind): CRITICAL FIX. Finally removed the eval() calls
5243 which were causing double-calling of generators. Those eval calls
5253 which were causing double-calling of generators. Those eval calls
5244 were _very_ dangerous, since code with side effects could be
5254 were _very_ dangerous, since code with side effects could be
5245 triggered. As they say, 'eval is evil'... These were the
5255 triggered. As they say, 'eval is evil'... These were the
5246 nastiest evals in IPython. Besides, _ofind is now far simpler,
5256 nastiest evals in IPython. Besides, _ofind is now far simpler,
5247 and it should also be quite a bit faster. Its use of inspect is
5257 and it should also be quite a bit faster. Its use of inspect is
5248 also safer, so perhaps some of the inspect-related crashes I've
5258 also safer, so perhaps some of the inspect-related crashes I've
5249 seen lately with Python 2.3 might be taken care of. That will
5259 seen lately with Python 2.3 might be taken care of. That will
5250 need more testing.
5260 need more testing.
5251
5261
5252 2003-08-17 Fernando Perez <fperez@colorado.edu>
5262 2003-08-17 Fernando Perez <fperez@colorado.edu>
5253
5263
5254 * IPython/iplib.py (InteractiveShell._prefilter): significant
5264 * IPython/iplib.py (InteractiveShell._prefilter): significant
5255 simplifications to the logic for handling user escapes. Faster
5265 simplifications to the logic for handling user escapes. Faster
5256 and simpler code.
5266 and simpler code.
5257
5267
5258 2003-08-14 Fernando Perez <fperez@colorado.edu>
5268 2003-08-14 Fernando Perez <fperez@colorado.edu>
5259
5269
5260 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5270 * IPython/numutils.py (sum_flat): rewrote to be non-recursive.
5261 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5271 Now it requires O(N) storage (N=size(a)) for non-contiguous input,
5262 but it should be quite a bit faster. And the recursive version
5272 but it should be quite a bit faster. And the recursive version
5263 generated O(log N) intermediate storage for all rank>1 arrays,
5273 generated O(log N) intermediate storage for all rank>1 arrays,
5264 even if they were contiguous.
5274 even if they were contiguous.
5265 (l1norm): Added this function.
5275 (l1norm): Added this function.
5266 (norm): Added this function for arbitrary norms (including
5276 (norm): Added this function for arbitrary norms (including
5267 l-infinity). l1 and l2 are still special cases for convenience
5277 l-infinity). l1 and l2 are still special cases for convenience
5268 and speed.
5278 and speed.
5269
5279
5270 2003-08-03 Fernando Perez <fperez@colorado.edu>
5280 2003-08-03 Fernando Perez <fperez@colorado.edu>
5271
5281
5272 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5282 * IPython/Magic.py (Magic.magic_edit): Removed all remaining string
5273 exceptions, which now raise PendingDeprecationWarnings in Python
5283 exceptions, which now raise PendingDeprecationWarnings in Python
5274 2.3. There were some in Magic and some in Gnuplot2.
5284 2.3. There were some in Magic and some in Gnuplot2.
5275
5285
5276 2003-06-30 Fernando Perez <fperez@colorado.edu>
5286 2003-06-30 Fernando Perez <fperez@colorado.edu>
5277
5287
5278 * IPython/genutils.py (page): modified to call curses only for
5288 * IPython/genutils.py (page): modified to call curses only for
5279 terminals where TERM=='xterm'. After problems under many other
5289 terminals where TERM=='xterm'. After problems under many other
5280 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5290 terminals were reported by Keith Beattie <KSBeattie-AT-lbl.gov>.
5281
5291
5282 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5292 * IPython/iplib.py (complete): removed spurious 'print "IE"' which
5283 would be triggered when readline was absent. This was just an old
5293 would be triggered when readline was absent. This was just an old
5284 debugging statement I'd forgotten to take out.
5294 debugging statement I'd forgotten to take out.
5285
5295
5286 2003-06-20 Fernando Perez <fperez@colorado.edu>
5296 2003-06-20 Fernando Perez <fperez@colorado.edu>
5287
5297
5288 * IPython/genutils.py (clock): modified to return only user time
5298 * IPython/genutils.py (clock): modified to return only user time
5289 (not counting system time), after a discussion on scipy. While
5299 (not counting system time), after a discussion on scipy. While
5290 system time may be a useful quantity occasionally, it may much
5300 system time may be a useful quantity occasionally, it may much
5291 more easily be skewed by occasional swapping or other similar
5301 more easily be skewed by occasional swapping or other similar
5292 activity.
5302 activity.
5293
5303
5294 2003-06-05 Fernando Perez <fperez@colorado.edu>
5304 2003-06-05 Fernando Perez <fperez@colorado.edu>
5295
5305
5296 * IPython/numutils.py (identity): new function, for building
5306 * IPython/numutils.py (identity): new function, for building
5297 arbitrary rank Kronecker deltas (mostly backwards compatible with
5307 arbitrary rank Kronecker deltas (mostly backwards compatible with
5298 Numeric.identity)
5308 Numeric.identity)
5299
5309
5300 2003-06-03 Fernando Perez <fperez@colorado.edu>
5310 2003-06-03 Fernando Perez <fperez@colorado.edu>
5301
5311
5302 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5312 * IPython/iplib.py (InteractiveShell.handle_magic): protect
5303 arguments passed to magics with spaces, to allow trailing '\' to
5313 arguments passed to magics with spaces, to allow trailing '\' to
5304 work normally (mainly for Windows users).
5314 work normally (mainly for Windows users).
5305
5315
5306 2003-05-29 Fernando Perez <fperez@colorado.edu>
5316 2003-05-29 Fernando Perez <fperez@colorado.edu>
5307
5317
5308 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5318 * IPython/ipmaker.py (make_IPython): Load site._Helper() as help
5309 instead of pydoc.help. This fixes a bizarre behavior where
5319 instead of pydoc.help. This fixes a bizarre behavior where
5310 printing '%s' % locals() would trigger the help system. Now
5320 printing '%s' % locals() would trigger the help system. Now
5311 ipython behaves like normal python does.
5321 ipython behaves like normal python does.
5312
5322
5313 Note that if one does 'from pydoc import help', the bizarre
5323 Note that if one does 'from pydoc import help', the bizarre
5314 behavior returns, but this will also happen in normal python, so
5324 behavior returns, but this will also happen in normal python, so
5315 it's not an ipython bug anymore (it has to do with how pydoc.help
5325 it's not an ipython bug anymore (it has to do with how pydoc.help
5316 is implemented).
5326 is implemented).
5317
5327
5318 2003-05-22 Fernando Perez <fperez@colorado.edu>
5328 2003-05-22 Fernando Perez <fperez@colorado.edu>
5319
5329
5320 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5330 * IPython/FlexCompleter.py (Completer.attr_matches): fixed to
5321 return [] instead of None when nothing matches, also match to end
5331 return [] instead of None when nothing matches, also match to end
5322 of line. Patch by Gary Bishop.
5332 of line. Patch by Gary Bishop.
5323
5333
5324 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5334 * IPython/ipmaker.py (make_IPython): Added same sys.excepthook
5325 protection as before, for files passed on the command line. This
5335 protection as before, for files passed on the command line. This
5326 prevents the CrashHandler from kicking in if user files call into
5336 prevents the CrashHandler from kicking in if user files call into
5327 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5337 sys.excepthook (such as PyQt and WxWindows have a nasty habit of
5328 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5338 doing). After a report by Kasper Souren <Kasper.Souren-AT-ircam.fr>
5329
5339
5330 2003-05-20 *** Released version 0.4.0
5340 2003-05-20 *** Released version 0.4.0
5331
5341
5332 2003-05-20 Fernando Perez <fperez@colorado.edu>
5342 2003-05-20 Fernando Perez <fperez@colorado.edu>
5333
5343
5334 * setup.py: added support for manpages. It's a bit hackish b/c of
5344 * setup.py: added support for manpages. It's a bit hackish b/c of
5335 a bug in the way the bdist_rpm distutils target handles gzipped
5345 a bug in the way the bdist_rpm distutils target handles gzipped
5336 manpages, but it works. After a patch by Jack.
5346 manpages, but it works. After a patch by Jack.
5337
5347
5338 2003-05-19 Fernando Perez <fperez@colorado.edu>
5348 2003-05-19 Fernando Perez <fperez@colorado.edu>
5339
5349
5340 * IPython/numutils.py: added a mockup of the kinds module, since
5350 * IPython/numutils.py: added a mockup of the kinds module, since
5341 it was recently removed from Numeric. This way, numutils will
5351 it was recently removed from Numeric. This way, numutils will
5342 work for all users even if they are missing kinds.
5352 work for all users even if they are missing kinds.
5343
5353
5344 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5354 * IPython/Magic.py (Magic._ofind): Harden against an inspect
5345 failure, which can occur with SWIG-wrapped extensions. After a
5355 failure, which can occur with SWIG-wrapped extensions. After a
5346 crash report from Prabhu.
5356 crash report from Prabhu.
5347
5357
5348 2003-05-16 Fernando Perez <fperez@colorado.edu>
5358 2003-05-16 Fernando Perez <fperez@colorado.edu>
5349
5359
5350 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5360 * IPython/iplib.py (InteractiveShell.excepthook): New method to
5351 protect ipython from user code which may call directly
5361 protect ipython from user code which may call directly
5352 sys.excepthook (this looks like an ipython crash to the user, even
5362 sys.excepthook (this looks like an ipython crash to the user, even
5353 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5363 when it isn't). After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5354 This is especially important to help users of WxWindows, but may
5364 This is especially important to help users of WxWindows, but may
5355 also be useful in other cases.
5365 also be useful in other cases.
5356
5366
5357 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5367 * IPython/ultraTB.py (AutoFormattedTB.__call__): Changed to allow
5358 an optional tb_offset to be specified, and to preserve exception
5368 an optional tb_offset to be specified, and to preserve exception
5359 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5369 info if given. After a patch by Gary Bishop <gb-AT-cs.unc.edu>.
5360
5370
5361 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5371 * ipython.1 (Default): Thanks to Jack's work, we now have manpages!
5362
5372
5363 2003-05-15 Fernando Perez <fperez@colorado.edu>
5373 2003-05-15 Fernando Perez <fperez@colorado.edu>
5364
5374
5365 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5375 * IPython/iplib.py (InteractiveShell.user_setup): Fix crash when
5366 installing for a new user under Windows.
5376 installing for a new user under Windows.
5367
5377
5368 2003-05-12 Fernando Perez <fperez@colorado.edu>
5378 2003-05-12 Fernando Perez <fperez@colorado.edu>
5369
5379
5370 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5380 * IPython/iplib.py (InteractiveShell.handle_emacs): New line
5371 handler for Emacs comint-based lines. Currently it doesn't do
5381 handler for Emacs comint-based lines. Currently it doesn't do
5372 much (but importantly, it doesn't update the history cache). In
5382 much (but importantly, it doesn't update the history cache). In
5373 the future it may be expanded if Alex needs more functionality
5383 the future it may be expanded if Alex needs more functionality
5374 there.
5384 there.
5375
5385
5376 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5386 * IPython/CrashHandler.py (CrashHandler.__call__): Added platform
5377 info to crash reports.
5387 info to crash reports.
5378
5388
5379 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5389 * IPython/iplib.py (InteractiveShell.mainloop): Added -c option,
5380 just like Python's -c. Also fixed crash with invalid -color
5390 just like Python's -c. Also fixed crash with invalid -color
5381 option value at startup. Thanks to Will French
5391 option value at startup. Thanks to Will French
5382 <wfrench-AT-bestweb.net> for the bug report.
5392 <wfrench-AT-bestweb.net> for the bug report.
5383
5393
5384 2003-05-09 Fernando Perez <fperez@colorado.edu>
5394 2003-05-09 Fernando Perez <fperez@colorado.edu>
5385
5395
5386 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5396 * IPython/genutils.py (EvalDict.__getitem__): Renamed EvalString
5387 to EvalDict (it's a mapping, after all) and simplified its code
5397 to EvalDict (it's a mapping, after all) and simplified its code
5388 quite a bit, after a nice discussion on c.l.py where Gustavo
5398 quite a bit, after a nice discussion on c.l.py where Gustavo
5389 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5399 CΓ³rdova <gcordova-AT-sismex.com> suggested the new version.
5390
5400
5391 2003-04-30 Fernando Perez <fperez@colorado.edu>
5401 2003-04-30 Fernando Perez <fperez@colorado.edu>
5392
5402
5393 * IPython/genutils.py (timings_out): modified it to reduce its
5403 * IPython/genutils.py (timings_out): modified it to reduce its
5394 overhead in the common reps==1 case.
5404 overhead in the common reps==1 case.
5395
5405
5396 2003-04-29 Fernando Perez <fperez@colorado.edu>
5406 2003-04-29 Fernando Perez <fperez@colorado.edu>
5397
5407
5398 * IPython/genutils.py (timings_out): Modified to use the resource
5408 * IPython/genutils.py (timings_out): Modified to use the resource
5399 module, which avoids the wraparound problems of time.clock().
5409 module, which avoids the wraparound problems of time.clock().
5400
5410
5401 2003-04-17 *** Released version 0.2.15pre4
5411 2003-04-17 *** Released version 0.2.15pre4
5402
5412
5403 2003-04-17 Fernando Perez <fperez@colorado.edu>
5413 2003-04-17 Fernando Perez <fperez@colorado.edu>
5404
5414
5405 * setup.py (scriptfiles): Split windows-specific stuff over to a
5415 * setup.py (scriptfiles): Split windows-specific stuff over to a
5406 separate file, in an attempt to have a Windows GUI installer.
5416 separate file, in an attempt to have a Windows GUI installer.
5407 That didn't work, but part of the groundwork is done.
5417 That didn't work, but part of the groundwork is done.
5408
5418
5409 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5419 * IPython/UserConfig/ipythonrc: Added M-i, M-o and M-I for
5410 indent/unindent with 4 spaces. Particularly useful in combination
5420 indent/unindent with 4 spaces. Particularly useful in combination
5411 with the new auto-indent option.
5421 with the new auto-indent option.
5412
5422
5413 2003-04-16 Fernando Perez <fperez@colorado.edu>
5423 2003-04-16 Fernando Perez <fperez@colorado.edu>
5414
5424
5415 * IPython/Magic.py: various replacements of self.rc for
5425 * IPython/Magic.py: various replacements of self.rc for
5416 self.shell.rc. A lot more remains to be done to fully disentangle
5426 self.shell.rc. A lot more remains to be done to fully disentangle
5417 this class from the main Shell class.
5427 this class from the main Shell class.
5418
5428
5419 * IPython/GnuplotRuntime.py: added checks for mouse support so
5429 * IPython/GnuplotRuntime.py: added checks for mouse support so
5420 that we don't try to enable it if the current gnuplot doesn't
5430 that we don't try to enable it if the current gnuplot doesn't
5421 really support it. Also added checks so that we don't try to
5431 really support it. Also added checks so that we don't try to
5422 enable persist under Windows (where Gnuplot doesn't recognize the
5432 enable persist under Windows (where Gnuplot doesn't recognize the
5423 option).
5433 option).
5424
5434
5425 * IPython/iplib.py (InteractiveShell.interact): Added optional
5435 * IPython/iplib.py (InteractiveShell.interact): Added optional
5426 auto-indenting code, after a patch by King C. Shu
5436 auto-indenting code, after a patch by King C. Shu
5427 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5437 <kingshu-AT-myrealbox.com>. It's off by default because it doesn't
5428 get along well with pasting indented code. If I ever figure out
5438 get along well with pasting indented code. If I ever figure out
5429 how to make that part go well, it will become on by default.
5439 how to make that part go well, it will become on by default.
5430
5440
5431 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5441 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixed bug which would
5432 crash ipython if there was an unmatched '%' in the user's prompt
5442 crash ipython if there was an unmatched '%' in the user's prompt
5433 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5443 string. Reported by Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5434
5444
5435 * IPython/iplib.py (InteractiveShell.interact): removed the
5445 * IPython/iplib.py (InteractiveShell.interact): removed the
5436 ability to ask the user whether he wants to crash or not at the
5446 ability to ask the user whether he wants to crash or not at the
5437 'last line' exception handler. Calling functions at that point
5447 'last line' exception handler. Calling functions at that point
5438 changes the stack, and the error reports would have incorrect
5448 changes the stack, and the error reports would have incorrect
5439 tracebacks.
5449 tracebacks.
5440
5450
5441 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5451 * IPython/Magic.py (Magic.magic_page): Added new @page magic, to
5442 pass through a peger a pretty-printed form of any object. After a
5452 pass through a peger a pretty-printed form of any object. After a
5443 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5453 contribution by Olivier Aubert <oaubert-AT-bat710.univ-lyon1.fr>
5444
5454
5445 2003-04-14 Fernando Perez <fperez@colorado.edu>
5455 2003-04-14 Fernando Perez <fperez@colorado.edu>
5446
5456
5447 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5457 * IPython/iplib.py (InteractiveShell.user_setup): Fixed bug where
5448 all files in ~ would be modified at first install (instead of
5458 all files in ~ would be modified at first install (instead of
5449 ~/.ipython). This could be potentially disastrous, as the
5459 ~/.ipython). This could be potentially disastrous, as the
5450 modification (make line-endings native) could damage binary files.
5460 modification (make line-endings native) could damage binary files.
5451
5461
5452 2003-04-10 Fernando Perez <fperez@colorado.edu>
5462 2003-04-10 Fernando Perez <fperez@colorado.edu>
5453
5463
5454 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5464 * IPython/iplib.py (InteractiveShell.handle_help): Modified to
5455 handle only lines which are invalid python. This now means that
5465 handle only lines which are invalid python. This now means that
5456 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5466 lines like 'x=1 #?' execute properly. Thanks to Jeffery Collins
5457 for the bug report.
5467 for the bug report.
5458
5468
5459 2003-04-01 Fernando Perez <fperez@colorado.edu>
5469 2003-04-01 Fernando Perez <fperez@colorado.edu>
5460
5470
5461 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5471 * IPython/iplib.py (InteractiveShell.showtraceback): Fixed bug
5462 where failing to set sys.last_traceback would crash pdb.pm().
5472 where failing to set sys.last_traceback would crash pdb.pm().
5463 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5473 Thanks to Jeffery D. Collins <Jeff.Collins-AT-vexcel.com> for the bug
5464 report.
5474 report.
5465
5475
5466 2003-03-25 Fernando Perez <fperez@colorado.edu>
5476 2003-03-25 Fernando Perez <fperez@colorado.edu>
5467
5477
5468 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5478 * IPython/Magic.py (Magic.magic_prun): rstrip() output of profiler
5469 before printing it (it had a lot of spurious blank lines at the
5479 before printing it (it had a lot of spurious blank lines at the
5470 end).
5480 end).
5471
5481
5472 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5482 * IPython/Gnuplot2.py (Gnuplot.hardcopy): fixed bug where lpr
5473 output would be sent 21 times! Obviously people don't use this
5483 output would be sent 21 times! Obviously people don't use this
5474 too often, or I would have heard about it.
5484 too often, or I would have heard about it.
5475
5485
5476 2003-03-24 Fernando Perez <fperez@colorado.edu>
5486 2003-03-24 Fernando Perez <fperez@colorado.edu>
5477
5487
5478 * setup.py (scriptfiles): renamed the data_files parameter from
5488 * setup.py (scriptfiles): renamed the data_files parameter from
5479 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5489 'base' to 'data' to fix rpm build issues. Thanks to Ralf Ahlbrink
5480 for the patch.
5490 for the patch.
5481
5491
5482 2003-03-20 Fernando Perez <fperez@colorado.edu>
5492 2003-03-20 Fernando Perez <fperez@colorado.edu>
5483
5493
5484 * IPython/genutils.py (error): added error() and fatal()
5494 * IPython/genutils.py (error): added error() and fatal()
5485 functions.
5495 functions.
5486
5496
5487 2003-03-18 *** Released version 0.2.15pre3
5497 2003-03-18 *** Released version 0.2.15pre3
5488
5498
5489 2003-03-18 Fernando Perez <fperez@colorado.edu>
5499 2003-03-18 Fernando Perez <fperez@colorado.edu>
5490
5500
5491 * setupext/install_data_ext.py
5501 * setupext/install_data_ext.py
5492 (install_data_ext.initialize_options): Class contributed by Jack
5502 (install_data_ext.initialize_options): Class contributed by Jack
5493 Moffit for fixing the old distutils hack. He is sending this to
5503 Moffit for fixing the old distutils hack. He is sending this to
5494 the distutils folks so in the future we may not need it as a
5504 the distutils folks so in the future we may not need it as a
5495 private fix.
5505 private fix.
5496
5506
5497 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5507 * MANIFEST.in: Extensive reorganization, based on Jack Moffit's
5498 changes for Debian packaging. See his patch for full details.
5508 changes for Debian packaging. See his patch for full details.
5499 The old distutils hack of making the ipythonrc* files carry a
5509 The old distutils hack of making the ipythonrc* files carry a
5500 bogus .py extension is gone, at last. Examples were moved to a
5510 bogus .py extension is gone, at last. Examples were moved to a
5501 separate subdir under doc/, and the separate executable scripts
5511 separate subdir under doc/, and the separate executable scripts
5502 now live in their own directory. Overall a great cleanup. The
5512 now live in their own directory. Overall a great cleanup. The
5503 manual was updated to use the new files, and setup.py has been
5513 manual was updated to use the new files, and setup.py has been
5504 fixed for this setup.
5514 fixed for this setup.
5505
5515
5506 * IPython/PyColorize.py (Parser.usage): made non-executable and
5516 * IPython/PyColorize.py (Parser.usage): made non-executable and
5507 created a pycolor wrapper around it to be included as a script.
5517 created a pycolor wrapper around it to be included as a script.
5508
5518
5509 2003-03-12 *** Released version 0.2.15pre2
5519 2003-03-12 *** Released version 0.2.15pre2
5510
5520
5511 2003-03-12 Fernando Perez <fperez@colorado.edu>
5521 2003-03-12 Fernando Perez <fperez@colorado.edu>
5512
5522
5513 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5523 * IPython/ColorANSI.py (make_color_table): Finally fixed the
5514 long-standing problem with garbage characters in some terminals.
5524 long-standing problem with garbage characters in some terminals.
5515 The issue was really that the \001 and \002 escapes must _only_ be
5525 The issue was really that the \001 and \002 escapes must _only_ be
5516 passed to input prompts (which call readline), but _never_ to
5526 passed to input prompts (which call readline), but _never_ to
5517 normal text to be printed on screen. I changed ColorANSI to have
5527 normal text to be printed on screen. I changed ColorANSI to have
5518 two classes: TermColors and InputTermColors, each with the
5528 two classes: TermColors and InputTermColors, each with the
5519 appropriate escapes for input prompts or normal text. The code in
5529 appropriate escapes for input prompts or normal text. The code in
5520 Prompts.py got slightly more complicated, but this very old and
5530 Prompts.py got slightly more complicated, but this very old and
5521 annoying bug is finally fixed.
5531 annoying bug is finally fixed.
5522
5532
5523 All the credit for nailing down the real origin of this problem
5533 All the credit for nailing down the real origin of this problem
5524 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5534 and the correct solution goes to Jack Moffit <jack-AT-xiph.org>.
5525 *Many* thanks to him for spending quite a bit of effort on this.
5535 *Many* thanks to him for spending quite a bit of effort on this.
5526
5536
5527 2003-03-05 *** Released version 0.2.15pre1
5537 2003-03-05 *** Released version 0.2.15pre1
5528
5538
5529 2003-03-03 Fernando Perez <fperez@colorado.edu>
5539 2003-03-03 Fernando Perez <fperez@colorado.edu>
5530
5540
5531 * IPython/FakeModule.py: Moved the former _FakeModule to a
5541 * IPython/FakeModule.py: Moved the former _FakeModule to a
5532 separate file, because it's also needed by Magic (to fix a similar
5542 separate file, because it's also needed by Magic (to fix a similar
5533 pickle-related issue in @run).
5543 pickle-related issue in @run).
5534
5544
5535 2003-03-02 Fernando Perez <fperez@colorado.edu>
5545 2003-03-02 Fernando Perez <fperez@colorado.edu>
5536
5546
5537 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5547 * IPython/Magic.py (Magic.magic_autocall): new magic to control
5538 the autocall option at runtime.
5548 the autocall option at runtime.
5539 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5549 (Magic.magic_dhist): changed self.user_ns to self.shell.user_ns
5540 across Magic.py to start separating Magic from InteractiveShell.
5550 across Magic.py to start separating Magic from InteractiveShell.
5541 (Magic._ofind): Fixed to return proper namespace for dotted
5551 (Magic._ofind): Fixed to return proper namespace for dotted
5542 names. Before, a dotted name would always return 'not currently
5552 names. Before, a dotted name would always return 'not currently
5543 defined', because it would find the 'parent'. s.x would be found,
5553 defined', because it would find the 'parent'. s.x would be found,
5544 but since 'x' isn't defined by itself, it would get confused.
5554 but since 'x' isn't defined by itself, it would get confused.
5545 (Magic.magic_run): Fixed pickling problems reported by Ralf
5555 (Magic.magic_run): Fixed pickling problems reported by Ralf
5546 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5556 Ahlbrink <RAhlbrink-AT-RosenInspection.net>. The fix was similar to
5547 that I'd used when Mike Heeter reported similar issues at the
5557 that I'd used when Mike Heeter reported similar issues at the
5548 top-level, but now for @run. It boils down to injecting the
5558 top-level, but now for @run. It boils down to injecting the
5549 namespace where code is being executed with something that looks
5559 namespace where code is being executed with something that looks
5550 enough like a module to fool pickle.dump(). Since a pickle stores
5560 enough like a module to fool pickle.dump(). Since a pickle stores
5551 a named reference to the importing module, we need this for
5561 a named reference to the importing module, we need this for
5552 pickles to save something sensible.
5562 pickles to save something sensible.
5553
5563
5554 * IPython/ipmaker.py (make_IPython): added an autocall option.
5564 * IPython/ipmaker.py (make_IPython): added an autocall option.
5555
5565
5556 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5566 * IPython/iplib.py (InteractiveShell._prefilter): reordered all of
5557 the auto-eval code. Now autocalling is an option, and the code is
5567 the auto-eval code. Now autocalling is an option, and the code is
5558 also vastly safer. There is no more eval() involved at all.
5568 also vastly safer. There is no more eval() involved at all.
5559
5569
5560 2003-03-01 Fernando Perez <fperez@colorado.edu>
5570 2003-03-01 Fernando Perez <fperez@colorado.edu>
5561
5571
5562 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5572 * IPython/Magic.py (Magic._ofind): Changed interface to return a
5563 dict with named keys instead of a tuple.
5573 dict with named keys instead of a tuple.
5564
5574
5565 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5575 * IPython: Started using CVS for IPython as of 0.2.15pre1.
5566
5576
5567 * setup.py (make_shortcut): Fixed message about directories
5577 * setup.py (make_shortcut): Fixed message about directories
5568 created during Windows installation (the directories were ok, just
5578 created during Windows installation (the directories were ok, just
5569 the printed message was misleading). Thanks to Chris Liechti
5579 the printed message was misleading). Thanks to Chris Liechti
5570 <cliechti-AT-gmx.net> for the heads up.
5580 <cliechti-AT-gmx.net> for the heads up.
5571
5581
5572 2003-02-21 Fernando Perez <fperez@colorado.edu>
5582 2003-02-21 Fernando Perez <fperez@colorado.edu>
5573
5583
5574 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5584 * IPython/iplib.py (InteractiveShell._prefilter): Fixed catching
5575 of ValueError exception when checking for auto-execution. This
5585 of ValueError exception when checking for auto-execution. This
5576 one is raised by things like Numeric arrays arr.flat when the
5586 one is raised by things like Numeric arrays arr.flat when the
5577 array is non-contiguous.
5587 array is non-contiguous.
5578
5588
5579 2003-01-31 Fernando Perez <fperez@colorado.edu>
5589 2003-01-31 Fernando Perez <fperez@colorado.edu>
5580
5590
5581 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5591 * IPython/genutils.py (SystemExec.bq): Fixed bug where bq would
5582 not return any value at all (even though the command would get
5592 not return any value at all (even though the command would get
5583 executed).
5593 executed).
5584 (xsys): Flush stdout right after printing the command to ensure
5594 (xsys): Flush stdout right after printing the command to ensure
5585 proper ordering of commands and command output in the total
5595 proper ordering of commands and command output in the total
5586 output.
5596 output.
5587 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5597 (SystemExec/xsys/bq): Switched the names of xsys/bq and
5588 system/getoutput as defaults. The old ones are kept for
5598 system/getoutput as defaults. The old ones are kept for
5589 compatibility reasons, so no code which uses this library needs
5599 compatibility reasons, so no code which uses this library needs
5590 changing.
5600 changing.
5591
5601
5592 2003-01-27 *** Released version 0.2.14
5602 2003-01-27 *** Released version 0.2.14
5593
5603
5594 2003-01-25 Fernando Perez <fperez@colorado.edu>
5604 2003-01-25 Fernando Perez <fperez@colorado.edu>
5595
5605
5596 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5606 * IPython/Magic.py (Magic.magic_edit): Fixed problem where
5597 functions defined in previous edit sessions could not be re-edited
5607 functions defined in previous edit sessions could not be re-edited
5598 (because the temp files were immediately removed). Now temp files
5608 (because the temp files were immediately removed). Now temp files
5599 are removed only at IPython's exit.
5609 are removed only at IPython's exit.
5600 (Magic.magic_run): Improved @run to perform shell-like expansions
5610 (Magic.magic_run): Improved @run to perform shell-like expansions
5601 on its arguments (~users and $VARS). With this, @run becomes more
5611 on its arguments (~users and $VARS). With this, @run becomes more
5602 like a normal command-line.
5612 like a normal command-line.
5603
5613
5604 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5614 * IPython/Shell.py (IPShellEmbed.__call__): Fixed a bunch of small
5605 bugs related to embedding and cleaned up that code. A fairly
5615 bugs related to embedding and cleaned up that code. A fairly
5606 important one was the impossibility to access the global namespace
5616 important one was the impossibility to access the global namespace
5607 through the embedded IPython (only local variables were visible).
5617 through the embedded IPython (only local variables were visible).
5608
5618
5609 2003-01-14 Fernando Perez <fperez@colorado.edu>
5619 2003-01-14 Fernando Perez <fperez@colorado.edu>
5610
5620
5611 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5621 * IPython/iplib.py (InteractiveShell._prefilter): Fixed
5612 auto-calling to be a bit more conservative. Now it doesn't get
5622 auto-calling to be a bit more conservative. Now it doesn't get
5613 triggered if any of '!=()<>' are in the rest of the input line, to
5623 triggered if any of '!=()<>' are in the rest of the input line, to
5614 allow comparing callables. Thanks to Alex for the heads up.
5624 allow comparing callables. Thanks to Alex for the heads up.
5615
5625
5616 2003-01-07 Fernando Perez <fperez@colorado.edu>
5626 2003-01-07 Fernando Perez <fperez@colorado.edu>
5617
5627
5618 * IPython/genutils.py (page): fixed estimation of the number of
5628 * IPython/genutils.py (page): fixed estimation of the number of
5619 lines in a string to be paged to simply count newlines. This
5629 lines in a string to be paged to simply count newlines. This
5620 prevents over-guessing due to embedded escape sequences. A better
5630 prevents over-guessing due to embedded escape sequences. A better
5621 long-term solution would involve stripping out the control chars
5631 long-term solution would involve stripping out the control chars
5622 for the count, but it's potentially so expensive I just don't
5632 for the count, but it's potentially so expensive I just don't
5623 think it's worth doing.
5633 think it's worth doing.
5624
5634
5625 2002-12-19 *** Released version 0.2.14pre50
5635 2002-12-19 *** Released version 0.2.14pre50
5626
5636
5627 2002-12-19 Fernando Perez <fperez@colorado.edu>
5637 2002-12-19 Fernando Perez <fperez@colorado.edu>
5628
5638
5629 * tools/release (version): Changed release scripts to inform
5639 * tools/release (version): Changed release scripts to inform
5630 Andrea and build a NEWS file with a list of recent changes.
5640 Andrea and build a NEWS file with a list of recent changes.
5631
5641
5632 * IPython/ColorANSI.py (__all__): changed terminal detection
5642 * IPython/ColorANSI.py (__all__): changed terminal detection
5633 code. Seems to work better for xterms without breaking
5643 code. Seems to work better for xterms without breaking
5634 konsole. Will need more testing to determine if WinXP and Mac OSX
5644 konsole. Will need more testing to determine if WinXP and Mac OSX
5635 also work ok.
5645 also work ok.
5636
5646
5637 2002-12-18 *** Released version 0.2.14pre49
5647 2002-12-18 *** Released version 0.2.14pre49
5638
5648
5639 2002-12-18 Fernando Perez <fperez@colorado.edu>
5649 2002-12-18 Fernando Perez <fperez@colorado.edu>
5640
5650
5641 * Docs: added new info about Mac OSX, from Andrea.
5651 * Docs: added new info about Mac OSX, from Andrea.
5642
5652
5643 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5653 * IPython/Gnuplot2.py (String): Added a String PlotItem class to
5644 allow direct plotting of python strings whose format is the same
5654 allow direct plotting of python strings whose format is the same
5645 of gnuplot data files.
5655 of gnuplot data files.
5646
5656
5647 2002-12-16 Fernando Perez <fperez@colorado.edu>
5657 2002-12-16 Fernando Perez <fperez@colorado.edu>
5648
5658
5649 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5659 * IPython/iplib.py (InteractiveShell.interact): fixed default (y)
5650 value of exit question to be acknowledged.
5660 value of exit question to be acknowledged.
5651
5661
5652 2002-12-03 Fernando Perez <fperez@colorado.edu>
5662 2002-12-03 Fernando Perez <fperez@colorado.edu>
5653
5663
5654 * IPython/ipmaker.py: removed generators, which had been added
5664 * IPython/ipmaker.py: removed generators, which had been added
5655 by mistake in an earlier debugging run. This was causing trouble
5665 by mistake in an earlier debugging run. This was causing trouble
5656 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5666 to users of python 2.1.x. Thanks to Abel Daniel <abli-AT-freemail.hu>
5657 for pointing this out.
5667 for pointing this out.
5658
5668
5659 2002-11-17 Fernando Perez <fperez@colorado.edu>
5669 2002-11-17 Fernando Perez <fperez@colorado.edu>
5660
5670
5661 * Manual: updated the Gnuplot section.
5671 * Manual: updated the Gnuplot section.
5662
5672
5663 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5673 * IPython/GnuplotRuntime.py: refactored a lot all this code, with
5664 a much better split of what goes in Runtime and what goes in
5674 a much better split of what goes in Runtime and what goes in
5665 Interactive.
5675 Interactive.
5666
5676
5667 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5677 * IPython/ipmaker.py: fixed bug where import_fail_info wasn't
5668 being imported from iplib.
5678 being imported from iplib.
5669
5679
5670 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5680 * IPython/GnuplotInteractive.py (magic_gpc): renamed @gp to @gpc
5671 for command-passing. Now the global Gnuplot instance is called
5681 for command-passing. Now the global Gnuplot instance is called
5672 'gp' instead of 'g', which was really a far too fragile and
5682 'gp' instead of 'g', which was really a far too fragile and
5673 common name.
5683 common name.
5674
5684
5675 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5685 * IPython/Gnuplot2.py (eps_fix_bbox): added this to fix broken
5676 bounding boxes generated by Gnuplot for square plots.
5686 bounding boxes generated by Gnuplot for square plots.
5677
5687
5678 * IPython/genutils.py (popkey): new function added. I should
5688 * IPython/genutils.py (popkey): new function added. I should
5679 suggest this on c.l.py as a dict method, it seems useful.
5689 suggest this on c.l.py as a dict method, it seems useful.
5680
5690
5681 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5691 * IPython/Gnuplot2.py (Gnuplot.plot): Overhauled plot and replot
5682 to transparently handle PostScript generation. MUCH better than
5692 to transparently handle PostScript generation. MUCH better than
5683 the previous plot_eps/replot_eps (which I removed now). The code
5693 the previous plot_eps/replot_eps (which I removed now). The code
5684 is also fairly clean and well documented now (including
5694 is also fairly clean and well documented now (including
5685 docstrings).
5695 docstrings).
5686
5696
5687 2002-11-13 Fernando Perez <fperez@colorado.edu>
5697 2002-11-13 Fernando Perez <fperez@colorado.edu>
5688
5698
5689 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5699 * IPython/Magic.py (Magic.magic_edit): fixed docstring
5690 (inconsistent with options).
5700 (inconsistent with options).
5691
5701
5692 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5702 * IPython/Gnuplot2.py (Gnuplot.hardcopy): hardcopy had been
5693 manually disabled, I don't know why. Fixed it.
5703 manually disabled, I don't know why. Fixed it.
5694 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5704 (Gnuplot._plot_eps): added new plot_eps/replot_eps to get directly
5695 eps output.
5705 eps output.
5696
5706
5697 2002-11-12 Fernando Perez <fperez@colorado.edu>
5707 2002-11-12 Fernando Perez <fperez@colorado.edu>
5698
5708
5699 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5709 * IPython/genutils.py (ask_yes_no): trap EOF and ^C so that they
5700 don't propagate up to caller. Fixes crash reported by François
5710 don't propagate up to caller. Fixes crash reported by François
5701 Pinard.
5711 Pinard.
5702
5712
5703 2002-11-09 Fernando Perez <fperez@colorado.edu>
5713 2002-11-09 Fernando Perez <fperez@colorado.edu>
5704
5714
5705 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5715 * IPython/ipmaker.py (make_IPython): fixed problem with writing
5706 history file for new users.
5716 history file for new users.
5707 (make_IPython): fixed bug where initial install would leave the
5717 (make_IPython): fixed bug where initial install would leave the
5708 user running in the .ipython dir.
5718 user running in the .ipython dir.
5709 (make_IPython): fixed bug where config dir .ipython would be
5719 (make_IPython): fixed bug where config dir .ipython would be
5710 created regardless of the given -ipythondir option. Thanks to Cory
5720 created regardless of the given -ipythondir option. Thanks to Cory
5711 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5721 Dodt <cdodt-AT-fcoe.k12.ca.us> for the bug report.
5712
5722
5713 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5723 * IPython/genutils.py (ask_yes_no): new function for asking yes/no
5714 type confirmations. Will need to use it in all of IPython's code
5724 type confirmations. Will need to use it in all of IPython's code
5715 consistently.
5725 consistently.
5716
5726
5717 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5727 * IPython/CrashHandler.py (CrashHandler.__call__): changed the
5718 context to print 31 lines instead of the default 5. This will make
5728 context to print 31 lines instead of the default 5. This will make
5719 the crash reports extremely detailed in case the problem is in
5729 the crash reports extremely detailed in case the problem is in
5720 libraries I don't have access to.
5730 libraries I don't have access to.
5721
5731
5722 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5732 * IPython/iplib.py (InteractiveShell.interact): changed the 'last
5723 line of defense' code to still crash, but giving users fair
5733 line of defense' code to still crash, but giving users fair
5724 warning. I don't want internal errors to go unreported: if there's
5734 warning. I don't want internal errors to go unreported: if there's
5725 an internal problem, IPython should crash and generate a full
5735 an internal problem, IPython should crash and generate a full
5726 report.
5736 report.
5727
5737
5728 2002-11-08 Fernando Perez <fperez@colorado.edu>
5738 2002-11-08 Fernando Perez <fperez@colorado.edu>
5729
5739
5730 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5740 * IPython/iplib.py (InteractiveShell.interact): added code to trap
5731 otherwise uncaught exceptions which can appear if people set
5741 otherwise uncaught exceptions which can appear if people set
5732 sys.stdout to something badly broken. Thanks to a crash report
5742 sys.stdout to something badly broken. Thanks to a crash report
5733 from henni-AT-mail.brainbot.com.
5743 from henni-AT-mail.brainbot.com.
5734
5744
5735 2002-11-04 Fernando Perez <fperez@colorado.edu>
5745 2002-11-04 Fernando Perez <fperez@colorado.edu>
5736
5746
5737 * IPython/iplib.py (InteractiveShell.interact): added
5747 * IPython/iplib.py (InteractiveShell.interact): added
5738 __IPYTHON__active to the builtins. It's a flag which goes on when
5748 __IPYTHON__active to the builtins. It's a flag which goes on when
5739 the interaction starts and goes off again when it stops. This
5749 the interaction starts and goes off again when it stops. This
5740 allows embedding code to detect being inside IPython. Before this
5750 allows embedding code to detect being inside IPython. Before this
5741 was done via __IPYTHON__, but that only shows that an IPython
5751 was done via __IPYTHON__, but that only shows that an IPython
5742 instance has been created.
5752 instance has been created.
5743
5753
5744 * IPython/Magic.py (Magic.magic_env): I realized that in a
5754 * IPython/Magic.py (Magic.magic_env): I realized that in a
5745 UserDict, instance.data holds the data as a normal dict. So I
5755 UserDict, instance.data holds the data as a normal dict. So I
5746 modified @env to return os.environ.data instead of rebuilding a
5756 modified @env to return os.environ.data instead of rebuilding a
5747 dict by hand.
5757 dict by hand.
5748
5758
5749 2002-11-02 Fernando Perez <fperez@colorado.edu>
5759 2002-11-02 Fernando Perez <fperez@colorado.edu>
5750
5760
5751 * IPython/genutils.py (warn): changed so that level 1 prints no
5761 * IPython/genutils.py (warn): changed so that level 1 prints no
5752 header. Level 2 is now the default (with 'WARNING' header, as
5762 header. Level 2 is now the default (with 'WARNING' header, as
5753 before). I think I tracked all places where changes were needed in
5763 before). I think I tracked all places where changes were needed in
5754 IPython, but outside code using the old level numbering may have
5764 IPython, but outside code using the old level numbering may have
5755 broken.
5765 broken.
5756
5766
5757 * IPython/iplib.py (InteractiveShell.runcode): added this to
5767 * IPython/iplib.py (InteractiveShell.runcode): added this to
5758 handle the tracebacks in SystemExit traps correctly. The previous
5768 handle the tracebacks in SystemExit traps correctly. The previous
5759 code (through interact) was printing more of the stack than
5769 code (through interact) was printing more of the stack than
5760 necessary, showing IPython internal code to the user.
5770 necessary, showing IPython internal code to the user.
5761
5771
5762 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5772 * IPython/UserConfig/ipythonrc.py: Made confirm_exit 1 by
5763 default. Now that the default at the confirmation prompt is yes,
5773 default. Now that the default at the confirmation prompt is yes,
5764 it's not so intrusive. François' argument that ipython sessions
5774 it's not so intrusive. François' argument that ipython sessions
5765 tend to be complex enough not to lose them from an accidental C-d,
5775 tend to be complex enough not to lose them from an accidental C-d,
5766 is a valid one.
5776 is a valid one.
5767
5777
5768 * IPython/iplib.py (InteractiveShell.interact): added a
5778 * IPython/iplib.py (InteractiveShell.interact): added a
5769 showtraceback() call to the SystemExit trap, and modified the exit
5779 showtraceback() call to the SystemExit trap, and modified the exit
5770 confirmation to have yes as the default.
5780 confirmation to have yes as the default.
5771
5781
5772 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5782 * IPython/UserConfig/ipythonrc.py: removed 'session' option from
5773 this file. It's been gone from the code for a long time, this was
5783 this file. It's been gone from the code for a long time, this was
5774 simply leftover junk.
5784 simply leftover junk.
5775
5785
5776 2002-11-01 Fernando Perez <fperez@colorado.edu>
5786 2002-11-01 Fernando Perez <fperez@colorado.edu>
5777
5787
5778 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5788 * IPython/UserConfig/ipythonrc.py: new confirm_exit option
5779 added. If set, IPython now traps EOF and asks for
5789 added. If set, IPython now traps EOF and asks for
5780 confirmation. After a request by François Pinard.
5790 confirmation. After a request by François Pinard.
5781
5791
5782 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5792 * IPython/Magic.py (Magic.magic_Exit): New @Exit and @Quit instead
5783 of @abort, and with a new (better) mechanism for handling the
5793 of @abort, and with a new (better) mechanism for handling the
5784 exceptions.
5794 exceptions.
5785
5795
5786 2002-10-27 Fernando Perez <fperez@colorado.edu>
5796 2002-10-27 Fernando Perez <fperez@colorado.edu>
5787
5797
5788 * IPython/usage.py (__doc__): updated the --help information and
5798 * IPython/usage.py (__doc__): updated the --help information and
5789 the ipythonrc file to indicate that -log generates
5799 the ipythonrc file to indicate that -log generates
5790 ./ipython.log. Also fixed the corresponding info in @logstart.
5800 ./ipython.log. Also fixed the corresponding info in @logstart.
5791 This and several other fixes in the manuals thanks to reports by
5801 This and several other fixes in the manuals thanks to reports by
5792 François Pinard <pinard-AT-iro.umontreal.ca>.
5802 François Pinard <pinard-AT-iro.umontreal.ca>.
5793
5803
5794 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5804 * IPython/Logger.py (Logger.switch_log): Fixed error message to
5795 refer to @logstart (instead of @log, which doesn't exist).
5805 refer to @logstart (instead of @log, which doesn't exist).
5796
5806
5797 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5807 * IPython/iplib.py (InteractiveShell._prefilter): fixed
5798 AttributeError crash. Thanks to Christopher Armstrong
5808 AttributeError crash. Thanks to Christopher Armstrong
5799 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5809 <radix-AT-twistedmatrix.com> for the report/fix. This bug had been
5800 introduced recently (in 0.2.14pre37) with the fix to the eval
5810 introduced recently (in 0.2.14pre37) with the fix to the eval
5801 problem mentioned below.
5811 problem mentioned below.
5802
5812
5803 2002-10-17 Fernando Perez <fperez@colorado.edu>
5813 2002-10-17 Fernando Perez <fperez@colorado.edu>
5804
5814
5805 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5815 * IPython/ConfigLoader.py (ConfigLoader.load): Fixes for Windows
5806 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5816 installation. Thanks to Leonardo Santagada <retype-AT-terra.com.br>.
5807
5817
5808 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5818 * IPython/iplib.py (InteractiveShell._prefilter): Many changes to
5809 this function to fix a problem reported by Alex Schmolck. He saw
5819 this function to fix a problem reported by Alex Schmolck. He saw
5810 it with list comprehensions and generators, which were getting
5820 it with list comprehensions and generators, which were getting
5811 called twice. The real problem was an 'eval' call in testing for
5821 called twice. The real problem was an 'eval' call in testing for
5812 automagic which was evaluating the input line silently.
5822 automagic which was evaluating the input line silently.
5813
5823
5814 This is a potentially very nasty bug, if the input has side
5824 This is a potentially very nasty bug, if the input has side
5815 effects which must not be repeated. The code is much cleaner now,
5825 effects which must not be repeated. The code is much cleaner now,
5816 without any blanket 'except' left and with a regexp test for
5826 without any blanket 'except' left and with a regexp test for
5817 actual function names.
5827 actual function names.
5818
5828
5819 But an eval remains, which I'm not fully comfortable with. I just
5829 But an eval remains, which I'm not fully comfortable with. I just
5820 don't know how to find out if an expression could be a callable in
5830 don't know how to find out if an expression could be a callable in
5821 the user's namespace without doing an eval on the string. However
5831 the user's namespace without doing an eval on the string. However
5822 that string is now much more strictly checked so that no code
5832 that string is now much more strictly checked so that no code
5823 slips by, so the eval should only happen for things that can
5833 slips by, so the eval should only happen for things that can
5824 really be only function/method names.
5834 really be only function/method names.
5825
5835
5826 2002-10-15 Fernando Perez <fperez@colorado.edu>
5836 2002-10-15 Fernando Perez <fperez@colorado.edu>
5827
5837
5828 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5838 * Updated LyX to 1.2.1 so I can work on the docs again. Added Mac
5829 OSX information to main manual, removed README_Mac_OSX file from
5839 OSX information to main manual, removed README_Mac_OSX file from
5830 distribution. Also updated credits for recent additions.
5840 distribution. Also updated credits for recent additions.
5831
5841
5832 2002-10-10 Fernando Perez <fperez@colorado.edu>
5842 2002-10-10 Fernando Perez <fperez@colorado.edu>
5833
5843
5834 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5844 * README_Mac_OSX: Added a README for Mac OSX users for fixing
5835 terminal-related issues. Many thanks to Andrea Riciputi
5845 terminal-related issues. Many thanks to Andrea Riciputi
5836 <andrea.riciputi-AT-libero.it> for writing it.
5846 <andrea.riciputi-AT-libero.it> for writing it.
5837
5847
5838 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5848 * IPython/UserConfig/ipythonrc.py: Fixes to various small issues,
5839 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5849 thanks to Thorsten Kampe <thorsten-AT-thorstenkampe.de>.
5840
5850
5841 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5851 * setup.py (make_shortcut): Fixes for Windows installation. Thanks
5842 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5852 to Fredrik Kant <fredrik.kant-AT-front.com> and Syver Enstad
5843 <syver-en-AT-online.no> who both submitted patches for this problem.
5853 <syver-en-AT-online.no> who both submitted patches for this problem.
5844
5854
5845 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5855 * IPython/iplib.py (InteractiveShell.embed_mainloop): Patch for
5846 global embedding to make sure that things don't overwrite user
5856 global embedding to make sure that things don't overwrite user
5847 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5857 globals accidentally. Thanks to Richard <rxe-AT-renre-europe.com>
5848
5858
5849 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5859 * IPython/Gnuplot2.py (gp): Patch for Gnuplot.py 1.6
5850 compatibility. Thanks to Hayden Callow
5860 compatibility. Thanks to Hayden Callow
5851 <h.callow-AT-elec.canterbury.ac.nz>
5861 <h.callow-AT-elec.canterbury.ac.nz>
5852
5862
5853 2002-10-04 Fernando Perez <fperez@colorado.edu>
5863 2002-10-04 Fernando Perez <fperez@colorado.edu>
5854
5864
5855 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5865 * IPython/Gnuplot2.py (PlotItem): Added 'index' option for
5856 Gnuplot.File objects.
5866 Gnuplot.File objects.
5857
5867
5858 2002-07-23 Fernando Perez <fperez@colorado.edu>
5868 2002-07-23 Fernando Perez <fperez@colorado.edu>
5859
5869
5860 * IPython/genutils.py (timing): Added timings() and timing() for
5870 * IPython/genutils.py (timing): Added timings() and timing() for
5861 quick access to the most commonly needed data, the execution
5871 quick access to the most commonly needed data, the execution
5862 times. Old timing() renamed to timings_out().
5872 times. Old timing() renamed to timings_out().
5863
5873
5864 2002-07-18 Fernando Perez <fperez@colorado.edu>
5874 2002-07-18 Fernando Perez <fperez@colorado.edu>
5865
5875
5866 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5876 * IPython/Shell.py (IPShellEmbed.restore_system_completer): fixed
5867 bug with nested instances disrupting the parent's tab completion.
5877 bug with nested instances disrupting the parent's tab completion.
5868
5878
5869 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5879 * IPython/iplib.py (all_completions): Added Alex Schmolck's
5870 all_completions code to begin the emacs integration.
5880 all_completions code to begin the emacs integration.
5871
5881
5872 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5882 * IPython/Gnuplot2.py (zip_items): Added optional 'titles'
5873 argument to allow titling individual arrays when plotting.
5883 argument to allow titling individual arrays when plotting.
5874
5884
5875 2002-07-15 Fernando Perez <fperez@colorado.edu>
5885 2002-07-15 Fernando Perez <fperez@colorado.edu>
5876
5886
5877 * setup.py (make_shortcut): changed to retrieve the value of
5887 * setup.py (make_shortcut): changed to retrieve the value of
5878 'Program Files' directory from the registry (this value changes in
5888 'Program Files' directory from the registry (this value changes in
5879 non-english versions of Windows). Thanks to Thomas Fanslau
5889 non-english versions of Windows). Thanks to Thomas Fanslau
5880 <tfanslau-AT-gmx.de> for the report.
5890 <tfanslau-AT-gmx.de> for the report.
5881
5891
5882 2002-07-10 Fernando Perez <fperez@colorado.edu>
5892 2002-07-10 Fernando Perez <fperez@colorado.edu>
5883
5893
5884 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5894 * IPython/ultraTB.py (VerboseTB.debugger): enabled workaround for
5885 a bug in pdb, which crashes if a line with only whitespace is
5895 a bug in pdb, which crashes if a line with only whitespace is
5886 entered. Bug report submitted to sourceforge.
5896 entered. Bug report submitted to sourceforge.
5887
5897
5888 2002-07-09 Fernando Perez <fperez@colorado.edu>
5898 2002-07-09 Fernando Perez <fperez@colorado.edu>
5889
5899
5890 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5900 * IPython/ultraTB.py (VerboseTB.nullrepr): fixed rare crash when
5891 reporting exceptions (it's a bug in inspect.py, I just set a
5901 reporting exceptions (it's a bug in inspect.py, I just set a
5892 workaround).
5902 workaround).
5893
5903
5894 2002-07-08 Fernando Perez <fperez@colorado.edu>
5904 2002-07-08 Fernando Perez <fperez@colorado.edu>
5895
5905
5896 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5906 * IPython/iplib.py (InteractiveShell.__init__): fixed reference to
5897 __IPYTHON__ in __builtins__ to show up in user_ns.
5907 __IPYTHON__ in __builtins__ to show up in user_ns.
5898
5908
5899 2002-07-03 Fernando Perez <fperez@colorado.edu>
5909 2002-07-03 Fernando Perez <fperez@colorado.edu>
5900
5910
5901 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5911 * IPython/GnuplotInteractive.py (magic_gp_set_default): changed
5902 name from @gp_set_instance to @gp_set_default.
5912 name from @gp_set_instance to @gp_set_default.
5903
5913
5904 * IPython/ipmaker.py (make_IPython): default editor value set to
5914 * IPython/ipmaker.py (make_IPython): default editor value set to
5905 '0' (a string), to match the rc file. Otherwise will crash when
5915 '0' (a string), to match the rc file. Otherwise will crash when
5906 .strip() is called on it.
5916 .strip() is called on it.
5907
5917
5908
5918
5909 2002-06-28 Fernando Perez <fperez@colorado.edu>
5919 2002-06-28 Fernando Perez <fperez@colorado.edu>
5910
5920
5911 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5921 * IPython/iplib.py (InteractiveShell.safe_execfile): fix importing
5912 of files in current directory when a file is executed via
5922 of files in current directory when a file is executed via
5913 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5923 @run. Patch also by RA <ralf_ahlbrink-AT-web.de>.
5914
5924
5915 * setup.py (manfiles): fix for rpm builds, submitted by RA
5925 * setup.py (manfiles): fix for rpm builds, submitted by RA
5916 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5926 <ralf_ahlbrink-AT-web.de>. Now we have RPMs!
5917
5927
5918 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5928 * IPython/ipmaker.py (make_IPython): fixed lookup of default
5919 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5929 editor when set to '0'. Problem was, '0' evaluates to True (it's a
5920 string!). A. Schmolck caught this one.
5930 string!). A. Schmolck caught this one.
5921
5931
5922 2002-06-27 Fernando Perez <fperez@colorado.edu>
5932 2002-06-27 Fernando Perez <fperez@colorado.edu>
5923
5933
5924 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5934 * IPython/ipmaker.py (make_IPython): fixed bug when running user
5925 defined files at the cmd line. __name__ wasn't being set to
5935 defined files at the cmd line. __name__ wasn't being set to
5926 __main__.
5936 __main__.
5927
5937
5928 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5938 * IPython/Gnuplot2.py (zip_items): improved it so it can plot also
5929 regular lists and tuples besides Numeric arrays.
5939 regular lists and tuples besides Numeric arrays.
5930
5940
5931 * IPython/Prompts.py (CachedOutput.__call__): Added output
5941 * IPython/Prompts.py (CachedOutput.__call__): Added output
5932 supression for input ending with ';'. Similar to Mathematica and
5942 supression for input ending with ';'. Similar to Mathematica and
5933 Matlab. The _* vars and Out[] list are still updated, just like
5943 Matlab. The _* vars and Out[] list are still updated, just like
5934 Mathematica behaves.
5944 Mathematica behaves.
5935
5945
5936 2002-06-25 Fernando Perez <fperez@colorado.edu>
5946 2002-06-25 Fernando Perez <fperez@colorado.edu>
5937
5947
5938 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5948 * IPython/ConfigLoader.py (ConfigLoader.load): fixed checking of
5939 .ini extensions for profiels under Windows.
5949 .ini extensions for profiels under Windows.
5940
5950
5941 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5951 * IPython/OInspect.py (Inspector.pinfo): improved alignment of
5942 string form. Fix contributed by Alexander Schmolck
5952 string form. Fix contributed by Alexander Schmolck
5943 <a.schmolck-AT-gmx.net>
5953 <a.schmolck-AT-gmx.net>
5944
5954
5945 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5955 * IPython/GnuplotRuntime.py (gp_new): new function. Returns a
5946 pre-configured Gnuplot instance.
5956 pre-configured Gnuplot instance.
5947
5957
5948 2002-06-21 Fernando Perez <fperez@colorado.edu>
5958 2002-06-21 Fernando Perez <fperez@colorado.edu>
5949
5959
5950 * IPython/numutils.py (exp_safe): new function, works around the
5960 * IPython/numutils.py (exp_safe): new function, works around the
5951 underflow problems in Numeric.
5961 underflow problems in Numeric.
5952 (log2): New fn. Safe log in base 2: returns exact integer answer
5962 (log2): New fn. Safe log in base 2: returns exact integer answer
5953 for exact integer powers of 2.
5963 for exact integer powers of 2.
5954
5964
5955 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5965 * IPython/Magic.py (get_py_filename): fixed it not expanding '~'
5956 properly.
5966 properly.
5957
5967
5958 2002-06-20 Fernando Perez <fperez@colorado.edu>
5968 2002-06-20 Fernando Perez <fperez@colorado.edu>
5959
5969
5960 * IPython/genutils.py (timing): new function like
5970 * IPython/genutils.py (timing): new function like
5961 Mathematica's. Similar to time_test, but returns more info.
5971 Mathematica's. Similar to time_test, but returns more info.
5962
5972
5963 2002-06-18 Fernando Perez <fperez@colorado.edu>
5973 2002-06-18 Fernando Perez <fperez@colorado.edu>
5964
5974
5965 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5975 * IPython/Magic.py (Magic.magic_save): modified @save and @r
5966 according to Mike Heeter's suggestions.
5976 according to Mike Heeter's suggestions.
5967
5977
5968 2002-06-16 Fernando Perez <fperez@colorado.edu>
5978 2002-06-16 Fernando Perez <fperez@colorado.edu>
5969
5979
5970 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5980 * IPython/GnuplotRuntime.py: Massive overhaul to the Gnuplot
5971 system. GnuplotMagic is gone as a user-directory option. New files
5981 system. GnuplotMagic is gone as a user-directory option. New files
5972 make it easier to use all the gnuplot stuff both from external
5982 make it easier to use all the gnuplot stuff both from external
5973 programs as well as from IPython. Had to rewrite part of
5983 programs as well as from IPython. Had to rewrite part of
5974 hardcopy() b/c of a strange bug: often the ps files simply don't
5984 hardcopy() b/c of a strange bug: often the ps files simply don't
5975 get created, and require a repeat of the command (often several
5985 get created, and require a repeat of the command (often several
5976 times).
5986 times).
5977
5987
5978 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5988 * IPython/ultraTB.py (AutoFormattedTB.__call__): changed to
5979 resolve output channel at call time, so that if sys.stderr has
5989 resolve output channel at call time, so that if sys.stderr has
5980 been redirected by user this gets honored.
5990 been redirected by user this gets honored.
5981
5991
5982 2002-06-13 Fernando Perez <fperez@colorado.edu>
5992 2002-06-13 Fernando Perez <fperez@colorado.edu>
5983
5993
5984 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5994 * IPython/Shell.py (IPShell.__init__): Changed IPythonShell to
5985 IPShell. Kept a copy with the old names to avoid breaking people's
5995 IPShell. Kept a copy with the old names to avoid breaking people's
5986 embedded code.
5996 embedded code.
5987
5997
5988 * IPython/ipython: simplified it to the bare minimum after
5998 * IPython/ipython: simplified it to the bare minimum after
5989 Holger's suggestions. Added info about how to use it in
5999 Holger's suggestions. Added info about how to use it in
5990 PYTHONSTARTUP.
6000 PYTHONSTARTUP.
5991
6001
5992 * IPython/Shell.py (IPythonShell): changed the options passing
6002 * IPython/Shell.py (IPythonShell): changed the options passing
5993 from a string with funky %s replacements to a straight list. Maybe
6003 from a string with funky %s replacements to a straight list. Maybe
5994 a bit more typing, but it follows sys.argv conventions, so there's
6004 a bit more typing, but it follows sys.argv conventions, so there's
5995 less special-casing to remember.
6005 less special-casing to remember.
5996
6006
5997 2002-06-12 Fernando Perez <fperez@colorado.edu>
6007 2002-06-12 Fernando Perez <fperez@colorado.edu>
5998
6008
5999 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
6009 * IPython/Magic.py (Magic.magic_r): new magic auto-repeat
6000 command. Thanks to a suggestion by Mike Heeter.
6010 command. Thanks to a suggestion by Mike Heeter.
6001 (Magic.magic_pfile): added behavior to look at filenames if given
6011 (Magic.magic_pfile): added behavior to look at filenames if given
6002 arg is not a defined object.
6012 arg is not a defined object.
6003 (Magic.magic_save): New @save function to save code snippets. Also
6013 (Magic.magic_save): New @save function to save code snippets. Also
6004 a Mike Heeter idea.
6014 a Mike Heeter idea.
6005
6015
6006 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
6016 * IPython/UserConfig/GnuplotMagic.py (plot): Improvements to
6007 plot() and replot(). Much more convenient now, especially for
6017 plot() and replot(). Much more convenient now, especially for
6008 interactive use.
6018 interactive use.
6009
6019
6010 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
6020 * IPython/Magic.py (Magic.magic_run): Added .py automatically to
6011 filenames.
6021 filenames.
6012
6022
6013 2002-06-02 Fernando Perez <fperez@colorado.edu>
6023 2002-06-02 Fernando Perez <fperez@colorado.edu>
6014
6024
6015 * IPython/Struct.py (Struct.__init__): modified to admit
6025 * IPython/Struct.py (Struct.__init__): modified to admit
6016 initialization via another struct.
6026 initialization via another struct.
6017
6027
6018 * IPython/genutils.py (SystemExec.__init__): New stateful
6028 * IPython/genutils.py (SystemExec.__init__): New stateful
6019 interface to xsys and bq. Useful for writing system scripts.
6029 interface to xsys and bq. Useful for writing system scripts.
6020
6030
6021 2002-05-30 Fernando Perez <fperez@colorado.edu>
6031 2002-05-30 Fernando Perez <fperez@colorado.edu>
6022
6032
6023 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6033 * MANIFEST.in: Changed docfile selection to exclude all the lyx
6024 documents. This will make the user download smaller (it's getting
6034 documents. This will make the user download smaller (it's getting
6025 too big).
6035 too big).
6026
6036
6027 2002-05-29 Fernando Perez <fperez@colorado.edu>
6037 2002-05-29 Fernando Perez <fperez@colorado.edu>
6028
6038
6029 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6039 * IPython/iplib.py (_FakeModule.__init__): New class introduced to
6030 fix problems with shelve and pickle. Seems to work, but I don't
6040 fix problems with shelve and pickle. Seems to work, but I don't
6031 know if corner cases break it. Thanks to Mike Heeter
6041 know if corner cases break it. Thanks to Mike Heeter
6032 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6042 <korora-AT-SDF.LONESTAR.ORG> for the bug reports and test cases.
6033
6043
6034 2002-05-24 Fernando Perez <fperez@colorado.edu>
6044 2002-05-24 Fernando Perez <fperez@colorado.edu>
6035
6045
6036 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6046 * IPython/Magic.py (Macro.__init__): fixed magics embedded in
6037 macros having broken.
6047 macros having broken.
6038
6048
6039 2002-05-21 Fernando Perez <fperez@colorado.edu>
6049 2002-05-21 Fernando Perez <fperez@colorado.edu>
6040
6050
6041 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6051 * IPython/Magic.py (Magic.magic_logstart): fixed recently
6042 introduced logging bug: all history before logging started was
6052 introduced logging bug: all history before logging started was
6043 being written one character per line! This came from the redesign
6053 being written one character per line! This came from the redesign
6044 of the input history as a special list which slices to strings,
6054 of the input history as a special list which slices to strings,
6045 not to lists.
6055 not to lists.
6046
6056
6047 2002-05-20 Fernando Perez <fperez@colorado.edu>
6057 2002-05-20 Fernando Perez <fperez@colorado.edu>
6048
6058
6049 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6059 * IPython/Prompts.py (CachedOutput.__init__): made the color table
6050 be an attribute of all classes in this module. The design of these
6060 be an attribute of all classes in this module. The design of these
6051 classes needs some serious overhauling.
6061 classes needs some serious overhauling.
6052
6062
6053 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6063 * IPython/DPyGetOpt.py (DPyGetOpt.setPosixCompliance): fixed bug
6054 which was ignoring '_' in option names.
6064 which was ignoring '_' in option names.
6055
6065
6056 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6066 * IPython/ultraTB.py (FormattedTB.__init__): Changed
6057 'Verbose_novars' to 'Context' and made it the new default. It's a
6067 'Verbose_novars' to 'Context' and made it the new default. It's a
6058 bit more readable and also safer than verbose.
6068 bit more readable and also safer than verbose.
6059
6069
6060 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6070 * IPython/PyColorize.py (Parser.__call__): Fixed coloring of
6061 triple-quoted strings.
6071 triple-quoted strings.
6062
6072
6063 * IPython/OInspect.py (__all__): new module exposing the object
6073 * IPython/OInspect.py (__all__): new module exposing the object
6064 introspection facilities. Now the corresponding magics are dummy
6074 introspection facilities. Now the corresponding magics are dummy
6065 wrappers around this. Having this module will make it much easier
6075 wrappers around this. Having this module will make it much easier
6066 to put these functions into our modified pdb.
6076 to put these functions into our modified pdb.
6067 This new object inspector system uses the new colorizing module,
6077 This new object inspector system uses the new colorizing module,
6068 so source code and other things are nicely syntax highlighted.
6078 so source code and other things are nicely syntax highlighted.
6069
6079
6070 2002-05-18 Fernando Perez <fperez@colorado.edu>
6080 2002-05-18 Fernando Perez <fperez@colorado.edu>
6071
6081
6072 * IPython/ColorANSI.py: Split the coloring tools into a separate
6082 * IPython/ColorANSI.py: Split the coloring tools into a separate
6073 module so I can use them in other code easier (they were part of
6083 module so I can use them in other code easier (they were part of
6074 ultraTB).
6084 ultraTB).
6075
6085
6076 2002-05-17 Fernando Perez <fperez@colorado.edu>
6086 2002-05-17 Fernando Perez <fperez@colorado.edu>
6077
6087
6078 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6088 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6079 fixed it to set the global 'g' also to the called instance, as
6089 fixed it to set the global 'g' also to the called instance, as
6080 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6090 long as 'g' was still a gnuplot instance (so it doesn't overwrite
6081 user's 'g' variables).
6091 user's 'g' variables).
6082
6092
6083 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6093 * IPython/iplib.py (InteractiveShell.__init__): Added In/Out
6084 global variables (aliases to _ih,_oh) so that users which expect
6094 global variables (aliases to _ih,_oh) so that users which expect
6085 In[5] or Out[7] to work aren't unpleasantly surprised.
6095 In[5] or Out[7] to work aren't unpleasantly surprised.
6086 (InputList.__getslice__): new class to allow executing slices of
6096 (InputList.__getslice__): new class to allow executing slices of
6087 input history directly. Very simple class, complements the use of
6097 input history directly. Very simple class, complements the use of
6088 macros.
6098 macros.
6089
6099
6090 2002-05-16 Fernando Perez <fperez@colorado.edu>
6100 2002-05-16 Fernando Perez <fperez@colorado.edu>
6091
6101
6092 * setup.py (docdirbase): make doc directory be just doc/IPython
6102 * setup.py (docdirbase): make doc directory be just doc/IPython
6093 without version numbers, it will reduce clutter for users.
6103 without version numbers, it will reduce clutter for users.
6094
6104
6095 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6105 * IPython/Magic.py (Magic.magic_run): Add explicit local dict to
6096 execfile call to prevent possible memory leak. See for details:
6106 execfile call to prevent possible memory leak. See for details:
6097 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6107 http://mail.python.org/pipermail/python-list/2002-February/088476.html
6098
6108
6099 2002-05-15 Fernando Perez <fperez@colorado.edu>
6109 2002-05-15 Fernando Perez <fperez@colorado.edu>
6100
6110
6101 * IPython/Magic.py (Magic.magic_psource): made the object
6111 * IPython/Magic.py (Magic.magic_psource): made the object
6102 introspection names be more standard: pdoc, pdef, pfile and
6112 introspection names be more standard: pdoc, pdef, pfile and
6103 psource. They all print/page their output, and it makes
6113 psource. They all print/page their output, and it makes
6104 remembering them easier. Kept old names for compatibility as
6114 remembering them easier. Kept old names for compatibility as
6105 aliases.
6115 aliases.
6106
6116
6107 2002-05-14 Fernando Perez <fperez@colorado.edu>
6117 2002-05-14 Fernando Perez <fperez@colorado.edu>
6108
6118
6109 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6119 * IPython/UserConfig/GnuplotMagic.py: I think I finally understood
6110 what the mouse problem was. The trick is to use gnuplot with temp
6120 what the mouse problem was. The trick is to use gnuplot with temp
6111 files and NOT with pipes (for data communication), because having
6121 files and NOT with pipes (for data communication), because having
6112 both pipes and the mouse on is bad news.
6122 both pipes and the mouse on is bad news.
6113
6123
6114 2002-05-13 Fernando Perez <fperez@colorado.edu>
6124 2002-05-13 Fernando Perez <fperez@colorado.edu>
6115
6125
6116 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6126 * IPython/Magic.py (Magic._ofind): fixed namespace order search
6117 bug. Information would be reported about builtins even when
6127 bug. Information would be reported about builtins even when
6118 user-defined functions overrode them.
6128 user-defined functions overrode them.
6119
6129
6120 2002-05-11 Fernando Perez <fperez@colorado.edu>
6130 2002-05-11 Fernando Perez <fperez@colorado.edu>
6121
6131
6122 * IPython/__init__.py (__all__): removed FlexCompleter from
6132 * IPython/__init__.py (__all__): removed FlexCompleter from
6123 __all__ so that things don't fail in platforms without readline.
6133 __all__ so that things don't fail in platforms without readline.
6124
6134
6125 2002-05-10 Fernando Perez <fperez@colorado.edu>
6135 2002-05-10 Fernando Perez <fperez@colorado.edu>
6126
6136
6127 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6137 * IPython/__init__.py (__all__): removed numutils from __all__ b/c
6128 it requires Numeric, effectively making Numeric a dependency for
6138 it requires Numeric, effectively making Numeric a dependency for
6129 IPython.
6139 IPython.
6130
6140
6131 * Released 0.2.13
6141 * Released 0.2.13
6132
6142
6133 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6143 * IPython/Magic.py (Magic.magic_prun): big overhaul to the
6134 profiler interface. Now all the major options from the profiler
6144 profiler interface. Now all the major options from the profiler
6135 module are directly supported in IPython, both for single
6145 module are directly supported in IPython, both for single
6136 expressions (@prun) and for full programs (@run -p).
6146 expressions (@prun) and for full programs (@run -p).
6137
6147
6138 2002-05-09 Fernando Perez <fperez@colorado.edu>
6148 2002-05-09 Fernando Perez <fperez@colorado.edu>
6139
6149
6140 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6150 * IPython/Magic.py (Magic.magic_doc): fixed to show docstrings of
6141 magic properly formatted for screen.
6151 magic properly formatted for screen.
6142
6152
6143 * setup.py (make_shortcut): Changed things to put pdf version in
6153 * setup.py (make_shortcut): Changed things to put pdf version in
6144 doc/ instead of doc/manual (had to change lyxport a bit).
6154 doc/ instead of doc/manual (had to change lyxport a bit).
6145
6155
6146 * IPython/Magic.py (Profile.string_stats): made profile runs go
6156 * IPython/Magic.py (Profile.string_stats): made profile runs go
6147 through pager (they are long and a pager allows searching, saving,
6157 through pager (they are long and a pager allows searching, saving,
6148 etc.)
6158 etc.)
6149
6159
6150 2002-05-08 Fernando Perez <fperez@colorado.edu>
6160 2002-05-08 Fernando Perez <fperez@colorado.edu>
6151
6161
6152 * Released 0.2.12
6162 * Released 0.2.12
6153
6163
6154 2002-05-06 Fernando Perez <fperez@colorado.edu>
6164 2002-05-06 Fernando Perez <fperez@colorado.edu>
6155
6165
6156 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6166 * IPython/Magic.py (Magic.magic_hist): small bug fixed (recently
6157 introduced); 'hist n1 n2' was broken.
6167 introduced); 'hist n1 n2' was broken.
6158 (Magic.magic_pdb): added optional on/off arguments to @pdb
6168 (Magic.magic_pdb): added optional on/off arguments to @pdb
6159 (Magic.magic_run): added option -i to @run, which executes code in
6169 (Magic.magic_run): added option -i to @run, which executes code in
6160 the IPython namespace instead of a clean one. Also added @irun as
6170 the IPython namespace instead of a clean one. Also added @irun as
6161 an alias to @run -i.
6171 an alias to @run -i.
6162
6172
6163 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6173 * IPython/UserConfig/GnuplotMagic.py (magic_gp_set_instance):
6164 fixed (it didn't really do anything, the namespaces were wrong).
6174 fixed (it didn't really do anything, the namespaces were wrong).
6165
6175
6166 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6176 * IPython/Debugger.py (__init__): Added workaround for python 2.1
6167
6177
6168 * IPython/__init__.py (__all__): Fixed package namespace, now
6178 * IPython/__init__.py (__all__): Fixed package namespace, now
6169 'import IPython' does give access to IPython.<all> as
6179 'import IPython' does give access to IPython.<all> as
6170 expected. Also renamed __release__ to Release.
6180 expected. Also renamed __release__ to Release.
6171
6181
6172 * IPython/Debugger.py (__license__): created new Pdb class which
6182 * IPython/Debugger.py (__license__): created new Pdb class which
6173 functions like a drop-in for the normal pdb.Pdb but does NOT
6183 functions like a drop-in for the normal pdb.Pdb but does NOT
6174 import readline by default. This way it doesn't muck up IPython's
6184 import readline by default. This way it doesn't muck up IPython's
6175 readline handling, and now tab-completion finally works in the
6185 readline handling, and now tab-completion finally works in the
6176 debugger -- sort of. It completes things globally visible, but the
6186 debugger -- sort of. It completes things globally visible, but the
6177 completer doesn't track the stack as pdb walks it. That's a bit
6187 completer doesn't track the stack as pdb walks it. That's a bit
6178 tricky, and I'll have to implement it later.
6188 tricky, and I'll have to implement it later.
6179
6189
6180 2002-05-05 Fernando Perez <fperez@colorado.edu>
6190 2002-05-05 Fernando Perez <fperez@colorado.edu>
6181
6191
6182 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6192 * IPython/Magic.py (Magic.magic_oinfo): fixed formatting bug for
6183 magic docstrings when printed via ? (explicit \'s were being
6193 magic docstrings when printed via ? (explicit \'s were being
6184 printed).
6194 printed).
6185
6195
6186 * IPython/ipmaker.py (make_IPython): fixed namespace
6196 * IPython/ipmaker.py (make_IPython): fixed namespace
6187 identification bug. Now variables loaded via logs or command-line
6197 identification bug. Now variables loaded via logs or command-line
6188 files are recognized in the interactive namespace by @who.
6198 files are recognized in the interactive namespace by @who.
6189
6199
6190 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6200 * IPython/iplib.py (InteractiveShell.safe_execfile): Fixed bug in
6191 log replay system stemming from the string form of Structs.
6201 log replay system stemming from the string form of Structs.
6192
6202
6193 * IPython/Magic.py (Macro.__init__): improved macros to properly
6203 * IPython/Magic.py (Macro.__init__): improved macros to properly
6194 handle magic commands in them.
6204 handle magic commands in them.
6195 (Magic.magic_logstart): usernames are now expanded so 'logstart
6205 (Magic.magic_logstart): usernames are now expanded so 'logstart
6196 ~/mylog' now works.
6206 ~/mylog' now works.
6197
6207
6198 * IPython/iplib.py (complete): fixed bug where paths starting with
6208 * IPython/iplib.py (complete): fixed bug where paths starting with
6199 '/' would be completed as magic names.
6209 '/' would be completed as magic names.
6200
6210
6201 2002-05-04 Fernando Perez <fperez@colorado.edu>
6211 2002-05-04 Fernando Perez <fperez@colorado.edu>
6202
6212
6203 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6213 * IPython/Magic.py (Magic.magic_run): added options -p and -f to
6204 allow running full programs under the profiler's control.
6214 allow running full programs under the profiler's control.
6205
6215
6206 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6216 * IPython/ultraTB.py (FormattedTB.__init__): Added Verbose_novars
6207 mode to report exceptions verbosely but without formatting
6217 mode to report exceptions verbosely but without formatting
6208 variables. This addresses the issue of ipython 'freezing' (it's
6218 variables. This addresses the issue of ipython 'freezing' (it's
6209 not frozen, but caught in an expensive formatting loop) when huge
6219 not frozen, but caught in an expensive formatting loop) when huge
6210 variables are in the context of an exception.
6220 variables are in the context of an exception.
6211 (VerboseTB.text): Added '--->' markers at line where exception was
6221 (VerboseTB.text): Added '--->' markers at line where exception was
6212 triggered. Much clearer to read, especially in NoColor modes.
6222 triggered. Much clearer to read, especially in NoColor modes.
6213
6223
6214 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6224 * IPython/Magic.py (Magic.magic_run): bugfix: -n option had been
6215 implemented in reverse when changing to the new parse_options().
6225 implemented in reverse when changing to the new parse_options().
6216
6226
6217 2002-05-03 Fernando Perez <fperez@colorado.edu>
6227 2002-05-03 Fernando Perez <fperez@colorado.edu>
6218
6228
6219 * IPython/Magic.py (Magic.parse_options): new function so that
6229 * IPython/Magic.py (Magic.parse_options): new function so that
6220 magics can parse options easier.
6230 magics can parse options easier.
6221 (Magic.magic_prun): new function similar to profile.run(),
6231 (Magic.magic_prun): new function similar to profile.run(),
6222 suggested by Chris Hart.
6232 suggested by Chris Hart.
6223 (Magic.magic_cd): fixed behavior so that it only changes if
6233 (Magic.magic_cd): fixed behavior so that it only changes if
6224 directory actually is in history.
6234 directory actually is in history.
6225
6235
6226 * IPython/usage.py (__doc__): added information about potential
6236 * IPython/usage.py (__doc__): added information about potential
6227 slowness of Verbose exception mode when there are huge data
6237 slowness of Verbose exception mode when there are huge data
6228 structures to be formatted (thanks to Archie Paulson).
6238 structures to be formatted (thanks to Archie Paulson).
6229
6239
6230 * IPython/ipmaker.py (make_IPython): Changed default logging
6240 * IPython/ipmaker.py (make_IPython): Changed default logging
6231 (when simply called with -log) to use curr_dir/ipython.log in
6241 (when simply called with -log) to use curr_dir/ipython.log in
6232 rotate mode. Fixed crash which was occuring with -log before
6242 rotate mode. Fixed crash which was occuring with -log before
6233 (thanks to Jim Boyle).
6243 (thanks to Jim Boyle).
6234
6244
6235 2002-05-01 Fernando Perez <fperez@colorado.edu>
6245 2002-05-01 Fernando Perez <fperez@colorado.edu>
6236
6246
6237 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6247 * Released 0.2.11 for these fixes (mainly the ultraTB one which
6238 was nasty -- though somewhat of a corner case).
6248 was nasty -- though somewhat of a corner case).
6239
6249
6240 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6250 * IPython/ultraTB.py (AutoFormattedTB.text): renamed __text to
6241 text (was a bug).
6251 text (was a bug).
6242
6252
6243 2002-04-30 Fernando Perez <fperez@colorado.edu>
6253 2002-04-30 Fernando Perez <fperez@colorado.edu>
6244
6254
6245 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6255 * IPython/UserConfig/GnuplotMagic.py (magic_gp): Minor fix to add
6246 a print after ^D or ^C from the user so that the In[] prompt
6256 a print after ^D or ^C from the user so that the In[] prompt
6247 doesn't over-run the gnuplot one.
6257 doesn't over-run the gnuplot one.
6248
6258
6249 2002-04-29 Fernando Perez <fperez@colorado.edu>
6259 2002-04-29 Fernando Perez <fperez@colorado.edu>
6250
6260
6251 * Released 0.2.10
6261 * Released 0.2.10
6252
6262
6253 * IPython/__release__.py (version): get date dynamically.
6263 * IPython/__release__.py (version): get date dynamically.
6254
6264
6255 * Misc. documentation updates thanks to Arnd's comments. Also ran
6265 * Misc. documentation updates thanks to Arnd's comments. Also ran
6256 a full spellcheck on the manual (hadn't been done in a while).
6266 a full spellcheck on the manual (hadn't been done in a while).
6257
6267
6258 2002-04-27 Fernando Perez <fperez@colorado.edu>
6268 2002-04-27 Fernando Perez <fperez@colorado.edu>
6259
6269
6260 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6270 * IPython/Magic.py (Magic.magic_logstart): Fixed bug where
6261 starting a log in mid-session would reset the input history list.
6271 starting a log in mid-session would reset the input history list.
6262
6272
6263 2002-04-26 Fernando Perez <fperez@colorado.edu>
6273 2002-04-26 Fernando Perez <fperez@colorado.edu>
6264
6274
6265 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6275 * IPython/iplib.py (InteractiveShell.wait): Fixed bug where not
6266 all files were being included in an update. Now anything in
6276 all files were being included in an update. Now anything in
6267 UserConfig that matches [A-Za-z]*.py will go (this excludes
6277 UserConfig that matches [A-Za-z]*.py will go (this excludes
6268 __init__.py)
6278 __init__.py)
6269
6279
6270 2002-04-25 Fernando Perez <fperez@colorado.edu>
6280 2002-04-25 Fernando Perez <fperez@colorado.edu>
6271
6281
6272 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6282 * IPython/iplib.py (InteractiveShell.__init__): Added __IPYTHON__
6273 to __builtins__ so that any form of embedded or imported code can
6283 to __builtins__ so that any form of embedded or imported code can
6274 test for being inside IPython.
6284 test for being inside IPython.
6275
6285
6276 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6286 * IPython/UserConfig/GnuplotMagic.py: (magic_gp_set_instance):
6277 changed to GnuplotMagic because it's now an importable module,
6287 changed to GnuplotMagic because it's now an importable module,
6278 this makes the name follow that of the standard Gnuplot module.
6288 this makes the name follow that of the standard Gnuplot module.
6279 GnuplotMagic can now be loaded at any time in mid-session.
6289 GnuplotMagic can now be loaded at any time in mid-session.
6280
6290
6281 2002-04-24 Fernando Perez <fperez@colorado.edu>
6291 2002-04-24 Fernando Perez <fperez@colorado.edu>
6282
6292
6283 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6293 * IPython/numutils.py: removed SIUnits. It doesn't properly set
6284 the globals (IPython has its own namespace) and the
6294 the globals (IPython has its own namespace) and the
6285 PhysicalQuantity stuff is much better anyway.
6295 PhysicalQuantity stuff is much better anyway.
6286
6296
6287 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6297 * IPython/UserConfig/example-gnuplot.py (g2): Added gnuplot
6288 embedding example to standard user directory for
6298 embedding example to standard user directory for
6289 distribution. Also put it in the manual.
6299 distribution. Also put it in the manual.
6290
6300
6291 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6301 * IPython/numutils.py (gnuplot_exec): Changed to take a gnuplot
6292 instance as first argument (so it doesn't rely on some obscure
6302 instance as first argument (so it doesn't rely on some obscure
6293 hidden global).
6303 hidden global).
6294
6304
6295 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6305 * IPython/UserConfig/ipythonrc.py: put () back in accepted
6296 delimiters. While it prevents ().TAB from working, it allows
6306 delimiters. While it prevents ().TAB from working, it allows
6297 completions in open (... expressions. This is by far a more common
6307 completions in open (... expressions. This is by far a more common
6298 case.
6308 case.
6299
6309
6300 2002-04-23 Fernando Perez <fperez@colorado.edu>
6310 2002-04-23 Fernando Perez <fperez@colorado.edu>
6301
6311
6302 * IPython/Extensions/InterpreterPasteInput.py: new
6312 * IPython/Extensions/InterpreterPasteInput.py: new
6303 syntax-processing module for pasting lines with >>> or ... at the
6313 syntax-processing module for pasting lines with >>> or ... at the
6304 start.
6314 start.
6305
6315
6306 * IPython/Extensions/PhysicalQ_Interactive.py
6316 * IPython/Extensions/PhysicalQ_Interactive.py
6307 (PhysicalQuantityInteractive.__int__): fixed to work with either
6317 (PhysicalQuantityInteractive.__int__): fixed to work with either
6308 Numeric or math.
6318 Numeric or math.
6309
6319
6310 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6320 * IPython/UserConfig/ipythonrc-numeric.py: reorganized the
6311 provided profiles. Now we have:
6321 provided profiles. Now we have:
6312 -math -> math module as * and cmath with its own namespace.
6322 -math -> math module as * and cmath with its own namespace.
6313 -numeric -> Numeric as *, plus gnuplot & grace
6323 -numeric -> Numeric as *, plus gnuplot & grace
6314 -physics -> same as before
6324 -physics -> same as before
6315
6325
6316 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6326 * IPython/Magic.py (Magic.magic_magic): Fixed bug where
6317 user-defined magics wouldn't be found by @magic if they were
6327 user-defined magics wouldn't be found by @magic if they were
6318 defined as class methods. Also cleaned up the namespace search
6328 defined as class methods. Also cleaned up the namespace search
6319 logic and the string building (to use %s instead of many repeated
6329 logic and the string building (to use %s instead of many repeated
6320 string adds).
6330 string adds).
6321
6331
6322 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6332 * IPython/UserConfig/example-magic.py (magic_foo): updated example
6323 of user-defined magics to operate with class methods (cleaner, in
6333 of user-defined magics to operate with class methods (cleaner, in
6324 line with the gnuplot code).
6334 line with the gnuplot code).
6325
6335
6326 2002-04-22 Fernando Perez <fperez@colorado.edu>
6336 2002-04-22 Fernando Perez <fperez@colorado.edu>
6327
6337
6328 * setup.py: updated dependency list so that manual is updated when
6338 * setup.py: updated dependency list so that manual is updated when
6329 all included files change.
6339 all included files change.
6330
6340
6331 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6341 * IPython/ipmaker.py (make_IPython): Fixed bug which was ignoring
6332 the delimiter removal option (the fix is ugly right now).
6342 the delimiter removal option (the fix is ugly right now).
6333
6343
6334 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6344 * IPython/UserConfig/ipythonrc-physics.py: simplified not to load
6335 all of the math profile (quicker loading, no conflict between
6345 all of the math profile (quicker loading, no conflict between
6336 g-9.8 and g-gnuplot).
6346 g-9.8 and g-gnuplot).
6337
6347
6338 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6348 * IPython/CrashHandler.py (CrashHandler.__call__): changed default
6339 name of post-mortem files to IPython_crash_report.txt.
6349 name of post-mortem files to IPython_crash_report.txt.
6340
6350
6341 * Cleanup/update of the docs. Added all the new readline info and
6351 * Cleanup/update of the docs. Added all the new readline info and
6342 formatted all lists as 'real lists'.
6352 formatted all lists as 'real lists'.
6343
6353
6344 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6354 * IPython/ipmaker.py (make_IPython): removed now-obsolete
6345 tab-completion options, since the full readline parse_and_bind is
6355 tab-completion options, since the full readline parse_and_bind is
6346 now accessible.
6356 now accessible.
6347
6357
6348 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6358 * IPython/iplib.py (InteractiveShell.init_readline): Changed
6349 handling of readline options. Now users can specify any string to
6359 handling of readline options. Now users can specify any string to
6350 be passed to parse_and_bind(), as well as the delimiters to be
6360 be passed to parse_and_bind(), as well as the delimiters to be
6351 removed.
6361 removed.
6352 (InteractiveShell.__init__): Added __name__ to the global
6362 (InteractiveShell.__init__): Added __name__ to the global
6353 namespace so that things like Itpl which rely on its existence
6363 namespace so that things like Itpl which rely on its existence
6354 don't crash.
6364 don't crash.
6355 (InteractiveShell._prefilter): Defined the default with a _ so
6365 (InteractiveShell._prefilter): Defined the default with a _ so
6356 that prefilter() is easier to override, while the default one
6366 that prefilter() is easier to override, while the default one
6357 remains available.
6367 remains available.
6358
6368
6359 2002-04-18 Fernando Perez <fperez@colorado.edu>
6369 2002-04-18 Fernando Perez <fperez@colorado.edu>
6360
6370
6361 * Added information about pdb in the docs.
6371 * Added information about pdb in the docs.
6362
6372
6363 2002-04-17 Fernando Perez <fperez@colorado.edu>
6373 2002-04-17 Fernando Perez <fperez@colorado.edu>
6364
6374
6365 * IPython/ipmaker.py (make_IPython): added rc_override option to
6375 * IPython/ipmaker.py (make_IPython): added rc_override option to
6366 allow passing config options at creation time which may override
6376 allow passing config options at creation time which may override
6367 anything set in the config files or command line. This is
6377 anything set in the config files or command line. This is
6368 particularly useful for configuring embedded instances.
6378 particularly useful for configuring embedded instances.
6369
6379
6370 2002-04-15 Fernando Perez <fperez@colorado.edu>
6380 2002-04-15 Fernando Perez <fperez@colorado.edu>
6371
6381
6372 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6382 * IPython/Logger.py (Logger.log): Fixed a nasty bug which could
6373 crash embedded instances because of the input cache falling out of
6383 crash embedded instances because of the input cache falling out of
6374 sync with the output counter.
6384 sync with the output counter.
6375
6385
6376 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6386 * IPython/Shell.py (IPythonShellEmbed.__init__): added a debug
6377 mode which calls pdb after an uncaught exception in IPython itself.
6387 mode which calls pdb after an uncaught exception in IPython itself.
6378
6388
6379 2002-04-14 Fernando Perez <fperez@colorado.edu>
6389 2002-04-14 Fernando Perez <fperez@colorado.edu>
6380
6390
6381 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6391 * IPython/iplib.py (InteractiveShell.showtraceback): pdb mucks up
6382 readline, fix it back after each call.
6392 readline, fix it back after each call.
6383
6393
6384 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6394 * IPython/ultraTB.py (AutoFormattedTB.__text): made text a private
6385 method to force all access via __call__(), which guarantees that
6395 method to force all access via __call__(), which guarantees that
6386 traceback references are properly deleted.
6396 traceback references are properly deleted.
6387
6397
6388 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6398 * IPython/Prompts.py (CachedOutput._display): minor fixes to
6389 improve printing when pprint is in use.
6399 improve printing when pprint is in use.
6390
6400
6391 2002-04-13 Fernando Perez <fperez@colorado.edu>
6401 2002-04-13 Fernando Perez <fperez@colorado.edu>
6392
6402
6393 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6403 * IPython/Shell.py (IPythonShellEmbed.__call__): SystemExit
6394 exceptions aren't caught anymore. If the user triggers one, he
6404 exceptions aren't caught anymore. If the user triggers one, he
6395 should know why he's doing it and it should go all the way up,
6405 should know why he's doing it and it should go all the way up,
6396 just like any other exception. So now @abort will fully kill the
6406 just like any other exception. So now @abort will fully kill the
6397 embedded interpreter and the embedding code (unless that happens
6407 embedded interpreter and the embedding code (unless that happens
6398 to catch SystemExit).
6408 to catch SystemExit).
6399
6409
6400 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6410 * IPython/ultraTB.py (VerboseTB.__init__): added a call_pdb flag
6401 and a debugger() method to invoke the interactive pdb debugger
6411 and a debugger() method to invoke the interactive pdb debugger
6402 after printing exception information. Also added the corresponding
6412 after printing exception information. Also added the corresponding
6403 -pdb option and @pdb magic to control this feature, and updated
6413 -pdb option and @pdb magic to control this feature, and updated
6404 the docs. After a suggestion from Christopher Hart
6414 the docs. After a suggestion from Christopher Hart
6405 (hart-AT-caltech.edu).
6415 (hart-AT-caltech.edu).
6406
6416
6407 2002-04-12 Fernando Perez <fperez@colorado.edu>
6417 2002-04-12 Fernando Perez <fperez@colorado.edu>
6408
6418
6409 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6419 * IPython/Shell.py (IPythonShellEmbed.__init__): modified to use
6410 the exception handlers defined by the user (not the CrashHandler)
6420 the exception handlers defined by the user (not the CrashHandler)
6411 so that user exceptions don't trigger an ipython bug report.
6421 so that user exceptions don't trigger an ipython bug report.
6412
6422
6413 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6423 * IPython/ultraTB.py (ColorTB.__init__): made the color scheme
6414 configurable (it should have always been so).
6424 configurable (it should have always been so).
6415
6425
6416 2002-03-26 Fernando Perez <fperez@colorado.edu>
6426 2002-03-26 Fernando Perez <fperez@colorado.edu>
6417
6427
6418 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6428 * IPython/Shell.py (IPythonShellEmbed.__call__): many changes here
6419 and there to fix embedding namespace issues. This should all be
6429 and there to fix embedding namespace issues. This should all be
6420 done in a more elegant way.
6430 done in a more elegant way.
6421
6431
6422 2002-03-25 Fernando Perez <fperez@colorado.edu>
6432 2002-03-25 Fernando Perez <fperez@colorado.edu>
6423
6433
6424 * IPython/genutils.py (get_home_dir): Try to make it work under
6434 * IPython/genutils.py (get_home_dir): Try to make it work under
6425 win9x also.
6435 win9x also.
6426
6436
6427 2002-03-20 Fernando Perez <fperez@colorado.edu>
6437 2002-03-20 Fernando Perez <fperez@colorado.edu>
6428
6438
6429 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6439 * IPython/Shell.py (IPythonShellEmbed.__init__): leave
6430 sys.displayhook untouched upon __init__.
6440 sys.displayhook untouched upon __init__.
6431
6441
6432 2002-03-19 Fernando Perez <fperez@colorado.edu>
6442 2002-03-19 Fernando Perez <fperez@colorado.edu>
6433
6443
6434 * Released 0.2.9 (for embedding bug, basically).
6444 * Released 0.2.9 (for embedding bug, basically).
6435
6445
6436 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6446 * IPython/Shell.py (IPythonShellEmbed.__call__): Trap SystemExit
6437 exceptions so that enclosing shell's state can be restored.
6447 exceptions so that enclosing shell's state can be restored.
6438
6448
6439 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6449 * Changed magic_gnuplot.py to magic-gnuplot.py to standardize
6440 naming conventions in the .ipython/ dir.
6450 naming conventions in the .ipython/ dir.
6441
6451
6442 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6452 * IPython/iplib.py (InteractiveShell.init_readline): removed '-'
6443 from delimiters list so filenames with - in them get expanded.
6453 from delimiters list so filenames with - in them get expanded.
6444
6454
6445 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6455 * IPython/Shell.py (IPythonShellEmbed.__call__): fixed bug with
6446 sys.displayhook not being properly restored after an embedded call.
6456 sys.displayhook not being properly restored after an embedded call.
6447
6457
6448 2002-03-18 Fernando Perez <fperez@colorado.edu>
6458 2002-03-18 Fernando Perez <fperez@colorado.edu>
6449
6459
6450 * Released 0.2.8
6460 * Released 0.2.8
6451
6461
6452 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6462 * IPython/iplib.py (InteractiveShell.user_setup): fixed bug where
6453 some files weren't being included in a -upgrade.
6463 some files weren't being included in a -upgrade.
6454 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6464 (InteractiveShell.init_readline): Added 'set show-all-if-ambiguous
6455 on' so that the first tab completes.
6465 on' so that the first tab completes.
6456 (InteractiveShell.handle_magic): fixed bug with spaces around
6466 (InteractiveShell.handle_magic): fixed bug with spaces around
6457 quotes breaking many magic commands.
6467 quotes breaking many magic commands.
6458
6468
6459 * setup.py: added note about ignoring the syntax error messages at
6469 * setup.py: added note about ignoring the syntax error messages at
6460 installation.
6470 installation.
6461
6471
6462 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6472 * IPython/UserConfig/magic_gnuplot.py (magic_gp): finished
6463 streamlining the gnuplot interface, now there's only one magic @gp.
6473 streamlining the gnuplot interface, now there's only one magic @gp.
6464
6474
6465 2002-03-17 Fernando Perez <fperez@colorado.edu>
6475 2002-03-17 Fernando Perez <fperez@colorado.edu>
6466
6476
6467 * IPython/UserConfig/magic_gnuplot.py: new name for the
6477 * IPython/UserConfig/magic_gnuplot.py: new name for the
6468 example-magic_pm.py file. Much enhanced system, now with a shell
6478 example-magic_pm.py file. Much enhanced system, now with a shell
6469 for communicating directly with gnuplot, one command at a time.
6479 for communicating directly with gnuplot, one command at a time.
6470
6480
6471 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6481 * IPython/Magic.py (Magic.magic_run): added option -n to prevent
6472 setting __name__=='__main__'.
6482 setting __name__=='__main__'.
6473
6483
6474 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6484 * IPython/UserConfig/example-magic_pm.py (magic_pm): Added
6475 mini-shell for accessing gnuplot from inside ipython. Should
6485 mini-shell for accessing gnuplot from inside ipython. Should
6476 extend it later for grace access too. Inspired by Arnd's
6486 extend it later for grace access too. Inspired by Arnd's
6477 suggestion.
6487 suggestion.
6478
6488
6479 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6489 * IPython/iplib.py (InteractiveShell.handle_magic): fixed bug when
6480 calling magic functions with () in their arguments. Thanks to Arnd
6490 calling magic functions with () in their arguments. Thanks to Arnd
6481 Baecker for pointing this to me.
6491 Baecker for pointing this to me.
6482
6492
6483 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6493 * IPython/numutils.py (sum_flat): fixed bug. Would recurse
6484 infinitely for integer or complex arrays (only worked with floats).
6494 infinitely for integer or complex arrays (only worked with floats).
6485
6495
6486 2002-03-16 Fernando Perez <fperez@colorado.edu>
6496 2002-03-16 Fernando Perez <fperez@colorado.edu>
6487
6497
6488 * setup.py: Merged setup and setup_windows into a single script
6498 * setup.py: Merged setup and setup_windows into a single script
6489 which properly handles things for windows users.
6499 which properly handles things for windows users.
6490
6500
6491 2002-03-15 Fernando Perez <fperez@colorado.edu>
6501 2002-03-15 Fernando Perez <fperez@colorado.edu>
6492
6502
6493 * Big change to the manual: now the magics are all automatically
6503 * Big change to the manual: now the magics are all automatically
6494 documented. This information is generated from their docstrings
6504 documented. This information is generated from their docstrings
6495 and put in a latex file included by the manual lyx file. This way
6505 and put in a latex file included by the manual lyx file. This way
6496 we get always up to date information for the magics. The manual
6506 we get always up to date information for the magics. The manual
6497 now also has proper version information, also auto-synced.
6507 now also has proper version information, also auto-synced.
6498
6508
6499 For this to work, an undocumented --magic_docstrings option was added.
6509 For this to work, an undocumented --magic_docstrings option was added.
6500
6510
6501 2002-03-13 Fernando Perez <fperez@colorado.edu>
6511 2002-03-13 Fernando Perez <fperez@colorado.edu>
6502
6512
6503 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6513 * IPython/ultraTB.py (TermColors): fixed problem with dark colors
6504 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6514 under CDE terminals. An explicit ;2 color reset is needed in the escapes.
6505
6515
6506 2002-03-12 Fernando Perez <fperez@colorado.edu>
6516 2002-03-12 Fernando Perez <fperez@colorado.edu>
6507
6517
6508 * IPython/ultraTB.py (TermColors): changed color escapes again to
6518 * IPython/ultraTB.py (TermColors): changed color escapes again to
6509 fix the (old, reintroduced) line-wrapping bug. Basically, if
6519 fix the (old, reintroduced) line-wrapping bug. Basically, if
6510 \001..\002 aren't given in the color escapes, lines get wrapped
6520 \001..\002 aren't given in the color escapes, lines get wrapped
6511 weirdly. But giving those screws up old xterms and emacs terms. So
6521 weirdly. But giving those screws up old xterms and emacs terms. So
6512 I added some logic for emacs terms to be ok, but I can't identify old
6522 I added some logic for emacs terms to be ok, but I can't identify old
6513 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6523 xterms separately ($TERM=='xterm' for many terminals, like konsole).
6514
6524
6515 2002-03-10 Fernando Perez <fperez@colorado.edu>
6525 2002-03-10 Fernando Perez <fperez@colorado.edu>
6516
6526
6517 * IPython/usage.py (__doc__): Various documentation cleanups and
6527 * IPython/usage.py (__doc__): Various documentation cleanups and
6518 updates, both in usage docstrings and in the manual.
6528 updates, both in usage docstrings and in the manual.
6519
6529
6520 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6530 * IPython/Prompts.py (CachedOutput.set_colors): cleanups for
6521 handling of caching. Set minimum acceptabe value for having a
6531 handling of caching. Set minimum acceptabe value for having a
6522 cache at 20 values.
6532 cache at 20 values.
6523
6533
6524 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6534 * IPython/iplib.py (InteractiveShell.user_setup): moved the
6525 install_first_time function to a method, renamed it and added an
6535 install_first_time function to a method, renamed it and added an
6526 'upgrade' mode. Now people can update their config directory with
6536 'upgrade' mode. Now people can update their config directory with
6527 a simple command line switch (-upgrade, also new).
6537 a simple command line switch (-upgrade, also new).
6528
6538
6529 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6539 * IPython/Magic.py (Magic.magic_pfile): Made @pfile an alias to
6530 @file (convenient for automagic users under Python >= 2.2).
6540 @file (convenient for automagic users under Python >= 2.2).
6531 Removed @files (it seemed more like a plural than an abbrev. of
6541 Removed @files (it seemed more like a plural than an abbrev. of
6532 'file show').
6542 'file show').
6533
6543
6534 * IPython/iplib.py (install_first_time): Fixed crash if there were
6544 * IPython/iplib.py (install_first_time): Fixed crash if there were
6535 backup files ('~') in .ipython/ install directory.
6545 backup files ('~') in .ipython/ install directory.
6536
6546
6537 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6547 * IPython/ipmaker.py (make_IPython): fixes for new prompt
6538 system. Things look fine, but these changes are fairly
6548 system. Things look fine, but these changes are fairly
6539 intrusive. Test them for a few days.
6549 intrusive. Test them for a few days.
6540
6550
6541 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6551 * IPython/Prompts.py (CachedOutput.__init__): Massive rewrite of
6542 the prompts system. Now all in/out prompt strings are user
6552 the prompts system. Now all in/out prompt strings are user
6543 controllable. This is particularly useful for embedding, as one
6553 controllable. This is particularly useful for embedding, as one
6544 can tag embedded instances with particular prompts.
6554 can tag embedded instances with particular prompts.
6545
6555
6546 Also removed global use of sys.ps1/2, which now allows nested
6556 Also removed global use of sys.ps1/2, which now allows nested
6547 embeddings without any problems. Added command-line options for
6557 embeddings without any problems. Added command-line options for
6548 the prompt strings.
6558 the prompt strings.
6549
6559
6550 2002-03-08 Fernando Perez <fperez@colorado.edu>
6560 2002-03-08 Fernando Perez <fperez@colorado.edu>
6551
6561
6552 * IPython/UserConfig/example-embed-short.py (ipshell): added
6562 * IPython/UserConfig/example-embed-short.py (ipshell): added
6553 example file with the bare minimum code for embedding.
6563 example file with the bare minimum code for embedding.
6554
6564
6555 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6565 * IPython/Shell.py (IPythonShellEmbed.set_dummy_mode): added
6556 functionality for the embeddable shell to be activated/deactivated
6566 functionality for the embeddable shell to be activated/deactivated
6557 either globally or at each call.
6567 either globally or at each call.
6558
6568
6559 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6569 * IPython/Prompts.py (Prompt1.auto_rewrite): Fixes the problem of
6560 rewriting the prompt with '--->' for auto-inputs with proper
6570 rewriting the prompt with '--->' for auto-inputs with proper
6561 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6571 coloring. Now the previous UGLY hack in handle_auto() is gone, and
6562 this is handled by the prompts class itself, as it should.
6572 this is handled by the prompts class itself, as it should.
6563
6573
6564 2002-03-05 Fernando Perez <fperez@colorado.edu>
6574 2002-03-05 Fernando Perez <fperez@colorado.edu>
6565
6575
6566 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6576 * IPython/Magic.py (Magic.magic_logstart): Changed @log to
6567 @logstart to avoid name clashes with the math log function.
6577 @logstart to avoid name clashes with the math log function.
6568
6578
6569 * Big updates to X/Emacs section of the manual.
6579 * Big updates to X/Emacs section of the manual.
6570
6580
6571 * Removed ipython_emacs. Milan explained to me how to pass
6581 * Removed ipython_emacs. Milan explained to me how to pass
6572 arguments to ipython through Emacs. Some day I'm going to end up
6582 arguments to ipython through Emacs. Some day I'm going to end up
6573 learning some lisp...
6583 learning some lisp...
6574
6584
6575 2002-03-04 Fernando Perez <fperez@colorado.edu>
6585 2002-03-04 Fernando Perez <fperez@colorado.edu>
6576
6586
6577 * IPython/ipython_emacs: Created script to be used as the
6587 * IPython/ipython_emacs: Created script to be used as the
6578 py-python-command Emacs variable so we can pass IPython
6588 py-python-command Emacs variable so we can pass IPython
6579 parameters. I can't figure out how to tell Emacs directly to pass
6589 parameters. I can't figure out how to tell Emacs directly to pass
6580 parameters to IPython, so a dummy shell script will do it.
6590 parameters to IPython, so a dummy shell script will do it.
6581
6591
6582 Other enhancements made for things to work better under Emacs'
6592 Other enhancements made for things to work better under Emacs'
6583 various types of terminals. Many thanks to Milan Zamazal
6593 various types of terminals. Many thanks to Milan Zamazal
6584 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6594 <pdm-AT-zamazal.org> for all the suggestions and pointers.
6585
6595
6586 2002-03-01 Fernando Perez <fperez@colorado.edu>
6596 2002-03-01 Fernando Perez <fperez@colorado.edu>
6587
6597
6588 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6598 * IPython/ipmaker.py (make_IPython): added a --readline! option so
6589 that loading of readline is now optional. This gives better
6599 that loading of readline is now optional. This gives better
6590 control to emacs users.
6600 control to emacs users.
6591
6601
6592 * IPython/ultraTB.py (__date__): Modified color escape sequences
6602 * IPython/ultraTB.py (__date__): Modified color escape sequences
6593 and now things work fine under xterm and in Emacs' term buffers
6603 and now things work fine under xterm and in Emacs' term buffers
6594 (though not shell ones). Well, in emacs you get colors, but all
6604 (though not shell ones). Well, in emacs you get colors, but all
6595 seem to be 'light' colors (no difference between dark and light
6605 seem to be 'light' colors (no difference between dark and light
6596 ones). But the garbage chars are gone, and also in xterms. It
6606 ones). But the garbage chars are gone, and also in xterms. It
6597 seems that now I'm using 'cleaner' ansi sequences.
6607 seems that now I'm using 'cleaner' ansi sequences.
6598
6608
6599 2002-02-21 Fernando Perez <fperez@colorado.edu>
6609 2002-02-21 Fernando Perez <fperez@colorado.edu>
6600
6610
6601 * Released 0.2.7 (mainly to publish the scoping fix).
6611 * Released 0.2.7 (mainly to publish the scoping fix).
6602
6612
6603 * IPython/Logger.py (Logger.logstate): added. A corresponding
6613 * IPython/Logger.py (Logger.logstate): added. A corresponding
6604 @logstate magic was created.
6614 @logstate magic was created.
6605
6615
6606 * IPython/Magic.py: fixed nested scoping problem under Python
6616 * IPython/Magic.py: fixed nested scoping problem under Python
6607 2.1.x (automagic wasn't working).
6617 2.1.x (automagic wasn't working).
6608
6618
6609 2002-02-20 Fernando Perez <fperez@colorado.edu>
6619 2002-02-20 Fernando Perez <fperez@colorado.edu>
6610
6620
6611 * Released 0.2.6.
6621 * Released 0.2.6.
6612
6622
6613 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6623 * IPython/OutputTrap.py (OutputTrap.__init__): added a 'quiet'
6614 option so that logs can come out without any headers at all.
6624 option so that logs can come out without any headers at all.
6615
6625
6616 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6626 * IPython/UserConfig/ipythonrc-scipy.py: created a profile for
6617 SciPy.
6627 SciPy.
6618
6628
6619 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6629 * IPython/iplib.py (InteractiveShell.embed_mainloop): Changed so
6620 that embedded IPython calls don't require vars() to be explicitly
6630 that embedded IPython calls don't require vars() to be explicitly
6621 passed. Now they are extracted from the caller's frame (code
6631 passed. Now they are extracted from the caller's frame (code
6622 snatched from Eric Jones' weave). Added better documentation to
6632 snatched from Eric Jones' weave). Added better documentation to
6623 the section on embedding and the example file.
6633 the section on embedding and the example file.
6624
6634
6625 * IPython/genutils.py (page): Changed so that under emacs, it just
6635 * IPython/genutils.py (page): Changed so that under emacs, it just
6626 prints the string. You can then page up and down in the emacs
6636 prints the string. You can then page up and down in the emacs
6627 buffer itself. This is how the builtin help() works.
6637 buffer itself. This is how the builtin help() works.
6628
6638
6629 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6639 * IPython/Prompts.py (CachedOutput.__call__): Fixed issue with
6630 macro scoping: macros need to be executed in the user's namespace
6640 macro scoping: macros need to be executed in the user's namespace
6631 to work as if they had been typed by the user.
6641 to work as if they had been typed by the user.
6632
6642
6633 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6643 * IPython/Magic.py (Magic.magic_macro): Changed macros so they
6634 execute automatically (no need to type 'exec...'). They then
6644 execute automatically (no need to type 'exec...'). They then
6635 behave like 'true macros'. The printing system was also modified
6645 behave like 'true macros'. The printing system was also modified
6636 for this to work.
6646 for this to work.
6637
6647
6638 2002-02-19 Fernando Perez <fperez@colorado.edu>
6648 2002-02-19 Fernando Perez <fperez@colorado.edu>
6639
6649
6640 * IPython/genutils.py (page_file): new function for paging files
6650 * IPython/genutils.py (page_file): new function for paging files
6641 in an OS-independent way. Also necessary for file viewing to work
6651 in an OS-independent way. Also necessary for file viewing to work
6642 well inside Emacs buffers.
6652 well inside Emacs buffers.
6643 (page): Added checks for being in an emacs buffer.
6653 (page): Added checks for being in an emacs buffer.
6644 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6654 (page): fixed bug for Windows ($TERM isn't set in Windows). Fixed
6645 same bug in iplib.
6655 same bug in iplib.
6646
6656
6647 2002-02-18 Fernando Perez <fperez@colorado.edu>
6657 2002-02-18 Fernando Perez <fperez@colorado.edu>
6648
6658
6649 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6659 * IPython/iplib.py (InteractiveShell.init_readline): modified use
6650 of readline so that IPython can work inside an Emacs buffer.
6660 of readline so that IPython can work inside an Emacs buffer.
6651
6661
6652 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6662 * IPython/ultraTB.py (AutoFormattedTB.__call__): some fixes to
6653 method signatures (they weren't really bugs, but it looks cleaner
6663 method signatures (they weren't really bugs, but it looks cleaner
6654 and keeps PyChecker happy).
6664 and keeps PyChecker happy).
6655
6665
6656 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6666 * IPython/ipmaker.py (make_IPython): added hooks Struct to __IP
6657 for implementing various user-defined hooks. Currently only
6667 for implementing various user-defined hooks. Currently only
6658 display is done.
6668 display is done.
6659
6669
6660 * IPython/Prompts.py (CachedOutput._display): changed display
6670 * IPython/Prompts.py (CachedOutput._display): changed display
6661 functions so that they can be dynamically changed by users easily.
6671 functions so that they can be dynamically changed by users easily.
6662
6672
6663 * IPython/Extensions/numeric_formats.py (num_display): added an
6673 * IPython/Extensions/numeric_formats.py (num_display): added an
6664 extension for printing NumPy arrays in flexible manners. It
6674 extension for printing NumPy arrays in flexible manners. It
6665 doesn't do anything yet, but all the structure is in
6675 doesn't do anything yet, but all the structure is in
6666 place. Ultimately the plan is to implement output format control
6676 place. Ultimately the plan is to implement output format control
6667 like in Octave.
6677 like in Octave.
6668
6678
6669 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6679 * IPython/Magic.py (Magic.lsmagic): changed so that bound magic
6670 methods are found at run-time by all the automatic machinery.
6680 methods are found at run-time by all the automatic machinery.
6671
6681
6672 2002-02-17 Fernando Perez <fperez@colorado.edu>
6682 2002-02-17 Fernando Perez <fperez@colorado.edu>
6673
6683
6674 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6684 * setup_Windows.py (make_shortcut): documented. Cleaned up the
6675 whole file a little.
6685 whole file a little.
6676
6686
6677 * ToDo: closed this document. Now there's a new_design.lyx
6687 * ToDo: closed this document. Now there's a new_design.lyx
6678 document for all new ideas. Added making a pdf of it for the
6688 document for all new ideas. Added making a pdf of it for the
6679 end-user distro.
6689 end-user distro.
6680
6690
6681 * IPython/Logger.py (Logger.switch_log): Created this to replace
6691 * IPython/Logger.py (Logger.switch_log): Created this to replace
6682 logon() and logoff(). It also fixes a nasty crash reported by
6692 logon() and logoff(). It also fixes a nasty crash reported by
6683 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6693 Philip Hisley <compsys-AT-starpower.net>. Many thanks to him.
6684
6694
6685 * IPython/iplib.py (complete): got auto-completion to work with
6695 * IPython/iplib.py (complete): got auto-completion to work with
6686 automagic (I had wanted this for a long time).
6696 automagic (I had wanted this for a long time).
6687
6697
6688 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6698 * IPython/Magic.py (Magic.magic_files): Added @files as an alias
6689 to @file, since file() is now a builtin and clashes with automagic
6699 to @file, since file() is now a builtin and clashes with automagic
6690 for @file.
6700 for @file.
6691
6701
6692 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6702 * Made some new files: Prompts, CrashHandler, Magic, Logger. All
6693 of this was previously in iplib, which had grown to more than 2000
6703 of this was previously in iplib, which had grown to more than 2000
6694 lines, way too long. No new functionality, but it makes managing
6704 lines, way too long. No new functionality, but it makes managing
6695 the code a bit easier.
6705 the code a bit easier.
6696
6706
6697 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6707 * IPython/iplib.py (IPythonCrashHandler.__call__): Added version
6698 information to crash reports.
6708 information to crash reports.
6699
6709
6700 2002-02-12 Fernando Perez <fperez@colorado.edu>
6710 2002-02-12 Fernando Perez <fperez@colorado.edu>
6701
6711
6702 * Released 0.2.5.
6712 * Released 0.2.5.
6703
6713
6704 2002-02-11 Fernando Perez <fperez@colorado.edu>
6714 2002-02-11 Fernando Perez <fperez@colorado.edu>
6705
6715
6706 * Wrote a relatively complete Windows installer. It puts
6716 * Wrote a relatively complete Windows installer. It puts
6707 everything in place, creates Start Menu entries and fixes the
6717 everything in place, creates Start Menu entries and fixes the
6708 color issues. Nothing fancy, but it works.
6718 color issues. Nothing fancy, but it works.
6709
6719
6710 2002-02-10 Fernando Perez <fperez@colorado.edu>
6720 2002-02-10 Fernando Perez <fperez@colorado.edu>
6711
6721
6712 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6722 * IPython/iplib.py (InteractiveShell.safe_execfile): added an
6713 os.path.expanduser() call so that we can type @run ~/myfile.py and
6723 os.path.expanduser() call so that we can type @run ~/myfile.py and
6714 have thigs work as expected.
6724 have thigs work as expected.
6715
6725
6716 * IPython/genutils.py (page): fixed exception handling so things
6726 * IPython/genutils.py (page): fixed exception handling so things
6717 work both in Unix and Windows correctly. Quitting a pager triggers
6727 work both in Unix and Windows correctly. Quitting a pager triggers
6718 an IOError/broken pipe in Unix, and in windows not finding a pager
6728 an IOError/broken pipe in Unix, and in windows not finding a pager
6719 is also an IOError, so I had to actually look at the return value
6729 is also an IOError, so I had to actually look at the return value
6720 of the exception, not just the exception itself. Should be ok now.
6730 of the exception, not just the exception itself. Should be ok now.
6721
6731
6722 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6732 * IPython/ultraTB.py (ColorSchemeTable.set_active_scheme):
6723 modified to allow case-insensitive color scheme changes.
6733 modified to allow case-insensitive color scheme changes.
6724
6734
6725 2002-02-09 Fernando Perez <fperez@colorado.edu>
6735 2002-02-09 Fernando Perez <fperez@colorado.edu>
6726
6736
6727 * IPython/genutils.py (native_line_ends): new function to leave
6737 * IPython/genutils.py (native_line_ends): new function to leave
6728 user config files with os-native line-endings.
6738 user config files with os-native line-endings.
6729
6739
6730 * README and manual updates.
6740 * README and manual updates.
6731
6741
6732 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6742 * IPython/genutils.py: fixed unicode bug: use types.StringTypes
6733 instead of StringType to catch Unicode strings.
6743 instead of StringType to catch Unicode strings.
6734
6744
6735 * IPython/genutils.py (filefind): fixed bug for paths with
6745 * IPython/genutils.py (filefind): fixed bug for paths with
6736 embedded spaces (very common in Windows).
6746 embedded spaces (very common in Windows).
6737
6747
6738 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6748 * IPython/ipmaker.py (make_IPython): added a '.ini' to the rc
6739 files under Windows, so that they get automatically associated
6749 files under Windows, so that they get automatically associated
6740 with a text editor. Windows makes it a pain to handle
6750 with a text editor. Windows makes it a pain to handle
6741 extension-less files.
6751 extension-less files.
6742
6752
6743 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6753 * IPython/iplib.py (InteractiveShell.init_readline): Made the
6744 warning about readline only occur for Posix. In Windows there's no
6754 warning about readline only occur for Posix. In Windows there's no
6745 way to get readline, so why bother with the warning.
6755 way to get readline, so why bother with the warning.
6746
6756
6747 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6757 * IPython/Struct.py (Struct.__str__): fixed to use self.__dict__
6748 for __str__ instead of dir(self), since dir() changed in 2.2.
6758 for __str__ instead of dir(self), since dir() changed in 2.2.
6749
6759
6750 * Ported to Windows! Tested on XP, I suspect it should work fine
6760 * Ported to Windows! Tested on XP, I suspect it should work fine
6751 on NT/2000, but I don't think it will work on 98 et al. That
6761 on NT/2000, but I don't think it will work on 98 et al. That
6752 series of Windows is such a piece of junk anyway that I won't try
6762 series of Windows is such a piece of junk anyway that I won't try
6753 porting it there. The XP port was straightforward, showed a few
6763 porting it there. The XP port was straightforward, showed a few
6754 bugs here and there (fixed all), in particular some string
6764 bugs here and there (fixed all), in particular some string
6755 handling stuff which required considering Unicode strings (which
6765 handling stuff which required considering Unicode strings (which
6756 Windows uses). This is good, but hasn't been too tested :) No
6766 Windows uses). This is good, but hasn't been too tested :) No
6757 fancy installer yet, I'll put a note in the manual so people at
6767 fancy installer yet, I'll put a note in the manual so people at
6758 least make manually a shortcut.
6768 least make manually a shortcut.
6759
6769
6760 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6770 * IPython/iplib.py (Magic.magic_colors): Unified the color options
6761 into a single one, "colors". This now controls both prompt and
6771 into a single one, "colors". This now controls both prompt and
6762 exception color schemes, and can be changed both at startup
6772 exception color schemes, and can be changed both at startup
6763 (either via command-line switches or via ipythonrc files) and at
6773 (either via command-line switches or via ipythonrc files) and at
6764 runtime, with @colors.
6774 runtime, with @colors.
6765 (Magic.magic_run): renamed @prun to @run and removed the old
6775 (Magic.magic_run): renamed @prun to @run and removed the old
6766 @run. The two were too similar to warrant keeping both.
6776 @run. The two were too similar to warrant keeping both.
6767
6777
6768 2002-02-03 Fernando Perez <fperez@colorado.edu>
6778 2002-02-03 Fernando Perez <fperez@colorado.edu>
6769
6779
6770 * IPython/iplib.py (install_first_time): Added comment on how to
6780 * IPython/iplib.py (install_first_time): Added comment on how to
6771 configure the color options for first-time users. Put a <return>
6781 configure the color options for first-time users. Put a <return>
6772 request at the end so that small-terminal users get a chance to
6782 request at the end so that small-terminal users get a chance to
6773 read the startup info.
6783 read the startup info.
6774
6784
6775 2002-01-23 Fernando Perez <fperez@colorado.edu>
6785 2002-01-23 Fernando Perez <fperez@colorado.edu>
6776
6786
6777 * IPython/iplib.py (CachedOutput.update): Changed output memory
6787 * IPython/iplib.py (CachedOutput.update): Changed output memory
6778 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6788 variable names from _o,_oo,_ooo,_o<n> to simply _,__,___,_<n>. For
6779 input history we still use _i. Did this b/c these variable are
6789 input history we still use _i. Did this b/c these variable are
6780 very commonly used in interactive work, so the less we need to
6790 very commonly used in interactive work, so the less we need to
6781 type the better off we are.
6791 type the better off we are.
6782 (Magic.magic_prun): updated @prun to better handle the namespaces
6792 (Magic.magic_prun): updated @prun to better handle the namespaces
6783 the file will run in, including a fix for __name__ not being set
6793 the file will run in, including a fix for __name__ not being set
6784 before.
6794 before.
6785
6795
6786 2002-01-20 Fernando Perez <fperez@colorado.edu>
6796 2002-01-20 Fernando Perez <fperez@colorado.edu>
6787
6797
6788 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6798 * IPython/ultraTB.py (VerboseTB.linereader): Fixed printing of
6789 extra garbage for Python 2.2. Need to look more carefully into
6799 extra garbage for Python 2.2. Need to look more carefully into
6790 this later.
6800 this later.
6791
6801
6792 2002-01-19 Fernando Perez <fperez@colorado.edu>
6802 2002-01-19 Fernando Perez <fperez@colorado.edu>
6793
6803
6794 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6804 * IPython/iplib.py (InteractiveShell.showtraceback): fixed to
6795 display SyntaxError exceptions properly formatted when they occur
6805 display SyntaxError exceptions properly formatted when they occur
6796 (they can be triggered by imported code).
6806 (they can be triggered by imported code).
6797
6807
6798 2002-01-18 Fernando Perez <fperez@colorado.edu>
6808 2002-01-18 Fernando Perez <fperez@colorado.edu>
6799
6809
6800 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6810 * IPython/iplib.py (InteractiveShell.safe_execfile): now
6801 SyntaxError exceptions are reported nicely formatted, instead of
6811 SyntaxError exceptions are reported nicely formatted, instead of
6802 spitting out only offset information as before.
6812 spitting out only offset information as before.
6803 (Magic.magic_prun): Added the @prun function for executing
6813 (Magic.magic_prun): Added the @prun function for executing
6804 programs with command line args inside IPython.
6814 programs with command line args inside IPython.
6805
6815
6806 2002-01-16 Fernando Perez <fperez@colorado.edu>
6816 2002-01-16 Fernando Perez <fperez@colorado.edu>
6807
6817
6808 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6818 * IPython/iplib.py (Magic.magic_hist): Changed @hist and @dhist
6809 to *not* include the last item given in a range. This brings their
6819 to *not* include the last item given in a range. This brings their
6810 behavior in line with Python's slicing:
6820 behavior in line with Python's slicing:
6811 a[n1:n2] -> a[n1]...a[n2-1]
6821 a[n1:n2] -> a[n1]...a[n2-1]
6812 It may be a bit less convenient, but I prefer to stick to Python's
6822 It may be a bit less convenient, but I prefer to stick to Python's
6813 conventions *everywhere*, so users never have to wonder.
6823 conventions *everywhere*, so users never have to wonder.
6814 (Magic.magic_macro): Added @macro function to ease the creation of
6824 (Magic.magic_macro): Added @macro function to ease the creation of
6815 macros.
6825 macros.
6816
6826
6817 2002-01-05 Fernando Perez <fperez@colorado.edu>
6827 2002-01-05 Fernando Perez <fperez@colorado.edu>
6818
6828
6819 * Released 0.2.4.
6829 * Released 0.2.4.
6820
6830
6821 * IPython/iplib.py (Magic.magic_pdef):
6831 * IPython/iplib.py (Magic.magic_pdef):
6822 (InteractiveShell.safe_execfile): report magic lines and error
6832 (InteractiveShell.safe_execfile): report magic lines and error
6823 lines without line numbers so one can easily copy/paste them for
6833 lines without line numbers so one can easily copy/paste them for
6824 re-execution.
6834 re-execution.
6825
6835
6826 * Updated manual with recent changes.
6836 * Updated manual with recent changes.
6827
6837
6828 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6838 * IPython/iplib.py (Magic.magic_oinfo): added constructor
6829 docstring printing when class? is called. Very handy for knowing
6839 docstring printing when class? is called. Very handy for knowing
6830 how to create class instances (as long as __init__ is well
6840 how to create class instances (as long as __init__ is well
6831 documented, of course :)
6841 documented, of course :)
6832 (Magic.magic_doc): print both class and constructor docstrings.
6842 (Magic.magic_doc): print both class and constructor docstrings.
6833 (Magic.magic_pdef): give constructor info if passed a class and
6843 (Magic.magic_pdef): give constructor info if passed a class and
6834 __call__ info for callable object instances.
6844 __call__ info for callable object instances.
6835
6845
6836 2002-01-04 Fernando Perez <fperez@colorado.edu>
6846 2002-01-04 Fernando Perez <fperez@colorado.edu>
6837
6847
6838 * Made deep_reload() off by default. It doesn't always work
6848 * Made deep_reload() off by default. It doesn't always work
6839 exactly as intended, so it's probably safer to have it off. It's
6849 exactly as intended, so it's probably safer to have it off. It's
6840 still available as dreload() anyway, so nothing is lost.
6850 still available as dreload() anyway, so nothing is lost.
6841
6851
6842 2002-01-02 Fernando Perez <fperez@colorado.edu>
6852 2002-01-02 Fernando Perez <fperez@colorado.edu>
6843
6853
6844 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6854 * Released 0.2.3 (contacted R.Singh at CU about biopython course,
6845 so I wanted an updated release).
6855 so I wanted an updated release).
6846
6856
6847 2001-12-27 Fernando Perez <fperez@colorado.edu>
6857 2001-12-27 Fernando Perez <fperez@colorado.edu>
6848
6858
6849 * IPython/iplib.py (InteractiveShell.interact): Added the original
6859 * IPython/iplib.py (InteractiveShell.interact): Added the original
6850 code from 'code.py' for this module in order to change the
6860 code from 'code.py' for this module in order to change the
6851 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6861 handling of a KeyboardInterrupt. This was necessary b/c otherwise
6852 the history cache would break when the user hit Ctrl-C, and
6862 the history cache would break when the user hit Ctrl-C, and
6853 interact() offers no way to add any hooks to it.
6863 interact() offers no way to add any hooks to it.
6854
6864
6855 2001-12-23 Fernando Perez <fperez@colorado.edu>
6865 2001-12-23 Fernando Perez <fperez@colorado.edu>
6856
6866
6857 * setup.py: added check for 'MANIFEST' before trying to remove
6867 * setup.py: added check for 'MANIFEST' before trying to remove
6858 it. Thanks to Sean Reifschneider.
6868 it. Thanks to Sean Reifschneider.
6859
6869
6860 2001-12-22 Fernando Perez <fperez@colorado.edu>
6870 2001-12-22 Fernando Perez <fperez@colorado.edu>
6861
6871
6862 * Released 0.2.2.
6872 * Released 0.2.2.
6863
6873
6864 * Finished (reasonably) writing the manual. Later will add the
6874 * Finished (reasonably) writing the manual. Later will add the
6865 python-standard navigation stylesheets, but for the time being
6875 python-standard navigation stylesheets, but for the time being
6866 it's fairly complete. Distribution will include html and pdf
6876 it's fairly complete. Distribution will include html and pdf
6867 versions.
6877 versions.
6868
6878
6869 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6879 * Bugfix: '.' wasn't being added to sys.path. Thanks to Prabhu
6870 (MayaVi author).
6880 (MayaVi author).
6871
6881
6872 2001-12-21 Fernando Perez <fperez@colorado.edu>
6882 2001-12-21 Fernando Perez <fperez@colorado.edu>
6873
6883
6874 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6884 * Released 0.2.1. Barring any nasty bugs, this is it as far as a
6875 good public release, I think (with the manual and the distutils
6885 good public release, I think (with the manual and the distutils
6876 installer). The manual can use some work, but that can go
6886 installer). The manual can use some work, but that can go
6877 slowly. Otherwise I think it's quite nice for end users. Next
6887 slowly. Otherwise I think it's quite nice for end users. Next
6878 summer, rewrite the guts of it...
6888 summer, rewrite the guts of it...
6879
6889
6880 * Changed format of ipythonrc files to use whitespace as the
6890 * Changed format of ipythonrc files to use whitespace as the
6881 separator instead of an explicit '='. Cleaner.
6891 separator instead of an explicit '='. Cleaner.
6882
6892
6883 2001-12-20 Fernando Perez <fperez@colorado.edu>
6893 2001-12-20 Fernando Perez <fperez@colorado.edu>
6884
6894
6885 * Started a manual in LyX. For now it's just a quick merge of the
6895 * Started a manual in LyX. For now it's just a quick merge of the
6886 various internal docstrings and READMEs. Later it may grow into a
6896 various internal docstrings and READMEs. Later it may grow into a
6887 nice, full-blown manual.
6897 nice, full-blown manual.
6888
6898
6889 * Set up a distutils based installer. Installation should now be
6899 * Set up a distutils based installer. Installation should now be
6890 trivially simple for end-users.
6900 trivially simple for end-users.
6891
6901
6892 2001-12-11 Fernando Perez <fperez@colorado.edu>
6902 2001-12-11 Fernando Perez <fperez@colorado.edu>
6893
6903
6894 * Released 0.2.0. First public release, announced it at
6904 * Released 0.2.0. First public release, announced it at
6895 comp.lang.python. From now on, just bugfixes...
6905 comp.lang.python. From now on, just bugfixes...
6896
6906
6897 * Went through all the files, set copyright/license notices and
6907 * Went through all the files, set copyright/license notices and
6898 cleaned up things. Ready for release.
6908 cleaned up things. Ready for release.
6899
6909
6900 2001-12-10 Fernando Perez <fperez@colorado.edu>
6910 2001-12-10 Fernando Perez <fperez@colorado.edu>
6901
6911
6902 * Changed the first-time installer not to use tarfiles. It's more
6912 * Changed the first-time installer not to use tarfiles. It's more
6903 robust now and less unix-dependent. Also makes it easier for
6913 robust now and less unix-dependent. Also makes it easier for
6904 people to later upgrade versions.
6914 people to later upgrade versions.
6905
6915
6906 * Changed @exit to @abort to reflect the fact that it's pretty
6916 * Changed @exit to @abort to reflect the fact that it's pretty
6907 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6917 brutal (a sys.exit()). The difference between @abort and Ctrl-D
6908 becomes significant only when IPyhton is embedded: in that case,
6918 becomes significant only when IPyhton is embedded: in that case,
6909 C-D closes IPython only, but @abort kills the enclosing program
6919 C-D closes IPython only, but @abort kills the enclosing program
6910 too (unless it had called IPython inside a try catching
6920 too (unless it had called IPython inside a try catching
6911 SystemExit).
6921 SystemExit).
6912
6922
6913 * Created Shell module which exposes the actuall IPython Shell
6923 * Created Shell module which exposes the actuall IPython Shell
6914 classes, currently the normal and the embeddable one. This at
6924 classes, currently the normal and the embeddable one. This at
6915 least offers a stable interface we won't need to change when
6925 least offers a stable interface we won't need to change when
6916 (later) the internals are rewritten. That rewrite will be confined
6926 (later) the internals are rewritten. That rewrite will be confined
6917 to iplib and ipmaker, but the Shell interface should remain as is.
6927 to iplib and ipmaker, but the Shell interface should remain as is.
6918
6928
6919 * Added embed module which offers an embeddable IPShell object,
6929 * Added embed module which offers an embeddable IPShell object,
6920 useful to fire up IPython *inside* a running program. Great for
6930 useful to fire up IPython *inside* a running program. Great for
6921 debugging or dynamical data analysis.
6931 debugging or dynamical data analysis.
6922
6932
6923 2001-12-08 Fernando Perez <fperez@colorado.edu>
6933 2001-12-08 Fernando Perez <fperez@colorado.edu>
6924
6934
6925 * Fixed small bug preventing seeing info from methods of defined
6935 * Fixed small bug preventing seeing info from methods of defined
6926 objects (incorrect namespace in _ofind()).
6936 objects (incorrect namespace in _ofind()).
6927
6937
6928 * Documentation cleanup. Moved the main usage docstrings to a
6938 * Documentation cleanup. Moved the main usage docstrings to a
6929 separate file, usage.py (cleaner to maintain, and hopefully in the
6939 separate file, usage.py (cleaner to maintain, and hopefully in the
6930 future some perlpod-like way of producing interactive, man and
6940 future some perlpod-like way of producing interactive, man and
6931 html docs out of it will be found).
6941 html docs out of it will be found).
6932
6942
6933 * Added @profile to see your profile at any time.
6943 * Added @profile to see your profile at any time.
6934
6944
6935 * Added @p as an alias for 'print'. It's especially convenient if
6945 * Added @p as an alias for 'print'. It's especially convenient if
6936 using automagic ('p x' prints x).
6946 using automagic ('p x' prints x).
6937
6947
6938 * Small cleanups and fixes after a pychecker run.
6948 * Small cleanups and fixes after a pychecker run.
6939
6949
6940 * Changed the @cd command to handle @cd - and @cd -<n> for
6950 * Changed the @cd command to handle @cd - and @cd -<n> for
6941 visiting any directory in _dh.
6951 visiting any directory in _dh.
6942
6952
6943 * Introduced _dh, a history of visited directories. @dhist prints
6953 * Introduced _dh, a history of visited directories. @dhist prints
6944 it out with numbers.
6954 it out with numbers.
6945
6955
6946 2001-12-07 Fernando Perez <fperez@colorado.edu>
6956 2001-12-07 Fernando Perez <fperez@colorado.edu>
6947
6957
6948 * Released 0.1.22
6958 * Released 0.1.22
6949
6959
6950 * Made initialization a bit more robust against invalid color
6960 * Made initialization a bit more robust against invalid color
6951 options in user input (exit, not traceback-crash).
6961 options in user input (exit, not traceback-crash).
6952
6962
6953 * Changed the bug crash reporter to write the report only in the
6963 * Changed the bug crash reporter to write the report only in the
6954 user's .ipython directory. That way IPython won't litter people's
6964 user's .ipython directory. That way IPython won't litter people's
6955 hard disks with crash files all over the place. Also print on
6965 hard disks with crash files all over the place. Also print on
6956 screen the necessary mail command.
6966 screen the necessary mail command.
6957
6967
6958 * With the new ultraTB, implemented LightBG color scheme for light
6968 * With the new ultraTB, implemented LightBG color scheme for light
6959 background terminals. A lot of people like white backgrounds, so I
6969 background terminals. A lot of people like white backgrounds, so I
6960 guess we should at least give them something readable.
6970 guess we should at least give them something readable.
6961
6971
6962 2001-12-06 Fernando Perez <fperez@colorado.edu>
6972 2001-12-06 Fernando Perez <fperez@colorado.edu>
6963
6973
6964 * Modified the structure of ultraTB. Now there's a proper class
6974 * Modified the structure of ultraTB. Now there's a proper class
6965 for tables of color schemes which allow adding schemes easily and
6975 for tables of color schemes which allow adding schemes easily and
6966 switching the active scheme without creating a new instance every
6976 switching the active scheme without creating a new instance every
6967 time (which was ridiculous). The syntax for creating new schemes
6977 time (which was ridiculous). The syntax for creating new schemes
6968 is also cleaner. I think ultraTB is finally done, with a clean
6978 is also cleaner. I think ultraTB is finally done, with a clean
6969 class structure. Names are also much cleaner (now there's proper
6979 class structure. Names are also much cleaner (now there's proper
6970 color tables, no need for every variable to also have 'color' in
6980 color tables, no need for every variable to also have 'color' in
6971 its name).
6981 its name).
6972
6982
6973 * Broke down genutils into separate files. Now genutils only
6983 * Broke down genutils into separate files. Now genutils only
6974 contains utility functions, and classes have been moved to their
6984 contains utility functions, and classes have been moved to their
6975 own files (they had enough independent functionality to warrant
6985 own files (they had enough independent functionality to warrant
6976 it): ConfigLoader, OutputTrap, Struct.
6986 it): ConfigLoader, OutputTrap, Struct.
6977
6987
6978 2001-12-05 Fernando Perez <fperez@colorado.edu>
6988 2001-12-05 Fernando Perez <fperez@colorado.edu>
6979
6989
6980 * IPython turns 21! Released version 0.1.21, as a candidate for
6990 * IPython turns 21! Released version 0.1.21, as a candidate for
6981 public consumption. If all goes well, release in a few days.
6991 public consumption. If all goes well, release in a few days.
6982
6992
6983 * Fixed path bug (files in Extensions/ directory wouldn't be found
6993 * Fixed path bug (files in Extensions/ directory wouldn't be found
6984 unless IPython/ was explicitly in sys.path).
6994 unless IPython/ was explicitly in sys.path).
6985
6995
6986 * Extended the FlexCompleter class as MagicCompleter to allow
6996 * Extended the FlexCompleter class as MagicCompleter to allow
6987 completion of @-starting lines.
6997 completion of @-starting lines.
6988
6998
6989 * Created __release__.py file as a central repository for release
6999 * Created __release__.py file as a central repository for release
6990 info that other files can read from.
7000 info that other files can read from.
6991
7001
6992 * Fixed small bug in logging: when logging was turned on in
7002 * Fixed small bug in logging: when logging was turned on in
6993 mid-session, old lines with special meanings (!@?) were being
7003 mid-session, old lines with special meanings (!@?) were being
6994 logged without the prepended comment, which is necessary since
7004 logged without the prepended comment, which is necessary since
6995 they are not truly valid python syntax. This should make session
7005 they are not truly valid python syntax. This should make session
6996 restores produce less errors.
7006 restores produce less errors.
6997
7007
6998 * The namespace cleanup forced me to make a FlexCompleter class
7008 * The namespace cleanup forced me to make a FlexCompleter class
6999 which is nothing but a ripoff of rlcompleter, but with selectable
7009 which is nothing but a ripoff of rlcompleter, but with selectable
7000 namespace (rlcompleter only works in __main__.__dict__). I'll try
7010 namespace (rlcompleter only works in __main__.__dict__). I'll try
7001 to submit a note to the authors to see if this change can be
7011 to submit a note to the authors to see if this change can be
7002 incorporated in future rlcompleter releases (Dec.6: done)
7012 incorporated in future rlcompleter releases (Dec.6: done)
7003
7013
7004 * More fixes to namespace handling. It was a mess! Now all
7014 * More fixes to namespace handling. It was a mess! Now all
7005 explicit references to __main__.__dict__ are gone (except when
7015 explicit references to __main__.__dict__ are gone (except when
7006 really needed) and everything is handled through the namespace
7016 really needed) and everything is handled through the namespace
7007 dicts in the IPython instance. We seem to be getting somewhere
7017 dicts in the IPython instance. We seem to be getting somewhere
7008 with this, finally...
7018 with this, finally...
7009
7019
7010 * Small documentation updates.
7020 * Small documentation updates.
7011
7021
7012 * Created the Extensions directory under IPython (with an
7022 * Created the Extensions directory under IPython (with an
7013 __init__.py). Put the PhysicalQ stuff there. This directory should
7023 __init__.py). Put the PhysicalQ stuff there. This directory should
7014 be used for all special-purpose extensions.
7024 be used for all special-purpose extensions.
7015
7025
7016 * File renaming:
7026 * File renaming:
7017 ipythonlib --> ipmaker
7027 ipythonlib --> ipmaker
7018 ipplib --> iplib
7028 ipplib --> iplib
7019 This makes a bit more sense in terms of what these files actually do.
7029 This makes a bit more sense in terms of what these files actually do.
7020
7030
7021 * Moved all the classes and functions in ipythonlib to ipplib, so
7031 * Moved all the classes and functions in ipythonlib to ipplib, so
7022 now ipythonlib only has make_IPython(). This will ease up its
7032 now ipythonlib only has make_IPython(). This will ease up its
7023 splitting in smaller functional chunks later.
7033 splitting in smaller functional chunks later.
7024
7034
7025 * Cleaned up (done, I think) output of @whos. Better column
7035 * Cleaned up (done, I think) output of @whos. Better column
7026 formatting, and now shows str(var) for as much as it can, which is
7036 formatting, and now shows str(var) for as much as it can, which is
7027 typically what one gets with a 'print var'.
7037 typically what one gets with a 'print var'.
7028
7038
7029 2001-12-04 Fernando Perez <fperez@colorado.edu>
7039 2001-12-04 Fernando Perez <fperez@colorado.edu>
7030
7040
7031 * Fixed namespace problems. Now builtin/IPyhton/user names get
7041 * Fixed namespace problems. Now builtin/IPyhton/user names get
7032 properly reported in their namespace. Internal namespace handling
7042 properly reported in their namespace. Internal namespace handling
7033 is finally getting decent (not perfect yet, but much better than
7043 is finally getting decent (not perfect yet, but much better than
7034 the ad-hoc mess we had).
7044 the ad-hoc mess we had).
7035
7045
7036 * Removed -exit option. If people just want to run a python
7046 * Removed -exit option. If people just want to run a python
7037 script, that's what the normal interpreter is for. Less
7047 script, that's what the normal interpreter is for. Less
7038 unnecessary options, less chances for bugs.
7048 unnecessary options, less chances for bugs.
7039
7049
7040 * Added a crash handler which generates a complete post-mortem if
7050 * Added a crash handler which generates a complete post-mortem if
7041 IPython crashes. This will help a lot in tracking bugs down the
7051 IPython crashes. This will help a lot in tracking bugs down the
7042 road.
7052 road.
7043
7053
7044 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7054 * Fixed nasty bug in auto-evaluation part of prefilter(). Names
7045 which were boud to functions being reassigned would bypass the
7055 which were boud to functions being reassigned would bypass the
7046 logger, breaking the sync of _il with the prompt counter. This
7056 logger, breaking the sync of _il with the prompt counter. This
7047 would then crash IPython later when a new line was logged.
7057 would then crash IPython later when a new line was logged.
7048
7058
7049 2001-12-02 Fernando Perez <fperez@colorado.edu>
7059 2001-12-02 Fernando Perez <fperez@colorado.edu>
7050
7060
7051 * Made IPython a package. This means people don't have to clutter
7061 * Made IPython a package. This means people don't have to clutter
7052 their sys.path with yet another directory. Changed the INSTALL
7062 their sys.path with yet another directory. Changed the INSTALL
7053 file accordingly.
7063 file accordingly.
7054
7064
7055 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7065 * Cleaned up the output of @who_ls, @who and @whos. @who_ls now
7056 sorts its output (so @who shows it sorted) and @whos formats the
7066 sorts its output (so @who shows it sorted) and @whos formats the
7057 table according to the width of the first column. Nicer, easier to
7067 table according to the width of the first column. Nicer, easier to
7058 read. Todo: write a generic table_format() which takes a list of
7068 read. Todo: write a generic table_format() which takes a list of
7059 lists and prints it nicely formatted, with optional row/column
7069 lists and prints it nicely formatted, with optional row/column
7060 separators and proper padding and justification.
7070 separators and proper padding and justification.
7061
7071
7062 * Released 0.1.20
7072 * Released 0.1.20
7063
7073
7064 * Fixed bug in @log which would reverse the inputcache list (a
7074 * Fixed bug in @log which would reverse the inputcache list (a
7065 copy operation was missing).
7075 copy operation was missing).
7066
7076
7067 * Code cleanup. @config was changed to use page(). Better, since
7077 * Code cleanup. @config was changed to use page(). Better, since
7068 its output is always quite long.
7078 its output is always quite long.
7069
7079
7070 * Itpl is back as a dependency. I was having too many problems
7080 * Itpl is back as a dependency. I was having too many problems
7071 getting the parametric aliases to work reliably, and it's just
7081 getting the parametric aliases to work reliably, and it's just
7072 easier to code weird string operations with it than playing %()s
7082 easier to code weird string operations with it than playing %()s
7073 games. It's only ~6k, so I don't think it's too big a deal.
7083 games. It's only ~6k, so I don't think it's too big a deal.
7074
7084
7075 * Found (and fixed) a very nasty bug with history. !lines weren't
7085 * Found (and fixed) a very nasty bug with history. !lines weren't
7076 getting cached, and the out of sync caches would crash
7086 getting cached, and the out of sync caches would crash
7077 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7087 IPython. Fixed it by reorganizing the prefilter/handlers/logger
7078 division of labor a bit better. Bug fixed, cleaner structure.
7088 division of labor a bit better. Bug fixed, cleaner structure.
7079
7089
7080 2001-12-01 Fernando Perez <fperez@colorado.edu>
7090 2001-12-01 Fernando Perez <fperez@colorado.edu>
7081
7091
7082 * Released 0.1.19
7092 * Released 0.1.19
7083
7093
7084 * Added option -n to @hist to prevent line number printing. Much
7094 * Added option -n to @hist to prevent line number printing. Much
7085 easier to copy/paste code this way.
7095 easier to copy/paste code this way.
7086
7096
7087 * Created global _il to hold the input list. Allows easy
7097 * Created global _il to hold the input list. Allows easy
7088 re-execution of blocks of code by slicing it (inspired by Janko's
7098 re-execution of blocks of code by slicing it (inspired by Janko's
7089 comment on 'macros').
7099 comment on 'macros').
7090
7100
7091 * Small fixes and doc updates.
7101 * Small fixes and doc updates.
7092
7102
7093 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7103 * Rewrote @history function (was @h). Renamed it to @hist, @h is
7094 much too fragile with automagic. Handles properly multi-line
7104 much too fragile with automagic. Handles properly multi-line
7095 statements and takes parameters.
7105 statements and takes parameters.
7096
7106
7097 2001-11-30 Fernando Perez <fperez@colorado.edu>
7107 2001-11-30 Fernando Perez <fperez@colorado.edu>
7098
7108
7099 * Version 0.1.18 released.
7109 * Version 0.1.18 released.
7100
7110
7101 * Fixed nasty namespace bug in initial module imports.
7111 * Fixed nasty namespace bug in initial module imports.
7102
7112
7103 * Added copyright/license notes to all code files (except
7113 * Added copyright/license notes to all code files (except
7104 DPyGetOpt). For the time being, LGPL. That could change.
7114 DPyGetOpt). For the time being, LGPL. That could change.
7105
7115
7106 * Rewrote a much nicer README, updated INSTALL, cleaned up
7116 * Rewrote a much nicer README, updated INSTALL, cleaned up
7107 ipythonrc-* samples.
7117 ipythonrc-* samples.
7108
7118
7109 * Overall code/documentation cleanup. Basically ready for
7119 * Overall code/documentation cleanup. Basically ready for
7110 release. Only remaining thing: licence decision (LGPL?).
7120 release. Only remaining thing: licence decision (LGPL?).
7111
7121
7112 * Converted load_config to a class, ConfigLoader. Now recursion
7122 * Converted load_config to a class, ConfigLoader. Now recursion
7113 control is better organized. Doesn't include the same file twice.
7123 control is better organized. Doesn't include the same file twice.
7114
7124
7115 2001-11-29 Fernando Perez <fperez@colorado.edu>
7125 2001-11-29 Fernando Perez <fperez@colorado.edu>
7116
7126
7117 * Got input history working. Changed output history variables from
7127 * Got input history working. Changed output history variables from
7118 _p to _o so that _i is for input and _o for output. Just cleaner
7128 _p to _o so that _i is for input and _o for output. Just cleaner
7119 convention.
7129 convention.
7120
7130
7121 * Implemented parametric aliases. This pretty much allows the
7131 * Implemented parametric aliases. This pretty much allows the
7122 alias system to offer full-blown shell convenience, I think.
7132 alias system to offer full-blown shell convenience, I think.
7123
7133
7124 * Version 0.1.17 released, 0.1.18 opened.
7134 * Version 0.1.17 released, 0.1.18 opened.
7125
7135
7126 * dot_ipython/ipythonrc (alias): added documentation.
7136 * dot_ipython/ipythonrc (alias): added documentation.
7127 (xcolor): Fixed small bug (xcolors -> xcolor)
7137 (xcolor): Fixed small bug (xcolors -> xcolor)
7128
7138
7129 * Changed the alias system. Now alias is a magic command to define
7139 * Changed the alias system. Now alias is a magic command to define
7130 aliases just like the shell. Rationale: the builtin magics should
7140 aliases just like the shell. Rationale: the builtin magics should
7131 be there for things deeply connected to IPython's
7141 be there for things deeply connected to IPython's
7132 architecture. And this is a much lighter system for what I think
7142 architecture. And this is a much lighter system for what I think
7133 is the really important feature: allowing users to define quickly
7143 is the really important feature: allowing users to define quickly
7134 magics that will do shell things for them, so they can customize
7144 magics that will do shell things for them, so they can customize
7135 IPython easily to match their work habits. If someone is really
7145 IPython easily to match their work habits. If someone is really
7136 desperate to have another name for a builtin alias, they can
7146 desperate to have another name for a builtin alias, they can
7137 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7147 always use __IP.magic_newname = __IP.magic_oldname. Hackish but
7138 works.
7148 works.
7139
7149
7140 2001-11-28 Fernando Perez <fperez@colorado.edu>
7150 2001-11-28 Fernando Perez <fperez@colorado.edu>
7141
7151
7142 * Changed @file so that it opens the source file at the proper
7152 * Changed @file so that it opens the source file at the proper
7143 line. Since it uses less, if your EDITOR environment is
7153 line. Since it uses less, if your EDITOR environment is
7144 configured, typing v will immediately open your editor of choice
7154 configured, typing v will immediately open your editor of choice
7145 right at the line where the object is defined. Not as quick as
7155 right at the line where the object is defined. Not as quick as
7146 having a direct @edit command, but for all intents and purposes it
7156 having a direct @edit command, but for all intents and purposes it
7147 works. And I don't have to worry about writing @edit to deal with
7157 works. And I don't have to worry about writing @edit to deal with
7148 all the editors, less does that.
7158 all the editors, less does that.
7149
7159
7150 * Version 0.1.16 released, 0.1.17 opened.
7160 * Version 0.1.16 released, 0.1.17 opened.
7151
7161
7152 * Fixed some nasty bugs in the page/page_dumb combo that could
7162 * Fixed some nasty bugs in the page/page_dumb combo that could
7153 crash IPython.
7163 crash IPython.
7154
7164
7155 2001-11-27 Fernando Perez <fperez@colorado.edu>
7165 2001-11-27 Fernando Perez <fperez@colorado.edu>
7156
7166
7157 * Version 0.1.15 released, 0.1.16 opened.
7167 * Version 0.1.15 released, 0.1.16 opened.
7158
7168
7159 * Finally got ? and ?? to work for undefined things: now it's
7169 * Finally got ? and ?? to work for undefined things: now it's
7160 possible to type {}.get? and get information about the get method
7170 possible to type {}.get? and get information about the get method
7161 of dicts, or os.path? even if only os is defined (so technically
7171 of dicts, or os.path? even if only os is defined (so technically
7162 os.path isn't). Works at any level. For example, after import os,
7172 os.path isn't). Works at any level. For example, after import os,
7163 os?, os.path?, os.path.abspath? all work. This is great, took some
7173 os?, os.path?, os.path.abspath? all work. This is great, took some
7164 work in _ofind.
7174 work in _ofind.
7165
7175
7166 * Fixed more bugs with logging. The sanest way to do it was to add
7176 * Fixed more bugs with logging. The sanest way to do it was to add
7167 to @log a 'mode' parameter. Killed two in one shot (this mode
7177 to @log a 'mode' parameter. Killed two in one shot (this mode
7168 option was a request of Janko's). I think it's finally clean
7178 option was a request of Janko's). I think it's finally clean
7169 (famous last words).
7179 (famous last words).
7170
7180
7171 * Added a page_dumb() pager which does a decent job of paging on
7181 * Added a page_dumb() pager which does a decent job of paging on
7172 screen, if better things (like less) aren't available. One less
7182 screen, if better things (like less) aren't available. One less
7173 unix dependency (someday maybe somebody will port this to
7183 unix dependency (someday maybe somebody will port this to
7174 windows).
7184 windows).
7175
7185
7176 * Fixed problem in magic_log: would lock of logging out if log
7186 * Fixed problem in magic_log: would lock of logging out if log
7177 creation failed (because it would still think it had succeeded).
7187 creation failed (because it would still think it had succeeded).
7178
7188
7179 * Improved the page() function using curses to auto-detect screen
7189 * Improved the page() function using curses to auto-detect screen
7180 size. Now it can make a much better decision on whether to print
7190 size. Now it can make a much better decision on whether to print
7181 or page a string. Option screen_length was modified: a value 0
7191 or page a string. Option screen_length was modified: a value 0
7182 means auto-detect, and that's the default now.
7192 means auto-detect, and that's the default now.
7183
7193
7184 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7194 * Version 0.1.14 released, 0.1.15 opened. I think this is ready to
7185 go out. I'll test it for a few days, then talk to Janko about
7195 go out. I'll test it for a few days, then talk to Janko about
7186 licences and announce it.
7196 licences and announce it.
7187
7197
7188 * Fixed the length of the auto-generated ---> prompt which appears
7198 * Fixed the length of the auto-generated ---> prompt which appears
7189 for auto-parens and auto-quotes. Getting this right isn't trivial,
7199 for auto-parens and auto-quotes. Getting this right isn't trivial,
7190 with all the color escapes, different prompt types and optional
7200 with all the color escapes, different prompt types and optional
7191 separators. But it seems to be working in all the combinations.
7201 separators. But it seems to be working in all the combinations.
7192
7202
7193 2001-11-26 Fernando Perez <fperez@colorado.edu>
7203 2001-11-26 Fernando Perez <fperez@colorado.edu>
7194
7204
7195 * Wrote a regexp filter to get option types from the option names
7205 * Wrote a regexp filter to get option types from the option names
7196 string. This eliminates the need to manually keep two duplicate
7206 string. This eliminates the need to manually keep two duplicate
7197 lists.
7207 lists.
7198
7208
7199 * Removed the unneeded check_option_names. Now options are handled
7209 * Removed the unneeded check_option_names. Now options are handled
7200 in a much saner manner and it's easy to visually check that things
7210 in a much saner manner and it's easy to visually check that things
7201 are ok.
7211 are ok.
7202
7212
7203 * Updated version numbers on all files I modified to carry a
7213 * Updated version numbers on all files I modified to carry a
7204 notice so Janko and Nathan have clear version markers.
7214 notice so Janko and Nathan have clear version markers.
7205
7215
7206 * Updated docstring for ultraTB with my changes. I should send
7216 * Updated docstring for ultraTB with my changes. I should send
7207 this to Nathan.
7217 this to Nathan.
7208
7218
7209 * Lots of small fixes. Ran everything through pychecker again.
7219 * Lots of small fixes. Ran everything through pychecker again.
7210
7220
7211 * Made loading of deep_reload an cmd line option. If it's not too
7221 * Made loading of deep_reload an cmd line option. If it's not too
7212 kosher, now people can just disable it. With -nodeep_reload it's
7222 kosher, now people can just disable it. With -nodeep_reload it's
7213 still available as dreload(), it just won't overwrite reload().
7223 still available as dreload(), it just won't overwrite reload().
7214
7224
7215 * Moved many options to the no| form (-opt and -noopt
7225 * Moved many options to the no| form (-opt and -noopt
7216 accepted). Cleaner.
7226 accepted). Cleaner.
7217
7227
7218 * Changed magic_log so that if called with no parameters, it uses
7228 * Changed magic_log so that if called with no parameters, it uses
7219 'rotate' mode. That way auto-generated logs aren't automatically
7229 'rotate' mode. That way auto-generated logs aren't automatically
7220 over-written. For normal logs, now a backup is made if it exists
7230 over-written. For normal logs, now a backup is made if it exists
7221 (only 1 level of backups). A new 'backup' mode was added to the
7231 (only 1 level of backups). A new 'backup' mode was added to the
7222 Logger class to support this. This was a request by Janko.
7232 Logger class to support this. This was a request by Janko.
7223
7233
7224 * Added @logoff/@logon to stop/restart an active log.
7234 * Added @logoff/@logon to stop/restart an active log.
7225
7235
7226 * Fixed a lot of bugs in log saving/replay. It was pretty
7236 * Fixed a lot of bugs in log saving/replay. It was pretty
7227 broken. Now special lines (!@,/) appear properly in the command
7237 broken. Now special lines (!@,/) appear properly in the command
7228 history after a log replay.
7238 history after a log replay.
7229
7239
7230 * Tried and failed to implement full session saving via pickle. My
7240 * Tried and failed to implement full session saving via pickle. My
7231 idea was to pickle __main__.__dict__, but modules can't be
7241 idea was to pickle __main__.__dict__, but modules can't be
7232 pickled. This would be a better alternative to replaying logs, but
7242 pickled. This would be a better alternative to replaying logs, but
7233 seems quite tricky to get to work. Changed -session to be called
7243 seems quite tricky to get to work. Changed -session to be called
7234 -logplay, which more accurately reflects what it does. And if we
7244 -logplay, which more accurately reflects what it does. And if we
7235 ever get real session saving working, -session is now available.
7245 ever get real session saving working, -session is now available.
7236
7246
7237 * Implemented color schemes for prompts also. As for tracebacks,
7247 * Implemented color schemes for prompts also. As for tracebacks,
7238 currently only NoColor and Linux are supported. But now the
7248 currently only NoColor and Linux are supported. But now the
7239 infrastructure is in place, based on a generic ColorScheme
7249 infrastructure is in place, based on a generic ColorScheme
7240 class. So writing and activating new schemes both for the prompts
7250 class. So writing and activating new schemes both for the prompts
7241 and the tracebacks should be straightforward.
7251 and the tracebacks should be straightforward.
7242
7252
7243 * Version 0.1.13 released, 0.1.14 opened.
7253 * Version 0.1.13 released, 0.1.14 opened.
7244
7254
7245 * Changed handling of options for output cache. Now counter is
7255 * Changed handling of options for output cache. Now counter is
7246 hardwired starting at 1 and one specifies the maximum number of
7256 hardwired starting at 1 and one specifies the maximum number of
7247 entries *in the outcache* (not the max prompt counter). This is
7257 entries *in the outcache* (not the max prompt counter). This is
7248 much better, since many statements won't increase the cache
7258 much better, since many statements won't increase the cache
7249 count. It also eliminated some confusing options, now there's only
7259 count. It also eliminated some confusing options, now there's only
7250 one: cache_size.
7260 one: cache_size.
7251
7261
7252 * Added 'alias' magic function and magic_alias option in the
7262 * Added 'alias' magic function and magic_alias option in the
7253 ipythonrc file. Now the user can easily define whatever names he
7263 ipythonrc file. Now the user can easily define whatever names he
7254 wants for the magic functions without having to play weird
7264 wants for the magic functions without having to play weird
7255 namespace games. This gives IPython a real shell-like feel.
7265 namespace games. This gives IPython a real shell-like feel.
7256
7266
7257 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7267 * Fixed doc/?/?? for magics. Now all work, in all forms (explicit
7258 @ or not).
7268 @ or not).
7259
7269
7260 This was one of the last remaining 'visible' bugs (that I know
7270 This was one of the last remaining 'visible' bugs (that I know
7261 of). I think if I can clean up the session loading so it works
7271 of). I think if I can clean up the session loading so it works
7262 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7272 100% I'll release a 0.2.0 version on c.p.l (talk to Janko first
7263 about licensing).
7273 about licensing).
7264
7274
7265 2001-11-25 Fernando Perez <fperez@colorado.edu>
7275 2001-11-25 Fernando Perez <fperez@colorado.edu>
7266
7276
7267 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7277 * Rewrote somewhat oinfo (?/??). Nicer, now uses page() and
7268 there's a cleaner distinction between what ? and ?? show.
7278 there's a cleaner distinction between what ? and ?? show.
7269
7279
7270 * Added screen_length option. Now the user can define his own
7280 * Added screen_length option. Now the user can define his own
7271 screen size for page() operations.
7281 screen size for page() operations.
7272
7282
7273 * Implemented magic shell-like functions with automatic code
7283 * Implemented magic shell-like functions with automatic code
7274 generation. Now adding another function is just a matter of adding
7284 generation. Now adding another function is just a matter of adding
7275 an entry to a dict, and the function is dynamically generated at
7285 an entry to a dict, and the function is dynamically generated at
7276 run-time. Python has some really cool features!
7286 run-time. Python has some really cool features!
7277
7287
7278 * Renamed many options to cleanup conventions a little. Now all
7288 * Renamed many options to cleanup conventions a little. Now all
7279 are lowercase, and only underscores where needed. Also in the code
7289 are lowercase, and only underscores where needed. Also in the code
7280 option name tables are clearer.
7290 option name tables are clearer.
7281
7291
7282 * Changed prompts a little. Now input is 'In [n]:' instead of
7292 * Changed prompts a little. Now input is 'In [n]:' instead of
7283 'In[n]:='. This allows it the numbers to be aligned with the
7293 'In[n]:='. This allows it the numbers to be aligned with the
7284 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7294 Out[n] numbers, and removes usage of ':=' which doesn't exist in
7285 Python (it was a Mathematica thing). The '...' continuation prompt
7295 Python (it was a Mathematica thing). The '...' continuation prompt
7286 was also changed a little to align better.
7296 was also changed a little to align better.
7287
7297
7288 * Fixed bug when flushing output cache. Not all _p<n> variables
7298 * Fixed bug when flushing output cache. Not all _p<n> variables
7289 exist, so their deletion needs to be wrapped in a try:
7299 exist, so their deletion needs to be wrapped in a try:
7290
7300
7291 * Figured out how to properly use inspect.formatargspec() (it
7301 * Figured out how to properly use inspect.formatargspec() (it
7292 requires the args preceded by *). So I removed all the code from
7302 requires the args preceded by *). So I removed all the code from
7293 _get_pdef in Magic, which was just replicating that.
7303 _get_pdef in Magic, which was just replicating that.
7294
7304
7295 * Added test to prefilter to allow redefining magic function names
7305 * Added test to prefilter to allow redefining magic function names
7296 as variables. This is ok, since the @ form is always available,
7306 as variables. This is ok, since the @ form is always available,
7297 but whe should allow the user to define a variable called 'ls' if
7307 but whe should allow the user to define a variable called 'ls' if
7298 he needs it.
7308 he needs it.
7299
7309
7300 * Moved the ToDo information from README into a separate ToDo.
7310 * Moved the ToDo information from README into a separate ToDo.
7301
7311
7302 * General code cleanup and small bugfixes. I think it's close to a
7312 * General code cleanup and small bugfixes. I think it's close to a
7303 state where it can be released, obviously with a big 'beta'
7313 state where it can be released, obviously with a big 'beta'
7304 warning on it.
7314 warning on it.
7305
7315
7306 * Got the magic function split to work. Now all magics are defined
7316 * Got the magic function split to work. Now all magics are defined
7307 in a separate class. It just organizes things a bit, and now
7317 in a separate class. It just organizes things a bit, and now
7308 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7318 Xemacs behaves nicer (it was choking on InteractiveShell b/c it
7309 was too long).
7319 was too long).
7310
7320
7311 * Changed @clear to @reset to avoid potential confusions with
7321 * Changed @clear to @reset to avoid potential confusions with
7312 the shell command clear. Also renamed @cl to @clear, which does
7322 the shell command clear. Also renamed @cl to @clear, which does
7313 exactly what people expect it to from their shell experience.
7323 exactly what people expect it to from their shell experience.
7314
7324
7315 Added a check to the @reset command (since it's so
7325 Added a check to the @reset command (since it's so
7316 destructive, it's probably a good idea to ask for confirmation).
7326 destructive, it's probably a good idea to ask for confirmation).
7317 But now reset only works for full namespace resetting. Since the
7327 But now reset only works for full namespace resetting. Since the
7318 del keyword is already there for deleting a few specific
7328 del keyword is already there for deleting a few specific
7319 variables, I don't see the point of having a redundant magic
7329 variables, I don't see the point of having a redundant magic
7320 function for the same task.
7330 function for the same task.
7321
7331
7322 2001-11-24 Fernando Perez <fperez@colorado.edu>
7332 2001-11-24 Fernando Perez <fperez@colorado.edu>
7323
7333
7324 * Updated the builtin docs (esp. the ? ones).
7334 * Updated the builtin docs (esp. the ? ones).
7325
7335
7326 * Ran all the code through pychecker. Not terribly impressed with
7336 * Ran all the code through pychecker. Not terribly impressed with
7327 it: lots of spurious warnings and didn't really find anything of
7337 it: lots of spurious warnings and didn't really find anything of
7328 substance (just a few modules being imported and not used).
7338 substance (just a few modules being imported and not used).
7329
7339
7330 * Implemented the new ultraTB functionality into IPython. New
7340 * Implemented the new ultraTB functionality into IPython. New
7331 option: xcolors. This chooses color scheme. xmode now only selects
7341 option: xcolors. This chooses color scheme. xmode now only selects
7332 between Plain and Verbose. Better orthogonality.
7342 between Plain and Verbose. Better orthogonality.
7333
7343
7334 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7344 * Large rewrite of ultraTB. Much cleaner now, with a separation of
7335 mode and color scheme for the exception handlers. Now it's
7345 mode and color scheme for the exception handlers. Now it's
7336 possible to have the verbose traceback with no coloring.
7346 possible to have the verbose traceback with no coloring.
7337
7347
7338 2001-11-23 Fernando Perez <fperez@colorado.edu>
7348 2001-11-23 Fernando Perez <fperez@colorado.edu>
7339
7349
7340 * Version 0.1.12 released, 0.1.13 opened.
7350 * Version 0.1.12 released, 0.1.13 opened.
7341
7351
7342 * Removed option to set auto-quote and auto-paren escapes by
7352 * Removed option to set auto-quote and auto-paren escapes by
7343 user. The chances of breaking valid syntax are just too high. If
7353 user. The chances of breaking valid syntax are just too high. If
7344 someone *really* wants, they can always dig into the code.
7354 someone *really* wants, they can always dig into the code.
7345
7355
7346 * Made prompt separators configurable.
7356 * Made prompt separators configurable.
7347
7357
7348 2001-11-22 Fernando Perez <fperez@colorado.edu>
7358 2001-11-22 Fernando Perez <fperez@colorado.edu>
7349
7359
7350 * Small bugfixes in many places.
7360 * Small bugfixes in many places.
7351
7361
7352 * Removed the MyCompleter class from ipplib. It seemed redundant
7362 * Removed the MyCompleter class from ipplib. It seemed redundant
7353 with the C-p,C-n history search functionality. Less code to
7363 with the C-p,C-n history search functionality. Less code to
7354 maintain.
7364 maintain.
7355
7365
7356 * Moved all the original ipython.py code into ipythonlib.py. Right
7366 * Moved all the original ipython.py code into ipythonlib.py. Right
7357 now it's just one big dump into a function called make_IPython, so
7367 now it's just one big dump into a function called make_IPython, so
7358 no real modularity has been gained. But at least it makes the
7368 no real modularity has been gained. But at least it makes the
7359 wrapper script tiny, and since ipythonlib is a module, it gets
7369 wrapper script tiny, and since ipythonlib is a module, it gets
7360 compiled and startup is much faster.
7370 compiled and startup is much faster.
7361
7371
7362 This is a reasobably 'deep' change, so we should test it for a
7372 This is a reasobably 'deep' change, so we should test it for a
7363 while without messing too much more with the code.
7373 while without messing too much more with the code.
7364
7374
7365 2001-11-21 Fernando Perez <fperez@colorado.edu>
7375 2001-11-21 Fernando Perez <fperez@colorado.edu>
7366
7376
7367 * Version 0.1.11 released, 0.1.12 opened for further work.
7377 * Version 0.1.11 released, 0.1.12 opened for further work.
7368
7378
7369 * Removed dependency on Itpl. It was only needed in one place. It
7379 * Removed dependency on Itpl. It was only needed in one place. It
7370 would be nice if this became part of python, though. It makes life
7380 would be nice if this became part of python, though. It makes life
7371 *a lot* easier in some cases.
7381 *a lot* easier in some cases.
7372
7382
7373 * Simplified the prefilter code a bit. Now all handlers are
7383 * Simplified the prefilter code a bit. Now all handlers are
7374 expected to explicitly return a value (at least a blank string).
7384 expected to explicitly return a value (at least a blank string).
7375
7385
7376 * Heavy edits in ipplib. Removed the help system altogether. Now
7386 * Heavy edits in ipplib. Removed the help system altogether. Now
7377 obj?/?? is used for inspecting objects, a magic @doc prints
7387 obj?/?? is used for inspecting objects, a magic @doc prints
7378 docstrings, and full-blown Python help is accessed via the 'help'
7388 docstrings, and full-blown Python help is accessed via the 'help'
7379 keyword. This cleans up a lot of code (less to maintain) and does
7389 keyword. This cleans up a lot of code (less to maintain) and does
7380 the job. Since 'help' is now a standard Python component, might as
7390 the job. Since 'help' is now a standard Python component, might as
7381 well use it and remove duplicate functionality.
7391 well use it and remove duplicate functionality.
7382
7392
7383 Also removed the option to use ipplib as a standalone program. By
7393 Also removed the option to use ipplib as a standalone program. By
7384 now it's too dependent on other parts of IPython to function alone.
7394 now it's too dependent on other parts of IPython to function alone.
7385
7395
7386 * Fixed bug in genutils.pager. It would crash if the pager was
7396 * Fixed bug in genutils.pager. It would crash if the pager was
7387 exited immediately after opening (broken pipe).
7397 exited immediately after opening (broken pipe).
7388
7398
7389 * Trimmed down the VerboseTB reporting a little. The header is
7399 * Trimmed down the VerboseTB reporting a little. The header is
7390 much shorter now and the repeated exception arguments at the end
7400 much shorter now and the repeated exception arguments at the end
7391 have been removed. For interactive use the old header seemed a bit
7401 have been removed. For interactive use the old header seemed a bit
7392 excessive.
7402 excessive.
7393
7403
7394 * Fixed small bug in output of @whos for variables with multi-word
7404 * Fixed small bug in output of @whos for variables with multi-word
7395 types (only first word was displayed).
7405 types (only first word was displayed).
7396
7406
7397 2001-11-17 Fernando Perez <fperez@colorado.edu>
7407 2001-11-17 Fernando Perez <fperez@colorado.edu>
7398
7408
7399 * Version 0.1.10 released, 0.1.11 opened for further work.
7409 * Version 0.1.10 released, 0.1.11 opened for further work.
7400
7410
7401 * Modified dirs and friends. dirs now *returns* the stack (not
7411 * Modified dirs and friends. dirs now *returns* the stack (not
7402 prints), so one can manipulate it as a variable. Convenient to
7412 prints), so one can manipulate it as a variable. Convenient to
7403 travel along many directories.
7413 travel along many directories.
7404
7414
7405 * Fixed bug in magic_pdef: would only work with functions with
7415 * Fixed bug in magic_pdef: would only work with functions with
7406 arguments with default values.
7416 arguments with default values.
7407
7417
7408 2001-11-14 Fernando Perez <fperez@colorado.edu>
7418 2001-11-14 Fernando Perez <fperez@colorado.edu>
7409
7419
7410 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7420 * Added the PhysicsInput stuff to dot_ipython so it ships as an
7411 example with IPython. Various other minor fixes and cleanups.
7421 example with IPython. Various other minor fixes and cleanups.
7412
7422
7413 * Version 0.1.9 released, 0.1.10 opened for further work.
7423 * Version 0.1.9 released, 0.1.10 opened for further work.
7414
7424
7415 * Added sys.path to the list of directories searched in the
7425 * Added sys.path to the list of directories searched in the
7416 execfile= option. It used to be the current directory and the
7426 execfile= option. It used to be the current directory and the
7417 user's IPYTHONDIR only.
7427 user's IPYTHONDIR only.
7418
7428
7419 2001-11-13 Fernando Perez <fperez@colorado.edu>
7429 2001-11-13 Fernando Perez <fperez@colorado.edu>
7420
7430
7421 * Reinstated the raw_input/prefilter separation that Janko had
7431 * Reinstated the raw_input/prefilter separation that Janko had
7422 initially. This gives a more convenient setup for extending the
7432 initially. This gives a more convenient setup for extending the
7423 pre-processor from the outside: raw_input always gets a string,
7433 pre-processor from the outside: raw_input always gets a string,
7424 and prefilter has to process it. We can then redefine prefilter
7434 and prefilter has to process it. We can then redefine prefilter
7425 from the outside and implement extensions for special
7435 from the outside and implement extensions for special
7426 purposes.
7436 purposes.
7427
7437
7428 Today I got one for inputting PhysicalQuantity objects
7438 Today I got one for inputting PhysicalQuantity objects
7429 (from Scientific) without needing any function calls at
7439 (from Scientific) without needing any function calls at
7430 all. Extremely convenient, and it's all done as a user-level
7440 all. Extremely convenient, and it's all done as a user-level
7431 extension (no IPython code was touched). Now instead of:
7441 extension (no IPython code was touched). Now instead of:
7432 a = PhysicalQuantity(4.2,'m/s**2')
7442 a = PhysicalQuantity(4.2,'m/s**2')
7433 one can simply say
7443 one can simply say
7434 a = 4.2 m/s**2
7444 a = 4.2 m/s**2
7435 or even
7445 or even
7436 a = 4.2 m/s^2
7446 a = 4.2 m/s^2
7437
7447
7438 I use this, but it's also a proof of concept: IPython really is
7448 I use this, but it's also a proof of concept: IPython really is
7439 fully user-extensible, even at the level of the parsing of the
7449 fully user-extensible, even at the level of the parsing of the
7440 command line. It's not trivial, but it's perfectly doable.
7450 command line. It's not trivial, but it's perfectly doable.
7441
7451
7442 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7452 * Added 'add_flip' method to inclusion conflict resolver. Fixes
7443 the problem of modules being loaded in the inverse order in which
7453 the problem of modules being loaded in the inverse order in which
7444 they were defined in
7454 they were defined in
7445
7455
7446 * Version 0.1.8 released, 0.1.9 opened for further work.
7456 * Version 0.1.8 released, 0.1.9 opened for further work.
7447
7457
7448 * Added magics pdef, source and file. They respectively show the
7458 * Added magics pdef, source and file. They respectively show the
7449 definition line ('prototype' in C), source code and full python
7459 definition line ('prototype' in C), source code and full python
7450 file for any callable object. The object inspector oinfo uses
7460 file for any callable object. The object inspector oinfo uses
7451 these to show the same information.
7461 these to show the same information.
7452
7462
7453 * Version 0.1.7 released, 0.1.8 opened for further work.
7463 * Version 0.1.7 released, 0.1.8 opened for further work.
7454
7464
7455 * Separated all the magic functions into a class called Magic. The
7465 * Separated all the magic functions into a class called Magic. The
7456 InteractiveShell class was becoming too big for Xemacs to handle
7466 InteractiveShell class was becoming too big for Xemacs to handle
7457 (de-indenting a line would lock it up for 10 seconds while it
7467 (de-indenting a line would lock it up for 10 seconds while it
7458 backtracked on the whole class!)
7468 backtracked on the whole class!)
7459
7469
7460 FIXME: didn't work. It can be done, but right now namespaces are
7470 FIXME: didn't work. It can be done, but right now namespaces are
7461 all messed up. Do it later (reverted it for now, so at least
7471 all messed up. Do it later (reverted it for now, so at least
7462 everything works as before).
7472 everything works as before).
7463
7473
7464 * Got the object introspection system (magic_oinfo) working! I
7474 * Got the object introspection system (magic_oinfo) working! I
7465 think this is pretty much ready for release to Janko, so he can
7475 think this is pretty much ready for release to Janko, so he can
7466 test it for a while and then announce it. Pretty much 100% of what
7476 test it for a while and then announce it. Pretty much 100% of what
7467 I wanted for the 'phase 1' release is ready. Happy, tired.
7477 I wanted for the 'phase 1' release is ready. Happy, tired.
7468
7478
7469 2001-11-12 Fernando Perez <fperez@colorado.edu>
7479 2001-11-12 Fernando Perez <fperez@colorado.edu>
7470
7480
7471 * Version 0.1.6 released, 0.1.7 opened for further work.
7481 * Version 0.1.6 released, 0.1.7 opened for further work.
7472
7482
7473 * Fixed bug in printing: it used to test for truth before
7483 * Fixed bug in printing: it used to test for truth before
7474 printing, so 0 wouldn't print. Now checks for None.
7484 printing, so 0 wouldn't print. Now checks for None.
7475
7485
7476 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7486 * Fixed bug where auto-execs increase the prompt counter by 2 (b/c
7477 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7487 they have to call len(str(sys.ps1)) ). But the fix is ugly, it
7478 reaches by hand into the outputcache. Think of a better way to do
7488 reaches by hand into the outputcache. Think of a better way to do
7479 this later.
7489 this later.
7480
7490
7481 * Various small fixes thanks to Nathan's comments.
7491 * Various small fixes thanks to Nathan's comments.
7482
7492
7483 * Changed magic_pprint to magic_Pprint. This way it doesn't
7493 * Changed magic_pprint to magic_Pprint. This way it doesn't
7484 collide with pprint() and the name is consistent with the command
7494 collide with pprint() and the name is consistent with the command
7485 line option.
7495 line option.
7486
7496
7487 * Changed prompt counter behavior to be fully like
7497 * Changed prompt counter behavior to be fully like
7488 Mathematica's. That is, even input that doesn't return a result
7498 Mathematica's. That is, even input that doesn't return a result
7489 raises the prompt counter. The old behavior was kind of confusing
7499 raises the prompt counter. The old behavior was kind of confusing
7490 (getting the same prompt number several times if the operation
7500 (getting the same prompt number several times if the operation
7491 didn't return a result).
7501 didn't return a result).
7492
7502
7493 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7503 * Fixed Nathan's last name in a couple of places (Gray, not Graham).
7494
7504
7495 * Fixed -Classic mode (wasn't working anymore).
7505 * Fixed -Classic mode (wasn't working anymore).
7496
7506
7497 * Added colored prompts using Nathan's new code. Colors are
7507 * Added colored prompts using Nathan's new code. Colors are
7498 currently hardwired, they can be user-configurable. For
7508 currently hardwired, they can be user-configurable. For
7499 developers, they can be chosen in file ipythonlib.py, at the
7509 developers, they can be chosen in file ipythonlib.py, at the
7500 beginning of the CachedOutput class def.
7510 beginning of the CachedOutput class def.
7501
7511
7502 2001-11-11 Fernando Perez <fperez@colorado.edu>
7512 2001-11-11 Fernando Perez <fperez@colorado.edu>
7503
7513
7504 * Version 0.1.5 released, 0.1.6 opened for further work.
7514 * Version 0.1.5 released, 0.1.6 opened for further work.
7505
7515
7506 * Changed magic_env to *return* the environment as a dict (not to
7516 * Changed magic_env to *return* the environment as a dict (not to
7507 print it). This way it prints, but it can also be processed.
7517 print it). This way it prints, but it can also be processed.
7508
7518
7509 * Added Verbose exception reporting to interactive
7519 * Added Verbose exception reporting to interactive
7510 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7520 exceptions. Very nice, now even 1/0 at the prompt gives a verbose
7511 traceback. Had to make some changes to the ultraTB file. This is
7521 traceback. Had to make some changes to the ultraTB file. This is
7512 probably the last 'big' thing in my mental todo list. This ties
7522 probably the last 'big' thing in my mental todo list. This ties
7513 in with the next entry:
7523 in with the next entry:
7514
7524
7515 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7525 * Changed -Xi and -Xf to a single -xmode option. Now all the user
7516 has to specify is Plain, Color or Verbose for all exception
7526 has to specify is Plain, Color or Verbose for all exception
7517 handling.
7527 handling.
7518
7528
7519 * Removed ShellServices option. All this can really be done via
7529 * Removed ShellServices option. All this can really be done via
7520 the magic system. It's easier to extend, cleaner and has automatic
7530 the magic system. It's easier to extend, cleaner and has automatic
7521 namespace protection and documentation.
7531 namespace protection and documentation.
7522
7532
7523 2001-11-09 Fernando Perez <fperez@colorado.edu>
7533 2001-11-09 Fernando Perez <fperez@colorado.edu>
7524
7534
7525 * Fixed bug in output cache flushing (missing parameter to
7535 * Fixed bug in output cache flushing (missing parameter to
7526 __init__). Other small bugs fixed (found using pychecker).
7536 __init__). Other small bugs fixed (found using pychecker).
7527
7537
7528 * Version 0.1.4 opened for bugfixing.
7538 * Version 0.1.4 opened for bugfixing.
7529
7539
7530 2001-11-07 Fernando Perez <fperez@colorado.edu>
7540 2001-11-07 Fernando Perez <fperez@colorado.edu>
7531
7541
7532 * Version 0.1.3 released, mainly because of the raw_input bug.
7542 * Version 0.1.3 released, mainly because of the raw_input bug.
7533
7543
7534 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7544 * Fixed NASTY bug in raw_input: input line wasn't properly parsed
7535 and when testing for whether things were callable, a call could
7545 and when testing for whether things were callable, a call could
7536 actually be made to certain functions. They would get called again
7546 actually be made to certain functions. They would get called again
7537 once 'really' executed, with a resulting double call. A disaster
7547 once 'really' executed, with a resulting double call. A disaster
7538 in many cases (list.reverse() would never work!).
7548 in many cases (list.reverse() would never work!).
7539
7549
7540 * Removed prefilter() function, moved its code to raw_input (which
7550 * Removed prefilter() function, moved its code to raw_input (which
7541 after all was just a near-empty caller for prefilter). This saves
7551 after all was just a near-empty caller for prefilter). This saves
7542 a function call on every prompt, and simplifies the class a tiny bit.
7552 a function call on every prompt, and simplifies the class a tiny bit.
7543
7553
7544 * Fix _ip to __ip name in magic example file.
7554 * Fix _ip to __ip name in magic example file.
7545
7555
7546 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7556 * Changed 'tar -x -f' to 'tar xvf' in auto-installer. This should
7547 work with non-gnu versions of tar.
7557 work with non-gnu versions of tar.
7548
7558
7549 2001-11-06 Fernando Perez <fperez@colorado.edu>
7559 2001-11-06 Fernando Perez <fperez@colorado.edu>
7550
7560
7551 * Version 0.1.2. Just to keep track of the recent changes.
7561 * Version 0.1.2. Just to keep track of the recent changes.
7552
7562
7553 * Fixed nasty bug in output prompt routine. It used to check 'if
7563 * Fixed nasty bug in output prompt routine. It used to check 'if
7554 arg != None...'. Problem is, this fails if arg implements a
7564 arg != None...'. Problem is, this fails if arg implements a
7555 special comparison (__cmp__) which disallows comparing to
7565 special comparison (__cmp__) which disallows comparing to
7556 None. Found it when trying to use the PhysicalQuantity module from
7566 None. Found it when trying to use the PhysicalQuantity module from
7557 ScientificPython.
7567 ScientificPython.
7558
7568
7559 2001-11-05 Fernando Perez <fperez@colorado.edu>
7569 2001-11-05 Fernando Perez <fperez@colorado.edu>
7560
7570
7561 * Also added dirs. Now the pushd/popd/dirs family functions
7571 * Also added dirs. Now the pushd/popd/dirs family functions
7562 basically like the shell, with the added convenience of going home
7572 basically like the shell, with the added convenience of going home
7563 when called with no args.
7573 when called with no args.
7564
7574
7565 * pushd/popd slightly modified to mimic shell behavior more
7575 * pushd/popd slightly modified to mimic shell behavior more
7566 closely.
7576 closely.
7567
7577
7568 * Added env,pushd,popd from ShellServices as magic functions. I
7578 * Added env,pushd,popd from ShellServices as magic functions. I
7569 think the cleanest will be to port all desired functions from
7579 think the cleanest will be to port all desired functions from
7570 ShellServices as magics and remove ShellServices altogether. This
7580 ShellServices as magics and remove ShellServices altogether. This
7571 will provide a single, clean way of adding functionality
7581 will provide a single, clean way of adding functionality
7572 (shell-type or otherwise) to IP.
7582 (shell-type or otherwise) to IP.
7573
7583
7574 2001-11-04 Fernando Perez <fperez@colorado.edu>
7584 2001-11-04 Fernando Perez <fperez@colorado.edu>
7575
7585
7576 * Added .ipython/ directory to sys.path. This way users can keep
7586 * Added .ipython/ directory to sys.path. This way users can keep
7577 customizations there and access them via import.
7587 customizations there and access them via import.
7578
7588
7579 2001-11-03 Fernando Perez <fperez@colorado.edu>
7589 2001-11-03 Fernando Perez <fperez@colorado.edu>
7580
7590
7581 * Opened version 0.1.1 for new changes.
7591 * Opened version 0.1.1 for new changes.
7582
7592
7583 * Changed version number to 0.1.0: first 'public' release, sent to
7593 * Changed version number to 0.1.0: first 'public' release, sent to
7584 Nathan and Janko.
7594 Nathan and Janko.
7585
7595
7586 * Lots of small fixes and tweaks.
7596 * Lots of small fixes and tweaks.
7587
7597
7588 * Minor changes to whos format. Now strings are shown, snipped if
7598 * Minor changes to whos format. Now strings are shown, snipped if
7589 too long.
7599 too long.
7590
7600
7591 * Changed ShellServices to work on __main__ so they show up in @who
7601 * Changed ShellServices to work on __main__ so they show up in @who
7592
7602
7593 * Help also works with ? at the end of a line:
7603 * Help also works with ? at the end of a line:
7594 ?sin and sin?
7604 ?sin and sin?
7595 both produce the same effect. This is nice, as often I use the
7605 both produce the same effect. This is nice, as often I use the
7596 tab-complete to find the name of a method, but I used to then have
7606 tab-complete to find the name of a method, but I used to then have
7597 to go to the beginning of the line to put a ? if I wanted more
7607 to go to the beginning of the line to put a ? if I wanted more
7598 info. Now I can just add the ? and hit return. Convenient.
7608 info. Now I can just add the ? and hit return. Convenient.
7599
7609
7600 2001-11-02 Fernando Perez <fperez@colorado.edu>
7610 2001-11-02 Fernando Perez <fperez@colorado.edu>
7601
7611
7602 * Python version check (>=2.1) added.
7612 * Python version check (>=2.1) added.
7603
7613
7604 * Added LazyPython documentation. At this point the docs are quite
7614 * Added LazyPython documentation. At this point the docs are quite
7605 a mess. A cleanup is in order.
7615 a mess. A cleanup is in order.
7606
7616
7607 * Auto-installer created. For some bizarre reason, the zipfiles
7617 * Auto-installer created. For some bizarre reason, the zipfiles
7608 module isn't working on my system. So I made a tar version
7618 module isn't working on my system. So I made a tar version
7609 (hopefully the command line options in various systems won't kill
7619 (hopefully the command line options in various systems won't kill
7610 me).
7620 me).
7611
7621
7612 * Fixes to Struct in genutils. Now all dictionary-like methods are
7622 * Fixes to Struct in genutils. Now all dictionary-like methods are
7613 protected (reasonably).
7623 protected (reasonably).
7614
7624
7615 * Added pager function to genutils and changed ? to print usage
7625 * Added pager function to genutils and changed ? to print usage
7616 note through it (it was too long).
7626 note through it (it was too long).
7617
7627
7618 * Added the LazyPython functionality. Works great! I changed the
7628 * Added the LazyPython functionality. Works great! I changed the
7619 auto-quote escape to ';', it's on home row and next to '. But
7629 auto-quote escape to ';', it's on home row and next to '. But
7620 both auto-quote and auto-paren (still /) escapes are command-line
7630 both auto-quote and auto-paren (still /) escapes are command-line
7621 parameters.
7631 parameters.
7622
7632
7623
7633
7624 2001-11-01 Fernando Perez <fperez@colorado.edu>
7634 2001-11-01 Fernando Perez <fperez@colorado.edu>
7625
7635
7626 * Version changed to 0.0.7. Fairly large change: configuration now
7636 * Version changed to 0.0.7. Fairly large change: configuration now
7627 is all stored in a directory, by default .ipython. There, all
7637 is all stored in a directory, by default .ipython. There, all
7628 config files have normal looking names (not .names)
7638 config files have normal looking names (not .names)
7629
7639
7630 * Version 0.0.6 Released first to Lucas and Archie as a test
7640 * Version 0.0.6 Released first to Lucas and Archie as a test
7631 run. Since it's the first 'semi-public' release, change version to
7641 run. Since it's the first 'semi-public' release, change version to
7632 > 0.0.6 for any changes now.
7642 > 0.0.6 for any changes now.
7633
7643
7634 * Stuff I had put in the ipplib.py changelog:
7644 * Stuff I had put in the ipplib.py changelog:
7635
7645
7636 Changes to InteractiveShell:
7646 Changes to InteractiveShell:
7637
7647
7638 - Made the usage message a parameter.
7648 - Made the usage message a parameter.
7639
7649
7640 - Require the name of the shell variable to be given. It's a bit
7650 - Require the name of the shell variable to be given. It's a bit
7641 of a hack, but allows the name 'shell' not to be hardwired in the
7651 of a hack, but allows the name 'shell' not to be hardwired in the
7642 magic (@) handler, which is problematic b/c it requires
7652 magic (@) handler, which is problematic b/c it requires
7643 polluting the global namespace with 'shell'. This in turn is
7653 polluting the global namespace with 'shell'. This in turn is
7644 fragile: if a user redefines a variable called shell, things
7654 fragile: if a user redefines a variable called shell, things
7645 break.
7655 break.
7646
7656
7647 - magic @: all functions available through @ need to be defined
7657 - magic @: all functions available through @ need to be defined
7648 as magic_<name>, even though they can be called simply as
7658 as magic_<name>, even though they can be called simply as
7649 @<name>. This allows the special command @magic to gather
7659 @<name>. This allows the special command @magic to gather
7650 information automatically about all existing magic functions,
7660 information automatically about all existing magic functions,
7651 even if they are run-time user extensions, by parsing the shell
7661 even if they are run-time user extensions, by parsing the shell
7652 instance __dict__ looking for special magic_ names.
7662 instance __dict__ looking for special magic_ names.
7653
7663
7654 - mainloop: added *two* local namespace parameters. This allows
7664 - mainloop: added *two* local namespace parameters. This allows
7655 the class to differentiate between parameters which were there
7665 the class to differentiate between parameters which were there
7656 before and after command line initialization was processed. This
7666 before and after command line initialization was processed. This
7657 way, later @who can show things loaded at startup by the
7667 way, later @who can show things loaded at startup by the
7658 user. This trick was necessary to make session saving/reloading
7668 user. This trick was necessary to make session saving/reloading
7659 really work: ideally after saving/exiting/reloading a session,
7669 really work: ideally after saving/exiting/reloading a session,
7660 *everything* should look the same, including the output of @who. I
7670 *everything* should look the same, including the output of @who. I
7661 was only able to make this work with this double namespace
7671 was only able to make this work with this double namespace
7662 trick.
7672 trick.
7663
7673
7664 - added a header to the logfile which allows (almost) full
7674 - added a header to the logfile which allows (almost) full
7665 session restoring.
7675 session restoring.
7666
7676
7667 - prepend lines beginning with @ or !, with a and log
7677 - prepend lines beginning with @ or !, with a and log
7668 them. Why? !lines: may be useful to know what you did @lines:
7678 them. Why? !lines: may be useful to know what you did @lines:
7669 they may affect session state. So when restoring a session, at
7679 they may affect session state. So when restoring a session, at
7670 least inform the user of their presence. I couldn't quite get
7680 least inform the user of their presence. I couldn't quite get
7671 them to properly re-execute, but at least the user is warned.
7681 them to properly re-execute, but at least the user is warned.
7672
7682
7673 * Started ChangeLog.
7683 * Started ChangeLog.
General Comments 0
You need to be logged in to leave comments. Login now